Barevná kalibrace displeje (nejen) v CM6

cyanogen_logo_hero

Když jsme před pár dny informovali o nové finální verzi CyanogenModu, zazněla mezi novinkami také zmínka o možnosti barevné kalibrace displeje mobilního telefonu. Pojďme se tedy na tuto novinku podívat podrobněji.

Každý, kdo to myslí s grafikou či fotografií alespoň trochu vážně, nutně potřebuje, aby na monitoru viděl právě to, co tam vidět má být – potřebuje mít tedy zkrátka monitor zkalibrovaný. Mobilní telefony jsou vybavovány stále kvalitnějšími displeji i fotoaparáty, takže se stávají vcelku použitelnými jak pro potřeby prohlížení obrázků, tak i pro jejich základní editaci. A pokud jste právě pořídili nějakou fotografii, kterou se chystáte odeslat někam na web, také byste jistě byli rádi, kdybyste si mohli být jisti tím, jak doopravdy vypadá (řada mobilních fotoaparátů má stále velké problémy s vyvážením bílé) a v případě potřeby na ní mohli provést základní úpravy s vědomím, že to, co vidíte na displeji telefonu, bude alespoň zhruba odpovídat tomu, co na svém monitoru uvidí ten, kdo si bude vaši fotografii prohlížet z PC. Displeje mobilních telefonů ale byly pro takové účely i přes svoje jiné nesporné kvality stále spíše nepoužitelné – většina z nich má totiž barevnou teplotu příliš vysokou (laicky řečeno – jsou příliš do modra) nebo trpí nějakým jiným nádechem, takže mobilního fotografa často čekalo při prohlížení fotografie v počítači velké zklamání – výsledek vypadal úplně jinak, než jak se jevil v mobilu.

Již nějakou dobu ale na podobné problémy existuje alespoň částečné řešení.  Záměrně říkám “částečné”, protože kvalitní kalibrace displeje je poměrně náročný proces a vyžaduje možnost měnit celou řadu nastavení, která v systému Android nejsou dostupná buď vůbec, nebo jen velmi obtížně. Na serveru XDA se ale našel odvážlivec, vystupující pod nickem “storm99999”, kterému se podařilo přijít na způsob, jak měnit v CM6 ROM barevné vyvážení obrazu na displeji. Jako základ své úpravy přitom použil manipulace s knihovnou libsurfaceflinger.so, kterých už předtím využil Jeff Sharkey pro vytvoření monochromatického obrazu, kterým zásluhou principu AMOLED displeje šetřil baterii telefonu.

Testovací verze této úpravy si mezi uživateli Nexusu One, pro který byla primárně určena, našla samozřejmě velkou oblibu, takže netrvalo dlouho a stormova modifikace byla zařazena do standardní instalace CM6. Zpočátku se objevovala pouze v experimentálních nightly buildech, ale ve verzi RC3 už měla svou veřejnou premiéru a ve finální verzi CM6 pochopitelně tato úprava zůstává také (storm na ní navíc stále pracuje a snaží se ji vylepšit).

Jak se to celé používá? Pokud máte v telefonu CM6 v některé ze zmíněných verzí, pak je to velice prosté. Nemusíte totiž víceméně nic dalšího instalovat a základní kalibrační presety máte k dispozici přímo v ROM jako takové. Stačí zamířit do Settings, CyanogenMod Settings, User Interface, Render Effect a zde vybrat některý z Calibrated N1 profilů:

calibrate_2

Dle odezvy uživatelů na XDA je údajně standardu sRGB s jeho bílým bodem na hodnotě 6500K nejblíže preset Cool, ale konkrétní výsledky se samozřejmě mohou lišit displej od displeje. Pokud s kalibrací displejů nemáte zkušenosti, očekávejte, že vám displej po aplikaci kteréhokoliv z presetů bude velice pravděpodobně připadat pro změnu příliš načervenalý nebo nažloutlý. To je standardní reakce – lidský mozek má tendence si “zvykat” a s jakoukoliv změnou se nějaký čas vyrovnává. Pro velmi hrubou představu následují screenshoty všech tří základních presetů, ale mějte na paměti, že pokud nemáte na svém monitoru hodně podobnou barevnou teplotu, jakou má displej Nexusu (a budu pevně doufat, že tak ujetý monitor u počítače nemáte), nebudou barvy na screenshotech stejně příliš reprezentativní tomu, jak budou poté vypadat na mobilu:

