H.264標準及其在視頻會議系統(tǒng)應(yīng)用
2005/03/25
1、引言
圖1 宏塊劃分和子宏塊劃分
(2)1/4像素精度的運動估值。在H.264中通過6階FIR濾波器的內(nèi)插獲得1/2像素位置的預(yù)測值。當(dāng)1/2像素值獲得后,通過取整數(shù)像素位置和1/2像素位置像素值均值的方式獲得1/4像素位置的值。采用高精度運動估計會進一步減小幀間預(yù)測誤差,減少了經(jīng)變換和量化后的非O比特數(shù),提高了編碼效率。
(3)多參考幀運動估值。以往的編解碼技術(shù)在對P幀(場)圖像進行幀間預(yù)測時,只允許以前一個I圖像或P圖像為參考幀,對B圖像進行預(yù)測時只允許以前后兩個I圖像或P圖像為參考圖像。H.264則打破了這些限制,允許在Reference
Buffer中的多個圖像中選取一個(P預(yù)測方式)或兩個(B預(yù)測方式)圖像作為參考圖像,參考圖像甚至可以是采用雙向預(yù)測編碼方式的圖像。
(4)參考圖像的選取與其編碼方式無關(guān)。允許選取與當(dāng)前圖像更加匹配的圖像為參考圖像進行預(yù)測,減小了預(yù)測誤差,提高編碼效率。
(5)加權(quán)預(yù)測。允許編碼器以一定的系數(shù)對運動補償預(yù)測值進行加權(quán),從而在一定的場景下可以提高圖像質(zhì)量。
(6)Intra_4×4模式的幀間預(yù)測。在這種模式下,每個4×4塊都可以利用其上方和左側(cè)的17個最接近的像素進行預(yù)測。
(7)循環(huán)內(nèi)的消除塊效應(yīng)濾波器。為消除在預(yù)測和變換過程中引入的塊效應(yīng),H.264也采用了消除塊效應(yīng)濾波器,但與以往標準不同的是,H.264的消除塊效應(yīng)濾波器位于運動估計循環(huán)內(nèi)部,可以利用消除塊效應(yīng)以后的圖像去預(yù)測其它圖像的運動,進一步提高預(yù)測精度。濾波強度取決于宏塊的預(yù)測方式、量化參數(shù)、運動矢量等。量化步長減小時,濾波器的作用也會相應(yīng)降低。
(8)更好的熵編碼算法CAVLC和CABAC。
3.2 網(wǎng)絡(luò)適應(yīng)性方面
為了方便地在各種系統(tǒng)中靈活有效的應(yīng)用H.264,H.264編解碼系統(tǒng)(見圖2)定義了視頻編碼層VCL和網(wǎng)絡(luò)提取層NAL。其中,VCL用于視頻編解碼,包括運動補償,變換編碼和熵編碼等單元,NAL用于采用統(tǒng)一的格式對VCL視頻數(shù)據(jù)的進行封裝打包。
圖2 H.264編碼器結(jié)構(gòu)
(1)NAL Units。視頻數(shù)據(jù)封裝在整數(shù)字節(jié)的NALU中,它的第一個字節(jié)標志該單元中數(shù)據(jù)的類型。H.264定義了兩種封裝格式。基于包交換的網(wǎng)絡(luò)系統(tǒng)可以使用RTP封裝格式封裝NALU,并且可以通過在NALU后面增加一個16位的信息域的方式將多個NALU放在一個RTP中傳輸。另一些系統(tǒng),如H.320系統(tǒng)或MPEG-2系統(tǒng)可能會要求將NALU作為順序比特流傳送,為方便在這些系統(tǒng)中使用H.264,H.264定義了一種比特流格式的傳輸機制,使用頭編碼前綴(start
code prefix)將NALU封裝起來,并用一個有限狀態(tài)機來保證頭編碼前綴不會出現(xiàn)在它封裝的NALU中,防止了錯誤定界的發(fā)生。
(2)參數(shù)集。在以往視頻編解碼標準中,GOB\GOP\圖像頭信息是至關(guān)重要的,包含這些信息的包的丟失將直接導(dǎo)致與這些信息相關(guān)的數(shù)據(jù)不可用,因此這些標準大都采用了冗余編碼技術(shù)來保護這些頭信息。為解決這些問題,H.264將這些很少變化并且對大量VCL
NALU起作用的信息放在參數(shù)集中傳送。參數(shù)集分為兩種,即序列參數(shù)集sequence parameter set和圖像參數(shù)集picture parameter
set,前者對一系列連續(xù)編碼圖像起作用,后者對連續(xù)編碼圖像序列中的單獨圖像起作用。VCL NALU通過標識位來指定它所參考的參數(shù)集。為適應(yīng)多種網(wǎng)絡(luò)環(huán)境,參數(shù)集可以帶內(nèi)傳送,也可以采用帶外方式傳送。
3.3 抗丟包和抗誤碼方面
在H.264中,參數(shù)集,片的使用,F(xiàn)MO,冗余片等關(guān)鍵技術(shù)的使用可以大大提高系統(tǒng)的抗丟包和抗誤碼性能。
(1)參數(shù)集的使用。參數(shù)集及其靈活傳送方式的使用本身會大大降低因關(guān)鍵的頭信息丟失而造成錯誤發(fā)生的可能。為保證參數(shù)集可靠的到達解碼器端,可以采用重發(fā)的方式多次發(fā)送同一參數(shù)集,傳送多個參數(shù)集或?qū)?shù)集固化在解碼器中。
(2)片(slice)的使用。在不使用FMO時,片是一系列宏塊按照光柵掃描順序的組合。圖像可以劃分成一個或幾個片。片是獨立的,也就是說,在編碼器和解碼器使用的參考圖像一致的情況下,只要給定序列參數(shù)集和圖像參數(shù)集,片的語法元素和該片圖像采樣值就可以從碼流中解析出來,而不需要其他片的數(shù)據(jù)(片邊緣消除塊效應(yīng)濾波過程可能會需要其他相鄰片的數(shù)據(jù))。將圖像劃分為多個片,當(dāng)某一片不能正常解碼時的空間視覺影響就會大大降低,而且片的頭部還提供了重同步點。
(3)FMO技術(shù)。通過FMO可以進一步提高片的差錯恢復(fù)能力。通過片組(slice group)的使用,F(xiàn)MO改變了圖像劃分為片和宏塊的方式。宏塊到片組的映射定義了宏塊屬于哪一個片組。利用FMO技術(shù),H.264定義了7種宏塊掃描模式。
如圖3所示,陰影部分宏塊屬于片組0,白色部分屬于片組1。假設(shè)片組O在傳輸過程中丟失,由于丟失宏塊的相鄰宏塊都屬于片組1,這樣差錯恢復(fù)工具就會有更多的可利用信息來恢復(fù)丟失片的數(shù)據(jù)。
圖3 一種宏塊掃描模式
(4)幀內(nèi)預(yù)測。H.264借鑒了以往視頻編解碼標準在幀內(nèi)預(yù)測上的經(jīng)驗,值得注意的是,在H.264中,IDR圖像可以使短期參考圖像緩存無效,之后的圖像解碼時不再參考IDR圖像之前的圖像,因而IDR圖像具有強壯的重同步性能。在一些丟包和誤碼嚴重的信道中,可以采取不定期傳送IDR圖像的方式進一步提高H.264的抗誤碼和抗丟包性能。
(5)冗余片。為提高H.264的解碼器在發(fā)生數(shù)據(jù)丟失時的健壯性,可以采用傳送冗余片的方式。這些冗余片可以是基本圖像的一部分。冗余片和基本片可以采用不同的編碼參數(shù),當(dāng)基本片丟失時,可以通過冗余片重構(gòu)原圖像。
(6)數(shù)據(jù)劃分。由于運動矢量和宏塊類型等信息相對于其他信息具有更高的重要性,因而在H.264中引入了數(shù)據(jù)劃分的概念,將片中語義彼此相關(guān)的語法元素放在同一個劃分中。在H.264中有三種不同的數(shù)據(jù)劃分。第一類劃分中包含頭信息等重要信息,如宏塊類型、量化參數(shù)和運動矢量等,稱為A類劃分。第二類劃分包含幀內(nèi)CPB和幀內(nèi)系數(shù),稱為B類劃分。第三類劃分包含幀間CBPs和幀間系數(shù),稱為C類劃分。若解碼器發(fā)現(xiàn)幀內(nèi)信息或幀間信息丟失,由于宏塊類型和運動矢量等重要信息的存在,仍然可以使差錯恢復(fù)工具具有良好的性能。
(7)多參考幀運動估值。多參考幀運動估值的一個作用是可以提高編碼器的編碼效率,另一個作用是提高差錯恢復(fù)能力。在有反饋的系統(tǒng)(如采用RTP/RTCP作為應(yīng)用層傳輸協(xié)議的通信系統(tǒng))中,當(dāng)編碼器得知有圖像丟失時,可以選擇解碼器已經(jīng)正確接收的圖像作為參考圖像。
(8)為阻止錯誤在空間上的蔓延,解碼器端可以指定當(dāng)P片或B片中的宏塊在做幀內(nèi)預(yù)測時不使用相鄰的非幀內(nèi)編碼宏塊作為參考。
4、在H.323系統(tǒng)中實現(xiàn)H.264
由于H.264是一種新的視頻編解碼標準,與以往標準在體系結(jié)構(gòu)等方面有諸多差異,在H.323體系中應(yīng)用H.264存在一些問題,比如如何在H.245能力協(xié)商過程中正確協(xié)商端點之間的H.264能力和參數(shù),因此必須對H.323標準的進行必要補充和修改。為此,ITU-T制定了H.241標準。H.241標準定義了如何在原有的H.300系列終端間應(yīng)用H.264視頻編解碼標準進行通信,廢除了一一些不再適合H.264使用的信令,重新定義了一些擴展信令來支持H.264。本文僅介紹與H.323相關(guān)的修改。
(1)如何在H.245能力協(xié)商過程中協(xié)商H.264能力。H.264能力集是一個包含一個或多個H.264能力的列表,每一個H.264能力都包含Profile和Level兩個必選參數(shù)和CustomMaxMBPS,CustomMaxFS等幾個可選參數(shù)。在H.264中,Profile用于定義生成比特流的編碼工具和算法,Level則定義一些關(guān)鍵的參數(shù)。H.264能力包含在GenericCapability結(jié)構(gòu)中,其中CapabilityIdentifier的類型為standard,值為0.O.8.241.O.O.1,用于標識H.241能力。MaxBitRate用于定義最大比特率。Collapsing字段包含H.264能力參數(shù)。
泰爾網(wǎng)
國外IPTV如火如荼與國內(nèi)雷大雨小的反思 2005-03-25 |
電視與網(wǎng)絡(luò)優(yōu)勢互補的最佳傳媒結(jié)合體 2005-03-25 |
3G基礎(chǔ)知識及3G/視頻產(chǎn)品應(yīng)用 2005-03-24 |
移動視頻發(fā)展的誤區(qū) 2005-03-21 |
視訊技術(shù)與視訊業(yè)務(wù)分析 2005-03-04 |