專利名稱:H.264/avc視頻編碼中速率和失真的快速估計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻壓縮編碼技術(shù)領(lǐng)域,針對(duì)H.264/AVC視頻編碼標(biāo)準(zhǔn),提出了一種新的速率和失真快速估計(jì)方法,有效提高了率失真意義下宏塊編碼模式選擇的速度,適用于新一代視頻壓縮編碼。
背景技術(shù):
在最新的視頻編碼標(biāo)準(zhǔn)H.264/AVC中,提出了多種編碼模式以提高編碼效率,包括16×16、16×8、8×16、8×8、8×4、4×8、4×4等7種塊大小的幀間編碼模式和4×4塊的9種、16×16塊的4種幀內(nèi)編碼模式等等。對(duì)于每個(gè)宏塊(macroblock,MB),需要選擇其最合適的編碼模式。選擇的標(biāo)準(zhǔn)是在各種編碼模式下編碼該宏塊的率失真性能。在H.264/AVC的參考軟件JM中,計(jì)算速率R和失真D,需要針對(duì)每種編碼模式,進(jìn)行變換和量化,之后進(jìn)行編碼計(jì)算相應(yīng)的速率;然后,完成反量化和逆變換,計(jì)算相應(yīng)的失真。這些操作帶來(lái)了很大的復(fù)雜度,使得率失真優(yōu)化的編碼模式選擇在實(shí)際應(yīng)用中在運(yùn)算復(fù)雜度方面的代價(jià)較大。
為了降低率失真優(yōu)化的復(fù)雜度,Quqi Chen等提出了一種針對(duì)H.264/AVC 4×4 CAVLC編碼的快速速率估計(jì)算法。該算法根據(jù)變換系數(shù)量化后的值的絕對(duì)值和(SAD),非零系數(shù)數(shù)目(TotalCoeff)以及零游程之和(TotalRun),利用一個(gè)簡(jiǎn)單公式R=SAD+3×TotalCoeff+TotalRun估計(jì)編碼速率。對(duì)于一些特殊情況,引入了一系列修正步驟進(jìn)行調(diào)整。其研究結(jié)果表明,該速率估計(jì)算法能夠提供很高的預(yù)測(cè)精度,基本保持率失真優(yōu)化模式選擇的性能,并且大大降低了速率計(jì)算的復(fù)雜度。
然而,上述研究沒(méi)有給出對(duì)失真的估計(jì)算法。因此,反量化和逆變換的過(guò)程仍不可避免。另一方面,上述速率估計(jì)算法對(duì)于不同的視頻序列在不同的編碼條件下是固定的,沒(méi)有提出自適應(yīng)的方法。
發(fā)明內(nèi)容
本發(fā)明針對(duì)H.264/AVC編碼中的變換和量化,提出了一種速率和失真的快速估計(jì)方法。利用該方法,可以在率失真計(jì)算中省去反量化和逆變換,從而大幅度降低率失真優(yōu)化模式選擇的計(jì)算量。
本發(fā)明提出的快速率失真估計(jì)方法包括以下步驟(1)針對(duì)每一種備選編碼模式,對(duì)當(dāng)前編碼宏塊進(jìn)行運(yùn)動(dòng)估計(jì),可采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的全搜索或快速搜索的方法進(jìn)行;得到殘差信號(hào)Sres=|Sorig-Sref|,Sorig為原始編碼塊信號(hào),Sref為運(yùn)動(dòng)估計(jì)所確定的參考?jí)K信號(hào);(2)在每一種編碼模式下,對(duì)步驟(1)中得到的亮度殘差信號(hào)Sres分別進(jìn)行8×8和4×4整數(shù)變換,整數(shù)變換采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的方法,公式為X=CfSresCfT,]]>X為變換后的系數(shù)矩陣,Cf為標(biāo)準(zhǔn)中規(guī)定的變換矩陣;對(duì)變換后的系數(shù)X按照H.264/AVC標(biāo)準(zhǔn)中規(guī)定的方法進(jìn)行量化,得到量化后的系數(shù)矩陣Y;(3)根據(jù)步驟(2)中得到變換系數(shù)矩陣X和量化系數(shù)矩陣Y來(lái)估計(jì)失真D,針對(duì)Y(i,j)是否為零采取不同的失真估計(jì)方法如果量化系數(shù)Y(i,j)為0,那么失真D就等于量化誤差,在變化域中即為X2(i,j)/W(i,j),其中(i,j)表示像素點(diǎn)的位置,W(i,j)為系數(shù)在各變換域位置的能量增益,對(duì)于8×8和4×4變換,對(duì)應(yīng)的增益矩陣分別為19173017191730171715271517152715302748273027482717152715171527151917301719173017171527151715271530274827302748271715271517152715]]>和75307530301230127530753030123012;]]>如果量化系數(shù)Y(i,j)不為0,那么根據(jù)均勻標(biāo)量量化理論,失真D估算為量化步長(zhǎng)Δ平方值的函數(shù)Δ2/12;總體的失真D即為D=Σ{i,j|Y(i,j)=0}X2(i,j)/W(i,j)+Σ{i,j|Y(i,j)≠0}Δ2/12;]]>(4)根據(jù)步驟(2)中得到的量化系數(shù)矩陣Y估計(jì)速率R,具體方法為針對(duì)每個(gè)4×4變換塊,若采用的是8×8的整型變換,則分解成4個(gè)4×4的塊,再對(duì)每個(gè)4×4塊量化后的系數(shù)按照標(biāo)準(zhǔn)的方法進(jìn)行游程掃描,掃描順序的一個(gè)實(shí)例如附圖2所示;掃描后首先得到所有非零系數(shù)數(shù)目TC;接著得到每一個(gè)非零系數(shù)所對(duì)應(yīng)的零游程值,即該非零系數(shù)前面0的個(gè)數(shù),并計(jì)算所有這些零游程值之和TR;再計(jì)算非零系數(shù)的絕對(duì)值和SAD=Σ{i,j|Y(i,j)≠0}|Y(i,j)|;]]>根據(jù)此三個(gè)參數(shù)估計(jì)編碼速率R=SAD+(f(TC,TR)/24),其中查找表函數(shù)f(TC,TR)度量了TC與TR對(duì)速率的影響,對(duì)于4×4變換塊有0≤TC≤16,0≤TR≤16-TC,該查找表的結(jié)構(gòu)如附圖3所示,共有17(17+1)/2=136項(xiàng),表內(nèi)的數(shù)據(jù)為其初始值,設(shè)定為f0(TC,TR)=3×TC+TR;(5)針對(duì)步驟(2)中得到的亮度信號(hào)殘差變換系數(shù)X和量化系數(shù)Y,采取步驟(3)和步驟(4)的計(jì)算方法,分別對(duì)8×8和4×4兩種整數(shù)變換得到的速率R和失真D進(jìn)行估計(jì),并根據(jù)C=D+λR計(jì)算相應(yīng)的對(duì)亮度信號(hào)殘差系數(shù)的編碼代價(jià)C,其中λ=0.85×2QP-123,]]>QP為量化參數(shù);(6)對(duì)于每種編碼模式,比較步驟(5)中分別采用8×8和4×4兩種整數(shù)變換對(duì)于亮度殘差信號(hào)的編碼代價(jià)C,選取編碼代價(jià)C較小的作為當(dāng)前編碼模式的最優(yōu)變換,該模式的亮度殘差信號(hào)R的編碼代價(jià)C即為二者中的較小值;(7)步驟(6)得到了亮度殘差信號(hào)的最優(yōu)變換和編碼代價(jià)C;下面按照步驟(2)(3)(4)(5)重新計(jì)算色度殘差信號(hào)的編碼代價(jià)C′(色度信號(hào)只采用4×4整型變換);再結(jié)合相應(yīng)的預(yù)測(cè)信息編碼代價(jià)C″=λRpre,其中Rpre為當(dāng)前預(yù)測(cè)信息的編碼碼率,λ同步驟(5),若當(dāng)前的原始預(yù)測(cè)信息為code_num,采用對(duì)數(shù)哥倫布碼編碼,其編碼碼字為[M zeros][1][INFO],且M=log2(code_num+1),INFO=code_num+1-2M,為下取整,預(yù)測(cè)信息的編碼速率為Rpre=2M+1;三者之和得到每種編碼模式的最終編碼代價(jià)Ctol=C+C′+C″;(8)選擇最終編碼代價(jià)Ctol最小的模式對(duì)該宏塊進(jìn)行編碼,得到實(shí)際的輸出的碼流為Rreal比特,下面更新步驟(4)中的速率估計(jì)的查找表f(TC,TR),更新的方法如下若當(dāng)前實(shí)際輸出的碼流為Rreal比特,如果Rreal-SAD≤0則不更新;如果Rreal-SAD>0,則f(TC,TR)查找表中對(duì)應(yīng)于TC、TR的項(xiàng)更新為f(TC,TR)+δR,其中δR={((Rreal-SAD)×24)-f(TC,TR)+23}/24;(9)重新返回步驟(1)編碼下一個(gè)宏塊。
步驟(3)中,對(duì)失真準(zhǔn)確估計(jì)的關(guān)鍵在于根據(jù)變換系數(shù)是否被量化為零采取不同的失真估計(jì)方法。對(duì)于被量化為零的系數(shù),能夠快速的計(jì)算其準(zhǔn)確的失真值;而對(duì)于非零量化系數(shù),根據(jù)均勻量化的失真理論,可以快速計(jì)算其估計(jì)值。對(duì)于采取了運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償技術(shù)的視頻編碼框架中,有很大部分的變換系數(shù)被量化為零,其相應(yīng)的失真能夠被準(zhǔn)確計(jì)算;而對(duì)于非零量化系數(shù),基于量化理論的預(yù)測(cè)值也能夠逼近實(shí)際失真。因此,所提出的失真估計(jì)算法能夠達(dá)到很高的精度。
步驟(4)中,對(duì)編碼速率的估計(jì)根據(jù)每個(gè)塊系數(shù)經(jīng)過(guò)量化、游程掃描之后的非零系數(shù)絕對(duì)值之和、非零系數(shù)數(shù)目及游程之和決定。與Quqi Chen等人所提出的方法不同之處在于,本算法利用一個(gè)查找表來(lái)反映非零量化數(shù)目及游程值之和對(duì)速率的影響。引入了查表函數(shù)和逐塊更新來(lái)跟蹤視頻內(nèi)容的變化,并根據(jù)低通濾波的原理定義更新方法。一方面免除了對(duì)特殊情況所作的修正,同時(shí)也能提供對(duì)不同序列及編碼條件的自適應(yīng)。這種方法簡(jiǎn)單易行,能夠適應(yīng)不同序列的實(shí)際編碼特性,并由于H.264/AVC中的CAVLC編碼基于4×4塊,因此查找表所占用的空間很有限,僅需136個(gè)查找表項(xiàng)的空間。
本發(fā)明的特點(diǎn)及技術(shù)效果本發(fā)明針對(duì)H.264/AVC中的整數(shù)變換和量化機(jī)制,但是也可以擴(kuò)展到其它采用整數(shù)變換的新一代視頻編碼標(biāo)準(zhǔn),如AVS。本發(fā)明的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,同時(shí)又能對(duì)速率和失真進(jìn)行準(zhǔn)確的估計(jì)。所提出的算法只保留了保證準(zhǔn)確估計(jì)所必需的計(jì)算,即變換和量化,而省略了反量化和逆變換等不必要的運(yùn)算步驟。本發(fā)明所需要的額外存儲(chǔ)空間很小,能夠同時(shí)適用于H.264/AVC在PC機(jī)上的軟件實(shí)現(xiàn),在DSP上的實(shí)現(xiàn)以及基于ASIC的定制實(shí)現(xiàn)。
本發(fā)明能夠以很低的代價(jià)實(shí)現(xiàn)對(duì)宏塊編碼模式以及變換塊大小在率失真意義上的最優(yōu)選擇?;贖.264/AVC參考軟件JM10.1的測(cè)試表明,對(duì)于各種測(cè)試序列和編碼條件,基于本發(fā)明率失真估計(jì)的編碼模式和變換塊大小選擇,其編碼效率相對(duì)于基于實(shí)際率失真計(jì)算的最優(yōu)算法,相同碼率下,重建峰值信噪比(PSNR)下降在0.1dB以內(nèi),而計(jì)算量降低了30%~70%。
說(shuō)明書(shū)附1為本發(fā)明提出的H.264/AVC視頻編碼中速率和失真的快速估計(jì)方法的總體框圖。
圖2為本方法進(jìn)行速率估計(jì)時(shí)采用的游程掃描的示例圖。
圖3為本方法進(jìn)行速率估計(jì)時(shí)采用的查找表的示例圖。
具體實(shí)施例方式
本發(fā)明提出的速率失真估計(jì)算法及其在編碼模式、變換塊大小中的應(yīng)用結(jié)合附圖及實(shí)施例進(jìn)一步說(shuō)明如下。
本發(fā)明如附
圖1所示,包括以下步驟(1)針對(duì)每一種備選編碼模式,對(duì)當(dāng)前編碼宏塊進(jìn)行運(yùn)動(dòng)估計(jì),可采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的全搜索或快速搜索的方法進(jìn)行;得到殘差信號(hào)Sres=|Sorig-Sref|,Sorig為原始編碼塊信號(hào),Sref為運(yùn)動(dòng)估計(jì)所確定的參考?jí)K信號(hào);(2)在每一種編碼模式下,對(duì)步驟(1)中得到的亮度殘差信號(hào)Sres分別進(jìn)行8×8和4×4整數(shù)變換,整數(shù)變換采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的方法,公式為X=CfSresCfT,]]>X為變換后的系數(shù)矩陣,Cf為標(biāo)準(zhǔn)中規(guī)定的變換矩陣;對(duì)變換后的系數(shù)X按照H.264/AVC標(biāo)準(zhǔn)中規(guī)定的方法進(jìn)行量化,得到量化后的系數(shù)矩陣Y;(3)根據(jù)步驟(2)中得到變換系數(shù)矩陣X和量化系數(shù)矩陣Y來(lái)估計(jì)失真D,針對(duì)Y(i,j)是否為零采取不同的失真估計(jì)方法如果量化系數(shù)Y(i,j)為0,那么失真D就等于量化誤差,在變化域中即為X2(i,j)/W(i,j),其中(i,j)表示像素點(diǎn)的位置,W(i,j)為系數(shù)在各變換域位置的能量增益,對(duì)于8×8和4×4變換,對(duì)應(yīng)的增益矩陣分別為19173017191730171715271517152715302748273027482717152715171527151917301719173017171527151715271530274827302748271715271517152715]]>和75307530301230127530753030123012;]]>如果量化系數(shù)Y(i,j)不為0,那么根據(jù)均勻標(biāo)量量化理論,失真D估算為量化步長(zhǎng)Δ平方值的函數(shù)Δ2/12;總體的失真D即為D=Σ{i,j|Y(i,j)=0}X2(i,j)/W(i,j)+Σ{i,j|Y(i,j)≠0}Δ2/12;]]>(4)根據(jù)步驟(2)中得到的量化系數(shù)矩陣Y估計(jì)速率R,具體方法為針對(duì)每個(gè)4×4變換塊,若采用的是8×8的整型變換,則分解成4個(gè)4×4的塊,再對(duì)每個(gè)4×4塊量化后的系數(shù)按照H.264/AVC標(biāo)準(zhǔn)規(guī)定的方法進(jìn)行游程掃描,掃描順序的一個(gè)實(shí)例如附圖2所示;掃描后首先得到所有非零系數(shù)數(shù)目TC;接著得到每一個(gè)非零系數(shù)所對(duì)應(yīng)的零游程值,即該非零系數(shù)前面0的個(gè)數(shù),并計(jì)算所有這些零游程值之和TR;再計(jì)算非零系數(shù)的絕對(duì)值和SAD=Σ{i,j|Y(i,j)≠0}|Y(i,j)|;]]>根據(jù)此三個(gè)參數(shù)估計(jì)編碼速率R=SAD+(f(TC,TR)/24),其中查找表函數(shù)f(TC,TR)度量了TC與TR對(duì)速率的影響,對(duì)于4×4變換塊有0≤TC≤16,0≤TR≤16-TC,該查找表的結(jié)構(gòu)如附圖3所示,共有17(17+1)/2=136項(xiàng),表內(nèi)的數(shù)據(jù)為其初始值,設(shè)定為f0(TC,TR)=3×TC+TR;(5)針對(duì)步驟(2)中得到的亮度信號(hào)殘差變換系數(shù)X和量化系數(shù)Y,采取步驟(3)和步驟(4)的計(jì)算方法,分別對(duì)8×8和4×4兩種整數(shù)變換得到的速率R和失真D進(jìn)行估計(jì),并根據(jù)C=D+λR計(jì)算相應(yīng)的對(duì)亮度信號(hào)殘差系數(shù)的編碼代價(jià)C,其中λ=0.85×2QP-123,]]>QP為量化參數(shù);(6)對(duì)于每種編碼模式,比較步驟(5)中分別采用8×8和4×4兩種整數(shù)變換對(duì)于亮度殘差信號(hào)的編碼代價(jià)C,選取編碼代價(jià)C較小的作為當(dāng)前編碼模式的最優(yōu)變換,該模式的亮度殘差信號(hào)R的編碼代價(jià)C即為二者中的較小值;(7)步驟(6)得到了亮度殘差信號(hào)的最優(yōu)變換和編碼代價(jià)C;下面按照步驟(2)(3)(4)(5)重新計(jì)算色度殘差信號(hào)的編碼代價(jià)C′(色度信號(hào)只采用4×4整型變換);再結(jié)合相應(yīng)的預(yù)測(cè)信息編碼代價(jià)C″=λRpre,其中Rpre為當(dāng)前預(yù)測(cè)信息的編碼碼率,λ同步驟(5),若當(dāng)前的原始預(yù)測(cè)信息為code_num,采用對(duì)數(shù)哥倫布碼編碼,其編碼碼字為[M zeros][1][INFO],且M=log2(code_num+1),INFO=code_num+1-2M,為下取整,預(yù)測(cè)信息的編碼速率為Rpre=2M+1;三者之和得到每種編碼模式的最終編碼代價(jià)Ctol=C+C′+C″;(8)選擇最終編碼代價(jià)Ctol最小的模式對(duì)該宏塊進(jìn)行編碼,得到實(shí)際的輸出的碼流為Rreal比特,下面更新步驟(4)中的速率估計(jì)的查找表f(TC,TR),更新的方法如下若當(dāng)前實(shí)際輸出的碼流為Rreal比特,如果Rreal-SAD≤0則不更新;如果Rreal-SAD>0,則f(TC,TR)查找表中對(duì)應(yīng)于TC、TR的項(xiàng)更新為f(TC,TR)+δR,其中δR={((Rreal-SAD)×24)-f(TC,TR)+23}/24;(9)重新返回步驟(1)編碼下一個(gè)宏塊。
本發(fā)明上述步驟的具體實(shí)施例分別詳細(xì)說(shuō)明如下上述步驟(1)中的運(yùn)動(dòng)估計(jì)和殘差計(jì)算對(duì)于每種編碼模式進(jìn)行,包括采用16×16、16×8、8×16、8×8、8×4、4×8、4×4等7種塊大小的幀間編碼模式,4×4塊的9種、16×16塊的4種幀內(nèi)編碼模式等等。采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的全搜索或快速搜索的方法,即對(duì)于當(dāng)前編碼宏塊Sorig,在當(dāng)前幀或參考幀內(nèi)搜索其參考宏塊Sref,使得殘差信號(hào)R=|Sorig-Sref|達(dá)到最小值。
上述步驟(2)的實(shí)施例為對(duì)亮度殘差信號(hào)R分別進(jìn)行8×8和4×4整數(shù)變換,公式為X=CfRCfT,]]>其中Cf為標(biāo)準(zhǔn)中規(guī)定的變換矩陣,對(duì)于8×8和4×4整數(shù)變換的Cf分別為88888888121063-3-6-10-1284-4-8-8-44810-3-12-66123-108-8-888-8-886-1231010-312-64-88-4-48-843-610-1212106-3]]>和111121-1-21-1-111-22-1]]>并且對(duì)于變換后的系數(shù)X分別為X8(i,j),0≤i<8,0≤j<8和X4(i,j),0≤i<4,0≤j<4。然后對(duì)變換后的系數(shù)進(jìn)行相應(yīng)的量化,量化根據(jù)H.264/AVC的標(biāo)準(zhǔn)方法即Y=X.round(PF/Δ)。其中PF由位置(i,j)決定。Δ為量化參數(shù)QP所對(duì)應(yīng)的量化步長(zhǎng),可以根據(jù)標(biāo)準(zhǔn)量化參數(shù)和步長(zhǎng)的關(guān)系計(jì)算獲得,如下表所示。量化后的系數(shù)為Y8(i,j),0≤i<8,0≤j<8和Y4(i,j),0≤i<4,0≤j<4。
上述步驟(3)的實(shí)施例為根據(jù)變換系數(shù)X和相應(yīng)的量化系數(shù)Y估計(jì)兩種變換對(duì)應(yīng)的失真。由于采取正交了整數(shù)變換,相應(yīng)的量化失真如果在變換域計(jì)算,需要進(jìn)行相應(yīng)的補(bǔ)償。
上述步驟(4)的具體實(shí)施例為若采用的是8×8的整數(shù)變換,按照標(biāo)準(zhǔn)的編碼方式分解成4個(gè)4×4的塊,再對(duì)每個(gè)4×4塊量化后的系數(shù)進(jìn)行游程掃描,對(duì)于4×4塊游程掃描的順序,附圖2給出一個(gè)實(shí)例,掃描后的順序?yàn)?、3、0、1、-1、-1、0、1、0...,因此TC=5,TR=3。
上述步驟(5)的具體實(shí)施例為λ為拉格朗日加權(quán)因子,反應(yīng)速率和失真的折衷關(guān)系,其值與量化參數(shù)QP相關(guān),具體關(guān)系為λ=0.85×2QP-123.]]>上述步驟(6)的具體實(shí)施例為由于在H.264/AVC中,8×8變換只用于亮度信號(hào),為此根據(jù)編碼代價(jià)最小的原則對(duì)亮度信號(hào)自適應(yīng)選取8×8或4×4的整形變換,而對(duì)于色度信號(hào),則統(tǒng)一采用4×4的整形變換。
上述步驟(7)的具體實(shí)施例為最終編碼代價(jià)由亮度殘差信號(hào)的編碼代價(jià)、色度殘差信號(hào)的編碼代價(jià)、預(yù)測(cè)信息的編碼代價(jià)(包括對(duì)編碼模式、參考幀索引、運(yùn)動(dòng)矢量信息進(jìn)行編碼所需要的速率)三部分組成。在采用變長(zhǎng)碼時(shí),預(yù)測(cè)信息的編碼基于對(duì)數(shù)哥倫布碼(Exp-Golomb),相應(yīng)的速率由H.264/AVC標(biāo)準(zhǔn)給出。
上述步驟(8)的具體實(shí)施例為對(duì)速率估計(jì)查找表f(TC,TR)的更新采取低通濾波的方式,如附圖3所示,表中的數(shù)據(jù)為初始值,更新后的數(shù)據(jù)再次填入表中,更新使得速率R的估計(jì)與視頻內(nèi)容更好的自適應(yīng)。
權(quán)利要求
1.H.264/AVC視頻編碼中速率和失真的快速估計(jì)方法,其特征在于,所述方法是在PC機(jī)中依次按以下步驟實(shí)現(xiàn)的步驟(1)針對(duì)H.264/AVC視頻編碼中的每一種備選編碼模式,采用H.264/AVC標(biāo)準(zhǔn)中規(guī)定的全搜索或快速搜索的方法對(duì)當(dāng)前編碼宏塊Sorig進(jìn)行運(yùn)動(dòng)估計(jì),得到亮度殘差信號(hào)Sres=|Sorig-Sref|,Sref為在當(dāng)前幀或參考幀內(nèi)由運(yùn)動(dòng)估計(jì)所確定的參考?jí)K;步驟(2)在每一種編碼模式下,對(duì)步驟(1)得到的亮度殘差信號(hào)Sref按下式分別進(jìn)行8×8和4×4整數(shù)變換X=CfSresCfT,]]>其中Cf為H.264/AVC標(biāo)準(zhǔn)中規(guī)定的變換矩陣,對(duì)于8×8和4×4整數(shù)變換的Cf分別為88888888121063-3-6-10-1284-4-8-8-44810-3-12-66123-108-8888-8-886-128-4-48-8-34-88-4-48-843-610-1212106-3]]>和111121-1-21-1-111-22-1]]>X為變換后的系數(shù)矩陣;其次,對(duì)于變換后的系數(shù)X按照H.264/AVC標(biāo)準(zhǔn)中規(guī)定的下述公式進(jìn)行量化,得到量化后的系數(shù)矩陣Y,Y=X.round(PF/Δ),其中Δ為量化參數(shù)QP所對(duì)應(yīng)的量化步長(zhǎng),從標(biāo)準(zhǔn)規(guī)定的QP-Δ對(duì)應(yīng)表中得到,PF為位置(i,j)所對(duì)應(yīng)的參數(shù),從標(biāo)準(zhǔn)規(guī)定的PF-位置對(duì)應(yīng)表中得到,round為取整符號(hào);步驟(3)根據(jù)步驟(2)中得到的變換系數(shù)矩陣X和量化系數(shù)矩陣Y來(lái)估計(jì)失真D若量化系數(shù)Y(i,j)為0,則失真D1=X2(i,j)/W(i,j),其中W(i,j)為系數(shù)X在各變換域各個(gè)位置的能量增益,對(duì)于8×8和4×4整數(shù)變換,對(duì)應(yīng)的能量增益矩陣分別為19173017191730171715271517152715302748273027482717152715171527151917301719173017171527151715271530274827302748271715271517152715]]>和75307530301230127530753030123012;]]>若量化系數(shù)Y(i,j)不為0,則失真D2估算Δ2/12;那么總體失真D=Σ{i,j|y(i,j)=0}X2(i,j)/W(i,j)+Σ{i,j|y(i,j)≠0}Δ2/12;]]>步驟(4)根據(jù)步驟(2)得到的量化系數(shù)矩陣Y估計(jì)速率R,其步驟如下首先,若采用的是8×8的整型變換,按照H.264/AVC標(biāo)準(zhǔn)的編碼方式分解成4個(gè)4×4的塊,再對(duì)每個(gè)4×4塊量化后的系數(shù)按照標(biāo)準(zhǔn)中所述的順序進(jìn)行游程掃描;先得到所有非零系數(shù)的數(shù)目TC,接著得到每一個(gè)非零系數(shù)所對(duì)應(yīng)的零游程值,即該非零系數(shù)前面0的個(gè)數(shù),并計(jì)算所有這些零游程值之和TR,再計(jì)算非零系數(shù)的絕對(duì)值和SAD=Σ{i,j|Y(i,j)≠0}|Y(i,j)|;]]>其次,計(jì)算編碼速率R=SAD+(f(TC,TR)/24),其中f(TC,TR)是設(shè)定的查找表函數(shù),度量了TC與TR對(duì)編碼速率R的影響,對(duì)于4×4塊,0≤TC≤16,0≤TR≤(16-TC),該查找表共有17(17+1)/2=136項(xiàng),其初始值設(shè)定為f0(TC,TR)=3×TC+TR;步驟(5)根據(jù)步驟(2)中得到的亮度殘差信號(hào)變換系數(shù)X和量化系數(shù)Y,采取步驟(3)和步驟(4)所述的計(jì)算方法,分別對(duì)8×8和4×4兩種整數(shù)變換得到的速率R和失真D進(jìn)行計(jì)算,并按照下式計(jì)算相應(yīng)的亮度信號(hào)的殘差系數(shù)的編碼代價(jià)CC=D+λR,其中λ=0.85×2QP-123]]>,QP為量化參數(shù);步驟(6)對(duì)于步驟(1)所述的每種編碼模式,比較步驟(5)中分別采用8×8和4×4兩種整數(shù)變換對(duì)于亮度殘差信號(hào)的編碼代價(jià)C,選取編碼代價(jià)C較小的作為當(dāng)前編碼模式的最優(yōu)變換,該模式的亮度殘差信號(hào)的編碼代價(jià)C即為二者中的較小值;步驟(7)對(duì)于步驟(1)所述的每種編碼模式,按照步驟(2)、(3)、(4)、(5)重新計(jì)算色度殘差信號(hào)的編碼代價(jià)C′,并且對(duì)于色度信號(hào)編碼代價(jià)C′的計(jì)算只采用4×4整型變換;再按照下式計(jì)算相應(yīng)的預(yù)測(cè)信息編碼代價(jià)C″=λRpre,其中Rpre為當(dāng)前預(yù)測(cè)信息的編碼碼率,然后計(jì)算每種編碼模式的最終編碼代價(jià)Ctol=C+C′+C″,其中C為步驟(6)中得到的亮度殘差信號(hào)的編碼代價(jià);步驟(8)選擇最終編碼代價(jià)Ctol最小的模式對(duì)步驟(1)所述的當(dāng)前編碼宏塊按H.264/AVC標(biāo)準(zhǔn)所規(guī)定的方法進(jìn)行編碼,得到實(shí)際的輸出的碼流為Rreal比特;步驟(9)用步驟(8)得到的Rreal更新步驟(4)中所述的速率估計(jì)用的查找表f(TC,TR)若Rreal-SAD≤0則不更新,若Rreal-SAD>0,則查找表中對(duì)應(yīng)于TC、TR的項(xiàng)f(TC,TR)更新為f(TC,TR)+δR,其中δR={((Rreal-SAD)×24)-f(TC,TR)+23}/24;步驟(10)返回步驟(1),編碼下一個(gè)宏塊。
2.根據(jù)權(quán)利要求1所述的H.264/AVC視頻編碼中速率和失真的快速估計(jì)方法,其特征在于,在所述步驟(7)中,在采用變長(zhǎng)碼時(shí),預(yù)測(cè)信息的編碼是采用對(duì)數(shù)哥倫布碼,其編碼碼字為[Mzeros][1][INFO],且M=log2(code_num+1),INFO=code_num+1-2Mcode_num為當(dāng)前的原始預(yù)測(cè)信息,為下取整,則當(dāng)前預(yù)測(cè)信息的編碼速率為Rpre=2M+1,C″=λ(2M+1)。
全文摘要
本發(fā)明涉及視頻壓縮編碼中宏塊編碼模式選擇算法,其特征在于,該方法首先對(duì)運(yùn)動(dòng)預(yù)測(cè),變換和量化后的信號(hào)進(jìn)行快速速率和失真估計(jì);在失真估計(jì)算法中,對(duì)于量化后為零的變換系數(shù),失真即為經(jīng)過(guò)加權(quán)后的系數(shù)平方值,對(duì)于非零量化系數(shù),失真為量化步長(zhǎng)的平方值函數(shù);在速率估計(jì)算法中,建立速率和非零量化系數(shù)絕對(duì)值之和、非零量化系數(shù)數(shù)目及游程值之和的關(guān)系模型。定義一個(gè)查表函數(shù)度量非零量化系數(shù)數(shù)目及游程值之和對(duì)速率的影響,每實(shí)際編碼一個(gè)塊后根據(jù)低通濾波的原理更新該查找表;根據(jù)速率和失真的估計(jì),進(jìn)行宏塊編碼模式的選擇。本發(fā)明有效提高了率失真意義下宏塊編碼模式選擇的速度,適用于新一代視頻壓縮編碼。
文檔編號(hào)H04N7/32GK101014128SQ200710063488
公開(kāi)日2007年8月8日 申請(qǐng)日期2007年2月2日 優(yōu)先權(quán)日2007年2月2日
發(fā)明者崔慧娟, 唐昆, 張陽(yáng), 路羊 申請(qǐng)人:清華大學(xué)