Cleartype naštorc

Čvn
29
2011

Když jsem se tu posledně zmiňoval o možnosti použít ve Windows pro vykreslování fontů knihovnu Cleartype, objevila se v jednom z komentářů kritika, že jsem prý měl například srovnat „vertikální a horizontální Cleartype“. Moje reakce odpovídala nesmyslnosti tohohle požadavku, ale s odstupem času jsem si řekl, že by možná bylo dobré přece jen „vertikální a horizontální Cleartype“ ukázat a trochu vysvětlit, k čemu tam dochází. V tomhle ohledu je na tom totiž Cleartype naprosto katastroficky.

Začneme nejprve u klasické konfigurace, kdy používáme standardní monitor s RGB rozložením subpixelů v orientaci na šířku (landscape), tzn. konfiguraci, kterou před sebou má pravděpodobně tak 98 procent všech majitelů LCD monitorů. Předem se v případě makrofotografií displejů omlouvám za horší kvalitu, stále platí, že na něco takového nejsem ani trochu vybavený a ač se snažím o co nejlepší výsledek, není to zdaleka ideální.

Linuxový Freetype v takovém případě posílá monitoru obraz, který vypadá například nějak takto:

Na monitoru potom vidíme toto (kliknutím lze zvětšit):

Poměrně hezky je tu alespoň u zelených a červených subpixelů vidět, jak subpixelové vyhlazování lícuje se subpixely displeje a výsledek tudíž vypadá přesně tak, jak vypadat má.

Teď se ve stejné situaci podíváme na Windows a jejich Cleartype. Nejprve opět ukázka toho, co monitor z počítače obdrží:

Velikost fontu se bohužel oproti předchozí ukázce trochu liší, protože mám ve Windows a v Linuxu jiné DPI – v Linuxu mám správných 90 dpi, které odpovídá fyzickému rozlišení mého monitoru, ve Windows je standardně 96 dpi a jakékoliv změny obvykle nedopadají zrovna nejlépe, nemluvě o tom, že Windows rozlišení displeje nižší než 96 dpi vůbec nepodporují (ale to je obecně problematika na zcela samostatný článek, který možná někdy vznikne). Nicméně se tedy jedná o stejný font – v obou případech jde o Segoe UI, ač to tak možná nevypadá. No a teď opět ukázka toho, co je vidět na monitoru:

Tahle fotografie je trochu horší, ale i tady je myslím s trochou snahy vidět, že subpixelové vyhlazování i v tomto případě správně lícuje a funguje tak, jak alespoň teoreticky fungovat má. Netřeba dál rozebírat.

A teď displej otočíme na výšku, čímž dojde pochopitelně k tomu, že jeho subpixely přestanou být orientovány ve sloupcích a místo toho vytvoří řádky. To pochopitelně znamená, že se subpixelové vyhlazování musí této situaci přizpůsobit, jinak nebude fungovat správně. Nejprve opět linuxový Freetype:

A situace na monitoru:

Z obou obrázků je myslím jasně vidět, že Freetype se skutečně přizpůsobil situaci, ve které jsou subpixely orientovány o 90 stupňů odlišně (všimněte si také toho, že svislé nožičky např „r“ nebo „n“ jsou teď pochopitelně vykreslovány pouze odstíny šedi, protože se ocitly kolmo na linie subpixelů), a vykresluje i nadále fonty z pohledu uživatele v prakticky nezměněné podobě. Pokud si první a druhý obrázek z Linuxu ještě trochu zmenšíte nebo například poodstoupíte od monitoru, zjistíte bezpochyby, že se od sebe znaky v obou situacích takřka vůbec neliší. To je samozřejmě zcela správný postup a přesně tak by tomu mělo být.

No a teď konečně přichází na řadu na výšku orientovaný displej ve Windows, tedy s Cleartype:

A zobrazení na monitoru:

Pokud se vám zdá, že jsem se spletl a v případě prvního z obou obrázků, tedy ukázky toho, co posílá systém monitoru, omylem vložil stejný obrázek jako v situaci, kdy jsme měli monitor ve standardní orientaci na šířku, máte a nemáte pravdu. Obrázek je skutečně pořízený v režimu na výšku, nejedná se o tentýž – kdo mi nevěří, může si to vyzkoušet sám (nakonec k tomu s trochou trpělivosti ani nepotřebuje otočný monitor). Problém je totiž jinde – subpixelové vyhlazování Cleartype zkrátka pro svou funkci předpokládá monitor, který má subpixely orientované svisle. Vodorovnou orientaci subpixelů Cleartype nepodporuje a nelze ho k tomu ani žádným způsobem přinutit. Tedy nakolik vím, ale snažil jsem se poměrně dost najít alespoň nějakou sebedobrodužnější možnost. Dlužno podotknout, že v současné době už alespoň je možné Cleartype konfigurovat mezi uspořádáním subpixelů RGB a BGR (což lze využít například tehdy, pokud byste displej otočili nikoliv o 90, ale o 180 stupňů). Zpočátku nebylo možné ani to (do Cleartype ve Windows XP tuším tuto možnost doplnil až SP3) a Cleartype skutečně natvrdo pracoval pouze s RGB uspořádáním, s žádným jiným.

