Sledujte nás na YouTube

Podrobný pohled: Proč Windows Mobile komunikátory umějí zobrazit pouze 65k barev?

Proč mají WM komunikátory stále jen 65k barev?Určitě jste si už někdy položili otázku, proč ve specifikacích každého komunikátoru se systémem Windows Mobile najdete u displeje hodnotu pouhých 65k barev, když dnes většina moderních obrazovek u obyčejných mobilních telefonů disponuje až čtyřikrát větší barevností (65536 versus 262144 barev). Proč tomu tak je, si vysvětlíme v tomto článku. K porozumění je potřeba vědět, jak vlastně PDA zobrazuje barvy. 65536 barev rozhodně není náhodné číslo. Jedná se o počet možných kombinací 16 bitových informací (\“bit“ je číslo, které nabývá hodnot 1 nebo 0).

Každý bod na obrazovce, tedy pixel, je reprezentován 16 bity. Těchto 16 bitů udává barvu pro onen pixel. Přesněji jde o 5 bitů červené, 6 bitů zelené a 5 bitů modré barvy. Toto složení se také nazývá jako RGB 565. Pokud bychom měli zařadit do škály barevných formátu i 18 bitovou hloubku (to znamená 262 tisíc barev), jednalo by se o 6 bitů na každou barvu. Tedy RGB 666.

Další věc, kterou je třeba pochopit je, jak proměnit bit na obrazovce v barvu. Představme si například klasické Pocket PC s rozlišením displeje 240×320 obrazových bodů (pixelů) s barevností 65536 barev. To znamená 320 řádků a 240 obrazových bodů, kde každý z nich má 16 bitů představujících barvu. Všechny tyto informace jsou uloženy v paměti známé jako frame buffer. Hardware obrazovky tedy vezme obsah tohoto frame bufferu a zkonvertuje ho přímo na obrazovku. Chcete změnit obraz, pak musíte změnit obsah frame bufferu.

Potřebujeme tedy 16 bitů pro každý pixel, a celkem máme u QVGA displeje 240×320 bodů. 16 bitů jsou 2 byty, což znamená celkový počet 153600 bytu, tedy zhruba 150kB z RAM použité pro vykreslení obrazovky. Jednoduchý vzorec pro výpočet velikosti frame bufferu tedy je (A x B) x C, kde A je osa X, B je osa Y a C je počet bytů v bitové hloubce (například v 16 bit jsou byty 2). Z přiloženého grafu jsou vidět rozdíly.

Závislost bitové hlouby a rozlišení na velikosti frame bufferu 

Z grafu je patrné, že rozdíl mezi jednotlivými hloubkami vůbec není malý, zvláště pak v případě 16 versus 32 bit, kdy hodnoty dosahují dvojnásobku hodnot původních. Obrovský rozdíl je také u QVGA a VGA displejů, kde je paměťová náročnost VGA zhruba čtyřnásobná.

Zajímavost: Tímto zároveň vyvracíme mýtus o tom, že VGA není o nic víc náročnější, než QVGA. Zatímco QVGA displej spotřebuje na jedno překreslení obrazovky 153,6 kB, tak VGA potřebuje 4× tolik, tedy 614,4 kB. Z toho vyplývá, že když si pustíte film při standardních 25 FPS, vaše Pocket PC s VGA displejem a 64 MB RAM bude muset začít přepisovat obsah framebufferu už po nějakých 9 vteřinách, tedy za předpokladu, že budete mít celých 64 MB volné RAM k dispozici. U QVGA displeje by se jednalo už o celých 16 vteřin, což dává procesoru dostatek času na další operace. Rychlost zařízení s VGA displejem tedy silně ovlivňuje procesor a rychlost vnitřní sběrnice společně s RAM. Proč tedy výrobci stále vyrábí zařízení s VGA displeji a 64 MB RAM? Jednoduše pro to, že zřejmě jsou jejich produkty určeny nenáročným uživatelům, kteří nekladou až takový důraz na multimédia, ale spíše na statické zobrazení obrazovky Dnes a sem tam nějaké to tapnutí, nebo že by doprodávali staré chipsetové zásoby? :-)

Moderní procesory jsou schopné pracovat s 32 bity, což je optimální pro práci s 16 a 8 bitovou hloubkou barev. Proč tedy ne 262144 barev, respektive 18 bitů?
Protože je pixel 16 bitový a procesor zvládá 32 bitů, stihne zapsat 2 pixely najednou během jednoho cyklu. Co by se ale stalo, pokud by byl pixel 18 bitový? První pixel by prošel bez problémů, druhý ale ne a čekal by až na další cyklus. Tím pádem 15 z každých 16 pixelů by bylo vykreslováno způsobem, který by byl naprosto neefektivní. 18 bitů si prostě s 32 bitovým systémem moc rozumět nebude. K pochopení vám jistě pomohou následující tabulky:

