ディザ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ディザ(Dither)とは、ノイズの一種、あるいは、量子化の誤差を最小にするべくサンプルデータに意図的に追加される誤った信号・データのこと。そのようなノイズ的データを追加する作業および技法はディザリング(Dithering)またはディザ法と呼ばれる。ディザリングは、デジタル音響やデジタル動画のデータを処理する際に普通に行われる。ディザリングの同義として誤解されやすい言葉にジッターがある。
目次 |
[編集] 用語 "dither" の起源
- […] ディザという言葉が最初に使われたのは第二次世界大戦の頃である。当時の爆撃機では、航法と爆撃の弾道を算出するうえで機械式の計算機が使用されていた。そういった(数百個の歯車などで満たされている箱としての)計算機は、奇妙なことに、地上で試された場合よりも飛行機上で用いられた場合の方でうまく機能した。これについて技術者が気づいたのは、固着した可動部に与えられた航空機の振動の刺激が(計算機の出力の)誤差を減らした、ということだった。短い断続的な振動ではなく長い連続的な振動によって、(算出結果の)そのような(奇妙な)正確さがもたらされていたわけである。(この発見にちなんで、)振動を発生させる小型のモーターが計算機に組み込まれるようになった。生成されるこの振動のことは、中期英語の "didderen"(震える)からとって "dither" と名づけられた。今日、何かのメーターの動きが変だと思ったときにそれをちょっと叩くのは、ディザを与えているのである。現代の辞書は、"dither" を「非常に神経質で、混乱しているか、動揺している状態」と定義している。ディザリングを少しばかり行うことで、デジタル環境の信号体系はややアナログ的となる。
- — Ken Pohlmann、Principles of Digital Audio、4th edition、page 46
デジタル量子化におけるディザリング技術の導入は、1961年、MIT の Lawrence G. Roberts が修士論文の中で初めて提唱した。しかし彼は "dither" という言葉を用いなかった[1]。
[編集] デジタル信号処理と波形解析におけるディザリング
ディザリングは、デジタルデータのビットレートやビット深度を変換するための処方(デジタル信号処理)として、デジタル音響、デジタル動画、デジタル写真、地震学、レーダー、天気予報などの分野で使われる。なかでも波形解析におけるこの信号処理の方式の意義は大きい。
デジタルデータを量子化・再量子化するときにはいくらか誤差が生じるものである。その誤差が本来の信号に連関するかたちで均一的に再起するものであるとき、そこには、数値的確定性をそなえた人工的な周期が現出することになる。ところがそのような人工性(誤差の周期性・確定性)を孕んだデータというのは、ときとして望ましいものではない。信号の周期性・確定性にたいして受信側が敏感である場合は特にそうだ。このとき、データ信号の周期性・確定性は、ディザリングによって排除することができる。このようなディザリングの適用は、主に音響制作の分野でみられる。諸々の周波を個別に認識できるヒトの耳は(cf. フーリエ変換)、歪み或いはそれに等しい色付けを音声に附するような非本来的・人工的な周波数成分にたいしてとても敏感ではあるが、乱数的・非確定的な周期で現れる音声成分すなわちノイズにたいしてはそれほどでもない。聴き手が有するこの生体的特性を活かすべくして、音響制作の場では、ディザリングを施すことでデジタル環境内の音声データに敢えて乱数的なノイズを加える、という工程がよく図られる。
[編集] デジタル音響
デジタル音響のデータは、本来のアナログ音声を二進数で標本化するうえでの深度の違いに左右される。たとえばSACDなどに収められる深度24ビットの音響データがあるのにたいしてCDの音響データの深度は16ビットである。深度16ビットは、CD製品の市場において規格化されている数値であり、この媒体に記録される以前の制作工程で当の音声がいかなる深度による標本化と処理を施されていようと作業の結果はCDに収められる時点で16ビット深度のデータとして標本化されている必要がある。たとえば24ビットでデジタル録音される楽曲の音声データは、CDに製品化される時点で16ビットに再標本化される。市販のCDプレイヤーが再生できる音声データもまた一般的には16ビットである。すなわち、CDとして商品化する音響データの高品質を図るうえでは、異深度のデータをどれだけ忠実に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
これらの数値を今度は機器(CDプレイヤーなど)が実用的に認識できる形式に改めなくてはならない。 「切り捨て」を適用した場合には次のようになる――
0 1 2 3 4 4 5 6
切り捨ての代わりに「丸め」を適用した場合には次のとおりである――
1 2 2 3 4 5 6 6
いずれの処方も、元データの数値にたいするいくらかの誤差をきたしている。そしてその誤差はまた再帰的である。正弦波のような反復的な波形についてこの現象を考えるとわかりやすい。そのような波形のデータを異なる深度で標本化する場合、元となるデータに含まれる 3.4 や 5.4 という値にたとえば「切り捨て」を適用して 3 という標本値を得るために生じる 0.4 の差分は、元データの波形の周波的振幅に沿って周期的に再起することになる(ちなみに 5 といった整数を標本化する場合には差分が発生しない)。音を生じさせるのが物質の周波的運動である以上、データの再標本化・再量子化のさいに起こるこの周期的な誤差は周波数成分の一つとして音に化ける。そしてこれを耳が歪みとして受け取ることになる。
異なる深度をまたがっての標本化においてこのような問題を根本から回避することは不可能である。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 に変換されるところのパターンをランダム化すれば、誤差の周期化・周波数成分化は妨げられ、ノイズの発生は抑えられるわけである。
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)はホワイトノイズとは異なるため、フィルター付きディザとも呼ばれる。オーディオ機器の帯域特性に合わせるためにエネルギーを下げるように、高い周波数ほど大きなエネルギーを持ったノイズを使用する。
Noise shaping は実際にはディザではなく、ディザを使ったフィードバック処理である。使用目的はディザと同じである。
[編集] ディザの選択
ディザを施そうとする信号がその他の処理をその後も加えられる予定なら、2回の量子化工程に相当する TPDF ディザを使用すべきである(従って、ディザは -1 から +1 とか、0 から 2 といった範囲から計算される)。色つきディザを中間段階で使うと、不要な部分を除去し、信号を識別しやすくすることができる。
ディザリングをした後で信号に処理を施さない場合(最終的な処理としてディザリングを行う場合)、色つきディザや Noise shaping が適切である。それにより可聴範囲のノイズレベルを効率的に低減することができる。
[編集] デジタル画像とイメージ処理
ディザリングは、コンピュータグラフィックスで使われる場合には、制限された色数でそれ以上の色調を表現する技法として使われる。ディザリングを施した画像では、パレットにない色を表現するために、存在する色のピクセルをばらつかせて配置する。ディザリングは印刷における中間色調の表現技法によく似ている。色数の少ないディザリングを施した画像は、粒状の微細な模様などで見分けが付くことが多い。
[編集] ディザリングの例
画像の色数を減らすことは、見た目に多大な副作用をもたらす。元の画像が写真だった場合、色数は少なくとも数千、場合によっては数百万色にもなる。これを固定の色数から構成されるパレットで表現できるようにすると、ある程度の色に関する情報が失われる。
色数を減らした画像は、いくつかの要因により劣化する。その第一の要因は使用しているカラーパレットにある。例えば、元の画像(図1)を216色のWebセーフカラーに減色する場合を考える。基の画像の各ピクセルの色を単純に最も近い色にした場合、ディザリングは行われない(図2)。一般に、このような減色を施すと細部が失われて同色が平坦に連なる領域ができ、元の画像とはかなり印象が変わる。影になる部分や曲面は色の帯ができ、奇妙に見える。ディザリングを施すことにより、そのような人工的な見栄えを改善することができ、元の画像に近い結果を得ることができる(図3)。
固定されたカラーパレットを使用する際の問題として、必要な色がそのパレットにないことが多い点が挙げられる。同時に、元の画像では全く使わない色がパレットに含まれている。例えば、緑の系統の色を全く使わない画像では、パレット内の緑系統の色はほとんど使われない。そのような場合、画像に最適化されたカラーパレットを使用すると画像が改善される。最適化されたパレットの色は、元の画像で多く使われている色から選ばれる。最適化されたパレットを使って減色すると、その結果は元の画像により近くなる(図4)。
パレット内の色数も画質に影響する。例えばパレットが16色となった場合、画像の細部はさらに失われる(図5)。そのような場合でもディザリングを施すことによって画像の見栄えは改善される(図6)。
[編集] 応用
初期のビデオカードや最近の携帯電話や低価格のデジタルカメラで使われている液晶ディスプレイでは、表示可能な色数が少ない。ディザリングの主要な応用の1つとして、制限のあるハードウェアでより多彩な色数の画像をなるべく正確に表示するということが挙げられる。例えば、256色しか同時に表示できないハードウェアで数百万色の写真画像を表示するといった場合にディザリングが使われるだろう。
ハードウェアの色深度に制限のある場合のディザリングはWebブラウザなどのソフトウェアで一般に行われている。Webブラウザは画像を外部から持ってくるので、表示できないほど色数の多い画像があった場合にディザリングが必要となる。ディザリングされないようにしたい画像(図など)を256色しか表示できない機器でもディザリングされないようにするために、Webセーフカラーと呼ばれるカラーパレットが登場した。
ディザリングが使われる場面として、画像ファイル形式に制限がある場合もある。特に良く使われるGIF形式は、多くの画像エディタなどで256色かそれ以下に色数が制限されている。PNGなどの他の形式の画像でも、ファイルサイズを小さくするために色数を制限する場合がある。これらの画像では、その画像が使っている全色を含む固定カラーパレットがファイル形式に含まれている。そのような場合、画像処理ソフトウェアで色数を制限する際にディザリングを施すことになる。
[編集] ディザリング・アルゴリズム
ディザリングを行うよう設計されたアルゴリズムはいくつか存在する。1975年という早い時期に開発され、現在でも人気があるのがフロイド-スタインバーグ・ディザリングアルゴリズムである。このアルゴリズムは、誤差拡散処理を通して人工的な見た目を改善する。単純なディザリングアルゴリズムよりも元に近い画像を生成することができる。
その他のディザリング法には以下のようなものがある:
- 平均(Average)ディザリング: 最も単純なディザリング法。平均色調を計算し、それに最も近い色を使用する。
- 配列(Ordered)ディザリング: ピクセル毎に交互に色が並ぶパターンを生成する。印刷技術の中間色調の表現に類似している。
- 無作為(Random)ディザリング: 各ピクセルに乱数的要素を導入し、電波が弱いときのテレビ画像のような画像を生成する。
- Albieディザリング: フロイド-スタインバーグに似ているが、インターレース式モニターに最適化されている。
- Jarvisディザリング: 上図参照。
[編集] 参考文献
より最近の音響のディザリングに関しては、ウォータールー大学の Lipshitz、Vanderkooy、Wannamaker による研究がある[1]。
[編集] 関連項目
[編集] 外部リンク
- DHALF.TXT (1991) フロイド-スタインバーグ法に基づくいくつかのイメージフィルタの比較
- What is Dither? Australian HI-FI 誌に以前掲載された記事。ディザリングによる高調波ひずみの低減を視覚的に描いている。
- Aldrich, Nika. "Dither Explained (pdf)"
- Aldrich, Nika. "Digital Audio Explained"
カテゴリ: 音響工学 | 信号処理 | コンピュータグラフィックス | ノイズ