基于TMS320VC550的JPEG視頻壓縮系統的實(shí)現

發(fā)布時(shí)間:2010-11-27 12:15    發(fā)布者:designer
關(guān)鍵詞: JPEG , TMS320VC550 , 視頻 , 壓縮
1 引言

隨著(zhù)網(wǎng)絡(luò )和多媒體技術(shù)的發(fā)展,視覺(jué)通信的重要性和需求急劇增加,如桌面視頻會(huì )議、移動(dòng)終端、基于因特網(wǎng)的視頻通信等。這些視覺(jué)信息內涵豐富,但數據量大,必須壓縮數據。但采用多種方法壓縮圖像數據,其數據量仍然巨大,這就對計算機處理速度、傳輸介質(zhì)、傳輸方法和存儲介質(zhì)提出較高要求。因此,數據壓縮作為數據圖像處理的關(guān)鍵技術(shù)之一,對研究圖像壓縮編碼技術(shù)具有重要價(jià)值。

嵌入式微處理器中,DSP具有靈活、高速、便于嵌入式應用等優(yōu)點(diǎn),特別適合復雜算法處理的應用。數字視頻圖像壓縮系統利用DSP作為其嵌入式平臺,充分發(fā)揮其性能優(yōu)勢,較好地提高編碼效率,滿(mǎn)足圖像實(shí)時(shí)處理需要。因此,這里介紹一種基于TMS320VC5509A型DSP的視頻壓縮系統。

2 靜止圖像的壓縮編碼標準JPEG

JPEG(Joint Photographic Experts Group)是由國際標準化組織(ISO)提出面向靜止圖像編碼的標準,其處理方法依次使用離散余弦變換、量化、Z行掃描、游程編碼和不變字長(cháng)編碼。JPEG算法定義了以下4種運行模式:

(1)基于DCT順序型模式按照從左到右、從上到下的順序對圖像進(jìn)行掃描和編碼,稱(chēng)為基本系統。

(2)基于DCT遞增模式 按照從粗到細的順序對一幅圖像進(jìn)行編碼,適用于傳輸時(shí)間長(cháng)、用戶(hù)喜歡圖像從粗糙到清晰的場(chǎng)合。

(3)無(wú)失真編碼模式保證重建圖像與原始圖像完全相同。

(4)分層編碼 采用各種分辨率對圖像進(jìn)行編碼。

該系統采用基本系統模式。圖1是JPEG的編碼框圖。





3 硬件系統設計

該視頻壓縮系統直接與PAL制攝像頭的輸出端相連,來(lái)采集、預處理和壓縮現場(chǎng)圖像,再以USB或RS232方式將處理后的圖像數據傳給上位機。圖2為視頻壓縮系統硬件結構圖。




該系統硬件設計以TI公司的TMS320VC5509A型數字信號處理器為核心,包括視頻采集電路、FPGA預處理電路、存儲器擴展、系統電源和看門(mén)狗電路等。系統中TMS320VC5509A為中央處理器;SDRAM為DSP外擴數據存儲器;Flash為程序存儲器,用于系統上電自舉;模擬攝像頭與視頻 A/D轉換器負責視頻圖像采集;FPGA用于地址譯碼、隔行運算,控制兩片SRAM用于緩存視頻A/D轉換器轉換后的數字圖像。從系統設計成本考慮,這里選用Altera公司的可編程邏輯器件EPIC6Q240C8型FPGA。該器件是Cyclone系列器件中一款非BGA封裝的可用I/O引腳最多的 FPGA。   

3.1 視頻采集電路

該系統選用的視頻解碼器為Philip公司的高性能視頻A/D轉換器SAA7111。該器件是一款廣泛應用于桌面視頻、多媒體、數字電視、圖像處理、視頻電話(huà)的高性能視頻輸入處理器件。該器件采用3.3 V的CMOS電路,高度集成模擬前端和數字視頻編碼器;包括2路模擬視頻處理通道,1個(gè)時(shí)鐘產(chǎn)生電路,1個(gè)自動(dòng)箝位和自動(dòng)增益控制電路,1個(gè)多制式數字解碼器,1個(gè)亮度/對比度/飽和度控制電路,以及色彩空間矩陣。SAA7111輸出為16位VPO總線(xiàn),支持不同位寬的數據輸出格式。SAA7111支持的輸出格式包括:12位YUV411,16位YUV4:2:2,8位CCIR-656、16位565RGB以及24位的888RGB。圖3為視頻采集電路。





3.2 存儲器選型

