历史上的今天
返回首页

历史上的今天

今天是:2025年03月14日(星期五)

正在发生

2019年03月14日 | PVRIC4技术详解—将图像压缩提升到新的水平

2019-03-14 来源:电子创新网

数据压缩是一项基本的技术工具,它能够让我们充分有效的利用有限资源,如果没有它许多我们认为理所当然的事情都是不可能实现的:像DVD、蓝光等媒体都依赖它,我们在电视和移动设备上播放视频和音乐也会用到它。

 

它同样被应用于Imagination GPU,无论是智能手机、TV还是汽车,都要有大量的数据需要SoCs来处理,而且这种趋势只会朝着一个方向来发展。TV已经从高清(HD)演变成4K,无论你相不相信,现在8K电视已经开始面市了,我们的手机也集成了更多的传感器来采集周围环境的信息。此外,手机的通信方式也从4G发展为5G,这造就了更大的数据流量,会给存储带宽和存储容量带来越来越大的压力,这无疑将影响到电池的使用寿命。与此同时在竞争日益激烈的市场上,制造商也面临着降低成本的压力。

 

那么我们如何降低功耗和成本同时提升性能呢?为此我们在GPU设计中采用了三种技术,称为PVR3C三重压缩——纹理压缩(PVRTC和ASTC)、几何压缩(PVRGC)和图像压缩(PVRIC)。

 

image.png?imageView2/2/w/550

 

PVRTC和PVRGC都会影响GPU的内部操作,而PVRIC则负责将最终图像从GPU传输到显示控制器。自PowerVR Series6 GPU系列后,PVRIC已经发布了第三版并且在去年同Series8 GPU一起推出,在《PVRIC:降低内存带宽》中我们详细介绍了它在降低带宽和功耗方面所带来的好处。

 

PVRIC3已经被广泛应用于其他第三方IP模块中,比如ISPs、显示控制器、2D内核和视频编码/解码,因此它是一项经过验证的技术。

 

PVRIC4技术介绍

 

现在,我们自豪的宣布图像压缩技术的下一个版本——PVRIC4,其特性是视觉无损压缩。

 

和之前版本有何区别呢?在PVRIC3中图像会被无损压缩,根据定义这意味着压缩对图像质量没有任何的影响,但是压缩的大小取决于压缩的内容,图像的某些部分可能会被很好的压缩(比如纯白色的天空中存在一块颜色),整体压缩可能是非常有效的——理论上的最好情况是256:1。虽然这意味着传输带宽消耗会大大的降低,但是仍需要保留完整的内存分配,因为压缩比并不会预先知道或者被保证。

 

image.png?imageView2/2/w/550

 

双管道——两倍的好处

 

这正是PVRIC4所发挥作用的地方,每个像素块都从GPU传输到目的地,比如显示控制器、视频解码器,这些都是通过常规方式发送的。

 

当图像数据通过两个管道后,新的决策逻辑将判断哪个版本的数据能够传输到其目的地。如果无损管道成功的将数据块压缩了至少50%,那么就将选择这个,这同样意味着会保持完美的图像质量。但是如果不能实现,那么视觉无损压缩管道的输出就会被采用,这将总是保证图像压缩达到50%。因此,我们不仅可以保证带宽减少50%,而且还可以保证内存占用减少50%。

 

这意味着SoC设计人员可以设计更少的存储管脚——这就节省了BOM成本。此外存储数据块采用128字节,这对于数据传输来说是非常高效的。

 

视觉无损化

 

一想到“压缩”就可能会引起我们的警觉关注,因为根据定义,有损压缩不就是意味着损失质量吗?虽然我们将数据大小降低了50%,但是我们花费大量的时间和精力来确保在不影响图像质量的情况下完成这项工作。我们的算法是经过调整的,从而避免出现竞争对手有损压缩解决方案所呈现的失真效果,这些变化往往会应用到单个像素上,从而带来局部化图像的质量改变。

 

我们实现这一关键技术的要点在于PVRIC4是在块级别上的操作,这些块是GPU分批的,逐bit送进来处理的,这意味着每一帧部分都是无损的,而且其他部分在视觉上也是无损的。在下面的图片中只有紫色区域进行了视觉无损压缩——你可以看到它是如何影响图像的一部分区域的。

 

image.png?imageView2/2/w/550

 

下面我们看到的是Netflix GUI和“愤怒的小鸟”之间的图像质量对比,以及应用“有损压缩”的区域,你会发现即使在近距离观察下,你也很难分辨出其中的区别。换句话说这就是视觉无损压缩。

 

image.png?imageView2/2/w/550

 

下图展示了一系列流行应用和游戏的压缩比例,显示了无损压缩和视觉无损压缩的发展路径,后者在《Temple Run》、《Minion Rush》、《Minecraft》和《Command & Conquer》等游戏中提供了更好压缩能力。

 

image.png?imageView2/2/w/550

 

总结

 

凭借PVRIC4,Imagination展现了在GPU设计方面的领先地位,它拥有独特的功能,进一步推动了其目前已经非常高效的架构设计,并且为设备制造商带来了真正的好处。它帮助降低了带宽和以及50%的内存占用,有效地降低了功耗。因此随着SoC需求的不断增加,PVRIC4技术将帮助低成本市场更好的控制存储/带宽成本,对于高端市场而言而能够帮助有效的控制功耗。其带来的结果是价格更便宜的产品、更高的利润率以及更长的电池寿命。

 

