從 http://code.google.com/p/picojpeg 匯出。原作者是 Rich Geldreich,來自 gmail.com 的 richgel99 。
picojpeg 是一個公共域 JPEG 解壓縮器,以純 C 語言編寫在單一原始檔 picojpeg.c 和單一標頭 picojpeg.h 中。它具有幾個相當獨特的屬性,使其在小型 8/16 位元嵌入式設備或記憶體非常有限的環境中非常有用:
與其他實作相比,picojpeg 有一些缺點和已知問題:
picojpeg 的近似變體已使用 SourceBoost Technologies BoostC 嵌入式編譯器在 Microchip 的 PIC18F4610 微控制器上成功編譯和執行。 (如果您想查看此變體,請發送電子郵件。)picojpeg.c 也已用於 MSP430 和 ARM Cortex-M4 CPU。 (有關用法範例,請參閱在具有 ILI9341 320x240 LCD 模組的 PIC 上使用 picojpeg 庫)。
原始碼分發包括一個範例 VS2005 專案和預先編譯的 Win32/Win64 命令列可執行文件,這些可執行檔使用 picojpeg 進行解壓縮將 JPG 轉換為 TGA 文件。 Sean Barrett 的公共領域 stb_image.c 模組用於編寫 TGA 檔案。
picojpeg 最初基於我的 jpgd 解壓縮器 C++ 類,它(在現代 CPU 上)比 picojpeg.c 更快、更強大,但使用更多內存並假設 int 是 32 位元。
這是在 6809 CPU(Tandy Color Computer 3)上運行的 picojpeg,使用 gcc6809 編譯: picojpeg:在 Tandy Color Computer 3 上解碼 Lena。
v1.1 - 3/23/2020:修正了巨集中的無符號/簽名問題,修復了解碼器中阻止解碼非常大的 JPEG 的溢出問題
v1.1 - 2013 年 2 月 19 日:作為公共領域和(不接受公共領域)MIT 許可證雙重許可。請聯絡我以取得原始碼。
v1.1 - 2013 年2 月9 日:優化了IDCT 行/列循環,以避免僅DC 分量非零時的完全逆變換,添加了「reduce」模式以實現快速1/8 分辨率解碼,更好的錯誤處理,添加了對H2V1/H1V2 色度子採樣因子的支持,將jpg2tga.cpp 移植到jpg2jpg.c(因此所有模組現在都用純C 編寫),添加了代碼來比較picojpeg 的解碼輸出與stb_image 'c 以進行測試/驗證。
v1.0 - 2010 年 11 月 10 日:初始版本。源自於 PIC18F 系列 CPU 上測試的原始版本。
感謝 Daniel Swenson [email protected] 對 picojpeg 開發的貢獻,以及 Chris Phoenix [email protected] 的 MSP430 補丁。
如果對此模組有任何疑問或問題,請聯絡 Rich Geldreich ( gmail.com 的 richgel99) 。這是我的推特頁面。