Linux用の最速JPEGサムネイルジェネレーター


9

私は、JPEG画像を読み取り、最大1366x768に縮小して、高品質の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

だから私は、できればCで書かれた、pnmscaleのより高品質なバージョンであるdjpegとcjpegを統合するプログラムが欲しいです。

私はswiggle(libjpegを使用するCプログラム)を見つけました。ソースコードで必要のない機能の一部を無効にしました。

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

別の提案がありますか?ほとんどの画像コンバータはlibjpegを使用していると思います。そのため、swiggleよりもはるかに高速な結果を得るのは難しいでしょう。


1
CUDAまたはOpenCL(NVidiaまたはAMDベースのGPUのパワーを使用)を使用するのが最も速いと思います。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 ...このフォークもチェックしてください。
2014

1
さまざまなライブラリのベンチマークについては、github.com / fawick / speedtest
resize

2

私はswiggle(コマンドラインJPEGサムネイル+ HTML画像ギャラリージェネレーター)をダウンロードし、自分のニーズに合わせてソースを変更することで、この問題を解決しました。質問の速度測定を参照してください(djpeg + pnmscale + cjpegより10%未満高速)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.