我试图找出哪个MCU(8x8,16x8和16x16)是由哪些图片组成的。为此,我解析了帧开始(SOFn)标记,其中存储了色度子采样因子。 我找到了以下内容:
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
我对如何解释这一点很困惑。阅读this我开始相信1x1代表4:4:4采样,因此导致8x8像素MCU,2x1代表4:2:2 - > 16x8像素MCU和2x2用于4:2:0 - > 16x16 pixl MCU。
每个采样率决定了组件如何存储在熵编码数据中,从而导致MCU。但现在每个组件(Y,Cb,Cr)都有自己的子采样率。
如何解读我从JPEG标记读取的日期,以判断整个图像中是否使用了MCU?
答案 0 :(得分:0)
在JPEG中,不同的组件通常采用不同的方式进行采样。这是因为人眼对亮度的变化比对颜色(色度)更敏感。
在您的示例中,亮度以全频率采样(与JPEG一样),而两个色度分量都被二次采样2x2(如果您愿意,可以水平和垂直二次采样)。这意味着对于每个色度样本,有4个亮度样本。
类似(C
= Cb,c
= Cr):
YCcY YCcY...
Y Y Y Y...
YCcY YCcY...
Y Y Y Y...
. . . .
. . . .
(这些是像素,样本可能会在流中存储为YYYYCcYYYYCc...
)
所以,你的问题:所有组件的最大子采样因子将决定MCU的大小。在你的情况下16x16。