一種基于TMS320C6416的實時圖像處理系統(tǒng)的設(shè)計
出處:中國電子前沿 發(fā)布于:2011-06-09 21:41:21
實時圖像處理系統(tǒng)設(shè)計的難點是如何在有限的時間內(nèi)完成大量圖像數(shù)據(jù)的處理。只有圖像處理系統(tǒng)的處理速度達到每秒25 幀以上時才能達到實時的效果,所以在系統(tǒng)設(shè)計中,處理器是關(guān)鍵,要求處理器運算速度快、實時處理能力強,并且還具有高速的存儲器及I/O存取能力。本設(shè)計選用TMS320C6000作為視頻信號處理系統(tǒng)。TMS320C6000是一個低成本的開發(fā)平臺,用戶可以根據(jù)功能需要擴展硬件設(shè)計,便于硬件開發(fā),縮短設(shè)計時間。
MPEG-4 是一種開放性標準,其中許多部分都沒有規(guī)定,可以加入一些新的算法,因此采用通用DSP 能夠隨時更新算法、優(yōu)化算法,使得編碼效率更高。由于MPEG-4 編碼算法復(fù)雜,需要存儲的數(shù)據(jù)量大,無論是存儲空間分配、數(shù)據(jù)傳輸還是運算速度對DSP來說都是挑戰(zhàn)。
C6000系列DSP是TI公司生產(chǎn)的DSP。這一系列DSP都是基VelociTITM構(gòu)架的VLIW DSP,它在每個周期可以執(zhí)行八條32bit 的指令, 具有高達200MHZ的CPU,從而使得其運算能力達到1600MIPS。而6416在600MHz主頻下,只利用50%的運算能力就可以同時進行單通道MPEG-4視頻編碼、單通道MPEG-4視頻解碼和單通道MPEG-2視頻編碼的處理。同時其對外接口靈活、開發(fā)工具齊全,被大多數(shù)嵌入式圖像實時壓縮系統(tǒng)所采用。因此本系統(tǒng)采用TI公司TMS320C6416芯片為處理器。
1.TMS320C6416的結(jié)構(gòu)及特點
TMS320C6416是TI公司推出的高性能定點DSP,其時鐘頻率可達600MHz,處理能力為4800MIPS,軟件與C62X完成兼容,采用先進的甚長指令結(jié)構(gòu)(VLIW)的DSP內(nèi)核有6個ALU(32/40bit),每個時鐘周期可以執(zhí)行8條指令,所有指令都可以條件執(zhí)行。該DSP具有Viterbi譯碼協(xié)處理器(VCP)和Turbo譯碼協(xié)處理器(TCP);采用兩級緩存結(jié)構(gòu),緩存(L1)由128Kbit的程序緩存和128Kbit的數(shù)據(jù)緩存組成,二級緩存(L2)為8Mbit;有2個擴展存儲器接口(EMIF),一個為64bit(EMIFA),一個為16bit(EMIFA),可以與異步(SRAM、EPROM)/同步存儲器(SDRAM、SBSRAM、ZBTSRAM、FIFO)無縫連接,可尋址范圍為1280MB;具有擴展的直接存儲器訪問控制器(EDMA),可以提供64條獨立的DMA通道;主機接口(HPI)總線寬度可由用戶配置(32/16bit),具有32bit/33MHz,3.3V的PCI主/從接口,該接口符合PCI標準2.2版,有3個多通道串口(McBSPs),每個McBSPs多可支持256個通道,能直接與T1/E1、MVIP、SCSA接口,并且與Motorola的SPI接口兼容,片內(nèi)還有一個16針的通用輸入輸出接口(GPIO)。
TMS320C6416與TI公司C6系列其它DSP相比有以下明顯的不同:首先是處理能力顯著提高。C6416的處理能力為4800MPIS,是1997年推出的C6201處理能力的3倍,執(zhí)行1024點復(fù)數(shù)FFT的時間為10.003μs,比C6201快了6倍多;其次是片內(nèi)集成外設(shè)顯著增加,其中VCP和TCP可以顯著提高片上的譯碼能力,PCI接口可以方便地與具有PCI總線的主機直接互連,無需額外的PCI接口芯片;別外原有集成外設(shè)性能提高,其EDMA可以提供64條獨立的DMA通道,而C6201僅有4個DMA通道,其EMIF數(shù)據(jù)線寬度可選,片內(nèi)存儲區(qū)和McBSPs的數(shù)量都有所增加,這使得C6416編程更靈活,使用更方便。
2.系統(tǒng)硬件設(shè)計
本系統(tǒng)主要分為三部分,分別是視頻采集模塊、視頻的MPEG-4編碼模塊和視頻傳輸模塊,其結(jié)構(gòu)框圖如所示。
2.1 視頻采集
圖像的輸入由模擬攝像頭完成(本系統(tǒng)選用黑白攝像頭)。攝像頭輸出為標準的復(fù)合視頻信號(CVBS),該信號必須經(jīng)過視頻解碼和A/D變換后進入數(shù)字系統(tǒng)才有效。由于模擬視頻信號非常復(fù)雜,除了包含圖像信號之外,還包括行同步信號、行消隱信號、場同步信號、場消隱信號等。因而,對視頻信號進行A/D轉(zhuǎn)換的電路非常復(fù)雜。本設(shè)計選用TI公司的視頻解碼芯片TVP5146完成從模擬到數(shù)字視頻的轉(zhuǎn)換。TVP5146允許10路模擬視頻輸入,具有4路10bit 30MSPS A/D 轉(zhuǎn)換器;場同步信號VS,行同步信號HS,奇偶場信號FID,時鐘輸出信號DATACLK等都由引腳直接引出,省去同步時鐘電路的設(shè)計。
所示為DSP 模擬視頻輸入接口原理框圖。標準模擬視頻信號經(jīng)預(yù)處理進入A/ D轉(zhuǎn)換器;同時又經(jīng)時鐘產(chǎn)生電路得到與行同步同相位的A/ D 轉(zhuǎn)換時鐘,這樣可以使得每行的采樣點均為整數(shù)。為了確保視頻數(shù)據(jù)整行地被采集到DSP 中進行處理,特將行同步信號作為FIFO 讀入數(shù)據(jù)的起點。同時,行同步、場同步以及奇偶場標志信號也直接進入DSP ,使其能夠確定讀入的視頻數(shù)據(jù)在一幀中的具體位置。為了增強系統(tǒng)的實時性,這里利用TMS320C6416 DSP 的DMA(直接存儲器存?。?通道背景操作特性,以使DSP 和外設(shè)的數(shù)據(jù)交換能夠與其內(nèi)部CPU 的高速運算操作同時進行。而FIFO 的功能在于,通過它的緩沖,使得DSP 可以從容地與A/ D 之外的其它外設(shè)交換數(shù)據(jù)。
其中ARM7的作用是時鐘的產(chǎn)生及控制視頻采集芯片,將采得的數(shù)據(jù)從8位或16位轉(zhuǎn)化為32位,并且使數(shù)據(jù)按照Y、U、V分開的方式排列。這樣相當于對采集到的數(shù)據(jù)進行了預(yù)處理,以便于視頻編碼使用。另外ARM7將32位寬的數(shù)據(jù)輸出給32位的FIFO。用32位的FIFO以及將視頻數(shù)據(jù)轉(zhuǎn)換為32位,可以使DSP讀取視頻數(shù)據(jù)時32位的數(shù)據(jù)總線沒有空閑,從而提高DSP讀取視頻數(shù)據(jù)的效率;這里使用FIFO是為了減少DSP讀取數(shù)據(jù)的時間、降低高速設(shè)備和低速設(shè)備的不匹配。每次FIFO半滿時,ARM7會給DSP發(fā)送中斷信號, 并且在中斷處理程序中使用DMA方式讀取視頻數(shù)據(jù);如果不使用ARM7,DSP會頻繁中斷,從而花費大量時間在入棧、出棧以及寄存器的設(shè)置上。
2.2 視頻的MPEG-4編碼模塊
DSP讀入視頻數(shù)據(jù)后進行先期處理,如將YUV格式轉(zhuǎn)為RGB格式等;然后進行MPEG-4視頻編碼。在這一過程中,數(shù)據(jù)訪問通常要占用50%的時間,算術(shù)運算要占用30%的時間,控制要占用20%的時間。因為需要進行運動估計和運動補償,在數(shù)據(jù)存儲器中通常保存一幀I(原始幀)幀圖像和至少一幀P(預(yù)測幀)幀圖像,這些圖像占用的空間都比較大,因此放在外部存儲器SDRAM里。在編碼過程中還要存儲DCT系數(shù)、運動向量、量化矩陣、可變長編碼表、Z形編碼表等,由于占用較小的存儲空間而且會反復(fù)用到,因此把它們放在片內(nèi)存儲器中。
2.3 視頻傳輸
與PC 機不同,DSP 片內(nèi)片外的兩級存儲體系結(jié)構(gòu)以及數(shù)據(jù)分配原則決定了編碼器實現(xiàn)過程中必然存在大量的數(shù)據(jù)傳輸,因而必須有效地管理以減少數(shù)據(jù)傳輸所需的時間。
至于數(shù)據(jù)的采集部分可以利用DSP的DMA來進行。TMS320C6000 DSP 大都具有幾個獨立的DMA 通道,DMA 的特點是可以在不受CPU 干預(yù)的情況下完成數(shù)據(jù)從源地址到目的地址的搬移。
但是DMA 只適合于數(shù)據(jù)塊的整體搬移,對于不同數(shù)據(jù)結(jié)構(gòu)間的數(shù)據(jù)傳輸,前DSP 的DMA 控制器就無能為力了。所以可以借助ARM7控制DSPDMA 來完成視頻編碼中復(fù)雜的數(shù)據(jù)傳輸。
完成編碼后的視頻數(shù)據(jù)通過ARM7來進行和外界的傳輸,可以通過Internet、 CDMA或者GSM網(wǎng)絡(luò)等,只需要ARM7設(shè)計相應(yīng)的傳輸接口即可。至于ARM7與編碼卡通信可以通過并口、串口、USB口、PCI接口等方式實現(xiàn)。其中PCI 接口方式易于ARM7與編碼器高速傳輸數(shù)據(jù),因此可以采用PCI接口。編碼后的數(shù)據(jù)通過DSP的HPI、PCI橋芯片、PCI總線到達ARM7。ARM7通過DSP的HPI直接對DSP的存儲空間進行訪問。
3 軟件設(shè)計及優(yōu)化
3.1 視頻采集
本系統(tǒng)在視頻采集中設(shè)計了一個數(shù)據(jù)結(jié)構(gòu)將空間連續(xù)的先行緩沖區(qū)轉(zhuǎn)化為一個環(huán)形的緩沖區(qū),其簡單的示意圖如所示。
采用此方法只要為這個緩沖區(qū)分配足夠大的空間,使其中存放的圖像幀的數(shù)目至少大于3,這樣就可以保證在對圖像數(shù)據(jù)進行處理的同時還可以同步進行新的圖像數(shù)據(jù)的采集,而不會發(fā)生任何數(shù)據(jù)沖突。系統(tǒng)將會永遠保留環(huán)形緩沖區(qū)中舊的N幀圖像直至被系統(tǒng)取走。
3.2 視頻編碼
MPEG-4的視頻編碼是基于對象的視頻編碼,它仍然采用傳統(tǒng)的預(yù)測編碼、運動補償、DCT變換構(gòu)成的混合編碼方式。編碼器的算法包括運動估計、DCT/IDCT、量化、VLC 等,其中運動估計占據(jù)整個編碼器近四分之一的運算量。因此,研究適合DSP 結(jié)構(gòu)的、在速度和編碼質(zhì)量之間具有良好折中的運動估計算法是實現(xiàn)實時編碼的一個關(guān)鍵問題。
在視頻編碼中應(yīng)該采用塊匹配的運動估計算法,但傳統(tǒng)的塊匹配算法在匹配速度上達不到滿意的效果,因此本系統(tǒng)采用了在三步搜索算法的基礎(chǔ)上改進的四步搜索的塊匹配算法。
四步搜索算法描述如下:
?。?)搜索匹配點組成一個菱形窗口,如所示。初始的9個匹配點為菱形的4個頂點、4條邊的中點及菱形的中心點,如中的實心點。對每個點計算SAD的值,選取SAD的點。如果該點是此次搜索窗口的中心則跳到第4步,否則到第2步。
四步搜索算法示意圖
(2)以SAD的點為新的菱形匹配點窗口的中心點,其余的匹配點的選取按下面的原則進行。
a)如果SAD的點是當前搜索窗口的角上的點,如A點,則取與A點不相鄰的另外5個點,如中的形如的點。選取SAD的點,并到第3步;
b)如果SAD的點是當前搜索窗口的邊上的點,如B點,則取與B點不相鄰的另外3個點,如中的形如的點。選取SAD的點,并到第3步;
c)如果SAD的點是當前搜索窗口的中心點C點,則到第4步;
?。?)搜索模式同2,都到第4步。
?。?)選取周圍的四個點作為匹配點,步長改為1,如中所示的空心點。選取SAD的點作為終目標點。
四步搜索算法比三步搜索算法的復(fù)雜度更小,但并沒有降低,同時算法規(guī)則易于實現(xiàn)軟件流水,而非常適合在DSP 上實現(xiàn)。
3.3 軟件優(yōu)化
由于圖像處理的數(shù)據(jù)量大,數(shù)據(jù)處理相關(guān)性高,并且具有嚴格的幀、場時間限制,因此如何針對圖像處理的特點對DSP 進行優(yōu)化編程,充分發(fā)揮其性能就成為提高整個系統(tǒng)性能的關(guān)鍵。
要想充分發(fā)揮DSP的運算能力,必須從它的硬件結(jié)構(gòu)出發(fā),限度地利用八個功能單元,使用軟件流水線,盡量讓程序無沖突地并行執(zhí)行。一般循環(huán)體都滿足并行處理的條件,并且循環(huán)體往往是程序中耗時長的。因此在進行優(yōu)化時將重點放在循環(huán)體上。
1) DSP跳轉(zhuǎn)指令的優(yōu)化
DSP的指令多為單周期指令,但是轉(zhuǎn)移類指令卻通常要耗費較多的時鐘周期,每個跳轉(zhuǎn)都有5個延遲間隙,從性能上考慮是一項很耗時的工作,因此應(yīng)盡可能地減少程序中的分支。
2) 使用庫函數(shù)
TI公司對TMS320C6000的用戶提供了功能強大的IMAGE LIB庫支持。在這個庫中,包含許多常用函數(shù),可以完成DCT/IDCT變換、小波變換、DCT量化、自適應(yīng)濾波等功能。這些函數(shù)都是優(yōu)化過的,完夠?qū)崿F(xiàn)軟件流水,效率很高。
3)存儲空間的考慮
DSP存儲空間的配置十分重要。因為DSP對不同的存儲單元的訪問速度是有區(qū)別的,對片內(nèi)寄存器的訪問速度快,對片內(nèi)RAM的訪問速度比片外RAM的訪問速度快。因此合理地配置和使用存儲空間,對系統(tǒng)整體效率影響很大。應(yīng)該盡可能地把訪問比較頻繁的常數(shù)表和代碼段裝入片內(nèi)RAM,如果過大,則把其中一部分裝入片外存儲器。
4)混合編程
不同于傳統(tǒng)的VLIW ,Veloci TI 采用了多種先進技術(shù),從而使得DSP的C編譯器具有很高的效率,我們稱之為面向C語言結(jié)構(gòu)的DSP芯片。其平均編譯效率可以達到手工匯編的84 %。這使得在絕大多數(shù)應(yīng)用中我們可以采用C 語言編寫程序從而充分利用大量用C 描述的算法程序,并獲得遠勝于傳統(tǒng)DSP程序的可維護性、可移植性、可繼承性,縮短開發(fā)周期。
雖然C6000的C編譯器有如此高的編譯效率,但是對于MPEG-4這樣復(fù)雜的算法,只運用C語言是遠遠不夠的,一般采用C語言和匯編語言相結(jié)合的方式來完成程序設(shè)計。程序設(shè)計流程如下:先寫C代碼并對其優(yōu)化,如果不能達到預(yù)期的運行效率,則編寫匯編代碼來提高效率。
4 總結(jié)
實時圖像處理系統(tǒng)以DSP為基本結(jié)構(gòu), 并在此結(jié)構(gòu)的基礎(chǔ)上進行了優(yōu)化, 增加了視頻輸入通路。同時所有的數(shù)據(jù)交換都通過了DSP, 后期的調(diào)試過程證明這樣做使得調(diào)試非常方便, 既可以監(jiān)視數(shù)據(jù)的交換又方便修正前期設(shè)計的錯誤。整個系統(tǒng)結(jié)構(gòu)簡單, 各個模塊功能清晰明了。經(jīng)后期大量的系統(tǒng)仿真驗證: 系統(tǒng)穩(wěn)定性高, 處理速度快,能滿足設(shè)計要求。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實時執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號完整性2022/9/26 16:45:38









