0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PowerVR GPU采用PVR3C三重压缩技术来解决问题

Dbwd_Imgtec 来源:未知 作者:李倩 2018-07-25 15:05 次阅读

由于屏幕分辨率的提高以及越来越复杂的渲染管道,使得游戏和其他应用对于带宽的要求也越来越高,大量的数据需要从内存拷贝或者写入。现在用户普遍认为在无其他特殊情况下设备应该能够支持2K的屏幕分辨率,高端游戏则具有更大的几何复杂性,真正在屏幕上显示图像之前渲染管道通常要涉及多个中间渲染目标。即使一些休闲类游戏也可能具有一些全屏后的处理效果,需要帧缓存数据从片外存储器中读取和写入。内存访问是非常消耗功率的,占用带宽越大功耗则越高,这对于功率预算紧张的嵌入式系统尤其是个棘手的问题。

PowerVR GPU采用PVR3C三重压缩技术来解决这个问题,这三重压缩解决方案包括纹理压缩(涉及PVRTC和ASTC)、几何压缩(PVRGC)和本文的主题图像压缩(PVRIC)。

PowerVR图片压缩(PVRIC)

如上文所说,在现代实时图形应用中内存带宽的最大压力之一就是生成高质量图像所需的大量中间渲染对象。一个明显的例子就是创建立方体环境贴图(cube maps),通常用于反射效果。这包括从一个不动点向六个方向渲染一个场景,最后结果会形成一个立方体的贴图纹理,然后对场景中的对象进行类似反射的采样。其他示例包括分辨率缩放、渲染小地图或其他场景视点、渲染平面反射贴图,更不用说无尽的屏幕空间和后期处理效果了,比如可分离模糊处理、SSAO、景深效果以及色调映射等。

一个立方体贴图的六个面可用于汽车上的近似反射,在汽车的窗户上可以看到天空的倒影。

PVRIC通过高效、无损的压缩方案大大降低了内存带宽成本,这种压缩方案通常会使得图像大小减少50%(依赖于很多元素)。前文提到的目标渲染在写入GPU之前就进行了压缩,然后从内存中读取时会被解压,因为这种压缩是无损的,所以可以从解压数据中重构得到完美的原始图像,这也意味着图像的质量不会降低。

上图展示了与GPU的所有交互,但更有利的是这有可能会将PVRIC技术集成到SoC级别的显示管道中,使得最终的渲染图像在写入内存之前会进行压缩,然后在显示控制器中进行解压,这将更有效地节省总体带宽。

在许多移动游戏和App中,纹理资源通常都会采用众所周知的格式进行压缩,比如ETC、PVRTC等,但是开发者会选择保留一部分未经压缩的纹理资源,比如字体或UI纹理,这些纹理在缩放时需要保持清晰和不失真。PVRIC方案的另一个好处是它允许将相同的无损压缩应用到任何未经压缩的纹理上,然后上传给GPU(如果纹理使用的是多种被支持的格式之一),根据不同的应用,这可能会带来更大幅度的带宽减少。

应用带宽分析

我们在Synaptics BG5CT板卡(集成PowerVR Series8XE GE8310GPU,它采用了最新一代的PVRIC技术——PVRICv3)上运行API trace测试了多款流行的应用,我们看到了这种压缩方案所带来的性能提升,尤其是带宽消耗的显著降低。

下面的表格展示了不同应用的测试结果,需要注意的是,在这款器件上PVRIC并没有集成到SoC的显示管道中,如果集成了那么我们将会看到最后的帧缓存图像会有更好的压缩效果,正如前文所述。因为我们使用的是安卓平台,帧缓存压缩会应用到最终的渲染操作,Android SurfaceFlinger会将这些压缩帧写入内存,读取到GPU中。如果是这样,那么SoC显示管道也将受益于SurfaceFlinger的最终合成结果。

那么这些结果到底意味着什么?这些数字可能有点儿误导人。我们可以清楚的看到所有应用占用的总带宽都有所减少,但有些应用比其他应用带宽的降低程度要大得多,正如上文所提到的PVRIC技术涵盖了纹理的渲染和解压缩,但这只是总带宽的一部分,几何图形、着色器等等也会占用一定的带宽,但是它们并不会受PVRIC操作的影响,所以对于整体带宽的占用情况我们能做的只是降低,虽然系统范围内的数据保持在较高的水平,但是我们想隔离受PVRIC影响的相关带宽参数,借助我们的内部分析工具可以让我们更精确的完成这些操作(虽然我们不能消除一切——比如纹理压缩)。

