專利名稱:一種基于片的自適應(yīng)碼率控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于片的自適應(yīng)碼率控制方法。
背景技術(shù):
Ramchandran等提出一個拉格朗日乘數(shù)的碼率控制算法,這個算法要求對每個量化器生成率失真曲線,它的復(fù)雜度非常大不適合實時應(yīng)用;應(yīng)用獨立的量化器位分配到MPEG視頻編碼器”1994年IEEE圖像處理學(xué)報第3卷533到545頁。(K.Ramchandrain,A.Qrtega,and M.Vetterli,“Bit allocationfor dependent quantization with applications to multiresolution and MPEG videocoders,”IEEE Trans.Image Processing,vol.3,pp.533-545,1994。
另一份文獻(xiàn),1997年2月《IEEE電路系統(tǒng)和視頻技術(shù)學(xué)報》,P246~250,“率失真模型碼率控制算法“(作者T.Chiang and Y.-Q.Zhang)公開一個二次方程式的率失真模型碼率控制算法,這個算法要求使用最小均方算法求解模型參數(shù),該算法復(fù)雜度較大。
2003年3月泰國JVT會議中,Li等人提出一個自適應(yīng)基本單元的碼率控制算法,這個算法是基于Chiang的二次方程式的率失真模型碼率控制算法并做一些改進(jìn),同樣該算法復(fù)雜度較大。
發(fā)明內(nèi)容
為了克服已有的碼率控制算法的算法復(fù)雜度較大的不足,本發(fā)明提供一種降低算法復(fù)雜度,又能在給定的目標(biāo)碼率控制范圍內(nèi)獲得較高的視頻質(zhì)量的基于片的自適應(yīng)碼率控制方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是 一種基于片的自適應(yīng)碼率控制方法,所述的控制算法包括以下步驟 (1)、將輸入視頻序列分成圖像組,圖像組為一組時間上連續(xù)的圖像序列,根據(jù)H.264基本框架的定義,每個圖像組呈IPPP結(jié)構(gòu),其中I幀是指幀內(nèi)編碼的圖像,P幀是指支持前向預(yù)測的圖像,定義i和j分別表示第i個圖像組和第i個圖像組的第j幀; (2)、控制編碼器使用一個量化系數(shù)(Quantization Parameter,QP)的初始值來編碼第i個圖像組的首個I幀和首個P幀,初始的量化系數(shù)值通過目標(biāo)碼率分配到單位象素的比特數(shù)來計算; (3)、通過動態(tài)量化系數(shù)QPik(j)編碼第i個圖像組的第j幀,每一個片的動態(tài)量化系數(shù)QPik(j)的確定過程為 (3.1)、當(dāng)?shù)趇個圖像組的第j-1幀被編碼后,在圖像組中剩余的目標(biāo)比特總數(shù)(Remaining Bits,RB)用以下公式(1)表示 RBi(j)=RBi(j-1)-ABi(j-1)j=2,3,...,Ni(1) 其中,ABi(j-1)表示已編碼的第j-1幀比特數(shù); 對于一個圖像組中的第1幀,它的目標(biāo)比特數(shù)由下式(2)計算 其中,RS表示目標(biāo)碼率,Ni為第i個圖像組總的幀數(shù),F(xiàn)R表示幀率; 第J幀的虛擬緩沖區(qū)充盈度(Virtual Buffer,VB),由下式(3)表示 設(shè)第1個圖像組中第1幀的虛擬緩沖區(qū)沖盈度VB1(1)為0,第i個圖像組中的第1幀虛擬緩沖區(qū)充盈度等于上一個圖像組最后一幀的的虛擬緩沖區(qū)充盈度,即VBi(1)=VBi-1(Ni-1); (3.2)、第i個圖像組中第j個P幀的目標(biāo)比特數(shù)(Target Bits,TB)是由要編碼的剩余總比特數(shù)、目標(biāo)緩沖區(qū)等級(Target Buffer Level,TBL)、幀率、有效的網(wǎng)絡(luò)帶寬、真實的緩沖區(qū)充盈度以及先前已編碼的I幀和P幀的真實比特數(shù)來決定,它可以由下式(4)表示 其中,Nr,p表示剩余P幀的幀數(shù);TBLi(j)計算公式如下(5) 其中,Ni,p表示第i個圖像組包含的P幀總數(shù); (3.3)、第i個圖像組中第j幀的某個片的目標(biāo)比特數(shù)(Slice Target Bits,Slice TB)是由每一個片的復(fù)雜程度來估算,由下式(6)計算獲得 其中,Jcostk表示編碼當(dāng)前幀的拉格朗日代價,表示為(7) 其中,Jcostk表示編碼當(dāng)前片K的拉格朗日率失真代價,M是指當(dāng)前幀的片總數(shù); Jcostk由一個線性濾波器計算前面的幀得到,其算式為(8) 其中,L表示窗口長度,率失真代價COSTk(j-n)表達(dá)式為(9) COSTk(j-n)=SATDk+λ×Rk(9) 式中,SATDk表示第K片經(jīng)過哈德曼變化的預(yù)測殘差絕對值總和,Rk是指片K的比特數(shù),λ為拉格朗日乘數(shù)因子; (3.4)、每一個片的量化參數(shù)計算公式表示如下(10) 其中,β特別因子,Xik(j)的表達(dá)式為(11) 本發(fā)明的技術(shù)構(gòu)思本發(fā)明采用自適應(yīng)的控制算法,它通過動態(tài)的調(diào)整編碼參數(shù)(量化系數(shù))來實現(xiàn)目標(biāo)碼率控制。該算法可以適用在不同網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬條件。該算法已在標(biāo)準(zhǔn)的虛擬參考解碼器上驗證通過。
本發(fā)明的有益效果主要表現(xiàn)在(1)、降低算法復(fù)雜度;(2)、能在給定的目標(biāo)碼率控制范圍內(nèi)獲得較高的視頻質(zhì)量。
具體實施例方式 下面對本發(fā)明作進(jìn)一步描述。
一種基于片的自適應(yīng)碼率控制方法,所述的控制算法包括以下步驟 (1)、將輸入視頻序列分成圖像組圖像組,圖像組為一組時間上連續(xù)的圖像序列,根據(jù)H.264基本框架的定義,每個圖像組圖像組呈IPPP結(jié)構(gòu),其中I幀是指幀內(nèi)編碼的圖像,P幀是指支持前向預(yù)測的圖像,定義i和j分別表示第i個圖像組和第i個圖像組的第j幀; (2)、控制編碼器使用一個量化系數(shù)(Quantization Parameter,QP)的初始值來編碼第i個圖像組的首個I幀和首個P幀,初始的量化系數(shù)值通過目標(biāo)碼率分配到單位象素的比特數(shù)來計算; (3)、通過動態(tài)量化系數(shù)QPik(j)編碼第i個圖像組的第j幀,每一個片的動態(tài)量化系數(shù)QPik(j)的確定過程為 (3.1)、當(dāng)?shù)趇個圖像組的第j-1幀被編碼后,在圖像組中剩余的目標(biāo)比特總數(shù)(Remaining Bits,RB)用以下公式(1)表示 RBi(j)=RBi(j-1)-ABi(j-1)j=2,3,...,Ni(1) 其中,ABi(j-1)表示已編碼的第j-1幀比特數(shù); 對于一個圖像組中的第1幀,它的目標(biāo)比特數(shù)由下式(2)計算 其中,RS表示目標(biāo)碼率,Ni為第i個圖像組總的幀數(shù),F(xiàn)R表示幀率; 第J幀的虛擬緩沖區(qū)充盈度(Virtual Buffer,VB),由下式(3)表示 設(shè)第1個圖像組中第1幀的虛擬緩沖區(qū)沖盈度VB1(1)為0,第i個圖像組中的第1幀虛擬緩沖區(qū)充盈度等于上一個圖像組最后一幀的的虛擬緩沖區(qū)充盈度,即VBi(1)=VBi-1(Ni-1); (3.2)、第i個圖像組中第j個P幀的目標(biāo)比特數(shù)(Target Bits,TB)是由要編碼的剩余總比特數(shù)、目標(biāo)緩沖區(qū)等級(Target Buffer Level,TBL)、幀率、有效的網(wǎng)絡(luò)帶寬、真實的緩沖區(qū)充盈度以及先前已編碼的I幀和P幀的真實比特數(shù)來決定,它可以由下式(4)表示 其中,Nr,p表示剩余P幀的幀數(shù);TBLi(j)計算公式如下(5) 其中,Ni,p表示第i個圖像組包含的P幀總數(shù); (3.3)、第i個圖像組中第j幀的某個片的目標(biāo)比特數(shù)(Slice Target Bits,Slice TB)是由每一個片的復(fù)雜程度來估算,由下式(6)計算獲得 其中,Jcost表示編碼當(dāng)前幀的拉格朗日代價,表示為(7) 其中,Jcostk表示編碼當(dāng)前片K的拉格朗日率失真代價,M是指當(dāng)前幀的片總數(shù); Jcostk由一個線性濾波器計算前面的幀得到,其算式為(8) 其中,L表示窗口長度,率失真代價COSTk(j-n)表達(dá)式為(9) COSTk(j-n)=SATDk+λ×Rk(9) 式中,SATDk表示第K片經(jīng)過哈德曼變化的預(yù)測殘差絕對值總和,Rk是指片K的比特數(shù),λ為拉格朗日乘數(shù)因子; (3.4)、每一個片的量化參數(shù)計算公式表示如下(10) 其中,β特別因子,Xik(j)的表達(dá)式為(11) 本實施例中,給出一個自適應(yīng)的控制算法,它通過動態(tài)的調(diào)整編碼參數(shù)(量化系數(shù))來實現(xiàn)目標(biāo)碼率控制。該算法可以適用在不同網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬條件。該算法已在標(biāo)準(zhǔn)的慮擬參考解碼器上驗證通過,詳細(xì)的算法在以下給出 (1)、碼率控制初始化 輸入視頻序列被分成圖像組(Group of Picture,圖像組),它是指一組時間上連續(xù)的圖像序列。根據(jù)H.264基本框架(Baseline Profile)的定義,每個圖像組為IPPP....結(jié)構(gòu),其中I幀是指幀內(nèi)編碼的圖像,P幀是指支持前向預(yù)測的圖像。我們使用i和j分別表示第i個圖像組和第i個圖像組的第j幀。第一步,編碼器使用一個量化系數(shù)(Quantization Parameter,QP)的初始值來編碼第i個圖像組的首個I幀和首個P幀。初始的量化系數(shù)值可以通過目標(biāo)碼率分配到單位象素的比特數(shù)來計算。
當(dāng)?shù)趇個圖像組的第j-1幀被編碼后,在這個圖像組中剩余的目標(biāo)比特總數(shù)(Remaining Bits,RB)可以用以下公式(1)表示 RBi(j)=RBi(j-1)-ABi(j-1)j=2,3,...,Ni(1) 這里,ABi(j-1)表示已編碼的第j-1幀比特數(shù)。對于一個圖像組中的第1幀,它的目標(biāo)比特數(shù)由下式(2)計算 其中RS表示目標(biāo)碼率,Ni為第i個圖像組總的幀數(shù),F(xiàn)R表示幀率。第J幀的虛擬緩沖區(qū)充盈度(Fullness of virtual buffer,VB)可以由下式(3)表示 這里,設(shè)第1個圖像組中第1幀的虛擬緩沖區(qū)沖盈度VB1(1)為0,第i個圖像組中的第1幀虛擬緩沖區(qū)充盈度等于上一個圖像組最后一幀的的虛擬緩沖區(qū)充盈度,即VBi(1)=VBi-1(Ni-1)。
(2)、P幀的目標(biāo)比特數(shù)分配 第i個圖像組中第j個P幀的目標(biāo)比特數(shù)(Target Bits,TB)是由要編碼的剩余總比特數(shù)、目標(biāo)緩沖區(qū)等級(Target Buffer Level,TBL)、幀率、有效的網(wǎng)絡(luò)帶寬、真實的緩沖區(qū)充盈度以及先前已編碼的I幀和P幀的真實比特數(shù)來決定。它可以由下式(4)表示 這里,Nr,p表示剩余P幀的幀數(shù)。TBLi(j)計算公式(5)如下 其中Ni,p表示第i個圖像組包含的P幀總數(shù)。
(3)、每一個片的目標(biāo)比特數(shù)分配 第i個圖像組中第j幀的某個片的目標(biāo)比特數(shù)(Slice Target Bits,Slice TB)是由每一個片的復(fù)雜程度來估算。它可以由下式(6)計算獲得 這里Jcost表示編碼當(dāng)前幀的拉格朗日代價,表示為(7) 其中Jcostk表示編碼當(dāng)前片K的拉格朗日率失真代價,M是指當(dāng)前幀的片總數(shù)。
Jcostk可以由一個線性濾波器計算前面的幀得到,其算式為(8) 這里L(fēng)表示窗口長度。率失真代價COSTk(j-n)表達(dá)式為(9) COSTk(j-n)=SATDk+λ×Rk(9) 式中,SATDk表示第K片經(jīng)過哈德曼變化的預(yù)測殘差絕對值總和。Rk是指片K的比特數(shù)。λ為拉格朗日乘數(shù)因子。
(4)、每片的量化參數(shù)計算 片的量化參數(shù)計算公式表示如下(10) 這里,β特別因子。Xik(j)的表達(dá)式為(11)
權(quán)利要求
1.一種基于片的自適應(yīng)碼率控制方法,所述的控制算法包括以下步驟
(1)將輸入視頻序列分成圖像組,圖像組為一組時間上連續(xù)的圖像序列,根據(jù)H.264基本框架的定義,每個圖像組呈IPPP結(jié)構(gòu),其中I幀是指幀內(nèi)編碼的圖像,P幀是指支持前向預(yù)測的圖像,定義i和j分別表示第i個圖像組和第i個圖像組的第j幀;
(2)、控制編碼器使用一個量化系數(shù)(Quantization Parameter,QP)的初始值來編碼第i個圖像組的首個I幀和首個P幀,初始的量化系數(shù)值通過目標(biāo)碼率分配到單位象素的比特數(shù)來計算;
(3)、通過動態(tài)量化系數(shù)QPik(j)編碼第i個圖像組的第j幀,每一個片的動態(tài)量化系數(shù)QPik(j)的確定過程為
(3.1)、當(dāng)?shù)趇個圖像組的第j-1幀被編碼后,在圖像組中剩余的目標(biāo)比特總數(shù)(Remaining Bits,RB)用以下公式(1)表示
RBi(j)=RBi(j-1)-ABi(j-1)j=2,3,...,Ni(1)
其中,ABi(j-1)表示已編碼的第j-1幀比特數(shù);
對于一個圖像組中的第1幀,它的目標(biāo)比特數(shù)由下式(2)計算
其中,RS表示目標(biāo)碼率,Ni為第i個圖像組總的幀數(shù),F(xiàn)R表示幀率;
第J幀的虛擬緩沖區(qū)充盈度(Virtual Buffer,VB),由下式(3)表示
設(shè)第1個圖像組中第1幀的虛擬緩沖區(qū)沖盈度VB1(1)為0,第i個圖像組中的第1幀虛擬緩沖區(qū)充盈度等于上一個圖像組最后一幀的的虛擬緩沖區(qū)充盈度,即VBi(1)=VBi-1(Ni-1);
(3.2)、第i個圖像組中第j個P幀的目標(biāo)比特數(shù)(Target Bits,TB)是由要編碼的剩余總比特數(shù)、目標(biāo)緩沖區(qū)等級(Target Buffer Level,TBL)、幀率、有效的網(wǎng)絡(luò)帶寬、真實的緩沖區(qū)充盈度以及先前已編碼的I幀和P幀的真實比特數(shù)來決定,它可以由下式(4)表示
其中,Nr,p表示剩余P幀的幀數(shù);TBLi(j)計算公式如下(5)
其中,Ni,p表示第i個圖像組包含的P幀總數(shù);
(3.3)、第i個圖像組中第j幀的某個片的目標(biāo)比特數(shù)(Slice Target Bits,SliceTB)是由每一個片的復(fù)雜程度來估算,由下式(6)計算獲得
其中,Jcost表示編碼當(dāng)前幀的拉格朗日代價,表示為(7)
其中,Jcostk表示編碼當(dāng)前片K的拉格朗日率失真代價,M是指當(dāng)前幀的片總數(shù);
Jcostk由一個線性濾波器計算前面的幀得到,其算式為(8)
其中,L表示窗口長度,率失真代價COSTk(j-n)表達(dá)式為(9)
COSTk(j-n)=SATDk+λ×Rk(9)
式中,SATDk表示第K片經(jīng)過哈德曼變化的預(yù)測殘差絕對值總和,Rk是指片K的比特數(shù),λ為拉格朗日乘數(shù)因子;
(3.4)、每一個片的量化參數(shù)計算公式表示如下(10)
其中,β特別因子,Xik(j)的表達(dá)式為(11)
全文摘要
一種基于片的自適應(yīng)碼率控制方法,包括以下步驟(1)將輸入視頻序列分成圖像組,圖像組為一組時間上連續(xù)的圖像序列,根據(jù)H.264基本框架的定義,每個圖像組圖像組呈IPPP結(jié)構(gòu),其中I幀是指幀內(nèi)編碼的圖像,P幀是指支持前向預(yù)測的圖像,定義i和j分別表示第i個圖像組和第i個圖像組的第j幀;(2)控制編碼器使用一個量化系數(shù)(Quantization Parameter,QP)的初始值來編碼第i個圖像組的首個I幀和首個P幀,初始的量化系數(shù)值通過目標(biāo)碼率分配到單位象素的比特數(shù)來計算;(3)通過動態(tài)量化系數(shù)QPik(j)編碼第i個圖像組的第j幀,每一個片確定動態(tài)量化系數(shù)QPik(j)。本發(fā)明降低算法復(fù)雜度,又能在給定的目標(biāo)碼率控制范圍內(nèi)獲得較高的視頻質(zhì)量。
文檔編號H04N7/26GK101159867SQ20071006791
公開日2008年4月9日 申請日期2007年3月31日 優(yōu)先權(quán)日2007年3月31日
發(fā)明者宋旭東, 杜武平 申請人:紅杉樹(杭州)信息技術(shù)有限公司