cjpegで設定可能なオプションは色々あるが、互いに排他的なものも結構ある。しかし、どれがそうなのかは明示されていない。そこでcjpeg.cを読んで整理してみた。Groupに番号が振ってあるものは、同じ番号内で相互に影響を及ぼすもの。
| Option |
variables |
|
|
|
Group |
| -quality |
qualityarg |
|
|
|
|
| -grayscale |
jpeg_set_colorspace() |
|
|
|
1 |
| -rgb |
jpeg_set_colorspace() |
|
|
|
1 |
| -optimize |
cinfo->optimize_coding |
|
|
|
|
| -progressive |
simple_progressive |
|
|
|
2 |
| -baseline |
force_baseline |
simple_progressive |
cinfo->num_scans |
cinfo->scan_info |
2 |
| -targa |
is_targa |
|
|
|
|
| -revert |
JINT_COMPRESS_PROFILE |
|
|
|
|
| -fastcrush |
JBOOLEAN_OPTIMIZE_SCANS |
|
|
|
|
| -dc-scan-op |
JINT_DC_SCAN_OPT_MODE |
|
|
|
|
| -notrellis |
JBOOLEAN_TRELLIS_QUANT |
|
|
|
|
| -trellis-dc |
JBOOLEAN_TRELLIS_QUANT_DC |
|
|
|
3 |
| -notrellis-dc |
JBOOLEAN_TRELLIS_QUANT_DC |
|
|
|
3 |
| -tune-psnr |
JINT_BASE_QUANT_TBL_IDX |
JFLOAT_LAMBDA_LOG_SCALE1 |
JFLOAT_LAMBDA_LOG_SCALE2 |
JBOOLEAN_USE_LAMBDA_WEIGHT_TBL |
4 |
| -tune-hvs-psnr |
JINT_BASE_QUANT_TBL_IDX |
JFLOAT_LAMBDA_LOG_SCALE1 |
JFLOAT_LAMBDA_LOG_SCALE2 |
JBOOLEAN_USE_LAMBDA_WEIGHT_TBL |
4 |
| -tune-ssim |
JINT_BASE_QUANT_TBL_IDX |
JFLOAT_LAMBDA_LOG_SCALE1 |
JFLOAT_LAMBDA_LOG_SCALE2 |
JBOOLEAN_USE_LAMBDA_WEIGHT_TBL |
4 |
| -tune-ms-ssim |
JINT_BASE_QUANT_TBL_IDX |
JFLOAT_LAMBDA_LOG_SCALE1 |
JFLOAT_LAMBDA_LOG_SCALE2 |
JBOOLEAN_USE_LAMBDA_WEIGHT_TBL |
4 |
| -noovershoot |
JBOOLEAN_OVERSHOOT_DERINGING |
|
|
|
|
| -nojfif |
write_JFIF_header |
|
|
|
|
| -dct |
cinfo->dct_method |
|
|
|
|
| -quant-baseline |
force_baseline |
|
|
|
2 |
| -quant-table |
JINT_BASE_QUANT_TBL_IDX |
|
|
|
4 |
| -icc |
icc_filename |
|
|
|
|
| -restart |
cinfo->restart_interval |
cinfo->restart_in_rows |
|
|
|
| -smooth |
cinfo->smoothing_factor |
|
|
|
|
| -maxmemory |
cinfo->mem->max_memory_to_use |
|
|
|
|
| -outfile |
outfilename |
|
|
|
|
| -memdst |
memdst |
|
|
|
|
| -verbose |
printed_version |
cinfo->err->trace_level |
|
|
|
| -version |
|
|
|
|
|
| -qtables |
qtablefile |
|
|
|
|
| -qslots |
qslotsarg |
|
|
|
|
| -sample |
samplearg |
|
|
|
|
| -scans |
scansarg |
|
|
|
|
整理するだけで1時間かかってしまった。でも、これでGUIを正しく挙動させることができそうだ。