H.264/AVC中量化的Verilog實(shí)現
H.264作為新一代的視頻壓縮標準,是由ITU-T的視頻編碼專(zhuān)家組和ISO/IEC的MPEG(運動(dòng)圖像編碼專(zhuān)家組)成立的聯(lián)合視頻小組共同開(kāi)發(fā)的。它優(yōu)異的壓縮性能也將在數字電視廣播、視頻實(shí)時(shí)通信、網(wǎng)絡(luò )視頻流媒體傳遞以及多媒體通信等各個(gè)方面發(fā)揮重要的作用。
在核心技術(shù)上,H.264/AVC采用各種有效的技術(shù),如統一的VLC符號編碼、1/4像素精度的運動(dòng)估計、多模式運動(dòng)估計、基于4×4塊的整數變換、分層編碼語(yǔ)法等。由于采用了整數變換,計算不會(huì )出現浮點(diǎn)數,而且精度高等。這些措施使得H.264算法具有很高的編碼效率。在量化方面,量化步長(cháng)采用52個(gè),下面將主要分析量化。在此,提出量化的Verilog實(shí)現,將變換后的數據作為輸入,以量化后的碼流作為輸出,達到量化的目的。
1量化的功能介紹
取樣后的脈沖信號在時(shí)間上是離散的,但在幅值和空間上仍是連續的,即其可能取的值有無(wú)限多個(gè),這就需要對它采用四舍五入的方法,將其可能的幅值數由無(wú)限多個(gè)變?yōu)橛邢迋€(gè)值。這種將信號幅值由連續量變成離散量的過(guò)程稱(chēng)為量化。
在不降低視覺(jué)效果的前提下,量化過(guò)程可減少圖像編碼長(cháng)度,減少視覺(jué)恢復中不必要的信息。H.264采用標量量化技術(shù),將每個(gè)圖像樣點(diǎn)編碼映射成較小的數值。一般標量量化器的原理為:

式中:y為輸入樣本點(diǎn)編碼;QP為量化步長(cháng);FQ為y的量化值;round()取整函數(其輸出與輸入實(shí)數最近的整數)。
2量化的算法介紹
在H.264中,量化步長(cháng)Qstep共有52個(gè)值。如表1所示。其中,QP是量化參數,是量化步長(cháng)的序號。當QP取最小值0時(shí),代表最精細的量化;當QP取最大值51時(shí),代表最粗糙的量化。QP每增加6,Qstep增加1倍。應用時(shí)可以在這個(gè)較寬的量化步長(cháng)范圍根據實(shí)際需要靈活選擇。對于色度編碼,一般使用與亮度編碼同樣的量化步長(cháng)。為了避免在較高量化步長(cháng)時(shí)出現顏色量化人工效應,現在的H.264草案把色度的QP最大值大約限制在亮度QP最大值的80%范圍內。最后的H.264草案規定,亮度QP的最大值是51;色度QP的最大值是39。

在H.264中,量化過(guò)程是對DCT的結果進(jìn)行操作:

式中:Yij是矩陣Y中的轉換系數;Zij是輸出的量化系數;Qstep是量化步長(cháng)。
H.264量化過(guò)程還要同時(shí)完成DCT變換中“Ef”乘法運算,它可以表述為:

式中:Wij是矩陣W中的轉換系數;PF是矩陣EF中的元素。根據樣本點(diǎn)在圖像中的位置(i,j)取值如表2所示。

利用量化步長(cháng)隨量化參數每增加6而增加1倍的性質(zhì),可以進(jìn)一步簡(jiǎn)化計算,即:

式中:floor()為取整函數(其輸出不大于輸入實(shí)數的最大整數)。式(3)可以寫(xiě)為:

這樣,MF可以取整數。表3給出對應QP值為0~5的MF值。對于QP值大于5的情況,只是qbits值隨QP值每增加6而增加1,而對應的MF值不變。這樣,量化過(guò)程為整數運算,可以避免使用除法,確保用16位算法來(lái)處理數據,在沒(méi)有PSNR性能惡化的情況下,實(shí)現最小的運算復雜度如表3所示。

具體量化過(guò)程的運算為:

式中:“》”為右移運算,右移1次完成整數除以2;sign()為符號函數;f為偏移量。f的作用是改善恢復圖像的視覺(jué)效果,如對幀內預測圖像塊f取2qbits/3;對幀間預測圖像塊廠(chǎng)取2qbits/6。
3具體實(shí)現
在該文中,用Verilog語(yǔ)言實(shí)現H.264的量化;運用Modelsim進(jìn)行仿真;用QuartusⅡ進(jìn)行綜合。
根據Verilog編程,Modelsim仿真如圖1所示。

輸入的矩陣是[140,-1,-6,7,-19,-39,7,-92,22,17,8,31,-27,-32,-59,-21],最后量化的結果為[17,0,-1,0,-1,-2,0,-5,3,1,1,2,-2,-1,-5,-1]。由此可知,這與Iain E.G.Richardson給出的結果相符合。所用的開(kāi)發(fā)板是紅色颶風(fēng)第三代開(kāi)發(fā)板,FPGA芯片是Altra EP2C35F484C8。從綜合后的報告可以看出,消耗的資源不到1%,如圖2所示。綜合后的RTL圖如圖3所示。

4結 語(yǔ)
介紹了H.264的量化算法,并用Modelsim進(jìn)行了仿真,結果與理論完全一致。分析了在FPGA開(kāi)發(fā)板上的資源的消耗。由此可知,完全可以用FPGA實(shí)現H.264的量化。
評論