祝建英,夏哲雷,殷海兵,華 強
(中國計量學(xué)院信息工程學(xué)院,浙江 杭州 310018)
責(zé)任編輯:魏雨博
視頻壓縮即在限定速率下得到最優(yōu)編碼。H.264視頻編碼標(biāo)準(zhǔn)中,率失真優(yōu)化(Rate Distortion Optimization,RDO)技術(shù)選擇一系列編碼參數(shù),實現(xiàn)碼率和失真之間恰當(dāng)?shù)恼壑小4a率控制與率失真優(yōu)化密切相關(guān),是率失真優(yōu)化技術(shù)的典型應(yīng)用。因此,碼率控制作為整個編碼器的重要組成模塊,是衡量視頻編碼器性能的重要指標(biāo)。碼率控制算法是將量化參數(shù)、實際比特率、編碼復(fù)雜度之間的平衡關(guān)系模型化。其中量化參數(shù)(QP)、GoP結(jié)構(gòu)、目標(biāo)比特率等參量,都對視頻解碼質(zhì)量有影響[1]。在低碼率傳輸?shù)囊曨l編碼中,合理設(shè)定每一幀的量化參數(shù),不僅可以節(jié)省帶寬,利用本就稀少的網(wǎng)絡(luò)資源,而且可以在有限的條件下解碼得到較為優(yōu)質(zhì)的圖像復(fù)原質(zhì)量。量化參數(shù)的設(shè)定是一個相對復(fù)雜的問題,在H.264的參考軟件JM中就有眾多的相關(guān)參數(shù)。
在碼率控制的現(xiàn)有方案中,JVT-G012作為目前的主流算法,使用MPEG-4的二次模型來調(diào)節(jié)QP,同時引入基本單元的概念,將碼率控制分為GoP層、幀層和基本單元層。作為基于經(jīng)驗的率失真模型,該算法雖然可以根據(jù)圖像復(fù)雜度、目標(biāo)碼率等較為準(zhǔn)備地預(yù)設(shè)量化參數(shù),但是輸出的可變長編碼比特流并不能完全地利用網(wǎng)絡(luò)帶寬并適應(yīng)固定的帶寬環(huán)境[2]。而且該算法對運動劇烈及存在場景切換的視頻序列的碼率控制不夠精確,視頻圖像的PSNR波動較大,一些微小的帶寬波都會對視頻量化的結(jié)果和整個視頻的解碼質(zhì)量產(chǎn)生影響;另一方面,為了保持連續(xù)幀與幀之間視頻質(zhì)量的平滑,只是引入一個固定的值來限定兩個相鄰幀之間的QP跳動,并沒有考慮到已編碼幀的信息對當(dāng)前幀QP計算的影響[3]。
本文主要就幀層的量化參數(shù)預(yù)測進(jìn)行了研究,力圖找到一種新的解決方案,在可以準(zhǔn)確預(yù)測量化參數(shù)的同時又可以增加編碼系統(tǒng)的容錯性和自適應(yīng)能力,得到相對穩(wěn)定的視頻質(zhì)量。對此,提出了一種基于神經(jīng)網(wǎng)絡(luò)的量化模型來快速有效地預(yù)測每一幀的幀級QP,該方法能將已編碼信息作為輸入之一,充分利用這些信息和當(dāng)前幀的關(guān)系,對當(dāng)前幀的QP進(jìn)行調(diào)整。基本思想是通過對多個序列取樣,得到樣本數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),使用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模擬原來的QP預(yù)測模型,快速得到量化參數(shù)預(yù)測值,同時神經(jīng)網(wǎng)絡(luò)特有的穩(wěn)健性能加大系統(tǒng)的自適應(yīng)能力,達(dá)到準(zhǔn)確預(yù)測編碼的目標(biāo)。
人工神經(jīng)網(wǎng)絡(luò)簡稱神經(jīng)網(wǎng)絡(luò),是一種由許多個簡單的處理單元(又稱神經(jīng)元)分布式物理連接組成的復(fù)雜網(wǎng)絡(luò)系統(tǒng),構(gòu)成的神經(jīng)網(wǎng)絡(luò)具有很強的自適應(yīng)學(xué)習(xí)能力和容錯性。神經(jīng)網(wǎng)絡(luò)在理論和應(yīng)用研究上的進(jìn)展使得如今神經(jīng)網(wǎng)絡(luò)的種類繁多,功能強大。根據(jù)連接方式的不同,現(xiàn)今應(yīng)用較多的有向感知器網(wǎng)絡(luò)這樣的普通前向網(wǎng)絡(luò),也有以回歸BP(Back Propagation)網(wǎng)絡(luò)為代表的有反饋的前向網(wǎng)絡(luò),還有像Hopfield這樣的相互結(jié)合型網(wǎng)絡(luò)[4]。其應(yīng)用廣泛性在模式識別、圖像處理、控制優(yōu)化、模擬映射等方面都有體現(xiàn)[5]。
隨著研究的深入,神經(jīng)網(wǎng)絡(luò)在視頻上應(yīng)用成果不斷。文獻(xiàn)[1]提取了4個時間和空間域的特征量,通過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練模擬映射碼率量化模型,得到的模型對場景變換中I幀的預(yù)測更加準(zhǔn)確。文獻(xiàn)[6]通過計算宏塊的平均像素值和平均絕對誤差和作為輸入,訓(xùn)練BP網(wǎng)絡(luò)對宏塊進(jìn)行Intra16x16和Intra4x4模式判斷,然后使用Sobel邊緣檢測模式選擇算法對Intra16x16或Intra4x4的子模式進(jìn)行選擇后編碼。神經(jīng)網(wǎng)絡(luò)在視頻壓縮、變換編碼的性能提升和視頻傳輸控制等方向上也都取得了很好的效果。
由神經(jīng)網(wǎng)絡(luò)理論可知:多層的前向型網(wǎng)絡(luò)可以以任意精度逼近非線性連續(xù)函數(shù)。考慮到不同神經(jīng)網(wǎng)絡(luò)的特性,在這里把BP神經(jīng)網(wǎng)絡(luò)引入到設(shè)計中,以充分利用它的自學(xué)習(xí)和自適應(yīng)。BP是一種十分常見的網(wǎng)絡(luò)模型,其實質(zhì)是將誤差反向傳播的學(xué)習(xí)算法,包含兩個過程:信息在網(wǎng)絡(luò)中的前向傳播和誤差的反向傳播。BP網(wǎng)絡(luò)強大的學(xué)習(xí)能力使得它具有很好的函數(shù)逼近能力,通過樣本的訓(xùn)練樣本進(jìn)行,模擬出輸入和輸出之間的非線性關(guān)系。
本文的方案主要是在H.264的視頻編碼標(biāo)準(zhǔn)的基礎(chǔ)上提出的,場景切換/預(yù)處理、目標(biāo)碼率分配、R-D模型建立和更新、自適應(yīng)量化控制和緩沖區(qū)管理幾個模塊共同為QP選擇模塊服務(wù),幀級及宏塊級量化參數(shù)QP選擇的目標(biāo)是準(zhǔn)確控制輸出碼流,同時考慮到緩沖區(qū)狀況,以及圖像主觀質(zhì)量[7]。量化的基本環(huán)節(jié)是從當(dāng)前幀減去運動補償,得到一個殘差;將些殘差進(jìn)行DCT(Discrete Cosine Transform,離散余弦變換)變換,將得到的DCT系數(shù)進(jìn)行量化進(jìn)行熵編碼。最后這些量化系數(shù)附帶著周邊信息一起被傳送到NAL(Network Abstraction Layer)層進(jìn)行傳輸或儲存。
根據(jù)JVT文檔中對于幀級碼率控制的描述,幀級QP的計算有以下幾步[8]:首先計算當(dāng)前幀的目標(biāo)比特,接著分配剩余比特,用線性模型預(yù)測MAD,最后用二次量化模型計算對應(yīng)的量化參數(shù)。由于神經(jīng)網(wǎng)絡(luò)需要先提取數(shù)據(jù)進(jìn)行訓(xùn)練,直接采用BP網(wǎng)絡(luò)與JM軟件結(jié)合起來的機制,流程如圖1所示。

