《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP的機(jī)載視頻圖像實(shí)時(shí)壓縮與處理系統(tǒng)
基于DSP的機(jī)載視頻圖像實(shí)時(shí)壓縮與處理系統(tǒng)
摘要: 本文以TMS320DM642 芯片為中心,, 詳細(xì)介紹了機(jī)載圖像實(shí)時(shí)壓縮系統(tǒng)的設(shè)計(jì)及MPEG 4 實(shí)時(shí)編碼器的優(yōu)化,。系統(tǒng)經(jīng)測試實(shí)現(xiàn)了高分辨率圖像的實(shí)時(shí)壓縮和實(shí)時(shí)編幀傳輸,, 滿足了系統(tǒng)設(shè)計(jì)需求。本文采用MPEG 4Simlpe Profile 算法,, 在算法方面還有一定的研究空間,。
Abstract:
Key words :

由于受到無線傳輸帶寬的限制, 無人機(jī)對(duì)地面目標(biāo)偵察獲得的高分辨率視頻圖像必須經(jīng)過有效壓縮才能實(shí)時(shí)傳輸給地面接收處理系統(tǒng)?,F(xiàn)有的視頻壓縮標(biāo)準(zhǔn)有H.261,、H. 262、H . 263 及MPEG-1,、MPEG-2、MPEG-4 等,。

  其中MPEG-4 由于采用基于對(duì)象的壓縮編碼方法,, 較之以往各標(biāo)準(zhǔn)的基于幀的壓縮編碼方法, 其時(shí)間和空間冗余更低,, 在保持解碼質(zhì)量的同時(shí)提高了壓縮率,。MPEG-4 還具有更好的交互性能及更強(qiáng)的抗誤碼性能 , 較之以往的壓縮標(biāo)準(zhǔn), 更適合無線信道的傳輸,。

  視頻壓縮算法比較復(fù)雜,, 加之無人機(jī)有效載荷的重量和體積限制, 難以實(shí)現(xiàn)對(duì)機(jī)載視頻圖像的實(shí)時(shí)壓縮編碼,,通常只能低分辨率圖像實(shí)時(shí)壓縮,。本文基于TI 公司最新推出的媒體處理器TMS320DM642 設(shè)計(jì)并實(shí)現(xiàn)了機(jī)載圖像實(shí)時(shí)壓縮編碼與處理系統(tǒng),, 實(shí)現(xiàn)了對(duì)最高分辨率為D1分辨率機(jī)載視頻圖像的分辨率和壓縮比可調(diào)的MPEG-4實(shí)時(shí)壓縮處理及恒定碼流的輸出。

  1   設(shè)計(jì)要求

  整個(gè)壓縮處理系統(tǒng)完成對(duì)機(jī)載高分辨率攝像機(jī)輸出的PA L 制式模擬視頻信號(hào)進(jìn)行實(shí)時(shí)采集,、壓縮與傳輸,。

  為了便于地面接收處理系統(tǒng)實(shí)時(shí)地分析圖像, 須將無人機(jī)拍攝圖像的時(shí)間及空間位置等附加信息和壓縮圖像數(shù)據(jù)實(shí)時(shí)地打包,。MPEG-4 為不等長壓縮編碼,, 為便于無線傳輸, 需將MPEG-4 數(shù)據(jù)包流進(jìn)行編幀,, 形成256 KB/ s的恒定基帶碼流,, 實(shí)時(shí)傳輸給無線信道子系統(tǒng)供調(diào)制發(fā)射。系統(tǒng)還需根據(jù)控制命令動(dòng)態(tài)地改變圖像的分辨率及壓縮比,。

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

  2. 1   TMS320DM642 芯片的特點(diǎn)

  DM642 屬于TMS320C64x 系列DSPs,。Veloci T I 結(jié)構(gòu)使C6000 DSPs 在視頻和圖像處理中得到廣泛應(yīng)用。

  CPU 的VLIW 結(jié)構(gòu)由多個(gè)并行運(yùn)行的執(zhí)行單元組成,, 這些單元在單個(gè)周期內(nèi)可執(zhí)行多種指令,。并行是C6000 獲得高性能的關(guān)鍵。C64x 在C6000 的基礎(chǔ)上有一些重要的改進(jìn),。除了有更高的時(shí)鐘頻率外,, C64x 從以前的VelociTI 結(jié)構(gòu)擴(kuò)展到Veloci TI. 2 結(jié)構(gòu), 包含了許多新的指令,,增加了額外的數(shù)據(jù)通道,, 寄存器的數(shù)量也增加了一倍。這些擴(kuò)展使得CPU 可以在一個(gè)時(shí)鐘周期內(nèi)處理更多的數(shù)據(jù),, 從而獲得更高的運(yùn)算性能,。

  DM642 芯片集成了各種片內(nèi)外設(shè), 使得開發(fā)視頻和圖像領(lǐng)域的應(yīng)用更為方便,。它帶有3 個(gè)可配置的視頻端口,, 提供與視頻輸入、視頻輸出以及碼流輸入的無縫接口,。

  這些視頻端口支持許多格式的視頻輸入/ 輸出,。利用DM642 開發(fā)視頻編碼器, 其視頻輸入部分只需要一塊視頻采集芯片即可,, 如AD 公司的A DV7181, 無需外加邏輯控制電路和FIFO 緩存,, 使硬件系統(tǒng)更為簡單和穩(wěn)定。

  DM642 集成的64 位的無縫外部存儲(chǔ)器接口( EMIF) , 能夠?qū)崿F(xiàn)與外部同步和異步存儲(chǔ)器或外設(shè)的無縫連接,。

  DM642 的其他外設(shè)包括: 10 Mbps/ 100 Mbps 的以太網(wǎng)口( EMAC) ,、多通道音頻串口(McASP) 、主機(jī)接口( HPI) 、多通道緩沖串口( McBSP) 以及PCI 接口等,。

  2. 2   系統(tǒng)硬件組成

  機(jī)載圖像實(shí)時(shí)壓縮與處理系統(tǒng)以TMS320DM642 高性能通用DSP 芯片為核心,, 由視頻輸入采集模塊、圖像壓縮處理模塊,、外部存儲(chǔ)模塊及傳輸控制接口模塊組成,。其硬件系統(tǒng)框圖如圖1 所示。

 

