《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > H.264 baseline解碼器中運動補償模塊的硬件設(shè)計

H.264 baseline解碼器中運動補償模塊的硬件設(shè)計

2008-04-17
作者:俞 堯,楊華中

  摘 要: 完成了H.264 baseline解碼器中運動補償模塊" title="運動補償模塊">運動補償模塊的Verilog建模,通過了功能驗證和綜合。該運動補償模塊可用于H.264 baseline解碼器的FPGA實現(xiàn)和ASIC實現(xiàn)。
  關(guān)鍵詞: H.264 運動補償模塊 硬件設(shè)計


  H.264是ITU-T(VCEG)和ISO/IEC(JVT)聯(lián)合提出的新一代的視頻編碼標準,該標準于2003年公布。H.264標準承諾將在編碼壓縮性能上超過以往所有的視頻編碼標準(MPEG2,MPEG4,H.263等)。H.264包含7個不同的檔次,其中baseline檔次適合于手持設(shè)備、個人終端等應(yīng)用。
  在H.264 baseline解碼器的FPGA或ASIC實現(xiàn)中,運動補償模塊占據(jù)十分重要的地位。一般來講,在整個解碼器中,運動補償模塊往往是占用硬件復(fù)雜度最高、功耗最大的模塊。因此在解碼器的設(shè)計過程中,有必要對運動補償模塊進行精心設(shè)計。
1 Baseline級別中運動補償?shù)奶攸c
  在一般情況下,H.264 baseline解碼器中的運動補償器具有以下特點:
  (1)支持4×4到16×16的可變塊大小的運動補償。
  (2)支持運動向量的預(yù)測和恢復(fù)。
  (3)在像素插值" title="插值">插值中,亮度像素的插值精度為1/4像素,色度像素的精度為1/8像素。
  (4)運動補償器涉及的圖像類型只有I幀和P幀。除此之外,沒有其他類型的圖像。
2 運動補償模塊的硬件設(shè)計
  運動補償?shù)拇笾铝鞒虨椋焊鶕?jù)H.264標準所規(guī)定的算法,利用解碼得到的運動向量殘差和解碼端計算出運動向量估計值,恢復(fù)出當前塊的運動向量。并利用已經(jīng)掌握的運動向量、參考幀號和當前解碼塊的位置等信息,從外存(本設(shè)計支持SDRAM或DDR SDRAM)中讀入所需的參考幀數(shù)據(jù)。然后,利用讀入的參考幀數(shù)據(jù),結(jié)合已經(jīng)計算出的運動向量,完成亞像素" title="亞像素">亞像素插值。插值之后的數(shù)據(jù)即是像素的預(yù)測值,該預(yù)測值可以輸出到圖像重建" title="圖像重建">圖像重建模塊中與反量化反變換模塊得到的像素殘差值相加,并回寫入外存中。
  由于H.264使用幀內(nèi)預(yù)測和幀間預(yù)測,圖像重建模塊需要處理來自幀內(nèi)補償和運動補償兩個模塊的數(shù)據(jù),所以解碼器中,圖像重建模塊并未被劃分到運動補償模塊中,而是獨立成為一個模塊。該模塊的硬件設(shè)計也已完成。本運動補償模塊的頂層結(jié)構(gòu)及周邊模塊的結(jié)構(gòu)如圖1所示。其中虛線框所示為運動補償模塊的頂層結(jié)構(gòu)。

