摘 要: 提出將整個聯(lián)合碼率控制算法分為幾個控制模塊,,調(diào)整模塊算法不影響整體控制策略,,從而算法更通用,。對系統(tǒng)的幾個主要模塊:碼率預(yù)測、帶寬分配,、量化參數(shù)選擇和緩存器控制的算法進(jìn)行了討論。最后給出了聯(lián)合碼率控制系統(tǒng)性能評價方法,。
關(guān)鍵詞: 聯(lián)合碼率控制 模塊化 碼率預(yù)測 帶寬分配 量化參數(shù)選擇
隨著視頻及其伴音壓縮編碼標(biāo)準(zhǔn)MPEG-1,、MPEG-2的制訂,以其為基礎(chǔ)的數(shù)字視頻系統(tǒng)應(yīng)用越來越廣,。今后,,視頻業(yè)務(wù)將大幅度增多,在一傳統(tǒng)的固定帶寬信道內(nèi),,盡可能多地同時傳送多路經(jīng)MPEG壓縮的視頻節(jié)目的技術(shù)會日趨迫切,。
1 聯(lián)合碼率控制技術(shù)概述
當(dāng)多路可變碼率(VBR)編碼視頻節(jié)目在同一固定帶寬信道內(nèi)傳輸時,可利用統(tǒng)計復(fù)用技術(shù)使各節(jié)目碼率相互補償,,動態(tài)分配固定信道,,充分利用信道資源。但它存在下列缺點:(1)統(tǒng)計復(fù)用遵循“大數(shù)定律”,,只有復(fù)用的業(yè)務(wù)數(shù)目N足夠大(N>10)時,,各路碼率相互補償,才能產(chǎn)生高的統(tǒng)計復(fù)用增益(見第3節(jié)),。若信道帶寬有限,,同時傳輸?shù)臉I(yè)務(wù)數(shù)目不多,則復(fù)用后總碼率波動仍會較大,,在固定帶寬信道中傳輸容易丟失數(shù)據(jù),。(2)統(tǒng)計復(fù)用雖可避免各業(yè)務(wù)峰值碼率直接累加,但因圖像內(nèi)容變化不能預(yù)知,,故復(fù)用后總輸出碼率在某一時間段仍可能超過信道帶寬,,致使傳輸過程中丟失數(shù)據(jù)。特別是丟失重要信息(如包頭,、DCT直流及低頻系數(shù))時,,會嚴(yán)重影響圖像甚至該圖像所在整個圖像組(GOP)的質(zhì)量。因此單獨的統(tǒng)計復(fù)用技術(shù)不適用于同時傳輸較少視頻業(yè)務(wù)且對圖像質(zhì)量要求較高的數(shù)字視頻廣播領(lǐng)域,。
聯(lián)合碼率控制系統(tǒng)(見圖1)綜合各路視頻節(jié)目統(tǒng)計數(shù)字量,,對總的可用帶寬進(jìn)行統(tǒng)一分配,使復(fù)用后輸出的碼率不超過帶寬,,不丟失數(shù)據(jù),,且各路節(jié)目質(zhì)量達(dá)到最佳。根據(jù)目前掌握的資料,,聯(lián)合碼率控制技術(shù)尚處于研究階段,,IBM、PHILIPS和DIVICOM等公司正開展此項研究,。
與獨立控制MPEG固定碼率編碼中各節(jié)目的碼率不同,,聯(lián)合碼率控制系統(tǒng)對各編碼器實施聯(lián)合控制,。系統(tǒng)開始工作時,各編碼器可設(shè)置為相同量化參數(shù),;當(dāng)系統(tǒng)預(yù)測到復(fù)用后的碼率超過信道帶寬時,,就把有效帶寬按圖像復(fù)雜度重新分配,然后改變量化參數(shù),,使各編碼器輸出滿足目標(biāo)碼率,。
一些文獻(xiàn)介紹了各自的聯(lián)合碼率控制算法,但均存在一些缺欠,,如:通過監(jiān)測信道緩存器的狀態(tài)調(diào)整碼率的算法[1],,由于緩存器狀態(tài)并不直接反映圖像變化,因此碼率調(diào)整會導(dǎo)致有相同復(fù)雜度圖像的質(zhì)量差別,;應(yīng)用專用芯片的算法不能通用[2],;用前一GOP編碼結(jié)果預(yù)測碼率[3],使帶寬分配滯后于圖像變化,;按自定義的Super GOP(各路節(jié)目對應(yīng)GOP的組合)和Super Frame(在Super GOP內(nèi)各節(jié)目對應(yīng)幀的組合)結(jié)構(gòu)分配帶寬[4],,未考慮Super GOP內(nèi)的圖像變化,。雖然各算法對節(jié)目質(zhì)量有一定改善,,但缺乏對圖像變化、帶寬分配,、碼率控制和緩存器狀態(tài)的全面考慮,,各節(jié)目質(zhì)量難以達(dá)到最佳。
為此,,本文首次提出模塊化聯(lián)合碼率控制算法,,即將整個碼率控制分為幾個控制模塊,使模塊算法相對獨立且其調(diào)整不影響系統(tǒng)控制的策略,,算法更通用,,能適用不同的編碼芯片。
2 模塊化控制算法
系統(tǒng)可劃分為:碼率預(yù)測,、帶寬分配,、量化參數(shù)選擇和緩存器控制等幾個模塊。圖2只畫出了節(jié)目n與各控制模塊的關(guān)系,,其它節(jié)目和控制模塊的關(guān)系與之相同,。
2.1 碼率預(yù)測模塊
碼率預(yù)測模塊以選定的時間段(幀或GOP)為單位,提取各路視頻節(jié)目的統(tǒng)計信息,。有兩種碼率預(yù)測方法:前向預(yù)測法[1][2]和反饋預(yù)測法[3],。前者是在圖像編碼前,對其進(jìn)行預(yù)處理以提取統(tǒng)計數(shù)字量,??商崛〉慕y(tǒng)計數(shù)字量有多種,,它們的選擇應(yīng)與編碼器輸出一定質(zhì)量圖像所需碼率密切相關(guān)。例如,,統(tǒng)計數(shù)字量10表示編碼器輸出同等質(zhì)量圖像的碼率是統(tǒng)計數(shù)字量為5時的2倍,。前向預(yù)測法對圖像復(fù)雜度變化和場景切換的反映迅速,但節(jié)目內(nèi)容千差萬別,,活動性與復(fù)雜度大不相同,,要找到能適應(yīng)任何圖像內(nèi)容且與輸出碼率密切相關(guān)的統(tǒng)計數(shù)字量是個帶有挑戰(zhàn)性的工作。另外,,實時前向預(yù)測需要預(yù)處理芯片,,增加系統(tǒng)成本。
反饋預(yù)測法是在圖像編碼后,,采集編碼過程中產(chǎn)生的統(tǒng)計數(shù)字量(圖2中虛線箭頭),,以指導(dǎo)后面圖像編碼。與預(yù)處理法相比,,反饋法不需對圖像預(yù)處理,,運算量較小。但統(tǒng)計數(shù)字量只能是編碼過程中產(chǎn)生的一些信息,,是用前面圖像的統(tǒng)計數(shù)字量預(yù)測后面的圖像,,因此反饋預(yù)測法對圖像復(fù)雜度變化和場景切換的反映不如前項預(yù)測法快速。但由于圖像內(nèi)容會持續(xù)一定時間,,所以反饋預(yù)測法也能對碼率進(jìn)行預(yù)測,。
2.2 帶寬分配模塊
帶寬分配模塊可選取多種算法。比較簡單的算法是將可用信道容量分成Cp,、C0兩部分,,前者按預(yù)測的各路節(jié)目碼率分配,使每路節(jié)目保持一可接受的圖像質(zhì)量,;后者按各種節(jié)目預(yù)測碼率的方差分配,,保證復(fù)雜節(jié)目得到更多的碼率,使各路節(jié)目的圖像質(zhì)量統(tǒng)一[1],。
帶寬分配模塊還可按碼率預(yù)測模塊輸出的統(tǒng)計數(shù)字量計算各路節(jié)目的復(fù)雜度,,并按其比例分配帶寬[3]。復(fù)雜度計算可采用MPEG TM5[5]中相應(yīng)公式:
C=R×Q
式中,,R是圖像編碼的碼率,,Q是圖像的平均量化因子(圖像內(nèi)各宏塊量化因子的平均值)。
另一種算法是先定義Super GOP和Super Frame結(jié)構(gòu)[4],,并給每個Super GOP分配相同的碼率,;然后按TM5中碼率分配方法將Super GOP碼率分配給每個Super Frame;同樣的方法也應(yīng)用于Super Frame中每一幀的碼率分配,。
各節(jié)目質(zhì)量統(tǒng)一體現(xiàn)在圖像有相同的失真度上,。根據(jù)率失真理論[6],,復(fù)雜圖像應(yīng)分配給較多的碼率時,其失真度與簡單圖像相同,。所以,,無論采用何種算法分配帶寬,都應(yīng)使分配給各路節(jié)目的目標(biāo)碼率與其復(fù)雜度成正比,。
另外,,帶寬分配模塊在什么時間段上分配帶寬也值得考慮。有兩種選擇:以圖像幀或GOP為時間單位,。按幀分配碼率,,需先確定任一時刻各節(jié)目的圖像類型(各節(jié)目的GOP結(jié)構(gòu)不同,其圖像類型的變化不同步),,以便合理分配碼率,。從圖像質(zhì)量的穩(wěn)定性上考慮,碼率分配應(yīng)使整個圖像序列的整體質(zhì)量最優(yōu),,而不是某一幀圖像質(zhì)量最佳,,大多數(shù)視頻節(jié)目在GOP內(nèi)發(fā)生場景切換的幾率很小,且GOP內(nèi)三種圖像類型I,、P,、B的排列順序具有重復(fù)性。從而可按預(yù)先確定的比例分配GOP內(nèi)圖像的碼率,,且各幀碼率的波動可在GOP內(nèi)相互補償,。如果某一GOP內(nèi)發(fā)生場景切換,,可把這一GOP內(nèi)余下圖像與下一GOP合成一個大GOP,,使場景切換不影響碼率分配策略。因此,,以GOP為單位分配帶寬更合理,。
2.3 量化參數(shù)選擇
量化參數(shù)選擇模塊使各編碼器輸出滿足帶寬分配模塊預(yù)分配的目標(biāo)碼率。量化參數(shù)包括量化因子Q和量化矩陣,。量化矩陣可在圖像級調(diào)整,,量化因子Q可在條或宏塊級調(diào)整。量化矩陣依人的視覺空間頻率特性改變,,相對穩(wěn)定,。碼率的控制和調(diào)整一般通過改變量化因子實現(xiàn)。圖3是量化因子與輸出碼率的關(guān)系,。
為使圖像主觀質(zhì)量相對一致,,各路節(jié)目應(yīng)盡量使用相同量化因子[3]。量化參數(shù)選擇模塊可在量化因子取值范圍(1~31)內(nèi)搜索,,選擇合適的Q使編碼器輸出最接近的目標(biāo)碼率,。由圖3可知,,量化因子較小時,其增減1都會使碼率變化很大,。所以,,滿足目標(biāo)碼率的Q有可能不是整數(shù)。如選用整數(shù)Q,,即圖像內(nèi)每個宏塊使用相同Q,,編碼器輸出可能與目標(biāo)碼率有偏差,但碼率偏差可在緩存器中相互補償,。
圖像平均量化因子也可為小數(shù)值,,即圖像內(nèi)條或宏塊選用不同Q值。量化參數(shù)選擇模塊可以結(jié)合人眼特性,,預(yù)先確定多種Q的選取模板,,供圖像按其活動性、復(fù)雜度和內(nèi)容等選用,,保證圖像主觀質(zhì)量最佳,。例如,一幅中間部分細(xì)節(jié)較多的圖像Q若是3.75,,可讓圖像邊緣占宏塊總數(shù)四分之三的宏塊的Q值取為4,,中間部分其它四分之一宏塊的Q值取為3。這樣,,不受觀眾注意的圖像邊緣量化較粗,,而圖像中心量化較細(xì),整幅圖像主觀質(zhì)量最佳,。
2.4 緩存器控制
緩存器控制模塊對碼率加入限制以使緩存器不發(fā)生上,、下溢[3]??稍O(shè)置一緩存器閾值系數(shù)α,,令輸出的總碼率Bf滿足:
αBs≤Bf≤(1-α)Bs
式中Bs為緩存器容量。如果碼率超出此閾值,,緩存器控制模塊指導(dǎo)帶寬分配模塊重新分配帶寬,。α決定著緩存器利用率的大小,應(yīng)根據(jù)實際情況靈活選取,。
碼率預(yù)測,、帶寬分配、量化參數(shù)選擇和緩存器控制是聯(lián)合碼率控制系統(tǒng)中最重要的幾個模塊,,它們之間并不是獨立,、割裂的,而是相互影響,、相互制約的,。因此,,要從使整個系統(tǒng)性能最佳的角度選擇這幾個模塊的算法。
3 聯(lián)合碼率控制性能評價
評價聯(lián)合碼率控制系統(tǒng)性能有兩項指標(biāo):統(tǒng)計復(fù)用增益(G)與峰值信噪比(PSNR),。多路MPEG VBR視頻節(jié)目的統(tǒng)計復(fù)用增益G定義為:在同一固定帶寬信道內(nèi),,可傳輸?shù)慕?jīng)過復(fù)用且具有同等或更佳圖像質(zhì)量的VBR視頻業(yè)務(wù)數(shù)目對可傳輸?shù)腃BR視頻業(yè)務(wù)數(shù)目之比[1]。通常G越大,,復(fù)用性能越佳,,可同時復(fù)用的VBR視頻業(yè)務(wù)數(shù)目也越多。
用PSNR評價聯(lián)合碼率控制系統(tǒng)性能的方法是:求復(fù)用后各路VBR視頻節(jié)目的峰值信噪比與傳輸同等數(shù)目CBR視頻節(jié)目時的峰值信噪比之比,,所得PSNR的增加量即表征圖像質(zhì)量的改善程度,。峰值信噪比的計算式為:
式中,n(x,、y,、z)是在象素(x、y,、z)上疊加的噪聲,,M是總的象素數(shù)。
總之,,聯(lián)合碼率控制技術(shù)能消除統(tǒng)計復(fù)用的信息丟失缺陷,,將復(fù)用后的視頻業(yè)務(wù)碼率限制在信道容量之內(nèi),且各節(jié)目的圖像質(zhì)量保持一致,,適用于數(shù)字視頻廣播,。本文首次提出模塊化聯(lián)合碼率控制,將系統(tǒng)分為幾個控制模塊,,模塊算法的調(diào)整不影響整體控制策略,,其目的是增強(qiáng)算法的通用性,使其適用不同編碼芯片,,得到更廣泛的應(yīng)用,。
對模塊化聯(lián)合碼率控制技術(shù),,還有很多待研究的課題,。包括選擇合適的算法提高系統(tǒng)運算速度和工作性能;研究不僅按圖像復(fù)雜度分配碼率,,而且通過設(shè)置優(yōu)先級保證重點節(jié)目有足夠碼率的方法,;研究較“峰值信噪比”更能正確地反映重建圖像主觀質(zhì)量的客觀量等。
參考文獻(xiàn)
1 Ajanta Guha and Daniel J.Reininger,、Multichannel joint rate control of VBR MPEG encoded video for DBS applications,、IEEE Transaction on Consumer Electronics、1994,;40(3):616~623
2 DIVICOM.Statmux,、www.divicom.com,、1999
3 L.Boroczky、A.Y.Ngai and E.F.Westerman.Statistical multiplexing using MPEG-2 video encoders.IBM,、1999
4 Limin Wang and Andre Vincent.Bit allocation for joint coding of multiple video programs. SPIE,、1997;3024:149~158
5 ISO/IEC JTC1/SC29/WG11/N0400、MPEG-2 Test Model 5,、Geneva:ISO/IEC,、Doc、1993
6 姚慶棟,,畢厚杰,,王兆華,徐孟俠.圖像編碼基礎(chǔ).杭州:浙江大學(xué)出版社,,1993