gpt4 book ai didi

iphone - 使用 CPU 在 iOS 上最快的 YUV420P 到 RGBA 转换

转载 作者:可可西里 更新时间:2023-11-01 03:31:23 24 4
gpt4 key购买 nike

谁能推荐一个真正快速的 API,最好是针对 iPhone 使用 CPU 在运行时进行 YUV 到 RGB 转换的 NEON 优化? accelerate 框架的 vImage 没有提供任何合适的东西,遗憾的是,使用 vDSP,转换为 float 并返回似乎不是最佳选择,几乎与我自己编写 NEON 一样多。

我知道如何通过着色器使用 GPU,事实上,我已经这样做来显示我的主视频平面。不幸的是,我还需要在运行时创建和保存显示器子区域的 RGBA 纹理。这个问题的大部分好答案都涉及着色器,但我不想使用 GPU 来完成额外的工作,因为:

(1) 虽然我可以使用 RenderTextures 和我的 YUV 着色器来转换和缓存区域,但我不想向应用程序添加任何更多的同步/复杂性。 (我已经将纹理从 CVTextureCache 传递到 Unity3D...在很多情况下,我已经从 OpenGL 切换状态到 Unity3D,并且不想再进行任何调试...)

(2) 更实际地说,我正在编写游戏,并且没有任何空闲的 GPU(因为游戏通常没有 - 在过去的几年里,我已经提供了更多关于如何从 GPU 中获取东西的演示而不是如何把东西放在上面......)

(3) 在 iPad 上,我有一个备用核心坐在那里什么都不做。

虽然有很多库可以将 YUV 转换为 RGBA,但我很乐意节省编写自己的 NEON 版本的时间。现在我正在像这样使用 OpenCV 的实现:

cv::cvtColor(avFoundationYUVCaptureMat, BGRAInputImage, CV_YUV420sp2BGRA, 4);

这是正确的,但最终的速度很慢。

如果有人以前看过其他实现(CoreImage?FFMpeg?)并且可以推荐一个,我将不胜感激。

谢谢,亚历克斯。

最佳答案

如果你在不同的平面上有 YUV 并且没有色度下采样,那么你应该可以使用 vImageMatrixMultiply_Planar8 进行转换。

关于iphone - 使用 CPU 在 iOS 上最快的 YUV420P 到 RGBA 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com