胡岸林+張鑫+石燕志
摘要:H.264編碼標(biāo)準(zhǔn)在如今視頻編碼中廣泛應(yīng)用,其相較于先前的編碼擁有自身明顯的優(yōu)勢,而H.264編碼的編解碼流程則相對復(fù)雜。該文介紹了H.264編碼的特點(diǎn)及編解碼的實現(xiàn),并講解了優(yōu)化的H.264編碼在窄帶實時視頻系統(tǒng)中的應(yīng)用,最后提到了H 264編碼急需解決的問題。
關(guān)鍵詞:H.264;視頻編碼;窄帶;實時視頻系統(tǒng);應(yīng)用
1概述
H.264標(biāo)準(zhǔn)是ITU-T的VCEG和ISO/IEC的MPEG聯(lián)合開發(fā)的一種高效的視頻編碼壓縮標(biāo)準(zhǔn)。H.264采用了先進(jìn)的運(yùn)動估計和運(yùn)動補(bǔ)償技術(shù)、幀內(nèi)預(yù)測、改變編碼組成、將編碼過程中按熵原理不丟失任何信息的編碼進(jìn)行統(tǒng)一等新型的技術(shù)。通過H.264與H.263+或MPEG-2的比較可以發(fā)現(xiàn):通常情況下,H.264提供的視頻質(zhì)量較高,并且在節(jié)省碼率方面有著較高的優(yōu)勢。
2H.264與之前標(biāo)準(zhǔn)的異同點(diǎn)
H.264標(biāo)準(zhǔn)的推出是視頻編碼標(biāo)準(zhǔn)的一次重要的進(jìn)步,但是通過進(jìn)行技術(shù)方面的比較發(fā)現(xiàn),H.264仍然沒有完全推翻以往的結(jié)構(gòu)組成和框架組成,并且在結(jié)構(gòu)和整體的框架方面,H.264與H.263的編碼存在諸多相似的地方。下面對它們之間的相似之處進(jìn)行進(jìn)一步的說明:1)都是對圖像進(jìn)行分塊處理,將其劃分為不同的像素塊,為后期提供結(jié)構(gòu)基礎(chǔ);2)結(jié)合圖像空間中存在的冗余現(xiàn)象,對原來的一些模塊進(jìn)行改變、量化,或者增加原始編碼的長度;3)由于連續(xù)的畫面之間往往存在一定的連續(xù)性,因此可以利用這一特性,借助運(yùn)動估計和運(yùn)動補(bǔ)償方式,對發(fā)生改變的聯(lián)系畫面進(jìn)行重新編碼。針對所有的模塊,首先都需要對不同幀畫面的運(yùn)動矢量進(jìn)行搜索,其次借助編碼器和解碼器實現(xiàn)對其運(yùn)行塊的預(yù)測目的;4)在對殘留塊進(jìn)行編碼時,可以借助幀間的各種空間冗余進(jìn)行編碼;5)在標(biāo)準(zhǔn)方面,由于H.264對數(shù)據(jù)進(jìn)行掃描的方式與以往的方式基本相同,其依據(jù)就是變換后矩陣高頻系數(shù)基本為0,其參數(shù)具有集中在低頻階段的特點(diǎn),并且在進(jìn)行掃描的時候,是采用“之”字行進(jìn)行的。
通過以上相似之處的分析可以發(fā)現(xiàn),這些相同點(diǎn)能夠在一定程度上為開發(fā)和拓展H.264提供有利條件,并且在兼容性和可移植性方面具有較高的優(yōu)勢。
通過與以往標(biāo)準(zhǔn)的比較,可以發(fā)現(xiàn)H.264在視頻編碼系統(tǒng)方面有了很大的提升,其改變內(nèi)容主要包含以下幾個方面:1)在增強(qiáng)運(yùn)動估計方面采取了改變塊大小的方式,該方式同樣適用于增加變換的壓縮效果;2)進(jìn)行整數(shù)變換;3)強(qiáng)化熵編碼。
借助H.264,通過改進(jìn)信源編碼系統(tǒng),可以在一定程度上提高系統(tǒng)的運(yùn)行效率,改善系統(tǒng)的整體性能,這種優(yōu)勢主要表現(xiàn)在傳碼率和圖像質(zhì)量上,下面分別對這兩方面內(nèi)容進(jìn)行分析:1)傳碼率更低:在將H.264與MPEG和H.263+的運(yùn)行系列標(biāo)準(zhǔn)進(jìn)行比較之后發(fā)現(xiàn),在編碼器的傳碼率上,H.264能夠在同樣程度的最優(yōu)化編碼器碼率的基礎(chǔ)上降低50%;2)圖像的質(zhì)量更高:在設(shè)定碼率相同的條件下,可以發(fā)現(xiàn)H.264提供的圖像質(zhì)量更高,并且圖像的質(zhì)量標(biāo)準(zhǔn)也相對較高。
3H.264的編解碼實現(xiàn)概述
在H.264標(biāo)準(zhǔn)中,僅對編碼后視頻H.264并沒有明確規(guī)定一個編解碼器如何實現(xiàn),只是對一個編碼后視頻比特流的句法和解碼方式進(jìn)行了說明,并沒有對編碼器、解碼器的實現(xiàn)過程進(jìn)行規(guī)定,在這個方面,MPEG與H.264存在相似之處,在實現(xiàn)H.264編碼和解碼的流程方面沒有較大的差別,其主要的區(qū)別表現(xiàn)在功能塊的細(xì)節(jié)方面。其細(xì)節(jié)方面的區(qū)別主要表現(xiàn)為對編解碼實現(xiàn)過程的壓縮性能有了較大的改善,并且在復(fù)雜程度方面也有了一定的改善。
在H.264標(biāo)準(zhǔn)中,采用的變換方法仍然是變換和預(yù)測的方式,借助這種混合的方式實現(xiàn)編碼器編解碼過程。圖1為編碼器以宏塊為單位對輸入的幀或場F'n進(jìn)行處理的過程。其流程大致可以概括如下:在進(jìn)行處理的時候,按照幀內(nèi)或者幀間預(yù)測編碼的方法進(jìn)行,如果采用的方法是幀間預(yù)測編碼,設(shè)定PRED為預(yù)測值,可以發(fā)現(xiàn),當(dāng)前片中已經(jīng)經(jīng)過編碼的圖像運(yùn)動補(bǔ)償(MC)確定后就可以得到該預(yù)測值。在當(dāng)前模塊和預(yù)測值之間會存在一定的差值,該差值可以視為是預(yù)測值PRED和當(dāng)前塊相減后的殘差塊,記為D'n,經(jīng)過塊轉(zhuǎn)換和量化之后,會出現(xiàn)一組轉(zhuǎn)換系數(shù),記為x,借助熵編碼,經(jīng)過壓縮之后就會形成碼流,最終借助網(wǎng)絡(luò)自適應(yīng)層進(jìn)行傳輸和儲存。
在圖2中,經(jīng)過熵編碼,可以使編碼器輸出的H.264比特流顯示出一組變換系數(shù),視為x,同樣經(jīng)過反變換和反量化過程可以得到殘差D'n。解碼器就會借助從該比特流中解碼出的頭信息生成一個與源碼器初期PRED相同的預(yù)測塊。此時,殘差值Dn與解碼器生成的PRED之和就是uFn,最終經(jīng)過濾波后就會得到解碼器的輸出圖像F'n。
4優(yōu)化的H.264在窄帶視頻傳輸系統(tǒng)中的應(yīng)用
采集卡收集到相關(guān)的視頻之后,借助固化在片內(nèi)的相關(guān)程序,實現(xiàn)對視頻幀的H.264編碼過程,完成編碼之后,就可以利用回調(diào)函數(shù)將其傳輸給應(yīng)用程序。在傳輸過程中,需要將視頻數(shù)據(jù)進(jìn)行分塊處理,即將數(shù)據(jù)內(nèi)容分化成不同的數(shù)據(jù)包,其大小為1k,將這些數(shù)據(jù)包封裝之后以組播的形式進(jìn)行傳送。與此同時,在對視頻數(shù)據(jù)資料進(jìn)行傳送的過程中,需要在傳輸線程中檢查是否已經(jīng)有被編碼的數(shù)據(jù)存在于緩沖區(qū)中。如果其中已經(jīng)存在數(shù)據(jù),就需要借助sendto功能查看是否存在空,如果存在,則應(yīng)該立刻借助sendto對數(shù)據(jù)進(jìn)行發(fā)送,確保發(fā)出及時,避免出現(xiàn)沒有發(fā)出而要等待下一個循環(huán)的問題。在運(yùn)行原理方面,接收視頻數(shù)據(jù)線程的工作原理與上述原理相同-,。
經(jīng)過編碼器編碼后的視頻圖像,在數(shù)據(jù)結(jié)構(gòu)方面會出現(xiàn)一定程度的差異性,會出現(xiàn)重要性數(shù)據(jù)和非重要性數(shù)據(jù)的差別,其中常見的重要性數(shù)據(jù)包含I幀、運(yùn)動矢量和圖像編碼后的碼流結(jié)構(gòu)數(shù)據(jù)等;非重要的數(shù)據(jù)包含p幀、B幀數(shù)據(jù)等。由于重要數(shù)據(jù)對圖像的重新組建起到關(guān)鍵性的作用,要確保這些重要的數(shù)據(jù)不會丟失,如果在傳輸?shù)倪^程中出現(xiàn)重要數(shù)據(jù)丟失的現(xiàn)象,就會嚴(yán)重影響重建的圖像質(zhì)量,給P幀或B幀的圖像的重新構(gòu)建造成負(fù)面影響,并且在視覺上較難察覺出來。
本文提出的“有選擇重傳方法”作用于應(yīng)用層,有助于改善因為信道質(zhì)量造成的隨機(jī)性較差的問題,該方法的最終目標(biāo)就是確保重要數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性,對非重要數(shù)據(jù)的傳輸問題則不予重視?!坝羞x擇重傳方法”的運(yùn)行理論如下圖3,其基本流程可以概括如下:1)對即將進(jìn)行發(fā)送的數(shù)據(jù)進(jìn)行分類,將其分為重要數(shù)據(jù)和非重要數(shù)據(jù)兩種,對這兩種數(shù)據(jù)分別進(jìn)行標(biāo)記,之后將經(jīng)過數(shù)據(jù)封裝和RTP格式處理的數(shù)據(jù)傳送至3GPP2網(wǎng)絡(luò)丟包仿真器,此時應(yīng)該注意要在數(shù)據(jù)傳輸起始端對重要的數(shù)據(jù)包進(jìn)行緩存;2)數(shù)據(jù)接收端在收到傳輸數(shù)據(jù)之后,首先應(yīng)該對數(shù)據(jù)進(jìn)行緩存,之后再結(jié)合數(shù)據(jù)包丟失的具體情況對其進(jìn)行重新判決。該判決方法可以概括如下:對丟失數(shù)據(jù)包的重傳域進(jìn)行設(shè)定,查找并確定數(shù)據(jù)傳送過程中丟失的數(shù)據(jù)包數(shù)量和類型,如果在檢查過程中發(fā)現(xiàn)有幾個數(shù)據(jù)包是連續(xù)丟失的,此時就應(yīng)該首先檢查丟失的數(shù)據(jù)包是否符合重傳閾值的要求,如果超過了閾值限制,就需要借助RTCP進(jìn)行重新傳送,如果不對丟失的數(shù)據(jù)進(jìn)行重新傳送,就會在一定程度上影響數(shù)據(jù)傳輸?shù)馁|(zhì)量。如果采用的傳輸方式是UDP方式,并結(jié)合TCP/IP重傳機(jī)制,在數(shù)據(jù)流量使用方面會極少的增加反饋流量的數(shù)量,避免出現(xiàn)圖像因數(shù)據(jù)包丟失而影響圖像質(zhì)量的問題,在一定程度上提高了視頻圖像的質(zhì)量。
5結(jié)束語
盡管在視頻壓縮效率方面,H.264具有明顯的優(yōu)勢,但是由于其運(yùn)算的過程較為復(fù)雜,影響了其在實際中的應(yīng)用。因此,針對這一現(xiàn)象,加強(qiáng)對實時快速運(yùn)輸算法和降低運(yùn)算復(fù)雜性的研究尤為重要。endprint