非公式Windowsソリューション
こうした符号化法は撮影範囲に極めて明るい(発光している)部分がある場合に有利だが、その特殊性により多くのアプリケーションやライブラリーが正しく機能せず、PhotoYCCのデータを切り詰めてしまう。その結果、TIFFやJPEGに変換すると光輝部が飛んでしまう。
Ted Felixはそうした変換結果に満足できず、Kodakの技術資料を読み解き低品質の変換を改善する方法を編み出した。KodakがPCDイメージのロード用にソフトウェア企業に提供していたWindows用DLLに含まれる輝度値の変換表を修正したのだ。
Felixが修正したライブラリーは手軽な代替版として使えるだろう。光輝部が飛んでしまう変換ツールの多くが、これによって頼れるツールに変身する。
このライブラリーで修正可能なアプリケーションは、Felixのサイトにリストされている。1つを除き(後述)すべて有償で、オープンソースのものはない。リストにAdobe Photoshopはないが問題がないわけではなく、Felixのテストでは他の製品同様光輝部が飛んだ。変換ルーチンが異なるためFelixのDLLでは修正できないのだ。
Linux向けオプション
Felixの方法で修正可能なWindowsアプリケーションの一つにイメージ・ビューアーIrfanViewがある。軽量で無償(ソースは非公開)。精度が高く、多くの写真家から評価されている。これはWine上で動作するため、LinuxシステムでPCDイメージを扱う場合の、最後の手段になるだろう。
もちろん、Linuxネイティブのソリューションが好ましいが、それは高望みというものだ。数年前までPCDイメージをPortable Pixmap(PPM)形式に変換するhpcdtoppmというコマンドライン・ユーティリティーがNetpbmパッケージに含まれていたが、ライセンスが制約的だったため、一部のディストリビューション(主なものでは、Debian、Ubuntu、SUSE)は、それぞれのNetpbmからhpcdtoppmを削除した。
手元のディストリビューションにhpcdtoppmが含まれていたら、光輝部が適切に処理されるかどうか確かめてみよう。適当なイメージがなければ、Felixのテスト用PCDを使えばよい。変換結果が思わしくない場合は、Felixのhpcdtoppm用パッチ(Felixのサイトにリンクがある)を適用してみるとよい。ただし、hpcdtoppmが大幅に変更されている場合は、パッチの適用ではなくコードを自分で変更しなければならないかもしれない。
もっと信頼できるソリューションもある。ImageMagick(IM)だ。活発に保守されており、ほぼすべてのLinuxディストリビューションで標準コンポーネントになっている。PCDファイルへの変換は、「convert image001.pcd image001.tiff」などとする。
私にはIMの変換も光輝部が明るすぎるように思われるが、Felixが挙げている例ほど悪くはない。変換はmagick/colorspace.cにあるYCCMAP変換表を使って行われる。
|
| IMとFelixの変換表 |
この変換表をグラフにすると、光輝部が抑制されていることがわかる。実質的に、PhotoYCCからRGBに変換する際にガンマ修正を施していることになる。すべてのイメージに同じガンマ修正が適用されるわけだ。これに対して、Felixが修正した変換表は直線的なため、光輝部の情報が潰れることはない。
この問題についてIMの開発者と話してみたのだが、彼らはKodakの参照イメージと比較テストし、この変換表で期待した結果を得たという。
こうした変換曲線などは、写真家が議論を始めれば一日かけても終わらないような種類のものであることはもちろんだ。しかし、私としては、無修正のスキャンを作業用のイメージに変換するときはいかなる情報も失いたくないのである。幸いなことにオープンソースだから、自分で変更することはできる。
colorspace.cの変換表を線形になるよう変更しておけば、得られたイメージをイメージ・エディターを使って思い通りにガンマ修正し、イメージの内容と使用目的に沿って修正することができる。そこで、YCCMAP変換表を直線化するパッチを作ってみた。このパッチはIMのトランクに対する差分で、トランクのソースは匿名SVNからチェックアウトできる。私としては結果に満足しているが、不満だったとしても、Photo CDの使用頻度にかかわらずPhoto CDが安定した光メディアであることは確かであり、したがってファイルの唯一のコピーを壊さないようにとあまり心配する必要はない。