Důsledek této skutečnosti je pak myslím velice dobře vidět na fotografii přímo z monitoru. Je na ní zřejmé, jak v případě vodorovné orientace subpixelů ztrácí Cleartype schopnost s nimi lícovat a tímpádem nejen přestává plnit svou funkci (všimnětě si, že základní obrysy písma vypadají téměř tak, jako byste vyhlazování zcela vypnuli – dobře je to viditelné například na „e“, pokud ho srovnáte s jeho podobou při orientaci displeje na šířku), ale, a to je horší, čitelnost písma naopak výrazně zhoršuje. Nedá příliš práce si všimnout barevných „duchů“, které kolem znaků vznikají – nalevo od znaku jsou načervenalé (dobře vidět například uprostřed obloučku „e“), napravo pak modrozelené (lze snadno spatřit u svislých nožiček „r“ či „n“). Jejich vznik a zvýšená viditelnost je snadno vysvětlitelná – pro lidské vnímání klasické latinky jsou mnohem podstatnější svislice, a tím, že jsou subpixely „naležato“, tu najednou např. místo zelené linky o šířce třetiny pixelu (kterou by měla při svislém uspořádání subpixelů) máme zelenou linku o šířce pixelu celého a to z výše zmíněných důvodů na oko nepůsobí vůbec dobře.

Nemá asi smysl to nějak více rozebírat. Ze strany Microsoftu je takovýto přístup k subpixelovému vyhlazování v roce 2011 naprosto tragický. Sám Microsoft se tímto silným nedostatkem technologie Cleartype nijak netají, naopak si ji velice dobře uvědomuje a dokonce přímo v oficiální dokumentaci výslovně doporučuje Cleartype při jiné orientaci subpixelů než svislé RGB nebo BGR vypínat (což ale přináší zase jiné problémy, zejména u fontů, které jsou výslovně pro Cleartype navrženy – což jsou snad všechny dnes ve Windows a produktech MS používané jako standardní). Pozoruhodné na tom všem je, že naprosto stejný problém se týká i mobilních zařízení se systémy Windows Mobile (kde ale patrně nebude tak očividný, protože displeje mobilních telefonů mají obvykle výrazně vyšší fyzické rozlišení a ony barevné duchy se tam oku snáze ztratí), a to včetně nejnovějších WP7. A zatím kupodivu ani nic nenasvědčuje tomu, že by se tenhle problém Microsoft chystal konečně vyřešit alespoň ve Windows 8.

Z výše uvedeného je doufám jasně patrné, že (a proč) nic jako „vertikální a horizontální Cleartype“ ve skutečnosti neexistuje. Existuje Cleartype jediný, který umí pracovat pouze při svislém uspořádání subpixelů, ať už RGB nebo BGR. S vodorovným uspořádáním subpixelů nejen není přínosem, ale dokonce nadělá více škody než užitku.

4 lidem se článek líbí.

Napsal(a) dne 29. 6. 2011 v 04:43
Kategorie: Featured,HW, SW a podobná verbež,Návody,Recenze

