ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

mozjpegをつかった画像変換ソフトの開発 その2

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