0

在 JPEG 压缩中,损失发生在量化期间和 DCT 转换期间。

为什么我们在 JPEG 图像压缩中的 DCT 变换后量化后得到许多 0。

4

3 回答 3

2

我可能误解了你的问题。获得“许多 0”是量化的重点。通过在霍夫曼码中的每个符号前面加上直到下一个系数的多少个零来隐式编码零。

JPEG 压缩中的量化是通过将每个系数与量化表中的相应值进行整数除法来完成的。如果系数小于量化表中的值,它将变为零。

在解码器中,系数乘以量化表中的值,以便它们恢复到以前的值(或多或少),除非系数为零。

于 2012-05-07T20:36:39.057 回答
1

@Dragon66 说的是对的,DCT 矩阵除以一个量化矩阵并四舍五入为整数,当系数足够高时结果为 0。

这样做的原因是人眼对较低空间频率的噪声更敏感,但忽略了较高空间频率的大部分噪声。

当用 DCT 处理像素矩阵并得到结果矩阵时,左上角的系数代表像素块的平均亮度。向右移动,系数代表增加的水平空间频率。向下移动,系数代表增加的垂直空间频率。

因此,量化矩阵具有移动到右下角的较高分量。当系数在这些位置达到 0 时丢失的信息对图像本身来说不太重要,因为它代表更高的频率分量。

此处的完整解释: http ://www.media-matters.net/docs/resources/Digital%20Files/MPEG/MPEG%20Encoding%20Basics.pdf

于 2012-06-12T15:26:39.610 回答
1

在 DCT 变换之后,压缩器将每个 DCT 输出值除以一个“量化系数”,并将结果四舍五入为整数。量化系数越大,丢失的数据越多。由于四舍五入,您可能会看到很多 0。结果系数包含大量冗余数据。以下 Huffman 压缩将无损删除冗余,从而生成更小的 JPEG 数据。

更多信息

于 2012-05-07T20:32:25.937 回答