選擇存儲器應從以下方面考慮:首先圖像壓縮算法中間數據量大,要求處理器的片上內存盡可能大,盡量避免對外部存儲器讀寫(xiě)操作。VC5509A的片上存儲器包括32 Kx16位DARAM,96 Kx16位SARAM,共128 K位的存儲空間。其中DARAM為雙地址,在每個(gè)周期內可以對其進(jìn)行兩次操作(2次讀,兩次寫(xiě),一次讀和一次寫(xiě)),這樣大大增加片上存儲器的利用率;其次,VC5509A片上資源豐富,包括I2C總線(xiàn)(多主從接口),3個(gè)McBSPs(1個(gè)與多媒體卡/數字加密卡MMC/SD串行接口復用引腳)。利用 FC總線(xiàn)對SAA7111的片內控制寄存器進(jìn)行讀寫(xiě)操作,非常方便實(shí)時(shí)控制SAA711 1的工作狀態(tài);利用McBSP配合DMA,軟件編程實(shí)現UART功能,無(wú)需專(zhuān)門(mén)的硬件UART,從而節省電路板空間:VC5509A采用144引腳 LQFP封裝,便于安裝、調試;VC5509A功耗小,工作在200 MHz主頻下,功耗僅100 mW,非常適合嵌入式應用。

3.3 DSP供電電源電路

DSP基本系統由獨立的電源系統供電,而硬件平臺的其他器件共用另一套電源供電系統。為了降低系統功耗,DSP一般采用低電壓供電.并且采用I/O和 CPU內核分開(kāi)供電方式。VC5509A不同的工作頻率要求不同的核電壓,200 MHz為1.6 V,144 MHz為1.35 V,108 MHz為1.2 V。DSP的I/O電壓為3.3 V。

DSP供電電源電路如圖4所示。選用TI公司的兩款LDO電源器件TPS76801和TPS75833分別為DSP提供內核電壓和I/O電壓。





TPS76801能給CPU內核提供最大1 A的電流,電壓在1.2~3 V范圍內可調。

調整TPS76801的輸入電阻值得到1.6 V,1.35 V,1.2 V的核電壓,DSP相應工作在200 MHz,144 MHz,108 MHz的頻率下。而TPS75833能提供最高3 A的I/O電流,對于低功耗的TMS320VC5509A,這已足夠保證其工作在最大負荷狀態(tài)。

4 系統軟件設計

該系統軟件設計的主要功能是實(shí)時(shí)采樣現場(chǎng)的視頻信號,然后對網(wǎng)像數據編碼壓縮并通過(guò)USB總線(xiàn)或RS232串口將圖像數據傳送給主機。系統主程序流程如圖5所示,該系統軟件設計可分為系統初始化、圖像采集、壓縮編碼和數據傳輸4個(gè)主要模塊。





系統上電后,DSP首先初始化,初始化主要包括:通過(guò)I2C總線(xiàn)初始化SAA7111,設置其工作模式;空間分配,EMIF的配置以保證外部存儲器的正常訪(fǎng)問(wèn);配置USB模塊;設定DMA通道以及設定外部中斷。然后DSP等待FPGA的中斷。當DSP接收到FPGA的中斷后,DSP設定標志寄存器,啟動(dòng) DMA讀取數據,并進(jìn)行編碼。當編碼結束后,DSP把數據交付USB模塊,通過(guò)USB總線(xiàn)傳送至上位機,同時(shí)DSP向FPGA發(fā)送空閑信號,通知FPGA 繼續發(fā)送下一幀。

5 JPEG優(yōu)化

JPEG算法在DSP上實(shí)現需要解決編碼速度問(wèn)題。片上內存資源的有限性使得大部分的程序代碼和數據不得不放在片外,大量的圖像數據在慢速的SDRAM存儲器中,對其訪(fǎng)問(wèn)和算術(shù)運算是影響系統性能的關(guān)鍵因素之一。因此,應從內存分配和代碼優(yōu)化兩個(gè)方面來(lái)優(yōu)化程序,提高編碼效率。

5.1 數據內存優(yōu)化

由于VC5509A的片上存儲器包括32 Kx16位DARAM,96 Kx16位SARAM,共128 K位的存儲空間。其中DARAM為雙訪(fǎng)問(wèn)內存,即在一個(gè)周期內可完成兩次數據訪(fǎng)問(wèn),SARAM為單訪(fǎng)問(wèn)內存,即在一個(gè)周期內只能完成一次數據訪(fǎng)問(wèn),片外內存為擴展的SDRAM,訪(fǎng)問(wèn)其需要額外的等待時(shí)間,執行效率比較低。因此在算法設計中應合理安排內存分配,盡量將訪(fǎng)問(wèn)頻繁的程序代碼和數據放在片內內存中,特別是DARAM中,可以提高編碼效率。

