通常,為執行提升方案,圖像的行先在水平方向濾波,然后經水平濾波的圖像再進行垂直濾波。提出的新方法采用一個改進的按塊執行的提升方案,塊大小與L1緩存中的塊大小相同。圖1描述了該方法。在小波提升變換開始前,在輸入圖像內存中塊1的數據已通過DMA傳輸到L2,然后L2中塊1的第一行被取到L1緩存中在水平方向提升。以相同方式對塊1下面的行進行處理。注意在塊1的最后一行濾波后,L1緩存中包含輸入圖像內存中塊1的數據;其次,塊1的垂直方向的濾波在L1緩存中完成。這樣,垂直提升就不需要取數據,因為L1緩存包含塊1的數據。因此,塊1在水平和垂直方向的濾波只在CPU需要下一水平行時才可能有緩存失敗。這就是筆者提出的方法有顯著性能的原因所在。
塊1完全濾波后,塊2被取到L1緩存的1路中;然后,塊2的濾波完成后,塊3被從L2取到L1的0路中。同時,0路中濾波過的塊1 一行一行移到L2。圖2描述了濾波過的塊1的移動,每個子帶分別稱為LL、 LH、HL和HH,已經由小波提升算法形成。每個子帶中的數據從L2通過DMA傳送到輸出圖像內存中的恰當位置。
L2與外部存儲器之間的數據傳遞是獨立于L1與L2間的數據傳遞進行的。這意味著通過DMA的塊復制不影響CPU的運轉。因此,通過小波提升序列的重新排序和控制DMA,在沒有額外CPU負載的情況下增大了緩存成功率。
該方法完全去除了緩存失敗的問題, 但還存在一個問題,因為小波濾波在邊界需要一些鄰近塊的系數才能獲得正確的濾波結果。而這一方法中,垂直提升處理與這一問題不相關,因為垂直的兩個鄰近塊總是同時裝載于L1緩存中。但對于水平提升處理,筆者用下面的方法來解決:區1和區3都取到濾波器區域1,如圖3所示。對于濾波器區2,區2和區3都是必需的。然而,當達到改進性能時,重疊處理的開銷是可忽略的。
圖2 提升算法的輸出圖像內存處理圖
圖3 重疊塊結構 <!-- 2007-12-5 23:50:16-->
2 仿真結果
為檢驗所提出方法的效率,在TMS320C6416
表1顯示了用本文方法產生的緩存失敗數目。其中,在水平濾波上產生的緩存失敗是由塊重疊引起的。然而,在垂直濾波中,算法完全去除了緩存失敗,因此,算法減少了98%的緩存失敗率。
表1 緩存失敗數目比較
表2顯示了用現有兩種方法與提出方法的DWT處理時間比較,對于所有的圖像大小,在水平濾波上都沒有改進,但是所有三種方法在垂直濾波中是有效的。在垂直濾波中,行擴展、聚合及兩種方法的聯合處理時間減少分別為78%、 88%和90%;條采集、遞歸數據設計與兩種方法結合的處理時間減少分別為73%、66%和82%。筆者提出的方法在垂直濾波中減少處理時間為98%。注意,水平濾波的速度與垂直濾波基本相同。這意味著筆者提出的算法在垂直濾波中消除了最多的緩存失敗。
表2 小波提升方案處理時間的比較
筆者已經驗證了JPEG 2000的小波提升算法的性能及其在存儲系統中的執行。實驗結果表明提出的方法與現有的快速方法相比要快2~3.5倍。
參考文獻
1 Rabbani, M., Joshi, R. An overview of the JPEG 2000 s
Signal Process. Image Com-mun, 2002;17(1):3~48
2 Taubman,D.S.,Marcellin,M.W. JPEG2000: Image com-pression fundamentals, Standards and
practice. Kluwer Aca-demic Publishers,2002
3 Daubechies, I., Sweldens, W. Factoring wavelet trans-forms into lifting schemes, J.Fourier
Anal.Appl,1998;4:247~269
4 Meerwald,P. Norcen,R.,Uhl,A.Cache issues woth JPEG2000 wavelet lifting, Proc. SPIE,
Electron. Imaging, Vis.Commun. Image Process, 2002;4671:626~634
5 Chatterjee,S., Brooks,C.D.Cache-efficient wavelet lifting in JPEG2000. IEEE Int.Conf. on
Multimedia and Expo, 2002;(1)797~800