Srovnávací tabulka 

Každá barva znázorňuje 1 pixel. Je jasně patrné, že u 32 a 16 bitů nezůstává žádný nevyužitý bit. Z uvedeného také vyplývá, že použití 24 bitů je pouze o trochu nevýhodnější než při použití 16 bitů. Nevyužitých bitů je zde 8 a je to tedy stále podstatně výhodnější, něž použití 18 bitů, kde zůstane v jednom cyklu celých 14 nevyužitých bitů. Z tohoto důvodu prostě formát \“RGB 666″ neexistuje. Není nativně podporován v žádném operačním systému (CE, XP, Mac, Unix, Palm či Symbian).

Ale počkat, teď vám to nesedí? Všude přece vídáme reklamy na mobilní telefony vybavené displeji s 262144 barvami. Jak je to tedy možné? Musí přece podporovat 18 bitovou barevnou hloubku, ale není tomu tak. Tato zařízení podporují 24 bitovou hloubku, ale zahodí 6 z 8 bitů navíc, což jsme si vysvětlili o odstavec výše. Existují dva způsoby, jak vytvořit 24 bitové barvy. V obou případech je k dispozici 8 bitů pro červenou, zelenou a modrou, tedy \“RGB 888\“, kde v případě prvním má každý pixel 24 bitů a případě druhém má bitů 32, zbylých 8 je pak pro transparentnost nebo jednoduše zůstanou nevyužity.

32 bitů je skvělá hodnota pro použití s procesorem. Znamená to jeden pixel na každých 32 bitů. 24 bitů už není tak dobré jako použití 32 bitů, ale je to podstatně lepší než použití 18 bitů. Při použití 24 bitů využijeme tedy pouze 18, čímž plýtváme pouze 6 bity z každých 24 oproti 14 bitů z každých 32 bitů. Je to zkrátka pořádná matematika.

 

- 

Tento displej firmy SparkFun je typickým příkladem využití 18 bitové hloubky. Při parametrech QVGA (35×45mm) využívá 18 bitové rozhraní. Z výše uvedeno tedy vyplývá, že v 24 bit hloubce bude vše pomalejší než na 16 bitech. Windows CE zvládá obě formy (24 i 32 bitů). Pokud OEM výrobce tedy opravdu chce využít 18 bitů na displeji, má možnost. Otázkou ale zůstává, je opravdu potřeba tolik barev? Je vůbec k něčemu dobré investovat do takového vývoje, když lze stupínek přeskočit a pokračovat na lepší hodnoty?

Kdy tedy budeme mít na displejích našich komunikátorů více barev? Nejdříve potřebujeme obrazovky, které využijí plných 24 bitů. 24 bitů je funkčně stejně \“rychlých“ jako 18 bitů, a 18 bitů je zase opravdu minimální rozdíl oproti 16 bitům. Nemá tedy smysl snažit se dosáhnout 18 bitové hloubky, ale mnohem výhodnější je dosažení 24 bitové. Pak také potřebujeme dostatečně výkonná zařízení, která dnes na trhu opravdu nejsou. Stále nás omezuje velikost operační paměti RAM a rychlost procesoru.

Nové displeje přitom jsou již dávno k dispozici. Otázkou tedy zůstává, proč je výrobci neimplementují? 24bitové displeje s přímou podporou tohoto rozhraní a také podporou mobilních CPU, tedy včetně různých ARM, vyrábí firma Sharp již poměrně dlouhou dobu. Na obrázku vidíte displej pro Sony PSP s 24 bitovou sběrnicí, který je možné doplnit o dotykovou vrstvu (opět od stejného výrobce).

- 

Po softwarové stránce tedy není co řešit. Operační systémy již dovedou využívat celou škálu bitových hloubek; tedy 1, 2, 4, 8, 16, 24 i 32 bitovou podporu, a to včetně Windows CE. Zavést proto podporu do Windows Mobile by neměl být ze strany Microsoftu žádný problém. Jisté omezení by bylo ze začátku u autorů aplikací, kteří by museli svůj program naučit pracovat s novou barevnou hloubkou. Nezbývá tedy než doufat, že si této skutečnosti výrobci brzy uvědomí a například namísto nekvalitních a mnohdy i nevyužitelných fotoaparátů, začnou vybavovat své komunikátory lepšími displeji. Displej je přece jenom u komunikátorů, a zvláště těch s dotykovým rozhraním, jednou z nejdůležitějších částí.

