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