一種hevc編碼單元級碼率控制方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明設(shè)及高性能視頻編碼化igh Efficiency Video Coding,肥VC)領(lǐng)域,特別 設(shè)及其中編碼單元級碼率控制方法。
【背景技術(shù)】
[0002] 碼率控制算法作為視頻編碼應(yīng)用中的一項(xiàng)關(guān)鍵技術(shù),對于實(shí)際應(yīng)用有著重要價(jià) 值。在實(shí)際應(yīng)用中,碼率控制算法可W根據(jù)目標(biāo)碼率對視頻編碼,使視頻編碼后實(shí)際碼率接 近目標(biāo)碼率,同時(shí)盡可能地提高編碼后的質(zhì)量。HEVC中采用了新的編碼結(jié)構(gòu)如編碼單元 (Coding化it ,CU) W及新的技術(shù)如自適應(yīng)樣點(diǎn)補(bǔ)償?shù)葋硖岣呔幋a效率。相應(yīng)的,皿VC中應(yīng) 采取新的編碼單元級碼率控制算法,W適應(yīng)于皿VC新的編碼結(jié)構(gòu)和技術(shù),盡可能提高視頻 編碼后的質(zhì)量。
[0003] 肥VC的測試軟件化EVC Test Model, HM)所采用的CU的大小為64 X64、32 X 32、16 X 16和8 X 8,分別對應(yīng)CU的深度為0、1、2、3。其中深度為0的CU記為LClKLargest Coding 化it),深度為1的CU記為SubClKSub Coding化it)。歷的編碼器采用遞歸的方式對LCU進(jìn)行 劃分,對于每一層的CU都要進(jìn)行RDO來決定是否劃分為下一層。一般地,為了減少編碼參數(shù) 所占比特?cái)?shù),編碼單元級碼率控制算法的目標(biāo)一般只針對LCU,也可W叫做LCU級碼率控制 算法。
[0004] 皿VC現(xiàn)有標(biāo)準(zhǔn)將碼率控制算法分為S個(gè)級別:圖片組級、帖級、編碼單元級,并采 用了一系列編碼單元級碼率控制方法:對于P、B帖中的LCU,使用R-A模型描述比特?cái)?shù)和編碼 參數(shù)的關(guān)系。對LCU進(jìn)行比特?cái)?shù)分配的原則為期望視頻帖中各個(gè)LCU的編碼參數(shù)A相等。在此 基礎(chǔ)上,W當(dāng)前帖目標(biāo)比特?cái)?shù)為約束條件,使用各個(gè)LCU的R-A模型,可W解得各個(gè)LCU應(yīng)分 得的比特?cái)?shù)。詳細(xì)實(shí)現(xiàn)可W參見文獻(xiàn)1(參見Li B,Li H,Li L,et al.Rate conhol by R-Iambda model for 皿VC[C]//JCTVC-K0103JCTVC of ISO/IEC and mJ-T,II化 meeting Shanghai ,China.2012)和文獻(xiàn)2(參見LJCTVC-M0036,''AdaptivebitallocationforR-Iambda model rate control in HM,"Incheon,KR,18-26Ap;r.2013)。與較早的標(biāo)準(zhǔn)相比, 該方法可W提高編碼質(zhì)量,但沒有考慮到LCU的劃分結(jié)構(gòu)與紋理特性,依然有改進(jìn)的空間。 文獻(xiàn)3(參見1(:17(:-]\10257,''111化日化日1116 1?日16(:〇11化〇16日36(1〇115410/'111油6〇11,邸,18-26Apr. 2013)提出在I帖中,使用變換后絕對差值和(Sum Of Absolute Transformed Differences,SATD)描述編碼單元的紋理特性。并使用基于SATD的R-A模型描述比特?cái)?shù)和編 碼參數(shù)的關(guān)系。對I帖中LCU使用其SATD值作為權(quán)重進(jìn)行比特?cái)?shù)分配。該方案只考慮了 I帖的 SubCU級碼率分配,而對P帖和B帖沒有設(shè)計(jì)相應(yīng)方案。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種肥VC編碼單元級碼率控制方法。
[0006] 本發(fā)明需要保護(hù)的技術(shù)方案為:
[0007] -種皿VC編碼單元級碼率控制方法,概括說,在編碼單元級碼率控制算法初始化 階段,預(yù)測當(dāng)前帖中各個(gè)LCU是否劃分。預(yù)測的依據(jù)為前一個(gè)同級帖的同一位置的LCU是否 劃分。如果前一個(gè)同級帖的同一位置的LCU實(shí)際劃分,即預(yù)測此LCU也會(huì)劃分。反之,亦然。
[0008] 一種肥VC編碼單元級碼率控制方法,其特征在于,具體包括如下步驟:
[0009] 1)編碼當(dāng)前帖前,進(jìn)行帖級碼率控制算法,預(yù)測當(dāng)前帖的目標(biāo)比特?cái)?shù)、QP和A。進(jìn)入 編碼單元級碼率控制算法初始化部分。
[0010] 2)預(yù)測當(dāng)前帖中各個(gè)LCU是否劃分。如果預(yù)測不劃分,根據(jù)式(1)計(jì)算權(quán)重;否則, 根據(jù)式(2) (3)計(jì)算權(quán)重。
[001 U 3)根據(jù)式(4)計(jì)算各個(gè)LCU的 Ini^itScurrLCUo
[0012] 4)編碼當(dāng)前LCU前,根據(jù)式(5)(6)為當(dāng)前LCU分配目標(biāo)比特?cái)?shù)。
[OOU] 5)如果預(yù)測不劃分,根據(jù)式(7)計(jì)算編碼參數(shù)^urrLCU;否則,根據(jù)式(8)(9)(10)計(jì) 算編碼參數(shù)、urrLCU。
[0014] 6)根據(jù)式(11)得到當(dāng)前 LCU 的QPcurrLCUo
[001引 7)根據(jù)、UrrLGU和QPeurrLGU對當(dāng)前LCU進(jìn)行模式選擇等編碼過程。當(dāng)前LCU編碼結(jié)束 后,根據(jù)實(shí)際編碼結(jié)果記錄下是否劃分到SubCU層。如果劃分到SubCU層,根據(jù)各個(gè)SubCU的 實(shí)際編碼參數(shù)和結(jié)果更新SubCU的R-A模型。更新LCU的R-A模型。進(jìn)入下一個(gè)LCU。
[0016] 由于采用上述方案,本發(fā)明的有益效果是:
[0017] 1.本發(fā)明根據(jù)LCU的劃分結(jié)構(gòu),使用SubCU的R-A模型描述劃分的LCU的失真與編碼 參數(shù)之間的關(guān)系,并提出了根據(jù)SubCU的R-A模型計(jì)算LCU復(fù)雜度、計(jì)算編碼參數(shù)的方法,提 高編碼后的客觀質(zhì)量。
[0018] 2.本發(fā)明綜合考慮編碼器當(dāng)前狀態(tài)和LCU的復(fù)雜度,設(shè)計(jì)了為當(dāng)前LCU分配比特?cái)?shù) 的方法,可W更準(zhǔn)確地為LCU分配比特?cái)?shù),提高編碼后的客觀質(zhì)量。
【具體實(shí)施方式】
[0019] W下通過若干實(shí)施例解釋、闡述和支持本發(fā)明所需要保護(hù)的技術(shù)方案。
[0020] 實(shí)施例1
[0021] 理論依據(jù)及驗(yàn)證
[0022] 首先,在現(xiàn)有肥VC標(biāo)準(zhǔn)中,對于P帖和B帖,每個(gè)LCU按照位置來建立、使用和更新其 R-入模型。但在一般情況下,LCU內(nèi)部的內(nèi)容變化很大,紋理特性各不相同,同樣編碼參數(shù)下 不同子CU得到的比特?cái)?shù)有很大差別,所W最終皿VC編碼其會(huì)將LCU分成多個(gè)小的CU,分別進(jìn) 行運(yùn)動(dòng)補(bǔ)償、量化編碼等過程。現(xiàn)在對單個(gè)LCU只用一個(gè)R-A模型來描述其編碼特性,不能表 征LCU內(nèi)部紋理特性相差很大的特點(diǎn),也不能表征實(shí)際編碼過程中對LCU的劃分結(jié)構(gòu)。但LCU 又不能形成類似帖級的統(tǒng)計(jì)特性,所W對單個(gè)LCU用一個(gè)R-A模型來描述其編碼特性不符合 實(shí)際情況。其次,現(xiàn)有標(biāo)準(zhǔn)中為當(dāng)前LCU分配比特?cái)?shù)的方法期望在幾個(gè)LCU之內(nèi)彌補(bǔ)視頻帖 中預(yù)測比特?cái)?shù)與實(shí)際比特?cái)?shù)的誤差,容易導(dǎo)致其目標(biāo)比特?cái)?shù)過大或者過小。
[0023] 為此本文設(shè)計(jì)了基于SubCU的編碼單元級碼率控制算法。
[0024] 在編碼單元級碼率控制算法初始化階段,預(yù)測當(dāng)前帖中各個(gè)LCU是否劃分。預(yù)測的 依據(jù)為前一個(gè)同級帖的同一位置的LCU是否劃分。如果前一個(gè)同級帖的同一位置的LCU實(shí)際 劃分,即預(yù)測此LCU也會(huì)劃分。反之,亦然。表1為該方法在BQMal 1序列中固定編碼QP為32情 況下的準(zhǔn)確率。測試平臺(tái)為肥VC參考軟件歷14.0,測試配置為Random Access Main。
[0025] 表1丄CU劃分預(yù)測方法準(zhǔn)確率
[0027] 如表1中可W看到,該LCU劃分預(yù)測方具有較高的準(zhǔn)確性。因?yàn)樵摲椒ê唵斡行?,?發(fā)明使用該方法作為LCU劃分預(yù)測方法。
[0028] 在編碼單元級碼率控制算法初始化階段,對于預(yù)測不劃分的LCU,使用LCU的R-入模 型估計(jì)其復(fù)雜度作為權(quán)重WeighteurrLCU:
[0030] 其中AcuirPic為帖級碼率控制算法給出的當(dāng)前帖的編碼參數(shù)。numberOf Pixel ScurrLCU 為當(dāng)前LCU的像素個(gè)數(shù)。acurrLCU、0currLCU為當(dāng)前LCU的R-A模型的參數(shù)。對于劃分的LCU,使用其 SubCU的R-A模型估計(jì)其復(fù)雜度作為權(quán)重WeighteurrLCU:
[003;3]其中,M證its如腳f為LCU中各個(gè)SubCU的初始比特?cái)?shù),代表在M直為、urrPic情況下, 各個(gè)S U b C U所需的比特?cái)?shù)。巧礎(chǔ)棚i、依站,為第i個(gè)SubCU的R-A模型的參數(shù)。 numberOfPixels扣6化,,.為第i個(gè)SubCU的像素個(gè)數(shù)。numberOfSubCU為當(dāng)前LCU中像素個(gè)數(shù)不 為0的SubCU的個(gè)數(shù)