ASTC中ARM研发的一种较新的贴图压缩格式,从IOS9(A8架构,现在都iOS12了)开始支持ASTC压缩格式 ,相对于PVRTC2/4而言,ASTC(4X4)的压缩比会增加到0.25,不过显示效果也会好很多,而且不要求图片长宽相等且为2的幂次方。而且Android设备也支持。
图片压缩核心思想是将大图分为多个颜色块,每个颜色块固定大小为16-bytes,单个颜色块里的颜色像素怎么划分不关心,这里只记录下ASTC格式图片压缩后的像素大小、图片压缩率、图片总体大小。
对此格式图片的压缩率可能是一些公司面试的考点。
公式
像素大小 = 16-bytes / 分块宽高 * 8-bit;
压缩率 = 原始像素大小(32-bit) / 像素块大小;
图像大小 = 原始图片大小 / 压缩率;
假设一张4MB的1024*1024原始图片:
块宽高 | 像素大小(bits) | 压缩率 | 压缩后图片大小 |
4*4 | 8 | 4 | 1MB |
5*5 | 5.12 | 6.25 | 655KB |
8*8 | 2 | 16 | 256KB |
10*10 | 1.28 | 25 | 163KB |
12*12 | 0.89 | 35.95 | 113.93KB |
参考:
https://www.khronos.org/opengl/wiki/ASTC_Texture_Compression
https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt
https://blog.csdn.net/ltycloud/article/details/81630515
在官方文档上也有ASTC的压缩率:
https://docs.unity3d.com/Manual/class-TextureImporterOverride.html
原文地址:https://www.cnblogs.com/bylle/p/12212823.html
时间: 2024-10-14 18:41:34