Toybrick

android 7.1 native使用opengl渲染,cpu占用高

moyhu

注册会员

积分
104
楼主
发表于 2020-11-6 16:37:11    查看: 5728|回复: 5 | [复制链接]    打印 | 只看该作者
在native层用opengl渲染yuv数据,调用glTexImage2D接口传入数据,cpu占用率会提高10%左右,注释掉则不会,如果这个接口里面只是单纯做拷贝应该不会这么高。而且开启mpp h264的编码工作之后,渲染效率会降低很多,1920x1080从1秒30帧降到1秒10帧,增加日志查看耗时基本上是阻塞在glTexImage2D调用。
1、自己的apk里面没有opengl库,运行的时候应该就是链接rk的库,rk封装的opengl是用gpu计算的吗,有没有办法降下cpu?
2、h264编码影响到opengl的工作,有没有解决的办法?
回复

使用道具 举报

moyhu

注册会员

积分
104
沙发
 楼主| 发表于 2020-11-7 11:10:27 | 只看该作者
把多个地方注释发现,降低渲染帧率的地方不是编码,而是本地摄像头画面的预览,用安卓的surface开启预览之后,自己的渲染帧率就降下来了
回复

使用道具 举报

leok

版主

积分
894
板凳
发表于 2020-11-11 09:37:30 | 只看该作者
1、封装的opengl?  opengles吧,理论上cpu不会太高;
2、编码不影响gl,用的不同ip核
回复

使用道具 举报

leok

版主

积分
894
地板
发表于 2020-11-11 09:40:13 | 只看该作者
moyhu 发表于 2020-11-7 11:10
把多个地方注释发现,降低渲染帧率的地方不是编码,而是本地摄像头画面的预览,用安卓的surface开启预览之 ...

关于这个问题,可以做几个实验,从文件里头读视频数据,送编码,然后存文件;把几个步骤拆分,先不显示,再逐步把显示加进去。分析问题点具体在哪里。
回复

使用道具 举报

leok

版主

积分
894
5#
发表于 2020-11-11 09:45:20 | 只看该作者
另外,glTexImage2D有替换接口,可以实现零拷贝,具体请网络上查找
回复

使用道具 举报

moyhu

注册会员

积分
104
6#
 楼主| 发表于 2020-11-11 09:54:49 | 只看该作者
leok 发表于 2020-11-11 09:45
另外,glTexImage2D有替换接口,可以实现零拷贝,具体请网络上查找

能不能说下接口名字,对opengl不是很了解,还有请教下,rga yuv转rgb,都是planar模式吗,用rgb播放器渲染出来都是几个黑白小画面显示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表