Who are you?

Utilities of JPEG

这篇文章主要对JPEG程序中的cjpeg和djpeg应用程序及其运行选项做学习,其他应用程序jpegtran,rdjpgcom以及wrjpgcom的用法请参阅原文档。如果要将JPEG压缩功能用到自己的程序中,需要参阅其他的几篇说明文档。

一般用法

基本命令

安装玩IJG JPEG软件包后,我们可以得到可执行程序cjpeg和djpeg,其中

  • cjpeg:用于将图像文件压缩为JPEG格式,一般用法为:
    • 在类Unix系统中:cjpeg [switches] [imagefile] jpegfile
    • 在所有系统中:cjpeg [switches] -outfile jpegfile imagefile
  • djpeg:用于将JPEG文件解压缩位原始的图像格式,一般用法为:
    • 在类Unix系统中:djpeg [switches] [jpegfile] imagefile
    • 在所有系统中:djpeg [swithes] -outfile imagefile jpegfile

对于swithes,其中的各个选项都是可以缩写的,大部分基础选项甚至可以缩写为一个单词,另外选项大小写不区分。

支持图片文件格式

目前支持的图片格式有:

  • PPM (PBMPLUS color format)
  • PGM (PBMPLUS grayscale format)
  • BMP
  • Targa
  • RLE (Utah Raster Toolkit format). RLE is supported only if the URT library is available, which it
    isn’t on most non-Unix systems.

对于cjpeg命令,其可以自动识别输入文件格式,而对于djpeg,其需要声明产生的文件格式是哪一种。

程序具体运行选项

CJPEG的运行选项使用方法

对于cjpeg,其基本的命令行选项有:

  • -quality N:压缩比率,实质是通过调节量化表来达到压缩比率的调节,数值为0-100,默认为75。一般来说,quality值设置越高,JPEG文件就会越大,解压缩出的图像与原始图像也越接近。建议设置位50-95之间
  • -grayscale:从彩色输入文件中产生单色JPEG图,当压缩一个灰度BMP文件时我们需要用这个选项。
  • -rgb:产生RGB颜色的JPEG文件。我们可以使用这个选项压制RGB颜色空间的输入转化为默认的YCbCr的颜色空间。
  • -optimize:对熵编码参数进行优化,没有这个选项,将会使用默认的编码参数。该参数通常会使JPEG文件更小一些,但是cjpeg程序会运行更慢一些并且需要更多的内存空间。另外图像解压缩不会受到-optimize的影响
  • -progressive:Create progressive JPEG file (see below).
  • -scale M/N:Scale the output image by a factor M/N.
  • -targa:Input file is Targa format.

其他的一些选项,如Swithes for advanced users以及Switches for wizards请参阅原始文档。

DJPEG的运行选项使用方法

对于djpeg,其基本的命令行选项有:

  • -colors N or -quatize N:将图片减少为最多N种颜色,这将会减少输出文件的颜色数目,因此它能够以colormapped display展示或是以colormapped文件格式存储。
  • -fast:选择推荐的处理选项用于快速以及低质量的文件输出,默认方式是高质量的文件输出。
  • -grayscale:强制文件以灰度图输出,在这种模式下,djpeg会运行更快
  • -rgb:强制文件以RGB文件输出
  • -scale M/N:Scale the output image by a factor M/N.
  • -bmp:选择以bmp文件格式输出
  • -gif:选择以gif文件格式输出
  • 其余还有-os2-pnm-rle-Targa文件格式

其他的一些选项,如Swithes for advanced users以及Switches for wizards请参阅原始文档。

一些建议

For CJPEG

  1. 对于JPEG而言,Gif文件不是理想的输入文件,且现在程序已经不在支持该文件输入
  2. 避免对一张图进行重复多次的压缩与解压缩操作,因为图片的损失会累积
  3. 运行选项-optimize建议在图片最终版时才用

For DJPEG

  1. 我们可以通过使用选项-grayscale-scale来对图片进行快速预览
  2. -fast选项将会打开所有建议选项进而加快程序运行速度
  3. -dct fast-nosmooth将会在损失部分质量的前提下加快运行速度
  4. 如果机器的浮点运算能力非常强,那么,使用-dct float可能会比-dct fast使程序运行更快

其他程序参阅原文档