由JPEG工作組制定的新一代靜止圖像壓縮標(biāo)準(zhǔn)JPEG2000" title="JPEG2000">JPEG2000,引入了小波變換和EBCOT編碼的全新設(shè)計(jì)結(jié)構(gòu),使得JPEG2000擁有壓縮比高、支持有損和無(wú)損壓縮、碼流隨機(jī)存取及處理、逐漸傳輸顯示解碼等優(yōu)點(diǎn)。由于受實(shí)現(xiàn)復(fù)雜度高、成本控制困難等因數(shù)制約,未能得到廣泛應(yīng)用。據(jù)統(tǒng)計(jì),JPEG2000實(shí)現(xiàn)復(fù)雜度約是目前主流JPEG實(shí)現(xiàn)的30倍。因此,一種廉價(jià)、有效、實(shí)時(shí)的解決方案,對(duì)于JPEG2000的推廣應(yīng)用較為有利。本文針對(duì)JPEG2000解碼系統(tǒng)中核心處理模塊——離散小波逆變換" title="小波逆變換">小波逆變換(IDWT),采用提升小波算法,提出了一種雙路并行的實(shí)現(xiàn)結(jié)構(gòu),并基于Xilinx公司低功耗的xc2v3000" title="xc2v3000">xc2v3000-4-fg676芯片進(jìn)行布局布線仿真驗(yàn)證表明,該方案是一種高速、實(shí)時(shí)的硬件解決方案,能較好地解決JPEG200 0解碼系統(tǒng)中對(duì)于小波逆變換實(shí)時(shí)處理的瓶頸。
1 離散小波變換
1.1 離散小波變換
小波理論是在調(diào)和分析的數(shù)學(xué)理論上發(fā)展起來(lái)的一個(gè)新的應(yīng)用數(shù)學(xué)分支,它和傅里葉變換(Fourier)分析具有密切聯(lián)系,但卻克服了Fo-urier在時(shí)域里局部分析能力的缺陷,能夠同時(shí)提供較精確的時(shí)域定位和較精確的頻域定位,是一種可變分辨率分析。小波分析在時(shí)域和頻域同時(shí)具有良好的局部化性質(zhì),是處理非平穩(wěn)信號(hào)的有力工具。它的多分辨率分析是JPEG2000標(biāo)準(zhǔn)中進(jìn)行漸進(jìn)式壓縮的基礎(chǔ)。
離散小波變換(Discrete Wavelet Transform,DWT)由連續(xù)小波ψu,s(t)對(duì)尺度參數(shù)s和位置參數(shù)u離散化得到,即取,m,n∈Z,從而得到離散小波
在實(shí)際應(yīng)用中,為了方便計(jì)算機(jī)處理,在式(1)的基礎(chǔ)上,取a0=2,b0=1,從而得到二進(jìn)小波
在實(shí)際應(yīng)用中,采用傳統(tǒng)卷積方式實(shí)現(xiàn)的第一代小波存在一些明顯缺點(diǎn):
(1)信號(hào)經(jīng)過(guò)小波變換后產(chǎn)生的浮點(diǎn)數(shù)不能由有限字長(zhǎng)的計(jì)算機(jī)精確地重構(gòu)。
(2)圖像的尺寸大小有限制,并不能對(duì)所有尺寸的圖像進(jìn)行變換處理。
(3)對(duì)內(nèi)存需求量大,不適宜DSP、FPGA等硬件實(shí)現(xiàn)。
為了克服這些問(wèn)題并將小波普適化,目前工程應(yīng)用中主要借用提升算法(Lifting Scheme)直接在空間域上計(jì)算小波系數(shù)的方式來(lái)構(gòu)造。提升方法既保持了原有的小波特性,又克服平移伸縮不變性所帶來(lái)的局限,而且還能擺脫傳統(tǒng)的濾波器和傅里葉的頻域概念,保證在高倍數(shù)據(jù)壓縮情況時(shí)的圖像質(zhì)量。
1.2 CDF9/7小波提升算法
JPEG2000標(biāo)準(zhǔn)給出兩種雙正交小波濾波器,即有損壓縮和無(wú)損壓縮,前者采用CDF9/7小波,后者采用5/3小波。CDF9/7小波是圖像壓縮的首選濾波器,自然圖像壓縮性能好于5/3小波。因此本論文選擇CDF9/7小波進(jìn)行提升格式小波變換硬件設(shè)計(jì),其提升結(jié)構(gòu)和實(shí)現(xiàn)步驟分別如圖1所示。
對(duì)于CDF9/7小波,取(α,β,γ,δ,ζ)=(1.586 134 342,0.052 980 118,0.882 811 076,0.443 506 852,1.149 604 398)。
2 CDF9/7小波逆變換的VLSI實(shí)現(xiàn)
2.1 整體方案分析
離散小波逆變換模塊處于JPEG2000解碼系統(tǒng)最后一級(jí),它負(fù)責(zé)將前端EBCOT解碼得到的數(shù)據(jù)進(jìn)行小波逆變換處理以獲得重構(gòu)圖像信息。由于逆變換模塊的數(shù)據(jù)并不如正變換模塊一樣直接來(lái)自外部數(shù)據(jù)總線,而是來(lái)自前端的EBCOT解碼數(shù)據(jù),因此既不能用協(xié)議的方式規(guī)定輸入數(shù)據(jù)的順序,也不能保證EBCOT解碼數(shù)據(jù)等時(shí)間間隔均勻輸出,所以在前端EBCOT模塊和離散小波反變換模塊之間需要使用存儲(chǔ)器進(jìn)行緩存。
由于連續(xù)小波基能夠消除圖像的方塊效應(yīng),因此為了降低高倍壓縮時(shí)各編碼塊之間的邊際效應(yīng),在滿足工程實(shí)現(xiàn)要求的同時(shí)提高壓縮質(zhì)量,一般需要選擇盡可能大的圖像塊進(jìn)行處理。顯然,這受限于原始圖像本身的大小和存儲(chǔ)器的大小。為避免小波變換的圖像尺寸受存儲(chǔ)器的大小限制,同時(shí)避免使用昂貴的大內(nèi)存FPGA芯片,本設(shè)計(jì)中選擇使用片外存儲(chǔ)器緩存接收到的數(shù)據(jù)幀。
2.2 整體方案設(shè)計(jì)
小波逆變換需要在接收到完整的一幀數(shù)據(jù)之后才能啟動(dòng),而且對(duì)于N個(gè)像素點(diǎn)的圖像,完成JPEG2000解碼系統(tǒng)中的3層小波逆變換處理,需要M=N/16+N/16+N/4+N/4+N+N=2.625N個(gè)時(shí)鐘周期。為了降低系統(tǒng)功耗,本設(shè)計(jì)并不采用倍頻實(shí)現(xiàn),而提出了一種雙路并行的實(shí)現(xiàn)結(jié)構(gòu),其整體方案粗略結(jié)構(gòu)如圖2所示。
圖2中箭頭指示數(shù)據(jù)流向,箭頭中的數(shù)字表示數(shù)據(jù)寬度,2對(duì)片外存儲(chǔ)器采用乒乓方式輪詢切換。本方案首先使用兩路并行的核心計(jì)算單元(ILWC1和ILWC2)完成前3列2行逆變換處理(第3層小波逆變換、第2層小波逆變換和第1層小波列逆變換),這期間的數(shù)據(jù)交替的在IRAM1和IR-AM3或者IRAM2和IRAM4之間存??;然后再使用第3個(gè)獨(dú)立的核心計(jì)算單元(ILWC3)完成剩余的最后一次小波逆變換處理(第一層小波行逆變換),處理完畢的數(shù)據(jù)。由于單個(gè)小波系數(shù)位寬為18 bit(4 bit小數(shù)位確保精度要求),因此片外存儲(chǔ)器每個(gè)36 bit的存儲(chǔ)單元中可以同時(shí)存放兩個(gè)小波系數(shù)。在前3列2行逆變換處理過(guò)程中,每次讀取的2個(gè)小波系數(shù)可以分別提供給ILWC1和ILWC2并行處理,在第一層小波行逆變換時(shí)則由一個(gè)二通道選擇器(MUX2)對(duì)數(shù)據(jù)的高、低18 bit位進(jìn)行選擇分時(shí)提供給ILWC3。數(shù)據(jù)組織模塊(Iogz)的功能就是將ILWC1和ILWC2這兩個(gè)處理模塊完成的行、列變換數(shù)據(jù)進(jìn)行合并重組,以便對(duì)片外RAM進(jìn)行讀寫的36 bit外部總線數(shù)據(jù)總是由兩個(gè)18bit小波系數(shù)分別以總線數(shù)據(jù)的高18bit和低18 bit的形式組合而成。
基于以上實(shí)現(xiàn)方案,對(duì)于N個(gè)像素點(diǎn)的圖像,首先由ILWC1和ILWC2完成3列2行逆變換需要M1=N/32+N/32+N/8+N/8+N/2=0.812 5N個(gè)時(shí)鐘周期,然后由ILWC3獨(dú)立最后一層行變換需要M2=N個(gè)時(shí)鐘周期。因此,兩個(gè)處理過(guò)程所需的總時(shí)間M=M1+M2=1.812 5N不超出允許的存儲(chǔ)器占用上限(2N),能夠保證對(duì)連續(xù)輸入的小波系數(shù)進(jìn)行實(shí)時(shí)的處理。4個(gè)存儲(chǔ)器輪詢狀態(tài)和FPGA的功能狀態(tài)參見圖3。
2.3 核心計(jì)算單元ILWC設(shè)計(jì)
由圖4所示,核心計(jì)算單元對(duì)高低頻系數(shù)的伸縮擴(kuò)展共用一個(gè)乘法器,因此平均每個(gè)小波系數(shù)所需進(jìn)行的乘法和加法次數(shù)分別為5次和8次,相對(duì)于卷積運(yùn)算的9次和14次,計(jì)算復(fù)雜度顯然是降低了很多。
3 軟件及硬件資源的選用
3.1 工作環(huán)境
本設(shè)計(jì)基于Xilinx公司ISE 9.1開發(fā)平臺(tái)之上,使用VHDL語(yǔ)言(93版本)編程實(shí)現(xiàn)。系統(tǒng)采用Synplify8.1進(jìn)行綜合,使用Modelsim SE 6.0d進(jìn)行仿真驗(yàn)證。在沒(méi)有添加任何約束的情況下,其性能參數(shù)如表1所示。
選用Virtex-Ⅱ" title="Virtex-Ⅱ">Virtex-Ⅱ系列的芯片原因在于:(1)軟件開發(fā)工具友好,開發(fā)容易,性價(jià)比高;(2)低功耗、低工作電壓,滿足實(shí)時(shí)設(shè)備的要求;(3)仿真可靠,幾乎完全接近實(shí)際情況;(4)可重復(fù)擦寫型FPGA,設(shè)計(jì)靈活,適用于方案改進(jìn)。
3.2 實(shí)驗(yàn)結(jié)果
本系統(tǒng)采用8位64×4 096的原始圖像經(jīng)過(guò)3層定點(diǎn)化小波處理所得的14位小波系數(shù)為測(cè)試數(shù)據(jù),實(shí)驗(yàn)處理結(jié)果與VC軟件定點(diǎn)化逆小波處理結(jié)果一致,表明本系統(tǒng)能正確的滿足應(yīng)用要求,圖5為本系統(tǒng)工作整體仿真圖。系統(tǒng)在同步信號(hào)Syn低電平有效期間,根據(jù)切換信號(hào)Exg的高、低電平選擇片外存儲(chǔ)器進(jìn)行乒乓操作。首先數(shù)據(jù)由Data輸入到片外存儲(chǔ)器,作為逆變換的測(cè)試數(shù)據(jù),處理完成之后由Result端輸出,并以一個(gè)高電平脈沖信號(hào)Endn標(biāo)記處理完畢。
4 結(jié)束語(yǔ)
本文討論下JPEG2000解碼系統(tǒng)中的CDF9/7小波逆變換模塊的設(shè)計(jì)要求,借助提升算法原位操作的特點(diǎn),所提出的雙路并行的實(shí)時(shí)處理方案無(wú)需任何內(nèi)部存儲(chǔ)空間,而外部存儲(chǔ)空間的大小完全取決于處理圖像塊尺寸的大小。在視頻及衛(wèi)星遙感圖像這類實(shí)時(shí)性要求非常強(qiáng)的圖像處理中,本系統(tǒng)能很好地滿足應(yīng)用需求。