系數(shù)數(shù)目自適應(yīng)的量化參數(shù)差分編碼的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種用于視頻信號(hào)預(yù)測(cè)殘差變換系數(shù)的量化參數(shù)編碼方法。在本發(fā)明中,dQP和量化矩陣的選擇信號(hào)均條件于變換量化系數(shù)的數(shù)目,并傳輸于變換量化系數(shù)的后面。編碼器和解碼器通過(guò)約定一個(gè)固定的閾值,當(dāng)若干連續(xù)的變換塊的非零量化系數(shù)數(shù)目超過(guò)這個(gè)閾值時(shí),編碼器在編碼了這些非零量化系數(shù)之后,向碼流中編碼一個(gè)dQP或量化矩陣的選擇信號(hào),表示這幾個(gè)連續(xù)的塊所使用的QP或量化矩陣。這樣解碼器就能通過(guò)累計(jì)非零量化系數(shù)數(shù)目并準(zhǔn)確解碼dQP或量化矩陣的選擇信號(hào)。
【專利說(shuō)明】系數(shù)數(shù)目自適應(yīng)的量化參數(shù)差分編碼
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)字視頻壓縮領(lǐng)域,具體涉及到視頻信號(hào)預(yù)測(cè)殘差變換系數(shù)的量化參數(shù)的編碼。
【背景技術(shù)】
[0002]數(shù)字視頻是通過(guò)對(duì)時(shí)域和空域連續(xù)的自然場(chǎng)景進(jìn)行時(shí)域和空域連續(xù)采樣所得。如圖1所示,數(shù)字視頻由一系列時(shí)域上的視頻幀所組成,每個(gè)視頻幀表示自然場(chǎng)景在某個(gè)時(shí)間的空域采樣,它由二維均勻采樣的視覺(jué)像素組成。每個(gè)像素由一系列描述像素亮度和色彩的數(shù)字組成,在視頻編碼中,最廣泛被使用的格式是YUV格式,這種格式中,每個(gè)像素由一個(gè)亮度分量Y,兩個(gè)色差分量U和V組成,一般對(duì)U和V分量水平和垂直方向各進(jìn)行一次下采樣,這樣每相鄰的4個(gè)像素共用I個(gè)U和I個(gè)V分量,這就是YUV4:2:0格式。
[0003]最廣泛被使用的視頻編碼技術(shù)是塊基混合運(yùn)動(dòng)補(bǔ)償DCT變換視頻編碼技術(shù),其中最有代表性的是MPEG和VCEG正在聯(lián)合制定的國(guó)際標(biāo)準(zhǔn)HEVC。如圖2所示,HEVC編碼器首先把輸入幀被劈分成一個(gè)個(gè)NxN (其中N為2的冪次,其最小為8,最大可以到64)的塊,稱為最大編碼單元(IXU),然后從左到右,從上到下依次對(duì)IXU進(jìn)行編碼。在HEVC中,基本的預(yù)測(cè)變換編碼單位稱為編碼單元(CU),對(duì)于一個(gè)大小為2Nx2N的LCU,可以把它作為一個(gè)CU直接進(jìn)行預(yù)測(cè)變換編碼,也可以把它以四分樹(shù)的方式劈分為4個(gè)大小為NxN的單元進(jìn)行預(yù)測(cè)-變換-編碼,而對(duì)于每個(gè)NxN的單元,它也既可以作為一個(gè)⑶進(jìn)行預(yù)測(cè)-變換-編碼,也可以繼續(xù)以四分樹(shù)的方式劈分為4個(gè)更小的單元進(jìn)行編碼。圖3所示既是一個(gè)LCU的編碼劈分圖,圖中LCU被劈分為4個(gè)等尺寸CU,而4個(gè)CU中的第一個(gè)、第三個(gè)和第四個(gè)又分別進(jìn)行了繼續(xù)的劈分。CU最小為8x8,最大可以和LCU等尺寸。對(duì)每個(gè)待編碼的CU,首先從已編碼的重構(gòu)幀中計(jì)算出一個(gè)對(duì)當(dāng)前塊的預(yù)測(cè),并與當(dāng)前塊相減,殘差依次執(zhí)行DCT變換、量化,然后反量化、反DCT變換得到重構(gòu)宏塊,存入重構(gòu)幀序列中,用于對(duì)其后編碼的⑶產(chǎn)生預(yù)測(cè)信號(hào)。由于精確的DCT變換是浮點(diǎn)變換,所以實(shí)際中一般用DCT變換的整數(shù)近似或者KLT變換的整數(shù)近似來(lái)代替。
[0004]⑶的預(yù)測(cè)有2種,第一種是幀內(nèi)預(yù)測(cè),即只使用當(dāng)前編碼幀的已重構(gòu)的像素對(duì)當(dāng)前CU進(jìn)行預(yù)測(cè)。當(dāng)前最流行的幀內(nèi)預(yù)測(cè)技術(shù)是幀內(nèi)方向預(yù)測(cè)技術(shù)。幀內(nèi)方向預(yù)測(cè)直接以CU為單位進(jìn)行。HEVC中所使用的角度幀內(nèi)預(yù)測(cè)如圖4所示。圖4所示白色黑框塊是當(dāng)前編碼⑶,左邊和上邊的灰色條帶是當(dāng)前⑶左上的已重構(gòu)像素,他們用來(lái)生成當(dāng)前⑶的預(yù)測(cè)信號(hào)。每一個(gè)幀內(nèi)方向預(yù)測(cè)模式說(shuō)明一個(gè)當(dāng)然的預(yù)測(cè)方向,對(duì)于如圖4所示編碼CU中的某一行或某一列(用豎狀網(wǎng)格表示),根據(jù)預(yù)測(cè)方向找到左上重構(gòu)塊中的相應(yīng)的像素,如圖4中黑色像素塊所示,作為當(dāng)前行或列的預(yù)測(cè)。圖4右側(cè)所示的列預(yù)測(cè)因?yàn)樽筮吙可系闹貥?gòu)像素不存在,所以在實(shí)際的預(yù)測(cè)開(kāi)始前,需要根據(jù)當(dāng)前預(yù)測(cè)方向從當(dāng)前塊上邊的重構(gòu)像素根據(jù)當(dāng)前幀內(nèi)預(yù)測(cè)方向映射過(guò)去,如圖5所示。在HEVC中共有33種不同的方向預(yù)測(cè)模式,如圖6所示。
[0005]CU的第二種預(yù)測(cè)是幀間預(yù)測(cè),這時(shí)當(dāng)前塊的預(yù)測(cè)從時(shí)域上在當(dāng)前幀前或當(dāng)前幀后的重構(gòu)幀中的選取。在HEVC中,預(yù)測(cè)以預(yù)測(cè)單元(PU)為基本單位。一個(gè)2Nx2N大小的⑶有4種PU劃分模式,它既可以作為單一的執(zhí)行運(yùn)動(dòng)補(bǔ)償,也可以分割成幾個(gè)分別執(zhí)行不同的運(yùn)動(dòng)補(bǔ)償,如圖7所示。對(duì)于一個(gè)任意形狀的運(yùn)動(dòng)補(bǔ)償過(guò)程如圖8、圖9、圖10和圖11所不。顯不時(shí)間為t的幀是當(dāng)如編碼幀,黑色塊是當(dāng)如編碼塊。顯不時(shí)間為t_to、t-2*t0、t+t0幀是重構(gòu)幀,其中具有點(diǎn)狀邊界的灰色塊是與當(dāng)前編碼塊同一空域位置的塊。顯示時(shí)間為t-t0、t-2*t0、t+t0幀都可以作為當(dāng)前編碼塊的預(yù)測(cè)。在圖8中,運(yùn)動(dòng)向量MVO指向當(dāng)前塊的前向預(yù)測(cè)塊BLK0。在圖9中,運(yùn)動(dòng)向量MVl指向當(dāng)前塊的后向預(yù)測(cè)塊BLK1。在圖10中,運(yùn)動(dòng)向量MV指向當(dāng)前塊的前向預(yù)測(cè)塊BLKO,MV的反方向指向后向預(yù)測(cè)塊BLKl,BLKO和BLKl的平均作為當(dāng)前塊的預(yù)測(cè)。在圖11中,運(yùn)動(dòng)向量MVO指向當(dāng)前塊的前向預(yù)測(cè)塊BLK0,運(yùn)動(dòng)向量MVl指向當(dāng)前塊的后向預(yù)測(cè)塊BLK1,BLKO和BLKl的平均作為當(dāng)前塊的預(yù)測(cè)。在前向預(yù)測(cè)、后向預(yù)測(cè)和對(duì)稱預(yù)測(cè)中,只有一個(gè)運(yùn)動(dòng)參數(shù)(包括運(yùn)動(dòng)向量和參考圖像)需要編碼,而在雙向預(yù)測(cè)模式中,2個(gè)運(yùn)動(dòng)參數(shù)需要編碼。對(duì)于每種時(shí)域補(bǔ)償模式,編碼器通過(guò)率失真優(yōu)化的運(yùn)動(dòng)估計(jì)過(guò)程得到最優(yōu)的運(yùn)動(dòng)參數(shù),并將其編入碼流。
[0006]在得到預(yù)測(cè)以后,將當(dāng)前塊與預(yù)測(cè)塊相減,得到殘差塊,然后對(duì)殘差塊依次執(zhí)行DCT變換或其他正交變換,然后量化、熵編碼,然后再反量化、反變換、和預(yù)測(cè)塊相加得到重構(gòu)塊,并用于后續(xù)編碼塊的預(yù)測(cè)。在HEVC中,變換以變換單元(TU)為單位進(jìn)行。對(duì)于幀內(nèi)預(yù)測(cè),TU與⑶同尺寸,即對(duì)一個(gè)2Nx2N大小的⑶,直接執(zhí)行2Nx2N 二維可分離變換。對(duì)于時(shí)域預(yù)測(cè),則使用變尺寸塊變換。這時(shí)TU的形狀依賴于I3U的形狀。在HEVC中,TU的形狀總是比PU要小,這樣變換不會(huì)穿越預(yù)測(cè)的邊界,但也降低了變換的靈活性。HEVC中所使用的四分樹(shù)結(jié)構(gòu)變尺寸塊變換如圖12所示,一個(gè)2Nx2N的待變換單元可以有4種變換分割模式,即直接2Nx2N變換、2個(gè)2NxN變換、2個(gè)Nx2N變換、或者分割成4個(gè)NxN單元。4個(gè)NxN單元中的每一個(gè)都可以獨(dú)立進(jìn)行四分樹(shù)結(jié)構(gòu)的變尺寸塊變換。TU的最小單元是4x4。
[0007]對(duì)變換系數(shù)的量化需要使用量化參數(shù)(QP),有時(shí)候還要使用加權(quán)量化矩陣。在當(dāng)前HEVC的編碼中, 量化參數(shù)的傳輸發(fā)生在一個(gè)當(dāng)然的尺寸的⑶之上,這個(gè)尺寸編碼在圖像或者片段之上。就是說(shuō),當(dāng)⑶尺寸在MxM或之上且這個(gè)⑶內(nèi)含非零量化系數(shù)時(shí),編碼器傳輸一個(gè)量化參數(shù)的差分(dQP),這樣解碼器就可以根據(jù)從前的QP和這個(gè)dQP計(jì)算出當(dāng)前MxM尺寸或更大尺寸CU內(nèi)部所有變換塊所使用的共同的QP。比如說(shuō),M為16時(shí),如果一個(gè)⑶為32x32,且含非零變換系數(shù),那么編碼器一定給這個(gè)⑶傳輸一個(gè)dQP。如果一個(gè)⑶為8x8且含非零變換系數(shù),那么編碼器必須給包含它的16x16⑶傳輸一個(gè)dQP,這個(gè)16x16⑶內(nèi)部所有8x8⑶都使用這個(gè)dQP。MxM尺寸或更大尺寸⑶,dQP在碼流中的位置從來(lái)都在非零變換系數(shù)之前。在HEVC中,量化矩陣傳輸于圖像或者片段級(jí)別,它并沒(méi)有LCU或者CU級(jí)別的自適應(yīng)性。
[0008]由于視頻內(nèi)容復(fù)雜度變化非常大,所以直接強(qiáng)制一個(gè)圖像或者片段全部只能在一個(gè)當(dāng)然尺寸之上改變QP并不是一種高效的方法。本發(fā)明描述了一種更加靈活的dQP傳輸方法,它能提供更高的編碼效率。
【發(fā)明內(nèi)容】
[0009]本發(fā)明第一個(gè)部分是在編碼器和解碼器之間有一個(gè)共同的整數(shù)值T,表示非零變換系數(shù)的數(shù)目,T ^ 2。這個(gè)值可以編碼在圖像或片段層,也可以直接由編碼器和解碼器約定一個(gè)缺省的值。
[0010]編碼器對(duì)連續(xù)的若干不同尺寸的塊Btl, B1,…UnM)實(shí)施DCT變換,然后對(duì)這些塊量化,設(shè)CfN(Bi)表示塊Bi的非零量化變換系數(shù)數(shù)目,當(dāng)連續(xù)的幾個(gè)塊Btl, B1,…
Bnrl (m>0)量化產(chǎn)生的非零變換系數(shù)數(shù)目恰好達(dá)到T時(shí),即:
【權(quán)利要求】
1.視頻編碼器使用一個(gè)QP對(duì)一組不同大小的變換塊Btl,實(shí)施量化。設(shè)CfN(Bi)表示塊Bi的非零量化系數(shù)數(shù)目,當(dāng)且如果m大于I時(shí)有 Σ(^/Ν{/I)< T,編碼器在前m個(gè)塊編碼入碼流后,向碼流中寫入一個(gè)dQP,表示過(guò)去的連續(xù)m 個(gè)塊使用了這個(gè)QP。編碼器對(duì)連續(xù)的變換塊應(yīng)用不同的QP,然后通過(guò)計(jì)算率失真花費(fèi)選擇滿足解碼條件的最優(yōu)組合編碼入碼流。
2.如權(quán)利要求1所述,T是編碼器和解碼器共同擁有的一個(gè)值,且T>2。T可以是缺省約定,也可以編碼于圖像或者片段層。
3.如權(quán)利要求1所述,相應(yīng)的視頻解碼器連續(xù)的解碼變換塊。一旦累計(jì)的非零量化系數(shù)大于等于T,解碼器即從碼流中讀取一個(gè)dQP,然后計(jì)算出這組系數(shù)的QP。然后解碼器開(kāi)始解碼下一組變換塊,并重新開(kāi)始累計(jì)非零量化系數(shù)的數(shù)目,以確定解碼下一個(gè)dQP的位置。
4.編碼器和解碼器之間共同擁有若干加權(quán)量化矩陣QMtl,QM1,…QMw (t>l),量化矩陣可以部分或全部的編碼在圖像或片段層,也可以部分或全部由編碼器和解碼器直接缺省約定。視頻編碼器使用一個(gè)QMi對(duì)一組不同大小的變換塊Btl, B1,…UnM)實(shí)施量
W-1化。設(shè)CfN(Bi)表示塊Bi的非零量化系數(shù)數(shù)目,當(dāng)且如果m大于I時(shí)有
/=0Σ(:ΜΒ^)< Q,編碼器在前m個(gè)塊編碼入碼流后,編碼器繼續(xù)向碼流中寫入一個(gè)表示QMi的仁O索引符號(hào),表示過(guò)去的連續(xù)m個(gè)塊使用了這個(gè)QMitl編碼器對(duì)連續(xù)的變換塊應(yīng)用不同的量化矩陣,然后通過(guò)計(jì)算率失真花費(fèi)選擇滿足解碼條件的最優(yōu)組合編碼入碼流。
5.如權(quán)利要求4所述,Q是編碼器和解碼器共同擁有的一個(gè)值,且Q>2。Q可以是缺省約定,也可以編碼于圖像或者片段層。
6.如權(quán)利要求4所述,相應(yīng)的視頻解碼器連續(xù)的解碼變換塊。一旦累計(jì)的非零量化系數(shù)大于等于Q,解碼器即從碼流中讀取一個(gè)索引以確定所用的加權(quán)量化矩陣。然后解碼器開(kāi)始解碼下一組變換塊,并重新開(kāi)始累計(jì)非零量化系數(shù)的數(shù)目,以確定解碼下一個(gè)加權(quán)量化矩陣索引的位置。
【文檔編號(hào)】H04N19/625GK103796015SQ201210425765
【公開(kāi)日】2014年5月14日 申請(qǐng)日期:2012年10月31日 優(yōu)先權(quán)日:2012年10月31日
【發(fā)明者】朱洪波 申請(qǐng)人:朱洪波