【发布时间】:2012-04-13 18:35:29
【问题描述】:
我目前正在使用 jpeglib-turbo 库在 C++ 中实现 jpeg 大小调整器。
我已经获得了使用库进行 JPEG 解压缩和重新压缩的 100 毫秒目标。使用推荐的优化设置(记录在 jpeglib-turbo usage.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;
【问题讨论】:
-
出于好奇,为什么需要这么快? 6MB JPEG 的 320 毫秒非常快。
-
你没有提到平台。这是手机用的吗?桌面?单线程还是多线程?我有一些我一直在处理的快速“DCT 缩略图”代码。在我的 2GHz Core i7(使用单线程)上,它可以在大约 120 毫秒内从 6 兆字节的 JPEG 数据(4000x4000 图像)中提取 1/8 大小的 RGB32 图像。将 500x500 的图像重新压缩到 130KB 可能需要另外 40-100 毫秒(我还没有对压缩器进行极端优化)。缩略图提取代码的时间关键部分是用 64 位汇编语言编写的。联系我了解更多信息(bitbank@pobox.com)。
-
这个项目是开源的吗?发布链接:)
标签: libjpeg libjpeg-turbo