基于DSP的圖像壓縮系統設計
引言
本文引用地址:http://dyxdggzs.com/article/247104.htm隨著(zhù)多媒體和網(wǎng)絡(luò )技術(shù)的發(fā)展,數字圖像大信息量的特點(diǎn)對圖像壓縮技術(shù)的要求越來(lái)越高,因此,專(zhuān)用高速數字信息處理技術(shù)成為發(fā)展的方向。TI推出的C5000系列DSP將數字信號處理器使信號處理系統的研究重點(diǎn)又回到軟件算法上。在壓縮算法研究方面,DCT、小波等多個(gè)算法因為其高可靠性和高效性也越來(lái)越受到青睞。
系統硬件設計
TMS320C5409作為主處理器的可行性分析
TMS320C5409時(shí)鐘頻率為100MHz,性?xún)r(jià)比極高。采用圍繞1組程序總線(xiàn)、3組數據總線(xiàn)和4組地址總線(xiàn)建立的改進(jìn)型哈佛結構,取址和讀數可同時(shí)進(jìn)行。有獨立的硬件乘法器,有利于實(shí)現優(yōu)化卷積、數字濾波、FFT、矩陣運算等算法中的大量重復乘法運算。具有循環(huán)尋址、位倒序等特殊指令,這些指令使FFT、卷積等運算中的尋址、排序及計算速度大大提高。有一組或多組獨立的DMA總線(xiàn),與CPU的程序、數據總線(xiàn)并行工作。
在本系統中,TMS320C5409作為主處理器,任務(wù)是實(shí)現JPEG壓縮編碼。
通過(guò)分析不難得到,當處理一幀大小為640×480的圖像時(shí),作JPEG壓縮編碼所需要的時(shí)間為:T=62×10(ns)×640×480=0.19866s,當所處理的圖像分辨率更小時(shí),則壓縮每幀所花的時(shí)間更少,這對于應用在對實(shí)時(shí)性要求不是很高的場(chǎng)合是完全可行的。
圖1是基于TMS320C5409的圖像處理系統結構圖。C5409為中央處理器,SRAM為DSP片外擴展數據存儲器,EEPROM為脫機工作時(shí)的程序存儲器,用于存儲系統的引導程序和其它應用程序,A/D轉換部分負責把轉換為數字信號的圖像存入幀存儲器中。地址譯碼、圖像采集系統控制電路產(chǎn)生本系統各部分的地址譯碼信號,使之映射到不同的地址區域,并控制ADC進(jìn)行圖像采集,這部分由CPLD控制;圖像采集芯片的寄存器控制由51單片機完成。
存儲空間的擴展方案
經(jīng)過(guò)A/D轉換的原始圖像數據是非常大的,TMS320C5409的內部?jì)H有32KB的RAM和16KB的ROM,不能滿(mǎn)足需要,因此,必須擴展存儲器來(lái)存放原始圖像數據和應用程序。本文考慮外接64KB的RAM和512KB的Flash,RAM使用Cypress公司的CY7C1021V33,Flash采用SST公司的SST39VF512.由于C5409的數據空間僅為64KB,因此采用內存頁(yè)擴展技術(shù)。C5409的擴展輸出口1Q和2Q作為擴展內存的頁(yè)選擇信號。用C5409的A15引腳和XF引腳通過(guò)3/8譯碼器來(lái)控制擴展存儲器片選信號的產(chǎn)生,當A15=0時(shí),選擇片內RAM;當A15=1,XF=0時(shí)選擇片外SRAM;當A15=1,XF=1時(shí)選擇片外Flash;存儲器的擴展如圖2所示。將外部擴展RAM的64KB中的48KB用于存放原始圖像數據,16KB用于存放壓縮后的圖像和程序以及暫存的數據。

DSP芯片電源電路設計
電源設計中需要考慮的主要問(wèn)題是功率和散熱。功率要求:電流的消耗主要取決于器件的激活度,即CPU的激活度,外設功耗主要取決于正在工作的外設及其速度,與CPU相比,外設功耗是比較小的。以TMS320C5409為例,進(jìn)行FFT運算時(shí),需要的電源電流最大。因此在設計電源時(shí),必須考慮在電源電流和實(shí)際需用電流之間留有一定裕量,因為峰值電流會(huì )更大,裕量至少是20%.
C5409采用了雙電源供電機制,工作電壓為3.3V和1.8V.其中,1.8V主要為DSP的內部邏輯提供電壓,包括CPU和其它所有外設邏輯。外部接口引腳采用3.3V電壓。本系統的電源采用了TI公司的兩路輸出電源芯片TPS73HD318,它是一種雙輸出穩壓器。輸出電壓一路為3.3V、一路為1.8V,每路電源的最大輸出電流為750mA.
JPEG圖像壓縮算法
JPEG算法的優(yōu)化
盡管JPEG基本系統能夠對圖像進(jìn)行低壓縮比壓縮,但是DCT和IDCT在軟件實(shí)現的過(guò)程中,是最耗費時(shí)間的運算,而且,由于沒(méi)有考慮圖像本身的頻譜特性,JPEG量化表對于所有圖像壓縮并不一定最優(yōu)。采用快速DCT算法可提高軟件的速度,增強軟件的實(shí)時(shí)性。同時(shí),根據圖像本身的頻譜特性,自適應改進(jìn)JPEG推薦的量化表。
快速DET算法
如果將一幅圖像分成許多8×8的小塊后直接進(jìn)行2D-DCT變換,運算量將會(huì )十分巨大。因此,需要將8×8二維DCT變換轉換成兩次8點(diǎn)的一維DCT復合運算。具體做法是對每一個(gè)8×8塊先做列方向上的DCT變換,得到一個(gè)中間矩陣,再對該矩陣各行進(jìn)行DCT變換??梢钥吹?,8×8矩陣的2維DCT可以轉換成16次一維8點(diǎn)DCT.
目前,很多針對一維DCT運算的DCT快速算法已經(jīng)提出。其中,Loeffler算法所需要的計算量最小。Loeffler算法將8點(diǎn)一維DCT運算分為4級,由于各級之間的輸入/輸出存在依存關(guān)系,4級操作必須串行進(jìn)行,而各級內部的運算可并行處理。
流程圖中有三種運算因子:蝶形因子、旋轉因子和倍乘因子,分別如圖3中的a,b,c所示。蝶形因子的運算關(guān)系為:
D0=I0+I1
O1=I0-I1
需要2次加法完成,倍乘因子的輸入/輸出關(guān)系比較簡(jiǎn)單:,只需1次乘法,旋轉因子的運算關(guān)系為:

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

只需要3次乘法、3次加法。其中,
移動(dòng)電源相關(guān)文章:移動(dòng)電源是什么
51單片機相關(guān)文章:51單片機教程
存儲器相關(guān)文章:存儲器原理
評論