《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > H.264Baseline中ITIQ模塊的硬件實現

H.264Baseline中ITIQ模塊的硬件實現

2008-12-05
作者:黃志剛,雷 凱,李 揮

  摘 要: 闡述H.264標準中的整數反變換運算及反量化" title="反量化">反量化。該硬件原型包含亮度直流系數的反哈達瑪變換和反量化以及亮度系數和色度系數的反變換過程。根據蝶形算法,該硬件原型采用分時復用" title="復用">復用技術和全零信號,節省運算時間。仿真結果表明,該設計能滿足高清數字視頻的實時處理應用。
  關鍵詞: H.264;整數變換;反量化;分時復用(TDM)

?

  H.264是由ITU-T的VCEG(視頻編碼" title="視頻編碼">視頻編碼專家組)和ISO/IEC的MPEG(運動圖像編碼專家組)共同開發的一個新的數字視頻編碼國際標準,它以提高視頻編碼在壓縮效率和網絡環境下更高的穩定性為應用目標。H.264在各功能模塊的實現細節上引入一些新的技術,例如幀內預測、1/4精度的運動補償、基于4×4塊的整數變換等。這些措施使得H.264算法具有很高的編碼效率,在相同的重建圖像質量下,能夠比H.263節約50%左右的碼率[1,2]。在H.264 Baseline 中,反變換解碼和反量化過程中采用了整數DCT逆變" title="逆變">逆變換,并將尺度調整融合到反量化過程中。由于反變換過程僅通過加法和移位操作完成,用整數運算代替浮點運算,不僅提高變換速度,也解決反變換的失配問題,同時反量化過程用乘法和移位操作代替除法運算,因而適合硬件實現。本文針對H.264Baseline高清視頻解碼芯片中ITIQ模塊的設計進行論述及硬件實現結構。
1 H.264的反量化和反變換
  反量化公式如式(1)所示:
  
  其中Wij′為反量化后的系數,將作為反變換的輸入,Zij為反量化的輸入,Qstep為量化步長,PF為縮放因子,系數64用來消除取整誤差。H.264標準不直接說明Qstep或PF,而是根據0≤QP≤5和每個系數位置,定義參數Vij=(Qstep×PF×64),QP(量化參數)每增加6,Qstep增大一倍。公式(1)改為:
  
  Vij為縮放比例因素。QP與Qstep的對應關系、Vij與QP%6以及像素位置關系可查表獲得[3]。4×4塊亮度DC系數在解碼器里,先是一個反哈達瑪變換,然后是反量化。反哈達瑪變換:
  

  反量化:

  
  其中(i,j=0,…,3),V(0,0)對應于Vij位置(0,0)的縮放比例因素,floor( )為取整函數。
  反變換:
??? ? 

  這是H.264中所用到的整數反變換公式,其變換核CMT W′Cm僅用加減法(和右移)即可實現。中間的點乘操作可以合并到前面的反量化過程中去,由于把變換和量化融合在一起,因而有效地減少了壓縮編碼的運算量[4]
2 硬件設計
  由于整數DCT逆變換與亮度直流系數哈達瑪逆變換在算法上有許多共同點,并且兩者在時間上也不會重疊,所以在硬件設計上采用模塊復用。相關聯模塊結構如圖1所示,ENTR模塊(entropy decode)是H.264 decode IP 中的熵解碼模塊。INT模塊包含幀內預測和幀間預測,它把反變換后的殘差值與預測值相加且移位后可得重構的圖像像素值。ENTR模塊把亮度直流系數傳給ITIQ 模塊做哈達瑪反變換和反量化,ITIQ再把反量化后的亮度直流系數傳回ENTR模塊。ENTR模塊把反量化后的亮度(DC系數和AC系數)和色度(DC系數和AC系數)數據存入CB模塊中。CB模塊再把數據傳給ITIQ模塊做反變換,ITIQ模塊把結果又傳給CB模塊,CB模塊再把反變換后的殘差傳給INT模塊。色度DC系數的哈達瑪反變換和反量化及亮度(DC系數和AC系數)和色度(DC系數和AC系數)的反量化在ENTR模塊中完成。

?


2.1 CB模塊的設計
  由于反變換分為水平與垂直變換,做完水平變換的數據要先存儲,然后再根據存儲的數據做垂直變換。CB模塊的功能是存儲和控制,總共存儲兩組數據,每組256bit。ENTR模塊把經過反量化后的亮度(DC系數和AC系數)和色度(DC系數和AC系數)的數據存入CB模塊中,CB模塊再把數據傳給ITIQ模塊做反變換,ITIQ模塊做完后把結果又傳給CB模塊,CB模塊再把反變換后的殘差給INT模塊。CB模塊有一計數信號,ENTR模塊每寫入一組數據加1,當計數信號為2時發信號給ENTR模塊不能再寫入數據,INT模塊每讀完一組數據時計數信號減1。CB模塊發信號給ITIQ模塊啟動反變換,當反變換完成時CB模塊發信號給INT模塊允許讀取。在中低碼率編碼過程中,運動補償參差值經過整數變換、量化運算后,常常會出現大量的零系數,尤其低速運動的視頻序列出現的全零塊更多。全零塊不需做反變換,可節省運算時間,由ENTR模塊發全零塊信號ENTR_CB_zero給CB模塊,CB模塊直接把數據傳給INT模塊,而省去反變換運算這一步。這種情況要用信號itiq_do_zero控制:當ITIQ模塊正在做反變換時,ENTR模塊發全零塊信號給CB模塊,全零數據不能馬上傳給INT模塊,要等待前面的數據傳給INT模塊后,才能輪到全零塊數據。因此當CB_ITIQ_enable為1時,將itiq_do_zero置1,當反變換完成后再置0。剛好只存儲兩組數據,可采用3信號分別對應3模塊來控制數據地址的翻轉,起始值都為0。如信號0表示兩模塊連接0地址,信號1表示兩模塊連接1地址。ENTR模塊每寫入一組數據entr_cb_flag加1,entr_cb_flag為0表示數據寫入cb[0],entr_cb_flag為1表示數據寫入cb[1]。CB模塊每完成一次反變換itiq_cb_flag加1,如果itiq_do_zero為1,則在反變換完成后下一時鐘周期" title="時鐘周期">時鐘周期itiq_cb_flag再加1,itiq_cb_flag為0表示數據寫入cb[0],itiq_cb_flag為1表示數據寫入cb[1]。INT模塊每讀取完一組數據int_cb_flag加1,int_cb_flag為0表示從cb[0]中讀取數據,int_cb_flag為1表示從cb[1]中讀取數據。itiq_finish_cnt信號控制INT模塊是否讀取,當它為1或2時發一讀信號給INT模塊。當反變換做完時itiq_finish_cnt加1;當ENTR_CB_
zero為1且itiq_do_zero為0時itiq_finish_cnt加1,否則要等反變換做完后下一周期再加1; INT模塊每讀取完一組數據則減1。
2.2 ITIQ模塊的設計
  ITIQ硬件結構如圖2所示。基于Hadamard反變換和反向整數DCT變換有很多相似之處,并且調用本模塊不會同時出現,本模塊進行功能復用,根據啟動信號選通不同的數據進行運算。輸入數據一組為256bit,對應4×4塊排列如表1所示。本模塊根據面積與速度的協調,采用8個加法器(具體設計如表2所示),一次讀取64bit進行運算。總共有8個狀態,前4個狀態是水平變換,后4個狀態是垂直變換。在本模塊中采用的算法是蝶形算法,具體算法如圖3所示。在反變換水平變換時,a2=r2-r0中r2要先右移一位再減r0,a3=r2+r0 中r0要先右移一位再加r2。

?


  軟件模型中反量化系數可通過查表得到,因它是相應固定的值,在硬件中可根據輸入當前量化系數直接賦相對應的值。哈達瑪逆變換得到的數據再與相對應的反量化系數相乘。當QP值小于36時,在軟件模型中的加法可簡化為進位則加1(當往右移4位時,如第4位為1則移位后結果再加1,依此類推),其他情況則將相乘后的結果進行相對應的左移。
  狀態機圖如圖4所示。狀態說明:Idle為起始狀態,如果無解碼要求(即En=0),則狀態機停留在Idlie狀態,否則狀態機跳轉到S1狀態。En信號為反變換或哈達瑪逆變換啟動信號。

?


  S1:讀取data_in[63:0]共64bit數據做蝶形運算,En=1跳轉到S2狀態,否則跳轉到Idlie狀態。r0=data_in [63:48],r1=data_in[47:32],r2=data_in[31:16],r3=data_in[15:0]。
  S2:讀取data_in[127:64]共64bit數據做蝶形運算,En=1跳轉到S3狀態,否則跳轉到Idlie狀態。r0=data_in[127:112],r1=data_in[111:96],r2=data_in[95:80],r3=data_in[80:64]。
  S3:讀取data_in[191:128]共64bit數據做蝶形運算,En=1跳轉到S4狀態,否則跳轉到Idlie狀態。r0=data_in[191:176],r1=data_in[175:160],r2=data_in[159:144],r3=data_in[143:128]。
  S4:讀取data_in[255:192]共64bit數據做蝶形運算,En=1跳轉到S5狀態,否則跳轉到Idlie狀態。r0=data_in[255:240],r1=data_in[239:224],r2=data_in[223:208],r3=data_in[207:192]。
  S5:讀取64bit數據做蝶形運算,En=1跳轉到S6狀態,否則跳轉到Idlie狀態。r0=data_in[207:192],r1=data_in[143:128],r2=data_in[79:64],r3=data_in[15:0]。
  S6:讀取64bit數據做蝶形運算,En=1跳轉到S7狀態,否則跳轉到Idlie狀態。r0=data_in[223:208],r1=data_in[159:144],r2=data_in[111:96],r3=data_in[31:16]。
  S7:讀取64bit數據做蝶形運算,En=1跳轉到S8狀態,否則跳轉到Idlie狀態。r0=data_in[239:224],r1=data_in[175:160],r2=data_in[111:96],r3=data_in[47:32]。
  S8:讀取64bit數據做蝶形運算,En=1跳轉到S1狀態,否則跳轉到Idlie狀態。r0=data_in[255:240],r1=data_in[191:176],r2=data_in[127:112],r3=data_in[63:48]。
  本設計采用的硬件平臺是Synopsys公司的VCS,整個設計在Unix環境下進行。在PC機上進行整個IP環境仿真,在QCIF格式下,ITIQ模塊完成一個宏塊的運算操作需要694個時鐘周期。在D1格式下,ITIQ模塊完成一個宏塊的運算操作需要570個時鐘周期。能夠滿足高清解碼的要求。在FPGA上仿真,在最高頻率100MHz下解碼比較流暢。目前該芯片正在流片中。


參考文獻
[1] SCHAFER R,WIEGAND T,SCHWARZ H.The emerging?H.264/AVC standard.EBU technical review,2003,(1).
[2] 王嵩,薛全,張穎.H.264視頻編碼新標準及性能分析[J].電視技術,2003,(6).
[3] H.264/MPEG-4 Part 10 White Paper- transform and?quantization.
[4] 畢厚杰.新一代視頻壓縮編碼標準-H.264/AVC[M].北京:人民郵電出版社,2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
麻豆久久精品| 欧美日韩喷水| 日韩手机在线导航| 亚洲欧洲在线一区| 亚洲国产欧美一区| 亚洲夫妻自拍| 亚洲二区在线观看| 亚洲国产一区二区三区a毛片| 国产日韩综合| 国产精品久久久久影院亚瑟| 久久精品视频在线播放| 亚洲精华国产欧美| 亚洲国产精品一区二区第四页av| 日韩视频不卡| 亚洲精品女av网站| 亚洲人成在线免费观看| 国产精品入口麻豆原神| 久久婷婷麻豆| 久久一区二区三区国产精品| 亚洲精品免费在线| 亚洲国产成人porn| 亚洲国产三级网| 亚洲肉体裸体xxxx137| 亚洲一级一区| 一本色道久久精品| 在线亚洲精品| 亚洲小说春色综合另类电影| 亚洲高清中文字幕| 亚洲大片在线观看| 亚洲人成网站777色婷婷| 国产女人18毛片水18精品| 欧美激情精品久久久久久| 欧美一级专区| 久久国产精品久久w女人spa| 一本一本久久a久久精品综合妖精| 亚洲一区二区三区中文字幕| 激情丁香综合| 在线观看福利一区| 亚洲欧洲另类国产综合| 国产日韩欧美综合精品| 欧美人与性动交cc0o| 久久精品夜夜夜夜久久| 中文国产亚洲喷潮| 亚洲综合成人在线| 久久国产手机看片| 欧美超级免费视 在线| 久久国产精品亚洲va麻豆| 一卡二卡3卡四卡高清精品视频 | 99v久久综合狠狠综合久久| 欧美日韩播放| 国产精品xvideos88| 欧美精品福利在线| 欧美偷拍另类| 韩日在线一区| 一本色道久久综合亚洲精品小说| 亚洲高清三级视频| 亚洲乱码国产乱码精品精可以看| 在线观看的日韩av| 日韩一区二区高清| 午夜影视日本亚洲欧洲精品| 亚洲午夜精品久久久久久浪潮| 91久久久久久久久| 亚洲免费成人av电影| 国产日韩一级二级三级| 欧美性事免费在线观看| 欧美日韩国产123| 国产精品最新自拍| 91久久久精品| 欧美一级大片在线观看| 性欧美8khd高清极品| 一个色综合av| 久久精品卡一| 亚洲在线成人| 欧美不卡福利| 国产精品一区亚洲| 亚洲精品一区二区三| 亚洲成人在线网| 一区二区久久久久| 久久国产精品久久w女人spa| 亚洲一级二级在线| 亚洲国产精品电影在线观看| 先锋影音一区二区三区| 亚洲午夜视频在线| 亚洲国产精品久久精品怡红院| 欧美在线播放视频| 日韩一区二区精品在线观看| 亚洲精品少妇| 亚洲一区二区三区成人在线视频精品| 亚洲成人直播| 亚洲欧美国产不卡| 欧美激情 亚洲a∨综合| 麻豆精品网站| 国产精品久久久久久久第一福利| 欧美午夜剧场| 国产一区二区三区精品久久久| 国产一区二区按摩在线观看| 国产精品日韩在线播放| 国产精品人人做人人爽人人添| 欧美性大战xxxxx久久久| 欧美日韩视频在线观看一区二区三区 | 欧美精品一区二区三区久久久竹菊| 麻豆91精品| 国产精品久久久久久久久果冻传媒 | 亚洲国产精品一区二区www在线| 亚洲大胆女人| 亚洲欧美一区二区在线观看| 欧美一区二区三区四区在线观看| 午夜一区不卡| 欧美高清在线视频观看不卡| 欧美日韩高清不卡| 狠狠操狠狠色综合网| 亚洲国产99精品国自产| 亚洲破处大片| 久久国产色av| 欧美一区二区三区在线视频| 久久中文字幕导航| 国产精品私房写真福利视频| 国产日韩欧美高清免费| 国产一区二区成人久久免费影院| 激情婷婷亚洲| 午夜精彩视频在线观看不卡 | 亚洲无线一线二线三线区别av| 亚洲——在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 99国产成+人+综合+亚洲欧美| 99在线精品免费视频九九视| 亚洲一区二区三区免费视频| 午夜一级久久| 国产精品99一区| 夜夜嗨av一区二区三区中文字幕| 亚洲欧美激情诱惑| 亚洲男人的天堂在线| 久久久免费精品视频| 欧美激情一区二区三级高清视频| 欧美亚日韩国产aⅴ精品中极品| 国产精品稀缺呦系列在线| 国产夜色精品一区二区av| 亚洲国产高清在线观看视频| 一本色道久久88综合亚洲精品ⅰ| 午夜精品久久久久久久99热浪潮| 久久精品一区二区三区四区| 亚洲精选91| 欧美激情综合五月色丁香| 国产日韩欧美日韩| 欧美一区二区大片| 久久精品免费看| 激情婷婷久久| 亚洲精品久久久蜜桃 | 玖玖在线精品| 亚洲高清在线播放| 亚洲免费观看视频| 欧美日韩一区二区精品| 影音先锋成人资源站| 亚洲美女精品久久| 一区二区免费在线观看| 久久久久成人精品免费播放动漫| 欧美伦理影院| 亚洲乱码精品一二三四区日韩在线| 久久国产精品99久久久久久老狼| 99精品视频免费全部在线| 久久久国产精彩视频美女艺术照福利| 国产亚洲精品一区二555| 一本久久综合亚洲鲁鲁五月天| 亚洲国产高清一区| 欧美亚洲在线播放| 国产一区二区三区日韩| 亚洲天堂黄色| 亚洲欧美日韩成人高清在线一区| 欧美精品久久一区| 99一区二区| 欧美一区中文字幕| 亚洲第一在线综合网站| 欧美在线视频播放| 欧美 日韩 国产在线| 国产午夜精品麻豆| 91久久精品国产| 欧美日韩综合视频| 欧美在线免费一级片| 欧美一区=区| 国产精品日韩电影| 亚洲国产精品一区二区久| 性色av一区二区三区| 欧美激情视频一区二区三区在线播放| 亚洲精品资源美女情侣酒店| 亚洲韩日在线| 欧美视频在线免费看| 亚洲精品1区| 午夜久久tv| 激情六月综合| 亚洲清纯自拍| 国产精品久久久久久久久久免费 | 久久国产日韩欧美| 在线精品国精品国产尤物884a| 欧美一区二区三区在线视频| 亚洲午夜性刺激影院| 欧美日韩免费高清| 亚洲欧美区自拍先锋| 亚洲——在线| 精品91视频| 夜夜嗨av一区二区三区网站四季av|