鐘云德,史承興,閔 彪
(西安電子科技大學模式識別與智能控制研究所,陜西西安 710071)
由 JPEG工作組制定的新一代靜止圖像壓縮標準JPEG2000,引入了小波變換和 EBCOT編碼的全新設計結構,使得 JPEG2000擁有壓縮比高、支持有損和無損壓縮、碼流隨機存取及處理、逐漸傳輸顯示解碼等優點[1]。由于受實現復雜度高、成本控制困難等因數制約,未能得到廣泛應用。據統計,JPEG2000實現復雜度約是目前主流 JPEG實現的 30倍[2]。因此,一種廉價、有效、實時的解決方案,對于 JPEG2000的推廣應用較為有利。本文針對 JPEG2000解碼系統中核心處理模塊——離散小波逆變換(IDWT),采用提升小波算法,提出了一種雙路并行的實現結構,并基于Xilinx公司低功耗的 xc2v3000-4-fg676芯片進行布局布線仿真驗證表明,該方案是一種高速、實時的硬件解決方案,能較好地解決 JPEG2000解碼系統中對于小波逆變換實時處理的瓶頸。
小波理論是在調和分析的數學理論上發展起來的一個新的應用數學分支,它和傅里葉變換(Fourier)分析具有密切聯系,但卻克服了 Fourier在時域里局部分析能力的缺陷,能夠同時提供較精確的時域定位和較精確的頻域定位,是一種可變分辨率分析。小波分析在時域和頻域同時具有良好的局部化性質,是處理非平穩信號的有力工具。它的多分辨率分析是JPEG2000標準中進行漸進式壓縮的基礎。
離散小波變換(Discrete Wavelet Transform,DWT)由連續小波 ψu,s(t)對尺度參數 s和位置參數 u離散化得到,即取:從而得到離散小波

在實際應用中,為了方便計算機處理,在式(1)的基礎上,取 a0=2,b0=1,從而得到二進小波

在實際應用中,采用傳統卷積方式實現的第一代小波存在一些明顯缺點:
(1)信號經過小波變換后產生的浮點數不能由有限字長的計算機精確地重構。
(2)圖像的尺寸大小有限制,并不能對所有尺寸的圖像進行變換處理。
(3)對內存需求量大,不適宜 DSP、FPGA等硬件實現。
為了克服這些問題并將小波普適化,目前工程應用中主要借用提升算法(Lifting Scheme)[3]直接在空間域上計算小波系數的方式來構造。提升方法既保持了原有的小波特性,又克服平移伸縮不變性所帶來的局限,而且還能擺脫傳統的濾波器和傅里葉的頻域概念,保證在高倍數據壓縮情況時的圖像質量。
JPEG2000標準給出兩種雙正交小波濾波器,即有損壓縮和無損壓縮,前者采用 CDF9/7小波,后者采用 5/3小波。CDF9/7小波是圖像壓縮的首選濾波器,自然圖像壓縮性能好于 5/3小波。因此本論文選擇 CDF9/7小波進行提升格式小波變換硬件設計,其提升結構和實現步驟分別如圖 1所示。

圖1 CDF9/7小波提升方案的正、逆變換示意圖
對于 CDF9/7小波[4],取 (α,β,γ,δ,ζ)=(1.586 134 342,0.052 980 118,0.882 811 076,0.443 506 852,1.149 604 398)。
離散小波逆變換模塊處于 JPEG2000解碼系統最后一級,它負責將前端 EBCOT解碼得到的數據進行小波逆變換處理以獲得重構圖像信息。由于逆變換模塊的數據并不如正變換模塊一樣直接來自外部數據總線,而是來自前端的 EBCOT解碼數據,因此既不能用協議的方式規定輸入數據的順序,也不能保證EBCOT解碼數據等時間間隔均勻輸出,所以在前端EBCOT模塊和離散小波反變換模塊之間需要使用存儲器進行緩存。
由于連續小波基能夠消除圖像的方塊效應[5],因此為了降低高倍壓縮時各編碼塊之間的邊際效應,在滿足工程實現要求的同時提高壓縮質量,一般需要選擇盡可能大的圖像塊進行處理。顯然,這受限于原始圖像本身的大小和存儲器的大小。為避免小波變換的圖像尺寸受存儲器的大小限制,同時避免使用昂貴的大內存 FPGA芯片,本設計中選擇使用片外存儲器緩存接收到的數據幀。
小波逆變換需要在接收到完整的一幀數據之后才能啟動,而且對于 N個像素點的圖像,完成JPEG2000解碼系統中的 3層小波逆變換處理,需要M=N/16+N/16+N/4+N/4+N+N=2.625 N個時鐘周期。為了降低系統功耗,本設計并不采用倍頻實現,而提出了一種雙路并行的實現結構,其整體方案粗略結構如圖 2所示。

