基于梯度的自適應(yīng)高性能視頻編碼碼率控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及圖像通信領(lǐng)域中的視頻編碼碼率控制問題,尤其是設(shè)及一種高性能視 頻編碼標(biāo)準(zhǔn)肥VC的帖間編碼自適應(yīng)碼率控制方法。
【背景技術(shù)】
[0002] 隨著技術(shù)的不斷進步,視頻分辨率逐漸提高,視頻編碼標(biāo)準(zhǔn)也在不斷更新。經(jīng)過 MPEG、JPEG W及H. 264/AVC等視頻編碼標(biāo)準(zhǔn)的發(fā)展與完善,新一代視頻編碼標(biāo)準(zhǔn)肥VC誕生。 雖然與比264/AVC相比,肥VC編碼標(biāo)準(zhǔn)節(jié)約了約50%的編碼碼率,但是隨著高清視頻的出 現(xiàn),節(jié)省傳輸數(shù)據(jù)量的問題逐漸進入人們視野。因此,如何在有限帶寬下,實時傳輸編碼碼 流,盡可能降低時延,同時避免緩沖區(qū)數(shù)據(jù)溢出成為視頻編碼領(lǐng)域研究的熱點。
[0003]目前已有的碼率分配模型主要有S種,R-Q模型、R-P模型和R-A模型,由于R-Q 模型和R-P模型存在較多的缺點,肥VC采用的是最新的R-A模型。肥VC標(biāo)準(zhǔn)的碼率控制 過程分為=層,GOP層,帖層和LCU層。碼率分配的主要思想是根據(jù)復(fù)雜度進行目標(biāo)比特分 配,目標(biāo)比特影響編碼參數(shù)更新,編碼參數(shù)精確度直接決定實際編碼比特精確度。目前學(xué)術(shù) 界關(guān)于如何使實際比特更加接近目標(biāo)比特,緩沖區(qū)滯留數(shù)據(jù)量減少,同時使輸出比特更加 平穩(wěn)的優(yōu)化算法已有很多,并大多數(shù)已經(jīng)取得了良好的效果。
[0004]在肥VC碼率控制算法的研究中,Zhongzhu Yang等在現(xiàn)有的R-A模型基礎(chǔ)上提 出了一種低延時的基于緩沖區(qū)狀態(tài)的碼率控制算法,設(shè)置較小的緩沖區(qū),利用緩沖區(qū)狀態(tài) 進行碼率控制,從而達到實際碼率與目標(biāo)碼率盡量接近,同時避免緩沖區(qū)溢出的目的。Ling Tian等人提出了 一種基于梯度的帖內(nèi)碼率控制算法,通過建立帖內(nèi)像素的平均梯度與編碼 比特之間的對應(yīng)關(guān)系達到碼率控制的目的,另外還改善了量化參數(shù)QP的計算方式,提出一 種新的目標(biāo)比特與QP之間的對應(yīng)關(guān)系。在H. 264/AVC碼率控制算法的研究中,化n Gu Lee 等人提出一種基于梯度的H. 264/AVC帖內(nèi)碼率控制算法,在標(biāo)準(zhǔn)的分層基礎(chǔ)上增加了宏塊 行層,利用宏塊行梯度占帖總梯度的比例分配宏塊行目標(biāo)比特,然后利用每一個宏塊的梯 度占當(dāng)前宏塊行總梯度的比例分配當(dāng)前宏塊的目標(biāo)比特。此外,在帖層分配目標(biāo)比特時還 使用了緩沖區(qū)狀態(tài)反饋,達到更準(zhǔn)確地分配實際比特的目的。
【發(fā)明內(nèi)容】
[0005] 針對新一代視頻壓縮編碼標(biāo)準(zhǔn)肥VC中的碼率控制問題,本發(fā)明利用視頻序列的 帖間相似性及緩沖區(qū)狀態(tài),提出了一種基于梯度的自適應(yīng)高性能視頻編碼碼率控制方法, 降低了緩沖區(qū)滯留數(shù)據(jù)量,降低了時延,提高了視頻質(zhì)量,在帶寬一定的實時編碼傳輸過程 中具有較好的應(yīng)用前景。
[0006] 本發(fā)明的基本思想是利用梯度作為復(fù)雜度的度量方式,自適應(yīng)地獲取LCU的帖內(nèi) 帖間梯度表示其復(fù)雜度,進行LCU層目標(biāo)比特分配。同時,利用已編碼帖累加的緩沖區(qū)滯留 數(shù)據(jù)量對帖層目標(biāo)比特分配進行調(diào)節(jié),達到實際比特與目標(biāo)比特盡量準(zhǔn)確的目的。
[0007] 本發(fā)明針對肥VC視頻編碼標(biāo)準(zhǔn)提供了一種基于梯度的自適應(yīng)高性能視頻編碼碼 率控制方法。主要包括緩沖區(qū)狀態(tài)調(diào)節(jié)帖層目標(biāo)比特W及LCU層自適應(yīng)梯度選擇。在帖層 碼率控制過程中,通過已編碼帖累加的緩沖區(qū)滯留數(shù)據(jù)量對當(dāng)前帖目標(biāo)比特進行調(diào)節(jié);在 LCU層碼率控制中,對LCU的復(fù)雜度表示方式進行改進,對I帖的LCU采用帖內(nèi)梯度表示復(fù) 雜度,對非I帖的LCU自適應(yīng)選擇帖內(nèi)帖間梯度的較小值表示復(fù)雜度。本發(fā)明利用緩沖區(qū) 狀態(tài)調(diào)節(jié)帖層目標(biāo)比特,并根據(jù)帖類型自適應(yīng)地選擇梯度表示復(fù)雜度,從而使實際碼率更 加符合給定的目標(biāo)碼率,并使緩沖區(qū)滯留數(shù)據(jù)量明顯減少,同時使實際比特趨于平穩(wěn),W充 分利用有限的帶寬。具體主要包括W下過程步驟:
[0008] (1)根據(jù)配置文件設(shè)置的目標(biāo)碼率、帖率W及GOP大小得到GOP層目標(biāo)比特和帖層 標(biāo)準(zhǔn)目標(biāo)比特,并設(shè)置緩沖區(qū)大??;
[0009] (2)判斷當(dāng)前編碼帖是否為第一帖,若為第一帖,帖層目標(biāo)比特為標(biāo)準(zhǔn)目標(biāo)比特加 緩沖區(qū)大小。若不是第一帖,帖層目標(biāo)比特為經(jīng)過緩沖區(qū)狀態(tài)調(diào)整后的標(biāo)準(zhǔn)目標(biāo)比特;
[0010] (3)遍歷當(dāng)前帖的每個LCU,求出其帖內(nèi)梯度,判斷當(dāng)前帖是不是I帖,若是I帖, 則將帖內(nèi)梯度累加得到帖層總梯度。若不是I帖,則遍歷每個LCU,獲取其帖內(nèi)帖間自適應(yīng) 梯度,將每個LCU的自適應(yīng)梯度累加,得到帖層總梯度;
[00川 (4)根據(jù)當(dāng)前LCU的梯度占當(dāng)前帖總梯度的比例分配每個LCU的目標(biāo)比特,并根據(jù) LCU的尺寸得到每個LCU的模擬帶寬;
[0012] (5)進入xCompressCU,對每個LCU進行編碼,其編碼實際比特與模擬帶寬的差值 累加到緩沖區(qū),得到已編碼帖累加的緩沖區(qū)滯留數(shù)據(jù),并在下一帖的帖層比特分配時進行 反饋調(diào)節(jié),得到下一帖的目標(biāo)比特。
[0013] 在本發(fā)明的上述技術(shù)方案中,所述帖層標(biāo)準(zhǔn)目標(biāo)比特為配置文件設(shè)置的目標(biāo)碼率 除W帖率得到的每帖目標(biāo)比特,未經(jīng)緩沖區(qū)狀態(tài)調(diào)整,而所述帖層目標(biāo)比特是經(jīng)緩沖區(qū)狀 態(tài)調(diào)整后的帖層目標(biāo)比特。
[0014] 在本發(fā)明的上述技術(shù)方案中,所述緩沖區(qū)大小為帖層標(biāo)準(zhǔn)目標(biāo)比特的S分之一。
[0015] 在本發(fā)明的上述技術(shù)方案中,所述緩沖區(qū)狀態(tài)調(diào)整帖層目標(biāo)比特的具體方法為:
…
[0017] 其中,化aiVf表示每帖的標(biāo)準(zhǔn)目標(biāo)比特,bufsize表示緩沖區(qū)大小,bu化sed表示 緩沖區(qū)滯留數(shù)據(jù)量。0為調(diào)整系數(shù),經(jīng)過實驗統(tǒng)計,本發(fā)明的方法取最優(yōu)值2。
[0018] 在本發(fā)明的上述技術(shù)方案中,所述帖間梯度為當(dāng)前LCU每個像素點與參考帖相同 位置的像素點之間的亮度差值累加,具體求解公式為:
[0019] R(x,y) =If(x,y)-I,(x,y)似
[0021] 其中,If(x,y)表示當(dāng)前位置像素亮度,If(x,y)表示參考帖同位置像素亮度。 j,k)即為帖間梯度。
[0022] 在本發(fā)明的上述技術(shù)方案中,所述非I帖的自適應(yīng)梯度為帖內(nèi)梯度與帖間梯度的 較小值表示當(dāng)前LCU的復(fù)雜度。
[0023] 在本發(fā)明的上述技術(shù)方案中,所述LCU模擬帶寬為根據(jù)當(dāng)前LCU的尺寸占帖尺寸 的比例分配的LCU目標(biāo)比特。
[0024] 根據(jù)本發(fā)明的上述方法可W編制執(zhí)行上述基于梯度的自適應(yīng)高性能視頻編碼碼 率控制方法的肥VC視頻編碼器。
[00巧]本發(fā)明是基于W下思路分析而完成的:
[0026] 標(biāo)準(zhǔn)的肥VC碼率控制算法主要分為兩步:第一步是根據(jù)帖結(jié)構(gòu)、紋理復(fù)雜度等參 數(shù)進行目標(biāo)比特分配;第二步是根據(jù)目標(biāo)比特調(diào)整編碼器參數(shù),從而影響實際比特分配,使 實際比特更加接近目標(biāo)比特。由于目標(biāo)比特分配是碼率控制的首要一步,其準(zhǔn)確程度直接 影響著后續(xù)編碼的性能,因此,碼率控制優(yōu)化方法主要是通過改善目標(biāo)比特分配的方法來 改善碼率控制效果。
[0027] 肥VC目標(biāo)碼率分配方法分為S層:GOP層是碼率控制的第一層,該層通過提前設(shè) 置的目標(biāo)碼率、序列帖率W及GOP的大小等參數(shù)設(shè)置一個GOP的目標(biāo)比特。帖層目標(biāo)比特 取決于當(dāng)前帖在GOP中的位置,即當(dāng)前帖在GOP中目標(biāo)比特所占結(jié)構(gòu)權(quán)重。LCU層目標(biāo)比 特取決于當(dāng)前LCU的復(fù)雜度在帖復(fù)雜度中所占權(quán)重。帖層目標(biāo)比特影響LCU層目標(biāo)比特, LCU層目標(biāo)比特影響LCU層編碼參數(shù)更新,從而影響LCU層實際編碼比特,最終影響帖層實 際比特。因此,可W通過改善帖層和LCU層目標(biāo)比特分配方式來改善碼率控制性能。
[0028] 碼率控制效果的主要參數(shù)之一是實際編碼比特與固定帶寬之間的差值,即緩沖區(qū) 滯留數(shù)據(jù)量。緩沖區(qū)滯留數(shù)據(jù)量少而且平穩(wěn),表示在固定帶寬實時傳輸情況下的延時低,反 之亦然。為了優(yōu)化帖層目標(biāo)比特的分配,本發(fā)明的方法采用了已編碼帖緩沖區(qū)狀態(tài)反饋機 審IJ。通過當(dāng)前緩沖區(qū)狀態(tài)來調(diào)整當(dāng)前帖的目標(biāo)比特,使當(dāng)前帖實際編碼比特更加精確,同時 使該帖累加到緩沖區(qū)的數(shù)據(jù)對緩沖區(qū)滯留數(shù)據(jù)量有所調(diào)整。
[0029] 帖層碼率控制的效果由LCU層比特分配效果直接決定。在標(biāo)準(zhǔn)的肥VC碼率控制 方法中,LCU層目標(biāo)比特分配采用復(fù)雜度權(quán)重的方式,其復(fù)雜度用MAD表示。常用的復(fù)雜度 表示方式還有SATD、Sobel算子等,而梯度表示復(fù)雜度的方式因為計算比較簡單而被廣泛 應(yīng)用。因此,通過改善LCU層梯度復(fù)雜度的計算方式使每個LCU實際編碼比特盡量準(zhǔn)確也 是本發(fā)明方法的一個重要特點。由于視頻序列的帖間相似性,本發(fā)明方法將梯度的計算擴 展到了帖間:對于I帖,直接采用帖內(nèi)梯度表示復(fù)雜度,對于非I帖,獲取帖內(nèi)梯度和帖間梯 度,采用二者較小值表示復(fù)雜度。
[0030] 與標(biāo)準(zhǔn)的肥V