基于TMS320C5409的圖像壓縮系統(tǒng)
出處:freyping 發(fā)布于:2007-12-24 10:08:28
引言
隨著多媒體和網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)字圖像大信息量的特點(diǎn)對(duì)圖像壓縮技術(shù)的要求越來(lái)越高,因此,專(zhuān)用高速數(shù)字信息處理技術(shù)成為發(fā)展的方向。其中,在硬件技術(shù)中,TI 推出的C5000系列DSP將數(shù)字信號(hào)處理器的處理能力提升到了一個(gè)新的高度,使信號(hào)處理系統(tǒng)的研究重點(diǎn)又回到軟件算法上。在壓縮算法研究方面,DCT、小波等多個(gè)算法因?yàn)槠涓呖煽啃院透咝砸苍絹?lái)越受到青睞。
系統(tǒng)硬件設(shè)計(jì)
TMS320C5409作為主處理器的可行性分析
TMS320C5409時(shí)鐘頻率為100MHz,性?xún)r(jià)比極高。采用圍繞1組程序總線、3組數(shù)據(jù)總線和4組地址總線建立的改進(jìn)型哈佛結(jié)構(gòu),取址和讀數(shù)可同時(shí)進(jìn)行。有獨(dú)立的硬件乘法器,有利于實(shí)現(xiàn)優(yōu)化卷積、數(shù)字濾波、FFT、矩陣運(yùn)算等算法中的大量重復(fù)乘法運(yùn)算。具有循環(huán)尋址、位倒序等特殊指令,這些指令使FFT、卷積等運(yùn)算中的尋址、排序及計(jì)算速度大大提高。有一組或多組獨(dú)立的DMA總線,與CPU的程序、數(shù)據(jù)總線并行工作。
在本系統(tǒng)中,TMS320C5409作為主處理器,任務(wù)是實(shí)現(xiàn)JPEG壓縮編碼。
通過(guò)分析不難得到,當(dāng)處理一幀大小為640×480的圖像時(shí),作JPEG壓縮編碼所需要的時(shí)間為:
T=62×10(ns)×640×480=0.19866s,當(dāng)所處理的圖像分辨率更小時(shí),則壓縮每幀所花的時(shí)間更少,這對(duì)于應(yīng)用在對(duì)實(shí)時(shí)性要求不是很高的場(chǎng)合是完全可行的。
硬件設(shè)計(jì)框圖

圖1 圖像處理系統(tǒng)結(jié)構(gòu)框圖
圖1是基于TMS320C5409的圖像處理系統(tǒng)結(jié)構(gòu)圖。C5409為中央處理器,SRAM為DSP片外擴(kuò)展數(shù)據(jù)存儲(chǔ)器,EEPROM為脫機(jī)工作時(shí)的程序存儲(chǔ)器,用于存儲(chǔ)系統(tǒng)的引導(dǎo)程序和其它應(yīng)用程序, A/D轉(zhuǎn)換部分負(fù)責(zé)把轉(zhuǎn)換為數(shù)字信號(hào)的圖像存入幀存儲(chǔ)器中。地址譯碼、圖像采集系統(tǒng)控制電路產(chǎn)生本系統(tǒng)各部分的地址譯碼信號(hào),使之映射到不同的地址區(qū)域,并控制ADC進(jìn)行圖像采集,這部分由CPLD控制;圖像采集芯片的寄存器控制由51單片機(jī)完成。

