「ディザ」の版間の差分
m r2.7.2) (ロボットによる 追加: simple:Dither |
おかしな日本語を修正 |
||
(5人の利用者による、間の5版が非表示) | |||
1行目: | 1行目: | ||
'''ディザ'''(Dither)とは、[[量子化誤差]](端数)を、単純に[[端数処理|丸める]]のではなく、全体の量子化誤差 |
'''ディザ'''(Dither)とは、[[量子化誤差]](端数)を、単純に[[端数処理|丸める]]のではなく、全体の量子化誤差が最小化するよう[[確率]]を調整して切り捨てまたは切り上げのどちらかを[[ランダム]]におこなうためによるゆらぎのことである。そのような一種のノイズ的データを追加する作業および技法は'''ディザリング'''(Dithering)または'''ディザ法'''と呼ばれる。誤差を周囲のデータに拡散する手法をも含めて言うこともある。ディザリングは、デジタル音響やデジタル動画のデータを処理する際に普通に行われ、[[CD-DA|CD]]の制作でも最終段階でよく行われている。 |
||
== 用語 "dither" の起源 == |
== 用語 "dither" の起源 == |
||
{{Quote|[…] ディザという言葉が最初に使われたのは第二次世界大戦の頃である。当時の爆撃機では、航法と爆撃の弾道を算出するうえで機械式の計算機が使用されていた。そういった(数百個の歯車などで満たされている箱としての)計算機は、奇妙なことに、地上で試された場合よりも飛行機上で用いられた場合の方がうまく機能した。これについて技術者が気づいたのは、固着した可動部に与えられた航空機の振動の刺激が(計算機の出力の)誤差を減らした、ということだった。短い断続的な振動ではなく長い連続的な振動によって、(算出結果の)そのような(奇妙な)正確さがもたらされていたわけである。(この発見にちなんで、)振動を発生させる小型のモーターが計算機に組み込まれるようになった。生成されるこの振動のことは、中期英語の "didderen"(震える)からとって "dither" と名づけられた。今日、何かのメーターの動きが変だと思ったときにそれをちょっと叩くのは、ディザを与えているのである。現代の辞書は、"dither" を「非常に神経質で、混乱しているか、動揺している状態」と定義している。ディザリングを少しばかり行うことで、デジタル環境の信号体系はややアナログ的となる。|Ken Pohlmann、Principles of Digital Audio、4th edition、page 46<ref>{{Cite book | title = Principles of Digital Audio | author = Ken C. Pohlmann | publisher = McGraw-Hill Professional | year = 2005 | url = http://books.google.com/?id=VZw6z9a03ikC&pg=PA49&dq=didderen+dither+intitle:Principles+intitle:of+intitle:Digital+intitle:Audio | isbn = 0-07-144156-5 }}</ref>}} |
|||
:: — Ken Pohlmann、Principles of Digital Audio、4th edition、page 46 |
|||
戦後間もなく、アナログ計算や水力制御の銃砲についての書籍で "dither" という用語が使われている<ref>{{Cite book | title = Ordnance Field Guide: Restricted | author = William C. Farmer | publisher = Military service publishing company | year = 1945 | url = http://books.google.com/?id=15ffO4UVw8QC&q=dither }}</ref><ref>{{Cite book | title = Electronic Analog Computers: (d–c Analog Computers) | author = Granino Arthur Korn and Theresa M. Korn | publisher = McGraw-Hill | year = 1952 | url = http://books.google.com/?id=dwsuAAAAIAAJ&q=dither }}</ref>。 |
|||
量子化におけるディザリング技術の導入は、1961年、[[マサチューセッツ工科大学|MIT]] の Lawrence G. Roberts が修士論文の中で初めて提唱した。しかし彼は "dither" という言葉を用いなかった<ref>Lawrence G. Roberts, ''Picture Coding Using Pseudo-Random Noise'', MIT, S.M. thesis, 1961 [http://www.packet.cc/files/pic-code-noise.html online]</ref>。 |
|||
量子化におけるディザリング技術の導入を提唱したは[[マサチューセッツ工科大学|MIT]]の Lawrence G. Roberts で<ref>{{Cite book | title = Data Compression: Techniques and Applications | author = Thomas J. Lynch | publisher = Lifetime Learning Publications | year = 1985 | url = http://books.google.com/?id=E7EmAAAAMAAJ&q=first+suggested+by+Roberts+in+1962&dq=first+suggested+by+Roberts+in+1962 | isbn = 978-0-534-03418-4 }}</ref>、1961年の修士論文<ref>Lawrence G. Roberts, ''Picture Coding Using Pseudo-Random Noise'', MIT, S.M. thesis, 1961 [http://www.packet.cc/files/pic-code-noise.html online]</ref>と1962年の論文<ref>{{Cite journal | title = Picture Coding Using Pseudo-Random Noise | author = Lawrence G. Roberts | journal = IEEE Trans. Information Theory | volume = 8 | issue = 2 | month = February | year = 1962 | pages = 145–154 | url = http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1057702 | format = abstract | doi = 10.1109/TIT.1962.1057702}}</ref>があるが、彼は "dither" という言葉を用いていない。今のような意味で "dither" が使われた初出は1964年の Schuchman の論文である<ref>{{Cite journal | title = Dither Signals and Their Effect on Quantization Noise | author = L. Schuchman | journal = IEEE Trans. Communications | volume = 12 | issue = 4 | month = December | year = 1964 | pages = 162–165 | url = http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1088973 | doi = 10.1109/TCOM.1964.1088973 | format = abstract}}</ref>。 |
|||
== デジタル信号処理と波形解析におけるディザリング == |
== デジタル信号処理と波形解析におけるディザリング == |
||
ディザリングは、デジタルデータの[[サンプリング周波数|標本化周波数]]や[[量子化]]ビット数を変換する際の処方([[デジタル信号処理]])として、[[デジタル音響]]、[[デジタル動画]]、[[デジタル写真]]、[[地震学]]、[[レーダー]]、[[天気予報]]などの分野で使われる。なかでも波形解析におけるこの信号処理の方式の意義は大きい。 |
ディザリングは、デジタルデータの[[サンプリング周波数|標本化周波数]]や[[量子化]]ビット数を変換する際の処方([[デジタル信号処理]])として、[[デジタルオーディオ|デジタル音響]]、[[デジタルビデオ|デジタル動画]]、[[デジタル写真]]、[[地震学]]、[[レーダー]]、[[天気予報]]などの分野で使われる。なかでも波形解析におけるこの信号処理の方式の意義は大きい。 |
||
変化が連続的な量の量子化には[[量子化誤差]]がともなう。その誤差が本来の信号に連関するかたちで均一的に再起するものであるとき、そこには、数値的確定性をそなえた人工的な周期が現出することになる。ところがそのような人工性(誤差の周期性・確定性)を孕んだデータというのは、ときとして望ましいものではない。信号の周期性・確定性にたいして受信側が敏感である場合は特にそうである。このとき、データ信号の周期性・確定性は、ランダム性を含ませたディザリングによって排除することができる。 |
変化が連続的な量の量子化には[[量子化誤差]]がともなう。その誤差が本来の信号に連関するかたちで均一的に再起するものであるとき、そこには、数値的確定性をそなえた人工的な周期が現出することになる。ところがそのような人工性(誤差の周期性・確定性)を孕んだデータというのは、ときとして望ましいものではない。信号の周期性・確定性にたいして受信側が敏感である場合は特にそうである。このとき、データ信号の周期性・確定性は、ランダム性を含ませたディザリングによって排除することができる。 |
||
17行目: | 17行目: | ||
== デジタルオーディオ == |
== デジタルオーディオ == |
||
音響においては、デジタルフィルタでよく見られる周期的[[リミットサイクル]]の解消に役立つ。ランダムノイズは一般にリミットサイクルが作りだす[[倍音]]よりも好ましい。 |
|||
たとえば[[SACD]]などに収められる量子化ビット数([[ビット深度 (音響機器)]])24ビットのデータがあるのにたいして[[コンパクトディスク|CD]]のデータは16ビットである。16ビットはCDの規格の数字であり、制作工程では24ビットで処理されていたとしてもCDに収録するためのマスターの段階では16ビットにしなければならない。プレイヤーが再生するデータも16ビットである。この規格の枠内で高品位化を図る手法のひとつとして、量子化ビット数の多い(たとえば24ビットの)データを16ビットに変換する際に、ディザリングをおこなう、という手法がある。 |
|||
[[:en:Audio Engineering Society|Audio Engineering Society]] (AES) の学会誌に掲載された Lipshitz と Vanderkooy の論文で、様々な[[確率密度関数]] (PDF) をディザ信号(ノイズ)として使ったときの差異を指摘し、音響におけるディザ信号の最適レベルについて論じている<ref>{{Cite journal| last1 = Lipshitz| first1 = Stanley P| last2 = Vanderkooy| first2 = John| last3 = Wannamaker| first3 = Robert A.| title = Minimally Audible Noise Shaping| journal = J. Audio Eng. Soc.| volume = 39| issue = 11| pages = 836–852| date = November 1991| url = http://www.aes.org/e-lib/browse.cfm?elib=5956| accessdate = 28 October 2009}}</ref><ref name=vanderkooy87>{{Cite journal| last1 = Vanderkooy| first1 = John| last2 = Lipshitz| first2 = Stanley P| title = Dither in Digital Audio| journal = J. Audio Eng. Soc.| volume = 35| issue = 12| pages = 966–975| date = December 1987| url = http://www.aes.org/e-lib/browse.cfm?elib=5173| accessdate = 28 October 2009}}</ref>。{{仮リンク|ガウス雑音|en|Gaussian noise}}を使って歪みを解消するには、[[連続一様分布|方形PDF]]や[[三角分布|三角形PDF]]よりも高いレベルを必要とする。三角形PDFによる雑音は歪みを解消するのに低いレベルで済む。 |
|||
ある量子化ビット数のデータを異なるビット数に変換する方法はいくつかある。目的のビット数の標本単位に収まらずしてはみ出る元データの部分を刈り除く'''切り捨て(truncation)'''、また、はみ出ることになる部分を近い値に直してでも保持する'''丸め(round)'''などがある。しかしこれらの処方は、前節で述べられている'''誤差の周期化・周波数成分化'''およびそれによる'''ノイズ'''の発生をもたらしかねない。例えば次のような波形データを表す値があるとする―― |
|||
{{Quote|アナログシステムでは信号は「連続」だが、[[パルス符号変調|PCM]]デジタルシステムでは信号の振幅は固定個の値に制限される。これを[[量子化]]と呼ぶ。振幅の値は離散的であり … ディザを使わすに量子化した信号では量子化によって生じる歪みが残る。 … それを防ぐには信号に「ディザ」を施す必要がある。ディザリングは倍音などの好ましくない歪みを数学的に除去するもので、代わりに一定のノイズを付与する。<ref>Mastering Audio: The Art and the Science by Bob Katz, pages 49–50, ISBN 978-0-240-80545-0</ref>}} |
|||
たとえば[[SACD]]などに収められる量子化ビット数([[ビット深度 (音響機器)|ビット深度]])24ビットのデータがあるのにたいして[[コンパクトディスク|CD]]のデータは16ビットである。16ビットはCDの規格の数字であり、制作工程では24ビットで処理されていたとしてもCDに収録するためのマスターの段階では16ビットにしなければならない。プレイヤーが再生するデータも16ビットである。この規格の枠内で高品位化を図る手法のひとつとして、量子化ビット数の多い(たとえば24ビットの)データを16ビットに変換する際に、ディザリングをおこなう、という手法がある。 |
|||
{{試聴 |
|||
| filename = 16bit sine.ogg |
|||
| title = 16ビットの正弦波 |
|||
| description = 16[[ビット深度]]で量子化された正弦波 |
|||
| format = [[Ogg]] |
|||
| filename2 = 6bit sine truncated.ogg |
|||
| title2 = 6ビットに変換した音 |
|||
| description2 = ディザを施さずに6ビットに変換したもの。音色が違って聞こえる。 |
|||
| format2 = [[Ogg]] |
|||
}} |
|||
ある量子化ビット数のデータを異なるビット数に変換する方法はいくつかある。目的のビット数の標本単位に収まらずしてはみ出る元データの部分を刈り除く'''切り捨て(truncation)'''、また、はみ出ることになる部分を近い値に直してでも保持する'''丸め(round)'''などがある。しかしこれらの処方は、前節で述べられている'''誤差の周期化・周波数成分化'''およびそれによる'''ノイズ'''の発生をもたらしかねない。例えば次のような波形データを表す値があるとする。 |
|||
1 2 3 4 5 6 7 8 |
1 2 3 4 5 6 7 8 |
||
たとえば、この波形が有する数値を 20% 縮小する(波形の構成値すべてに 0.8 をかける)と、次のような値が得られる |
たとえば、この波形が有する数値を 20% 縮小する(波形の構成値すべてに 0.8 をかける)と、次のような値が得られる。 |
||
0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4 |
0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4 |
||
量子化ビット数が、整数の桁のぶんしかなかったら、これを整数に改めなくてはならない。 |
量子化ビット数が、整数の桁のぶんしかなかったら、これを整数に改めなくてはならない。 |
||
「切り捨て」を適用した場合には次のようになる |
「切り捨て」を適用した場合には次のようになる。 |
||
0 1 2 3 4 4 5 6 |
0 1 2 3 4 4 5 6 |
||
切り捨ての代わりに「丸め」(四捨五入)を適用した場合には次のとおりである |
切り捨ての代わりに「丸め」(四捨五入)を適用した場合には次のとおりである。 |
||
1 2 2 3 4 5 6 6 |
1 2 2 3 4 5 6 6 |
||
いずれの処方でも、元データの数値に対していくらかの誤差がある。そしてその誤差はまた'''回帰的'''である。正弦波のような反復的な波形についてこの現象を考えるとわかりやすい。そのような波形を標本化し、量子化する場合、元となるデータに含まれる 2.4 や 6.4 という値にたとえば「切り捨て」を適用して 2 などにするために生じる 0.4 の差分は、元データの波形の周波数と標本化周波数の積の周波数で、周期的に再起することになる(この例の場合、元データが 5 である 4.0 の量子化には差分が発生しない)。音を生じさせるのが物質の周波的運動である以上、[[デジタイズ]]の際に起こるこの周期的な誤差は周波数成分の一つとして音に化ける。そしてこれを耳が'''歪み'''として受け取ることになる。 |
いずれの処方でも、元データの数値に対していくらかの誤差がある。そしてその誤差はまた'''回帰的'''である。正弦波のような反復的な波形についてこの現象を考えるとわかりやすい。そのような波形を標本化し、量子化する場合、元となるデータに含まれる 2.4 や 6.4 という値にたとえば「切り捨て」を適用して 2 などにするために生じる 0.4 の差分は、元データの波形の周波数と標本化周波数の積の周波数で、周期的に再起することになる(この例の場合、元データが 5 である 4.0 の量子化には差分が発生しない)。音を生じさせるのが物質の周波的運動である以上、[[デジタイズ]]の際に起こるこの周期的な誤差は周波数成分の一つとして音に化ける。そしてこれを耳が'''[[歪み (電子機器)|歪み]]'''として受け取ることになる。 |
||
量子化誤差のこのような問題を根本から回避することは不可能である。2 桁の数値 (4.8) が「切り捨て」や「丸め」などによって 1 桁の数値(4 または 5)に変換される過程で誤差は必ず生じる。ただし、数値を量子化する仕方に何らかの'''工夫'''を加えて誤差の周期的発生すなわち差分の周波数化・ノイズ化を防ぐことは可能である。すなわち、量子化における誤差が本来の信号・波形の周期とは'''連関しないように'''するのである。 |
量子化誤差のこのような問題を根本から回避することは不可能である。2 桁の数値 (4.8) が「切り捨て」や「丸め」などによって 1 桁の数値(4 または 5)に変換される過程で誤差は必ず生じる。ただし、数値を量子化する仕方に何らかの'''工夫'''を加えて誤差の周期的発生すなわち差分の周波数化・ノイズ化を防ぐことは可能である。すなわち、量子化における誤差が本来の信号・波形の周期とは'''連関しないように'''するのである。 |
||
57行目: | 73行目: | ||
'''RPDF''' は "Rectangular Probability Density Function"(方形確率密度関数)の略で、[[サイコロ]]と同じ役目を果たす。任意の数が同等の無作為な[[確率]]ででる。 |
'''RPDF''' は "Rectangular Probability Density Function"(方形確率密度関数)の略で、[[サイコロ]]と同じ役目を果たす。任意の数が同等の無作為な[[確率]]ででる。 |
||
'''TPDF''' は "Triangular Probability Density Function" (三角形確率密度関数)の略で、2個のサイコロと同じ役目を果たす。数の合計の出現確率はそれぞれ異なり、以下のようになる: |
'''TPDF''' は "Triangular Probability Density Function" ([[三角分布|三角形確率密度関数]])の略で、2個のサイコロと同じ役目を果たす。数の合計の出現確率はそれぞれ異なり、以下のようになる: |
||
:1/1 = 2 |
:1/1 = 2 |
||
77行目: | 93行目: | ||
'''色つきディザ'''(Colored Dither)は[[ホワイトノイズ]]とは異なるため、フィルター付きディザとも呼ばれる。オーディオ機器の帯域特性に合わせるためにエネルギーを下げるように、高い周波数ほど大きなエネルギーを持ったノイズを使用する。 |
'''色つきディザ'''(Colored Dither)は[[ホワイトノイズ]]とは異なるため、フィルター付きディザとも呼ばれる。オーディオ機器の帯域特性に合わせるためにエネルギーを下げるように、高い周波数ほど大きなエネルギーを持ったノイズを使用する。 |
||
'''ノイズシェーピング'''もディザと同様の手法であるが、ランダム化よりもオーディオストリームにおいて誤差拡散のリアルタイム処理に重点を置いたフィードバック型の処理である。 |
'''{{仮リンク|ノイズシェーピング|en|Noise shaping}}'''もディザと同様の手法であるが、ランダム化よりもオーディオストリームにおいて誤差拡散のリアルタイム処理に重点を置いたフィードバック型の処理である。 |
||
<!-- |
|||
==== ディザの選択 ==== |
|||
{{要出典範囲|date=2011年5月|ディザを施そうとする信号がその他の処理をその後も加えられる予定なら、2回の量子化工程に相当する TPDF ディザを使用すべきである(従って、ディザは -1 から +1 とか、0 から 2 といった範囲から計算される)。色つきディザを中間段階で使うと、不要な部分を除去し、信号を識別しやすくすることができる。 |
|||
ディザリングをした後で信号に処理を施さない場合(最終的な処理としてディザリングを行う場合)、色つきディザやノイズシェーピングが適切である。それにより可聴範囲のノイズレベルを効率的に低減することができる。}} |
|||
--> |
|||
== デジタル画像とイメージ処理 == |
== デジタル画像とイメージ処理 == |
||
[[ファイル:Dithering example red blue.png|frame|right|ディザリングの例。赤と青だけを使っているが、それぞれの矩形が小さくなると全体として紫に見えてくる。]] |
|||
ディザリングは、[[コンピュータグラフィックス]]で使われる場合には、制限された色数でそれ以上の色調を表現する技法として使われる。ディザリングを施した[[デジタル画像]]では、パレットにない色を表現するために、存在する色の[[ピクセル]]をばらつかせて配置する。ディザリングは[[印刷]]における中間色調の表現技法によく似ている。色数の少ないディザリングを施した画像は、粒状の微細な模様などで見分けが付くことが多い。 |
|||
[[ファイル:256colortestthing.png|thumb|right|[[IrfanView]]にて256色のグラフィックスにディザリングを使用した例]] |
|||
ディザリングは、[[コンピュータグラフィックス]]で使われる場合には、制限された[[色]]数でそれ以上の色調を表現する技法として使われる。ディザリングを施した[[デジタル画像]]では、パレットにない色を表現するために、存在する色の[[ピクセル]]をばらつかせて配置する。ヒトの眼はそのような色の拡散配置を色の混合として知覚する。色数の少ないディザリングを施した画像は、粒状の微細な模様などで見分けが付くことが多い。 |
|||
ディザリングは[[印刷]]における中間色調の表現技法によく似ている。 |
|||
<div style="float:right; width: 260px; margin: 0 0 1em 1em"> |
|||
その性質上、ディザリングは画像に何らかのパターンを導入し、ヒトの眼からはそのパターンが判別できない程度の距離から画像を見るだろうという考え方に基づいている。しかし実際にはそうでないことも多く、パターンは見えることが多い。そのような場合、[[カラードノイズ|ブルーノイズ]]のディザパターンが最も目立たない<ref name=dithernoise>{{Cite web |url = http://www.hpl.hp.com/personal/Robert_Ulichney/papers/1994-freq-characterization.pdf |title = Halftone Characterization in the Frequency Domain |accessdate = 2012-07-20 |last = Ulichney |first = Robert A |date = 1994}}</ref>。ブルーノイズのディザリングパターンを生成するため当初は誤差拡散法が使われたが、人工的な見た目に陥ることなくブルーノイズのディザリングを実現する配列ディザリングなどの技法も考案されている。 |
|||
[[Image:Dithering_example_undithered.png|frame|図1. 元画像]] |
|||
[[Image:Dithering_example_undithered_web_palette.png|frame|図2. Webセーフカラーに減色した画像(ディザリング無し)]] |
|||
[[Image:Dithering_example_dithered_web_palette.png|frame|図3. Webセーフカラーに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの)]] |
|||
[[Image:Dithering_example_dithered_256color.png|frame|図4. 最適化された256色カラーパレットに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの)]] |
|||
[[Image:Dithering_example_undithered_16color.png|frame|図5. 最適化された16色カラーパレットに減色した画像(ディザリング無し)]] |
|||
[[Image:Dithering_example_dithered_16color.png|frame|図6. 最適化された16色カラーパレットに減色した画像(ディザリングあり)]] |
|||
</div> |
|||
=== 例 === |
|||
画像の色数を減らすことは、見た目に多大な副作用をもたらす。元の画像が写真だった場合、色数は少なくとも数千、場合によっては数百万色にもなる。これを固定の色数から構成されるパレットで表現できるようにすると、ある程度の色に関する情報が失われる。 |
画像の色数を減らすことは、見た目に多大な副作用をもたらす。元の画像が写真だった場合、色数は少なくとも数千、場合によっては数百万色にもなる。これを固定の色数から構成されるパレットで表現できるようにすると、ある程度の色に関する情報が失われる。 |
||
色数を減らした画像は、いくつかの要因により劣化する。その第一の要因は使用しているカラーパレットにある。例えば、元の画像(図1)を216色の[[Webセーフカラー]]に減色する場合を考える。 |
色数を減らした画像は、いくつかの要因により劣化する。その第一の要因は使用しているカラーパレットにある。例えば、元の画像(図1)を216色の[[Webセーフカラー]]に減色する場合を考える。元の画像の各ピクセルの色を単純に最も近い色にした場合、ディザリングは行われない(図2)。一般に、このような減色を施すと細部が失われて同色が平坦に連なる領域ができ、元の画像とはかなり印象が変わる。影になる部分や曲面は色の帯ができ、奇妙に見える。ディザリングを施すことにより、そのような人工的な見栄えを改善することができ、元の画像に近い結果を得ることができる(図3)。 |
||
固定されたカラーパレットを使用する際の問題として、必要な色がそのパレットにないことが多い点が挙げられる。同時に、元の画像では全く使わない色がパレットに含まれている。例えば、緑の系統の色を全く使わない画像では、パレット内の緑系統の色はほとんど使われない。そのような場合、画像に最適化されたカラーパレットを使用すると画像が改善される。最適化されたパレットの色は、元の画像で多く使われている色から選ばれる。最適化されたパレットを使って減色すると、その結果は元の画像により近くなる(図4)。 |
固定されたカラーパレットを使用する際の問題として、必要な色がそのパレットにないことが多い点が挙げられる。同時に、元の画像では全く使わない色がパレットに含まれている。例えば、緑の系統の色を全く使わない画像では、パレット内の緑系統の色はほとんど使われない。そのような場合、画像に最適化されたカラーパレットを使用すると画像が改善される。最適化されたパレットの色は、元の画像で多く使われている色から選ばれる。最適化されたパレットを使って減色すると、その結果は元の画像により近くなる(図4)。 |
||
パレット内の色数も画質に影響する。例えばパレットが16色となった場合、画像の細部はさらに失われる(図5)。そのような場合でもディザリングを施すことによって画像の見栄えは改善される(図6)。 |
パレット内の色数も画質に影響する。例えばパレットが16色となった場合、画像の細部はさらに失われる(図5)。そのような場合でもディザリングを施すことによって画像の見栄えは改善される(図6)。 |
||
{{Gallery |
|||
| lines = 3 |
|||
| width = 260 |
|||
|File:Dithering example undithered.png|図1. 元画像 |
|||
|File:Dithering example undithered web palette.png|図2. [[ウェブカラー|Webセーフカラー]]に減色した画像(ディザリング無し) |
|||
|File:Dithering example dithered web palette.png|図3. Webセーフカラーに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの |
|||
|File:Dithering example dithered 256color.png|図4. 最適化された256色カラーパレットに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの) |
|||
|File:Dithering example undithered 16color.png|図5. 最適化された16色カラーパレットに減色した画像(ディザリング無し) |
|||
|File:Dithering example dithered 16color.png|図6. 最適化された16色カラーパレットに減色した画像(ディザリングあり) |
|||
}} |
|||
=== 応用 === |
=== 応用 === |
||
初期の[[ビデオカード]]や最近の[[携帯電話]]や低価格の[[デジタルカメラ]]で使われている[[液晶ディスプレイ]]では、表示可能な色数が少ない。ディザリングの主要な応用の1つとして、制限のあるハードウェアでより多彩な色数の画像をなるべく正確に表示するということが挙げられる。例えば、256色しか同時に表示できないハードウェアで数百万色の写真画像を表示するといった場合にディザリングが使われるだろう。 |
初期の[[ビデオカード]]や最近の[[携帯電話]]や低価格の[[デジタルカメラ]]で使われている[[液晶ディスプレイ]]では、表示可能な色数が少ない。ディザリングの主要な応用の1つとして、制限のあるハードウェアでより多彩な色数の画像をなるべく正確に表示するということが挙げられる。例えば、256色しか同時に表示できないハードウェアで数百万色の写真画像を表示するといった場合にディザリングが使われるだろう。ディザリングを行わない場合、元の画像で使われている色は発色可能な256色のうち最も近い色で代替され、見た目が非常に悪くなる。 |
||
一部の液晶ディスプレイは、各ピクセルの色を高速に切り替えることで同様の効果を達成している。これを{{仮リンク|フレームレートコントロール|en|Frame Rate Control}} (FRC) とも呼ぶ。それにより例えば、18ビットカラーの[[色深度]]しかないディスプレイで24ビットのトゥルーカラーを表示できる。 |
|||
ハードウェアの[[色深度]]に制限のある場合のディザリングは[[ウェブブラウザ|Webブラウザ]]などのソフトウェアで一般に行われている。Webブラウザは画像を外部から持ってくるので、表示できないほど色数の多い画像があった場合にディザリングが必要となる。ディザリングされないようにしたい画像(図など)を256色しか表示できない機器でもディザリングされないようにするために、[[Webセーフカラー]]と呼ばれるカラーパレットが登場した。 |
|||
ハードウェアの[[色深度]]に制限のある場合のディザリングは[[ウェブブラウザ|Webブラウザ]]などのソフトウェアで一般に行われている。Webブラウザは画像を外部から持ってくるので、表示できないほど色数の多い画像があった場合にディザリングが必要となる。ディザリングされないようにしたい画像(図など)を256色しか表示できない機器でもディザリングされないようにするために、[[ウェブカラー|Webセーフカラー]]と呼ばれるカラーパレットが登場した。 |
|||
ディザリングが使われる場面として、[[画像ファイル形式]]に制限がある場合もある。特に良く使われる[[Graphics Interchange Format|GIF]]形式は、多くの画像エディタなどで256色かそれ以下に色数が制限されている。[[Portable Network Graphics|PNG]]などの他の形式の画像でも、ファイルサイズを小さくするために色数を制限する場合がある。これらの画像では、その画像が使っている全色を含む固定カラーパレットがファイル形式に含まれている。そのような場合、[[グラフィックソフトウェア]]で色数を制限する際にディザリングを施すことになる。 |
|||
15ビット(32,768色)や16ビット(65,536色)など、ディスプレイがフルカラーの写真を表示するのに十分な色数を使用可能であっても、スムーズに色の変化する大きな領域があると色の帯が目立つことがある。この場合、ディザリングによって「擬似フルカラー」を実現することで見栄えが大きく改善される。24ビットRGBのハードウェアであっても、ディザリングでより高い[[色深度]]をシミュレートすることで[[ガンマ補正]]後の色相の喪失を最小限に抑えることができる。[[Adobe Photoshop]] などの高機能画像処理ソフトウェアでは、ディザリングで見た目を改善することがよく行われている。 |
|||
=== ディザリング・アルゴリズム === |
|||
ディザリングが使われる場面として、[[画像ファイルフォーマット|画像ファイル形式]]に制限がある場合もある。特に良く使われる[[Graphics Interchange Format|GIF]]形式は、多くの画像エディタなどで256色かそれ以下に色数が制限されている。[[Portable Network Graphics|PNG]]などの他の形式の画像でも、ファイルサイズを小さくするために色数を制限する場合がある。これらの画像では、その画像が使っている全色を含む固定カラーパレットがファイル形式に含まれている。そのような場合、[[ペイントソフト|グラフィックソフトウェア]]で色数を制限する際にディザリングを施すことになる。 |
|||
[[画像:Dithering algorithms.png|thumb|left|グレイスケール画像を減色して各種ディザリングを施した例]] |
|||
ディザリングは[[印刷]]における[[網点]]技法に似ている。[[インクジェットプリンター]]は孤立したドットを印刷可能であり、そのために印刷分野でもディザリングがよく使われるようになってきている。そのため、ディザと網点は同義語として使われることもあり、特に{{仮リンク|デジタル印刷|en|digital printing}}の分野でその傾向が強い。 |
|||
ディザリングを行うよう設計された[[アルゴリズム]]はいくつか存在する。[[1975年]]という早い時期に開発され、現在でも人気があるのが[[フロイド-スタインバーグ・ディザリング]]アルゴリズムである。このアルゴリズムは、誤差拡散処理を通して人工的な見た目を改善する。単純なディザリングアルゴリズムよりも元に近い画像を生成することができる。 |
|||
典型的なデスクトップ型のインクジェットプリンターの色数は15色(シアン、マゼンタ、イエロー、ブラックの組み合わせ)で、ブラックのインクを混ぜると他の色が隠されてしまうことが多いため、実際の色数はもっと少ない。様々な色を再現するにはディザリングが必須である。暗い密に印刷された部分ではインクのドット同士がくっつくため、ディザリングが見えないことが多い。しかし、明るい部分では詳しく見るとディザリングが施されていることが見える。 |
|||
その他のディザリング法には以下のようなものがある: |
|||
=== アルゴリズム === |
|||
* 平均(Average)ディザリング: 最も単純なディザリング法。平均色調を計算し、それに最も近い色を使用する。 |
|||
ディザリングを行うよう設計された[[アルゴリズム]]はいくつか存在する。[[1975年]]という早い時期に開発され、現在でも人気があるのが{{仮リンク|フロイド-スタインバーグ・ディザリング|en|Floyd–Steinberg dithering}}アルゴリズムである。このアルゴリズムは、{{仮リンク|誤差拡散|en|Error diffusion}}処理を通して人工的な見た目を改善する。単純なディザリングアルゴリズムよりも元に近い画像を生成することができる<ref name=dhalf>{{Cite web |url = http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT |title = Digital Halftoning |accessdate = 2007-09-10 |last = Crocker |first = Lee Daniel |coauthors = Boulay, Paul & Morra, Mike |date = 20 June 1991 |work = Computer Lab and Reference Library }} ''Note: this article contains a minor mistake: “(To fully reproduce our 256-level image, we would need to use an'' '''8x8''' ''pattern.)” The bold part should read “16x16”.''</ref>。 |
|||
* 配列(Ordered)ディザリング: ピクセル毎に交互に色が並ぶパターンを生成する。印刷技術の中間色調の表現に類似している。 |
|||
* 無作為(Random)ディザリング: 各ピクセルに乱数的要素を導入し、電波が弱いときのテレビ画像のような画像を生成する。 |
|||
* Albieディザリング: フロイド-スタインバーグに似ているが、インターレース式モニターに最適化されている。 |
|||
* Jarvisディザリング: 上図参照。 |
|||
ディザリング法には以下のようなものがある: |
|||
== 参考文献 == |
|||
* 平均 (Average) ディザリング<ref>{{Cite web |url = http://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/ |title = Average Dithering |accessdate = 2007-09-10 |last = Silva |first = Aristófanes Correia |coauthors = Lucena, Paula Salgado & Figuerola, Wilfredo Blanco |date = 13 December 2000 |work = Image Based Artistic Dithering |publisher = Visgraf Lab}}</ref>: 最も単純なディザリング法。固定のしきい値を設定し、最も近い色を使用する。ただし元の画像の詳細が失われやすい<ref name=dhalf />。 |
|||
<references/> |
|||
* 無作為 (Random) ディザリング: 各ピクセルに乱数的要素を導入し、電波が弱いときのテレビ画像のような画像を生成する。人工的パターンはできないが、ノイズが強く画像の詳細が失われやすい。版画の[[メゾチント]]の技法に似ている<ref name=dhalf />。 |
|||
* パターン (Patterning) ディザリング: 固定のパターンを使用。入力値に従って固定のパターンを出力に配置していく。最大の難点は入力の1ピクセルを複数ピクセルのパターンで表すため、出力画像のピクセル数が大きくなる点である<ref name=dhalf />。 |
|||
* 配列 (Ordered) ディザリング: "dither matrix" というピクセル毎に交互に色が並ぶパターンを使用する。画像の各ピクセルについて、パターンの対応する位置の値をしきい値として使用する。隣接するピクセルは相互に影響を与えないので、アニメーションなどにも適している。パターンを変えれば、見た目も大幅に変わる。実装は容易だが任意のパレットで機能するように変更するのは容易ではない。 |
|||
** [[網点|ハーフトーン]]ディザリング: 印刷技術の中間色調の表現に類似した技法。[[オフセット印刷]]や[[レーザープリンター]]でよく使われる。これらはインクやトナーがドットの形状を保たず、隣接するドットが相互にくっついて網状になる性質があり、ハーフトーン技法が適している。 |
|||
** ベイヤー (Bayer) マトリクス<ref name=dhalf />: 非常に特徴的な網掛けパターンを生成する。 |
|||
** [[カラードノイズ|ブルーノイズ]]向けに調整されたマトリクス(void-and-cluster法など<ref name=voidcluster>{{Cite web |url = http://www.hpl.hp.com/personal/Robert_Ulichney/papers/1993-void-cluster.pdf |title = The void-and-cluster method for dither array generation |accessdate = 2012-07-19 |last = Ulichney |first = Robert A |date = 1993}}</ref>)は誤差拡散法に近い見た目を生成する。 |
|||
{| |
|||
|- |
|||
!(元画像) |
|||
!平均(2値) |
|||
!無作為 |
|||
!ハーフトーン |
|||
|- |
|||
|[[ファイル:Michelangelo's David - 63 grijswaarden.png]] |
|||
|[[ファイル:Michelangelo's David - drempel.png]] |
|||
|[[ファイル:Michelangelo's David - ruis.png]] |
|||
|[[ファイル:Michelangelo's David - halftoon.png]] |
|||
|- |
|||
!配列(ベイヤー) |
|||
!配列 (Void-and-cluster) |
|||
|- |
|||
|[[ファイル:Michelangelo's David - Bayer.png]] |
|||
|[[ファイル:Michelangelo's David - Void-and-Cluster.png]] |
|||
|} |
|||
* {{仮リンク|誤差拡散|en|Error diffusion}}ディザリング: 量子化誤差を周辺のピクセルに拡散させるフィードバック処理を行う。 |
|||
より最近の音響のディザリングに関しては、[[ウォータールー大学]]の Lipshitz、Vanderkooy、Wannamaker による研究がある[http://audiolab.uwaterloo.ca/stan.htm]。 |
|||
** {{仮リンク|フロイド-スタインバーグ・ディザリング|en|Floyd–Steinberg dithering}}: 隣接するピクセルにのみ誤差を拡散させる。最もよく使われている。 |
|||
** Jarvis, Judice, and Ninke dithering: 隣接するピクセルだけでなく、さらにそれらに隣接するピクセルにも誤差を拡散させる。フロイド-スタインバーグ法よりも性能が悪い(関与するピクセル数が多いため)。 |
|||
** Stucki dithering: Jarvis を改良して若干高速化したもの。見た目はシャープになる。 |
|||
** Burkes dithering: Stucki を単純化して高速化したもの。Stucki ほどシャープではない。 |
|||
{| |
|||
|- |
|||
!フロイド-スタインバーグ |
|||
!Jarvis, Judice & Ninke |
|||
!Stucki |
|||
!Burkes |
|||
|- |
|||
|[[ファイル:Michelangelo's David - Floyd-Steinberg.png]] |
|||
|[[ファイル:Michelangelo's David - Jarvis, Judice & Ninke.png]] |
|||
|[[ファイル:Michelangelo's David - Stucki.png]] |
|||
|[[ファイル:Michelangelo's David - Burkes.png]] |
|||
|} |
|||
* 誤差拡散ディザリング(続き) |
|||
** Sierra dithering: Jarvis を改良して高速化したもの。Jarvis とほぼ同じ見た目になる。 |
|||
** Two-row Sierra: Sierra を高速化したもの。 |
|||
** Sierra Lite: さらに単純化、高速化したもの。 |
|||
** Atkinson dithering: [[ビル・アトキンソン]]が考案。Jarvis や Sierra と似ているが、高速である。誤差全体ではなく4分の3だけを拡散させる。画像の詳細をよく保持するが、非常に明るい部分や非常に暗い部分は詳細が失われやすい。 |
|||
{| |
|||
|- |
|||
!Sierra |
|||
!Two-row Sierra |
|||
!Sierra Lite |
|||
!Atkinson |
|||
|- |
|||
|[[ファイル:Michelangelo's David - Sierra.png]] |
|||
|[[ファイル:Michelangelo's David - tweerijig Sierra.png]] |
|||
|[[ファイル:Michelangelo's David - Sierra's Filter Lite.png]] |
|||
|[[ファイル:Michelangelo's David - Atkinson.png]] |
|||
|} |
|||
== 光ファイバーシステム == |
|||
誘導[[ブリルアン散乱]] (SBS) は[[光ファイバー]]システムにおける伝送パワーを制限する[[非線形光学]]現象である。伝送パワーをその制限以上にする技法として、中心搬送周波数にディザリングを加えるという技法があり、通常レーザーのバイアス入力に変調を加える。 |
|||
== 脚注 == |
|||
{{Reflist}} |
|||
== 関連項目 == |
== 関連項目 == |
||
142行目: | 215行目: | ||
* [[量子化]] |
* [[量子化]] |
||
* [[デジタル画像処理]] |
* [[デジタル画像処理]] |
||
* [[デジタルオーディオ]] |
|||
* [[アンチエイリアス]] |
|||
* [[非可逆圧縮]] |
|||
== 外部リンク == |
== 外部リンク == |
||
*[http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT DHALF.TXT] (1991) フロイド-スタインバーグ法に基づくいくつかのイメージフィルタの比較 |
|||
*[http://www.hifi-writer.com/he/dvdaudio/dither.htm What is Dither?] ''Australian HI-FI'' 誌に以前掲載された記事。ディザリングによる高調波ひずみの低減を視覚的に描いている。 |
*[http://www.hifi-writer.com/he/dvdaudio/dither.htm What is Dither?] ''Australian HI-FI'' 誌に以前掲載された記事。ディザリングによる高調波ひずみの低減を視覚的に描いている。 |
||
*Aldrich, Nika. "[http://www.users.qwest.net/%7Evolt42/cadenzarecording/DitherExplained.pdf Dither Explained (pdf)]" |
*Aldrich, Nika. "[http://www.users.qwest.net/%7Evolt42/cadenzarecording/DitherExplained.pdf Dither Explained (pdf)]" |
||
*[http://www.vibrationdata.com/Newsletters/May2006_NL.pdf Dither Vibration Example] |
|||
*Aldrich, Nika. "[http://www.cadenzarecording.com Digital Audio Explained]" |
|||
[[Category:音響工学|ていさ]] |
|||
[[Category:信号処理|ていさ]] |
|||
[[Category:画像処理|ていさ]] |
|||
[[Category:ノイズ|ていさ]] |
|||
{{DEFAULTSORT:ていさ}} |
|||
[[ca:Tramat (informàtica)]] |
|||
[[Category:音響工学]] |
|||
[[de:Dithering (Bildbearbeitung)]] |
|||
[[Category:信号処理]] |
|||
[[en:Dither]] |
|||
[[Category:画像処理]] |
|||
[[es:Tramado]] |
|||
[[Category:ノイズ]] |
|||
[[fr:Tramage (informatique)]] |
|||
[[it:Dithering]] |
|||
[[ko:디더링]] |
|||
[[pl:Dithering (grafika komputerowa)]] |
|||
[[pt:Dither]] |
|||
[[ru:Дизеринг]] |
|||
[[simple:Dither]] |
|||
[[sk:Dithering (počítačová grafika)]] |
|||
[[uk:Дитеринг]] |
2013年3月30日 (土) 13:17時点における版
ディザ(Dither)とは、量子化誤差(端数)を、単純に丸めるのではなく、全体の量子化誤差が最小化するよう確率を調整して切り捨てまたは切り上げのどちらかをランダムにおこなうためによるゆらぎのことである。そのような一種のノイズ的データを追加する作業および技法はディザリング(Dithering)またはディザ法と呼ばれる。誤差を周囲のデータに拡散する手法をも含めて言うこともある。ディザリングは、デジタル音響やデジタル動画のデータを処理する際に普通に行われ、CDの制作でも最終段階でよく行われている。
用語 "dither" の起源
[…] ディザという言葉が最初に使われたのは第二次世界大戦の頃である。当時の爆撃機では、航法と爆撃の弾道を算出するうえで機械式の計算機が使用されていた。そういった(数百個の歯車などで満たされている箱としての)計算機は、奇妙なことに、地上で試された場合よりも飛行機上で用いられた場合の方がうまく機能した。これについて技術者が気づいたのは、固着した可動部に与えられた航空機の振動の刺激が(計算機の出力の)誤差を減らした、ということだった。短い断続的な振動ではなく長い連続的な振動によって、(算出結果の)そのような(奇妙な)正確さがもたらされていたわけである。(この発見にちなんで、)振動を発生させる小型のモーターが計算機に組み込まれるようになった。生成されるこの振動のことは、中期英語の "didderen"(震える)からとって "dither" と名づけられた。今日、何かのメーターの動きが変だと思ったときにそれをちょっと叩くのは、ディザを与えているのである。現代の辞書は、"dither" を「非常に神経質で、混乱しているか、動揺している状態」と定義している。ディザリングを少しばかり行うことで、デジタル環境の信号体系はややアナログ的となる。—Ken Pohlmann、Principles of Digital Audio、4th edition、page 46[1]
戦後間もなく、アナログ計算や水力制御の銃砲についての書籍で "dither" という用語が使われている[2][3]。 量子化におけるディザリング技術の導入を提唱したはMITの Lawrence G. Roberts で[4]、1961年の修士論文[5]と1962年の論文[6]があるが、彼は "dither" という言葉を用いていない。今のような意味で "dither" が使われた初出は1964年の Schuchman の論文である[7]。
デジタル信号処理と波形解析におけるディザリング
ディザリングは、デジタルデータの標本化周波数や量子化ビット数を変換する際の処方(デジタル信号処理)として、デジタル音響、デジタル動画、デジタル写真、地震学、レーダー、天気予報などの分野で使われる。なかでも波形解析におけるこの信号処理の方式の意義は大きい。
変化が連続的な量の量子化には量子化誤差がともなう。その誤差が本来の信号に連関するかたちで均一的に再起するものであるとき、そこには、数値的確定性をそなえた人工的な周期が現出することになる。ところがそのような人工性(誤差の周期性・確定性)を孕んだデータというのは、ときとして望ましいものではない。信号の周期性・確定性にたいして受信側が敏感である場合は特にそうである。このとき、データ信号の周期性・確定性は、ランダム性を含ませたディザリングによって排除することができる。
信号処理のレシピとしては、単に乱数を加えたのでは量子化ビット数を減らしたのと同じというだけであり、24ビットでオーバーサンプリングならぬ「オーバー量子化」し、誤差をきちんと処理して16ビットにするのが良い。
誤差の拡散も含む場合(たとえば、真っ黒の背景の中の1ドットの真っ白の点が、ぼやっとした明るいグレーのかたまりになるだろう)、場合によってはエッジ強調など他の処理とも組み合わせることもある。
デジタルオーディオ
音響においては、デジタルフィルタでよく見られる周期的リミットサイクルの解消に役立つ。ランダムノイズは一般にリミットサイクルが作りだす倍音よりも好ましい。
Audio Engineering Society (AES) の学会誌に掲載された Lipshitz と Vanderkooy の論文で、様々な確率密度関数 (PDF) をディザ信号(ノイズ)として使ったときの差異を指摘し、音響におけるディザ信号の最適レベルについて論じている[8][9]。ガウス雑音を使って歪みを解消するには、方形PDFや三角形PDFよりも高いレベルを必要とする。三角形PDFによる雑音は歪みを解消するのに低いレベルで済む。
たとえばSACDなどに収められる量子化ビット数(ビット深度)24ビットのデータがあるのにたいしてCDのデータは16ビットである。16ビットはCDの規格の数字であり、制作工程では24ビットで処理されていたとしてもCDに収録するためのマスターの段階では16ビットにしなければならない。プレイヤーが再生するデータも16ビットである。この規格の枠内で高品位化を図る手法のひとつとして、量子化ビット数の多い(たとえば24ビットの)データを16ビットに変換する際に、ディザリングをおこなう、という手法がある。
ある量子化ビット数のデータを異なるビット数に変換する方法はいくつかある。目的のビット数の標本単位に収まらずしてはみ出る元データの部分を刈り除く切り捨て(truncation)、また、はみ出ることになる部分を近い値に直してでも保持する丸め(round)などがある。しかしこれらの処方は、前節で述べられている誤差の周期化・周波数成分化およびそれによるノイズの発生をもたらしかねない。例えば次のような波形データを表す値があるとする。
1 2 3 4 5 6 7 8
たとえば、この波形が有する数値を 20% 縮小する(波形の構成値すべてに 0.8 をかける)と、次のような値が得られる。
0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
量子化ビット数が、整数の桁のぶんしかなかったら、これを整数に改めなくてはならない。 「切り捨て」を適用した場合には次のようになる。
0 1 2 3 4 4 5 6
切り捨ての代わりに「丸め」(四捨五入)を適用した場合には次のとおりである。
1 2 2 3 4 5 6 6
いずれの処方でも、元データの数値に対していくらかの誤差がある。そしてその誤差はまた回帰的である。正弦波のような反復的な波形についてこの現象を考えるとわかりやすい。そのような波形を標本化し、量子化する場合、元となるデータに含まれる 2.4 や 6.4 という値にたとえば「切り捨て」を適用して 2 などにするために生じる 0.4 の差分は、元データの波形の周波数と標本化周波数の積の周波数で、周期的に再起することになる(この例の場合、元データが 5 である 4.0 の量子化には差分が発生しない)。音を生じさせるのが物質の周波的運動である以上、デジタイズの際に起こるこの周期的な誤差は周波数成分の一つとして音に化ける。そしてこれを耳が歪みとして受け取ることになる。
量子化誤差のこのような問題を根本から回避することは不可能である。2 桁の数値 (4.8) が「切り捨て」や「丸め」などによって 1 桁の数値(4 または 5)に変換される過程で誤差は必ず生じる。ただし、数値を量子化する仕方に何らかの工夫を加えて誤差の周期的発生すなわち差分の周波数化・ノイズ化を防ぐことは可能である。すなわち、量子化における誤差が本来の信号・波形の周期とは連関しないようにするのである。
一策として、たとえば2桁の値 4.8 を処理するにあたって、あるときは 5 に、またあるときには 4 に、というように「切捨て」と「丸め」をランダムに適用することが考えられる。「長い目」で見ればこれは 4 と 5 との間に現れる平均的な数値として周波数成分化することになる。しかしそれでも周期的な誤差すなわちノイズの元は十分には取り除かれない。4 や 5 という値は本来の 4.8 にたいして常に 0.2 や -0.8 といった誤差を繰り返し生むわけである。
値 4.8 を処理する別の策としては、「五回に四回は 5 に丸め、残り一回を 4 に切り捨てる」というものがある。「長い目」で見ればこれは前述の処方の結果(4 と 5 の間の平均値)よりも本来の 4.8 にごく近しい数値の周波数化をもたらす。しかしこれでも問題の周期的な誤差・ノイズの元を解決し尽くしたことにはならない。5 に丸めた四回分の本来値、そして 4 に切り捨てた一回分の本来値、これらは依然として誤差であり、またそれは当策の五回周期という原理に従って繰り返すことになるわけである。
問題は、一定の処理が周期的に繰り返されてしまうことにある。ならば処理をランダム化すればいい、という解決案が最終的には出てくる。80% の比率で 5、20%の比率で 4、という構成を全体として保持しながら、元の 4.8 という数値が 4 あるいは 5 に変換されるところのパターンをランダム化すれば、誤差の周期化・周波数成分化は妨げられ、ノイズの発生は抑えられるわけである。
また、最終的な量子化における誤差( 4.8 が 5 になったのであれば -0.2 )を覚えておき、次以降の確率を調整する、という誤差を拡散させる手法もある。この手法には、全体的な再現性を上げるかわりに局所的な再現性が下がる、というトレードオフがある。
0 から 0.9 までの乱数(0.6、0.4、0.5、0.3、0.7 など)を交えて目的の値 4.8 を処理すれば、20%中は 4 (0 と 0.1 の場合)、80%中は 5、と量子化されながらも、どちらに切り捨てられ丸められるかは乱数によって無作為化される。そして、前節で述べられているように、非周期的なノイズは周期的なノイズよりもヒトの耳にたいして優しく、我々はこれを自然な歪みとして感受することになる。
ディザリングを施すべき場合
ビットレートを減らす処理をするときは、ディザリングを施すべきである。
様々なディザ
RPDF は "Rectangular Probability Density Function"(方形確率密度関数)の略で、サイコロと同じ役目を果たす。任意の数が同等の無作為な確率ででる。
TPDF は "Triangular Probability Density Function" (三角形確率密度関数)の略で、2個のサイコロと同じ役目を果たす。数の合計の出現確率はそれぞれ異なり、以下のようになる:
- 1/1 = 2
- 1/2 2/1 = 3
- 1/3 2/2 3/1 = 4
- 1/4 2/3 3/2 4/1 = 5
- 1/5 2/4 3/3 4/2 5/1 = 6
- 1/6 2/5 3/4 4/3 5/2 6/1 = 7
- 2/6 3/5 4/4 5/3 6/2 = 8
- 3/6 4/5 5/4 6/3 = 9
- 4/6 5/5 6/4 = 10
- 5/6 6/5 = 11
- 6/6 = 12
この場合、7 が他の 2 から 12 よりも確率が高く、このような確率の分布を称して「三角形」と呼んでいる。
ガウシアンPDF は無限個のサイコロと等価である。確率の分布は釣鐘型を描き、これをガウス分布と呼ぶ。ガウシアンPDFによるディザは自然の大気雑音やテープヒスなどのノイズに最も近い。
色つきディザ(Colored Dither)はホワイトノイズとは異なるため、フィルター付きディザとも呼ばれる。オーディオ機器の帯域特性に合わせるためにエネルギーを下げるように、高い周波数ほど大きなエネルギーを持ったノイズを使用する。
ノイズシェーピングもディザと同様の手法であるが、ランダム化よりもオーディオストリームにおいて誤差拡散のリアルタイム処理に重点を置いたフィードバック型の処理である。
デジタル画像とイメージ処理
![](http://upload.wikimedia.org/wikipedia/commons/6/6d/Dithering_example_red_blue.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/256colortestthing.png/220px-256colortestthing.png)
ディザリングは、コンピュータグラフィックスで使われる場合には、制限された色数でそれ以上の色調を表現する技法として使われる。ディザリングを施したデジタル画像では、パレットにない色を表現するために、存在する色のピクセルをばらつかせて配置する。ヒトの眼はそのような色の拡散配置を色の混合として知覚する。色数の少ないディザリングを施した画像は、粒状の微細な模様などで見分けが付くことが多い。
ディザリングは印刷における中間色調の表現技法によく似ている。
その性質上、ディザリングは画像に何らかのパターンを導入し、ヒトの眼からはそのパターンが判別できない程度の距離から画像を見るだろうという考え方に基づいている。しかし実際にはそうでないことも多く、パターンは見えることが多い。そのような場合、ブルーノイズのディザパターンが最も目立たない[11]。ブルーノイズのディザリングパターンを生成するため当初は誤差拡散法が使われたが、人工的な見た目に陥ることなくブルーノイズのディザリングを実現する配列ディザリングなどの技法も考案されている。
例
画像の色数を減らすことは、見た目に多大な副作用をもたらす。元の画像が写真だった場合、色数は少なくとも数千、場合によっては数百万色にもなる。これを固定の色数から構成されるパレットで表現できるようにすると、ある程度の色に関する情報が失われる。
色数を減らした画像は、いくつかの要因により劣化する。その第一の要因は使用しているカラーパレットにある。例えば、元の画像(図1)を216色のWebセーフカラーに減色する場合を考える。元の画像の各ピクセルの色を単純に最も近い色にした場合、ディザリングは行われない(図2)。一般に、このような減色を施すと細部が失われて同色が平坦に連なる領域ができ、元の画像とはかなり印象が変わる。影になる部分や曲面は色の帯ができ、奇妙に見える。ディザリングを施すことにより、そのような人工的な見栄えを改善することができ、元の画像に近い結果を得ることができる(図3)。
固定されたカラーパレットを使用する際の問題として、必要な色がそのパレットにないことが多い点が挙げられる。同時に、元の画像では全く使わない色がパレットに含まれている。例えば、緑の系統の色を全く使わない画像では、パレット内の緑系統の色はほとんど使われない。そのような場合、画像に最適化されたカラーパレットを使用すると画像が改善される。最適化されたパレットの色は、元の画像で多く使われている色から選ばれる。最適化されたパレットを使って減色すると、その結果は元の画像により近くなる(図4)。
パレット内の色数も画質に影響する。例えばパレットが16色となった場合、画像の細部はさらに失われる(図5)。そのような場合でもディザリングを施すことによって画像の見栄えは改善される(図6)。
-
図1. 元画像
-
図2. Webセーフカラーに減色した画像(ディザリング無し)
-
図3. Webセーフカラーに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの
-
図4. 最適化された256色カラーパレットに減色した画像(フロイド-スタインバーグ・ディザリングを施したもの)
-
図5. 最適化された16色カラーパレットに減色した画像(ディザリング無し)
-
図6. 最適化された16色カラーパレットに減色した画像(ディザリングあり)
応用
初期のビデオカードや最近の携帯電話や低価格のデジタルカメラで使われている液晶ディスプレイでは、表示可能な色数が少ない。ディザリングの主要な応用の1つとして、制限のあるハードウェアでより多彩な色数の画像をなるべく正確に表示するということが挙げられる。例えば、256色しか同時に表示できないハードウェアで数百万色の写真画像を表示するといった場合にディザリングが使われるだろう。ディザリングを行わない場合、元の画像で使われている色は発色可能な256色のうち最も近い色で代替され、見た目が非常に悪くなる。
一部の液晶ディスプレイは、各ピクセルの色を高速に切り替えることで同様の効果を達成している。これをフレームレートコントロール (FRC) とも呼ぶ。それにより例えば、18ビットカラーの色深度しかないディスプレイで24ビットのトゥルーカラーを表示できる。
ハードウェアの色深度に制限のある場合のディザリングはWebブラウザなどのソフトウェアで一般に行われている。Webブラウザは画像を外部から持ってくるので、表示できないほど色数の多い画像があった場合にディザリングが必要となる。ディザリングされないようにしたい画像(図など)を256色しか表示できない機器でもディザリングされないようにするために、Webセーフカラーと呼ばれるカラーパレットが登場した。
15ビット(32,768色)や16ビット(65,536色)など、ディスプレイがフルカラーの写真を表示するのに十分な色数を使用可能であっても、スムーズに色の変化する大きな領域があると色の帯が目立つことがある。この場合、ディザリングによって「擬似フルカラー」を実現することで見栄えが大きく改善される。24ビットRGBのハードウェアであっても、ディザリングでより高い色深度をシミュレートすることでガンマ補正後の色相の喪失を最小限に抑えることができる。Adobe Photoshop などの高機能画像処理ソフトウェアでは、ディザリングで見た目を改善することがよく行われている。
ディザリングが使われる場面として、画像ファイル形式に制限がある場合もある。特に良く使われるGIF形式は、多くの画像エディタなどで256色かそれ以下に色数が制限されている。PNGなどの他の形式の画像でも、ファイルサイズを小さくするために色数を制限する場合がある。これらの画像では、その画像が使っている全色を含む固定カラーパレットがファイル形式に含まれている。そのような場合、グラフィックソフトウェアで色数を制限する際にディザリングを施すことになる。
ディザリングは印刷における網点技法に似ている。インクジェットプリンターは孤立したドットを印刷可能であり、そのために印刷分野でもディザリングがよく使われるようになってきている。そのため、ディザと網点は同義語として使われることもあり、特にデジタル印刷の分野でその傾向が強い。
典型的なデスクトップ型のインクジェットプリンターの色数は15色(シアン、マゼンタ、イエロー、ブラックの組み合わせ)で、ブラックのインクを混ぜると他の色が隠されてしまうことが多いため、実際の色数はもっと少ない。様々な色を再現するにはディザリングが必須である。暗い密に印刷された部分ではインクのドット同士がくっつくため、ディザリングが見えないことが多い。しかし、明るい部分では詳しく見るとディザリングが施されていることが見える。
アルゴリズム
ディザリングを行うよう設計されたアルゴリズムはいくつか存在する。1975年という早い時期に開発され、現在でも人気があるのがフロイド-スタインバーグ・ディザリングアルゴリズムである。このアルゴリズムは、誤差拡散処理を通して人工的な見た目を改善する。単純なディザリングアルゴリズムよりも元に近い画像を生成することができる[12]。
ディザリング法には以下のようなものがある:
- 平均 (Average) ディザリング[13]: 最も単純なディザリング法。固定のしきい値を設定し、最も近い色を使用する。ただし元の画像の詳細が失われやすい[12]。
- 無作為 (Random) ディザリング: 各ピクセルに乱数的要素を導入し、電波が弱いときのテレビ画像のような画像を生成する。人工的パターンはできないが、ノイズが強く画像の詳細が失われやすい。版画のメゾチントの技法に似ている[12]。
- パターン (Patterning) ディザリング: 固定のパターンを使用。入力値に従って固定のパターンを出力に配置していく。最大の難点は入力の1ピクセルを複数ピクセルのパターンで表すため、出力画像のピクセル数が大きくなる点である[12]。
- 配列 (Ordered) ディザリング: "dither matrix" というピクセル毎に交互に色が並ぶパターンを使用する。画像の各ピクセルについて、パターンの対応する位置の値をしきい値として使用する。隣接するピクセルは相互に影響を与えないので、アニメーションなどにも適している。パターンを変えれば、見た目も大幅に変わる。実装は容易だが任意のパレットで機能するように変更するのは容易ではない。
(元画像) | 平均(2値) | 無作為 | ハーフトーン |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
配列(ベイヤー) | 配列 (Void-and-cluster) | ||
![]() |
![]() |
- 誤差拡散ディザリング: 量子化誤差を周辺のピクセルに拡散させるフィードバック処理を行う。
- フロイド-スタインバーグ・ディザリング: 隣接するピクセルにのみ誤差を拡散させる。最もよく使われている。
- Jarvis, Judice, and Ninke dithering: 隣接するピクセルだけでなく、さらにそれらに隣接するピクセルにも誤差を拡散させる。フロイド-スタインバーグ法よりも性能が悪い(関与するピクセル数が多いため)。
- Stucki dithering: Jarvis を改良して若干高速化したもの。見た目はシャープになる。
- Burkes dithering: Stucki を単純化して高速化したもの。Stucki ほどシャープではない。
フロイド-スタインバーグ | Jarvis, Judice & Ninke | Stucki | Burkes |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 誤差拡散ディザリング(続き)
- Sierra dithering: Jarvis を改良して高速化したもの。Jarvis とほぼ同じ見た目になる。
- Two-row Sierra: Sierra を高速化したもの。
- Sierra Lite: さらに単純化、高速化したもの。
- Atkinson dithering: ビル・アトキンソンが考案。Jarvis や Sierra と似ているが、高速である。誤差全体ではなく4分の3だけを拡散させる。画像の詳細をよく保持するが、非常に明るい部分や非常に暗い部分は詳細が失われやすい。
Sierra | Two-row Sierra | Sierra Lite | Atkinson |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
光ファイバーシステム
誘導ブリルアン散乱 (SBS) は光ファイバーシステムにおける伝送パワーを制限する非線形光学現象である。伝送パワーをその制限以上にする技法として、中心搬送周波数にディザリングを加えるという技法があり、通常レーザーのバイアス入力に変調を加える。
脚注
- ^ Ken C. Pohlmann (2005). Principles of Digital Audio. McGraw-Hill Professional. ISBN 0-07-144156-5
- ^ William C. Farmer (1945). Ordnance Field Guide: Restricted. Military service publishing company
- ^ Granino Arthur Korn and Theresa M. Korn (1952). Electronic Analog Computers: (d–c Analog Computers). McGraw-Hill
- ^ Thomas J. Lynch (1985). Data Compression: Techniques and Applications. Lifetime Learning Publications. ISBN 978-0-534-03418-4
- ^ Lawrence G. Roberts, Picture Coding Using Pseudo-Random Noise, MIT, S.M. thesis, 1961 online
- ^ Lawrence G. Roberts (February 1962). “Picture Coding Using Pseudo-Random Noise” (abstract). IEEE Trans. Information Theory 8 (2): 145–154. doi:10.1109/TIT.1962.1057702 .
- ^ L. Schuchman (December 1964). “Dither Signals and Their Effect on Quantization Noise” (abstract). IEEE Trans. Communications 12 (4): 162–165. doi:10.1109/TCOM.1964.1088973 .
- ^ Lipshitz, Stanley P; Vanderkooy, John; Wannamaker, Robert A. (November 1991). “Minimally Audible Noise Shaping”. J. Audio Eng. Soc. 39 (11): 836–852 28 October 2009閲覧。.
- ^ Vanderkooy, John; Lipshitz, Stanley P (December 1987). “Dither in Digital Audio”. J. Audio Eng. Soc. 35 (12): 966–975 28 October 2009閲覧。.
- ^ Mastering Audio: The Art and the Science by Bob Katz, pages 49–50, ISBN 978-0-240-80545-0
- ^ Ulichney, Robert A (1994年). “Halftone Characterization in the Frequency Domain”. 2012年7月20日閲覧。
- ^ a b c d e Crocker, Lee Daniel; Boulay, Paul & Morra, Mike (20 June 1991). “Digital Halftoning”. Computer Lab and Reference Library. 2007年9月10日閲覧。 Note: this article contains a minor mistake: “(To fully reproduce our 256-level image, we would need to use an 8x8 pattern.)” The bold part should read “16x16”.
- ^ Silva, Aristófanes Correia; Lucena, Paula Salgado & Figuerola, Wilfredo Blanco (13 December 2000). “Average Dithering”. Image Based Artistic Dithering. Visgraf Lab. 2007年9月10日閲覧。
- ^ Ulichney, Robert A (1993年). “The void-and-cluster method for dither array generation”. 2012年7月19日閲覧。
関連項目
外部リンク
- What is Dither? Australian HI-FI 誌に以前掲載された記事。ディザリングによる高調波ひずみの低減を視覚的に描いている。
- Aldrich, Nika. "Dither Explained (pdf)"
- Dither Vibration Example