Implementation of a wide-angle lens distortion correction algorithm on the cell broadband engine

Wide-angle lenses are often used in scientific or virtual reality applications to enlarge the field of view of a conventional camera. Wide-angle lens distortion correction is an image warping application which transforms the distorted images back to the natural-looking, central perspective space. This application is characterized by a non-linear streaming memory access pattern that makes main memory bandwidth a key performance limiter. This paper presents the implementation, optimization and evaluation of a wide-angle lens distortion correction algorithm on the Cell Broadband Engine. Cell is a heterogeneous multi-core processor that has been architected to accelerate applications with large degree of thread- and data-level parallelism. We alleviate the `memory wall' inefficiencies by applying source level optimizations such as tiling to better utilize the on-chip memory of the SPE, and maximize data reuse within a frame of pixel data. Using these transformations on the Cell processor, we are able to achieve a 7.27x speedup compared to a Core2 Duo processor, and enable potential applications such as real-time correction for video teleconferencing using cameras with wide-angle lenses. To the best of our knowledge, this is the first paper to describe the mapping and optimization of an image warping application to the Cell BE architecture.

[1]  David A. Bader,et al.  On the Design and Analysis of Irregular Algorithms on the Cell Processor: A Case Study of List Ranking , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[2]  Michael Knaup,et al.  Tomographic image reconstruction using the cell broadband engine (CBE) general purpose hardware , 2007, Electronic Imaging.

[3]  Daniel P. Kuban,et al.  A video pan/tilt/magnify/rotate system with no moving parts , 1992, [1992] Proceedings IEEE/AIAA 11th Digital Avionics Systems Conference.

[4]  H. Peter Hofstee,et al.  Introduction to the Cell multiprocessor , 2005, IBM J. Res. Dev..

[5]  Yuan Zhao,et al.  Dependence-Based Code Generation for a CELL Processor , 2006, LCPC.

[6]  Michael Kistler,et al.  Exploring the Viability of the Cell Broadband Engine for Bioinformatics Applications , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[7]  Yang Liu,et al.  Speech recognition systems on the Cell Broadband Engine processor , 2007, IBM J. Res. Dev..

[8]  Michael Gschwind,et al.  Using advanced compiler technology to exploit the performance of the Cell Broadband EngineTM architecture , 2006, IBM Syst. J..

[9]  David G. Wonnacott,et al.  Using time skewing to eliminate idle time due to memory bandwidth and network limitations , 2000, Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000.

[10]  E. Schwalbe GEOMETRIC MODELLING AND CALIBRATION OF FISHEYE LENS CAMERA SYSTEMS , 2005 .

[11]  Tsuyoshi Yamamoto,et al.  Design and implementation of panoramic movie system by using commodity 3D graphics hardware , 2003, Proceedings Computer Graphics International 2003.

[12]  Srinivasan Parthasarathy,et al.  Data mining on the cell broadband engine , 2008, ICS '08.

[13]  R. Keys Cubic convolution interpolation for digital image processing , 1981 .

[14]  Samuel Williams,et al.  Implicit and explicit optimizations for stencil computations , 2006, MSPC '06.

[15]  Paul S. Heckbert,et al.  Creating Raster Omnimax Images from Multiple Perspective Views Using the Elliptical Weighted Average Filter , 1986, IEEE Computer Graphics and Applications.

[16]  Samuel Williams,et al.  The potential of the cell processor for scientific computing , 2005, CF '06.

[17]  Kue-Hwan Sihn,et al.  Analysis and Parallelization of H.264 decoder on Cell Broadband Engine Architecture , 2007, 2007 IEEE International Symposium on Signal Processing and Information Technology.

[18]  Fabrizio Petrini,et al.  Peak-Performance DFA-based String Matching on the Cell Processor , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[19]  Michael D. Naish,et al.  Developing a Modular Active Spherical Vision System , 2005, Proceedings of the 2005 IEEE International Conference on Robotics and Automation.

[20]  Fabrizio Petrini,et al.  Multicore Surprises: Lessons Learned from Optimizing Sweep3D on the Cell Broadband Engine , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.