如何使用vImageMatrixMultiply将YUV刨床数据转换为32 bpp,8bpc RGBX?

时间:2014-05-27 21:45:59

标签: ios avfoundation accelerate-framework vimage

我有YUV平面数据(420YpCbCr8BiPlanarFullRange),我想将其转换为RBGX(RBGA但在alpha通道中有255)。

void * const luminescencePlaneBytes = ...;
void * const cbChrominancePlaneBytes = ...;
void * const crChrominancePlaneBytes = ...;

// ... Convert YUV planar -> RBGX 32bpp, 8bpc.
void *convertedBytes = ... 

使用矩阵乘法函数可以vImage docsthis answer状态:

vImageMatrixMultiply_Planar8

但是,我无法找到任何示例代码。

1 个答案:

答案 0 :(得分:3)

420-> RGBA888涉及一些上采样,这意味着vImageMatrixMultiply_Planar8不会单独进行。您需要将色度通道的大小加倍。之后,您应该能够使用适当的矩阵来完成它。

如果您有权访问iOS 8开发人员种子,那么我建议您查看vImageConvert_420Yp8_CbCr8ToARGB8888