2.1 運動向量恢復(fù)模塊

  在H.264 baseline解碼器中,當前塊的運動向量需要通過本地計算恢復(fù)得到。計算方法是:將本地恢復(fù)的運動向量估計值和編碼端傳輸過來的運動向量殘差值相加,得到的和即是當前塊的運動向量。其中運動向量估計值的計算完全遵照H.264標準。由于計算當前塊數(shù)據(jù)時需要用到相鄰塊的數(shù)據(jù),所以需要一個本地存儲單元將其暫時存儲。這里所謂的相鄰塊的定義如標準所述。


  運動向量恢復(fù)模塊的結(jié)構(gòu)如圖2所示。在該模塊中,控制模塊生成控制信號,調(diào)度各個子模塊的工作。當前塊的信息首先被輸入到相鄰塊信息生成模塊。該子模塊利用這些信息計算出相鄰塊的位置信息。這些位置信息被提交給本地數(shù)據(jù)管理模塊,從中調(diào)用相鄰塊的運動向量相關(guān)信息,并輸出給運動向量估計模塊。運動向量估計模塊利用這些數(shù)據(jù),估計出當前塊的運動向量估計值,并將估計值反饋給本地數(shù)據(jù)管理模塊。在本地數(shù)據(jù)管理模塊內(nèi),運動向量的估計值和殘差值相加得到當前模塊的運動向量。一方面,這個運動向量被作為運動向量恢復(fù)模塊的輸出;另一方面,運動向量同時被存儲進本地存儲器,當需要時可被當作今后塊的相鄰塊信息調(diào)用。
2.2 參考幀數(shù)據(jù)讀取模塊
  由于參考幀數(shù)據(jù)被按照一定的格式存儲在外存中(本設(shè)計支持SDRAM或DDR SDRAM),為實現(xiàn)運動補償,需要將所需的參考幀數(shù)據(jù)從外存中讀入;另一方面,插值模塊需要使用到這些讀入的數(shù)據(jù)。因此,參考幀讀取模塊的主要功能是將參考幀數(shù)據(jù)讀入,并按照一定的格式輸送給亞像素插值" title="像素插值">像素插值模塊。
  H.264標準規(guī)定,亮度像素通過6抽頭的濾波器實現(xiàn)半像素插值,色度像素通過2抽頭的濾波器實現(xiàn)半像素插值。因此,對于一個4×4的亮度塊,需要一次讀入一個9×9像素的塊;對于2×2的色度塊,需要一次讀入3×3像素的塊。由于亞像素插值是逐行進行的,亮度像素每次輸出同一列的6個點給亞像素插值模塊;而色度像素則輸出同一列的3個點給亞像素插值模塊。
  總體來講,參考幀數(shù)據(jù)讀取模塊通過一個多層嵌套的狀態(tài)機實現(xiàn)。其中頂層的狀態(tài)跳轉(zhuǎn)狀況如圖3所示。


  首先,本子模塊根據(jù)當前塊的位置和當前塊的運動向量,計算出參考數(shù)據(jù)塊在參考幀中的位置。這個位置信息和參考幀編號被一起提交給外部的地址轉(zhuǎn)換模塊,從而申請從外存讀入數(shù)據(jù)。本子模塊內(nèi)部包含了一個9×9字節(jié)的本地寄存器堆,從外存中讀入的數(shù)據(jù)被暫時存儲在寄存器堆內(nèi),以便這些數(shù)據(jù)被并發(fā)訪問。一旦進入到數(shù)據(jù)輸出狀態(tài),就按節(jié)拍選擇必要的數(shù)據(jù)輸出給亞像素插值模塊。
2.3 亞像素插值模塊
  為盡可能減少片內(nèi)存儲器的數(shù)量并兼顧速度,亞像素模塊對亮度采用4×4塊串行處理的工作方式。即在一段時間內(nèi)集中處理一個4×4亮度塊的數(shù)據(jù)。如果當前單元大于4×4,則必定將其劃分為多個4×4塊,并且這些4×4塊之間享有相同的運動向量。類似的,對于色度數(shù)據(jù)則采用2×2塊串行處理的工作方式,即在一段時間內(nèi)集中處理一個2×2亮度塊的數(shù)據(jù)。在同一個4×4或2×2塊內(nèi),則采用逐行計算的順序。
  對于亮度部分,需采用6抽頭的濾波器來實現(xiàn)整像素到半像素的插值。考慮到6個抽頭的加權(quán)系數(shù)為[1,-5,20,20,-5,1],如果直接采用乘法器實現(xiàn)乘系數(shù)的運算,則必然導(dǎo)致較高的硬件開銷。因此采用兩種基于加法器的設(shè)計來分別實現(xiàn)橫向和縱向的半像素插值。這兩種濾波器的結(jié)構(gòu)分別如圖4(a)和圖4(b)所示。


  在圖4所示濾波器中,Sx表示將輸入數(shù)據(jù)向左移x位,而L表示將輸入數(shù)據(jù)延遲一個時鐘。在圖4(a)中,N×5用N+(N>>2)實現(xiàn),N×20用(N>>4)+(N>>2)實現(xiàn)。圖4(b)采用類似的方法。經(jīng)過合理的設(shè)計,僅采用一個加法器就實現(xiàn)了對6個抽頭的乘系數(shù)操作。
  同理,對色度像素也作了基于加法器的設(shè)計,整個操作全部采用加法器和移位器實現(xiàn),大大節(jié)省了硬件開銷。
