視頻通信中H.264在互聯(lián)網(wǎng)抗誤碼問題中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著寬帶網(wǎng)絡(luò)的發(fā)展,基于IP的視頻應(yīng)用得到了越來越多的關(guān)注?;贗P的視頻應(yīng)用,必須解決吞吐量,傳輸時(shí)延,時(shí)延抖動(dòng),誤碼率等四個(gè)QoS問題。但是,由于視頻應(yīng)用中大多采用了高壓縮率的編碼技術(shù),其對(duì)傳輸誤碼的要求尤為苛刻,而Internet的本質(zhì)是盡力而為的網(wǎng)絡(luò),不提供傳輸?shù)腝oS保證,因此提高視頻應(yīng)用對(duì)傳輸誤碼的抗干擾和恢復(fù)能力一直是多媒體通信領(lǐng)域的研究熱點(diǎn)。
視頻通信系統(tǒng)通常由五部分組成:視頻源編碼、復(fù)用/包封裝/信道編碼、信道傳輸、解復(fù)用/解包/信道解碼和視頻解碼。
視頻通信中的錯(cuò)誤恢復(fù)由于以下原因顯得尤為重要:(1)由于在源編碼器中采用了空間和時(shí)間預(yù)測編碼以及可變長編碼(VLC),壓縮的視頻流對(duì)傳輸中的錯(cuò)誤特別敏感;?(2)視頻源和網(wǎng)絡(luò)環(huán)境通常是時(shí)變的,因此基于某些統(tǒng)計(jì)模型設(shè)計(jì)出一個(gè)“優(yōu)化”的解決方案是很困難的,甚至是不可能的;?(3)視頻源碼率通常很高,對(duì)于某些實(shí)時(shí)應(yīng)用而言,編解碼器不可能過于復(fù)雜。
傳統(tǒng)上,抗誤碼的機(jī)制分為三類:在編碼器和信道編碼中引入冗余,使編碼流對(duì)傳輸錯(cuò)誤具有更強(qiáng)的抗干擾能力;解碼器根據(jù)錯(cuò)誤檢測的結(jié)果對(duì)錯(cuò)誤進(jìn)行隱藏;通過編碼器、傳輸信道和解碼器之間進(jìn)行交互,編碼器根據(jù)檢測到的錯(cuò)誤信息調(diào)整自身的操作。后面講針對(duì)錯(cuò)誤恢復(fù)技術(shù)進(jìn)行探討。
編碼器中的錯(cuò)誤恢復(fù)編碼錯(cuò)誤恢復(fù)編碼的設(shè)計(jì)旨在于使用最小的冗余來獲得錯(cuò)誤恢復(fù)的最大增益。有很多方法用于添加冗余比特,一些有益于防止錯(cuò)誤擴(kuò)散,另一些用于協(xié)助解碼器通過錯(cuò)誤監(jiān)測更好地進(jìn)行錯(cuò)誤隱藏,還有一些目標(biāo)在于保證基本級(jí)別的視頻質(zhì)量,以保證發(fā)生傳輸錯(cuò)誤時(shí)圖像質(zhì)量不會(huì)極度惡化。?編碼流對(duì)傳輸錯(cuò)誤敏感的一個(gè)主要原因就是使用了時(shí)間預(yù)測和空間預(yù)測。一旦有誤碼發(fā)生,在解碼器上重構(gòu)的幀將會(huì)與原圖像有較大差別,這樣會(huì)導(dǎo)致使用這一幀作為參考幀的后續(xù)幀重構(gòu)時(shí)產(chǎn)生錯(cuò)誤。
阻止時(shí)域錯(cuò)誤擴(kuò)散的一個(gè)方法是周期的插入幀內(nèi)編碼的幀或宏塊,對(duì)于實(shí)時(shí)應(yīng)用,使用足夠數(shù)量的幀內(nèi)編碼的宏塊是一個(gè)有效的錯(cuò)誤恢復(fù)工具。對(duì)于幀內(nèi)編碼宏塊的數(shù)量和位置的確定,目前所知最好的方法是使用基于丟包率的率失真優(yōu)化方案。另一個(gè)限制錯(cuò)誤擴(kuò)散的方法就是將數(shù)據(jù)分成多個(gè)段,僅在同一段內(nèi)部進(jìn)行時(shí)間和空間預(yù)測,即獨(dú)立的段預(yù)測。?分層編碼(LC)是指將視頻編碼成一個(gè)基本層和一個(gè)或多個(gè)加強(qiáng)層?;緦犹峁┝艘粋€(gè)較低的但可接受的質(zhì)量,每個(gè)附加的加強(qiáng)層逐步地提高質(zhì)量。
H.264中的網(wǎng)絡(luò)適配層設(shè)計(jì)和新的錯(cuò)誤恢復(fù)技術(shù)H.264 是由MPEG和ITU組成的聯(lián)合視頻專家組JVT推出的。H.264包含了 VCL(視頻編碼層)和NAL(網(wǎng)絡(luò)抽象層)。VCL包括核心壓縮引擎和塊/宏塊/片的語法級(jí)別定義,它被設(shè)計(jì)成盡可能地獨(dú)立于網(wǎng)絡(luò)。NAL將VCL產(chǎn)生的比特字符串適配到各種各樣的網(wǎng)絡(luò)和多元環(huán)境中,它覆蓋了所有片級(jí)以上的語法級(jí)別,并包含了以下機(jī)制:包含對(duì)每個(gè)片解碼時(shí)所需要的參數(shù)數(shù)據(jù);防止了起始碼沖突; 對(duì)附加增強(qiáng)信息(SEI)的支持;將編碼片的比特字符串在基于比特流的網(wǎng)絡(luò)上進(jìn)行傳送的實(shí)現(xiàn)框架。
將NAL 與VCL分離的主要目的有兩個(gè)。首先,建議中定義了一個(gè)VCL信號(hào)處理與NAL傳輸?shù)?u>接口,這樣就允許VCL和NAL工作在完全不同的處理器平臺(tái)上。其次,VCL和NAL都被設(shè)計(jì)成適應(yīng)于異質(zhì)傳輸環(huán)境,網(wǎng)關(guān)不需要因?yàn)榫W(wǎng)絡(luò)環(huán)境不同而對(duì)VCL比特流進(jìn)行重構(gòu)和重編碼。由于在IP網(wǎng)絡(luò)環(huán)境中,絕大部分視頻應(yīng)用所采用的網(wǎng)絡(luò)協(xié)議層次是RTP/UDP/IP,因此在以下描述中主要基于這個(gè)傳輸框架。下面首先對(duì)H.264中新增的三個(gè)錯(cuò)誤恢復(fù)工具進(jìn)行功能分析,然后分析NAL層的基本處理單元NALU以及它的RTP封裝、聚合和拆分的方法。
H.264中的錯(cuò)誤恢復(fù)工具H.264 包括了大量的錯(cuò)誤恢復(fù)工具,其中幀內(nèi)編碼模式的內(nèi)插、RPS和數(shù)據(jù)分割等工具,已應(yīng)用于以前的視頻壓縮方案中,故只介紹H.264對(duì)它們的改進(jìn),但有些工具是全新的或者是用一種創(chuàng)新的方法實(shí)現(xiàn)的,如參數(shù)集、靈活宏塊排序(FMO)、冗余分片(RS),下面將作詳細(xì)的分析。?H.264 對(duì)幀內(nèi)編碼模式內(nèi)插的改進(jìn)主要體現(xiàn)在,對(duì)何時(shí)使用、使用哪種級(jí)別、使用多少數(shù)量、在什么位置使用等問題的確定上。H.264使用RDO(率失真優(yōu)化)的方法確定上述要素,經(jīng)實(shí)驗(yàn)驗(yàn)證,這種方法取得了很好的效果。
? ? ? ?對(duì)于RPS,H.264的可選擇范圍更廣,并可以使用前向或后向的參考幀,且數(shù)量可多達(dá)15幀。?在H.264 中,使用了三種不同類型的數(shù)據(jù)分割:(1)幀頭信息,包括宏塊類型、量化參數(shù)和運(yùn)動(dòng)矢量,這種分割類型最重要,叫A型分割;(2)幀內(nèi)分割,又稱B型分割,包括幀內(nèi)編碼塊模式和幀內(nèi)系數(shù),該型數(shù)據(jù)分割要求給定分片的A型分割有效,相對(duì)于幀間信息,幀內(nèi)信息能更好地阻止漂移效應(yīng),因此它比幀間分割更為重要;(3)幀間分割,即C型分割,它僅包括幀間編碼塊模式和幀間系數(shù),一般情況下它是編碼分片的最大分區(qū),幀間分割是最不重要的,它同樣要求給定分片的A 型分割有效。