引起編碼器的輸出比特碼率波動的原因主要有兩個。首先,數字視頻信號中包含了大量的時域和空域冗余,編碼器的主要任務就是去除這些冗余。由于時間冗余和空間冗余是隨機的,從而造成編碼器輸出比特率波動。另一個原因是變長編碼,變長編碼根據某個事件(如零游程)的發生概率來設計碼字。事件發生的概率越大,其編碼碼字越短,反之亦然,從而引起編碼器輸出比特率的變化。由于視頻應用的要求和目的不同,根據輸出碼率是否要求恒定,傳輸碼流的信道可分為兩種類型,即可變比特率的碼率控制VBR(Variable Bit Rate)和恒定比特率的碼率控制CBR(Constant Bit Rate)。在變比特率信道下,可以為更高的運動量或更詳細的紋理信息分配更多的帶寬,從而獲得更高效的帶寬共享,有利于獲得恒定圖像質量,同時有利于動態分配可用帶寬。這種動態帶寬分配需要一種碼率控制機制,可以根據時變網絡條件和需求,調整并限定各視頻源的輸出業務量。
??????? 然而,諸如公共交換電話網絡PSTN(Public Switched TelephoneNetwork)固定帶寬信道卻常用固定比特率傳送信息。為了獲得固定速率的視頻比特流傳輸,在視頻編碼器和信道間采用了緩沖器來平滑比特率的波動。緩沖器的引入雖然有利于平滑碼流,然而,它也引入了一定的延遲。同時,在很多視頻序列中,比特率波動會持續幾幀,從而需要一個大緩沖器來緩沖長時間的波動。這種長時緩沖使得視頻業務不能達到實時傳輸,因此,除了緩沖視頻數據,需要采用其他措施來減少編碼器的突發量。最常用的技術是調整一些編碼參數作為緩沖器飽和度的函數,如反饋控制。
??????? 碼率控制中的性能指標有碼率、緩沖延時、緩沖區狀態等。在碼率控制系統中,校正裝置為碼率控制器。它負責收集碼率、延時和緩沖區狀態信息并調節編碼參數,使得性能指標維持在給定水平上。緩沖區起平滑碼率波動的作用。在編碼端,數據輸入緩沖區的碼率是變化的,而輸出端則取決于碼率控制模式。在恒定碼率模式下,輸出碼率維持不變;在可變碼率模式下,輸出碼率允許在一定的范圍內波動。理論上講,當緩沖區無限大時,延時長短和緩沖區大小成正比。對實時視頻通信系統而言,延時要求比較苛刻,延時越小越好。這就是說長期的碼率波動不能通過加大緩沖區的方式消除。
??????? 由于傳輸帶寬和存儲空間的限制,視頻應用對壓縮比有較高的要求。無損編碼所能提供的壓縮比遠不能滿足實際視頻應用的需求,但如果我們能夠接受某種程度的失真,高的壓縮比也不難獲得。人眼視覺系統對高頻信號變化不敏感,部分高頻信息丟失不會降低主觀視頻質量,主流的視頻編碼算法正是采用了量化方法消除視頻信號的生理視覺冗余,獲得比無損壓縮更高的壓縮比而又不會帶來視頻質量的顯著降低。率失真(RateDistortion理論旨在描述編碼失真度(Distortion,重構誤差)和編碼數據速率的關系。該理論建立在圖像是連續的基礎上,在有限數據速率下,由于存在量化誤差,必然存在失真。盡管率失真理論沒有給出最優編碼器,但它還是給出了容許失真條件下信息壓縮允許的下界。當使用有損編碼方法時,重構圖像g(x,y)和原始圖像f(x,y)存在差別。一般地,失真度D函數形式可以根據需要任意選取,例如平方代價函數、絕對代價函數等。在圖像編碼中,D常用均方差形式表示:
?
?
??????? 當D=O時,編碼對應于無損壓縮,輸入碼率應大于或等于信源熵H(X);若D一為最大允許失真,則相應碼率下限為R(D一)。典型的率失真曲線R—D如圖3.1所示。R(D’)為D’的凸遞減函數。
?
?
??????? 率失真優化主要用于模式選擇。在H.264視頻標準中,有以下幾種模式:INTRA.4x4,INTRA.16x16,SKIP,INTER—16×16,INTER.16×8,INTER.8×16,INTER.8×8。
假設圖像序列S被分割為K個不同的塊4,相應的像素用6t來表示。編碼6t所選擇的編碼模式%分為幀間編碼和幀內編碼。每種編碼模式都包括預測編碼的模式和編碼參數。其中編碼參數包括變換系數和量化參數等。對于幀間模式,編碼參數還包括一個或多個運動矢量。
??? 在對圖像序列S進行基于塊的混和視頻編碼時,對于每塊選取的編碼模式應該使編碼后的Lagrange代價函數J(S,II九)達到最小。編碼后比特流的比特率和失真度與時間和空間有著密切聯系,而不僅僅是和編碼模式有關,但當且僅當為每個塊Sk所選定的編碼模式使得代價函數J(S,IIX)最小時,編碼器得到最優化。
??? 編碼控制模式中,宏塊分割模式的判決與幀間模式運動估計的最佳比特分配這兩個問題將會被分別處理。在Lagrange參數A'MODE與量化參數選定后,H.264/AVC編碼器通過最小化Lagrange代價函數實現對每一個宏塊編碼模式的選定。對于宏塊St,模式Ik,拉格朗日模型選擇公式為:
對于INTRA模式,失真是重建宏塊s與原始宏塊s的平方差(SSD),按下式計算:
?
?
??????? 對于SKIP模式,DReC禾RReC不取決于當前量化參數的值,DReC由當前宏塊與參考以前幀的宏塊的SSD計算得到,RREC約為1bit/宏塊。對于INTER模式,它的拉格朗日代價函數計算較為復雜,這是由于多種塊模式和多參考幀的運動估計。給定拉格朗日常數.t,MOTION,宏塊Si拉格朗日代價函數
如下式:
?
?
其中,M為所有可能的編碼模式,失真按下式計算:
拉格朗日常數的選擇如下:
?