只做一件事:在"原始像素缓冲"和"JPEG 位流"之间互相转换,过程中可以顺带做颜色空间变换和缩放。它不读写任何其他图片格式。
解码: JPEG文件/内存 --jpeg_read_scanlines--> 像素缓冲(RGB/灰度/YCbCr...) 编码: 像素缓冲(任意内存) --jpeg_write_scanlines--> JPEG文件/内存
jpeglib
libturbojpeg
| libjpeg(IJG 参考实现) | libjpeg‑turbo | |
|---|---|---|
| 出身 | JPEG 标准小组的参考代码,1986 年起 | IJG libjpeg 的兼容加速分支(2009+) |
| API | jpeglib.h 一套 | 100% 兼容 jpeglib + 新增 turbojpeg.h |
| 性能 | 纯 C,单线程 | SIMD(SSE2/AVX2、ARM NEON),快 2~6 倍 |
| 构建 | make 传统构建 | cmake + nasm |
| 现状 | 慢速更新,学术 / 教学用 | 事实标准:Android、各大发行版、嵌入式全用它 |