[英]OpenGL ES vs OpenCL vs RenderScript for Android Image Processing
我需要為Android構建一個圖像處理應用程序。 性能是主要要求,我希望使用gpu compute。 我想知道哪3個庫最好用。
我知道OpenGL主要用於圖形,但也支持計算機着色器。
我不確定OpenCL在Android上的支持程度如何
RenderScript缺少文檔,我認為比其他庫慢。
對於圖像處理應用程序,最重要的部分是處理(轉換/操縱)內存中圖像的像素,而不是將圖像渲染到屏幕/緩沖區。
當然,這種處理是通用的,需要通用計算API。
因此,我們可以消除OpenGL ES。 它支持着色器,但OpenGL ES着色語言非常有限,絕對不適合一般處理。
RenderScript,根據這個 :
RenderScript不使用任何GPU或DSP內核。 這是Google故意模糊的文檔所鼓勵的常見誤解。 RenderScript曾經有一個OpenGL ES的界面,但已被棄用,並且除了動畫壁紙以外從未使用過。 RenderScript將使用多個CPU內核(如果可用),但我懷疑RenderScript將被OpenCL取代。
我在一家大型視頻游戲公司工作,我們沒有任何計划使用RenderScript。 我們認為Vulkan是更好的選擇。 我建議你也選擇Vulkan,但問題是現在支持Vulkan的Android設備數量非常少。
因此,要回答您的問題,請使用OpenCL。 雖然OpenCL不是Android平台的一部分,但許多制造商提供驅動程序甚至SDK來支持Android上的OpenCL。 至少,它在支持的設備數量方面優於Vulkan。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.