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

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

3天内不再提示

三重压缩威廉希尔官方网站 应对PowerVR图片方案

工程师兵营 2018-08-30 09:48 次阅读

作者:Robin Britton

由于屏幕分辨率的提高以及越来越复杂的渲染管道,使得游戏和其他应用对于带宽的要求也越来越高,大量的数据需要从内存拷贝或者写入。现在用户普遍认为在无其他特殊情况下设备应该能够支持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 GE8310 GPU,它采用了最新一代的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是全面的带宽效率方案,能够从整体上提高系统的效率,从而让我们能够实现更加全面的低功耗解决方案。

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

    关注

    28

    文章

    4740

    浏览量

    128953
  • Power
    +关注

    关注

    1

    文章

    499

    浏览量

    67766
收藏 人收藏

    评论

    相关推荐

    tas5548 AD,BD和三重调制的输出模式是在哪个地方设置啊?

    AD,BD 和三重调制的输出模式是在哪个地方设置啊!
    发表于 10-17 06:44

    STM32F407三重ADC采样设置死机怎么解决?

    使用STM32F407三重ADC,ADC1ADC2 ADC3分别分配8个通道(ADC1 把芯片测温等个内部通道算上),一个24个通道。定时器TIMER3定时触发ADC1采样。ADC采用同步规则模式
    发表于 07-26 06:43

    具有施密特触发器输入的三重输入或门SN74HCS4075数据表

    电子发烧友网站提供《具有施密特触发器输入的三重输入或门SN74HCS4075数据表.pdf》资料免费下载
    发表于 05-27 10:00 0次下载
    具有施密特触发器输入的<b class='flag-5'>三重</b><b class='flag-5'>三</b>输入或门SN74HCS4075数据表

    具有施密特触发器输入的三重3输入NOR门SN74HCS27数据表

    电子发烧友网站提供《具有施密特触发器输入的三重3输入NOR门SN74HCS27数据表.pdf》资料免费下载
    发表于 05-27 09:46 0次下载
    具有施密特触发器输入的<b class='flag-5'>三重</b>3输入NOR门SN74HCS27数据表

    具有开放漏极输出的三重缓冲器/驱动器SN74LVC3G07数据表

    电子发烧友网站提供《具有开放漏极输出的三重缓冲器/驱动器SN74LVC3G07数据表.pdf》资料免费下载
    发表于 05-24 11:15 0次下载
    具有开放漏极输出的<b class='flag-5'>三重</b>缓冲器/驱动器SN74LVC3G07数据表

    具有开漏输出的三重缓冲器/驱动器SN74LVC3G07数据表

    电子发烧友网站提供《具有开漏输出的三重缓冲器/驱动器SN74LVC3G07数据表.pdf》资料免费下载
    发表于 05-24 10:25 0次下载
    具有开漏输出的<b class='flag-5'>三重</b>缓冲器/驱动器SN74LVC3G07数据表

    具有开放漏极输出的三重缓冲器/驱动器SN74LVC3G07数据表

    电子发烧友网站提供《具有开放漏极输出的三重缓冲器/驱动器SN74LVC3G07数据表.pdf》资料免费下载
    发表于 05-21 11:10 0次下载
    具有开放漏极输出的<b class='flag-5'>三重</b>缓冲器/驱动器SN74LVC3G07数据表

    三重反相器门SN74LVC3G04 数据表

    电子发烧友网站提供《三重反相器门SN74LVC3G04 数据表.pdf》资料免费下载
    发表于 05-21 10:57 0次下载
    <b class='flag-5'>三重</b>反相器门SN74LVC3G04 数据表

    三重反相器门SN74LVC3GU04 数据表

    电子发烧友网站提供《三重反相器门SN74LVC3GU04 数据表.pdf》资料免费下载
    发表于 05-21 10:45 0次下载
    <b class='flag-5'>三重</b>反相器门SN74LVC3GU04 数据表

    漏极开路输出的三重逆变器缓冲器/驱动器数据表

    电子发烧友网站提供《漏极开路输出的三重逆变器缓冲器/驱动器数据表.pdf》资料免费下载
    发表于 05-21 10:44 0次下载
    漏极开路输出的<b class='flag-5'>三重</b>逆变器缓冲器/驱动器数据表

    具有施密特触发器输入的三重3输入NAND门SN74HCS10数据表

    电子发烧友网站提供《具有施密特触发器输入的三重3输入NAND门SN74HCS10数据表.pdf》资料免费下载
    发表于 05-10 11:41 0次下载
    具有施密特触发器输入的<b class='flag-5'>三重</b>3输入NAND门SN74HCS10数据表

    STM32F40使用三重ADC采集6通道数据,占用CPU时间很长导致采集的数据很小怎么解决?

    请教各位大佬,我使用STM32F405配置了三重ADC模式采集6个通道的电压值,在需要开启转换的时候使用ADC1->CR2 |= 0x40000001这条代码开启的,但是使用示波器后
    发表于 04-11 08:08

    三重配电开关TPS2043和TPS2053数据表

    电子发烧友网站提供《三重配电开关TPS2043和TPS2053数据表.pdf》资料免费下载
    发表于 04-02 10:44 0次下载
    <b class='flag-5'>三重</b>配电开关TPS2043和TPS2053数据表

    3MHz降压稳压器和三重线性稳压器TPS65300-Q1数据表

    电子发烧友网站提供《3MHz降压稳压器和三重线性稳压器TPS65300-Q1数据表.pdf》资料免费下载
    发表于 03-05 16:29 0次下载
    3MHz降压稳压器和<b class='flag-5'>三重</b>线性稳压器TPS65300-Q1数据表

    三重无缓冲逆变器74LVC3GU04-Q100数据手册

    电子发烧友网站提供《三重无缓冲逆变器74LVC3GU04-Q100数据手册.pdf》资料免费下载
    发表于 02-19 09:41 0次下载
    <b class='flag-5'>三重</b>无缓冲逆变器74LVC3GU04-Q100数据手册