首页 > 其他分享 >JPEG XL 和 libjxl

JPEG XL 和 libjxl

时间:2023-06-15 16:59:41浏览次数:38  
标签:XL 图像 JPEG libjxl 编辑器 许可证

JPEG XL 是一种免版税的图像文件格式,支持有损和无损压缩。 它旨在超越现有的栅格格式并成为它们的通用替代品。
与其他流行的图像格式(尤其是旧的 JPEG 格式)相比,JPEG XL 旨在提高图像保真度,同时减小文件大小。 它提供比传统 JPEG 更好的图像质量和压缩率。
JPEG XL 支持现代功能,如 HDR、动画、alpha 通道、无损 JPEG 重新压缩、无损和渐进模式。 它还支持保存多帧动画,如 GIF。
Mozilla Firefox 和 Google Chrome 都支持新的图像格式作为一项实验性功能。 要在 Chrome 中启用 JPEG XL 支持,您可以在 Chrome 91 或更高版本中打开一个新的浏览器窗口,在地址栏中输入 chrome://flags/`#`enable-jxl,将 Enable JXL image format 下拉菜单从 Default 为 Enabled,然后单击大的 Relaunch 按钮以应用您的更改。

 

名称来历:

该名称由JPEG(代表联合图像专家组,即设计该格式的委员会)、X(自 2000 年以来几个 JPEG 标准名称的一部分:JPEG XT、JPEG XR、JPEG XS)和L(代表长期)。L 被包括在内是因为作者的意图是用这种格式取代旧的 JPEG并且持续时间也一样长。

 

特性:

JPEG XL 提案征集[7]讨论了下一代图像压缩标准的要求,与 JPEG 相比,压缩效率要好得多(提高 60%)。该标准有望超越HEIC、AVIF、WebP和JPEG 2000所显示的静态图像压缩性能。它还为传统/传统 JPEG 格式的图像提供高效的无损再压缩选项。

JPEG XL 支持超高分辨率图像(最高 1 太像素)的有损压缩和无损压缩,每个分量最高 32 位,最高 4099 个分量(包括alpha 透明度)、动画图像和嵌入式预览。它具有针对 Web 交付的功能,例如高级渐进式解码[13]和最小的标头开销,以及针对图像编辑和数字印刷的功能,例如支持多层、 CMYK和专色。它专门设计用于无缝处理具有高动态范围的宽色域色彩空间比如Rec。2100具有PQ或HLG 传输功能。

主要特点是:[14] [15] [16]

  • 更多功能:与传统图像格式(如 JPEG、GIF 和 PNG)相比,改进了功能和效率。
  • 允许更大的尺寸:每侧超过十亿 (2 30 -1) 像素的图像尺寸。[17]
  • 大量可用通道:多达 4099 个通道:主要通道:一个灰度通道、三个 RGB 通道或四个 CMYK 通道。此外,其余通道作为可选的“额外”通道,如alpha、depth或热数据。[17]
  • 可以有多个帧,具有非零持续时间(对于动画)或零持续时间(使它们更像图形软件中的图层)。框架可以小于(或大于)图像画布,并且可以以多种方式混合。
  • 独立图块:通过将图像存储在图块中来解码大图像的各个部分。
  • 渐进式解码:专为响应式加载大图像而设计的模式,具体取决于查看设备的分辨率。
  • 可逆JPEG 转码:可以实现约 20% 的大小缩减。
  • 无损编码:包括无损 alpha 编码。
  • 支持摄影和合成图像:该格式具有两种互补模式,可根据图像内容使用。
  • 在大范围的比特率范围内优雅地降低质量:质量损失不像旧格式那样突然。
  • 感知优化参考编码器:它默认使用感知色彩空间、自适应量化和保守的默认设置。
  • 支持宽色域和HDR:JPEG XL 内置支持各种色彩空间、传输曲线和高屏幕亮度。
  • 支持动画内容:对于逼真的内容编码,首选常规视频编解码器。
  • 高效编码和解码,无需专用硬件:JPEG XL 的编码和解码速度与使用libjpeg-turbo的旧 JPEG 差不多,与使用x265的 HEIC 相比,编码和解码速度快一个数量级。[17]它也是可并行化的。
  • 具有开源参考实现的免版税格式:该软件可在 GitHub 上根据 3 条款 BSD 许可获得。

开源实现:

https://github.com/libjxl/libjxl

Usage

To encode a source image to JPEG XL with default settings:

cjxl input.png output.jxl

