一、H.264的制定過(guò)程和應(yīng)用場(chǎng)合
在制訂完最初的H.263標(biāo)準(zhǔn)之后,ITU-T的視頻編碼專家組(VCEG)將開(kāi)發(fā)工作分為兩部分:一部分稱之為“短期(short-term)”計(jì)劃,目的是給H.263增加一些新的特性(這一計(jì)劃開(kāi)發(fā)出了H.263+和H.263++);另一部分被稱為“長(zhǎng)期(long-term)”計(jì)劃,其最初的目標(biāo)就是要制定出一個(gè)比當(dāng)時(shí)其他的視頻編碼標(biāo)準(zhǔn)效率提高一倍的新標(biāo)準(zhǔn)。這一計(jì)劃在1997年開(kāi)始,其成果就是作為H.264前身的H.26L(起初叫H.263L)。在將近2001年底,由于H.26L優(yōu)越的性能,ISO/IEC的MPEG專家組加入到VCEG中來(lái),共同成立了聯(lián)合視頻小組(JVT),接管了H.26L的開(kāi)發(fā)工作。這個(gè)組織的目標(biāo)是:“研究新的視頻編碼算法,其目標(biāo)是在性能上要比以往制定的最好的標(biāo)準(zhǔn)提高很多。”
這一標(biāo)準(zhǔn)正式成為國(guó)際標(biāo)準(zhǔn)是2003年3月在泰國(guó)Pattaya舉行的JVT第7次會(huì)議上通過(guò)的。由于該標(biāo)準(zhǔn)是由兩個(gè)不同的組織共同制定的,因此有兩個(gè)不同的名稱:在ITU-T中,它的名字叫H.264;而在ISO/IEC中,它被稱為MPEG-4的第10部分,即高級(jí)視頻編碼(AVC)。
H.264的應(yīng)用場(chǎng)合相當(dāng)廣泛,包括可視電話(固定或移動(dòng))、實(shí)時(shí)視頻會(huì)議系統(tǒng)、視頻監(jiān)控系統(tǒng)、因特網(wǎng)視頻傳輸以及多媒體信息存儲(chǔ)等。
目前在國(guó)際上,加拿大的UB Video公司開(kāi)發(fā)出了一套基于TMS320C64x系列的H.26L實(shí)時(shí)視頻通信系統(tǒng),它可以在160kbit/s的碼率下獲得與H.263+在320kbit/s下相同的圖像質(zhì)量。另一家加拿大的公司VideoLocus通過(guò)在系統(tǒng)中插入一塊基于FPGA的硬件擴(kuò)展卡,在P4平臺(tái)上實(shí)現(xiàn)了H.264的實(shí)時(shí)編解碼。
二、 H.264的特點(diǎn)
H.264在編碼框架上還是沿用以往的MC-DCT結(jié)構(gòu),即運(yùn)動(dòng)補(bǔ)償加變換編碼的混合(hybrid)結(jié)構(gòu),因此它保留了一些先前標(biāo)準(zhǔn)的特點(diǎn),如不受限制的運(yùn)動(dòng)矢量(unrestricted motion vectors),對(duì)運(yùn)動(dòng)矢量的中值預(yù)測(cè)(median prediction)等。然而,以下介紹的技術(shù)使得H.264比之前的視頻編碼標(biāo)準(zhǔn)在性能上有了很大的提高。應(yīng)當(dāng)指出的是,這個(gè)提高不是單靠某一項(xiàng)技術(shù)實(shí)現(xiàn)的,而是由各種不同技術(shù)帶來(lái)的小的性能改進(jìn)而共同產(chǎn)生的。
1. 幀內(nèi)預(yù)測(cè)
對(duì)I幀的編碼是通過(guò)利用空間相關(guān)性而非時(shí)間相關(guān)性實(shí)現(xiàn)的。以前的標(biāo)準(zhǔn)只利用了一個(gè)宏塊(macroblock)內(nèi)部的相關(guān)性,而忽視了宏塊之間的相關(guān)性,所以一般編碼后的數(shù)據(jù)量較大。為了能進(jìn)一步利用空間相關(guān)性,H.264引入了幀內(nèi)預(yù)測(cè)以提高壓縮效率。簡(jiǎn)單地說(shuō),幀內(nèi)預(yù)測(cè)編碼就是用周圍鄰近的像素值來(lái)預(yù)測(cè)當(dāng)前的像素值,然后對(duì)預(yù)測(cè)誤差進(jìn)行編碼。這種預(yù)測(cè)是基于塊的,對(duì)于亮度分量(1uma),塊的大小可以在16×16和4×4之間選擇,16×16塊有4種預(yù)測(cè)模式,4×4塊有9種預(yù)測(cè)模式;對(duì)于色度分量(chroma),預(yù)測(cè)是對(duì)整個(gè)8×8塊進(jìn)行的,有4種預(yù)測(cè)模式。除了DC預(yù)測(cè)外,其他每種預(yù)測(cè)模式對(duì)應(yīng)不同方向上的預(yù)測(cè)。
2. 幀間預(yù)測(cè)
與以往的標(biāo)準(zhǔn)一樣,H.264使用運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償來(lái)消除時(shí)間冗余,但是它具有以下五個(gè)不同的特點(diǎn):
(1)預(yù)測(cè)時(shí)所用塊的大小可變
由于基于塊的運(yùn)動(dòng)模型假設(shè)塊內(nèi)的所有像素都做了相同的平移,在運(yùn)動(dòng)比較劇烈或者運(yùn)動(dòng)物體的邊緣處這一假設(shè)會(huì)與實(shí)際出入較大,從而導(dǎo)致較大的預(yù)測(cè)誤差,這時(shí)減小塊的大小可以使假設(shè)在小的塊中依然成立。另外小的塊所造成的塊效應(yīng)相對(duì)也小,所以一般來(lái)說(shuō)小的塊可以提高預(yù)測(cè)的效果。
為此,H.264一共采用了7種方式對(duì)一個(gè)宏塊進(jìn)行分割,每種方式下塊的大小和形狀都不相同,這就使編碼器可以根據(jù)圖像的內(nèi)容選擇最好的預(yù)測(cè)模式。
與僅使用16×16塊進(jìn)行預(yù)測(cè)相比,使用不同大小和形狀的塊可以使碼率節(jié)省15%以上。
(2)更精細(xì)的預(yù)測(cè)精度
在H.264中,Luma分量的運(yùn)動(dòng)矢量(MV)使用1/4像素精度。Chroma分量的MV由luma MV導(dǎo)出,由于chroma分辨率是luma的一半(對(duì)4:2:0),所以其MV精度將為1/8,這也就是說(shuō)1個(gè)單位的chroma MV所代表的位移僅為chroma分量取樣點(diǎn)間距離的1/8。如此精細(xì)的預(yù)測(cè)精度較之整數(shù)精度可以使碼率節(jié)省超過(guò)20%。
(3)多參考幀
H.264支持多參考幀預(yù)測(cè)(multiple reference frames),即可以有多于一個(gè)(最多5個(gè))的在當(dāng)前幀之前解碼的幀可以作為參考幀產(chǎn)生對(duì)當(dāng)前幀的預(yù)測(cè)(motion-compensated prediction)。這適用于視頻序列中含有周期性運(yùn)動(dòng)的情況。采用這一技術(shù),可以改善運(yùn)動(dòng)估計(jì)(ME)的性能,提高H.264解碼器的錯(cuò)誤恢復(fù)能力,但同時(shí)也增加了緩存的容量以及編解碼器的復(fù)雜性。不過(guò),H.264的提出是基于半導(dǎo)體技術(shù)的飛速發(fā)展,因此這兩個(gè)負(fù)擔(dān)在不久的將來(lái)會(huì)變得微不足道。較之只使用一個(gè)參考幀,使用5個(gè)參考幀可以節(jié)省碼率5~10%。
(4)抗塊效應(yīng)濾波器
抗塊效應(yīng)濾波器(Deblocking Filter),它的作用是消除經(jīng)反量化和反變換后重建圖像中由于預(yù)測(cè)誤差產(chǎn)生的塊效應(yīng),即塊邊緣處的像素值跳變,從而一來(lái)改善圖像的主觀質(zhì)量,二來(lái)減少預(yù)測(cè)誤差。H.264中的Deblocking Filter還能夠根據(jù)圖像內(nèi)容做出判斷,只對(duì)由于塊效應(yīng)產(chǎn)生的像素值跳變進(jìn)行平滑,而對(duì)圖像中物體邊緣處的像素值不連續(xù)給予保留,以免造成邊緣模糊。與以往的Deblocking Filter不同的是,經(jīng)過(guò)濾波后的圖像將根據(jù)需要放在緩存中用于幀間預(yù)測(cè),而不是僅僅在輸出重建圖像時(shí)用來(lái)改善主觀質(zhì)量,也就是說(shuō)該濾波器位于解碼環(huán)中而非解碼環(huán)的輸出外,因而它又稱作Loop Filter。需要注意的是,對(duì)于幀內(nèi)預(yù)測(cè),使用的是未經(jīng)過(guò)濾波的重建圖像。
3.整數(shù)變換
H.264對(duì)幀內(nèi)或幀間預(yù)測(cè)的殘差(residual)進(jìn)行DCT變換編碼。為了克服浮點(diǎn)運(yùn)算帶來(lái)的硬件設(shè)計(jì)復(fù)雜,更重要的是舍入誤差造成的編碼器和解碼器之間不匹配(mismatch)的問(wèn)題,新標(biāo)準(zhǔn)對(duì)DCT的定義做了修改,使得變換僅用整數(shù)加減法和移位操作即可實(shí)現(xiàn),這樣在不考慮量化影響的情況下,解碼端的輸出可以準(zhǔn)確地恢復(fù)編碼端的輸入。當(dāng)然這樣做的代價(jià)是壓縮性能的略微下降。此外,該變換是針對(duì)4×4塊進(jìn)行的,這也有助于減少塊效應(yīng)。
為了進(jìn)一步利用圖像的空間相關(guān)性,在對(duì)chroma的預(yù)測(cè)殘差和16×16幀內(nèi)預(yù)測(cè)的預(yù)測(cè)殘差進(jìn)行上述整數(shù)DCT變換之后,標(biāo)準(zhǔn)還將每個(gè)4×4變換系數(shù)塊中的DC系數(shù)組成2×2或4×4大小的塊,進(jìn)一步做哈達(dá)瑪(Hadamard)變換。
4.熵編碼
如果是Slice層預(yù)測(cè)殘差,H.264有兩種熵編碼的方式:基于上下文的自適應(yīng)變長(zhǎng)碼(Context-based Adaptive Variable Length Coding,CAVLC)和基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(Context-based Adaptive Binary Arithmetic Coding,CABAC);如果不是預(yù)測(cè)殘差,H.264采用Exp-Golomb碼或CABAC編碼,視編碼器的設(shè)置而定。
(1)CAVLC
VLC的基本思想就是對(duì)出現(xiàn)頻率大的符號(hào)使用較短的碼字,而出現(xiàn)頻率小的符號(hào)采用較長(zhǎng)的碼字。這樣可以使得平均碼長(zhǎng)最小。
在CAVLC中,H.264采用若干VLC碼表,不同的碼表對(duì)應(yīng)不同的概率模型。編碼器能夠根據(jù)上下文,如周圍塊的非零系數(shù)或系數(shù)的絕對(duì)值大小,在這些碼表中自動(dòng)地選擇,最大可能地與當(dāng)前數(shù)據(jù)的概率模型匹配,從而實(shí)現(xiàn)了上下文自適應(yīng)的功能。
(2)CABAC
算術(shù)編碼是一種高效的熵編碼方案,其每個(gè)符號(hào)所對(duì)應(yīng)的碼長(zhǎng)被認(rèn)為是分?jǐn)?shù)。由于對(duì)每一個(gè)符號(hào)的編碼都與以前編碼的結(jié)果有關(guān),所以它考慮的是信源符號(hào)序列整體的概率特性,而不是單個(gè)符號(hào)的概率特性,因而它能夠更大程度地逼近信源的極限熵 ,降低碼率。
為了繞開(kāi)算術(shù)編碼中無(wú)限精度小數(shù)的表示問(wèn)題以及對(duì)信源符號(hào)概率進(jìn)行估計(jì),現(xiàn)代的算術(shù)編碼多以有限狀態(tài)機(jī)的方式實(shí)現(xiàn),H.264的CABAC便是一個(gè)例子,其他的例子還有JPEG2000。在CABAC中,每編碼一個(gè)二進(jìn)制符號(hào),編碼器就會(huì)自動(dòng)調(diào)整對(duì)信源概率模型(用一個(gè)“狀態(tài)”來(lái)表示)的估計(jì),隨后的二進(jìn)制符號(hào)就在這個(gè)更新了的概率模型基礎(chǔ)上進(jìn)行編碼。這樣的編碼器不需要信源統(tǒng)計(jì)特性的先驗(yàn)知識(shí),而是在編碼過(guò)程中自適應(yīng)地估計(jì)。顯然,與CAVLC編碼中預(yù)先設(shè)定好若干概率模型的方法比較起來(lái),CABAC有更大的靈活性,可以獲得更好的編碼性能——大約10%碼率的降低。
以上介紹的特點(diǎn)都是用來(lái)提高H.264的編碼性能的,此外H.264還具有很好的錯(cuò)誤恢復(fù)能力(error resilience)和網(wǎng)絡(luò)適應(yīng)性(network adaptability),下面介紹其中的一些特點(diǎn)。
5. SP Slice
SP Slice的主要目的是用于不同碼流的切換(switch),此外也可用于碼流的隨機(jī)訪問(wèn)、快進(jìn)快退和錯(cuò)誤恢復(fù)。這里所說(shuō)的不同碼流是指在不同比特率限制下對(duì)同一信源進(jìn)行編碼所產(chǎn)生的碼流。設(shè)切換前傳輸碼流中的最后一幀為Al,切換后的目標(biāo)碼流第一幀為B2(假設(shè)是P幀),由于B2的參考幀不存在,所以直接切換顯然會(huì)導(dǎo)致很大的失真,而且這種失真會(huì)向后傳遞。一種簡(jiǎn)單的解決方法就是傳輸幀內(nèi)編碼的B2,但是一般I幀的數(shù)據(jù)量很大,這種方法會(huì)造成傳輸碼率的陡然增加。根據(jù)前面的假設(shè),由于是對(duì)同一信源進(jìn)行編碼,盡管比特率不同,但切換前后的兩幀必然有很多相關(guān)性,所以編碼器可以將Al作為B2的參考幀,對(duì)B2進(jìn)行幀間預(yù)測(cè),預(yù)測(cè)誤差就是SP Slice,然后通過(guò)傳遞SP Slice完成碼流的切換。與常規(guī)P幀不同的是,生成SP Slice所進(jìn)行的預(yù)測(cè)是在Al和B2的變換域中進(jìn)行的。SP Slice要求切換后B2的圖像應(yīng)和直接傳送目標(biāo)碼流時(shí)一樣。顯然,如果切換的目標(biāo)是毫不相關(guān)的另一碼流,SP Slice就不適用了。
6.靈活的宏塊排序
靈活的宏塊排序(flexible macroblock ordering,F(xiàn)MO),是指將一幅圖像中的宏塊分成幾個(gè)組,分別獨(dú)立編碼,某一個(gè)組中的宏塊不一定是在常規(guī)的掃描順序下前后連續(xù),而可能是隨機(jī)地分散在圖像中的各個(gè)不同位置。這樣在傳輸時(shí)如果發(fā)生錯(cuò)誤,某個(gè)組中的某些宏塊不能正確解碼時(shí),解碼器仍然可以根據(jù)圖像的空間相關(guān)性依靠其周圍正確譯碼的像素對(duì)其進(jìn)行恢復(fù)。
三、H.264的具體內(nèi)容
通過(guò)上面的介紹,毋庸置疑,H.264在壓縮性能上要比其他標(biāo)準(zhǔn)優(yōu)越,甚至包括MPEG-4(2)(MPEG-4第2部分)。眾所周知,MPEG-4(2)最大的特點(diǎn)就是面向?qū)ο蟮木幋a,對(duì)象概念的提出是具有先進(jìn)性的,在對(duì)象已經(jīng)提取出來(lái)的條件下確實(shí)能夠獲得很高的壓縮比,但是如何提取對(duì)象成為擺在人們面前的一大難題。一個(gè)真正的對(duì)象提取算法應(yīng)該是像人一樣具有智能,能夠像人一樣進(jìn)行思維并且是能夠?qū)W習(xí)的,而目前的技術(shù)根本達(dá)不到這點(diǎn),雖然有大量的文獻(xiàn)介紹對(duì)象提取的方法,但我認(rèn)為這些只是權(quán)宜之計(jì),充其量只是往正確的方向上邁出的一小步。正因?yàn)槿绱耍琈PEG-4(2)面向?qū)ο缶幋a的思想過(guò)于超前。ITU-T的VCEG放棄了對(duì)象這一不現(xiàn)實(shí)的概念,與目前科學(xué)技術(shù)的發(fā)展水平相適應(yīng),提出了H.264(10)(MPEG-4第10部分)(H.26L)視頻編碼標(biāo)準(zhǔn),這是難能可貴的,更重要的是它同樣實(shí)現(xiàn)了MPEG-4(2)面向?qū)ο缶幋a的目標(biāo)之一——高壓縮比。
視頻信號(hào)的數(shù)據(jù)量是很大的,為了達(dá)到高效的壓縮,必須充分利用各種冗余,一般來(lái)講,視頻序列里的冗余包括兩類,一類是統(tǒng)計(jì)冗余,它包含:(1)頻譜冗余,指色彩分量之間的相關(guān)性;(2)空間冗余;(3)時(shí)間冗余,這是視頻壓縮區(qū)別于靜止圖像壓縮的根本點(diǎn),視頻壓縮主要利用時(shí)間冗余來(lái)實(shí)現(xiàn)大的壓縮比。第二類是視覺(jué)生理冗余,這是由于人類的視覺(jué)系統(tǒng)(HVS)特性造成的,比如人眼對(duì)色彩分量的高頻分量沒(méi)有對(duì)亮度分量的高頻分量敏感,對(duì)圖像高頻(即細(xì)節(jié))處的噪聲不敏感等。
針對(duì)這些冗余,視頻壓縮算法采用了不同的方法加以利用,但主要的考慮集中在空間冗余和時(shí)間冗余上。與以前的標(biāo)準(zhǔn)類似,H.264也采用了所謂的混合(hybrid)結(jié)構(gòu),即對(duì)空間冗余和時(shí)間冗余分別進(jìn)行處理。對(duì)空間冗余,標(biāo)準(zhǔn)通過(guò)變換及量化達(dá)到消除的目的,這樣編碼的幀叫做I幀;而時(shí)間冗余則是通過(guò)幀間預(yù)測(cè),即運(yùn)動(dòng)估計(jì)和補(bǔ)償來(lái)去除的,這樣編碼的幀叫做P幀或B幀。
與以前的標(biāo)準(zhǔn)不同的是,H.264在編碼I幀時(shí),采用了幀內(nèi)預(yù)測(cè),然后對(duì)預(yù)測(cè)誤差進(jìn)行編碼。這樣就充分利用了空間相關(guān)性,提高了編碼效率。H.264的幀內(nèi)編碼框圖(詳圖請(qǐng)參見(jiàn)《中國(guó)多媒體視訊》第七期)所示。 H.264幀內(nèi)預(yù)測(cè)以16×16的宏塊為基本單位。首先,編碼器將與當(dāng)前宏塊同一幀的鄰近像素作為參考,產(chǎn)生對(duì)當(dāng)前宏塊的預(yù)測(cè)值,然后對(duì)預(yù)測(cè)殘差進(jìn)行變換與量化,再對(duì)變換與量化后的結(jié)果做熵編碼。熵編碼的結(jié)果就可以形成碼流了。由于在解碼器端能夠得到的參考數(shù)據(jù)都是經(jīng)過(guò)反變換與反量化后的重建圖像,所以為了使編解碼一致,編碼器端用于預(yù)測(cè)的參考數(shù)據(jù)就和解碼器端一樣,也是經(jīng)過(guò)反變換與反量化后的重建圖像。需要注意的一點(diǎn)是,用于幀內(nèi)預(yù)測(cè)的這些參考數(shù)據(jù)不需要經(jīng)過(guò)Deblocking Filter濾波,這與幀間編碼的參考圖像是不同的。
1、幀內(nèi)預(yù)測(cè)
亮度Intra--16×16幀內(nèi)預(yù)測(cè)模式如圖(詳圖請(qǐng)參見(jiàn)《中國(guó)多媒體視訊》第七期)所示。
亮度Intra--16×16幀內(nèi)預(yù)測(cè)模式
色差分量的8×8 4種幀內(nèi)預(yù)測(cè)模式如圖(詳圖請(qǐng)參見(jiàn)《中國(guó)多媒體視訊》第七期)所示。
色差分量的8×8 4種幀內(nèi)預(yù)測(cè)模式
亮度分量的4×4 8種方向幀內(nèi)預(yù)測(cè)模式。
圖5亮度分量的4×4 8種方向幀內(nèi)預(yù)測(cè)模式
2、 變換與量化
將圖像的當(dāng)前像素值與預(yù)測(cè)值相減,就形成了預(yù)測(cè)殘差。殘差內(nèi)仍然含有空間冗余,為了消除這種冗余,通常采用變換編碼,即變換——量化——熵編碼三步。變換并不壓縮數(shù)據(jù),它只是消除數(shù)據(jù)中的相關(guān)性,或者說(shuō)將數(shù)據(jù)中的冗余(或相關(guān)性)以一種便于隨后進(jìn)行熵編碼的方式表現(xiàn)出來(lái)。壓縮是在量化和熵編碼步驟中完成的。此外為了進(jìn)一步減少數(shù)據(jù)量,編碼器還對(duì)變換后的系數(shù)進(jìn)行量化,它的實(shí)質(zhì)是減少數(shù)據(jù)的取值范圍以減少每一個(gè)符號(hào)的熵。它會(huì)造成信息的損失,是有損編碼的一個(gè)重要步驟,它也是控制圖像率失真(R-D)特性的一個(gè)主要手段。在H.264中,變換與量化兩個(gè)步驟緊密相連。
整數(shù)DCT正變換的公式
H.264的反DCT變換公式
圖像編碼中常用的變換是DCT,因?yàn)樗谀撤N條件下近似于理論上最優(yōu)的K-L變換。但是如果直接采用DCT的定義進(jìn)行變換,會(huì)帶來(lái)兩個(gè)問(wèn)題:一個(gè)是需要進(jìn)行浮點(diǎn)數(shù)操作,從而造成系統(tǒng)設(shè)計(jì)上的復(fù)雜性;第二,由于變換核都是無(wú)理數(shù),而有限精度的浮點(diǎn)數(shù)不可能精確地表示無(wú)理數(shù),再加上浮點(diǎn)數(shù)的運(yùn)算可能會(huì)引入舍入誤差,這就使得在具體實(shí)現(xiàn)時(shí)會(huì)導(dǎo)致編解碼的不一致(mismatch),即反變換的輸出結(jié)果和正變換的輸入不一樣。為了克服這些問(wèn)題,H.264采用整數(shù)DCT變換,使得變換操作僅用整數(shù)加減和移位操作就可以完成,這樣既降低了設(shè)計(jì)復(fù)雜度,又避免了編解碼mismatch,而由此帶來(lái)的編碼性能的減少微乎其微。需要注意的是,此時(shí)的變換已經(jīng)不是真正的DCT,仍然稱其為DCT變換只是為了說(shuō)明它是由DCT推導(dǎo)而來(lái),且為了和另一個(gè)變換(Hadamard變換)相區(qū)別罷了。
H.264編碼器的變換與量化過(guò)程見(jiàn)七期雜志。圖中輸入為預(yù)測(cè)殘差,輸出為準(zhǔn)備進(jìn)行熵編碼的數(shù)據(jù),一共有五類。為了更大程度地利用空間冗余,對(duì)于Intra 16×16幀內(nèi)預(yù)測(cè)模式,H.264在對(duì)16×16的hma分量的16個(gè)4×4塊進(jìn)行DCT變換后,將每個(gè)4×4塊的DC系數(shù)(還沒(méi)有經(jīng)過(guò)量化)提取出來(lái),組成一個(gè)4×4的luma DC塊,對(duì)其再進(jìn)行4×4的哈達(dá)瑪(Hadamard)變換。同樣,對(duì)8×8 chroma分量的4個(gè)4×4塊進(jìn)行DCT變換后,也將每個(gè)4×4塊的DC系數(shù)提取出來(lái),組成一個(gè)2×2的chroma DC塊,對(duì)其進(jìn)行2×2的Hadamard變換,如圖7所示。圖中的數(shù)字顯示的是所代表的塊在碼流中的順序。對(duì)亮度分量直流系數(shù)的附加的(4×4)4階Hadamard變換 對(duì)色度分量直流系數(shù)進(jìn)行附加的(2×2)2階Hadamard變換 DC系數(shù)的處理如圖(詳圖請(qǐng)參見(jiàn)《中國(guó)多媒體視訊》第七期)所示。
圖中的輸入是經(jīng)過(guò)解碼(CAVLC或CABAC)后的結(jié)果,輸出的數(shù)據(jù)加上預(yù)測(cè)值后成為重建圖像,重建圖像用于幀內(nèi)預(yù)測(cè),或經(jīng)過(guò)Deblocking Filter后顯示并根據(jù)需要存放于緩存中,用于幀間預(yù)測(cè)。這里有一個(gè)地方需要注意,對(duì)于DC系數(shù)(無(wú)論是Intra 16×16 luma DC還是chroma DC),解碼器是先反變換再反量化,這樣做的原因在后面的內(nèi)容中將做解釋。MUX是指將DC系數(shù)按圖8裝配到AC系數(shù)中,形成完整的4×4塊,用于后續(xù)的反DCT變換。
目前H.264的主要不足就是復(fù)雜度大,但隨著技術(shù)的不斷進(jìn)步,特別是半導(dǎo)體技術(shù)的發(fā)展,芯片的處理能力和存儲(chǔ)器的容量都將會(huì)有很大的提高,所以今后H.264必然煥發(fā)出蓬勃的生命力,逐漸成為市場(chǎng)的主角。