图形纹理压缩:应用图片的瘦身之路

Flyme | 2016-02-25

当我们打开一个系统应用,很有可能会出现图片加载速度慢的情况,这时候内心总不免会怀疑一下:系统那么卡?

2.png

其实应用内图片无法及时加载的情况,除了当前网络环境的问题,也很有可能是因为应用图片太多、太大,以至于图片无法快速渲染到屏,所以造成了手机很卡的错觉。为解决图片太大的问题,大家通常会选择压缩图片大小,而最常用的压缩方式就是 —— 图形纹理压缩技术,用一个通俗的比喻来说就是给应用图片瘦身。采用图形纹理压缩最大的好处就是可以在节省内存的同时,提高手机的运行速度。

有了“瘦身”的想法,还需要选择适当的瘦身方式,搭配起来才能起到更好的效果。 Flyme 给图片“瘦身”的方式就是采用 ETC 格式(ETC格式是一种为感知质量而设计的有损算法,其依据是:较之于色度的改变,人眼对亮度的改变更为敏感),它支持任何类型的 GPU ,而且还能够更好地发挥手机硬件的优势。许多系统也会使用 ETC 格式来给应用图片“瘦身”,但最终的效果却不尽相同,大多数会存在渲染不到位的问题,即应用图片与 View 之间存在割裂感。

为解决经过压缩处理后的图片无法很好地渲染到屏幕的问题, Flyme 从应用层级出发,建立了一个独有的渲染架构。通过这个架构,我们可以不修改 framework 代码,轻松实现应用与 View 的无缝结合,让经过图形纹理压缩的图片能够更快、更好地渲染到屏幕。目前,相机、音乐、扫一扫等系统应用已使用了这套渲染架构,大家可以在使用过程中体验到应用特效、模糊显示的流畅表现。 Flyme 渲染架构是从应用层级出发搭建的,这意味着使用了这套渲染架构的系统应用,即便是适配到第三方的手机上,依然能够实现渲染的效果。

3.png

这就是Flyme图形纹理压缩技术,我们希望在你每一次使用手机、打开应用的过程中,都能感受我们为你创造流畅的体验。