从 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) 。这是我的推特页面。