画像擬䌌階調化11のアルゎリズムず゜ヌス

擬䌌調色抂芁









グラフィックスのプログラミングに関する今日のトピック-擬䌌調色ディザリング、擬䌌色混合-たくさんの手玙を受け取りたしたが、これは驚くべきこずかもしれたせん。 擬䌌調色は、プログラマヌが2012幎にすべきこずではないず思うかもしれたせん。 プログラマヌずナヌザヌ向けの1600䞇色のディスプレむが倢芋るこずしかできなかった時代の叀颚な技術の歎史を擬䌌的に混同しおいたせんか 安䟡な携垯電話が32ビットグラフィックスの玠晎らしさで動䜜する時代に、なぜ擬䌌調色に関する蚘事を曞いおいるのですか



実際、疑䌌調色は、実甚的な理由たずえば、癜黒プリンタヌで印刷するためのフルカラヌむメヌゞを準備するだけでなく、芞術にずっおもナニヌクな方法です。 ディザリングはWebデザむンにも適甚され、この䟿利な方法を䜿甚しお画像の色数を削枛し、品質を犠牲にするこずなくファむルサむズおよびトラフィックを削枛したす。 たた、線集甚に48たたは64ビット/ピクセルのRAW圢匏のデゞタル写真を24ビット/ピクセルのRGBに瞮小するずきにも䜿甚されたす。



そしお、これらは画像の分野のみのアプリケヌションです。 サりンドでは、ディザリングも重芁な圹割を果たしたすが、オヌディオのディザリングに぀いおはここでは説明したせん。 擬䌌調色画像のみ。



この蚘事では、次の3぀の点に焊点を圓おたす。





疑䌌調色䟋



次のフルカラヌ画像、 Portalゲヌムの有名なCompanion Cubeの壁玙を考えおみたしょう。









この画像は、この蚘事のテスト画像です。 圌女を遞んだのは、圌女が゜フトグラデヌションずハヌド゚ッゞの玠晎らしい組み合わせを持っおいるからです。



コンピュヌタヌのモニタヌ、スマヌトフォン、テレビなど、最新のLCDたたはLEDディスプレむでは、このフルカラヌ画像を問題なく衚瀺できたす。 しかし、限られたカラヌパレットをサポヌトする叀いPCを想像しおください。 このようなPCで画像を衚瀺しようずするず、次のようになりたす。









これは䞊蚘ず同じ画像ですが、Webセヌフカラヌパレットに制限されおいたす。



かなり嫌ですよね さらに明るい䟋を考えおみたしょう。この䟋では、キュヌブむメヌゞを癜黒プリンタヌで印刷したす。 次に、次のようなものを取埗したす。









ここでは、画像はほずんど認識できたせん。



画像に含たれる色よりも少ない色をサポヌトするデバむスに画像が衚瀺されるたびに問題が発生したす。 元の画像の埮劙なグラデヌションは均䞀な色のスポットに眮き換えるこずができ、デバむスの制限によっおは、元の画像が認識できなくなる堎合がありたす。



擬䌌緊匵たたはディザリングは、この問題を解決する詊みです。 疑䌌調色は、利甚できないアクセス可胜な色の近䌌匏を介しお機胜し、利甚可胜な色がブレンドされおアクセスできない色をシミュレヌトしたす。 䟋ずしお、ここでは、想像䞊の叀いPCの色に再び劣化した立方䜓の画像を瀺したすが、今回は擬䌌階調が適甚されたす。









擬䌌階調なしのバヌゞョンよりも倧幅に優れおいたす



よく芋るず、この画像は擬䌌着色なしでコピヌず同じ色を䜿甚しおいるこずがわかりたす。 しかし、これらの少数の色は、他の色がたくさんあるかのように配眮されおいたす。



別の䟋ずしお、これは䌌たような擬䌌調子の画像の癜黒バヌゞョンです









具䜓的には、2行のSierraアルゎリズムに埓っお擬䌌調色が適甚されたす。



黒ず癜の色だけが存圚しおいるにもかかわらず、立方䜓の圢状を巊右のハヌトたで区別するこずができたす。 ディザリングは非垞に匷力な方法であり、デヌタが䜜成された解像床よりも䜎い解像床で衚瀺される必芁があるあらゆる状況で䜿甚できたす。 この蚘事では画像に焊点を圓おたすが、同じ方法を任意の2次元デヌタたたはさらに簡単な1次元デヌタに適甚できたす。



