デジタル一眼レフカメラや一部のコンパクトデジタルカメラの記録形式の中に「JPEG」と並んで「RAW(ロウ)」という記録形式があるのをご存知でしょうか?
この「RAW」データを使って写真を仕上げることを「RAW現像」と呼んでいます。カメラ内で生成された「JPEG」よりも一般的に自由度が高く高画質であることから プロフォトグラファーや、ハイアマチュアなどに支持されてきたファイル形式です。ここではその「RAW現像」についての基礎ということでご紹介していきたいと思います。 デジタルカメラの仕組み
デジタルカメラはレンズや様々な電子部品によって組み立てられていますが、“写真を撮る原理”は非常にシンプルな原理から成っています。 左図の様に、光(映像)はまずデジタルカメラのレンズを通して「イメージセンサ」(撮像素子“CCDやCMOS”などと呼ばれています)に写ります。 イメージセンサはこの光をデジタルデータ(光の強さの値)に変換するための装置で、このイメージセンサが変換したデータがRawデータなのです。 通常このRawデータはデジタルカメラ内でJPEGやTIFF等(皆さんが普段パソコンで見ている“画像”)に変換してメモリ(メディア)に保存される仕組みになっています。 銀塩(フィルム)カメラとデジタルカメラの違い
デジタルカメラはレンズや様々な電子部品によって組み立てられていますが、“写真を撮る原理”は非常にシンプルな原理から成っています。 青い枠の中がカメラ内の処理を表しています。 デジタルカメラ内の“Raw現像エンジン”はカメラメーカー毎に特色があり、画質はこの現像エンジンに大きく左右されます。 また、一部の高級コンパクト機や、 一眼レフタイプのデジカメではJPEGやTIFFに変換する前の「Rawデータ」をそのまま保存する機能を持っており、別途Raw現像ソフトを使用すればユーザーの好み を生かした現像(JPEGやTIFFへの変換)を行う事が可能であり、SILKYPIXとは市川ソフトラボラトリー が開発した、独自のRaw現像を含む画像処理技術の事です。 |
前項で大体のデジタルカメラの仕組みが理解できたと思います。本項ではいよいよRAWデータの構造について解説します。
イメージセンサについて
RAWデータの構造を説明する前にイメージセンサについて理解しておかなければならないことがあります。 それは、「デジタルカメラの仕組み」で少し触れたように“イメージセンサ”は光の強さを感知できますが、その光が何色かの判別が出来ないという事です。 どういう事かというと、基本的に色というのはRGBそれぞれのバランスで構成されていますが、イメージセンサにはRGBのバランスは理解できず明るさのみが解かる“モノクロ”状態なのです。 イメージセンサと色(RGB)について
前述のようにイメージセンサが“モノクロ”だとしたら一体どのようにして色を作るのでしょうか? いくら優秀な頭脳を持ってしても色の情報のないデータから正しい色を再現することは不可能です。 そこで仮に、1つの画素にR(もしくはGかB)の光だけをあてればその画素が感じた光の強さがそのままRの値になり、同様にGやBの光の強さを測ればRGBで色を表現できる事になります。 これがイメージセンサの基本的な仕組みであり、後述するRAW現像に大きく影響しています。 ※実際には1つの画素の表面にカラーフィルタ(R,G,Bいずれかしか通さない特殊なフィルタ)をあて、その色の強さのみ数値化できるようにしています。 RAWの構造(色の配列)
説明したようにイメージセンサは1つの画素でR,G,Bのいずれかの色の強さしか数値化できません。 下図は画素毎がどの色を数値化するかの配列を表した図です。 ※RとBに比べてGの割合が多いのは、人間の目がRやBに対しGへの感度の方が強い事を考慮し情報量を増やす目的で左図の様になっています。 現在普及しているイメージセンサは上記のような配列をしている物がほとんどでこのような配列を“Bayer(ベイヤ−)配列”と呼んでいます。 ※SILKYPIXのアルゴリズムもこのBayer配列に対応しています。なお上記の図でわかる通り、1つの画素で1つの色しか記録できないこのイメージセンサでは“画素数=Pixel数”にはなりません。 しかしながら、デジタルカメラのほとんどは、“画素数=Pixel数”を謳っており、実際に記録される画像の最大Pixel数はイメージセンサの画素数とほぼ一致しています。 詳しくはRaw現像の仕組みとSILKYPIXで紹介しますが、Raw現像処理では1つのPixel情報(R,G,B)を作り出すのに、実際には複数の画素の情報を利用しています。 これは弊社独自の画像補間技術「Realzoom」が拡大補間をする際の原理に似ており、RawデータからPixelの色情報を作り出しているのです。 故にこのRaw現像エンジンの能力が画質に大きく影響しているのです。 |
CCDの仕組みやRawの構造が大体理解できたところで、Rawデータのメリットとデメリットについて説明していきたいと思います。
豊かな階調性
現在もっとも多く使用されているJPEGなどのデータはRGBそれぞれ256階調(0〜255)、色数にして約1677万色の表示が可能です。 これがRAWデータになると、R,G,Bそれぞれ最高4096階調(0〜4095)で記録していますので、256階調では表現できなかった、より細かい階調を保持することが出来ます。 但し。この階調を生かすも殺すもRAW現像エンジンの性能とユーザーの腕次第ですが・・・。 原画 SILKYPIX 現像ソフトA また、デメリットとしては圧縮されているJPEGに比べてデータ量(ファイルサイズ)が大きい事と RAWデータのままではそのデータがどんな画なのかが現像処理をするまで判らない事です。 ファイルサイズに関しては大容量の記録媒体が手頃な価格になってきていますのでハードルは低くなってきているような気がします。 現像の自由度
RAWデータはイメージセンサが受光したデータそのままな為、このデータがあれば色々な味付けをしたJPEGデータが幾らでも作成できます。 これは前項で説明したように素材(RAWデータ)そのままの状態だからできる事で、既に調理してしまった料理(JPEGなど)からでは到底出来ない技です。 将来性
例えば、既に撮影したRAWデータを保存しておけば、この先とても優れたRAW現像エンジンの登場により、今よりもっと綺麗な画像(JPEGなど)にする事が可能になるわけです。 |
ここでは実際の現像方法(概念)と偽色について触れていきます。
ピクセル情報の生成
Rawの構造で少し触れましたが、1つのピクセル情報(RGB)を作るには複数の画素情報を用いておりこの画素情報を作る方法が現像エンジンの
質につながります。では、一体どうやって単色の情報からピクセル情報(R,G,B)を作るのかを下図で説明します。 表1 このRawからどのような要領でピクセル情報を作るのかと言うと・・・ 下図はオレンジの部分を拡大したものです。 まず左図の赤い枠の情報から1つのピクセル情報を作ります。 見て解かるとおり、赤枠の中にはRとBが1つ、Gが2つありますので、ピクセル情報は以下の計算式で求めます。 R,G,B(R/16,(G+G)/2/16,B/16)=(0,0,0) 実際にはもっと複雑な計算から算出していますが、基本的な考え方は同じです。 ※ /16は4096階調を256階調へ変換する為の係数です(4096/256=16) これで1つのピクセル情報が出来ました。同様にして隣のピクセル情報も作成しますが、参照する画素は1画素だけ右にずらしますので、先ほど参照した画素情報と一部重なりますが、そのまま計算します。 このように参照する画素情報を重複しながらピクセル情報を作成していく為、結果的にピクセル数が画素数とほぼ同一になります。 Raw現像処理とはこのような単色の情報からピクセル情報を生成する作業と言うことになります。 表1を現像した結果(概念図)
|
ここではこのRaw現像処理で必ず付きまとう“偽色”について解説していきます。
偽色の原理
Raw現像処理が「単色の情報しかもたない、隣接した複数の画素からピクセル情報を生成する」という事を前項で見てきました。
この“単色”というのがくせもので、偽色の原因はここにあります。シミュレーションデータを基に見ていきましょう。 左の映像をRaw形式で撮影すると下表のようなRawが記録されます。 このRawを前述の現像方法で現像すると以下のイメージが作成されます。 見て分かるとおり、白い丸を撮影したにも係わらず、黄色や青やピンクなどの不思議な色が発生しています。これが偽色と言われる現象です。 被写体が白と黒の2値なのになぜこの様な偽色が発生するのでしょうか? 本来ならば白丸の部分はR,G,B(4095,4095,4095)であるはずなのですが、それを受ける画素(イメージセンサ)は単色しか記録できない為、R,G,Bの内2つの色情報が失われてしまうからです。 偽色の要因をもっと詳しく
前項にあるように“偽色”はその画素においてR,G,Bの内2つの色情報が失われてしまう事が原因であると説明しましたが、実際に現像してみましょう。 まずは左図を見てください。(黒い曲線は被写体の白丸の境界線を表します) まず赤い枠の画素を参照してピクセル情報を算出します。 R,G,B(500/16,(0+0)/2/16,0/16)=(31,0,0) 上の計算で分かる通り、わずかですがカラーバランスが崩れて色が付いてしまいます。 今回のRawデータは画素数が低いため不自然な範囲に偽色が広がっていますが、仮に画素数が1000万画素を超える撮像素子を使ったとしても、程度の差はあれ必ず発生してしまいます。 ※ この境界線をまたぐ画素の数値は見て解かる通り、Max(4095)ではなく中途半端な数値になっています。これはイメージセンサの画素は正方形になっており、画素全体が受けた光の容 量を数値化 している為で、たとえ強い光(4095)でも画素の一部にしか当たらない場合は当たった面積分しか数値化できないからです。 (半分の面積に4095レベルの光が当たった場合はその画素が算出する値は2042となります) ※ちなみにこのRawを「画素が単色ではなくRGB全て数値化できる」と仮定して現像した場合は右図のような画像になります。 |