• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      面向H.264/AVC的低時(shí)延碼率控制算法

      2013-04-03 00:13:30張寶薇張春澤
      關(guān)鍵詞:宏塊碼率緩沖區(qū)

      張寶薇,王 婷,張春澤,王 猛

      (中國(guó)空間技術(shù)研究院503所,北京100086)

      碼率控制是視頻編碼技術(shù)一個(gè)重要研究?jī)?nèi)容,其主要功能是匹配信源視頻編碼速率與信道傳輸速率,在給定的信道傳輸速率下得到更好的圖像質(zhì)量以及盡量降低發(fā)送端與接收端的時(shí)延。目前大多數(shù)的碼率控制算法主要側(cè)重于改善圖像質(zhì)量、提高峰值信噪比,而對(duì)算法在時(shí)延方面的影響考慮得較少。很多已存在算法如JVT-H017算法是達(dá)到多幀平均意義上的穩(wěn)定碼速率控制,因此,連續(xù)各幀之間的碼率大小波動(dòng)可能很大,發(fā)送緩存區(qū)容量不得不較大,以儲(chǔ)存好幾幀數(shù)據(jù),導(dǎo)致緩存時(shí)延在幾百毫秒以上[1-3],這就降低了視頻實(shí)時(shí)通信的時(shí)效性。所以,為提高通信的實(shí)時(shí)性,研究低時(shí)延碼率控制方法很有必要。

      H.264/AVC是ITU-T/ISO共同研究發(fā)布的高度壓縮數(shù)字視頻編解碼器標(biāo)準(zhǔn)。通過該標(biāo)準(zhǔn),在同等圖像質(zhì)量下的壓縮效率比以前的標(biāo)準(zhǔn)提高了2倍以上,因此,H.264被普遍認(rèn)為是最有影響力的行業(yè)標(biāo)準(zhǔn)。筆者基于H.264/AVC標(biāo)準(zhǔn)提出了一種低時(shí)延的碼率控制算法,該算法綜合了基于圖像復(fù)雜度分析的前向碼率控制技術(shù)和基于緩沖區(qū)容量反饋的后向碼率控制技術(shù),在H.264/ AVC分層編碼過程中進(jìn)行分層的精細(xì)化碼率控制(宏塊層、幀層和圖像組層),使碼率波動(dòng)最小化,減少跳幀次數(shù),同時(shí)較好地保持了圖像質(zhì)量。

      1 算法原理

      緩沖區(qū)控制、獲得輸出碼率的措施、碼率與輸出圖像質(zhì)量是碼率控制算法設(shè)計(jì)過程中通常需要考慮到的因素。其中緩沖區(qū)控制對(duì)其引起的緩沖時(shí)延的大小起著至關(guān)重要的作用。這是由于緩沖區(qū)越大,承受的碼率波動(dòng)也就越大,但同時(shí)帶來的緩沖時(shí)延也越大,即緩沖區(qū)的容量與其引起的緩沖時(shí)延大小成正比,也就是發(fā)送緩沖區(qū)內(nèi)碼字多少變化越大時(shí)延就越大。所以為降低時(shí)延,我們期望緩沖區(qū)內(nèi)的碼字能夠變化平穩(wěn)。而在恒定通信速率場(chǎng)合,發(fā)送緩沖區(qū)內(nèi)碼字多少的變化可使用每幀圖像編碼比特?cái)?shù)的變化衡量。因此我們亦期望每幀圖像的編碼比特?cái)?shù)能夠接近每幀的目標(biāo)比特,只在目標(biāo)比特的附近平穩(wěn)變化。筆者以此為目標(biāo),對(duì)低時(shí)延碼率控制算法進(jìn)行了研究。

      算法基本思想為結(jié)合H.264/AVC標(biāo)準(zhǔn)的編碼特性進(jìn)行分層精細(xì)化碼率控制,分為3層:宏塊層、幀層和圖像組(GOP)層。并且在每層控制時(shí)都根據(jù)實(shí)際的緩沖區(qū)容量反饋和目標(biāo)碼率預(yù)分配比特?cái)?shù),在宏塊層對(duì)碼率控制參數(shù)即量化參數(shù)(QP)進(jìn)行細(xì)調(diào),在幀層對(duì)QP進(jìn)行粗調(diào),從而可實(shí)現(xiàn)緩沖區(qū)的平穩(wěn)波動(dòng)。同時(shí),在宏塊層根據(jù)每個(gè)宏塊內(nèi)容的復(fù)雜度來分配比特?cái)?shù),對(duì)于內(nèi)容簡(jiǎn)單的宏塊分配較少的碼率,對(duì)于內(nèi)容復(fù)雜的宏塊分配較多的碼率,從而將圖像內(nèi)容與碼率相結(jié)合,獲取更好的圖像編碼質(zhì)量。

      筆者的GOP為IPPP結(jié)構(gòu)。設(shè)定一個(gè)GOP中的幀數(shù)為GN,一幀圖像宏塊數(shù)為MN,目標(biāo)碼率為B,幀率為R,每幀的目標(biāo)比特?cái)?shù)為BF(BF= B/R)。具體算法如下:

      1)為防止發(fā)送緩沖區(qū)的上溢或下溢,每幀開始都先根據(jù)緩沖區(qū)容量反饋判斷是否跳幀或添加冗余。

      計(jì)算實(shí)際編碼比特與目標(biāo)比特的差值ΔB,其初始值為0;

      如果ΔB大于閾值T1(T1=1.5×BF)則跳幀,且ΔB=ΔB-BF;

      如果ΔB小于閾值T2(T2=0),則添加冗余包,設(shè)置其大小為512 Byte,則ΔB=ΔB+512。

      2)GOP層碼率控制。

      為每個(gè)GOP預(yù)分配的比特?cái)?shù)由BG表示

      其中ΔBG表示前一個(gè)GOP編碼結(jié)束后預(yù)分配比特?cái)?shù)與實(shí)際編碼比特?cái)?shù)的差值。若當(dāng)前GOP為視頻序列的第1個(gè)GOP,則ΔBG初始值為0。每個(gè)GOP編碼完后對(duì)其進(jìn)行更新。

      3)幀層碼率控制。

      在該層進(jìn)行控制時(shí),需根據(jù)幀編碼類型(I幀或P幀)進(jìn)行區(qū)分。由于I幀是后繼P幀的參考幀,其質(zhì)量直接影響后續(xù)幀。所以為I幀分配較多的比特,而對(duì)P幀則分配相對(duì)少的比特。目標(biāo)比特?cái)?shù)的預(yù)分配可細(xì)化為兩步:計(jì)算目標(biāo)緩沖水平和分配目標(biāo)比特。第1步考慮緩存容量限制;第2步考慮目標(biāo)碼率、幀率以及GOP中剩余可分配的比特等限制。這樣可預(yù)防緩沖區(qū)出現(xiàn)上溢或者下溢的問題。在幀層對(duì)QP進(jìn)行粗調(diào),根據(jù)緩沖區(qū)的充盈度以及ΔB確定一個(gè)全幀初始的QP值。QP的具體確定方法如下:

      ①如果當(dāng)前幀為GOP中的第1個(gè)I幀,且所述的GOP為第1個(gè)GOP,則QPI為根據(jù)B、R以及圖像分辨率得到一個(gè)經(jīng)驗(yàn)值,通常設(shè)置為30。

      ②如果當(dāng)前幀為GOP中的第1個(gè)I幀,且所述的GOP為除第1個(gè)GOP外的其他GOP,則QPI根據(jù)ΔBG的正負(fù)以及已編碼完的上一個(gè)GOP的平均量化參數(shù)確定,方法如下:

      其中為保證圖像質(zhì)量的連續(xù)性,減小量和增大量不宜過大,所以a的取值范圍為[-3,+3]。

      ③如果當(dāng)前幀為第1個(gè)I幀后的第1個(gè)P幀,則QPp0的調(diào)整根據(jù)P幀前的第1個(gè)I幀的QPI確定,計(jì)算公式為

      其中t的取值范圍為[-3,+3],△Bmax和△Bmin為期望控制的緩沖區(qū)可容忍的碼率波動(dòng)的最大值和最小值。

      ④如果當(dāng)前幀為除第1個(gè)P幀之外的其余P幀,其QP由前1幀的skip宏塊數(shù)目確定。這是由于每幀的編碼比特?cái)?shù)的差異大部分是由skip宏塊(量化后為0,無需編碼的宏塊)的數(shù)目差異引起的。而根據(jù)時(shí)間相關(guān)性,相鄰2個(gè)P幀的skip宏塊數(shù)目相差不多,所以可根據(jù)上1個(gè)P幀的skip宏塊數(shù)目,預(yù)測(cè)當(dāng)前P幀的實(shí)際編碼比特?cái)?shù),通過與目標(biāo)比特?cái)?shù)的比較,調(diào)整QP。具體方法如下:

      其中QPL為前1個(gè)P幀的初始量化參數(shù)。QPskip為由前1幀由skip宏塊數(shù)SN預(yù)測(cè)得到的量化參數(shù),其計(jì)算公式為

      其中符號(hào)「?表示向上取整操作。

      4)宏塊層碼率控制。

      對(duì)于I幀,其宏塊預(yù)分配比特?cái)?shù)BMi由宏塊數(shù)MN和當(dāng)前幀的目標(biāo)比特?cái)?shù)BF決定:

      對(duì)于P幀,為提高碼率控制算法的編碼性能,筆者在P幀宏塊層根據(jù)圖像內(nèi)容復(fù)雜度分配目標(biāo)比特,此處使用預(yù)測(cè)殘差的SAD值來表征宏塊的復(fù)雜度。

      先計(jì)算復(fù)雜度因子

      其中SADi表示宏塊i的復(fù)雜度,其值為對(duì)應(yīng)當(dāng)前宏塊的前1幀當(dāng)前位置宏塊的原始值與最佳預(yù)測(cè)值的SAD值,j表示當(dāng)前宏塊i所在幀的上1幀中的宏塊。

      根據(jù)復(fù)雜度因子c和當(dāng)前幀的目標(biāo)比特BF確定當(dāng)前宏塊i的預(yù)分配目標(biāo)比特?cái)?shù)

      對(duì)于宏塊層的QP調(diào)整,則要結(jié)合緩沖區(qū)的充盈度以及ΔB來確定量化值調(diào)節(jié)因子q,其計(jì)算方法為

      其中∑Bmi為已編碼完宏塊的實(shí)際比特?cái)?shù)之和,∑BMI為已編碼完宏塊的目標(biāo)比特?cái)?shù)之和。

      根據(jù)量化值調(diào)節(jié)因子調(diào)整宏塊量化值,調(diào)節(jié)方式可利用非線性控制理論中的bang-bang最優(yōu)控制原理[4],具體方法如下:第i個(gè)宏塊的量化值QPMi為

      其中QPF為宏塊所在幀的全幀初始QP,ΔQP(q)為利用q值確定此量化調(diào)整值ΔQP的函數(shù),其曲線方程為:

      3 實(shí)驗(yàn)結(jié)果

      為評(píng)估新算法的性能,在H.264/AVC標(biāo)準(zhǔn)參考軟件JM基礎(chǔ)上,實(shí)現(xiàn)了筆者設(shè)計(jì)的低時(shí)延碼率控制算法。并將其與JVT-H017提案中的碼率控制算法進(jìn)行了對(duì)比實(shí)驗(yàn)。測(cè)試范圍涵蓋多組標(biāo)準(zhǔn)視頻測(cè)試序列和多種目標(biāo)碼率。這里僅列出部分仿真實(shí)驗(yàn)結(jié)果。

      圖1和圖2顯示了在目標(biāo)碼率為500幀/s、I幀間隔為125幀、幀率為25幀/s的條件下,動(dòng)態(tài)比較劇烈、有場(chǎng)景切換的mobile.yuv序列和圖像內(nèi)容比較平穩(wěn)的kettle.yuv序列的編碼比特?cái)?shù)變化曲線。其中橫坐標(biāo)為編碼幀數(shù)(這里僅列出部分幀數(shù)),縱坐標(biāo)為編碼的實(shí)際比特?cái)?shù)與預(yù)分配的目標(biāo)比特?cái)?shù)的差值,即發(fā)送緩沖區(qū)累積的數(shù)據(jù)。

      圖1 mobile序列編碼比特?cái)?shù)變化曲線Fig.1 The coding bit variety curve for mobile

      圖2 kettle序列編碼比特?cái)?shù)變化曲線Fig.2 the coding bit variety curve for kettle

      由圖1和圖2可見,筆者算法發(fā)送緩沖區(qū)內(nèi)的變化遠(yuǎn)好于JVT-H017算法所引起的緩沖區(qū)變化情況。筆者算法每幀圖像編碼比特?cái)?shù)的變化非常平穩(wěn),只在目標(biāo)比特的附近進(jìn)行小范圍的波動(dòng)。對(duì)于kettle.yuv序列,經(jīng)測(cè)試,波動(dòng)范圍基本可控制在[-600,1500]字節(jié)以內(nèi),所以讀寫指針的波動(dòng)最大差值為2100字節(jié),其引起的最大緩沖時(shí)延可粗略的計(jì)算為:2 100×8/500 =33.6 ms;而JVT-H017算法引起的讀寫指針的差值最大值達(dá)到373 144比特,其對(duì)應(yīng)的最大緩沖時(shí)延近似為373 144/500=746.288 ms,遠(yuǎn)大于筆者算法。

      筆者比較了2種碼率控制算法對(duì)編碼性能的影響結(jié)果。表1列出了在300幀/s、400幀/s、500幀/s和600幀/s目標(biāo)碼率下,筆者算法與JVTH017算法的平均PSNR與實(shí)際編碼碼率的比較結(jié)果。由此表可見,該算法能夠比較精確地控制碼率,同時(shí),編碼質(zhì)量下降的很少,約為0.1 dB。

      表1 二種算法的編碼性能比較結(jié)果Table 1 Comparison of coding performance for the two algorithm s

      根據(jù)以上仿真實(shí)驗(yàn)結(jié)果可看出,筆者提出的低時(shí)延碼率控制算法,不僅可達(dá)到減少跳幀次數(shù)、降低發(fā)送緩沖區(qū)引起的時(shí)延的目的,對(duì)視頻編碼質(zhì)量影響也比較小。

      4 結(jié)論

      為降低視頻傳輸時(shí)延,筆者結(jié)合H.264/AVC標(biāo)準(zhǔn)的編碼特性,提出了一種低時(shí)延的碼率控制算法。該算法綜合了基于圖像復(fù)雜度分析的前向碼率控制技術(shù)和基于緩沖區(qū)容量反饋的后向碼率控制技術(shù),進(jìn)行分層的精細(xì)化碼率控制(宏塊層、幀層和圖像組層)。其中基于圖像復(fù)雜度分析的前向碼率控制技術(shù),可根據(jù)圖像內(nèi)容合理地分配宏塊層目標(biāo)碼率,從而較好地保持了圖像質(zhì)量;基于緩沖區(qū)容量反饋的后向碼率控制技術(shù),可迅速有效地實(shí)現(xiàn)各層碼率預(yù)分配,使實(shí)際碼率波動(dòng)最小化,從而達(dá)到最小化緩存區(qū)容量、減小緩存時(shí)延的目的。實(shí)驗(yàn)結(jié)果驗(yàn)證了筆者算法可使碼率波動(dòng)最小化,同時(shí)較好地保持了圖像質(zhì)量。而且筆者算法可邊采集圖像數(shù)據(jù)邊確定QP,而無需等待全幀圖像數(shù)據(jù)采集完畢再計(jì)算QP,從而節(jié)省了約40 ms的輸入等待時(shí)延;此外,筆者算法運(yùn)算量小,避免了大量復(fù)雜的浮點(diǎn)運(yùn)算,更利于工程實(shí)現(xiàn)。

      [1]Chen Jen-yeu,Chia-Wen Chiu,Gwo-Long LI,et al. Burst-aware dynamic rate control for H.264/AVC video streaming[J].IEEE Trans on Broadcasting,2011,57 (1):89-93.

      [2]Zhou Yi-min,Sun Yu,F(xiàn)eng Zhi-dan,etal.PID-based bit allocation strategy for H.264/AVC rate control[J]. IEEE Trans on Circuits and SystemsⅡ:Express Briefs,2011,58(3):184-188.

      [3]Chang Li-chuan,Chih-Hung KUO,Liu Bin-da.A twostage rate control mechanism for RDO-Based H.264/ AVC encoders[J].IEEE Trans on Circuits and Systems for Video Technology,2011,21(5):660-673.

      [4]王朝珠,秦化淑.最優(yōu)控制理論[M].科學(xué)出版社,2003.

      猜你喜歡
      宏塊碼率緩沖區(qū)
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
      基于狀態(tài)機(jī)的視頻碼率自適應(yīng)算法
      基于場(chǎng)景突變的碼率控制算法
      基于選擇特征宏塊的快速視頻穩(wěn)像
      X264多線程下碼率控制算法的優(yōu)化
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      多光譜圖像壓縮的聯(lián)合碼率分配—碼率控制方法
      基于宏塊合并的H.264模式選擇算法
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
      電視技術(shù)(2012年1期)2012-06-06 08:13:58
      南投市| 南澳县| 邹城市| 东山县| 全椒县| 阿拉善右旗| 巴马| 芜湖县| 汉沽区| 衢州市| 鲜城| 登封市| 鹿泉市| 鹤山市| 定南县| 刚察县| 双桥区| 新乡市| 康马县| 营山县| 中宁县| 扎兰屯市| 福鼎市| 汝州市| 铜梁县| 武邑县| 临海市| 南宫市| 玉溪市| 那曲县| 曲阳县| 新邵县| 通辽市| 海林市| 崇信县| 罗甸县| 霍山县| 沧源| 冕宁县| 尚志市| 尉犁县|