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