韓公海,萬(wàn) 帥,公衍超
(西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710072)
H.264/AVC和可伸縮視頻編碼(Scalable Video Cod?ing,SVC)[1]都支持分級(jí)B幀編碼結(jié)構(gòu),其與傳統(tǒng)的IPPP/IBBP結(jié)構(gòu)有很大不同。在傳統(tǒng)的編碼結(jié)構(gòu)中,B幀不作為參考幀,而在可分級(jí)的編碼結(jié)構(gòu)中,除最高時(shí)間級(jí)的B幀外,其他時(shí)間級(jí)上的B幀都作為參考幀,這種編碼結(jié)構(gòu)顯著提高了編碼效率[2]。
MPEG提出對(duì)分級(jí)B幀編碼結(jié)構(gòu)采用JVT-P014的量化參數(shù)分配方案。除此之外,文獻(xiàn)[3]中提出了基于模型的分級(jí)編碼QP分配方案,文獻(xiàn)[4]中提出了自適應(yīng)的分級(jí)編碼QP分配方案。文獻(xiàn)[5]中提出了自適應(yīng)圖像組結(jié)構(gòu)編碼。上述方案均是基于時(shí)域級(jí)別重要性進(jìn)行QP分配的思想,即量化參數(shù)與時(shí)域級(jí)別相關(guān),對(duì)低時(shí)域級(jí)別采用較小的QP,高時(shí)域級(jí)別采用較大的QP。然而,在存在多個(gè)時(shí)域級(jí)別的情況下,按照提案JVT-P014 QP分配方案,關(guān)鍵幀與鄰近B幀之間的PSNR會(huì)有較大差值,產(chǎn)生較大的PSNR波動(dòng)。這種質(zhì)量波動(dòng)在中、高碼率下并不易被人眼察覺(jué)。然而在低碼率下,幀與幀之間的質(zhì)量波動(dòng)會(huì)導(dǎo)致明顯的視頻主觀質(zhì)量波動(dòng),嚴(yán)重影響視頻的觀看質(zhì)量,因此需要針對(duì)低碼率下分級(jí)B幀結(jié)構(gòu)編碼的QP分配方案進(jìn)行改進(jìn)。
圖1顯示的是具有4個(gè)時(shí)間級(jí)的分級(jí)B幀編碼結(jié)構(gòu),在一個(gè)圖像組(Group of Picture,GoP)中分成兩部分[6],關(guān)鍵幀和分級(jí)B幀。關(guān)鍵幀采用幀內(nèi)編碼模式(I幀)或幀間編碼模式(P幀,參考幀為前一個(gè)關(guān)鍵幀),如圖1中第0,8和16幀;分級(jí)B幀是除關(guān)鍵幀外的其他B幀,采用顯示順序上鄰近兩幀作為參考幀。整個(gè)序列的第一幀是瞬時(shí)解碼器刷新(Instantaneous Decoder Refresh,IDR)幀。在分級(jí)B幀的編碼結(jié)構(gòu)中,首先是編碼關(guān)鍵幀I0/P0,其他幀按照編碼順序依次編碼。由于編碼順序和顯示順序不一致,會(huì)產(chǎn)生一定的延遲。圖1中的箭頭表示所需要的參考幀,例如編碼第4幀需要用到第1幀和第8幀作參考。不同時(shí)間級(jí)上的B幀對(duì)視頻序列編碼質(zhì)量影響是不一樣的,低時(shí)間級(jí)的幀需要直接或者間接被高時(shí)間級(jí)的幀用作參考,其編碼質(zhì)量的好壞直接影響整體的編碼質(zhì)量。所以對(duì)不同時(shí)間級(jí)上的B幀應(yīng)該分配不同的QP以提高編碼效率,即時(shí)間級(jí)高的幀應(yīng)使用較大的QP。如果考慮編碼效率,一個(gè)GoP的時(shí)間級(jí)數(shù)應(yīng)該合理權(quán)衡,時(shí)間級(jí)數(shù)太少就不能充分發(fā)揮這種編碼結(jié)構(gòu)的效率,時(shí)間級(jí)數(shù)太多則會(huì)帶來(lái)較大的時(shí)間延遲。
在分級(jí)B幀的編碼結(jié)構(gòu)中,編碼效率主要依賴于不同時(shí)間級(jí)上的QP。如果不同時(shí)間級(jí)上的QP均采用率失真優(yōu)化[7]方法確定,計(jì)算復(fù)雜度將會(huì)非常高。為了減小計(jì)算量,通常采用公式(1)MPEG提案JVT-P014[6]中的QP分配方案,即
式中:k=0,1,2,…,T-1,表示編碼幀所處的時(shí)間級(jí);QP0表示關(guān)鍵幀的QP;T表示一個(gè)GoP內(nèi)時(shí)間級(jí)數(shù)。
由式(1)可知,時(shí)間1級(jí)B幀的QP在關(guān)鍵幀的基礎(chǔ)上加4,其他時(shí)間級(jí)的B幀在前一時(shí)間級(jí)QP的基礎(chǔ)上加1。目前這種QP的分配方案并沒(méi)有理論的證明,只是在大量的實(shí)驗(yàn)基礎(chǔ)上得出的。這種分配方法對(duì)大部分序列編碼效率比較高,但是在低碼率下會(huì)產(chǎn)生較大的PSNR波動(dòng)。在中、高碼率下,由于關(guān)鍵幀與鄰近B幀編碼質(zhì)量都相對(duì)較高,人眼不易察覺(jué)視頻幀的質(zhì)量波動(dòng);然而這種質(zhì)量波動(dòng)在低碼率下十分明顯,引起嚴(yán)重的視頻主觀質(zhì)量下降。上述問(wèn)題主要是因?yàn)樘岚窲VT-P014 QP分配方法使得關(guān)鍵幀的QP與鄰近B幀的QP相差較大,導(dǎo)致鄰近B幀編碼質(zhì)量較差。根據(jù)人眼的視覺(jué)暫留效應(yīng),暫留時(shí)間0.05~0.2 s。假設(shè)視頻幀率是30 Hz,在人眼暫留時(shí)間內(nèi)會(huì)播放1.5~6幀。如圖2給出了標(biāo)準(zhǔn)測(cè)試序列football每幀對(duì)應(yīng)的PSNR,GoP設(shè)定為16,QP0為35。從圖中可以看出關(guān)鍵幀的質(zhì)量比鄰近B幀質(zhì)量要高許多。假如人眼在某一刻關(guān)注的是關(guān)鍵幀,根據(jù)人眼的視覺(jué)暫留效應(yīng),下一次人眼會(huì)看到關(guān)鍵幀后面的1~6幀中的某一幀。而關(guān)鍵幀后面B幀的編碼質(zhì)量比較差,人眼就會(huì)明顯感受到視頻質(zhì)量波動(dòng),這種質(zhì)量波動(dòng)在低碼率下尤為明顯。為了減少影響主觀感受的視頻質(zhì)量波動(dòng),需要減小關(guān)鍵幀與鄰近B幀的PSNR差距,即減小關(guān)鍵幀與鄰近B幀之間的QP差值。然而,簡(jiǎn)單地減小QP差值會(huì)降低序列總體率失真性能,所以必須從盡可能保證整體編碼效率即率失真性能的角度出發(fā),調(diào)整原有的QP分配策略。
由于利用了視頻序列的時(shí)間相關(guān)性,分級(jí)B幀編碼效率比較高。在一個(gè)GoP內(nèi)最高時(shí)間級(jí)B幀用鄰近B幀做參考。經(jīng)過(guò)大量實(shí)驗(yàn)觀察,最高時(shí)間級(jí)B幀的宏塊編碼模式大部分采用skip模式,從而大大節(jié)約了編碼比特?cái)?shù)。因此,最高時(shí)間級(jí)B幀采用較大的QP對(duì)其編碼質(zhì)量影響較小,并能夠補(bǔ)償由于減小關(guān)鍵幀與鄰近B幀的QP差值所增加的編碼比特?cái)?shù)。按照以上思路,本文提出了低碼率下分級(jí)B幀QP分配的改進(jìn)方案
為了驗(yàn)證算法的性能,使用SVC的參考軟件JSVM 9.19.7[8]進(jìn)行仿真實(shí)驗(yàn)。使用CIF格式(352×288)的標(biāo)準(zhǔn)測(cè)試序列football,foreman,mother-daughter和waterfall進(jìn)行測(cè)試,關(guān)鍵幀量化參數(shù)QP0分別設(shè)置為33,35,37和39,幀率30 Hz,GoP大小為16,編碼幀數(shù)為256幀。經(jīng)實(shí)驗(yàn)觀察,上面關(guān)鍵幀QP設(shè)置能觀察到視頻質(zhì)量的波動(dòng)。表1在低碼率下對(duì)提案JVT-P014中的QP分配方案與本文提出的改進(jìn)方案進(jìn)行比較,測(cè)度采用ΔPSNR[9]。由表1中數(shù)據(jù)可見(jiàn),對(duì)于序列football,foreman和waterfall,改進(jìn)方案的編碼效率有所提高,對(duì)于序列mother-daughter編碼效率略有下降,但編碼率失真性能基本保持不變。由圖3和圖4可以看出,采用改進(jìn)方案編碼B幀的PSNR值與提案JVT-P014比較均有明顯的提高。由于關(guān)鍵幀與分級(jí)B幀PSNR差值減小,因此視頻質(zhì)量波動(dòng)也會(huì)明顯減輕。
表1 提案JVT-P014和改進(jìn)方案編碼效率對(duì)比
為定量說(shuō)明改進(jìn)算法的有效性,采用式(3)關(guān)鍵幀與B幀平均PSNR的差值作為視頻波動(dòng)性的評(píng)價(jià)標(biāo)準(zhǔn),對(duì)上述實(shí)驗(yàn)結(jié)果用式(4)進(jìn)行統(tǒng)計(jì)測(cè)試。
從表2的實(shí)驗(yàn)結(jié)果可以看出,在低碼率下,本文提出的方案比提案JVT-P014方案PSNR平均差值有明顯下降。對(duì)于運(yùn)動(dòng)特性較小的mother-daughter和waterfall序列,平均PSNR差值都減小了14%以上,對(duì)于運(yùn)動(dòng)特性較大的序列football和foreman,平均PSNR差值減小了10%左右,說(shuō)明改進(jìn)方案在減小PSNR波動(dòng)性方面有明顯的優(yōu)勢(shì)。綜合表1與表2中數(shù)據(jù)可得,在低碼率下,本文中提出的分級(jí)B幀QP分配方案與提案JVT-P014方案相比,能夠明顯降低序列幀之間PSNR的波動(dòng)性,并維持總體率失真性能基本不變。
表2 提案JVT-P014與改進(jìn)方案的PSNR差值的比較
本文針對(duì)低碼率下可分級(jí)視頻編碼分級(jí)B幀預(yù)測(cè)結(jié)構(gòu)存在視頻主觀質(zhì)量嚴(yán)重波動(dòng)的問(wèn)題,提出了一種新的分級(jí)B幀結(jié)構(gòu)編碼的QP參數(shù)分配方法。該方法能夠在保持整體編碼性能不下降的情況下,明顯減小低碼率下視頻的質(zhì)量波動(dòng),改善了視頻的主觀質(zhì)量。
[1]SCHWARZ H,MARPE D,WIEGAND T.Overview of the scalable video coding extension of the H.246/AVC standard[J].IEEE Trans.CSVT,2007,17(9):1103-1120.
[2]SCHWARZ H,MARPE D,WIEGAND T.Analysis of hierarchical B pictures and MCTF[C]//Proc.ICME2006.Toronto,Canada:IEEE Press,2006:1929-1932.
[3]LI X,AMON P,HUTTER A,et al.Model based analysis for quantization parameter cascading in hierarchical video coding[C]//Proc.ICIP2009.Cairo,Egypt:IEEE Press,2009:3765-3768.
[4]LI X,AMON P,HUTTER A,et al.Adaptive quantization parameter cascading for hierarchical video coding[C]//Proc.ISVAS2010.[S.l.]:IEEE Press,2010:4197-4200.
[5]周熙,于鴻洋,張萍.基于Non-dyadic自適應(yīng)GoP結(jié)構(gòu)的H.264/SVC算法改進(jìn)[J].電視技術(shù),2010,34(S1):44-47.
[6]JVT-P014,Hierarchical B pictures[S].2005.
[7]RAMCHANDRAN K,ORTEGA A,VETTERLI M.Bit allocation for dependent quantization with applications to multiresolution and MPEG video coders[J].IEEE Trans.Image,1994,3(5):533-545.
[8]JSVM 9.19.7,H.264 SVC reference software and manual[S].2010.
[9]VCEG-M33,Calculation of average PSNR differences between RD-curves[S].2001.