本發(fā)明涉及碼率控制技術(shù)領(lǐng)域,尤其涉及一種HEVC自適應(yīng)視頻碼率控制方法及系統(tǒng)。
背景技術(shù):
繼H.264視頻編碼標(biāo)準(zhǔn)后,ITU-T又制定出一種新的視頻編碼標(biāo)準(zhǔn)HEVC。HEVC的主要目的是提高編碼效率,即跟H.264相比,壓縮比提高一倍。在實(shí)際的視頻應(yīng)用中,碼率受到一定限制,編碼器需要根據(jù)限定的碼率合理分配控制碼率,使得視頻編碼的效率最優(yōu),因此碼率控制是視頻編碼器的重要組成部分。在目前已有的適用于HEVC視頻編碼的碼率控制方法中,為了滿足HEVC編碼壓縮率的提升,相應(yīng)碼率控制精細(xì)度也大幅度的提升。但是常規(guī)上的此類控制方法,在提升控制碼率精細(xì)度的同時(shí),經(jīng)常會(huì)導(dǎo)致圖像質(zhì)量壓縮不均勻,圖像質(zhì)量大幅波動(dòng),尤其在低帶寬應(yīng)用場(chǎng)景下。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提出一種HEVC自適應(yīng)視頻碼率控制方法,旨在解決現(xiàn)有HEVC視頻編碼的碼率控制方法中圖像質(zhì)量壓縮不均勻,圖像質(zhì)量大幅波動(dòng)的問(wèn)題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種HEVC自適應(yīng)視頻碼率控制方法,所述方法包括以下步驟:
分配當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);
以一個(gè)編碼樹(shù)單元CTU為碼率控制單位,計(jì)算目標(biāo)比特?cái)?shù)初始值;
根據(jù)圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性,計(jì)算當(dāng)前編碼樹(shù)單元復(fù)雜度;
利用當(dāng)前編碼樹(shù)單元復(fù)雜度,調(diào)整當(dāng)前CTU分配的目標(biāo)比特?cái)?shù),計(jì)算當(dāng)前CTU目標(biāo)比特?cái)?shù);
計(jì)算當(dāng)前CTU使用的量化參數(shù)。
所述方法還包括:
限定當(dāng)前幀中當(dāng)前CTU的量化參數(shù)的波動(dòng)。
本發(fā)明實(shí)施例的另一目的在于提出一種HEVC自適應(yīng)視頻碼率控制系統(tǒng),所述系統(tǒng)包括:
目標(biāo)比特?cái)?shù)分配模塊,用于分配當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);
目標(biāo)比特?cái)?shù)初始值計(jì)算模塊,用于以一個(gè)編碼樹(shù)單元CTU為碼率控制單位,計(jì)算目標(biāo)比特?cái)?shù)初始值;
編碼樹(shù)單元復(fù)雜度計(jì)算模塊,用于根據(jù)圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性,計(jì)算當(dāng)前編碼樹(shù)單元復(fù)雜度;
量化參數(shù)計(jì)算模塊,用于根據(jù)二次非線性率失真模型公式12,計(jì)算當(dāng)前CTU使用的量化參數(shù);
目標(biāo)比特?cái)?shù)計(jì)算模塊,用于利用當(dāng)前編碼樹(shù)單元復(fù)雜度,調(diào)整當(dāng)前CTU分配的目標(biāo)比特?cái)?shù),計(jì)算當(dāng)前CTU目標(biāo)比特?cái)?shù)。
所述系統(tǒng)還包括:
量化參數(shù)波動(dòng)限定模塊,用于限定當(dāng)前幀中當(dāng)前CTU的量化參數(shù)波動(dòng)。
本發(fā)明的有益效果
本發(fā)明提出一種HEVC自適應(yīng)碼率控制方法,本發(fā)明方法通過(guò)以CTU為單位進(jìn)行分析處理,將CTU的比特分配與圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性相結(jié)合,將碼率控制算法與圖像復(fù)雜特性有機(jī)地結(jié)合起來(lái),求得編碼的量化參數(shù)。在保證碼率控制精確性的同時(shí),解決圖像空間上質(zhì)量不均勻的問(wèn)題,提升編碼主觀效果。試驗(yàn)證明,選用多個(gè)測(cè)試樣本,使用本發(fā)明的方法,此方法在圖像PSNR基本不變的情況下,比特率誤差控制在0.5%,同時(shí)圖像質(zhì)量得到更有效控制,提升編碼主觀質(zhì)量。
附圖說(shuō)明
圖1是本發(fā)明優(yōu)選實(shí)施例一種HEVC自適應(yīng)視頻碼率控制方法流程圖;
圖2是本發(fā)明優(yōu)選實(shí)施例一種HEVC自適應(yīng)視頻碼率控制系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。應(yīng)當(dāng)理解,此處所描寫的具體實(shí)施例,僅僅用于解釋本發(fā)明,并不用以限制本發(fā)明。
本發(fā)明提出一種HEVC自適應(yīng)碼率控制方法和系統(tǒng),本發(fā)明方法通過(guò)以CTU為單位進(jìn)行分析處理,將CTU的比特分配與圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性相結(jié)合,將碼率控制算法與圖像復(fù)雜特性有機(jī)地結(jié)合起來(lái),求得編碼的量化參數(shù)。在保證碼率控制精確性的同時(shí),解決圖像空間上質(zhì)量不均勻的問(wèn)題,提升編碼主觀效果。
實(shí)施例一
圖1是本發(fā)明優(yōu)選實(shí)施例一種HEVC自適應(yīng)視頻碼率控制方法流程圖;所述方法包括以下步驟:
S101,分配當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);
Tbframe=min(Ub,max(Br/Fr,Lb)) (1)
其中,Tbframe為當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);Br是編碼的目標(biāo)比特率;Fr是圖像幀率;Ub、Lb分別為上下閾值系數(shù);min(變量)表示對(duì)變量求取最小值,max(變量)表示對(duì)變量就取最大值;α和β是調(diào)整系數(shù);W是幀平滑窗系數(shù);
Ub和Lb初始值按照公式2和公式3計(jì)算:
Ub=Br/Fr×W×α (2)
Lb=Br/Fr×β (3)
當(dāng)編碼完一幀圖像后,分別按照公式4,5更新Ub和Lb;
Ub+=Br/Fr-bits (4)
Lb+=Br/Fr-bits (5)
其中bits是編碼當(dāng)前圖像后實(shí)際輸出編碼比特?cái)?shù);
S102,以一個(gè)編碼樹(shù)單元CTU(CTU是編碼樹(shù)單元)為碼率控制單位,計(jì)算目標(biāo)比特?cái)?shù)初始值T1ctu,i;
其中,T1ctu,i表示目標(biāo)比特?cái)?shù)初始值;i是當(dāng)前CTU的編碼次序號(hào);j為變量,其取值范圍為[i-1-sw,i-1];N是一幀圖像中CTU的個(gè)數(shù);sw是編碼樹(shù)單元平滑窗系數(shù);Rctu,j是第j個(gè)CTU分配的目標(biāo)比特?cái)?shù);Ract,j是第j個(gè)CTU實(shí)際編碼輸出的比特?cái)?shù);Trbit是當(dāng)前幀的剩余比特?cái)?shù);
Trbit的初始值按照公式7設(shè)置:
Trbit=Tbframe (7)
編碼完一個(gè)CTU后,根據(jù)公式8更新Trbit:
Trbit-=Ract,i (8)
其中,Ract,i是第i個(gè)CTU實(shí)際編碼輸出的比特?cái)?shù)。
S103,根據(jù)圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性,計(jì)算當(dāng)前編碼樹(shù)單元復(fù)雜度Ccomplex。
SSIMi-1是第i-1個(gè)CTU結(jié)構(gòu)相似性(相似度);MSSIM是平均結(jié)構(gòu)相似性;κ和δ是調(diào)整系數(shù);A1是閾值系數(shù);MVi是第i個(gè)CTU中的最大運(yùn)動(dòng)矢量;
SSIM,結(jié)構(gòu)相似性,是一種衡量?jī)煞鶊D像相似度的指標(biāo);給定兩個(gè)圖像x和y,兩張圖像的結(jié)構(gòu)相似性可按照以下方式求出:
其中,ux是圖像x中像素的平均值,uy是圖像y中像素的平均值,σx是圖像x中像素的方差,σy是圖像y中像素的方差,σxy是圖像x和圖像y中像素的協(xié)方差,c1和c2是用來(lái)維持穩(wěn)定的常數(shù)。
SSIMi-1的計(jì)算方法:將圖像x和圖像y分別設(shè)置為第i-1個(gè)CTU的原始圖像和重建圖像,根據(jù)公式(10)計(jì)算出的值即為SSIMi-1。
MSSIM的計(jì)算方法:將每個(gè)已經(jīng)計(jì)算出的CTU的SSIM值進(jìn)行累加平均,得出的值即為MSSIM的值;
S104,利用當(dāng)前編碼樹(shù)單元復(fù)雜度Ccomplex,調(diào)整當(dāng)前CTU分配的目標(biāo)比特?cái)?shù),計(jì)算當(dāng)前CTU目標(biāo)比特?cái)?shù)Tctu,i;
其中,是調(diào)整系數(shù)。
S105,根據(jù)二次非線性率失真模型公式12,計(jì)算當(dāng)前CTU使用的量化參數(shù)Qpi;
其中,Qpi為當(dāng)前CTU的量化參數(shù);SSIMi是第i個(gè)CTU的結(jié)構(gòu)相似性,d1和d2是調(diào)整系數(shù)。
SSIMi的計(jì)算方法:將圖像x和圖像y分別設(shè)置為第i個(gè)CTU的原始圖像和重建圖像,根據(jù)公式(10)計(jì)算出的值即為SSIMi。
S106,限定當(dāng)前幀中第i個(gè)CTU的量化參數(shù)Qpi波動(dòng)。
根據(jù)公式13作限定:
|Qpi-Qpi-1|≤ε (13)
其中,Qpi-1是當(dāng)前幀已編碼的第i-1個(gè)CTU的量化參數(shù),ε是限制系數(shù)。
實(shí)施例二
圖2是本發(fā)明優(yōu)選實(shí)施例一種HEVC自適應(yīng)視頻碼率控制系統(tǒng)結(jié)構(gòu)圖,所述系統(tǒng)包括:
目標(biāo)比特?cái)?shù)分配模塊,用于分配當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);
Tbframe=min(Ub,max(Br/Fr,Lb)) (1)
其中,Tbframe為當(dāng)前圖像幀的目標(biāo)比特?cái)?shù);Br是編碼的目標(biāo)比特率;Fr是圖像幀率;Ub、Lb分別為上下閾值系數(shù);min(變量)表示對(duì)變量求取最小值,max(變量)表示對(duì)變量就取最大值;α和β是調(diào)整系數(shù);W是幀平滑窗系數(shù);
Ub和Lb初始值按照公式2和公式3計(jì)算:
Ub=Br/Fr×W×α (2)
Lb=Br/Fr×β (3)
當(dāng)編碼完一幀圖像后,分別按照公式4,5更新Ub和Lb;
Ub+=Br/Fr-bits (4)
Lb+=Br/Fr-bits (5)
其中bits是編碼當(dāng)前圖像后實(shí)際輸出編碼比特?cái)?shù);
目標(biāo)比特?cái)?shù)初始值計(jì)算模塊,用于以一個(gè)編碼樹(shù)單元CTU(CTU是編碼樹(shù)單元)為碼率控制單位,計(jì)算目標(biāo)比特?cái)?shù)初始值T1ctu,i;
其中,T1ctu,i表示目標(biāo)比特?cái)?shù)初始值;i是當(dāng)前CTU的編碼次序號(hào);j為變量,其取值范圍為[i-1-sw,i-1];N是一幀圖像中CTU的個(gè)數(shù);sw是編碼樹(shù)單元平滑窗系數(shù);Rctu,j是第j個(gè)CTU分配的目標(biāo)比特?cái)?shù);Ract,j是第j個(gè)CTU實(shí)際編碼輸出的比特?cái)?shù);Trbit是當(dāng)前幀的剩余比特?cái)?shù);
Trbit的初始值按照公式7設(shè)置:
Trbit=Tbframe (7)
編碼完一個(gè)CTU后,根據(jù)公式8更新Trbit:
Trbit-=Ract,i (8)
其中,Ract,i是第i個(gè)CTU實(shí)際編碼輸出的比特?cái)?shù)。
編碼樹(shù)單元復(fù)雜度計(jì)算模塊,用于根據(jù)圖像結(jié)構(gòu)相似性和運(yùn)動(dòng)特性,計(jì)算當(dāng)前編碼樹(shù)單元復(fù)雜度Ccomplex。
SSIMi-1是第i-1個(gè)CTU結(jié)構(gòu)相似性(相似度);MSSIM是平均結(jié)構(gòu)相似性;κ和δ是調(diào)整系數(shù);A1是閾值系數(shù);MVi是第i個(gè)CTU中的最大運(yùn)動(dòng)矢量;
SSIM,結(jié)構(gòu)相似性,是一種衡量?jī)煞鶊D像相似度的指標(biāo);給定兩個(gè)圖像x和y,兩張圖像的結(jié)構(gòu)相似性可按照以下方式求出:
其中,ux是圖像x中像素的平均值,uy是圖像y中像素的平均值,σx是圖像x中像素的方差,σy是圖像y中像素的方差,σxy是圖像x和圖像y中像素的協(xié)方差,c1和c2是用來(lái)維持穩(wěn)定的常數(shù)。
SSIMi-1的計(jì)算方法:將圖像x和圖像y分別設(shè)置為第i-1個(gè)CTU的原始圖像和重建圖像,根據(jù)公式(10)計(jì)算出的值即為SSIMi-1。
MSSIM的計(jì)算方法:將每個(gè)已經(jīng)計(jì)算出的CTU的SSIM值進(jìn)行累加平均,得出的值即為MSSIM的值;
目標(biāo)比特?cái)?shù)計(jì)算模塊,用于利用當(dāng)前編碼樹(shù)單元復(fù)雜度Ccomplex,調(diào)整當(dāng)前CTU分配的目標(biāo)比特?cái)?shù),計(jì)算當(dāng)前CTU目標(biāo)比特?cái)?shù)Tctu,i;
其中,是調(diào)整系數(shù)。
量化參數(shù)計(jì)算模塊,用于根據(jù)二次非線性率失真模型公式12,計(jì)算當(dāng)前CTU使用的量化參數(shù)Qpi;
其中,Qpi為當(dāng)前CTU的量化參數(shù);SSIMi是第i個(gè)CTU的結(jié)構(gòu)相似性,d1和d2是調(diào)整系數(shù)。
SSIMi的計(jì)算方法:將圖像x和圖像y分別設(shè)置為第i個(gè)CTU的原始圖像和重建圖像,根據(jù)公式(10)計(jì)算出的值即為SSIMi。
量化參數(shù)波動(dòng)限定模塊,用于限定當(dāng)前幀中第i個(gè)CTU的量化參數(shù)Qpi波動(dòng)。
根據(jù)公式13作限定:
|Qpi-Qpi-1|≤ε (13)
其中,Qpi-1是當(dāng)前幀已編碼的第i-1個(gè)CTU的量化參數(shù),ε是限制系數(shù)。
本領(lǐng)域的普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序指令相關(guān)硬件來(lái)完成的,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)可以為ROM、RAM、磁盤、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。