我已经使用Android中的NV21图像工作了一段时间,我一直在跟踪可能由NV21图像中的错误索引字节引起的错误。
this question答案中的图像很好地概述了Y,U和V字节在图像缓冲区中的位置。不确定是否允许,但我将其嵌入下面:
答案 0 :(得分:2)
对于具有奇数维度的图像(即W或H中的一个,在WxH图像中为奇数),您希望Y平面一如既往地被完全采样,使用WxH样本,然后是2(⌈W/2⌉x⌈H/2⌉)色度样本,我们将每个图像维度除以2,但是向上舍入而不是向下舍入。
因此,图像边缘的一些像素的色度样本只对应于1或2个原始像素,而不是4个。我希望这是有意义的。您可以在此link中看到其他几个库以前在YUV图像中处理奇怪维度时遇到了问题。
对于你的第二个问题,我还没有看到官方规范,但我在android框架中看到了一些处理这种格式的代码,我会看看我是否可以挖掘它的链接,然后附加它这个答案。