5/3提升小波在DM642上的實(shí)現(xiàn)與優(yōu)化
2.5 程序優(yōu)化
本文引用地址:http://butianyuan.cn/article/86067.htm由前面的分析可知,對圖像進(jìn)行提升小波變換時(shí),需要對其四個(gè)邊界進(jìn)行延拓。延拓方式采用圖1所示的對稱延拓,其中左邊與上邊需要多延拓一個(gè)點(diǎn)。而對圖像中的一個(gè)塊進(jìn)行提升變換時(shí),其延拓的應(yīng)該是與該塊相鄰的四個(gè)塊數(shù)據(jù)的邊界數(shù)據(jù),如圖4所示。
邊界延拓主要是用于計(jì)算高頻系數(shù)。分析發(fā)現(xiàn),水平提升時(shí),當(dāng)前數(shù)據(jù)塊每一行的最后一個(gè)高頻系數(shù)與下一個(gè)塊在該行的第一個(gè)高頻系數(shù)相同。所以只要把當(dāng)前塊的這些系數(shù)保存起來,在對下一塊進(jìn)行水平提升時(shí)第一個(gè)高頻系數(shù)就不需要再進(jìn)行計(jì)算,因此也就不需要再對其左邊界進(jìn)行延拓了。垂直方向的提升也是同樣的道理。在程序中添加兩個(gè)數(shù)組,分別用于存放當(dāng)前塊的每一行與每一列的最后一個(gè)高頻系數(shù)。采用這種方法就可以降低程序的復(fù)雜度,提高執(zhí)行效率,減少缺失的發(fā)生。
像素?cái)U(kuò)展函數(shù)pix_pand[9]是采用TI的IMGLIB算法庫。水平提升與垂直提升函數(shù)均由作者用線性匯編語言編寫,充分利用64x系列DSP的半字處理指令,采用半字打包技術(shù),最大限度地提高程序的執(zhí)行效率。
水平提升時(shí),將每行的數(shù)據(jù)重新排序,變成如圖5所示的結(jié)構(gòu)。
使用C64x的ADD2、SHR2和SUB2等半字處理指令,將如下的兩個(gè)運(yùn)算并行執(zhí)行:
H(1)=B-[(A+C)>>1]
H(2)=D-[(C+E)>>1]
垂直提升時(shí)則可以安排多列的計(jì)算并行執(zhí)行,如圖6所示。
H1(1)=B1-[(A1+C1)>>1]
H2(1)=B2-[(A2+C2)>>1]
3 仿真結(jié)果
表1列出了CPU讀取L1D時(shí)產(chǎn)生的缺失數(shù)。其中,水平方向的缺失不可避免。由于要對數(shù)據(jù)塊的右側(cè)和底部進(jìn)行邊界延拓,所以在水平方向的缺失數(shù)比傳統(tǒng)方法略高;而在垂直方向上,該算法完全避免了缺失的發(fā)生。
表2列出了幾種方法的計(jì)算性能。由于本文采用了多種優(yōu)化技術(shù),運(yùn)算速度提高了4~10倍。
本文介紹了5/3提升小波變換及其在DM642上的實(shí)現(xiàn)。為了提高其性能提出了多項(xiàng)優(yōu)化技術(shù),試驗(yàn)證明這些方法十分有效。
參考文獻(xiàn)
[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.
評論