摘 要: 采用基于TI公司高性能Davinci系列TMS320DM6437處理器的SEED-DEC6437 EVM板作為主要硬件平臺,在DSP開發(fā)環(huán)境CCS3.3中采用C語言和匯編語言混合編程實(shí)現(xiàn)運(yùn)動估計(jì)算法的DSP移植,并加入人機(jī)接口,使用DSP/BIOS調(diào)度多個(gè)任務(wù),從而實(shí)現(xiàn)了從軟件平臺到硬件平臺的移植,成功搭建了一個(gè)基于運(yùn)動估計(jì)算法的DSP應(yīng)用系統(tǒng)。研究結(jié)果表明,使用DSP平臺可以使得運(yùn)動估計(jì)算法的實(shí)時(shí)性更好。
關(guān)鍵詞: H.264;運(yùn)動估計(jì)算法;數(shù)字信號處理器;TMS320DM6437
隨著信息技術(shù)的發(fā)展,21世紀(jì)被形象地稱為信息時(shí)代、數(shù)字時(shí)代、多媒體時(shí)代。多媒體信息主要包括文字、聲音、圖像、圖形和視頻等內(nèi)容,其中,視頻又是多媒體信息中最重要的組成部分。無論是存儲還是傳輸,數(shù)字視頻都必須經(jīng)過極大的壓縮才具有實(shí)際意義,這就使得視頻壓縮技術(shù)成為多媒體技術(shù)的關(guān)鍵所在。目前最優(yōu)秀的視頻編碼標(biāo)準(zhǔn)是H.264,但是它的優(yōu)異性能是以巨大的運(yùn)算量為代價(jià)的,這其中運(yùn)動估計(jì)就占了70%,因此,對運(yùn)動估計(jì)算法的研究具有很大的實(shí)用價(jià)值。
運(yùn)動估計(jì)是視頻編碼中的一項(xiàng)核心技術(shù), 能有效去除序列圖像的幀間冗余從而實(shí)現(xiàn)高效編碼。它利用在同一場景中相鄰兩幅圖像具有的時(shí)域相關(guān)性,在參考幀中搜索當(dāng)前塊的最佳匹配塊并計(jì)算兩塊的相對位移量,即運(yùn)動矢量。當(dāng)前有很多經(jīng)典的運(yùn)動估計(jì)算法,如全搜索算法、三步搜索算法3SS(Three Step Search)、菱形搜索算法DS(Diamond Search)和六邊形搜索算法HEXBS(Hexa-gon Based Search)等。本文主要研究三步搜索算法在DSP平臺上的移植,并加入人機(jī)接口,設(shè)計(jì)一個(gè)基于運(yùn)動估計(jì)算法的DSP應(yīng)用系統(tǒng)。
基于DSP實(shí)現(xiàn)該算法有以下優(yōu)勢:(1)用戶開發(fā)自由度更大,支持多種個(gè)性化開發(fā),可以滿足市場不斷提出的新的要求,在第一時(shí)間提升產(chǎn)品性能,增強(qiáng)產(chǎn)品的競爭能力;(2)DSP處理能力強(qiáng),可以在一個(gè)DSP上同時(shí)實(shí)現(xiàn)多路音視頻信號的壓縮處理,還可提供很多視頻專用功能,如視頻濾波、高分辨顯示輸出和OSD等;(3)外圍接口豐富,開發(fā)周期短,可實(shí)現(xiàn)快速技術(shù)更新和產(chǎn)品換代;(4)芯片功耗低,為提高產(chǎn)品的穩(wěn)定性提供可靠保障。
1 基于運(yùn)動估計(jì)算法的DSP應(yīng)用系統(tǒng)總體設(shè)計(jì)
本文用SEED-DEC6437開發(fā)板、攝像頭和液晶顯示器等搭建了硬件平臺,在其上實(shí)現(xiàn)對采集的實(shí)時(shí)視頻的相鄰兩幀進(jìn)行運(yùn)動估計(jì),在參考幀中找到最佳匹配塊并計(jì)算出相應(yīng)的運(yùn)動矢量,同時(shí)加入人機(jī)接口,通過用戶按鍵,靈活地切換到不同的工作模式。系統(tǒng)流程圖如圖1所示。
整個(gè)系統(tǒng)的數(shù)據(jù)流程為:首先從CCD攝像頭采集PAL制式模擬視頻信號,通過視頻解碼芯片TVP5150將模擬信號解碼成YCbCr422格式的數(shù)字圖像信號[1],并通過數(shù)據(jù)總線將數(shù)據(jù)存儲至DDR2,TMS320DM6437通過訪問DDR2進(jìn)行視頻數(shù)據(jù)的相應(yīng)處理。在本系統(tǒng)中,數(shù)據(jù)處理過程主要在于實(shí)現(xiàn)運(yùn)動估計(jì)算法,通過CCS3.3軟件中的Watch Window查看計(jì)算出的運(yùn)動矢量。
2 基于SEED-DEC6437視頻回路設(shè)計(jì)
在進(jìn)行運(yùn)動估計(jì)之前,首先要在SEED-DEC6437開發(fā)板上搭建視頻回路,該回路包括視頻輸入模塊、算法處理模塊和視頻輸出模塊3部分。SEED-DEC6437開發(fā)板上的TMS320DM6437處理器中集成的視頻處理子系統(tǒng)(VPSS)包含視頻處理前端(VPFE)[2]和視頻處理后端(VPBE)[3]。VPFE用于視頻輸入,可以連接PAL標(biāo)準(zhǔn)模擬視頻輸入信號,也可以連接數(shù)字視頻輸入信號。
2.1 系統(tǒng)的視頻輸入模塊設(shè)計(jì)
系統(tǒng)視頻輸入是利用解碼芯片TVP5150將模擬信號解碼成YCbCr422格式的數(shù)字圖像信號,再送入TMS320DM6437進(jìn)行相應(yīng)的圖像處理。TVP5150是一款高性能的視頻解碼芯片,可以將PAL制式的視頻信號或NTSC制式的視頻信號轉(zhuǎn)換成YCbCr422格式的數(shù)字信號。TMS320DM6437與TVP5150的連接框圖如圖2所示,在SEED-DEC6437開發(fā)板上接一路復(fù)合視頻輸入。
TVP5150實(shí)時(shí)輸出的視頻圖像數(shù)據(jù)為符合ITU-R BT.656標(biāo)準(zhǔn)的YCbCr 4:2:2數(shù)字視頻圖像數(shù)據(jù),其特點(diǎn)是,每個(gè)像素點(diǎn)具有自己單獨(dú)的亮度信息Y,但是每兩個(gè)相鄰的像素共用同一組色度數(shù)據(jù)Cb和Cr。
2.2 系統(tǒng)的視頻輸出模塊設(shè)計(jì)
TMS320DM6437視頻輸出是利用內(nèi)置的VPSS的視頻輸出編碼模塊(VENC)中4路10 bit的DAC輸出,實(shí)現(xiàn)CVBS與VGA的輸出。其中,CVBS輸出接口使用了其中1路DAC,VGA輸出接口使用了共3路的DAC。本系統(tǒng)在設(shè)計(jì)過程中主要采用以composite復(fù)合信號的形式來進(jìn)行最終實(shí)時(shí)圖像的輸出顯示。其視頻輸出連接示意圖如圖3所示。
3 系統(tǒng)的運(yùn)動估計(jì)算法設(shè)計(jì)
3.1 H.264編碼器框架
圖4為H.264編碼器的主體結(jié)構(gòu)。其中,F(xiàn)n為當(dāng)前欲編碼的幀,它是以宏塊為單位進(jìn)行編碼處理的,每個(gè)宏塊是以幀內(nèi)或幀間模式進(jìn)行編碼。Fn-1是指前面已解碼的多個(gè)參考幀,在幀間模式下,宏塊根據(jù)參考幀F(xiàn)n-1進(jìn)行運(yùn)動估計(jì)ME(Motion Estimation)和運(yùn)動補(bǔ)償(Motion Compensation)得到預(yù)測值P,預(yù)測值與當(dāng)前幀F(xiàn)n得到殘差值,再對該殘差值進(jìn)行變換編碼T與量化Q,得到變換量化系數(shù);最后經(jīng)墑編碼輸出到網(wǎng)絡(luò)提取層NAL(Network Abstraction Layer)。Fn′為經(jīng)過濾波得到的重構(gòu)圖像,它將被放入?yún)⒖紟鎯ζ髯鳛橄乱粠驇讕幋a的參考幀之一。其中,運(yùn)動估計(jì)是基礎(chǔ),也是運(yùn)算量最大的部分。
3.2 運(yùn)動估計(jì)算法的DSP移植
運(yùn)動估計(jì)的基本思想是將圖像序列的每一幀分成許多互不重疊的宏塊,并認(rèn)為宏塊內(nèi)所有像素的位移量都相同,然后對于當(dāng)前幀中的每一塊的前一幀或后一幀在某一給定搜索范圍內(nèi),根據(jù)一定的匹配準(zhǔn)則找出與當(dāng)前塊最相似的塊,即匹配塊由匹配塊與當(dāng)前塊的相對位置計(jì)算出運(yùn)動位移,所得的運(yùn)動位移即為當(dāng)前塊的運(yùn)動矢量。
基于塊匹配的運(yùn)動估計(jì)可以從塊的模式選擇、塊匹配準(zhǔn)則和搜索策略3個(gè)方面進(jìn)行研究。
經(jīng)過三步搜索算法搜索到最佳匹配塊后,將當(dāng)前幀的當(dāng)前塊的坐標(biāo)與最佳匹配塊坐標(biāo)相減,得到運(yùn)動矢量。本文對8×8的塊進(jìn)行搜索,第1步中步長取4,第2步中步長取2,第3步中步長取1,搜索結(jié)果如圖6所示。其中,temp為一個(gè)含9個(gè)元素的一維數(shù)組,存放9個(gè)點(diǎn)的SAD值;mvx和mvy為SAD值最小點(diǎn)的坐標(biāo),通過該坐標(biāo)可以計(jì)算出相應(yīng)的運(yùn)動矢量。
本文以SEED-DEC6437開發(fā)板為核心硬件,成功搭建了視頻回路,并在CCS3.3環(huán)境下編寫算法代碼,實(shí)現(xiàn)了基于DSP的運(yùn)動估計(jì)算法,取到了運(yùn)動矢量。為了增強(qiáng)系統(tǒng)的靈活可控性和實(shí)時(shí)性,又成功加入了人機(jī)接口,成功實(shí)現(xiàn)了DSP/BIOS任務(wù)調(diào)度。
參考文獻(xiàn)
[1] Wu Xiaomin, Xu Weizhang, Zhu Nanhao, et al. A fast motion estimation algorithm for H.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實(shí)時(shí)實(shí)現(xiàn)的H.264運(yùn)動估計(jì)快速算法[J].小型微型計(jì)算機(jī)系統(tǒng),2005,26(11):2025-2028.
[6] 雷琳,張俊峰,劉京,等.一種基于H.264的改進(jìn)的運(yùn)動估計(jì)三步搜索算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(12):1-7.
[7] 王恒,朱金秀.H.264快速運(yùn)動估計(jì)算法研究[J].海大學(xué)常州分校學(xué)報(bào),2007,21(4):24-27.
[8] 蔡自興,蔣冬冬,譚平,等.H.264中快速運(yùn)動估計(jì)算法的一種改進(jìn)方案[J].計(jì)算機(jī)應(yīng)用研究,2010,27(4): 1524-1529.
[9] 彭啟琮.達(dá)芬奇技術(shù)——數(shù)字圖像/視頻信號處理新平臺[M].北京:電子工業(yè)出版社,2008.