diff --git a/sk1/README.md b/sk1/README.md index 40c1669..91445d5 100644 --- a/sk1/README.md +++ b/sk1/README.md @@ -6,5 +6,31 @@ Na kompresiu použite aspoň dva kompresné algoritmy, napr. : Huffmanovo kódov 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(). Riešenie nesmie využívať inú ako štandardnú knižnicu. + ## Stručný opis funkčnosti +1. Používa sa na ukladanie vstupných údajov, ako je vyrovnávacia pamäť a jej veľkosť a štruktúra. +struct Input + +1. Slúži na uloženie výsledku kompresie, t. j. komprimovanej vyrovnávacej pamäte a jej veľkosti. +struct Output + +1. Obsahuje informácie o aktuálnej opakujúcej sa sekvencii v algoritme RLE vrátane počiatočného znaku, dĺžky a aktuálnej pozície vo výslednom bufferi. +struct RunLengthData + +1. Tieto funkcie implementujú algoritmy kompresie dát LZ78 a RLE. Na vstupe prijímajú vstupnú štruktúru s údajmi, ktoré sa majú komprimovať, a ukazovateľ na výstupnú štruktúru, do ktorej sa zapíše výsledok kompresie. +LZ78compress, RLEcompress + +1. Funkcia komprimuje údaje zo vstupného súboru pomocou algoritmov RLE a LZ78 a potom zapíše komprimované údaje do výstupného súboru. +compress + +1. Program prijíma vstupné parametre z príkazového riadku: -c pre kompresiu a -d pre dekompresiu. + + +## Stručný opis riešenia + +Toto riešenie je program na kompresiu súborov pomocou algoritmov kompresie dát LZ78 a RLE. Program spracúva vstupné údaje zo súboru, komprimuje ich pomocou algoritmov LZ78 a RLE a potom komprimované údaje uloží do iného súboru. Na kompresiu sa používajú dátové štruktúry, ako sú vstupné a výstupné štruktúry, ako aj štruktúry na správu slovníka podreťazcov počas procesu kompresie. Algoritmy kompresie údajov sú implementované vo funkciách LZ78compress a RLEcompress, ako aj vo funkcii compress. + + +## Podmienky za ktorých funguje +