【Android图像:GPU与HardwareComposer Layer合成的区别 】

9 篇文章 1 订阅
1 篇文章 0 订阅

关于硬件耗电问题与软件程序的编写,从手机厂商的角度来分析 应该是比较靠谱的。
起码他们测试设备,有硬件。

切入点

搜到魅族一个专利,里面写的很清楚
魅族专利:图像处理的方法及装置

这个专利说明了:

  • HWC (HardwareComposer)和GPU 不是一个硬件。
  • HWC硬件在Layer合成上优于GPU
  • OpenGL手机上调用GPU进行合成
  • 什么时候用GPU、什么时候用HWC呢?(如下文)

GPU 与 HWC 合成的决策

针对情景1. 动态图像刷新频繁

用HwC更加高效

  • 调用OpenGL进行合成显示,这通常会导致GPU的任务繁重并增加耗电量,从而严重影响智能终端的续航能力及运行性能。
  • 避免图形处理器GPU重复拷贝内存,降低动态图像处理过程中的功耗;
  • HWC(Hardware Composer,硬件合成),图层直接通过这种硬件合成(HffC),无须传递到内存即可直接显示到终端界面上,

针对情景2. 静态图像刷新为0

使用OpenGL调用GPU合成

  • 不需要对内存进行重复读写 (资源已经上传到GPU)
  • 如果终端显示的画面全部使用HffC,相应的硬件会一直处于工作状态,从而产生额外功耗,并降低相应硬件的使用期限
    • 我推测HWC 集成电路是个没有存储功能,只是逻辑电路,输入—逻辑电路—》输出,所以要一直读取内存layer数据,再产出合成后的layer数据。

为什么SurfaceView效率高

因为 SurfaceView 是Layer,实际上 layer composite (合成)的时候,用的是HWC。
而TextureView是在OpenGL上申请的纹理,用的是GPU合成,还会合成两遍(Layer内一遍,Layer间又一遍)

具体见博客 【Android图像1:Android中TextureView和SurfaceView的根本区别】

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值