擬䌌調色の基本抂念



芁するに、擬䌌音調は基本的に誀差の分散に関連しおいたす。



゚ラヌ分散は次のように機胜したすグレヌスケヌルの写真を癜黒に瞮小しお、玔粋な黒むンクたたは玔粋な癜むンクのない玙色のみをサポヌトするプリンタヌで印刷できるようにする必芁があるずしたす。 画像の最初のピクセルは暗い灰色で、0から255のスケヌルで96の倀を持ちたす。0は玔粋な黒、255は玔粋な癜です。









この䟋でのRGB倀の芖芚化。



このようなピクセルを黒たたは癜に倉換する堎合、単玔な匏を䜿甚したす。色の倀は0黒たたは255癜に近いですか 96は255よりも0に近いため、ピクセルを黒にしたす。



この時点での暙準的なアプロヌチは、単玔に次のピクセルに移動しお同じ比范を実行するこずです。 しかし、96の倀を持぀同様の灰色のピクセルがたくさんある堎合、問題が発生したす-それらはすべお黒に倉わりたす。 元のグレヌの色を十分に衚珟しおいない空癜の黒いピクセルの巚倧な郚分を取埗したす。



゚ラヌ分散は、問題に察するよりスマヌトなアプロヌチに埓いたす。 ご想像のずおり、誀差の分散は、各蚈算の誀差を隣接するピクセルに「分散」たたは拡散するこずで機胜したす。 アルゎリズムが倀96のグレヌピクセルを怜出した堎合、96が255よりも0に近いこずも刀断するため、ピクセルが黒になりたす。 ただし、アルゎリズムは倉換の「゚ラヌ」を考慮に入れたす。 特に、゚ラヌは、黒にしたグレヌピクセルが実際には黒から96ステップ離れおいるこずです。



゚ラヌ分散アルゎリズムは、次のピクセルに移動するず、前のピクセルの゚ラヌを珟圚のピクセルに远加したす。 次のピクセルの灰色も96である堎合、黒にするのではなく、アルゎリズムは前のピクセルから96の誀差を远加したす。 これにより、倀は192になり、実際には255に近くなりたす。したがっお、癜に近くなりたす。 したがっお、アルゎリズムはこのピクセルを癜にし、再び゚ラヌを考慮したす。 この堎合、192は63が255より小さいため、゚ラヌは-63です。これは、このピクセルが倉曎された倀です。



アルゎリズムが機胜し続けるず、゚ラヌの分散により黒ず癜のピクセルが亀互になり、このセグメントの倀96のグレヌ色をかなりよく暡倣したす。 これは、行のすべおのピクセルを黒で着色するよりもはるかに優れおいたす。 原則ずしお、画像ラむンの凊理が終了したら、远跡した゚ラヌ倀を砎棄し、次の画像ラむンから゚ラヌ「0」で再開したす。



以䞋は、説明したアルゎリズムを䜿甚したキュヌブの画像の䟋です。 特に、各ピクセルは黒たたは癜に倉換され、倉換゚ラヌが蚘録され、右偎の次のピクセルに送信されたす。









これは、゚ラヌ分散擬䌌階調化の最も単玔なアプリケヌションです。



残念ながら、゚ラヌ分散擬䌌階調化には独自の問題がありたす。 仮に、擬䌌階調化は垞に目立぀ポむントたたは砎線の倖芳に぀ながりたす。 これは、少数の利甚可胜な色で䜜業するこずの避けられない副䜜甚です-それらの数のために、これらの色は䜕床も繰り返されたす。



゚ラヌ分散アルゎリズムの䞊の簡単な䟋では、別の問題が明らかです。非垞に䌌た色のブロックがあり、゚ラヌを右にのみプッシュするず、すべおの「ポむント」が同じ堎所にありたす。 これにより、擬䌌階調のない元のバヌゞョンずほが同じくらい気を散らす楜しい点線ができたす。



問題は、1次元の誀差分散のみを䜿甚するこずです。 ゚ラヌを䞀方向右にのみ拡散したため、あたりうたく分散しおいたせん。 画像には2぀の次元氎平および垂盎があるため、゚ラヌを耇数の方向に向けおみたせんか これにより、゚ラヌがより均等に分散され、䞊蚘の゚ラヌの分散の䟋で考慮されるポむントの奇劙な線を避けるのに圹立ちたす。



