Kódování obrazu a zvuku

Přejít ke cvičením na toto téma »

Abychom mohli na počítači pracovat s multimediálním obsahem (obraz, zvuk, video), musíme jej umět zakódovat pomocí čísel.

Pro kódování obrazu se používají dva základní způsoby. V bitmapové grafice pracujeme s obrázkem jako s mřížkou pixelů, kde každý z nich má přidělenou svoji barvu. Ve vektorové grafice jsou obrázky tvořeny z geometrických útvarů (úsečky, kružnice a podobně). Každý z těchto způsobý má své využití a je důležité mezi použitím bitmapové a vektorové grafiky dobře rozlišovat (např. fotografii většinou reprezentujeme bitmapově, kdežto logo firmy vektorově).

Při práci s obrazem potřebujeme umět kódovat barvy. To lze dělat více různými způsoby. Jedním z nejčastěji používaných je RGB kódování.

Zvuk se kóduje jako posloupnost apmlitud (výchylek) zvukového signálu.

V bitmapové (rastrové) grafice jsou obrázky ukládány jako mřížka pixelů. Pixely jsou body, které mají danou polohu v obrázku a barvu. Barvy v pixelech kódujeme nějakým předem daným způsobem, často se používá např. RGB model. Čím jemnější je mřížka (čím víc pixelů obrázek obsahuje), tím kvalitnější a detailnější bude obraz. Protože pixely nelze dále rozdělovat, při zvětšování bitmapového obrázku se budou zvětšovat i pixely a dojde ke ztrátě kvality. Na obrázku vidíme, jak je možné uložit obrázek kruhu na malém počtu pixelů.

Barevná hloubka je počet barev, kterých může nabývat jeden pixel. Čím větší je barevná hloubka, tím více barev máme k dispozici a obraz tak může být kvalitnější. Na obrázku je vidět rozdíl mezi situacemi, kdy jsou k dispozici 2 barvy, 4 barvy a 256 barev.

Velikost bitmapového obrázku je určena počtem pixelů. Obrázek s rozměry 1024 × 1024 obsahuje 1024 \cdot 1024 (přibližně milion) pixelů a jeho velikost je 1 Mpx (megapixel). Rozlišení je hodnota, která říká, jak detailní je obraz. Udává se v jednotkách DPI (dots per inch).

Ve vektorové grafice jsou obrázky tvořeny z geometrických útvarů, například mnohoúhelníků, kružnic, křivek, lomených čar aj. Vektorově je možné popsat i text. Jednotlivé objekty jsou popsány různými číselnými a textovými parametry (např. poloha v souřadnicích, velikost, barva). Abychom si vektorový obrázek mohli zobrazit, počítač musí pokaždé interpretovat textový popis objektů a obrázek vykreslit. Díky vektorovému popisu objektů lze vektorové obrázky snadno zvětšovat a zmenšovat, aniž by byla jakkoli ovlivněna kvalita obrazu.

Vektorové obrázky se často ukládají ve formátu SVG. Textová reprezentace jednoduchého tvaru ve formátu SVG může vypadat následovně.

Prvně specifikujeme, o jaký typ objektu jde: circle znamená anglicky kruh. Následují různé parametry, které určují, jak přesně má tento kruh vypadat. Parametry cx a cy definují pozici středu kruhu na souřadnicích (60, 60) v obrázku. Parametr r určuje poloměr kruhu a v parametru fill je specifikována barva výplně jako zelená. Vykreslený obrázek tedy bude vypadat takto:

V SVG formátu lze kódovat i mnoho jiných typů objektů, například rect (rectangle = obdélník), polygon (mnohoúhelník) nebo line (linka). U každého typu objektu specifikujeme různé parametry – velikost obdélníku například určíme výškou a šířkou. Pokud však budeme vytvářet vlastní vektorové obrázky, nemusíme vše psát textově – existují počítačové programy, které nám umožní pouze pracovat s objekty a textový kód napíší za nás.

Bitmapová vs. vektorová grafika

Přejít ke cvičením na toto téma »

Existují 2 základní typy kódování obrazu: vektorovábitmapová grafika. Bitmapové obrázky se skládají z pixelů (barevných bodů), vektorové z geometrických objektů. Formáty využívající bitmapovou grafiku jsou například BMP, JPG, PNG a GIF. Nejpoužívanějším vektorovým formátem je SVG, vektorovou reprezentaci používá také formát PDF.

Bitmapová grafika je ideální pro ukládání fotografií, protože digitální fotoaparáty také snímají obraz jako mřížku barevných bodů. Vektorová grafika je pro tento účel naopak nevhodná, protože fotografie bývá velmi těžké popsat pomocí geometrických útvarů.

Pro obrázky složené z geometrických tvarů (např. loga, diagramy, ilustrace) je naopak vhodná vektorová grafika. Její zásadní výhodou je dobrá škálovatelnost (snadné zvětšování a zmenšování obrázků bez vlivu na jejich kvalitu). Bitmapová grafika je vždy omezená počtem pixelů, nemůžeme tedy získat větší detaily než jednotlivé pixely. Geometricky popsané útvary však můžeme zvětšovat libovolně. Proto se vektorová grafika často využívá i ve webdesignu, protože u webových stránek je vhodné, aby se velikostí uměly přizpůsobit různým zařízením a velikostem obrazovek.

Na obrázku můžeme vidět rozdíl při zvětšování. Levý trojúhelník byl uložen bitmapově, pravý vektorově.

