libjpeg-turbo 3.0.0 发布
libjpeg-turbo 3.0.0 现已正式发布。libjpeg-turbo 是一个 JPEG 图像编解码器,它使用 SIMD 指令(MMX、SSE2、AVX2、Neon、AltiVec)来加速 x86、x86-64、Arm 和 PowerPC 系统上的基线 JPEG 压缩和解压缩,以及 x86、x86-64 和 Arm 系统的渐进式 JPEG 压缩。
相对于 3.0 beta2 的重大变化:
-
TurboJPEG API 现在支持 4:4:1(transposed 4:1:1)色度子采样,允许无损转置或旋转 4:1:1 JPEG 图像进行无损裁剪、部分解压缩或解压缩为平面 YUV 图像。
-
修复了各种 segfaults 和缓冲区溢出 (CVE-2023-2804)在尝试使用颜色量化或合并色度上采样/颜色转换来解压缩各种特制的格式错误的每分量 12 位和每分量 16 位无损 JPEG 图像时发生。这些问题的根本原因是颜色量化和合并色度上采样/颜色转换算法在设计时并未考虑到无损解压缩。由于 libjpeg-turbo 在压缩或解压缩无损 JPEG 图像时明确不支持颜色转换,因此不应为此类图像启用合并色度上采样/颜色转换。颜色量化是一项传统功能,对于无损 JPEG 图像几乎没有作用,因此现在在解压缩此类图像时也被禁用。(因此,djpeg 无法再将无损 JPEG 图像解压缩为 GIF 图像。)
-
修复了 1.4 beta1[8] 中的一个疏忽,该疏忽在尝试使用启用了颜色量化和 RGB565 颜色转换的 djpeg 解压缩各种特制的格式错误的每组件 12 位 JPEG 图像时导致各种 segfaults 和缓冲区溢出。
-
修复了以下问题:如果启用了解压缩放,
jpeg_crop_scanline()
有时会错误计算具有 4x2 或 2x4 子采样因子的组件的下采样宽度。这导致组件上采样不完全,从而导致颜色转换器从未初始化的内存中读取。对于 12 位数据精度,如果从未初始化的内存读取的样本值超出了有效样本范围,则会导致缓冲区溢出或欠载以及随后的 segfault。 -
修复了一个长期存在的问题,即当
tj3Transform()
函数与TJXOP_TRANSPOSE、
TJXOP_TRANSVERSE
、TJXOP_ROT90
或TJXOP_ROT270
转换操作一起使用时,在没有自动的 JPEG 目标缓冲区(重新)分配或无损裁剪的情况下,基于源图像尺寸而不是转换后的图像尺寸计算最坏情况下转换的 JPEG 图像大小。如果一个调用程序按照 API 文档的指示,根据转换后的图像尺寸分配 JPEG 目标缓冲区,并试图转换一个特别制作的 4:2:2、4:4:0、4:1:1 或 4:4:1 的包含大量元数据的 JPEG 源图像,这个问题导致tj3Transform()
溢出 JPEG 目标缓冲区而不是正常失败。这个问题可以通过设置TJXOPT_COPYNONE
来解决。请注意,不管这个问题如何,tj3Transform()
都能不可靠地转换包含大量元数据的 JPEG 源图像,除非使用自动 JPEG 目标缓冲区(重新)分配或设置TJXOPT_COPYNONE
。 -
修复了 3.0 beta2[6] 引入的一个回归问题,该回归使得 djpeg
-map
选项在解压 12-bit-per-component 有损的 JPEG 图像时无法工作。 -
修复了在尝试将特制格式错误的算术编码 JPEG 源图像转换为 baseline Huffman-coded JPEG 目标时导致 C Huffman encoder (默认情况下在 x86 和 Arm CPU 上不使用)从未初始化的内存中读取的问题图像。
更新说明:https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/3.0.0

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Perl 5.38 发布
Perl 5.38 已正式发布,以下为此版本部分新特性: 新class功能 现在可以使用新的实验性语法来定义对象类,其中每个实例的数据存储在行为类似于词汇的“字段”变量中。 use feature 'class'; class Point { field $x; field $y; method zero { $x = $y = 0; } } 这是一个新的实验性功能,并且仍在开发中。 支持 Unicode 15.0 有关 Unicode 15.0 的详细信息,请参阅 https://www.unicode.org/versions/Unicode15.0.0/。 弃用警告有特定的子类别 所有弃用警告现在都有自己特定的弃用类别,可以单独禁用。可以在 perldeprecation 和警告中查看所有已弃用功能的列表。 +- deprecated ----+ | | | +- deprecated::apostrophe_as_package_separator | | | +- deprecated::delimiter_will_be_paired ...
- 下一篇
VLOOK 18!重磅更新,更简洁丰富的自动化排版特性,实用好用的 Markdown 主题与增强插件
VLOOK™是针对Typora(跨平台 Markdown 编辑器)的主题包和增强插件(针对导出的 HTML 文件),旨在与众 Markdown 粉共创 Markdown 的自动化排版 2.0,在保持 Markdown 简洁性的基础上,让编辑、阅读 Markdown 文档更实用,也更愉悦。 VLOOK™属于开源软件(遵从MIT License),也是OSCHINA 开源中国推荐的国产开源产品、Typora 的首个增强插件。 VLOOK™ 的所有特性清单,详见快速入坑 →一键了解(备用链接) 这是一个比较重大的版本,旨在让使用 Typora + VLOOK 插件进行 Markdown 文档编写与输出时,能保持简洁的同时获得更实用、更好用的体检。 对一些关键的自动化排版特性(引用折叠、分栏、彩虹标签&徽章、彩虹引用、刮刮卡)、预置颜色标识都进行了重构。 重构后还新增对了指定文本、段落设置指定的颜色、渐变色,表格单元格背景也能指定颜色和渐变色了,语法上保持Markdown的简洁、清晰的设定。 以下是本次迭代涉及的关键的的新特性、改善点: 🎉 — NEW 新特性 — 🎉 ⭐️文本可指...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)