Brotli-G (v1.1 及更高版本) 现在支持对块压缩纹理进行预处理,旨在将这些文件的压缩率 **平均提高 10% 到 15%**,在某些情况下 **高达 20%**。Brotli-G 编码器 API 的 BrotliG::BrotligDataconditionParams 选项允许用户为支持的纹理类型启用预处理,并提供进行预处理所需的纹理信息,例如宽度、高度、间距和 mipmap 级别数。
brotlig.exe -precondition -texture-width 256 -texture-height 256 -row-pitch 2048 -num-mip-levels 5 abc.DDS预处理采用块的重新排列(swizzling)和颜色的增量编码(delta encoding)。可以通过设置 BrotliG::BrotligDataconditionParams::swizzle 和 BrotliG::BrotligDataconditionParams::delta_encode 标志来启用或禁用这些功能,从而提供额外的控制。
如果纹理格式不正确,则在不进行预处理的情况下应用压缩,并在提供了相应的反馈函数时显示警告。
Brotli-G 目前支持 BC1-5 纹理的预处理。支持的纹理格式列在枚举 BROTLIG_DATA_FORMAT (common/BrotligCommon.h) 中。支持具有多个 mipmap 级别的纹理。纹理大小和 mipmap 级别的限制可以在 common/BrotligConstants.h 中找到。有关更多使用细节,请参阅示例应用程序的帮助部分。
注意,AMD Renoir 上存在一个已知问题,该问题会导致在应用预处理时 GPU 解码器间歇性失败。
最新发布的 Brotli-G SDK 可在 GitHub 上获取。