Przedmiot: Teoria informacji i kodowania
Zagadnienie: Program realizujący kompresję/dekompresję pliku metodą kodowania słownikowego
Uwaga: do realizacji zadania konieczna jest znajomość metody zaproponowanej przez Lampela i Ziva ( LZ77).
Ćwiczenie laboratoryjne nr 3
Rozszerzyć program o funkcję Kompresuj() realizującą zapis do pliku wyniku działania funkcji NajdluzszaFraza (indeks, długość frazy, następny symbol). Funkcja ma zostać wykonana tylko wówczas, gdy użytkownik uruchomi program z parametrem k.
Uwaga: Zaleca się, aby kontrolować liczbę i dopuszczalne wartości parametrów programu i dopiero w przypadku, gdy użytkownik nie poda żadnych parametrów prosić go o ich wprowadzenie.
W
wersji podstawowej wynik działania funkcji NajdluzszaFraza można zapisać w „postaci
jawnej” (np. do pliku tekstowego lub do pliku binarnego).
W
wersji rozszerzonej wynik działania funkcji NajdluzszaFraza powinien zostać zapisany jako strumień bitowy. W tym celu należy wyznaczyć liczbę bitów potrzebną do zapisania poszczególnych
elementów (indeksu, długości frazy, następnego symbolu), wówczas zapis do pliku można wykonać np.
jednobajtowymi porcjami. Zalecane jest, aby konstrukcja funkcji Kompresuj była „sparametryzowana”
(tzn. aby zmiana liczby elementów słownika i bufora nie powodowała konieczności ingerencji w kod
funkcji – np. wszystkie parametry można zapisać za pomocą dyrektyw #define).
Przykładowe wywołanie programu: C:\>program k c:\plik_we.txt c:\plik_wy.slo