H.264/AVC中量化的Verilog實(shí)現(xiàn)
H.264作為新一代的視頻壓縮標(biāo)準(zhǔn),是由ITU-T的視頻編碼專家組和ISO/IEC的MPEG(運(yùn)動(dòng)圖像編碼專家組)成立的聯(lián)合視頻小組共同開發(fā)的。它優(yōu)異的壓縮性能也將在數(shù)字電視廣播、視頻實(shí)時(shí)通信、網(wǎng)絡(luò)視頻流媒體傳遞以及多媒體通信等各個(gè)方面發(fā)揮重要的作用。
在核心技術(shù)上,H.264/AVC采用各種有效的技術(shù),如統(tǒng)一的VLC符號(hào)編碼、1/4像素精度的運(yùn)動(dòng)估計(jì)、多模式運(yùn)動(dòng)估計(jì)、基于4×4塊的整數(shù)變換、分層編碼語法等。由于采用了整數(shù)變換,計(jì)算不會(huì)出現(xiàn)浮點(diǎn)數(shù),而且精度高等。這些措施使得H.264算法具有很高的編碼效率。在量化方面,量化步長采用52個(gè),下面將主要分析量化。在此,提出量化的Verilog實(shí)現(xiàn),將變換后的數(shù)據(jù)作為輸入,以量化后的碼流作為輸出,達(dá)到量化的目的。
1量化的功能介紹
取樣后的脈沖信號(hào)在時(shí)間上是離散的,但在幅值和空間上仍是連續(xù)的,即其可能取的值有無限多個(gè),這就需要對(duì)它采用四舍五入的方法,將其可能的幅值數(shù)由無限多個(gè)變?yōu)橛邢迋€(gè)值。這種將信號(hào)幅值由連續(xù)量變成離散量的過程稱為量化。
在不降低視覺效果的前提下,量化過程可減少圖像編碼長度,減少視覺恢復(fù)中不必要的信息。H.264采用標(biāo)量量化技術(shù),將每個(gè)圖像樣點(diǎn)編碼映射成較小的數(shù)值。一般標(biāo)量量化器的原理為:
式中:y為輸入樣本點(diǎn)編碼;QP為量化步長;FQ為y的量化值;round()取整函數(shù)(其輸出與輸入實(shí)數(shù)最近的整數(shù))。
2量化的算法介紹
在H.264中,量化步長Qstep共有52個(gè)值。如表1所示。其中,QP是量化參數(shù),是量化步長的序號(hào)。當(dāng)QP取最小值0時(shí),代表最精細(xì)的量化;當(dāng)QP取最大值51時(shí),代表最粗糙的量化。QP每增加6,Qstep增加1倍。應(yīng)用時(shí)可以在這個(gè)較寬的量化步長范圍根據(jù)實(shí)際需要靈活選擇。對(duì)于色度編碼,一般使用與亮度編碼同樣的量化步長。為了避免在較高量化步長時(shí)出現(xiàn)顏色量化人工效應(yīng),現(xiàn)在的H.264草案把色度的QP最大值大約限制在亮度QP最大值的80%范圍內(nèi)。最后的H.264草案規(guī)定,亮度QP的最大值是51;色度QP的最大值是39。
在H.264中,量化過程是對(duì)DCT的結(jié)果進(jìn)行操作:
式中:Yij是矩陣Y中的轉(zhuǎn)換系數(shù);Zij是輸出的量化系數(shù);Qstep是量化步長。
H.264量化過程還要同時(shí)完成DCT變換中“Ef”乘法運(yùn)算,它可以表述為:
式中:Wij是矩陣W中的轉(zhuǎn)換系數(shù);PF是矩陣EF中的元素。根據(jù)樣本點(diǎn)在圖像中的位置(i,j)取值如表2所示。
利用量化步長隨量化參數(shù)每增加6而增加1倍的性質(zhì),可以進(jìn)一步簡化計(jì)算,即:
式中:floor()為取整函數(shù)(其輸出不大于輸入實(shí)數(shù)的最大整數(shù))。式(3)可以寫為:
這樣,MF可以取整數(shù)。表3給出對(duì)應(yīng)QP值為0~5的MF值。對(duì)于QP值大于5的情況,只是qbits值隨QP值每增加6而增加1,而對(duì)應(yīng)的MF值不變。這樣,量化過程為整數(shù)運(yùn)算,可以避免使用除法,確保用16位算法來處理數(shù)據(jù),在沒有PSNR性能惡化的情況下,實(shí)現(xiàn)最小的運(yùn)算復(fù)雜度如表3所示。
具體量化過程的運(yùn)算為:
式中:“》”為右移運(yùn)算,右移1次完成整數(shù)除以2;sign()為符號(hào)函數(shù);f為偏移量。f的作用是改善恢復(fù)圖像的視覺效果,如對(duì)幀內(nèi)預(yù)測圖像塊f取2qbits/3;對(duì)幀間預(yù)測圖像塊廠取2qbits/6。
3具體實(shí)現(xiàn)
在該文中,用Verilog語言實(shí)現(xiàn)H.264的量化;運(yùn)用Modelsim進(jìn)行仿真;用QuartusⅡ進(jìn)行綜合。
根據(jù)Verilog編程,Modelsim仿真如圖1所示。
輸入的矩陣是[140,-1,-6,7,-19,-39,7,-92,22,17,8,31,-27,-32,-59,-21],最后量化的結(jié)果為[17,0,-1,0,-1,-2,0,-5,3,1,1,2,-2,-1,-5,-1]。由此可知,這與Iain E.G.Richardson給出的結(jié)果相符合。所用的開發(fā)板是紅色颶風(fēng)第三代開發(fā)板,F(xiàn)PGA芯片是Altra EP2C35F484C8。從綜合后的報(bào)告可以看出,消耗的資源不到1%,如圖2所示。綜合后的RTL圖如圖3所示。
4結(jié) 語
介紹了H.264的量化算法,并用Modelsim進(jìn)行了仿真,結(jié)果與理論完全一致。分析了在FPGA開發(fā)板上的資源的消耗。由此可知,完全可以用FPGA實(shí)現(xiàn)H.264的量化。
評(píng)論