Když během půl roku dostanete e-mailem pětkrát stejný dotaz, nutně vás napadne, že to, co vy považujete za samozřejmost, všem ostatním asi tak úplně jasné nebude. Onen dotaz zněl asi takto:
„Když do svého fotoaparátu vložím prázdnou paměťovou kartu, ukazuje mi počitadlo na displeji, že můžu nafotit třeba 800 snímků. Ale ve skutečnosti jich pokaždé udělám klidně třeba i o polovinu víc. Proč počitadlo fotek neukazuje přesně? Když jsem fotil na kinofilm, tak jsem vždycky přesně věděl, na čem jsem. Teď je to sázka do loterie.“
A jeden čtenář pak svůj e-mail ještě zakončil zvídavým dotazem:
„To si vážně v takové firmě, jako je Nikon, neumí přesně spočítat velikost dat, který z jejich foťáků lezou?“
Světe div se, ale neumí. A neumí to ani žádné jiné konkurenční firmy. Neumí to nikdo. Jak je to možné? Obrazová digitální data zkrátka mají proměnlivou velikost…

Tajemství komprese
Celý problém nepřesnosti počitadla spočívá v technologii, kterou je komprese. To, že jsou komprimovány soubory typu JPEG, ví každý, u moderních Nikonů jsou ale komprimovány také RAWy (byť na rozdíl od JPEGů je to komprese bezztrátová). Jak pracuje takový komprimační algoritmus? Je to poměrně složitý postup, takže chcete-li se o něm dozvědět více – a hlavně exaktně – mrkněte například na Wikipedii. Já to vezmu velmi zjednodušeně:
Kodek JPEGu využívá vlastnosti lidského oka či zraku, který je velmi citlivý na změny v jasové složce, kdežto rozdíly v definici barevnosti snáze přehlédne. Proto se obraz nejprve převede do barevného modelu YCbCr, aby mohly být jas a barevnost zpracovávány odděleně. Barvonosné složky Cb a Cr se následně podvzorkují, což znamená první krok ztrátové komprese. Poté se provede tzv. diskrétní kosinová transformace (DCT) a následně kvantizace bloků DCT pomocí kvantizačních tabulek. Kvantizační tabulky jsou vytvořeny tak, aby obsahovaly nízké hodnoty u stejnosměrné složky i koeficientů amplitud nízkých frekvencí a naopak vysoké hodnoty u koeficientů amplitud vysokých frekvencí.
To už jsem ale opsal z chytré knížky, takže stop! Postup tvorby souboru JPEG sice ještě není u konce, ale nás zajímají právě poslední dvě věty. Že je nechápete? Přeložím je do srozumitelnějšího jazyka. Jednoduchý obraz s velkými víceméně jednolitými barevnými plochami lze právě díky oddělení barvonosné složky komprimovat účinněji, kdežto obraz plný jemných detailů, takříkajíc velmi škálovaný nelze při požadavku zachování stejné kvality zmenšit kompresí stejně účinně. Jinak řečeno: to, co se u prvního příkladu může „ztratit“ – protože pořád je řeč o ztrátové kompresi –, by u druhého příkladu vedlo ke značnému zhoršení kvality. A proto je každý soubor jinak velký.
Z praxe
Ukažme si to na příkladu. První fotografie obsahuje velké rozlehlé jednolité plochy, žádné textury, má málo barev. Oproti tomu druhý snímek je plný detailů, obsahuje jemné textury olistěných stromů, popředí i pozadí je velmi členité.
Z výše uvedeného textu tedy logicky vyplývá, že druhá fotografie musí mít větší datový objem. A je tomu tak. První snímek má (v originále) velikost 6,7 MB, druhý je více než dvojnásobně velký – 17,5 MB. Oba jsou samozřejmě pořízeny stejným fotoaparátem se stejným nastavením kvality JPEG. Fotil jsem zároveň i do RAWu, takže nyní můžete porovnat také tento formát: 1. snímek – 26,7 MB, 2. fotografie – 32,2 MB. Čili i RAWy mají proměnlivou velikost, byť u nich tak velké rozdíly jako u JPEGu nebývají.
Počítejte s průměrem
Jaký je tedy závěr? Ne, Nikon ani nikdo jiný neumí poskytnout přesné údaje počitadla snímků na fotoaparátu, protože je každá fotografie zkrátka jiná a vzhledem ke kompresi dat nemá jednotný datový objem. Počitadlo je tedy nastaveno na nějakou průměrnou velikost a takto poskytuje pouze a jen… orientační údaje.
Jeden komentář
Pořád lepší, než naše Škoda Octavia. Natankuju plnou nádrž a tvrdí mi, že ujedu 1187 km. Ve skutečnosti to je ale obvykle kolem 800… Takže opačný trend množství fotek na kartě obvykle potěší :-) Petr