libjpeg 是一個完全用 C 語言編寫的處理 JPEG 影像資料格式的自由函式庫。它包含一個 JPEG 編解碼器的演算法實現，以及用於處理 JPEG 資料的多種實用程式。 該套軟體採用 C 語言編寫，並分發為附有原始碼的自由軟體，採用自定義的寬鬆（類 BSD）自由軟體許可證，權利要求為。原始版本由獨立 JPEG 工作組（IJG）維護和釋出。此外，也有數個提供額外特性的分叉（Fork）。 JPEG JFIF 影像在全球資訊網上被廣泛使用。它可以調整壓縮量級以實現檔案大小與視覺質量之間的期望與權衡。 實用程式 下列實用程式隨 libjpeg 提供： cjpeg 和 djpeg：用於 JPEG 與其他流行的影像檔案格式之間的轉換。 rdjpgcom 和 wrjpgcom：用於在 JPEG 檔案中插入和提取文字註釋。 jpegtran：用於在不同 JPEG 格式之間進行無損轉換的工具。 jpegtran 命令列介面 jpegtran 提供了幾種功能，用於重新格式化和重新編碼 DCT 係數的表示，分別用於轉換實際影像資料和丟棄 JPEG 檔案中的輔助資料。 關於係數表示的變換包括： 最佳化 JPEG 檔案的霍夫曼編碼層以增加壓縮。 漸進和順序 JPEG 格式之間的轉換。 霍夫曼和算術編碼在熵編碼法層之間的轉換。 這些轉變都是完全無損且可逆的。 對影像資料的轉換包括： 消除某些影像程式插入的非標準應用程式特定資料， 對檔案執行某些轉換，例如： 丟棄顏色通道（轉換為灰階）， 旋轉和 90 度， 裁剪影像塊邊框（88 或 1616 畫素）， 縮放 這些是非破壞性資料壓縮並且對於保留的影像資料是可逆的。重複轉檔時不重新壓縮現有資料解決重複編碼 修改 對資料進行二次壓縮導致多次的問題 有一個相關的 Windows 應用程式 Jpegcrop 為 jpegtran 提供了一個使用者介面。對於 Linux 等類 Unix 系統，自由的 CropGUI 能提供類似功能。 許多程式基於 IJG 的程式碼支援 JPEG 無損轉換功能，部分名單見 Lossless Applications List 。 歷史 獨立 JPEG 工作組（IJG）的 JPEG 實現首次公開發佈於，並在那是已相當完善。 開發主要由完成。 IJG 的開源是其中一個主要的開源包，並且是 JPEG 標準的成功的關鍵。許多公司將其整合到各種產品中，如影像編輯器和網路瀏覽器。 版本 5 釋出於 1994 年 9 月 24 日，整個程式碼庫被重寫。它引入了名為 rdjpgcom 和 wrjpgcom 的實用程式用於處理嵌入的文字註釋。 版本 6 於到來，支援漸進 JPEG 和第一版 jpegtran 實用程式。 摘要 主版本 新增檔案格式特性 新增主記錄項 參考資料 漸進式 JPEG 支援 progressive_mode ITUT Recommendation T81 ISOIEC IS 109181 算術編碼支援 scale_numscale_denom for compression encoding ITUT JPEGPlus Proposal Contributed document Word doc file ITUT JPEGPlus Proposal R3 SmartScale （可變塊大小） block_sizelim_Se etc Evolution of JPEGContributed document Word doc file Evolution of JPEG 內部顏色轉換 （FF F8 LSE 擴充套件標記） color_transform JPEG 9 Lossless CodingContributed document Word doc file JPEG 9 Lossless Coding InfAI JPEG Development Site News ct magazine 2012 issue 18 page 43 Software Links 時間線 ImageSize width640 height100 PlotArea width90 height40 left5 bottom20 Period from1992 till2006 TimeAxis orientationhorizontal formatyyyy ScaleMajor unityear increment1 start1993 rough scale PlotData colordullyellow fontsizeS setting standards barReleaseYear from1992 till1994 version 4 barReleaseYear from1994 till1995 coloryelloworange version 5 barReleaseYear from1995 tillend version 6 at1993 shift60 text4a at1994 shift30 text5 at1995 shift30 text6 at1998 shift60 text6b TextData pos2080 fontsizeM text Year of release of versions position and text for the title ImageSize width640 height100 PlotArea width90 height40 left5 bottom45 Period from2006 till2020 TimeAxis orientationhorizontal formatyyyy ScaleMajor unityear increment1 start2007 rough scale PlotData colordullyellow fontsizeS setting standards barReleaseYear from2006 till2009 version 6 barReleaseYear from2009 till2010 coloryelloworange version 7 barReleaseYear from2010 till2013 version 8 barReleaseYear from2013 tillend coloryelloworange version 9 at2009 shift30 text7 at2010 shift30 text8 at2012 shift60 text8d at2013 shift30 text9 at2016 shift60 text9b 復刻 比較著名的復刻是 libjpegturbo，它優化了執行的速度；還有 mozjpeg，它的最佳化目標是更小的檔案大小。除了這些以外，還有一個出自國際標準化組織（ISO）的 libjpeg，其目的是所有 JPEG 1 標準的完整實現。 libjpegturbo libjpegturbo 是 libjpeg 的一個復刻，它採用單指令流多資料流（SIMD）指令來加速 JPEG 編碼和解碼基礎效率。許多專案現在使用 libjpegturbo 而不是 libjpeg，包括流行的 GNULinux 發行版（Fedora、Debian、Mageia、OpenSUSE 等）、Mozilla 和 Chrome。除了效能方面，部分專案也因它允許向後保留與舊的 libjpeg v6b 版本的 ABI 相容性而選擇使用 libjpegturbo。libjpeg v7、v8 和 v9 已打破與早期版本的 ABI 相容性。 libjpegturbo 可以配置為與 libjpeg v7 或 v8 ABI 相容，但，但它並沒有實現 IJG 近期釋出的完整的功能集，包括 SmartScale 格式的副檔名。因此，透過 libjpeg v8 和之後版本建立的 SmartScale 檔案將不能被 libjpegturbo 正確解壓。 mozjpeg mozjpeg 是由 Josh Aas 和其他 Mozilla Research 人員完成的 libjpegturbo 的一個復刻。它旨在透過減少檔案大小（約 10）來加快網頁的載入時間，以及在不改變影像質量的前提下提高編碼效率。為達到此目的，它在編碼（不對稱）方面使用更多處理能力，同時保持與 JPEG 標準的完全相容性，不需要在解碼器側做任何改變。它實際透過最佳化霍夫曼編碼樹完成。 除了 libjpegturbo，mozjpeg 版本也建立在 jpegcrush 之上，這是 Loren Merritt 編寫的一個 Perl 指令碼。 參見 JPEG 無損資料壓縮 無損編輯 有損資料壓縮 參考資料 外部連結 JPEG FAQs JPEGclub 為 libjpeg 提供額外特性 libjpeg 面向 Windows 的二進位制包 （託管於 SourceForgenet 上的中） libjpegturbo ，一個 ABI 及 API 相容的 libjpeg 的復刻，它使用 x86 SIMD 指令實現參考實現的大幅加速。 Josh Aas Robert Nyman August 2014： 使用 mozjpeg 建立高效 JPEG mozjpeg 的實用性概述 關於 JPEG 的那點事兒 ，20160221 CategoryC 函式庫 Category 用 C 程式設計的自由軟體 Category 繪圖函式庫