一種時(shí)域依賴的碼率控制比特分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種圖像處理技術(shù)領(lǐng)域的方法,具體是一種時(shí)域依賴的碼率控制比特 分配方法。
【背景技術(shù)】
[0002] 視頻壓縮給今天的人們帶來(lái)了各種生活、工作、娛樂(lè)上的便利,比如可視電話、視 頻會(huì)議、高清電視等等。視頻壓縮則依賴于視頻編碼技術(shù)在過(guò)去幾十年的長(zhǎng)足發(fā)展,從早期 的H. 261到今天的H. 264和HEVC,視頻編碼技術(shù)通過(guò)一代一代的演進(jìn),大致確立了混合編碼 框架的編碼結(jié)構(gòu)。各種模塊技術(shù)的演進(jìn)則極大地提升了視頻編碼的性能,最新的HEVC已經(jīng) 實(shí)現(xiàn)了相比上一代編碼器H. 264提升50%性能的要求。
[0003] 在所有的視頻編碼技術(shù)中,碼率控制扮演著舉足輕重的角色,特別是在實(shí)時(shí)通信 系統(tǒng)中,因?yàn)槠溆邢薜膸?,精確的碼率控制顯得尤為重要。具體來(lái)說(shuō),碼率控制就是在一 個(gè)給定的碼率下,盡可能地提升視頻的編碼質(zhì)量。對(duì)絕大多數(shù)碼率控制方案,通常的做法就 是給不同的幀和編碼單元分配合適的目標(biāo)比特。比如MPEG-2采用了 TM5碼率控制算法, MEPG-4 采用了 VM8 算法,H.264/MPEG-4Advanced Video Coding(AVC)采用了 R-Q 算法,最 新的HEVC則采用了 R-Iambda算法。
[0004] 在這些傳統(tǒng)的算法中,在編碼單元層的碼率控制均是根據(jù)其內(nèi)容復(fù)雜度來(lái)確定 的。盡管這種方法能夠在一定程度上反映出其最終的編碼比特,但是其忽略了編碼單元在 時(shí)域上的相關(guān)性,根據(jù)其目標(biāo)比特設(shè)定的編碼參數(shù)僅僅對(duì)當(dāng)前編碼單元有利,而沒(méi)有考慮 到對(duì)其時(shí)域相關(guān)的編碼單元的影響。一些復(fù)雜度較低但時(shí)域相關(guān)性很強(qiáng)的編碼單元有可能 會(huì)被一種低質(zhì)量的方式編碼,導(dǎo)致后續(xù)參考該編碼單元的所有編碼單元的編碼質(zhì)量遭受嚴(yán) 重的損失。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明針對(duì)現(xiàn)有視頻編碼技術(shù)的缺陷,提供一種時(shí)域依賴的碼率控制比特分配方 法,該方法通過(guò)探測(cè)當(dāng)前編碼單元與后續(xù)幀的時(shí)域相關(guān)性,并以此指導(dǎo)當(dāng)前編碼單元的目 標(biāo)比特分配,從而獲得更好的編碼性能。
[0006] 為實(shí)現(xiàn)以上目的,本發(fā)明所述的時(shí)域依賴的碼率控制比特分配方法包括如下步 驟:
[0007] ①預(yù)先讀取當(dāng)前編碼幀的后續(xù)多幀,構(gòu)造時(shí)域傳播鏈;
[0008] ②根據(jù)預(yù)設(shè)量化參數(shù)和前一幀各個(gè)編碼單元的失真情況,獲取時(shí)域傳播鏈上各幀 的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差估計(jì)和失真估計(jì)等信息;
[0009] ③根據(jù)時(shí)域傳播鏈的各幀信息,獲取當(dāng)前編碼幀各個(gè)編碼單元的時(shí)域傳播因子;
[0010] ④根據(jù)時(shí)域傳播因子和編碼單元復(fù)雜度分配各個(gè)編碼單元的目標(biāo)比特;
[0011] ⑤根據(jù)目標(biāo)比特設(shè)定合適的拉格朗日乘子,實(shí)現(xiàn)碼率控制功能。
[0012] 優(yōu)選地,所述④中,各個(gè)編碼單元的目標(biāo)比特不僅由編碼單元自身的內(nèi)容復(fù)雜度 確定,還由編碼單元在時(shí)域上的傳播因子確定;
[0013] 設(shè)表示由編碼單元內(nèi)容復(fù)雜度確定的目標(biāo)比特,:4"/表示由時(shí)域權(quán)重確定的 目標(biāo)比特,則編碼單元最終的目標(biāo)比特T ctu為
[0014]
[0015] 其中μ是權(quán)重因子,表明時(shí)域權(quán)重比特分配方法應(yīng)在整個(gè)比特分配中占多大的 比重。
[0016] 本發(fā)明設(shè)計(jì)的時(shí)域依賴的碼率控制比特分配方法,在給某個(gè)編碼單元分配目標(biāo)比 特的時(shí)候,將其時(shí)域相關(guān)的編碼單元均考慮進(jìn)來(lái),具體地,如果當(dāng)前編碼單元被多次參考, 則認(rèn)為其時(shí)域權(quán)重比較高,給其分配相對(duì)較多的比特,使其以一種較高質(zhì)量的方式編碼,這 樣就能夠保證所有與其時(shí)域相關(guān)的編碼單元的質(zhì)量。
[0017] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
[0018] 本發(fā)明考慮了后續(xù)多幀的時(shí)域相關(guān)性對(duì)當(dāng)前編碼幀的指導(dǎo)作用,因而能夠獲取整 個(gè)編碼序列的全局最優(yōu)。
【附圖說(shuō)明】
[0019] 通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、 目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0020] 圖1是本發(fā)明的時(shí)域依賴度的碼率控制比特分配方法的流程圖;
[0021 ] 圖2是時(shí)域傳播鏈構(gòu)造的示意圖;
[0022] 圖3是本發(fā)明實(shí)施例中BQSquare第346幀在兩種方法下編碼的結(jié)果;
[0023] 圖4是本發(fā)明實(shí)施例中RaceHorses第132幀在兩種方法下的編碼結(jié)果。
【具體實(shí)施方式】
[0024] 下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù) 人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù) 人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明 的保護(hù)范圍。
[0025] 此處把本發(fā)明應(yīng)用到最新的HEVC編碼框架的碼率控制方法中。具體操作流程如 圖1所示。其中第一步到第三步是通過(guò)時(shí)域傳播鏈來(lái)計(jì)算各個(gè)編碼單元的時(shí)域因子,第四 步到第五步是根據(jù)時(shí)域因子給每個(gè)編碼單元分配合適的比特,實(shí)現(xiàn)時(shí)域依賴的碼率控制功 能。下面先介紹時(shí)域因子的計(jì)算方式,然后再此基礎(chǔ)上詳細(xì)介紹時(shí)域依賴的碼率控制的優(yōu) 化。
[0026] 1.時(shí)域傳播因子的計(jì)算
[0027] 源失真時(shí)域傳播鏈將率失真優(yōu)化問(wèn)題改寫為如下形式
[0028]
(1)
[0029] 其中〇1表示第i個(gè)編碼單元的編碼參數(shù),D ,表示第j個(gè)編碼單元的失真,N表示 時(shí)域傳播鏈的長(zhǎng)度,Ag是對(duì)N個(gè)編碼單元全局最優(yōu)的拉格朗日乘子。因?yàn)楫?dāng)前編碼單元的 失真有可能會(huì)傳播到后續(xù)幀里面的幾個(gè)時(shí)域相關(guān)的編碼單元,上式將所有時(shí)域相關(guān)的編碼 單元的失真考慮進(jìn)來(lái),是一種比較全面的率失真優(yōu)化方案,最終的選擇是對(duì)整個(gè)序列的全 局最優(yōu)。
[0030] 本發(fā)明通過(guò)構(gòu)造一個(gè)時(shí)域傳播鏈來(lái)解決上述率失真優(yōu)化問(wèn)題。圖2展示了一個(gè)長(zhǎng) 度為3的時(shí)域傳播鏈,其中Frame 1表示當(dāng)前編碼幀,F(xiàn)rame 2和Frame 3表示當(dāng)前編碼幀 在時(shí)間上的后續(xù)幀。對(duì)當(dāng)前幀里面的每一個(gè)編碼單元,如CU1,通過(guò)前向搜索,可以找到其在 下一幀里面最匹配的編碼單元⑶ 2,如果CU2跨越幾個(gè)編碼單元,取其覆蓋面積最大的編碼 單元的運(yùn)動(dòng)向量,然后繼續(xù)向前搜索,直到傳播鏈的最后一幀,這樣就可以構(gòu)造出一條時(shí)域 傳播鏈。
[0031] 假定編碼單元失真D1+1與運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差A(yù)tr之間存在如下關(guān)系
[0032]
<2)
[0033] 其中R1+1表示編碼單元i+Ι的編碼比特,b是一個(gè)跟源分布相關(guān)的常數(shù),Α????以近似地表示為
[0034]
(3)
[0035] 其中F1+1是編碼單元i+Ι的像素值,爲(wèi)是編碼單元i的重建像素值, 在原始幀上使用前向搜索后的源失真,α取經(jīng)驗(yàn)值0.94。將其代入(2) 式,可以得到
[0036] (4)
[0037] 均和當(dāng)前編碼單元的編碼參數(shù)(^相 互獨(dú)立。通過(guò)反復(fù)迭代,就可以估計(jì)傳播鏈上所有編碼單元的失真。第k個(gè)編碼單元的失 真估計(jì)可以表示為
[0038] Dk= β k · β k !.....β i+i · DjCk (5)
[0039] 從而(I)式就可以重寫為
[0040]
(6)
[0041] 其中時(shí)域傳播因子被定義為
[0042]
0)
[0043] 它衡量了當(dāng)前編碼單元有多少信息量將被傳播到其時(shí)域相關(guān)的后續(xù)幀。從(2) (4) 式可知
[0044]
(8)
[0045] 根據(jù)⑶式,AT可以通過(guò)DjP ATp估計(jì)得到,D1+1可以通過(guò)D1T和量化步長(zhǎng) Q估計(jì)得到:
[0046]
(9)
[0047] 通過(guò)假定運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)誤差的DCT系數(shù)服從拉普拉斯分布,可以證明,對(duì)絕大多 數(shù)視頻,F(xiàn)( Θ )有一個(gè)穩(wěn)定的分布,可以制成如表1所示的查找表。該查找表是以〇. 5為步 長(zhǎng)制定的,若當(dāng)Θ處于兩個(gè)值的區(qū)間內(nèi)部時(shí),取其最近的Θ對(duì)應(yīng)的F(0)值即可。
[0048] 表1F(0)查找表
[0049]<