フォビオン画像のノイズ除去

【Gary Bainbridge さんのサイトにある Foveon noise.html を maro が和訳したものです】

デジタル写真にはノイズの問題が常に付きまといます。ノイズはイメージセンサーの半導体に 発生するランダムな熱が原因で発生するのですが、見た目は銀塩における粒状性とよく似ています。

ノイズは青空のように画像の中で広い面積を占める単色系の領域やポートレートの背景など で最も目立ちます。そして、ほとんどの場合、撮影者が意図したイメージを台無しにします。

今では多くの人が知っていることですが、デジタルカメラ用のフォビオンチップは普通のセンサーと は異なり、それぞれの受光部が積み重なった形で構成されています。


フォビオンセンサーは同じようなサイズのベイヤー型センサーに比べると「ノイジー」である と批評されます。一般的なコンパクト型デジタルカメラと比べたら、かなり「おとなしい」こと が経験的に解ってはいますが、間違いなく真実です。

SIGMA SD9 で撮影した写真が、どちらかと言えばノイジーであることに失望して、 私はこれを調査して、問題に対する解決策を見出そうと決意しました。

私が所有している他のデジタルカメラで写した画像と比較して、実際にはノイジー に見える画像のノイズレベルが他のカメラのそれと比べた場合、比較的「おとなしい」 ことを実感しました。ただ、自然の風景を撮影したときにより多くのイズが発生してい ますが、これはグリーンチャンネルに多くのノイズが発生しているのが原因です。

人の目はグリーンチャンネルのディテールを敏感に感じるようにできていて、これは ベイヤー型のセンサーが緑に関しては他の色と比べて2倍の受光部を備えている理由でも あります。つまり私たちの目は緑で表現されるディテールの異常に対して非常に敏感です。

ベイヤー型センサーではグリーンチャンネルを作成するために他の色の2倍の面積が 使われます。それ故、赤や青に比べてグリーンチャンネルに発生するノイズは少なく なっています。

それに引き替えフォビオンセンサーではグリーンチャンネルのノイズは目立ちやすく、 画像に発生したノイズは容易に識別できます。ではありますが、フォビオンの独特な構 造はこのノイズのかなりの部分を除去する方法を我々に与えてくれることになります。

フォビオンセンサーは三層からなる感光性半導体構造を持っています。最下層は 赤い光に感度があり、その上の層は赤と緑に、最後の最上部の層は赤と緑と青に対して 感度を持っています。緑色のレベルを測定するためには緑と赤に感度を持っている層の 値から、赤の分を差し引いてやらなければいけません。同様に青の量を特定するためには 青の層が出力する値から緑の値(と赤の値を)を差し引かなければなりません。この 演算処理がセンサーに発生した熱雑音に対して興味深い影響を与えます。

上に述べた引き算による処理の結果、緑色の出力値には緑感光層からのノイズが 含まれますが、同時に赤感光層で発生したノイズも含まれることになります。 同様に青色の出力にも緑感光層で発生したノイズが含まれています。これは それぞれの色センサーからのノイズの出力がまったく他の色センサーからは影響を 受けない一般的なベイヤー型センサーとは大いに異なる状況です。

上に記述したことが解っていると、グリーンチャンネルに発生するノイズの 画像をほとんど存在していない光の情報とわずかな偽の色情報からチョットした 演算で作成する事は、かなり簡単なことです。



元の画像

 抽出されたノイズ

(はっきり見えるように強調)

特殊なハイパスフィルター(訳者注:画像処理ソフトウェアでの「フィルター」でカメラやレンズの フィルターのことではありません。)を通り、結果として出力された画像 を補正することは主要な色情報をも取り去ってしまう事になるため、意図的にノイズを 含む原画像のコピーも残しておかなければなりません。一旦ノイズのみの画像を得て しまえば、最終的な画像からこれを取り除くことは容易ですが、実際には最終的な画像から 最初で最後のノイズを取り除く処理を1回だけ行うことを考慮しておく必要があります。



元の画像

 処理された画像

