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を正しく挙動させることができそうだ。