目前視頻編碼壓縮標(biāo)準(zhǔn)主要有MPEG-x和H.26x兩大系列,這些壓縮算法都是基于宏塊的,分別從三個方面改善編碼效率:
(1)運動估計/運動補償(MP/MC)消除視頻時間冗余;
(2)圖像差值的離散余弦變換(DCT)消除空間冗余;
(3)量化系數(shù)的可變長編碼(VLC)消除統(tǒng)計冗余。
實踐表明,通過上述方法,視頻編碼標(biāo)準(zhǔn)獲得了極高的壓縮效率。但壓縮后的碼流在Internet,特別是無線信道上的傳輸仍然存在著一些棘手的問題,其中比較突出的一點是:一方面,這些壓縮后的碼流對信道比特誤碼非常敏感;而另一方面,無線信道由于多徑反射和衰落引入了大量的隨機誤碼和突發(fā)誤碼,影響了碼流的正常傳輸。尤其是當(dāng)采用了VLC方案后,碼流更加容易受到誤碼的影響,結(jié)果在解碼端將失去與編碼端的同步,導(dǎo)致在遇到下一個同步碼字之前無法對VLC碼字進行正確的解碼;同時預(yù)測編碼技術(shù)會將錯誤擴散到整個視頻序列中,極大地降低重建圖像的質(zhì)量。因此,為了實現(xiàn)良好質(zhì)量的視頻傳輸,必須結(jié)合實際應(yīng)用信道的傳輸特性,采取一定的容錯措施。
根據(jù)在視頻傳輸系統(tǒng)中位置的不同,容錯算法主要可分為基于編碼器的容錯算法,基于解碼器的容錯算法和基于反饋信道的容錯算法。其中:
(1)基于編碼器的容錯算法,通過再編碼比特流中添加冗余信息,這些冗余信息被添加在信源或信道編碼器中,降低了編碼的效率,增加了實現(xiàn)的復(fù)雜度,以換取編碼的容錯性能,大致包括:分層編碼、多描述編碼、獨立分段編碼、再同步編碼和前向糾錯編碼(FEC)等。
(2)基于解碼器的容錯算法,是指利用被損壞的宏塊與其相鄰的宏塊之間的相關(guān)性來完成恢復(fù)工作的,這部分工作包括錯誤檢測和錯誤恢復(fù)。對于錯誤的檢測,一般采用針對語法的檢錯和嵌入數(shù)據(jù)的檢錯;對于錯誤恢復(fù),可采用時域和空域的錯誤隱藏方法。
(3)基于反饋信道的容錯算法,指利用解碼器獲得誤碼信息,并通過反饋信道,傳送給編碼器進行誤碼處理的一種方式。主要包括:誤碼跟蹤,有條件的ARQ,幀內(nèi)/幀間編碼模式選擇和參考圖像選擇模式等。
與此同時,在信源編碼器中,從視頻碼流結(jié)構(gòu)上研究其抗誤碼性能,成為近兩年來研究的一個熱點。H.264/AVC作為最新的視頻編碼標(biāo)準(zhǔn),采取了一系列切合實際的技術(shù)措施,提高了網(wǎng)絡(luò)適應(yīng)性,增強了數(shù)據(jù)抗誤碼的頑健性,從而保證了視頻傳輸后的壓縮視頻的QoS。與以往的視頻編碼標(biāo)準(zhǔn)不同的是,H.264/AVC標(biāo)準(zhǔn)從系統(tǒng)層面定義了視頻編碼層(VCL,VideoCodingLayer)和網(wǎng)絡(luò)提取層(NAL,NetworkAbstractionLayer)。其中,視頻編碼層獨立于網(wǎng)絡(luò),主要包括核心壓縮引擎和塊、宏塊和片的語法句法定義。通過引入一系列新特性,不但使H.264的編碼壓縮效率提升了近1倍,而且多種錯誤恢復(fù)工具又增強了視頻流的頑健性。網(wǎng)絡(luò)提取層的主要功能是定義數(shù)據(jù)的封裝格式,把VCL產(chǎn)生的比特字符串適配到各種各樣的網(wǎng)絡(luò)和多元環(huán)境中。涉及片級別以上的語法定義,包括獨立片解碼所要求的數(shù)據(jù)表示,類似以往視頻壓縮標(biāo)準(zhǔn)中的圖像和頭部順序數(shù)據(jù);防止競爭的編碼;附加的增強信息以及編碼片的比特字符串。
H.264從框架結(jié)構(gòu)上將NAL與VCL分離,主要有兩個目的:首先,可以定義VCL視頻壓縮處理與NAL網(wǎng)絡(luò)傳輸機制的接口,這樣允許視頻編碼層VCL的設(shè)計可以在不同的處理器平臺進行移植,而與NAL層的數(shù)據(jù)封裝格式無關(guān);其二,VCL和NAL都被設(shè)計成工作于不同的傳輸環(huán)境,異構(gòu)的網(wǎng)絡(luò)環(huán)境并不需要對VCL比特流進行重構(gòu)和重編碼。