圖1   機(jī)載視頻圖像實(shí)時(shí)壓縮處理系統(tǒng)硬件框圖

  圖像采集模塊對(duì)輸入模擬視頻信號(hào)進(jìn)行同步捕獲,、采集和視頻解碼,。視頻解碼器輸出的數(shù)據(jù)格式為YUV4: 2:2。視頻解碼數(shù)據(jù)通過DMA 通道向DM642 VPORT 通道緩沖單元發(fā)送數(shù)據(jù),, 當(dāng)采集完一幀數(shù)據(jù)時(shí)產(chǎn)生DMA 中斷,。圖像壓縮處理模塊根據(jù)接收到的控制命令將視頻解碼數(shù)據(jù)進(jìn)行實(shí)時(shí)壓縮數(shù)理后緩存到存儲(chǔ)模塊中。存儲(chǔ)模塊采用32 MB 64 位的SDRAM, 實(shí)現(xiàn)程序和數(shù)據(jù)的存儲(chǔ),。

  傳輸控制接口模塊將緩存在SDRAM 中的待傳輸碼流以256 KB/ s 的恒定速率8 位并行傳輸至輸出端口,, 并接收地面發(fā)送的控制命令。該模塊由FIFO 芯片和CPLD 組成,, FIFO 半空時(shí)向DSP 發(fā)送中斷信號(hào),。

2. 3   系統(tǒng)工作流程

  系統(tǒng)由初始化模塊、采集模塊,、壓縮模塊,、打包編幀模塊、存儲(chǔ)模塊和傳輸模塊組成,。其工作流程如圖2 所示,。

 

