摘要:針對(duì)探測(cè)器姿態(tài)變化造成的視頻圖像旋轉(zhuǎn),提出一種基于TMS320C6713B的實(shí)時(shí)數(shù)字視頻消旋系統(tǒng)。該系統(tǒng)利用TMS320C6713B計(jì)算圖像旋轉(zhuǎn)后各點(diǎn)的位置,再利用FPGA進(jìn)行地址映射,得到圖像旋轉(zhuǎn)后各點(diǎn)對(duì)應(yīng)的灰度值。實(shí)驗(yàn)證明該系統(tǒng)能夠?qū)崟r(shí)消除視頻圖像的旋轉(zhuǎn),且消旋后的圖像清晰穩(wěn)定,滿足實(shí)際應(yīng)用要求。
關(guān)鍵詞:TMS320C6713B;圖像旋轉(zhuǎn);仿射變換;APAl50
在機(jī)載電視紅外攝像與瞄準(zhǔn)過(guò)程中,由于電視紅外攝像框架的橫滾運(yùn)動(dòng)而引起光學(xué)系統(tǒng)和成像器件相對(duì)載機(jī)運(yùn)動(dòng),從而造成圖像的旋轉(zhuǎn);在許多光學(xué)瞄準(zhǔn)器、紅外吊艙系統(tǒng)以及測(cè)量定標(biāo)系統(tǒng)中,為了消除由于探測(cè)器的姿態(tài)變化而引起的圖像旋轉(zhuǎn),時(shí)常要對(duì)光學(xué)探測(cè)器所獲取的目標(biāo)圖像進(jìn)行實(shí)時(shí)反旋轉(zhuǎn)變換,恢復(fù)圖像的穩(wěn)定狀態(tài),以便準(zhǔn)確地對(duì)目標(biāo)圖像進(jìn)行自動(dòng)識(shí)別和跟蹤??紤]到實(shí)時(shí)性,目前文獻(xiàn)基本上都是以FPGA為核心設(shè)計(jì)的,這里提出一種基于TMS320C6713B的實(shí)時(shí)數(shù)字視頻消旋系統(tǒng),將仿射變換計(jì)算方法進(jìn)行優(yōu)化應(yīng)用到系統(tǒng)中,有效地消除了視頻圖像的旋轉(zhuǎn)運(yùn)動(dòng),達(dá)到了穩(wěn)定圖像的目的。
1 系統(tǒng)算法設(shè)計(jì)
對(duì)圖像進(jìn)行消旋,實(shí)際上是根據(jù)已知圖像的旋轉(zhuǎn)角度,將該圖像按照同樣的角度進(jìn)行反旋轉(zhuǎn),從而達(dá)到消除圖像旋轉(zhuǎn)影響的目的。因此,圖像消旋算法的本質(zhì)是圖像的旋轉(zhuǎn)計(jì)算,即由原圖像旋轉(zhuǎn)一個(gè)角度得到目標(biāo)圖像。
結(jié)合實(shí)際應(yīng)用,假設(shè)載體的運(yùn)動(dòng)導(dǎo)致連續(xù)兩幀圖像間存在的全局運(yùn)動(dòng)表現(xiàn)為平移和繞光軸的旋轉(zhuǎn),也即連續(xù)兩幀圖像間可以用線性變換來(lái)表征。因此,采用仿射變換來(lái)建立圖像運(yùn)動(dòng)模型。
若(X1,Y1),(X2,Y2)分別是參考幀與當(dāng)前幀圖像中相互對(duì)應(yīng)的配準(zhǔn)點(diǎn),則它們之間的運(yùn)動(dòng)表達(dá)式
式中,θ是配準(zhǔn)點(diǎn)之間的旋轉(zhuǎn)角△X,△Y分別為配準(zhǔn)點(diǎn)在橫向和縱向上的偏移。
對(duì)式(1)進(jìn)行優(yōu)化,假設(shè)輸出圖像中水平相鄰2個(gè)像素點(diǎn)(x,y)和(x+1,y),則經(jīng)仿射變換后在輸入圖像中有對(duì)應(yīng)的2點(diǎn)(u1,v1)和(u2,v2)。不難推導(dǎo),有如下關(guān)系式成立:
同理假設(shè)輸出圖像中垂直相鄰2個(gè)像素點(diǎn)(x,y)和(x,y+1),則經(jīng)仿射變換之后在輸入圖像中有對(duì)應(yīng)的2點(diǎn)(u1,v1)和(u3,v3),有如下關(guān)系式成立:
從式(2)和式(3)中可以看出,輸出圖像中經(jīng)變換后的兩點(diǎn)坐標(biāo)差與輸入源圖像中相鄰兩點(diǎn)位置無(wú)關(guān)。也就是說(shuō)。只要計(jì)算一次仿射變換就可以采用增量法來(lái)求出仿射變換后的所有點(diǎn)的精確位置。因此,圖像的第一個(gè)點(diǎn)要用到完整的仿射變換公式
進(jìn)行計(jì)算,后面的點(diǎn)只計(jì)算兩個(gè)浮點(diǎn)加法就可以獲得一個(gè)仿射變換點(diǎn)的精確位置。獲得精確的位置后,利用最鄰近像素法計(jì)算圖像灰度,只需要對(duì)計(jì)算后的坐標(biāo)位置四舍五入得到整數(shù)坐標(biāo)值,利用該坐標(biāo)來(lái)獲取相應(yīng)點(diǎn)的灰度值即可。
2 系統(tǒng)硬件設(shè)計(jì)
實(shí)時(shí)數(shù)字視頻消旋系統(tǒng)主要有4部分組成:視頻A/D、DSP、FPGA和幀存儲(chǔ)器。圖l是系統(tǒng)硬件組成框圖。其原理是外界圖像經(jīng)A/D采樣為數(shù)字圖像進(jìn)入FPGA,F(xiàn)PGA將圖像寫入幀存儲(chǔ)器中,DSP根據(jù)上位機(jī)通過(guò)RS-232串口送來(lái)的角速度值,計(jì)算新圖像各點(diǎn)在當(dāng)前幀圖像中的位置,將計(jì)算后的位置送給FPGA,通過(guò)FIGA做地址映射,再將圖像按映射后的地址輸出送D/A顯示或送跟蹤處理模塊進(jìn)行目標(biāo)跟蹤識(shí)別等處理。
2.1 TMS320C6713B數(shù)據(jù)處理單元
在本方案中DSP是數(shù)據(jù)處理的核心,主要是通過(guò)串口讀取上位機(jī)送來(lái)的圖像旋轉(zhuǎn)的角速度信息,根據(jù)該信息進(jìn)行仿射變換,求出旋轉(zhuǎn)后的圖像各點(diǎn)在原圖像中的坐標(biāo),并將求出的坐標(biāo)寫入FPGA。在計(jì)算圖像精確位置時(shí)需要進(jìn)行大量的浮點(diǎn)運(yùn)算,需要具有高速高精度浮點(diǎn)運(yùn)算能力的DSP。方案采用了美國(guó)TI公司的高性能浮點(diǎn)數(shù)字信號(hào)處理器TMS320C6713B。它采用先進(jìn)的超長(zhǎng)指令字結(jié)構(gòu),為單精度(32位)和64位(雙字)的IEEE浮點(diǎn)操作提供硬件支持,且32位整型乘法可以獲得32位或64位結(jié)果。其內(nèi)部有8個(gè)獨(dú)立的功能單元,2個(gè)定點(diǎn)算術(shù)邏輯單元(ALU),2個(gè)浮點(diǎn)乘法器,4個(gè)浮點(diǎn)ALU,每個(gè)周期可以執(zhí)行8個(gè)32位指令。內(nèi)部設(shè)計(jì)有32個(gè)32位通用目的寄存器,4 K字節(jié)的L1高速程序緩存器和4K字節(jié)的L1高速數(shù)據(jù)緩存器,256 K字節(jié)的L2兩級(jí)數(shù)據(jù)緩存器。這種結(jié)構(gòu)設(shè)計(jì)可以最大限度發(fā)揮8個(gè)功能單元的并行運(yùn)算能力,使得DSP在300 MHz系統(tǒng)時(shí)鐘工作時(shí),其運(yùn)算能力最高為2 400 MIPS,浮點(diǎn)運(yùn)算能力最高為1 800 MFLOPS,極大地滿足了高速數(shù)據(jù)處理的要求。
另外,DSP6713B片內(nèi)還提供多種集成外設(shè):多種復(fù)位加載模式(BOOT)、多通道DMA控制器、多通道緩存串口(McBSP)以及能夠與SDRAM、SBSRAM或異步存儲(chǔ)器直接接口的高性能外部存儲(chǔ)器接口(EMIF),這些都為數(shù)據(jù)處理帶來(lái)了極大方便。
2.2 FPGA模塊單元
方案采用了Actel公司推出的第二代基于Flash(閃存)的可編程器件ProASIC Plus系列中的APAl50。該系列器件兼具ASIC(專用集成電路)的性能和FPGA的靈活性于一身,具有150 000個(gè)系統(tǒng)門,邏輯單元為6 144個(gè),內(nèi)嵌36KB的雙端口SRAM和2個(gè)鎖相環(huán)(PLL)內(nèi)核,支持3.3 V、
32 bit、50 MHz的PCI總線,系統(tǒng)外部性能可達(dá)150 MHz,具有高密度、低功耗、非易失及可重復(fù)編程等特點(diǎn)。因?yàn)镻roASIC Plus系列FPGA基于Hash技術(shù),利用Hash開關(guān)保存內(nèi)部邏輯,因此不需要另外的器件。由于不需要上電配置過(guò)程,因此具備上電就立即工作的特點(diǎn)。另外高度保密,使用者可編程設(shè)置多位密鑰以阻止外界自行讀取或更改器件的配置。
方案中利用APAl50主要實(shí)現(xiàn)邏輯控制、A/D采樣控制、D/A顯示控制、向幀存儲(chǔ)器寫圖像以及完成旋轉(zhuǎn)后的圖像與原始圖像的地址映射等功能。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要完成視頻圖像旋轉(zhuǎn)坐標(biāo)的計(jì)算,利用TMS320C6713B的浮點(diǎn)運(yùn)算功能,基于CCS3.1平臺(tái)編制匯編程序來(lái)實(shí)現(xiàn),圖2為基本流程圖,主要有以下步驟:
1)每場(chǎng)查詢到場(chǎng)逆程時(shí),通過(guò)串口讀取上位機(jī)送來(lái)的角速度信息,并將該角速度轉(zhuǎn)化為每20 ms角度的變化量。根據(jù)該角度利用完整的仿射變換求旋轉(zhuǎn)后圖像的首點(diǎn)坐標(biāo),并根據(jù)完整的仿射變換公式推導(dǎo)計(jì)算出水平方向和垂直方向的增量。
2)當(dāng)查詢到場(chǎng)正程時(shí),對(duì)于每行各點(diǎn)可根據(jù)前一點(diǎn)在原圖像中的位置加上水平方向的增量,就可以得到當(dāng)前點(diǎn)的精確位置。對(duì)于每行的第一個(gè)點(diǎn),可根據(jù)上一行的首點(diǎn)在原圖像中的位置加上垂直方向的增量,即可得到該點(diǎn)在原圖像中的位置。
3)最后將得到的圖像位置四舍五入求出當(dāng)前點(diǎn)在原圖像中的坐標(biāo),最后將該坐標(biāo)送入FPGA。
4 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中取處理的圖像為256x256x8 bit,固定攝像機(jī)不動(dòng),任意輸入角速度為0°~360°/20 ms,角速度可以精確到0.1°/20 ms,系統(tǒng)會(huì)圍繞圖像中心以相應(yīng)的角速度旋轉(zhuǎn)圖像。圖3為原始未旋轉(zhuǎn)的圖像,圖4是以2.4°/20 ms速度旋轉(zhuǎn)到30°時(shí)的圖像,由圖3和圖4可見(jiàn)旋轉(zhuǎn)后的圖像穩(wěn)定清晰。
5 結(jié)束語(yǔ)
本文提出一種基于TMS320C6713B的視頻消旋系統(tǒng),該系統(tǒng)易于硬件實(shí)現(xiàn),實(shí)時(shí)性高,消旋轉(zhuǎn)后的圖像清晰穩(wěn)定,滿足工程應(yīng)用要求。另外該系統(tǒng)可擴(kuò)展性強(qiáng),只須對(duì)硬件進(jìn)行少許改動(dòng),即可用于更高分辨率比如768x576的圖像消旋系統(tǒng)。