5.2 C代碼優(yōu)化

在JPEG的編碼中,根據VC5509A結構特點(diǎn)及結合圖像數據量大的特點(diǎn),提高編碼效率,考慮程序編寫(xiě)和優(yōu)化如下:

(1)利用編譯器優(yōu)化,開(kāi)啟編譯器的優(yōu)化選項,包括基本優(yōu)化、文件級優(yōu)化和程序級優(yōu)化。

(2)使用本征(intrinsics)函數,C55x提供了一種特殊函數一本征函數,可迅速優(yōu)化C代碼。本征甬數前有個(gè)下劃線(xiàn)“一”,調用方法和普通函數相同。

(3)使用圖像庫,TI提供基于C55x的圖像庫IMGLIB,庫中都是圖像處理常用的函數,而且可以用C語(yǔ)言調用,匯編優(yōu)化好,執行效率高,因此盡量用庫函數。在JPEG編碼中比較關(guān)鍵的是DCT變換可調用庫函數中的IMG_sw_fdct_8x8(short*fdct_data,short, *inter_buffer),該函數完成一次DCT變換需用1 078個(gè)時(shí)鐘周期。大大提高JPEG的編碼效率。

(4)高效使用MAC硬件,C55x有專(zhuān)門(mén)的硬件高效執行MAC運算。一個(gè)周期中可以執行一個(gè)單乘加或一個(gè)雙乘加(dual-MAC)運算。

(5)使用特殊數據類(lèi)型(register類(lèi)型、volatile類(lèi)型、const類(lèi)型),對于需要多次重復訪(fǎng)問(wèn)的變量,如for循環(huán)中的變量值,一般可設置為register型變量。聲明變量為register型能提高效率,但必須小心使用。在某些編譯器中,優(yōu)化器會(huì )自動(dòng)分配一些變量為register 型。

(6)減少判斷循環(huán),在使用判斷方式選取控制語(yǔ)句時(shí)應盡量減少判斷轉移。DSP多采用流水線(xiàn)結構。由于TMS320C55X采用7級流水線(xiàn)結構,頻繁的轉移指令使得流水線(xiàn)難以發(fā)揮作用。

另外。DSP的大多數指令為單周期指令,但轉移類(lèi)指令卻通常要耗費較多的機器周期。因此,應盡可能減少程序中的轉移分支,以提高程序的效率。

6 實(shí)驗結果

6.1 壓縮效果實(shí)驗結果

通過(guò)改變量化因子Q,改變圖像的壓縮比。壓縮比越大,壓縮過(guò)程中的視覺(jué)損失越大,壓縮后的圖片越不清晰。圖6為采用不同的量化因子Q的壓縮前后效果比較圖。其中,圖6a為未壓縮,大小57.4 KB的原始BMP圖像,圖6b為壓縮后大小為5.18 KB的圖像,圖6c為壓縮后大小5.18 KB的圖像。由圖知,壓縮后的圖像與原始圖像在視覺(jué)效果上相差不大。當Q=50時(shí),壓縮后圖像所需存儲空間僅為原圖像的1/14。




6.2 壓縮耗時(shí)實(shí)驗結果

對于一個(gè)8x8數據塊,各步耗時(shí)如下:分塊:1.335μs;DCT變換:5. 39μs;量化:1.355μs;哈夫曼編碼:3.375μs。說(shuō)明一個(gè)8x8數據塊總耗時(shí)為11.455μs,一幀720x576灰度圖像的壓縮總耗時(shí)為90x72x11.455=74 228.4μs,再加上其他輔助操作,實(shí)際耗時(shí)約75 ms。根據上述結果,在1 s內向上位機發(fā)送13幀720x576的灰度圖像,基本滿(mǎn)足系統要求。

7 結束語(yǔ)

介紹基于TMS320VC5509A DSP的JPEG視頻壓縮系統的設計和實(shí)現方案,該系統硬件設計采用DSP+FPGA的方案,充分發(fā)揮了各自?xún)?yōu)勢;而軟件設計針對C55x的結構進(jìn)行程序結構和算法優(yōu)化,經(jīng)過(guò)驗證達到較好的實(shí)時(shí)效果。由于該系統體積小、功耗低,適用于一些野外圖像采集、遠程視頻監控等需要連續傳輸圖像的場(chǎng)合。
本文地址:http://selenalain.com/thread-42164-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页