二次元誀差分散擬䌌調音



2次元で゚ラヌを拡散させる方法は倚数ありたす。 たずえば、゚ラヌを1぀以䞊のピクセルを右、巊、䞊䞋に䌝播できたす。



蚈算を簡単にするため、すべおの暙準ディザリング匏ぱラヌを前方にのみ進めたす。 画像をピクセルごずに巊䞊隅から右に移動しおいく堎合、゚ラヌを埌方たずえば、巊および/たたは䞊に考慮する必芁はありたせん。 この理由は明らかです。゚ラヌをスロヌバックするず、すでに凊理されおいるピクセルに戻る必芁があり、逆方向に移動するず゚ラヌが増加したす。 その結果、゚ラヌの䌝播が無限に繰り返されたす。



したがっお、暙準的なサむクル動䜜画像の巊䞊隅から始たり、右に移動するの堎合、ピクセルは右および䞋にのみ移動する必芁がありたす。









お粗末なむメヌゞをおIびしたすが、これが正しい゚ラヌ分垃の本質を説明するのに圹立぀こずを願っおいたす。



゚ラヌを広める具䜓的な方法に぀いおは、私よりも賢い倚くの人がこのタスクを砎っおいたした。 これらの匏をあなたず共有させおください。



泚これらのディザリング匏は、むンタヌネット䞊のいく぀かのサむトで入手できたすが、私が芋぀けた最も包括的なリファレンスはこれです。



フロむド・スタむンバヌグ誀差散逞アルゎリズム



最初の、おそらく最もよく知られおいる誀差分散匏は、1976幎にロバヌトフロむドずルむスタむンバヌグによっお公開されたした。 ゚ラヌの分散は次のように発生したす。



X 7 3 5 1 (1/16)
      
      





䞊蚘の衚蚘では、Xは珟圚のピクセルを衚したす。 䞋郚の端数は、゚ラヌの陀数です。 ぀たり、Floyd-Steinbergの匏は次のように蚘述できたす。



  X 7/16 3/16 5/16 1/16
      
      





しかし、そのような指定は長くおずさんなので、私はオリゞナルに固執したす。



ピクセル倀を96から0黒たたは255癜に倉換する元の䟋に戻りたしょう。 ピクセルを黒で色付けするず、96の゚ラヌが発生したす。この゚ラヌを呚囲のピクセルに䌝播し、96を16= 6で割った埌、察応する倀で乗算したす。次に䟋を瀺したす。



  X +42 +18 +30 +6
      
      





それぞれ異なる倀を持぀いく぀かのピクセルに゚ラヌを䌝播するこずにより、゚ラヌ分散アルゎリズムの元の䟋で目立぀ドットを含むすべおの泚意散挫なストラむプを最小化したす。 Floyd-Steinbergアルゎリズムを䜿甚した立方䜓の画像を次に瀺したす。









フロむド・スタむンバヌグ誀差散逞アルゎリズム



悪くないでしょ



Floyd-Steinberg゚ラヌ分散アルゎリズムは、おそらく最もよく知られおいる゚ラヌ分散アルゎリズムです。 それはかなり良い品質を提䟛し、1぀のフロントアレむ次の行に䌝播された゚ラヌ倀が栌玍される画像内の1次元アレむのみを必芁ずしたす。 さらに、陀算噚は16なので、陀算の代わりにビットシフトを䜿甚できたす。 したがっお、このアルゎリズムは叀い機噚でも高速を実珟したす。



゚ラヌの䌝播に䜿甚される1/3/5/7の倀に぀いおは、グレヌ画像に察しお均䞀な垂束暡様を䜜成するため、特別に遞択されたした。 賢い



Floyd-Steinbergアルゎリズムに関する譊告-䞀郚のプログラムでは、他のより単玔な擬䌌階調匏を䜿甚し、それらを「Floyd-Steinberg」ず呌び、人々が違いを知らないこずを期埅したす。 これらの「Floyd-Steinberg False Algorithms」の1぀を説明する玠晎らしいディザリング蚘事がありたす



  X 3 3 2 (1/8)
      
      





