一 H.264的主要技術(shù)特征分析
H.264的編解碼框架與以前提出的標(biāo)準(zhǔn),如H.261、H.263及MPEG-1/2/4并無(wú)顯著變化,也是基于混合編碼的方案:以運(yùn)動(dòng)矢量代表圖像序列各幀的運(yùn)動(dòng)內(nèi)容,使用前面已解碼幀對(duì)其進(jìn)行運(yùn)動(dòng)估計(jì)和補(bǔ)償或使用幀內(nèi)預(yù)測(cè)技術(shù),所得的圖像參差值要經(jīng)過(guò)變換、量化、熵編碼等部分的處理。所以,新標(biāo)準(zhǔn)的性能提升在于各個(gè)部分的技術(shù)方案的改進(jìn)及新算法的應(yīng)用。
新標(biāo)準(zhǔn)在提高圖像傳輸?shù)娜蒎e(cuò)性方面做了大量工作,重新定義了適于圖像的結(jié)構(gòu)劃分。在編碼時(shí),圖像幀各部分被劃分到多個(gè)Slice結(jié)構(gòu)中去,每個(gè)Slice都可以被獨(dú)立解碼,不受其它部分的影響。Slice由圖像最基本的結(jié)構(gòu)—宏塊組成,每個(gè)宏塊包含一個(gè)16×16的亮度塊和兩個(gè)8×8的色度塊。
為進(jìn)一步提高魯棒性,整個(gè)系統(tǒng)被劃分為視頻編碼層和網(wǎng)絡(luò)抽象層。視頻編碼層主要描述要傳輸?shù)囊曨l數(shù)據(jù)所承載的視頻內(nèi)容。而網(wǎng)絡(luò)抽象層則是考慮不同的應(yīng)用,如視頻會(huì)議通信、H.32X連續(xù)包的視頻傳輸或RTP/UDP/IP的通信。
H.264標(biāo)準(zhǔn)分成三個(gè)框架(Profile):Baseline、Main Profile及X Profile,代表針對(duì)不同應(yīng)用的算法集及技術(shù)限定。Baseline主要包含低復(fù)雜度、低延時(shí)的技術(shù)特征,主要針對(duì)交互式的應(yīng)用,考慮到惡劣環(huán)境下的容錯(cuò)性,內(nèi)容基本都被其它更高級(jí)別的Profile所包含;Main Profile是針對(duì)更高編碼效率的應(yīng)用,如視頻廣播;X Profile 的設(shè)計(jì)主要針對(duì)流媒體的應(yīng)用,在這一框架中所有容錯(cuò)技術(shù)、對(duì)比特流的靈活訪問(wèn)及切換技術(shù)都將包括其中。
1. Baseline的解碼器只對(duì)I Slice及P Slice進(jìn)行操作
對(duì)于幀間預(yù)測(cè),相比以前的標(biāo)準(zhǔn),為了更精確地對(duì)圖像的運(yùn)動(dòng)內(nèi)容進(jìn)行預(yù)測(cè)補(bǔ)償,新標(biāo)準(zhǔn)允許宏塊更進(jìn)一步劃分為16×16、16×8、8×16、8×8、8×4、4×8、4×4的子塊;運(yùn)動(dòng)估計(jì)精確到經(jīng)由6-tap濾波器得到的1/4象素位置;運(yùn)動(dòng)矢量由相鄰塊預(yù)測(cè)得到,其預(yù)測(cè)的差值被編碼傳輸。H.264支持多參考幀的預(yù)測(cè),規(guī)定運(yùn)動(dòng)估計(jì)使用的參考幀數(shù)最多可達(dá)15幀,多參考幀的使用大大提高了對(duì)圖像傳輸?shù)娜蒎e(cuò)性,抑制了錯(cuò)誤在空間和時(shí)間上的蔓延。
對(duì)于所有的Slice編碼類(lèi)型,H.264支持兩類(lèi)幀內(nèi)編碼:4×4與16×16編碼模式。對(duì)于4×4模式,每一個(gè)亮度4×4塊有8種不同方向上的預(yù)測(cè)模式及DC預(yù)測(cè)模式;對(duì)于16×16模式,每個(gè)16×16亮度塊有4種幀內(nèi)預(yù)測(cè)模式。而對(duì)于宏塊的8×8色度采樣,采用與亮度16×16幾乎相同的預(yù)測(cè)模式。為了保證Slice的編碼獨(dú)立性,幀內(nèi)預(yù)測(cè)是不允許跨越Slice邊界的。
對(duì)于變換、量化部分,不同于以前標(biāo)準(zhǔn)對(duì)預(yù)測(cè)參差值的變換編碼使用DCT變換,H.264使用了簡(jiǎn)單的整數(shù)變換。這種變換與DCT相比,壓縮性能幾乎相同且有許多優(yōu)勢(shì),其核心變換的計(jì)算只使用加減、移位運(yùn)算,避免了精度的損失。對(duì)變換參差系數(shù)的量化使用了52級(jí)步長(zhǎng)的量化器,而H.263標(biāo)準(zhǔn)只有31級(jí)。量化步長(zhǎng)以12.5%遞增,量化步長(zhǎng)范圍的擴(kuò)大使得編碼器能夠更靈活、精確地進(jìn)行控制,在比特率和圖像質(zhì)量之間達(dá)到折中。
對(duì)熵編碼部分,對(duì)于要傳輸?shù)牧炕儞Q系數(shù),當(dāng)使用基于上下文的變長(zhǎng)編碼(CAVLC)時(shí),根據(jù)前面已編碼傳輸?shù)牧炕儞Q系數(shù)值的大小來(lái)選擇接下來(lái)系數(shù)編碼要使用的變長(zhǎng)編碼表。由于變長(zhǎng)編碼表的設(shè)計(jì)是基于相應(yīng)的統(tǒng)計(jì)條件,所以其性能要優(yōu)于使用單一變長(zhǎng)編碼表。對(duì)其它數(shù)據(jù)如頭信息等,使用一種單一的變長(zhǎng)編碼表(Exp-Golomb Code)。
新標(biāo)準(zhǔn)仍然使用基于塊的預(yù)測(cè)及重構(gòu)方式,為了去除由此產(chǎn)生的影響圖像主觀質(zhì)量的方塊效應(yīng),H.264使用了去塊效應(yīng)濾波器。其主要思想是當(dāng)塊邊界上兩邊差較小時(shí),就使用濾波器使差別“平滑”掉;若邊界上圖像特征明顯,就不使用濾波。這樣既是為了減弱“塊效應(yīng)”的影響,又避免了濾掉圖像的客觀特征,同時(shí)在相同主觀質(zhì)量下使得比特率減少5~10%。
對(duì)于圖像數(shù)據(jù)的組織及傳輸,在H.264標(biāo)準(zhǔn)中的圖像宏塊能夠以靈活的宏塊組織順序(FMO)劃分為多個(gè)Slice Group;Slice之間相互獨(dú)立,可以任意的順序傳輸?shù)浇獯a端(ASO)。在比特流中Slice可以使用重復(fù)的方式(RS)傳輸,在Slice數(shù)據(jù)出錯(cuò)的情況下可用來(lái)進(jìn)行恢復(fù),增強(qiáng)了圖像傳輸?shù)聂敯粜。同時(shí)Slice間的相互獨(dú)立性抑制了錯(cuò)誤的空間傳播,提高了比特流的容錯(cuò)性。
2. Main Profile的技術(shù)特征
Main Profile包含Baseline Profile的所有算法并具有額外的技術(shù)特征,但它并不支持FMO、ASO及RS等技術(shù),只支持對(duì)I、P、B Slice的處理操作。
在此框架內(nèi)提出了適配塊劃分尺寸的變換(ABT)這一概念。此概念是針對(duì)幀間編碼的,其主要思想是將對(duì)預(yù)測(cè)參差進(jìn)行變換編碼的塊尺寸與用來(lái)進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)膲K尺寸聯(lián)系起來(lái)。這樣就盡可能地利用最大的信號(hào)長(zhǎng)度進(jìn)行變換編碼。但是,由于復(fù)雜度的原因,進(jìn)行變換的最大塊尺寸被限制在8×8以下。
對(duì)熵編碼部分,為更高效地進(jìn)行編碼,這里使用了基于上下文的算術(shù)編碼(CABAC),使熵編碼的性能進(jìn)一步提高。與CAVLC相比較,在相同圖像質(zhì)量下,編碼電視信號(hào)使用CABAC將會(huì)使比特率減少10~15%。
另外,Main Profile不支持多個(gè)Slice Group的劃分。
3. 相關(guān)的編碼問(wèn)題
如何對(duì)已提出的預(yù)測(cè)模式進(jìn)行選擇(Mode Decision)和使用運(yùn)動(dòng)估計(jì)策略(ME)歷來(lái)都是視頻編碼實(shí)現(xiàn)的重點(diǎn)研究課題。在H.263標(biāo)準(zhǔn)的實(shí)現(xiàn)軟件中,對(duì)模式的選擇是簡(jiǎn)單的基于對(duì)閥值的比較。在新標(biāo)準(zhǔn)的測(cè)試軟件中使用了拉格朗日率失真優(yōu)化策略,它基于使用每種圖像塊尺寸和每種預(yù)測(cè)模式而產(chǎn)生的參差及其傳輸?shù)拇a率。這樣,模式選擇可以取得優(yōu)化的率失真性能,但這是以提高運(yùn)算復(fù)雜度為代價(jià)的。此優(yōu)化操作是對(duì)下面拉格朗日函數(shù)的最小化:
J=SATD+λ·R
式中,R—對(duì)應(yīng)傳輸各部分的比特率;λ—優(yōu)化參數(shù)(與量化參數(shù)有很強(qiáng)的相關(guān)性);SATD—經(jīng)過(guò)哈德曼變換的4×4塊的預(yù)測(cè)參差絕對(duì)值總和。
對(duì)于所有幀內(nèi)、幀間宏塊編碼模式及多參考幀的選擇都通過(guò)對(duì)拉格朗日函數(shù)的最小化來(lái)實(shí)現(xiàn)。通常,視頻標(biāo)準(zhǔn)只包括解碼規(guī)范,而模式選擇的技術(shù)研究是屬于編碼端的范疇,所以不列在標(biāo)準(zhǔn)之內(nèi)。
二 H.264與其它標(biāo)準(zhǔn)的性能比較
為了闡述H.264的編碼效率,我們將其與其它標(biāo)準(zhǔn)如MPEG-2、H.263、MPEG-4等作比較。使用QCIF、CIF格式的圖像序列作測(cè)試,所有編碼器都使用拉格朗日優(yōu)化技術(shù)。我們使用H.264的測(cè)試軟件JM2.0并使用了Main Profile的主要技術(shù)特征。對(duì)H.263和H.264采用的參考幀數(shù)為5,只編碼圖像序列的第一幀為I幀,每2個(gè)參考幀P之間插入2個(gè)非參考幀B。使用全搜索方式進(jìn)行32×32整數(shù)范圍的運(yùn)動(dòng)估計(jì),且由預(yù)先設(shè)定的量化參數(shù)來(lái)進(jìn)行比特率的調(diào)整。圖為對(duì)CIF格式的圖像序列Tempete在幀率為15Hz時(shí)所作的測(cè)試比較。
和其它標(biāo)準(zhǔn)比較,H.264在比特率上減少的程度如表1所示。
為進(jìn)一步對(duì)新標(biāo)準(zhǔn)的技術(shù)特征進(jìn)行性能分析,我們將H.264采用的幀內(nèi)編碼方案與靜態(tài)圖像編碼標(biāo)準(zhǔn)采用的技術(shù)作性能比較。在這里,我們采用H.264的測(cè)試軟件JM3.9a與不包含ABT技術(shù)的Main Profile、JPEG 2000的測(cè)試軟件VM 9.0的測(cè)試結(jié)果進(jìn)行比較。H.264采用的幀內(nèi)編碼技術(shù)性能突出。對(duì)大多數(shù)測(cè)試的圖像序列來(lái)說(shuō),在各種比特率條件下,其性能總是超過(guò)JPEG 2000。究其原因可能是H.264采用了多種設(shè)計(jì)合理的幀內(nèi)預(yù)測(cè)模式。另一方面,H.264采用小波變換技術(shù)、分級(jí)量化及算術(shù)編碼,并沒(méi)有使用預(yù)測(cè)技術(shù)。在高比特率時(shí),兩者處理的圖像在主觀質(zhì)量上并無(wú)太大差異。然而在低比特率時(shí),JPEG 2000的圖像看起來(lái)更模糊,圖像輪廓有明顯的環(huán)狀效應(yīng),這是使用小波變換造成高頻分量損失的結(jié)果。測(cè)試比較結(jié)果如表2所示。
從測(cè)試結(jié)果看,H.264采用的幀內(nèi)編碼技術(shù)在對(duì)大圖像處理時(shí)會(huì)出現(xiàn)增益的收縮,然而在低碼率的情況下卻可以取得很高的增益。針對(duì)所有圖像序列及比特率,H.264平均對(duì)JPEG 2000有1.12dB的優(yōu)勢(shì)。
三 H.264標(biāo)準(zhǔn)的展望
許多人都曾以為傳統(tǒng)的基于塊的視頻編碼技術(shù)已經(jīng)落后,將會(huì)被擯棄,然而H.264的提出再次證明其在低碼率壓縮視頻方面的優(yōu)勢(shì)仍有著很大挖掘潛力。新標(biāo)準(zhǔn)更進(jìn)一步體現(xiàn)了對(duì)視頻信源的適應(yīng)性,但這種適應(yīng)性是以提高算法的復(fù)雜性和增加對(duì)參考幀的存儲(chǔ)能力為代價(jià)的。
H.264標(biāo)準(zhǔn)不僅針對(duì)視頻會(huì)議系統(tǒng),而且涵蓋了電視廣播、網(wǎng)絡(luò)流媒體、多媒體信息的數(shù)字存儲(chǔ)、數(shù)字影院等各方面的應(yīng)用?傊捎诓捎昧讼冗M(jìn)的壓縮技術(shù),H.264擁有優(yōu)異的視頻實(shí)時(shí)處理性能,必將會(huì)引發(fā)視頻傳輸相關(guān)技術(shù)研發(fā)的又一次浪潮,同時(shí)創(chuàng)造出巨大的商業(yè)機(jī)會(huì)。
本文作者吳培森先生,河北省任丘市匯利科技有限責(zé)任公司成員。
中國(guó)通信網(wǎng)(www.c114.net)—摘自《世界寬帶網(wǎng)絡(luò)》