LibWebP花费了太多时间进行图像压缩

时间:2017-06-03 11:46:00

标签: image-processing visual-c++ gdi+ image-compression webp

我正在研究图像压缩技术并分析可在100毫秒内产生较小输出的最佳算法,或者在具有八核处理器的笔记本电脑上通过网络传输的分辨率为1920 * 1080的图像较小的算法。< / p>

我一直在使用GDI +和CxImage库进行图像压缩,通过JPG或PNG压缩技术为JPG提供大约30 ms的输出图像,使用PNG提供大约70 ms的彩色图像,所用时间相当不错,但是如果我追求更好的质量,压缩数据的大小要大得多。

然后我遇到了谷歌的WebP格式。我用VC ++使用libWebP尝试了它。质量和压缩率真的很棒,但所用的时间远远高于我的预期。如果我为alpha过滤和alpha压缩设置为true,则需要超过300毫秒和sime时间甚至超过1秒。

以下是我的WebpConfig设置

    m_webp_config.quality           = 50;
    m_webp_config.alpha_quality     = 0;
    m_webp_config.lossless          = false;
    m_webp_config.method            = 3;
    m_webp_config.alpha_compression = false;
    m_webp_config.alpha_filtering   = false;
    m_webp_config.autofilter        = false;
    m_webp_config.filter_sharpness  = false;
    m_webp_config.filter_strength   = 0;
    m_webp_config.filter_type       = 0;
    m_webp_config.use_sharp_yuv     = false;

每当我捕获命令提示符或记事本++时,有时我会得到黑色图像(我怀疑问题出在那些包含大量文本数据的图像上,但对于包含大量文本的网页却不一样)

我是否在使用WebPConfig做错了什么?有没有办法优化它?。

我没有找到太多文档和任何可以让我对这些问题有所了解的论坛。

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试无损压缩?可以存在比无损更快的无损模式。

如果您控制压缩和解压缩,请将图像分割为256x256个方块并压缩并单独发送。这样,您不仅可以并行化计算,还可以在压缩过程中交错传输一些传输,这可以简化压缩计算的时间预算。

如果减少'method'值,通常会发现更快的WebP压缩。对于无损,你需要减少两种方法和质量,他们以复杂的方式控制同样的事情。对于无损,尝试质量20和方法1(或者也许有0方法,也不记得)。

相关问题