問題タブ [renderscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3150 参照

android - AndroidでOpenGLとRenderscriptの割り当てを共有する方法

Allocationへの出力で提供される画像を処理するRenderscriptがあります。この割り当てをOpenGLプログラムのテクスチャとして使用したいのですが、割り当てからテクスチャIDを取得する方法がわかりません。

一方、グラフィックRenderscriptを使用できることはわかっていますが、非推奨になっているため、同じ結果を得るには他の方法があるはずです。

0 投票する
1 に答える
287 参照

android - 生成されたレンダリング スクリプト ファイルにより、「無効な Unicode」エラーが発生する

Renderscript のサンプルをいくつか試しています (現在、カルーセル サンプルを試しています)。

gen フォルダーで "Invalid Unicode" という奇妙なエラーが発生し続け、たとえば、生成された各ファイルで "\u" をポイントします ("..." は無視してください):

したがって、 "\user" の場合、その "\u" 部分について、無効な Unicode であることが示されます。しかし、私はそれを生成した人ではありません。

この奇妙な問題を解決するにはどうすればよいですか?

カルーセル サンプルについて言えば、このサンプルに代わるものはありますか? 同じことを行う Renderscript の使用を避けることさえできるもので、古い Android API でも機能するものはありますか? 代わりにOpenGLを使用するものでしょうか?

0 投票する
1 に答える
326 参照

android - Renderscript-2つの画像を処理する

ドキュメントをすばやく調べて、2つの画像を入力として渡す明確な方法を見つけられませんでした-誰かがこれを行ったか、現在の実装で可能かどうかを知っていますか?

乾杯、ジョシュ

0 投票する
1 に答える
412 参照

android - Androidでビットマップを高速に操作する方法

ピクセルの色の変更、透明度、最初のビットマップに別のビットマップを透明度でペイントする、ズーム、トリミング、マスクの適用など、アンドロイドのビットマップに対していくつかの操作を行う必要があります。今はJavaで作っていますが、本当に遅いです。nexus 4 で 600x600 ピクセルの画像を計算するには、約 5 秒かかります。

この操作に適したテクノロジーは何ですか?

OpenGL ES 2.0 を使用するライブラリ GPUImage を試しましたが、画像にマスクを適用しようとすると問題が発生しました。マスク サイズは元の画像として 600x600 であるため、1440000 色値の配列を渡す必要がありますが、GLSL 言語はそうではありません。そのような大きな配列をサポートします。360000 の vec4 値も大きすぎます。画像全体を texture2d オブジェクトとして渡すことができるかもしれませんが、その方法がわかりません。誰かが私にチュートリアルを教えてください。

2 番目のオプションは renderscript です。Android 2.3 を搭載した携帯電話で高速なビットマップ操作が必要なため、あまり適していませんが、全体として、3.0 以降のデバイスで速度が向上することは良いことです。問題は、2 番目のビットマップのデータ (360000 の float4 値またはビットマップ自体) を渡す方法でした。私もそれについての情報を見つけることができなかったので、誰かが私にアドバイスやチュートリアルをくれたらありがたいです.

3 番目のオプションは、NDK を使用することです。しかし、それが十分に速いかどうかはわかりません。また、一般的にndkを使用し、特にndkを使用した画像処理を開始するための適切な情報を見つけることができません。だから私は再びアドバイスやチュートリアルが必要です.

全体として、高速な画像処理の他の方法を教えてください。また、この 3 つの方法に関するアドバイスやチュートリアルを教えてください。そして、画像の操作を本当に高速にする最良の方法は何ですか?

0 投票する
1 に答える
1775 参照

android - Renderscriptは遅いですが、大丈夫ですか?

画像彩度フィルターには2つの意味があります。1つはJavaを使用し、もう1つはRenderscriptを使用します。実際、私のネクサス4デバイスではrenderscriptが遅いのですが、どうすればよいですか?

Javaの実装:

Renderscriptの実装:

Java部分:

Renderscriptスクリプト:

renderscriptはcpuとネイティブコードの4つのコアすべてを使用する必要があり、Android 4.2.2ではgpuコアである可能性があるため、javaよりもはるかに高速である必要があると思いました。

0 投票する
1 に答える
1713 参照

android - renderscript を何度も呼び出すと、「RS スレッドの予想数よりも少ない数が作成されました」というエラーが生成されます

たくさんのアイテムと画像を含むスピナーを備えたアプリケーションがあります。

ユーザーがリストの項目を選択するたびに、多数 (1 ~ 5) の renderscript スクリプトが実行され、画像のピクセルが変更されます。

約 30 の選択を行った後、アプリケーションがエラーでクラッシュします。

これがスタックトレースです。

renderscript で使用されている不要なスレッドを何らかの形で閉じる必要があると思います。

アップデート:

エラーが異なる場合があります。

また

それは行を指します

更新 2:

これが明るさコントラスト フィルターです。毎回新しい in と out の割り当てと Script オブジェクトを作成すると、メモリが消費されると思います。renderscript アクションのチェーンに 1 つの割り当てを使用することは可能ですか? たとえば、ビットマップから割り当てを行い、次に明るさコントラストフィルターを適用し、次に同様の実装で別のフィルターを適用しますか?

また、いくつかのアクション内に加えて、かなり大きな int 配列 (360000 int) があります。S criptC オブジェクトを作成するたびに、レンダースクリプト内で定義されたすべての配列にメモリを割り当てるため、メモリがかなり速くリークする可能性があります。

質問を投稿したとき、毎回 RenderScript オブジェクトを作成するコメント行がコメントされておらず、メモリ リークが速くなりました。

端末はnexus4です。

たとえば、これは配列を含む RS ファイルです (他のファイルはこれに似ていますが、配列が含まれていない場合があります)。

0 投票する
1 に答える
668 参照

android - Android RenderScript から計算値を取得する

[1]のソース例を作ってみたのは、データ型「整数」を使ってJavaとRenderscriptの間でデータを交換したいからです。この例ではすべて正常に動作していますが、RenderScript から Java にデータを戻すことができません。デバッグ出力で計算値を確認できますが、使用return mScript.get_numberC();すると 0 が返されます。[2] も試しましたが、これもうまくいきません。Allocation を使用せずに、RenderScript からデータを受け取る可能性はありますか? もう 1 つの質問は、Allocations 2 Integer Arrays を使用して RenderScript に渡し、1 つの計算された配列を使用せずに取得する方法rsPackColorTo8888(mono)です。私のアプリケーションはグラフィック関連ではないためです。

[1] Allocations を使用して Android RenderScript との間で配列値を渡す方法

[2] renderscript と android フレームワークの間でデータを交換する方法は?