Обновить sk1/README.md
This commit is contained in:
parent
ddfe40aa8a
commit
4b78ee30b4
@ -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
|
Loading…
Reference in New Issue
Block a user