Google宣布推出Jpegli,比JPEG编码更快、更清晰

前有科技后进阶 2024-04-21 05:19:47

大家好,很高兴又见面了,我是"高级前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

1. 什么是 Jpegli1.1 比传统 JPEG 更快、更高效的编码

2024 年 4 月 3 日,Google 官方博客宣布推出了 Jpegli,这是一种先进 JPEG 编码库,保持了高度向后兼容性,同时提供增强的功能,并在高质量压缩设置下压缩比提高了 35%。

Jpegli 是一个新的 JPEG 编码库,其设计比传统 JPEG 更快、更高效、更美观,同时使用了诸多新技术,包括:

完全可互操作的编解码器:符合原始 JPEG 标准及其最传统 8 位形式及与 libjpeg-turbo 、 MozJPEG 的 API/ABI(Application Binary Interface) 兼容保证高质量:通过 Jpegli 压缩或解压缩图像时会执行更精确且有效的计算,图像更清晰速度快体积小:在提高质量、压缩密度比的同时,Jpegli 的编码速度与 libjpeg-turbo 和 MozJPEG 等传统方法相当但提供更快压缩速度、更少内存使用,从而节省带宽、提升站点速度Jpegli 每个组件可以使用 10+ 位进行编码:传统的 JPEG 编码仅提供每个组件 8 位动态从而导致伪影。 Jpegli 的 10+ 位编码以原始 8 位形式进行,生成的图像可与 8 位查看器完全互操作

libjpeg-turbo 是一种 JPEG 图像编解码器,使用 SIMD 指令(MMX、SSE2、AVX2、Neon、AltiVec)来加速 x86、x86-64、Arm 和 PowerPC 系统上的基线 JPEG 压缩和解压。在此类系统上,相同条件下 libjpeg-turbo 的速度通常是 libjpeg 的 2-6 倍。

1.2 Jpegli 的编解码器改进

Jpegli 的改进分为两部分,即编码器和解码器,编码器使用的改进和新功能包括:

支持 16 位无符号和 32 位浮点输入缓冲区颜色空间转换、色度子采样和 DCT 均以浮点精度完成,在生成最终量化 DCT 系数时首先进行整数转换所需的质量可以通过类似于 JPEG XL 的距离参数的距离参数来指示。 根据距离和色度子采样模式选择量化表,量化矩阵中不同位置的缩放比例不同,红色和蓝色色度通道具有单独的量化表自适应死区量化 (Adaptive dead-zone quantization), 在图像的噪声部分,零系数的量化阈值高于图像的平滑部分支持使用代表 XYB 色彩空间的 ICC 配置文件更有效地压缩 JPEG。 这些 JPEG 不会转换为 YCbCr 色彩空间,但将为原始 X、Y、B 通道选择专门的量化表1.3 解码器改进

Jpegli 的解码器改进主要包括以下几个维度:

支持 16 位无符号和 32 位浮点输出缓冲区 (Floating Point Output Buffers)假定原始未量化 DCT 系数的拉普拉斯分布 (Laplacian Distribution),非零 DCT 系数被反量化为其各自量化间隔的期望值去量化、逆 DCT、色度上采样和色彩空间转换均以浮点精度完成后,整数样本的转换仅发生在最终输出阶段(除非请求输出到浮点)2.Jpegli 的工作原理和数据评测

Jpegli 使用了许多新技术来降低噪声并提高图像质量,包括:来自 JPEG XL 参考实现的自适应量化启发式、改进的量化矩阵选择 (Quantization Matrix Selection)、精确计算中间结果,并使用更高级的色彩空间 (More Advanced Colorspace)。

所有新方法都经过精心设计以使用传统的 8 位 JPEG 形式,因此新压缩的图像与现有的 JPEG 查看器完全兼容。

为了量化 Jpegli 的图像质量改进,下图对比了三种编解码器进行编码,包括:Jpegli、libjpeg-turbo 和 MozJPEG,并以多种比特率进行编码。此比较仅限于比较编码,解码始终使用 libjpeg-turbo 执行。

ELO 分数越高,表明评估者总体表现越好。上图表明,2.8 BPP 的 jpegli 获得的 ELO 评级高于 3.7 BPP 的 libjpeg-turbo,同时后者比特率比 Jpegli 高 32%。

总体来看,Jpegli 可以比传统 JPEG 编解码器多压缩 35% 的高质量图像。

参考资料

https://opensource.googleblog.com/2024/04/introducing-jpegli-new-jpeg-coding-library.html?m=1

https://github.com/libjxl/libjxl/tree/main/lib/jpegli

https://www.free-codecs.com/news/say_hello_to_jpegli__google_s_new_image_magic.htm

https://libjpeg-turbo.org/

0 阅读:0

前有科技后进阶

简介:感谢大家的关注