3.1 DSP硬件開發平臺
本文使用評估板是北京聞亭公司的TDS642,板上的DSP芯片是TMX DM642,BGA548封裝,內部工作時鐘為600M,外部總線時鐘為100M,計算能力高達4.8億指令每秒。
該平臺提供了豐富的外圍接口。板上有兩個復合視頻(PAL/NTSC/SECAMS)輸入和1個復合視頻輸出端口;立體聲輸入/出或單一麥克風輸入端口;提供兩個UART、以太網接口、子板接口、PC104接口和JTAG接口[6][7]。板上還提供了4M Bytes的Flash存儲器,位于DM642的CE1地址空間,寬度為8bits,FPGA擴展了3根地址線,把Flash分成8頁,Flash 的第0頁的前半頁存放用戶的自啟動程序,后半頁存放FPGA程序,第1頁尾用戶存放數據空間,第2頁至第8頁用于存放用戶程序。
3.2 核心算法的DSP實現
(1)算法總體框架。本文算法基于DM642EVM實現時主要分為兩個大的模塊(如圖4),第一部分為DWT變換模塊,它將輸入圖像數據變換為一系列的小波系數;第二部分為EBCOT算法模塊,將量化后的的小波系數編碼生成壓縮碼流。硬件開發平臺結構框圖如圖5所示。
圖4 算法框架圖
圖5 算法硬件開發平臺結構框圖
(2)內存分配。對于圖像數據的處理,往往涉及到大量的復雜的數據尋址計算,對于復雜的尋址計算,其耗費CPU的計算量可能比實際數據操作的計算量還大。所以要加快CPU對數據的訪問速度,不但要求存儲器本身的速度快,而且還需要一個合理的數據結構來簡化CPU對地址的計算。另外,DM642對數據的訪問技術,如Cache、EDMA和寬bit數據直接讀寫等,都是基于存儲地址的連續性。基于以上考慮,本文在內存分配及定位時,依據以下大的原則:第一,在滿足精度要求的情況下,使用較短的數據類型;第二、大的數據塊,如原始圖像、重構圖像存儲在片外SDRAM;第三、關鍵數據、小的數據塊,比如運算時的系數、系統堆棧、三個通道掃描都需要頻繁的訪問數據區和上下文標志區等,存放到片內存儲器;第四、對L2級配置足夠的Cache以便CPU對數據的快速讀寫;第五、對于具有運算相關性的數據,應在內存中按序連續排放。當涉及到片內外數據塊的搬移操作時,可由DM642的EDMA單元去完成,它可與CPU并行工作,不占用CPU的計算周期[8]。
(3)圖像數據的讀寫。由于本文工作主要完成針對圖像的壓縮功能,不涉及圖像采集,所以在圖像數據的輸入輸出上做了適當的處理。考慮到CCS的Simulator完全支持C/C++語言,因此原始圖像數據的輸入采用C語言中的頭文件形式,小波變換模塊,EBCOT算法模塊采用存放在PC機的數據文件形式。本文主要采用頭文件和二進制數據文件的形式,將圖像的非文件頭部分的所有數據通過“fprintf(fp,“%3d,”,image_in [i][j])”語句寫到.h文件中。
(4)DWT的實現。由于DM642為定點處理器,不適合于浮點運算,所以本文選擇LeGall(5,3)整數濾波器完成JPEG2000中的小波變換。在進行小波變換時,首先定義兩個與圖像塊大小相等的存儲緩沖器,一個是圖像片數據的輸入緩存Buf,一個是用來臨時存放圖像片數據經小波變換后的結果緩存TempBuf。每經過一級小波變換,圖像片數據都要先后兩次經過integer(5,3)的低通和高通濾波。TempBuf中保存的高通濾波數據經integer(5,3)濾波器處理后,得到HL子帶和HH子帶的小波變換系數。最后將變換結果存放到輸入緩存Buf中。若要進行下一級分解,只需對Buf中LL子帶進行同樣處理。
(5)EBCOT算法的實現。EBCOT算法是JPEG2000編碼系統中耗時最大的一個部分,因此對這一部分進行優化實現對整個系統的性能提高很有意義。在PC機上,EBCOT編碼中的每個通道都是被獨立處理的。因此,在DM642上實現的時候,本文采用并行性技術來優化代碼,加快程序的執行速度,比如在取位平面數據的時候可以和構造上下文模型并行處理,但是并不是簡單的并行處理,當要形成通道二的上下文模型時,其鄰域的數據在處理通道一的時候己經被改變。這樣做可以增加DM642功能單元的利用率,充分發揮出它的并行計算能力。
3.3 實驗結果
本文實驗基于Windows XP操作系統、CPU Intel Pentium(R)4 2.4GHz、512M內存、CCS編譯環境,程序通過USB仿真器下載到DM642EVM開發板上進行,采用LeGall(5,3)小波,處理圖像為512×512的lena和barbara圖像。經測試,壓縮比為16:1時編碼器編碼相應耗時如表1所示。
實驗給出了lena圖像在8:1、16:1、32:1三種壓縮比下的重構圖像,并分別給出了與原始圖像的峰值信噪比,如圖6所示。
圖6 barbara圖像編碼圖
表1數據表明,編碼器基于DSP的編碼耗時相比基于PC的耗時有所增加,是因為代碼在DM642EVM硬件平臺上運行時需要持續的通過USB仿真器和PC機交換數據,從而增加了時間的開銷。從圖6中的PSNR值可知,lena圖像在較高壓縮比下的重構圖像仍具有較高的圖像質量。就主觀評價來講,壓縮比為8:1和16:1的重構圖像與原始圖像差別細微,視覺效果好;壓縮比為32:1的重構圖像略有失真。實驗結果表明,移植到DSP上的JPEG2000編碼算法代碼仍具有良好的壓縮性能。
4 結束語
為了實現對圖像的高效壓縮,在這里使用了DWT變換和EBCOT算法,并給出兩點改進方法。通過將改進的算法移植到DSP開發板上,可以看出圖像在高壓縮比的重構圖像仍具有較高的圖像質量,結果表明移植到DSP上的JPEG2000編碼算法代碼仍具有良好的壓縮性能,在圖像壓縮處理中有較好的嘗試應用。
<!-- 2009/6/21 11:22:49-->