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배의 성능향상을 보였다. 따라서 제안하는 알고리즘은 고가의 영상처리 라이브러리와 추가적인 하드웨어의 구입 없이도 고속으로 동작해야 하는 실제 영상 처리 어플리케이션에 효과적으로 적용될 수 있음을 보였다.