本發(fā)明涉及一種視頻編碼技術(shù),尤其是涉及一種高效視頻編碼的復(fù)雜度控制方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)和流媒體技術(shù)的快速發(fā)展,特別是高清(HD)、超高清(UHD)、三維(3D)、多視點(diǎn)(multi-view)和自由視點(diǎn)(Free viewpoint)視頻技術(shù)的興起,視頻信息得到日益普及。近年來(lái),由于移動(dòng)終端和視頻監(jiān)控的日益增多,高清和超高清視頻大量增加,而已有的MPEG-2、MPEG-4和H.264/AVC(Advanced Video Coding)等視頻編碼標(biāo)準(zhǔn)已經(jīng)難以滿足人們對(duì)高清視頻壓縮的要求。為了解決這個(gè)問(wèn)題,高效視頻編碼(High Efficiency Video Coding,HEVC)標(biāo)準(zhǔn)應(yīng)運(yùn)而生,它是繼H.264/AVC之后的新一代視頻編碼標(biāo)準(zhǔn),并于2013年1月由ITU-T VCEG(Video Coding Experts Group)和ISO/IEC MPEG(Moving Pictures Experts Group)組成的視頻編碼聯(lián)合專家組(JCT-VC,Joint Collaborative Team on Video Coding)確定為新一代國(guó)際視頻編碼標(biāo)準(zhǔn)。與之前的視頻編碼標(biāo)準(zhǔn)H.264/AVC相比,HEVC標(biāo)準(zhǔn)引入了很多新的編碼技術(shù),壓縮效率相較于H.264/AVC視頻編碼標(biāo)準(zhǔn)提高將近一倍。
HEVC中獨(dú)有的編碼技術(shù)有:1)針對(duì)大尺寸的四叉樹(shù)分割技術(shù):在HEVC中,基本編碼單元為編碼樹(shù)單元(CTU,Coding Tree Unit),尺寸大小為16×16、32×32或者64×64,每個(gè)編碼樹(shù)單元由亮度編碼樹(shù)塊與對(duì)應(yīng)的色度編碼樹(shù)塊組成;2)殘差四叉樹(shù)變換結(jié)構(gòu):殘差四叉樹(shù)變換(RQT,Residual Quad-tree Transform)屬于一種自適應(yīng)的變換技術(shù),是對(duì)H.264/AVC中自適應(yīng)塊變換(ABT,Adaptive Block-size Transform)技術(shù)的延伸和擴(kuò)展;3)像素自適應(yīng)補(bǔ)償技術(shù):像素自適應(yīng)補(bǔ)償(SAO,Sample Adaptive Offset)位于編解碼環(huán)路內(nèi),通過(guò)對(duì)環(huán)路濾波后的重建圖像進(jìn)行分類,然后對(duì)每一類圖像像素選擇一種補(bǔ)償方式,以減少源圖像與重構(gòu)圖像之間的失真;4)并行設(shè)計(jì)技術(shù):為了適應(yīng)多核處理器的發(fā)展趨勢(shì),HEVC中引入了片層、條帶Slice以及波形并行處理(WPP,Wavefront Parallel Processing)的思想;5)自適應(yīng)熵編碼技術(shù):在HEVC中對(duì)所有的語(yǔ)法元素和預(yù)測(cè)殘差、變換系數(shù)都采用CABAC(Context-based Adaptive Binary Arithmetic Coding)進(jìn)行熵編碼。雖然這些新技術(shù)帶來(lái)了較高的率失真性能,以及顯著提高了編碼壓縮效率,但是同時(shí)也引入了較高的計(jì)算復(fù)雜度,這極不利于高清視頻的實(shí)時(shí)編碼,從而影響了HEVC標(biāo)準(zhǔn)的實(shí)際應(yīng)用。因此解決高清和超高清視頻傳輸?shù)母邘捄痛鎯?chǔ)的大容量問(wèn)題成為了視頻壓縮領(lǐng)域人們研究的主要課題。
關(guān)于HEVC編碼器的編碼復(fù)雜度高的問(wèn)題,有兩個(gè)相關(guān)的研究課題:編碼復(fù)雜度降低和編碼復(fù)雜度控制。對(duì)于編碼復(fù)雜度降低,目標(biāo)就是在保證視頻編碼質(zhì)量的前提下,盡可能多地降低編碼過(guò)程的復(fù)雜度;而對(duì)于編碼復(fù)雜度控制,編碼器必須在給定目標(biāo)編碼復(fù)雜度的情況下,并保持較好率失真性能的前提下,使實(shí)際編碼復(fù)雜度達(dá)到目標(biāo)編碼復(fù)雜度,實(shí)現(xiàn)編碼復(fù)雜度控制與可分級(jí)。
HEVC編碼器的編碼復(fù)雜度控制與可分級(jí)是一個(gè)非常重要的研究課題。實(shí)現(xiàn)HEVC編碼器的編碼復(fù)雜度控制與可分級(jí),可以滿足不同HEVC應(yīng)用的復(fù)雜度要求,尤其對(duì)于功率受限和復(fù)雜度受限的視頻應(yīng)用尤為重要,比如手機(jī)視頻應(yīng)用。隨著智能手機(jī)、智能穿戴設(shè)備等功率受限設(shè)備的日益增多,利用這些設(shè)備進(jìn)行編解碼高清視頻甚至超高清視頻的要求也越來(lái)越高,因此面向功率受限設(shè)備的編碼復(fù)雜度控制非常重要。
影響HEVC編碼器的編碼復(fù)雜度的因素有很多。在HEVC編碼過(guò)程中,編碼樹(shù)單元分割尺寸和預(yù)測(cè)單元(PU,Prediction Unit)尺寸的確定、率失真優(yōu)化(Rate Distortion Optimization,RDO)、運(yùn)動(dòng)估計(jì)(Motion Estimation,ME)、去塊濾波以及像素自適應(yīng)補(bǔ)償SAO都占有一定的編碼復(fù)雜度,但是它們所占的比例并不相同。編碼樹(shù)單元分割尺寸的確定過(guò)程是通過(guò)四叉樹(shù)遍歷方式遞歸實(shí)現(xiàn)的,其中采用了率失真優(yōu)化技術(shù)來(lái)選擇最優(yōu)的編碼參數(shù),因而編碼樹(shù)單元分割尺寸確定過(guò)程的復(fù)雜度是非常高的。通過(guò)探索編碼樹(shù)單元分割尺寸與編碼復(fù)雜度之間的關(guān)系,可以通過(guò)調(diào)節(jié)不同編碼樹(shù)單元的最大分割深度來(lái)實(shí)現(xiàn)準(zhǔn)確地編碼復(fù)雜度控制。在HEVC編碼器的編碼復(fù)雜度控制方面,主要有三類編碼復(fù)雜度控制算法。第一類編碼復(fù)雜度控制算法是通過(guò)復(fù)雜度分配的方法實(shí)現(xiàn)的,其思想類似于視頻編碼中的碼率分配,給定目標(biāo)編碼復(fù)雜度,通過(guò)合理地分配復(fù)雜度資源實(shí)現(xiàn)在保持較好的率失真性能的前提下,使實(shí)際編碼復(fù)雜度達(dá)到目標(biāo)復(fù)雜度。第二類編碼復(fù)雜度控制算法是利用各種編碼參數(shù)實(shí)現(xiàn)復(fù)雜度可配置,編碼參數(shù)主要有運(yùn)動(dòng)估計(jì)的搜索范圍和精度、參考幀的數(shù)目以及預(yù)測(cè)模式的選擇等。第三類編碼復(fù)雜度控制算法是利用各種提前中止算法實(shí)現(xiàn)編碼復(fù)雜度控制。也就是說(shuō),現(xiàn)有的編碼復(fù)雜度控制算法主要是從調(diào)節(jié)編碼樹(shù)單元的最大分割深度、設(shè)置提前中止條件或者調(diào)節(jié)預(yù)測(cè)編碼參數(shù)(預(yù)測(cè)模式、參考幀數(shù)目、運(yùn)動(dòng)估計(jì)的搜索范圍等)這三個(gè)角度進(jìn)行的。
通過(guò)上面對(duì)HEVC編碼器的編碼復(fù)雜度的分析可知,在影響HEVC編碼器的編碼復(fù)雜度的因素中,編碼樹(shù)單元的最大分割深度對(duì)編碼復(fù)雜度控制的影響較大?,F(xiàn)有的三類編碼復(fù)雜度控制算法主要是在編碼樹(shù)單元級(jí)進(jìn)行的,由于并沒(méi)有考慮圖像組層和幀層上的編碼復(fù)雜度控制,因而并不能對(duì)編碼復(fù)雜度進(jìn)行精確的控制和分級(jí),如屬于第一類編碼復(fù)雜度控制算法的有Correa等人提出的HEVC編碼樹(shù)深度估計(jì)方法,該方法充分利用編碼樹(shù)單元的時(shí)空域相關(guān)性來(lái)調(diào)節(jié)編碼樹(shù)單元的最大分割深度,在一定程度上實(shí)現(xiàn)了編碼復(fù)雜度的控制,但是該方法沒(méi)有考慮圖像組層和幀層上的編碼復(fù)雜度控制,編碼復(fù)雜度控制精度并不高,并且該方法對(duì)編碼樹(shù)單元的時(shí)空域信息依賴比較大,不利于HEVC的并行編解碼。因此,為了實(shí)現(xiàn)對(duì)HEVC編碼器的編碼復(fù)雜度進(jìn)行精確地控制,需要深入探索編碼結(jié)構(gòu)的統(tǒng)計(jì)特征和編碼樹(shù)單元的最大分割深度與編碼復(fù)雜度之間的關(guān)系,從圖像組(GOP)層、幀層和編碼樹(shù)單元層三個(gè)層級(jí)上實(shí)現(xiàn)逐層分配編碼復(fù)雜度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種面向功率受限設(shè)備的高效視頻編碼的復(fù)雜度控制方法,其在保證編碼復(fù)雜度控制精度和編碼率失真性能的前提下,能夠有效地實(shí)現(xiàn)HEVC編碼復(fù)雜度的準(zhǔn)確控制和可分級(jí)。
本發(fā)明解決上述技術(shù)問(wèn)題所采用的技術(shù)方案為:一種高效視頻編碼的復(fù)雜度控制方法,其特征在于該復(fù)雜度控制方法在基于HEVC視頻編碼標(biāo)準(zhǔn)的視頻編碼校驗(yàn)?zāi)P虷M上,采用低延時(shí)編碼配置的圖像組結(jié)構(gòu)對(duì)待處理的視頻進(jìn)行編碼,在編碼過(guò)程中對(duì)待處理的視頻中的第4個(gè)圖像組至最后一個(gè)圖像組中的所有P幀采用如下步驟進(jìn)行編碼:
①計(jì)算分配給待處理的視頻中的第4個(gè)圖像組至最后一個(gè)圖像組的每個(gè)圖像組的目標(biāo)編碼復(fù)雜度,將分配給待處理的視頻中的第g個(gè)圖像組的目標(biāo)編碼復(fù)雜度記為其中,g的初始值為4,4≤g≤NumGOP,NumGOP表示待處理的視頻中包含的圖像組的總個(gè)數(shù),Ttarget表示待處理的視頻的目標(biāo)編碼復(fù)雜度;
②將待處理的視頻中當(dāng)前待處理的第g個(gè)圖像組定義為當(dāng)前圖像組;
③計(jì)算當(dāng)前圖像組中的每幀P幀的幀層復(fù)雜度比例,將當(dāng)前圖像組中的第k幀P幀的幀層復(fù)雜度比例記為Pg,k,然后計(jì)算分配給當(dāng)前圖像組中的每幀P幀的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀的目標(biāo)編碼復(fù)雜度記為其中,k的初始值為1,1≤k≤4,Pg-1,k表示待處理的視頻中的第g-1個(gè)圖像組中的第k幀P幀的幀層復(fù)雜度比例,Pg-2,k表示待處理的視頻中的第g-2個(gè)圖像組中的第k幀P幀的幀層復(fù)雜度比例,g=4時(shí)令g=4或g=5時(shí)令表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案對(duì)待處理的視頻中的第g-1個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度之和,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案對(duì)待處理的視頻中的第g-2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度之和;
④計(jì)算當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重,將當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重記為ωg,k,m,然后計(jì)算分配給當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度記為接著對(duì)分配給當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度進(jìn)行歸一化處理,將歸一化處理后得到的目標(biāo)編碼復(fù)雜度作為最終的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的最終的目標(biāo)編碼復(fù)雜度記為其中,符號(hào)“||”為取絕對(duì)值符號(hào),1≤m≤Mg,k,Mg,k表示當(dāng)前圖像組中的第k幀P幀中包含的編碼樹(shù)單元的總個(gè)數(shù),pg,k,m(i,j)表示當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元中坐標(biāo)位置為(i,j)的像素點(diǎn)的原始像素值,表示當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元中坐標(biāo)位置為(i,j)的像素點(diǎn)的預(yù)測(cè)像素值,1≤i≤64,1≤j≤64,Rg,k表示當(dāng)前圖像組中的第k幀P幀中已編碼的所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度,ωg,k,n表示當(dāng)前圖像組中的第k幀P幀中的第n個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重,表示當(dāng)前圖像組中的第k幀P幀中還未編碼的所有編碼樹(shù)單元的復(fù)雜度分配權(quán)重之和,
⑤計(jì)算當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的最大分割深度,將當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的最大分割深度記為然后根據(jù)當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的最大分割深度,對(duì)當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼;
⑥令g=g+1,將待處理的視頻中下一個(gè)待處理的圖像組作為當(dāng)前圖像組,然后返回步驟③繼續(xù)執(zhí)行,直至待處理的視頻中的所有圖像組處理完畢;其中,g=g+1中的“=”為賦值符號(hào)。
所述的步驟④中的獲取過(guò)程為:其中,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度0對(duì)待處理的視頻中的第2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最小實(shí)際編碼復(fù)雜度,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度3對(duì)待處理的視頻中的第2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最大實(shí)際編碼復(fù)雜度。
所述的步驟④中的獲取過(guò)程為:其中,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度0對(duì)待處理的視頻中的第3個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最小實(shí)際編碼復(fù)雜度,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度3對(duì)待處理的視頻中的第3個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最大實(shí)際編碼復(fù)雜度。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1)本發(fā)明方法充分考慮了編碼結(jié)構(gòu)的統(tǒng)計(jì)特征對(duì)目標(biāo)編碼復(fù)雜度分配的影響,功率受限設(shè)備視頻編碼采用常用的低延時(shí)編碼配置的分層B幀的IPPP的圖像組結(jié)構(gòu),由于不同時(shí)域?qū)蛹?jí)幀采用不同的編碼量化參數(shù),因此不同時(shí)域?qū)蛹?jí)幀具有不同的目標(biāo)編碼復(fù)雜度,這樣可以實(shí)現(xiàn)更準(zhǔn)確地編碼復(fù)雜度分配。
2)本發(fā)明方法深入探索了不同編碼樹(shù)單元的最大分割深度與目標(biāo)編碼復(fù)雜度之間的關(guān)系,將HEVC編碼復(fù)雜度控制問(wèn)題轉(zhuǎn)換為調(diào)節(jié)每個(gè)編碼樹(shù)單元的最大分割深度問(wèn)題,從而可在圖像組層和幀層的目標(biāo)編碼復(fù)雜度分配的基礎(chǔ)上,在編碼樹(shù)單元層實(shí)現(xiàn)更加精細(xì)地目標(biāo)編碼復(fù)雜度的分配。
3)本發(fā)明方法采用逐層分配的策略進(jìn)行目標(biāo)編碼復(fù)雜度分配,即從圖像組層、幀層和編碼樹(shù)單元層分別進(jìn)行目標(biāo)編碼復(fù)雜度的分配,從而實(shí)現(xiàn)了HEVC編碼復(fù)雜度從宏觀到微觀地更加精細(xì)地分配和控制。
4)本發(fā)明方法通過(guò)利用編碼結(jié)構(gòu)的統(tǒng)計(jì)特征和編碼樹(shù)單元的最大分割深度與編碼復(fù)雜度之間的關(guān)系,從圖像組(GOP)層、幀層和編碼樹(shù)單元層三個(gè)層級(jí)上實(shí)現(xiàn)了逐層分配目標(biāo)編碼復(fù)雜度,在保證編碼復(fù)雜度控制精度和編碼率失真性能的前提下,能夠有效地實(shí)現(xiàn)HEVC編碼復(fù)雜度的準(zhǔn)確控制和可分級(jí)。
附圖說(shuō)明
圖1為本發(fā)明方法的總體實(shí)現(xiàn)框圖;
圖2a為在視頻編碼校驗(yàn)?zāi)P虷M的原始方案下“BQSquare”視頻序列中的第8幀的殘差與CU分割的關(guān)系示意圖;
圖2b為在視頻編碼校驗(yàn)?zāi)P虷M的原始方案下“BQSquare”視頻序列中的第11幀的殘差與CU分割的關(guān)系示意圖;
圖3a為采用本發(fā)明方法對(duì)“BlowingBubbles”視頻序列進(jìn)行編碼后在4個(gè)不同目標(biāo)編碼復(fù)雜度下的率失真曲線示意圖;
圖3b為采用本發(fā)明方法對(duì)“Kimono”視頻序列進(jìn)行編碼后在4個(gè)不同目標(biāo)編碼復(fù)雜度下的率失真曲線示意圖。
具體實(shí)施方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
本發(fā)明提出的一種高效視頻編碼的復(fù)雜度控制方法,該復(fù)雜度控制方法在基于HEVC視頻編碼標(biāo)準(zhǔn)的視頻編碼校驗(yàn)?zāi)P虷M(HEVC Test Model)上,采用視頻編碼聯(lián)合專家組(JCT-VC,Joint Collaborative Team on Video Coding)推薦的低延時(shí)(LP-Main,Lowdelay-P Main)編碼配置的圖像組結(jié)構(gòu)對(duì)待處理的視頻進(jìn)行編碼,低延時(shí)編碼配置的圖像組結(jié)構(gòu)除了第1幀為I幀外其余各幀都為P幀,每幀P幀的編碼量化參數(shù)都是在I幀的編碼量化參數(shù)的基礎(chǔ)上加上一個(gè)偏移量,并且除第1個(gè)圖像組外的每個(gè)圖像組中的4幀P幀的編碼量化參數(shù)的偏移量分別為3、2、3和1。通過(guò)對(duì)低延時(shí)編碼配置進(jìn)行統(tǒng)計(jì)分析可知,在低延時(shí)編碼配置和IPPP的圖像組結(jié)構(gòu)中,每個(gè)圖像組的編碼時(shí)間大致相近。表1給出了當(dāng)編碼量化參數(shù)為32時(shí)“BQMall”視頻序列中的不同時(shí)域?qū)蛹?jí)的P幀的統(tǒng)計(jì)特征,表2給出了當(dāng)編碼量化參數(shù)為32時(shí)“BasketballDrive”視頻序列中的不同時(shí)域?qū)蛹?jí)的P幀的統(tǒng)計(jì)特征,對(duì)于“BQMall”視頻序列來(lái)說(shuō),每個(gè)圖像組的編碼時(shí)間基本相同并且變化的標(biāo)準(zhǔn)差較小,由于每個(gè)圖像組包含4幀,因此每個(gè)圖像組的幀間相關(guān)性非常強(qiáng),即使兩個(gè)圖像組之間存在場(chǎng)景切換,每個(gè)圖像組的編碼時(shí)間也非常接近;另外,從表1中可知,相同時(shí)域?qū)蛹?jí)的P幀的編碼時(shí)間變化是非常小的,最大標(biāo)準(zhǔn)差小于1.54秒;對(duì)于“BasketballDrive”視頻序列來(lái)說(shuō),從表2中可知,相同時(shí)域?qū)拥腜幀的編碼時(shí)間變化也是非常小,最大標(biāo)準(zhǔn)差小于3.35秒。從相同時(shí)域?qū)拥腜幀的編碼復(fù)雜度來(lái)看,第4幀P幀的編碼復(fù)雜度最高,其次是第2幀P幀,編碼復(fù)雜度最低的是第1幀P幀和第3幀P幀,且第1幀P幀和第3幀P幀的編碼復(fù)雜度非常接近,這是由對(duì)應(yīng)時(shí)域?qū)蛹?jí)P幀采用的編碼量化參數(shù)和圖像特征決定的。當(dāng)然,不僅對(duì)于“BQMall”和“BasketballDrive”視頻序列,其他視頻序列也具有這樣的編碼規(guī)律。根據(jù)這種編碼規(guī)律和圖像組結(jié)構(gòu)的特點(diǎn),本發(fā)明提出了圖像組層、幀層和編碼樹(shù)單元層的編碼復(fù)雜度控制策略。
表1 當(dāng)編碼量化參數(shù)為32時(shí)“BQMall”視頻序列中的不同時(shí)域?qū)蛹?jí)的P幀的統(tǒng)計(jì)特征
表2 當(dāng)編碼量化參數(shù)為32時(shí)“BasketballDrive”視頻序列中的不同時(shí)域?qū)蛹?jí)的P幀的統(tǒng)計(jì)特征
本發(fā)明方法在編碼過(guò)程中對(duì)待處理的視頻中的I幀及第1個(gè)圖像組至第3個(gè)圖像組中的每幀P幀采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案進(jìn)行編碼,而對(duì)待處理的視頻中的第4個(gè)圖像組至最后一個(gè)圖像組中的所有P幀采用如下步驟進(jìn)行編碼,總體實(shí)現(xiàn)框圖如圖1所示:
①計(jì)算分配給待處理的視頻中的第4個(gè)圖像組至最后一個(gè)圖像組的每個(gè)圖像組的目標(biāo)編碼復(fù)雜度,將分配給待處理的視頻中的第g個(gè)圖像組的目標(biāo)編碼復(fù)雜度記為其中,g的初始值為4,4≤g≤NumGOP,NumGOP表示待處理的視頻中包含的圖像組的總個(gè)數(shù),Ttarget表示待處理的視頻的目標(biāo)編碼復(fù)雜度。
②將待處理的視頻中當(dāng)前待處理的第g個(gè)圖像組定義為當(dāng)前圖像組。
③計(jì)算當(dāng)前圖像組中的每幀P幀的幀層復(fù)雜度比例,將當(dāng)前圖像組中的第k幀P幀的幀層復(fù)雜度比例記為Pg,k,然后計(jì)算分配給當(dāng)前圖像組中的每幀P幀的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀的目標(biāo)編碼復(fù)雜度記為其中,k的初始值為1,1≤k≤4,Pg-1,k表示待處理的視頻中的第g-1個(gè)圖像組中的第k幀P幀的幀層復(fù)雜度比例,Pg-2,k表示待處理的視頻中的第g-2個(gè)圖像組中的第k幀P幀的幀層復(fù)雜度比例,g=4時(shí)令g=4或g=5時(shí)令表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案對(duì)待處理的視頻中的第g-1個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度之和,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案對(duì)待處理的視頻中的第g-2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度之和。
④計(jì)算當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重,將當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重記為ωg,k,m,然后計(jì)算分配給當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度記為接著對(duì)分配給當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度進(jìn)行歸一化處理,將歸一化處理后得到的目標(biāo)編碼復(fù)雜度作為最終的目標(biāo)編碼復(fù)雜度,將分配給當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的最終的目標(biāo)編碼復(fù)雜度記為其中,符號(hào)“||”為取絕對(duì)值符號(hào),1≤m≤Mg,k,Mg,k表示當(dāng)前圖像組中的第k幀P幀中包含的編碼樹(shù)單元的總個(gè)數(shù),pg,k,m(i,j)表示當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元中坐標(biāo)位置為(i,j)的像素點(diǎn)的原始像素值,表示當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元中坐標(biāo)位置為(i,j)的像素點(diǎn)的預(yù)測(cè)像素值,1≤i≤64,1≤j≤64,Rg,k表示當(dāng)前圖像組中的第k幀P幀中已編碼的所有編碼樹(shù)單元所用的實(shí)際編碼復(fù)雜度,ωg,k,n表示當(dāng)前圖像組中的第k幀P幀中的第n個(gè)編碼樹(shù)單元的復(fù)雜度分配權(quán)重,表示當(dāng)前圖像組中的第k幀P幀中還未編碼的所有編碼樹(shù)單元的復(fù)雜度分配權(quán)重之和,
⑤計(jì)算當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的最大分割深度,將當(dāng)前圖像組中的第k幀P幀中的第m個(gè)編碼樹(shù)單元的最大分割深度記為然后根據(jù)當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元的最大分割深度,對(duì)當(dāng)前圖像組中的每幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼。
⑥令g=g+1,將待處理的視頻中下一個(gè)待處理的圖像組作為當(dāng)前圖像組,然后返回步驟③繼續(xù)執(zhí)行,直至待處理的視頻中的所有圖像組處理完畢;其中,g=g+1中的“=”為賦值符號(hào)。
在此具體實(shí)施例中,步驟④中的獲取過(guò)程為:其中,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度0對(duì)待處理的視頻中的第2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最小實(shí)際編碼復(fù)雜度,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度3對(duì)待處理的視頻中的第2個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最大實(shí)際編碼復(fù)雜度。
或步驟④中的獲取過(guò)程為:其中,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度0對(duì)待處理的視頻中的第3個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最小實(shí)際編碼復(fù)雜度,表示采用視頻編碼校驗(yàn)?zāi)P虷M的原始方案并根據(jù)分割深度3對(duì)待處理的視頻中的第3個(gè)圖像組中的第k幀P幀中的每個(gè)編碼樹(shù)單元進(jìn)行編碼后、所有編碼樹(shù)單元各自所用的實(shí)際編碼復(fù)雜度中的最大實(shí)際編碼復(fù)雜度。
圖2a給出了在視頻編碼校驗(yàn)?zāi)P虷M的原始方案下“BQSquare”視頻序列中的第8幀的殘差與CU分割的關(guān)系示意圖;圖2b給出了在視頻編碼校驗(yàn)?zāi)P虷M的原始方案下“BQSquare”視頻序列中的第11幀的殘差與CU分割的關(guān)系示意圖。從圖2a和圖2b中可以看出,在幀間低延時(shí)編碼配置下,幀間CU分割與殘差分布及其大小有著非常緊密的關(guān)系。為了實(shí)現(xiàn)編碼樹(shù)單元的目標(biāo)編碼復(fù)雜度的分配,采用絕對(duì)差值和(Sum of Absolute Difference,SAD)作為編碼樹(shù)單元的復(fù)雜度分配權(quán)重,由于絕對(duì)差值和可以反映預(yù)測(cè)殘差的大小,因此可以很好的反映編碼樹(shù)單元的幀間CU分割特征。本發(fā)明方法利用絕對(duì)差值和作為編碼樹(shù)單元的復(fù)雜度分配權(quán)重進(jìn)行目標(biāo)編碼復(fù)雜度的分配,實(shí)現(xiàn)了精確地編碼復(fù)雜度控制。
圖3a給出了采用本發(fā)明方法對(duì)“BlowingBubbles”視頻序列進(jìn)行編碼后在4個(gè)不同目標(biāo)編碼復(fù)雜度下的率失真曲線示意圖;圖3b給出了采用本發(fā)明方法對(duì)“Kimono”視頻序列進(jìn)行編碼后在4個(gè)不同目標(biāo)編碼復(fù)雜度下的率失真曲線示意圖。從圖3a中可以看出,本發(fā)明方法對(duì)于“BlowingBubbles”視頻序列在目標(biāo)編碼復(fù)雜度(Target Complexity,TC)TC=90%時(shí)的率失真曲線和原始HM-13.0方法基本一致,在目標(biāo)編碼復(fù)雜度TC=80%、70%和60%時(shí)率失真性能也沒(méi)有較大的損失。從圖3b中可以看出,對(duì)于目標(biāo)編碼復(fù)雜度TC=90%、80%、70%和60%,本發(fā)明方法能夠保持較好的率失真性能,與原始HM-13.0方法的率失真曲線基本保持一致。從圖3a和圖3b可以確定,本發(fā)明方法能夠在保持較好率失真性能的情況下,準(zhǔn)確地達(dá)到目標(biāo)編碼復(fù)雜度。
為了測(cè)試本發(fā)明方法的編碼率失真性能和復(fù)雜度控制精度,在Intel(R)Core(TM)i5-4590CPU@3.3GHZ,內(nèi)存為8.0GHZ,操作系統(tǒng)為Window 7 64位SP1的計(jì)算機(jī)上,對(duì)表3中JCT-VC提供的視頻測(cè)試序列利用HEVC測(cè)試軟件HM-13.0進(jìn)行編碼。實(shí)驗(yàn)的主要編碼參數(shù)為低延時(shí)編碼配置,編碼量化參數(shù)分別為22、27、32和37,圖像組結(jié)構(gòu)采用的是IPPP,其大小為4,編碼樹(shù)單元的最大尺寸為64×64,樣本自適應(yīng)偏移(Sample Adaptive Offset,SAO)使能,快速編碼器設(shè)置(Fast Encoder Setting,F(xiàn)EN)和融合模式快速判決(Fast Decision for Merge,F(xiàn)DM)使能,幀內(nèi)間隔Intra Period為-1。
為了驗(yàn)證本發(fā)明方法的有效性,采用編碼時(shí)間節(jié)省比例TS作為時(shí)間復(fù)雜度降低的衡量,其定義為:其中,TimeHM-13.0表示測(cè)試視頻序列在視頻編碼校驗(yàn)?zāi)P虷M-13.0下進(jìn)行編碼的時(shí)間復(fù)雜度,Timeproposed表示測(cè)試視頻序列在本發(fā)明方法下進(jìn)行編碼的時(shí)間復(fù)雜度。各復(fù)雜度控制算法中的編碼復(fù)雜度是通過(guò)Visual Studio平臺(tái)下的clock()函數(shù)計(jì)算得到的編碼時(shí)間進(jìn)行衡量的,并采用比特率的上升ΔBR和PSNR的損失ΔPSNR作為各復(fù)雜度控制算法率失真性能的衡量,各復(fù)雜度控制算法對(duì)4個(gè)目標(biāo)編碼復(fù)雜度級(jí)別進(jìn)行測(cè)試分析,4個(gè)目標(biāo)編碼復(fù)雜度級(jí)別分別為TC=90%、80%、70%和60%。
表4給出了各視頻測(cè)試序列采用本發(fā)明方法相對(duì)采用HM原始方法在不同目標(biāo)編碼復(fù)雜度下的編碼性能情況。從表4中的實(shí)驗(yàn)結(jié)果可以看出,本發(fā)明方法能夠達(dá)到設(shè)定的目標(biāo)編碼復(fù)雜度,控制精度很高。復(fù)雜度偏差Deviation定義為所有視頻測(cè)試序列的實(shí)際編碼復(fù)雜度與目標(biāo)編碼復(fù)雜度的絕對(duì)差值的平均值,并且所有視頻測(cè)試序列的平均實(shí)際編碼復(fù)雜度與目標(biāo)編碼復(fù)雜度偏差非常小(對(duì)于TC=70%,復(fù)雜度偏差最大為2.33%;對(duì)于TC=90%,復(fù)雜度偏差最小為1.42%)。在低延時(shí)編碼配置下,本發(fā)明方法能夠在率失真性能下降可接受的情況下實(shí)現(xiàn)目標(biāo)編碼復(fù)雜度高達(dá)60%,因此本發(fā)明方法可以滿足功率受限設(shè)備的編碼要求。
表3 視頻測(cè)試序列
表4 各視頻測(cè)試序列采用本發(fā)明方法相對(duì)采用HM方法在不同目標(biāo)編碼復(fù)雜度下的編碼性能