淺談基于IP網(wǎng)絡(luò)的H.264關(guān)鍵技術(shù)及其應(yīng)用
一、前言
H.264是ITU-T最新的視頻編碼標(biāo)準(zhǔn),被稱作ISO/IEC14496-10或MPEG-4 AVC,是由運動圖像專家組(MPEG)和ITU的視頻編碼專家組共同開發(fā)的新產(chǎn)品。
H.264分兩層結(jié)構(gòu),包括視頻編碼層和網(wǎng)絡(luò)適配層。視頻編碼層處理的是塊、宏塊和片的數(shù)據(jù),并盡量做到與網(wǎng)絡(luò)層獨立,這是視頻編碼的核心,其中包含許多實現(xiàn)錯誤恢復(fù)的工具;網(wǎng)絡(luò)適配層處理的是片結(jié)構(gòu)以上的數(shù)據(jù),使 H.264能夠在基于RTP/UDP/IP、H.323/M、MPEG-2傳輸和H.320協(xié)議的網(wǎng)絡(luò)中使用。
二、 IP網(wǎng)絡(luò)對視頻壓縮的限制
1. H.264的應(yīng)用場合
在討論基于IP的H.264之前,有必要先闡述一下H.264與IP網(wǎng)絡(luò)有關(guān)的應(yīng)用場合及其對傳輸和編解碼器的要求。下面介紹對話應(yīng)用、下載服務(wù)和流媒體應(yīng)用三種場合。
對話應(yīng)用,比如像視頻電話和視頻會議,有嚴(yán)格的時延限制,要求端到端時延小于1s,最好小于100ms。編解碼器的參數(shù)能實時調(diào)整,錯誤恢復(fù)機制要根據(jù)實際網(wǎng)絡(luò)變化而改變。編解碼的復(fù)雜度不能很高,比如雙向預(yù)測的模式就不能被采用。
下載服務(wù),可使用可靠的傳輸協(xié)議如FTP和HTTP將數(shù)據(jù)全部傳輸。由于這種應(yīng)用的非實時性,編碼器可以通過優(yōu)化進(jìn)行高效編碼,而且對時延和錯誤恢復(fù)機制沒有要求。
流媒體服務(wù)應(yīng)用,對時延要求介于上面兩者之間,初始化時延是10s以內(nèi)。與實時編碼相比對時延要求降低,編碼器可以進(jìn)行優(yōu)化實現(xiàn)高效編碼(比如雙向預(yù)測)。然而通常流媒體服務(wù)使用不可靠的傳輸協(xié)議,所以編碼時要進(jìn)行差錯控制并進(jìn)行信道糾錯編碼。
本文主要討論對話應(yīng)用和流媒體應(yīng)用,這兩種應(yīng)用基于IP網(wǎng)絡(luò)。IP網(wǎng)絡(luò)又可分為三種類型:不可控IP網(wǎng)絡(luò)(如Internet)、可控IP網(wǎng)絡(luò)(廣域網(wǎng)) 和無線IP網(wǎng)絡(luò)(如3G網(wǎng)絡(luò))。這三種IP網(wǎng)絡(luò)有不同的最大傳輸單元尺寸(MTUsize)、比特出錯概率和TCP使用標(biāo)記。最大傳輸單元尺寸是網(wǎng)絡(luò)層最大的分組長度,H.264編碼時要使片的長度小于MTU尺寸,這樣可避免在網(wǎng)絡(luò)層再進(jìn)行一次數(shù)據(jù)的分割。兩個IP節(jié)點之間的MTU尺寸是動態(tài)變化的,通常假定有線IP網(wǎng)絡(luò)的MTU尺寸是1.5千字節(jié),無線網(wǎng)絡(luò)的MTU尺寸是100字節(jié)??梢娨m用于無線網(wǎng)絡(luò)的H.264必須采用數(shù)據(jù)分割技術(shù)使得片的長度小于MTU尺寸。TCP傳輸控制協(xié)議能夠解決網(wǎng)絡(luò)擁塞引起的分組丟失問題,而在無線網(wǎng)絡(luò)中,分組丟失是由于鏈路層錯誤引起的,TCP并非很好的解決辦法,要采用差錯控制協(xié)議。
2. H.264使用的協(xié)議環(huán)境
對話應(yīng)用和流媒體應(yīng)用使用同一協(xié)議組,下面進(jìn)行討論。
網(wǎng)絡(luò)層協(xié)議:使用IP(網(wǎng)際協(xié)議)。每個IP分組單獨從發(fā)方出發(fā),經(jīng)過一系列的路由器到達(dá)收方。IP將大于MTU尺寸的分組進(jìn)行數(shù)據(jù)分割、重組。每個分組的傳輸時間都有所不同。IP頭20個字節(jié)由校驗碼來保證,但數(shù)據(jù)沒有保護(hù)。IP分組最大值為64千字節(jié),但由于MTU尺寸的限制,一般沒有這么大。
傳輸層協(xié)議:主要有兩個協(xié)議,TCP和UDP。TCP提供面向字節(jié)的可靠傳輸服務(wù),以重傳和超時等機制作為差錯控制的基礎(chǔ)。由于對時延的不可預(yù)測,并不適用于實時通信傳輸。UDP提供不可靠的數(shù)據(jù)報傳輸業(yè)務(wù)。UDP頭包含的校驗數(shù)(8字節(jié))可以發(fā)現(xiàn)和去掉含有比特錯誤的分組。UDP允許分組傳輸過程中出現(xiàn)丟失、復(fù)制、改序等。使用UDP協(xié)議時,高層必須使用錯誤恢復(fù)協(xié)議。
應(yīng)用層傳輸協(xié)議:使用RTP(實時傳輸協(xié)議)。該協(xié)議和IP/UDP結(jié)合使用,是面向會話的協(xié)議。每個RTP分組包含RTP頭標(biāo),載荷頭標(biāo)(可選)和載荷本身。RTP頭標(biāo)的內(nèi)容見圖1,基本選項占用12字節(jié),標(biāo)記位標(biāo)記有同一時間戳的一組分組的結(jié)束。RTP協(xié)議使發(fā)送方將數(shù)據(jù)分為大小合理的分組,并將解碼方觀察到的網(wǎng)絡(luò)特征反饋給發(fā)送方,使發(fā)送方可以動態(tài)調(diào)整比特率和抗誤碼機制。RTP分組和RTP載荷規(guī)范在第四部分討論。
應(yīng)用層控制協(xié)議:有H.245協(xié)議、SIP和SDP,或RTSP。這些協(xié)議可以實現(xiàn)流媒體的控制,收發(fā)方的協(xié)商和控制動態(tài)會話層。
三、H.264的錯誤恢復(fù)工具
錯誤恢復(fù)的工具隨著視頻壓縮編碼技術(shù)的提高在不斷改進(jìn)。舊的標(biāo)準(zhǔn)(H.261、H263、MPEG-2的第二部分)中,使用片和宏塊組的劃分、幀內(nèi)編碼宏塊、幀內(nèi)編碼片和幀內(nèi)編碼圖像來防止錯誤的擴散。之后改進(jìn)的標(biāo)準(zhǔn)(H.263+、MPEG-4)中,使用多幀參考和數(shù)據(jù)分割技術(shù)來恢復(fù)錯誤。
H.264標(biāo)準(zhǔn)在以前的基礎(chǔ)上提出了三種關(guān)鍵技術(shù):(1)參數(shù)集合,(2) 靈活的宏塊次序(FMO),(3)冗余片(RS)來進(jìn)行錯誤的恢復(fù)。
1. 幀內(nèi)編碼
H.264中幀內(nèi)編碼的技術(shù)和以前標(biāo)準(zhǔn)一樣,值得注意的是:
(1)H.264中的幀內(nèi)預(yù)測編碼宏塊的參考宏塊可以是幀間編碼宏塊,幀內(nèi)預(yù)測宏塊并不像H.263中的幀內(nèi)編碼一樣,而采用預(yù)測的幀內(nèi)編碼比非預(yù)測的幀內(nèi)編碼有更好的編碼效率,但減少了幀內(nèi)編碼的重同步性能,可以通過設(shè)置限制幀內(nèi)預(yù)測標(biāo)記來恢復(fù)這一性能。
評論