簡體   English   中英

Android RenderScript與不確定元素一起使用

[英]Android RenderScript use with indeterminate elements

我想知道RenderScript引擎是否可以用來優化算法。

該算法對圖像進行迭代處理,直到滿足某些條件為止。 在處理所需的迭代次數之前無法知道。 但是我只看到RenderScript示例可以在具有N個元素的良好定義的分配上工作(典型示例是內核對位圖中的每個像素執行一個內核)。

一種解決方案是創建一個Java“ while”周期,並在每次迭代時調用RenderScript代碼(它將只有一個Element,一個內核周期),並在算法完成時從java中進行檢查。 這會表現嗎? 我的意思是,我將必須將位圖傳遞給RenderScript,這會導致整個副本被制作嗎? 在這種情況下,NDK會不會是更好的解決方案?

哪種方法是解決此問題的最佳方法?

謝謝! 胡安·伊格納西奧(Juan Ignacio)

您可以在每次迭代中都使用Java進行流控制,但這並不是最好的方法,並且需要大量額外的東西來確保您不會阻塞UI線程和類似的事情。

做到這一點的好方法是創建一個單線程RS函數(而不是使用__attribute((kernel))或類似的東西創建的函數),並使用rsForEach生成每次迭代。 迭代完成后,rsForEach將返回,您可以通過腳本全局變量檢查終止條件,並在必要時啟動另一個迭代。 這也將開銷降至最低,因為您將在整個迭代過程的運行時都位於RS環境中(較少的JNI轉換,較少的CPU內核開/關轉換,諸如此類)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM