Fast Image Pre-processing Algorithms Using SSE Instructions

SSE 명령어를 이용한 영상의 고속 전처리 알고리즘

  • Published : 2009.03.25

Abstract

This paper proposes fast image processing algorithms using SSE (Streaming SIMD Extensions) instructions. The CPU's supporting SSE instructions have 128bit XMM registers; data included in these registers are processed at the same time with the SIMD (Single Instruction Multiple Data) mode. This paper develops new SIMD image processing algorithms for Mean filter, Sobel horizontal edge detector, and Morphological erosion operation which are most widely used in automated optical inspection systems and compares their processing times. In order to objectively evaluate the processing time, the developed algorithms are compared with OpenCV 1.0 operated in SISD (Single Instruction Single Data) mode, Intel's IPP 5.2 and MIL 8.0 which are fast image processing libraries supporting SIMD mode. The experimental result shows that the proposed algorithms on average are 8 times faster than the SISD mode image processing library and 1.4 times faster than the SIMD fast image processing libraries. The proposed algorithms demonstrate their applicability to practical image processing systems at high speed without commercial image processing libraries or additional hardwares.

본 논문에서는 SSE (Streaming SIMD Extensions) 명령어를 이용한 고속 영상처리 알고리즘을 제안한다. SSE 명령어를 지원하는 CPU는 128비트 크기의 XMM 레지스터를 보유하고 있으며 이에 속한 데이터는 SIMD(Single Instruction Multiple Data) 방식으로 한 번에 병렬로 처리 될 수 있다. 영상처리에서 폭넓게 활용되는 평균 필터, 소벨 수평방향 외곽선 검출, 이진 침식 알고리즘을 SIMD 방식으로 효과적으로 처리 할 수 있는 알고리즘을 제시하였고, 수행 시간을 측정하였다. 보다 객관적인 수행 속도 평가를 위해 현재 많이 사용되고 있는 영상처리 라이브러리와의 수행 속도를 비교하였다. 비교에 사용된 라이브러리는 SISD(Single Instruction Single Data)방식으로 동작하는 OpenCV 1.0, SIMD 방식을 지원하는 고속 영상처리 라이브러리인 IPP 5.2와 MIL 8.0에서 각각 수행 시간을 측정하고 제안하는 알고리즘의 처리 속도와 비교하였다. 실험결과 제안하는 알고리즘은 SISD방식의 영상처리 라이브러리에 비해 평균 8배의 성능향상을 보였으며, SIMD 방식의 고속 영상처리 라이브러리와 비교 하였을 때 평균 1.4배의 성능향상을 보였다. 따라서 제안하는 알고리즘은 고가의 영상처리 라이브러리와 추가적인 하드웨어의 구입 없이도 고속으로 동작해야 하는 실제 영상 처리 어플리케이션에 효과적으로 적용될 수 있음을 보였다.

Keywords

References

  1. Randle Hyde, WRITE GREAT CODE, No Starch Press, 2004
  2. Intel Corporation, "Intel ® 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture", May, 2007
  3. Intel Corporation, "Intel ® 64 and IA-32 Architectures Software Developer's Manual Volume 2: Basic Architecture", May, 2007
  4. Johan Skoglund and Michael Felsberg, "Fast image processing using SSE2", Proceedings of the SSBA Symposium on Image Analysis, 2005
  5. J´erome Landr'e and Fr'ed'eric Truchetet, "Optimizing signal and image processing applications using Intel libraries", Proceedings of SPIE, vol 6356, 2007
  6. Intel Corporation, "Intel ® 64 and IA-32 Architectures Optimization Reference Manual", May, 2007
  7. Asadollah Shahbahrami. Ben Juurlink, Stamatis Vassiliadis, "Performance Impact of Misaligned Accessesin SIMD Extensions", ProRISC 2006, pp. 334-342, 2006
  8. Matrox, "Matrox Imaging Library 8.0 User Guide", June, 2005
  9. Intel Corporation, "Intel Integrated Performance Primitives for Intel Architecture Reference Manual, Volume2 : Image and Video Processing", January, 2007
  10. Intel Corporation, "Open Source Computer Vision Library Reference Manual", December, 2001
  11. G. Conte, S. Tommesani, E Zanichelli, "The long and winding road to high-performance image processing with MMX/SSE", Proceeding of CAMP, pp. 302-342, 2000
  12. Asadollah Shahbahrami Ben Juurlink Stamatis Vassiliadis, "Efficient Vectorization of the FIR Filter", ProRisc 2005, pp. 432-437, 2005
  13. 조상현, 박창준, 최흥문 등, "인텔 MMX 기술을 이용한 영상처리 루틴의 고속화", 전자기술연구지, 경북대 공대, vol. 22, pp.154-161, 2001
  14. S. Rakshitn, A. Ghosh, B. Uma Shankar, "Fast mean filtering technique (FMFT)", Pattern Recognition, Vol. 40, No. 3, pp. 890-897, 2007 https://doi.org/10.1016/j.patcog.2006.02.008
  15. Timothy Furtak, Jose Nelson Amaral, Robert Niewiadomski, "Using SIMD Registers and Instructions to Enable Instruction-Level Parallelism in Sorting Algorithms", Proceeding of SPAA, June, 2007
  16. Deepu Talla, Lizy Kurian John, Doug Burger, "Bottlenecks in Multimedia Processing with SIMD Style Extensions and Architectural Enhancements", IEEE Transactions on Computer, Vol. 52, No. 8, pp. 1015-1031, August, 2003 https://doi.org/10.1109/TC.2003.1223637
  17. Joe H. Wolf III, "Programming Methods for the Pentium ® III Processor's Streaming SIMD Extensions Using the VTune Performance Enhancement Environment", Intel Technology Journal, 1999