在这里,我们隔离的只是GPU在执行渲染操作时占用的带宽,而忽略了贴图操作所需要的几何处理。为了简化这一过程,测试平台上已经禁止了这些任务的重复。我们还能够识别和忽略其他进程的任务,现在我们需要分析为什么有些app会那样运行,这需要我们了解app是如何在图形API层工作的,不妨深入了解一下PVRTrace。

《minecraft》(《我的世界》)

我们使用PVRTrace对Minecraft这款应用进行分析,我们发现总体带宽节省率比较低(大约2.42%),但是隔离图片/纹理带宽方面显示带宽节省率则更高(大约17.76%)。Minecraft采用的是完全未压缩的纹理技术,因此PVRIC的效果比较显著,尽管这与典型场景中几何图形的数量(大约13万4千个三角形)相比非常的少,更不用说很多纹理的尺寸非常的小,PVRIC只是完成了它所能实现的,但是对于Minecraft并没有太多的事情可以做。请记住:通过集成到显示管道中,我们可以看到发送给显示控制器的帧缓存更好的优化效果。

《愤怒的小鸟 2》

在愤怒的小鸟 2这款应用中,几何图形(1万6千个三角形)和纹理内容各自占用的带宽比例则更协调一些,因此我们能够更加清晰的看到PVRIC所带来的好处,系统整体带宽节省43%,隔离带宽节省56%。这款游戏既采用了压缩的纹理格式也采用了一些未压缩的纹理格式,因此PVRIC非常起作用。此外,整个场景在进行最终的展示之前会采用渲染中间件的形式(很多应用都使用这种技术来处理分辨率缩放或后续处理操作),这两种因素的结合对于PVRIC技术是很好的展示。

《真实赛车 3》

真实赛车3是另一款使用大量几何图形(测试时显示16万个三角形)的应用,而且纹理/曲面也占用了相当一部分的带宽。纹理压缩技术(PowerVR的PVRTC技术)在这款应用中被广泛采用,这非常棒,但是还有很多未压缩的纹理需要借助PVRIC技术来处理,此外还涉及一组512 x 512的立方体环境贴图和全屏幕纹理渲染。最后的百分比可能不太明显,但是这很好的展示了PVRIC与PVRTC相结合所带来的好处,PVRTC可用于处理大部分的纹理,PVRIC则用于处理其他内容。

从这些工作负载中可以看出,无论图像数据是否占用应用程序的大部分带宽,采用PVRIC技术后都会带来显著的影响,在很大程度上减少了图像占用的带宽。

功耗分析

为了能够更清楚的了解PVRIC技术和降低带宽对于功耗的影响,我们修改了平台,使其支持功耗分析并连接了数据采集设备从而可以收集一些功耗数据,下面的图表就是我们的发现:

在愤怒的小鸟2同一段5秒的运行过程中,我们发现:使用PVRIC时内存的功耗会更低一些,采用两组数据之间的差值并进行平滑处理,我们发现内存功耗降低了18%。这个效果非常的显著,对于采用电池驱动的设备比如移动手机可以在充电之前使用更长的时间,当然对于功耗和电池寿命的影响还有很多其他因素,而且不同设备之间也会有所差别。

总结

总而言之,PVRIC技术是PVR3C压缩策略关键的组成部分,对于使用的带宽来说其压缩比可高达(有时甚至超过)2:1。这会对设备存储器的功耗产生实质性的影响,通过对我们纹理和几何压缩方案的测试,很明显可以得出PVR3C是全面的带宽效率方案,能够从整体上提高系统的效率,从而让我们能够实现更加全面的低功耗解决方案。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7144

    浏览量

    161978
  • 压缩技术
    +关注

    关注

    0

    文章

    14

    浏览量

    8338
  • powervr
    +关注

    关注

    0

    文章

    98

    浏览量

    30946

