曹 崢
(上海貝爾股份有限公司,上海 201702)
H.264/AVC有許多創(chuàng)新,比如幀內(nèi)的混合預測編碼、低復雜度的變換編碼等。最大的亮點是不需要除法和浮點運算的量化算法,量化以4×4的變換塊為單位進行。前向量化準則為 Z=ROUND((Y+f)/Qstep),反向準則為 Y=Z×Qstep,其中 Y={yi,i=0,…,N=15}為 4×4 的變換殘差塊,對應(yīng)的量化階塊 Z={zi|zi∈I,i=0,1, …,15},Qstep是范圍從0.625到224的量化步長。為了使量化器很好地匹配輸入信號,H.264中引入?yún)?shù)f調(diào)整死區(qū)大小,對于幀內(nèi)模式f=Qstep/3;對于幀間模式f=Qstep/6。然而f并不能適用于所有碼流。同時,由于圖像和視頻的最終接受者是人,人眼視覺系統(tǒng)和客觀質(zhì)量評估并不總是一致的,因此客觀質(zhì)量評估并不能完全正確地表示圖像質(zhì)量。
目前國內(nèi)外一些學者對H.264的量化器進行了改進。Thomas Wedi和Steffen Wittmann提出了在H.264的量化器中引入死區(qū)調(diào)整參數(shù)θ分開控制死區(qū)和重構(gòu)值位置的算法[1]。該算法可以在減小死區(qū)使細節(jié)被恢復的同時保持原有的重構(gòu)值位置不變,從而不會增加量化誤差。在此基礎(chǔ)上聯(lián)合優(yōu)化參數(shù)f和θ可以進一步提高量化器的性能[2],帶來0.5 dB左右的增益。但是這種方法需要傳輸參數(shù)θ,因此帶來了額外的開銷,同時也和標準解碼器不兼容。除此之外,上述方法都旨在提高量化器的客觀質(zhì)量,而沒有考慮如何提高主觀質(zhì)量。
針對這些不足,提出了基于視覺模型的率失真優(yōu)化的死區(qū)調(diào)整算法。該算法根據(jù)視覺加權(quán)的率失真代價值調(diào)整死區(qū)大小。由于死區(qū)是零點附近被量化為0的區(qū)域,因此本算法根據(jù)上述的率失真代價值將死區(qū)附近的信號自適應(yīng)地量化為0或1。本算法可有效提高圖像視覺質(zhì)量,同時沒有額外的開銷,和標準解碼器兼容,而且可適用于任何基于塊編碼的圖像和視頻壓縮標準。
根據(jù)香農(nóng)率失真理論,最優(yōu)的量化器是在給定碼率Rc約束條件下使失真最小的量化器[3]。對于一個有限階數(shù)的量化器,假定S是一組實數(shù)的集合,I={0,1,2,…}是量化階(quantization level)的有限集合,那么最優(yōu)的量化器滿足
其中 x是輸入信號,z是對應(yīng)的量化階,D(x,z)是 x被量化成z后產(chǎn)生的失真,R(x,z)是對應(yīng)的速率。如果對輸入信號的每一個值都按照式(1)選擇最優(yōu)的量化階,無疑可以得到最好的率失真性能。但是這種作法意味著巨大的計算量,幾乎是不可能實現(xiàn)的,因此需要減少處理的信號,使計算量下降。在圖像和視頻壓縮編碼中變換編碼后的信號可以近似為拉普拉斯分布[4]。拉普拉斯分布的特點是在離零點近的區(qū)域呈現(xiàn)比較陡峭的分布,而在遠端呈現(xiàn)近似均勻的平坦分布。由于H.264的量化器是死區(qū)大小為[0,Qstep-f]的均勻量化器,它量化大幅度信號的性能幾乎是最優(yōu)的[5],而對小信號性能較差。因此將研究重點放在死區(qū)及其附近的小信號區(qū)間。令第1個和第2個量化區(qū)間的區(qū)域為上述的小信號區(qū)間,并將該區(qū)間定義為自適應(yīng)窗wadpt?S。自適應(yīng)窗wadpt內(nèi)的信號允許的量化階的集合為 I′={0, 1}。 根據(jù)式(1),落在自適應(yīng)窗內(nèi)的信號x的最優(yōu)量化階z*為
當碼率等于給定的碼率約束Rc時,式(2)的受限問題可以轉(zhuǎn)換為不受限的求解方程[6],z*為
舉例說明該算法:如圖1所示,系數(shù)y1和y2落在自適應(yīng)窗wadpt內(nèi)的4×4的殘差矩陣Y,其中y1落在死區(qū)內(nèi)而y2落在第2個量化區(qū)間,因此按照原有的量化規(guī)則,y1會被量化為0,而y2被量化為1。根據(jù)式(3)對y1和y2重新量化后,原來被量化為0的y1被量化為1,而原來被量化為1的y2被量化為0。自適應(yīng)窗外的系數(shù)保持原有的量化階不變。
圖1 調(diào)整量化階的示意圖
在H.264中,假定殘差塊中有m個系數(shù)位于自適應(yīng)窗wadpt內(nèi),每個系數(shù)可能有2個量化階0或1,那么m個系數(shù)可以產(chǎn)生2m種可能的量化結(jié)果。保持殘差塊內(nèi)其他系數(shù)的量化階不變,這m個系數(shù)產(chǎn)生的2m種可能的量化結(jié)果就構(gòu)成了 2m個候選的量化階塊 Zi,i∈L,L={0,1,2,…,2m-1}。這樣為m個系數(shù)選擇最優(yōu)量化階的問題就轉(zhuǎn)化為在2m個候選量化階塊中選擇最優(yōu)量化塊的問題。在給定碼率約束Rc的條件下,最優(yōu)解為
轉(zhuǎn)變成不受限的問題后,最優(yōu)的量化塊Z*可以由最小化代價函數(shù) J(Y,Zi),i∈L 得到
其中,λ≥0,Jλ(Y,Zi)=D(Y,Zi)+λ×R(Y,Zi), R(Y,Zi)是Y量化成 Zi時編碼花費的比特數(shù),D(Y,Zi)是 Y量化成Zi重構(gòu)矩陣Y^i和Y之間的失真。
人是圖像和視頻信息的最終接收者,因此在壓縮編碼中應(yīng)該考慮人眼的視覺特性。人眼誤差敏感度是空間頻率的函數(shù)。一般地,人眼誤差敏感函數(shù)可以看作是帶通濾波器,它在某個頻點處達到最大的頻率響應(yīng)后,隨著頻率的增加而快速下降。也就是說人眼對低頻誤差較敏感,而對高頻誤差不敏感。利用人眼的這一特性,視覺加權(quán)的率失真優(yōu)化的死區(qū)調(diào)整算法可以獲得更高的主觀質(zhì)量,同時通過給高頻分配較少的碼字降低編碼速率。
圖像/視頻編碼塊中灰度能量的大小表示它內(nèi)在的噪聲屏蔽能力。噪聲屏蔽能力和人眼察覺不到的量化噪聲有關(guān)[7]。人眼視覺系統(tǒng)中函數(shù)H^(f)用來衡量人眼對不同頻率誤差的敏感度。H^(f)定義如下
式中:δ=11.636/角度,頻率f的單位是周/角度。f可以進一步變換成 f(周/角度)=fd(周/像素)×fs(像素/角度),其中
式中:N是DCT塊的大小,在H.264中N=4,d為觀看距離??梢奻s和觀看距離有關(guān),對于高度是288像素的CIF圖像,當觀看距離是圖像高度4倍時,fs=20像素/角度。
根據(jù)上面介紹的人眼視覺模型,1個位于第i行和第j列的像素能量可以加權(quán)為從而視覺加權(quán)失真DW(Y,Z)可以定義為
而視覺加權(quán)的率失真優(yōu)化的最優(yōu)量化塊為
由 式(11)和式(12)可以看出隨著頻率的增加,每個像素的失真占總失真的比重不斷減小。因此較高頻率的像素易被量化為0,而較低頻率的像素易被量化為1。通過給高頻像素分配較少的比特,可以在保證主觀圖像質(zhì)量不變的條件下使用較少的比特。
綜上所述,視覺加權(quán)的率失真優(yōu)化的死區(qū)調(diào)整算法主要步驟如下:
1)設(shè)置自適應(yīng)窗wadpt;
2)確定4×4編碼塊中落在wadpt中系數(shù)的個數(shù)m;
3)編碼候選量化塊 Zi,計算對應(yīng)失真 DW(Yi,Zi)和碼率 R(Yi,Zi),i=0,…,2m-1;
4)計算每個候選塊的率失真代價函數(shù)JW(Yi,Zi)=DW(Yi,Zi)+ λR(Yi,Zi),i=0, …,2m-1;
5)求出{JW(Yi,Zi),i=0,…,2m-1}中的最小值 Jmin;最優(yōu)量化塊Z*就是對應(yīng)Jmin的量化塊。
基于JM11.0版本的標準參考代碼,分別對率失真優(yōu)化的死區(qū)調(diào)整算法DRDO和視覺加權(quán)的率失真優(yōu)化的死區(qū)調(diào)整算法PDRDO進行了測試。編碼參數(shù)設(shè)置為幀率30 f/s,圖像格式 4∶2∶0,序列的幀格式為 IPBB,P 幀和 B 幀使用相同的量化階,在進行率失真代價函數(shù)的計算時,拉格朗日因子λ和H.264中進行編碼模式選擇時使用的λmode取值相同。
DRDO算法的測試結(jié)果如圖2和圖3所示。測試序列分別是QCIF格式的News序列和CIF格式的Foreman序列,編碼長度為100幀。圖中圓圈標記的曲線是由H.264的參考代碼得到的率失真性能,正方形標記的曲線是在原有量化器中加入DRDO算法得到的性能曲線。由上述的實驗結(jié)果可以看出,改進后的量化器無論在高碼率還是低碼率情況下性能都優(yōu)于原有量化器,并且增益在高碼率情況下表現(xiàn)更為明顯,一般可以超過1 dB。
圖2 添加DRDO前后對News序列(176×144)的率失真性能比較
圖3 添加DRDO前后對Foreman序列(352×288)的率失真性能比較
圖4給出了H.264、DRDO算法和PDRDO算法分別對CIF格式的Mobile序列編碼300幀后得到的率失真曲線。從圖中可以看出DRDO算法提高了量化器的率失真性能,PDRDO算法的率失真曲線位于DRDO算法甚至H.264的曲線之下。然而PDRDO算法編碼的圖像擁有和原量化器相同的主觀質(zhì)量(圖略),同時使用更少的比特。表1給出了Mobile序列352×288P在相同量化階下PDRDO算法和H.264相比節(jié)約的比特和得到的編碼增益。
圖4 H.264,DRDO和PDRDO的率失真性能比較
表1 PDRDO算法的節(jié)約比特和得到的編碼增益
主觀質(zhì)量評估遵循規(guī)范ITU-R BT.500-11[8]。在相同量化階下參考代碼和PDRDO算法得到的解碼序列在屏幕上并排放置。在觀眾不知道序列由哪個算法產(chǎn)生的條件下,進行打分。一輪結(jié)束后調(diào)換序列的位置再進行一次打分。PDRDO算法的平均主觀質(zhì)量分數(shù)幾乎和H.264的相同。因而雖然PDRDO算法得到的信噪比低,但和H.264有相同的主觀質(zhì)量,同時還節(jié)約了10%的碼率。
率失真優(yōu)化死區(qū)的方法可以有效地提高編碼的率失真性能。通過將人眼視覺模型引入率失真代價值的計算,該算法可以在不影響主觀視覺質(zhì)量的前提下,扔掉較多的高頻信號,從而花費較少的編碼比特。主觀質(zhì)量評估顯示當主觀質(zhì)量相同時,基于視覺加權(quán)的率失真優(yōu)化的死區(qū)調(diào)整算法可以平均節(jié)約10%的編碼比特。該算法沒有額外的開銷,適用于任何基于塊編碼的圖像和視頻壓縮標準,而且和標準解碼器兼容。
[1]WEDI T,WITTMANN S.Quantization with an adaptive dead zone size for H.264/AVC FRExt[C]//Proc.JVT DOCUMENT, JVT-K026.Munich,Germany:[s.n.], 2004:51-58.
[2]WEDI T,WITTMANN S.Rate-distortion constrained estimation of quantization offsets[C]//Proc.JVT DOCUMENT, JVT-0066.Busan,KR:JVT, 2005:89-96.
[3]SHANNON C E.A mathematical theory of communication[J].Bell Syst.Tech.,1948,27:379-423.
[4]SMOOT S R,ROWE L A.Study of DCT coefficients distributions[J].Proc.SPIE,1996,1:403-411.
[5]GY?RGY A,LINDER T.Optimal entropy-constrained scalar quantization of a uniform source[J].IEEE Trans.Inform.Theory, 2000, 46:2704-2711.
[6]EVERETT H.Generalized lagrange multiplier method for solving problems of optimum allocation of resources[J].Operations Reasearch,1963,11(3):399-417.
[7]TAN S H,PANG K K.Classified perceptual coding with adaptive quantization[J].IEEE Trans.Circuits Syst.Video Technol., 1996, 6(4):375-388.
[8]ITU-R.Methodology for the subjective assessment of the quality of television pictures[S].2002.