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

相关推荐
疯狂打码的少年1 分钟前
【数据结构】排序算法:归并排序与基数排序
数据结构·笔记·算法·排序算法
LuminousCPP1 小时前
嵌入式-51单片机入门(三)-数码管驱动:从单管点亮、多位扫描到动态刷新与消隐原理
笔记·单片机·嵌入式硬件·51单片机
小柯博客1 小时前
01 · 点亮 STM32MP25 的硬件视频编解码:VPU 与那些“安静“的坑
c语言·笔记·stm32·单片机·嵌入式硬件·嵌入式·视频编解码
欧叶冲冲冲1 小时前
uv Python 环境管理笔记
笔记·python·uv
自小吃多1 小时前
Capture软件原理图PDF输出笔记
笔记·嵌入式硬件
存在morning1 小时前
【PySpark 学习笔记 四】DataFrame 进阶:窗口函数、高级聚合与复杂类型
笔记·学习
Wang's Blog2 小时前
PostgreSQL笔记62: 分区表维护最佳实践——默认分区、锁策略与性能调优
数据库·笔记·postgresql
Wang's Blog3 小时前
PostgreSQL笔记58: 性能监控工具全景——从内核指标到操作系统诊断
数据库·笔记·postgresql
chushiyunen12 小时前
欧洲地理笔记
笔记
吃着火锅x唱着歌12 小时前
Effective C++ 学习笔记 条款43 学习处理模板化基类内的名称
c++·笔记·学习