ASTC图片纹理压缩探讨

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原始图片:

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*4841MB
5*55.126.25655KB
8*8216256KB
10*101.2825163KB
12*120.8935.95113.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

   
    
    
    
    
    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值