Libjpeg

libjpeg是一个完全用C语言编写的处理JPEG图像数据格式的自由函式庫。它包含一个JPEG编解码器的算法实现，以及用于处理JPEG数据的多种实用程序。 该套软件采用C语言编写，并分发为附有源代码的自由软件，采用自定义的宽松（类BSD）自由软件许可证，权利要求为署名（英语：attribution (copyright)）。原始版本由独立JPEG工作组（IJG）维护和发布。此外，也有数个提供额外特性的分叉（Fork）。 JPEG JFIF图像在万维网上被广泛使用。它可以调整压缩量级以实现文件大小与视觉质量之间的期望与权衡。 下列实用程序随libjpeg提供： cjpeg和djpeg：用于JPEG与其他流行的图像文件格式之间的转换。 rdjpgcom和wrjpgcom：用于在JPEG文件中插入和提取文字注释。 jpegtran：用于在不同JPEG格式之间进行无损转换的工具。 命令列介面 jpegtran提供了幾種功能，用於重新格式化和重新編碼DCT係數的表示，分別用於轉換實際圖像數據和丟棄JPEG文件中的輔助數據。 關於係數表示的變換包括： 優化JPEG文件的霍夫曼編碼層以增加壓縮。 漸進和順序JPEG格式之間的轉換。 霍夫曼和算术编码在熵編碼法層之間的轉換。 這些轉變都是完全無損且可逆的。 對圖像數據的轉換包括： 消除某些圖像程序插入的非標準應用程序特定數據， 對文件執行某些轉換，例如： 丟棄顏色通道（轉換為灰階）， 旋轉和翻轉（英语：flipped image）90度， 裁剪圖像塊邊框（8×8或16×16像素）， 縮放 這些是非破壞性資料壓縮並且對於保留的圖像數據是可逆的。重複轉檔時不重新壓縮現有資料解決重複編碼(修改)對資料進行二次壓縮導致多次量化失真（英语：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标准的成功的关键。许多公司将其整合到各种产品中，如图像编辑器和网络浏览器。 版本5发布于1994年9月24日，整个代码库被重写。它引入了名为rdjpgcom和wrjpgcom的实用程序用于处理嵌入的文字注释。 版本6于2 August 1995到来，支持渐进JPEG和第一版jpegtran实用程序。 比较著名的复刻是libjpeg-turbo，它优化了执行的速度；还有mozjpeg，它的优化目标是更小的文件大小。除了这些以外，还有一个出自國際標準化組織（ISO）的libjpeg，其目的是所有JPEG 1标准的完整实现。 libjpeg-turbo是libjpeg的一个复刻，它采用单指令流多数据流（SIMD）指令来加速JPEG编码和解码基础效率。许多项目现在使用libjpeg-turbo而不是libjpeg，包括流行的GNU/Linux发行版（Fedora、Debian、Mageia、OpenSUSE等）、Mozilla和Chrome。除了性能方面，部分项目也因它允许向后保留与旧的libjpeg v6b版本的ABI兼容性而选择使用libjpeg-turbo。libjpeg v7、v8和v9已打破与早期版本的ABI兼容性。 libjpeg-turbo可以配置为与libjpeg v7或v8 ABI兼容，但，但它并没有实现IJG近期发布的完整的功能集，包括SmartScale格式的扩展名。因此，通过libjpeg v8和之后版本创建的SmartScale文件将不能被libjpeg-turbo正确解压。 mozjpeg是由Josh Aas和其他Mozilla Research人员完成的libjpeg-turbo的一个复刻。它旨在通过减少文件大小（约10%）来加快网页的加载时间，以及在不改变图像质量的前提下提高编码效率。为达到此目的，它在编码（不对称）方面使用更多处理能力，同时保持与JPEG标准的完全兼容性，不需要在解码器侧做任何改变。它实际通过优化霍夫曼编码树完成。 除了libjpeg-turbo，mozjpeg版本也建立在jpegcrush之上，这是Loren Merritt编写的一个Perl脚本。 自由软件主题 JPEG 无损数据压缩#无损编辑 有损数据压缩 JPEG JFIF. [2017-03-17]. （原始内容存档于2020-11-09）.  Jpegcrop Preferences and Options description. [2017-03-17]. （原始内容存档于2020-07-11）.  Filmic Games >> 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）.  André Kramer (heise.de-Newsticker), January 14, 2013: Mozilla-Encoder verbessert JPEG-Kompression （页面存档备份，存于互联网档案馆） 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”的参考文献没有在文中使用 维基共享资源上的相关多媒体资源：Libjpeg 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