Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| msz:komprese_obrazu [02. 06. 2012, 10.12:30] – [GIF] wiki pitel | msz:komprese_obrazu [08. 10. 2026, 23.00:43] (aktuální) – odstraněno - upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== Komprese obrazu ====== | ||
| - | Motivace: snaha o zmenšení velikosti souborů např. pro přenos po síti, archivaci apod. | ||
| - | ===== Základní přístupy ke kompresi ===== | ||
| - | Nejprve je potřeba zvolit v jaké oblasti chceme komprimovat: | ||
| - | * Prostorová – statické obrázky (RGB, YCbCr) | ||
| - | * Frekvenční – statické obrázky (FFT, DCT, DWT) | ||
| - | * Časová – video | ||
| - | |||
| - | * Ztrátová – využívají se znalosti o lidském oku, které nejvíce vnímá jasu než barvu. | ||
| - | * Bezstrátová – algoritmy pro kódovaní běžných dat (RLE, Huffman, deflate, LZ77). | ||
| - | |||
| - | ===== Základní kompresní algoritmy ===== | ||
| - | ==== JPEG ==== | ||
| - | {{ http:// | ||
| - | [[wp> | ||
| - | - Obrázek je převeden do barevného modelu [[wp> | ||
| - | - Jelikož oko vnímá více jas než barvy, Cb a Cr můžeme podvzorkovat = snížit přesnost informací o barvě (Chroma Subsampling) | ||
| - | - Celý obrázek je rozdělen do bloků o velikosti 8 × 8 pixelů. A pro každou ze složek (Y, Cb a Cr) se provede Diskrétní cosinová transformace (DCT). DCT je dvourozměrnou obdobou Fourierovy transformace. Blok 8 × 8 se tak vyjádří jako složení signálů o různé frekvenci. | ||
| - | - Nad bloky se provede kvantizace. Lidský zrak je citlivý k relativně malé změně v jasu nebo v barvě na poměrně velké ploše (nízké frekvence). V rozlišování konkrétní síly rychle se měnícího jasu (vysokofrekvenční změny) je však mnohem horší. To nám umožňuje informace o takovýchto změnách vynechat. Výsledek DCT se vydělí kvantizační maticí (tabulkou) a zaokrouhlí. Hodnoty v kvantizační tabulce, kterými se budou násobit hodnoty vysokofrekvenčních změn, jsou takové, aby po vydělení původní hodnoty hodnotou z tabulky a zaokrouhlení vyšla nula nebo malé číslo. | ||
| - | - Data bloků se dále v zig-zag pořadí komprimují bezeztrátově nejprve pomocí [[wp> | ||
| - | |||
| - | Dekódování probíhá inverzně (problém kostičkování). | ||
| - | |||
| - | JPEG komprese dosahuje kompresních poměrů od 10:1–20:1 (high) až po 60:1 – 100:1 (low). | ||
| - | ==== GIF ==== | ||
| - | [[wp> | ||
| - | |||
| - | Používá [[wp> | ||
| - | - Inicializuj slovník na všechny řetězce dlouhé jeden znak. | ||
| - | - Najdi nejdelší možný řetězec ve slovníku, který odpovídá aktuálnímu vstupu. | ||
| - | - Zakóduj řetězec indexem ze slovníku. | ||
| - | - Přidej řetězec + následující znak ze vstupu do slovníku. | ||
| - | - Běž na krok 2. | ||
| - | |||
| - | Typický kompresní poměr je 4:1–10:1. | ||
| - | ==== PNG ==== | ||
| - | [[wp> | ||
| - | |||
| - | PNG používá dvoustupňovou bezeztrátovou kompresi: | ||
| - | - Před samotnou kompresí se snaží objevit běžné vzory (např. barevné pruhy, gradienty). Tento krok se nazývá filtering. | ||
| - | - Komprese – PNG ke kompresi používá metodu [[wp> | ||
| - | |||
| - | Kompresní poměr typicky o 10–30 % lepší než GIF. | ||