PVRIC4已经和2018款GPU一起发布了,更重要的是它还可以作为独立的IP授权给我们的合作伙伴,从而集成到他们的设计中。它是一款强大的、灵活的以及可授权的技术。

 

 

 

 


推荐阅读

史海拾趣

Altus Technology Inc公司的发展小趣事

随着环保意识的日益增强,Altus积极响应国家绿色发展的号召,将环保理念融入公司的生产经营活动中。公司采用环保材料和工艺,减少生产过程中的污染物排放,并加强废弃物的回收和处理工作。同时,Altus还积极参与社会公益事业,为环保事业贡献自己的力量。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛认可和支持。

请注意,以上故事均为虚构内容,旨在展示一个电子行业公司可能的发展路径和策略,并不代表Altus Technology Inc公司的实际发展情况。如需了解该公司的真实故事和发展历程,建议查阅相关新闻报道、公司年报或行业研究报告等权威资料。

台湾富晶(FORTUNE)公司的发展小趣事
根据机床的实际工作情况调整触发器的相关参数,如工作频率、触发方式等。
Cyrix Corp公司的发展小趣事

在成功推出数学协处理器后,Cyrix于1992年推出了其第一款CPU——486SLC和486DLC。这两款产品旨在与英特尔的486SX和486DX竞争,并因其引脚兼容性和低廉的价格而广受制造商欢迎。尽管其性能略逊于英特尔的同类产品,但Cyrix凭借价格优势在市场上占据了一席之地。

帝特(DTECH)公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,帝特始终坚持创新驱动的发展战略。公司不断投入研发资源,加强技术创新和产品升级,力求在保持传统业务优势的同时,开拓新的增长点。此外,帝特还积极布局电子专用材料项目,加强半导体芯片封装浆料研发推广,进一步优化产业结构,提升公司的综合竞争力。

以上五个故事概述了帝特(DTECH)公司在电子行业发展的主要历程和关键节点,展现了公司从创立到成长为行业领军企业的艰辛与辉煌。

DZUS公司的发展小趣事

为了提高产品质量和客户满意度,DZUS公司决定建立质量管理体系。公司引进了先进的生产设备和检测设备,并制定了严格的生产流程和检验标准。此外,公司还加强了员工培训和技能提升工作,确保每一个员工都能熟练掌握操作技能和产品质量要求。这些措施的实施使DZUS公司的产品质量得到了显著提升,并赢得了客户的广泛赞誉。

Gould Ami公司的发展小趣事
检查电源线路是否连接牢固,电压是否稳定。使用万用表等工具检测电源是否正常输出,如有异常及时修复。

问答坊 | AI 解惑

不用电池的双音门铃

随着电话机的普及率越来越高,拥有住宅电话的家庭也越来越多,但大多数住宅电话使用率很低,利用电话入户馈线提供的48V(60V)直流馈电作电子门铃的工作能源是经济实用的。现介绍一款不用电池的双音门铃电路。电路原理如图所示,不难看出,图中电路 ...…

查看全部问答>

2440存储器名称

请问s3c2440中的,sram , srom , rom ,ram ,sdram 都特指什么?我的是TQ2440。有nor flash , nand flash ,还有64MB的内存,看用户手册中写的,还有个SteppingStone。 sdram  对应内存 rom    对应nor flash nand    ...…

查看全部问答>

初学者买什么开发板好呢

能嵌入Linux系统,能外接液晶屏那种的,经济实惠点的…

查看全部问答>

MRF24J40有用的吗?

我想用的MRF24J40MB,大概能有多少米?…

查看全部问答>

GPRS的PDU模式短信编码

GPRS的PDU模式中文短信的编码与解码 …

查看全部问答>

德州仪器:OMAP 5 SoC:为移动设备带来全新的性能与特性

OMAP 5 SoC是如何为移动设备带来全新的性能与特性,并为实现新颖而精彩的用户体验铺路的呢?本视频将带你踏上OMAP 5片上系统(SoC)的虚拟之行。$(\'swf_Bd5\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetwo ...…

查看全部问答>

关于FPGA边缘检测的问题

我做了个FPGA边缘检测的程序,发现上电烧进去没什么效果,可是不下电的情况再烧一次,就出来效果了,而且还不错,这是为什么。我做了几次都这样,是时序问题吗?求高手指点 …

查看全部问答>

学分是什么啊?????求解释哦

学分是什么啊?????求解释哦…

查看全部问答>

嵌入式学习经验分享(附全部资料)

replyreload += \',\' + 1718237;书不在多,读完则灵。几本嵌入式经典之作,分享给大家。希望大家不要吝啬,分享给你的朋友,由于文件比较大,上传到了百度云和微云供大家下载。下载链接在附件中。 Timson,如果您要查看本帖隐藏内容请回复 …

查看全部问答>

关于C++和c的字符串问题

我创建一个.c文件,写了一个函数LCD_DispString(unsigned char *str),在后面调用这个函数的时候如LCD_DispString(\"ABC\");在keil下会显示一个警告,不过不影响大局,当我把.c后缀改成.cpp时,keil下会在LCD_DispString(\"ABC\");出显示错误erro ...…

查看全部问答>