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