我目前正在使用 jpeglib-turbo 库在 C++ 中实现 jpeg 调整器。
我被赋予了使用该库进行 JPEG 解压缩和重新压缩的目标 100 毫秒。使用推荐的优化设置(记录在 jpeglib-turbo 用法.txt中)我能想到的最好的是大约 320 毫秒,所以我想知道 100 毫秒甚至可能/现实吗?这将是将 3000x4000 像素的图像从大约 6Mb 大小解压缩/重新压缩到 130Kb。
我用于快速解压缩的代码是:
dinfo.dct_method = JDCT_IFAST;
dinfo.do_fancy_upsampling = FALSE;
dinfo.two_pass_quantize = FALSE;
dinfo.dither_mode = JDITHER_ORDERED;
dinfo.scale_num = 1/8;
感谢您的回答。
实际上可以在大约 100 毫秒内解压缩和重新压缩。在联系了libjpeg-turbo的作者之后,他告诉我我使用的dinfo.scale_num属性是错误的。此属性是刻度分子 - 我还需要设置 scale_denom(分母)属性。
所以好的代码将是:
dinfo.dct_method = JDCT_IFAST;
dinfo.do_fancy_upsampling = FALSE;
dinfo.two_pass_quantize = FALSE;
dinfo.dither_mode = JDITHER_ORDERED;
dinfo.scale_num = 1;
dinfo.scale_denom = 8;
我希望代码如此之快,以至于图像缩放对于用户来说应该是难以察觉的,因为它在速度/用户体验是最重要的客户端应用程序中。