fbpx
维基百科

Libjpeg

libjpeg是一个完全用C语言编写的处理JPEG图像数据格式的自由函式庫。它包含一个JPEG编解码器的算法实现,以及用于处理JPEG数据的多种实用程序。

libjpeg
開發者独立JPEG工作组(Independent JPEG Group)
首次发布1991年10月7日,​32年前​(1991-10-07
当前版本
  • 9e (2022年1月16日)[1]
编程语言C
操作系统跨平台
类型函式庫
许可协议自定义类BSD自由软件
网站ijg.org

该套软件采用C语言编写,并分发为附有源代码自由软件,采用自定义的宽松类BSD)自由软件许可证,权利要求为署名英语attribution (copyright)。原始版本由独立JPEG工作组(IJG)维护和发布。此外,也有数个提供额外特性的分叉(Fork)

JPEG JFIF图像在万维网上被广泛使用。它可以调整压缩量级以实现文件大小与视觉质量之间的期望与权衡。[2]

实用程序 编辑

下列实用程序随libjpeg提供:

  • cjpeg和djpeg:用于JPEG与其他流行的图像文件格式之间的转换。
  • rdjpgcom和wrjpgcom:用于在JPEG文件中插入和提取文字注释。
  • jpegtran:用于在不同JPEG格式之间进行无损转换的工具。

jpegtran 编辑

 
jpegtran無需重新編碼即可轉換JPEG數據(這裡有用戶界面CropGUI)

命令列介面 jpegtran提供了幾種功能,用於重新格式化和重新編碼DCT係數的表示,分別用於轉換實際圖像數據和丟棄JPEG文件中的輔助數據。 關於係數表示的變換包括:

這些轉變都是完全無損且可逆的。 對圖像數據的轉換包括:

  • 消除某些圖像程序插入的非標準應用程序特定數據,
  • 對文件執行某些轉換,例如:
    • 丟棄顏色通道(轉換為灰階),
    • 旋轉和翻轉英语flipped image90度,
    • 裁剪圖像塊邊框(8×8或16×16像素),
    • 縮放[6]

這些是非破壞性資料壓縮並且對於保留的圖像數據是可逆的。重複轉檔時不重新壓縮現有資料解決重複編碼(修改)對資料進行二次壓縮導致多次量化失真英语generation loss的問題

