【问题标题】:Why JPEG compression processes image by 8x8 blocks?为什么 JPEG 压缩按 8x8 块处理图像?
【发布时间】:2012-05-28 06:46:03
【问题描述】:

为什么 JPEG 压缩按 8x8 块处理图像,而不是对整个图像应用离散余弦变换?

【问题讨论】:

标签: compression jpeg dct


【解决方案1】:

在对其他尺寸进行了多次实验后选择了 8 X 8。

实验的结论是: 1. 任何大小大于 8 X 8 的矩阵都难以进行数学运算(如变换等),或者不受硬件支持或需要更长的时间。 2. 任何小于 8 X 8 的矩阵都没有足够的信息来继续流水线。这会导致压缩图像质量不佳。

【讨论】:

  • 链接已失效。还有其他来源吗?
【解决方案2】:

因为,解码需要“永远”。我现在不完全记得了,但是我认为您至少需要与块中的像素一样多的系数。如果您将整个图像编码为单个块,我认为您需要针对每个像素迭代所有 DCT 系数。

我不太擅长大 O 计算,但我猜复杂度会是 O("forever")。 ;-)

对于现代视频编解码器,我认为他们已经开始使用 16x16 块。

【讨论】:

  • 如果每次迭代都需要迭代所有内容,则为 O(n^2),而不是“永远”,即 O(n!)。
  • 我不确定“永远” - 我有一个名为“FourierPainter”的程序,它执行傅里叶变换并在一瞬间返回图像。整个图像,请注意。傅立叶与 DCT 没有太大区别,甚至会进行更多的计算(将虚值保留为相位,而 DCT 则没有)。您可以自己下载傅立叶画家并查看:jcrystal.com/products/fp
猜你喜欢
  • 2012-06-24
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2010-12-18
  • 2016-04-30
  • 1970-01-01
相关资源
最近更新 更多