Add 'sk1/README.md'
This commit is contained in:
parent
68e099b555
commit
621105b2f0
55
sk1/README.md
Normal file
55
sk1/README.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Zadanie
|
||||||
|
|
||||||
|
Naprogramuj nástroj na kompresiu a dekompresiu. Na kompresiu použite jeden alebo viac kompresných algoritmov: Huffmanovo kódovanie, LZ77, LZ78, Run Length kódovanie alebo iný.
|
||||||
|
Meno vstupného a výstupného súboru načítajte ako argument príkazového riadka. V zadaní by mali byť implementované tieto dve funkcie:
|
||||||
|
|
||||||
|
```C
|
||||||
|
/**
|
||||||
|
* Skomprimuje súbor in a zapíše do súboru out.
|
||||||
|
* @arg in smerník na otvorený vstupný súbor (na čítanie)
|
||||||
|
* @arg out smerník na otvorený výstupný súbor (na zápis)
|
||||||
|
* @return počet bajtov skomprimovaného súboru
|
||||||
|
*/
|
||||||
|
int compress(FILE* in, FILE* out);
|
||||||
|
/**
|
||||||
|
* Dekomprimuje súbor in a zapíše do súboru out.
|
||||||
|
* @arg in smerník na otvorený vstupný súbor (na čítanie)
|
||||||
|
* @arg out smerník na otvorený výstupný súbor (na zápis)
|
||||||
|
* @return počet bajtov dekomprimovaného súboru
|
||||||
|
*/
|
||||||
|
void decompress(FILE* in, FILE* out);
|
||||||
|
```
|
||||||
|
|
||||||
|
Kompresor a dekompresor by mal byť schopný pracovať s ľubovoľným binárnym súborom do 10 MB. Súbor by mal byť po skomprimovaní menší minimálne o 10 percent a po dekomprimovaní by mal byť zhodný s pôvodným súborom. Pri práci s binárnymi súbormi môžete využiť funkcie fopen(), fread() a fwrite().
|
||||||
|
|
||||||
|
Na otestovanie kompresora a dekompresora použite súbory z Cantebury corpus.
|
||||||
|
|
||||||
|
# Stručný opis funkčnosti
|
||||||
|
|
||||||
|
Musíme vytvoriť program, ktorý dokáže komprimovať a dekomprimovať súbory bez straty akýchkoľvek údajov
|
||||||
|
|
||||||
|
# Stručný opis riešenia
|
||||||
|
|
||||||
|
Program používa na kompresiu súborov algoritmus stratovej kompresie dát LZ78. Kombinácie písmen kombinácie a index tejto kombinácie dynamicky uloží do stromu a potom zapíše iba index do súboru.
|
||||||
|
|
||||||
|
# Podmienky za ktorých funguje
|
||||||
|
|
||||||
|
Program dokáže skutočne komprimovať súbory s dobrým opakovaním podobných bajtových sekvencií. Funguje zle s malými súbormi a so súbormi s veľmi rozdielnymi bajtovými sekvenciami
|
||||||
|
|
||||||
|
# Návod na použitie
|
||||||
|
|
||||||
|
- Skompilujte program
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
|
- spustiť program
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./program c vstupný súbor vystupný súbor
|
||||||
|
./program d vstupný súbor vystupný súbor
|
||||||
|
```
|
||||||
|
|
||||||
|
použite c na zakódovanie súboru
|
||||||
|
použite d na dekódovanie súboru
|
Loading…
Reference in New Issue
Block a user