專(zhuān)利名稱(chēng):視頻壓縮1/2像素精度運(yùn)動(dòng)估計(jì)硬件實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻壓縮運(yùn)動(dòng)估計(jì)1/2像素精度硬件并行實(shí)現(xiàn)方法及架構(gòu)。屬于 數(shù)字圖像編解碼技術(shù)領(lǐng)域。
背景技術(shù):
在H. 264/AVC視頻編碼系統(tǒng)中,運(yùn)動(dòng)估計(jì)、幀內(nèi)預(yù)測(cè)、變換/量化等需要大量運(yùn)算。 目前市場(chǎng)對(duì)高清以上H. 264/AVC視頻編碼需求不斷增加,而采用高端DSP方式實(shí)現(xiàn)H. 264/ AVC視頻編碼的方案不斷出現(xiàn)計(jì)算瓶頸。采用大容量FPGA或ASIC方式,利用硬件并行結(jié)構(gòu) 實(shí)現(xiàn)高清以上H. 264/AVC視頻編碼系統(tǒng)是一些市場(chǎng)產(chǎn)品的很好選擇。運(yùn)動(dòng)估計(jì)包括整數(shù)運(yùn)動(dòng)估計(jì)部分和小數(shù)運(yùn)動(dòng)估計(jì)部分。H. 264協(xié)議支持1/2像素 運(yùn)動(dòng)估計(jì)和1/2像素運(yùn)動(dòng)估計(jì)。分?jǐn)?shù)運(yùn)動(dòng)估計(jì)插值及存儲(chǔ)部分需要大量運(yùn)算。采用FPGA 或ASIC方式實(shí)現(xiàn)視頻編碼,可以利用并行體系結(jié)構(gòu)完成小數(shù)部分運(yùn)動(dòng)估計(jì)。
發(fā)明內(nèi)容
本發(fā)明為視頻壓縮1/2像素精度運(yùn)動(dòng)估計(jì)模塊提供了一種硬件并行實(shí)現(xiàn)方法。 1/2像素精度運(yùn)動(dòng)估計(jì)硬件并行結(jié)構(gòu)主要包括九個(gè)并行的插值濾波器組、內(nèi)部存儲(chǔ)器、計(jì)算 殘差SATD模塊及代價(jià)比較模塊。數(shù)據(jù)首先進(jìn)行橫向差值,外部輸入的數(shù)據(jù)直接進(jìn)入并行的 插值濾波器組,數(shù)據(jù)寬度為128bit,完成橫向?yàn)V波后,輸出暫時(shí)存儲(chǔ)在內(nèi)部存儲(chǔ)器中。橫向 濾波完成后,數(shù)據(jù)從內(nèi)部存儲(chǔ)器中讀出,并輸出到并行的插值濾波器組進(jìn)行垂直濾波,垂直 濾波的結(jié)果直接輸出到計(jì)算殘差SATD模塊及代價(jià)比較模塊。
圖1是1/2像素插值示意圖。圖2是8*8塊1/2像素運(yùn)動(dòng)搜索結(jié)構(gòu)圖。圖3是16*16塊1/2像素運(yùn)動(dòng)搜索結(jié)構(gòu)圖。圖4是6抽頭濾波器結(jié)構(gòu)圖。(以h點(diǎn)為例)
具體實(shí)施例方式本發(fā)明基于以下方法實(shí)現(xiàn)。對(duì)于宏塊1/2像素插值,需要上下左右各擴(kuò)展3個(gè)像素,在參考幀的整數(shù)運(yùn)動(dòng)估計(jì) 像素處周?chē)它c(diǎn)處做1/2像素的運(yùn)動(dòng)估計(jì)。對(duì)于16*16的插值,需要讀取22*22個(gè)點(diǎn)。對(duì) 于8*8的插值,需要讀取14*14個(gè)點(diǎn)。參見(jiàn)圖2,8*8塊1/2插值濾波過(guò)程如下,由前一級(jí)整數(shù)像素流水過(guò)來(lái)的數(shù)據(jù)包括 整數(shù)像素最優(yōu)搜索點(diǎn)及改點(diǎn)附近的參考幀數(shù)據(jù),將這14*14個(gè)像素按行依次讀入到插值單 元中,進(jìn)行橫向插值。插完的值存入到內(nèi)部存儲(chǔ)器中。將這17列14行數(shù)據(jù)讀回到插值單 元中,再進(jìn)行縱向插值。插值完后的值與當(dāng)前幀8*8像素做殘差,得到的值進(jìn)行SATD的計(jì)算,為以后進(jìn)行的代價(jià)計(jì)算提供數(shù)據(jù)。將每個(gè)8*8塊計(jì)算的SATD值進(jìn)行累加,與查表得到 的R值相加計(jì)算宏塊代價(jià)。16*16塊1/2插值濾波過(guò)程如下,由前一級(jí)整數(shù)像素流水過(guò)來(lái)的數(shù)據(jù)包括整數(shù)像 素最優(yōu)搜索點(diǎn)及改點(diǎn)附近的參考幀數(shù)據(jù),將這22*22個(gè)像素按行依次讀入到插值單元中, 進(jìn)行橫向插值。插完的值存入到memory中。將這33列22行數(shù)據(jù)讀回到插值單元中,再進(jìn) 行縱向插值。插值完后的值與當(dāng)前幀16*16像素做殘差,得到的值進(jìn)行SATD的計(jì)算,為以 后進(jìn)行的代價(jià)計(jì)算提供數(shù)據(jù)。之后與查表得到R值進(jìn)行相加,計(jì)算宏塊代價(jià)。對(duì)于8*8塊1/2插值濾波過(guò)程,每一行或每一列數(shù)據(jù)需要一個(gè)周期完成插值;而對(duì) 于16*16塊1/2插值濾波過(guò)程,每一行或每一列數(shù)據(jù)需要兩個(gè)周期完成。
權(quán)利要求
視頻壓縮1/2像素精度運(yùn)動(dòng)估計(jì)硬件實(shí)現(xiàn)方法,其特征在于采用并行濾波器結(jié)構(gòu)完成插值濾波;采用計(jì)算殘差硬件模塊計(jì)算殘差;采用SATD計(jì)算模塊計(jì)算SATD值;采用累加器計(jì)算代價(jià)函數(shù);R值使用查表方式得到。
2.根據(jù)權(quán)利要求1所述的采用并行濾波器結(jié)構(gòu)完成插值濾波,其特征在于濾波器組采 用九個(gè)并行六抽頭濾波器結(jié)構(gòu),每個(gè)濾波器都采用Wallace陣列結(jié)構(gòu)并行實(shí)現(xiàn);濾波器組 首先進(jìn)行水平濾波,濾波結(jié)果存放到內(nèi)部存儲(chǔ)器中,然后,從內(nèi)部存儲(chǔ)器中讀出水平濾波結(jié) 果,進(jìn)行垂直濾波,垂直濾波結(jié)果輸出到計(jì)算殘差硬件模塊,用于計(jì)算殘差。
3.根據(jù)權(quán)利要求2所述的六抽頭濾波器Wallace陣列結(jié)構(gòu)實(shí)現(xiàn),其特征在于Wallace 陣列輸出與輸入的關(guān)系為,w = A-C-4C+16G+4G+4M+16M-4R-R+J ;其中A,C,G,M,R,J為同 一行或同一列的原始像素值。
全文摘要
在H.264/AVC視頻編碼系統(tǒng)中,運(yùn)動(dòng)估計(jì)是一種重要的減少時(shí)間相關(guān)信息的技術(shù)。運(yùn)動(dòng)估計(jì)包括整數(shù)運(yùn)動(dòng)估計(jì)部分和小數(shù)運(yùn)動(dòng)估計(jì)部分。其中1/2像素運(yùn)動(dòng)估計(jì)插值及存儲(chǔ)部分需要大量運(yùn)算。采用FPGA或ASIC方式實(shí)現(xiàn)視頻編碼,可以利用并行體系結(jié)構(gòu)完成此部分運(yùn)動(dòng)估計(jì)。本發(fā)明提出了一種硬件并行實(shí)現(xiàn)方法,插值時(shí)采用九個(gè)濾波結(jié)構(gòu)并行計(jì)算,并在內(nèi)部緩存插值中間數(shù)據(jù),提高了計(jì)算效率。
文檔編號(hào)H04N7/26GK101938644SQ200910108169
公開(kāi)日2011年1月5日 申請(qǐng)日期2009年7月3日 優(yōu)先權(quán)日2009年7月3日
發(fā)明者張愛(ài)平, 王明江, 王超, 顏琥, 魏志強(qiáng) 申請(qǐng)人:哈爾濱工業(yè)大學(xué)深圳研究生院