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

Ast*_*hpi 9 iphone image-processing yuv avfoundation

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

我怀疑是

中1.difference 420YpCbCr8BiPlanarVideoRange,420YpCbCr8BiPlanarFULLRange, 420YpCbCr8PlanarFullRange,420YpCbCr8Planar和YUV420?
2.我可以将420YpCbCr8BiPlanarVideoRange转换为YUV420吗?
3.如何将YUV420转换为32BGRA?

4)或其他一些方法来做到这一点??? 这是任何开源库或Apple Framework ....

我已经经历了加速框架......它有以下planar8,planerF,RGBA8888等的图像转换 ...任何方式与这些格式相等 32BGRA/YUV420/ 420YpCbCr8BiPlanarVideoRange 并做我的要求?????

提前致谢

提前致谢

Cod*_*odo 30

主要区别是:

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

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

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

YUV420是 - 据我所知 - 不是精确指定的格式.它通常用于平面YpCbCr 420格式.

  • 将双平面图像格式转换为平面就是:只需将两个平面复制到一个内存块中即可.平面格式只是亮度和色度平面的串联.但我仍然不确定你需要什么样的目标格式:YUV420根本就不是一个精确的描述.虽然我已经向您提供了大量有关图像格式的信息,但我的印象是您实际上需要一种视频格式.请尽可能多地发布有关目标格式的详细信息. (2认同)