盧 斌,孫 軍,王興東
(上海交通大學 電子工程系 圖像通信與信息處理研究所;上海市數字媒體處理與傳輸重點實驗室,上海 200240)
對于MPEG-2壓縮碼流來說,傳統的臺標或字幕插入方法是將碼流完整地解碼,把視頻信號恢復到像素域,然后在像素域上對臺標進行α半透明疊加,再將疊加后的碼流進行編碼[1],形成疊加后的壓縮碼流,如圖1所示。

這種方法的缺點是:1)效率低。對視頻中的每幀都做完全解碼和編碼,運算量大,特別是編碼中的運動矢量重新搜索和IDCT,DCT運算是最耗時的兩個部分。2)畫質下降。在經過反量化與量化的過程后,視頻圖像的質量會有所下降。而非臺標區域的解碼和編碼過程是不必要的,所以臺標區以外絕大部分區域的圖像質量下降是不必要的犧牲。
因此,考慮通過其他更高效的算法來實現臺標實時插入這一應用需求。
現有的非傳統臺標插入方法主要分為局部編解碼和DCT域處理兩大類。
對于局部編解碼方法,已有潘健、季學會等人提出相應的算法[2-3],在解碼范圍的確定和宏塊類型處理上,也有較為詳細的判斷準則和方法,能夠對碼流進行較完善的處理,但同樣存在著計算步驟繁復,在一定程度上影響效率等問題。Yu提出的反向跟蹤方法[4],能把解碼宏塊范圍進一步縮小,但針對的是臺標完全覆蓋的情況。徐硯劼等人提出的改進的反向跟蹤法[5],能處理α半透明疊加的問題。但存在一定的時延問題,必須在整個GoP分析后才能處理相應的宏塊,在實時性要求較高的場合中不太適用。李植榮等人提出了局部編解碼向DCT域處理的轉換[6],嘗試在局部編解碼的框架下引入部分DCT域處理方法,但算法較為復雜,應用不夠廣泛。
對于DCT域處理這類方法,其優勢主要在于無需對宏塊解碼。但該類方法需將臺標信號也做DCT變換,然后進行DCT域疊加。而α半透明疊加是矩陣的點乘運算[7],像素域的點乘在DCT域用卷積來實現[8],該實現較為復雜,但目前已有相應的快速算法[9]。陳亮等人提出了對壓縮碼流的DCT域處理綜合方法[10],疊加臺標作為其中的應用之一。林江、程國華等人提出完整的對壓縮視頻的DCT域字幕疊加算法[11-12],其中對于DCT域運動補償算法有詳細的描述,但仍存在算法復雜度較高的問題。徐章寧等人提出了相應算法在硬件實現上的優化處理[13]。
由于字幕疊加的關鍵還是在于解碼區的范圍確定和宏塊類型的判斷處理上,一般來說臺標區范圍都不會太大,并且運動矢量也不會太大。針對實時性要求較高的場合,從算法效率和實現難度上綜合考慮,筆者采用了改進的局部編解碼臺標快速實時插入方案,簡化算法復雜度,并允許臺標區域圖像質量的細微下降,以期在圖像質量和算法效率上求得最佳的平衡。
假設臺標為128×128大小的固定圖片,并且疊加位置在畫面的左上角。如圖2所示,①區域是臺標區。由于MPEG-2碼流的I,P,B幀結構[14],不同的幀之間存在一定的參考關系,所以對①區域的改動,可能會影響到外圍若干宏塊的正確解碼。例如,②區域中的標記陰影宏塊參考到①區域中的標記陰影宏塊,則影響到其正確解碼。①區域中的宏塊所影響到的最大解碼區域稱為臺標相關區,即圖中②區域。而圖中的③,④區域對臺標疊加沒有影響,也不受臺標疊加的影響,稱為無關區。