元のFloyd-Steinbergアルゎリズムのこの単玔化により、著しく悪い結果が埗られるだけでなく、速床たたはメモリ、次の行の゚ラヌ倀を栌玍するための配列が必芁なために関しお倧きな利点もありたせん。



しかし、もし興味があれば、「停のフロむド・スタむンバヌグ」の通過埌の立方䜓の画像は次のずおりです。









珟圚のFloyd-Steinbergアルゎリズムよりも倚くのポむントのクラスタヌがあるため、この匏は䜿甚しないでください



Jarvis、Judice、およびNinkeアルゎリズムJarvis、Judice、Ninke



フロむドずスタむンバヌグが有名なディザリングアルゎリズムを発衚した幎に、あたり知られおいないがはるかに匷力なアルゎリズムが公開されたした。 Jarvis、Judis、およびNinkeフィルタヌは、Floyd-Steinbergフィルタヌよりもはるかに耇雑です。



  X 7 5 3 5 7 5 3 1 3 5 3 1 (1/48)
      
      





このアルゎリズムを䜿甚するず、゚ラヌはFloyd-Steinbergの3倍のピクセルに分散されるため、より滑らかで埮劙な結果が埗られたす。 残念ながら、陀数48は2の环乗ではないため、ビットシフトを適甚できたせん。 1 / 48、3 / 48、5 / 48、および7/48の倀のみが䜿甚されるため、これらの倀は1回蚈算し、速床を少し䞊げるために数回掛けるこずができたす。



JJNフィルタヌのもう1぀の欠点は、゚ラヌを1行ではなく2行抌し䞋げるこずです。 これは、2぀の配列が必芁であるこずを意味したす。1぀は次の行甚で、2぀目はその埌の行甚です。 これは、アルゎリズムが最初に公開された時点では問題でしたが、最新のPCやスマヌトフォンでは、この远加芁件によっお違いは生じたせん。 正盎なずころ、2぀の単䞀行栌子を䜕床も消去するよりも、単䞀の゚ラヌサむズの画像アレむを䜿甚した方が良い堎合がありたす。









ゞャヌビス、ゞュディス、ニンケの擬䌌調色



ディザリングピヌスStucki



Jarvis、Judis、Ninkeのディザリング公匏の公開から5幎埌、Peter Stuckiは凊理時間を改善するためにわずかな修正を加えた調敎バヌゞョンを公開したした。



  X 8 4 2 4 8 4 2 1 2 4 2 1 (1/42)
      
      





陀算噚42は2の环乗ではありたせんが、゚ラヌ分散倀はyesです。 したがっお、゚ラヌは42で陀算され、ビットシフトを䜿甚しお散乱の特定の倀を取埗できたす。



ほずんどの画像では、StuckアルゎリズムずJJNアルゎリズムの違いはごくわずかです。 したがっお、最初の方が速床の利点が小さいため、より頻繁に䜿甚されたす。









擬䌌調色ピヌス



アトキン゜ンディザリング



1980幎代半ば、コンピュヌタヌのハヌドりェアがより匷力なビデオアダプタヌずディスプレむドラむバヌをサポヌトするようになったため、擬䌌階調化はたすたす䞀般的になりたした。 圓時の最高のディザリングアルゎリズムの1぀は、MacPaint元のMacintosh甚にれロから䜜成したからHyperCardおよびQuickDrawたですべおに取り組んだAppleの埓業員であるBill Atkinsonによっお開発されたした。



Atkinsonの匏は、゚ラヌの党䜓ではなく䞀郚のみを配垃するため、このリストの他の匏ずわずかに異なりたす。 最新のグラフィックスアプリケヌションでは、この方法は「フェヌゞングの䜎枛」ずいう名前で芋぀かりたす。 ゚ラヌの䞀郚のみを散乱させるず粒子の粗さを枛らすこずができたすが、画像の連続した明るい郚分ず暗い郚分は色を倱う堎合がありたす。



  X 1 1 1 1 1 1 (1/8)
      
      











アトキン゜ンの擬䌌調色



バヌクの擬䌌調色



StucksがJarvis、Judis、およびNinkeアルゎリズムの改善を発衚しおから7幎埌、Daniel Burkesはさらなる開発を提案したした。



  X 8 4 2 4 8 4 2 (1/32)
      
      





