Image file formats and compression/jp

画像ファイルの形式とその圧縮

中間ファイルの形式
中間ファイルとは、編集途中にある画像データを、例えばRawTherapeeからGIMPなど他のプログラムに移動させる時のファイルのことを指します.

この場合の理想的な形式は、画像データやメタデータの損失がなく、且つ読み込み・書き込みが簡単なものです. このことから、中間ファイルの形式としては、常に非圧縮16bitTIFFを使うべきでしょう.

最終ファイルの形式
中間ではないファイル、つまり、最終編集画像やフィルムをスキャンした画像、HDR画像などを保存する場合は幾つか考慮する点があると思います：
 * JPEGは最も幅広くサポートされている形式ですが、データ損失があります. 殆どのJPEG形式は8bit／チャンネル、24bit／ピクセルのデータです.
 * TIFF形式とJPEG形式はメタデータをサポートしていますが、PNG形式はしていません.
 * TIFF形式は様々な圧縮方法が使えます（PNG形式で使う一つのDEFLATE、所謂Zipを含め）. ZipはTIFFをサポートしているRealWorldPhotosの画像を圧縮するのに最も効率の良い方法です.
 * PNGは動作が遅く、効率は良くありません.
 * 保存する画像は外部エディターを使ってもっと効率の良い、16bit JPEG 2000やOpen EXRなどに変換することも出来ます.

損失のない圧縮法の比較をする
比較のための入力ファイルには16bit 10000ｘ5000ピクセルのReal Worldパノラマ画像を使いました.

形式の変換に使ったのは、ImageMagic6.8.8.10、演算に使われたCPUは、x86_64(R)Core™i7 CPU Q820 1.73Ghzです. 作業手順はBashで入力しました.

TIFF 16-bit
備考：妙なことに、RLEで圧縮を行ったファイルのサイズは、圧縮をしなかったファイルより大きくなりました.

TIFF 12-bit
備考：GIMP-2.9と RawTherapee-4.2 は 12-bit TIFFファイルをサポートしていません.

OpenEXR 16-bit浮動小数点
OpenEXRは悪くないオプションです. 最近の圧縮法で、効率も良く幅広くサポートされています.

EXRを16bitTIFFに変換する際は、色空間をsRGBに設定します（設定するだけで、それに変換する訳ではありません）：

PNG 16-bit
最後にPNG形式の結果です. ImageMagickではZLIBの圧縮率1～9を自分で入力します、或いは最初の値を0に設定した場合は、ハフマン圧縮を使います. 2番目の値で、エンコーディングフィルターの時間を入力します、5=AdaptiveがRealWorldPhotosに最適です.

備考：レベル6とレベル9のファイルサイズは変わらないのに、演算時間は4倍になりました.