因此,局部解碼的范圍便是①區域全部宏塊和②區域中的部分宏塊。確定解碼區域的范圍轉化為確定②區域的范圍。
目前一般的方法是根據MPEG-2編碼中運動估計最大搜尋范圍,即臺標邊緣宏塊的最大運動矢量所指,來確定②區域的范圍[2]。這樣做可保證不會有宏塊遺漏,但也會造成②區域的范圍取得過大。Yu和徐硯劼等人提出的反向跟蹤方法[4-5],能夠把解碼宏塊的范圍盡可能地縮小,但考慮到該方法必須在對整個GoP進行分析后,再回溯處理每一幀,這對實時性要求較高的場合不太適用,特別是GoP長度太長時更是如此。
在實際應用中,最大運動矢量的絕對值,即運動估計時的搜索窗大小,由4< MPEG-2的解碼架構是以slice為單位的[14]。由于宏塊采取VLC編碼,無法實現字節對齊,所以為完整界定并提取宏塊信息,當前宏塊信息必須在前面的宏塊都解碼后才能獲得。在判斷宏塊已經到②區域的邊界后,對于③區域的宏塊信息,在找到下一個slice頭之前都可以寫回碼流中。而④區域中整個slice都與局部編解碼無關,故在判斷達到②區域的最后一個slice之后,和找到下一個幀頭之前,碼流中的所有信息都不予改動,可直接寫回。 在3.1節確定了各個區域的范圍后,下面討論不同的幀類型和不同區域的宏塊如何進行不同的判斷處理。 1)對于I幀,解碼①區域和②區域的宏塊,然后對①區域的宏塊進行臺標的ΔS半透明疊加,同時將宏塊緩存,供后面的P,B幀參考用。對宏塊再進行幀內編碼,與無關區的碼流拼合,這便完成了I幀的處理。這樣一來,后面P,B幀中參考到I幀非臺標區的宏塊能夠保證按原先的運動矢量正確解碼,而對于參考到I幀臺標區的宏塊,其處理方法將在后面詳述。 2)對于P幀,同樣要對①區域的slice進行解碼,對①區域的宏塊進行臺標的α半透明疊加。由于臺標區的圖像內容大部分為靜止的臺標,相似性較大,為提高處理的效率,把P幀臺標區的宏塊解碼后跟I幀臺標區的對應宏塊(已緩存)相減,得到殘差ΔP,并把運動矢量(MV)設為零,前向參考,同時對疊加臺標后的臺標區宏塊緩存。這樣雖然比重新搜索運動矢量碼率高,但卻使得宏塊處理變得簡單,并且由于臺標區一般面積較小,對圖像質量的影響并不大,而且碼率上升是極有限的。在其后的編碼中多數此類的宏塊類型變為skipped模式。 為滿足實時性的要求,算法的處理應該越簡單越好。筆者采用的方法雖使臺標區畫質有所下降,碼率有微小上升,但對人眼的主觀視覺影響并不大,而算法的處理效率卻能得到較大的提高。 對于非臺標區,先僅解碼宏塊的運動矢量,如果運動矢量指向臺標區,說明該宏塊的參考宏塊已被改動過,如果不加以處理,在后續的播放過程中該宏塊將會有臺標的“殘留”,從而影響畫質。處理方法就是對該宏塊進一步解碼,找出對應的參考宏塊(已解碼并緩存),相減獲得新的殘差值Δ′P,運動矢量保持不變,這樣就能保證該宏塊能正常解碼。而對于運動矢量沒有指向臺標區的②區域宏塊,無須解碼。 3)對于B幀,與P幀的處理方法相似,可參照圖3。臺標區同樣進行運動矢量置零,前向參考的處理。而對臺標相關區,不論宏塊的類型是前向參考、后向參考還是雙向參考,只要其運動矢量指向了臺標區,就應解碼,并找出相應的參考宏塊(不論I幀還是P幀,都如前所述已緩存),相減得到新的殘差Δ′B,運動矢量保持不變。運動矢量沒有指向臺標區的宏塊同樣無須解碼。 由于B幀不作參考幀,故疊加臺標后的臺標區宏塊無須緩存。I幀和P幀中的緩存數據在所有參考它們的B幀都進行處理后失效,緩存區可重復使用。 采用這種只解運動矢量再進行判斷的方法,可以盡量減少宏塊的解碼耗時,從而避免處理效率的低下,并且能保證一定的視頻質量。算法流程偽代碼如下: 實驗采用stockholm序列,分辨力為720×576(標清畫質),設定播放幀率為 25 f/s(幀/秒),碼率為 5 Mbit/s。GoP結構為N=12,M=3。實驗中,參照組是傳統的全解全編算法,比較指標分為算法效率和視頻質量: 1)算法效率對比。在經過200幀的測試序列運算后,算法效率對比見表1。 表1 傳統方法與本文方法算法效率對比 由表1可見,本文方法比傳統方法效率提高約150%。算法效率提高的主要原因在于解碼范圍的縮小。傳統算法對占畫面大部分區域的非臺標區也進行解碼,并重新搜索運動矢量,再編碼,效率低下。而本文的算法采用局部編解碼來縮小解碼范圍,雖然包括臺標相關區,但總的解碼范圍相對整個畫面來說依然占少部分。再加上宏塊類型判斷處理過程采用簡化處理算法,進一步提高效率,達到實時處理的要求。 2)視頻質量對比。在視頻質量對比上,采用在同一GoP中的每幀亮度分量作對比,衡量指標是整幅圖像的PSNR。圖4是本文算法中的一幀亮度分量。圖5是兩種算法的PSNR對比。 由圖5中可見,本文方法比傳統的全解全編算法在整體圖像質量上有較大的提高。計算得出,傳統方法的PSNR平均值為35.046 dB,本文方法的PSNR平均值為35.779 dB,比前者提高0.733 dB??梢钥闯觯诒疚牡乃惴ㄖ?,臺標區的視頻質量下降是很有限的,而占畫面大部分的非臺標區域的視頻質量比傳統方法提高不少,減少了不必要的視頻質量下降,故總體畫面的PSNR指標有較大的提升。 筆者采用了經過簡化改進的局部編解碼臺標插入技術,主要針對實時性要求高的MPEG-2臺標插入場合,從算法的高效性出發,在保證視頻質量無明顯下降的情況下,提出的方法實現了MPEG-2壓縮碼流的快速實時臺標疊加。經實驗證明,新方法同傳統的“完全解碼-疊加-再編碼”的方法相比,在算法效率和視頻質量上都有較大的提升。 [1]MESSERSCHMITT D G,NOGUCHI Y,CHANG S F.MPEG video compositing in the compressed domain[C]//Proc.ISCAS 1996.[S.l.]:IEEE Press,1996:596-599. [2]潘建.數字視頻編輯及網絡傳輸中若干問題研究[D].上海:上海交通大學,1999. [3]季學會.MEPG-2編解碼與非線性編輯[D].杭州:浙江大學,2000. [4]YU B,NAHRSTEDT K.A compressed-domain visual information embedding algorithm for MPEG-2 HDTV streams[J].IEEE Int.Conf.Multimedia and Expo,2002, 1:677-680. [5]徐硯劼.基于MEPG-2的數字電視壓縮碼流處理技術研究[D].上海:上海交通大學,2009. [6]李植榮.MPEG-2視頻臺標系統及碼率變換的研究與實現[D].上海:上海交通大學,2002. [7]SMITH B C,ROWE L.Algorithms for manipulating compressed images[J].IEEE Computer Graphics and Applications, 1993, 13(5):34-42. [8]SHEN B, SETHI I K,BHASKARAN V.DCT convolution and its application in compressed domain[J].IEEE Trans.Circuits and Systems for Video Technology, 1998,8(8):947-952. [9]JóNSSON R H.Efficient DCT domain implementation of picture masking and compositing[C]//Proc.International Conference on Image Processing.Santa Barbara, CA, USA:[s.n.],1997:366-369. [10]陳亮.基于壓縮域的數字視頻處理技術研究[D].上海:上海交通大學,2003. [11]林江.MPEG-2視頻流壓縮域的字幕迭加及其算法研究[D].上海:上海交通大學,2004. [12]程國華.基于壓縮域的視頻轉碼與視頻編輯技術的研究[D].上海:上海交通大學,2005. [13]徐章寧.基于DM642平臺的數字電視碼流字幕疊加技術研究[D].上海:上海交通大學,2010. [14]ISO/IEC 13818-2,Generic coding of moving pictures and associated audio information:video[S].1994.3.2 改進簡化后的宏塊判斷處理方法


4 實驗結果和數據對比



5 小結