郭明松,張麗暉,周勁蕾,藺吉虹,陳 芬
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
隨著信息技術(shù)的發(fā)展,21世紀被形象地稱為信息時代、數(shù)字時代、多媒體時代。多媒體信息主要包括文字、聲音、圖像、圖形和視頻等內(nèi)容,其中,視頻又是多媒體信息中最重要的組成部分。無論是存儲還是傳輸,數(shù)字視頻都必須經(jīng)過極大的壓縮才具有實際意義,這就使得視頻壓縮技術(shù)成為多媒體技術(shù)的關鍵所在。目前最優(yōu)秀的視頻編碼標準是H.264,但是它的優(yōu)異性能是以巨大的運算量為代價的,這其中運動估計就占了70%,因此,對運動估計算法的研究具有很大的實用價值。
運動估計是視頻編碼中的一項核心技術(shù),能有效去除序列圖像的幀間冗余從而實現(xiàn)高效編碼。它利用在同一場景中相鄰兩幅圖像具有的時域相關性,在參考幀中搜索當前塊的最佳匹配塊并計算兩塊的相對位移量,即運動矢量。當前有很多經(jīng)典的運動估計算法,如全搜索算法、三步搜索算法 3SS(Three Step Search)、菱形搜索算法 DS(Diamond Search)和六邊形搜索算法 HEXBS(Hexa-gon Based Search)等。本文主要研究三步搜索算法在DSP平臺上的移植,并加入人機接口,設計一個基于運動估計算法的DSP應用系統(tǒng)。
基于DSP實現(xiàn)該算法有以下優(yōu)勢:(1)用戶開發(fā)自由度更大,支持多種個性化開發(fā),可以滿足市場不斷提出的新的要求,在第一時間提升產(chǎn)品性能,增強產(chǎn)品的競爭能力;(2)DSP處理能力強,可以在一個DSP上同時實現(xiàn)多路音視頻信號的壓縮處理,還可提供很多視頻專用功能,如視頻濾波、高分辨顯示輸出和 OSD等;(3)外圍接口豐富,開發(fā)周期短,可實現(xiàn)快速技術(shù)更新和產(chǎn)品換代;(4)芯片功耗低,為提高產(chǎn)品的穩(wěn)定性提供可靠保障。
本文用SEED-DEC6437開發(fā)板、攝像頭和液晶顯示器等搭建了硬件平臺,在其上實現(xiàn)對采集的實時視頻的相鄰兩幀進行運動估計,在參考幀中找到最佳匹配塊并計算出相應的運動矢量,同時加入人機接口,通過用戶按鍵,靈活地切換到不同的工作模式。系統(tǒng)流程圖如圖1所示。
圖1 基于運動估計算法的DSP應用系統(tǒng)整體流程圖
整個系統(tǒng)的數(shù)據(jù)流程為:首先從CCD攝像頭采集PAL制式模擬視頻信號,通過視頻解碼芯片TVP5150將模擬信號解碼成YCbCr422格式的數(shù)字圖像信號[1],并通過數(shù)據(jù)總線將數(shù)據(jù)存儲至DDR2,TMS320DM6437通過訪問DDR2進行視頻數(shù)據(jù)的相應處理。在本系統(tǒng)中,數(shù)據(jù)處理過程主要在于實現(xiàn)運動估計算法,通過CCS3.3軟件中的Watch Window查看計算出的運動矢量。
在進行運動估計之前,首先要在SEED-DEC6437開發(fā)板上搭建視頻回路,該回路包括視頻輸入模塊、算法處理模塊和視頻輸出模塊3部分。SEED-DEC6437開發(fā)板上的TMS320DM6437處理器中集成的視頻處理子系統(tǒng)(VPSS)包含視頻處理前端(VPFE)[2]和視頻處理后端(VPBE)[3]。VPFE用于視頻輸入,可以連接 PAL標準模擬視頻輸入信號,也可以連接數(shù)字視頻輸入信號。
系統(tǒng)視頻輸入是利用解碼芯片TVP5150將模擬信號解碼成YCbCr422格式的數(shù)字圖像信號,再送入TMS320DM6437進行相應的圖像處理。TVP5150是一款高性能的視頻解碼芯片,可以將PAL制式的視頻信號或NTSC制式的視頻信號轉(zhuǎn)換成YCbCr422格式的數(shù)字信號。TMS320DM6437與TVP5150的連接框圖如圖2所示,在SEED-DEC6437開發(fā)板上接一路復合視頻輸入。
圖2 TVP5150與TMS320DM6437鏈接示意圖
TVP5150實時輸出的視頻圖像數(shù)據(jù)為符合ITU-R BT.656標準的 YCbCr 4:2:2數(shù)字視頻圖像數(shù)據(jù),其特點是,每個像素點具有自己單獨的亮度信息Y,但是每兩個相鄰的像素共用同一組色度數(shù)據(jù)Cb和Cr。
TMS320DM6437視頻輸出是利用內(nèi)置的VPSS的視頻輸出編碼模塊(VENC)中 4路 10 bit的 DAC輸出,實現(xiàn)CVBS與VGA的輸出。其中,CVBS輸出接口使用了其中1路DAC,VGA輸出接口使用了共3路的DAC。本系統(tǒng)在設計過程中主要采用以composite復合信號的形式來進行最終實時圖像的輸出顯示。其視頻輸出連接示意圖如圖3所示。
圖3 視頻輸出示意圖
圖4為H.264編碼器的主體結(jié)構(gòu)。其中,F(xiàn)n為當前欲編碼的幀,它是以宏塊為單位進行編碼處理的,每個宏塊是以幀內(nèi)或幀間模式進行編碼。Fn-1是指前面已解碼的多個參考幀,在幀間模式下,宏塊根據(jù)參考幀F(xiàn)n-1進行運動估計ME (Motion Estimation)和運動補償(Motion Compensation)得到預測值P,預測值與當前幀F(xiàn)n得到殘差值,再對該殘差值進行變換編碼T與量化Q,得到變換量化系數(shù);最后經(jīng)墑編碼輸出到網(wǎng)絡提取層 NAL(Network Abstraction Layer)。 Fn′為經(jīng)過濾波得到的重構(gòu)圖像,它將被放入?yún)⒖紟鎯ζ髯鳛橄乱粠驇讕幋a的參考幀之一。其中,運動估計是基礎,也是運算量最大的部分。
圖4 H.264編碼器流程
運動估計的基本思想是將圖像序列的每一幀分成許多互不重疊的宏塊,并認為宏塊內(nèi)所有像素的位移量都相同,然后對于當前幀中的每一塊的前一幀或后一幀在某一給定搜索范圍內(nèi),根據(jù)一定的匹配準則找出與當前塊最相似的塊,即匹配塊由匹配塊與當前塊的相對位置計算出運動位移,所得的運動位移即為當前塊的運動矢量。
基于塊匹配的運動估計可以從塊的模式選擇、塊匹配準則和搜索策略3個方面進行研究。
(1)在 H.264 編碼標準中,有7個塊的模式可供選擇, 分別為 16×16、16×8、8×16、8×8、8×4、4×8、4×4,本文采用 8×8模式。
(2)運動估計算法中常用的匹配準則有最小絕對差(MAD)、最小均方誤差 (MSE)和歸一化互相關函數(shù)(NCCF)3種。在運動估計中,匹配準則對匹配的精度影響不大,由于求和絕對誤差SAD (Sum ofAbsolute Difference)準則不需作乘法運算,實現(xiàn)簡單、方便,因此使用最多,通常使用SAD代替MAD。SAD定義為:
其中,fk(m,n)是當前幀的亮度值,fk-1(m+i,n+j)為參考幀中相應塊的亮度值。
(3)搜索策略是否恰當對運動估計的準確性、運動估計的速度都有很大影響。有關搜索策略的研究主要是解決運動估計中存在的運算復雜度和搜索精度這一矛盾。目前運動估計的搜索方法很多,有全搜索法(FS)、二維對數(shù)法(TDL)、三步法(TSS)、交叉法(CS)、新三步法(NTSS)、四步法(FSS)、菱形法(DS)和運動場自適應搜索算法(MVFAST)等。本文對三步搜索算法在DSP上的移植進行研究。
三步搜索算法描述如下:
(1)三步搜索算法以略大于最大搜索范圍的一半開始進行搜索,計算搜索中心點四周的正方形區(qū)域,計算正方形8個點的SAD值,算出其中最小的一個也是最匹配的一個;
(2)搜索范圍減半,在以匹配點為搜索中心的小正方形范圍內(nèi)繼續(xù)搜索,計算小正方形的SAD值,再判斷其中最小的一個;
(3)以匹配點為中心進行更小的正方形搜索,最終SAD值最小的宏塊即為最匹配的宏塊。
對采集到的相鄰兩幀圖像用三步搜索算法進行處理,如圖5所示。
經(jīng)過三步搜索算法搜索到最佳匹配塊后,將當前幀的當前塊的坐標與最佳匹配塊坐標相減,得到運動矢量。本文對8×8的塊進行搜索,第1步中步長取4,第2步中步長取2,第3步中步長取1,搜索結(jié)果如圖6所示。其中,temp為一個含9個元素的一維數(shù)組,存放9個點的SAD值;mvx和mvy為SAD值最小點的坐標,通過該坐標可以計算出相應的運動矢量。
人機接口如圖7所示。通過鍵盤控制算法選擇,同時在液晶上顯示相應的算法名稱。按鍵和液晶都是通過TMS320C5402 DSP控制,TMS320C5402DSP通過多通道緩沖串口McBSP與TMS320DM6437通信,從而實現(xiàn)上述功能。
圖7 人機接口框圖
為了增強系統(tǒng)的實時性和靈活性,本文使用了DSP/BIOS來調(diào)度任務。本文設置了一個硬件中斷,兩個任務,分別為McBSP硬件中斷、視頻回路任務和算法選擇任務。設置兩個任務的優(yōu)先級相同,通過TSK_yield()函數(shù)來切換任務。DSP/BIOS的任務時序圖如圖8所示。
本文以SEED-DEC6437開發(fā)板為核心硬件,成功搭建了視頻回路,并在CCS3.3環(huán)境下編寫算法代碼,實現(xiàn)了基于DSP的運動估計算法,取到了運動矢量。為了增強系統(tǒng)的靈活可控性和實時性,又成功加入了人機接口,成功實現(xiàn)了DSP/BIOS任務調(diào)度。
[1]Wu Xiaomin, Xu Weizhang, Zhu Nanhao, et al.A fast motion estimation algorithm forH.264 [C].International Conference on Signal Acquisition and Processing, IC5AP′10, 2010: 112-116.
[2]Jing Xuan,CHAU L P.An efficient three-step search algorithm for block motion estimation[J].IEEE Transactions on Multimedia, 2004, 6(3): 435-438.
[3]Texas Instruments Incorporated.TMS320DM6437 evaluation module(EVM)quick start installation guide[Z].2006.
[4]Texas Instruments Incorporated.TMS320DM643x DMP video processing front end(VPFE) user′s guide[Z].2008.
[5]王亮,徐佩霞.基于 DSP實時實現(xiàn)的H.264運動估計快速算法[J].小型微型計算機系統(tǒng),2005,26(11):2025-2028.
[6]雷琳,張俊峰,劉京,等.一種基于 H.264的改進的運動估計三步搜索算法 [J].計算機技術(shù)與發(fā)展,2010,20(12):1-7.
[7]王恒,朱金秀.H.264快速運動估計算法研究[J].海大學常州分校學報,2007,21(4):24-27.
[8]蔡自興,蔣冬冬,譚平,等.H.264中快速運動估計算法的一種改進方案 [J].計算機應用研究,2010,27(4):1524-1529.
[9]彭啟琮.達芬奇技術(shù)——數(shù)字圖像/視頻信號處理新平臺[M].北京:電子工業(yè)出版社,2008.