QOI图像压缩格式介绍

引入了一种新的轻量级无损图像压缩格式 - QOI(相当好的图像),它允许您非常快速地压缩 RGB 和 RGBA 颜色空间中的图像。 与 PNG 格式进行性能比较时,QOI 格式的 C 语言单线程参考实现,不使用 SIMD 指令和汇编优化,编码速度比 libpng 和 stb_image 库快 20-50 倍,3解码速度快-4倍。 就压缩效率而言,QOI 在大多数测试中接近 libpng(在某些测试中稍稍领先,在另一些测试中稍逊一筹),但总体上明显领先于 stb_image(增益高达 20%)。

QOI 的 C 参考实现只有 300 行代码。 源代码根据 MIT 许可证分发。 此外,爱好者们还准备了 Go、Zig 和 Rust 语言的编码器和解码器的实现。 该项目由 Dominic Szablewski 开发,他是一位游戏开发人员,在创建用于解码 MPEG1 视频的库方面拥有丰富的经验。 作者希望使用 QOI 格式来表明,可以创建一种有效且简单的替代方案来替代过于复杂的现代图像编码格式。

QOI 性能与编码图像的分辨率和性质无关 (O(n))。 编码和解码一次性执行 - 每个像素仅处理一次,并且可以通过 4 种方式之一进行编码,具体选择取决于先前像素的值。 如果下一个像素与前一个像素重合,则重复计数器只会增加。 如果该像素与 64 个过去像素缓冲区中的值之一匹配,则该值将被替换为过去像素的 6 位偏移量。 如果前一个像素的颜色略有不同,则以简短形式指示差异(适合 2,4、5 和 XNUMX 位的颜色分量差异的简短编码)。 如果优化不适用,则提供完整的 rgba 值。

来源: opennet.ru

添加评论