Komprese

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Pojmy: Doplněn popis kompresního poměru.)
(Doplněny úkoly a odkaz na Úkoly vrstev ISO/OSI.)
 
(Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.)
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Sítě]][[Category:Informatika]][[Category:Bezpečnost]][[Category:CRI]][[Category:Komprese]]
 
[[Category:VSE]][[Category:Sítě]][[Category:Informatika]][[Category:Bezpečnost]][[Category:CRI]][[Category:Komprese]]
  
== Definice ==
+
== Principy ==
 +
 
 +
=== Definice ===
 
* Kompresní metody: Postupy, vedoucí ke snížení objemu dat při zachování podstatné informace.
 
* Kompresní metody: Postupy, vedoucí ke snížení objemu dat při zachování podstatné informace.
 +
 +
=== Model dat ===
 +
* Kompresi můžeme využít pouze tehdy, pokud umíme odlišit „podstatnou“ informaci od zbytku.
 +
* Musíme tedy vědět nějaké další informace o datech, které komprimujeme.
 +
* Pojem „model dat“ označuje souhrn pravidel, o kterých víme, že jsou v datech dodržena.
 +
 +
<div class="Priklad">
 +
; Příklad &mdash; Chceme komprimovat posloupnost nul a jedniček
 +
# Pokud o datech nic nevíme, pak:
 +
#* nevíme, co z těchto dat můžeme „ztratit“, aniž bychom poškodili původní informaci.
 +
#* Můžeme si ale všimnout, že se často opakují některé posloupnosti nul a jedniček a nahradit je jinými, kratšími posloupnostmi (za cenu toho, že jiné, málo se opakující, nahradíme delšími posloupnostmi).
 +
#* Naším „modelem dat“ tedy bude pravděpodobnost výskytu jednotlivých posloupností.
 +
#* ''(Pokud by však pravděpodobnosti výskytu jednotlivých posloupností byly stejné, komprese nám nic nepřinese.)''
 +
# Pokud bychom ale věděli, že naše posloupnost nul a jedniček nese informace o barvách pixelů na fotce...
 +
#* pak víme, že tato data jsou již zatížena chybou při digitalizaci
 +
#* a že na fotce nejspíš sousední pixely budou mít „podobné“ barvy.
 +
#* Můžeme tak postavit mnohem přesnější model dat a vylepšit použitý kompresní algoritmus.
 +
</div>
  
  
Řádka 24: Řádka 44:
  
 
=== Statistické × slovníkové metody ===
 
=== Statistické × slovníkové metody ===
 +
; Statistické metody
 +
* Nahrazují jednotlivé hodnoty symbolů posloupností bitů.
 +
* Můžeme si představit třeba tabulku: E => 01, A => 100, T => 101,...
 +
* Vychází z toho, že pravděpodobnost výskytu znaků se dá spočítat a není stejná.
 +
* Pro běžná počítačová data malý kompresní poměr, jsou spíše součástí jiných metod.
 +
; Slovníkové metody
 +
* Nahrazují celé posloupnosti symbolů (slova) za posloupnosti bitů.
 +
* Převodní tabulka je větší, ale můžeme docílit lepšího kompresního poměru.
 +
* Do této skupiny patří většina běžně používaných metod.
  
=== Statické × dynamciké metody ===
+
=== Statické × dynamické metody ===
 
+
; Statické metody
 +
* Po celou dobu komprese datového souboru se převodní tabulka nemění.
 +
* Většinou se převodní tabulka musí přiložit k souboru.
 +
* Často je třeba nejprve předzpracovat statistiku výskytu znaků.
 +
; Dynamické metody
 +
* Upravují převodní tabulku v průběhu komprese.
  
 
== Příklady metod ==
 
== Příklady metod ==
Řádka 37: Řádka 71:
 
* Tvoří základ algoritmů programů RAR a GZIP
 
* Tvoří základ algoritmů programů RAR a GZIP
 
* Autoři Lempel a Ziv, Izrael, 1978.
 
* Autoři Lempel a Ziv, Izrael, 1978.
 +
 +
== Úkoly ==
 +
<div class="Ukol">
 +
