Ale*_*ier 8 iphone opencv core-image ios accelerate-framework
任何人都可以推荐一个真正快速的API,理想的NEON优化用于在iPhone上使用CPU在运行时进行YUV到RGB转换吗?令人遗憾的是,加速框架的vImage没有提供任何合适的东西,并且使用vDSP,转换为浮点数和返回看起来不是最理想的,几乎和我自己编写NEON一样多.
我知道如何通过着色器使用GPU,事实上已经这样做了,用于显示我的主视频平面.不幸的是,我还需要在运行时创建并保存显示的子区域的RGBA纹理.这个问题的大部分好答案都涉及着色器,但我不想将GPU用于额外的工作,因为:
(1)虽然我可以使用RenderTextures和我的YUV着色器来转换和缓存区域,但我不想为应用添加任何更多的同步/复杂性.(我已经将纹理从CVTextureCache传递到Unity3D ......在许多情况下,我已经在Unity3D的后面切换状态,并且不想再做任何调试...)
(2)更实际的是我正在编写一个游戏,并且没有任何GPU可供使用(因为游戏通常没有 - 我已经提供了更多关于如何在过去几年中从GPU中获取内容的演示而不是如何放东西......)
(3)在iPad上,我有一个备用核心坐在那里什么都不做.
虽然有很多图书馆可以做YUV到RGBA,但我很乐意节省编写自己的NEON版本的时间.现在我正在使用这样的OpenCV实现:
cv::cvtColor(avFoundationYUVCaptureMat, BGRAInputImage, CV_YUV420sp2BGRA, 4);
Run Code Online (Sandbox Code Playgroud)
这是正确的,但结束日期缓慢.
如果有人以前看过其他实现(CoreImage?FFMpeg?)并且可以推荐一个我会非常感激.
谢谢,亚历克斯.
我所做的就是谷歌yuv rgb neon,这就是我发现的 - https://code.ros.org/trac/opencv/browser/trunk/opencv/android/android-jni/jni/yuv2rgb_neon.c?rev=4083
正如评论所述,它仍然很粗糙,您可能必须对其进行调整以转换为 RGBA,但这将是理所当然的。
据我所知,NEON 博客上应该还发布了其他此类功能 - 查看 hilbert-space、webshaker、arm 软件支持博客等
| 归档时间: |
|
| 查看次数: |
3245 次 |
| 最近记录: |