首页 > Java > 正文

优化 Android Java 循环,根据 FloatBuffer 掩码数组复制一些元素归零的数组

王林
发布: 2024-02-06 09:06:03
转载
1264人浏览过
问题内容

我在 android 中有一个如下所示的函数,它有点慢,是我的实时应用程序的瓶颈。我正在考虑以某种方式使其更快,也许通过 gpu 或任何可能的方法。有哪些方法可以使用并行化使其更快、更高效?

private int[] getArray (ByteBuffer byteBuffer) {
int[] array = new int[width * height];

FloatBuffer fb = byteBuffer.asFloatBuffer();
for (int i = 0; i < width* height; i++) {
    float probability = 1 - floatBuffer.get();
    if (probability > 0.9) {
        array[i] = originalBuffer[i];
    }
  }
return array;
}
登录后复制

上下文用于分割任务。基本上,ml 模型在字节缓冲区中返回一个掩码。我将它传递给这个函数以使背景变成粉红色。在此仅供参考。


正确答案


(评论太长)但是你可以轻松做到:替换

float probability = 1 - floatbuffer.get();
if (probability > 0.9) {
登录后复制

if (floatbuffer.get() < 0.1) {
登录后复制

而且:老实说,我不知道编译器是否编写了一个机器代码来计算 width*height每个循环中计算中止标准(我希望/认为不是) >)。但尝试一下:添加该行

立即学习Java免费学习笔记(深入)”;

int product = width*height;
int[] array = new int[product];
登录后复制

然后设置

for (int i = 0; i < product; i++) {
登录后复制

这样,你就消除了循环中的所有算术运算(除了必不可少的 i++< )。

以上就是优化 Android Java 循环,根据 FloatBuffer 掩码数组复制一些元素归零的数组的详细内容,更多请关注php中文网其它相关文章!

相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号