圖 2 存儲(chǔ)器擴(kuò)展示意圖
存儲(chǔ)空間的擴(kuò)展方案
經(jīng)過(guò)A/D轉(zhuǎn)換的原始圖像數(shù)據(jù)是非常大的,TMS320C5409的內(nèi)部?jī)H有32KB的RAM和16KB的ROM ,不能滿(mǎn)足需要,因此,必須擴(kuò)展存儲(chǔ)器來(lái)存放原始圖像數(shù)據(jù)和應(yīng)用程序。本文考慮外接64KB的RAM和512KB的Flash,RAM使用Cypress公司的CY7C1021V33, Flash采用SST公司的SST39VF512。由于 C5409的數(shù)據(jù)空間僅為64KB,因此采用內(nèi)存頁(yè)擴(kuò)展技術(shù)。C5409的擴(kuò)展輸出口1Q和2Q作為擴(kuò)展內(nèi)存的頁(yè)選擇信號(hào)。用C5409的A15引腳和XF引腳通過(guò)3/8譯碼器來(lái)控制擴(kuò)展存儲(chǔ)器片選信號(hào)的產(chǎn)生,當(dāng)A15=0時(shí),選擇片內(nèi)RAM;當(dāng)A15=1,XF=0時(shí)選擇片外SRAM;當(dāng)A15=1,XF=1時(shí)選擇片外Flash;存儲(chǔ)器的擴(kuò)展如圖2所示。將外部擴(kuò)展RAM的64KB中的48KB用于存放原始圖像數(shù)據(jù),16KB用于存放壓縮后的圖像和程序以及暫存的數(shù)據(jù)。
DSP芯片電源電路設(shè)計(jì)
電源設(shè)計(jì)中需要考慮的主要問(wèn)題是功率和散熱。功率要求:電流的消耗主要取決于器件的激活度,即CPU的激活度,外設(shè)功耗主要取決于正在工作的外設(shè)及其速度,與CPU相比,外設(shè)功耗是比較小的。以TMS320C5409為例,進(jìn)行FFT運(yùn)算時(shí),需要的電源電流。因此在設(shè)計(jì)電源時(shí),必須考慮在電源電流和實(shí)際需用電流之間留有一定裕量,因?yàn)榉逯惦娏鲿?huì)更大,裕量至少是20%。

