周 熙,于鴻洋,張 萍
(電子科技大學(xué) 電子工程學(xué)院,四川 成都 610054)
為了適應(yīng)網(wǎng)絡(luò)的異構(gòu),JVT在原來H.264/AVC的基礎(chǔ)上,提出了可分級的視頻編碼擴展H.264/SVC[1-3]。在SVC中,時間可分級特性是其中很重要的一部分。在SVC草案設(shè)計初始的時候,是用運動補償時域濾波(MCTF)的方法來實現(xiàn)時域可分級特性。僅管MCTF有著開環(huán)結(jié)構(gòu)不會引起誤差漂移等一些優(yōu)點,但是MCTF的編碼復(fù)雜性和效率改進的有限性使得JVT放棄了MCTF,而改用分級B幀來實現(xiàn)時域可分級[4-5]。
分級B幀的預(yù)測結(jié)構(gòu)如圖1所示,圖中,每一幀下方的數(shù)字表示該幀的編碼順序,幀號下面的TN表示該幀所在的分層。
圖1中展示了兩種不同的分級B幀預(yù)測結(jié)構(gòu):Dyadic預(yù)測和Non-dyadic預(yù)測。圖1a中是傳統(tǒng)的分級B幀預(yù)測,首先,T0層進行前向預(yù)測,形成關(guān)鍵幀(圖中以黑色顯示),然后T0層之間進行雙向預(yù)測,形成T1層,T1和T0層之間再進行雙向預(yù)測,形成T2層,如此下去,直到構(gòu)成一個完整的GoP。當(dāng)需要提取一定的時間分辨力時只需要將相應(yīng)的層及以下所有的層提取出來就可以。以圖1a為例,假設(shè)序列的原始幀率為30 f/s(幀/秒),那么提取15 f/s時,只需要把T2層和以下所有的層提取出來;提取7.5 f/s時,只需提取出T1和T0層。由圖1a可以看出,Dyadic預(yù)測的幀數(shù)是以2為底的指數(shù)增長的,從小到大依次為1,2,4和8,與每種時間分級的幀數(shù)相對應(yīng),所以Dyadic預(yù)測結(jié)構(gòu)下GoP大小(SGop)也必須為2的指數(shù),此時可以提取出lb SGop個時間分級。
圖1b的Non-dyadic預(yù)測結(jié)構(gòu)有些許不同:預(yù)測的幀數(shù)不再是成指數(shù)增長的,從低到高依次為1,3,6和12,因此,所需的GoP大小也不必是2的指數(shù)。這種結(jié)構(gòu)下,GoP大小的限制被放寬。Dyadic和Non-dyadic預(yù)測方式都符合H.264/AVC規(guī)范。
在以GoP為單元進行編碼的H.264/SVC模型中,每一層的GoP的大小是固定的,但是往往不同的視頻內(nèi)容可能有著各自最合適的GoP大小?;诖?,筆者提出了AGS改進算法。
圖1 分級B幀的預(yù)測結(jié)構(gòu)
同一段視頻序列用不同的GoP大小進行編碼的效率是不相同的。具體來說,視頻內(nèi)容變化劇烈的圖像GoP應(yīng)該越小越好,這樣將要編碼的序列限制在一個小的時間段內(nèi),圖像之間的相關(guān)性才不會明顯減弱,編碼效率也就越高。反之,如果視頻內(nèi)容變化平緩,那GoP應(yīng)該越大越好,就可以充分利用圖像間的相關(guān)性。這就是AGS的出發(fā)點。AGS曾被用在SVC的MCTF中,但現(xiàn)在MCTF已被移除。而在分級B幀上做AGS研究的還比較少。
AGS里每個GoP傳統(tǒng)的預(yù)測結(jié)構(gòu)是Dyadic預(yù)測,因此,GoP大小被限制為2N,N非負(fù)整數(shù)。在這種結(jié)構(gòu)下,每種GoP尺寸有不同的時間分級,整個序列的時間分級的級數(shù)由最小GoP(SminGop)來決定,即時間分級的級數(shù)由為lb SminGop+1?,F(xiàn)有的很多關(guān)于AGS的研究基本上都是基于這種結(jié)構(gòu)[6-9],這種結(jié)構(gòu)有一個缺點,就是沒有充分利用到幀間的相關(guān)性。舉個例子來說,假設(shè)有一個編碼序列,設(shè)定SminGop為4,第1幀到第14幀之間相關(guān)性很強,適于編碼到一個GoP,而第15幀以后適于編碼到另一個GoP,那么用Dyadic結(jié)構(gòu)預(yù)測時,自適應(yīng)結(jié)果就很可能是8 SminGop+4 SminGop+4 SminGop,如圖2a所示。
Non-dyadic預(yù)測結(jié)構(gòu)比Dyadic結(jié)構(gòu)在GoP上有更大的彈性,那么Dyadic結(jié)構(gòu)下GoP尺寸滿足式(1)所示的關(guān)系
而Non-dyadic結(jié)構(gòu)滿足式(2)所示的關(guān)系。從該式可以看出,Non-dyadic結(jié)構(gòu)的關(guān)系是線性的。
圖2 AGS的預(yù)測結(jié)構(gòu)
因此,采用Non-dyadic預(yù)測結(jié)構(gòu),就會更充分的利用幀間相關(guān)性,結(jié)果就可能變?yōu)?2 SminGop+4 SminGop。如圖2b所示。因此,Non-dyadic相比Dyadic可以具有更好的編碼性能。另外,一些AGS的研究中引入了場景切換檢測(Scene Change Detection,SCD)[10],即 GoP 在場景切換處被截斷,以提高編碼效率,但是GoP截斷后會導(dǎo)致時域可分級性失效,從而不能進行時間可分級,因此,本文并沒有采用這種方法。
決定了所采用的GoP預(yù)測結(jié)構(gòu),下一步就是如何確定當(dāng)前的最佳的GoP大小。在文獻[8]中,每種GoP都被計算一次,然后從中選擇最佳編碼效率的GoP作為最后的大小。這種方法盡管可以獲得很高的PSNR,但是復(fù)雜度大大增加。因此,找到一個復(fù)雜度低又不失編碼效率的方法成為研究的重點。借鑒于視頻邊緣檢測的塊直方圖差(Bock Histogram Difference,BH)的概念[11],筆者找到了一個編碼效率較高而復(fù)雜度低的AGS算法。
BH這個概念最先被用在視頻索引與存儲的場景切換檢測算法上,BH在場景切換檢測中,被用做檢測場景切換的因子。BH是基于圖像的直方圖絕對誤差和(Sum of Absolute Difference,SAD),SAD 的計算公式為
式中:SADhist表示直方圖絕對誤差和,l表示直方圖等級,n表示第n幀,Hn(l)表示第n幀的第l級的直方圖值。計算Hn(l)的時候,可以基于整個圖像來統(tǒng)計,也可以基于部分圖像來統(tǒng)計?;谡麄€圖像來統(tǒng)計時,被稱為DOH(Difference of Histogram),當(dāng)基于塊(此處的塊不一定和H.264編碼時的宏塊大小相同)來統(tǒng)計時,就是要討論的BH。BH計算公式為
圖3 測試序列的BH圖(截圖)
圖3中,Akiyo值較小,這是由于Akiyo序列的變化相對較平緩;Bus和Bus2序列的變化劇烈些,所以BH值較大;而Coastguard序列的BH值在Akiyo和Bus之間。Coastguard序列在第23~25幀之間有一個峰,這是因為這之間突然有大部分背景出現(xiàn),所以造成一個峰值。圖4顯示了背景出現(xiàn)的過程。利用BH,就可以度量圖像序列的變化程度。這種度量很適合用在AGS里。
基于BH,可以量化一個序列內(nèi)圖像的變化程度,稱這個變化程度為視頻變化因子 (Video Change Factor,VCF)。長度為N的序列的VCF計算如下
用VCF(N)和指定的閾值作比較,就可以用來判斷最合適的SGoP
圖4 Coastguard第22~25幀圖像
式中:T表示閾值。?」運算表示向下取整。但是,直接使用式(7)會處理不了一種特別的情況,如在將要編碼的圖像序列中,第5幀和第6幀之間有一個場景切換(就是從一個場景切換到另一個場景),而序列的第1~4幀之間的SCF因子變化很小,以至于可以忽略,在這種情況下,場景切換時帶來的BH值的突變很可能被抵消掉,用式(7)作判決時,場景切換的兩幀圖像將很可能會被編碼到同一個GoP中。而正常情況下,場景切換處的兩幀應(yīng)該分屬于不同的GoP。鑒于此,對式(7)的GoP判決方式進行了如式(8)的改進。
式中:α表示另一個閾值。式中最后一個條件表示,如果下一幀圖像的BH明顯大于之前圖像的BH平均值時,那么GoP應(yīng)該從此處截斷,這樣就可以將場景切換的影響減少到最小。AGS的整個算法的流程圖如圖5所示。
圖5 AGS算法的流程圖
圖6 AGS實驗結(jié)果
將6種編碼方式做了對比實驗:GoP 為 2,4,8 和 16的常規(guī)SVC編碼、使用Dyadic AGS的SVC編碼和使用Non-Dyadic AGS的SVC編碼。AGS實驗參數(shù)如下:直方圖采用64個等級,塊的大小為16像素,AGS采用的最小GoP為 4,閾值 T為 155,閾值 α為 3。測試是基于JSVM9.18 模型。 每種編碼方式分別用 20,22,24,…,50,共16個量化參數(shù)QP進行編碼。
所有的測試序列都被經(jīng)過了時間的下采樣。這是因為原始序列的變化幅度不是很大,經(jīng)過下采樣后,會增加VCF,從而可以測試GoP更小的情況。實驗分別對Akiyo,Bus,Silent,F(xiàn)oreman,Akiyo+Bus和 Silent+Foreman 進行了測試。實驗結(jié)果顯示,Akiyo和Bus序列的改進不是很大,基至略微下降,這是因為這兩個序列內(nèi)容的變化相對穩(wěn)定,所以最佳GoP會也不會有大的改變,AGS沒有起到過多的作用。Bus測試序列的結(jié)果如圖6a所示。而Silent和Foreman序列的變化則相對劇烈些,AGS從而起到了一定的效果,F(xiàn)oreman的結(jié)果如圖6b所示,從圖中可以看出,相比較最佳的常規(guī)SVC編碼(此時GoP為8)而言,平均約有0.06 dB的改善。序列Akiyo+Bus和Silent+Foreman是將兩個不同序列聯(lián)接起來,這樣AGS更能夠起到自適應(yīng)的作用,Silent+Foreman的實驗結(jié)果如圖6c所示,采用AGS后,相比較最佳的常規(guī)SVC編碼(此時SGoP為16)而言,平均約有0.13 dB的改善。圖6也顯示出Non-dyadic相比Dyadic結(jié)構(gòu)也有一定程度的改進。
本文主要討論了對H.264/SVC編碼算法的改進,提出了在分級B幀的基礎(chǔ)上應(yīng)用Non-dyadic AGS來改進編碼效率的算法,算法利用Non-dyadic預(yù)測結(jié)構(gòu)來做分級預(yù)測,場景切換的BH概念來計算最佳的GoP大小。實驗結(jié)果表明,Non-dyadic AGS對于那些內(nèi)容變化不穩(wěn)定的視頻序列能夠發(fā)揮不錯的效用,能進一步地提高編碼效率。
[1]ITU-T and ISO/IEC JTC 1.ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 AVC).Advanced Video Coding for Generic Audio/Visual Services[S].Version 9.[S.l.]:ITU-T and ISO/IEC JTC 1,2009.
[2]WIEGAND T,SULLIVAN G J,BJ?NTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):560-576.
[3]SCHWARZ H,MARPE D,WIEGAND T.Overview of the scalable video coding extension of the H.264/AVC standard[J].IEEE Trans.Circuits and Systems for Video Technology,2007,17 (9):1103-1120.
[4]SCHWARZ H,MARPE D,WIEGAND T.Analysis of hierarchical B pictures and MCTF[C]//Proc.2006 IEEE International Conference on Multimedia and Expo.[S.l.]:IEEE Press,2006:1929-1932.
[5]SCHWARZ H, MARPE D,WIEGAND T.Comparison of MCTF and closed-loop hierarchical B pictures.JVT-P059[R].[S.l.]:Joint Video Team,2005.
[6]YOKOYAMA Y.Adaptive GoP structure selection for real-time MPEG-2 video encoding [C]//Proc.2000 IEEE International Conference on Image Processing:Volume 2.[S.l.]:IEEE Press,2000:832-835.
[7]PARK G H,PARK M W,JEONG S,et al.Adaptive GoP structure for SVC.M11563[R].[S.l.]:MPEG Standards Contribution,2005.
[8]PARK G H,PARK M W,JEONG S,et al.Improve SVC coding efficiency by adaptive GoP structure(SVC CE2).JVT-O018[R].[S.l.]:Joint Video Team,2005.
[9]CHIOU C-W,TSAI C-M,LINFAST C-W.Mode decision algorithms for adaptive GoP Structure in the scalable extension of H.264/AVC[C]//Proc.2007 IEEE International Symposium on Circuits and Systems.[S.l.]:IEEE Press,2007:3459-3462.
[10]DING Jun-Ren.Joint adaptive GoP and SCD coding for improving H.264 scalable video coding[C]//Proc.2007 IEEE International Symposium on Multimedia Workshops.[S.l.]:IEEE Press,2007:96-103.
[11]LEE J,DICKINSON B W.Hierarchical video indexing and retrieval for subband-coded video[J].IEEE Trans.Circuits and Systems for Video Technology,2000,10(5):824-829.