Dithering (grafika komputerowa)

Bez ditheringu, true color
Dithering, 32 kolory
Dithering, 8 kolorów, widoczny szum
Bez ditheringu, 8 kolorów, widoczny efekt bandingu

Dithering (z ang. rozsiewanie lub rozpraszanie) – zamierzony efekt zastosowania szumu w celu zniwelowania błędu kwantyzacji, zapobiegający efektowi bandingu. Stosuje się go głównie w grafice komputerowej i druku wysokonakładowym, jednak bywa też stosowany w hafciarstwie (zwłaszcza zautomatyzowanym).

  • W trybie kolorowym próba stworzenia koloru poprzez kompozycję kilku barw z dostępnej palety, gdy kolor oryginalny nie może zostać bezpośrednio wyświetlony – symulacja koloru poprzez wyświetlenie/nadrukowanie w bliskim sąsiedztwie punktów o barwach składowych. Postrzeganie trzech punktów w kolorach składowych z większej odległości daje wzrokowy efekt koloru wynikowego - zamierzonego.
  • W trybie czarno-białym podobna symulacja jak w trybie kolorowym, lecz z zastosowaniem do odcieni szarości. Skalowanie osiąga się poprzez natężenie ilościowe punktów składowych czarnych i białych. Ma to miejsce w przypadku dostępności jedynie dwóch kolorów: czarnego i białego lub ograniczonej liczby półtonów.

Dithering pozwala nie tylko na uzyskanie wrażenia dodatkowych kolorów, ale przede wszystkim powoduje złudzenie bardziej płynnego przejścia od jednego koloru do drugiego (szczególnie dla mniejszej liczby kolorów) oraz zniwelowanie zjawiska bandingu – widać to bardzo wyraźnie na ośmiokolorowych grafikach przedstawionych obok.

W celu zrealizowania ditheringu można zastosować kilka różnych metod ułożenia pikseli o barwach składowych; ta przedstawiona na dołączonych tutaj rysunkach to error diffusion, czyli rozpraszanie błędów.

Niektóre modele LCD zostały wyposażone w funkcję tymczasowego ditheringu, uzyskując podobny efekt do programowego ditheringu, polegającą na szybkiej zmianie wartości pikseli pomiędzy uśrednionymi wartościami kolorów w przestrzeni barw (znane również jako Frame Rate Control). Ekran, który natywnie wspiera wyświetlanie 18-bitowej palety kolorów (6 bitów na każdy kanał RGB), potrafi wyświetlić 24-bitowy obraz true color (8 bitów na kanał RGB)[1].

Galeria

  • Rys. 1. Zwraca uwagę gładkość oraz jakość szczegółów.
    Rys. 1. Zwraca uwagę gładkość oraz jakość szczegółów.
  • Rys. 2. Oryginalne zdjęcie edytowane przy użyciu palety kolorów web-safe, dithering nie został zastosowany. Zwracają uwagę duże płaskie powierzchnie oraz utrata jakości szczegółów (banding).
    Rys. 2. Oryginalne zdjęcie edytowane przy użyciu palety kolorów web-safe, dithering nie został zastosowany. Zwracają uwagę duże płaskie powierzchnie oraz utrata jakości szczegółów (banding).
  • Rys. 3. Oryginalne zdjęcie edytowane przy użyciu palety kolorów web-safe, został zastosowany dithering typu Floyd–Steinberg. Zwraca uwagę różnica z rys. 2, mimo tej samej palety kolorów dithering poprawił jakość obrazu.
    Rys. 3. Oryginalne zdjęcie edytowane przy użyciu palety kolorów web-safe, został zastosowany dithering typu Floyd–Steinberg. Zwraca uwagę różnica z rys. 2, mimo tej samej palety kolorów dithering poprawił jakość obrazu.
  • Rys. 4. Oryginalne zdjęcie zostało edytowane do palety 256 kolorów. Został zastosowany dithering typu Floyd–Steinberg. Użycie algorytmu, mimo zastosowana jedynie palety 256 kolorów, obrazuje poprawne odwzorowanie kolorów.
    Rys. 4. Oryginalne zdjęcie zostało edytowane do palety 256 kolorów. Został zastosowany dithering typu Floyd–Steinberg. Użycie algorytmu, mimo zastosowana jedynie palety 256 kolorów, obrazuje poprawne odwzorowanie kolorów.
  • Rys. 5. Głębia została zredukowana do 16-kolorowej palety, bez użycia ditheringu. Kolory są wyciszone oraz występuje banding.
    Rys. 5. Głębia została zredukowana do 16-kolorowej palety, bez użycia ditheringu. Kolory są wyciszone oraz występuje banding.
  • Rys. 6. Obraz również przedstawia paletę 16-kolorową, jednak użycie ditheringu pomaga zniwelować banding.
    Rys. 6. Obraz również przedstawia paletę 16-kolorową, jednak użycie ditheringu pomaga zniwelować banding.

Algorytmy

Istnieje wiele algorytmów zaprojektowanych w celu realizacji ditheringu. Jednym z pierwszych i najbardziej popularnych jest algorytm Floyda-Steinberga stworzony w 1975 r. Jego zaletą jest niwelowanie artefaktów obrazu poprzez zastosowanie procesu Error-diffusion (z ang. przenikanie błędów)[2].

Innymi algorytmami stosowanymi do poprawy wyglądu obrazu rastrowego przy redukcji palety barwnej lub tonalnej są (na pierwszej pozycji widoczny obraz oryginalny, za nim obraz z paletą tonalną zredukowaną do 1 bita przy wykorzystaniu metody progowania (ang. thresholding), która nie realizuje rozpraszania błędów, następnie obrazy 1-bitowe po zastosowaniu poszczególnych metod ditheringu):

  • Random dithering
  • Patterning
    • Halftone dithering
    • Ordered dithering
(obraz oryginalny) Thresholding Random Halftone Bayer (Ordered)
  • Error-diffusion dithering
    • Floyd–Steinberg dithering
    • Jarvis, Judice, Ninke dithering
    • Stucki dithering
    • Burkes dithering
Floyd–Steinberg Jarvis, Judice & Ninke Stucki Burkes
  • Error-diffusion dithering
    • Sierra dithering
    • Two-row Sierra
    • Sierra's Filter Lite
    • Atkinson dithering
Sierra Two-row Sierra Sierra's Filter Lite Atkinson

Zobacz też

  • dithering (audio)
  • paleta barw
  • GIF

Przypisy

  1. 6-Bit vs. 8-Bit... PVA/MVA vs. TN Film. Are Things Changing?. tftcentral.co.uk, 2012-02-21. [dostęp 2014-08-17]. [zarchiwizowane z tego adresu (2015-03-15)].
  2. Przetwarzanie obrazu. efg2.com, 2012-02-21. [dostęp 2012-02-12]. [zarchiwizowane z tego adresu (2007-09-27)].