省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

画像編集には、8bit 画像ではなく16bit TIFFファイルを使おう

f:id:yasuo_ssi:20210310145522j:plain

 フィルムをスキャンした画像ファイルの補正を行う場合、オリジナルファイルが jpeg (形式上 8bit 固定) だったり、8bit TIFFファイルである場合もあるかと思います。ところで、そのような場合でも一旦画像を 16bit TIFFファイルに変換してから補正を行うことを強く勧めます。というのは、8bitのままだと、諧調数が256と少なく、編集の過程でトーンジャンプが盛大に起こる可能性が高いです。人間の目が識別できる色の諧調は256程度で十分とされています。しかし、画像編集の過程で色調やトーンを変化させていると、諧調が少ないと、丸め誤差のため、諧調はさらに減ってしまいます。おそらく、写真編集を行ったことのある方は経験があると思いますが、トーン編集を繰り返していると簡単にトーンジャンプが発生します。おそらく諧調が、すぐ 1/2, あるいは 1/3 以下になってしまった経験があるはずです。

 ということは、最終出力は256諧調で十分であっても、編集過程ではより多くの諧調があったほうが良好な結果が得られるということです。これはデジタルカメラにおいて、最終出力が撮って出し Jpeg (8bit固定) であっても、センサーは必ず、12もしくは14bit (4096 or 16384諧調) であり、8bit センサーを採用することがないのと同じです。因みに 16bitだと 65536諧調になります。16bit あれば、諧調が仮に 1/3, 1/4 に減ったとしても、まだ 1.5 ~ 2万階調ある計算になりますので、人の目では識別できず余裕ですが、元画像が 256諧調だと、編集を繰り返しているうちに 6, 70諧調程度に落ちてしまうということは十分あり得ます。

 また jpeg などの不可逆圧縮形式の画像の場合は、目でははっきり分からなくても、情報量の低下が非常に大きく、編集過程では不可逆圧縮形式の画像を使うべきではありません。オリジナルがJpegしかないという場合はもちろん仕方ありませんが、その場合でも編集過程の劣化を抑えるためにTIFF形式などの、非圧縮もしくは可逆  (ロスレス) 圧縮ファイルに変換してから編集を行うべきです。

 画像を16bit TIFF ファイルに転換する方法として、とりあえず下記の2つの方法をお示しします。

■Raw現像ソフトを使用する

 ART や darktable などの Raw現像ソフトを使って、16bit TIFFに変換する方法です。以下ART を使った場合について説明しますが、もちろん RawTherapee や darktable でも可能です。

ARTにおけるファイル出力

 ART (および RawTherapee) は読み込んだ画像を出力する際に、画像形式を選べますので、そこで、TIFF (16 bit) を選択して出力します。なお、出力ボタンは、画像のプレビューイメージの左下のフロッピーディスクのアイコンです。

 darktable の場合はライトテーブル画面から、出力したい画像を選択し、エクスポートオプションを指定して、エクスポートしますが、その際ビット深度を 16bit にし、ファイルフォーマットには TIFF フォーマットを指定します。

darktable エクスポートオプション

 なお、TIFF形式の場合、非圧縮もしくは複数の圧縮方式が選べます。選べる圧縮方式はソフトウェアによって異なりますが、一般的には、LZW圧縮、もしくはデフレート圧縮 (ZIP圧縮と表示される場合もあり) です。他の形式が選べる場合もありますが、互換性に難がある場合もあります。また Nikon の NX Studio は、非圧縮か LZW 圧縮の TIFF ファイルしか読み書き出来ません。

GIMP上で16bit TIFFに変換する

 GIMP上で16bit画像に変換する場合は、まず、メニューの[画像] → [精度] → [16 bit 整数]を選択します。

GIMP上での bit深度の変更

 次に、ファイル出力を行う際に、メニューの[ファイル] → [名前を付けてエクスポート]を選択し、TIFF形式で出力します。

名前を付けてエクスポート

 これを選ぶと、ファイル名を指定するダイアログが出ます。その際、ファイルの拡張子を必ず tif と書いて、エクスポートボタンを押します。GIMPでは、拡張子名を記述することで、出力ファイル形式を指定しますので、ファイル名を指定する際は、必ず拡張子の記述を忘れないでください。

ファイル名の指定ダイアログ

 他にも 16bit TIFFファイルで出力可能な画像処理ソフトは有償・無償各種あります。但し、比較的普及率の高い有償ソフトである Photoshop Elements は8bitにしか対応していませんので、この目的には使えません。

 なお、各 bit 深度ごとの一般的な画像形式は、8bit の場合、整数・正負符号なし (値 0~255)、16bit の場合、整数・正負符号なし (値 0~65535)、32bit の場合、浮動点小数 (値 0.0~1.0) です。16bit 浮動点小数や、32bit 整数はあまり使われません。

■一旦トーンジャンプを起こしてしまった画像については...

 一旦、トーンジャンプを起こしてしまった画像に関しては、ART, RawTherapee, darktableといった、Raw現像ソフトに読み込ませ、トーンをいじる編集をおこなうと、ジャンプしたトーンを補間する効果があります。GIMPにおいて、16bitで編集を行うと、トーンジャンプを減らす効果はありますが、一旦発生したトーンジャンプを補間する効果はありません。このサイトで紹介している補正例で、最後に Raw現像ソフトに読み込ませて画像を調整して出力しているのはそのためです。

 

■32bit画像はだめなの?

 なお、これらのソフトでは、32bitでの画像出力も可能です。但し、Bチャンネル再建法を使う場合、いまのところ 画像読み込みを担当する bio-format プラグインが 32bit カラー画像に対応していないため、32bitカラー画像が扱えません (モノクロ単チャンネル32bit画像は扱えます。また ImageJ自体は、内部的には、32bit画像を扱う機能は備えています)。[追記] bi0-format プラグイン Ver. 6.12x 以降で 32bit TIFF を読み込めるようになっています。そのため、拙作のプラグインも、現状32bit画像での動作を想定していません。なお、bio-format プラグインの今後のアップデートで32bitカラー画像が利用可能になるかもしれませんが、当面、Bチャンネル再建法を使う場合は、16bit (整数) のTIFF画像で出力して下さい

------------

[2023.7 追記]

 現在、bio-format プラグインのアップデートにより、通常の 32bit フルカラー TIFF ファイルを読み込めるようになっています。ただし、書き込みはできません。ImageJ 独自形式のみ書き込み可能です。

[2023.11 追記]

 ImageJ 独自形式の RGB カラー TIFF ファイルを GIMP で読み込むプラグインを開発しました。下記をご覧ください。

yasuo-ssi.hatenablog.com