王雅雪
摘 要:視頻碼流在3G無(wú)線網(wǎng)絡(luò)的傳輸過(guò)程中經(jīng)常會(huì)引入一些誤碼。傳統(tǒng)基于視頻語(yǔ)義的誤碼檢測(cè)方法,只能檢測(cè)出不符合碼流標(biāo)準(zhǔn)的語(yǔ)義誤碼,而不能檢測(cè)符合碼流標(biāo)準(zhǔn)但實(shí)際數(shù)據(jù)改變的內(nèi)容誤碼。針對(duì)內(nèi)容誤碼,提出了一種基于色度空間相關(guān)性的H.263誤碼檢測(cè)算法。
關(guān)鍵詞:3G無(wú)線網(wǎng)絡(luò);H.263;空間相關(guān);誤碼檢測(cè)
隨著3G時(shí)代的到來(lái),無(wú)線視頻通信的應(yīng)用越來(lái)越廣泛。3G無(wú)線網(wǎng)絡(luò)中,多徑衰減和噪聲等因素導(dǎo)致其具有帶寬有限、高誤碼率、信道質(zhì)量隨時(shí)間動(dòng)態(tài)變化等特點(diǎn),在有限帶寬和時(shí)變易錯(cuò)的無(wú)線信道上傳輸高質(zhì)量的視頻圖像,需要引入有效的容錯(cuò)技術(shù)[2]。
1 H.263句法和語(yǔ)義
H.263編碼句法層從上到下可以分為四層[8]:圖像、塊組、宏塊、塊。
塊組起始碼(GBSC)為17比特長(zhǎng)度的碼流,標(biāo)志一個(gè)塊組的開(kāi)始。塊組編號(hào)(GOB Num,GN)為5比特長(zhǎng)度的碼流,標(biāo)志當(dāng)前塊組在一幀所有塊組中的序號(hào)。每個(gè)塊組包含一行或多行宏塊。
宏塊層句法包括了當(dāng)前宏塊的編碼模式、運(yùn)動(dòng)矢量、以及VLC系數(shù)等數(shù)據(jù)。解碼器從碼流中讀取這些數(shù)據(jù)后,進(jìn)行運(yùn)動(dòng)矢量解析和紋理數(shù)據(jù)解析,得到重建圖像。
H.263解碼器讀取圖像頭后,循環(huán)進(jìn)行塊組解碼至一幀結(jié)束。塊組起始碼的存在,為H.263解碼提供了重同步標(biāo)志。需要注意的是,塊組頭是允許不存在的,在一個(gè)塊組解碼完成后,若后續(xù)17比特碼流非塊組同步頭,則解碼器默認(rèn)其未被編碼。
誤碼存在的碼流部位主要為塊組層頭部和宏塊數(shù)據(jù)。當(dāng)塊組頭發(fā)生誤碼,將造成塊組編號(hào)讀取錯(cuò)誤或同步頭被破壞。
2 基于語(yǔ)義的誤碼檢測(cè)算法
H.263解碼器中,設(shè)置有塊組計(jì)數(shù)器:無(wú)論當(dāng)前塊組編號(hào)是否可讀取,計(jì)數(shù)器皆加1以標(biāo)識(shí)已解碼塊組數(shù)。因此,當(dāng)讀取到的塊組編號(hào)與計(jì)數(shù)器不一致,誤碼存在。塊組編號(hào)語(yǔ)義出錯(cuò)的情況可分兩種:第一個(gè)塊組編號(hào)出錯(cuò)和后續(xù)塊組編號(hào)出錯(cuò)。
對(duì)第一個(gè)塊組,幀頭起始碼即塊組起始碼。解碼器進(jìn)入一幀解碼,首先尋找17比特幀頭起始碼,并順序讀取5比特塊組編號(hào)。正常情況下,首個(gè)塊組編號(hào)為0。當(dāng)幀頭碼流發(fā)生誤碼導(dǎo)致首個(gè)塊組編號(hào)非0時(shí),解碼器進(jìn)行誤碼檢測(cè)和容錯(cuò)。圖3所示為幀頭誤碼時(shí),基于語(yǔ)義的誤碼檢測(cè)算法流程圖。
視頻解碼器的第一個(gè)I幀幀頭是不容缺損的,否則將無(wú)法獲取正確的解碼器配置參數(shù),導(dǎo)致后續(xù)解碼圖像質(zhì)量嚴(yán)重?fù)p壞。因此,第一幀幀頭發(fā)生誤碼時(shí),解碼器直接返回解碼失敗信息。后續(xù)幀幀頭發(fā)生誤碼則可以復(fù)用前一幀幀頭信息進(jìn)行解碼。
根據(jù)圖像幀頭部中解析到的視頻圖像分辨率及每個(gè)塊組所包含的宏塊數(shù),可以計(jì)算出一幀所包含的塊組數(shù),從而得出一幀內(nèi)塊組編號(hào)的范圍。以此為依據(jù),對(duì)非幀頭所在的塊組,根據(jù)其塊組編號(hào)是否越界,來(lái)判定是否發(fā)生語(yǔ)義誤碼。
3 基于色度空間相關(guān)性的誤碼檢測(cè)算法
在宏塊紋理數(shù)據(jù)解析過(guò)程中,各個(gè)系數(shù)都有其范圍,當(dāng)解碼器解析到的系數(shù)越界時(shí),即判定系數(shù)不符合碼流標(biāo)準(zhǔn),碼流出現(xiàn)語(yǔ)義誤碼?;谡Z(yǔ)義的誤碼檢測(cè)算法僅能夠檢測(cè)到這種不符合碼流標(biāo)準(zhǔn)的語(yǔ)義誤碼。當(dāng)誤碼符合標(biāo)準(zhǔn),如某個(gè)塊組同步頭被損壞或出錯(cuò)的紋理數(shù)據(jù)并未越界時(shí),解碼器誤判為碼流正確繼續(xù)進(jìn)行解碼重建。由于僅依靠基于語(yǔ)義的誤碼解析不能檢測(cè)到誤碼位置,因此解碼圖像質(zhì)量無(wú)法得到保證。另外,多次實(shí)驗(yàn)數(shù)據(jù)表明,在解碼器自身檢測(cè)到語(yǔ)義誤碼時(shí),往往出錯(cuò)宏塊之前的某些宏塊系數(shù)內(nèi)容已經(jīng)異常,而由此導(dǎo)致解碼圖像中出現(xiàn)與周?chē)陦K色度差異明顯的彩塊和馬賽克現(xiàn)象,嚴(yán)重影響了圖像的視覺(jué)效果。
本文結(jié)合語(yǔ)義誤碼檢測(cè),提出了一種基于色度空間相關(guān)性的誤碼檢測(cè)算法,準(zhǔn)確地檢測(cè)碼流中的內(nèi)容誤碼。
由于宏塊與宏塊之間不存在同步標(biāo)識(shí),當(dāng)解碼器檢測(cè)到某個(gè)宏塊系數(shù)越界時(shí),首先使用基于語(yǔ)義的誤碼檢測(cè),搜索后續(xù)碼流中的塊組同步頭,對(duì)丟失的碼流進(jìn)行錯(cuò)誤隱藏。然后,對(duì)出錯(cuò)宏塊前的碼流進(jìn)行基于色度空間相關(guān)性的內(nèi)容誤碼檢測(cè)。
由于一幀圖像相鄰宏塊的色度相近,色度塊的紋理數(shù)據(jù)值相差較小,相鄰宏塊的色度DC系數(shù)具有很強(qiáng)的相關(guān)性。因此可以利用相鄰宏塊的色度DC系數(shù),來(lái)檢測(cè)當(dāng)前宏塊是否存在內(nèi)容誤碼。
在解碼過(guò)程中,分別保存每個(gè)宏塊兩個(gè)色度塊(Cb塊和Cr塊)的DC系數(shù),并進(jìn)行基于語(yǔ)義的誤碼檢測(cè)。
在檢測(cè)到宏塊語(yǔ)義誤碼后,根據(jù)語(yǔ)義誤碼位置計(jì)算需要進(jìn)行內(nèi)容誤碼檢測(cè)的宏塊行數(shù)。本文算法對(duì)從第二行宏塊開(kāi)始到出錯(cuò)行宏塊,依次進(jìn)行誤碼檢測(cè)。單個(gè)宏塊的空間相關(guān)性誤碼檢測(cè)誤流程是:對(duì)當(dāng)前宏塊兩個(gè)色度塊的DC系數(shù),分別計(jì)算該DC系數(shù)與上方宏塊相應(yīng)系數(shù)的差值絕對(duì)值,當(dāng)差值絕對(duì)值超過(guò)特定閾值時(shí),判定該宏塊紋理數(shù)據(jù)發(fā)生了內(nèi)容誤碼。
在檢測(cè)到內(nèi)容誤碼時(shí),對(duì)從誤碼宏塊開(kāi)始到宏塊所在行結(jié)束的碼流進(jìn)行錯(cuò)誤隱藏。然后從下一行第一個(gè)宏塊開(kāi)始,繼續(xù)進(jìn)行DC系數(shù)誤碼檢測(cè)。
本文算法采用兩個(gè)色度塊的DC系數(shù),在每個(gè)宏塊解碼過(guò)程中只需保存色度塊DC系數(shù),使得解碼器在增加內(nèi)容誤碼檢測(cè)功能后,幾乎不影響解碼器的運(yùn)行效率。
4 結(jié)束語(yǔ)
本文針對(duì)3G無(wú)線視頻通信中存在的碼流內(nèi)容誤碼現(xiàn)象,提出了一種基于色度空間相關(guān)性的H.263視頻誤碼檢測(cè)算法。該算法利用空間相鄰宏塊的色度DC系數(shù)來(lái)進(jìn)行誤碼檢測(cè),有效地定位傳統(tǒng)語(yǔ)義碼流解析無(wú)法檢測(cè)到的內(nèi)容誤碼。本文提出的誤碼檢測(cè)算法可以同各種錯(cuò)誤隱藏算法[7]相結(jié)合,以提高解碼器的容錯(cuò)效果。
[參考文獻(xiàn)]
[1]Chunbo Zhu,ye-Kui Wang, Miska M.Hannuksela.Error Resilient Video Coding Using Redundant Pictures[J].IEEE Transactions on Circuits and Systems For Video technology,2009,19(1):3-31.
[2]Zhang X C,Huang M.Error resilient transcoding for wireless video transmission[C].Proceeding of International Conference on Wireless Networks and Information Systems,2009:286-289.
[3]韓鎮(zhèn),胡瑞敏,陳皓.一種基于分層率失真優(yōu)化的容錯(cuò)性視頻轉(zhuǎn)碼算法[J].計(jì)算機(jī)學(xué)報(bào), 2009,23(6):1152-1160.
[4]Zhu C B,Wang Y K,Hannuksela M M,et al..Error resilient video coding using redundant pictures[J].IEEE Transactions on Circuits and Systems For Video technology,2009,19(1):3-14.
[5]Bai-Lin Yang,F(xiàn)rederick W.B.Li,Zhi-Geng Pan.An Effective Error Resilient Packetization Scheme for Progressive Mesh Transmission over Unreliable Networks[J].Journal of Computer Science and Technology,2008,23(6):1015-1025.
[6]Vijay A Suryavanshi, Aria Nosratinia.Error-Resilient Packet Header Compression[J].IEEE Transactions on Communications, 2008, 56(11):1836-1843.
[7]Wiegand T,F(xiàn)arber N,Stuhlmuller K. Error-resilient video transmission using long-term memory motion-compensated prediction[J].IEEE Journal on Selected Areas in Communications, 2000,18(6):1050-1062.
[8]ITU-T.Video coding for low bit rate communication (Recommendation H.263)[S].Telecommunication standardization sector of ITU,2005,1.