許曉中,毛 振,鄭蕭楨,鄭建樺,梅順良
(1.清華大學 電子工程系,北京 100084;2.海思半導體有限公司,廣東 深圳 518129)
視頻傳輸是一個重要的研究領(lǐng)域[1],在現(xiàn)有視頻編碼標準的編碼層中,圖像層和宏塊層之間引入了條帶這一高層語法。條帶的引入打斷了幀內(nèi)預測機制,起到重同步的作用,因而增強了抗誤碼能力。另外,可以通過調(diào)整條帶編碼長度大小,使得條帶數(shù)據(jù)包長度適應不同的信道最大傳輸單元 (Maximum Transmission Unit,MTU)大小的限制,有利于在系統(tǒng)層實現(xiàn)有效的抗誤碼策略。
H.264/AVC[2]中,一個條帶由按光柵掃描順序的若干連續(xù)宏塊組成,宏塊的數(shù)目不受限制,即一個條帶可以只包含一個宏塊或者包含整個圖像的所有宏塊。條帶的編碼長度可以靈活地做調(diào)整。另外,H.264/AVC還采用了條帶組技術(shù)[3],圖像中的每個宏塊按照宏塊配置圖固定地分配給一個條帶組,也就是說條帶組可由圖像中任意位置的若干宏塊組成。這一技術(shù)的主要作用是在易發(fā)生誤碼的環(huán)境中有利于解碼端實現(xiàn)有效的錯誤隱藏來提高重建圖像主觀質(zhì)量,另一方面可以實現(xiàn)基于區(qū)域的編碼,并對關(guān)鍵區(qū)域?qū)嵤┨貏e的抗誤碼措施以增強關(guān)鍵區(qū)域的抗誤碼能力。但是,為了實現(xiàn)條帶組技術(shù),需要在碼流中傳送圖像中每個宏塊所屬條帶組的標識信息,即宏塊配置圖,增加了編碼的比特開銷。
如圖1所示,相比H.264/AVC中以連續(xù)宏塊為單位的條帶結(jié)構(gòu),AVS中的條帶結(jié)構(gòu)必須以連續(xù)宏塊行為單位,同一圖像內(nèi)不同條帶之間編碼時不能相互參考[4]。這就造成將條帶編碼數(shù)據(jù)打成RTP包進行網(wǎng)絡傳輸時,包長不能靈活適應信道MTU大小。當包長超過MTU大小時,需在底層進行包分割。而這種與視頻編碼層隔離的底層分割自然不可能以視頻編碼層的語法語義為基礎(chǔ)來進行,只能以分割后的目標包長小于MTU大小為依據(jù),因此無法保證分割位置在字節(jié)對齊處,更不用談宏塊對齊。如果分割不能保證在字節(jié)對齊處,則需要在分割位置前的一個包的末尾以及分割位置后的一個包的開始分別填充比特以保證比特對齊,為了保證填充比特不影響解碼器解碼,還需要在分割后的包頭信息中提示如何填充比特的負載頭信息(Payload Header)。另外,AVS中也無類似H.264/AVC中的條帶組技術(shù),不能實現(xiàn)基于區(qū)域的編碼,進而實現(xiàn)基于關(guān)鍵區(qū)域的單獨打包及抗丟包技術(shù)以確保關(guān)鍵區(qū)域具有良好的容錯性。
基于以上分析可以看到:AVS中的條帶結(jié)構(gòu)在抗誤碼功能上與H.264/AVC還存在一定差距。因此,筆者通過完善AVS中的條帶高層語法,提出了靈活條帶集技術(shù),很好地解決了以上問題。
圖1 AVS條帶結(jié)構(gòu)示意圖
條帶集作為一個新的編碼層被引入到圖像層和條帶層之間,是圖像中條帶集索引值相同的所有條帶的集合。一般將若干具有共同屬性的條帶劃分為一個條帶集,這些共同屬性可以為:空間分辨力、圖像區(qū)域內(nèi)容、圖像的編碼質(zhì)量等。條帶集劃分的具體方法由編碼系統(tǒng)決定,解碼系統(tǒng)根據(jù)條帶頭信息獲知條帶集的劃分方法。
這里的條帶結(jié)構(gòu)以宏塊為單位,即AVS中以宏塊行為單位的條帶定義擴展成了按光柵掃描順序連續(xù)的若干宏塊,條帶內(nèi)的宏塊不應重疊,條帶之間也不應重疊,條帶內(nèi)的宏塊解碼處理不能使用本圖像內(nèi)其他條帶的數(shù)據(jù)。但是如果圖像中存在條帶集,條帶內(nèi)宏塊的解碼處理可使用本條帶集其他條帶的數(shù)據(jù),但是不能使用本圖像其他條帶集的數(shù)據(jù)。如果隔行圖像的兩場數(shù)據(jù)依次出現(xiàn),這兩場數(shù)據(jù)應屬于不同的條帶和條帶集。
條帶集結(jié)構(gòu)示例如圖 2所示, 圖中A,C,D,E,F(xiàn),G,J,K等條帶分別組成不同的條帶集;B0,B1,B2條帶組成一個條帶集;H0,H1組成一個條帶集。
圖2 條帶集結(jié)構(gòu)示
當使用條帶集技術(shù)時,條帶層頭需要添加的主要信息如下:
1)條帶垂直位置slice_vertical_position,給出條帶的第1個宏塊在圖像中的垂直位置,以宏塊為單位。
2)條帶水平位置slice_horizontal_position,給出條帶的第1個宏塊在圖像中的水平位置,以宏塊為單位。
3)條帶集索引slice_set_index,給出當前條帶的條帶集索引值。圖像中條帶集索引值相同的條帶組成1個條帶集。
4)條帶頭信息標志slice_header_flag,值為“1”表示條帶 比 特 流 中 應 包 含 fixed_slice_qp,slice_qp,slice_weighting_flag,luma_scale,luma_shift,ch roma_scale ,chroma_shift和mb_weighting_flag,值為“0”表示條帶比特流不應包含上述語法元素。SliceHeaderFlag的值等于slice_header_flag的值。如果比特流中沒有slice_header_flag,則Slice-HeaderFlag的值應為“1”。條帶集中條帶的上述語法元素的值應一致。如果當前條帶中不包含上述語法元素,當前條帶應使用所在條帶集其他條帶中上述語法元素的值。
5)條帶集結(jié)束標志 end_of_slice_set_flag,值為“1”,表示當前條帶是所在條帶集的最后一個條帶;值為“0”,表示當前條帶不是所在條帶集的最后一個條帶。
在靈活條帶集的基礎(chǔ)上,可以引入新的語法元素及編碼技術(shù)實現(xiàn)更多的編碼功能,如可實現(xiàn)多分辨力編碼、分區(qū)域獨立解碼及顯示、視頻水印、增強網(wǎng)絡抗誤碼等功能。本文重點分析基于區(qū)域的抗誤碼和基于區(qū)域的變質(zhì)量編碼。
考慮到條帶集技術(shù)的特點,可以適當改進碼流打包和傳輸?shù)倪^程以獲得更強的抗誤碼性能,即可在打包過程中將同屬一個條帶集的多個條帶編碼碼流組合在一起,實現(xiàn)以條帶集為單位的打包,并可對不同的條帶集采取不同強度的抗誤碼措施。典型的應用場景比如,某個條帶集所在區(qū)域是一關(guān)注區(qū)域,可通過對該條帶集實施更強的抗誤碼策略,如更強的包級RS信道編碼等,保證該關(guān)鍵區(qū)域能夠獲得更好的重建質(zhì)量,從而實現(xiàn)基于區(qū)域的抗誤碼功能。
靈活條帶集技術(shù)的使用,可方便對視頻圖像進行區(qū)域劃分,進行基于區(qū)域的編碼,且可支持用戶重點調(diào)整關(guān)注區(qū)域的編碼質(zhì)量以實現(xiàn)在同等碼率下用戶關(guān)注區(qū)域的主客觀質(zhì)量的明顯提升,給用戶帶來更佳的視頻感受。
下面對一些典型的視頻序列使用條帶集技術(shù)進行編碼,在同等碼率下關(guān)注區(qū)域均得到了0.6~1.4 dB的編碼增益。 選擇了視頻序列 news(704×480,隔行),lions(704×480,逐行)進行實驗,區(qū)域劃分及實驗結(jié)果如下:
1)news序列共劃分了3個關(guān)注區(qū)域,圖像示例見圖3,區(qū)域信息及其所屬條帶集和slice_qp信息見表1。anchor數(shù)據(jù)不劃分條帶集和條帶,使用的QP為28。序列編碼了28幀,對整個圖像而言,anchor和使用條帶集技術(shù)的碼率分別為1 685.56 Kbit/s和1 640.62 Kbit/s。統(tǒng)計關(guān)注區(qū)域的YPSNR值,結(jié)果見表2。
圖3 news序列關(guān)注區(qū)域示意圖
表1 news序列條帶集劃分
表2 news序列關(guān)注區(qū)域編碼效率 dB
2)截取了lions第45~75幀內(nèi)容進行編碼,圖像示例見圖4。第1個碼幀的區(qū)域劃分信息及其所屬條帶集和slice_qp信息見表3。此視頻中共有2個關(guān)注區(qū)域,根據(jù)視頻內(nèi)容進行動態(tài)劃分,這里僅給出第1幀的劃分信息。anchor數(shù)據(jù)不劃分條帶集和條帶,使用的QP為32。序列編碼了28幀,對整個圖像而言,anchor和使用條帶集技術(shù)的碼率分別為1 200.19 Kbit/s和1 209.83 Kbit/s。關(guān)注區(qū)域的YPSNR值,結(jié)果見表4。
圖4 lions序列關(guān)注區(qū)域示意圖
表3 lions序列條帶集劃分
表4 lions序列關(guān)注區(qū)域編碼效率 dB
提出了靈活條帶集技術(shù),介紹了靈活條帶集技術(shù)的比特流語法、劃分方式、碼流結(jié)構(gòu)、打包方式以及對現(xiàn)有編碼框架中其他技術(shù)的影響,并通過實驗演示了靈活條帶集技術(shù)可以帶來的功能性好處。
本文的創(chuàng)新在于:1)在圖像層和條帶層之間創(chuàng)新性地引入了條帶集層,提出了靈活條帶集技術(shù)。通過在條帶頭語法參數(shù)集中引入新的語法元素,在與目前AVS語法完全兼容的基礎(chǔ)上將現(xiàn)有條帶結(jié)構(gòu)從以宏塊行為單位擴展為以宏塊為單位,并將具有相同slice_set_index參數(shù)的條帶組成一個條帶集;2)設置條帶集內(nèi)各條帶編碼時可互相參考,減小了劃分條帶對編碼效率的影響;3)通過slice_header_flag參數(shù)的設置支持條帶集內(nèi)各條帶共用一套條帶層語法參數(shù)集,節(jié)省了條帶頭開銷;4)采用靈活條帶集技術(shù),可通過對一個條帶集中所有條帶整體打包并在系統(tǒng)層實施非均衡抗誤碼策略以確保條帶集表示的關(guān)鍵區(qū)域具有良好的容錯性;5)采用靈活條帶集技術(shù),還可實現(xiàn)基于區(qū)域的不同質(zhì)量編碼??煞奖愕赝ㄟ^調(diào)整條帶的量化參數(shù)(slice_qp)使得在總碼流相當?shù)那闆r下重建圖像的關(guān)注區(qū)域主客觀質(zhì)量得到明顯的提升。目前,所提靈活條帶集技術(shù)被AVS工作組接收進入標準的伸展檔次(面向監(jiān)控需求)。
[1]HANNUKSELA M M,WANG Y K,HOROWITZ M.Enhancements to FMO[EB/OL].[2009-08-08].http://wftp3.itu.int/av-arch/jvt-site/2002_07_Klagenfurt/JVT-D095.doc.
[2]GB/T 20090.2-2006,信息技術(shù):先進音視頻編碼 第2部分:視頻[S].2006.
[3]ITU-TRecommendationH.264-ISO/IEC14496-10,Advancedvideo coding for generic audiovisual services[S].2003.
[4]余華,曹維娜,趙力.信源信道聯(lián)合編碼技術(shù)用于AVS傳輸?shù)难芯縖J].電視技術(shù),2007,31(8):9-10.