# Srovnejte kompresní poměr programů ZIP (implementace ve vašem operačním systému) s&nbsp;programem RAR či 7zip. Jako stestovací použijte složku s&nbsp;několika textovými dokumenty a dokumenty ve Wordu či LibreOffice.
 +
# Porovnejte s&nbsp;předchozím příkladem kompresní poměr v&nbsp;případě, že komprimujete složku s&nbsp;některým programem ve složce ''Program Files'' (či jiné pro váš operační systém).
 +
# Porovnejte s&nbsp;předchozím příkladem kompresní poměr v&nbsp;případě, že komprimujete složku obrázky JPG či PNG.
 +
# Vezměte si tři fotky ze svého mobilu. Chcete je předat kolegovi tak, aby byla délka zprávy (množství byte) co nejmenší. Kolega si obrázky chce prohlédnout na FullHD monitoru (1920×1080 px), žádné další operaci s nimi dělat nepotřebuje.
 +
# Vezměte si tři screenshoty ze své obrazovky. Jedná se o výřezy jednoho okna, které zabírá třeba čtvrtinu plochy obrazovky. Chcete je předat kolegovi tak, aby je mohl vložit do webového návodu. Zároveň chcete, aby zabíraly co nejméně místa (co nejmenší počet byte).
 +
</div>
 +
 +
== Související stránky ==
 +
* [[Úkoly_vrstev_ISO/OSI]]

Aktuální verze z 25. 3. 2021, 08:38


Obsah

Principy

Definice

Model dat

Příklad — Chceme komprimovat posloupnost nul a jedniček
  1. Pokud o datech nic nevíme, pak:
    • nevíme, co z těchto dat můžeme „ztratit“, aniž bychom poškodili původní informaci.
    • Můžeme si ale všimnout, že se často opakují některé posloupnosti nul a jedniček a nahradit je jinými, kratšími posloupnostmi (za cenu toho, že jiné, málo se opakující, nahradíme delšími posloupnostmi).
    • Naším „modelem dat“ tedy bude pravděpodobnost výskytu jednotlivých posloupností.
    • (Pokud by však pravděpodobnosti výskytu jednotlivých posloupností byly stejné, komprese nám nic nepřinese.)
  2. Pokud bychom ale věděli, že naše posloupnost nul a jedniček nese informace o barvách pixelů na fotce...
    • pak víme, že tato data jsou již zatížena chybou při digitalizaci
    • a že na fotce nejspíš sousední pixely budou mít „podobné“ barvy.
    • Můžeme tak postavit mnohem přesnější model dat a vylepšit použitý kompresní algoritmus.


Pojmy

Kompresní poměr

  • Pro bezeztrátovou kompresi a obecná data je typický kompresní poměr 2:1.
  • Pro ztrátovou kompresi (obvykle obrázky, video atd.) je typický kompresní poměr cca 10:1.

Rozdělení kompresních metod

Ztrátové × bezeztrátové

Statistické × slovníkové metody

Statistické metody
Slovníkové metody

Statické × dynamické metody

Statické metody
Dynamické metody

Příklady metod

LZ 77
LZ 78

Úkoly

  1. Srovnejte kompresní poměr programů ZIP (implementace ve vašem operačním systému) s programem RAR či 7zip. Jako stestovací použijte složku s několika textovými dokumenty a dokumenty ve Wordu či LibreOffice.
  2. Porovnejte s předchozím příkladem kompresní poměr v případě, že komprimujete složku s některým programem ve složce Program Files (či jiné pro váš operační systém).
  3. Porovnejte s předchozím příkladem kompresní poměr v případě, že komprimujete složku obrázky JPG či PNG.
  4. Vezměte si tři fotky ze svého mobilu. Chcete je předat kolegovi tak, aby byla délka zprávy (množství byte) co nejmenší. Kolega si obrázky chce prohlédnout na FullHD monitoru (1920×1080 px), žádné další operaci s nimi dělat nepotřebuje.
  5. Vezměte si tři screenshoty ze své obrazovky. Jedná se o výřezy jednoho okna, které zabírá třeba čtvrtinu plochy obrazovky. Chcete je předat kolegovi tak, aby je mohl vložit do webového návodu. Zároveň chcete, aby zabíraly co nejméně místa (co nejmenší počet byte).

Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje