美文网首页
ASTC压缩格式总结

ASTC压缩格式总结

作者: 雄关漫道从头越 | 来源:发表于2020-08-04 16:50 被阅读0次

    ASTC图片纹理压缩探讨
    Unity3D - 关于ASTC压缩格式的一些资料搜集
    Using ASTC Texture Compression for Game Assets
    Texture compression formats for platform-specific overrides

    ASTC中ARM研发的一种贴图压缩格式,从iOS9(A8架构)开始支持ASTC压缩格式 ,相对于PVRTC2/4而言,ASTC(4X4)的压缩比会增加到0.25,不过显示效果也会好很多,而且不要求图片长宽相等且为2的幂次方。支持Android OpenGL ES 3.1 和 Vulkan 设备。

    支持的GPU:
    tvOS (all), iOS (A8), Android (PowerVR 6XT, Mali T600 series, Adreno 400 series, Tegra K1).
    如果GPU不支持这种压缩格式,则解压为RGB或者RGBA。会增加cpu解压时间,并占用较多内存。
    2016年之后的安卓手机基本支持这种压缩格式
    iphone6以及之后的机型支持这种压缩格式

    图片压缩核心思想是将大图分为多个颜色块,每个颜色块固定大小为16-bytes,单个颜色块里的颜色像素怎么划分不关心。意思是将图片分成多个颜色块,每个颜色块固定大小为16-bytes,但是每一个16-bytes的颜色块中放多少个像素是可选的,分别为4x4,5x5,6x6,8x8,10x10和12x12,单颜色块中放的像素越多那么压缩率越高,相应的质量也越差。

    公式

    像素大小 = 16-bytes / 分块宽高 * 8-bit;
    压缩率 = 原始像素大小(32-bit) / 像素大小;
    图像大小 = 原始图片大小 / 压缩率;

    假设一张4MB的1024*1024原始图片:

    块宽高 像素大小(bits) 压缩率 压缩后图片大小
    4*4 8 4 1MB
    5*5 5.12 6.25 655KB
    6*6 3.56 8.99 455.62KB
    8*8 2 16 256KB
    10*10 1.28 25 163KB
    12*12 0.89 35.95 113.93KB

    图片大小(MB)=长x宽x像素大小(bits)/8/1024/1024

    相关文章

      网友评论

          本文标题:ASTC压缩格式总结

          本文链接:https://www.haomeiwen.com/subject/flewrktx.html