13 komentářů »

  • Johny_G napsal:

    Aha! Proto byl na starých Windows Mobile v landscapu standardně vypnutý, a po úpravě registru vypadal tak hnusně :-D.

  • xenofoBLA napsal:

    Takže tenhle problém může za to že když otočím svuj 5:4 monitor na výšku tak se mi zdá všechno daleko hůře čitelné?

  • Mem napsal:

    (Promiň Casi, ale pokud budeš překrucovat přímo moje slova, tak si reakci nemůžu odpustit i přes tvé záchvaty hysterie, abych ti tu nepsal)

    „objevila se v jednom z komentářů kritika, že jsem prý měl například srovnat „vertikální a horizontální Cleartype““

    Žádná taková kritika se neobjevila. Já jsem kritizoval, že tvé screenshoty jsou nevypovídající, protože je možné je vidět na různých monitorech včetně rozteče a vertikálního otočení (kde se ClearType také uplatňuje, bez ohledu na technické řešení, a kde se dá právě i síla efektu dál nastavit), a tak nedemonstrují 1:1 to, co vidíš ty. Subpixely jsi měl vyfotit právě v původním článku, aby se to dalo objektivně porovnat. Protože např. v samotném dialogu pro nastavení ClearType efektu je na opačně orientovaných monitorech přehozeno vnímání tlustého a tenkého, tedy zobrazení toho samého obrázku se subpixely na obou monitorech vyzní jinak. Na ukázku pokus s mou makropředsádkou:
    http://nepsin.com/share/cleartype_h.jpg
    http://nepsin.com/share/cleartype_v.jpg

    S technickým rozlišováním vertikálního a horizontálního ClearType jsi přišel až ty (ačkoliv to s původní obecnou připomínkou nesouviselo), a já na to jen kontroval, že i ve vertikálním režimu se uplatňuje a zobrazení ovlivňuje, a nemusí vypadat strašně (já ho používám, to, že z něho nezvracím jako ty může být i důsledek rozteče bodů a vzdálenosti a pak také samotného nastavení ClearType efektu, které jsi ty v článku opomněl).

    Dokonce když teď provedu screenshot na svých opačně orientovaných monitorech, dostanu dva odlišné obrázky (ne jako ty v tomto článku), to je ale samozřejmě jen důsledek odlišného nastavení ClearType pro každý monitor, které jsem si přizpůsobil (jak jsem psal v prvním odstavci, v dialogu pro ClearType působí ty volby na opačně orientovaných monitorech taky opačně, co je tlusté je tenké a naopak)
    http://nepsin.com/share/cleartype_vh.png

    Zcela otevřeně pak přiznávám, že jsem se domníval, že ve Windows 7 je už i vertikální ClearType implementovaný s ohledem na orientaci subpixelů, a že tedy i samotný efekt renderování ClearType je odlišný. V komentářích jsem tohle ale nikde neuváděl (ostatně každý si to může přečíst) a ani na tom nestavěl, to už jsi byl jen o krok dál a viděl mezi řádky můj další dojem :)

  • Case napsal:

    xenofoBLA: Pravděpodobně. I když to může mít aspoň teoreticky příčin o trochu víc, to už pak může záležet i na konkrétním monitoru a jeho fyzických parametrech a vlastnostech, plus je samozřejmě míra čitelnosti do jisté míry subjektivní.

    Mem: Já sice vůbec (ale fakt vůbec) nechápu, co se vlastně snažíš pořád tak usilovně sdělovat (a nevadí mi to, BTW, takže rozhodně netřeba psát další slohovky na vysvětlení), nicméně jsem sem tedy ten komentář vytáhl ze spamového koše, kam spadnul automaticky (nadměrný počet URL v textu). Třeba bude mít někdo jiný víc štěstí než já a tvé sdělení pochopí.

  • Bouchi napsal:

    Mem: Patrne mi neco uniklo, ale co maji na odkazovanem obrazku
    http://nepsin.com/share/cleartype_vh.png ukazovat dva identicke (aspon ja je vidim jako identicke) radky textu, kdyz vodstavci nad odkazem pises o odlisnych obrazcich?

  • Mem napsal:

    Case: Díky, že ti to (najednou ;)) nevadí a vytáhl jsi koment aspoň pro ostatní (s tím spamovým košem u WP mě to hned napadlo, protože schvalování jsi tu neměl a na banování bych tě netipoval)

    Bouchi: Pokud máš méně kvalitní monitor (třeba TN panel jako já) a ještě stažený jas, tak možná nepostřehneš ten rozdíl odstínů. Podívej se pečlivě nebo kapátkem v grafickém editoru na delší žluté čáry vlevo u písmene „l“ nebo u písmene „T“, tam je vidět, že je odstín odlišný, ve výsledku pak ten tmavší odstín působí jako tlustší písmo a je to docela dost znát, viz ten zmíněný nastavovací dialog pro ClearType:
    http://nepsin.com/share/cleartype_setup.png

    xenofoBLA: Hlavně si spusť to nastavení ClearType (viz obrázek výše), ve Windows 7 je to v Ovládací panely / Vzhled a přizpůsobení / Upravit text ClearType. To rozlišení 1280×1024 máš v 17 nebo 19 „? Největší vliv má podle mě právě tahle rozteč a jak daleko sedíš, abys byl schopen (ne)vnímat hrany od subpixelů

  • Case napsal:

    Mem: Vadí, ale evidentně mám smůlu.

    Sebelepší nastavení Cleartype nemá žádný vliv na to, že ta technologie prostě s horizontálně orientovanými subpixely nefunguje a naopak vytváří artefakty, které v obrazu nemají co dělat a škodí jeho čitelnosti. Jediné, co nějakým laděním lze ovlivnit, je to, jak moc viditelné pro daného uživatele ty artefakty jsou. Ale dokud je Cleartype zapnutý, jsou tam zkrátka pořád a pořád je tak text v režimu na výšku čitelný hůř než v režimu klasicky na šířku. S tím žádné nastavení ani rozteč bodů nic nenadělá, jen to může u méně náročných uživatelů posunout míru toho viditelného zhoršení pod hranici jejich tolerance. Nic víc.

  • Mem napsal:

    „a pořád je tak text v režimu na výšku čitelný hůř než v režimu klasicky na šířku.“

    Ano, to je možné. Ale i tak je (aspoň v mém případě) ClearType povolený i pro vertikální displej rozhodně příjemnější na oči, než jej mít vypnutý – bez něj je písmo příliš ostré, hranaté. O tom, že je to právě tolerancí a vzdáleností se shodneme, ostatně stejný efekt musí být i pro ClearType na horizontálním displeji, jen má logicky posunutou hranici. S tím, že jsem možná méně náročný uživatel, taky problém nemám ;)

  • Mem napsal:

    „a nevadí mi to, BTW“
    „Vadí, ale evidentně mám smůlu“

    Tak fakt prosím jasné vyjádření ;) Opravdu mi nedělá problém ti tu nepsat, pokud se nebudeš ale v článku rovnou navážet do mých komentářů.

  • Elischka napsal:

    Mem:
    „a nevadí mi to, BTW“ = Autorovi nevadí, když nadále nebude chápat, co se mu snažíš sdělit.
    „Díky, že ti to (najednou ;)) nevadí“ = Tvoje chybné vztažení prvního tvrzení na své komentáře.
    „Vadí, ale evidentně mám smůlu“ = Reakce na předchozí větu, kterou Case nepovažoval za odezvu na první tvrzení.

    IMHO.

  • Bouchi napsal:

    Mem> Muj monitor sice neni TN ale IPS, nicmene ano, nemam jas na maximu. Kdyz jsem ho na maximum dal, vidim na spodnim obrazku ty zminene barvy o neco svetlejsi, nicmene ne o tolik, abych veril, ze to v originalni velikosti pismen bude nejak nezanedbatelne poznat.
    (Schvalne se na to zitra zkusim podivat na CRT monitoru, jestli si vzpomenu.)

  • Case napsal:

    Bouchi: Já na svém IPS monitoru ty dva obrázky od sebe okem taky nerozliším, skutečně leda kapátkem v grafickém programu. A když si ten obrázek zmenším do skutečných rozměrů, vidím mezi těmi dvěma nápisy rozdíl tak mizivý, že si nejsem úplně jistý, jestli to není spíš placebo efekt. Takže jako příklad dvou odlišných nastavení Cleartype to IMO opravdu není dobře zvolené. Cleartype má sice hodně omezené možnosti nastavení (v podstatě skutečně lze měnit jen RGB/BGR a pak kontrast znaků), ale i tak nejsou až TAK omezené.

    Monitor mám plus mínus zkalibrovaný podle sRGB standardu, tzn. jas rozhodně stažený mám a je to tak správné. A to ještě teda stran jasu sRGB tak docela nedodržuju, mám jas někde kolem (odhadem) 180cd/m2 místo doporučovaných 120. Kdybych chtěl těch 120, musím v podstatě stáhnout jas úplně na nulu, a to mám monitor se spíš slabším podsvícením (na současné absurdní spotřební standardy).

    Elischka: Kdybys to nezmínila, vůbec by mi nedošlo, že to „že ti to najednou nevadí“ mohlo odkazovat na dvě různé věci.

  • Mem napsal:

    Bouchi, Case: jj, on to nebyl ani tak dobře zvolený příklad, jako prostě aktuální screenshot 2 mých monitorů (kde jsem to nastavil, abych to písmo viděl „stejně“, a jak je vidět, ta výsledná volba je přesto odlišná). Když si zvětšíte ten obrázek s dialogem ClearType, tak mezi tím „tenkým“ a „tlustým“ to už je hodně výrazné, písmenko „l“ v tenké variantě je v podstatě jen žluto-modré, v tlusté variantě je tam plná černá a jen neznatelný okraj navíc

    Elischka: aha, teď je to pochopitelné, ta druhá varianta mě předtím nenapadla, díky. Case je tedy i nadále konzistentní, píšu si to za uši ;)

RSS komentářů k tomuto příspěvku. Zpětné URL


Napište komentář

Používá systém WordPress | Styl: Aeros 2.0 z TheBuckmaker.com