一,、引言
近年來(lái),,隨著我國(guó)通信網(wǎng)絡(luò)基礎(chǔ)設(shè)施的快速建設(shè),,視訊業(yè)務(wù)由于可以為處于多點(diǎn)的與會(huì)者提供音視頻等多種信息,,節(jié)省大量費(fèi)用,,提高工作效率,,因而發(fā)展迅速,,并有望成為NGN的主要業(yè)務(wù)。視訊會(huì)議系統(tǒng)從產(chǎn)生至今,,發(fā)展了多種適于各類(lèi)通信網(wǎng)絡(luò)的系統(tǒng),,目前傳輸多媒體信息的主要有H.323、H.324和H.320等系統(tǒng),。IP技術(shù)的開(kāi)放性特點(diǎn)使得它非常適合承載多種業(yè)務(wù),,隨著IP的安全和QoS等問(wèn)題的逐步解決,以IP作為承載網(wǎng)的優(yōu)勢(shì)將更加明顯,,下一代網(wǎng)絡(luò)也將采用IP技術(shù)作為承載網(wǎng)技術(shù),。因此,本文以適用于在IP網(wǎng)上提供多媒體業(yè)務(wù)的H.323系統(tǒng)為主進(jìn)行闡述,。H.264是由JVT為實(shí)現(xiàn)視頻的更高壓縮比,,更好的圖像質(zhì)量和良好的網(wǎng)絡(luò)適應(yīng)性而提出的新的視頻編解碼標(biāo)準(zhǔn)。事實(shí)證明,,H.264編碼更加節(jié)省碼流,,它內(nèi)在的抗丟包、抗誤碼能力和良好網(wǎng)絡(luò)適應(yīng)性使它非常適于IP傳輸,,H.264有望成為H.323系統(tǒng)中首選的視頻標(biāo)準(zhǔn),。
H.323系統(tǒng)對(duì)視頻編解碼標(biāo)準(zhǔn)提出了以下三個(gè)主要要求:
(1)一些IP網(wǎng)絡(luò)接入方式如xDSL可提供的帶寬有限,,除去音頻,、數(shù)據(jù)占用的帶寬,傳輸視頻的可用帶寬就更少,,這就要求視頻編解碼壓縮率高,,這樣就可以在一定的比特率下具有更好的圖像質(zhì)量,。
(2)抗丟包性能和抗誤碼性能好,,適應(yīng)各種網(wǎng)絡(luò)環(huán)境,,包括丟包和誤碼嚴(yán)重的無(wú)線(xiàn)網(wǎng)絡(luò)。
?。?)網(wǎng)絡(luò)適應(yīng)性好,,便于視頻流在網(wǎng)絡(luò)中傳輸。
二,、H.264適于H.323系統(tǒng)的三個(gè)技術(shù)優(yōu)勢(shì)
H.264在制定時(shí)充分考慮了多媒體通信對(duì)視頻編解碼的各種要求,,并借鑒了以往視頻標(biāo)準(zhǔn)的研究成果,因而具有明顯的優(yōu)勢(shì),。以下將結(jié)合H.323系統(tǒng)對(duì)視頻編解碼技術(shù)的要求,,闡述H.264的三個(gè)優(yōu)勢(shì)。
1. 壓縮率和圖像質(zhì)量方面
對(duì)傳統(tǒng)的幀內(nèi)預(yù)測(cè),、幀間預(yù)測(cè)、變換編碼和熵編碼等算法的改進(jìn),,使H.264的編碼效率和圖像質(zhì)量在以往標(biāo)準(zhǔn)的基礎(chǔ)上進(jìn)一步提高,。
(1)可變塊大小:幀間預(yù)測(cè)時(shí)可以靈活選擇塊的大小,。在宏塊(MB)劃分上H.264采用了16×16,,16×8,8×16,,8×8四種模式,;當(dāng)劃分為8×8模式時(shí),又可進(jìn)一步采用8×4,、4×8,、4×4三種子宏塊劃分模式進(jìn)一步劃分,這樣可以使運(yùn)動(dòng)物體的劃分更加精確,,減小預(yù)測(cè)誤差,,提高編碼效率。幀內(nèi)預(yù)測(cè)一般采取兩種亮度預(yù)測(cè)模式:Intra_4×4和Intra_16×16,。Intra_4×4適合圖像中細(xì)節(jié)豐富的區(qū)域,,而Intra_16×16模式更適合粗糙的圖像區(qū)域。
(2)高精度運(yùn)動(dòng)估值:在H.264中亮度信號(hào)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的精度是1/4像素,。如果運(yùn)動(dòng)矢量指向參考圖像的整像素位置,,預(yù)測(cè)值就是該位置上參考圖像像素的值;否則使用6階FIR濾波器的線(xiàn)性?xún)?nèi)插獲得1/2像素位置的預(yù)測(cè)值,,通過(guò)取整數(shù)和1/2像素位置像素值均值的方式獲得1/4像素位置的值,。顯然采用高精度運(yùn)動(dòng)估計(jì)會(huì)進(jìn)一步減小幀間預(yù)測(cè)誤差,。
(3)多參考幀運(yùn)動(dòng)估值:每一個(gè)M×N亮度塊都要經(jīng)過(guò)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)得到運(yùn)動(dòng)矢量和參考圖像索引,子宏塊中的每個(gè)子宏塊劃分都會(huì)有不同的運(yùn)動(dòng)矢量,。選擇參考圖像過(guò)程是在子宏塊層次上進(jìn)行的,,因而一個(gè)子宏塊中的多個(gè)子宏塊劃分在預(yù)測(cè)時(shí)使用相同的參考圖像,而同一個(gè)slice的多個(gè)子宏塊之間選擇的參考圖像可以不同,,這就是多參考幀運(yùn)動(dòng)估值,。
(4)參考圖像的選取更加靈活:參考圖像甚至可以是采用雙向預(yù)測(cè)編碼方式的圖像,這就允許選取與當(dāng)前圖像更加匹配的圖像為參考圖像進(jìn)行預(yù)測(cè),,從而可以減小預(yù)測(cè)誤差,。
(5)加權(quán)預(yù)測(cè):允許編碼器以一定的系數(shù)對(duì)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)值進(jìn)行加權(quán),從而在一定的場(chǎng)景下可以提高圖像質(zhì)量,。
(6)運(yùn)動(dòng)補(bǔ)償循環(huán)內(nèi)的消除塊效應(yīng)濾波器:為消除在預(yù)測(cè)和變換過(guò)程中引入的塊效應(yīng),,H.264也采用了消除塊效應(yīng)濾波器,但不同的是H.264的消除塊效應(yīng)濾波器位于運(yùn)動(dòng)估計(jì)循環(huán)內(nèi)部,,因而可以利用消除塊效應(yīng)以后的圖像去預(yù)測(cè)其他圖像的運(yùn)動(dòng),,從而進(jìn)一步提高預(yù)測(cè)精度。
2. 抗丟包和抗誤碼方面
參數(shù)集,、片的使用,、FMO、冗余片等關(guān)鍵技術(shù)的使用可以大大提高系統(tǒng)的抗丟包和抗誤碼性能,。
(1)參數(shù)集:參數(shù)集及其靈活的傳送方式會(huì)大大降低因關(guān)鍵的頭信息丟失而造成錯(cuò)誤發(fā)生的可能,。為保證參數(shù)集可靠地到達(dá)解碼器端,可以采用重發(fā)的方式多次發(fā)送同一參數(shù)集,,或傳送多個(gè)參數(shù)集,。
(2)片(slice)的使用:圖像可以劃分成一個(gè)或幾個(gè)片。將圖像劃分為多個(gè)片,,當(dāng)某一片不能正常解碼時(shí)的空間視覺(jué)影響就會(huì)大大降低,,而且片還提供了重同步點(diǎn)。
(3)PAFF和MBAFF:當(dāng)對(duì)隔行掃描圖像進(jìn)行編碼時(shí),,由于兩個(gè)場(chǎng)之間存在較大的掃描間隔,,這樣,對(duì)運(yùn)動(dòng)圖像來(lái)說(shuō)幀中相鄰兩行的空間相關(guān)性相對(duì)于逐行掃描時(shí)就會(huì)減小,,這時(shí)對(duì)兩個(gè)場(chǎng)分別進(jìn)行編碼會(huì)更節(jié)省碼流,。對(duì)幀來(lái)說(shuō),存在三種可選的編碼方式,,將兩場(chǎng)合并作為一幀進(jìn)行編碼或?qū)蓤?chǎng)分別編碼或?qū)蓤?chǎng)合并起來(lái)作為一幀,,但不同的是將幀中垂直相鄰的兩個(gè)宏塊合并為宏塊對(duì)進(jìn)行編碼。前兩種稱(chēng)為PAFF編碼,,對(duì)運(yùn)動(dòng)區(qū)域進(jìn)行編碼時(shí)場(chǎng)方式有效,,非運(yùn)動(dòng)區(qū)域由于相鄰兩行有較大的相關(guān)性,,因而幀方式會(huì)更有效。當(dāng)圖像同時(shí)存在運(yùn)動(dòng)區(qū)域和非運(yùn)動(dòng)區(qū)域時(shí),,在MB層次上,,對(duì)運(yùn)動(dòng)區(qū)域采取場(chǎng)方式,對(duì)非運(yùn)動(dòng)區(qū)域采取幀方式會(huì)更加有效,,這種方式就稱(chēng)為MBAFF,。
(4)FMO:通過(guò)FMO可以進(jìn)一步提高片的差錯(cuò)恢復(fù)能力。通過(guò)片組(slice group)的使用,,F(xiàn)MO改變了圖像劃分為片和宏塊的方式,。宏塊到片組的映射定義了宏塊屬于哪一個(gè)片組。利用FMO技術(shù),,H.264定義了七種宏塊掃描模式,。
(1)幀內(nèi)預(yù)測(cè):H.264借鑒了以往視頻編解碼標(biāo)準(zhǔn)在幀內(nèi)預(yù)測(cè)上的經(jīng)驗(yàn),值得注意的是,,在H.264中,,IDR圖像可以使參考圖像緩存無(wú)效,之后的圖像在解碼時(shí)不再參考IDR圖像之前的圖像,,因而IDR圖像具有很好的重同步作用,。在一些丟包和誤碼嚴(yán)重的信道中,可以采取不定期傳送IDR圖像的方式進(jìn)一步提高H.264的抗誤碼和抗丟包性能,。
(2)冗余圖像:為提高H.264的解碼器在發(fā)生數(shù)據(jù)丟失時(shí)的頑健性,可以采用傳送冗余圖像的方式,。當(dāng)基本圖像丟失時(shí),,可以通過(guò)冗余圖像重構(gòu)原圖像。
(3)數(shù)據(jù)劃分:由于運(yùn)動(dòng)矢量和宏塊類(lèi)型等信息相對(duì)于其他信息具有更高的重要性,,因而在H.264中引入了數(shù)據(jù)劃分的概念,,將片中語(yǔ)義彼此相關(guān)的語(yǔ)法元素放在同一個(gè)劃分中。在H.264中有三類(lèi)不同的數(shù)據(jù)劃分,,三類(lèi)數(shù)據(jù)劃分分開(kāi)傳送,,若第二類(lèi)或第三類(lèi)劃分的信息丟失,使用差錯(cuò)恢復(fù)工具仍然可以通過(guò)第一類(lèi)劃分中的信息對(duì)丟失信息進(jìn)行適當(dāng)恢復(fù),。
(4)多參考幀運(yùn)動(dòng)估值:多參考幀運(yùn)動(dòng)估值不但可以提高編碼器的編碼效率,,還可以提高差錯(cuò)恢復(fù)能力。在H.323系統(tǒng)中,,通過(guò)使用RTCP,,當(dāng)編碼器得知有參考圖像丟失時(shí),可以選擇解碼器已經(jīng)正確接收的圖像作為參考圖像,。
(5)為阻止錯(cuò)誤在空間上的蔓延,,解碼器端可以指定當(dāng)P片或B片中的宏塊在做幀內(nèi)預(yù)測(cè)時(shí)不使用相鄰的非幀內(nèi)編碼宏塊作為參考,。
3. 網(wǎng)絡(luò)適應(yīng)性方面
為適應(yīng)各種網(wǎng)絡(luò)環(huán)境和應(yīng)用場(chǎng)合,H.264定義了視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL),。其中VCL功能是進(jìn)行視頻編解碼,,包括運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),變換編碼和熵編碼等功能,;NAL用于采用適當(dāng)?shù)母袷綄?duì)VCL視頻數(shù)據(jù)進(jìn)行封裝打包,。
(1)NAL Units:視頻數(shù)據(jù)封裝在整數(shù)字節(jié)的NALU中,它的第一個(gè)字節(jié)標(biāo)志該單元中數(shù)據(jù)的類(lèi)型,。H.264定義了兩種封裝格式,。基于包交換的網(wǎng)絡(luò)(如H.323系統(tǒng))可以使用RTP封裝格式封裝NALU,。而另外一些系統(tǒng)可能要求將NALU作為順序比特流傳送,,為此H.264定義了一種比特流格式的傳輸機(jī)制,使用start_code_prefix將NALU封裝起來(lái),,從而確定NAL邊界,。
(2)參數(shù)集:以往視頻編解碼標(biāo)準(zhǔn)中GOBGOP圖像等頭信息是至關(guān)重要的,包含這些信息的包的丟失常導(dǎo)致與這些信息相關(guān)的圖像不能解碼,。為此H.264將這些很少變化并且對(duì)大量VCL NALU起作用的信息放在參數(shù)集中傳送,。參數(shù)集分為兩種,即序列參數(shù)集和圖像參數(shù)集,。為適應(yīng)多種網(wǎng)絡(luò)環(huán)境,,參數(shù)集可以帶內(nèi)傳送,也可以采用帶外方式傳送,。
三,、在H.323系統(tǒng)中實(shí)現(xiàn)H.264
由于H.264是一種新的視頻編解碼標(biāo)準(zhǔn),在H.323體系中應(yīng)用H.264存在一些問(wèn)題,,比如如何在H.245能力協(xié)商過(guò)程中定義實(shí)體的H.264能力,,因此必須對(duì)H.323標(biāo)準(zhǔn)進(jìn)行必要的補(bǔ)充和修改。為此,,ITU-T制定了H.241標(biāo)準(zhǔn),。本文僅介紹與H.323相關(guān)的修改。
首先,,要規(guī)定如何在H.245能力協(xié)商過(guò)程中定義H.264能力,。H.264能力集是一個(gè)包含一個(gè)或多個(gè)H.264能力的列表,每一個(gè)H.264能力都包含Profile和Level兩個(gè)必選參數(shù)和CustomMaxMBPS,、CustomMaxFS等幾個(gè)可選參數(shù),。在H.264中,Profile用于定義生成比特流的編碼工具和算法,Level則是對(duì)一些關(guān)鍵的參數(shù)要求,。H.264能力包含在GenericCapability結(jié)構(gòu)中,,其中CapabilityIdentifier的類(lèi)型為standard,值為0.0.8.241.0.0.1,,用于標(biāo)識(shí)H.264能力,。MaxBitRate用于定義最大比特率。Collapsing字段包含H.264能力參數(shù),。Collapsing字段第一個(gè)條目是Profile,,ParameterIdentifier類(lèi)型為standard,值為41,,用于標(biāo)識(shí)Profile,,ParameterValue類(lèi)型為booleanArray,其值標(biāo)識(shí)Profile,,可以為64,、32或16,這三個(gè)值依次表示Baseline,、Main和Extended三個(gè)Profile,;Collapsing字段第二個(gè)條目是Level,ParameterIdentifier類(lèi)型為standard,,值為42,,用于標(biāo)識(shí)Level,ParameterValue類(lèi)型為unsignedMin,,其值標(biāo)識(shí)H.264 AnnexA中定義的15個(gè)可選的Level值,。其他的幾個(gè)參數(shù)作為可選項(xiàng)出現(xiàn).
其次,由于H.264中圖像的組織結(jié)構(gòu)與傳統(tǒng)的標(biāo)準(zhǔn)不同,,一些原有的H.245信令不在適用于H.264,,如MiscellaneousCommand中的videoFastUpdateGOB等,因此H.241重新定義了幾個(gè)信令提供相應(yīng)功能,。
最后,,H.264的RTP封裝參考RFC 3550,,載荷類(lèi)型(PT)域未作規(guī)定,。
四、結(jié)束語(yǔ)
作為一種新的國(guó)際標(biāo)準(zhǔn),,H.264在編碼效率,、圖像質(zhì)量、網(wǎng)絡(luò)適應(yīng)性和抗誤碼方面都取得了成功,。但隨著終端和網(wǎng)絡(luò)的快速發(fā)展,,對(duì)視頻編解碼的要求在不斷提高,因此H.264仍在繼續(xù)地完善和發(fā)展以適應(yīng)新的要求。現(xiàn)在對(duì)H.264的研究主要集中在如何進(jìn)一步降低編解碼時(shí)延,、算法優(yōu)化和進(jìn)一步提高圖像質(zhì)量上,。目前,使用H.264進(jìn)行編解碼的視頻會(huì)議系統(tǒng)越來(lái)越多,,大多數(shù)做到了在Baseline Profile上的互通,。隨著H.264自身的不斷完善和視頻通信的不斷普及,相信H.264的應(yīng)用將越來(lái)越廣泛,。
參考文獻(xiàn)
[1] I TU-T H.241.Extended video procedures and control signals for H.300 series terminals.July 2003
[2] Wiegand T,,Sullivan G J,BjΦntegaard G.Overview of the H.264/AVC video coding standard.IEEE Trans,,Circuits,,Syst Video Technol,2003,,13(7)