このノイズリダクション処理に必要な演算処理と実際の実行操作を、私は Paint Shop Pro version 8 のスクリプトとPhotoshop CS のアクションとして作成しました。 このスクリプトとアクションは上に書いた事を厳密に実行するわけではありませんが、 全く同じ原理を使っています。 実際問題として Paint Shop Pro のスクリプトでは 8ビットでの演算処理をオーバーラン(訳者注:正確には「オーバーフロー」)させないために 余分な処理が必要になり、作成された画像の主要な部分も取り除かれてしまうことになります。
この処理は演算処理が16ビットで行われる Photoshop のアクションでは必要ありません。

Paint Shop Pro 8 でこのスクリプトを使用するためには、始めに Paint Shop Pro の 'trusted scripts'フォルダにこのスクリプトを保存してください。ノイジーな画像を Paint Shop Pro で開いた後、このスクリプトを実行してください。(訳者注:Paint Shop Pro 8 日本語版で正常に動くかどうかの検証はしておりません。)スクリプトが終了した 時点では画像イメージはノイズを取り除いた後の画像をレイヤーとして保持しています。 それぞれのレイヤーの可視、不可視をスイッチすることで簡単にノイズリダクションが行われる前の 画像と行われた後の画像を比較することができます。これはオリジナル画像にいかなる種類の マスクでも追加して、最終出力を検証することを可能にします。

最終的に出力される画像とオリジナル画像との差を列挙します・・・

画像の一部の解像感が失われます。同じような種類の画像では必然的に除去されるべき ノイズのタイプは同じような物となります。これにより画像のディテールが失われます。 このノイズ除去処理の効果はかなり穏当でオリジナルの画像と直接的な比較をしなければ はっきりと認識されるほどではありません。

 


元の画像

 処理された画像

色彩が失われます。画像上の非常に細かい部分の彩度が失われます。これもオリジナルの画像と 直接的な比較をしなければはっきりと認識されるほどではありません。

   


元の画像

 処理された画像

フリンジ(縁取り)が発生します。画面の一部にフリンジが作られてしまうことが あります。ベイヤー型センサーが作り出すよく知られているフリンジとはあまり似て いません。この症状は青やピンク、あるいは青やピンクが背景となっている場所に 発生する傾向があります。

Paint Shop Pro 8 のスクリプト

スクリプトは "Remove Foveon Noise.PspScript" と言う名前で保存されています。

このスクリプトは以下の条件では正しく作動しません。

画像がサイズを変更されている場合や解像度を変更されている場合。

他のノイズリダクションにより処理済みの場合。 algorithm.

JPEG化されているなどして、正確な色情報が失われている場合、もちろん SIGMA Photo Pro での JPEG化も含まれます。)

フォベオン以外のセンサーで撮影された画像である場合。

このスクリプトは画像に発生したノイズ、それもグリーンチャンネルのもののみを除去します。

このスクリプトはフォビオンセンサーの緑チャンネルに発生するノイズのみを除去します。 他の原因(AD コンバートなど)で発生するノイズがこのアルゴリズムで取り除かれることはありません。

このスクリプトは画像に対して一度だけ実行されなければなりません。

このスクリプトにより実行される処理は累積的な物ではありません。例えば同じ画像に このスクリプトを2回以上実行しても、さらなるノイズリダクションが行われるわけでは ありません。同じ画像が付け加えられるだけです。

Photoshop アクション

Photoshop のアクションは "Foveon.atn" と言う名前で保存されています。 (訳者注:私のサイトに置いてある物は "foveon_noise.atn" と言う名前にしてあります。)

Photoshop のアクションも Paint Shop Pro のスクリプトと全く同じ使用上の制限があります。かつ、各チャンネルあたり 8ビットの画像に対してのみ有効です。(訳者注:私のサイトに置いてある「みな」さんが日本語化してくれたアクションは Photoshop CS では 16ビット/チャンネルでの動作が可能です。)

なぜ、グリーンチャンネルのノイズだけを除去するのか?

ノイズは緑チャンネルのものが一番識別されやすいのですが、実際には全ての チャンネルに存在しています。赤チャンネルに存在しているノイズはこの処理では 除去することができません。青チャンネルのノイスは論理的には取り除かれるはず ですが、実際には結果から判断すると非常にわずかなノイスしか除去されません。

ダウンロード


Photoshop アクションファイル【日本語版】のダウンロード →foveon_noise.atn (3,421 bytes)