80 likes | 207 Views
RAR jako format kompresji bezstratnej. RAR został stworzony przez Rosjanina Eugene Roshala. Do kompresji danych używa odmiany kompresji LZSS. Jest wolniejszym kompresorem niż ZIP ale jest bardziej skuteczny.
E N D
RAR został stworzony przez Rosjanina Eugene Roshala. Do kompresji danych używa odmiany kompresji LZSS. Jest wolniejszym kompresorem niż ZIP ale jest bardziej skuteczny. Nazwa pochodzi od nazwisk: Cempel-Ziv-Storer-Szymanski i został opracowany i opisany w 1982roku. LZSS jest metodą bezstratnej kompresji danych (Kompresjabezstratnato ogólna nazwa takich metod upakowywania informacji do postaci zawierającej zmniejszoną liczbę bitów tak, aby całą informację dało się z tej postaci odtworzyć do identycznej postaci pierwotnej.)
Algorytm kompresji: • Metoda LZSS używa bufora (zbiera wszystkie informacje wysyłane do odbiorcy i zapamiętuje je, a następnie pod sam koniec skryptu wyświetla zebrane informacje.), podzielonego na część słownikową (przechowującą k ostatnio przetwarzanych symboli, obejmujących indeksy 0 … k-1) oraz bufor wejściowy (przechowujący n symboli, które mają zostać zakodowane, obejmujący indeksy k …k+n – 1). Wartości n i k są dobierane tak, aby były potęgami dwójki. Rozmiar słownika jest dużo większy niż bufora wejściowego, w praktyce ma kilka-kilkadziesiąt kilobajtów. • W każdym kroku algorytmu w słowniku wyszukiwany jest najdłuższy podciąg równy początkowi bufora wejściowego.
Formalnie algorytm kompresji przebiega następująco: • Wypełnij słownik pierwszym symbolem, wypisz ten symbol na wyjście; wypełnij bufor wejściowy n pierwszymi symbolami wejściowymi. • Dopóki w buforze wejściowym są dane: • Wyszukaj w słowniku najdłuższy podciąg równy początkowi bufora wejściowego - wynikiem są liczby P i C. • Jeśli rozmiar pary (P, C) jest mniejszy od rozmiaru znalezionego podciągu, zapisz na wyjście trójkę (0,P,C), przesuń cały bufor o C pozycji w lewo i wprowadź do bufora wejściowego tyle samo kolejnych symboli. • W przeciwnym razie wypisz na wyjście parę (1, S), przesuń cały bufor o 1 pozycję w lewo i wprowadź do bufora wejściowego kolejny symbol wejściowy.
Algorytm dekompresji: • Do dekompresji potrzebny jest bufor o dokładnie takim samym rozmiarze jak przy kompresji; jest on podzielony na słownik (k symboli) i bufor wyjściowy (n symboli). • Wypełnij słownik pierwszym symbolem. • Dla kolejnych danych (par i trójek) powtarzaj: • Jeśli mamy do czynienia z trójką (0,P,C) to skopiuj ze słownika na początek bufora wyjściowego symbole z zakresu , wypisz na wyjście skopiowane symbole i przesuń cały bufor o C pozycji w lewo. • Jeśli mamy do czynienia z dwójką (1,S) to skopiuj symbol S na początek bufora wyjściowego, wypisz na wyjście ten symbol i przesuń cały bufor o jedną pozycję w lewo.
Kompresja stratna W związku iż przy kompresji RAR nie mamy do czynienia ze stratą danych to takie zjawisko możemy zaobserwować przy kompresji plików muzycznych i graficznych. Pliki muzyczne tworzone w formatach wav są niekiedy 7 krotnie większe od plików w formacie mp3, zaś pliki graficzne w formatach gif są średnio o 33% większe od formatu jpg.
WAV a MP3 Dla przykładu stratnej kompresji posłużymy się plikiem muzycznym utworzonym w formacie wav. Jego wielkość wyjściowa to 31,9 Mb. Ten sam utwór po kompresji do formatu mp3 o częstotliwości próbkowania 192 kb/s będzie miał wielkość 4,36 Mb. A więc co za tym idzie:
Pierwszy ze zrzutów ekranu przestawia wygląd utworu zapisanego w wav a następnie w mp3 na podstawie przebiegu czasowego.Drugi zrzut to przebieg spektrum tych samych utworów. Różnice są na widmie spektrum mniej zauważalne jednak na przebiegu czasowym widoczne są zmiany w szerokości pasma.