圖1 基于BP網(wǎng)絡(luò)的QP預(yù)測流程圖
根據(jù)量化的主要過程,本文選取了目標(biāo)比特(TB)、MAD作為特征量。建立BP模型時,結(jié)合文獻(xiàn)[9]的實驗基礎(chǔ),加入前一幀的實際用去的比特數(shù)(pre-B)和量化QP(pre-QP)來減少輸出結(jié)果的誤差和跳動。網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示。

圖2 BP網(wǎng)絡(luò)結(jié)構(gòu)圖

圖3 不同節(jié)點數(shù)的預(yù)測誤差
第 i 組樣本的輸入 為 Ii={TBi,MADi,pre-Bi,pre-QPi},相應(yīng)整個網(wǎng)絡(luò)實際輸出為Oi。節(jié)點j在第i組樣本輸入時,輸出為

Iij是第i組輸入時,節(jié)點j的輸出,wij為上一層節(jié)點和下一層節(jié)點j之間的連接權(quán)值,bi為節(jié)點i閾值。f(x)為隱含層和輸出層的激活函數(shù),即

為了使第i組樣本的期望輸出ti與網(wǎng)絡(luò)的實際輸出Oi之間的誤差函數(shù)公式(3)最小,訓(xùn)練時ε>0,選取為網(wǎng)絡(luò)允許最大誤差。若E<ε,說明網(wǎng)絡(luò)誤差滿足要求,訓(xùn)練結(jié)束;否則在誤差梯度下降的方向,重復(fù)進(jìn)行迭代,調(diào)整權(quán)值和閾值直到網(wǎng)絡(luò)滿足條件。本文以預(yù)測QP為目標(biāo),經(jīng)過實驗表明,將網(wǎng)絡(luò)誤差設(shè)為0.001即可滿足要求,最大訓(xùn)練次數(shù)為500次。

