【发布时间】:2015-06-22 16:19:55
【问题描述】:
众所周知,JPEG解码过程如下图所示:
- VLD - 可变长度解码,
- ZZ - 锯齿形扫描,
- DQ - 去量化,
- IDCT - 逆离散余弦变换,
- 颜色转换(YUV 到 RGB)和重新排序。
我的问题是:对于不同JPEG图像的不同字符,上述哪个解码过程会花费更多时间?
例如:
对于这种带噪声的图像的解码,上述五个过程中哪个会花费相对较多的时间?
另一个例子:
对于两个质量不同的相同图像,在解码更高质量的图像时,上述五个过程中的哪个过程会花费更多时间?
【问题讨论】:
-
对于一个完全 SIMD 优化的 JPEG 编码器或解码器,熵解码/编码是最耗时的部分。表查找和可变长度代码访问无法向量化(使用 SIMD 进行优化),最终花费的时间最多。
-
再想一想 - 渐进式 JPEG 图像需要更长的时间来编码和解码,因为在生成最终输出之前,必须将整个图像的 MCU 保存在内存中。与基线编码图像相比,它会导致更多的缓存未命中。
-
目前我只考虑基线 jpeg。我只是想知道在哪个过程中,图像中的噪声会产生最大的影响。
-
而且,对于不同质量(100%、90%、50% 等)的 jpeg,哪些流程受影响最大?
-
噪声会产生更多的高频 A/C 系数,这会使文件变大并导致变长码解码阶段花费更长的时间。其他阶段应该不受图像内容的影响。
标签: image jpeg decode decoding noise