<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP TMS320C6416的實(shí)時(shí)圖像處理系統(tǒng)

          基于DSP TMS320C6416的實(shí)時(shí)圖像處理系統(tǒng)

          作者: 時(shí)間:2009-11-24 來源:網(wǎng)絡(luò) 收藏

          引言

          本文設(shè)計(jì)了基于TMS320C6000系列DSP的編碼器。將攝像頭獲取的圖像以標(biāo)準(zhǔn)進(jìn)行實(shí)時(shí)壓縮并通過VGA實(shí)時(shí)顯示,同時(shí)把壓縮好的數(shù)據(jù)通過PCI總線傳輸給ARM控制器,經(jīng)由ARM根據(jù)實(shí)際的需要進(jìn)行視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸。

          是一種開放性標(biāo)準(zhǔn),其中許多部分都沒有規(guī)定,可以加入一些新的算法,因此采用通用DSP 能夠隨時(shí)更新算法、優(yōu)化算法,使得編碼效率更高。由于MPEG-4 編碼算法復(fù)雜,需要存儲(chǔ)的數(shù)據(jù)量大,無論是存儲(chǔ)空間分配、數(shù)據(jù)傳輸還是運(yùn)算速度對(duì)DSP來說都是挑戰(zhàn)。

          C6000系列DSP是TI公司生產(chǎn)的高檔DSP。這一系列DSP都是基VelociTITM構(gòu)架的VLIW DSP,它在每個(gè)周期可以執(zhí)行八條32bit 的指令, 具有高達(dá)200MHZ的CPU,從而使得其運(yùn)算能力達(dá)到1600MIPS。而6416在600MHz主頻下,只利用50%的運(yùn)算能力就可以同時(shí)進(jìn)行單通道MPEG-4視頻編碼、單通道MPEG-4視頻解碼和單通道視頻編碼的處理。同時(shí)其對(duì)外接口靈活、開發(fā)工具齊全,被大多數(shù)嵌入式圖像實(shí)時(shí)壓縮系統(tǒng)所采用。因此本系統(tǒng)采用TI公司芯片為核心處理器。

          1.的結(jié)構(gòu)及特點(diǎn)

          DSP的CPU結(jié)構(gòu)如圖1所示,它具有兩個(gè)通道,每個(gè)通道具有4個(gè)功能單元(1個(gè)乘法器和3個(gè)算術(shù)邏輯單元),16個(gè)32位通用寄存器,每個(gè)通道的功能單元可以隨意訪問本通道的寄存器。CPU還有兩個(gè)交叉單元,通過它們,一個(gè)通道的功能單元可以訪問另一個(gè)通道的寄存器。另外, CPU還具有256 bit寬的數(shù)據(jù)和程序通道,可以使程序存儲(chǔ)器在每個(gè)時(shí)鐘周期提供8條并行執(zhí)行指令。這種CPU結(jié)構(gòu)是DSP具有VLIW結(jié)構(gòu)的最基本條件。此DSP的存儲(chǔ)空間映射為內(nèi)部存儲(chǔ)器、內(nèi)部外設(shè)及擴(kuò)展存儲(chǔ)器。其中內(nèi)部存儲(chǔ)器由64KB內(nèi)部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器構(gòu)成,內(nèi)部程序存儲(chǔ)器可以映射到CPU地址空間或者作為Cache操作。內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器均可通過CPU、DMA或HPI(Host Interface)方式訪問,HPI接口使上位機(jī)可以訪問DSP的存儲(chǔ)空間。

          2.系統(tǒng)硬件設(shè)計(jì)

          本系統(tǒng)主要分為三部分,分別是視頻采集模塊、視頻的MPEG-4編碼模塊和視頻傳輸模塊,其結(jié)構(gòu)框圖如圖2所示。

          2.1 視頻采集

          在本系統(tǒng)中,對(duì)輸入的模擬視頻信號(hào)的采集是由BT835視頻Decoder完成的,支持的視頻輸入為PAL制或NTSC制式的標(biāo)準(zhǔn)模擬視頻信號(hào),輸入的視頻信號(hào)既可以是復(fù)合視頻信號(hào),也可以是S-Video信號(hào),輸出為4:2:2的YUV格式的圖像數(shù)據(jù)。

          圖3所示為DSP 模擬視頻輸入接口原理框圖。標(biāo)準(zhǔn)模擬視頻信號(hào)經(jīng)預(yù)處理進(jìn)入A/ D轉(zhuǎn)換器;同時(shí)又經(jīng)時(shí)鐘產(chǎn)生電路得到與行同步同相位的A/ D 轉(zhuǎn)換時(shí)鐘,這樣可以使得每行的采樣點(diǎn)均為整數(shù)。為了確保視頻數(shù)據(jù)整行地被采集到DSP 中進(jìn)行處理,特將行同步信號(hào)作為FIFO 讀入數(shù)據(jù)的起點(diǎn)。同時(shí),行同步、場(chǎng)同步以及奇偶場(chǎng)標(biāo)志信號(hào)也直接進(jìn)入DSP ,使其能夠確定讀入的視頻數(shù)據(jù)在一幀中的具體位置。為了增強(qiáng)系統(tǒng)的實(shí)時(shí)性,這里利用 DSP 的DMA(直接存儲(chǔ)器存取) 通道背景操作特性,以使DSP 和外設(shè)的數(shù)據(jù)交換能夠與其內(nèi)部CPU 的高速運(yùn)算操作同時(shí)進(jìn)行。而FIFO 的功能在于,通過它的緩沖,使得DSP 可以從容地與A/ D 之外的其它外設(shè)交換數(shù)據(jù)。

          其中ARM7的作用是時(shí)鐘的產(chǎn)生及控制視頻采集芯片,將采得的數(shù)據(jù)從8位或16位轉(zhuǎn)化為32位,并且使數(shù)據(jù)按照Y、U、V分開的方式排列。這樣相當(dāng)于對(duì)采集到的數(shù)據(jù)進(jìn)行了一次預(yù)處理,以便于視頻編碼使用。另外ARM7將32位寬的數(shù)據(jù)輸出給32位的FIFO。用32位的FIFO以及將視頻數(shù)據(jù)轉(zhuǎn)換為32位,可以使DSP讀取視頻數(shù)據(jù)時(shí)32位的數(shù)據(jù)總線沒有空閑,從而提高DSP讀取視頻數(shù)據(jù)的效率;這里使用FIFO是為了減少DSP讀取數(shù)據(jù)的時(shí)間、降低高速設(shè)備和低速設(shè)備的不匹配。每次FIFO半滿時(shí),ARM7會(huì)給DSP發(fā)送中斷信號(hào), 并且在中斷處理程序中使用DMA方式讀取視頻數(shù)據(jù);如果不使用ARM7,DSP會(huì)頻繁中斷,從而花費(fèi)大量時(shí)間在入棧、出棧以及寄存器的設(shè)置上。

          2.2 視頻的MPEG-4編碼模塊

          DSP讀入視頻數(shù)據(jù)后進(jìn)行先期處理,如將YUV格式轉(zhuǎn)為RGB格式等;然后進(jìn)行MPEG-4視頻編碼。在這一過程中,數(shù)據(jù)訪問通常要占用50%的時(shí)間,算術(shù)運(yùn)算要占用30%的時(shí)間,控制要占用20%的時(shí)間。因?yàn)樾枰M(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,在數(shù)據(jù)存儲(chǔ)器中通常保存一幀I(原始幀)幀圖像和至少一幀P(預(yù)測(cè)幀)幀圖像,這些圖像占用的空間都比較大,因此放在外部存儲(chǔ)器SDRAM里。在編碼過程中還要存儲(chǔ)DCT系數(shù)、運(yùn)動(dòng)向量、量化矩陣、可變長(zhǎng)編碼表、Z形編碼表等,由于占用較小的存儲(chǔ)空間而且會(huì)反復(fù)用到,因此把它們放在片內(nèi)存儲(chǔ)器中。

          2.3 視頻傳輸

          與PC 機(jī)不同,DSP 片內(nèi)片外的兩級(jí)存儲(chǔ)體系結(jié)構(gòu)以及數(shù)據(jù)分配原則決定了編碼器實(shí)現(xiàn)過程中必然存在大量的數(shù)據(jù)傳輸,因而必須有效地管理以減少數(shù)據(jù)傳輸所需的時(shí)間。

          至于數(shù)據(jù)的采集部分可以利用DSP的DMA來進(jìn)行。TMS320C6000 DSP 大都具有幾個(gè)獨(dú)立的DMA 通道,DMA 的特點(diǎn)是可以在不受CPU 干預(yù)的情況下完成數(shù)據(jù)從源地址到目的地址的搬移。

          但是DMA 只適合于數(shù)據(jù)塊的整體搬移,對(duì)于不同數(shù)據(jù)結(jié)構(gòu)間的數(shù)據(jù)傳輸,前DSP 的DMA 控制器就無能為力了。所以可以借助ARM7控制DSPDMA 來完成視頻編碼中復(fù)雜的數(shù)據(jù)傳輸。

          完成編碼后的視頻數(shù)據(jù)通過ARM7來進(jìn)行和外界的傳輸,可以通過Internet、 CDMA或者GSM網(wǎng)絡(luò)等,只需要ARM7設(shè)計(jì)相應(yīng)的傳輸接口即可。至于ARM7與編碼卡通信可以通過并口、串口、USB口、PCI接口等方式實(shí)現(xiàn)。其中PCI 接口方式易于ARM7與編碼器高速傳輸數(shù)據(jù),因此可以采用PCI接口。編碼后的數(shù)據(jù)通過DSP的HPI、PCI橋芯片、PCI總線到達(dá)ARM7。ARM7通過DSP的HPI直接對(duì)DSP的存儲(chǔ)空間進(jìn)行訪問。

          3 軟件設(shè)計(jì)及優(yōu)化

          3.1 視頻采集

          本系統(tǒng)在視頻采集中設(shè)計(jì)了一個(gè)數(shù)據(jù)結(jié)構(gòu)將空間連續(xù)的先行緩沖區(qū)轉(zhuǎn)化為一個(gè)環(huán)形的緩沖區(qū),其簡(jiǎn)單的示意圖如圖4所示。

          采用此方法只要為這個(gè)緩沖區(qū)分配足夠大的空間,使其中存放的圖像幀的數(shù)目至少大于3,這樣就可以保證在對(duì)圖像數(shù)據(jù)進(jìn)行處理的同時(shí)還可以同步進(jìn)行新的圖像數(shù)據(jù)的采集,而不會(huì)發(fā)生任何數(shù)據(jù)沖突。系統(tǒng)將會(huì)永遠(yuǎn)保留環(huán)形緩沖區(qū)中最舊的N幀圖像直至被系統(tǒng)取走。

          3.2 視頻編碼

          MPEG-4的視頻編碼是基于對(duì)象的視頻編碼,它仍然采用傳統(tǒng)的預(yù)測(cè)編碼、運(yùn)動(dòng)補(bǔ)償、DCT變換構(gòu)成的混合編碼方式。編碼器的核心算法包括運(yùn)動(dòng)估計(jì)、DCT/IDCT、量化、VLC 等,其中運(yùn)動(dòng)估計(jì)占據(jù)整個(gè)編碼器近四分之一的運(yùn)算量。因此,研究適合DSP 結(jié)構(gòu)的、在速度和編碼質(zhì)量之間具有良好折中的運(yùn)動(dòng)估計(jì)算法是實(shí)現(xiàn)實(shí)時(shí)編碼的一個(gè)關(guān)鍵問題。

          在視頻編碼中應(yīng)該采用塊匹配的運(yùn)動(dòng)估計(jì)算法,但傳統(tǒng)的塊匹配算法在匹配速度上達(dá)不到滿意的效果,因此本系統(tǒng)采用了在三步搜索算法的基礎(chǔ)上改進(jìn)的四步搜索的塊匹配算法。

          四步搜索算法描述如下:

          (1)搜索匹配點(diǎn)組成一個(gè)菱形窗口,如圖5所示。初始的9個(gè)匹配點(diǎn)為菱形的4個(gè)頂點(diǎn)、4條邊的中點(diǎn)及菱形的中心點(diǎn),如圖5中的實(shí)心點(diǎn)。對(duì)每個(gè)點(diǎn)計(jì)算SAD的值,選取SAD最小的點(diǎn)。如果該點(diǎn)是此次搜索窗口的中心則跳到第4步,否則到第2步。

          圖5 四步搜索算法示意圖

          (2)以SAD最小的點(diǎn)為新的菱形匹配點(diǎn)窗口的中心點(diǎn),其余的匹配點(diǎn)的選取按下面的原則進(jìn)行。

          a)如果SAD最小的點(diǎn)是當(dāng)前搜索窗口的角上的點(diǎn),如A點(diǎn),則取與A點(diǎn)不相鄰的另外5個(gè)點(diǎn),如圖5中的形如的點(diǎn)。選取SAD最小的點(diǎn),并到第3步;

          b)如果SAD最小的點(diǎn)是當(dāng)前搜索窗口的邊上的點(diǎn),如B點(diǎn),則取與B點(diǎn)不相鄰的另外3個(gè)點(diǎn),如圖5中的形如的點(diǎn)。選取SAD最小的點(diǎn),并到第3步;

          c)如果SAD最小的點(diǎn)是當(dāng)前搜索窗口的中心點(diǎn)C點(diǎn),則到第4步;

          (3)搜索模式同2,最后都到第4步。

          (4)選取周圍的四個(gè)點(diǎn)作為匹配點(diǎn),步長(zhǎng)改為1,如圖5中所示的空心點(diǎn)。選取SAD最小的點(diǎn)作為最終目標(biāo)點(diǎn)。

          四步搜索算法比三步搜索算法的復(fù)雜度更小,但精度并沒有降低,同時(shí)算法規(guī)則易于實(shí)現(xiàn)軟件流水,而非常適合在DSP 上實(shí)現(xiàn)。

          3.3 軟件優(yōu)化

          由于圖像處理的數(shù)據(jù)量大,數(shù)據(jù)處理相關(guān)性高,并且具有嚴(yán)格的幀、場(chǎng)時(shí)間限制,因此如何針對(duì)圖像處理的特點(diǎn)對(duì)DSP 進(jìn)行優(yōu)化編程,充分發(fā)揮其性能就成為提高整個(gè)系統(tǒng)性能的關(guān)鍵。

          要想充分發(fā)揮DSP的運(yùn)算能力,必須從它的硬件結(jié)構(gòu)出發(fā),最大限度地利用八個(gè)功能單元,使用軟件流水線,盡量讓程序無沖突地并行執(zhí)行。一般循環(huán)體都滿足并行處理的條件,并且循環(huán)體往往是程序中耗時(shí)最長(zhǎng)的。因此在進(jìn)行優(yōu)化時(shí)將重點(diǎn)放在循環(huán)體上。

          1) DSP跳轉(zhuǎn)指令的優(yōu)化

          DSP的指令多為單周期指令,但是轉(zhuǎn)移類指令卻通常要耗費(fèi)較多的時(shí)鐘周期,每個(gè)跳轉(zhuǎn)都有5個(gè)延遲間隙,從性能上考慮是一項(xiàng)很耗時(shí)的工作,因此應(yīng)盡可能地減少程序中的分支。

          2) 使用庫函數(shù)

          TI公司對(duì)TMS320C6000的用戶提供了功能強(qiáng)大的IMAGE LIB庫支持。在這個(gè)庫中,包含許多常用函數(shù),可以完成DCT/IDCT變換、小波變換、DCT量化、自適應(yīng)濾波等功能。這些函數(shù)都是優(yōu)化過的,完全能夠?qū)崿F(xiàn)軟件流水,效率很高。

          3)存儲(chǔ)空間的考慮

          DSP存儲(chǔ)空間的配置十分重要。因?yàn)镈SP對(duì)不同的存儲(chǔ)單元的訪問速度是有區(qū)別的,對(duì)片內(nèi)寄存器的訪問速度最快,對(duì)片內(nèi)RAM的訪問速度比片外RAM的訪問速度快。因此合理地配置和使用存儲(chǔ)空間,對(duì)系統(tǒng)整體效率影響很大。應(yīng)該盡可能地把訪問比較頻繁的常數(shù)表和代碼段裝入片內(nèi)RAM,如果過大,則把其中一部分裝入片外存儲(chǔ)器。

          4)混合編程

          不同于傳統(tǒng)的VLIW ,Veloci TI 采用了多種先進(jìn)技術(shù),從而使得DSP的C編譯器具有很高的效率,我們稱之為面向C語言結(jié)構(gòu)的DSP芯片。其平均編譯效率可以達(dá)到手工匯編的84 %。這使得在絕大多數(shù)應(yīng)用中我們可以采用C 語言編寫程序從而充分利用大量用C 描述的算法程序,并獲得遠(yuǎn)勝于傳統(tǒng)DSP程序的可維護(hù)性、可移植性、可繼承性,縮短開發(fā)周期。

          雖然C6000的C編譯器有如此高的編譯效率,但是對(duì)于MPEG-4這樣復(fù)雜的算法,只運(yùn)用C語言是遠(yuǎn)遠(yuǎn)不夠的,一般采用C語言和匯編語言相結(jié)合的方式來完成程序設(shè)計(jì)。程序設(shè)計(jì)流程如下:先寫C代碼并對(duì)其優(yōu)化,如果不能達(dá)到預(yù)期的運(yùn)行效率,則編寫匯編代碼來提高效率。

          4 總結(jié)

          該系統(tǒng)非常靈活,支持的視頻輸入為PAL制或NTSC制式的標(biāo)準(zhǔn)模擬視頻信號(hào),輸入的視頻信號(hào)既可以是復(fù)合視頻信號(hào),也可以是S-Video信號(hào)。并支持多分辨率,分別為FULL、CIF和QCIF,可以滿足多種應(yīng)用的需求。測(cè)試證明經(jīng)過以上的優(yōu)化可以實(shí)現(xiàn)視頻圖像的實(shí)時(shí)壓縮,同時(shí)系統(tǒng)運(yùn)行可靠、功耗低。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();