祝建英,夏哲雷,殷海兵,華 強
(中國計量學院信息工程學院,浙江 杭州 310018)
責任編輯:魏雨博
視頻壓縮即在限定速率下得到最優(yōu)編碼。H.264視頻編碼標準中,率失真優(yōu)化(Rate Distortion Optimization,RDO)技術選擇一系列編碼參數(shù),實現(xiàn)碼率和失真之間恰當?shù)恼壑?。碼率控制與率失真優(yōu)化密切相關,是率失真優(yōu)化技術的典型應用。因此,碼率控制作為整個編碼器的重要組成模塊,是衡量視頻編碼器性能的重要指標。碼率控制算法是將量化參數(shù)、實際比特率、編碼復雜度之間的平衡關系模型化。其中量化參數(shù)(QP)、GoP結構、目標比特率等參量,都對視頻解碼質(zhì)量有影響[1]。在低碼率傳輸?shù)囊曨l編碼中,合理設定每一幀的量化參數(shù),不僅可以節(jié)省帶寬,利用本就稀少的網(wǎng)絡資源,而且可以在有限的條件下解碼得到較為優(yōu)質(zhì)的圖像復原質(zhì)量。量化參數(shù)的設定是一個相對復雜的問題,在H.264的參考軟件JM中就有眾多的相關參數(shù)。
在碼率控制的現(xiàn)有方案中,JVT-G012作為目前的主流算法,使用MPEG-4的二次模型來調(diào)節(jié)QP,同時引入基本單元的概念,將碼率控制分為GoP層、幀層和基本單元層。作為基于經(jīng)驗的率失真模型,該算法雖然可以根據(jù)圖像復雜度、目標碼率等較為準備地預設量化參數(shù),但是輸出的可變長編碼比特流并不能完全地利用網(wǎng)絡帶寬并適應固定的帶寬環(huán)境[2]。而且該算法對運動劇烈及存在場景切換的視頻序列的碼率控制不夠精確,視頻圖像的PSNR波動較大,一些微小的帶寬波都會對視頻量化的結果和整個視頻的解碼質(zhì)量產(chǎn)生影響;另一方面,為了保持連續(xù)幀與幀之間視頻質(zhì)量的平滑,只是引入一個固定的值來限定兩個相鄰幀之間的QP跳動,并沒有考慮到已編碼幀的信息對當前幀QP計算的影響[3]。
本文主要就幀層的量化參數(shù)預測進行了研究,力圖找到一種新的解決方案,在可以準確預測量化參數(shù)的同時又可以增加編碼系統(tǒng)的容錯性和自適應能力,得到相對穩(wěn)定的視頻質(zhì)量。對此,提出了一種基于神經(jīng)網(wǎng)絡的量化模型來快速有效地預測每一幀的幀級QP,該方法能將已編碼信息作為輸入之一,充分利用這些信息和當前幀的關系,對當前幀的QP進行調(diào)整。基本思想是通過對多個序列取樣,得到樣本數(shù)據(jù)來訓練神經(jīng)網(wǎng)絡,使用訓練好的神經(jīng)網(wǎng)絡模擬原來的QP預測模型,快速得到量化參數(shù)預測值,同時神經(jīng)網(wǎng)絡特有的穩(wěn)健性能加大系統(tǒng)的自適應能力,達到準確預測編碼的目標。
人工神經(jīng)網(wǎng)絡簡稱神經(jīng)網(wǎng)絡,是一種由許多個簡單的處理單元(又稱神經(jīng)元)分布式物理連接組成的復雜網(wǎng)絡系統(tǒng),構成的神經(jīng)網(wǎng)絡具有很強的自適應學習能力和容錯性。神經(jīng)網(wǎng)絡在理論和應用研究上的進展使得如今神經(jīng)網(wǎng)絡的種類繁多,功能強大。根據(jù)連接方式的不同,現(xiàn)今應用較多的有向感知器網(wǎng)絡這樣的普通前向網(wǎng)絡,也有以回歸BP(Back Propagation)網(wǎng)絡為代表的有反饋的前向網(wǎng)絡,還有像Hopfield這樣的相互結合型網(wǎng)絡[4]。其應用廣泛性在模式識別、圖像處理、控制優(yōu)化、模擬映射等方面都有體現(xiàn)[5]。
隨著研究的深入,神經(jīng)網(wǎng)絡在視頻上應用成果不斷。文獻[1]提取了4個時間和空間域的特征量,通過神經(jīng)網(wǎng)絡的訓練模擬映射碼率量化模型,得到的模型對場景變換中I幀的預測更加準確。文獻[6]通過計算宏塊的平均像素值和平均絕對誤差和作為輸入,訓練BP網(wǎng)絡對宏塊進行Intra16x16和Intra4x4模式判斷,然后使用Sobel邊緣檢測模式選擇算法對Intra16x16或Intra4x4的子模式進行選擇后編碼。神經(jīng)網(wǎng)絡在視頻壓縮、變換編碼的性能提升和視頻傳輸控制等方向上也都取得了很好的效果。
由神經(jīng)網(wǎng)絡理論可知:多層的前向型網(wǎng)絡可以以任意精度逼近非線性連續(xù)函數(shù)??紤]到不同神經(jīng)網(wǎng)絡的特性,在這里把BP神經(jīng)網(wǎng)絡引入到設計中,以充分利用它的自學習和自適應。BP是一種十分常見的網(wǎng)絡模型,其實質(zhì)是將誤差反向傳播的學習算法,包含兩個過程:信息在網(wǎng)絡中的前向傳播和誤差的反向傳播。BP網(wǎng)絡強大的學習能力使得它具有很好的函數(shù)逼近能力,通過樣本的訓練樣本進行,模擬出輸入和輸出之間的非線性關系。
本文的方案主要是在H.264的視頻編碼標準的基礎上提出的,場景切換/預處理、目標碼率分配、R-D模型建立和更新、自適應量化控制和緩沖區(qū)管理幾個模塊共同為QP選擇模塊服務,幀級及宏塊級量化參數(shù)QP選擇的目標是準確控制輸出碼流,同時考慮到緩沖區(qū)狀況,以及圖像主觀質(zhì)量[7]。量化的基本環(huán)節(jié)是從當前幀減去運動補償,得到一個殘差;將些殘差進行DCT(Discrete Cosine Transform,離散余弦變換)變換,將得到的DCT系數(shù)進行量化進行熵編碼。最后這些量化系數(shù)附帶著周邊信息一起被傳送到NAL(Network Abstraction Layer)層進行傳輸或儲存。
根據(jù)JVT文檔中對于幀級碼率控制的描述,幀級QP的計算有以下幾步[8]:首先計算當前幀的目標比特,接著分配剩余比特,用線性模型預測MAD,最后用二次量化模型計算對應的量化參數(shù)。由于神經(jīng)網(wǎng)絡需要先提取數(shù)據(jù)進行訓練,直接采用BP網(wǎng)絡與JM軟件結合起來的機制,流程如圖1所示。
圖1 基于BP網(wǎng)絡的QP預測流程圖
根據(jù)量化的主要過程,本文選取了目標比特(TB)、MAD作為特征量。建立BP模型時,結合文獻[9]的實驗基礎,加入前一幀的實際用去的比特數(shù)(pre-B)和量化QP(pre-QP)來減少輸出結果的誤差和跳動。網(wǎng)絡的結構如圖2所示。
圖2 BP網(wǎng)絡結構圖
圖3 不同節(jié)點數(shù)的預測誤差
第 i 組樣本的輸入 為 Ii={TBi,MADi,pre-Bi,pre-QPi},相應整個網(wǎng)絡實際輸出為Oi。節(jié)點j在第i組樣本輸入時,輸出為
Iij是第i組輸入時,節(jié)點j的輸出,wij為上一層節(jié)點和下一層節(jié)點j之間的連接權值,bi為節(jié)點i閾值。f(x)為隱含層和輸出層的激活函數(shù),即
為了使第i組樣本的期望輸出ti與網(wǎng)絡的實際輸出Oi之間的誤差函數(shù)公式(3)最小,訓練時ε>0,選取為網(wǎng)絡允許最大誤差。若E<ε,說明網(wǎng)絡誤差滿足要求,訓練結束;否則在誤差梯度下降的方向,重復進行迭代,調(diào)整權值和閾值直到網(wǎng)絡滿足條件。本文以預測QP為目標,經(jīng)過實驗表明,將網(wǎng)絡誤差設為0.001即可滿足要求,最大訓練次數(shù)為500次。
為了避免奇異值的出現(xiàn)影響網(wǎng)絡的精確度,在樣本輸入前要將數(shù)據(jù)用公式(4)歸一化處理。y′(i,j)代表歸一化后的數(shù)據(jù),y(i,j)代表原始數(shù)據(jù),ymax(i)與ymin(i)分別表示所在行的最大值和最小值。
最后的數(shù)據(jù)處理是將BP網(wǎng)絡獨立預測的當前幀QP值轉(zhuǎn)換為可供視頻編碼器使用的量化值??捎霉?5)對輸出進行反歸一化,并取整。式中,x′(i,j)是神經(jīng)網(wǎng)絡的預測值,x(i,j)表示處理后的QP值。xmax(i)、xmin(i)分別表示樣本中目標QP的最大值和最小值。round進行四舍五入的取整。
結合H.264的標準軟件,設計的實驗在JM14.2中實現(xiàn)并與其比較。實驗選取了Foreman和Mobile兩個cif序列進行測試。幀頻為30 Hz,測試帶寬為160 kbit/s,180 kbit/s,200 kbit/s,220 kbit/s,240 kbit/s這5 個點,GoP結構為IPPP。
圖4及圖5為使用JM14.2及本文設計的BP網(wǎng)絡訓練結果,由于數(shù)據(jù)篇幅問題只選取160 kbit/s和240 kbit/s兩個點作為代表。從圖中可以看到,BP網(wǎng)絡預測的結果與JM軟件中輸出的QP曲線基本一致,而且整個QP曲線相對而言起伏比較平穩(wěn)。
將預測得到的QP值編碼測試序列,得到了最后編碼后序列的峰值信噪比PSNR(Y)曲線,如圖6及圖7所示。從圖中的PSNR比較可以明顯看出,結合BP網(wǎng)絡來編碼的序列,其PSNR曲線更加平滑,跳變更小,在部分幀可以觀察到在質(zhì)量平穩(wěn)的基礎上還有PSNR的提高。圖8為兩個測試序列的R-D性能曲線,其中本文的方法與JVTG012相比,兩條曲線基本一致,由此可說明本文的方法在提高穩(wěn)定性的同時也保證了視頻質(zhì)量。
本文提出了一種基于BP網(wǎng)絡的H.264的率失真量化模型。該方案首先使用BP神經(jīng)網(wǎng)絡對視頻序列進行訓練,基于訓練的結果預測出測試序列當前幀的幀級量化值,得到每一幀的量化值后對測試序列進行編碼。實驗結合表明該方法在保證視頻質(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的幀級碼率控制和率失真技術研究[J].電視技術,2005,29(S1):44-46.
[4]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡理論與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)絡的H.264快速幀內(nèi)模式選擇算法[J].計算機工程與應用,2008,44(13):100-133.
[7]殷海兵.數(shù)字媒體處理技術與應用[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)絡的視頻量化參數(shù)預測研究[J].遼寧師專學報,2007,3(9):25-28.