圖2 小波逆變換整體方案粗略程序結構圖
圖2中箭頭指示數據流向,箭頭中的數字表示數據寬度,2對片外存儲器采用乒乓方式輪詢切換。本方案首先使用兩路并行的核心計算單元(ILWC1和ILWC2)完成前 3列 2行逆變換處理(第 3層小波逆變換、第 2層小波逆變換和第 1層小波列逆變換),這期間的數據交替的在 IRAM1和IRAM3或者IRAM 2和IRAM4之間存取;然后再使用第 3個獨立的核心計算單元(ILWC3)完成剩余的最后一次小波逆變換處理(第一層小波行逆變換),處理完畢的數據。由于單個小波系數位寬為 18 bit(4 bit小數位確保精度要求),因此片外存儲器每個 36 bit的存儲單元中可以同時存放兩個小波系數。在前 3列 2行逆變換處理過程中,每次讀取的 2個小波系數可以分別提供給ILWC1和 ILWC2并行處理,在第一層小波行逆變換時則由一個二通道選擇器(MUX 2)對數據的高、低18 bit位進行選擇分時提供給 ILWC3。數據組織模塊(Iogz)的功能就是將 ILWC1和 ILWC2這兩個處理模塊完成的行、列變換數據進行合并重組,以便對片外RAM進行讀寫的 36 bit外部總線數據總是由兩個18 bit小波系數分別以總線數據的高 18 bit和低18 bit的形式組合而成。
基于以上實現方案,對于 N個像素點的圖像,首先由 ILWC1和 ILWC2完成 3列 2行逆變換需要M1=N/32+N/32+N/8+N/8+N/2=0.812 5 N個時鐘周期,然后由 ILWC3獨立最后一層行變換需要M2=N個時鐘周期。因此,兩個處理過程所需的總時間M=M1+M2=1.812 5 N不超出允許的存儲器占用上限(2N),能夠保證對連續輸入的小波系數進行實時的處理。4個存儲器輪詢狀態和 FPGA的功能狀態參見圖 3。

圖3 4個片外存儲器輪詢狀態及FPGA功能表
由圖 4所示,核心計算單元對高低頻系數的伸縮擴展共用一個乘法器,因此平均每個小波系數所需進行的乘法和加法次數分別為 5次和 8次,相對于卷積運算[6]的 9次和 14次,計算復雜度顯然是降低了很多。

圖4 逆變換核心計算模塊內部流水線結構
本設計基于Xilinx公司 ISE 9.1開發平臺之上,使用 VHDL語言(93版本)編程實現。系統采用Synplify 8.1進行綜合,使用 Modelsim SE 6.0d進行仿真驗證。在沒有添加任何約束的情況下,其性能參數如表 1所示。

表1 默認設置下的系統性能狀態
選用 Virtex-Ⅱ系列的芯片原因在于:(1)軟件開發工具友好,開發容易,性價比高;(2)低功耗、低工作電壓,滿足實時設備的要求;(3)仿真可靠,幾乎完全接近實際情況;(4)可重復擦寫型 FPGA,設計靈活,適用于方案改進。
本系統采用 8位 64×4 096的原始圖像經過 3層定點化小波處理所得的 14位小波系數為測試數據,實驗處理結果與 VC軟件定點化逆小波處理結果一致,表明本系統能正確的滿足應用要求,圖 5為本系統工作整體仿真圖。系統在同步信號 Syn低電平有效期間,根據切換信號 Exg的高、低電平選擇片外存儲器進行乒乓操作。首先數據由 Data輸入到片外存儲器,作為逆變換的測試數據,處理完成之后由 Result端輸出,并以一個高電平脈沖信號 Endn標記處理完畢。

圖5 逆變換系統整體仿真圖
本文討論下 JPEG2000解碼系統中的 CDF9/7小波逆變換模塊的設計要求,借助提升算法原位操作的特點,所提出的雙路并行的實時處理方案無需任何內部存儲空間,而外部存儲空間的大小完全取決于處理圖像塊尺寸的大小。在視頻及衛星遙感圖像這類實時性要求非常強的圖像處理中,本系統能很好地滿足應用需求。
[1]胡棟.靜止圖像編碼的基本方法與國際標準[M].北京:北京郵電大學出版社,2003.
[2]Li Yijun.Parallel High-speed Architecture for EBCOT in JPEG2000[C].Acoustics,Speech and Signal Processing IEEE International Conference,2003:481-484.
[3]Wim Sweldens.The Lifting Scheme:A Construction of Second Generation Wavelets[J].SIAM J Math Anal, 1997,29(2):511-546.
[4]Adams M D,Kossentine F.Reversible Integer-to-integer Wavelet Transforms for Image Compression:Performance Evaluation and Analysis[J].IEEE Trans Image Processing,2000,9(6):1010-1024.
[5]Vetterli M.Wavelets and Filter Banks:Theory and Design[J].IEEE Trans.Acoust.Speech Signal Proc,1992,40(9):2207-2232.
[6]曹林,朱紅.基于衛星圖像的 CDF9/7提升小波變換硬件實現[J].遙測遙控,2005(1):43-47.