專利名稱:宏塊組級視頻碼率控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像信息處理技術(shù),特別是涉及到一種宏塊組級視頻碼率控制方法。
背景技術(shù):
通過網(wǎng)絡(luò)傳輸視頻時,由于網(wǎng)絡(luò)帶寬、視頻容量限制以及用戶需求等原因,一般會對視頻進行壓縮編碼,且會綜合考慮上述因素選擇合適的編碼碼率,即采用一些技術(shù)手段控制視頻的編碼碼率。所述視頻由一系列圖像組成,包含多幀圖像?,F(xiàn)有技術(shù)中,視頻碼率控制方法包括調(diào)整量化參數(shù)、跳幀、選擇性編碼和調(diào)整幀頻,其中,所述量化參數(shù)為視頻標準采用的一組數(shù)字,隨視頻標準不同而不同,量化參數(shù)與視頻的碼率成反比,即量化參數(shù)越高,碼率越低,視頻質(zhì)量也就相對越低;所述跳幀是指通過對若干幀圖像不編碼來降低整個圖像序列的碼率,這種方法會造成解碼圖像跳躍,視頻中圖像序列不連續(xù);所述選擇性編碼是指根據(jù)當前編碼區(qū)域與參考區(qū)域的相似性,選擇對相似程度高的當前編碼區(qū)域不編碼,以此降低視頻信號的碼率;所述調(diào)整幀頻為利用了幀頻與視頻碼率成正比的關(guān)系,降低幀頻以降低視頻碼率。
視頻碼率控制方法可以基于序列級、圖像級和宏塊組級,其中,所述序列為多幀連續(xù)圖像,基于序列級的視頻碼率控制方法就是將多個連續(xù)圖像看作一個整體,控制該圖像序列的碼率總和不超過一定的值;基于圖像級的視頻碼率控制方法是根據(jù)圖像序列中各個圖像的復(fù)雜程度、已編碼圖像的編碼信息等再對圖像序列中某一幅圖像的碼率進行控制;而基于宏塊組級視頻碼率控制方法是將一幅圖像分成若干區(qū)域,稱為若干宏塊組,對每個宏塊組的編碼碼率進行控制。
現(xiàn)有的視頻編碼標準無一例外地在碼率控制中都采用了調(diào)整量化參數(shù)的方法。在此以MPEG-4視頻編碼標準和H.263視頻編碼標準為例做簡要說明。
MPEG4視頻編碼標準碼率控制方法首先根據(jù)編碼緩沖區(qū)占用程度以及已編碼的前一個圖像或宏塊組的實際編碼比特數(shù)計算出當前圖像或宏塊組的目標比特數(shù),然后根據(jù)該目標比特數(shù),利用一個二次模型來計算量化參數(shù)估計值,并利用該量化參數(shù)估計值對當前圖像或宏塊組進行編碼,編碼完成后再對該二次模型的參數(shù)以及編碼緩沖區(qū)占用程度等參數(shù)進行更新。該視頻碼率控制方法在每次編碼完一個圖像或宏塊組之后都需要更新該二次模型,而在編碼任一圖像或宏塊組之前都需要使用該二次模型進行一個二次方程的浮點計算,因此計算復(fù)雜度高,計算量較大。
H.263視頻編碼標準碼率控制方法是以宏塊為單位來調(diào)整量化參數(shù)的。首先根據(jù)編碼緩沖區(qū)占用程度為各幀圖像分配目標比特比特數(shù),然后根據(jù)該目標比特數(shù),利用一個率失真模型來計算每個宏塊的量化參數(shù),最后利用該量化參數(shù)對每個宏塊進行編碼。該視頻碼率控制方法由于要在每個宏塊編碼完后都要更新一次率失真模型,所以需要完成復(fù)雜的數(shù)學(xué)計算來實現(xiàn)視頻碼率控制。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種宏塊組級視頻碼率控制方法,該方法能夠減小碼率控制方法的計算量。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的 一種宏塊組級視頻碼率控制方法,所述方法包括以下步驟A、確定當前宏塊組的目標比特數(shù),并利用圖像的時域相關(guān)性,確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值;B、根據(jù)當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼相鄰宏塊組的實際編碼比特數(shù)與該已編碼相鄰宏塊組目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。
本發(fā)明宏塊組級視頻碼率控制方法步驟B之后,進一步包括根據(jù)當前宏塊組量化參數(shù),對當前宏塊組進行編碼。
本發(fā)明宏塊組級視頻碼率控制方法步驟A中,所述確定當前宏塊組的目標比特數(shù)的操作包括獲取當前圖像內(nèi)所有宏塊組的絕對誤差和,并確定當前宏塊組的絕對誤差和在所有未編碼宏塊組的絕對誤差和之和中所占的比例;確定當前圖像的剩余目標比特數(shù);根據(jù)當前宏塊組絕對誤差和在所有未編碼宏塊組絕對誤差和之和中所占比例,以及當前圖像的剩余目標比特數(shù),為當前宏塊組分配目標比特數(shù)。
本發(fā)明宏塊組級視頻碼率控制方法步驟A中,所述確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值的操作包括根據(jù)當前圖像前的一幀或多幀已編碼圖像中相對應(yīng)宏塊組的絕對誤差和,與當前宏塊組的絕對誤差和的關(guān)系,確定該前一幀或多幀已編碼圖像對當前圖像的影響權(quán)值;利用前一幀或多幀已編碼圖像中相對應(yīng)宏塊組的量化參數(shù)以及實際編碼比特數(shù),以及各幀圖像對當前圖像的影響權(quán)值確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值。
其中,所述當前圖像前的已編碼圖像為3幀。
其中,所述確定前已編碼圖像對當前圖像的影響權(quán)值為,前已編碼圖像中相對應(yīng)宏塊組與當前宏塊組的絕對誤差和的差值取絕對值,作為影響權(quán)值的倒數(shù)。
其中,所述調(diào)整當前宏塊組量化參數(shù)的操作包括,確定當前宏塊組編碼比特數(shù)估計值和目標比特數(shù)之間的差值除以編碼比特數(shù)估計值作為第一修正參數(shù),確定已編碼相鄰宏塊組的實際編碼比特數(shù)與該已編碼相鄰宏塊組目標比特數(shù)之間的差值除以所述目標比特數(shù)作為第二修正參數(shù),將第一修正參數(shù)及第二修正參數(shù)之和加一,乘以當前宏塊組量化參數(shù)估計值作為當前宏塊組的量化參數(shù)。
本發(fā)明提出的宏塊組級視頻碼率控制方法,具有以下優(yōu)點利用連續(xù)圖像時域上的相關(guān)性來確定當前宏塊組的量化參數(shù)與編碼比特數(shù)估計值,因此使用本發(fā)明宏塊組級視頻碼率控制方法能夠平滑圖像之間的過渡,另外,本發(fā)明宏塊組級視頻碼率控制方法根據(jù)相鄰宏塊組的實際編碼比特數(shù)調(diào)整當前宏塊組的量化參數(shù),因此相鄰宏塊組之間過渡平滑,本發(fā)明宏塊組級視頻碼率控制方法計算方法簡單,減小碼率控制方法的計算量,實現(xiàn)容易,能夠快速準確獲取宏塊組的量化參數(shù)。
圖1為本發(fā)明宏塊組級視頻碼率控制方法的流程圖; 圖2為本發(fā)明宏塊組級視頻碼率控制方法中確定當前宏塊組目標比特數(shù)的操作流程圖; 圖3為本發(fā)明宏塊組級視頻碼率控制方法中調(diào)整當前宏塊組量化參數(shù)的操作流程圖。
具體實施例方式 下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
本發(fā)明的基本思想是利用圖像的時域相關(guān)性,確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值,然后根據(jù)當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼的相鄰宏塊組的實際編碼比特數(shù)與其目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。
如圖1所示,本發(fā)明宏塊組級視頻碼率控制方法包括以下步驟 步驟101確定當前宏塊組的目標比特數(shù)。
確定當前宏塊組的目標比特數(shù)可以使用多種辦法,如直接將當前圖像的目標比特數(shù)均分給當前圖像所包含的所有宏塊組,取所分得的比特數(shù)作為當前宏塊組的目標比特數(shù)等。其中,所述目標比特數(shù)為編碼后可以占用的比特數(shù),對于宏塊組級視頻碼率控制方法而言,當前圖像的目標比特數(shù)為已知數(shù)值。
為了讓當前宏塊組的目標比特數(shù)能接近視頻編碼后的實際編碼比特數(shù),本發(fā)明的一個實施例中采取如下方式來確定當前宏塊組的目標比特數(shù) 步驟101a、獲取當前圖像內(nèi)所有宏塊組的絕對誤差和(SAD,Sum ofAbsolute Difference),并確定當前宏塊組的SAD在所有未編碼宏塊組的SAD之和中所占的比例。
設(shè)當前宏塊組在當前圖像中為第i個宏塊組,其SAD為SADi,當前圖像具有編號為0到n-1共n個宏塊組,則所述比例Si為 其中i取值為0到n-1,為當前宏快組在當前圖像中的編號。
步驟101b確定當前圖像的剩余目標比特數(shù)。
當前圖像的剩余目標比特數(shù)為當前圖像的目標比特數(shù)減去已編碼宏塊組的實際編碼比特數(shù)。設(shè)T’為當前圖像剩余目標比特數(shù),T為當前圖像目標比特數(shù),而Bj為第j個宏塊組實際編碼產(chǎn)生的比特數(shù),j取值為0到i-1,則有 步驟101c根據(jù)當前宏塊組SAD在所有未編碼宏塊組SAD之和中所占比例,以及當前圖像的剩余目標比特數(shù),為當前宏塊組分配目標比特數(shù)。
即當前宏塊組的目標比特數(shù)Ti為Ti=T′×Si。
通過步驟101a-101c給當前宏塊組分配目標比特數(shù)的步驟,能夠使得當前宏塊組所分得的目標比特數(shù)與其SAD成正比,根據(jù)視頻編碼的原理,這種情況更加接近編碼后的實際情況。
步驟102利用圖像的時域相關(guān)性,確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值。
一般說來,圖像序列中前后圖像的變化都是一種平滑過渡,所以利用圖像的時域相關(guān)性,也即利用圖像序列中當前圖像之前已編碼數(shù)幀圖像的實際編碼情況,能夠確定當前圖像的當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值。
具體說來,所述確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值的操作包括根據(jù)當前圖像前的一幀或多幀已編碼圖像中相對應(yīng)位置宏塊組的SAD,與當前宏塊組SAD的關(guān)系,確定該前一幀或多幀已編碼圖像對當前圖像的影響權(quán)值;利用前一幀或多幀已編碼圖像中相對應(yīng)位置宏塊組的量化參數(shù)、實際編碼比特數(shù),以及各幀圖像對當前圖像的影響權(quán)值確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值。例如當前宏塊組為當前圖像中的第i個宏塊組,其SAD為SADi,前第一幀圖像第i個宏塊組的SAD為SAD-1,i,前第二幀圖像第i個宏塊組的SAD為SAD-2,i,前第n幀圖像第i個宏塊組的SAD為SAD-n,i,一共取前多少幀圖像根據(jù)實際情況選擇,前圖像幀數(shù)過多則與當前圖像相關(guān)性較小,過少則不能準確獲取當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值,本實施例中選擇前3幀圖像的對應(yīng)宏塊組的SAD與當前宏塊組SAD的關(guān)系,來獲取與圖像幀相對應(yīng)的影響權(quán)值,D-1,i、D-2,i和D-3,i,分別表示前第一幀、前第二幀和前第三幀圖像對當前圖像的影響權(quán)值 由此可以看出,前已編碼圖像相應(yīng)宏塊組和當前宏塊組的SAD越接近,則前已編碼圖像對當前圖像的影響權(quán)值越高。
根據(jù)各幀圖像的影響權(quán)值,分別確定當前宏塊組量化參數(shù)和編碼比特數(shù)的估計值QPi’和Bi’為 其中,QP-1,i、QP-2,i、QP-3,i分別為前第一、二、三幀圖像中對應(yīng)宏塊組的量化參數(shù)值,B-1,i、B-2,i、B-3,i分別為前第一、二、三幀圖像中對應(yīng)宏塊組的實際編碼比特數(shù)。以上步驟101和102,在獲知當前宏塊組的SAD后,執(zhí)行順序可以相互顛倒,對于本發(fā)明的實施效果不存在其他影響。
步驟103根據(jù)當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼的相鄰宏塊組的實際編碼比特數(shù)與其目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。
考慮到當前宏塊組在當前圖像中所占比重,以及當前宏塊組與其相鄰已編碼宏塊組之間的關(guān)系,需要利用當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼的相鄰宏塊組的實際編碼比特數(shù)與其目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。
具體而言,所述調(diào)整當前宏塊組量化參數(shù)的操作包括, 步驟103a確定當前宏塊組Bi’和Ti之間的差值除以Bi’作為第一修正參數(shù)delta1。即 步驟103b確定已編碼相鄰宏塊組目標比特數(shù)Ti-1與該已編碼相鄰宏塊組的實際編碼比特數(shù)Bi-1之間的差值除以Ti-1作為第二修正參數(shù)delta2,即 步驟103c將delta1及delta2之和加一,乘以當前宏塊組QPi’作為當前宏塊組的量化參數(shù)QPi,即 QPi=QPi′×(1+delta1+delta2) 上述計算過程中,選擇已編碼相鄰宏塊組為前一個已編碼宏塊組來計算delta2,本發(fā)明視頻碼率控制方法中,也可以根據(jù)相鄰關(guān)系,選擇一個或多個與當前宏塊組相鄰已編碼宏塊組來計算delta2。
步驟104根據(jù)當前宏塊組量化參數(shù),對當前宏塊組進行編碼。
獲取當前宏塊組的量化參數(shù)后,根據(jù)現(xiàn)有技術(shù)對當前宏塊組進行編碼操作。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用來限定本發(fā)明的保護范圍。本領(lǐng)域內(nèi)技術(shù)人員應(yīng)該能夠聯(lián)想到,通過其他方法來分配當前宏塊組的目標比特數(shù),選擇不同幀數(shù)的前已編碼圖像來確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值,選擇其他數(shù)目和位置的相鄰已編碼宏塊組來調(diào)整當前宏塊組的量化參數(shù),以及其它根據(jù)本發(fā)明的技術(shù)方案及其構(gòu)思進行相應(yīng)的等同改變或替換都應(yīng)該屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種宏塊組級視頻碼率控制方法,其特征在于,所述方法包括以下步驟
A、確定當前宏塊組的目標比特數(shù),并利用圖像的時域相關(guān)性,確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值;
B、根據(jù)當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼相鄰宏塊組的實際編碼比特數(shù)與該已編碼相鄰宏塊組目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。
2.根據(jù)權(quán)利要求1所述的宏塊組級視頻碼率控制方法,其特征在于,步驟B之后,進一步包括根據(jù)當前宏塊組量化參數(shù),對當前宏塊組進行編碼。
3.根據(jù)權(quán)利要求1所述的宏塊組級視頻碼率控制方法,其特征在于,步驟A中,所述確定當前宏塊組的目標比特數(shù)的操作包括獲取當前圖像內(nèi)所有宏塊組的絕對誤差和,并確定當前宏塊組的絕對誤差和在所有未編碼宏塊組的絕對誤差和之和中所占的比例;確定當前圖像的剩余目標比特數(shù);根據(jù)當前宏塊組絕對誤差和在所有未編碼宏塊組絕對誤差和之和中所占比例,以及當前圖像的剩余目標比特數(shù),為當前宏塊組分配目標比特數(shù)。
4.根據(jù)權(quán)利要求1所述的宏塊組級視頻碼率控制方法,其特征在于,步驟A中,所述確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值的操作包括根據(jù)當前圖像前的一幀或多幀已編碼圖像中相對應(yīng)宏塊組的絕對誤差和,與當前宏塊組的絕對誤差和的關(guān)系,確定該前一幀或多幀已編碼圖像對當前圖像的影響權(quán)值;利用前一幀或多幀已編碼圖像中相對應(yīng)宏塊組的量化參數(shù)以及實際編碼比特數(shù),以及各幀圖像對當前圖像的影響權(quán)值確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值。
5.根據(jù)權(quán)利要求4所述的宏塊組級視頻碼率控制方法,其特征在于,所述當前圖像前的已編碼圖像為3幀。
6.根據(jù)權(quán)利要求4所述的宏塊組級視頻碼率控制方法,其特征在于,所述確定前已編碼圖像對當前圖像的影響權(quán)值為,前已編碼圖像中相對應(yīng)宏塊組與當前宏塊組的絕對誤差和的差值取絕對值,作為影響權(quán)值的倒數(shù)。
7.根據(jù)權(quán)利要求1所述的宏塊組級視頻碼率控制方法,其特征在于,所述調(diào)整當前宏塊組量化參數(shù)的操作包括,確定當前宏塊組編碼比特數(shù)估計值和目標比特數(shù)之間的差值除以編碼比特數(shù)估計值作為第一修正參數(shù),確定已編碼相鄰宏塊組的實際編碼比特數(shù)與該已編碼相鄰宏塊組目標比特數(shù)之間的差值除以所述目標比特數(shù)作為第二修正參數(shù),將第一修正參數(shù)及第二修正參數(shù)之和加一,乘以當前宏塊組量化參數(shù)估計值作為當前宏塊組的量化參數(shù)。
全文摘要
本發(fā)明涉及一種宏塊組級視頻碼率控制方法,該方法包括以下步驟確定當前宏塊組的目標比特數(shù),并利用圖像的時域相關(guān)性,確定當前宏塊組的量化參數(shù)及編碼比特數(shù)估計值;根據(jù)當前宏塊組的編碼比特數(shù)估計值與目標比特數(shù),以及已編碼的相鄰宏塊組的實際編碼比特數(shù)與其目標比特數(shù)之間的關(guān)系,調(diào)整當前宏塊組量化參數(shù)。本發(fā)明宏塊組視頻碼率控制方法能夠通過簡單計算即快速獲取宏塊組的量化參數(shù),減小碼率控制方法的計算量,且能夠充分考慮圖像的時間和空間上的相關(guān)性,準確度高。
文檔編號H04N7/26GK101159871SQ200710177218
公開日2008年4月9日 申請日期2007年11月12日 優(yōu)先權(quán)日2007年11月12日
發(fā)明者范文杰, 魯曉牧, 寧 王 申請人:中興通訊股份有限公司