Window memoization: toward high-performance image processing software

In this paper, we present a new performance improvement technique, window memoization, for software implementations of local image processing algorithms. Window memoization combines the memoization techniques proposed in software and hardware with data redundancy in image processing to improve the performance of local image processing algorithms. It minimizes the number of redundant computations performed on an image by identifying similar neighborhoods of pixels in the image and skipping the computations that are not necessary. This leads to performance improvement in software. We have developed an optimized architecture for window memoization in software and applied it to six image processing algorithms. We have also developed a performance model to predict the speedups obtained by window memoization in software. The typical (average) speedups range from 1.2x to 7.9x while the total average speedup for different algorithms with different input images across different processors is 3.95x.

[1]  Anil K. Jain,et al.  Image data compression: A review , 1981, Proceedings of the IEEE.

[2]  Niraj K. Jha,et al.  Profiling driven computation reuse: an embedded software synthesis technique for energy and performance optimization , 2004, 17th International Conference on VLSI Design. Proceedings..

[3]  M. Valero,et al.  Fuzzy memoization for floating-point multimedia applications , 2005, IEEE Transactions on Computers.

[4]  S. E. Richardson Exploiting trivial and redundant computation , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[5]  F. Khalvati,et al.  Opposition-Based Window Memoization for Morphological Algorithms , 2007, 2007 IEEE Symposium on Computational Intelligence in Image and Signal Processing.

[6]  R A Kirsch,et al.  Computer determination of the constituent structure of biological images. , 1971, Computers and biomedical research, an international journal.

[7]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[8]  Mark Hedley,et al.  Fast corner detection , 1998, Image Vis. Comput..

[9]  Michael Egmont-Petersen,et al.  Image processing with neural networks - a review , 2002, Pattern Recognit..

[10]  Carlos Alvarez,et al.  On the potential of tolerant region reuse for multimedia applications , 2001, ICS '01.

[11]  F. Khalvati,et al.  Accelerating Image Processing Algorithms Based on the Reuse of Spatial Patterns , 2007, 2007 Canadian Conference on Electrical and Computer Engineering.

[12]  Thomas S. Huang,et al.  A fast two-dimensional median filtering algorithm , 1979 .

[13]  T. Tuytelaars,et al.  A Survey on Local Invariant Features , 2006 .

[14]  William Pugh An improved replacement strategy for function caching , 1988, LFP '88.

[15]  Yonghua Ding,et al.  Operation Reuse on Handheld Devices , .

[16]  DONALD MICHIE,et al.  “Memo” Functions and Machine Learning , 1968, Nature.

[17]  Milan Sonka,et al.  Image Processing, Analysis and Machine Vision , 1993, Springer US.

[18]  Richard S. Bird,et al.  Tabulation Techniques for Recursive Programs , 1980, CSUR.

[19]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[20]  Mikko H. Lipasti,et al.  Value locality and load value prediction , 1996, ASPLOS VII.

[21]  William Pugh,et al.  Incremental computation via function caching , 1989, POPL '89.

[22]  Timothy W. Finin,et al.  Using automatic memoization as a software engineering tool in real-world AI systems , 1995, Proceedings the 11th Conference on Artificial Intelligence for Applications.

[23]  Bülent Sankur,et al.  Survey over image thresholding techniques and quantitative performance evaluation , 2004, J. Electronic Imaging.

[24]  Farzad Khalvati,et al.  Window memoization: an efficient hardware architecture for high-performance image processing , 2010, Journal of Real-Time Image Processing.

[25]  John Hughes,et al.  Lazy Memo-functions , 1985, FPCA.