Google与Binomial合作开源Basis Universal GPU纹理编解码器

近期,Google与Binomial宣布合作开源Basis Universal GPU纹理编解码器,在保持GPU性能效率的同时,提升Web、桌面端与移动应用程序中图像传输的性能。本文来自Google开源博客。

文 /  Google开源博客

译 / John

原文

https://opensource.googleblog.com/2019/05/google-and-binomial-partner-to-open.html

近期,Google和Binomial宣布已合作开源Basis Universal GPU纹理编解码器(https://github.com/binomialLLC/basis\_universal),在保持GPU性能效率的同时,提升Web、桌面端和移动应用程序中图像传输的性能。此版本填补了图形压缩生态系统中的一个关键技术空白,同时也补充了Draco几何压缩的部分早期工作。

Basis Universal纹理格式在GPU上的资源占用比传统JPEG格式小6-8倍,但文件存储所需空间大小却与JPEG相似,这使得它成为当前那些效率低下且无法跨平台运行的GPU压缩方法(如JPEG、PNG等)的一个良好替代方案。Basis Universa纹理格式创建的压缩文件适用于各种常见应用场景:游戏、VR和AR、地图、照片、短视频等。

如果没有通用纹理格式,开发人员将仅有以下两个选项:

  • 使用GPU格式但无法降低存储大小

  • 使用其它可减少存储大小的格式但却无法获得与GPU媲美的性能。

无论是对GPU制造商、软件开发人员还是无法获得良好跨平台体验的最终用户而言,改进并维护这么多不同的GPU格式对整个音视频开发生态来说都是一件负担。我们正在通过这个颇具内在灵活性的解决方案(如可选的更高质量模式)简化这一过程,对每个人来说都可以更轻松地改进与维护。

那么,这一切是如何运作的?首先我们使用编码器压缩图像并选择对于项目而言有意义的质量设置参数(例如在知道其共享同一个调色板的情况下,为短视频提交多个图像优化以提升其性能)。在渲染之前插入代码转换器转换代码从而将中间格式转换为计算机可以读取的GPU格式。即使在GPU上,图像也会在整个过程中保持压缩状态!GPU不需要解码和读取整个图像而只会读取需要的部分图像,从而尽可能发挥GPU的性能优势!

Basis Universal可有效针对最常见的GPU格式进行优化

Google和Binomial将会合作并继续支持、维护和添加新功能,Basis Universal的初始版本会将源文件转码为以下GPU格式:PVRTC1 opaque、ETC1、ETC2 basic alpha、BC1-5和BC7 opaque。未来几个月将会增加更多的功能,包括BC7 transparent、ASTC opaque和alpha、PVRTC1 transparent和更高质量的BC7 / ASTC等。

Basis Universal纹理格式显著降低纹理的透射,同时保持图像质量几乎不受到影响。

Basis Universal纹理格式提高.jpeg和.png的GPU内存使用率

通过建立这种合作伙伴关系,Google与 Binomial希望在所有主流浏览器中采用此转码器,通过WebGL API和即将推出的WebGPU API使每个人都可以访问高性能的跨平台压缩纹理。将这一套开源组件无缝集成至工作流程,让每位开发者都可尽情使用最先进的开源编码器。

LiveVideoStack  招募

LiveVideoStack正在招募编辑/记者/运营,与全球顶尖多媒及技术专家和LiveVideoStack年轻的伙伴一起,推动多媒体技术生态发展。了解岗位信息请在BOSS直聘上搜索“LiveVideoStack”,或通过微信“Tony_Bao_”与主编包研交流。

LiveVideoStackCon 2019北京正在招募讲师,无论你是技术派还是学术派,亦或是行业专家,无论你的团队有多小、有多新,都可以来申请成为LiveVideoStackCon的讲师。点击【阅读原文】了解更多大会相关信息。

本文分享自微信公众号 - LiveVideoStack(livevideostack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang