王忠霄,殷海兵
(中國計(jì)量學(xué)院 信息工程學(xué)院,浙江 杭州 310018)
基于時(shí)域失真?zhèn)鬟f鏈的宏塊級碼率控制算法
王忠霄,殷海兵
(中國計(jì)量學(xué)院 信息工程學(xué)院,浙江 杭州 310018)
x264是工業(yè)界性能優(yōu)秀的H.264編碼器,時(shí)域自適應(yīng)碼率控制算法(MacroblockTree, MBTree)對其性能提升有很大貢獻(xiàn).該算法通過構(gòu)造時(shí)域失真?zhèn)鬟f鏈,估算可以反映當(dāng)前宏塊被參考頻度的傳遞代價(jià)ρ.再根據(jù)傳遞代價(jià)計(jì)算量化偏移量δ,實(shí)現(xiàn)碼率的時(shí)域宏塊級控制.然而,MBTree算法采用的δ-ρ模型是憑經(jīng)驗(yàn)得出的,較為粗糙.針對這一問題,提出了一種基于R-D判據(jù)尋找性能最優(yōu)δ-ρ模型的方法.實(shí)驗(yàn)證明采用本文模型后的MBTree算法,與之前相比可以獲得最高0.14 dB的結(jié)構(gòu)相似度提升,或在相同結(jié)構(gòu)相似度下,獲得最高5.8%的碼率節(jié)省量.
碼率控制;x264編碼器;率失真性能;宏塊樹;傳遞代價(jià)
碼率控制[1]是視頻編碼技術(shù)研究領(lǐng)域中的熱點(diǎn)問題,它的任務(wù)是保證解碼緩沖區(qū)不發(fā)生溢出前提下,使用R-D模型等技術(shù)確定量化參數(shù)Qp,實(shí)現(xiàn)目標(biāo)碼率分配.R-D模型和目標(biāo)碼率分配是兩個(gè)核心的問題[2].早期已有的率失真模型包括:二階模型、ρ域模型、逐段近似模型等,這些模型的準(zhǔn)確程度和普適性都有一定局限性.一直以來學(xué)術(shù)界仍在研究更準(zhǔn)確高效的R-D模型,然而模型的準(zhǔn)確性依然不夠.在目標(biāo)碼率分配方面,采用多步編碼或者基于網(wǎng)格的動(dòng)態(tài)規(guī)劃編碼技術(shù),實(shí)現(xiàn)基于視頻序列編碼復(fù)雜度的目標(biāo)碼率分配,這些方法一般適應(yīng)于非實(shí)時(shí)視頻應(yīng)用,或復(fù)雜度極高[3].
x264編碼器基于內(nèi)容復(fù)雜度計(jì)算幀級量化Qp,并通過時(shí)域MBTree和空域VAQ計(jì)算宏塊級量化偏移量,得到最終量化參數(shù),實(shí)現(xiàn)更加精細(xì)的碼率控制.x264中,I與P幀的失真會在GOP內(nèi)向后傳遞,造成GOP內(nèi)失真惡化,編碼效率低下.為了解決這一問題,應(yīng)在GOP內(nèi)給被參考次數(shù)多的宏塊更多的碼率[4-6],實(shí)現(xiàn)碼率的合理分配.
MBTree算法[7]正是基于此原理,充分利用宏塊的時(shí)域相關(guān)性,考慮運(yùn)動(dòng)預(yù)測相關(guān)宏塊的失真與碼率,進(jìn)而確定量化參數(shù).具體而言,在編碼預(yù)分析滑動(dòng)窗中構(gòu)造時(shí)域傳遞鏈,從滑動(dòng)窗最后一幀倒序向前作運(yùn)動(dòng)參考狀況分析,計(jì)算出可以反映當(dāng)前宏塊被參考頻度的參數(shù)ρ,本文稱為“傳遞代價(jià)”.傳遞代價(jià)ρ越大的宏塊,被后續(xù)幀參考的次數(shù)越多,應(yīng)該有更小的失真.因此,通過δ-ρ模型得到量化參數(shù)偏移量δ,進(jìn)而調(diào)整量化參數(shù),這就根據(jù)宏塊的時(shí)域相關(guān)性實(shí)現(xiàn)了碼率的宏塊級控制.
我們發(fā)現(xiàn),MBTree采用的δ-ρ模型是基于經(jīng)驗(yàn)性的log函數(shù),缺少理論依據(jù),并且這一簡單log函數(shù)不能準(zhǔn)確反映δ-ρ最優(yōu)對應(yīng)關(guān)系,這使得該算法對部分序列并不適用.為了充分發(fā)揮MBTree算法的優(yōu)越性,本文嘗試用遍歷偏移點(diǎn)的方法解決上述問題.具體而言,本文以原log函數(shù)為基準(zhǔn)函數(shù),采樣大量偏移點(diǎn),對偏移點(diǎn)進(jìn)行遍歷測試,以R-D判據(jù)[8]找到最優(yōu)偏移點(diǎn),進(jìn)而確定最終的δ-ρ模型.實(shí)驗(yàn)結(jié)果顯示,MBTree算法采用本文δ-ρ模型后相比原log函數(shù)模型有明顯的主客觀性能提升,可以更加準(zhǔn)確細(xì)致地反映各類型序列的δ-ρ對應(yīng)關(guān)系.
本文結(jié)構(gòu)如下:第一節(jié)詳細(xì)分析MBTree算法原理;第二節(jié)介紹δ-ρ模型的計(jì)算原理;第三節(jié)給出測試結(jié)果;第四節(jié)是分析和展望.
1.1 滑動(dòng)窗和傳遞代價(jià)ρ
傳遞代價(jià)ρ的獲得是通過lookahead滑動(dòng)窗模塊實(shí)現(xiàn)的,如圖1,滑動(dòng)窗由當(dāng)前幀及后向多個(gè)連續(xù)鄰近幀組成,它默認(rèn)大小為40. MBtree基于該滑動(dòng)窗計(jì)算當(dāng)前幀各宏塊的傳遞代價(jià)ρ,計(jì)算主要由intra_cost和propagate兩部分組成,假設(shè)N為滑動(dòng)窗后續(xù)幀參考當(dāng)前編碼幀當(dāng)前宏塊的總次數(shù),k為滑動(dòng)窗倒序分析時(shí)任一幀的任一宏塊,k′是被宏塊k參考的對應(yīng)塊,如圖1,k′可能被劃分在四個(gè)宏塊中.計(jì)算傳遞代價(jià)ρ的具體步驟如下:
1)計(jì)算滑動(dòng)窗內(nèi)各幀各宏塊的最優(yōu)幀內(nèi)和幀間模式預(yù)測殘差,用SATD度量預(yù)測代價(jià)intra_cost(j)和inter_cost(j).滑動(dòng)窗最后一幀各宏塊沒有被參考,因此inter_cost(j)和propagate(j)都為0.
2)滑動(dòng)窗中B幀和P幀會參考P幀或I幀,宏塊k傳遞給參考幀匹配宏塊k′的傳遞代價(jià)量amount(k′):
amount(k′)=(intra_cost(k)+propagate(k))×fraction(k),
(1)
fraction(k)=(1-inter_cost(k)/intra_cost(k)).
(2)
3)將宏塊k總的傳遞代價(jià)量amount在與匹配宏塊k′相關(guān)的四個(gè)宏塊(n=1、2、3、4)間按照權(quán)重進(jìn)行分配,weight(n)是由運(yùn)動(dòng)預(yù)測的運(yùn)動(dòng)矢量計(jì)算得到
in(n)=amount(k′)×weight(n).
(3)
4)圖1中參考P幀的B幀和P幀所有宏塊的傳遞代價(jià)量amount按權(quán)重weight傳遞給P幀各宏塊后,就可以計(jì)算P幀各宏塊的propagate值了,N為宏塊j按權(quán)重weight被傳遞到的次數(shù).
(4)
5)當(dāng)前P幀的propagate計(jì)算完成后,在滑動(dòng)窗里倒序繼續(xù)向前循環(huán)步驟1)~4),直到計(jì)算出滑動(dòng)窗中第一幀(I或P幀)各宏塊的參考傳遞代價(jià)propagate值,最后計(jì)算時(shí)域傳遞代價(jià)ρ:
ρ(j)=propagate(j)/intra_cost(j).
(5)
圖1 Lookahead滑動(dòng)窗中計(jì)算ρ值示意圖Figure 1 Diagram of calculation of ρ in the sliding window
1.2 原δ-ρ模型
MBTree算法使用公式(6)的log函數(shù)來實(shí)現(xiàn)由傳遞代價(jià)ρ向量化參數(shù)偏移量δ的計(jì)算.qcompress是基于實(shí)驗(yàn)得到的經(jīng)驗(yàn)值,默認(rèn)為0.6.
δ=5(1-qcompress)×log2(1+ρ).
(6)
圖2是bridge-close序列qcompress分別為0.3、0.6、0.9時(shí)的δ-ρ模型.
測試發(fā)現(xiàn),MBTree算法對不同序列的性能提升幅度是不同的,甚至對個(gè)別序列性能有損害.這是因?yàn)椴煌蛄笑?ρ最優(yōu)對應(yīng)關(guān)系不同,而MBTree算法的δ-ρ模型基于經(jīng)驗(yàn)且過于粗糙,忽略了不同序列的差異性.這限制了MBTree算法的應(yīng)用,也不利于對它進(jìn)一步的優(yōu)化建模.因此,本文嘗試用更準(zhǔn)確細(xì)致的模型描述δ-ρ的對應(yīng)關(guān)系,這對于MBTree算法的進(jìn)一步研究非常有益.
2.1 參數(shù)ρ樣本值統(tǒng)計(jì)分析
本文對大量視頻序列的ρ樣本值做了統(tǒng)計(jì),如圖3,ρ值主要集中在小于30的范圍內(nèi),部分序列ρ值大于50的宏塊數(shù)為0,在視頻序列龐大的宏塊個(gè)數(shù)中,ρ值大于30的宏塊所占比例極小,它們所對應(yīng)的δ-ρ最佳性能點(diǎn)對整體影響極小,因此本文選擇區(qū)間(0,30]為ρ值的研究范圍.
圖2 MBTree-qcompress映射曲線Figure 2 Mapping curve of MBTree-qcompres
圖3 ρ數(shù)值分布圖Figure 3 Map of ρ distribution
2.2 δ-ρ新模型
為了得到δ-ρ性能最佳模型,本文首先對參考代價(jià)ρ進(jìn)行離散化采樣.
(7)
如式(7),根據(jù)ρ的數(shù)值分布及MBTree原log模型,把ρ分成了三段,每段采樣若干離散點(diǎn).在(0,4]內(nèi),按0.25為區(qū)間大小進(jìn)行采樣,各區(qū)間內(nèi)的ρ值統(tǒng)一取值為區(qū)間中值;在(4,10]內(nèi),區(qū)間大小為0.5;在(10,30]內(nèi),區(qū)間大小為1.
對每個(gè)ρi采樣點(diǎn),按照log模型會計(jì)算到對應(yīng)的δi值.為了得到δ-ρ最優(yōu)模型,對每個(gè)δi值加上偏移量ωi.如式(8),每個(gè)δi值會有21個(gè)待選的ωij,ωij取值范圍為[-2.5,2.5].
ωij=0.25×(j-11)j∈[1,21].
(8)
對于該ρi采樣點(diǎn)加上偏移量ωij時(shí),其余的ρ采樣點(diǎn)并未加入偏移量,此時(shí)的δ取值為κij,計(jì)算如式(9).即,每次只對一個(gè)ρi采樣點(diǎn)進(jìn)行實(shí)驗(yàn),尋找該點(diǎn)的性能最優(yōu)δ值.
(9)
依式(10)的率失真代價(jià)函數(shù)計(jì)算每個(gè)ωij對應(yīng)δ-ρ模型的率失真代價(jià),根據(jù)式(11)得到性能最優(yōu)的偏移量ωRD,率失真性能的計(jì)算如圖6.
(10)
(11)
該ρi采樣點(diǎn)對應(yīng)的性能最優(yōu)δRDi是原δi值與最優(yōu)的偏移量ωRD疊加得到
δRDi=δi+ωRD.
(12)
按上述步驟計(jì)算所有ρ采樣點(diǎn)對應(yīng)的性能最優(yōu)δRDi,這些最優(yōu)δRDi就是離散化的δ-ρ新模型,圖4、5是本文測試兩個(gè)序列的新模型與原log模型對比圖.
圖4 bridge_far序列最優(yōu)映射圖Figure 4 The optimal mapping diagram of bridge_far
圖5 hall序列最優(yōu)映射圖Figure 5 The optimal mapping diagram of hall
圖6 率失真代價(jià)計(jì)算原理圖Figure 6 Rate distortion cost calculation diagram
算法流程如圖7,具體步驟如下:
1)按照式(7)對ρ進(jìn)行離散采樣.
2)按照式(8)(9)計(jì)算待選偏移量ωi及δ-ρ模型κij.
3)按照式(9)選取最優(yōu)偏移量ωRD.
4)按照式(10)計(jì)算性能最優(yōu)δfinal.
5)重復(fù)步驟2)~4)計(jì)算所有采樣點(diǎn)的δfinal.
圖7 δ-ρ新模型計(jì)算框圖Figure 7 Calculation diagram of the δ-ρ new model
本文實(shí)驗(yàn)基于x264平臺,測試參數(shù)為:—preset slower —pass 1 —bframes 2 —slow-firstpass —merange 24.
如圖5、6和表1,對多數(shù)序列δ-ρ新模型相比原模型主觀結(jié)構(gòu)相似度質(zhì)量都有提升,最高結(jié)構(gòu)相似度可以提高0.14 dB,10個(gè)序列結(jié)構(gòu)相似度平均提高0.01 dB;碼率最高節(jié)省5.8%,10個(gè)序列平均節(jié)省1%;個(gè)別序列的峰值信噪比也有提升,如圖10.
表1 結(jié)構(gòu)相似度提升和比特率節(jié)省
Table 1 The ssim improvement and bitrate saving (compared with MBTree off)
序列名log模型結(jié)構(gòu)相似度提升量/dB本文模型結(jié)構(gòu)相似度提升量/dBlog模型碼率節(jié)省/%本文模型碼率節(jié)省/%Bridge?close0.43220.385315.6714.15mobile0.85470.780817.5716.14news1.20201.236325.6626.45paris1.47741.497327.4727.77highway0.07760.09365.316.96Bridge?far0.05290.10625.099.64forman0.34760.33699.289.01coastguard0.33540.318910.329.87container0.33510.32079.579.24hall0.30020.446315.1820.96Cif?平均0.54150.552214.1115.02
圖8 bridge_far序列ssim測試結(jié)果Figure 8 The ssim result of bridge_far
圖9 hall序列ssim測試結(jié)果Figure 9 The ssim result of hall
圖10 hall序列psnr測試結(jié)果Figure 10 The psnr result of hall
本文首先詳細(xì)分析了x264編碼器中的宏塊級碼率控制MBTree算法原理,該算法通過構(gòu)造時(shí)域傳遞鏈,得到可以反映當(dāng)前宏塊被參考頻度的傳遞代價(jià)ρ,這巧妙實(shí)現(xiàn)了宏塊被參考頻度的感知,并通過一個(gè)簡單log函數(shù)計(jì)算該宏塊的量化偏移量δ,實(shí)現(xiàn)了宏塊級的碼率控制;接著本文針對MBTree算法中δ-ρ模型較為粗糙的問題展開研究,以R-D為判據(jù)遍歷偏移量點(diǎn)得到δ-ρ新模型.結(jié)果顯示對于多數(shù)序列的主觀性能,本文新模型都有提升.目前本文算法在離散分段方面并未做到最優(yōu),同時(shí)新模型的準(zhǔn)確性仍然有待提高.另外,本文所提映射模型是基于離線分析,相比原模型在普適性上有待改進(jìn).因此,下一步的研究將針對離散分段最優(yōu)化,及對新模型進(jìn)行迭代尋優(yōu)進(jìn)一步提高模型的準(zhǔn)確性;并嘗試找到基于內(nèi)容自適應(yīng)的模型,使模型普適性得以提升.
[1] CHEN Mingzhu, ZHANG Xingming, LIN Yubei, et al. A perception-based rate control algorithm for H.264/AVC[C]//HPCC_EUC.Piscataway: IEEE,2013:2219-2223.
[2] 殷海兵.數(shù)字視頻編碼算法優(yōu)化理論、方法和芯片實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2015:231-237.
[3] TIAN Ling, XU Xinhao, ZHOU Yimin, et al. Analysis of quadratic R-D model in H.264/AVC video coding[C]//IEEE 17th International Conference on Image Processing. Hong Kong: [s.n.],2010:2853-2856.
[4] WANG Shanshe, MA Siwei, WANG Shiqi, et al, Rate-GOP based rate control for high efficiency video coding[J].IEEE Signal Processing Magazine,2013,7(6):1101-1111.
[5] YANG Tianwu, ZHU Ce, FAN Xiaojiu, et al. Source distortion temporal propagation model for motion compensated video coding optimization[C]//IEEE International Conference on Multimedia and Expo. Melbourne: [s.n.],2012:85-90.
[6] TOIVONEN T, MERRITT L, OJANSIVU V, et al. A new rotation search for dependent rate-distortion optimization in video coding acoustics[J].Speech and Signal Processing,2007(1):1165-1168.
[7] JASON G. A novel macroblock-tree algorithm for high-performance optimization of dependent video coding in H.264/AVC[EBOL].(2015-02-06) [2011-04-29].http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pdf.
[8] ORTEGA A, RAMCHANDRAN K. Rate-distortion methods for image and video compression[J].IEEE Signal Processing Magazine,1998,6(15):23-50.
A macroblock level adaptive ratecontrol algorithm based on temporal distortion propagate chains
WANG Zhongxiao, YIN Haibing
(College of Information Engineering, China Jiliang University, Hangzhou 310018, China)
The x264 is a splendid H.264 compatible encoder in the industry. And its superior R-D performance is mainly contributed by the temporally adaptive MBTree quantization control algorithms. The MBTree algorithm estimates the propagate costρby developing a temporal distortion propagating chain, which can reflect the amount of distortion propagated by the current block. According to the propagate costρ, the algorithm calculates the quantitative offsetsδto adjust the frame level quantization parameter Qp, achieving optimal temporal domain bit allocation. Theδ-ρmodel in the MBTree algorithm is an empirical and rough model. Now we propose an optimal model based on the rate distortion optimization. The simulation results verify that the MBTree algorithm with the new model can achieve up to 0.14 dB BD-SSIM improvement, or achieve up to 5.8% bitrate saving with the same BD-SSIM.
rate control; x264 compatible encoder; rate distortion performance; MBTree; propagate cost
1004-1540(2015)03-0353-06
10.3969/j.issn.1004-1540.2015.03.019
2015-02-06 《中國計(jì)量學(xué)院學(xué)報(bào)》網(wǎng)址:zgjl.cbpt.cnki.net
王忠霄(1991- ),男,山東省濟(jì)寧人,碩士研究生,主要研究方向?yàn)橐曈X感知編碼等.E-mail:599597630@qq.com 通訊聯(lián)系人:殷海兵,男,教授.E-mail:yinhb@cjlu.edu.cn
TN919.8
A