私は、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