The desired visual fidelity can be selected using the --distance parameter (in units of just-noticeable difference, where 0 is lossless and the most useful lossy range is 0.5 .. 3.0), or using --quality (on a scale from 0 to 100, roughly matching libjpeg). The encode effort can be selected using the --effort parameter.

For more settings run cjxl --help or for a full list of options run cjxl -v -v --help.

To decode a JPEG XL file run:

djxl input.jxl output.png

When possible cjxl/djxl are able to read/write the following image formats: .exr, .gif, .jpeg/.jpg, .pfm, .pgm/.ppm, .pgx, .png. Specifically for JPEG files, the default cjxl behavior is to apply lossless recompression and the default djxl behavior is to reconstruct the original JPEG file (when the extension of the output file is .jpg).

技术架构图:

支持的软件:

 

编解码器实现

JPEG XL 参考软件 (libjxl)
  • JPEG XL 参考软件 (libjxl)
    • 许可证:新 BSD 许可证(以前是Apache 许可证 2.0)
    • 包含(除其他外):
      • 编码/解码库libjxl
      • 编码器cjxl
      • 解码器djxl
      • 快速无损编码器fjxl
      • 图像编解码器速度和质量基准测试工具benchmark_xl
      • GIMP和 Gtk pixbuf 插件file-jxl
  • J40:独立、自包含的 JPEG XL 解码器J40:独立、自包含的 JPEG XL 解码器
    • 许可证:麻省理工学院许可证无署名
    • C99单头库(无依赖)
    • 在罗马数字中,“XL”表示 40,因此得名
  • libjxl-tiny:一个更简单的 JPEG XL 编码器实现,针对没有 alpha 通道的摄影图像。[38]
    • 许可证:新 BSD 许可证
  • jxlatte:Java JPEG XL 解码器[39]
    • 许可证:麻省理工学院许可证
  • jxl_decode:Python JPEG XL 解码器。[40]
    • 许可证:麻省理工学院许可证
  • jpeg-xl-encode:用于编码器的 PHP JPEG XL 包装器。[41]
    • 许可证:麻省理工学院许可证
  • hydrium:用便携式 C 编写的快速、超低内存、流式 JPEG XL 编码器。[42]
    • 许可证:BSD许可证

官方支持

  • Squoosh – 浏览器内图像转换器[43]
  • Adobe Camera Raw – Adob​​e Photoshop 对数码相机图像的导入/导出[44]
  • Affinity Photo – 光栅图形编辑器[45]
  • Chasys Draw IES – 光栅图形编辑器[46]
  • Darktable – 原始照片管理应用程序[47]
  • ExifTool – 元数据编辑器[48]
  • FFmpeg – 多媒体框架,通过 libjxl [49]
  • GIMP – 光栅图形编辑器[50]
  • gThumb – 适用于Linux 的图像查看器和照片管理应用程序[51]
  • ImageMagick – 光栅图形处理工具包[52]
  • XnView MP – 光栅图形的查看器和编辑器[53]
  • JPEGView fork – 光栅图形的查看器和编辑器。[54]
  • Ksnip – 屏幕捕获实用程序。[55]
  • IrfanView – 适用于Windows 的图像查看器和编辑器[56]
  • KaOS ——Linux 发行版[57]
  • Krita – 光栅图形编辑器[58] [59]
  • libvips – 图像处理库[60] [61]
  • macOS、iPadOS和iOS – 从macOS Sonoma (14.0) iPadOS 17和iOS 17开始[62] [63]
  • vipsdisp – 适用于 Linux 的高性能超高分辨率图像查看器[64]
  • Qt和KDE应用程序——通过 KImageFormats 
  • Pale Moon– 网页浏览器[66]

非官方或间接支持

  • Microsoft Windows – 第 3 方Windows 成像组件(WIC) 插件添加了对文件资源管理器、Microsoft 照片、Windows 照片查看器和感知应用程序的查看。缩略图视图,不稳定 仅在 Windows 7/10 操作系统上。[67]
  • 另一个 Windows 插件,JXL WIN Thumb 旧 libjxl 版本 0.5.0:[68]
  • macOS (14.0 Sonoma 之前)——通过独立应用程序和Quick Look插件[69]
  • GTK和GNOME图像查看应用程序(如Eye of GNOME、GNOME Files等)通过JPEG XL 项目提供的GDK pixbuf 插件[70]

初步的网络浏览器支持

  • Firefox网络浏览器——在Firefox Nightly build [71]中引入用于测试
  • safari  [72] [73]

 