2.4 周邊模塊簡介
  圖像重建模塊負責將像素殘差和像素的估計值求和,并將結(jié)果回寫入外存。H.264解碼器包含運動補償模塊和幀內(nèi)補償模塊,像素的估計值可能來自兩者,不同來源地的數(shù)據(jù)都在該模塊內(nèi)處理。因此圖像重建模塊被獨立為一個模塊,而不從屬于運動補償模塊。
  另一方面,參考幀數(shù)據(jù)在外存中按照某種結(jié)構(gòu)存儲,對外存的讀寫需要提交存儲器對應(yīng)地址,而解碼過程中產(chǎn)生的像素位置值是其在圖像中的坐標。地址轉(zhuǎn)換模塊的作用是完成兩者的轉(zhuǎn)化,并將轉(zhuǎn)換結(jié)果輸送給DRAM接口。
  上述周邊模塊的設(shè)計也已完成。
3 功能驗證與綜合
  本運動補償模塊已通過利用Modelsim XE 5.7c進行的功能仿真。在功能驗證時,采用與H.264標準配套的jm86生成測試向量。將Verilog模型計算結(jié)果與jm86本身運算結(jié)果比對,兩者完全一致。
  本模塊利用synplify pro 8.1針對XILINX sparten3 的FPGA開發(fā)板進行綜合,結(jié)果顯示共使用了6157個LUT。利用Synopsys的design vision針對smic18工藝進行綜合,通過了本運動補償模塊的可綜合性驗證。
參考文獻

[1] Draft ITU-T Recommendation and pre-publish draft international standard of jointVid sopecification(ITU-T Rec.H.264ISO/IEC 14496-10:2005(E)) Joint Video Team(JVT), Mar.2005.
[2] Iain G.Richardson.International electrotechnical commission video coding for next-generation multimedia,0-470-84837-5,2003.
[3] HE Wei feng,MAO Zhi gaig,WANG Jin riang,et al.Design and implementation of motion compensation for MPEG-4 AS profile streaming video decoding,0-7803-7889-x/03,IEEE,2003.
[4] CHIEN Chih Da,CHEN Ho Chun,HUANG Lin-Chieh,et? al.A low-power motion compensation IP core design for? MPEG-1/2/4 video decoding,0-7803-8834-8/05,IEEE, 2005.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 福利毛片 | 欧美性网 | 99久久这里只精品国产免费 | 精品一区二区三区中文 | 成人精品视频在线观看 | 欧美成人午夜视频在线观看 | 精品四虎免费观看国产高清午夜 | 五月婷婷丁香综合 | 丁香五香天堂网 | 久久只有精品视频 | 国产小视频在线观看免费 | 国产成人精品.一二区 | 五月花性网 | 潦草影视大全 | 视频1区 | 久久久999国产精品 久久久96 | h视频导航| 久久国产精品免费 | 国产精品九九九久久九九 | 免费观看亚洲 | 欧美色p| 91久久精品国产91性色tv | 久久精品国产福利国产秒 | 狠狠一区 | 欧美一级性生活视频 | 毛片免费视频 | 国外欧美一区另类中文字幕 | 成人99| 久久伊人青青 | 日韩在线免费视频 | 99久久久免费精品免费 | 久久久穴| 五月花性网| 国产精品永久免费视频观看 | zaixian| 久久曰 | 99色在线观看| 久久国内精品自在自线观看 | 婷婷五月情 | 天天做天天爱天天影视综合 | 九九久久国产精品免费热6 九九久久国产精品 |