格式对比实验室

纹理压缩格式对比

用本站工具同款编码器,把同一张图片编码成 BC、ETC、ASTC 和 Basis Universal,再用真实测量结果比较画质、文件大小和显存占用。

1

源图片

把图片拖到这里,或点击选择

正在加载图片…

处理尺寸(最长边)

较大的图片会被缩小(不会放大),并裁剪到完整的 4×4 块。

图片始终保留在你的浏览器中。

2

格式

已选 8 个
桌面 · BC
移动 · ETC
移动 · ASTC
通用 · Basis

每种格式都在后台 Worker 中编码并解码。

3

结果

选择格式并运行对比后,测量结果会显示在这里。

如何解读结果

PSNR (dB)

R、G、B 三通道上的峰值信噪比。每提高约 3 dB,均方误差大约减半。高于约 40 dB 时肉眼很难看出差别;低于约 30 dB 时瑕疵通常很明显。

SSIM

亮度上的结构相似度,范围 0 到 1。它比 PSNR 更能反映模糊和块效应,但不关注偏色,所以要和 PSNR 一起看。

显存占用

纹理上传后占用的显存,不含 mipmap。它只取决于格式和尺寸;完整的 mipmap 链还要再多约 33%。

文件大小

磁盘上编码后的容器文件。Basis 文件经过超压缩,可能远小于其显存占用;DDS、PKM 和 ASTC 文件基本就是显存数据加一个很小的文件头。

块网格

放大并打开网格即可看到块的边界。与网格对齐的瑕疵,来自编码器对每个块做出的决策。

编码参数

每种格式都使用对应编码页的默认参数,例如 ASTC 使用 medium 质量。制作最终资源时,请到专门的编码页调整质量、色彩空间和 mipmap。

常见问题

这些结果和真实编码器一致吗?

一致。本工具运行的是与本站编码页、解码页相同的 WebAssembly 编码器和解码器,并测量解码后的像素。GPU 硬件对某些格式的舍入可能略有不同,因此差距小于约 1 dB 时可以视为持平。

为什么 Basis Universal 的显存占用是估算值?

Basis 文件会在各个设备上转码。ETC1S 通常转成每纹素 4 位的 BC1 或 ETC1,UASTC 转成每纹素 8 位的 BC7 或 ASTC 4×4。这里的画质是在直接解码到 RGBA 的结果上测量的;转码成 GPU 格式时可能还会有少量额外损失。

带透明度的图片如何处理?

透明度会被保留,并单独在一列 PSNR 中测量。无法保留透明度的格式会在格式列表中标出:BC1 编码器会拒绝透明图片,ETC1 和 ETC2 RGB 会丢弃透明通道。透明纹理请使用 BC3、BC7、ETC2 RGBA、ASTC 或 Basis。

我的图片会被上传吗?

不会。图片的解码、编码和测量都在你的浏览器中完成,不会发送到任何服务器。