6

我对 NV12 格式有点困惑。我正在查看页面以了解格式。我目前的理解是,如果你有一个尺寸的图像或视频,640 x 480那么 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字节。所以输出缓冲区数组中的总字节数将是。乘以 2,(640/2) * (480/2)因为 uv 平面将占用两个字节。

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

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

4

2 回答 2

31

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

420

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

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

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

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

于 2013-07-07T20:17:11.737 回答
2

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

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

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

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

于 2020-11-05T18:52:26.873 回答