8-bit and 16-bit/jp

From RawPedia
Jump to: navigation, search

 8bitと16bitの話

 画像のフォーマットは“8bitである”、と言った場合、通常それは各ピクセルカラーに対し8bit(8個の“1”或いは“0”で1バイトを構成し、十進数0~255を00000000~11111111という形で表します)の数字を当てはめているという事です。そして、RawTherapeeは各ピクセルに対し3つのカラーチャンネル-レッド、グリーン、ブルーを持っています。

 Raw撮影が可能な現在のデジタル一眼レフカメラ全てが、撮像素子のデータ記録に、12ないし14bitのアナログ‐デジタルコンバーターを使っています。つまりJPEGのような8bitの出力フォーマットは、常に撮像データの一部を失っているということになります。単純に聞こえますが、理屈は少し複雑です。設計上の都合から、カメラは撮像データを線型的に記録していますが、JPEGやTIFF、PNGはデータがガンマ符号化されていて、シャドウ部分ではより多く、ハイライト部分でより少なくデータの配分が行われています。この方が、人間の目の感度に合っているからです。よって、8bitのJPEG画像は最大17.6段(log2((1/2^8)^2.2=17.6)のダイナミックレンジで表現されており、高級カメラの14段を上回っています。8bitのJPEG画像でも、時々シャドウ部分のカメラノイズが見えるのはこのためです。しかし、ハイライト部分はデータが少ないので、カメラのデータ記録の方がJPEG画像より精度が高いと言えます。但し、出力ファイル(画像)が最終的なものであり、それ以上の調整を行わないというのであれば、実際にはあまり問題になりません。しかし、rawデータで保存されていれば、RawTherapeeの様なraw現像プログラムを使って、出力画像の仕上がりを大きく向上させることが可能なのです。

 RawTherapeeで画像処理を行うと、その画像を同じく各カラーチャンネル8bitで保存する選択と、16bit(その選択肢があるのはTIFFPNGだけで、JPEGにはありません)で保存する選択があります。仮に、RawTherapeeで現像処理した画像を、16bitフォーマットをサポートする外部エディターで再び加工する予定があれば、情報損失のない16bitフォーマットで保存する方がいいでしょう。データが圧縮されない16bitTIFFはその途中行程にある画像の保存フォーマットとしてお奨め出来ます。保存は簡単ですし、元画像のメタデータ(ExifIPTCXMP)も保存されます(一般的にPNGフォーマットの場合は、メタデータが消されてしまいます)。

 ファイルが8bit、16bit、24bit、或いは32bitである、という表現は少々混乱します。解説を加えたいと思いますが、惑わされないように。以下を読まなくてもRawTherapeeの使用に差し支えることはありません。単に予備知識としてお読み下さい。JPEGやPNG或いはTIFFファイルで保持されている各カラーチャンネルに(レッド、グリーン、ブルー)、実際の色はありません。しかし、これら色のないデータが組み合わされるとカラー画像となって表示されるのです。これが画像のデジタル表現というものです。カラー画像は常に何らかの手段でこの様な形に分解されているのです。RawTherapeeが保存することの出来るフォーマット(JPEG、PNGそしてTIFF)で、各ピクセルは3つのカラーチャンネル(レッド、グリーン、ブルー)の情報を有しています。私達が8bit/チャンネルと言う表現を使うのは、1つのカラーチャンネルで8bitということを明確にするためです。そこまではっきり言う理由は、単に“8bit画像”という表現では、その画像が灰色フォーマットで1つのカラーチャンネルしか持たない画像なのか、3つのカラーチャンネルで、各チャネル8bitの精度を持つカラー画像なのか、紛らわしいからです。別な紛らわしさは、同じ8bit画像でも、RawTherapeeが保持するのは“24bit”画像であるという表現です。本当、紛らわしいですね。3つのカラーチャンネルがそれぞれ8bitのデータを有しているので、ピクセルごとに合計で24bitのデータがあるということです。事態は更に紛らわしくなります。画像エディタープログラム中には、アルファという4番目のチャンネルを持つものがあります。単純に言うと、アルファは、ピクセルがどれだけ透明であるかを示すデータです。このアルファチャンネルも8bit“カラー解析”のデータなのです。JPEGはアルファをサポートしませんが、PNGとTIFFはしています。仮に各チャンネル8bitの画像で、アルファチャンネルも備えていれば、レッド(8)+グリーンの8)+ブルー(8)+アルファ(8)=32bit画像、という表現が可能です。究極的に数字はもっと増えます。各カラーチャンネルで32bitという表現が使えるのですから、これらの画像を32bit画像と呼んだり、96bit画像(32bit/チャンネルx3=96)と呼んだりすることが出来ます。実際、ハイダイナミックレンジファイルでは少なくとも16bitの浮動小数点データが各チャンネルに割り当てられています。EXRフォーマットは16bit、RGBEフォーマットなら32bitにもなります。まとめると、“8bit/チャンネル”の画像は、“24bit/ピクセル”画像と呼べる訳で、“16bit/チャンネル”画像は“48bit/ピクセル”画像なのです。どちらにしても私達は、前者の表現を使います(何々bit/チャンネルの画像と表現し、単に何々bit画像と表現しない)。こちらの方がより明確であると思います。