我不理解文档,例如:
AV_PIX_FMT_YUV422P planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
我不明白"(每2x1 Y样品1个Cr& Cb样品)"的含义, 这是什么意思4:2:2?我无法在任何地方找到解释。
另外,我看到像AV_PIX_FMT_YUV420P这样的类型有12bpp。这是否意味着每个像素由12位表示?如果是这样,它是如何表现的?我应该为每个像素分配两个字节并忽略最后4位吗?或者我应该分配像ceil((#pixels)* 1.5)bytes这样的东西?
答案 0 :(得分:3)
AV_PIX_FMT_YUV422P平面YUV 4:2:2,16bpp,(每2x1 1 Cr& Cb样品) Y样本)
对于这里的所有意图和目的,Cb = U
和Cr = v
(这里没有区别,但它只会让事情变得更加混乱,所以现在最好忽略)
P
中的AV_PIX_FMT_YUV422P
代表平面。意味着每个通道都有自己的平面或缓冲区。 Y,U和V有一个单独的图像。
在4:2:2
中,色度(U
和V
)平面是亮度(Y
)平面高度的一半。因此,如果您的图像是1920x1080,则色度平面为1920x540。
对于4:2:0铬平面是半高半宽,960x540。
4:2:2 16bpp = (8 × 1920 × 1080 + 8 × 1920 × 1080 + 8 × 960 × 540) / (1920 × 1080)
4:2:0 12bpp = (8 × 1920 × 1080 + 8 × 960 × 540 + 8 × 960 × 540) / (1920 × 1080)
我应该为每个像素分配两个字节吗?
不,你应该分配3架飞机并独立填充。