Posterizace v digitální fotografii

      30.3.2014 S posterizací (degradací plynulých barevných/jasových přechodů do map větších homogenních ploch s viditelnými skokovými přechody) se už nejspíš setkal při úpravě svých digitálních fotografií každý fotograf. Nejčastěji k tomu dochází při úpravách zvyšujících kontrast fotky pořízené pouze v 24-bitové barevné hloubce (8 bitů na kanál - naprostá většina kompaktů a mobilů), kdy dojde k roztažení a diskretizaci histogramu, tedy celkovému poklesu počtu jedinečných barev v obraze. Nejvíce je to vidět u velkých ploch pozvolných barevných přechodů, jako je např. čistá obloha bez mraků, kde vzniknou jednobarevné pásy se zřetelnými hranicemi jako vrstevnice na mapě (oko je na hrany velice citlivé). Proto vždy, pokud je to možné, fotím do RAWu s vyšší bitovou hloubkou (u mé zrcadlovky 12 bitů na kanál), který pak dál zpracovávám jako 48-bitový TIFF a teprve nakonec redukuju na 24-bitový obraz a ukládám typicky v komprimovaném formátu JPEG.
      Avšak k posterizaci může dojít i v průběhu samotné JPEG komprese, což je dané ztrátovým kompresním algoritmem založeným na DCT obrazových bloků velikosti 8 x 8 pixelů a následné kvantizaci. Při malých barevných rozdílech v rámci bloku může dojít k tomu, že výsledkem kvantizace je jediná průměrná barva pro celý blok. Další typickou vlastností JPEGu je vznik artefaktů na kontrastních hranách a tenkých čarách (ve fotografii typicky viditelné u větviček stromů, stožárů či drátů el. vedení proti obloze). Zajímavé je to, že intenzitu artefaktů lze plynule redukovat snižováním kompresního poměru, zatímco na posterizaci to v mém případě nemělo prakticky žádný vliv. I když jsem nastavil nejvyšší možnou kvalitu bez podvzorkování barev, tak se akorát velice zvětšil výsledný soubor, ale posterizace tam zůstala, viz tato ukázka:

smooth sky gradient before compression posterized sky gradient before compression
před po

      Napadlo mě, jestli není problém v konkrétní implementaci JPEG kompresoru v Paint Shop Pro a tak jsem vyzkoušel i další programy s několika úrovněmi komprese: Adobe PhotoShop CS4, ACDSee Pro 2.5, IrfanView 4.37, JPEG Optimizer 3.15 a PictView plugin 2.1 v Servant Salamanderu, ale skoro se stejně bídným výsledkem. Na Internetu jsem našel radu, že v takových případech pomůže selektivně do oblohy přimíchat trochu monochromatického gaussovského šumu. Ten do obrazu zavede vysoké frekvence a zabrání kvantizéru zhomogenizovat obrazový blok. Výsledek díky šumu taky nevypadá moc vábně, ale bije to méně do očí než ihned rozeznatelná posterizace. Jak se ukázalo, je lepší už při prvních úpravách v LightRoomu to moc nepřehánět s odšumovacím filtrem a nechat v obraze trochu jemného šumu, který působí jako takový dithering a při prohlížení třeba 2x zmenšené fotky na monitoru prakticky není vidět.
      Na Pentax fóru mi uživatel Steve Ledger poradil program Faststone Image Viewer (malý, šikovný freeware prohlížeč obrázků v češtině se spoustou funkcí a formátů pro Win98 - 8), který v pokročilých nastaveních umožňuje při ukládání JPEGu kromě komprese a podvzorkování zvolit též barevný model. Klíčem k úspěchu je přepnout z výchozího modelu YUV na RGB a dostaví se citelně lepší výsledek - posterizace je téměř neviditelná. Program navíc ukazuje realtime náhled výsledného obrázku po kompresi (lze přepnout na split-fullscreen), takže lze snadno potunit kvalitu. Je však třeba počítat s tím, že výsledný JPEG v RGB modelu bude o něco větší. Ještě lepšího výsledku co do kvality i kompresního poměru lze dosáhnout při použití modernějšího formátu JPEG2000, který používá waveletovou transformaci, jenž zvládá hladké přechody bez problémů. Bohužel se formát JPEG2000 stále ještě tolik nerozšířil a v řadě webových prohlížečů podpora chybí, takže ho nelze pro použití na webu doporučit. Také nevím, zda-li podporuje klasický EXIF, prý používá nový XML formát metadat XMP.

smooth sky gradient in JPEG - RGB mode smooth sky gradient in JPEG2000 format
JPEG, RGB mode JPEG2000

      Pokud chce někdo kvalitu bez kompromisů, nezbude mu než použít bezeztrátovou kompresi, typicky formáty TIFF (LZW) nebo PNG (Deflate). Oba podporují až 16 bitů na kanál. TIFF podporuje klasický EXIF, zatímco PNG má vlastní formát metadat. PNG také podporuje průhlednost (alfa kanál) a dosahuje lepší kompresní proměr. Avšak je třeba počítat s tím, že u složitých obrázků může výsledná velikost souboru i překročit velikost původního RAWu (při stejném rozlišení).



Zpět

Aktualizováno 11.4.2014 v 4:01

„Mějte dobrou náladu. Dobrá nálada vaše problémy sice nevyřeší, ale naštve tolik lidí kolem, že stojí za to si ji užít.“ Jan Werich