5/3提升小波在DM642上的實現(xiàn)與優(yōu)化
2.5 程序優(yōu)化
本文引用地址:http://www.biyoush.com/article/86067.htm由前面的分析可知,對圖像進行提升小波變換時,需要對其四個邊界進行延拓。延拓方式采用圖1所示的對稱延拓,其中左邊與上邊需要多延拓一個點。而對圖像中的一個塊進行提升變換時,其延拓的應該是與該塊相鄰的四個塊數(shù)據(jù)的邊界數(shù)據(jù),如圖4所示。
邊界延拓主要是用于計算高頻系數(shù)。分析發(fā)現(xiàn),水平提升時,當前數(shù)據(jù)塊每一行的最后一個高頻系數(shù)與下一個塊在該行的第一個高頻系數(shù)相同。所以只要把當前塊的這些系數(shù)保存起來,在對下一塊進行水平提升時第一個高頻系數(shù)就不需要再進行計算,因此也就不需要再對其左邊界進行延拓了。垂直方向的提升也是同樣的道理。在程序中添加兩個數(shù)組,分別用于存放當前塊的每一行與每一列的最后一個高頻系數(shù)。采用這種方法就可以降低程序的復雜度,提高執(zhí)行效率,減少缺失的發(fā)生。
像素擴展函數(shù)pix_pand[9]是采用TI的IMGLIB算法庫。水平提升與垂直提升函數(shù)均由作者用線性匯編語言編寫,充分利用64x系列DSP的半字處理指令,采用半字打包技術,最大限度地提高程序的執(zhí)行效率。
水平提升時,將每行的數(shù)據(jù)重新排序,變成如圖5所示的結構。
使用C64x的ADD2、SHR2和SUB2等半字處理指令,將如下的兩個運算并行執(zhí)行:
H(1)=B-[(A+C)>>1]
H(2)=D-[(C+E)>>1]
垂直提升時則可以安排多列的計算并行執(zhí)行,如圖6所示。
H1(1)=B1-[(A1+C1)>>1]
H2(1)=B2-[(A2+C2)>>1]
3 仿真結果
表1列出了CPU讀取L1D時產(chǎn)生的缺失數(shù)。其中,水平方向的缺失不可避免。由于要對數(shù)據(jù)塊的右側和底部進行邊界延拓,所以在水平方向的缺失數(shù)比傳統(tǒng)方法略高;而在垂直方向上,該算法完全避免了缺失的發(fā)生。
表2列出了幾種方法的計算性能。由于本文采用了多種優(yōu)化技術,運算速度提高了4~10倍。
本文介紹了5/3提升小波變換及其在DM642上的實現(xiàn)。為了提高其性能提出了多項優(yōu)化技術,試驗證明這些方法十分有效。
參考文獻
[1] RABBANI M,JOSHI R.An overview of the JPEG2000 still image compression standard.Signal Processing:Image Com-munication,2002;(17)1:3-48.
[2] CHO J K,HWANG M C,KIM J S et al.Fast DSP implementation of JPEG2000.Proc of IEEE TENCON,2004(A): 231-234,Thailand,Nov.21-24,2004.
[3] CHO J K,HWANG M C,KIM J S et al.Fast Implementation of Wavelet Lifting for JPEG2000 on a Fixed-Point. Proc.of 2004 International Technical Conference on Circuits Systems,Computers and Communications,Sendai/Matsusima,2004,7.
[4] Texas Instruments Incorporated. SPRU656A-TMS320C6000 DSP Cache User′s Guide,2003.
[5] Texas Instruments Incorporated.SPRU610B- TMS320C64x DSP Two-Level Internal Memory Reference Guide,2004.
[6] Texas Instruments Incorporated.SPRU234B-TMS320C6000 DSP Enhanced Direct Memory Access(EDMA) Controller Reference Guide,2005.
[7] Texas Instruments Incorporated.SPRU401J-TMS320C6000 Chip Support Library API Reference Guide,2004.
[8] Texas Instruments Incorporated.SPRU186O-TMS320C6000 Assembly Language Tools v 6.0.0 Alpha User′s Guide,2005.
[9] Texas Instruments Incorporated.SPRU023B-TMS320C64x Image/Video Processing Library Programmer′s Reference,2003.
評論