基于FPGA的多級(jí)小波逆變換實(shí)時(shí)系統(tǒng)設(shè)計(jì)
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所示。本文引用地址:http://www.ex-cimer.com/article/191347.htm
圖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行逆變換處理過程中,每次讀取的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è)處理過程所需的總時(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。
評(píng)論