原文标题:【原创】PVRIC:降低内存带宽

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    三重压缩技术应对PowerVR图片方案

    作者:Robin Britton 由于屏幕分辨率的提高以及越来越复杂的渲染管道,使得游戏和其他应用对于带宽的要求也越来越高,大量的数据需要从内存拷贝或者写入。现在用户普遍认为在无其他特殊情况下设备应该能够支持2K的屏幕分辨率,高端游戏则具有更大的几何复杂性,真正在屏幕上显示图像之前渲染管道通常要涉及多个中间渲染目标。即使一些休闲类游戏也可能具有一些全屏后的处理效果,需要帧缓存数据从片外存储器中读取和写入。内存访问是非常消
    的头像 发表于 08-30 09:48 3642次阅读

    CC2650无线连接三重概述

    `CC2650无线连接三重概述`
    发表于 02-25 10:13

    用于LCD背光的电路显示三重降压模式LED驱动器

    电路显示三重降压模式LED驱动器。每个通道为其LED驱动500mA电流。每根灯串可以有8到12个LED,具体取决于类型
    发表于 07-11 06:58

    PowerVR Furian架构有什么功能?

    PowerVR Furian架构是面向嵌入式GPU的一款全新架构,是业界领先的PowerVR Rogue架构的继任者,新的架构引入了很多全新设计的组件,帮助进一步提升性能、功效、性能密度。其包含了Rogue架构整个生命周期中加入
    发表于 08-02 06:41

    EL9115三重模拟延迟线资料分析

    STD-020的无铅要求。3、 有关湿度灵敏度水平(MSL),请参见EL9115的设备信息页。有关MSL的更多信息,请参阅技术简介TB363。典型性能曲线应用程序信息EL9115是一个三重模拟延迟线接收器
    发表于 09-17 17:22

    Imagination Rogue GPU技术有哪些优势?

    PowerVR 6系列GPU与竞争对手Mali-T600系列GPU的规格对比PowerVR的看家本领——TBDR渲染技术
    发表于 02-26 07:39

    PowerVR GX5300 GPU怎么样?

    PowerVR GX5300 GPU为极低功耗和面积需求而优化面向可穿戴和IoT的GPU用例
    发表于 03-09 08:04

    嵌入式MCU中标准的三重中断控制设计资料大合集

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是嵌入式MCU中标准的三重中断控制设计。  我们知道在 MCU 裸机中程序代码之所以能完成多任务并行实时处理功能,其实主要是靠中断
    发表于 11-04 06:40

    STM32F407三重ADC配置过程是怎样的?

    STM32F407三重ADC配置过程是怎样的?
    发表于 11-23 07:15

    怎么实现嵌入式MCU中标准的三重中断控制设计?

    怎么实现嵌入式MCU中标准的三重中断控制设计?
    发表于 11-29 06:02

    【ELT.ZIP】OpenHarmony啃论文俱乐部—gpu上高效无损压缩浮点数

    的面向字节的GPU压缩器。它并行化了著名的bzip2压缩器的个阶段,与类似时代的硬件CPU实现相比,实现了可测量的加速。对应的并行化解压器没有实现。在有些工作中,
    发表于 07-27 10:16

    Imagination PowerVR GPU获得联发科和展讯青睐

    英国ImaginaTIon可以说与ARM一样在全球赫赫有名,其自主开发的PowerVR自诞生以来一直是全球图形、GPU计算和视觉IP市场领导者,IBM和飞思卡尔都曾经独独青睐PowerVR
    发表于 06-07 13:58 145次阅读

    新一代的PowerVR GPU与前一代的GPU相比

    PowerVR Series9XE和 9XM GPU保持在填充率密度方面的领先地位,并提供显著的性能密度提升 2017年9月21日 ─ Imagination Technologies宣布,推出
    发表于 04-09 07:19 3395次阅读

    Telechips将采用PowerVR技术开发车用芯片

    Telechips未来战略部门主管Leanne Lee表示:“我们选用Imagination的PowerVR Series9XTP GPU主要有两个原因——PowerVR在汽车行业的悠久历史和丰富经验以及其
    发表于 07-04 09:47 1234次阅读

    PowerVR GPU架构的性能优化建议

    最近在看移动GPU优化的时候对TiledBased GPU有一些疑惑,特别是常说的Alpha-Blend比Alpha-Test在移动GPU上快的奇特性质,于是找了powerVR相关的文
    的头像 发表于 03-15 17:24 3206次阅读
    <b class='flag-5'>PowerVR</b> <b class='flag-5'>GPU</b>架构的性能优化建议