我正在製作相機應用程序,此應用程序將爲用戶提供一些過濾器。目前我的代碼是在NDK上,它工作正常,但是我想讓它更快一點。看來GPU和opengl ES 2.0是走的路。我唯一關心的是GPU的內存限制。由於現代相機需要5-10mp的圖像,而GPU內存的限制遠小於此。我想知道是否有辦法解決這個限制。在我看來,唯一合乎邏輯的選擇是將圖像分成小部分,然後在GPU上處理它們,最後將它們拼湊成最終圖像。我的問題是,如果這種方法仍然有利於性能,並且還有其他選擇,可以在移動GPU上對高分辨率圖像進行圖像處理。如何在GPU上處理GPU高分辨率圖像處理的內存限制?
編輯:我需要澄清一點,我想使用GPU進行圖像處理,所以我的目標不是渲染結果到屏幕。我將渲染到另一個紋理並將其保存到磁盤。
這真的取決於你在做什麼。 GPU提供的優勢在於它們高度平行,但並不是所有問題都可以通過向其中投入更多內核來簡化。 – thecoshman
我想得到一個普遍的問題的一般解決方案,但是目前我正在嘗試編寫「拉普拉斯金字塔」,它在CPU上完成時代價非常昂貴。 – dirhem
好吧,如果您正在爲圖像應用色調,您希望將相同的操作應用於所有位,那麼加載到GPU是一個明顯的解決方案。模糊圖像等任務有點棘手,因爲每個像素的新值取決於像素範圍。但就你而言,你必須考慮硬件之間存在很多差異,例如他們支持多少內存,紋理有多大,可以發送給他們多少數據。他們甚至可能無法執行OpenCL樣式處理 – thecoshman