« 画像の変換(目次ページ) | トップページ | 誤差拡散法 »

ディザリング(パターン・ディザ)

ディザリング(dithering)

リンク
画像の変換(目次ページ)
ディザ関連
・パターン・ディザ
誤差拡散法
24bit→8bit減色

ディザリング(ディザ法)というのは、デジタル Audio の量子化や
デジタル静止画の減色方法の事です。

静止画に関しては、元々は、印刷機やプリンターで
「いかに本物らしく表現できるか」
という事から発達した技術です。

古くは、印刷機は白と黒の2色(2階調)しかありませんでした。
カラードットプリンタではインクの色数が増えていますが、
それでも数色です。

最近のモニター(PCではグラフィックカード)ではフルカラー(true color)
に対応しているのは当たり前ですが、
windows 出だしの頃は 256 色しか対応していないものが多くありました。

ディザ法が発達した背景にはこのような歴史があります。

ここでは静止画の減色方法の内、有名な2つの方法を紹介します。
・パターンディザ (Pattern Dither)
・誤差拡散法 (Error Diffusion Method)
減色方法はこれ以外にもありますし、この2つにアレンジを加えた亜種も
多数存在します。
このリンク先(英語)が詳しい

【パターンディザ (Pattern Dither)】
まず、このモノクロ(256階調)の絵を白黒(2階調)にする事を考えましょう。

《元データ (256階調)》
source data (256color)

もっとも単純なアイデアは、
 0~127 を 0 に
 128~255 を 255 に
する事です(2値化)


こうやって得られた結果は、

《単純2値化 (256色→2色)》
convert to monochrome by threshold

失敗した魚拓のようです。
これでは、ちょっと使えないです。

では、パターン・ディザ法です。
パターン・ディザでは、
4x4 のマトリックス(=行列,テーブル)を用いて処理を行います。
注) 2x2 や 16x16 が用いられる場合もあります。
(さらに変形したものもあります。)


《良く使われる 4x4 ディザ・マトリックス》
0 8 210
12 414 6
311 1 9
15 713 5
0~15の数字を、縦横それぞれランダムになるように配置したものです。

次に、変換対象の画像を 4x4 ピクセルの大きさで格子状に切っていきます。
この金魚の写真の場合は、320x240ピクセルです。80個x60個 に切る事になります。

パターン・ディザの基本的な考え方は、
『4x4 ピクセルの元データをマトリックスの 4x4 それぞれと比較して、
 マトリックス値以上なら点を打つ(プロットする)』
というものです。
元絵が256階調の場合は、マトリックスが16階調なので、16倍して
階調を合わせてから用います。

注) 上図では、
 黒い■がプロットされたピクセル、
 白い□がプロットされないピクセルを表しています。
 (黒=0x00,白=0xFF と紛らわしくってスイマセン)

注2)正確には、
ディザ・マトリックス x16 (16倍)ではなく
ディザ・マトリックス x16 +8 とすべきなのかもしれません。

このようにしてパターン・ディザによって作られた絵が下記です。
《パターン・ディザ (256色→2色)》
convert to monochrome by pattern dither

グラデーション部分に幾何学模様が目立ちます。
これが、パターン・ディザの特徴です。

それでは、元絵がカラーの場合はどうでしょうか。
《元データ (24bit RGB)》
source data (24 bit color)

元 BMP ファイル

R,G,B 分解すれば、それぞれは 256 階調ですから
同じアルゴリズムが適用できます。
《パターン・ディザ》
(R,G,Bそれぞれ256色→2色)
256 color to 2 color for each R,G,B by pattern dither

色が付いただけで、モノクロより金魚っぽくなりますが、
モノクロが2色なのに比べ、こちらは8色なので、
色数による表現力の違いでしょう。

同じように単純2値化を使って変換してみましょう。
《単純2値化》
(R,G,Bそれぞれ256色→2色)
256 color to 2 color for each R,G,B by threshold

単純2値化に比べると、パターン・ディザの方が
ずっと質感が出ているようです。

実際のプリンタではピクセル単位よりも細かく dpi (dot per inch)
を設定する事によって、より質感が出せそうです。

注) プリンタのインクは RGB ではなく、CMYK が一般的です。
(シアン、マジェンタ、イエロー、ブラック)
なので、C,M,Y,K に分解してからディザを掛ける事になります。
また、それぞれの色をちょっとだけずらすと発色が良くなったり
とか、細かいノウハウが沢山あるらしいです。

|

« 画像の変換(目次ページ) | トップページ | 誤差拡散法 »

画像フォーマット」カテゴリの記事

コメント

Every body understands that humen's life is not cheap, nevertheless we require money for various things and not every man gets enough cash. So to receive fast http://goodfinance-blog.com">loan or car loan should be a correct way out.

投稿: ShereeMiranda | 2012年12月 9日 (日) 09時33分

元絵とディザマトリックスの比較で、白と黒の表示が逆ではありまんか?

投稿: tykk | 2016年12月 4日 (日) 11時16分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ディザリング(パターン・ディザ):

« 画像の変換(目次ページ) | トップページ | 誤差拡散法 »