calibrate_N11

To ale zdaleka není vše. Pokud vám žádný z presetů nevyhovuje a nepřinese dostatečně věrné barvy (což se může velice snadno stát), máte další možnost – nainstalovat si kalibrační utilitu, kterou storm99999 připravil. Zde vstupuje na scénu další malý trumf – je totiž nezanedbatelná šance, že vám barevná kalibrace bude fungovat i na jiné ROM než na CM6. V prvním příspěvku stormova vlákna na XDA je k dispozici ve dvou verzích (soubory Calibrator Controller)  – verze pro CM6 a kterou použijete v případě, že nemáte “čistokrevný” CM6, ale provozujete nějakou jinou ROM. A aby kalibrace fungovala, je třeba na jiných ROM než CM6 vyměnit již dříve zmíněnou knihovnu libsurfaceflinger.so za novou, upravenou. Opět jsou k dispozici dvě verze, jedna pro telefony s HTC Sense rozhraním, odladěná na HTC Desire, a druhá pro telefony ostatní. Jedinou nezbytně nutnou podmínkou je, aby šlo o Froyo ROM. Nemusíte mít ani AMOLED displej, byť ti, kteří ho na mobilu mají, mohou profitovat i jinak – kalibrace barev totiž obvykle alespoň mírně stáhne jas displeje a současně způsobí jisté zčervenání obrazu – což jsou věci, které se mohou u AMOLED displejů s ohledem na jejich konstrukci a princip příznivě projevit na úspoře baterie (ale zázraky nečekejte).  Na jiných verzích systému Android než Froyo (tzn. Eclaire a nižší verze) to nemusíte ani zkoušet – velice pravděpodobně vám poté ani nenastartuje telefon. I na Froyo systémech ale vřele doporučuji při instalaci této upravené knihovny postupovat s maximální opatrností – přepisuje důležitý systémový soubor! Mít před podobným experimentováním vytvořenou důkladnou zálohu všeho potřebného by mělo být naprostou samozřejmostí!

calibrate_galaxy

Screenshot rozhraní aplikace, který vidíte výše, je pořízený na Galaxy S, na které jsem kalibraci displeje vyzkoušel ve firmwarech JP3 i JPC s částečným úspěchem – kalibrování sice funguje, ale připravíte se tím o fotoaparát a videopřehrávač, protože namísto grafického overlay, kde by měl být obraz, vidíte po této modifikaci pouze čistý bílý obdélník. Přehrávač sice přehrává a fotoaparát fotí, ale výsledek na displeji nevidíte, takže většina majitelů Galaxy S patrně nebude schopna kalibrovaný displej dlouhodobě používat. Mimochodem, Galaxy S má, jak je ze screenshotu patrné, displej spíše do modrozelena, proto je screenshot ještě červenější než v případě presetů pro Nexus One. K samotnému průběhu kalibrování nelze mnoho říct, je velice jednoduchá. Jediným zádrhelem, na který jsem při kalibrování displeje na Samsung Galaxy S narazil, bylo to, že se obraz nepřekresloval současně se změnou kalibračních hodnot, ale po každé jejich změně bylo třeba “obnovit” obraz – například stáhnout horní notifikační lištu a telefonu pak ji zase skrýt. Na screenshotu pak současně vidíte i přibližné hodnoty, které na mojí Galaxy S displej vcelku znatelně přiblížily k mému relativně solidně barevně zkalibrovanému monitoru podle sRGB standardu.

I s takto strohými kalibračními prvky se dá dosáhnout velice uspokojivých výsledků. Pro jistou představu následuje několik fotografií stylu “předtím/potom”. Omlouvám se za jejich horší kvalitu. Přesto si myslím, že i tak je na nich jasně patrno, jak moc se barevné podání displeje kalibrací změnilo (přestože by si žádalo ještě řadu dalších úprav). Ve skutečnosti je efekt samozřejmě ještě výraznější než na fotografii.

IMG_2187

IMG_2186

IMG_2184

IMG_2183

IMG_2180

IMG_2179

Za pořízení screenshotů z prostředí CyanogenModu 6 (respektive Villain ROM z něj odvozené) děkuji Davidovi Knapovi.

Mohlo by vás zajímat

Komentáře (5)