kissman

13 komentářů

  1. bkf1 (neregistrovaný)

    nevim ale me je celkem jedno jake ma displej barevne podani (pokud to neni nejaka hruza) ale spis jaka je citelnost na dennim svetle a to pri snizenem jasu (nechci mit porad displej ohulenej na max aby mi to zralo baterku jak cokl uzeny)…

  2. Lausien (neregistrovaný)

    Souhlasim. Nepotrebuju milion barev, na tech 65k si v poho zahraju i hry, vidim obrazky, atd… A hlavne HW to zvlada. Az na to bude zelezo, tak klidne, proc ne. Ale do ty doby myslim, ze soucasne displaye staci bohate, hlavne kdyz jsou citelne.

  3. kissman (neregistrovaný)

    Pokud si dobře pamatuju, tak takováto situace byla v případě Motoroly MPx220, kdy HW displej byl schopny zvládat 262k barev, avšak omezení Windows Mobile 2003 SE mu dovolovali zobrazit 65k barev. Toto se bohužel děje dodnes. Na HP bussines foru jsem už našel také podobné příspěvky ohledně nových displejů u HP PDA. O dalších případech nevím
    Jan Pichrt

  4. narg (neregistrovaný)

    taky se nekde resilo, ze sice displej zvlada 65k/16mili barev, ALE NE SOUCASNE najednou, taky dobrej figl na lidi :D

  5. kissman (neregistrovaný)

    Článek nemá za úkol řešit jestli 262k barev je využitelné Každopadně co píšeš je pravda, málokteré foto má celý rozsah odstínů. Pakliže ale vyfotíš foto které bude obsahovat body mimo spektrum zobrazovatelnych odstínu tak se kvalita fotografie rapidně sníží
    Jan Pichrt

  6. BEZY (neregistrovaný)

    64 mB RAM? To mají 64 mili bajtů RAM? Jinak pěkný článek

  7. RDT (neregistrovaný)

    Wow, to je komentářů . Ráno ještě nebyl žádný. Jinak: Perfektní článek. Opravdu málokdy se mi stane, že bych se po přečtení nějakého článku dozvěděl něco nového, tady jsem si dokonce některé vědomosti doplnil. Pro velké množství začínajících uživatelů, kteří pojem „barevná hloubka“ téměř nechápou (kromě toho, že je to „počet barev“) bude velice poučný.
    BTW: Více, co je největší fór? Displeje třeba s 16ti miliony barev. Lidské oko totiž vnímá maximálně 1 .

  8. Standa (neregistrovaný)

    Pěkný článek, tenhle problém mě vždycky zajímal, ale byl jsem líný si o něm něco najít

  9. kissman (neregistrovaný)

    To co jste napsal je shrnutí několika vět z článku do obsahově jediné – všichni to chcem co nejlevnější tak to přece nebudem vyrábět když je to drahý. To je naprostý nesmysl. Pakliže výrobce takové zařízení s kvalitním displejem vyrobí, svoje zákazníky si jistě najde. Tak jako si lidé kupují zařízení kvůli QWERTY klávesnici či čtečce EAN kódů a jsou ochotní za to obětovat větší sumu pěnez, stejně tak by to bylo i u displeje. Navíc, cenové rozdíly takových displejů jsou naprosto zanedbatelné.

  10. monikash (neregistrovaný)

    Omezení RGB565 si vyžádal Vatikán, jinak by bylo RGB dílo ďáblovo.
    Ale jinak souhlasím s přispěvovateli. Na nekvalitním malém displeji je jedno jestli je tam 56k nebo 8M barev. Na ikonky, fonty v menu, psaní textu a volání to přece úplně stačí.

  11. jenda.69 (neregistrovaný)

    Na Voxíkovi mam teda taky jenom 65k barev, ale ten displej zobrazuje tak nádherně, že jsem nikde tak krásnej obraz neviděl.
    Ale upřímně je to fakt hrozný, člověk s tim ani nemůže dělat špičkovou grafiku a podobně, co?

  12. Jiří Hrma (neregistrovaný)

    Bezy: Díky za upozornění, správné označení jednotek (MB) opraveno

  13. wrana (neregistrovaný)

    Vyborny clanek, moc diky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *