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
    +关注

    关注

    27

    文章

    4392

    浏览量

    126520
  • Power
    +关注

    关注

    1

    文章

    496

    浏览量

    67368
收藏 人收藏

    评论

    相关推荐

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

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

    想用STM32F373的个SDADC同步采集电压信号,DMA是工作在什么模式?怎么配置?

    我想用STM32F373的个SDADC同步采集电压信号,请问如果要搭配DMA工作,DMA是工作在什么模式?怎么配置?(没有看到像F4系列的三重ADC采样的工作模式解释) 最好是有个SDADC同步采样+DMA搬运的例程,谢谢了
    发表于 03-28 06:49

    FPGA通过UDP以太网传输JPEG压缩图片

    在 FPGA 上实现了 JPEG 压缩和 UDP 以太网传输。从摄像机的输入中获取单个灰度帧,使用 JPEG 标准对其进行压缩,然后通过UDP以太网将其传输到另一个设备(例如计算机),所有这些使用FPGA(Verilog)实现。
    的头像 发表于 01-26 09:30 319次阅读
    FPGA通过UDP以太网传输JPEG<b class='flag-5'>压缩图片</b>

    恶劣环境对互连解决方案的影响及应对思路

    应对恶劣环境,工程师必须仔细评估应对不同恶劣环境的不同要求,兼顾材料选择、设计考量和测试协议等,并定制相应的互连解决方案,以确保连接器在延长使用寿命的同时具有强大而可靠的性能。
    的头像 发表于 01-25 11:21 182次阅读
    恶劣环境对互连解决<b class='flag-5'>方案</b>的影响及<b class='flag-5'>应对</b>思路

    ECG子系统设计主要挑战及应对方案

    电子发烧友网站提供《ECG子系统设计主要挑战及应对方案.pdf》资料免费下载
    发表于 11-23 10:43 0次下载
    ECG子系统设计主要挑战及<b class='flag-5'>应对方案</b>

    AD8330输入1db压缩点和输出阶互调点的疑问求解

    您好!如下是AD8330输入1db压缩点和输出3阶互调点与增益控制电压Vdbs的关系,比如对于Vdbs=0的情况,输入1db压缩点大约为18dbm,而输出阶互调点大约为11dbm. 根据放大器
    发表于 11-22 07:50

    那些应对APT攻击的最新技术

    电子发烧友网站提供《那些应对APT攻击的最新技术.pdf》资料免费下载
    发表于 11-10 10:42 0次下载
    那些<b class='flag-5'>应对</b>APT攻击的最新<b class='flag-5'>技术</b>

    关于图片压缩的idea插件

    今天主要是想给大家介绍最近自己开发的图片压缩插件,该插件用到了 tinypng 的在线服务。大家可能都知道,tinypng提供的图片压缩服务特别好用,
    的头像 发表于 10-09 15:06 282次阅读
    关于<b class='flag-5'>图片</b><b class='flag-5'>压缩</b>的idea插件

    无损质量等级视频浅压缩领域的实践与探索

    感知无损强调压缩图像的质量达到无损等级。最开始时起名是轻压缩,与重压缩相对,主要强调在编解码的过程中相对较低的计算复杂度。
    发表于 09-20 10:57 449次阅读
    无损质量等级视频浅<b class='flag-5'>压缩</b>领域的实践与探索

    三星半导体谈应对内存墙限制的解决方案

    8月10日, 三星半导体在本次第五届OCP China Day 2023(开放计算中国技术峰会)上分享了两大应对内存墙限制的创新技术解决方案和开放协作的业务战略。
    的头像 发表于 08-10 14:16 701次阅读

    触景无限感知压缩方案优势

    基于深度学习的AI编码智能去图像信息冗余,实现更高压缩率。同时AI识别ROI兴趣区域低倍率压缩保留物体特征,背景区域高倍率压缩提升压缩比。
    发表于 06-13 15:31 176次阅读
    触景无限感知<b class='flag-5'>压缩</b><b class='flag-5'>方案</b>优势

    在语音芯片行业中,常用的压缩技术主要分为这几类

    在语音芯片行业中,常用的压缩技术有以下几类:   1. ADPCM压缩技术:ADPCM(自适应差分脉冲编码)是一种相对简单的压缩
    的头像 发表于 06-01 16:25 403次阅读

    zSwap 技术压缩算法介绍

    压缩可以降低占用空间,顾名思义,内存压缩就是压缩内存,节省内存空间。就目前的技术而言, I/O 的速度远远慢于这 RAM 操作速度。因此,如果频繁地做 I/O 操作,不仅影响 flas
    的头像 发表于 05-19 09:25 804次阅读

    Nano封装和SE050C2配置是否存在任何已知问题或兼容性问题?

    无法创建安全通道。三重检查一切,没有什么明显的。 问题:Nano 封装和 SE050C2 配置是否存在任何已知问题或兼容性问题?
    发表于 05-18 06:55

    模型压缩技术,加速AI大模型在终端侧的应用

    电子发烧友网报道(文/李弯弯)当前,全球众多科技企业都在积极研究AI大模型,然而因为参数规模太大,要想实现AI大模型在边/端侧部署,需要用到模型压缩技术。当前谷歌、微软、腾讯等厂商在该领域均有布局
    的头像 发表于 04-24 01:26 1988次阅读