新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320C5409的圖像壓縮系統

        基于TMS320C5409的圖像壓縮系統

        ——
        作者:華東師范大學信息學院電子系 程林 徐曄 鄭正奇 時間:2007-01-26 來源:《電子設計應用》 收藏


        引言

        隨著多媒體和網絡技術的發展,數字圖像大信息量的特點對圖像壓縮技術的要求越來越高,因此,專用高速數字信息處理技術成為發展的方向。其中,在硬件技術中,ti推出的c5000系列dsp將數字信號處理器的處理能力提升到了一個新的高度,使信號處理系統的研究重點又回到軟件算法上。在壓縮算法研究方面,dct、小波等多個算法因為其高可靠性和高效性也越來越受到青睞。

        系統硬件設計

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

        tms320c5409時鐘頻率為100mhz,性價比極高。采用圍繞1組程序總線、3組數據總線和4組地址總線建立的改進型哈佛結構,取址和讀數可同時進行。有獨立的硬件乘法器,有利于實現優化卷積、數字濾波、fft、矩陣運算等算法中的大量重復乘法運算。具有循環尋址、位倒序等特殊指令,這些指令使fft、卷積等運算中的尋址、排序及計算速度大大提高。有一組或多組獨立的dma總線,與cpu的程序、數據總線并行工作。

        在本系統中,tms320c5409作為主處理器,任務是實現jpeg壓縮編碼。

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

        硬件設計框圖

        圖1是基于tms320c5409的圖像處理系統結構圖。c5409為中央處理器,sram為dsp片外擴展數據存儲器,eeprom為脫機工作時的程序存儲器,用于存儲系統的引導程序和其它應用程序,a/d轉換部分負責把轉換為數字信號的圖像存入幀存儲器中。地址譯碼、圖像采集系統控制電路產生本系統各部分的地址譯碼信號,使之映射到不同的地址區域,并控制adc進行圖像采集,這部分由cpld控制;圖像采集芯片的寄存器控制由51單片機完成。

        本文引用地址:http://www.104case.com/article/21330.htm

        存儲空間的擴展方案

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

        dsp芯片電源電路設計

        電源設計中需要考慮的主要問題是功率和散熱。功率要求:電流的消耗主要取決于器件的激活度,即cpu的激活度,外設功耗主要取決于正在工作的外設及其速度,與cpu相比,外設功耗是比較小的。以tms320c5409為例,進行fft運算時,需要的電源電流最大。因此在設計電源時,必須考慮在電源電流和實際需用電流之間留有一定裕量,因為峰值電流會更大,裕量至少是20%。

        c5409采用了雙電源供電機制,工作電壓為3.3v和1.8v。其中,1.8v主要為dsp的內部邏輯提供電壓,包括cpu和其它所有外設邏輯。外部接口引腳采用3.3v電壓。本系統的電源采用了ti公司的兩路輸出電源芯片tps73hd318,它是一種雙輸出穩壓器。輸出電壓一路為3.3v、一路為1.8v,每路電源的最大輸出電流為750ma。

        jpeg圖像壓縮算法

        jpeg算法的優化

        盡管jpeg基本系統能夠對圖像進行低壓縮比壓縮,但是dct和idct在軟件實現的過程中,是最耗費時間的運算,而且,由于沒有考慮圖像本身的頻譜特性,jpeg量化表對于所有圖像壓縮并不一定最優。采用快速dct算法可提高軟件的速度,增強軟件的實時性。同時,根據圖像本身的頻譜特性,自適應改進jpeg推薦的量化表。

        快速det算法

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

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

        流程圖中有三種運算因子:蝶形因子、旋轉因子和倍乘因子,分別如圖3中的a,b,c所示。蝶形因子的運算關系為:

        d0=i0+i1

        o1=i0-i1

        需要2次加法完成,倍乘因子的輸入/輸出關系比較簡單:,只需1次乘法,旋轉因子的運算關系為:

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

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

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

        雖然loeffler算法運算量最小,但是運用于本文系統并不是最優。因為該算法是為高級語言設計,沒有利用匯編語言的特點和dsp硬件的特點。本文提出了基于dsp乘法累加單元的dct快速算法。

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

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

        量化運算優化

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

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

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

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

        實驗結果

        快速dct運算

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

        自適應量化

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

        結語

        本文以ti的tms320c5409作為開發平臺,實現了一種新的jpeg圖像壓縮系統。該系統的優點是提高了jpeg的運行速度,增強了圖像的壓縮率和質量,并且易于硬件實現。這一方案可應用于需要對視頻圖像進行實時采集、壓縮及存儲的絕大部分場合。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉树县| 齐齐哈尔市| 分宜县| 阜宁县| 通榆县| 勐海县| 常州市| 布拖县| 铜山县| 南漳县| 阿坝县| 拜城县| 徐闻县| 民和| 农安县| 山阴县| 长春市| 文安县| 宣化县| 永平县| 通江县| 英山县| 泰顺县| 西乌| 彭州市| 濉溪县| 正安县| 铁岭市| 福贡县| 襄汾县| 深圳市| 高平市| 渑池县| 怀仁县| 上虞市| 舞钢市| 赤水市| 黄龙县| 镇沅| 金秀| 库伦旗|