圖2   機(jī)載圖像將壓縮處理子系統(tǒng)軟件工作流程

  初始化模塊完成對(duì)程序從Flash 中導(dǎo)入內(nèi)存、DSP各端口及解碼芯片工作模式的設(shè)置及全局?jǐn)?shù)據(jù)的申請(qǐng)及初始化,, 并啟動(dòng)對(duì)視頻端口狀態(tài)的查詢,。當(dāng)定時(shí)檢測到視頻端口緩沖區(qū)中有數(shù)據(jù)時(shí), 將端口緩沖區(qū)中的原始數(shù)據(jù)根據(jù)接收的控制命令進(jìn)行指定大小大抽取,, 輸出YUV4: 2: 0格式的圖像數(shù)據(jù)緩存到外圍存儲(chǔ)模塊中,。壓縮模塊將采集的圖像數(shù)據(jù)進(jìn)行MPEG-4 壓縮。打包,、編幀模塊將壓縮后的MPEG-4 編碼數(shù)據(jù)進(jìn)行實(shí)時(shí)打包,, 并對(duì)打包后的數(shù)據(jù)進(jìn)行連續(xù)的實(shí)時(shí)編幀。當(dāng)數(shù)據(jù)包緩沖區(qū)中無數(shù)據(jù)時(shí),,便在傳輸幀中插入空數(shù)據(jù)。編幀完的數(shù)據(jù)64 位并行緩存到外圍SDRAM 中,。在FIFO 中斷服務(wù)程序中,, 啟動(dòng)一次DMA 傳輸, 將緩存在SDRAM 中的幀數(shù)據(jù)流傳輸?shù)紽IFO 中, 實(shí)現(xiàn)256 KB/ s 的恒定速率的數(shù)據(jù)傳輸,。

  需要注意的是原始圖像和壓縮碼流在DSP 中的存儲(chǔ),。視頻端口、編碼程序都要訪問原始圖像,, 例如在某一時(shí)刻,,編碼程序訪問當(dāng)前幀圖像, 而視頻端口正在輸入下一幀圖像,, 為了避免訪問沖突,, 原始圖像在DSP 中采用三緩沖區(qū)進(jìn)行管理。壓縮碼流由編碼程序?qū)懭耄?根據(jù)FIFO 狀態(tài)恒定碼率輸出,, 所以采用環(huán)式存儲(chǔ)管理協(xié)調(diào)讀寫的步調(diào),。

  2. 4   內(nèi)存分配

  DM642 片內(nèi)只有256 KB 的存儲(chǔ)空間, 因此當(dāng)前幀,、參考幀和當(dāng)前幀的重建幀都必須放至片外存儲(chǔ)器,, 壓縮碼流若被主機(jī)讀取, 也放至片外,。其他數(shù)據(jù)如程序代碼,、全局變量、VLC碼表,、各編碼模塊產(chǎn)生的中間數(shù)據(jù)等均可放至片內(nèi),。

  由于CPU 訪問片外的速度通常要比訪問片內(nèi)慢幾十倍, 片外數(shù)據(jù)的傳輸通常成為程序運(yùn)行時(shí)的瓶頸,, 即使代碼效率很高,, 流水線也會(huì)因?yàn)榈却龜?shù)據(jù)而被嚴(yán)重阻塞。解決這一問題的有效方法是用EDMA 傳送數(shù)據(jù),。程序是逐個(gè)宏塊進(jìn)行編碼時(shí),, 在編碼當(dāng)前宏塊的同時(shí), EDMA 將下一個(gè)宏塊的數(shù)據(jù),、用到的參考幀數(shù)據(jù)由片外傳送至片內(nèi),;當(dāng)前宏塊做完成運(yùn)動(dòng)補(bǔ)償后, EDMA 將重建后的宏塊由片內(nèi)傳送至片外,。這樣CPU 只對(duì)片內(nèi)數(shù)據(jù)進(jìn)行操作,, 使得流水線可以順利進(jìn)行, 而壓縮碼流按逐個(gè)碼字有時(shí)間間隔地寫入,, 可由CPU 直接寫至片外,。

  3   基于DM642 的軟件優(yōu)化技術(shù)

  為了提高代碼的執(zhí)行效率, 必須充分利用C64x CPU的VL IW 和流水線結(jié)構(gòu)對(duì)其進(jìn)行優(yōu)化,, 使程序無沖突地并行執(zhí)行[ 6] ,。MPEG 4 編碼程序中包含大量的循環(huán)體, 例如計(jì)算量化、DCT,、半像素插值,、運(yùn)動(dòng)補(bǔ)償和構(gòu)建重建幀等。這些循環(huán)體代碼并不復(fù)雜,, 且執(zhí)行次數(shù)頻繁,, 占據(jù)了編碼的絕大部分時(shí)間, 因此循環(huán)體的優(yōu)化是重點(diǎn),。本文所采取的代碼優(yōu)化為C 語言優(yōu)化和編寫線性匯編兩個(gè)步驟,,主要從消除數(shù)據(jù)相關(guān)性、數(shù)據(jù)打包和循環(huán)體的軟件流水3個(gè)方面進(jìn)行優(yōu)化,。

  3. 1   針對(duì)C語言的優(yōu)化

  C 代碼的優(yōu)化主要依靠開發(fā)環(huán)境CCS 的編譯器完成,, 編程者需要合理選擇編譯選項(xiàng), 并利用特定的關(guān)鍵字和指令向編譯器提供優(yōu)化信息 ,。例如關(guān)鍵字rest rict 用來消除數(shù)據(jù)間的相關(guān)性,, 編譯器從而可以安排語句的并行執(zhí)行 ; 內(nèi)聯(lián)函數(shù)_ nasser t 有助于數(shù)據(jù)的打包處理; 宏指令# pragma MU ST _IT ERAT E 告訴編譯器有關(guān)循環(huán)迭代次數(shù)的信息,, 編碼器會(huì)根據(jù)這一信息進(jìn)行軟件流水,。

  3. 2   用線性匯編改寫關(guān)鍵代碼

  線性匯編是TMS320C6000 特有的一種編程語言, 介于高級(jí)語言和匯編語言之間,。它可以指定指令用到的寄存器和功能單元,, 更易于對(duì)數(shù)據(jù)的打包處理。

  線性匯編代碼的并行處理和軟件流水由匯編優(yōu)化器完成,, 編程者需要熟悉C64x DSP 的CPU 結(jié)構(gòu)和指令集,, 認(rèn)真設(shè)計(jì)代碼并充分利用編譯器的反饋信息合理修改代碼, 才能寫出高質(zhì)量的線性匯編,。本設(shè)計(jì)中程序主框架采用C 語言編寫,, 其它各關(guān)鍵部分的代碼采用線性匯編實(shí)現(xiàn)。

  4   結(jié)果分析

  本壓縮系統(tǒng)在對(duì)標(biāo)準(zhǔn)Foreman 序列,、地面人群及道路車輛等視頻序列進(jìn)行壓縮測試,。對(duì)D1 分辨率視頻序列能夠?qū)崿F(xiàn)25 幀/ 秒實(shí)時(shí)的壓縮編碼, 壓縮碼率為1. 8 Mb/ s, 解碼圖像視覺效果良好,, 經(jīng)編幀后輸出250KB/ s 恒定基帶碼流,。在圖像傳輸中沒有出現(xiàn)數(shù)據(jù)擁塞和丟失現(xiàn)象。有效滿足了高清晰機(jī)載圖像幀察的目的,。

  5   結(jié)束語

  本文以TMS320DM642 芯片為中心,, 詳細(xì)介紹了機(jī)載圖像實(shí)時(shí)壓縮系統(tǒng)的設(shè)計(jì)及MPEG 4 實(shí)時(shí)編碼器的優(yōu)化。系統(tǒng)經(jīng)測試實(shí)現(xiàn)了高分辨率圖像的實(shí)時(shí)壓縮和實(shí)時(shí)編幀傳輸,, 滿足了系統(tǒng)設(shè)計(jì)需求,。本文采用MPEG 4Simlpe Profile 算法,, 在算法方面還有一定的研究空間。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。