Jpegli: 一个改进的JPEG编码器和解码器实现
jpegli 项目地址: https://gitcode.com/gh_mirrors/jp/jpegli
1. 项目介绍
Jpegli是一个开源项目,它提供了JPEG编码器和解码器的实现,与libjpeg62保持API和ABI兼容。Jpegli在编码器和解码器方面都有所改进,包括支持16位无符号和32位浮点数输入缓冲区,以及在浮点精度下进行颜色空间转换、色度子采样和DCT等。
2. 项目快速启动
安装
首先,确保你的系统中已经安装了CMake和必要的编译工具。
# 克隆项目仓库
git clone https://github.com/google/jpegli.git
# 进入项目目录
cd jpegli
# 配置CMake
mkdir build && cd build
cmake ..
# 编译项目
make
使用
编译完成后,你可以在tools
目录下找到cjpegli
和djpegli
两个二进制文件,以及一个共享库lib/jpegli/libjpeg.so.62.3.0
,可以作为系统的同名库的替代。
编码JPEG图像
# 使用cjpegli工具编码图像
./cjpegli -quality 75 input.png > output.jpg
解码JPEG图像
# 使用djpegli工具解码图像
./djpegli -scale 2x2 output.jpg > scaled_output.png
3. 应用案例和最佳实践
高质量图像压缩
使用Jpegli可以指定一个距离参数来指示期望的质量,类似于JPEG XL的质量参数。这可以帮助你根据需要生成不同质量的JPEG图像。
# 根据距离参数压缩图像
./cjpegli -distance 0.5 input.png > high_quality_output.jpg
颜色空间转换
Jpegli支持在压缩前不将ICC配置文件代表的XYB颜色空间转换为YCbCr颜色空间,而是为原始X、Y、B通道选择专门的量化表。
# 保持ICC颜色空间
./cjpegli -icc input.png > icc_output.jpg
4. 典型生态项目
目前,Jpegli作为一个JPEG编码器的改进实现,在开源社区中得到了一定的关注。它可以与多个图像处理库和工具链集成,例如:
- 图像处理框架,如OpenCV
- Web图像优化工具,如Pillow
- 静态网站生成器,使用Jpegli进行图像优化
这些项目可以通过集成Jpegli来提高JPEG图像的压缩质量和效率。