視頻通信中MPEG-4的誤碼彈性
2004/08/17
隨著多媒體系統(tǒng)和無線移動(dòng)通信先進(jìn)技術(shù)的發(fā)展,對(duì)各種多媒體業(yè)務(wù)的支持需求日益增長(zhǎng),如利用移動(dòng)多媒體技術(shù)實(shí)現(xiàn)移動(dòng)電話會(huì)議、遠(yuǎn)程醫(yī)療、移動(dòng)TV,遠(yuǎn)程教學(xué)等。由于MPEG-4提供的高壓縮效率及其差錯(cuò)恢復(fù)性能,廣泛的應(yīng)用與無線網(wǎng)絡(luò)通信,而MPEG-4編碼的視頻數(shù)據(jù),由于采用了VLC和時(shí)域預(yù)測(cè),對(duì)誤碼是非常敏感的。當(dāng)遇到差錯(cuò)時(shí),VLC使得解碼器很容易丟失與編碼器的同步,時(shí)域預(yù)測(cè)使得重組視頻中的差錯(cuò)會(huì)在后續(xù)視頻幀中擴(kuò)散,因此需要采用各種差錯(cuò)恢復(fù)技術(shù),來減少比特流中的誤碼,當(dāng)然這需要付出增加的比特開銷。
一、MPEG-4關(guān)鍵技術(shù)
在MPEG-4制定之前,MPEG-1、MPEG-2、H.261、H.263都是采用第一代壓縮編碼技術(shù),著眼于圖像信號(hào)的統(tǒng)計(jì)特性來設(shè)計(jì)編碼器,屬于波形編碼的范疇。第一代壓縮編碼方案把視頻序列按時(shí)間先后分為一系列幀,每一幀圖像又分成宏塊以進(jìn)行運(yùn)動(dòng)補(bǔ)償和編碼,這種編碼方案存在以下缺陷。
(1)將圖像固定地分成相同大小的塊,在高壓縮比的情況下會(huì)出現(xiàn)嚴(yán)重的塊效應(yīng),即馬賽克效應(yīng);
(2)不能對(duì)圖像內(nèi)容進(jìn)行訪問、編輯和回放等操作;
(3)未充分利用人類視覺系統(tǒng)(HVS,Human Visual System)的特性。
MPEG-4除采用第一代視頻編碼的核心技術(shù),如變換編碼、運(yùn)動(dòng)估計(jì)與運(yùn)動(dòng)補(bǔ)償、量化、熵編碼外,還提出了一些新的有創(chuàng)見性的關(guān)鍵技術(shù),充分利用了人眼視覺特性,抓住了圖像信息傳輸?shù)谋举|(zhì),從輪廓、紋理思路出發(fā),支持基于視覺內(nèi)容的交互功能,這適應(yīng)了多媒體信息的應(yīng)用由播放型轉(zhuǎn)向基于內(nèi)容的訪問、檢索及操作的發(fā)展趨勢(shì)。
1、視頻對(duì)象提取技術(shù)
MPEG-4實(shí)現(xiàn)基于內(nèi)容交互的首要任務(wù)就是把視頻/圖像分割成不同對(duì)象或者把運(yùn)動(dòng)對(duì)象從背景中分離出來,然后針對(duì)不同對(duì)象采用相應(yīng)編碼方法,以實(shí)現(xiàn)高效壓縮。盡管MPEG-4 框架已經(jīng)制定,但至今仍沒有通用的有效方法去根本解決視頻對(duì)象分割問題,視頻對(duì)象分割被認(rèn)為是一個(gè)具有挑戰(zhàn)性的難題。
目前進(jìn)行視頻對(duì)象分割的一般步驟是:先對(duì)原始視頻/圖像數(shù)據(jù)進(jìn)行簡(jiǎn)化以利于分割,這可通過低通濾波、中值濾波、形態(tài)濾波來完成;然后對(duì)視頻/圖像數(shù)據(jù)進(jìn)行特征提取,可以是顏色、紋理、運(yùn)動(dòng)、幀差、位移幀差乃至語(yǔ)義等特征;再基于某種均勻性標(biāo)準(zhǔn)來確定分割決策,根據(jù)所提取特征將視頻數(shù)據(jù)歸類;最后是進(jìn)行相關(guān)后處理,以實(shí)現(xiàn)濾除噪聲及準(zhǔn)確提取邊界。
2、VOP視頻編碼技術(shù)
視頻對(duì)象平面(VOP,Video Object Plane)是視頻對(duì)象(VO)在某一時(shí)刻的采樣,VOP是MPEG-4視頻編碼的核心概念。MPEG-4在編碼過程中針對(duì)不同VO采用不同的編碼策略,即對(duì)前景VO的壓縮編碼盡可能保留細(xì)節(jié)和平滑;對(duì)背景VO則采用高壓縮率的編碼策略,甚至不予傳輸而在解碼端由其他背景拼接而成。這種基于對(duì)象的視頻編碼不僅克服了第一代視頻編碼中高壓縮率編碼所產(chǎn)生的方塊效應(yīng),而且使用戶可與場(chǎng)景交互,從而既提高了壓縮比,又實(shí)現(xiàn)了基于內(nèi)容的交互,為視頻編碼提供了廣闊的發(fā)展空間。
3、視頻編碼可伸縮性技術(shù)
視頻編碼的可伸縮性(scalability)是指碼率的可調(diào)整性,即視頻數(shù)據(jù)只壓縮一次,卻能以多個(gè)幀率、空間分辨率或視頻質(zhì)量進(jìn)行解碼,從而可支持多種類型用戶的各種不同應(yīng)用要求。
。牐燤PEG-4通過視頻對(duì)象層(VOL,Video Object Layer)數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)分級(jí)編碼。MPEG-4提供了兩種基本分級(jí)工具,即時(shí)域分級(jí)(Temporal Scalability)和空域分級(jí)(Spatial Scalability),此外還支持時(shí)域和空域的混合分級(jí)。每一種分級(jí)編碼都至少有兩層VOL,低層稱為基本層,高層稱為增強(qiáng)層。基本層提供了視頻序列的基本信息,增強(qiáng)層提供了視頻序列更高的分辨率和細(xì)節(jié)。
。牐犜陔S后增補(bǔ)的視頻流應(yīng)用框架中,MPEG-4提出了FGS(Fine Granularity Scalable,精細(xì)可伸縮性)視頻編碼算法,F(xiàn)GS編碼實(shí)現(xiàn)簡(jiǎn)單,可在編碼速率、顯示分辨率、內(nèi)容、解碼復(fù)雜度等方面提供靈活的自適應(yīng)和可擴(kuò)展性,且具有很強(qiáng)的帶寬自適應(yīng)能力和抗誤碼性能。但還存在編碼效率低于非可擴(kuò)展編碼及接收端視頻質(zhì)量非最優(yōu)兩個(gè)不足。
二、MPEG-4誤碼彈性(error resilience)工具
MPEG4視頻標(biāo)準(zhǔn)也包含幾個(gè)差錯(cuò)恢復(fù)工具,來提高信道差錯(cuò)下的性能。
1、數(shù)據(jù)分割
由于視頻數(shù)據(jù)參數(shù)的差錯(cuò)敏感度不同,可將視頻數(shù)據(jù)分成兩部分來提高M(jìn)PEG-4的差錯(cuò)健壯性。每個(gè)視頻分組(VOP)的輪廓和運(yùn)動(dòng)數(shù)據(jù)放在第一部分,相對(duì)敏感度較低的紋理數(shù)據(jù)(AC TCOEFF)放在第二部分。分割兩個(gè)部分的再生同步碼,在INTER VOP中稱為運(yùn)動(dòng)標(biāo)志,在INTRA VOP中稱為DC標(biāo)志。當(dāng)差錯(cuò)不敏感的第二部分紋理數(shù)據(jù)發(fā)生一些比特差錯(cuò)時(shí),視頻解碼器可存儲(chǔ)視頻分組中無差錯(cuò)的運(yùn)動(dòng)和輪廓數(shù)據(jù)。也就是說,可成功隱藏第二部分的差錯(cuò),僅會(huì)有輕微的視覺失真。由于紋理數(shù)據(jù)組成了VOP的主要部分,數(shù)據(jù)分割允許分組的主要部分出錯(cuò),僅對(duì)視頻質(zhì)量有輕微影響。
運(yùn)動(dòng)矢量比紋理數(shù)據(jù)對(duì)差錯(cuò)更敏感,輪廓數(shù)據(jù)對(duì)面向?qū)ο笠曨l編碼差錯(cuò)健壯性的影響還需確定。當(dāng)紋理差錯(cuò)隱蔽較好時(shí),運(yùn)動(dòng)和輪廓數(shù)據(jù)的隱蔽會(huì)使得圖像失真較大。當(dāng)序列運(yùn)動(dòng)量大,幀間的視頻內(nèi)容會(huì)變化較大,也使得在解碼端很難實(shí)現(xiàn)隱藏。若比特流誤碼率不高,紋理數(shù)據(jù)的損傷對(duì)可視失真影響很小。
2、FEC中的RCPC(速率兼容的收縮卷積碼)
速率兼容的收縮卷積碼(RCPC碼)用于多速率信道的差控。此技術(shù)必須伴隨高速反饋信道指示機(jī)制,根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)更新編碼器。卷積編碼器以僅發(fā)送母碼開始而不加保護(hù)位。如果FEC解碼器由于出錯(cuò)不能解釋母碼,那么就通過反向信道通知編碼器,從而相應(yīng)提高保護(hù)率。四個(gè)寄存器的卷積編碼器可提供四種不同速率,編碼器先設(shè)定的速率為1作為起始,再按需要來降低速率。對(duì)降級(jí)的信道條件,信道編碼器必須為輸出信號(hào)分配較大數(shù)目的保護(hù)比特,以增強(qiáng)信道解碼器的糾錯(cuò)能力,然后速率保持逐漸降級(jí),直到解碼器能維持無檢測(cè)差錯(cuò)重構(gòu)母碼比特為止。當(dāng)已達(dá)最后速率而解碼器仍未能糾正差錯(cuò)信號(hào)時(shí),解碼器就剔除當(dāng)前像塊而轉(zhuǎn)向下一個(gè)像塊。因此,卷積編碼器的速率依據(jù)糾正損壞比特的能力而變化,所需速率越高,為獲得較好的差錯(cuò)保護(hù)而對(duì)輸出信號(hào)添加的冗余比特就越多。這種多速率的差錯(cuò)保護(hù)編碼被稱作截?cái)啻a。RCPC技術(shù)主要用于延遲敏感的視頻應(yīng)用,由于反饋信息和對(duì)損傷信號(hào)的重傳可能會(huì)引入過多的時(shí)延,對(duì)實(shí)時(shí)應(yīng)用不是很適合。RCPC和反向信道指示經(jīng)常組合使用,來實(shí)現(xiàn)MPEG-4標(biāo)準(zhǔn)的差錯(cuò)彈性恢復(fù)。
3、AIR(自適應(yīng)INTRA幀更新技術(shù))
AIR是MPEG-4標(biāo)準(zhǔn)中Annex E所規(guī)定的技術(shù),與對(duì)VOP中所有MB進(jìn)行統(tǒng)一的INTRA編碼的循環(huán)INTRA更新(CIR)截然不同,它包括在每個(gè)VOP中發(fā)送限定數(shù)目的INTRA宏塊。AIR進(jìn)行INTRA編碼的宏塊數(shù)遠(yuǎn)遠(yuǎn)少于每VOP或每幀的總宏塊數(shù)。根據(jù)通過標(biāo)記運(yùn)動(dòng)宏塊位置得到的更新映射圖,AIR對(duì)每幀中固定和預(yù)定的宏塊數(shù)目,有選擇地進(jìn)行INTRA編碼。通過對(duì)MB的絕對(duì)誤差和(SAD)與其門限值(SADth)進(jìn)行比較,來得到運(yùn)動(dòng)估值,SAD是通過MB和在先前VOP中空間相應(yīng)的MB間計(jì)算得到,SADth是先前VOP中全部宏塊的平均SAD值,如果某一宏塊的SAD超過了SADth,編碼器就判定該MB屬于高運(yùn)動(dòng)區(qū)域,也就是對(duì)傳輸差錯(cuò)敏感的區(qū)域,從而標(biāo)志該MB要進(jìn)行INTRA編碼。如果標(biāo)志INTRA編碼的宏塊數(shù)超過了設(shè)定的數(shù)目,那么視頻編碼器就以垂直掃描方向下移幀來編碼INTRA MB,直到預(yù)定數(shù)目的MB被INTRA編碼。對(duì)于下一幀,編碼器從相同的地方開始,并對(duì)INTRA宏塊開始編碼,包括在先前幀中標(biāo)志要進(jìn)行INTRA編碼的宏塊。編碼宏塊的數(shù)目要基于視頻應(yīng)用需求的比特率和幀率來確定。然而,為了提高差錯(cuò)健壯性,宏塊的數(shù)目可以根據(jù)每個(gè)視頻幀運(yùn)動(dòng)特征來動(dòng)態(tài)調(diào)整。由于圖像運(yùn)動(dòng)區(qū)域通常以INTRA模式編碼,就可能快速更新?lián)p壞的運(yùn)動(dòng)區(qū)域。
顯然,增加每幀中更新的宏塊數(shù)目可以加速差錯(cuò)恢復(fù),但在給定目標(biāo)比特率時(shí),會(huì)降低無差錯(cuò)時(shí)的視頻質(zhì)量。這是由于為了獲得目標(biāo)比特率,而采用了粗量化過程。然而,在相同的目標(biāo)比特率下,AIR比常規(guī)INTRA更新技術(shù)能提供更好更持久的客觀無差錯(cuò)質(zhì)量,因此,要進(jìn)行INTRA編碼的宏塊數(shù)目是在健壯性和比特速率、無差錯(cuò)視頻質(zhì)量間的權(quán)衡。
4、雙向解碼及RVLC
雙向解碼是來降低視頻流中有效誤碼率的差錯(cuò)彈性技術(shù),比特差錯(cuò)對(duì)感覺視頻質(zhì)量損傷最大,也導(dǎo)致了解碼器端丟失同步。在這種情況下,會(huì)忽略數(shù)據(jù)流中該差錯(cuò)之后的部分,直到檢測(cè)到無差錯(cuò)的同步碼字。然而,拋棄的視頻數(shù)據(jù)可無差錯(cuò)接收,從而明顯增強(qiáng)感覺質(zhì)量,拋棄的比特?cái)?shù)是差錯(cuò)位置和下一個(gè)無差錯(cuò)同步字位置間距離的函數(shù)。結(jié)果,實(shí)際誤碼率的數(shù)量級(jí)遠(yuǎn)遠(yuǎn)高于實(shí)際信道比特差錯(cuò)率。為了僅將損傷限制在受影響區(qū)域,并節(jié)省無差錯(cuò)接收的比特,雙向解碼還可進(jìn)行反向解碼;谇跋驒z測(cè)到的差錯(cuò),解碼器會(huì)停止其搜索下一個(gè)同步字。當(dāng)解碼器在同步碼字處恢復(fù)了同步時(shí),再由反向恢復(fù)操作,對(duì)前向操作中跳過的數(shù)據(jù)段解碼。
為了實(shí)現(xiàn)雙向路解碼,須采用可逆VLC(即RVLC)?赡娲a字是變長(zhǎng)編碼,可以前向和后向解碼,產(chǎn)生同樣的輸出?刹捎靡韵聨讉(gè)技術(shù)產(chǎn)生可逆VLC碼(Takashima,Wada and Murakami,1995;Watanabe,1996):其一是生成恒重碼(二進(jìn)制序列中1的數(shù)目),另一種生成恒重RVLC碼表的方法是,利用一個(gè)碼字第一符號(hào)的固定數(shù)目,或者說,如果解碼器從0開始解碼,則在碼字中搜索固定長(zhǎng)度的0,反之亦然。
由于在每個(gè)碼字中第一個(gè)被檢測(cè)到的符號(hào)數(shù)目可以確定,這些碼字都能雙向解碼,除了恒定碼重策略,其他生成RVLC表的方法是在每個(gè)碼字中分配固定數(shù)目的0、1。在這種情況下,RVLC碼可能的設(shè)定由01、10、0011、1100、001011、000111、110100等組成。相比于優(yōu)化的Huffman碼,雙向可解碼的編碼比特率增加2~3個(gè)百分點(diǎn)。
5、EREC(差錯(cuò)彈性的熵編碼)
盡管雙向解碼算法提高了抑制同步丟失的效率,但是相關(guān)聯(lián)的可逆VLC碼字在編碼比特流中引入了不必要的開銷,EREC通過在各種視頻參數(shù)的連續(xù)傳輸間提供轉(zhuǎn)換,顯著提高了編碼視頻流的差錯(cuò)彈性。視頻通信中差錯(cuò)最具破壞性的作用是使解碼器丟失同步,這源于視頻參數(shù)的變長(zhǎng)碼和兩個(gè)連續(xù)同步字之間參數(shù)的可變數(shù)目。EREC試圖使用定長(zhǎng)的時(shí)隙結(jié)構(gòu)來重組變長(zhǎng)碼,使得每個(gè)VLC碼的起始總是跟定長(zhǎng)時(shí)隙起始位置相一致。定長(zhǎng)時(shí)隙長(zhǎng)短由編碼器決定,并在傳送該時(shí)隙之前,放在視頻塊首發(fā)送給解碼器。如果解碼器檢測(cè)到VLC碼中有比特差錯(cuò),同步總在下一個(gè)時(shí)隙開始時(shí)恢復(fù),因此限制了受損時(shí)隙中的比特差錯(cuò)損傷。
三、組合的誤碼彈性工具
除了前述獨(dú)立的差錯(cuò)彈性機(jī)制,在視頻編碼算法中還可以使用組合技術(shù)來優(yōu)化差錯(cuò)彈性。彈性技術(shù)具有多種選擇,為了獲得擬選的優(yōu)化視頻質(zhì)量,我們應(yīng)選擇特定分組段。例如,分組的第一部分是由所包含宏塊的輪廓和運(yùn)動(dòng)編碼數(shù)據(jù)組成的,尚包含有關(guān)的管理數(shù)據(jù),如COD標(biāo)志和MCBPC。第二部分包含變長(zhǎng)的DCT數(shù)據(jù)和某些符合標(biāo)準(zhǔn)的控制數(shù)據(jù),如CBPY和差分量化步長(zhǎng)(DQUANT)。為了在差錯(cuò)發(fā)生時(shí),解碼器能在重要的第一部分中自動(dòng)恢復(fù)同步,采用EREC將編碼的運(yùn)動(dòng)矢量放入定長(zhǎng)時(shí)隙。使用HEC(信頭擴(kuò)展碼)標(biāo)志,對(duì)每個(gè)視頻幀中重要的頭部數(shù)據(jù),在視頻分組中被復(fù)制,來減少在視頻序列中剔除的幀數(shù)。進(jìn)一步說,第二部分的TCOEFF系數(shù)(DCT數(shù)據(jù))采用RVLC碼字而便于后向解碼,減少了由于同步丟失而拋棄的DCT數(shù)據(jù)。第一部分的運(yùn)動(dòng)矢量也可采用可雙向解碼的編碼方式,但是EREC則取消了可逆VLC碼介入的開銷。實(shí)驗(yàn)表明組合差錯(cuò)彈性技術(shù)所改善的客觀質(zhì)量(以110kbit/s和25f/s的速率采用MPEG-4編碼的Suzie序列)。首先,應(yīng)用數(shù)據(jù)分割將幀中編碼的運(yùn)動(dòng)矢量(第一部分)和紋理數(shù)據(jù)(第二部分)分開,對(duì)第一部分的運(yùn)動(dòng)數(shù)據(jù)應(yīng)用EREC;而當(dāng)解碼器標(biāo)志第二部分出錯(cuò)時(shí),DCT數(shù)據(jù)采用可逆的VLC碼,可對(duì)DCT系數(shù)雙向解碼;進(jìn)而,采用半碼率的Turbo碼來保護(hù)第一部分的頭部數(shù)據(jù)。
四、結(jié)束語(yǔ)
差控策略用來減輕傳輸差錯(cuò)對(duì)解碼視頻質(zhì)量的影響,策略的選擇依賴于很多因素,如在雙向和多點(diǎn)通信中介入的延遲、誤碼恢復(fù)技術(shù)帶來的比特率開銷、處理過程的復(fù)雜度等,這是任何系統(tǒng)應(yīng)用需要設(shè)計(jì)的問題。
信道差錯(cuò)對(duì)感覺視頻質(zhì)量有著決定性影響,可以有各種形式。然而,最有破壞性的信道差錯(cuò)會(huì)導(dǎo)致解碼端的同步丟失。由于在視頻編碼算法中應(yīng)用了時(shí)間和空間預(yù)測(cè),差錯(cuò)會(huì)在視頻序列范圍內(nèi)從時(shí)間和空間上迅速傳播。為了限制這種差錯(cuò)傳播并減輕其影響,采用了差控機(jī)制來滿足用戶需求和期望。最簡(jiǎn)單的差控技術(shù)是當(dāng)受到傳輸差錯(cuò)影響,需要隱蔽出現(xiàn)在視頻內(nèi)容中的“馬賽克”。這些技術(shù)基于解碼器,則在壓縮視頻流中不必增加開銷。另一類差控技術(shù)包含一些力圖阻止差錯(cuò)在時(shí)空間累積的機(jī)制。這類技術(shù)中最典型的代表是INTRA更新,該技術(shù)以規(guī)則的時(shí)間間隔發(fā)送INTRA幀。改進(jìn)后的自適應(yīng)INTRA更新(AIR)是以INTRA模式發(fā)送預(yù)定數(shù)目的運(yùn)動(dòng)宏塊,每幀發(fā)送一次。
由于AIR在更規(guī)則的間隔上更新視頻場(chǎng)景中最活躍的部分,比INTRA更新獲得更穩(wěn)定的視頻質(zhì)量。再一類差控機(jī)制是致力于檢測(cè)到差錯(cuò)時(shí)恢復(fù)同步的機(jī)制,這類差錯(cuò)彈性機(jī)制的例子有EREC和雙向解碼。EREC將變長(zhǎng)碼放到預(yù)置的定長(zhǎng)時(shí)隙中,當(dāng)解碼器不能完成對(duì)當(dāng)前VLC碼解碼時(shí),其能在下一時(shí)隙起始處恢復(fù)同步。這樣就減少了由于丟失同步而拋掉的比特?cái)?shù)目。當(dāng)編碼視頻流遇到傳輸差錯(cuò)時(shí),雙向解碼是最小化有效誤碼率的高效算法。雙向解碼是解碼器能對(duì)比特流雙向解碼,來恢復(fù)全部或部分在前向解碼中扔掉的比特流。為了使解碼器能反向解碼,在比特流中采用了可逆碼字。
ChinaByte(e.chinabyte.com)—中國(guó)多媒體視訊
相關(guān)鏈接: