誰能推薦一個非常快的iOS API轉換RGBA,最好在運行時使用的CPU的iPhone 做YUV到RGB轉換NEON優化?加速框架的vImage並沒有提供任何合適的,可悲的是,使用vDSP,轉換爲浮動和背面似乎不是最理想的,幾乎與自己編寫NEON一樣多。最快YUV420P對使用CPU
我知道如何通過着色器使用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?)並且可以推薦一個,我會非常感激。
謝謝, 亞歷克斯。
如果你理解了NEON代碼,那麼這隻會是一件容易的事,我不知道。 – Cthutu
我希望這篇文章和系列文章中的下一篇將啓發你http://blogs.arm.com/software-enablement/161-coding-for-neon-part-1-load-and-stores/ – Sam