新的开源图像格式 QOI ,压缩速度比 PNG 快 100 倍


2021 年 11 月 29 日 ,Dominic Szablewski 创建一种新的图像文件格式规范 “QOI”,QOI 的全称是 Quite OK Image Format,直译为“相当棒的图像格式”。QOI 可以用于将 RGB 和 RGBA 图像无损地压缩为与 PNG 类似的大小,相同的文件大小下,QOI 的压缩和解压缩比 PNG 要快 3-4 倍。另外,QOI 可以和 PNG 格式相互转化。

QOI 非常简洁,它源代码只有大约 300 行 C语言;文件格式规范也非常简短,只有一页PDF。但简短并不意味着简单,与 C/C++ 图像处理库 stb_image / stb_image_write 和 libpng 相比,QOI 的编码速度提高了100 倍,解码速度提高了 3-4 倍,压缩率提高了 20%。

无可否认,QOI 在压缩/解压缩性能这一块有一些优势,但它仍然存在相当多的问题。比如,作为一个全新的图像文件格式, QOI 对伽马/色度/ICC 等内容的支持几乎是空白的。从实现过程来看, QOI 是将整个图像文件加载到 RAM 中,并且没有针对性能进行优化,这使得它在处理亿级像素的图像时对设备的要求极高。

以上种种导致它还不能作为一个成熟的文件格式以供日常使用,短时间内也不会出现在浏览器端(web 对压缩比较为重视,QOI 对此并不占优势),未来或许它可以出现在游戏的图像处理或者其他主机程序中,因为这些场景更注重性能优势。

事实上,QOI 一开始只是 Dominic 的一个玩具项目,但现在它将变成一个正式的项目 —— 距离首次提交还未满一个月,QOI 就已收获了 3K star,并引发了热烈的讨论。且过去的几周已陆续出现了许多不同语言和库的 QOI 实现。包括 php , go包装器 。


相關推薦

2022-09-14

toDemon 9.0 已发布,此版本的亮点包括:改进的用户界面、新的选择工具(包括对多项选择的支持)、对许多新图像格式(AVIF、Paintshop Pro (PSP)、GIMP (XCF)、SVG 等)的支持)、内容感知填充、新的过滤器和效果等等。 改进的主用户

2023-03-08

只包含自 F-Droid 应用上次更新以来的变化。通过下载一个新的entry.json文件,而不是完整的索引,实现节省带宽、加快更新索引的速度,需要下载和存储的数据也变得更小。 这个 entry.json 文件指向完整的索引,以防应用程序之前

2022-10-09

Lyra 是谷歌去年开源的低比特率语音编解码器,与开放的 AV1 编解码器相结合,可以在 56kbps 的连接上实现语音聊天。Lyra 利用机器学习和其他技术进行极低比特率的语音压缩,可以在 3kbps 的速度下运行。 谷歌去年正式开源 Lyra

2023-09-10

一睹这个新星的威力。 作为Javascript社区中一个相对较新的革新者,Bun致力于解决碎片化工具过多导致的开发低效问题。它将运行时、打包工具、测试框架等功能融合在一个工具中,提供开箱即用的高性能体验。 Bun兼容现有

2023-08-02

)。 重新设计几个核心 I/O API,以便更好地适应 Linux 新的 io_uring 事件通知范式。 RPC 实现可能会改为默认允许取消。 值得注意的是,目前还没有计划对序列化格式或 RPC 协议进行任何向后不兼容的更改。所讨论的更改

2022-10-26

ck (alpha):速度提高 700 倍的基于 Rust 的 Webpack 替代品。 新的 next/image (stable):native browser 延迟加载速度更快。 新的@next/font(beta):具有零布局偏移的自动自托管字体。 改进next/link:Simplified API with automatic <a>。

2022-11-02

在 Next.js Conf 大会上发布了 Next.js 13,同时宣布了最新的开源项目:Turbopack。Turbopack 是面向 JavaScript 和 TypeScript 优化的增量打包工具和构建系统,采用 Rust 编写,声称是 Webpack 的继任者。 其实 Turbopack 正是出自 Webpack 作者 Tobias

2023-06-07

结合了 JPEG、PNG 和 WebP 等其他图像格式的优点,并引入了新的编码技术,如预测编码和变换域处理,以提高压缩率和图像质量。 JPEG XL 相对于传统的 JPEG 格式具有许多优势: 更好的压缩性能:JPEG XL 使用了一些新的技术,如

2023-10-26

的高级任务。你可以使用组件定制现有的链,也可以构建新的链。LangChain 目前有三个版本: 一个是 Python 版本,一个是 TypeScript/JavaScript 版本,还有一个是 Go 版本。截至目前,已有大约 160 个 LangChain 集成。 Language Model Evaluation

2023-09-13

|2023 Google 开发者大会精彩演讲回顾 Aydyn Tairov 是一名开源作者,也是 Meta 前工程师,他此前将 GitHub 上火热的纯 C 语言实现的llama2.c项目移植到了 Python ——llama2.py。 上周 Mojo 编程语言正式开放下载,并且声称比 Python 快

2023-08-02

uff 词法分析器的工具(例如 Ruff 格式化程序)的性能。 新的词法分析器利用更多缓存友好的数据结构,执行更少的分配,并包括对纯 ASCII 源代码的优化。详情。 其他变化包括忽略行尾# ruff: noqa注释,以及新增更多规则,具体

2023-08-17

度或者运行效率上均有了稳定的提升。FastViT 引入了一种新的 Token 混合算子,命名为 RepMixer。从名字来看,它结合了结构重新参数化技术。该算子的作用原理是通过消除网络中的 skip connection 来降低内存访问成本。 FastViT 整体框

2022-11-08

速编码的支持。 代码提交者 Timo Rothenpieler 表示,利用最新的 NVIDIA GeForce RTX 40 系列 GPU 上的 NVENC AV1 硬件编码器,在他的测试中,新的 NVENC AV1 编码器在编码速度方面比基于 NVENC HEVC 的 FFmpeg 编码快 75% 至 100%,而且两者在视觉质

2022-09-08

今天一起来深入了解。 二 什么是EasyCV EasyCV是阿里巴巴开源的基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具。EasyCV在阿里巴巴集团内支撑了搜索、淘系、优酷、飞猪等多个BU业务,同时也在阿里