為了避免奇異值的出現(xiàn)影響網(wǎng)絡(luò)的精確度,在樣本輸入前要將數(shù)據(jù)用公式(4)歸一化處理。y′(i,j)代表歸一化后的數(shù)據(jù),y(i,j)代表原始數(shù)據(jù),ymax(i)與ymin(i)分別表示所在行的最大值和最小值。

最后的數(shù)據(jù)處理是將BP網(wǎng)絡(luò)獨立預(yù)測的當(dāng)前幀QP值轉(zhuǎn)換為可供視頻編碼器使用的量化值。可用公式(5)對輸出進(jìn)行反歸一化,并取整。式中,x′(i,j)是神經(jīng)網(wǎng)絡(luò)的預(yù)測值,x(i,j)表示處理后的QP值。xmax(i)、xmin(i)分別表示樣本中目標(biāo)QP的最大值和最小值。round進(jìn)行四舍五入的取整。

結(jié)合H.264的標(biāo)準(zhǔn)軟件,設(shè)計的實驗在JM14.2中實現(xiàn)并與其比較。實驗選取了Foreman和Mobile兩個cif序列進(jìn)行測試。幀頻為30 Hz,測試帶寬為160 kbit/s,180 kbit/s,200 kbit/s,220 kbit/s,240 kbit/s這5 個點,GoP結(jié)構(gòu)為IPPP。
圖4及圖5為使用JM14.2及本文設(shè)計的BP網(wǎng)絡(luò)訓(xùn)練結(jié)果,由于數(shù)據(jù)篇幅問題只選取160 kbit/s和240 kbit/s兩個點作為代表。從圖中可以看到,BP網(wǎng)絡(luò)預(yù)測的結(jié)果與JM軟件中輸出的QP曲線基本一致,而且整個QP曲線相對而言起伏比較平穩(wěn)。


將預(yù)測得到的QP值編碼測試序列,得到了最后編碼后序列的峰值信噪比PSNR(Y)曲線,如圖6及圖7所示。從圖中的PSNR比較可以明顯看出,結(jié)合BP網(wǎng)絡(luò)來編碼的序列,其PSNR曲線更加平滑,跳變更小,在部分幀可以觀察到在質(zhì)量平穩(wěn)的基礎(chǔ)上還有PSNR的提高。圖8為兩個測試序列的R-D性能曲線,其中本文的方法與JVTG012相比,兩條曲線基本一致,由此可說明本文的方法在提高穩(wěn)定性的同時也保證了視頻質(zhì)量。



本文提出了一種基于BP網(wǎng)絡(luò)的H.264的率失真量化模型。該方案首先使用BP神經(jīng)網(wǎng)絡(luò)對視頻序列進(jìn)行訓(xùn)練,基于訓(xùn)練的結(jié)果預(yù)測出測試序列當(dāng)前幀的幀級量化值,得到每一幀的量化值后對測試序列進(jìn)行編碼。實驗結(jié)合表明該方法在保證視頻質(zhì)量幾乎不變的情況下,PSNR的波動,保證了平穩(wěn)的視頻質(zhì)量。
[1]CZUNI L,CSASZAR G.Estimating the Optimal Quantization Parameter in H.264[C]//Proc.18th International Conference on Pattern Recognition.[S.l.]:IEEE Press,2006:330-333.
[2]LEE H J,CHIANG T,ZHANG Y Q.Scalable rate control for MPEG-4 video[J].IEEE Trans.Circuits and Systems for Video Technology,2000,10(9):878-894.
[3]黃軍浩,畢篤彥,許悅雷,等.基于H.264的幀級碼率控制和率失真技術(shù)研究[J].電視技術(shù),2005,29(S1):44-46.
[4]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)理論與Matlab 7實現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[5]SUN Xin,LIU Qiongxin,ZHANG Lei.A BP neural network model based on genetic algorithm for comprehensive evaluation [C]//Proc.2011 Third Pacific-Asia.Conference on Circuits,Communication and system(PACCS),2011.[S.l.]:IEEE Press,2011:1-5.
[6]季國飛,王慶.一種基于BP網(wǎng)絡(luò)的H.264快速幀內(nèi)模式選擇算法[J].計算機工程與應(yīng)用,2008,44(13):100-133.
[7]殷海兵.數(shù)字媒體處理技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2011.
[8]LI Zhengguo,PAN Feng,PANG Keng.Adaptive basic unit layer rate control for JVT:JVT-G012[R].[S.l.]:JVT,2003.
[9]李猛.基于神經(jīng)網(wǎng)絡(luò)的視頻量化參數(shù)預(yù)測研究[J].遼寧師專學(xué)報,2007,3(9):25-28.