NV12格式和UV平面

时间:2013-07-05 10:46:04

标签: c# yuv color-space libyuv

我对NV12格式有点困惑。我正在查看this页面以了解格式。 我目前理解的是,如果您有640 x 480 diminsion的图像或视频,则Y平面将具有640 x 480个字节,而U和V两个平面都具有640/2 x 480/2。这并不意味着U平面具有640/2 x 480/2且V平面具有640/2 x 480/2且仅具有640/2 x 480/2个字节。所以out缓冲区数组中的总字节数将是。 2乘以(640/2) * (480/2),因为uv平面将占用两个字节。

byte [] myArray new byte[(640 * 480) + (2 * (640/2) * (480/2)) ];

所以问题是我以正确的方式理解它?我是以指定NV12格式的格式制作字节数组。

2 个答案:

答案 0 :(得分:20)

NV12格式被二次采样为4:2:0

420

框架的总大小为W x H x 3 / 2其中W为宽度,H为高度。

vga分辨率中的1帧是460800字节,其中

  • Y-part为640x480字节
  • Cb-part为640 * 480/4 = 76800字节
  • Cr部分是640 * 480/4 = 76800字节

希望这能回答你的问题...

答案 1 :(得分:0)

要添加到第一个答案,NV12格式将U和V色度数据交织。

对于640x480图像帧,NV12表示形式由720行640字节组成:

  • 前480行各包含640个亮度(Y)值。

  • 最后240行各包含(U,V)个值的320个元组。

相关问题