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