【发布时间】:2012-05-16 07:59:16
【问题描述】:
在 JPEG 压缩中,损失发生在量化和 DCT 转换期间。
为什么在JPEG图像压缩中DCT变换后量化后会得到很多0。
【问题讨论】:
标签: jpeg quantization
在 JPEG 压缩中,损失发生在量化和 DCT 转换期间。
为什么在JPEG图像压缩中DCT变换后量化后会得到很多0。
【问题讨论】:
标签: jpeg quantization
我可能误解了你的问题。获得“许多 0”是量化的重点。零是通过在霍夫曼编码中的每个符号前面加上下一个系数之前多少个零来隐式编码的。
JPEG 压缩中的量化是通过将每个系数与量化表中的相应值进行整数除法来完成的。如果系数小于量化表中的值,则为零。
在解码器中,系数乘以量化表中的值,以便它们恢复到以前的值(或多或少),除非系数为零。
【讨论】:
DCT 变换后,压缩器将每个 DCT 输出值除以一个“量化系数”,并将结果四舍五入为整数。量化系数越大,丢失的数据越多。由于四舍五入,您可能会看到很多 0。结果系数包含大量冗余数据。以下 Huffman 压缩将无损删除冗余,从而生成更小的 JPEG 数据。
【讨论】:
@Dragon66 说的对,DCT 矩阵除以一个量化矩阵并四舍五入为整数,当系数足够高时结果为 0。
这样做的原因是,人眼对较低空间频率的噪声更敏感,但忽略了较高空间频率的大部分噪声。
当你用DCT处理像素矩阵并得到结果矩阵时,左上角的系数代表像素块的平均亮度。向右移动,系数代表增加的水平空间频率。向下移动,系数表示垂直空间频率增加。
因此,量化矩阵有更高的分量移动到右下角。当系数在这些位置达到 0 时丢失的信息对图像本身来说不太重要,因为它代表更高的频率分量。
这里有完整的解释: http://www.media-matters.net/docs/resources/Digital%20Files/MPEG/MPEG%20Encoding%20Basics.pdf
【讨论】: