GPU PRO 5 - 4.6 Adaptive Scalable Texture Compression 笔记

本笔记仅为个人的理解,如果有误欢迎指出。

Adaptive Scalable Texture Compression

自适应可拓展纹理压缩

简称ASTC,移动端一种常用的贴图压缩格式,在现代的游戏引擎中多有应用,比如Untiy。

ASTC 是 ARM 公司开发的一种纹理压缩格式,其目标是为此前种类繁杂、灵活性不足的纹理压缩格式提供一种统一且灵活的解决方案。它是一种基于块的纹理压缩算法。

基于块的意思是对数据的处理都是基于Block的,也就是图片会被分割成很多的大小相同的小的Block,然后一个Block的数据会被用更少的数据表示,压缩后的数据也只用来表示这个Block的数据。

而ASTC中,每个块都可以存储最多4个顶点(正方形的四个角)的颜色,并根据从预设的颜色计算公式中挑选合适的算法保存。如下图,在文章中这个算法称为分布模式(Distribution Pattern)

最后,在解压缩时就可以根据块上存的顶点颜色以及颜色的分布模式计算出当前块压缩前的颜色。由此可见,ASTC是一种有损的图像压缩格式,因为不是所有颜色块都能有完美的颜色分布模式保证颜色和压缩前一致。

同时,一个Block中,可能存在多个符合条件的分布模式,ASTC算法就会在这里对压缩后最终图像的质量和时间做权衡。质量要求越高,压缩算法在最终决定最佳方案之前,就会尝试更多种候选组合。

但是解压缩的时间是固定的。

参考资料:

深入理解ASTC