- 빠른 jpeg 라이브러리 x86 SIMD ext for IJG JPEG 컴파일 삽질기
- 컴퓨터야그/자작
- 2010. 6. 21. 07:49
Jpeg 파일을 프로그램에서 읽고 쓸 때 libjpeg 라이브러리를 많이 사용한다.
이 라이브러리는 안정적이고 널리 쓰이고 있지만, 속도가 다소 느린 편이다.
꿀뷰 등의 빠른 이미지 뷰어에서 사용되는 x86 SIMD ext for IJG JPEG 라이브러리가 있다.
이 라이브러리는 libjpeg 6b를 확장해서 일부를 어셈블러로 작성한 것인데, 속도가 상당히 빠르다.
(현재 libjpeg는 8b 까지 공개됨)
이 라이브러리를 컴파일해보고, 이것이 libjpeg 8b에 비해 얼마나 빠른가를 확인해봤다.
컴파일 시에 특별히 준비할 것은 없고, NASM을 사용할 수 있도록 설치하기만 하면 된다.
준비사항은 아래와 같다.
Visual Studio 6.0과 Visual Studio 2010에서 같은 코드를 실행시켜 성능을 비교해봤다.
비교는 위 실행화면처럼 연산을 20회 반복한 뒤에 평균시간을 쟀다.
대상은 VC++6에서 컴파일한 6b-SIMD와 8b 그리고, VC++10에서 컴파일한 8b.
(VC++10에선 6b-SIMD 컴파일 실패했음)
역시 6b-SIMD가 어셈블러로 되어있는지라 상당히 빠르다.
이 라이브러리는 안정적이고 널리 쓰이고 있지만, 속도가 다소 느린 편이다.
꿀뷰 등의 빠른 이미지 뷰어에서 사용되는 x86 SIMD ext for IJG JPEG 라이브러리가 있다.
이 라이브러리는 libjpeg 6b를 확장해서 일부를 어셈블러로 작성한 것인데, 속도가 상당히 빠르다.
(현재 libjpeg는 8b 까지 공개됨)
이 라이브러리를 컴파일해보고, 이것이 libjpeg 8b에 비해 얼마나 빠른가를 확인해봤다.
컴파일 시에 특별히 준비할 것은 없고, NASM을 사용할 수 있도록 설치하기만 하면 된다.
준비사항은 아래와 같다.
1. NASM 설치
2. 실행파일의 파일명을 nasm.exe에서 nasmw.exe로 변경
2. 실행파일의 파일명을 nasm.exe에서 nasmw.exe로 변경
Visual Studio 6.0과 Visual Studio 2010에서 같은 코드를 실행시켜 성능을 비교해봤다.
비교는 위 실행화면처럼 연산을 20회 반복한 뒤에 평균시간을 쟀다.
대상은 VC++6에서 컴파일한 6b-SIMD와 8b 그리고, VC++10에서 컴파일한 8b.
(VC++10에선 6b-SIMD 컴파일 실패했음)
역시 6b-SIMD가 어셈블러로 되어있는지라 상당히 빠르다.
1. 6b-SIMD는 8b에 비해 3배 가까이 빠름
2. 8b도 VC++10에서 컴파일한 것이 10% 정도 빠름
3. VC++10에서 6b-SIMD 컴파일 실패. 성공한 고수님들 계시면 내공 전수 좀…
2. 8b도 VC++10에서 컴파일한 것이 10% 정도 빠름
3. VC++10에서 6b-SIMD 컴파일 실패. 성공한 고수님들 계시면 내공 전수 좀…
'컴퓨터야그 > 자작' 카테고리의 다른 글
멀티 코어 CPU에서 코어 별 사용량 측정하는 법 (VS2008) (3) | 2010.06.25 |
---|---|
더 빠른 jpeg 라이브러리 jpeg-turbo 컴파일 삽질기 (4) | 2010.06.22 |
OpenMP로 처음으로 만들어본 멀티코어 프로그램 (4) | 2010.06.20 |
SRT 자막 보정 프로그램 (7) | 2010.05.22 |
Nokia 인증 도구 도우미 (0) | 2010.04.16 |
Recent comment