我在 Android 中使用 NV21 图像已经有一段时间了,我一直在跟踪一个可能由 NV21 图像中不正确的索引字节引起的错误。
这个问题的答案中的图像很好地概述了 Y、U 和 V 字节如何在图像缓冲区中定位。不确定是否允许,但我将其嵌入在下面:
- 当图像具有奇数尺寸(如奇偶校验)时会发生什么?这种格式甚至可能吗?
- 我们在某处有这种格式的官方规范吗?
对于具有奇数尺寸的图像(即 W 或 H 之一,在 WxH 图像中是奇数),您希望 Y 平面像往常一样被完全采样,WxH 样本,然后是 2(⌈W/ 2⌉ x ⌈H/2⌉) 色度样本,我们将每个图像维度除以 2,但向上取整而不是向下取整。
因此,图像边缘的某些像素的色度样本仅对应于 1 或 2 个原始像素,而不是 4 个。我希望这是有道理的。您可以在此链接中看到,以前有几个其他库在处理 YUV 图像中的奇数尺寸时遇到了问题。
对于您的第二个问题,我还没有看到官方规范,但是我在 android 框架中看到了一些处理这种格式的代码,我会看看是否可以挖掘到它的链接,并将其附加到这个答案中。