版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
多媒體技術(shù)基礎(chǔ)-MPEG-4AVC/H.264視像
2023年2月7日第13章MPEG-4AVC/H.264視像2/73第13章MPEG-4AVC/H.264視像目錄
13.1MPEG-4AVC/H.264的由來13.2提高編碼效率的主要技術(shù)13.3視像數(shù)據(jù)的編碼結(jié)構(gòu)13.3.1分層處理的結(jié)構(gòu)13.2.2視像數(shù)據(jù)的組織13.3.3三種類型的視像13.4編譯碼器的結(jié)構(gòu)13.5幀內(nèi)預(yù)測13.5.14×4亮度預(yù)測方式13.5.216×16亮度預(yù)測方式13.5.38×8色度預(yù)測方式13.6幀間預(yù)測13.6.1移動補(bǔ)償塊的大小13.6.2子像素移動矢量13.6.3移動矢量的預(yù)測13.7變換和量化13.7.1變換類型13.7.2DCT和IDTC變換簡化13.7.3正變換與量化13.7.4逆變換與逆量化13.7.54×4亮度DC殘差系數(shù)的變換和量化13.7.62×2色度DC系數(shù)的變換和量化13.7.7變換與量化過程舉例13.8熵編碼13.8.1指數(shù)葛洛姆編碼介紹13.8.2CAVLC編碼13.8.3CABAC編碼2023年2月7日第13章MPEG-4AVC/H.264視像3/73第13章MPEG-4AVC/H.264視像前言MPEG-4AVC/H.264[1][2][3][4]是ITU-T和ISO/IEC聯(lián)合推薦的視像編碼工業(yè)標(biāo)準(zhǔn),在相同質(zhì)量下,比先前的MPEG-Video的壓縮效率提高2~3倍為降低H.264的計(jì)算復(fù)雜度和提高壓縮效率,ITU的專家組正在醞釀開發(fā)H.2652023年2月7日第13章MPEG-4AVC/H.264視像4/7313.1MPEG-4AVC/H.264的由來MPEG-4視像標(biāo)準(zhǔn)從2003年開始,通常認(rèn)為由兩部分組成MPEG-4Visual—可視對象編碼標(biāo)準(zhǔn)
ISO/IEC14496-2Part2。版本1(1999年),版本2(2001年)主要處理自然對象、合成對象和混合對象的編碼MPEG-4AVC/H.264—高級視像編碼
ISO/IEC14496-10Part10:AdvancedVideoCoding(AVC),2003年發(fā)布主要處理自然視像的編碼2023年2月7日第13章MPEG-4AVC/H.264視像5/7313.1MPEG-4AVC/H.264的由來(續(xù)1)MPEG-4Visual的問題與傳統(tǒng)視像編碼的最大差別是引入了“對象編碼”設(shè)計(jì)思想:將某一確定場景中的不同部分作為視像對象,采用不同的編碼技術(shù)分別予以編碼和傳送,在接收端解碼之后重新組合還原出原來的場景在理論上說,MPEG-4Visual的這種設(shè)計(jì)思想是先進(jìn)的,功能是強(qiáng)大的,應(yīng)用是廣泛的。許多觀察家也曾預(yù)言,MPEG-4Visual將成為因特網(wǎng)上視聽對象的主要編碼方法,并取代目前正在使用的、享有專利的各種編解碼器,但時至今日這種情況還未出現(xiàn)主要問題:技術(shù)上的困難。目前人工智能技術(shù)還不能輕而易舉地識別場景中的各種對象。盡管自1999年發(fā)布以來已經(jīng)開發(fā)了多個版本,但技術(shù)上還沒有取得較大的突破,使用的視像壓縮技術(shù)主要還是20世紀(jì)90年代開發(fā)的技術(shù)2023年2月7日第13章MPEG-4AVC/H.264視像6/7313.1MPEG-4AVC/H.264的由來(續(xù)2)H.26L的出現(xiàn)VCEG專家組VideoCodingExpertsGroup的縮寫,ITU專家組1995年完成H.263可視電話標(biāo)準(zhǔn)版本1的開發(fā)后開始兩個新計(jì)劃開發(fā)H.263版本2的短期(short-term)計(jì)劃開發(fā)低位速率可視通信新標(biāo)準(zhǔn)的長期(long-term)計(jì)劃H.26L的出現(xiàn)執(zhí)行長期計(jì)劃的結(jié)果是在1999年10月產(chǎn)生了H.26L標(biāo)準(zhǔn)草案,提供的視像壓縮性能明顯優(yōu)于以往的ITU-T標(biāo)準(zhǔn)2023年2月7日第13章MPEG-4AVC/H.264視像7/7313.1MPEG-4AVC/H.264的由來(續(xù)3)H.264的出現(xiàn)JVT聯(lián)合視像組MPEG專家組認(rèn)識到H.26L的潛力,在2001年12月與VCEG成立了JVT(JointVideoTeam),其主要任務(wù)就是將H.26L發(fā)展為國際標(biāo)準(zhǔn)H.264的出現(xiàn)JVT專家們努力的結(jié)果是在2003年3月產(chǎn)生了兩個名稱不同而內(nèi)容一致的標(biāo)準(zhǔn)ISOMPEG-4Part10ITU-TH.264常寫成:MPEG-4AVC/H.264或H.264/MPEG-4AVC2023年2月7日第13章MPEG-4AVC/H.264視像8/7313.2提高編碼效率的主要技術(shù)MPEG-4AVC/H.264是視像數(shù)據(jù)壓縮技術(shù)取得重大進(jìn)展的標(biāo)志編碼效率明顯提高M(jìn)PEG-4AVC/H.264繼承了先前開發(fā)的視像標(biāo)準(zhǔn)的許多優(yōu)點(diǎn),在結(jié)構(gòu)上沒有明顯改變,只在各個主要功能模塊內(nèi)部做了“小打小鬧”和“精雕細(xì)刻”在視像質(zhì)量相同的前提下,采用MPEG-4AVC/H.264標(biāo)準(zhǔn)獲得的視像數(shù)據(jù)壓縮比是采用MPEG-2視像標(biāo)準(zhǔn)的2~3倍應(yīng)用范圍得到擴(kuò)大可有效降低在有線網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)和電信網(wǎng)絡(luò)上傳送高質(zhì)量影視節(jié)目的成本,使應(yīng)用范圍得到進(jìn)一步擴(kuò)大。例如,原先使用MPEG-2視像技術(shù)的DVD影視和數(shù)字電視已經(jīng)開始轉(zhuǎn)向采用MPEG-4AVC/H.264技術(shù)2023年2月7日第13章MPEG-4AVC/H.264視像9/7313.2提高編碼效率的主要技術(shù)(續(xù)1)提高編碼效率的主要改進(jìn)技術(shù)[5][6]采用可變圖塊大小的幀間預(yù)測和移動補(bǔ)償預(yù)測圖塊大小不再局限于16×16像素,可小到4×4像素,于是提高了預(yù)測精度,如將移動矢量精度提高到1/4個像素采用空間的幀內(nèi)預(yù)測定義了多種預(yù)測方式,目的是找到相關(guān)性最大的預(yù)測采用“整數(shù)變換編碼”從DCT演變來的變換編碼,提高了編碼的運(yùn)算速度采用效率更高的熵編碼前后文自適應(yīng)可變長度編碼(context-basedadaptivevariablelengthcoding,CAVLC)前后文自適應(yīng)二元算術(shù)編碼(Context-basedAdaptiveBinaryArithmeticCoding,CABAC)。采用多參考幀和消除“塊狀失真”的濾波等技術(shù)2023年2月7日第13章MPEG-4AVC/H.264視像10/7313.2提高編碼效率的主要技術(shù)(續(xù)2)2023年2月7日第13章MPEG-4AVC/H.264視像11/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)13.3.1分層處理結(jié)構(gòu)AVC/H.264標(biāo)準(zhǔn)分成兩層,見圖13-1視像編碼層(VideoCodingLayer,VCL),用于有效地表達(dá)視像內(nèi)容網(wǎng)絡(luò)抽象層(NetworkAbstractionLayer,NAL),用于組織VLC數(shù)據(jù)并提供標(biāo)題(header)等信息,便于在各種不同的網(wǎng)絡(luò)上傳輸2023年2月7日第13章MPEG-4AVC/H.264視像12/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)1)圖13-1MPEG-4AVC/H.264的分層結(jié)構(gòu)2023年2月7日第13章MPEG-4AVC/H.264視像13/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)2)13.2.2視像數(shù)據(jù)的組織1.畫面劃分一幀畫面當(dāng)作一片像片或分割成若干像片,見圖13-2(a)一片像片包含若干宏塊(MB),見圖13-2(b)每個宏塊包含1個16×16像素的亮度(luma)樣本2個8×8像素的色度(chroma)樣本一片或多片像片構(gòu)成像片組(slicegroup),見圖13-2(c)在隔行掃描視像中,每一場可單獨(dú)編碼,2場構(gòu)成的幀也可單獨(dú)編碼,偶數(shù)場和奇數(shù)場相應(yīng)的宏塊構(gòu)成宏塊對,見圖13-2(d)2023年2月7日第13章MPEG-4AVC/H.264視像14/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)3)圖13-2MPEG-4AVC_H.264的畫面分割2023年2月7日第13章MPEG-4AVC/H.264視像15/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)4)2.宏塊與子宏塊宏塊可劃分成宏塊區(qū)(macroblockpartition)和子宏塊(sub-macroblock),見圖13-3(a)子宏塊(也稱子塊)可劃分成子宏塊區(qū)(sub-macroblockpartition),見圖13-3(b)圖13-3宏塊與子宏塊的劃分2023年2月7日第13章MPEG-4AVC/H.264視像16/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)5)宏塊的結(jié)構(gòu)圖13-4表示16×16宏塊的樹狀結(jié)構(gòu)分割法在編碼時有可能使用8×8、4×8、8×4或4×4像素塊的組合圖13-4樹狀結(jié)構(gòu)分割法2023年2月7日第13章MPEG-4AVC/H.264視像17/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)6)3.像片的類型5種類型的像片。前3種與MPEG-1,-2的圖像I、P和B類似I像片:由I宏塊構(gòu)成的像片。所有I宏塊編碼都是使用幀內(nèi)方式(intramode)的預(yù)測編碼P像片:由P宏塊構(gòu)成的像片。宏塊編碼包含使用幀內(nèi)方式(intramode)的預(yù)測編碼使用幀間方式(intermode)的預(yù)測編碼B像片:由B宏塊構(gòu)成的像片。所有宏塊的編碼都是使用幀間方式的預(yù)測編碼2023年2月7日第13章MPEG-4AVC/H.264視像18/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)7)SP像片(switching-Pslice):由SP宏塊構(gòu)成的像片。SP宏塊的編碼是用幀間方式(intermode)的預(yù)測編碼SI像片(switching-Islice):由SI宏塊構(gòu)成的像片。SI宏塊的編碼是用幀內(nèi)方式的預(yù)測編碼
SP和SI的作用用于在同一視像源而位速率不同的視像流之間進(jìn)行切換、隨機(jī)訪問和快進(jìn)或快退為簡單起見,假設(shè)視像的一幀就是一片像片,使用SP和SI進(jìn)行視像流切換的應(yīng)用見圖13-5圖中的視像流A是高數(shù)據(jù)率的播放視像流,視像流B是低數(shù)據(jù)率的播放視像流,它們之間可通過“切換流切換圖像SP”進(jìn)行切換,或用SI圖像進(jìn)行切換
SP2023年2月7日第13章MPEG-4AVC/H.264視像19/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)8)圖13-5使用SP和SI切換視像流的概念2023年2月7日第13章MPEG-4AVC/H.264視像20/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)9)13.3.3三種類型的視像基本型(BaselineProfile)支持使用I像片和P像片的幀內(nèi)編碼和幀間編碼使用基于前后文自適應(yīng)可變長度編碼(CAVLC)具有基本的性能和抗錯能力用于要求低延時的電視會議和可視電話等應(yīng)用主流型(MainProfile)支持逐行掃描和隔行掃描視像支持幀內(nèi)編碼和幀間編碼支持使用B像片的幀間編碼和使用加權(quán)預(yù)測的幀間編碼使用基于前后文自適應(yīng)二元算術(shù)編碼(CABAC)用于質(zhì)量要求比較高的電視廣播和DVD等2023年2月7日第13章MPEG-4AVC/H.264視像21/7313.3視像數(shù)據(jù)的編碼結(jié)構(gòu)(續(xù)10)(3)擴(kuò)展型(ExtendedProfile)不支持隔行掃描視像和CABAC附加SP像片和SI像片的切換功能使用數(shù)據(jù)分割改進(jìn)抗錯能力用于各種網(wǎng)絡(luò)上的流播(streaming)圖13-6MPEG-4AVC/H.264的三種類型2023年2月7日第13章MPEG-4AVC/H.264視像22/7313.4編解碼器的結(jié)構(gòu)MPEG-4AVC/H.264編解碼器概要與先前的視像壓縮編碼標(biāo)準(zhǔn)類似MPEG-4AVC/H.264標(biāo)準(zhǔn)沒有明確定義編譯碼器的結(jié)構(gòu),只定義編碼視像位流的語句、語義和解碼的方法編碼器和解碼器包含的功能塊見圖13-7除了用于消除重構(gòu)圖像的塊狀失真的“消塊濾波器(DeblockingFilter)”、減少幀內(nèi)空間冗余的“幀內(nèi)移動估算(Intra-frameEstimation)”與“幀內(nèi)預(yù)測(Intra-framePrediction)”外,大多數(shù)功能塊在以前的標(biāo)準(zhǔn)中都存在,只是其中的細(xì)節(jié)有較大變化2023年2月7日第13章MPEG-4AVC/H.264視像23/7313.4編解碼器的結(jié)構(gòu)(續(xù)1)編碼器的結(jié)構(gòu)見圖13-7(a),編碼器有兩個通道從左到右的編碼通道當(dāng)前幀(Fn)以宏塊為處理單元,可用幀內(nèi)編碼或幀間編碼,預(yù)測值用P表示幀內(nèi)預(yù)測,預(yù)測值是由當(dāng)前幀(Fn)中的輸入樣本與過去幀的重構(gòu)但未經(jīng)濾波(uF'n—unfiltered)的樣本生成的幀間預(yù)測,預(yù)測值是由當(dāng)前幀(Fn)中的輸入樣本與過去重構(gòu)并經(jīng)濾波的參考圖像(uF‘n-1)的樣本通過移動補(bǔ)償預(yù)測生成的2023年2月7日第13章MPEG-4AVC/H.264視像24/7313.4編解碼器的結(jié)構(gòu)(續(xù)2)編碼過程當(dāng)前幀的輸入值和預(yù)測值相減后生成預(yù)測誤差DnDn經(jīng)過變換(T)和量化(Q)產(chǎn)生量化變換系數(shù)X通過重新排序和熵編碼得到的系數(shù)連同解碼時需要的邊信息(sideinformation),包括預(yù)測方式、量化參數(shù)和移動矢量等一起形成壓縮數(shù)據(jù)位流送到網(wǎng)絡(luò)抽象層(NAL)用于傳輸或存儲從右到左的圖像重構(gòu)通道量化變換系數(shù)X通過逆量化(Q-1)和逆變換(T-1)后產(chǎn)生預(yù)測誤差D'n與預(yù)測值P相加后生成重構(gòu)圖像uF'n,通過消塊濾波器(DeblockingFilter)后生成作為幀間預(yù)測時用的重構(gòu)參考圖像F'n2023年2月7日第13章MPEG-4AVC/H.264視像25/7313.4編解碼器的結(jié)構(gòu)(續(xù)3)圖13-7MPEG-4AVC/H.264編解碼器結(jié)構(gòu)[7]2023年2月7日第13章MPEG-4AVC/H.264視像26/7313.4編解碼器的結(jié)構(gòu)(續(xù)4)解碼器的結(jié)構(gòu)見圖13-7(b),與圖13-7(a)中的圖像重構(gòu)過程類似
圖13-7MPEG-4AVC/H.264編解碼器結(jié)構(gòu)[7]2023年2月7日第13章MPEG-4AVC/H.264視像27/7313.5幀內(nèi)預(yù)測幀內(nèi)預(yù)測在以前的視像標(biāo)準(zhǔn)中,I圖像只利用宏塊內(nèi)部的空間相關(guān)性,而沒有利用宏塊之間的空間相關(guān)性。AVC/H.264引入了幀內(nèi)預(yù)測(intraprediction)技術(shù)幀內(nèi)預(yù)測:在同一像片中從過去編碼后重構(gòu)的相鄰圖塊對當(dāng)前圖塊進(jìn)行預(yù)測編碼時用實(shí)際的樣本值與預(yù)測值相減得到預(yù)測誤差對預(yù)測誤差進(jìn)行變換和編碼。預(yù)測塊大小:亮度(luma)樣本可在4×4(用于帶細(xì)節(jié)的圖像區(qū)域)、8×8或16×16(用于過渡較平緩的圖像區(qū)域)之間選擇預(yù)測方式亮度塊:8×8和4×4有9種,16×16有4種兩個色度(chroma)塊:8×8和4×4,有4種2023年2月7日第13章MPEG-4AVC/H.264視像28/7313.5幀內(nèi)預(yù)測(續(xù)1)4×4亮度預(yù)測方式4×4亮度樣本的標(biāo)記見圖13-8。位于a,b,…,p上面和左邊的樣本是已編碼和重構(gòu)的樣本,標(biāo)記為A~M(共13個)亮度塊的預(yù)測塊可根據(jù)A~M樣本計(jì)算。注意在當(dāng)前像片中不一定都有A~M樣本可用,為保持像片解碼的獨(dú)立性,只使用當(dāng)前像片中的樣本進(jìn)行預(yù)測如果E,F(xiàn),G和H樣本不存在,則可用D取代。使用幀內(nèi)預(yù)測編碼時有兩個問題需要解決(1)如何計(jì)算預(yù)測塊(2)如何選擇預(yù)測塊2023年2月7日第13章MPEG-4AVC/H.264視像29/7313.5幀內(nèi)預(yù)測(續(xù)2)預(yù)測塊的計(jì)算每個樣本的預(yù)測值可按指定預(yù)測方式下的預(yù)測方法計(jì)算9種預(yù)測方式見圖13-9,箭頭表示預(yù)測方向MABCDEFGHIabcdJefghKijklLmnop圖13-84×4亮度塊預(yù)測樣本的標(biāo)記2023年2月7日第13章MPEG-4AVC/H.264視像30/7313.5幀內(nèi)預(yù)測(續(xù)3)方式0~2:例如在預(yù)測方式0下,a,e,i和m的樣本預(yù)測值用A樣本值,…,d,h,l和p的樣本預(yù)測值用D樣本值在預(yù)測方式2下,a~p的樣本預(yù)測值都用的平均值:
(A+B+C+D+I+J+K+L)/8方式3~8:預(yù)測值為A~M的加權(quán)平均。例如在預(yù)測方式4下,a的樣本預(yù)測值可用round(I/4+M/2+A/4)計(jì)算,d的樣本預(yù)測值可用round(B/4+C/2+D/4)計(jì)算在預(yù)測方式8下,a的樣本預(yù)測值可用round(I/2+J/2)計(jì)算,d的樣本預(yù)測值可用round(J/4+K/2+L/4)計(jì)算其中的round表示四舍五入2023年2月7日第13章MPEG-4AVC/H.264視像31/7313.5幀內(nèi)預(yù)測(續(xù)4)圖13-94×4亮度塊幀內(nèi)預(yù)測方式2023年2月7日第13章MPEG-4AVC/H.264視像32/7313.5幀內(nèi)預(yù)測(續(xù)5)預(yù)測塊的選擇法全搜索法(fullsearching)是其中之一,過程如下步驟1:分別計(jì)算9種方式下的4×4樣本預(yù)測塊步驟2:分別計(jì)算9種方式下的4×4原始樣本塊與樣本預(yù)測塊之間的差值,然后計(jì)算絕對誤差的和
通常用SAD(sumofabsolutedifference)或SAE(sumofabsoluteerrors)表示,或計(jì)算均方誤差MSE(meansquareerror)步驟3:比較9種方式下的SAD或MSE。通常認(rèn)為誤差最小的就是預(yù)測精度最高的樣本預(yù)測塊選擇最佳樣本預(yù)測塊需要大量的計(jì)算,許多學(xué)者在減少計(jì)算量方面做了許多卓有成效的研究
2023年2月7日第13章MPEG-4AVC/H.264視像33/7313.5幀內(nèi)預(yù)測(續(xù)6)16×16亮度預(yù)測方式4種預(yù)測方式見圖13-10Mode0:垂直外插預(yù)測,每列的所有樣本預(yù)測值與頂部(H)的樣本值相同Mode1:水平外插預(yù)測,每行的所有樣本預(yù)測值與左邊(V)的樣本值相同Mode2:平均插值預(yù)測,每個樣本預(yù)測值均為相應(yīng)的頂部和左邊樣本值之和的平均值Mode3:“平面(plane)”預(yù)測,用頂部和左邊的樣本采用空間插值法得到樣本預(yù)測值8×8色度預(yù)測方式8×8和4×4色度塊都指定了相同的4種預(yù)測方式mode0(DC),mode1(水平),mode2(垂直)和mode3(平面)預(yù)測方式與16×16亮度的含義相同,只是編號不同2個8×8或2個4×4的色度塊要使用相同的預(yù)測方式2023年2月7日第13章MPEG-4AVC/H.264視像34/7313.5幀內(nèi)預(yù)測(續(xù)7)圖13-1016×16亮度塊幀內(nèi)預(yù)測方式2023年2月7日第13章MPEG-4AVC/H.264視像35/7313.6幀間預(yù)測幀間預(yù)測(interprediction)幀間預(yù)測(interprediction)概念從過去編碼后重構(gòu)的相鄰幀的樣本預(yù)測當(dāng)前待編碼幀的樣本的過程編碼以塊為基礎(chǔ)編碼時用實(shí)際的樣本值與預(yù)測值相減得到預(yù)測誤差對預(yù)測誤差進(jìn)行變換和編碼,以消除時間方向上的冗余性。比較MPEG-1和-2H.264可支持大小可變的移動補(bǔ)償塊移動矢量可精確到1/4像素支持多參考幀的預(yù)測2023年2月7日第13章MPEG-4AVC/H.264視像36/7313.6幀間預(yù)測(續(xù)1)13.6.1移動補(bǔ)償塊的大小見如圖13-316×16的幀間編碼宏塊可以分割成16×8,8×16或8×8個樣本的宏塊區(qū)8×8的子宏塊可分分割成8×4,4×8或4×4個樣本的子宏塊區(qū)兩個色度塊(Cb和Cr)的大小都是亮度塊的1/2,移動矢量也是亮度塊的移動矢量的1/2編碼宏塊的分區(qū)移動補(bǔ)償方法稱為樹型結(jié)構(gòu)移動補(bǔ)償(tree-structuredmotioncompensation)法2023年2月7日第13章MPEG-4AVC/H.264視像37/7313.6幀間預(yù)測(續(xù)2)13.6.2子像素移動矢量子像素的概念在計(jì)算移動矢量和移動補(bǔ)償量時需參考幀的樣本,因采樣的樣本數(shù)有限,在無樣本的位置可用該位置附近的樣本值通過插值得到插值樣本,這個像素稱為子像素(sub-pixel)圖13-11(a)中的符號實(shí)際樣本位置:用○表示半像素位置:兩個樣本中間的插值位置,用□表示1/4像素位置:兩個樣本之間1/4的插值位置,用△表示子像素移動補(bǔ)償是什么通過搜索插值樣本為當(dāng)前圖塊尋找比較準(zhǔn)確的移動矢量和移動補(bǔ)償量的方法2023年2月7日第13章MPEG-4AVC/H.264視像38/7313.6幀間預(yù)測(續(xù)3)圖13-11子像素移動估算概念2023年2月7日第13章MPEG-4AVC/H.264視像39/7313.6幀間預(yù)測(續(xù)4)子像素移動估算
在圖13-11(b)中的符號實(shí)心圓(●)表示整像素搜索得到的最佳匹配實(shí)心方塊(■)表示半像素搜索得到的最佳匹配實(shí)心三角形(▲)表示1/4搜索得到的最佳匹配像素移動估算舉例開始用整像素搜索得到最佳匹配(●)然后用半像素搜索得到的最佳結(jié)果(■)與整像素搜索得到的最佳匹配相比,看看匹配是否有改善,如果需要還可用1/4像素搜索最后將當(dāng)前圖塊的樣本值減去最終匹配圖塊的樣本值,就得到當(dāng)前圖塊的移動補(bǔ)償量,通常用絕對誤差之和(SAE)表示。SAE值越低,表示移動補(bǔ)償效果越好2023年2月7日第13章MPEG-4AVC/H.264視像40/7313.6幀間預(yù)測(續(xù)5)子像素移動矢量圖13-12(a)表示在當(dāng)前幀中要預(yù)測的4×4亮度塊圖13-12(b)表示整像素移動矢量,當(dāng)前塊在過去編碼后重構(gòu)的參考幀中找到的最佳匹配塊圖13-12(c)表示1/2像素移動矢量,當(dāng)前塊在過去編碼后重構(gòu)的參考幀中找到的最佳匹配塊圖13-12整像素和子像素移動矢量舉例2023年2月7日第13章MPEG-4AVC/H.264視像41/7313.6幀間預(yù)測(續(xù)6)13.6.3移動矢量預(yù)測必要性每個分量的移動矢量都要編碼和傳送,這將降低視像數(shù)據(jù)的壓縮比,選擇小的移動補(bǔ)償塊時將更嚴(yán)重預(yù)測方法通過已編碼的相鄰分區(qū)的移動矢量進(jìn)行預(yù)測,然后對實(shí)際的移動矢量和預(yù)測的移動矢量之差進(jìn)行編碼和傳送預(yù)測方法見13-13,該方法與移動補(bǔ)償塊的大小和相鄰塊的移動矢量是否可用有關(guān)在圖13-13(a)中,當(dāng)前塊E的預(yù)測矢量用塊大小相同(如16×16)的相鄰塊A、B和C進(jìn)行預(yù)測在圖13-13(b)中,當(dāng)前塊E的預(yù)測矢量用塊大小不同的A、B和C進(jìn)行預(yù)測2023年2月7日第13章MPEG-4AVC/H.264視像42/7313.6幀間預(yù)測(續(xù)7)當(dāng)前塊E的預(yù)測矢量基本上取左(A)、上(B)和右上(C)宏塊的移動矢量的中值(medianvalue),通常寫成圖13-13預(yù)測矢量的預(yù)測方法其中,是3個相鄰的移動矢量2023年2月7日第13章MPEG-4AVC/H.264視像43/7313.7變換和量化13.7.1變換類型預(yù)測誤差塊也稱為殘差塊(residualblock),每個殘差塊中的數(shù)據(jù)(稱為殘差數(shù)據(jù))都要進(jìn)行變換、量化和編碼在MPEG-4AVC/H.264中,根據(jù)殘差數(shù)據(jù)的類型采用不同的變換。在16×16預(yù)測方式下,使用3種類型的變換4×4亮度和色度陣列使用近似的DCT變換4×4亮度陣列的DC(直流分量)殘差系數(shù)使用哈達(dá)瑪變換(Hadamardtransform)2×2色度陣列的DC殘差系數(shù)使用哈達(dá)瑪變換數(shù)據(jù)的編號宏塊中的數(shù)據(jù)按照圖13-14所示的掃描順序進(jìn)行編號“-1”包含4×4亮度陣列的DC殘差系數(shù),0~15包含4×4亮度陣列的殘差系數(shù);16和17包含2×2色度陣列的DC殘差系數(shù),18~25包含4×4色度陣列的殘差系數(shù)2023年2月7日第13章MPEG-4AVC/H.264視像44/7313.7變換和量化(續(xù)1)圖13-14宏塊中的殘差塊掃描順序2023年2月7日第13章MPEG-4AVC/H.264視像45/7313.7變換和量化(續(xù)2)13.7.2DCT和IDTC變換簡化1.DCT變換若輸入的4×4陣列為X,經(jīng)過DCT變換后的輸出Y可按下式計(jì)算其中,A是正交變換矩陣,矩陣中的常數(shù)是2023年2月7日第13章MPEG-4AVC/H.264視像46/7313.7變換和量化(續(xù)3)矩陣A可用蝶形分解為兩個矩陣相乘A=BC,因此DCT變換可寫成Y=BCXCTB
經(jīng)過推導(dǎo),4×4陣列X經(jīng)DCT變換后的輸出Y可按下式計(jì)算
其中,CXCT是二維變換“核”,E是由縮放因子組成的矩陣,符號表示矩陣中的每個元素與矩陣中相同位置的元素相乘由于E矩陣中的元素是常數(shù),因此可與編碼器中的量化和解碼器中的逆量化進(jìn)行組合,這樣可簡化DCT變換的計(jì)算2023年2月7日第13章MPEG-4AVC/H.264視像47/7313.7變換和量化(續(xù)4)2.IDTC
變換DCT變換為Y=AXAT,IDTC變換為X=ATYA。由于矩陣A是正交變換矩陣,按照DCT變換的簡化方法,可從DCT變換得到簡化的IDCT變換2023年2月7日第13章MPEG-4AVC/H.264視像48/7313.7變換和量化(續(xù)5)13.7.3正變換與量化1.正變換使用d=1/2時,經(jīng)推導(dǎo),正變換具有如下形式2023年2月7日第13章MPEG-4AVC/H.264視像49/7313.7變換和量化(續(xù)6)縮放和量化數(shù)據(jù)輸入塊X經(jīng)過變換后的每個系數(shù)Wij使用標(biāo)量量化器進(jìn)行量化。設(shè)計(jì)標(biāo)量量化器和逆量化器的主要原則避免除法和浮點(diǎn)運(yùn)算要與后縮放矩陣進(jìn)行合并量化運(yùn)算按下式進(jìn)行其中,Zij是量化后的系數(shù)
Yij是使用DCT正變換后的系數(shù)
Qstep是量化階2023年2月7日第13章MPEG-4AVC/H.264視像50/7313.7變換和量化(續(xù)7)變換說明這個正變換是近似的DCT變換,因?yàn)閷和b的取值做了改動,因此變換的輸出與4×4的DCT變換不一致輸入塊X的變換轉(zhuǎn)化為計(jì)算,然后對每個系數(shù)Wij進(jìn)行縮放和量化,其中的(i,j)表示系數(shù)的位置縮放運(yùn)算()可歸并到量化計(jì)算過程中,因此Ef矩陣稱為后縮放矩陣(post-scalingmatrice)計(jì)算不需要做實(shí)際的乘法,因?yàn)樽儞Q矩陣中的元素均為±1或±2,只要做加、減和左移運(yùn)算即可圖13-15正向DCT變換和量化框圖2023年2月7日第13章MPEG-4AVC/H.264視像51/7313.7變換和量化(續(xù)8)13.7.4逆變換與逆量化逆變換使用d=1/2時,逆變換(inversetransform)按下式計(jì)算
中的因子是+1/2或-1/2,因此可用右移操作實(shí)現(xiàn)除2運(yùn)算。由于Y可預(yù)先通過前縮放矩陣(pre-scalingmatrice)Ei和使用恰當(dāng)?shù)目s放因子進(jìn)行縮放,因此除2運(yùn)算引入的誤差可得到補(bǔ)償,運(yùn)算結(jié)果無明顯的精度丟失2023年2月7日第13章MPEG-4AVC/H.264視像52/7313.7變換和量化(續(xù)9)逆量化假設(shè)仍用Zij表示量化后的系數(shù),Y'ij是經(jīng)過逆量化后的系數(shù),Qstep表示量化階,逆量化可按下式計(jì)算
,在逆變換之前可用前縮放矩陣Ei(根據(jù)位置(i,j)選取a2,ab或b2)對Y'ij進(jìn)行縮放為避免在計(jì)算過程中引入的舍入誤差,在做逆變換之前的輸入用一個常數(shù)因子64相乘(左移操作),在逆變換之后的輸出通過右移操作去掉常數(shù)因子642023年2月7日第13章MPEG-4AVC/H.264視像53/7313.7變換和量化(續(xù)10)4×4塊的逆量化和IDCT變換過程可用圖13-16表示圖13-16逆量化和逆變換框圖
將逆量化、前縮放和乘常數(shù)因子的運(yùn)算歸并在一起進(jìn)行計(jì)算時,用于逆變換的系數(shù)Wij就可按下式計(jì)算2023年2月7日第13章MPEG-4AVC/H.264視像54/7313.7變換和量化(續(xù)11)13.7.54×4亮度DC殘差系數(shù)的變換和量化變換在16×16亮度塊的幀內(nèi)預(yù)測方式下,每個4×4陣列的殘差數(shù)據(jù)使用變換,變換后的16個DC殘差系數(shù)組成4×4陣列,然后用哈達(dá)瑪變換,或稱Walsh-Hadamardtransform,Walshtransform,Walsh-Fouriertransform,是傅立葉變換的一種類型4×4亮度DC殘差系數(shù)塊使用如下形式的哈達(dá)瑪變換2023年2月7日第13章MPEG-4AVC/H.264視像55/7313.7變換和量化(續(xù)12)逆變換4×4亮度DC殘差系數(shù)塊的逆哈達(dá)瑪變換使用如下算式量化和逆量化量化和逆量化也有一套具體的計(jì)算方法,相見教材2023年2月7日第13章MPEG-4AVC/H.264視像56/7313.7變換和量化(續(xù)13)13.7.62×2色度DC系數(shù)的變換和量化變換2×2色度DC殘差系數(shù)塊使用如下形式的哈達(dá)瑪變換,逆變換2×2亮度DC系數(shù)塊的逆哈達(dá)瑪變換使用如下算式
量化和逆量化量化和逆量化也有一套具體的計(jì)算方法,相見教材2023年2月7日第13章MPEG-4AVC/H.264視像57/7313.8熵編碼MPEG-4AVC/H.264的熵編碼在以往的視像壓縮標(biāo)準(zhǔn)中,熵編碼(entropycoding)通常都采用霍夫曼編碼。為充分利用視像數(shù)據(jù)的相關(guān)性,MPEG-4AVC/H.264采用了壓縮效率更高的熵編碼技術(shù),推薦使用的3種熵編碼技術(shù)是指數(shù)葛洛姆碼(Exp-Golombcode)前后文自適應(yīng)可變長度編碼技術(shù)(CAVLC)前后文自適應(yīng)二元算術(shù)編碼技術(shù)(CABAC)CAVLC比CABACCAVLC比CABAC的計(jì)算復(fù)雜度較低,編碼效率也較低CABAC比CAVLC的編碼效率較高,計(jì)算復(fù)雜度也較高有些文獻(xiàn)指出,在相同視像質(zhì)量條件下,CABAC可比CAVLC減少9~14%的位速率,甚至更高CAVLC編碼用于所有視像類型,而CABAC只用于主流型(mainprofile)視像2023年2月7日第13章MPEG-4AVC/H.264視像58/7313.8熵編碼(續(xù)1)13.8.1指數(shù)葛洛姆編碼介紹指數(shù)葛洛姆碼Exp-Golombcode或Exponential-Golombcode的譯名霍夫曼(Huffman)變長碼的一種類型結(jié)構(gòu)規(guī)則、碼字只與指數(shù)的階有關(guān)以及不需用專門碼表指數(shù)葛洛姆碼的前11個碼字見表13-6,其中的碼號實(shí)際上就是行程長度編碼(RLC)中的行程長度指數(shù)葛洛姆碼的構(gòu)造方法見表13-7,可用下面的形式表示
[Mzeros][1][INFO]或[Prefix(前綴)][1][Suffix(后綴)]
其中,[Mzeros]或[Prefix]是其值為“0”的M位前導(dǎo)域
[INFO]或[Suffix]是M位信息域。例如,在表13-6
中,在k=0時,碼號(code_num)0的碼字沒有前導(dǎo)
“0”,也沒有后綴,碼號(code_num)1和2的碼字的
前綴和后綴都只有1位,碼號(code_num)3~6的碼字
的前綴和后綴各有2位,依此類推2023年2月7日第13章MPEG-4AVC/H.264視像59/7313.8熵編碼(續(xù)2)2023年2月7日第13章MPEG-4AVC/H.264視像60/7313.8熵編碼(續(xù)3)2023年2月7日第13章MPEG-4AVC/H.264視像61/7313.8熵編碼(續(xù)4)MPEG-4AVC/H.264使用的編碼0階葛洛姆碼,每個碼字的長度為(2M+1)位,M的長度和INFO的值可用下式分別計(jì)算,M=floor(log2(code_num+1)),floor(x)表示向下取整到≤xINFO=code_num+1-2M解碼可按下面的步驟進(jìn)行步驟1:讀前導(dǎo)域[Mzeros]步驟2:在信息域[INFO]中讀M位步驟3:code_num=2M+INFO-1,(對碼號0,INFO和M均為0)例如,0001001,code_num=+1-1=8編碼參數(shù)的映射ue(v):無符號參數(shù)直接映射,code_num=v,用于宏塊類型、參考幀索引等2023年2月7日第13章MPEG-4AVC/H.264視像62/7313.8熵編碼(續(xù)5)me(V):映射指數(shù)(MappedExponential),按標(biāo)準(zhǔn)規(guī)定的映射表將參數(shù)v映射到code_num,用于碼塊模式(coded_block_pattern)參數(shù)。碼塊模式表示宏塊中哪塊包含非零系數(shù)表13-9列出了用于幀間預(yù)測的一小部分宏塊模式se(v)
:帶符號參數(shù)映射,用于移動矢量差(MVD),量化器參數(shù)△QP等。映射關(guān)系見表13-82023年2月7日第13章MPEG-4AVC/H.264視像63/7313.8熵編碼(續(xù)6)2023年2月7日第13章MPEG-4AVC/H.264視像64/7313.8熵編碼(續(xù)7)13.8.2CAVLC編碼利用經(jīng)量化和Z字形排列后的變換系數(shù)的如下特性數(shù)據(jù)中包含很多0,可用行程長度編碼技術(shù)表達(dá)0字符串在非零系數(shù)中出現(xiàn)最多的是+/-1序列,可用+/-1的拖曳1(“TrailingOnes”或“T1s”)數(shù)目表示在相鄰塊中的非零系數(shù)的數(shù)目是相關(guān)的,可用查找表(look-uptable)對非零系數(shù)的數(shù)目進(jìn)行編碼在DC系數(shù)附近的非零系數(shù)值比較大,在高頻端附近的非零系數(shù)值比較小,可用查找表對非零系數(shù)值進(jìn)行編碼CAVLC編碼的核心技術(shù)是制定碼表可變長度編碼(VLC)碼表是根據(jù)具體數(shù)據(jù)的特點(diǎn)制定的不僅碼表的數(shù)目多而且編碼也比較繁瑣CAVLC的計(jì)算方法還在不斷改進(jìn)建議:對不需要具體設(shè)計(jì)編解碼器的讀者不一定要追究每個細(xì)節(jié),只要求了解編解碼的思想就可以,教材中的例子也可跳過
2023年2月7日第13章MPEG-4AVC/H.264視像65/7313.8熵編碼(續(xù)8)13.8.3CABAC編碼核心技術(shù)確定前后文模型在2005年發(fā)布的H.264標(biāo)準(zhǔn)中,為各種語句元素定義的前后文模型合計(jì)有459個之多CABAC的計(jì)算方法還在不斷改進(jìn)BAC編碼binaryarithmeticcoding的縮寫,二元算術(shù)編碼只用“0”和“1”兩個符號的算術(shù)編碼技術(shù)
注意:算術(shù)編碼(arithmeticcoding)是對概率已知的數(shù)值
進(jìn)行編碼的技術(shù)編碼效率都可獲得接近于熵的平均碼長缺點(diǎn)是其他符號必須轉(zhuǎn)換成用0和1構(gòu)成的位串2023年2月7日第13章MPEG-4AVC/H.264視像66/7313.8熵編碼(續(xù)9)舉例:AABAA是由兩個符號構(gòu)成的消息霍夫曼編碼技術(shù):不管它們出現(xiàn)的概率是多少,每個符號都需要1位,因此表示這個消息總共需要5位理論值由于A的概率為0.8,編碼A需要0.32位;B的概率為0.2,編碼B需要2.32位表示這個消息的位數(shù):4×0.32+1×2.32=3.6位二元算術(shù)編碼技術(shù):AABAA可用0.512和0.594之間的一個數(shù)表示。二進(jìn)制數(shù)0.1001(0.5625)就落在這個數(shù)值范圍里,而且只需4位對比較長而且兩個符號的概率偏差比較大的消息,可以獲得更高的壓縮效率2023年2月7日第13章MPEG-4AVC/H.264視像67/7313.8熵編碼(續(xù)10)CABAC編碼獲得較高編碼效率的技術(shù)按照每個語句元素的內(nèi)容選擇概率根據(jù)局部的統(tǒng)計(jì)以適應(yīng)概率估算使用二元算術(shù)編碼編碼器框圖[13]見圖13-19。CABAC經(jīng)歷的階段階段1:二元化(binarization)
對非二元值語句元素或符號(如變換系數(shù),移動矢量),首先將其轉(zhuǎn)換成稱為“位串(binstring)”的二元序列,其中的bin是位(bit)的意思;對二元值語句元素,則直接將它送到二元算術(shù)編碼器進(jìn)行編碼,如圖13-19的下半部所示。二元化后的每一位都經(jīng)歷階段2~
階段4的編碼階段2023年2月7日第13章MPEG-4AVC/H.264視像68/7313.8熵編碼(續(xù)11)階段2:前后文模型選擇(contextmodelselection)
二元化元素的一位或多位的概率模型,是根據(jù)最近編碼的元素進(jìn)行統(tǒng)計(jì)得到的模型,模型存儲的是每位的位值(binvalue)為“1”或“0”的概率。圖中的“前后文模型器”根據(jù)輸入的位來選擇前后文模型,然后將位值和前后文模型送到二元算術(shù)編碼器。階段3:二元算術(shù)編碼(binaryarithmeticcoding)
在二元算術(shù)編碼器中,根據(jù)“前后文模型器”選擇的概率模型和位值,稱為“常規(guī)編碼引擎”的編碼器對每位(“1”或“0”)進(jìn)行二元算術(shù)編碼。階段4:修改前后文模型(contextmodelupdating)
根據(jù)實(shí)際的編碼值來修改所選擇的前后文模型,也就是修改概率。例如,如果位值為“1”,“1”的頻率計(jì)數(shù)就加1。2023年2月7日第13章MPEG-4AVC/H.264視像69/7313.8熵編碼(續(xù)12)圖13-19CABAC編碼器方框圖2023年2月7日第13章MPEG-4AVC/H.264視像70/73第13章MPEG-4AVC/H.264視像(參考文獻(xiàn))參考文獻(xiàn)TheMPEGHomePage,/mpeg/MPEGIndustryForum,/tutorials.phpISO/IEC14496-10,Informationtechnology—Codingofaudio-visualobjects—Part10:AdvancedVideoCoding,Secondedition,2005-12-15ITU-TRecommendationH.264,AdvancedVideoCodingforGenericAudiovisualServices,03/2005T.Wiegand,G.J.Sullivan,G.Bjntegaard,andA.Luthra,OverviewoftheH.264/AVCvideo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項(xiàng)目利潤分配協(xié)議
- 2024年采沙場工人勞動合同2篇
- 2024幼兒園幼兒教育項(xiàng)目合作協(xié)議3篇
- 2024年環(huán)保要求土建工程合同示范文本3篇
- 2025年度數(shù)字經(jīng)濟(jì)股權(quán)優(yōu)化與產(chǎn)業(yè)生態(tài)構(gòu)建協(xié)議3篇
- 2024年酒類產(chǎn)品原料供應(yīng)合同
- 2024版區(qū)塊鏈技術(shù)應(yīng)用合同
- 2024版租賃投資回報(bào)保證協(xié)議3篇
- 2024年鐵路貨運(yùn)運(yùn)輸工程居間服務(wù)協(xié)議3篇
- 2024年綠色施工環(huán)保合同:建設(shè)工程版
- (新版)焊工(初級)理論知識考試200題及答案
- 滿堂腳手架計(jì)算書
- MRAS系統(tǒng)標(biāo)準(zhǔn)用戶手冊
- HAPS系統(tǒng)實(shí)現(xiàn)協(xié)同仿真驗(yàn)證-基礎(chǔ)電子
- 歐洲地下車庫誘導(dǎo)通風(fēng)系統(tǒng)設(shè)計(jì)手冊
- 現(xiàn)代文答題技巧課件2023年中考語文二輪復(fù)習(xí)
- YS/T 673-2013還原鈷粉
- TY/T 3001-2006中國青少年兒童 手腕骨成熟度及評價方法
- GB/T 32545-2016鐵礦石產(chǎn)品等級的劃分
- 福建省地方標(biāo)準(zhǔn)《先張法預(yù)應(yīng)力混凝土管樁基礎(chǔ)技術(shù)規(guī)程》DBJ13-2023
- 危險作業(yè)監(jiān)護(hù)人員培訓(xùn)
評論
0/150
提交評論