通用名称部分首次公开发行日期(第一版)ISO/IEC 编号正式职称
JPEG超大码 第1部分 2022 年 3 月 30 日 ISO/IEC 18181-1 JPEG XL 图像编码系统——第 1 部分:核心编码系统[4]
第2部分 2021 年 10 月 13 日 ISO/IEC 18181-2 JPEG XL 图像编码系统——第 2 部分:文件格式[12]
第 3 部分 2022 年 10 月 3 日 ISO/IEC 18181-3 JPEG XL 图像编码系统——第 3 部分:一致性测试
第 4 部分 2022 年 8 月 5 日 ISO/IEC 18181-4 JPEG XL 图像编码系统 - 第 4 部分:参考软件

标签:XL,图像,JPEG,libjxl,编辑器,许可证
From: https://www.cnblogs.com/sddai/p/17483342.html

相关文章

  • 利用JXL(JExcelApi) 操作Excel文档
    http://coderdream.javaeye.com/blog/2506281、工具类:Java代码1.packagecom.coderdream.jxl;2.3.importjava.io.File;4.importjava.io.IOException;5.6.importjxl.Cell;7.importjxl.Sheet;8.import......
  • JPEG编码协议--DCT变换
       从之前的几篇文章介绍可以看出,JPEG编码最重要的一步就是DCT变换,将空域的图像信号转换到频域,达到良好的去空间相关性的性能,DCT变换本身是无损的。因此DCT变换在图像编码领域被广泛应用。一、一维DCT变换   在JPEG编码中使用了二维DCT变换,一维DCT是二维的基础,我们......
  • springboot+JXLS+Jexl实现报表模版生成报表
    前言做这个项目的思路是由于公司基于自身发展,需要将之前的老项目平台拆解出来,由于之前的项目是所有的功能全部集中在一起,学习成本以及后续的扩展性来说,非常的不友好,并且由于之前设计人员的流失导致了项目无法进一步优化,所以想将其进行拆解,将单个功能模块进行拆分,形成微服务化,使每......
  • 【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings)
    ​        在我们使用Python时,避免不了与Excel打交道。同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利。今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的操作。                这些都是我在使用Python处理Excel时用到的......
  • XXL-JOB手工执行任务报错:msg:xxl-rpc remoting error(Connection refused (Connection
    【问题描述】XXL-JOB手工执行任务报错:msg:xxl-rpcremotingerror(Connectionrefused(Connectionrefused)),forurl  【原因分析】 在xxl-job服务端所在的服务器上面去telnetxxl-job所在的客户端服务器的9986端口,提示拒绝连接:对于端口拒绝连接的问题,应该是网络的问......
  • 使用Python提取JPEG图像文件dpi并计算物理尺寸
    感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码!下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的实现不完全一样,有些类型的jpg文件暂时无法提取dpi信息,如果找到好的办法的话后期会再进行补充。fromosimportlistdirfromPILim......
  • python操作excel之 openpyxl
    python操作excel在我们的工作中经常会用到,操作用例读取对应信息进行接口自动化pythonExcel库对比图片我们发现可以操作excel的库有很多种,我们常用的就三种方法第三方库xlwt/xlrd:用于生成和读取比较老的excel文件,比如xls格式,最大行数限制为65536行。其中xlrd是读excel,xlwt是写exc......
  • xxl-job的部署及springboot集成使用
    介绍XXL-Job是一个分布式任务调度平台,可进行任务调度、管理和监控,并提供任务分片、失败重试、动态分配等功能。它是一个开源项目,基于SpringBoot和Quartz开发,支持常见的任务调度场景。XXL-Job的使用相对简单,只需要简单配置即可实现任务调度。同时,它提供了丰富的管理和监控功能,可以......
  • java jxl创建/读取/修改Excel 操作Excel
    创建Excelpackagetest1;importjava.io.File;importjava.io.IOException;importjxl.Workbook;importjxl.write.Label;importjxl.write.WritableSheet;importjxl.write.WritableWorkbook;importjxl.write.WriteException;importjxl.writ......
  • Xshell/Xftp/Xlpd Plus 7:官方免破全功能无限制版(2023更新)
    XshellPlus7是一款集成了Xshell7(SSH客户端)和Xftp7(SFTP客户端)的软件套餐,可以让您在访问远程终端的同时,进行多窗口的文件传输和编辑,大大提高您的工作效率。XshellPlus7支持多种协议,如SSH,SFTP,TELNET,RLOGIN,SERIAL等,还具有强大的安全性和可定制性。本文将为您详细介绍XshellPlus......