版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
利用TMS320C6201芯片進(jìn)行圖像壓縮
摘要:介紹了利用TMS320C6201DSP芯片進(jìn)行實(shí)時(shí)圖像壓縮的軟件設(shè)計(jì)。結(jié)合該芯片的編程特點(diǎn)介紹了壓縮算法,并給出了部分關(guān)鍵程序,具有一定的參考價(jià)值。
關(guān)鍵詞:圖像壓縮C6201FDCT變換霍夫曼編碼
圖像中含有豐富的信息,在現(xiàn)代科技中將圖像作為一種探測手段,正受到越來越廣泛的青睞。有很多探測設(shè)備,采用掃描成像儀器作為前端探測器。作為一種很常見的情況,成像儀器采集到的圖像要通過無線信道進(jìn)行發(fā)送。但是,圖像數(shù)據(jù)通常都是海量數(shù)據(jù),無線信道的傳輸帶寬無法滿足要求,必須對(duì)圖像進(jìn)行壓縮處理,才能通過無線信道進(jìn)行傳輸。
實(shí)現(xiàn)圖像實(shí)時(shí)無線傳輸必須研制專門的圖像壓縮,該壓縮器須滿足如下要求:圖像實(shí)時(shí)壓縮?鴉能夠較好地保存圖像質(zhì)量。筆者以TI公司的高速DSP芯片TMS320C6201為核心的數(shù)字信號(hào)處理板作為圖像壓縮器的硬件平臺(tái),通過自行開發(fā)的壓縮程序,實(shí)現(xiàn)了圖像的實(shí)時(shí)壓縮。
1數(shù)字信號(hào)處理板的硬件功能框圖
數(shù)字信號(hào)處理板的硬件功能框圖如圖1所示。TMS320C6201是一種高性能的定點(diǎn)數(shù)字信號(hào)處理器。工作頻率為200MHz時(shí),每個(gè)指令周期為5ns,運(yùn)算速度可達(dá)1600MIPS;具有VLIW(甚長指令集)體系結(jié)構(gòu),每周期8個(gè)32bit的指令并行執(zhí)行;8個(gè)獨(dú)立的功能單元,有兩個(gè)16bit乘法器和6個(gè)算術(shù)邏輯單元;采用加載存儲(chǔ)體系結(jié)構(gòu),數(shù)據(jù)在多處理單元之間的傳輸依靠32個(gè)32bit的通用寄存器。C6000的存儲(chǔ)器尋址空間為32bit,片內(nèi)有1Mbit的SRAM。片內(nèi)RAM被分為兩塊:一是內(nèi)部程序/cache存儲(chǔ)器,二是內(nèi)部數(shù)據(jù)存儲(chǔ)器。32bit外部存儲(chǔ)器接口可與不同存儲(chǔ)器接口,可方便地配置不同速度、不同容量、不同復(fù)雜程度的存儲(chǔ)器。此外,C6000還有兩通道Boot-loadingDMA處理器、16bit的主機(jī)接口HPI、兩個(gè)多通道緩沖串口,并且其片內(nèi)鎖相環(huán)時(shí)鐘發(fā)生器,可以對(duì)輸入時(shí)鐘進(jìn)行不同的倍頻處理。這種芯片用來處理圖像壓縮這種運(yùn)算密集型的工作是非常合適的。功能框圖的其它部分不再做介紹。
2圖像壓縮算法
圖像壓縮中的圖像有彩色和灰度之分??紤]到彩色圖像和灰度圖像的壓縮類似,且大多數(shù)的掃描成象設(shè)備掃的是灰度圖像,所以僅以灰度圖像的壓縮為例介紹DSP上的圖像壓縮。圖像壓縮算法原理圖如圖2所示。
圖中,首先將原始灰度圖像分為8×8的圖塊,然后對(duì)每一圖像塊進(jìn)行FDCT變換,再將變換得到的DCT系數(shù)使用量化表進(jìn)行量化。量化后可得到如下形式的數(shù)據(jù)
(x)是不為零的數(shù)據(jù))
xxxx0000
xxx00000
xx000000
x0000000
00000000
00000000
00000000
00000000
該數(shù)據(jù)在存儲(chǔ)器中存放的順序
z[0]zzzzxzz
zzz[10]z[11]z[12]z[13]z[14]z[15]
z[16]z[17]z[18]z[19]z[10]z[21]z[22]z[23]
z[24]z[25]z[26]z[27]z[28]z[29]z[30]z[31]
z[32]z[33]z[34]z[35]z[36]z[37]z[38]z[39]
z[40]z[41]z[42]z[43]z[44]z[45]z[46]z[47]
z[48]z[49]z[50]z[51]z[52]z[53]z[54]z[55]
z[56]z[57]z[58]z[59]z[60]z[61]z[62]z[63]
在存儲(chǔ)器中,非零數(shù)據(jù)和零數(shù)據(jù)交替存放,不便于壓縮,所以要對(duì)數(shù)據(jù)進(jìn)行重排列,數(shù)據(jù)的重排列形式
z[0]zzzz[14]z[15]z[27]z[28]
zzzz[13]z[16]z[26]z[29]z[42]
zzz[12]z[17]z[25]z[30]z[41]z[43]
zz[11]z[18]z[24]z[31]z[40]z[44]z[53]
z[10]z[19]z[23]z[32]x[39]z[45]z[52]z[54]
z[20]z[22]z[33]z[38]z[46]z[51]z[55]z[60]
z[21]z[34]z[37]z[47]z[50]z[56]z[59]z[61]
z[35]z[36]z[48]
z[49]z[57]z[58]z[62]z[63]
變換完成后再根據(jù)編碼表對(duì)DC系數(shù)和AC系數(shù)分別進(jìn)行編碼,就完成了圖像的壓縮。
3利用DSP芯片進(jìn)行圖像壓縮
3.1圖像壓縮器的工作過程
圖像壓縮器工作過程方框圖如圖3所示。
圖像數(shù)據(jù)通過I/O接口送入數(shù)字信號(hào)處理板,由DSP芯片中的DMA控制器負(fù)責(zé)將數(shù)據(jù)放入輸入緩沖區(qū)中,DSP對(duì)緩沖的圖像數(shù)據(jù)進(jìn)行壓縮后,通過HPI接口將壓縮數(shù)據(jù)送出。
3.2編程介紹
這里主要介紹壓縮參數(shù)初始化和壓縮程序。
3.2.1壓縮參數(shù)初始化
由圖2所示的圖像壓縮算法可知,圖像壓縮過程中需要量化表和編碼表,量化表如圖4所示。
量化操作就是把8×8圖塊進(jìn)行FDCT變換,將變換后的的DCT系數(shù)用量化表元素來除。由于DSP中有硬件乘法器和移位指令,為了充分提高程序的執(zhí)行速度,應(yīng)該將除法運(yùn)算轉(zhuǎn)化為乘法運(yùn)算和移位運(yùn)算,對(duì)上面的量化表元素逐個(gè)求倒數(shù)并用16進(jìn)制表示,如圖4所示。
編碼表有兩個(gè),一個(gè)是直流差值編碼表,另一個(gè)是交流系數(shù)編碼表,如圖5所示。
編碼表中的最左端的一列代表中間碼字,具體編碼時(shí)要根據(jù)8x8圖塊的DCT系數(shù)產(chǎn)生中間碼字,再由中間碼字查編碼表,將中間碼字轉(zhuǎn)換為霍夫曼碼,完成編碼。在DSP程序初始化階段要生成量化表和編碼表,量化表可直接將圖4所示的量化表元素代入來得到,編碼表就要按照霍夫曼碼的編碼方法生成霍夫曼碼來得到。由于在壓縮過程中要頻繁地查找編碼表,因此,編碼表的組織形式對(duì)程序的執(zhí)行效率影響很大。
3.2.2壓縮程序
圖像壓縮包括FDCT變換、標(biāo)量量化、Zigzag掃描和編碼等幾個(gè)步驟,下面分別介紹。
3.2.2.1FDCT變換
DCT變換公式
式中,Cu,Cv=
具體壓縮的時(shí)候要采用DCT變換的快速算法來加快程序的運(yùn)行速度,將二維的DCT變換分解為兩個(gè)一維的DCT變換,可以有效地降低計(jì)算量。CCS2.0(CodeComposerStudio)中提供了一個(gè)成熟的C語言函數(shù)庫,里面包含了進(jìn)行FDCT變換的函數(shù)。函數(shù)原型
voidfdct_8×8(short*dct_data,unsignednum_fdcts);
函數(shù)中dct_data指針指向待變換的圖像數(shù)據(jù),num_fdcts是進(jìn)行DCT變換的圖像塊的數(shù)目。該函數(shù)可以對(duì)一大塊連續(xù)存放的圖像塊進(jìn)行DCT變換,特別針對(duì)TMS320C6201DSP芯片的特點(diǎn)進(jìn)行了優(yōu)化。考慮到存儲(chǔ)器的等待時(shí)間和指令的并行等問題,執(zhí)行效率非常高,具體的程序開銷可以通過如下公式計(jì)算
時(shí)鐘周期數(shù)=48+160*num_fdcts;
要在自己的工程中使用這個(gè)函數(shù),必須把img62x.lib函數(shù)庫添加到工程中,并且在主程序文件中包含fdct_8×8.h頭文件。
3.2.2.2標(biāo)量量化
所謂標(biāo)量量化就是對(duì)8×8圖像塊的DCT變換系數(shù)使用量化表逐個(gè)相除并四舍五入。CCS2.0提供了一個(gè)量化函數(shù),其原型
voidquantize
(
short*data,/*Datatobequantized.*/
intnum_blks,/*Numberof64-elementblocks.?*/
intblk_size,/*Blocksize(multipleof8).*/
constshort*recip_tbl,/*Quant.values(reciprocals).*/
intq_pt/*Q-pointofQuantvalues.*/
);
將圖4所示的量化表元素代入程序,blk_size為64,q_pt為16,data指向量化數(shù)據(jù),即可進(jìn)行快速的量化。該程序同樣經(jīng)過了優(yōu)化,具體的程序開銷可按如下公式計(jì)算
時(shí)鐘周期數(shù)=25+(blk_size/16)*4+num_blks*12)
該函數(shù)同樣包含在img62x.lib庫中,
程序中應(yīng)包含quantize.h頭文件。
3.2.2.3ZigZag掃描
ZigZag掃描就是對(duì)數(shù)據(jù)進(jìn)行重排列。該部分功能簡單、運(yùn)算量也不大,但是對(duì)存儲(chǔ)器的訪問非常頻繁,而且影響處理器執(zhí)行速度的主要是對(duì)存儲(chǔ)器的訪問速度。一般情況下,CPU訪問內(nèi)部存儲(chǔ)器需要4個(gè)時(shí)鐘周期,訪問外部存儲(chǔ)器的速度要比內(nèi)部存儲(chǔ)器的速度慢得多,具體情況應(yīng)根據(jù)實(shí)際使用的外部存儲(chǔ)器的類型而定。由于TMS3206201DSP芯片每秒鐘最多可以執(zhí)行8條指令,如果讓DSP芯片經(jīng)常處于等待狀態(tài)是非常大的浪費(fèi)。解決該問題的最有效的辦法是充分利用數(shù)據(jù)總線的寬度并讓軟件進(jìn)行流水線執(zhí)行。TMS320C6201的數(shù)據(jù)總線寬度是32位,一般情況下DCT系數(shù)使用一個(gè)短整型數(shù),只有16位寬度,如果每次同時(shí)從存儲(chǔ)器中讀寫兩個(gè)數(shù),則可以減少一半訪問存儲(chǔ)器的次數(shù)。由于TMS320C6201有8個(gè)功能單元,CPU可以在處理當(dāng)前數(shù)據(jù)的同時(shí)去存儲(chǔ)器取下一個(gè)數(shù)據(jù)。通過流水線,CPU可以做到每周期訪問一次存儲(chǔ)器,這樣可以使程序的執(zhí)行效率大大提高。一般情況下軟件的流水線安排是由編譯優(yōu)化系統(tǒng)完成的,程序員所要做的是讓自己的程序符合流水線執(zhí)行的要求,并且讓優(yōu)化后的流水線周期盡量短。流水線的要求主要有以下幾點(diǎn)
程序所使用的寄存器數(shù)目不能超過32個(gè);
程序所使用的條件寄存器數(shù)目不能超過5個(gè);
程序中不能含有分支語句,可能的話盡量使用條件指令;
一個(gè)寄存器中的變量值不能存放太長時(shí)間,實(shí)在不行就換個(gè)寄存器存放;
程序所使用的CPU左右兩邊的資源盡量平衡,一般情況下,平衡的資源使用換來的是比較短的流水線周期;
程序中包含的指令不能太多。
對(duì)于用線性匯編語言編寫的程序,應(yīng)該在程序編寫時(shí)注意這些問題。對(duì)一個(gè)用C語言編寫的程序,可以通過觀察編譯系統(tǒng)產(chǎn)生的優(yōu)化后的匯編語言文件來獲得相關(guān)的信息。具體程序略。
3.2.2.4編碼
編碼部分主要是對(duì)量化后的DCT系數(shù)進(jìn)行處理,主要利用了相鄰圖像塊之間的相關(guān)性、量化后的DCT系數(shù)矩陣的連零特性和霍夫曼編碼應(yīng)進(jìn)行壓縮編碼。該部分主要涉及了查表、移位運(yùn)算和存儲(chǔ)器讀寫。DC差值/AC系數(shù)等級(jí)表如圖6所示。
DC系數(shù)的編碼流程圖如圖7所示。
AC系數(shù)的編碼流程圖如圖8所示。
其中,Z
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科技學(xué)院《素描2》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門幼兒師范高等??茖W(xué)?!峨娮由虅?wù)與電子支付》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《土力學(xué)與地基基礎(chǔ)(B)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《三維技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《多元統(tǒng)計(jì)分析(SPSS)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《播音主持創(chuàng)作實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 《模具開發(fā)》課件
- 基本藥物制度政策培訓(xùn)課件
- 油庫反恐課件培訓(xùn)
- 贛西科技職業(yè)學(xué)院《教師語言與書寫技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 44危險(xiǎn)化學(xué)品安全技術(shù)說明書(汽油、柴油)
- 碳晶板裝修合同范本
- 機(jī)械原理課程設(shè)計(jì)-自動(dòng)蓋章機(jī)
- 供應(yīng)室提高腔鏡器械清洗質(zhì)量PDCA案例
- 格力空調(diào)檢測報(bào)告KFR-35GW(35530)FNhAk-B1(性能)
- 農(nóng)業(yè)氣象觀測規(guī)范+青花椒DB50-T 1358-2023
- 【林芝市藏漢通婚帶來的影響調(diào)研分析報(bào)告3300字】
- 馬蹄種植技術(shù)與施肥
- 央國企信創(chuàng)白皮書 -基于信創(chuàng)體系的數(shù)字化轉(zhuǎn)型
- GM/T 0001.1-2012祖沖之序列密碼算法第1部分:算法描述
- GB/T 13382-2008食用大豆粕
評(píng)論
0/150
提交評(píng)論