2011-01-22

ローパスフィルター

このブログでは、画像は長辺が640ドットになるように縮小しています。640ドットで表現できる一番細かい模様は、明るいドットと暗いドットが交互に表示された模様ですので、320本の縞模様です。ではそれより細かな模様はどうなるでしょうか?

640個の点にちょうど重なってちゃんと表現できる部分と、点の間になって表現できない部分が生じて、元の画像にはない変な模様になります。これをモアレと言って、テレビでアナウンサーが、細かい線の入った服を着た時にも見かけます。
この模様を消すにはどうすればよいでしょうか?縮小後の640ドットで表現できない細かい模様があるからこんな変な模様になるわけで、そんな模様を最初からぼかしてしまえば大丈夫です。細かい模様をぼかす仕組みを、空間周波数が低い信号しか通さないフィルターということで「ローパスフィルター」と言います。一番簡単なぼかし方は、この画像は640×424ドットなので、元の画像を横640個、縦424個の正方形に等分して、一つ一つの正方形の中の画像を平均化することで、それより小さな模様をぼかすことです。実際にやってみると

このようになります。これを平均法と言います。最初の画像と比べるとモアレはほとんど消えていますが、まだ少し残っていますし、木の枝などがボケています。実は平均法によるローパスフィルターは、640ドットより細かい模様も完全にぼかすことは出来ずに少し残りますし、640ドットより大きくてぼかす必要がない模様も少しぼかしてしまいます。Lanczosというフィルターならもっと性能が良くて、半径2のLanczosフィルターを使うと

このようになり、モアレがもっと消えています。半径をもっと大きくするとモアレは完全に消えますが、今度は繰り返し模様になっていない境界線に模様が生じてしまいます。

2階通路の黒い部分に横縞が生じています。これはリンギングと言って、周期的でない信号に対して周期性を前提にしたフィルターを用いることで生じます。バランスを考えるとLanczos2が良いです。

画像の縮小にはフリーソフトのRalphaがお勧めです。縮小の設定は

このようにしています。Ralphaの長所は
・Lanczosの処理には三角関数を多用するので他のソフトだと遅いのですが、Ralphaは最近のCPUの動画用の命令を使うことで高速に処理できます。
・読み込み画像として、非可逆圧縮されたJPEGだけでなくTIFFも読め、さらにEXIF情報もそのまま残せます。RAW現像ソフトで画像劣化なしに保存したTIFFを縮小することが出来ます。
・ガンマカーブを考慮した縮小が出来ます。先ほどの画面の「リニアな色空間で処理する」がそれです。こうしないと縮小した時に模様によっては少し暗くなります。
・JPEG保存時にサンプリング比も指定でき、色情報を間引かない4:4:4で保存できます。
有料版のRalpha Plusならさらにレベル補正機能があるので明るさの修正も出来ますし、各色16bitで処理できるのでより正確です。

パソコンのディスプレイは大きなものでも200万画素程度、はがきの大きさに印刷するのも300万画素程度ですから、必ず縮小処理することになります。Windows標準のソフトは平均法で縮小して表示します。FastStone Image ViewerというソフトはLanczosで縮小してくれます。印刷するときは印刷ソフトが縮小してくれます。いずれにしろ縮小するときは縮小後に表現できない細かい模様をぼかすわけですから、縮小前の画像に輪郭強調してはいけません。

ここまで書いたことは撮影後のパソコン上での画像処理としてのローパスフィルターですが、デジタルカメラ内のセンサー前のマイクロレンズも、一つのマイクロレンズに入った光を平均化して一つの画素として出力しているという点ではローパスフィルターの働きをしています。そうでなければFoveonの画像はモアレだらけで見るに堪えなくなります。また、ベイヤー配列の場合に必要となる複屈折を利用したローパスフィルターも、その後のマイクロレンズによる平均化と組み合わせることでローパスフィルターとして機能します。平均化によるローパスフィルターは、ぼかすべき細かい模様も少しは残しますし、ぼかす必要のない大きな模様も少しはぼかしてしまいます。だからこそ調整の余地があって、複屈折の間隔を薄くするとぼかすべき細かい模様のぼかし方は減りますが、その分ぼかす必要のない大きな模様がぼけなくなります。最近のデジカメのローパスフィルターはこの傾向があります。

0 件のコメント: