Loading AI tools
JPEG圖片的C程式碼語言函式庫 来自维基百科,自由的百科全书
libjpeg是一個完全用C語言編寫的處理JPEG圖像數據格式的自由函式庫。它包含一個JPEG編解碼器的演算法實現,以及用於處理JPEG數據的多種實用程式。
該套軟件採用C語言編寫,並分發為附有原始碼的自由軟件,採用自訂的寬鬆(類BSD)自由軟件許可證,權利要求為署名。原始版本由獨立JPEG工作群組(IJG)維護和發佈。此外,也有數個提供額外特性的分叉(Fork)。
下列實用程式隨libjpeg提供:
命令列介面 jpegtran提供了幾種功能,用於重新格式化和重新編碼DCT系數的表示,分別用於轉換實際圖像數據和丟棄JPEG檔案中的輔助數據。 關於系數表示的變換包括:
這些轉變都是完全無損且可逆的。 對圖像數據的轉換包括:
這些是非破壞性資料壓縮並且對於保留的圖像數據是可逆的。重複轉檔時不重新壓縮現有資料解決重複編碼(修改)對資料進行二次壓縮導致多次量化失真的問題
有一個相關的Windows應用程式Jpegcrop (頁面存檔備份,存於互聯網檔案館)為「jpegtran」提供了一個用戶介面。對於Linux等類Unix系統,自由的CropGUI (頁面存檔備份,存於互聯網檔案館)能提供類似功能。 許多程式基於IJG的代碼支援JPEG無失真轉換功能,部分名單見Lossless Applications List (頁面存檔備份,存於互聯網檔案館)(英文)。
獨立JPEG工作群組(IJG)的JPEG實現首次公開發佈於7 October 1991,並在那是已相當完善。 開發主要由Tom Lane完成。 IJG的開源是其中一個主要的開源包,並且是JPEG標準的成功的關鍵。許多公司將其整合到各種產品中,如圖像編輯器和網絡瀏覽器。[6]
版本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 ...[7] |
8 | SmartScale (可變塊大小) |
block_size/lim_Se etc. | Evolution of JPEG[8] |
9 | 內部顏色轉換 (FF F8 LSE擴充標記) |
color_transform | JPEG 9 Lossless Coding[9] InfAI JPEG Development Site (頁面存檔備份,存於互聯網檔案館)[10] |
圖例: | 舊版本 | 目前版本 |
---|
比較著名的復刻是libjpeg-turbo,它最佳化了執行的速度;還有mozjpeg,它的最佳化目標是更小的檔案大小。除了這些以外,還有一個出自國際標準化組織(ISO)的libjpeg,其目的是所有JPEG 1標準的完整實現。[11]
開發者 | libjpeg-turbo專案 |
---|---|
首次發佈 | 2010年 |
目前版本 | 3.0.0, 2023年7月3日 |
網站 | libjpeg-turbo |
libjpeg-turbo是libjpeg的一個復刻,它採用單指令流多數據流(SIMD)指令來加速JPEG編碼和解碼基礎效率。許多專案現在使用libjpeg-turbo而不是libjpeg,包括流行的GNU/Linux發行版(Fedora、Debian、Mageia、OpenSUSE等)、Mozilla和Chrome。[12][13][14]除了效能方面,部分專案也因它允許向後保留與舊的libjpeg v6b版本的ABI相容性而選擇使用libjpeg-turbo。[15]libjpeg v7、v8和v9已打破與早期版本的ABI相容性。[16]
libjpeg-turbo可以組態為與libjpeg v7或v8 ABI相容,但,但它並沒有實現IJG近期發佈的完整的功能集,包括SmartScale格式的副檔名。[17][18]因此,通過libjpeg v8和之後版本建立的SmartScale檔案將不能被libjpeg-turbo正確解壓。
開發者 | Mozilla Research |
---|---|
首次發佈 | 2014年3月4日 |
目前版本 | 4.0.3,2021年2月26日[19] |
網站 | github |
mozjpeg是由Josh Aas和其他Mozilla Research人員完成的libjpeg-turbo的一個復刻。它旨在通過減少檔案大小(約10%)來加快網頁的載入時間,以及在不改變圖像質素的前提下提高編碼效率。為達到此目的,它在編碼(不對稱)方面使用更多處理能力,同時保持與JPEG標準的完全相容性,不需要在解碼器側做任何改變。它實際通過最佳化霍夫曼編碼樹完成。
除了libjpeg-turbo,mozjpeg版本也建立在jpegcrush之上,這是Loren Merritt編寫的一個Perl指令碼。[20][21]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.