Jan Ondruš LZPXj - vylepšení LZP algoritmu
|
|
- Karolína Černá
- před 4 lety
- Počet zobrazení:
Transkript
1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jan Ondruš LZPXj - vylepšení LZP algoritmu Katedra softwarového inženýrství Vedoucí bakalářské práce: Mgr. Jan Lánský Studijní program: Informatika, obor Obecná informatika 2007
2 Prohlašuji, že jsem svou bakalářskou práci napsal(a) samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne Jan Ondruš 2
3 Obsah 1 Úvod Komprese dat Algoritmus LZP Implementace LZP algoritmu - verze od Charlese Blooma Předchozí práce - program LZPX Vylepšení LZPXj LZPXj - úvod Vylepšení výkonu pro špatně komprimovatelná data Komprese pro 16 / 24 / 32 bitová data Filtr pro instrukční kód x Kódování v LZPXj Kódování - 2 modely Model 1 - PPM Model Výběr modelu Shrnutí a závěr Celkový postup komprese Srovnání komprese Závěr Literatura 28 3
4 Název práce: LZPXj - vylepšení LZP algoritmu Autor: Jan Ondruš Katedra (ústav): Katedra softwarového inženýrství Vedoucí bakalářské práce: Mgr. Jan Lánský vedoucího: Jan.Lansky@mff.cuni.cz Abstrakt: LZP algoritmus je jedním z algoritmů navržených pro kompresi textu. Vychází ze základní myšlenky, kterou publikovali Ziv a Lempel ve své práci A Universal Algorithm for Sequential Data Compression. Autorem vlastní metody LZP je Charles Bloom, který navrhl obecné schéma a několik vlastních implementací. Cílem práce je navázat na existující implementace LZP algoritmu. Jsou zde zapracovány vlastní myšlenky s cílem dosáhnout efektivní komprese pro různé druhy dat. Program LZPXj se zaměřuje na kompresi běžných souborů jako jsou textové, multimediální nebo spustitelné soubory. Součástí práce jsou kromě popisu vylepšeného algoritmu také otestování a srovnání s existujícími kompresními programy. Klíčová slova: komprese dat, LZP algoritmus, srovnání komprese Title: LZPXj - improvement of LZP algorithm Author: Jan Ondruš Department: Department of Software Engineering Supervisor: Mgr. Jan Lánský Supervisor s address: Jan.Lansky@mff.cuni.cz Abstract: LZP algorithm is one of algorithms designed for text compression. It is based on ideas published in paper A Universal Algorithm for Sequential Data Compression by Ziv and Lempel. The author of method LZP itself is Charles Bloom who proposed general scheme and his implementations. The aim of present work is continue progress of existing implementations of LZP algorithm and designing software for file compression. Some original ideas are proposed and included helping achieve effecient compression for various kind of data. LZPXj compressor is better for common files containing text, multimedia or executables. Part of this work is apart from description of improved algorithm also tests and comprehensions with some existing compression programs. Keywords: data compression, LZP algorithm, compression comprehension 4
5 Kapitola 1 Úvod 1.1 Komprese dat Komprese dat je proces kódování informace pomocí menšího počtu bitů (nebo jiné jednotky informace) než měla původní reprezentace. Dosahuje toho použitím různých schémat. Komunikace pomocí komprese dat funguje pouze, pokud odesílatel i příjemce znají schéma, které v jejich případě použili. V opačném případě by příjemce nebyl schopen dekódovat obsaženou informaci. Komprese je užitečná, protože pomáhá ušetřit zdroje jako je místo na úložném médiu nebo přenosovou kapacitu na síti. Na druhou stranu je nevýhodou, že je potřeba čas na kompresi a dekompresi dat a výpočetní kapacita schopná ji provést. Kompresní algoritmy můžeme rozdělit na dvě základní skupiny. Těmi jsou bezztrátová a ztrátová komprese. Bezztrátové algoritmy se snaží využít statistické redundance dat k lepší reprezentaci odesílaných dat. V tomoto případě je příjemce schopen rekonstruovat původní data naprosto přesně, tedy sekvence bitů si přesně odpovídají. Dalším druhem komprese je ztrátová komprese, při které je možná ztráta kvality přijatelná. Obvykle se používá například pro kompresi obrázků, videa nebo zvuku. Bezztrátové kompresní metody můžeme rozdělit podle typu dat, pro který jsou navrženy. Těmi jsou hlavně text, obrázky a zvuk. V principu lze obecný kompresní algoritmus použít na jakákoliv binární data. Některé algoritmy ale mohou mít problémy s výkonem komprese pro jiný druh dat než pro ten, pro který byly navrženy. Například zvuková data nelze efektivně komprimovat textovými algoritmy. Většina bezztrátových programů používá dva druhy algoritmů - první provádí statistické modelování vstupních dat a 5
6 druhý kóduje vstupní data do bitových řetězců, tak aby častější data dávala kratší výstup. Příkladem algoritmů první skupiny jsou Burrows-Wheelerova transformace (BWT), LZ77 nebo LZW. Naopak kódovacími algoritmy jsou například Huffmanovo kódování nebo aritmetické kódování. 1.2 Algoritmus LZP Metodu LZP představil v roce 1996 Charles Bloom v [1]. Řadíme ji mezi slovníkové metody komprese dat. Je odvozena z metody LZ77 komprese popsané v [6]. Hlavním rozdílem je, že při hledání opakujícího se úseku se nedíváme na celé okno, ale jen na jediné místo, na kterém je jeho výskyt nejpravděpodobnější. To umožňuje snížit náklady na místo pro uložení odkazu na nalezený podřetězec. Zlepšení kompresního poměru se dosáhne, protože zmenšení délek řetězců je dostatečně kompenzováno tím, že není třeba zapisovat přesnou polohu na výstup. Algoritmus je vhodný pro širokou škálu využití na poli datové komprese, jako je archivace distribuce nebo on-line komprese. Algoritmus lze implementovat v mnoha variantách, které mohou dosahovat jak velmi vysokých rychlostí, tak i výkonné komprese. Algoritmus LZ77 a další varianty si ve výstupním proudu dat rezervují prostor pro umístění pozice zdrojového podřetězce. Koncept LZP ho umožňuje ušetřit a využít ho efektivněji. Pro nalezení vhodného místa je ale třeba použít jinou techniku. Tou je kontextové modelování. Je dána pevná délka kontextu N (order-n kontexty). Ukazatel se vybere podle pozice posledního nalezeného výskytu kontextu. Použitím kontextů vyšších řádů můžeme dosáhnout větší úspěšnosti - častěji budou nalezeny delší úseky symbolů. Porostou ovšem také pamět ové nároky na modelování order-n kontextů. Obecné schéma kompresního procesu algoritmu: Pro každý byte vstupního zdroje dat se předcházejícím N bytům je vytvřen order-n konečný kontext. Tento kontext se použije pro vyhledání v indexové tabulce (až už je implementována jakkoli). Výsledek tohoto kroku nám dodá ukazatel někam do proudu už přečtených a zpracovaných dat P, které se nachází před aktuální pozicí. Řetězec znaků S na aktuální pozici se porovná s řetezcem na pozici P. Dostaneme délku shody L. Do indexové tabulky se vloží ukazatel na řetězec S na místo, kde byl předtím ukazatel P. Pokud je použito ověřování kontextu je hodnota kontextu přímo uložena také do indexové tabulky na stejné místo. Pokud je nalezená délka shody L nulová (nebo menší než stanovená minimální délka) je zakódována značka literál a jednotlivý 6
7 znak je pak zapsán na výstup. Pokud je délka L nenulová (aspoň velká jako minimální délka) je kódována značka match a číslo L. Protože kódujeme dva druhy entit - délky úseků a hodnoty jednotlivých bytů, je předřazena rozlišující značka, která je umožňuje při dokódování rozlišit. Jak se vyřeší následné kódování jednotlivých entit závisí už na konkrétních implementacích. 1.3 Implementace LZP algoritmu - verze od Charlese Blooma Charles Bloom navrhl čtyři implementace LZP1 - LZP4, kde LZP1 je nejrychlejší s nejhorší kompresí a LZP 4 poskytuje nejvýkonnější kompresi, ale je nejpomalejší. Verze se liší ve způsobech jakými je naprogramována indexová tabulka a jakým způsobem jsou zapisovány prvky(tj. značky, délky shodujících se řetězců a literály) na výstup. U LZP1 a LZP2 je indexová tabulka implementována hašovací tabulkou, která používá hašovací funkci: H = ((C >> 11) XOR C) & 0xFFF V tomto případě je C pevný order-3 kontext. Ta dává 12-bitovou hodnotu, která se používá jako index do pole ukazatelů do už zakódované části souboru. Pokud není hodnota ukazatele P inicializována (tedy nebyl nalezen výskyt podřetězce), je zakódován na výstup literál bez použití značky. Kolize se při hašování neřeší. Verze LZP3 používá obdobnou hašovací funkci, která je však 16 bitová a parametrem je tentokrát order-4 kontext (4 poslední byty). Navíc používá potvrzování kontextu. To znamená, že je v indexové tabulce kromě ukazatele P také uložen samotná hodnota order-4 kontextu, která umožní ověřit, zda je ukazatel platný. Při neúspěchu se nezapisuje literál, ale jsou použity ještě alternativní tabulky pro order-3 kontexty a order-2 kontexty. LZP4 používá nejnáročnější strategii - indexace se provádí pro order-5 kontexty a ve dvou fázích. Při neúspěchu nepoužívá nižší kontexty jako LZP3. Pro kódování výstupních prvků bylo použito také rozdílných technik. U LZP1 jsou literály kódovány nekomprimované v 8 bitech. Značky pro shodující se řetězce a jejich délky jsou kódovány ve zvláštních kontrolních bytech. Napevno přiřazené sekvence bitů jsou pevně přiřazeny jednotlivým značkám i hodnotám délek. LZP2 pracuje stejně až na to, že se používá sta- 7
8 tické Huffmanovo kódování pro literály. U LZP3 je kódování o něco složitější. Značky a délky shodujících se úseků jsou obě kódovány pomocí order-1 Huffmanova kódování. Kontextem je v tomto případě číslo použitého řádu pro LZP kontext (pouze tři možnosti 4, 3 nebo 2). Na tyto tři pole se jednoduše aplikuje statické Huffmanovo kódování. Značky jsou kódovány po čtveřicích. Literály také kóduje Huffmanem, konkrétně ve variantě order-1-0. Dalším rozdílem je, že v případě nalezení shodujícího se řetězce, se následně po něm vynechává značka a předpokládá se, že bude následovat literál (stejně jako u původní LZ77 metody). LZP4 pro dosažení lepší komprese obsahuje již aritmetický kodér a pokročilejší techniky kontextového modelování (context modelling). U každého kontextu má zapsány relativní počty nalezených podřetězců a literálů. Z nich se spočítá kodóvací kontext a použije se pro aritmetické kódování délek shodných podřetězců. Pro literály se kóduje nulová délka. Ty jsou dále transformovány tak, že se vypočítá rozdíl od minulé hodnoty. Pokud je délka menší než minulá hodnota, kóduje se již literál a aktuální hodnota se zmenší na jedničku. Poté se kódují hodnoty s pomocí order-1-0 modelu s tím, že jako order-1 kontext se použije kódovací kontext. Literály se zakódují pomocí order PPMC metody a použije se full exclusion. Znak predikovaný pomocí LZP (tedy ten, který následuje za posledním výskytem) se odstraní z modelu také. Literál se zapisuje automaticky hned po odkazu na minulý řetězec stejně jako u LZP Předchozí práce - program LZPX Nyní budu popisovat jednu z dalších implementací LZP algoritmu, ze které jsem vycházel při své práci a kterou jsem se snažil vylepšit hlavně po stránce míry komprese a obecné použitelnosti na různé typy dat. LZPX je kompresor s volně dostupnými zdrojovými kódy jehož autorem je Ilia Muraviev. Pokud porovnáváme tuto implementaci s původními verzemi od Charlese Blooma, je ve své poslední verzi nejpodobnější LZP3. Nicméně první z verzí LZPX jsou zaměřeny více na rychlost a podobají se spíše LZP1 nebo LZP2. Nyní se zaměřím na poslední verzi 1.5b, která tvoří předchůdce programu LZPXj. LZP algoritmus pracuje s těmito parametry: Bloky jsou délky 16 MB. Úseky se hledejí jen v rámci aktuálního bloku. Indexová tabulka pro hledání LZP kontextu délky 4 znaky je implementována pomocí hašovací tabulky s ověřováním platnosti kontextu. Hašovací tabulka má velikost 8 MB a obsahuje 220 položek po 8 bytech. Čtyři byty jsou použity jako ukazatel do aktuálního bloku a zbývající čtyři jako kontext pro ověření shody. Pokud 8
9 není nalezen kontext je použita tabulka, která obsahuje odkazy do datového bloku pro kontexty délky 2 (indexována přímo 2-bytovou hodnotou kontextu). V další fázi jsou kódovány značky, délky nalezených úseků a literály. Při kódování značek je možno použít tyto tři - úsek, literál nebo konec souboru. Program si zapamatuje poslední čtyři zakódované značky a tato čtveřice je použita jako order-1 kontext aritmetického kodéru. Tato čtveřice značek zřejmě nikdy neobsahuje značku konec souboru a proto máme 2 4 = 16 možných kontextů pro kódování značek. Po zakódování aritmetickým kodérem je kontext aktualizován pro kódování značky v příštím kroku. Pokud je nalezen úsek je třeba zakódovat jeho délku. Ta se kóduje pomocí 256 možných hodnot. Pro hodnoty větší než 254 je zakódována speciální hodnota 255 a délka se o 255 sníží. To je opakováno dokud není dosaženo hodnoty pod 255 a tato hodnota je již zakódována přímo. Dále se využije znalosti z předchozí fáze komprese o tom, zda byl index úseku nalezen v hašovací tabulce nebo ne. Každá z obou možností má vlastní rozdělení pravděpodobnosti tj. existuje dvakrát 256 čítačů (odpovídající dvěma kontextům) aritmetického kodéru přiřazené každé z obou možností. Aritmetickým kodérem je pak zakódována hodnota 0 až 255. Při kódování literálů se jako kontext se bere v úvahu předchozí znak (order-1). Každému ze 256-ti znaků je přiřazen jeden čítač v každém z 256- ti kontextů. Z modelu se navíc na začátku odebere znak, který předpověděla LZP predikce. Čítače se aktualizují přičtením konstatní hodnoty 128. Přesáhne-li celkový součet pro všechny symboly v rámci jednoho bloku čítačů pro jeden kontext určitou hodnotu, všechny čítače jsou v tomto bloku vyděleny dvěma. Tato dynamická aktualizace umožňuje přizpůsobování v případě změny charakteru dat při kompresi nehomogeního souboru. Update: freq[char] += 128 Rescale: if total > 2 16 then { Vyděl všechny freq[i] dvěma } 9
10 Kapitola 2 Vylepšení LZPXj 2.1 LZPXj - úvod Implementace LZPX je efektivní hlavně pro textová nebo jiná lineární data uspořádaná jako sekvence bytů. Ale moderní aplikace používají mnoho dalších druhů dat, které je třeba více či méně efektivně komprimovat. Například jsou to multimediální formáty jako obrázky a zvukové soubory. Dále také komprimované formáty dat at už jde o ztrátovou kompresi nebo bezztrátovou. A v neposlední řadě jsou velmi časté také spustitelné soubory. Mnoho datových souborů obsahuje mnoho z těchto i jiných druhů dat často smíchány dohromady (aplikace, hry, dokumenty). LZPXj se snaží vylepšit výkon komprese hlavně pro tyto druhy, o kterých se dá předpokládat, že budou často komprimována koncovými uživateli. Cílem je ukázat, jaký výkon může poskytnout metoda založená na LZP na širokém spektru datových souborů. V LZPXj jsem navrhl a implementoval několik vylepšení, které přinášejí zvýšení výkonu algoritmu. Za cenu zvýšení složitost celého procesu komprese a dekomprese a časových i pamět ových nároků se mi podařilo dosáhnout v průměru lepších výsledků. Tato metoda ukázala schopnost konkurovat většině současných komprimačních či archivačních programů a nástrojů. V dalších kapitolách jsou podrobněji popsány a vysvětleny jednotlivé postupy a techniky, které jsem do algoritmu v jeho implementaci LZPXj zařadil. 10
11 2.2 Vylepšení výkonu pro špatně komprimovatelná data Při komprimování souborů obsahující již nějakým způsobem zkomprimovaná data, at už jde o ztrátovou nebo bezztrátovou kompresi, dochází v LZPX implementaci k expanzi dat. Důvodem tohoto jevu je, že čítače použité při kódování nedávají dostatečně přesnou informaci o pravděpodobnostech symbolů. Tato nedokonalost vede k tomu, že místo toho, aby byla všem symbolům přiřazena stená relativní pravděpodobnost (data vypadají náhodně - hodnoty jednotlivých symbolů jsou na sobě nezávislé), je rozložena nerovnoměrně. V závislosti na míře této nerovnoměrnosti to pak vede ke ztrátám při kompresi. Nepřesné hodnoty jsou pak zasílány do aritmetického kodéru. Ten poté přiřazuje jednotlivým symbolům větší počet bitů než by bylo nutné. Tuto ztrátu je možné vyčíslit na testovacích souborech obsahující a) pseudonáhodná data vygenerovaná nějakým náhodným generátorem; b) komprimovaná data (obrázky JPG, soubory ZIP apod.). V následující tabulce 2.1 je vidět v procentech o kolik je výkon komprese horší. Pro porovnání je uvedeny původní hodnoty a hodnoty po aplikaci mnou navržené metody, která je implementována ve verzi programu LZPXj 1.0e. Tato metoda je zařazena také ve všech dalších verzích s tím, že k ní jsou přidány další způsoby vylepšení, které jsou popsány v této práci v dalších kapitolách. Soubor JPG ZIP Původní velikost ,0% ,0% Po kompresi LZPX 1.5b ,1% ,1% LZPXj 1.0e ,3% ,9% Tabulka 2.1: Porovnání komprese LZPX 1.5b a LZPXj 1.0e na souborech JPG a ZIP. První nápad, který mnoho lidí asi napadne je průběžně zjišt ovat jestli nejsou data expandována. V případě, že je to detekováno pozastavit aritmetické kódování a místo toho jen kopírovat na výstup nekomprimovaná data resp. symboly či literály z předchozí LZP kompresní fáze. To je ale také ekvivalentní tomu, když nahradíme hodnoty všech čítačů tak, aby měly stejnou hodnotu. Tato stejná hodnota přiřazená všem čítačům zajistí, že aritmetické kódování v další fázi bude používat pro svou práci rovnoměrné rozdělení pravděpodobnosti, kde každý symbol bude kódován stejným počtem bitů. V 11
12 případě, že symboly jsou jednotlivé byty souboru, bude to přesně 8 bitů. Nabízí se otázka, zda by nebylo možné a z hlediska dosažení vyšší komprese výhodnější použít nějaký mezistupeň. Pod tím si představme, že pravděpodobnosti odpovídající jednotlivým čítačům nebudou nahrazeny jedinou hodnotou, ale jejich velikosti se vyrovnají jen o něco méně. To znamená, že vypočítané rozdělení pravděpodobnosti pomocí systému čítačů se nenahradí rovnoměrným, ale provede se kombinace původního a rovnoměrného rozdělení v nějakém vhodném poměru. Aby se toho dosáhlo v programu LZPXj, je ke všem čítačům přičtena hodnota H, která má záviset na jakési odhadnuté míře náhodnosti dat. Jak je počítána hodnota H je popsáno podrobněji níže. Obecně se dá říci, že pokud se data daří komprimovat dobře, je H snižována, a naopak, pokud by byl výstup větší než původní data, je zvyšována. K výpočtu H jsem použil jednoduchou heuristiku. Principem práce je snaha zjistit P - podíl celkové frekvence všech symbolů ku frekvenci konkrétního čítače pro jediný právě kódovaný symbol. Čím je tento podíl vyšší, tím je výstup z následného kódovaní pomocí aritmetického kodéru větší. Dále máme proměnnou C, jejíž hodnota nějakým způsobem zohledňuje, jak dobře se daří data komprimovat. C je snižována pokud podíl P klesne pod dolní mez udanou konstatou K1. Naopak podku P přeroste horní mez K3 je hodnota proměnné C zvyšována. Konkrétně pokud nastává P < K1 je C vynásobeno konstantou K3, která je menší než jedna, pro P > K3 se provede přičtení konstanty K4 k proměnné C. V ostatních případech je-li P >= K1 a zároveň P <= K3 přičte se k proměnné C konstanta K5, jejíž hodnota je menší než K4. Aktualizace proměnné C: P = total / freq[char] if P < K1 then C = C * K2 if P > K3 then C = C + K4 if (P >= K1 AND P <= K3) then C = C + K5 Určení konstant K1 až K5 jsem provedl pouze přibližně (K1 = 185, K2 = 9/10, K3 = 2048, K4 = 20, K5 = 9). Experimenty ukázaly, že tyto hodnoty dobře postačují pro účely tohoto postupu. Také platí, že na jejich přesných velikostech kriticky nezáleží, protože hodnota C je dále transformována na H a tato transformace je z hlediska dosažení větší přesnosti důležitější. Kromě proměnné C je počítána také C - a to stejným způsobem jako C, jen pro každý jednoznakový kontext (tj. poslední kódovaný znak) zvlášt. Ukázalo 12
13 se, že součet C + C dobře vystihuje chování různých druhů dat. Klíčem k dosažení optimálního působení je však dostatečně přesně určit závislost proměnné H a součtu C + C. Provedl jsem proto řadu měření. Interval možných hodnot (C + C ) jsem si rozdělil na několik úseků a měřil jsem výsledek komprese pro různá H. Nakonec jsem do tabulky poznamenal ten nejlepší zjištěný výsledek. Testovací data obsahovala jak textová, binární i pseudonáhodná data. Vynesené hodnoty jsou vidět na grafu 2.1 jako vodorovné čáry. Výsledkem je zjištění, jak má proměnná H záviset na proměnné C - body grafu můžeme proložit parabolu a určit i přesné koeficienty kvadratické závislost. Je možné použít i exponencielní závislost, ta se však ukázala jako přibližně stejně vhodná, přičemž z hlediska rychlosti a jednoduchosti dopadne lépe kvadratická závislost - pro výpočet stačí jediné násobení. Určení hodnoty H: Z = ( C + C ) if Z > 1024 then Z = 1024 H = ( Z * Z / 48 * total ) >> Komprese pro 16 / 24 / 32 bitová data Mnoho souborů obsahuje struktury a data zarovnané do skupin. Významovou jednotku tam pak netvoří jediný byte, ale přímo skupiny více než jednoho bytu. To je v případě pokud jsou ukládána 16-bitová čísla nebo 32- bitová čísla poměrně častá v binárních souborech nebo také v multimediální formáty. Například 24-bitové RGB obrázky obsahují 24-bitové zarovnání záznamů. Dále nekomprimová 16-bitová audio data ve formátu WAV jsou zarovnány po 32 bitech (stereo - 2 kanály) nebo 16 bitech (mono - jediný kanál). Ve velkém počtu binárních formátech je možné takovéto struktury záznámů nalézt a spustitelné soubory nejsou výjimkou. Jeden z možných postupů jak této vlastnosti datových souborů využít pro vylepšení komprese je předzpracovat vstup pomocí filtrů. Tento způsob se snaží bud vhodně přeuspořádat data nebo v případě delta filtrů jsou místo původních záznamů kódovány rozdíly mezi aktuální a předchozí hodnotou. Tato fáze je pak plně předřazena kompresnímu algoritmu a nijak jej není třeba modifikovat. Nevýhodou je v tomoto případě nutnost složitě detekovat, kdy a jaké transformace je možné provádět. Dalším záporem může být menší obecnost tohoto postupu, protože se dá požít jen na určitou malou 13
14 Obrázek 2.1: Proložení naměřené závislosti proměnných H a C křivkou. množinu formátů (ty které se dají spolehlivě detekovat a vhodně transformovat). V LZPXj jsem zvolil jinou cestu, tou je provedení změn přímo uvnitř kompresního algoritmu. Takové změny, které vedou k vylepšení komprese těchto struktur, spočívají v tomto případě ve změně způsobu kódování literálů. V algoritmus LZP jsem nahradil jednoduché kontextové modelování, které pro kódování literálů používá jako kontext jeden poslední symbol ze zakódovaných dat. Pokud bereme jako kontext jediný symbol je lepší při zacházení s 16/24/32-bitovými záznamy použít jako kontext znak na odpovídající pozici v předešlém záznamu. Odpovídá to tomu, že se odkazujeme na druhý, třetí nebo čtvrtý znak od konce. Snahou je, aby bylo možné toto nahrazení provést bez újmy na výkonu pro běžné textové soubory, ve kterých je samozřejmě nejvhodnější volbou použití posledního symbolu. Konkrétně v metodě LZPXj je modelování použito více-násobně, konkrétně 14
15 čtyřnásobně. Pro každý znak jsou k dispozici čtyři sady čítačů, které odpovídají pravděpodobnostním rozdložením vhodným pro jednotlivé druhy dat. V každém kroku se vybírá právě jeden kontext z těchto čtyř, který se jeví jako nejvhodnější. Model se dynamicky přizpůsobuje přicházejícím datům a dokáže si vybírat správně ten nejvhodnější. Vyběr se provádí podle odhadnutého výsledku na nedávných datech. Ze čtyř možností se bere nejlepší výsledek. Ke každému z kontextů je přiřazena proměnná, která určuje jí příslušný počet bodů B. Tento počet udává relativně kvalitu tohoto kontextu - méně bodů znamená lepší možnou kompresi. Pro kompresi je vybírán ten s nejnižším bodovým kontem. Aktualizace se provádí na základě hodnoty P poměru čítače pro kódovaný symbol ku celkovému součtu čítačů v daném kontextu. Pokud je tato P = hodnota total / freq[char] větší než v některém z ostatních kontextů dostane za každý z nich bod a naopak druhá strana jeden bod ztrácí. To přesně znamená, že jsou prověřeny všechny dvojice (je jich šest). Tomu z dvojice, který má menší P je snížen bodový součet B o jedna. Tomu z dvojice, který má součet P větší je bodový součet naopak zvýšen. Dynamické přizpůsobení je zajištěno občasným vydělením všech B dvěma. Výběr a aktualizace: P1 = total1 / freq1[char] P2 = total2 / freq2[char] P3 = total3 / freq3[char] P4 = total4 / freq4[char] if (P1 > P2) then B1++, B2-- else B1--, B2++ if (P1 > P3) then B1++, B3-- else B1--, B3++ if (P1 > P4) then B1++, B4-- else B1--, B4++ if (P2 > P3) then B2++, B3-- else B2--, B3++ if (P2 > P4) then B2++, B4-- else B2--, B4++ if (P3 > P4) then B3++, B4-- else B3--, B4++ if (T++ >= 256) then T=0, B1/=2, B2/=2, B3/=2, B4/=2 Vyber kontext s nejnižší hodnotou B 2.4 Filtr pro instrukční kód x86 K dosažení lepší komprese na spustitelných souborech je třeba předřadit vlastnímu kompresnímu algoritmu minimálně filtr pro CALL a JMP in- 15
16 strukce. Ty jsou v instrukčním kódu pro běžné procesory řady x86 velice časté a znamenají instrukci skoku na určenou adresu. Adresa je uložna relativně k pozici dané insturkce. To způsobuje, že všechny skoky na jediné místo v souboru jsou kódovány každý jiným číslem a to vede k horšímu kompresnímu poměru. Toto čtyřbajtové číslo znamenající relativní adresu skoku by proto bylo výhodné nahradit absolutní adresou nebo jednoznačným záznamem určujícím jediné místo v souboru. Smyslem jednoduchého filtrování je jednoduché nahrazení relativní adresy za absolutní. Cílem je aby se stejné absolutní adresy mnohokrát opakovaly. CALL / JMP instrukce jsou v x86 kódu zapsány byty 0xe8h / 0xe9h. Hledáním těchto hodnot můžeme nalézt všechna místa, kde se má transformace uskutečnit. Nicméně najdeme také spoustu dalších výskytů, která nekódují přímo číslo instrukce, ale například se nacházejí jinde v kódu jako operandy instrukcí nebo jako jiná data napevno uložená v souboru apod. Dále o datech předem nemůžeme s jistotou vědět zda opravdu obsahují instrukční kód a tedy jestli se nejedená o jiná binární či textová data, kde by pokus o transformování bytů způsobil jistě zhoršení komprese. Proto je třeba s dostatečnou spolehlivostí detekovat, kdy jde o spustitelný kód a kdy jde v tomto kódu o instrukci a má tedy dojít k nahrazování. U relativní adresy je nutno analyzovat, do kterého místa ukazuje. Pokud jde o skutečnou CALL / JMP instrukci je cíl umístěn v naprosté většině případů poměrně blízko výskytu instrukce. Toho se využívá pro zjištění falešných výskytů bytů 0xe8h a 0xe9h. Konkrétně stačí testovat hodnotu nevyššího byte z adresy, není-li to 0 nebo 255, pak jde s největší pravděpodobností o falešný výskyt. V opačném případě si tak jistí být ale nemůžeme, protože například pro náhodná data by došlo ke zbytečné transformaci průměrně v každém z 128 případů (testována hodnota jediného bytu). Aby se tomu předešlo LZPXj používá jednoduchou heuristiku pro detekci instrukčního kódu. Transformace: if C == 0 then { nedělej nic, nebyl detekován instukční kód } else { if (char[pos] == 0xe8h OR char[pos] == 0xe9h) AND (char[pos+4] == 255 char[pos+4] == 0)) then { X = (char[pos + 1], char[pos + 2], char[pos + 3]) X = X + pos + block offset (char[pos + 1], char[pos + 2], char[pos + 3]) = X } } 16
17 Detekce sleduje opakující se znaky v instrukčním kódu. Znaky jsou rozděleny do dvou kategorií. Jednou z nich jsou znaky 0x83h a 0xe8h, které se ve spustitelném kódu vyskytují velmi pravidelně. Druhou část tvoří další vybrané často se vyskytující znaky, které už nemají při detekci tak velkou váhu. Při detekci jsou jako čítače použity dvě proměnné A0 a A1, které udávají jak často se v nedávných datech objevil znak 0x83h resp. 0xe8h. Vyšší hodnota znamená menší četnost. A0 či A1 jsou inkrementovány pouze v případě znaku, který nepadne ani do jedné z kategorií (tj. znaků, které se v EXE kódu běžně nevyskytují). Pokud součet A0 + A1 přesáhne danou konstantu 256 je čítač C snížen o jedna. Přesáhne-li hodnotu 2 14 sníží se na nulu. jinak se nastaví na Případ C = 0 znamená negativní detekci a transformace není prováděna. Detekce: switch (char[pos]) { case 0x83h: A0 = A0 * 3 / 5 case 0xe8h: A1 = A1 * 3 / 5 case 137, 139, 8, 192, 4, 133, 141: case 0, 1, 69, 80, 116, 117, 255: nedělej nic default: if A0 < 2 14 then A0++ if A1 < 2 14 then A1++ } if A0+A1 < 256 then C = 2 14 else if A0 + A1 > 2 14 then C = 0 else if C > 0 then C-- 17
18 Kapitola 3 Kódování v LZPXj 3.1 Kódování - 2 modely Poslední verze LZPXj 1.2h obsahuje dva modely pro kódovýní výstupu z LZP fáze. LZP produkuje tři druhy entit - literály, délky opakujících se řetězců a rozlišující značky. Ty je třeba efektivně zakódovat. Ke zvýšení efektivity jsem použil dva modely, z nichž každý se více hodí pro jiný druh dat. Model 1 je verze PPMC algoritmu, která je vhodná pro textová a lineární data. Model 2 naopak implementuje vylepšení popsané v kapitole Komprese pro 16 / 24 / 32 bitová data a Vylepšení výkonu pro špatně komprimovatelná data, takže je vhodná pro binární, bloková nebo předem komprimovaná data. Z tohoto důvodu jsou v činnosti oba modely a podle průběžně aktualizovaného ukazatele učinnosti je vybírán ten lepší a vhodnější model, který se v ten daný okamžik použije. 3.2 Model 1 - PPM První model je jednoduchým order PPM. PPM je algoritmus často používaný a velmi efektivní pro kompresi textů. Jedna z možných implementací je popsána také [3]. Já jsem zvolil implementaci pomocí hašovací tabulky pro všechny order-3 kontexty. Hašovací funkce H1 použije hodnotu posledních tří bytů (X) ke konstrukci indexu v hašovací tabulce. Při kolizi, tedy pokud je dané místo v hašovací tabulce obsazeno informacemi o jiném kontextu, se použije náhradní část tabulky určená pro order-2 kontexty. Jiný rozsah indexů je pro ně vyhrazen. V tomto případě je pak použito 18
19 sekundární hašovací funkce H2. Jako parametr dostává hodnotu posledních dvou bytů (Y). Hodnota mem nastavení programu, které udává množství použité paměti. Je to číslo v rozsahu 1 až 9. Hodnota získaná jednou z těchto dvou funkcí odpovídá indexu nejvyššího řádu pro následné PPM. Dalším indexem prvního řádu je přímo hodnota posledního byte (order-1 kontext) v rozsahu Pro order-0 kontext je použit index s hodnotou 0. V následném kódování se pak sestupuje zeshora dolů a použije se nejdelší kontext, ve kterém je symbol nalezen. Pokud není v některém nalezen je zakódován ESC symbol. Hašovací funkce: H 1 (X) = (( X/ X* X/523 + X ) & (2 10+mem - 1)) H 2 (Y) = (( Y*11 + Y/11 + Y ) & (2 10+mem - 1)) mem Znaky, které se kódují v tomto modelu jsou vhodně přetransformovány. Používá se abeceda s 504 znaky. Znak s číslem 0 je použit jako ESC symbol. Znaky s čísly 1 až 256 kódují literály. Znaky 257 až 503 kódují délky úseků. Není třeba kódovat značky, protože ty jsou tímto systémem zakódovány implicitně. Rozlišení literálů a řetězců je totiž už provedeno. To dohromady znamená, že v hašovací tabulce je uloženo pro každý index 504 čítačů. V tomto případě jsou jednobytové, aby se ušetřila pamět. Celkový počet indexů je 2 (11+mem), tedy celkem zabere model 2 (20+mem) bytů. 3.3 Model 2 Tento model využívá techniky popsané v předcházejících kapitolách. To znamená, že se používá komprese pro 16/24/32 bitová data. Zde se pravděpodobnosti pro aritmetické kódování zjišt ují v závislosti na jediném znaku - ten předchozí, druhý, třetí nebo čtrvtý znak od konce dosud zakódovaných dat. Rozdělení pravděpodobnosti je udržováno tak, že je každému symbolu použité 256-ti znakové abecedy přiřazen jeden čítač. Jeho velikost relativně určuje, jak je daný znak pravděpodobný. Následně se použije postup popsaný v kapitole Vylepšení výkonu pro špatně komprimovatelná data. Výsledné pravděpodobnostní rozdělení je poté upraveno přičtením hodnoty H příslušným způsobem vypočítané, tak aby se co nejvíce zlepšila komprese pro špatně kompimovatelné úseky dat. Nevýhodou tohoto modelu je, že používá pouze velmi krátké jednoznakové kontexty a proto dosahuje poměrně špatných výsledků na textových datech. Tuto situaci lépe řeší Model1 pomocí jednoduché implementace PPM algoritmu. 19
20 3.4 Výběr modelu Po celou dobu komprese jsou v činnosti oba modely zároveň. Jsou aktualizovány příslušné čítače v obou modelech. Protože pro různá data je vhodný různý model, je třeba rozhodnout, kdy je lépe použít, který z nich. K tomu, abychom dostali výslednou predikci pro následující symbol, je vybrán jeden z modelů podle heuristiky, která počítá cenu na zakódování symbolu. Určí se pro poslední už zakódovaný úsek, který z modelá je na tomto úseku výhodnější co se týče délky generovaného výstupu. Udržováno je 257 dvojic čítačů O1 a O2. Z nich 256 je používáno podle toho, jaký byl poslední zakódovaný znak (O1[0..255], O2[0..255]) a jedna dvojice je globální bez ohledu na poslední znak (O1[256], O2[256]). Při kódování i dekódování se nejprve podle hodnot O1[ch], O2[ch], O1[256] a O2[256] určí lepší z modelů. Následně se model použije pro kódování resp. dekódování aktuálního znaku. Nakonec se čítače aktualizují, tak aby se v následujících datech dosáhlo co nejlepšího výsledku. Při aktualizaci se přitom spočítá kolik bitů by zabralo kódování pomocí modelu1 a výsledek se přičte k proměnným O1[ch] a O1[256]. Aby se preferoval význam proměnné O1[ch] oproti O1[256] přičítá se k ní dvojnásobek. Stejným způsobem se aktualizují O2. Dynamická povaha rozhodování se zachovává tím, že se čítače vynásobí 3 / 4, pokud součet O1[x] + O2[x] přesáhne určitou konstantu (konkrétně 1024). Rozhodovací kritérium: if O1[ch] + O1[256] > O2[ch] + O2[256] then { použij model1 } else { použij model2 } Aktualizace čítačů: for (x = ch, x = 256) { if O1[x] + O2[x] > 1024 then { O1[x] = O1[x] * 3 / 4, O2[x] = O2[x] * 3 / 4 } } O1[ch] = O1[ch] + cost1 * 2, O2[ch] = O2[ch] + cost2 * 2 O1[256] = O1[256] + cost1, O2[256] = O2[256] + cost2 20
21 Kapitola 4 Shrnutí a závěr 4.1 Celkový postup komprese Poslední verze LZPXj 1.2h obsahuje fitr pro spustitelné soubory jako preprocesor. Dále používá LZP schéma odpovídající přibližně tomu jak je využito v LZPX. To co se nejvíce liší a také nejvíce ovlivňuje výkon komprese je způsob kódování literálů a také možnost využít více paměti pro většinu komponent využitých v algoritmu. Kódování literálů je řešeno pomocí dvou modelů. Schéma celkového průběhu komprese i dekomprese je vidět na obrázcích 4.1 a 4.2 Záverečnou fázi tvoří aritmetické kódování. Tuto fázi jsem neupravoval a zůstává tedy stejná jako v LZPX. Použité aritmetické kódování je verze popsaná Schindlerem v schindler, která se názývá range coder. Její vlastností je, že přeškálování aktivního rozsahu se provádí po celých bytech, nikoliv po jednotlivých bitech. Implementace LZP fáze algoritmu, se liší od té v LZPX poměrně málo. Hlavním rozdílem je, že umožňuje nastavení množství použité paměti pro jednotlivé komponenty kompresního procesu. Proto je možné použít větší velikost bloku nebo velikost hašovacích tabulek. Pamět ové nastavení ovlivňuje také velikost hašovací tabulky použité pro PPM model. Dalším menším rozdílem je možnost použití kromě dvou a čtyřznakových LZP kontextů také osmiznakový. Kódovací fáze se liší velmi významně - dva použité modely umožňují vylepšit kompresi pro nejrůznější datové typy. 21
22 Obrázek 4.1: Kódování v LZPXj 1.2h. 4.2 Srovnání komprese Abych otestoval, jak jednotlivé části programu ovlivňují výkon po stránce kompresního poměru, provedl jsem srovnání komprese při vypnutí některých částí kompresoru nebo některých jejich vylepšení. V tomto případě jsem použil tři testovací soubory. Prvním z nich byl spustitelný soubor WIN- WORD.EXE z kancelářského balíku Microsoft Office. Zastupuje binární soubory a také obsahuje x86 instrukční kód. Zde můžeme vidět, kolik ušetří transformace relativních adres. Druhý soubor je archiv, který obsahuje několik souborů ve formátu html. Je to několik html souborů obsahující nápovědu k programu Visual Studio. Dohromady jsou sloučeny do jednoho TAR archivu. Třetím souborem jsem jako zástupce multimediálních dat zvolil BMP soubor ve běžném 24-bitovém RGB formátu. Obsahuje fotografii z digitálního fotoaparátu zmenšenou na menší rozlišení a převedenou do formátu BMP. 22
23 Obrázek 4.2: Dekódování v LZPXj 1.2h. Výsledky jsou prezentovány v tabulce 4.1. Relativní změny, tedy kompresní ztráty v procentech, pro jednotlivé soubory jsou vidět na grafu 4.3 spolu s průměrným výsledkem. Můžeme si všimnout, že model2 a komprese pro 16/24/32 bitová data, která je v něm obsažena má velký vliv při kompresi obrázku BMP. Zlepšení se pohybuje kolem 9%. Naopak model1 s PPM je výhradně použit pro kompresi textových dat a u souboru HTML.TAR se neobjevuje žádná ztráta při vypnutí součásti model2. Soubor WINWORD.EXE, což je spustitelná aplikace, je dobře komprimován kombinací obou modelů. Přitom při použití, každého z nich samostatně přináší ztrátu (2% resp. 5,5%). Filtr pro spustitelné soubory dokázal ušetřit na EXE souboru kolem 3,5%. Zajímavé je, že komprese pro 16/24/32 bitová data zlepšuje kompresi i u TAR archivu s textovými html soubory. V průměru se všechna vylepšení ukázala jako opodstatněná. Pouze optimalizace délek řetězců se na těchto testovacích datech 23
24 Testovaný soubor / nastavení EXE TAR BMP LZPXj 1.2h (vše zapnuto) 40,40% (+0,00%) 16,77% (+0,00%) 54,75% (+0,00%) použit pouze model1 (PPM) 42,34% (+1,93%) 16,80% (+0,02%) 64,07% (+9,32%) použit pouze model2 45,84% (+5,44%) 20,86% (+4,08%) 56,13% (+1,39%) LZP fáze vypnuta 45,96% (+5,56%) 21,35% (+4,58%) 54,59% ( 0,16%) optimalizace délek řetězců vypnuta 40,43% (+0,03%) 16,81% (+0,04%) 54,75% (+0,00%) exkluze v PPM vypnuta 40,74% (+0,34%) 16,87% (+0,10%) 54,93% (+0,18%) komprese pro 16/24/32-bitová vypnuta 41,45% (+1,05%) 20,90% (+4,13%) 63,59% (+8,84%) komprese pro náhodná data vypnuta 40,80% (+0,40%) 16,78% (+0,00%) 55,29% (+0,55%) filtr pro x86 spustitelný kód vypnut 43,71% (+3,31%) 16,77% (+0,00%) 54,75% (+0,00%) Tabulka 4.1: Výsledky srovnání komprese při vypnutí některých částí kompresoru. neprojevila. Došlo k tomu, protože tato optimalizace je vhodná pro delší texty obsahující mnoho dlouhých opakujících se úseků a také její vliv na kompresi není tak velký jako například vypnutí celého jednoho modelu. Program LZPXj umožňuje pracovat v devíti režimech, které se liší množstvím použité paměti. Množství paměti je možné nastavit volbou od 1 do 9. Standardním nastavením je 6, při kterém se používá kolem 163 MB. Nejnižší možnou hodnotou je 7 MB a nejvyšší 1315 MB. Každým zvýšením o jedničku je možné množství použité pamět přibližně zdvojnásobit a naopak. Na grafu 4.4 můžeme vidět, jak se mění kompresní poměr na Calgary Corpus pro nastavení 1 až 7. Protože tata standardní testovací data mají poměrně malou velikost (kolem 3 MB), větší pamět něž 40 MB už nepomáhá k lepší kompresi. Na řádově větších datech se dá očekávat zlepšování komprese i při vyšších nastaveních. Na internetu existuje několik testů, které se zabývají testováním komprimačních nástrojů. Tou nejdůležitější je stránka Maximumcompression.com [2], která se zaměřuje hlavně na srovnání kompresního poměru. Jejím auto- 24
25 Obrázek 4.3: Relativní zhoršení komprese při vypnutí některých částí kompresoru. rem je Werner Bergmans. Obsahuje deset testů, které reprezentují soubory několika široce rozšířených formátů. Těmito formáty jsou bmp, doc, dic, dll, exe, hlp, jpg, log, pdf, txt. Celková velikost všech souborů je něco přes 50 MB. Rozsáhlejším testem je Squeeze Chart (autor Stephan Busch). Velikost testovacích dat přesahuje 3 GB. Testovací data jsou rozdělena do několika skupin. Obsahují mnoho souborů v mnoha různých formátech. Pro srovnáni jsem vybral několik známějších nástrojů. Těmi jsou WinZIP, PKZIP, WinRAR, 7-ZIP, GZIP, BZIP2. Jejich výsledky v obou testech jsou uvedeny v tabulce
26 LZPXj LZPXj LZPXj LZPX 1.5b LZP4 Soubor Velikost 162MB 22MB 7MB 25MB 2MB Bytů bpb bpb bpb bpb bpb bib ,971 1,974 1,995 2,336 1,915 book ,469 2,482 2,562 3,075 2,350 book ,091 2,101 2,157 2,580 2,011 geo ,050 4,049 4,044 5,092 4,740 news ,390 2,399 2,466 2,758 2,350 obj ,721 3,723 3,728 4,343 3,744 obj ,328 2,337 2,396 2,711 2,388 paper ,449 2,452 2,468 2,789 2,378 paper ,442 2,445 2,471 2,826 2,389 pic ,804 0,804 0,803 0,797 0,814 progc ,456 2,456 2,464 2,765 2,392 progl ,601 1,603 1,608 1,782 1,589 progp ,622 1,620 1,620 1,843 1,585 trans ,347 1,347 1,365 1,558 1,343 average ,267 2,271 2,296 2,661 2,291 Tabulka 4.2: Kompresní poměr pro LZPX 1.5b, LZPXj 1.2h a LZP4 naměřený na Calgary Corpus. 4.3 Závěr V implementaci LZP algoritmu LZPXj, jsem navrhl v zásadě 4 hlavní vylepšení oproti LZPX. Těmi jsou a) efektivnější zacházení s předem komprimovanými daty (zip, jpg), b) efektivnější komprese pro data ukládaná v 16, 24 nebo 32-bitových záznamech (wav, bmp), c) filtrování a detekce spustitelného kódu (exe), d) 2 modely - jeden vhodnější pro textová data (txt, html) a druhý pro binární data - s možností automatického výběru. Další změnou je možnost nastavení použité paměti pro kompresi. Při porovnání s ostatními metodami jsem dosáhl v průměru dobrého kompresnímu poměru. Co se týče rychlosti je o něco pomalejší něž běžně používané metody, hlavně díky tomu, že celou dobu byla primární snahou optimalizace na lepší kompresní poměr. Práce tak navázala na existující implementace hlavně ve způsobech kódování výstupu LZP algoritmu, jehož výkon je, jak se ukázalo, velmi důležitý. 26
27 Obrázek 4.4: Závislost použité paměti a celkového kompresního poměru naměřená na Calgary Corpus. Test Maximumcompression Squeeze Chart Datum a velikost Název programu Výsledek Procent Pozice Výsledek Procent Pozice LZPX 1.5b ,69% ,86% 175 LZPXj 1.2h ,54% ,15% 56 WinZIP ,14% ,74% 160 PKZIP ,98% ,40% 259 WinRAR ,83% ,27% 96 7-ZIP ,25% ,15% 39 GZIP ,13% ,90% 208 BZIP ,18% ,95% 180 Tabulka 4.3: Srovnání některých výsledků testů na internetu. 27
28 Literatura [1] C. Bloom. LZP a new data compression algorithm, Proceedings of the IEEE Data Compression Conference (DCC 96), [2] W. Bergmans. Lossless data compression software benchmarks / comparisons, [3] A. Moffat. Implementing the PPM data compression scheme, Proceedings of the IEEE Transactions on Communications, 38 (11), pp , [4] M. Schindler. Range Encoder version 1.3, [5] I. H. Witten, R. M. Neal, and J. G. Cleary. Arithmetic coding for data compression, Communications of the ACM, 30(6): , [6] J. Ziv and A. Lempel. A Universal Algorithm for Sequential Data Compression, IEEE Transactions on Information Theory 23 (3), pp ,
Algoritmy komprese dat
Algoritmy komprese dat Slovníkové metody Phillip Walter Katz (1962-2000) 2.12.2015 NSWI072-10 Slovníkové metody komprese dat Idea opakující se fráze uloženy do slovníku výskyty fráze v textu ukazatel do
VíceStručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill. Optimalizace komprese XML. Závěr
Pavel Hruška Stručně o XML (výhody, nevýhody) Proč komprimovat XML? Metody komprese XML XMill Představení, princip, výsledky Analýza XML (možná úskalí) Optimalizace komprese XML Přeskládání kontejnerů
VíceInformační systémy ve zdravotnictví
Informační systémy ve zdravotnictví ZS 2008/2009 Zoltán Szabó Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz č.dv.: 504, 5.p Dnešní přednáška Kódování, komprese 2 1 Komprese dat Cíl komprese: redukovat
VíceKomprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky
Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův
VíceKomprese dat (Komprimace dat)
Komprese dat (Komprimace dat) Př.: zakódovat slovo ARARAUNA K K 2 četnost absolutní relativní A 4,5 N,25 R 2,25 U,25 kód K : kód K 2 :... 6 bitů... 4 bitů prefixový kód: žádné kódové slovo není prefixem
VíceIdentifikátor materiálu: ICT-1-19
Identifikátor materiálu: ICT-1-19 Předmět Informační a komunikační technologie Téma materiálu Komprimace, archivace dat Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí komprimaci, archivaci
VíceZáklady algoritmizace. Pattern matching
Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají
VíceKOMPRIMACE. aneb Aby to zabralo méně místa
KOMPRIMACE aneb Aby to zabralo méně místa Komprimace nebo také komprese je jednoduše řečeno sbalení či spakování dat na mnohem menší velikost. Ve skutečnosti se jedná o vypuštění nadbytečné informace takovým
VíceKomprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky
Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Slovníkové metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Slovníkové
VíceDUM: VY_32_INOVACE_594
Datum: 24. listopadu 2013 Projekt: Využití ICT techniky především v uměleckém vzdělávání Registrační číslo: CZ.1.07/1.5.00/34.1013 Číslo DUM: VY_32_INOVACE_594 Škola: Akademie VOŠ, Gymn. a SOŠUP Světlá
Více25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE
25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE Digitalizace obrazu a komprese dat. Uveďte bitovou rychlost nekomprimovaného číslicového TV signálu a jakou šířku vysílacího pásma by s dolním částečně
VíceZÁPADOČESKÁ UNIVERZITA V PLZNI
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY KOMPONENTY PRO VÝUKOVÝ ELEKTRONICKÝ MATERIÁL - KOMPRESE V OBLASTI POČÍTAČŮ BAKALÁŘSKÁ PRÁCE Lukáš Smutný Přírodovědná
VíceKompresní techniky. David Bařina. 15. února David Bařina Kompresní techniky 15. února / 37
Kompresní techniky David Bařina 15. února 2013 David Bařina Kompresní techniky 15. února 2013 1 / 37 Obsah 1 Pojmy 2 Jednoduché techniky 3 Entropická kódování 4 Slovníkové metody 5 Závěr David Bařina Kompresní
VíceVYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
VíceKompresní algoritmy grafiky. Jan Janoušek F11125
Kompresní algoritmy grafiky Jan Janoušek F11125 K čemu je komprese dobrá? Pokud je třeba skladovat datově náročné soubory. Např. pro záznam obrazu, hudby a hlavně videa je třeba skladovat překvapivě mnoho
VícePočítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO
Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO 1 Základní dělení 3D grafika 2D grafika vektorová rastrová grafika 2/29 Vektorová grafika Jednotlivé objekty jsou tvořeny křivkami Využití: tvorba diagramů,
VíceÚvod do teorie informace
PEF MZLU v Brně 24. září 2007 Úvod Výměna informací s okolím nám umožňuje udržovat vlastní existenci. Proces zpracování informací je trvalý, nepřetržitý, ale ovlivnitelný. Zabezpečení informací je spojeno
Víceaneb jak se to tam všechno vejde?
768 576 KOMPRIMACE aneb jak se to tam všechno vejde? Položme si hned na začátku zdánlivě nepodstatnou otázku: Kolik místa zabere dvouhodinový film na CD nebo DVD? Uvažujme následující příklad: rozlišení
Více[1] samoopravné kódy: terminologie, princip
[1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla
VíceNázev práce: Komprimace dat prezentace
Datum: 24. listopadu 2013 Projekt: Využití ICT techniky především v uměleckém vzdělávání Registrační číslo: CZ.1.07/1.5.00/34.1013 Číslo DUM: VY_32_INOVACE_593 Škola: Akademie VOŠ, Gymn. a SOŠUP Světlá
VíceIII/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT
Metodický list k didaktickému materiálu Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět
Vícecv3.tex. Vzorec pro úplnou pravděpodobnost
3 cvičení - pravděpodobnost 2102018 18cv3tex n i=1 Vzorec pro úplnou pravděpodobnost Systém náhodných jevů nazýváme úplným, jestliže pro něj platí: B i = 1 a pro i k je B i B k = 0 Jestliže je (Ω, A, P
VíceČasová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VíceKOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.
1/25 KOMPRESE OBRAZŮ Václav Hlaváč, Jan Kybic Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD
VíceStředoškolská technika Algoritmus pro bezztrátovou kompresi dat
Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT Algoritmus pro bezztrátovou kompresi dat Štěpán Pešout Gymnázium, Vlašim, Tylova 271 Tylova 271, Vlašim Agloritmus
VícePOČÍTAČOVÁ GRAFIKA. Počítačová grafika 1
Počítačová grafika 1 POČÍTAČOVÁ GRAFIKA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro nižší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky
VíceTestování prvočíselnosti
Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo
VíceNáplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění
Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double
VíceSTRUKTURA RASTROVÝCH DAT
STRUKTURA RASTROVÝCH DAT dva typy rastrové vrstvy v GIS 1) Digitální obraz TV, počítač, mobil - obrazovka obraz z bodů mapa - mřížka s barevnými plochami 2) Rastrová data data pro analýzu a) binární -
VícePravděpodobnost v závislosti na proměnné x je zde modelován pomocí logistického modelu. exp x. x x x. log 1
Logistická regrese Menu: QCExpert Regrese Logistická Modul Logistická regrese umožňuje analýzu dat, kdy odezva je binární, nebo frekvenční veličina vyjádřená hodnotami 0 nebo 1, případně poměry v intervalu
VíceGenerátory náhodných čísel V. Bílý Fakulta jaderná a fyzikálně inženýrská, Břehová 7, 115 19 Praha 1 bilyvit@fjfi.cvut.cz Abstrakt Během svého experimentu jsem se zajímal a porovnával různé generátory
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden
VíceDobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
VíceZákladní pojmy. Multimédia. Multimédia a interaktivita
Základní pojmy Multimédia Jedná se o sloučení pohyblivého obrazu, přinejmenším v televizní kvalitě, s vysokou kvalitou zvuku a počítačem, jako řídícím systémem. Jako multimediální systém se označuje souhrn
VíceKomprese dat (KOD) Semestrální projekt Implementace RLE, BWT a LZW
Komprese dat (KOD) Semestrální projekt Implementace RLE, BWT a LZW Autor: Bc. Petr Kašpar Login: KAS265 Datum: 8. května 2009 Úvod Úkolem tohoto projektu bylo implementovat nějaký komprimační algoritmus.
VícePrincip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
VíceKomprese a dotazování nad XML dokumenty
Komprese a dotazování nad XML dokumenty Prezentace diplomové práce Lukáš Skřivánek České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů květen 2007 Vedoucí práce: Ing. Miroslav
VíceKRY. Projekt č. 2. Kamil Dudka xdudka00
KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí
VíceINFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, 360 09 Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_01_RAR_P1 Číslo projektu: CZ 1.07/1.5.00/34.1077
VíceMezipaměti počítače. L2 cache. L3 cache
Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost
VíceKomprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3.
Komprese dat Radim Farana Podklady pro výuku Obsah Komprese videa a zvuku. Komprese MPEG. Komprese MP3. Komprese videa Velký objem přenášených dat Typický televizní signál - běžná evropská norma pracuje
VíceKomprese DNA pomocí víceproudé komprese a predikce báz. Jan Jelínek, Radek Miček
Komprese DNA pomocí víceproudé komprese a predikce báz Jan Jelínek, Radek Miček Víceproudá komprese angl. Multistream compression (MSC) statistická metoda autoři: Kochánek, Lánský, Uzel, Žemlička lze použít
Více12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
VíceIterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
VíceKatedra radioelektroniky K13137, FEL ČVUT Praha. zakódování dané informace. Tento trend postihl i oblast záznamu a přenosu širokopásmových
EXPERIMENTÁLNÍ ZVUKOVÝ KODÉR F. Rund, J. Nováček Katedra radioelektroniky K13137, FEL ČVUT Praha Abstrakt Všechny dnes široce rozšířené systémy pro kompresi zvuku vycházejí ze stejných psychoakustických
VíceIntegrovaná střední škola, Sokolnice 496
Integrovaná střední škola, Sokolnice 496 Název projektu: Moderní škola Registrační číslo: CZ.1.07/1.5.00/34.0467 Název klíčové aktivity: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Kód výstupu:
VíceKomprese videa Praha 2010 Účel komprese Snížení zátěže přenosového média Zmenšení objemu dat pro uložení Metody komprese obrazu Redundance Irelevance Redundantní složka část informace, po jejíž odstranění
VíceArchivační a komprimační programy
Archivační a komprimační programy Komprese Nejběžnější archivační a komprimační programy Stručný popis algoritmů bezztrátové komprese I když paměťová média mají stále větší kapacitu a neustále klesá cena
VíceČíslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Popis výukového materiálu Soubory, typy souborů, komprimace
Číslo projektu školy Číslo a název šablony klíčové aktivity Číslo materiálu CZ.1.07/1.5.00/34.0963 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_ICT_II_S1_05 Popis výukového materiálu
VíceArchitektury počítačů a procesorů
Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní
Více2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
VíceInovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_31_18 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední
VíceTeorie informace: řešené příklady 2014 Tomáš Kroupa
Teorie informace: řešené příklady 04 Tomáš Kroupa Kolik otázek je třeba v průměru položit, abychom se dozvěděli datum narození člověka (den v roce), pokud odpovědi jsou pouze ano/ne a tázaný odpovídá pravdivě?
VícePohled do nitra mikroprocesoru Josef Horálek
Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická
VíceAplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin
Aplikace Aplikace se liší tím, k jakému účelu jsou tvořeny. To má vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin s podobnou
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceAlgoritmizace a programování
Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický
VíceDatové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
VíceObsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
VíceKompresní metody první generace
Kompresní metody první generace 998-20 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca / 32 Základní pojmy komprese
VíceVyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
VíceKontingenční tabulky v MS Excel 2010
Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data
VíceOsnova přednášky. Formáty uložení dat. Vyjádření hodnot datového typu. Vyjádření hodnot datového typu. Datové formáty. Výpočetní technika I
Osnova přednášky 2/36 Formáty uložení dat Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelucz vyjádření hodnot datového typu formátová specifikace textový a binární formát otevřený a
VíceDokumentace zápočtového programu (PRG030) KOMPRESE TEXTU
Dokumentace zápočtového programu (PRG030) KOMPRESE TEXTU Petr Koupý, INF 1/X/32 Anotace Program je primárně navržen ke komprimování textových souborů. Protože však místo textových znaků pracuje přímo s
VíceČíselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy
Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah
Více2.17 Archivace a komprimace dat
Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín
Více63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
VíceDynamické programování
Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
VíceInformace v počítači. Výpočetní technika I. Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz
.. Informace v počítači Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelu.cz Osnova přednášky Úvod do teorie informace základní pojmy měření množství informace ve zprávě přenos a kódování
VíceEU-OPVK: VY_32_INOVACE_FIL12 Vojtěch Filip, 2014
Číslo projektu CZ.1.07/1.5.00/34.0036 Tématický celek Inovace výuky ICT na BPA Název projektu Inovace a individualizace výuky Název materiálu Komprese a archivace dat Číslo materiálu VY_32_INOVACE_FIL12
VíceInformace, kódování a redundance
Informace, kódování a redundance INFORMACE = fakt nebo poznatek, který snižuje neurčitost našeho poznání (entropii) DATA (jednotné číslo ÚDAJ) = kódovaná zpráva INFORAMCE = DATA + jejich INTERPRETACE (jak
VíceDIGITÁLNÍ VIDEO. pokus o poodhalení jeho neskutečné obludnosti (bez jednosměrné jízdenky do blázince)
DIGITÁLNÍ VIDEO pokus o poodhalení jeho neskutečné obludnosti (bez jednosměrné jízdenky do blázince) Petr Lobaz, katedra informatiky a výpočetní techniky Fakulta aplikovaných věd, Západočeská univerzita
VíceOsnova přednášky. Informace v počítači. Interpretace dat. Údaje, data. Úvod do teorie informace. Výpočetní technika I. Ochrana dat
Osnova přednášky 2/44 Informace v počítači Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně haluza@mendelucz základní pojmy měření množství informace ve zprávě přenos a kódování dat parita kontrolní
VíceLZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora
KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz
Více1. Základy teorie přenosu informací
1. Základy teorie přenosu informací Úvodem citát o pojmu informace Informace je název pro obsah toho, co se vymění s vnějším světem, když se mu přizpůsobujeme a působíme na něj svým přizpůsobováním. N.
VíceKódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP
Kódy pro odstranění redundance, pro zabezpečení proti chybám Demonstrační cvičení 5 INP Princip kódování, pojmy Tady potřebujeme informaci zabezpečit, utajit apod. zpráva 000 111 000 0 1 0... kodér dekodér
VíceEXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek
EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření Jan Krystek 9. května 2019 CHYBY A NEJISTOTY MĚŘENÍ Každé měření je zatíženo určitou nepřesností způsobenou nejrůznějšími negativními vlivy,
VíceArchitektura Intel Atom
Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí
VíceÚloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
VíceČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod
VíceTECHNICKÁ UNIVERZITA V LIBERCI
TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky a mezioborových inženýrských studií Komprese měřených dat v 0.1 Liberec 2007 Viktor Bubla Obsah 1 Proč komprimace? 2 2 Filosofie základních komprimačních
VíceInženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.
Přednáška č. 1 Úvod do statistiky a počtu pravděpodobnosti Statistika Statistika je věda a postup jak rozvíjet lidské znalosti použitím empirických dat. Je založena na matematické statistice, která je
VíceNeuronové časové řady (ANN-TS)
Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
VíceKvantové algoritmy a bezpečnost. Václav Potoček
Kvantové algoritmy a bezpečnost Václav Potoček Osnova Úvod: Kvantové zpracování informace Shorův algoritmus Kvantová distribuce klíče Post-kvantové zabezpečení Úvod Kvantové zpracování informace Kvantový
Více12. Globální metody MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceČÍSELNÉ SOUSTAVY PŘEVODY
ČÍSELNÉ SOUSTAVY V každodenním životě je soustava desítková (decimální, dekadická) o základu Z=10. Tato soustava používá číslice 0, 1, 2, 3, 4, 5, 6, 7, 8 a 9, není však vhodná pro počítače nebo číslicové
VíceUNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek
UNIVERZITA PARDUBICE Licenční Studium Archimedes Statistické zpracování dat a informatika 4.4 Aproximace křivek a vyhlazování křivek Mgr. Jana Kubátová Endokrinologický ústav V Praze, leden 2012 Obsah
VíceKonverze grafických rastrových formátů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE Konverze grafických rastrových formátů semestrální práce Jakub Hořejší Ondřej Šalanda V
VíceData v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
VíceTechnická kybernetika. Obsah. Principy zobrazení, sběru a uchování dat. Měřicí řetězec. Principy zobrazení, sběru a uchování dat
Akademický rok 2016/2017 Připravil: Radim Farana Technická kybernetika Principy zobrazení, sběru a uchování dat 2 Obsah Principy zobrazení, sběru a uchování dat strana 3 Snímač Měřicí řetězec Měřicí obvod
VíceVyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Vyhledávání v textu doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 9. března 209 Jiří Dvorský (VŠB TUO) Vyhledávání v textu 402
VíceKOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut.
1/24 KOMPRESE OBRAZŮ Václav Hlaváč Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD 2/24 Cíl:
VíceGIS Geografické informační systémy
GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu
VíceKOMBINAČNÍ LOGICKÉ OBVODY
Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty
VíceGIS Geografické informační systémy
GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu
Více24.11.2009 Václav Jirchář, ZTGB
24.11.2009 Václav Jirchář, ZTGB Síťová analýza 50.let V souvislosti s potřebou urychlit vývoj a výrobu raket POLARIS v USA při závodech ve zbrojení za studené války se SSSR V roce 1958 se díky aplikaci
VíceKódováni dat. Kódy používané pro strojové operace
Kódováni dat Před zpracováním dat například v počítači je třeba znaky převést do tvaru, kterému počítač rozumí, tj. přiřadit jim určité kombinace bitů. Tomuto převodu se říká kódování. Kód je předpis pro
VíceTel.: (+420)
Internet a zdravotnická informatika ZS 2007/2008 Zoltán Szabó Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz č.dv.: : 504, 5.p Dnešní přednáška Komunikace Standard, doporučení, norma Český normalizační
Více