Thumbnail JPEG generator tercepat untuk Linux

9

Saya sedang mencari konverter gambar baris perintah tercepat untuk Linux yang dapat membaca gambar JPEG, menurunkannya menjadi paling banyak 1366x768, dan menulis 50 gambar JPEG berkualitas. Sesuatu seperti ini, tetapi jauh lebih cepat daripada ImageMagick:

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

Saya juga sudah mencoba ini:

$ <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

Jadi saya ingin memiliki program, lebih disukai ditulis dalam C, yang mengintegrasikan djpeg, versi pnmscale kualitas tinggi, dan cjpeg.

Saya baru saja menemukan swiggle (program C menggunakan libjpeg), saya telah menonaktifkan beberapa fungsionalitasnya yang tidak saya butuhkan dalam kode sumber, dan saya punya:

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

Apakah Anda punya saran lain? Saya kira sebagian besar konverter gambar menggunakan libjpeg, jadi akan sulit untuk mendapatkan hasil yang jauh lebih cepat daripada swiggle.

Poin
sumber
1
Saya kira yang tercepat akan menggunakan CUDA atau OpenCL (yang menggunakan kekuatan NVidia atau GPU berbasis AMD). Saya pikir OpenCV sekarang menggunakan CUDA di beberapa bagian. Anda mungkin bisa menyiapkan sesuatu jika Anda bisa menggunakan c
Matt H
Saya setuju dengan Matt. Jika itu adalah gambar besar (dan jika butuh 12 detik maka saya kira mereka tidak kecil), maka CUDA / OpenCL akan melakukan pekerjaan itu. Atau dapatkan PC yang lebih baik.
Apache
Gambar tidak terlalu besar (4000x3000 adalah maksimum) - konversi membutuhkan waktu 12 detik untuk satu set gambar beberapa lusin gambar.
Poin

Jawaban:

13

Pustaka tercepat yang saya gunakan sejauh ini jelas merupakan EPEG . Itu hanya dapat membuat jempol dari file JPG, tetapi itu membuatnya sangat cepat:

$ 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

Saya menggunakan perpustakaan ini untuk membuat jempol untuk gambar yang sangat besar.

Sebastian Stumpf
sumber
2
github.com/mattes/epeg ... periksa juga garpu ini.
mattes
1
Lihat juga github.com/fawick/speedtest-resize untuk patokan berbagai perpustakaan
nh2
2

Saya telah memecahkan masalah ini dengan mengunduh swiggle (thumbnail baris perintah JPEG + generator galeri gambar HTML), dan memodifikasi sumbernya untuk kebutuhan saya. Lihat pengukuran kecepatan dalam pertanyaan (kurang dari 10% lebih cepat dari djpeg + pnmscale + cjpeg).

Poin
sumber