diff --git a/sk1/README.md b/sk1/README.md index e69de29..a252aef 100644 --- a/sk1/README.md +++ b/sk1/README.md @@ -0,0 +1,54 @@ +Nástroj na kompresiu súborov + +Popis úlohy: + +Tento projekt implementuje nástroj na kompresiu a dekompresiu súborov pomocou dvoch rôznych kompresných algoritmov: Huffmanovo kódovanie a LZ77. Nástroj si poradí s binárnymi súbormi až do veľkosti 10 MB. Komprimovaný súbor by mal byť menší aspoň o 10 % a dekomprimovaný súbor by sa mal presne zhodovať s pôvodným súborom. + +Rozhranie príkazového riadka: +Komprimovať súbor: +./compressor -c vstupný súbor výstupný súbor + +Komprimuje vstupný súbor pomocou zadaného kompresného algoritmu a výsledok zapíše do výstupného súboru. + +Dekomprimovať súbor: +./compressor -d skomprimovaný nekomprimovaný + +Dekomprimuje komprimovaný súbor a výsledok zapíše do nekomprimovaného súboru. + +Pomocník: +./kompresor -h + +Zobrazuje pomoc a informácie o používaní. + +Obmedzenia: +Program pracuje s binárnymi súbormi do 10 MB. +Kompresia by mala zmenšiť veľkosť súboru aspoň o 10 %. +Dekomprimovaný súbor sa musí zhodovať s pôvodným súborom. +Používa iba štandardné knižnice. +Riešenie môže byť inšpirované verejne dostupným kódom, ale musí byť vyvinuté nezávisle a musí odkazovať na všetky takéto zdroje. +Prehľad funkcií +Program ponúka dva kompresné algoritmy: + +Huffmanovo kódovanie: Algoritmus bezstratovej kompresie údajov, ktorý priraďuje vstupným znakom kódy s premenlivou dĺžkou na základe ich frekvencií. +LZ77 Compression: Algoritmus založený na slovníku, ktorý komprimuje údaje nahradením opakovaných výskytov údajov odkazmi na predchádzajúce výskyty vo vstupnom toku. +Prehľad riešení +Riešenie je štruktúrované do niekoľkých komponentov: + +kompresor.h: Obsahuje deklarácie funkcií pre kompresiu a dekompresiu. +kompresor.c: Implementuje kompresné a dekompresné algoritmy. +main.c: Obsahuje hlavnú funkciu, správu vstupov z príkazového riadka a volanie príslušných funkcií. +Makefile: Obsahuje pravidlá zostavovania na zostavenie projektu pomocou príkazu make. +README.md: Dokumentácia vysvetľujúca funkčnosť a dizajn projektu. +Kľúčové funkcie: +compress_1: Komprimuje súbor pomocou Huffmanovho kódovania a zapisuje komprimovaný súbor. +decompress_1: Dekomprimuje súbor, ktorý bol komprimovaný pomocou Huffmanovho kódovania. +compress_2: Komprimuje súbor pomocou LZ77 a zapisuje komprimovaný súbor. +decompress_2: Dekomprimuje súbor, ktorý bol komprimovaný pomocou LZ77. +Predpoklady: +Vstupné súbory sú binárne súbory s maximálnou veľkosťou 10 MB. +Program predpokladá použitie štandardných I/O operácií na čítanie a zápis binárnych dát. +Testovanie +Nástroj bol testovaný pomocou súborov z korpusu Canterbury, aby sa zabezpečila jeho funkčnosť a efektívnosť kompresie. + +Použité zdroje: +Video na YouTube o algoritme fungovania týchto kódovacích algoritmov \ No newline at end of file