&nb
C5409采用了雙電源供電機(jī)制,工作電壓為3.3V和1.8V。其中,1.8V主要為DSP的內(nèi)部邏輯提供電壓,包括CPU和其它所有外設(shè)邏輯。外部接口引腳采用3.3V電壓。本系統(tǒng)的電源采用了TI公司的兩路輸出電源芯片TPS73HD318,它是一種雙輸出穩(wěn)壓器。輸出電壓一路為3.3V、一路為1.8V,每路電源的輸出電流為750mA。
JPEG圖像壓縮算法
JPEG算法的優(yōu)化
盡管JPEG基本系統(tǒng)能夠?qū)D像進(jìn)行低壓縮比壓縮,但是DCT和IDCT在軟件實(shí)現(xiàn)的過(guò)程中,是耗費(fèi)時(shí)間的運(yùn)算,而且,由于沒(méi)有考慮圖像本身的頻譜特性,JPEG量化表對(duì)于所有圖像壓縮并不一定。采用快速DCT算法可提高軟件的速度,增強(qiáng)軟件的實(shí)時(shí)性。同時(shí),根據(jù)圖像本身的頻譜特性,自適應(yīng)改進(jìn)JPEG推薦的量化表。
快速DCT算法
如果將一幅圖像分成許多8×8的小塊后直接進(jìn)行2D-DCT變換,運(yùn)算量將會(huì)十分巨大。因此,需要將8×8二維DCT變換轉(zhuǎn)換成兩次8點(diǎn)的一維DCT復(fù)合運(yùn)算。具體做法是對(duì)每一個(gè)8×8 塊先做列方向上的DCT變換,得到一個(gè)中間矩陣,再對(duì)該矩陣各行進(jìn)行DCT變換??梢钥吹剑?×8矩陣的2維DCT可以轉(zhuǎn)換成16次一維8點(diǎn)DCT。
目前,很多針對(duì)一維DCT運(yùn)算的DCT快速算法已經(jīng)提出。其中,Loeffler算法所需要的計(jì)算量。Loeffler算法將8點(diǎn)一維DCT運(yùn)算分為4級(jí),由于各級(jí)之間的輸入/輸出存在依存關(guān)系,4級(jí)操作必須串行進(jìn)行,而各級(jí)內(nèi)部的運(yùn)算可并行處理。
由此計(jì)算可知,一個(gè)8點(diǎn)DCT的Loeffler算法共需要11次乘法和29次加法。從DSP匯編語(yǔ)言編程的角度來(lái)看,一個(gè)代數(shù)運(yùn)算應(yīng)包括取操作數(shù)、運(yùn)算、存操作數(shù)三個(gè)步驟。因此,該算法大約需要120條指令。C5409的運(yùn)算能力很強(qiáng),支持單周期加/減法和單周期乘法運(yùn)算,并且能夠在單周期內(nèi)完成兩個(gè)16位數(shù)的加/減法運(yùn)算,再加上DSP中有3組數(shù)據(jù)總線,因而可以利用長(zhǎng)操作數(shù)(32位)進(jìn)行長(zhǎng)字運(yùn)算。在長(zhǎng)字指令中,給出的地址存取的總是高16位操作數(shù),因而只需5條長(zhǎng)字指令即可計(jì)算2個(gè)蝶形運(yùn)算。加上采取其它優(yōu)化措施,大約需90條指令完成Loeffler算法。
雖然Loeffler算法運(yùn)算量,但是運(yùn)用于本文系統(tǒng)并不是。因?yàn)樵撍惴ㄊ菫檎Z(yǔ)言設(shè)計(jì),沒(méi)有利用匯編語(yǔ)言的特點(diǎn)和DSP硬件的特點(diǎn)。本文提出了基于DSP乘法累加單元的DCT快速算法。
D SP的乘法累加單元能在單周期內(nèi)完成乘法和累加運(yùn)算。如匯編指令運(yùn)用于DCT運(yùn)算,將大大簡(jiǎn)化程序的復(fù)雜度并減少計(jì)算時(shí)間。具體算法如下,利用蝶形運(yùn)算:
S0=x(0)+x(7);S7=x(0)-x(7)
S1=x(1)+x(6);S6=x(1)-x(6)
S2=x(2)+x(5);S5=x(2)-x(5)
S3=x(3)+x(4);S4=x(3)-x(4)
展開(kāi)一維DCT公式
經(jīng)過(guò)化簡(jiǎn)合并后結(jié)果如下:
y(0)=aS0+aS1+aS2+aS3
y(2)=fS0+gS1-gS2-aS3
y(4)=aS0
y(6)=gS0-fS1+fS2-aS3
y(1)=eS4+dS5+cS6+bS7
y(3)=dS4-bS5-eS6+eS7
y(5)=cS4+eS5-bS6+dS7
y(7)=-bS4+cS5-dS6+eS7
從上面表達(dá)式可以看出,y(0)-y(7)都是乘法累加運(yùn)算,而S0-S7可由x(0)-x(7)經(jīng)過(guò)蝶形運(yùn)算得到,因此,DCT算法由原來(lái)的4級(jí)運(yùn)算變成兩級(jí),即級(jí)蝶形運(yùn)算和第二級(jí)乘法累加運(yùn)算,級(jí)蝶形運(yùn)算共要10+4=14 (10次計(jì)算操作和4次輔助操作)條指令,第二級(jí)運(yùn)算中,每個(gè)輸出要4+1+1=6條指令(做4次乘法累加運(yùn)算、1次讀取操作和1次存儲(chǔ)操作),一共48條指令,這樣,計(jì)算一個(gè)8點(diǎn)DCT要62條指令,大大縮減了運(yùn)算時(shí)間,提高了CPU的工作效率,增強(qiáng)系統(tǒng)的實(shí)時(shí)性。
量化運(yùn)算優(yōu)化
本文提出了基于實(shí)際情況的自適應(yīng)量化方法,即量化階段采用二次計(jì)算的方法,其算法主要分為兩步:(1) 對(duì)變換后的圖像系數(shù)進(jìn)行自適應(yīng)處理;(2) 構(gòu)造新的量化表。具體方法如下:
首先求出亮度分量和兩個(gè)色度分量在頻域中所有8×8子塊的63 個(gè)交流系數(shù)的平均值P(u,v),其中,
由此可以得到量化表的矯正式 Qp1 ( u , v) = Q1 ( u , v) / X1 ( u , v),對(duì)JPEG量化表進(jìn)行矯正。
將上述矯正后的量化表作為終的量化表,對(duì)圖像進(jìn)行標(biāo)準(zhǔn)JPEG壓縮,形成完全符合JPEG格式的壓縮文件。本算法的解碼過(guò)程與標(biāo)準(zhǔn)JPEG解碼過(guò)程完全相同,可以看出它也是標(biāo)準(zhǔn)JPEG編碼過(guò)程的逆過(guò)程。
實(shí)驗(yàn)結(jié)果
快速DCT運(yùn)算
將本文提出的算法、Loeffler的DSP優(yōu)化算法和純Loeffler算法分別進(jìn)行測(cè)試。結(jié)果見(jiàn)表1,可以看到本文算法較Loeffler的DSP優(yōu)化算法大約節(jié)省了1/4的時(shí)間,較純Loeffler算法大約節(jié)省了一半時(shí)間,其效果是十分明顯的。
自適應(yīng)量化
對(duì)自適應(yīng)量化器進(jìn)行仿真。本文采用中等復(fù)雜度的標(biāo)準(zhǔn)圖像作為測(cè)試圖,與基本JPEG系統(tǒng)進(jìn)行性能比較 (基于峰值信噪比(PSNR))。只將JPEG標(biāo)準(zhǔn)方法中的量化表更改為修正的量化表,就可以在同等壓縮比下,提高恢復(fù)圖像的質(zhì)量。表2為不同壓縮比下,采用JPEG量化表和自適應(yīng)量化表兩種方法的峰值信噪比。從壓縮比和峰值信噪比的對(duì)比結(jié)果可看出,自適應(yīng)量化JPEG方法的壓縮比略高于標(biāo)準(zhǔn)JPEG方法。
結(jié)語(yǔ)
本文以TI的TMS320C5409作為開(kāi)發(fā)平臺(tái),實(shí)現(xiàn)了一種新的JPEG圖像壓縮系統(tǒng)。該系統(tǒng)的優(yōu)點(diǎn)是提高了JPEG的運(yùn)行速度,增強(qiáng)了圖像的壓縮率和質(zhì)量,并且易于硬件實(shí)現(xiàn)。這一方案可應(yīng)用于需要對(duì)視頻圖像進(jìn)行實(shí)時(shí)采集、壓縮及存儲(chǔ)的絕大部分場(chǎng)合。
參考文獻(xiàn):
[1]. C5000 datasheet http://m.58mhw.cn/datasheet/C5000_1136424.html.
[2]. CPLD datasheet http://m.58mhw.cn/datasheet/CPLD_1136600.html.
[3]. SST datasheet http://m.58mhw.cn/datasheet/SST_1180824.html.
[4]. SST39VF512 datasheet http://m.58mhw.cn/datasheet/SST39VF512_887736.html.
[5]. A15 datasheet http://m.58mhw.cn/datasheet/A15_1244519.html.
[6]. TPS73HD318 datasheet http://m.58mhw.cn/datasheet/TPS73HD318_1049719.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹(shù)莓派?一文快速了解樹(shù)莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- PCB防靜電(ESD)設(shè)計(jì)核心規(guī)范
- 通信系統(tǒng)基石:信道化濾波器組原理與多速率信號(hào)處理
- 接觸不良對(duì)連接器性能的影響
- 開(kāi)關(guān)電源PCB設(shè)計(jì)常見(jiàn)問(wèn)題
- 多顆MOSFET并聯(lián)的散熱設(shè)計(jì)要點(diǎn)
- PCB多層板疊層設(shè)計(jì)核心規(guī)范
- 常見(jiàn)IC芯片分類(lèi)及功能介紹
- 應(yīng)對(duì)信號(hào)采集難題:抗混疊濾波器的選型與設(shè)計(jì)關(guān)鍵
- 高速連接器在通信設(shè)備中的應(yīng)用
- 電源IC過(guò)熱損壞原因分析