Pokud obrázek obsahuje jednoduché tvary, obsadí jeho vektorová reprezentace méně místa v paměti počítače než bitmapová. Pro velmi členité tvary nebo pro fotografie však bude vektorový popis natolik složitý, že velikost bitmapového souboru bude menší.

Reprezentace barev je klíčová pro mnoho oblastí, např. webdesign, digitální fotografie, video, tisk. Existuje několik různých barevných modelů, z nichž nejčastější jsou RGB, CMYK a HSL.

RGB (Red-Green-Blue) model se používá pro digitální displeje, kde se barvy zobrazují jako kombinace tří základních barev – červené, zelené a modré. Každá z těchto barev má číselnou hodnotu v rozsahu 0–⁠255. RGB kódy se často zapisují pomocí hexadecimálních čísel. Protože toto kódování je velmi často využíváno v grafických programech, hodí se mít alespoň základní intuici, jakým barvám odpovídají různé RGB kódy.

CMYK (Cyan-Magenta-Yellow-Key) model se používá pro tisk, kde se barvy tvoří mícháním tří základních barev – azurové, purpurové a žluté – s černou.

HSL (Hue-Saturation-Lightness) model umožňuje reprezentovat barvy pomocí tří parametrů – odstín, sytost a jas. Odstín se mění v rozsahu 0–⁠360 stupňů, sytost určuje intenzitu barvy a jas určuje světlost nebo tmavost barvy. Tento model umožňuje jednoduché úpravy barev, jako je změna jasu nebo sytosti.

Barevný model RGB je způsob reprezentace barev pomocí tří složek: červená (red, R), zelená (green, G), modrá (blue, B). Jde o aditivní způsob míchání barev – jednotlivé složky barev se sčítají a vytvářejí světlo větší intenzity (světlejší barvu).

Při použití RGB modelu tedy barvu zapisujeme jako trojici čísel. Pro zápis hodnoty jednotlivých složek se používá mnoho různých zápisů. Například oranžovou barvu můžeme zapsat jako:

  • RGB(255, 160, 64) = dekadický zápis osmibitového čísla
  • #FFA040 = hexadecimální zápis
  • RGB(100%, 63%, 25%) = barevné složky v procentech
  • RGB(1, 0.63, 0.25) = barevné složky jako čísla od 0 do 1

Často používaný zápis je dekadický zápis osmibitového čísla, tj. číslice od 0 do 255.

Příklady barev z RGB zápisu

RGB(0, 0, 0) černá
RGB(255, 0, 0) červená
RGB(100, 0, 0) tmavá červená
RGB(0, 255, 0) zelená
RGB(0, 0, 255) modrá
RGB(255, 255, 0) žlutá
RGB(255, 0, 255) purpurová
RGB(0, 255, 255) azurová
RGB(150, 150, 150) šedá
RGB(255, 255, 255) bílá

Základní principy

Zvuk je mechanické vlnění prostředí (typicky vzduchu) o frekvenci asi 20 Hz – 20 000 Hz. Vyšší frekvence sluch vnímá jako vyšší tóny.

Při nahrávání zvuku do digitálního zařízení je mechanické vlnění vzduchu převedeno mikrofonem na elektrické napětí. A/D převodník tento spojitý signál převede na binární data. Při přehrávání zvuku se data D/A převodníkem přemění na analogový signál. Jeho výkon se zvětší zesilovačem a může dojít k jeho přehrání reproduktorem, který chvěním membrány opět rozechvěje vzduch.

Kódování zvukové vlny

Vlnění vzduchu je spojité, v každém okamžiku má určitou hodnotu okamžité výchylky. Souvislý je i analogový signál, který je vytvářen např. mikrofonem. Spojitý průběh zvukové vlny je na obrázku znázorněn oranžově. Vodorovná osa vyjadřuje čas, svislá osa okamžitou výchylku signálu.

Digitální zařízení nedokážou zpracovat informaci o zvuku v nekonečném množství okamžiků. Při převádění analogového signálu na digitální se tedy provádí tzv. vzorkování – signál se převede na nespojitý (diskrétní), ten během určitého času vystřídá omezený počet hodnot (na obrázku vyjádřeno modrými body). To souvisí se vzorkovací frekvencí, např. při vzorkovací frekvenci 48 kHz se během sekundy vystřídá 48 000 hodnot vzorku.

Ani okamžitá výchylka signálu nemůže mít neomezené množství hodnot, proto se provádí tzv. kvantování, které souvisí s rozlišením vzorku. Např. rozlišení (vzorku) 4 bit znamená, že okamžitá výchylka vzorku může nabývat 2⁴ = 16 stavů (vizte obrázek).

Při ztrátové kompresi má význam hodnota bitrate (značí přenosovou rychlost). Čím větší je bitrate, tím větším množstvím dat je popsána sekunda zvukového záznamu (např. 320 kb/s je nejvyšší bitrate u souborů mp3).

Kódování tónů

Kromě kompletního záznamu zvukových vln (popsaného výše) může být zvuk reprezentován jako sekvence tónů. To se využívá zejména při skládání hudby či v souvislosti s rozhraním MIDI. V rámci sekvence mohou mít tóny např. různou výšku, délku, hlasitost aj. Těmto tónům je potom „přiřazen“ určitý zvuk, ať už ve formě vzorku či generovaný syntezátorem. Zvuk reprezentovaný jako sekvence tónů (ve formátu MID) se historicky používal např. jako hudební doprovod počítačových her. V současnosti se využívá spíše pro práci se zvukem, výsledné skladby jsou následně vyexportovány ve formě běžného záznamu digitálního signálu.

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence