为什么JPEG图像可以包含多个量化表?
Why can JPEG images contain several quantization tables?
我从wiki页面查了大概了解了JPEG编码算法
- 转换为 YCbCr,下采样
- 分成 8x8 块
- 对块应用 DCT
- 将结果矩阵除以量化 table 个条目
- 熵编码
我知道文件中的量化 table 取决于创建图像的内容,例如相机制造商可能有自己专有的 QT 算法,photoshop 等有自己的 QT,有 public 个,等等。
现在,如果打开 'real' JPEG 文件,它们可能包含 多个 量化 table。怎么会这样?我假设解码算法是这样的:
- 解码熵编码,接收块
- 通过量化乘以块 table 个条目
- 还原其他操作
second/third/...QTdo/when有什么用? JPEG 文件中的 QT 数量是否有上限?何时将第二个 QT 添加到 JPEG 文件?
量化表用于不同的颜色分量。
如您所知,第一步图像被转换为 YCbCr 颜色 Space。在这种颜色 space 中,您有三种颜色:亮度 (Y)、色度蓝色 (Cb) 和色度红色 (Cr)。由于人眼对颜色的敏感度较低,但对亮度非常敏感,因此针对不同的分量使用了多个量化表。
用于亮度的量化表由“较低”值组成,因此除法和舍入不会丢失太多关于该组件的信息。另一方面,蓝色和红色具有“更高”的价值,因为不需要那么多信息。
我从wiki页面查了大概了解了JPEG编码算法
- 转换为 YCbCr,下采样
- 分成 8x8 块
- 对块应用 DCT
- 将结果矩阵除以量化 table 个条目
- 熵编码
我知道文件中的量化 table 取决于创建图像的内容,例如相机制造商可能有自己专有的 QT 算法,photoshop 等有自己的 QT,有 public 个,等等。 现在,如果打开 'real' JPEG 文件,它们可能包含 多个 量化 table。怎么会这样?我假设解码算法是这样的:
- 解码熵编码,接收块
- 通过量化乘以块 table 个条目
- 还原其他操作
second/third/...QTdo/when有什么用? JPEG 文件中的 QT 数量是否有上限?何时将第二个 QT 添加到 JPEG 文件?
量化表用于不同的颜色分量。
如您所知,第一步图像被转换为 YCbCr 颜色 Space。在这种颜色 space 中,您有三种颜色:亮度 (Y)、色度蓝色 (Cb) 和色度红色 (Cr)。由于人眼对颜色的敏感度较低,但对亮度非常敏感,因此针对不同的分量使用了多个量化表。
用于亮度的量化表由“较低”值组成,因此除法和舍入不会丢失太多关于该组件的信息。另一方面,蓝色和红色具有“更高”的价值,因为不需要那么多信息。