專利名稱:零塊預(yù)判條件的確定方法及零塊預(yù)先判定方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體通信系統(tǒng)中的視頻壓縮編碼技術(shù),尤其涉及一種壓縮編碼過程中的零塊預(yù)先判定方法。
背景技術(shù):
H.264壓縮編碼標(biāo)準(zhǔn)是目前最先進(jìn)的視頻壓縮編碼國(guó)際標(biāo)準(zhǔn),其全稱是國(guó)際電信聯(lián)盟-電信標(biāo)準(zhǔn)化組織H.264標(biāo)準(zhǔn)(ITU-T H.264 Recommendation,International Telecommunication Union-Telecommunication H.264Recommendation),以下將其簡(jiǎn)稱為H.264標(biāo)準(zhǔn)。H.264標(biāo)準(zhǔn)由ITU-T和國(guó)際標(biāo)準(zhǔn)化組織(ISO,International Organization for Standardization)/國(guó)際電工委員會(huì)(IEC,International Electrotechnical Commission)的運(yùn)動(dòng)圖像專家組(MPEG,Moving Picture Experts Group)共同合作開發(fā)制定。該標(biāo)準(zhǔn)從1999年開始研制,由眾多國(guó)家的設(shè)備廠商,軟件開發(fā)商,電信運(yùn)營(yíng)商,大學(xué)和科研機(jī)構(gòu)參加,匯集了當(dāng)前世界上最先進(jìn)的視頻壓縮編碼技術(shù),最終于2003年正式成為ITU-T的國(guó)際標(biāo)準(zhǔn)。
H.264相對(duì)于在先的H.263+、H.263++以及MPEG-4 Simple Profile等視頻壓縮編碼標(biāo)準(zhǔn)技術(shù),在性能和功能上都有了很大提高。其中在功能上增加了許多編碼工具選項(xiàng),使得可以適合更多的應(yīng)用類型以及更加廣闊的應(yīng)用領(lǐng)域;在性能方面,在相同的編碼碼率(bit-rate)下,圖像質(zhì)量以峰值信號(hào)-噪聲比值(PSNR,Peak Signal-to-Noise Ratio,簡(jiǎn)稱峰值信噪比)作為參考,H.264標(biāo)準(zhǔn)比在先的H.263+/H.263++,MPEG-4Simple Profile標(biāo)準(zhǔn)提高了一倍,即PSNR增加了3dB;也就是說(shuō),在得到相同PSNR的情況下,H.642標(biāo)準(zhǔn)所需要的網(wǎng)絡(luò)帶寬相比H.263+/H.263++,MPEG-4Simple Profile標(biāo)準(zhǔn)所需的網(wǎng)絡(luò)帶寬降低了50%。
但是,H.264標(biāo)準(zhǔn)相對(duì)于在先技術(shù)標(biāo)準(zhǔn)在功能和性能方面都得到顯著提升的同時(shí),其付出的代價(jià)也是高昂的,其中H.264標(biāo)準(zhǔn)對(duì)視頻圖像進(jìn)行壓縮編解碼處理的運(yùn)算復(fù)雜度要比H.263/H.263+等標(biāo)準(zhǔn)的運(yùn)算復(fù)雜度增加幾倍,因此,H.264標(biāo)準(zhǔn)大規(guī)模普及應(yīng)用的前提必須是開發(fā)多種處理效率較高的運(yùn)算處理方法,以降低H.264標(biāo)準(zhǔn)編解碼運(yùn)算處理過程中的多個(gè)計(jì)算強(qiáng)度非常高的計(jì)算環(huán)節(jié)的運(yùn)算復(fù)雜度,這樣才能降低產(chǎn)品所需多媒體處理器的處理能力,從而降低成本;或者是多媒體處理器在給定的處理能力上支持更高的編碼及解碼能力,從而提高產(chǎn)品性能。
其中在H.264標(biāo)準(zhǔn)的編解碼處理過程中存在多處運(yùn)算復(fù)雜度較高的計(jì)算環(huán)節(jié),比如幀間預(yù)測(cè)編碼(Inter-frame prediction,簡(jiǎn)稱Inter)、幀內(nèi)預(yù)測(cè)編碼(Intra-frame prediction,簡(jiǎn)稱Intra)、熵編碼(CABAC,Context-Adaptive BinaryArithmetic Coding)、1/4像素精度的運(yùn)動(dòng)估計(jì)(ME,Motion Estimation)和運(yùn)動(dòng)補(bǔ)償(MC,Motion Compensation)、多參考幀預(yù)測(cè)(Multi-hypothesisprediction)等等。
尤其是在幀內(nèi)預(yù)測(cè)編碼處理和幀間預(yù)測(cè)編碼處理方面,H.264標(biāo)準(zhǔn)相對(duì)于在先的H.263/H.263+等標(biāo)準(zhǔn)有了很大的處理策略變化。其中H.264標(biāo)準(zhǔn)在對(duì)視頻圖像進(jìn)行編解碼處理的過程中,對(duì)于視頻圖像當(dāng)前幀中的每個(gè)宏塊(Macro block,以下簡(jiǎn)稱MB),允許使用多種預(yù)測(cè)模式對(duì)其進(jìn)行預(yù)測(cè)處理。一般預(yù)測(cè)處理首先是進(jìn)行幀間預(yù)測(cè),然后再進(jìn)行幀內(nèi)預(yù)測(cè),繼而比較幀內(nèi)預(yù)測(cè)和幀問預(yù)測(cè)的結(jié)果,選取編碼效率最高的預(yù)測(cè)模式,這樣就把幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)這兩種預(yù)測(cè)技術(shù)有機(jī)地結(jié)合起來(lái)了,可以達(dá)到更高的預(yù)測(cè)效率和壓縮效率。
其中,幀內(nèi)預(yù)測(cè)是H.264標(biāo)準(zhǔn)獨(dú)有的處理屬性,對(duì)于視頻圖像編碼過程,幀內(nèi)預(yù)測(cè)能夠最大限度地利用圖像數(shù)據(jù)在空間上的相關(guān)性,從而提高壓縮編碼效率。在一般的視頻圖像壓縮編碼處理方式中,較為普遍采用的是幀間預(yù)測(cè),而幀間預(yù)測(cè)利用的是視頻圖像序列之間在時(shí)間上的相關(guān)性;然而很多類型的視頻圖像其內(nèi)部是存在很強(qiáng)的空間相關(guān)性的,因此H.264標(biāo)準(zhǔn)設(shè)計(jì)了幀內(nèi)預(yù)測(cè)方式以充分利用視頻圖像內(nèi)部存在的空間相關(guān)性,以進(jìn)而提高壓縮編碼效率。
H.264標(biāo)準(zhǔn)中的幀內(nèi)預(yù)測(cè)是指在編碼過程中,對(duì)于視頻圖像中當(dāng)前要編碼的某一個(gè)區(qū)域(一般都是矩形的塊),在視頻圖像中搜索與其最相近似的、且已經(jīng)編碼的塊,用這個(gè)搜索到的最相近似的塊來(lái)預(yù)測(cè)當(dāng)前要編碼的塊,預(yù)測(cè)結(jié)果即是預(yù)測(cè)的殘差。其中不同塊之間的相近似性是采用絕對(duì)誤差和(SAD,Sum of Absolute Differences)來(lái)度量的,即與當(dāng)前要編碼的塊計(jì)算得到的最小SAD所對(duì)應(yīng)的塊作為最相近似的塊。上述圖像塊可以是宏塊MB(即16×16象素大小的塊),也可以是比宏塊MB更小的塊,也就是說(shuō)H.264標(biāo)準(zhǔn)中的幀內(nèi)預(yù)測(cè)是在MB或者比MB更小尺度的塊上進(jìn)行的。
在視頻圖像壓縮編碼過程中,無(wú)論是幀間預(yù)測(cè)還是幀內(nèi)預(yù)測(cè),都是基于MB或者更小尺度的塊(如16×8塊,8×16塊,8×8塊,8×4塊,4×8塊,4×4塊等)相對(duì)于參考圖像塊(即用于預(yù)測(cè)的圖像塊)來(lái)求取預(yù)測(cè)殘差(Prediction Residue或者Prediction Difference),該預(yù)測(cè)殘差結(jié)果是大小相同的一個(gè)圖像塊;然后將該預(yù)測(cè)殘差圖像塊變換到變換系數(shù)域,然后對(duì)變換系數(shù)進(jìn)行量化;最后再對(duì)量化后的變換系數(shù)進(jìn)行Zigzag掃描和熵編碼。由此可見,如果在對(duì)預(yù)測(cè)殘差圖像塊進(jìn)行變換和對(duì)變換后的變換系數(shù)進(jìn)行量化的過程中引入優(yōu)化處理方法,則對(duì)圖像壓縮編碼處理效率會(huì)有很大程度的提高。
現(xiàn)有H.264標(biāo)準(zhǔn)中,在對(duì)預(yù)測(cè)殘差圖像塊進(jìn)行變換和對(duì)變換后的變換系數(shù)進(jìn)行量化的過程引入優(yōu)化處理方法主要從以下兩方面來(lái)考慮(1)由于H.264整數(shù)變換方法是一種從離散余弦變換(DCT,DiscreteConsine Transform)方法近似導(dǎo)出的變換方法,即采用整數(shù)的商來(lái)近似DCT變換系數(shù),從而消除浮點(diǎn)乘除運(yùn)算,因此采用整數(shù)變換方式代替DCT方式,變換效率可以得到很大提高,并且能夠?qū)⒆儞Q過程和量化過程結(jié)合成一個(gè)過程。同時(shí)由于H.264整數(shù)變換方式所處理的圖像塊尺度是4×4塊,因此如果采用H.264整數(shù)變換,預(yù)測(cè)殘差圖像塊大小不是4×4塊,那么就需要把預(yù)測(cè)殘差圖像塊劃分成多個(gè)4×4塊,然后分別對(duì)每個(gè)4×4塊進(jìn)行整數(shù)變換。
(2)預(yù)先判斷出整數(shù)變換量化后的零塊(所謂零塊即是全零變換系數(shù)塊的簡(jiǎn)稱,即MB中的16個(gè)4×4塊的變換系數(shù)全部為零的情況),對(duì)于變換和量化結(jié)果為零的預(yù)測(cè)殘差圖像塊是對(duì)圖像壓縮編碼沒有任何影響的,所以可以直接省略對(duì)這些零塊的變換和量化過程,從而提高了圖像壓縮編碼的效率;而且由于當(dāng)前塊是和前幀(0,0)位置上的對(duì)應(yīng)塊之間直接求取預(yù)測(cè)殘差的,因此如果預(yù)測(cè)殘差圖像塊變換和量化結(jié)果為全零,則后面的運(yùn)動(dòng)搜索過程就可以避免了,從而可以節(jié)省每個(gè)圖像塊的運(yùn)動(dòng)搜索計(jì)算量,相應(yīng)節(jié)省了整個(gè)幀間預(yù)測(cè)模式選擇的計(jì)算量。
由此可見,如果能夠根據(jù)一定條件以一定概率(這里允許有一定小比例的誤判)預(yù)先判斷一個(gè)預(yù)測(cè)殘差圖像塊變換量化結(jié)果是否為零,即預(yù)先判斷出整數(shù)變換后的零塊,則可以避免大量零塊的變換計(jì)算量和變換之前的預(yù)測(cè)模式選擇過程中的部分計(jì)算量。所以在H.264標(biāo)準(zhǔn)中,零塊的預(yù)先判斷處理對(duì)于提高視頻圖像壓縮編碼效率是十分重要的。
上述變換量化后產(chǎn)生零塊的原因主要是因?yàn)榱炕幚肀举|(zhì)上是用一個(gè)量化參數(shù)(QP,Quantization Parameter)的指數(shù)形式因子來(lái)除變換結(jié)果,然后取整的過程,因此只要被除數(shù)足夠小,除數(shù)足夠大,就會(huì)得到零塊。對(duì)各類視頻圖像大量的統(tǒng)計(jì)表明,在圖像壓縮編碼過程中,零塊是大量存在的(當(dāng)然零塊的多少不但要取決于圖像本身屬性,還要取決于QP的大小,即通常QP越大則產(chǎn)生零塊越多),因此零塊預(yù)先判定技術(shù)對(duì)H.264標(biāo)準(zhǔn)壓縮編碼效率的提高作用是相當(dāng)大的。
具體而言,目前在H.264標(biāo)準(zhǔn)中,并沒有完整的可實(shí)施的類似零塊預(yù)先判定技術(shù),但是由于H.264標(biāo)準(zhǔn)是從H.263標(biāo)準(zhǔn)繼承發(fā)展而來(lái)的,因此這里把在H.263標(biāo)準(zhǔn)中適用的零塊預(yù)判方法作簡(jiǎn)要敘述。
在H.263標(biāo)準(zhǔn)的某些實(shí)現(xiàn)中,可以采用的一種零塊預(yù)先判定方法的具體實(shí)現(xiàn)過程如下根據(jù)DCT的數(shù)學(xué)性質(zhì)來(lái)對(duì)每一個(gè)DCT系數(shù)進(jìn)行零預(yù)先判定,由于根據(jù)DCT的定義X(k,l)=2NckclΣi=0N-1Σj=0N-1x(i,j)cos((2i+1)kπ2N)cos((2j+1)lπ2N)]]>其中 (1)上式中,N表示進(jìn)行DCT的圖像塊大小,即DCT處理的圖像塊為N×N塊;在H.263標(biāo)準(zhǔn)中,因?yàn)镈CT處理的圖像塊為8×8塊,因此N=8。
其中x(i,j)中的i=0,1,2,............,N-1,j=0,1,2................,N-1;x(i,j)表示8×8塊中第i行,第j列處的數(shù);i,j為空間域指標(biāo)。
其中X(k,l)中的k=0,1,2,.........,N-1,l=0,1,2,............,N-1;X(k,l)表示DCT系數(shù);k,l為變換域指標(biāo)。
根據(jù)以上關(guān)系,可以推出如下關(guān)系|X(k,l)|≤14Σi=07Σj=07|x(i,j)|,]]>其中k=0,1,2,...,7,l=0,1,2,...,7 (2)上式用x(i,j)的絕對(duì)值表示出了對(duì)X(k,l)絕對(duì)值的一個(gè)上界估計(jì),因此可以利用這個(gè)關(guān)系式,來(lái)給出H.263標(biāo)準(zhǔn)中8×8塊DCT系數(shù)的零預(yù)判條件設(shè)Q表示H.263標(biāo)準(zhǔn)中的量化水平(Quantization Level),那么8×8塊中每個(gè)DCT系數(shù)的量化結(jié)果是|X(k,l)|/2Q的整數(shù)商,即如果|X(k,l)|<2Q,則可以判定DCT系數(shù)X(k,l)的量化結(jié)果為0。
根據(jù)上述關(guān)系式(2),如果有14Σi=07Σj=07|x(i,j)|≤2Q]]>即
Σi=07Σj=07|x(i,j)|≤8Q---(3)]]>就可以判定DCT系數(shù)X(k,l)的量化結(jié)果為0;同時(shí)因?yàn)閄(k,l)中的k=0,1,2,..........,7,l=0,1,2 ,.........,7,所以只要上述關(guān)系式(3)滿足就可以預(yù)先判定整個(gè)8×8塊x=x(0,0),x(0,1),.....,x(0,7)x(1,0),x(1,1),.......,x(1,7).........................x(7,0),x(7,1),.......,x(7,7)]]>的DCT系數(shù)量化結(jié)果為零塊。
因?yàn)樯鲜霈F(xiàn)有技術(shù)方案一般只是針對(duì)H.263標(biāo)準(zhǔn)而實(shí)現(xiàn)的,因此只適合于8×8塊,如對(duì)于一個(gè)視頻圖像序列中的P幀(預(yù)測(cè)幀)或者B幀(后向預(yù)測(cè)幀)中的每一個(gè)MB(16×16塊),在經(jīng)過運(yùn)動(dòng)預(yù)測(cè)后,獲得預(yù)測(cè)殘差圖像塊也為16×16塊,然后將該塊分成4個(gè)8×8塊,再對(duì)每個(gè)8×8塊分別進(jìn)行上述過程的零塊預(yù)先判決處理,即可預(yù)先得到相應(yīng)的零塊。
顯然,上述在H.263標(biāo)準(zhǔn)中適用的零塊預(yù)先判定方法自身存在著如下的缺陷1)由于H.263標(biāo)準(zhǔn)采用的是DCT方式,而H.264標(biāo)準(zhǔn)采用的是4×4整數(shù)變換方式;同時(shí)由于H.263標(biāo)準(zhǔn)采用8×8塊作為變換的單位圖像塊,而H.264標(biāo)準(zhǔn)采用4×4塊作為變換的單位圖像塊,所以H.263標(biāo)準(zhǔn)中適用的零塊預(yù)先判定方法不能很好的適用于H.264標(biāo)準(zhǔn)。
2)H.263標(biāo)準(zhǔn)中適用的零塊預(yù)先判定方法也沒有提出切實(shí)有效的可以避免預(yù)測(cè)模式選擇中的運(yùn)動(dòng)搜索過程的解決方案。因?yàn)樵贖.263標(biāo)準(zhǔn)中,不存在H.264標(biāo)準(zhǔn)中的復(fù)雜預(yù)測(cè)模式選擇,只存在幀間預(yù)測(cè)模式選擇,因此,H.263標(biāo)準(zhǔn)中的零塊預(yù)先判決能夠節(jié)省的只是該圖像塊的DCT和后面的量化計(jì)算量,而對(duì)于DCT前面的運(yùn)動(dòng)搜索過程計(jì)算量節(jié)省很小。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提出一種零塊預(yù)判條件的確定方法及零塊預(yù)先判定方法,以適合于H.264標(biāo)準(zhǔn)壓縮編碼過程中的零塊預(yù)先判定處理,提高H.264標(biāo)準(zhǔn)中的壓縮編碼效率。
為解決上述問題,本發(fā)明提出了一種零塊預(yù)判條件的確定方法,用于H.264壓縮編碼過程中零塊預(yù)判條件的確定,包括步驟A.求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;B.求取所述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;C.根據(jù)所述絕對(duì)誤差和,利用整數(shù)變換理論表達(dá)式,求取所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值的量化值;D.求取使所述直流系數(shù)值的量化值為零的充分條件作為零塊預(yù)判決條件。其中步驟B中所述絕對(duì)誤差和為 所述x(m,n)表示位移估值搜索后幀間預(yù)測(cè)殘差圖像塊的各個(gè)元素值;步驟C中根據(jù)如下公式對(duì)所述預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1]]>式中X4×4為整數(shù)變換前的4×4塊,X′4×4為整數(shù)變換后的4×4塊,H是H.264整數(shù)變換矩陣,HT是H的轉(zhuǎn)置矩陣;步驟C中所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值為 該直流系數(shù)值的量化值為xq(0,0)=sign{Σn=03Σm=03x(m,n)[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>式中xq(0,0)表示直流系數(shù)值的量化值,QM≡QPmod6,QE≡QP/6,QP為量化參數(shù)且QP∈
;函數(shù)sign(x)=-1,x<00,x=01,x>0;]]>f值由視頻編碼器選擇;步驟D中使所述直流系數(shù)值的量化值為零的充分條件是|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0).]]>其中所述A(QM,0,0)值由下列過程確定A(QM,i,j)=M(QM,r),其中i和j分別表示4×4塊中元素的行、列坐標(biāo),其中0≤i,j≤3;r為i,j的函數(shù) M為矩陣M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58258192,3355,52437282,2893,4559;]]>由于A(QM,0,0)中(i,j)為(0,0),得到r=0,查詢M矩陣中第QM行,第0列元素作為A(QM,0,0)的值。
相應(yīng)地,本發(fā)明還提出了一種零塊預(yù)先判定方法,用于H.264壓縮編碼過程中零塊預(yù)先判定處理,包括步驟(1)確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD<(1-f)·217+QE/A(QM,0,0)]]>為零塊預(yù)判條件;其中QM≡QP mod 6,QE≡QP/6,QP為量化參數(shù)且QP∈
,f值由視頻編碼器選擇;(2)針對(duì)當(dāng)前圖像幀中的當(dāng)前4×4塊,找到前幀初始位置的參考4×4塊,求取當(dāng)前塊和初始位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(3)判斷所述絕對(duì)誤差和是否滿足所述零塊預(yù)判條件,如果是,將當(dāng)前4×4塊在當(dāng)前圖像幀中的位置信息記錄在零塊列表中;否則轉(zhuǎn)至(4);
(4)針對(duì)該當(dāng)前4×4塊,在前幀完成運(yùn)動(dòng)搜索,找到前幀最優(yōu)位置的參考4×4塊,求取該當(dāng)前塊和最優(yōu)位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和(5)在對(duì)當(dāng)前圖像幀中的每個(gè)4×4塊與前幀相應(yīng)參考4×4塊之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,分別判斷每個(gè)4×4塊的位置信息是否記錄在所述零塊列表中,對(duì)于位置信息記錄在零塊列表中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理;對(duì)于位置信息未記錄在零塊列表中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
其中所述步驟(4)和(5)之間還包括步驟判斷步驟(4)中所述絕對(duì)誤差和是否滿足所述零塊預(yù)判條件,如果是,將該當(dāng)前塊在當(dāng)前圖像幀中的位置信息記錄在零塊列表中;否則不記錄。
其中所述位置信息是指當(dāng)前塊在當(dāng)前圖像幀中的行、列坐標(biāo)信息。
相應(yīng)地,本發(fā)明提出的另一種零塊預(yù)先判定方法,用于H.264壓縮編碼過程中零塊預(yù)先判定處理,包括步驟(S1)確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD<(1-f)·217+QE/A(QM,0,0)]]>為零塊預(yù)判條件;其中QM≡QPmod6,QE≡QP/6,QP為量化參數(shù)且QP∈
,f值由視頻編碼器選擇;(S2)將當(dāng)前圖像幀在各種幀間預(yù)測(cè)模式下的當(dāng)前塊劃分成4×4塊;(S3)對(duì)于當(dāng)前塊劃分出的每個(gè)4×4塊,分別找到其在前幀初始位置的參考4×4塊,分別求取每個(gè)4×4塊和相應(yīng)初始位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(S4)對(duì)于所述絕對(duì)誤差和滿足所述零塊預(yù)判條件的4×4塊,將其在當(dāng)前圖像幀中的位置信息記錄在零塊列表中,對(duì)于所述絕對(duì)誤差和不滿足所述零塊預(yù)判條件的4×4塊執(zhí)行步驟(S5);(S5)針對(duì)絕對(duì)誤差和不滿足所述零塊預(yù)判條件的每個(gè)4×4塊,分別完成其在前幀的運(yùn)動(dòng)搜索,找到其在前幀最優(yōu)位置的參考4×4塊,分別求取每個(gè)4×4塊和相應(yīng)最優(yōu)位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(S6)在對(duì)當(dāng)前圖像幀中的每個(gè)當(dāng)前塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,判斷當(dāng)前塊劃分出的每個(gè)4×4塊的位置信息是否都記錄在零塊列表中,如果是,對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考4×4塊之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理;否則對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考4×4塊之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
其中所述步驟(S5)和(S6)之間還包括步驟對(duì)于步驟(S5)中絕對(duì)誤差和滿足所述零塊預(yù)判條件的4×4塊,將其在當(dāng)前圖像幀中的位置信息記錄在零塊列表中,對(duì)于絕對(duì)誤差和不滿足所述零塊預(yù)判條件的4×4塊不記錄。
其中步驟(S2)中所述幀間預(yù)測(cè)模式包括Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4;所述步驟(S5)和(S6)之間還包括步驟判斷幀間預(yù)測(cè)模式是否為Inter8×8,Inter4×8和Inter8×4,如果是,轉(zhuǎn)至步驟(S6);否則分別對(duì)當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
本發(fā)明能夠達(dá)到如下的有益效果1)本發(fā)明根據(jù)H.264標(biāo)準(zhǔn)中4×4整數(shù)變換的數(shù)學(xué)理論,推導(dǎo)確定的零塊預(yù)判條件可以很好的適用于H.264標(biāo)準(zhǔn)中的4×4整數(shù)變換過程中的零塊預(yù)先判定,其預(yù)判條件具有很好的判別精確度,能夠較好的保證H.264視頻圖像的圖像質(zhì)量。
2)本發(fā)明根據(jù)確定的零塊預(yù)判條件提出的零塊預(yù)先判定方法可以適用于H.264標(biāo)準(zhǔn)中的任意幀間預(yù)測(cè)模式,只需將非Inter4×4預(yù)測(cè)模式下的單位圖像塊劃分成4×4塊進(jìn)行處理,對(duì)于當(dāng)前每個(gè)4×4塊找到前幀初始位置的參考4×4塊參考4×4塊,計(jì)算當(dāng)前塊和初始?jí)K之間的預(yù)測(cè)殘差圖像塊的絕對(duì)誤差和SAD,在得到SAD滿足預(yù)判條件的情況下,停止當(dāng)前4×4塊的運(yùn)動(dòng)搜索;在得到SAD不滿足預(yù)判條件的情況下,繼續(xù)當(dāng)前4×4塊的運(yùn)動(dòng)搜索,直至找到最優(yōu)位置的參考?jí)K;對(duì)于SAD滿足預(yù)判條件的4×4塊,將其在當(dāng)前幀中的位置信息記錄在零塊列表中,后續(xù)對(duì)于零塊列表中記錄的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理(對(duì)于非Inter4×4預(yù)測(cè)模式下的單位圖像塊劃分出的所有4×4塊的位置信息都要記錄在零塊列表中,才對(duì)當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理),這樣可以節(jié)省H.264標(biāo)準(zhǔn)中幀間預(yù)測(cè)模式選擇和整數(shù)變換及量化的計(jì)算量,從而可以提高H.264標(biāo)準(zhǔn)中壓縮編碼的效率。
圖1是本發(fā)明零塊預(yù)判條件的確定方法的主要實(shí)現(xiàn)原理流程圖;圖2是本發(fā)明零塊預(yù)先判定方法在Inter4×4幀間預(yù)測(cè)模式下的實(shí)現(xiàn)原理流程圖;圖3是本發(fā)明零塊預(yù)先判定方法在Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4幀間預(yù)測(cè)模式下的實(shí)現(xiàn)原理流程圖。
具體實(shí)施例方式
首先,本發(fā)明零塊預(yù)判條件的確定方法提出一種可以適用于H.264標(biāo)準(zhǔn)4×4整數(shù)變換的零塊預(yù)判條件,對(duì)于提出的這個(gè)零塊預(yù)判條件要有如下要求簡(jiǎn)單實(shí)用,判決精確度要高,零塊誤判率要低;而對(duì)于誤判存在兩種情況一種是把本來(lái)應(yīng)該是零塊的圖像塊,未判成零塊(即漏判),這種誤判使得編碼效率提高程度受到影響;另外一種是把本來(lái)不是零塊的圖像塊,誤判為零塊,這種誤判會(huì)導(dǎo)致圖像質(zhì)量明顯下降,因此應(yīng)該要求提出的零塊預(yù)判條件能夠最大限度的避免這兩種誤判情況的出現(xiàn)。
下面結(jié)合各個(gè)附圖對(duì)本發(fā)明零塊預(yù)判條件的確定方法的具體實(shí)施方式
進(jìn)行詳細(xì)闡述。
因?yàn)樵贖.263等基于塊的視頻圖像編碼標(biāo)準(zhǔn)中,通常使用接近最佳K-L(Kahunen-Loeve,一種統(tǒng)計(jì)變換)進(jìn)行圖像變換,對(duì)于一個(gè)隨機(jī)矢量(圖像塊即是一種隨機(jī)矢量),通過該K-L變換,便可以進(jìn)行“白化”(“白化”就是使其自相關(guān)矩陣變成對(duì)角矩陣);對(duì)于任意圖像塊來(lái)說(shuō),利用K-L變換,可以獲得其最佳的近似表示。但是在實(shí)際應(yīng)用中,因?yàn)镵-L變換計(jì)算比較復(fù)雜,因此通常用離散余弦變換(DCT)來(lái)代替K-L變換,并理論證明在一定條件下(一般圖像都滿足),DCT是K-L變換的最優(yōu)近似。但是利用DCT方式進(jìn)行圖像變換,其變換矩陣元素有些卻是無(wú)理數(shù),如果采用浮點(diǎn)運(yùn)算就會(huì)引起變換和反變換之間的誤差。因此H.263標(biāo)準(zhǔn)要求DCT變換和反變換都要有足夠的精確度,來(lái)保證解碼圖像的恢復(fù)精度,并同時(shí)DCT變換和反變換的運(yùn)算量也都比較大。由此H.264標(biāo)準(zhǔn)提出采用4×4整數(shù)變換來(lái)對(duì)圖像塊進(jìn)行變換。
其中,在H.264標(biāo)準(zhǔn)中,對(duì)于4×4整數(shù)變換的定義如下X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1---(4)]]>上式中X4×4(變換前系數(shù)塊)和X′4×4(變換后系數(shù)塊)分別表示幀間預(yù)測(cè)殘差值變換前和變換后的系數(shù)矩陣,H是H.264標(biāo)準(zhǔn)中的整數(shù)變換矩陣,HT是H的轉(zhuǎn)置矩陣。從上式可以看出,H.264標(biāo)準(zhǔn)中的4×4整數(shù)變換運(yùn)算過程中沒有乘法,只有加法和移位運(yùn)算,避免了正反變換過程中浮點(diǎn)運(yùn)算的精度匹配問題,降低了解碼器的運(yùn)算復(fù)雜度。此外,H.264標(biāo)準(zhǔn)中的4×4整數(shù)變換有利于使用單指令多數(shù)據(jù)流(SIMD,Single Instruction Multiple Data)技術(shù)來(lái)對(duì)算法進(jìn)行并行處理的優(yōu)化。
同時(shí)為了避免量化過程中的除法運(yùn)算,H.264標(biāo)準(zhǔn)使用下面的量化公式對(duì)整數(shù)變換后的變換系數(shù)進(jìn)行量化
Xq(i,j)=sign{XT(i,j)}[(|XT(i,j)|A(QM,i,j)+f217+QE)>>(17+QE)]---(5)]]>上式中,QM≡QP mod 6,QE≡QP/6,QP為量化參數(shù)且QP∈
,函數(shù)sign(x)=-1,x<00,x=01,x>0]]>其中i和j分別表示4×4塊中某個(gè)元素的行、列坐標(biāo),其中0≤i,j≤3;xT(i,j)和Xq(i,j)分別表示整數(shù)變換系數(shù)量化前和量化后的值;A(QM,i,j)是H.264標(biāo)準(zhǔn)給出的量化變化因子,它的取值依賴于變換系數(shù)的空間位置;而參數(shù)㈠勺取值由視頻編碼器來(lái)進(jìn)行選擇,f的典型取值是[O,0.5],其作用是在截?cái)嗵幚?截?cái)嗵幚砭褪峭ǔKf(shuō)的四舍五入)時(shí)保持量化精度。
其中A(QM,i,j)=M(QM,r) (6)上式(6)中r是i,j的函數(shù),定義如下 M是一個(gè)6×3的矩陣,定義如下M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58258192,3355,52437282,2893,4559---(8)]]>因此根據(jù)(i,j)的值計(jì)算量化變換因子A(QM,i,j)的過程是首先根據(jù)式(7)計(jì)算r,然后根據(jù)式(6)查詢式(8),得到M矩陣的第QM行,第r列元素作為量化變換因子A(QM,i,j)的值。
上述已經(jīng)介紹了H.264標(biāo)準(zhǔn)中的4×4整數(shù)變換的標(biāo)準(zhǔn)變換過程和量化過程。請(qǐng)繼續(xù)參閱圖1,該圖是本發(fā)明零塊預(yù)判條件的確定方法的主要實(shí)現(xiàn)原理流程圖;其主要實(shí)現(xiàn)過程如下步驟S10,求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;步驟S20,求取上述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD,SAD=Σn=03Σm=03|x(m,n)|,]]>其中x(m,n)表示位移估值搜索后幀間預(yù)測(cè)殘差圖像塊的各個(gè)元素值;步驟S30,根據(jù)步驟S20中求取的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的SAD,利用前述整數(shù)變換理論表達(dá)式,求取步驟S10中得到的預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值XT(0,0),XT(0,0)=Σn=03Σm=03x(m,n);]]>然后繼續(xù)求取該直流系數(shù)值XT(0,0)的量化值為Xq(0,0)=sign{Σn=03Σm=03x(m,n)}[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>步驟S40,根據(jù)H.264標(biāo)準(zhǔn)中的整數(shù)變換性質(zhì),在4×4整數(shù)變換系數(shù)中,其直流系數(shù)值XT(0,0)的絕對(duì)值最大,這里假定如果變換系數(shù)量化前的值XT(i,j)的直流系數(shù)值XT(0,0)為0,則XT(i,j)中所有的交流系數(shù)值也均為零,即整個(gè)圖像塊的變換系數(shù)值為全零,該塊即為零塊。因此依據(jù)此原理,只要保證一個(gè)預(yù)測(cè)殘差圖像塊的變換系數(shù)中直流系數(shù)值的量化值為零,就可以滿足整個(gè)圖像塊量化結(jié)果為零。由前述式(5)可知,直流系數(shù)值XT(0,0)的量化值為零的充分條件是|Σn=03Σm=03x(m,n)|<(1-f)·217+QE/A(QM,0,0)---(9)]]>又由于|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|,]]>因此可以得到直流系數(shù)值XT(0,0)的量化值為零的充分條件為Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)---(10)]]>不等式(10)中不等號(hào)右邊的量其實(shí)是一個(gè)閾值,可以用一個(gè)符號(hào)TZB來(lái)表示,ZB表示零塊(Zero Block),即TZB=(1-f)·217+QE/A(QM,0,0)]]>上述不等式之間替換放大,條件加強(qiáng),即如果式(9)是直流系數(shù)值XT(0,0)的量化值為零的充分條件,則式(10)也是其充分條件。
根據(jù)上述敘述原理,這里即可以將上述式(10)的判決條件作為H.264標(biāo)準(zhǔn)中整數(shù)變換的零塊預(yù)判條件。
利用上述已經(jīng)推導(dǎo)確定的用于H.264標(biāo)準(zhǔn)中整數(shù)變換的零塊預(yù)判條件Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,,0,0)]]>本發(fā)明進(jìn)而又提出了相應(yīng)的零塊預(yù)先判定方法,該方法針對(duì)于H.264標(biāo)準(zhǔn)中復(fù)雜的幀間預(yù)測(cè)模式選擇過程,利用上述確定的零塊預(yù)判條件,將零塊判決處理環(huán)節(jié)提前(即不是僅在幀間預(yù)測(cè)都處理完成后,并在變換處理之前進(jìn)行零塊判決,而是要將零塊判決過程提前到幀間預(yù)測(cè)模式選擇過程當(dāng)中去),這樣就可以節(jié)省幀間預(yù)測(cè)模式選擇過程的計(jì)算量,進(jìn)一步提高H.264標(biāo)準(zhǔn)的壓縮編碼效率。
下面再結(jié)合各個(gè)附圖對(duì)本發(fā)明零塊預(yù)先判定方法的具體實(shí)施過程進(jìn)行詳細(xì)的闡述。
通過上述過程的推導(dǎo),確定了在H.264標(biāo)準(zhǔn)中的零塊預(yù)判條件為Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0),]]>可以看出,該不等式的左邊項(xiàng)即為4×4預(yù)測(cè)殘差圖像塊的絕對(duì)誤差和SAD值。因此,對(duì)于H.264標(biāo)準(zhǔn)中的Inter4×4幀間預(yù)測(cè)模式,只需要計(jì)算4×4預(yù)測(cè)殘差圖像塊的SAD,就可以進(jìn)行零塊預(yù)先判決了。在Inter4×4運(yùn)動(dòng)預(yù)測(cè)中,當(dāng)前幀的當(dāng)前4×4塊首先從前幀對(duì)應(yīng)位置的4×4參考?jí)K開始進(jìn)行運(yùn)動(dòng)搜索,該位置叫做初始位置。如果在初始位置,當(dāng)前4×4塊和前幀初始位置的4×4參考?jí)K之間的預(yù)測(cè)殘差圖像塊的SAD已經(jīng)符合上述零塊預(yù)判條件,那么即使初始位置的參考?jí)K不是運(yùn)動(dòng)預(yù)測(cè)的最優(yōu)位置,也沒有關(guān)系,因?yàn)橄鄬?duì)于前幀最優(yōu)位置的參考?jí)K,其SAD比相對(duì)于初始位置的參考?jí)K的SAD更小,所以如果相對(duì)于初始位置的參考?jí)K的SAD能夠滿足零塊預(yù)判條件,則最優(yōu)位置的參考?jí)K的SAD也一定滿足零塊預(yù)判條件,于是就可以確定當(dāng)前4×4塊相對(duì)于前幀最優(yōu)位置的參考?jí)K之間的預(yù)測(cè)殘差圖像塊量化后為全零塊,而相對(duì)于前幀初始位置的參考?jí)K之間的預(yù)測(cè)殘差圖像塊量化后也為全零塊。既然相對(duì)于初始位置和最優(yōu)位置都是全零塊,對(duì)于壓縮編碼結(jié)果都無(wú)影響,因此就可以直接用前幀初始位置的4×4參考?jí)K來(lái)作為零塊預(yù)判的基礎(chǔ),而不必一定要找到前幀最優(yōu)位置的參考?jí)K。因此,只要相對(duì)于前幀初始位置的參考?jí)K計(jì)算出的SAD滿足零塊預(yù)判條件,就可以結(jié)束對(duì)當(dāng)前4×4塊的運(yùn)動(dòng)搜索了,不必要搜索到前幀最優(yōu)位置的參考?jí)K,由此可以簡(jiǎn)化H.264標(biāo)準(zhǔn)的運(yùn)動(dòng)搜索過程。
請(qǐng)參閱圖2,該圖是本發(fā)明零塊預(yù)先判定方法在Inter4×4幀間預(yù)測(cè)模式下的實(shí)現(xiàn)原理流程圖;其主要實(shí)現(xiàn)過程如下步驟S100,按照上述過程確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>為H.264整數(shù)變換過程中的零塊預(yù)判條件;式中QM≡QPmod6,QE≡QP/6,QP為量化參數(shù)且QP∈
,f值由視頻編碼器選擇,其他參數(shù)的確定參照上述描述;步驟S110,在Inter4×4幀間預(yù)測(cè)模式下,針對(duì)當(dāng)前圖像幀中的當(dāng)前4×4塊,找到前幀初始位置的參考4×4塊;步驟S120,求取當(dāng)前塊和初始位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的SAD0,0;步驟S130,判斷步驟S120求得的SAD0,0是否滿足零塊預(yù)判條件SAD<TZB,如果是,執(zhí)行步驟S140;否則執(zhí)行步驟S150;
步驟S140,終止當(dāng)前4×4塊的運(yùn)動(dòng)搜索過程,將當(dāng)前4×4塊在當(dāng)前圖像幀中的位置信息記錄在零塊列表Lx,y中,其中x、y表示在當(dāng)前幀中4×4塊位置的行、列坐標(biāo),然后執(zhí)行步驟S180;步驟S150,針對(duì)該當(dāng)前4×4塊,繼續(xù)完成其在前幀的運(yùn)動(dòng)搜索過程,找到前幀最優(yōu)位置的參考4×4塊;步驟S160,求取該當(dāng)前4×4塊和最優(yōu)位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的SAD;步驟S170,判斷步驟S160中求得的SAD是否滿足所述零塊預(yù)判條件SAD<TZB,如果是,轉(zhuǎn)至執(zhí)行步驟S140;否則不進(jìn)行記錄,繼續(xù)執(zhí)行步驟S180;步驟S180,在對(duì)當(dāng)前圖像幀中的每個(gè)4×4塊與其前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,分別判斷每個(gè)4×4塊的位置信息是否記錄在上述的零塊列表Lx,y中,處理過程是對(duì)于位置信息記錄在零塊列表Lx,y中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理,直接對(duì)該4×4塊取全零值;對(duì)于位置信息未記錄在零塊列表Lx,y中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊要進(jìn)行整數(shù)變換和量化處理。
上述本發(fā)明零塊預(yù)先判定方法針對(duì)H.264中的Inter4×4幀間預(yù)測(cè)模式下的零塊預(yù)先判決算法可以大大減少4×4塊運(yùn)動(dòng)搜索時(shí)SAD的計(jì)算次數(shù),同時(shí)還減少了整數(shù)變換和量化的運(yùn)算量,且對(duì)Inter4×4幀間預(yù)測(cè)模式的編碼性能基本沒有任何影響。
由于H.264標(biāo)準(zhǔn)支持不同大小和形狀的編碼塊,因此可選的幀間預(yù)測(cè)模式除Inter 4×4幀間預(yù)測(cè)模式外,還包括以下幀間預(yù)測(cè)模式Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4。但是這些幀間預(yù)測(cè)模式的預(yù)測(cè)過程和Inter4×4幀間預(yù)測(cè)模式的預(yù)測(cè)過程是類似的,都存在前幀從一個(gè)初始位置出發(fā)進(jìn)行搜索的過程,因此如果能夠在初始位置上進(jìn)行零塊預(yù)先判決,都可以根據(jù)判決結(jié)果決定是否終止對(duì)當(dāng)前塊的搜索過程。由此,可以借助于上述Inter4×4幀間預(yù)測(cè)模式下的零塊預(yù)先判定方法,把其他幀間預(yù)測(cè)模式下的大于4×4的塊,分割成多個(gè)4×4塊,然后對(duì)其中的每個(gè)4×4塊,分別應(yīng)用上述零塊預(yù)判條件SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>來(lái)進(jìn)行判決。
請(qǐng)參閱圖3,該圖是本發(fā)明零塊預(yù)先判定方法在Interl6×16、Interl6×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4幀間預(yù)測(cè)模式下的實(shí)現(xiàn)原理流程圖;其主要實(shí)現(xiàn)過程如下步驟S200,確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>為H.264整數(shù)變換過程中的零塊預(yù)判條件;式中QM≡QPmod6,QE≡QP/6,QP為量化參數(shù)且QP∈[O,51],f值由視頻編碼器選擇,其他參數(shù)的確定參照上述描述;步驟S210,在上述非Inter4×4幀間預(yù)測(cè)模式下,將當(dāng)前圖像幀在各種幀間預(yù)測(cè)模式下的當(dāng)前塊一律劃分成多個(gè)4×4塊,這樣就可以對(duì)不同幀間預(yù)測(cè)模式下的每個(gè)4×4塊使用上述零塊預(yù)判條件進(jìn)行預(yù)先零判決;步驟S220,對(duì)于當(dāng)前塊劃分出的每個(gè)4×4塊,分別找到其在前幀初始位置的參考4×4塊;步驟S230,分別求取每個(gè)4×4塊和相應(yīng)初始位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的SAD0,0;步驟S240,判斷步驟S230中所求得的SAD0,0是否滿足上述零塊預(yù)判條件SAD<TZB,對(duì)于滿足條件的4×4塊執(zhí)行步驟S250;對(duì)于不滿足條件的4×4塊執(zhí)行步驟S260;步驟S250,對(duì)于滿足條件的4×4塊,將其在當(dāng)前圖像幀中的位置信息記錄在零塊列表Lx,y中,其中x、y表示在當(dāng)前幀中4×4塊位置的行、列坐標(biāo),然后執(zhí)行步驟S290;步驟S260,針對(duì)SAD0,0不滿足上述零塊預(yù)判條件SAD<TZB的每個(gè)4×4塊,分別完成其在前幀的運(yùn)動(dòng)搜索過程,以找到其在前幀最優(yōu)位置的參考4×4塊;步驟S270,分別求取每個(gè)4×4塊和相應(yīng)最優(yōu)位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的SAD;步驟S280,判斷步驟S270中所求得的SAD是否滿足零塊預(yù)判條件SAD<TZB,對(duì)于滿足零塊預(yù)判條件的4×4塊,轉(zhuǎn)至執(zhí)行步驟S250;對(duì)于不滿足零塊預(yù)判條件的4×4塊不進(jìn)行記錄,直接執(zhí)行步驟S290;步驟S290,在對(duì)當(dāng)前圖像幀中的每個(gè)當(dāng)前塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,判斷當(dāng)前塊劃分出的每個(gè)4×4塊的位置信息是否都記錄在零塊列表Lx,y中,如果是,執(zhí)行步驟S300;否則執(zhí)行步驟S310;步驟S300,終止對(duì)當(dāng)前塊的運(yùn)動(dòng)搜索過程,對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與其前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不再進(jìn)行整數(shù)變換和量化處理,直接取為全零值;例如在Inter16×8幀間預(yù)測(cè)模式下,如果在該模式下每個(gè)當(dāng)前16×8塊劃分出的8個(gè)4×4塊均滿足上述零塊預(yù)判條件,則可以提前終止當(dāng)前16×8塊的運(yùn)動(dòng)搜索過程,即可以直接判決該16×8塊為全零塊。
步驟S310,對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與其前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
這里,為了更近一步確保H.264圖像的編碼質(zhì)量,在步驟S280和S290之間還要判斷當(dāng)前的幀間預(yù)測(cè)模式是否是Inter8×8,Inter4×8和Inter8×4,如果是,才執(zhí)行步驟S290;否則還要分別對(duì)當(dāng)前塊劃分出的每個(gè)4×4塊與其前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
為了驗(yàn)證本發(fā)明方案的技術(shù)效果,下面使用三個(gè)典型的標(biāo)準(zhǔn)視頻圖像序列“foreman”(運(yùn)動(dòng)程度劇烈)、“news”(中等程度運(yùn)動(dòng))、“claire”(運(yùn)動(dòng)程度較小)共300個(gè)圖像幀進(jìn)行測(cè)試,圖像格式統(tǒng)一采用QCIF(Quarter CommonInterchange Format),Y∶U∶V是4∶2∶0;實(shí)驗(yàn)平臺(tái)是Pentium IV、主頻為2GHz的計(jì)算機(jī),其中參數(shù)f的取值選為0.79。
下表1給出了在Inter4×4幀間預(yù)測(cè)模式下,使用不同的量化參數(shù)QP時(shí),零塊預(yù)先判定方法的實(shí)驗(yàn)結(jié)果。從該表可以看出,隨著QP的增大,使用本發(fā)明方法后,全零4×4塊最多可占80%以上,當(dāng)然全零塊所占比例還是與圖像序列的內(nèi)容和QP的取值相關(guān)的。另外采用本發(fā)明方案后,零塊誤判率非常低,這樣對(duì)H.264標(biāo)準(zhǔn)的編碼性能基本是沒有影響的。
表1不同圖像序列在Inter4×4幀間預(yù)測(cè)模式下的全零塊所占百分比
由表1可見,圖像運(yùn)動(dòng)程度越劇烈,全零塊所占比例越小(因?yàn)閹g預(yù)測(cè)的全零殘差圖像塊代表前后幀對(duì)應(yīng)塊之間的變化非常小,這說(shuō)明圖像運(yùn)動(dòng)程度不大)。在視頻圖像中,除了動(dòng)作電影視頻外,其他視頻圖像運(yùn)動(dòng)量都是中等,甚至是偏低的,但即使是動(dòng)作電影視頻,其中真正大運(yùn)動(dòng)量的鏡頭也只是其中的一部分,而如一般的多媒體視頻圖像,如視頻會(huì)議等,都是運(yùn)動(dòng)量比較低的視頻圖像。也就是說(shuō),對(duì)于一般的視頻應(yīng)用,視頻圖像序列中都有比較多的全零塊存在。
下表2給出了將本發(fā)明零塊預(yù)先判定方法應(yīng)用于H.264標(biāo)準(zhǔn)的所有幀間預(yù)測(cè)模式的實(shí)驗(yàn)結(jié)果,該表比較了不使用零塊預(yù)先判定和使用本發(fā)明零塊預(yù)先判定方法后的編碼性能,壓縮效率和編碼速度。
表2采用本發(fā)明方法后編碼速度的提高效果
從表2可以看出,對(duì)于所有的幀間預(yù)測(cè)模式采用本發(fā)明方法后,與采用本發(fā)明方法前相比,編碼速度最多可提高58.4%;另外,解碼恢復(fù)圖像的平均PSNR下降不到0.1dB,即從保持圖像質(zhì)量來(lái)說(shuō),幾乎沒有降低,而編碼比特?cái)?shù)還會(huì)略有減少(即壓縮編碼效率會(huì)略有提高)。
由此可見,采用本發(fā)明方法后,將使得H.264標(biāo)準(zhǔn)在實(shí)現(xiàn)過程中,編碼速度會(huì)有比較大的提高,這將能夠降低多媒體通信產(chǎn)品的成本,且提高多媒體通信產(chǎn)品的性能,從而提高了多媒體通信產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種零塊預(yù)判條件的確定方法,用于H.264壓縮編碼過程中零塊預(yù)判條件的確定,其特征在于,包括步驟A.求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;B.求取所述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;C.根據(jù)所述絕對(duì)誤差和,利用整數(shù)變換理論表達(dá)式,求取所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值的量化值;D.求取使所述直流系數(shù)值的量化值為零的充分條件作為零塊預(yù)判決條件。
2.根據(jù)權(quán)利要求1所述的零塊預(yù)判條件的確定方法,其特征在于,步驟B中所述絕對(duì)誤差和為 所述x(m,n)表示位移估值搜索后幀間預(yù)測(cè)殘差圖像塊的各個(gè)元素值;步驟C中根據(jù)如下公式對(duì)所述預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1]]>式中X4×4為整數(shù)變換前的4×4塊,X4×4′為整數(shù)變換后的4×4塊,H是H.264整數(shù)變換矩陣,HT是H的轉(zhuǎn)置矩陣;步驟C中所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值為 該直流系數(shù)值的量化值為xq(0,0)=sign{Σn=03Σm=03x(m,n)}[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>式中xq(0,0)表示直流系數(shù)值的量化值,QM≡QP mod 6,QE≡QP/6,QP為量化參數(shù)且QP∈
;函數(shù)sign(x)=-1,x<00,x=01,x>0;]]>f值由視頻編碼器選擇;步驟D中使所述直流系數(shù)值的量化值為零的充分條件是|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0).]]>
3.根據(jù)權(quán)利要求2所述的零塊預(yù)判條件的確定方法,其特征在于,所述A(QM,0,0)值由下列過程確定A(QM,i,j)=M(QM,r),其中i和j分別表示4×4塊中元素的行、列坐標(biāo),其中0≤i,j≤3;r為i,j的函數(shù) M為矩陣M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58528192,3355,52437282,2893,4559;]]>由于A(QM,0,0)中(i,j)為(0,0),得到r=0,查詢M矩陣中第QM行,第0列元素作為A(QM,0,0)的值。
4.一種零塊預(yù)先判定方法,用于H.264壓縮編碼過程中零塊預(yù)先判定處理,其特征在于,包括步驟(1)確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD<(1-f)·217+QE/A(QM,0,0)為零塊預(yù)判條件;其中QM≡QP mod 6,QE≡QP/6,QP為量化參數(shù)且QP∈
,f值由視頻編碼器選擇;(2)針對(duì)當(dāng)前圖像幀中的當(dāng)前4×4塊,找到前幀初始位置的參考4×4塊,求取當(dāng)前塊和初始位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(3)判斷所述絕對(duì)誤差和是否滿足所述零塊預(yù)判條件,如果是,將當(dāng)前4×4塊在當(dāng)前圖像幀中的位置信息記錄在零塊列表中;否則轉(zhuǎn)至(4);(4)針對(duì)該當(dāng)前4×4塊,在前幀完成運(yùn)動(dòng)搜索,找到前幀最優(yōu)位置的參考4×4塊,求取該當(dāng)前塊和最優(yōu)位置參考?jí)K之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(5)在對(duì)當(dāng)前圖像幀中的每個(gè)4×4塊與前幀相應(yīng)參考4x4塊之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,分別判斷每個(gè)4×4塊的位置信息是否記錄在所述零塊列表中,對(duì)于位置信息記錄在零塊列表中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理;對(duì)于位置信息未記錄在零塊列表中的4×4塊,對(duì)其與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
5.根據(jù)權(quán)利要求4所述的零塊預(yù)先判定方法,其特征在于,所述步驟(4)和(5)之間還包括步驟判斷步驟(4)中所述絕對(duì)誤差和是否滿足所述零塊預(yù)判條件,如果是,將該當(dāng)前塊在當(dāng)前圖像幀中的位置信息記錄在零塊列表中;否則不記錄。
6.根據(jù)權(quán)利要求4或5所述的零塊預(yù)先判定方法,其特征在于,步驟(1)中零塊預(yù)判條件的建立過程包括步驟(11)求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;(12)求取所述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(13)根據(jù)所述絕對(duì)誤差和,利用整數(shù)變換理論表達(dá)式,求取所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值的量化值;(14)求取使所述直流系數(shù)值的量化值為零的充分條件作為零塊預(yù)判決條件。
7.根據(jù)權(quán)利要求4或5所述的零塊預(yù)先判定方法,其特征在于,所述位置信息是指當(dāng)前塊在當(dāng)前圖像幀中的行、列坐標(biāo)信息。
8.一種零塊預(yù)先判定方法,用于H.264壓縮編碼過程中零塊預(yù)先判定處理,其特征在于,包括步驟(S1)確定預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和SAD<(1-f)·217+QE/A(QM,0,0)為零塊預(yù)判條件;其中QM≡QP mod 6,QE≡QP/6,QP為量化參數(shù)且QP∈
,f值由視頻編碼器選擇;(S2)將當(dāng)前圖像幀在各種幀間預(yù)測(cè)模式下的當(dāng)前塊劃分成4×4塊;(S3)對(duì)于當(dāng)前塊劃分出的每個(gè)4×4塊,分別找到其在前幀初始位置的參考4×4塊,分別求取每個(gè)4×4塊和相應(yīng)初始位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(S4)對(duì)于所述絕對(duì)誤差和滿足所述零塊預(yù)判條件的4×4塊,將其在當(dāng)前圖像幀中的位置信息記錄在零塊列表中,對(duì)于所述絕對(duì)誤差和不滿足所述零塊預(yù)判條件的4×4塊執(zhí)行步驟(S5);(S5)針對(duì)絕對(duì)誤差和不滿足所述零塊預(yù)判條件的每個(gè)4×4塊,分別完成其在前幀的運(yùn)動(dòng)搜索,找到其在前幀最優(yōu)位置的參考4×4塊,分別求取每個(gè)4×4塊和相應(yīng)最優(yōu)位置參考4×4塊之間的預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(S6)在對(duì)當(dāng)前圖像幀中的每個(gè)當(dāng)前塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化過程中,判斷當(dāng)前塊劃分出的每個(gè)4×4塊的位置信息是否都記錄在零塊列表中,如果是,對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考4×4塊之間的預(yù)測(cè)殘差圖像塊不進(jìn)行整數(shù)變換和量化處理;否則對(duì)該當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考4×4塊之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
9.根據(jù)權(quán)利要求8所述的零塊預(yù)先判定方法,其特征在于,所述步驟(S5)和(S6)之間還包括步驟對(duì)于步驟(S5)中絕對(duì)誤差和滿足所述零塊預(yù)判條件的4×4塊,將其在當(dāng)前圖像幀中的位置信息記錄在零塊列表中,對(duì)于絕對(duì)誤差和不滿足所述零塊預(yù)判條件的4×4塊不記錄。
10.根據(jù)權(quán)利要求8或9所述的零塊預(yù)先判定方法,其特征在于,步驟(S1)中零塊預(yù)判條件的建立過程包括(S11)求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;(S12)求取所述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;(S13)根據(jù)所述絕對(duì)誤差和,利用整數(shù)變換理論表達(dá)式,求取所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值的量化值;(S14)求取使所述直流系數(shù)值的量化值為零的充分條件作為零塊預(yù)判決條件。
11.根據(jù)權(quán)利要求8或9所述的零塊預(yù)先判定方法,其特征在于,所述位置信息是指4×4塊在當(dāng)前圖像幀中的行、列坐標(biāo)信息。
12.根據(jù)權(quán)利要求8或9所述的零塊預(yù)先判定方法,其特征在于,步驟(S2)中所述幀間預(yù)測(cè)模式包括Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4;所述步驟(S5)和(S6)之間還包括步驟判斷幀間預(yù)測(cè)模式是否為Inter8×8,Inter4×8和Inter8×4,如果是,轉(zhuǎn)至步驟(S6);否則分別對(duì)當(dāng)前塊劃分出的每個(gè)4×4塊與前幀相應(yīng)參考?jí)K之間的預(yù)測(cè)殘差圖像塊進(jìn)行整數(shù)變換和量化處理。
全文摘要
本發(fā)明提出了一種零塊預(yù)判條件的確定方法,包括求取視頻圖像4×4塊與前幀參考4×4塊之間的預(yù)測(cè)殘差圖像塊;求取所述預(yù)測(cè)殘差圖像塊對(duì)應(yīng)的絕對(duì)誤差和;根據(jù)所述絕對(duì)誤差和,利用整數(shù)變換理論表達(dá)式,求取所述預(yù)測(cè)殘差圖像塊整數(shù)變換后的直流系數(shù)值的量化值;求取使所述直流系數(shù)值的量化值為零的充分條件作為零塊預(yù)判決條件。相應(yīng)地,本發(fā)明還提出了一種零塊預(yù)先判定方法。本發(fā)明適于H.264標(biāo)準(zhǔn)壓縮編碼過程中的零塊預(yù)先判定處理,提高H.264標(biāo)準(zhǔn)中的壓縮編碼效率。
文檔編號(hào)H04N7/32GK1770863SQ200410086869
公開日2006年5月10日 申請(qǐng)日期2004年11月2日 優(yōu)先權(quán)日2004年11月2日
發(fā)明者羅忠, 宋彬, 常義林, 周寧兆 申請(qǐng)人:華為技術(shù)有限公司