Linux를위한 가장 빠른 JPEG 썸네일 생성기


9

JPEG 이미지를 읽고, 최대 1366x768로 축소하고, 고품질 50 JPEG 이미지를 작성할 수있는 Linux 용 가장 빠른 명령 줄 이미지 변환기를 찾고 있습니다. 이와 같은 것이지만 ImageMagick보다 훨씬 빠릅니다.

$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set

나는 또한 이것을 시도했다 :

$ <foo42.jpg djpeg | pnmscale -xysize 1366 768 | cjpeg -quality 50 >foo42.th.jpg
# takes 0m12.007s for my test image set, and has lower visual quality than ImageMagick

그래서 저는 pnmscale의 고품질 버전 인 djpeg와 cjpeg를 통합하는 C로 작성된 프로그램을 갖고 싶습니다.

방금 swiggle (libjpeg를 사용하는 C 프로그램)을 찾았 으며 소스 코드에 필요하지 않은 기능 중 일부를 비활성화했습니다.

$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results

다른 제안이 있습니까? 대부분의 이미지 변환기는 libjpeg를 사용한다고 생각하므로 swiggle보다 훨씬 빠른 결과를 얻는 것이 어려울 것입니다.


1
NVDA 또는 AMD 기반 GPU의 성능을 사용하는 CUDA 또는 OpenCL을 사용하는 것이 가장 빠를 것 같습니다. OpenCV는 이제 CUDA를 부분적으로 사용한다고 생각합니다. c를 사용하면 편리 할 수 ​​있습니다.
Matt H

매트에 동의합니다. 그것들이 거대한 이미지라면 (그리고 12 초가 걸리면 작지 않다고 생각합니다) CUDA / OpenCL이 그 일을 할 것입니다. 또는 더 나은 PC를 얻으십시오.
Apache

이미지가 너무 크지 않습니다 (4000x3000이 최대). 수십 개의 이미지로 구성된 이미지 세트의 경우 변환에 12 초가 걸립니다.
pts

답변:


13

지금까지 사용한 가장 빠른 라이브러리는 확실히 EPEG 입니다. JPG 파일에서만 엄지 손가락을 만들 수는 있지만 매우 빠릅니다.

$ identify worldmap.jpg
worldmap.jpg JPEG 6400x3200 6400x3200+0+0 DirectClass 8-bit 6.85727mb 0.840u 0:02

Imagemagick :

$ time convert -resize 1536x768 -quality 50 worldmap.jpg im_thumb.jpg
# 2.93s user 0.23s system 85% cpu 3.718 total

EPEG :

$ time epeg -w 1536 -h 768 -q 50 worldmap.jpg epeg_thumb.jpg
# 0.31s user 0.01s system 79% cpu 0.404 total

나는의 광대 한 양 엄지 손가락을 만들려면이 라이브러리를 사용하는 정말 큰 이미지.


2
github.com/mattes/epeg ...이 포크도 확인하십시오.
mattes

1
다양한 라이브러리의 벤치 마크에 대해서는 github.com/fawick/speedtest-resize 를 참조하십시오
nh2

2

swiggle (명령 줄 JPEG 썸네일 + HTML 이미지 갤러리 생성기)을 다운로드하고 필요에 따라 소스를 수정 하여이 문제를 해결했습니다 . 문제의 속도 측정을보십시오 (djpeg + pnmscale + cjpeg보다 10 % 미만 빠름).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.