有一个相关的Windows应用程序Jpegcrop (页面存档备份,存于互联网档案馆)为“jpegtran”提供了一个用户界面。对于Linux类Unix系统,自由的CropGUI (页面存档备份,存于互联网档案馆)能提供类似功能。 许多程序基于IJG的代码支持JPEG无损转换功能,部分名单见Lossless Applications List (页面存档备份,存于互联网档案馆(英文)

历史 编辑

独立JPEG工作组(IJG)的JPEG实现首次公开发布于7 October 1991,并在那是已相当完善。 开发主要由Tom Lane英语Tom Lane (computer scientist)完成。 IJG的开源是其中一个主要的开源包,并且是JPEG标准的成功的关键。许多公司将其整合到各种产品中,如图像编辑器和网络浏览器[7]

版本5发布于1994年9月24日,整个代码库被重写。它引入了名为rdjpgcom和wrjpgcom的实用程序用于处理嵌入的文字注释。

版本6于2 August 1995到来,支持渐进JPEG和第一版jpegtran实用程序。

摘要 编辑

主版本 新增文件格式特性 新增主记录项 参考资料
舊版本,不再支援: 6 渐进式JPEG支持 progressive_mode ... ITU-T Recommendation T.81
ISO/IEC IS 10918-1
舊版本,不再支援: 7 算术编码支持 scale_num/scale_denom for
compression (encoding) ...
ITU-T JPEG-Plus Proposal ...[8]
舊版本,不再支援: 8 SmartScale
(可变块大小)
block_size/lim_Se etc. Evolution of JPEG[9]
當前版本: 9 内部颜色转换
(FF F8 LSE扩展标记)
color_transform JPEG 9 Lossless Coding[10]
InfAI JPEG Development Site (页面存档备份,存于互联网档案馆[11]
图例: 舊版本 舊版本,仍被支援 当前版本 最新预览版本 未来版本

时间线 编辑

复刻 编辑

比较著名的复刻是libjpeg-turbo,它优化了执行的速度;还有mozjpeg,它的优化目标是更小的文件大小。除了这些以外,还有一个出自國際標準化組織(ISO)的libjpeg,其目的是所有JPEG 1标准的完整实现。[12]

libjpeg-turbo 编辑

libjpeg
 
開發者libjpeg-turbo项目
首次发布2010年,​13年前​(2010
当前版本
  • 9e (2022年1月16日)[1]
 
网站libjpeg-turbo.org

libjpeg-turbo是libjpeg的一个复刻,它采用单指令流多数据流(SIMD)指令来加速JPEG编码和解码基础效率。许多项目现在使用libjpeg-turbo而不是libjpeg,包括流行的GNU/Linux发行版(FedoraDebianMageiaOpenSUSE等)、MozillaChrome[13][14][15]除了性能方面,部分项目也因它允许向后保留与旧的libjpeg v6b版本的ABI兼容性而选择使用libjpeg-turbo。[16]libjpeg v7、v8和v9已打破与早期版本的ABI兼容性。[17]

libjpeg-turbo可以配置为与libjpeg v7或v8 ABI兼容,但,但它并没有实现IJG近期发布的完整的功能集,包括SmartScale格式的扩展名。[18][19]因此,通过libjpeg v8和之后版本创建的SmartScale文件将不能被libjpeg-turbo正确解压。

mozjpeg 编辑

libjpeg
 
 
mozjpeg尝试若干次对DCT系数频谱的分割
開發者Mozilla Research
首次发布2014年3月4日,​9年前​(2014-03-04
当前版本
  • 9e (2022年1月16日)[1]
 
网站github.com/mozilla/mozjpeg

mozjpeg是由Josh Aas和其他Mozilla Research人员完成的libjpeg-turbo的一个复刻。它旨在通过减少文件大小(约10%)来加快网页的加载时间,以及在不改变图像质量的前提下提高编码效率。为达到此目的,它在编码(不对称)方面使用更多处理能力,同时保持与JPEG标准的完全兼容性,不需要在解码器侧做任何改变。它实际通过优化霍夫曼编码树完成。

除了libjpeg-turbo,mozjpeg版本也建立在jpegcrush之上,这是Loren Merritt编写的一个Perl脚本。[21][22]

参见 编辑

参考资料 编辑

  1. ^ 1.0 1.1 1.2 http://www.ijg.org/.
  2. ^ JPEG JFIF. [2017-03-17]. (原始内容于2020-11-09). 
  3. ^ Jpegcrop Preferences and Options description. [2017-03-17]. (原始内容于2020-07-11). 
  4. ^ Filmic Games >> The greatest failure of our patent system was.... [2017-03-17]. (原始内容于2012-09-01). 
  5. ^ 680385 - Firefox does not show arithmetic coded jpegs. [2017-03-17]. (原始内容于2019-03-10). 
  6. ^ New jpegtran features. [2017-03-17]. (原始内容于2020-11-09). 
  7. ^ JPEG homepage. [2017-03-17]. (原始内容于2014-11-29). 
  8. ^ Contributed document - Word .doc file: ITU-T JPEG-Plus Proposal R3 (页面存档备份,存于互联网档案馆
  9. ^ Contributed document - Word .doc file: Evolution of JPEG (页面存档备份,存于互联网档案馆
  10. ^ Contributed document - Word .doc file: JPEG 9 Lossless Coding (页面存档备份,存于互联网档案馆
  11. ^ News c't magazine 2012 issue 18 page 43, Software Links (页面存档备份,存于互联网档案馆
  12. ^ 存档副本. [2017-03-17]. (原始内容于2020-11-16). 
  13. ^ Software That Uses or Provides libjpeg-turbo (页面存档备份,存于互联网档案馆). February 9, 2012.
  14. ^ Issue 48789 – chromium – Use libjpeg-turbo instead of libjpeg (页面存档备份,存于互联网档案馆). April 14, 2011.
  15. ^ Bug 698519 – Update to libjpeg-turbo 1.2 (页面存档备份,存于互联网档案馆). February 28, 2012
  16. ^ libjpeg for F14 (页面存档备份,存于互联网档案馆). February 9, 2012.
  17. ^ libjpeg: API changes/compatibility (页面存档备份,存于互联网档案馆). February 9, 2012
  18. ^ libjpeg-turbo README file. [2017-03-17]. (原始内容于2014-08-12). 
  19. ^ What About libjpeg v9?. libjpeg-turbo team. [February 8, 2013]. (原始内容于2020-11-12). 
  20. ^ . github.com. [2021-04-14]. (原始内容存档于2022-05-07). 
  21. ^ André Kramer (heise.de-Newsticker), January 14, 2013: Mozilla-Encoder verbessert JPEG-Kompression (页面存档备份,存于互联网档案馆
  22. ^ Andreas Donath (golem.de), March 6, 2014: Mozilla will JPEGs besser komprimieren (页面存档备份,存于互联网档案馆

引用错误:在<references>标签中name属性为“libjpeg-turbo”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“ijg-is-back”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“SmartScale”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“v8review”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“mozjpeg2”的参考文献没有在文中使用

引用错误:在<references>标签中name属性为“CloudFlare”的参考文献没有在文中使用

外部链接 编辑

  • Official website of the Independent JPEG Group(英文)
  • JPEG FAQs (页面存档备份,存于互联网档案馆(英文)
  • JPEGclub (页面存档备份,存于互联网档案馆(英文) – 为libjpeg提供额外特性
  • libjpeg面向Windows的二进制包 (页面存档备份,存于互联网档案馆(英文)(托管于SourceForge.net上的GnuWin32英语GnuWin32中)
  • libjpeg-turbo (页面存档备份,存于互联网档案馆(英文),一个ABI及API兼容的libjpeg的复刻,它使用x86 SIMD指令实现参考实现的大幅加速。
  • GitHub上的mozjpeg - filesize-optimising复刻(英文)
  • Josh Aas, Robert Nyman; August 2014: 使用mozjpeg创建高效JPEG (页面存档备份,存于互联网档案馆(英文) – mozjpeg的实用性概述
  • 关于JPEG的那点事儿 (页面存档备份,存于互联网档案馆(简体中文),2016/02/21

libjpeg, libjpeg是一个完全用c语言编写的处理jpeg图像数据格式的自由函式庫, 它包含一个jpeg编解码器的算法实现, 以及用于处理jpeg数据的多种实用程序, libjpeg開發者独立jpeg工作组, independent, jpeg, group, 首次发布1991年10月7日, 32年前, 1991, 当前版本9e, 2022年1月16日, 编程语言c操作系统跨平台类型函式庫许可协议自定义类bsd, 自由软件, 网站ijg, org该套软件采用c语言编写, 并分发为附有源代码的自由软件, 采. libjpeg是一个完全用C语言编写的处理JPEG图像数据格式的自由函式庫 它包含一个JPEG编解码器的算法实现 以及用于处理JPEG数据的多种实用程序 libjpeg開發者独立JPEG工作组 Independent JPEG Group 首次发布1991年10月7日 32年前 1991 10 07 当前版本9e 2022年1月16日 1 编程语言C操作系统跨平台类型函式庫许可协议自定义类BSD 自由软件 网站ijg wbr org该套软件采用C语言编写 并分发为附有源代码的自由软件 采用自定义的宽松 类BSD 自由软件许可证 权利要求为署名 英语 attribution copyright 原始版本由独立JPEG工作组 IJG 维护和发布 此外 也有数个提供额外特性的分叉 Fork JPEG JFIF图像在万维网上被广泛使用 它可以调整压缩量级以实现文件大小与视觉质量之间的期望与权衡 2 目录 1 实用程序 1 1 jpegtran 2 历史 2 1 摘要 2 2 时间线 3 复刻 3 1 libjpeg turbo 3 2 mozjpeg 4 参见 5 参考资料 6 外部链接实用程序 编辑下列实用程序随libjpeg提供 cjpeg和djpeg 用于JPEG与其他流行的图像文件格式之间的转换 rdjpgcom和wrjpgcom 用于在JPEG文件中插入和提取文字注释 jpegtran 用于在不同JPEG格式之间进行无损转换的工具 jpegtran 编辑 nbsp jpegtran無需重新編碼即可轉換JPEG數據 這裡有用戶界面CropGUI 命令列介面 jpegtran提供了幾種功能 用於重新格式化和重新編碼DCT係數的表示 分別用於轉換實際圖像數據和丟棄JPEG文件中的輔助數據 關於係數表示的變換包括 優化JPEG文件的霍夫曼編碼層以增加壓縮 漸進和順序JPEG格式之間的轉換 霍夫曼和算术编码在熵編碼法層之間的轉換 3 4 5 這些轉變都是完全無損且可逆的 對圖像數據的轉換包括 消除某些圖像程序插入的非標準應用程序特定數據 對文件執行某些轉換 例如 丟棄顏色通道 轉換為灰階 旋轉和翻轉 英语 flipped image 90度 裁剪圖像塊邊框 8 8或16 16像素 縮放 6 這些是非破壞性資料壓縮並且對於保留的圖像數據是可逆的 重複轉檔時不重新壓縮現有資料解決重複編碼 修改 對資料進行二次壓縮導致多次量化失真 英语 generation loss 的問題有一个相关的Windows应用程序Jpegcrop 页面存档备份 存于互联网档案馆 为 jpegtran 提供了一个用户界面 对于Linux等类Unix系统 自由的CropGUI 页面存档备份 存于互联网档案馆 能提供类似功能 许多程序基于IJG的代码支持JPEG无损转换功能 部分名单见Lossless Applications List 页面存档备份 存于互联网档案馆 英文 历史 编辑独立JPEG工作组 IJG 的JPEG实现首次公开发布于7 October 1991 并在那是已相当完善 开发主要由Tom Lane 英语 Tom Lane computer scientist 完成 IJG的开源是其中一个主要的开源包 并且是JPEG标准的成功的关键 许多公司将其整合到各种产品中 如图像编辑器和网络浏览器 7 版本5发布于1994年9月24日 整个代码库被重写 它引入了名为rdjpgcom和wrjpgcom的实用程序用于处理嵌入的文字注释 版本6于2 August 1995到来 支持渐进JPEG和第一版jpegtran实用程序 摘要 编辑 主版本 新增文件格式特性 新增主记录项 参考资料舊版本 不再支援 6 渐进式JPEG支持 progressive mode ITU T Recommendation T 81 ISO IEC IS 10918 1舊版本 不再支援 7 算术编码支持 scale num scale denom for compression encoding ITU T JPEG Plus Proposal 8 舊版本 不再支援 8 SmartScale 可变块大小 block size lim Se etc Evolution of JPEG 9 當前版本 9 内部颜色转换 FF F8 LSE扩展标记 color transform JPEG 9 Lossless Coding 10 InfAI JPEG Development Site 页面存档备份 存于互联网档案馆 11 图例 舊版本 舊版本 仍被支援 当前版本 最新预览版本 未来版本时间线 编辑复刻 编辑比较著名的复刻是libjpeg turbo 它优化了执行的速度 还有mozjpeg 它的优化目标是更小的文件大小 除了这些以外 还有一个出自國際標準化組織 ISO 的libjpeg 其目的是所有JPEG 1标准的完整实现 12 libjpeg turbo 编辑 libjpeg nbsp 開發者libjpeg turbo项目首次发布2010年 13年前 2010 当前版本9e 2022年1月16日 1 nbsp 网站libjpeg turbo wbr orglibjpeg turbo是libjpeg的一个复刻 它采用单指令流多数据流 SIMD 指令来加速JPEG编码和解码基础效率 许多项目现在使用libjpeg turbo而不是libjpeg 包括流行的GNU Linux发行版 Fedora Debian Mageia OpenSUSE等 Mozilla和Chrome 13 14 15 除了性能方面 部分项目也因它允许向后保留与旧的libjpeg v6b版本的ABI兼容性而选择使用libjpeg turbo 16 libjpeg v7 v8和v9已打破与早期版本的ABI兼容性 17 libjpeg turbo可以配置为与libjpeg v7或v8 ABI兼容 但 但它并没有实现IJG近期发布的完整的功能集 包括SmartScale格式的扩展名 18 19 因此 通过libjpeg v8和之后版本创建的SmartScale文件将不能被libjpeg turbo正确解压 mozjpeg 编辑 libjpeg nbsp nbsp mozjpeg尝试若干次对DCT系数频谱的分割開發者Mozilla Research首次发布2014年3月4日 9年前 2014 03 04 当前版本9e 2022年1月16日 1 nbsp 网站github wbr com wbr mozilla wbr mozjpegmozjpeg是由Josh Aas和其他Mozilla Research人员完成的libjpeg turbo的一个复刻 它旨在通过减少文件大小 约10 来加快网页的加载时间 以及在不改变图像质量的前提下提高编码效率 为达到此目的 它在编码 不对称 方面使用更多处理能力 同时保持与JPEG标准的完全兼容性 不需要在解码器侧做任何改变 它实际通过优化霍夫曼编码树完成 除了libjpeg turbo mozjpeg版本也建立在jpegcrush之上 这是Loren Merritt编写的一个Perl脚本 21 22 参见 编辑 nbsp 自由软件主题 JPEG 无损数据压缩 无损编辑 有损数据压缩参考资料 编辑 1 0 1 1 1 2 http www ijg org JPEG JFIF 2017 03 17 原始内容存档于2020 11 09 Jpegcrop Preferences and Options description 2017 03 17 原始内容存档于2020 07 11 Filmic Games gt gt The greatest failure of our patent system was 2017 03 17 原始内容存档于2012 09 01 680385 Firefox does not show arithmetic coded jpegs 2017 03 17 原始内容存档于2019 03 10 New jpegtran features 2017 03 17 原始内容存档于2020 11 09 JPEG homepage 2017 03 17 原始内容存档于2014 11 29 Contributed document Word doc file ITU T JPEG Plus Proposal R3 页面存档备份 存于互联网档案馆 Contributed document Word doc file Evolution of JPEG 页面存档备份 存于互联网档案馆 Contributed document Word doc file JPEG 9 Lossless Coding 页面存档备份 存于互联网档案馆 News c t magazine 2012 issue 18 page 43 Software Links 页面存档备份 存于互联网档案馆 存档副本 2017 03 17 原始内容存档于2020 11 16 Software That Uses or Provides libjpeg turbo 页面存档备份 存于互联网档案馆 February 9 2012 Issue 48789 chromium Use libjpeg turbo instead of libjpeg 页面存档备份 存于互联网档案馆 April 14 2011 Bug 698519 Update to libjpeg turbo 1 2 页面存档备份 存于互联网档案馆 February 28 2012 libjpeg for F14 页面存档备份 存于互联网档案馆 February 9 2012 libjpeg API changes compatibility 页面存档备份 存于互联网档案馆 February 9 2012 libjpeg turbo README file 2017 03 17 原始内容存档于2014 08 12 What About libjpeg v9 libjpeg turbo team February 8 2013 原始内容存档于2020 11 12 Releases mozilla mozjpeg github com 2021 04 14 原始内容存档于2022 05 07 Andre Kramer heise de Newsticker January 14 2013 Mozilla Encoder verbessert JPEG Kompression 页面存档备份 存于互联网档案馆 Andreas Donath golem de March 6 2014 Mozilla will JPEGs besser komprimieren 页面存档备份 存于互联网档案馆 引用错误 在 lt references gt 标签中name属性为 libjpeg turbo 的参考文献没有在文中使用 引用错误 在 lt references gt 标签中name属性为 ijg is back 的参考文献没有在文中使用 引用错误 在 lt references gt 标签中name属性为 SmartScale 的参考文献没有在文中使用 引用错误 在 lt references gt 标签中name属性为 v8review 的参考文献没有在文中使用 引用错误 在 lt references gt 标签中name属性为 mozjpeg2 的参考文献没有在文中使用 引用错误 在 lt references gt 标签中name属性为 CloudFlare 的参考文献没有在文中使用外部链接 编辑维基共享资源中相关的多媒体资源 LibjpegOfficial website of the Independent JPEG Group 英文 JPEG FAQs 页面存档备份 存于互联网档案馆 英文 JPEGclub 页面存档备份 存于互联网档案馆 英文 为libjpeg提供额外特性 libjpeg面向Windows的二进制包 页面存档备份 存于互联网档案馆 英文 托管于SourceForge net上的GnuWin32 英语 GnuWin32 中 libjpeg turbo 页面存档备份 存于互联网档案馆 英文 一个ABI及API兼容的libjpeg的复刻 它使用x86 SIMD指令实现参考实现的大幅加速 GitHub上的mozjpeg filesize optimising复刻 英文 Josh Aas Robert Nyman August 2014 使用mozjpeg创建高效JPEG 页面存档备份 存于互联网档案馆 英文 mozjpeg的实用性概述 关于JPEG的那点事儿 页面存档备份 存于互联网档案馆 简体中文 2016 02 21 取自 https zh wikipedia org w index php title Libjpeg amp oldid 71752107, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。