是否有比JPEG更快的有损压缩?

时间:2010-12-29 16:50:17

标签: c++ c compression lossy-compression

是否有比JPEG更快但仍受到良好支持的压缩算法?我知道jpeg2000,但据我所知,它并没有那么快。

编辑:用于压缩。

Edit2:它应该在Linux 32位上运行,理想情况下它应该是C或C ++。

6 个答案:

答案 0 :(得分:3)

您的目标架构上是否有MMX / SSE2指令?如果是这样,您可以尝试libjpeg-turbo。或者,您是否可以使用zlib之类的内容压缩图像,然后将实际减少量卸载到另一台机器上?是否必须在嵌入式设备本身上实现图像的实际有损压缩?

答案 1 :(得分:3)

Jpeg编码和解码应该非常快。你很难找到更快的算法。如果它很慢,你的问题可能不是格式,而是编码器的错误实现。尝试libavcodec项目中ffmpeg的编码器。

答案 2 :(得分:2)

在什么情况下?在PC或便携式设备上?

根据我的经验,你有JPEG,JPEG2000,PNG和......呃,这是关于它在广泛的背景下的“受到良好支持”的图像类型(有损或不有!)

(万岁,GIF即将退出。)

答案 3 :(得分:2)

JPEG2000根本不快。使用jpeg进行编码或解码速度不够快吗?通过在jpeg上只做4x4 FDCT和IDCT,你可能会更快。

很难找到关于IJG libjpeg的任何文档,但是如果你使用它,尝试降低质量设置,它可能会更快,也似乎有一个快速的FDCT选项。

有人提到libjpeg-turbo使用SIMD指令并且与常规libjpeg兼容。如果这是你的选择,我想你应该尝试一下。

答案 4 :(得分:1)

我认为基于小波的压缩算法通常比使用DCT的算法慢。也许你应该看一下JPEG XR和WebP格式。

答案 5 :(得分:1)

如果您不需要完整的图像保真度,则可以简单地将图像调整为较小的图像。将每个2x2块平均为一个像素将非常快速地将大小减小到1/4。