【发布时间】:2015-08-10 14:42:44
【问题描述】:
我需要每秒将许多 TIFF 图像转换为 JPEG。目前我正在使用 libmagick++ (Q16)。我正在编译ImageMagick Q8,因为我读到它可能会提高性能(特别是因为我只使用 8 位图像)。
CImg 看起来也是一个不错的选择,GraphicsMagick 声称比 ImageMagic 更快。我还没有测试过其中任何一个,但我想知道是否有任何其他替代方案可以比使用 ImageMagick Q8 更快?
我正在寻找仅适用于 Linux 的解决方案。
更新宽度 GraphicsMagick & ImageMagick Q8
基础比较(见 Mark 的评论):ImageMagick Q16 0.2 秒
我用 Q8 成功编译了 GraphicsMagick,但毕竟它似乎比 ImageMagick 慢了大约 30%(0.3 秒)。
使用 Q8 编译 ImageMagick 后,增益大约为 25%(0.15 秒)。不错:)
更新宽度 VIPS
感谢马克的帖子,我试试VIPS。使用 Ubuntu Trusty 存储库中的 7.38 版本:
time vips copy input.tiff output.jpg[Q=95]
real 0m0.105s
user 0m0.130s
sys 0m0.038s
非常好:)
我也尝试了 7.42(来自 ppa:dhor/myway),但它似乎有点慢:
real 0m0.134s
user 0m0.168s
sys 0m0.039s
我将尝试从源代码编译 VIPS,看看我是否能打败那个时间。干得好马克!
更新:使用 VIPS 8.0
从源代码编译,vips-8.0 的性能几乎与 7.38 相同:
real 0m0.100s
user 0m0.137s
sys 0m0.031s
配置命令:
./configure CC=c99 CFLAGS=-O2 --without-magick --without-OpenEXR --without-openslide --without-matio --without-cfitsio --without-libwebp --without-pangoft2 --without-zip --without-png --without-python
【问题讨论】:
-
TIFF 图像有多大 - 以字节和像素为单位?除了转换为JPEG之外,您是否对图像进行任何其他处理?图像的下游会发生什么?他们来自哪里?你的代码目前是什么样子的?你目前取得了怎样的业绩?您需要什么性能?
-
谢谢马克。图像为 3288x1152。除了转换它们之外没有其他处理。然后将图像存储到 HDD 中。原始数据来自相机(裁剪)。这就是code looks like 的方式。在一台测试机(四核)中,在 0.2 秒内转换一个图像。在投入生产之前,我需要改善这段时间(长话短说)。
-
请问原始图像的大小是多少?
-
每个文件大约 15MB。
-
您希望输出的 JPEG 质量级别是多少? JPEG 是否应该与 TIFF 具有相同的尺寸(我假设是)?是否所有 TIFF 都具有相同的尺寸?
标签: imagemagick jpeg tiff vips