Iphone 420YPCBCR8BIPLANARVIDEORAGE到YUV420?/如何将Y和Cbcr平面复制到单个平面?

Iphone 420YPCBCR8BIPLANARVIDEORAGE到YUV420?/如何将Y和Cbcr平面复制到单个平面?,iphone,image-processing,avfoundation,yuv,Iphone,Image Processing,Avfoundation,Yuv,我已经使用AVFoundation捕获了视频。我已经设置(视频设置)并进入outputsamplebuffer kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange格式。但我需要YUV420格式进行进一步处理 我的怀疑是 1.420YpCbCr8BiPlanarVideoRange、420YpCbCr8BiPlanarFULLRange、420YpCbCr8PlanarFullRange、420YpCbCr8PlanarFullRange和YUV420之

我已经使用AVFoundation捕获了视频。我已经设置(视频设置)并进入outputsamplebuffer kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange格式。但我需要YUV420格式进行进一步处理

我的怀疑是

1.
420YpCbCr8BiPlanarVideoRange、420YpCbCr8BiPlanarFULLRange、420YpCbCr8PlanarFullRange、420YpCbCr8PlanarFullRange和YUV420之间的差异?
2.如何将420YPCBCR8BIPLANARVIDEORAGE转换为YUV420?
3.如何将YUV420转换为32BGRA

(四) 或者其他方法来做这个???这是任何开源库或苹果框架

我已经经历了。。。。。。它具有以下
planar8、planerF、RGBA8888
等图像转换功能。。。有没有办法将这些格式与
32BGRA/YUV420/420YPCBCR8BIPLANARVIDERANGE
相等,并满足我的要求

提前谢谢


提前感谢

主要区别在于:

如果采用双平面格式,则Y数据(亮度)和CbCr数据(色度或颜色信息)位于称为平面的两个单独内存区域中。您可以使用索引为0的
CVPixelBufferGetBaseAddressOfPlane
获取Y数据,索引为1获取CbCr数据。如果格式为平面
,则两种数据位于同一平面(首先是所有Y值,然后是所有Cb值,最后是Cr值)

如果您使用的是全范围格式,则0到255之间的值将用于每个亮度或色度值视频范围格式仅使用16到235之间的值(出于某些历史原因)

术语420表示格式包含多少亮度和色度信息。它基本上表示每个像素有亮度信息,每个2x2块有色度信息


就我所知,YUV420不是一种精确指定的格式。它通常用于平面YpCbCr 420格式。

@codo,非常感谢详细解释。+1。还有一个小疑问。然后kCVPixelFormatTypeƤYPCBCRC8BIPLANARVIDEAGE和YUV 420是相同的写入???@Codo::是否可能将双平面转换为平面?。因为我的编解码器需要YUV420 planer,但我有biplanner格式。加速制框图像转换库具有用于刨床的选项。它是否对我有用?@Asta ni enohpi:关于YUV420 fomat的第三个问题发生了什么?你把它(连同我的答案)删除了吗?@Codo:在编辑我的问题时无意中删除了。由于网络不好,无法回滚。将双平面图像格式转换为平面只是:将两个平面复制到单个内存块中。平面格式只是亮度和色度平面的串联。但我仍然不确定您需要什么样的目标格式:YUV420根本不是一个精确的描述。虽然我给了你很多关于图像格式的信息,但我觉得你实际上需要一种视频格式。请尽可能多地发布有关目标格式的详细信息。2)我认为420YPCBCR8BIPLANARVIDEORNGE是NV12,YUV420是I420。要从NV12转换为I420,应该使用libyuv。它还用于I420->BGRA