<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320C5409的圖像壓縮系統(tǒng)

          基于TMS320C5409的圖像壓縮系統(tǒng)

          ——
          作者:華東師范大學(xué)信息學(xué)院電子系 程林 徐曄 鄭正奇 時間:2007-01-26 來源:《電子設(shè)計(jì)應(yīng)用》 收藏


          引言

          隨著多媒體和網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)字圖像大信息量的特點(diǎn)對圖像壓縮技術(shù)的要求越來越高,因此,專用高速數(shù)字信息處理技術(shù)成為發(fā)展的方向。其中,在硬件技術(shù)中,ti推出的c5000系列dsp將數(shù)字信號處理器的處理能力提升到了一個新的高度,使信號處理系統(tǒng)的研究重點(diǎn)又回到軟件算法上。在壓縮算法研究方面,dct、小波等多個算法因?yàn)槠涓呖煽啃院透咝砸苍絹碓绞艿角嗖A。

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

          tms320c5409作為主處理器的可行性分析

          tms320c5409時鐘頻率為100mhz,性價比極高。采用圍繞1組程序總線、3組數(shù)據(jù)總線和4組地址總線建立的改進(jìn)型哈佛結(jié)構(gòu),取址和讀數(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壓縮編碼。

          通過分析不難得到,當(dāng)處理一幀大小為640×480的圖像時,作jpeg壓縮編碼所需要的時間為:t=62×10(ns)×640×480=0.19866s,當(dāng)所處理的圖像分辨率更小時,則壓縮每幀所花的時間更少,這對于應(yīng)用在對實(shí)時性要求不是很高的場合是完全可行的。

          硬件設(shè)計(jì)框圖

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

          本文引用地址:http://www.ex-cimer.com/article/21330.htm

          存儲空間的擴(kuò)展方案

          經(jīng)過a/d轉(zhuǎn)換的原始圖像數(shù)據(jù)是非常大的,tms320c5409的內(nèi)部僅有32kb的ram和16kb的rom,不能滿足需要,因此,必須擴(kuò)展存儲器來存放原始圖像數(shù)據(jù)和應(yīng)用程序。本文考慮外接64kb的ram和512kb的flash,ram使用cypress公司的cy7c1021v33,flash采用sst公司的sst39vf512。由于c5409的數(shù)據(jù)空間僅為64kb,因此采用內(nèi)存頁擴(kuò)展技術(shù)。c5409的擴(kuò)展輸出口1q和2q作為擴(kuò)展內(nèi)存的頁選擇信號。用c5409的a15引腳和xf引腳通過3/8譯碼器來控制擴(kuò)展存儲器片選信號的產(chǎn)生,當(dāng)a15=0時,選擇片內(nèi)ram;當(dāng)a15=1,xf=0時選擇片外sram;當(dāng)a15=1,xf=1時選擇片外flash;存儲器的擴(kuò)展如圖2所示。將外部擴(kuò)展ram的64kb中的48kb用于存放原始圖像數(shù)據(jù),16kb用于存放壓縮后的圖像和程序以及暫存的數(shù)據(jù)。

          dsp芯片電源電路設(shè)計(jì)

          電源設(shè)計(jì)中需要考慮的主要問題是功率和散熱。功率要求:電流的消耗主要取決于器件的激活度,即cpu的激活度,外設(shè)功耗主要取決于正在工作的外設(shè)及其速度,與cpu相比,外設(shè)功耗是比較小的。以tms320c5409為例,進(jìn)行fft運(yùn)算時,需要的電源電流最大。因此在設(shè)計(jì)電源時,必須考慮在電源電流和實(shí)際需用電流之間留有一定裕量,因?yàn)榉逯惦娏鲿?,裕量至少?0%。

          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)的過程中,是最耗費(fèi)時間的運(yùn)算,而且,由于沒有考慮圖像本身的頻譜特性,jpeg量化表對于所有圖像壓縮并不一定最優(yōu)。采用快速dct算法可提高軟件的速度,增強(qiáng)軟件的實(shí)時性。同時,根據(jù)圖像本身的頻譜特性,自適應(yīng)改進(jìn)jpeg推薦的量化表。

          快速det算法

          如果將一幅圖像分成許多8×8的小塊后直接進(jìn)行2d—dct變換,運(yùn)算量將會十分巨大。因此,需要將8×8二維dct變換轉(zhuǎn)換成兩次8點(diǎn)的一維dct復(fù)合運(yùn)算。具體做法是對每一個8×8塊先做列方向上的dct變換,得到一個中間矩陣,再對該矩陣各行進(jìn)行dct變換??梢钥吹?,8×8矩陣的2維dct可以轉(zhuǎn)換成16次一維8點(diǎn)dct。

          目前,很多針對一維dct運(yùn)算的dct快速算法已經(jīng)提出。其中,loeffler算法所需要的計(jì)算量最小。loeffler算法將8點(diǎn)一維dct運(yùn)算分為4級,由于各級之間的輸入/輸出存在依存關(guān)系,4級操作必須串行進(jìn)行,而各級內(nèi)部的運(yùn)算可并行處理。

          流程圖中有三種運(yùn)算因子:蝶形因子、旋轉(zhuǎn)因子和倍乘因子,分別如圖3中的a,b,c所示。蝶形因子的運(yùn)算關(guān)系為:

          d0=i0+i1

          o1=i0-i1

          需要2次加法完成,倍乘因子的輸入/輸出關(guān)系比較簡單:,只需1次乘法,旋轉(zhuǎn)因子的運(yùn)算關(guān)系為:

          需4次乘法、2次加法完成。如果對其輸入/輸出關(guān)系式做以下變換:

          只需要3次乘法、3次加法。其中,和差都是已知系數(shù),可通過查表獲得。

          由此計(jì)算可知,一個8點(diǎn)dct的loeffler算法共需要11次乘法和29次加法。從dsp匯編語言編程的角度來看,一個代數(shù)運(yùn)算應(yīng)包括取操作數(shù)、運(yùn)算、存操作數(shù)三個步驟。因此,該算法大約需要120條指令。c5409的運(yùn)算能力很強(qiáng),支持單周期加/減法和單周期乘法運(yùn)算,并且能夠在單周期內(nèi)完成兩個16位數(shù)的加/減法運(yùn)算,再加上dsp中有3組數(shù)據(jù)總線,因而可以利用長操作數(shù)(32位)進(jìn)行長字運(yùn)算。在長字指令中,給出的地址存取的總是高16位操作數(shù),因而只需5條長字指令即可計(jì)算2個蝶形運(yùn)算。加上采取其它優(yōu)化措施,大約需90條指令完成loeffler算法。

          雖然loeffler算法運(yùn)算量最小,但是運(yùn)用于本文系統(tǒng)并不是最優(yōu)。因?yàn)樵撍惴ㄊ菫楦呒壵Z言設(shè)計(jì),沒有利用匯編語言的特點(diǎn)和dsp硬件的特點(diǎn)。本文提出了基于dsp乘法累加單元的dct快速算法。

          dsp的乘法累加單元能在單周期內(nèi)完成一次乘法和一次累加運(yùn)算。如匯編指令運(yùn)用于dct運(yùn)算,將大大簡化程序的復(fù)雜度并減少計(jì)算時間。具體算法如下,利用蝶形運(yùn)算:

          從上面表達(dá)式可以看出,y(0)-y(7)都是乘法累加運(yùn)算,而s0-s7可由x(0)一x(7)經(jīng)過蝶形運(yùn)算得到,因此,dct算法由原來的4級運(yùn)算變成兩級,即第一級蝶形運(yùn)算和第二級乘法累加運(yùn)算,第一級蝶形運(yùn)算共要10+4=14(10次計(jì)算操作和4次輔助操作)條指令,第二級運(yùn)算中,每個輸出要4+1+1=6條指令(做4次乘法累加運(yùn)算、1次讀取操作和1次存儲操作),一共48條指令,這樣,計(jì)算一個8點(diǎn)dct要62條指令,大大縮減了運(yùn)算時間,提高了cpu的工作效率,增強(qiáng)系統(tǒng)的實(shí)時性。

          量化運(yùn)算優(yōu)化

          本文提出了基于實(shí)際情況的自適應(yīng)量化方法,即量化階段采用二次計(jì)算的方法,其算法主要分為兩步:(1)對變換后的圖像系數(shù)進(jìn)行自適應(yīng)處理;(2)構(gòu)造新的量化表。具體方法如下:

          首先求出亮度分量和兩個色度分量在頻域中所有8×8子塊的63個交流系數(shù)絕對值的平均值p(u,v),其中,u,v=0…7為位置信息。接下來求出163個交流系數(shù)平均值中的最大值,z1(u,v)=max[p1(u,v)],最后將63個交流系數(shù)平均值進(jìn)行歸一化處理,同時加入頻率位置信息,分別得出亮度和色度量化表中63個交流分量的矯正系數(shù),計(jì)算過程為:

          由此可以得到量化表的矯正式qpl(u,v)=q1(u,v)/x1(u,v),對jpeg量化表進(jìn)行矯正。

          將上述矯正后的量化表作為最終的量化表,對圖像進(jìn)行標(biāo)準(zhǔn)jpeg壓縮,形成完全符合jpeg格式的壓縮文件。本算法的解碼過程與標(biāo)準(zhǔn).jpeg解碼過程完全相同,可以看出它也是標(biāo)準(zhǔn).ipeg編碼過程的逆過程。

          實(shí)驗(yàn)結(jié)果

          快速dct運(yùn)算

          將本文提出的算法、loeffler的dsp優(yōu)化算法和純loeffler算法分別進(jìn)行測試。結(jié)果見表1,可以看到本文算法較loeffler的dsp優(yōu)化算法大約節(jié)省了1/4的時間,較純loeffler算法大約節(jié)省了一半時間,其效果是十分明顯的。

          自適應(yīng)量化

          對自適應(yīng)量化器進(jìn)行仿真。本文采用中等復(fù)雜度的標(biāo)準(zhǔn)圖像作為測試圖,與基本jpeg系統(tǒng)進(jìn)行性能比較(基于峰值信噪比(psnr))。只將jpeg標(biāo)準(zhǔn)方法中的量化表更改為修正的量化表,就可以在同等壓縮比下,提高恢復(fù)圖像的質(zhì)量。表2為不同壓縮比下,采用jpeg量化表和自適應(yīng)量化表兩種方法的峰值信噪比。從壓縮比和峰值信噪比的對比結(jié)果可看出,自適應(yīng)量化jpeg方法的壓縮比略高于標(biāo)準(zhǔn)jpeg方法。

          結(jié)語

          本文以ti的tms320c5409作為開發(fā)平臺,實(shí)現(xiàn)了一種新的jpeg圖像壓縮系統(tǒng)。該系統(tǒng)的優(yōu)點(diǎn)是提高了jpeg的運(yùn)行速度,增強(qiáng)了圖像的壓縮率和質(zhì)量,并且易于硬件實(shí)現(xiàn)。這一方案可應(yīng)用于需要對視頻圖像進(jìn)行實(shí)時采集、壓縮及存儲的絕大部分場合。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();