项目简介
本项目是基于C语言的JPEG图像编解码系统,实现了JPEG图像的编码、解码和转码功能,涵盖JPEG基线、扩展顺序和渐进式压缩过程。项目提供用于读写JPEG图像文件的库例程,还有示例应用程序实现JPEG与其他流行图像文件格式的转换。此外,有无损转码工具和插入/提取JFIF文件中文本注释的应用程序。项目基于libjpeg - turbo,利用SIMD指令加速特定系统上的JPEG压缩和解压缩。
项目的主要特性和功能
编解码功能
- 支持JPEG图像的编码、解码和转码,涵盖JPEG基线、扩展顺序和渐进式压缩。
- 提供读写JPEG图像文件的库例程,便于复用。
示例应用
- “cjpeg”和“djpeg”示例应用可实现JPEG与其他流行图像文件格式的转换。
- “jpegtran”工具用于不同JPEG过程的无损转码。
- “rdjpgcom”和“wrjpgcom”应用可插入和提取JFIF文件中的文本注释。
性能优化
- libjpeg - turbo利用SIMD指令加速基线JPEG压缩和解压缩,以及部分系统上的渐进式JPEG压缩,比libjpeg快2 - 6倍。
- 高度优化的霍夫曼编码例程,在不支持SIMD的系统上也优于libjpeg。
其他特性
- 提供TurboJPEG API和libjpeg API两种接口,前者简单易用,后者功能强大。
- 支持颜色空间扩展,可直接对特定像素排序缓冲区的JPEG图像进行压缩/解压缩。
- 可模拟libjpeg v7和v8的ABI,让基于其编译的程序使用libjpeg - turbo加速。
安装使用步骤
安装
若已下载本项目的源码文件,具体构建步骤请参考BUILDING.md。
使用
libjpeg - turbo有两种用于压缩和解压缩JPEG图像的API: - TurboJPEG API:易于使用,用于内存中JPEG图像的压缩和解压缩,推荐新手使用。使用示例参考tjexample.c和java/TJExample.java,API文档见http://libjpeg - turbo.org/Documentation/Documentation。 - libjpeg API:是行业标准API,使用难度高但功能强大。使用示例参考cjpeg.c和djpeg.c,API文档参考libjpeg.txt。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】