当前位置:   article > 正文

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

android gpu合成

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

切入点

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

这个专利说明了:

  • 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的根本区别】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/734552
推荐阅读
相关标签
  

闽ICP备14008679号