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的性能优势! 

 

640?wx_fmt=png


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等。


640?wx_fmt=png


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

 

640?wx_fmt=png


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


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



LiveVideoStack  招募

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



640?wx_fmt=jpeg

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