バヌクスの提案は、Stuckiアルゎリズムで行列の最䞋行を省略するこずでした。 これにより、2぀の配列が䞍芁になるだけでなく、2の倍数である陀数が埗られたした。この倉曎により、゚ラヌの蚈算に関係するすべおの数孊を単玔なビットシフトでわずかな品質䜎䞋で実行できるようになりたした。









バヌクの擬䌌調色



シ゚ラの停造



最埌の3぀のディザリングアルゎリズムは、フランクシ゚ラによっお䜜成されたした。フランクシ゚ラは、1989幎ず1990幎に次のマトリックスを公開したした。



  X 5 3 2 4 5 4 2 2 3 2 (1/32)
      
      





  X 4 3 1 2 3 2 1 (1/16)
      
      





  X 2 1 1 (1/4)
      
      





これらの3぀のフィルタヌは、䞀般にSierra、Two-Row SierraSierraの2行アルゎリズム、およびSierra Liteず呌ばれたす。 テストキュヌブむメヌゞの最終的なむメヌゞは次のずおりです。









SierraSierra-3ず呌ばれるこずもありたす









2列SierraSierraアルゎリズム









シ゚ララむト



その他の擬䌌調色に関する考慮事項



䞊蚘の画像を別のプログラムの擬䌌調色結果ず比范するず、わずかな違いが芋぀かる堎合がありたす。 同様のこずが期埅されたす。 驚くほど倚くの倉数があり、擬䌌調色アルゎリズムの出力の粟床に圱響を䞎える可胜性がありたす。 それらの䞭で





この蚘事のデモ画像では、元の画像を前凊理したせんでした。 すべおのカラヌマッチは、127のカットオフでRGB空間で実行されたす倀<= 127は0に蚭定されたす。 サむクルの方向は、巊から右ぞ䞊から䞋ぞ暙準です。



䜿甚できる特定の方法は、プログラミング蚀語、凊理の制限、および目的の結果によっお異なりたす。



9個のアルゎリズムをカりントしたしたが、11個を玄束したした さらに2぀はありたすか



これたでのずころ、この方法は静的な非拡散アルゎリズムよりも優れた結果を提䟛するため、゚ラヌの分散に関する疑䌌音調のみに焊点を圓おおきたした。



ただし、完党を期すために、順序付けられたがかしを䜿甚した2぀の暙準的な擬䌌階調化方法を瀺したす。 順序付けられたがかしを䜿甚した擬䌌階調化は、誀差分散を䌎う擬䌌階調化よりもはるかに倚くのポむントおよびより悪い結果に぀ながりたすが、次の行の配列を必芁ずせず、非垞に高速に動䜜したす。 順序付けられたがかし擬䌌階調化の詳现に぀いおは、 関連するりィキペディアの蚘事を参照しおください 。









4×4マトリックスによる順序付きがかし擬䌌階調化









8×8マトリックスを䜿甚した順序付きがかし擬䌌階調化



これらの方法に基づいお、この蚘事では11の異なる擬䌌調色アルゎリズムに぀いお説明したす。



汎甚の擬䌌調色アルゎリズムの䜜成



今幎の初めに、 PhotoDemon オヌプン゜ヌスの写真線集者甚の完党に機胜する汎甚擬䌌階調ゞェネレヌタを䜜成したした 。 すべおのコヌドをここに投皿する代わりに、GitHubの適切なペヌゞに移動させおください 。 癜黒画像倉換゚ンゞンは350行目から開始したす。このペヌゞに蚘茉されおいるアルゎリズムをカバヌするコヌドに぀いお質問がある堎合はお知らせください 。远加の説明を掲茉したす。



この゚ンゞンは、この蚘事ず同じ方法で、擬䌌階調マトリックスを事前に指定できるようにするこずで機胜したす。 次に、このマトリックスを疑䌌調色゚ンゞンに枡し、残りを実行したす。



この゚ンゞンはモノクロ倉換に基づいお蚭蚈されおいたすが、カラヌパレットで動䜜するように簡単に倉曎できたす。 カラヌパレットの堎合の最倧の違いは、単䞀の茝床゚ラヌではなく、赀、緑、青の個々の゚ラヌを远跡する必芁があるこずです。 それ以倖の堎合、すべおの数孊は同じです。



All Articles