pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

Podobne dokumenty
LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe

Kodowanie informacji

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

Kodowanie informacji. Kody liczbowe

Zeszyt odchudzania: Moja droga do sukcesu. czyli osiągnięcie wymarzonej figury

Biblioteka standardowa - operacje wejścia/wyjścia

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Temat: Algorytm kompresji plików metodą Huffmana

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

WYKAZ OSÓB, KTÓRE BĘDĄ UCZESTNICZYĆ W WYKONYWANIU ZAMÓWIENIA

AKD Metody słownikowe

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Systemy liczenia. 333= 3*100+3*10+3*1

Kody Tunstalla. Kodowanie arytmetyczne

wagi cyfry pozycje

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Podstawy Informatyki

I znowu można jak w C, za pomocą starych struktur i metod:

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Program 14. #include <iostream> #include <ctime> using namespace std;

Teoria Informacji i Metody Kompresji Danych

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

LUBELSKA PRÓBA PRZED MATURĄ

Logiczny model komputera i działanie procesora. Część 1.

Kodowanie informacji

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

VII. Ciągi znaków łańcuchy

Spis treści. I. Czym jest Indeks Haseł 3 II. Wyszukiwanie hasła 4. 1) Alfabetyczna lista haseł 4 2) Wyszukiwarka haseł 4 3) Grupy haseł 6

Inicjacja tablicy jednowymiarowej

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Kodowanie Shannona-Fano

Wstęp do Informatyki

Spis treści Dział pierwszy. Przepisy ogólne Dział drugi. Stosunek pracy

Laboratorium przedmiotu Technika Cyfrowa

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

lekcja 8a Gry komputerowe MasterMind

Kliknij ikonę Zarejestruj się na samym dole. Rejestr wyśle na Twoją pocztę ową podaną w arkuszu rejestrowym link aktywacyjny.

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski.

d) a n = e) a n = n 3 - n 2-16n + 16 f) a n = n 3-2n 2-50n +100

Programowanie 2 - Tablice i łańcuchy

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Algorytmy i struktury danych

Arytmetyka komputera

Pliki. Informacje ogólne. Obsługa plików w języku C

Techniki multimedialne

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

(13) B1 PL B1 RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) fig. 1

Wprowadzenie do maszyny Turinga

Instrukcja poruszania się po katalogu on-line

EGZAMIN MATURALNY Z INFORMATYKI

Spis treści. Art

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

1. Operacje logiczne A B A OR B

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

while(wyrażenie) instrukcja

LUBELSKA PRÓBA PRZED MATURĄ

Wydział Matematyki I Informatyki ul. Słoneczna Olsztyn

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

ROZPORZĄDZENIE MINISTRA ZDROWIA 1) z dnia 29 września 2011 r.

I. Oprocentowanie obowiązujące dla lokat przyjmowanych od r.

Stałe i zmienne znakowe. Stała znakowa: znak

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

ZADANIE 1. Rozwiązanie:

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Streszczenie Komputery do przechowywania rysunków, zdjęć i innych obrazów używają tylko liczb. Te zajęcia mają ukazać w jaki sposób to robią.

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Podstawowe pojęcia. Teoria informacji

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

Zmienne i struktury dynamiczne

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Języki formalne i automaty Ćwiczenia 4

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

ROZPORZĄDZENIE MINISTRA ZDROWIA 1) z dnia 29 września 2011 r.

Jak złoŝyć wniosek w Programie Równać Szanse 2009 Regionalny Konkurs Grantowy instrukcja postępowania z elektronicznym systemem naboru wniosków

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

ROZPORZĄDZENIE MINISTRA ZDROWIA. z dnia 29 września 2011 r.

INWENTARYZACJA W PROGRAMIE INTEGRA

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

LICZBY ZMIENNOPRZECINKOWE

Technologia znaku wodnego dla plików dźwiękowych: Legimi Audio Watermark

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Instrukcja dla koordynatorów wydziałowych i kierunkowych

Transkrypt:

komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego równą długości bufora wejściowego równą 4. pierwsze cztery pozycje naleŝą do bufora słownikowego, kolejne cztery naleŝą do bufora wejściowego. pobieramy pierwszą literę komunikatu i zapisujemy ją na wyjście. pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy. a a a a 0 (0) 1 (0) 2 (0) 3 (0) do bufora wejściowego wpisujemy pierwsze cztery litery komunikatu. a a a a a a b a 0 (0) 1 (0) 2 (0) 3 (0) 0 (0) 1 (1) 2 (2) 3 (3) a a a a a a b a 0 (0) 1 (0) 2 (0) 3 (0) 0 (0) 1 (1) 2 (2) 3 (3) zauwaŝmy, Ŝe podciąg aa moŝna znaleźć w buforze słownikowym na 3 (a nawet 4) sposoby! kodujemy znaleziony podciąg w następujący sposób: (1, 2, b) i zapisujemy kod na wyjście. pierwszy element trójki "mówi" w którym miejscu w buforze słownikowym zaczyna się szukany podciąg. drugi element trójki "mówi" jak długi jest szukany podciąg. wersja: 20080108 strona 1

trzeci element trójki "mówi" jaka litera następuje bezpośrednio po szukanym podciągu w buforze wejściowym. przesuwamy elementy w buforach w lewo o drugi element trójki powiększony o jeden (przesuwamy o 2+1). a a a b a 0 (0) 1 (0) 2 (1) 3 (2) 0 (3) 1 2 3 uzupełniamy powstałe puste pozycje w buforze wejściowym kolejnymi literami komunikatu. a a a b a b b a 0 (0) 1 (0) 2 (1) 3 (2) 0 (3) 1 (4) 2 (5) 3 (6) a a a b a b b a 0 (0) 1 (0) 2 (1) 3 (2) 0 (3) 1 (4) 2 (5) 3 (6) kodujemy znaleziony podciąg w następujący sposób: (2, 2, b) i zapisujemy kod na wyjście. przesuwamy elementy w buforach w lewo o o 2+1 i uzupełniamy bufor wejściowy. b a b b a b a c 0 (2) 1 (3) 2 (4) 3 (5) 0 (6) 1 (7) 2 (8) 3 (9) b a b b a b a c 0 (2) 1 (3) 2 (4) 3 (5) 0 (6) 1 (7) 2 (8) 3 (9) kodujemy znaleziony podciąg w następujący sposób: (1, 2, a) i zapisujemy kod na wyjście. przesuwamy elementy w buforach w lewo o o 2+1 i uzupełniamy bufor wejściowy. b a b a c c a b 0 (5) 1 (6) 2 (7) 3 (8) 0 (9) 1 (10) 2 (11) 3 (12) wersja: 20080108 strona 2

nie znaleźliśmy Ŝadnego podciągu w buforze słownikowym pasującego do jakiegokolwiek prefiksu w buforze wejściowym! w takiej sytuacji kodujemy ciąg o zerowej długości w następujący sposób: (1, 0, c) i zapisujemy kod na wyjście. zwróćmy uwagę, Ŝe pierwszy element trójki moŝe być dowolny (jest to pewna nadmiarowość rozwiązana w kolejnych metodach LZ). istotny jest drugi element trójki, który mówi, Ŝe podciąg ma zerową długość. trzeci element trójki zapisujemy standardowo, czyli podajemy literę następującą bezpośrednio po podciągu (tutaj o zerowej długości), czyli c. przesuwamy (jak zwykle) elementy w buforach o drugi element trójki powiększony o jeden, czyli o 0+1. a b a c c a b a 0 (6) 1 (7) 2 (8) 3 (9) 0 (10) 1 (11) 2 (12) 3 (13) a b a c c a b a 0 (6) 1 (7) 2 (8) 3 (9) 0 (10) 1 (11) 2 (12) 3 (13) kodujemy znaleziony podciąg w następujący sposób: (3, 1, a) i zapisujemy kod na wyjście. przesuwamy elementy w buforach w lewo o o 1+1 i uzupełniamy bufor wejściowy. a c c a b a a a 0 (8) 1 (9) 2 (10) 3 (11) 0 (12) 1 (13) 2 (14) 3 (15) ponownie w buforze słownikowym nie ma podciągu pasującego do jakiejkolwiek długości prefiksu w buforze wejściowym. kodujemy ciąg o zerowej długości w znany juŝ sposób: (3, 0, b), zapisujemy kod na wyjście i przesuwamy elementy w buforach o 1. wersja: 20080108 strona 3

c c a b a a a a 0 (9) 1 (10) 2 (11) 3 (12) 0 (13) 1 (14) 2 (15) 3 (16) c c a b a a a a 0 (9) 1 (10) 2 (11) 3 (12) 0 (13) 1 (14) 2 (15) 3 (16) kodujemy znaleziony podciąg w następujący sposób: (2, 1, a), zapisujemy kod na wyjście i przesuwamy elementy w buforze o 2. a b a a a a a c 0 (11) 1 (12) 2 (13) 3 (14) 0 (15) 1 (16) 2 (17) 3 (18) a b a a a a a c 0 (11) 1 (12) 2 (13) 3 (14) 0 (15) 1 (16) 2 (17) 3 (18) znaleźliśmy podciąg trójelementowy! część podciągu znalezionego w buforze słownikowym pokrywa się z buforem wejściowym. taki podciąg kodujemy w taki sam sposób, czyli: (2, 3, c) i zapisujemy kod na wyjście. elementy buforów słownikowego i wejściowego przesuwamy o 4 pozycje. a a a c a c b c 0 (15) 1 (16) 2 (17) 3 (18) 0 (19) 1 (20) 2 (21) 3 (22) a a a c a c b c 0 (15) 1 (16) 2 (17) 3 (18) 0 (19) 1 (20) 2 (21) 3 (22) kodujemy znaleziony podciąg w następujący sposób: (2, 2, b), zapisujemy kod na wyjście i przesuwamy elementy w buforze o 3. wersja: 20080108 strona 4

c a c b c b b c 0 (18) 1 (19) 2 (20) 3 (21) 0 (22) 1 (23) 2 (24) 3 (25) c a c b c b b c 0 (18) 1 (19) 2 (20) 3 (21) 0 (22) 1 (23) 2 (24) 3 (25) kodujemy znaleziony podciąg w następujący sposób: (2, 2, b), zapisujemy kod na wyjście i przesuwamy elementy w buforze o 3. b c b b c c a a 0 (21) 1 (22) 2 (23) 3 (24) 0 (25) 1 (26) 2 (27) 3 (28) b c b b c c a a 0 (21) 1 (22) 2 (23) 3 (24) 0 (25) 1 (26) 2 (27) 3 (28) kodujemy znaleziony podciąg w następujący sposób: (1, 1, c), zapisujemy kod na wyjście i przesuwamy elementy w buforze o 2. b b c c a a c b 0 (23) 1 (24) 2 (25) 3 (26) 0 (27) 1 (28) 2 (29) 3 (30) ponownie w buforze słownikowym nie ma podciągu pasującego do jakiegokolwiek prefiksu. kodujemy więc ciąg o zerowej długości: (0, 0, a) i zapisujemy kod na wyjście. przesuwamy elementy w buforach o drugi element trójki powiększony o jeden, czyli o 0+1. b c c a a c b a 0 (24) 1 (25) 2 (26) 3 (27) 0 (28) 1 (29) 2 (30) 3 (31) wersja: 20080108 strona 5

b c c a a c b a 0 (24) 1 (25) 2 (26) 3 (27) 0 (28) 1 (29) 2 (30) 3 (31) kodujemy znaleziony podciąg w następujący sposób: (3, 1, c), zapisujemy kod na wyjście i przesuwamy elementy w buforze o 2. c a a c b a 0 (26) 1 (27) 2 (28) 3 (29) 0 (30) 1 (31) 2 3 nie znaleźliśmy literki b, więc kodujemy podciąg o zerowej długości: (1, 0, b) i zapisujemy kod na wyjście. przesuwamy elementy w o 0+1. a a c b a 0 (27) 1 (28) 2 (29) 3 (30) 0 (31) 1 2 3 znaleźliśmy literę a i kodujemy ją jako ciąg jednoelementowy: (0, 1, NULL) i zapisujemy kod na wyjście. na pozycji następującej po zakodowanym podciągu nie znajdowała się juŝ Ŝadna litera, poniewaŝ skończyły się dane wejściowe. w takiej sytuacji naleŝy w jakiś sposób zapisać zakończenie danych wejściowych (np. za pomocą specjalnego znaku). wynik kodowania jest następujący: a (1, 2, b) (2, 2, b) (1, 2, a) (1, 0, c) (3, 1, a) (3, 0, b) (2, 1, a) (2, 3, c) (2, 2, b) (2, 2, b) (1, 1, c) (0, 0, a) (3, 1, c) (1, 0, b) (0, 1, NULL) wersja: 20080108 strona 6

zakodowany komunikat do zdekodowania: a (1, 2, b) (2, 2, b) (1, 2, a) (1, 0, c) (3, 1, a) (3, 0, b) (2, 1, a) (2, 3, c) (2, 2, b) (2, 2, b) (1, 1, c) (0, 0, a) (3, 1, c) (1, 0, b) (0, 1, NULL) 4 5 6 7 8 9 10 11 12 13 14 15 pobieramy literę a i wypełniamy nią bufor: a a a a bufor (pozycje 0, 1, 2, 3) nie są wypisywane na wyjście. pobieramy pierwszy kod: (1, 2, b) pobieramy z bufora kolejne dwie litery, zaczynając od pozycji 1, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a a a a a b przesuwamy indeksy bufora o 3. a a a a a a b pobieramy drugi kod: (2, 2, b) pobieramy z bufora kolejne dwie litery, zaczynając od pozycji 2, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a a a a a b a b b przesuwamy indeksy bufora o 3. a a a a a a b a b b wersja: 20080108 strona 7

pobieramy trzeci kod: (1, 2, a) pobieramy z bufora kolejne dwie litery, zaczynając od pozycji 1, na końcu dopisujemy literę a i to wszystko wypisujemy na wyjście. a a a a a a b a b b a b a przesuwamy indeksy bufora o 3. a a a a a a b a b b a b a w celu zwiększenia czytelności usunę teraz z wyjścia początkowy bufor i dodam więcej pól do wypisania na wyjście: a a b a b b a b a pobieramy czwarty kod: (1, 0, c) pobieramy z bufora kolejne zero liter, zaczynając od pozycji 1, na końcu dopisujemy literę c i to wszystko wypisujemy na wyjście. a a b a b b a b a c przesuwamy indeksy bufora o 1. a a b a b b a b a c pobieramy piąty kod: (3, 1, a) pobieramy z bufora kolejne 1 liter, zaczynając od pozycji 3, na końcu dopisujemy literę a i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a wersja: 20080108 strona 8

przesuwamy indeksy bufora o 2. a a b a b b a b a c c a pobieramy szósty kod: (3, 0, b) pobieramy z bufora kolejne zero liter, zaczynając od pozycji 3, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b przesuwamy indeksy bufora o 1. a a b a b b a b a c c a b pobieramy siódmy kod: (2, 1, a) pobieramy z bufora kolejne 1 liter, zaczynając od pozycji 2, na końcu dopisujemy literę a i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a przesuwamy indeksy bufora o 2. a a b a b b a b a c c a b a a pobieramy ósmy kod: (2, 3, c) pobieramy z bufora kolejne 3 litery, zaczynając od pozycji 2, na końcu dopisujemy literę c i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c w tej sytuacji trzecia litera nie została pobrana z bufora, tylko z juŝ wypełnionego wejścia (traktowanego jako kontynuacja bufora)! wersja: 20080108 strona 9

przesuwamy indeksy bufora o 4. a a b a b b a b a c c a b a a a a a c pobieramy dziewiąty kod: (2, 2, b) pobieramy z bufora kolejne 2 litery, zaczynając od pozycji 2, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b przesuwamy indeksy bufora o 3. a a b a b b a b a c c a b a a a a a c a c b pobieramy dziesiąty kod: (2, 2, b) pobieramy z bufora kolejne 2 litery, zaczynając od pozycji 2, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b c b b przesuwamy indeksy bufora o 3. a a b a b b a b a c c a b a a a a a c a c b c b b pobieramy jedenasty kod: (1, 1, c) pobieramy z bufora kolejne 1 litery, zaczynając od pozycji 1, na końcu dopisujemy literę c i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b c b b c c wersja: 20080108 strona 10

przesuwamy indeksy bufora o 2. a a b a b b a b a c c a b a a a a a c a c b c b b c c pobieramy dwunasty kod: (0, 0, a) pobieramy z bufora kolejne 0 liter, zaczynając od pozycji 0, na końcu dopisujemy literę a i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b c b b c c a przesuwamy indeksy bufora o 1. a a b a b b a b a c c a b a a a a a c a c b c b b c c a pobieramy trzynasty kod: (3, 1, c) pobieramy z bufora kolejne 1 liter, zaczynając od pozycji 3, na końcu dopisujemy literę c i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c przesuwamy indeksy bufora o 2. a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c pobieramy czternasty kod: (1, 0, b) pobieramy z bufora kolejne 0 liter, zaczynając od pozycji 1, na końcu dopisujemy literę b i to wszystko wypisujemy na wyjście. a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b wersja: 20080108 strona 11

przesuwamy indeksy bufora o 1. a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b pobieramy piętnasty kod: (0, 1, NULL) pobieramy z bufora kolejne 1 liter, zaczynając od pozycji 0, na końcu nie dopisujemy nic, poniewaŝ napotkaliśmy NULL. wypisujemy pobraną z bufora jedną literę na wyjście i kończymy działanie algorytmu. a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a odkodowany komunikat wygląda następująco: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 zwróć uwagę, Ŝe przeszliśmy przez proces kodowania i dekodowania, a odkodowany komunikat jest taki, jak ten podany do zakodowania! wersja: 20080108 strona 12

kilka słów o kompresji załóŝmy, Ŝe literę moŝna zakodować na 8 bitach (np. stosując kodowanie ASCII). przy tym załoŝeniu nasz 32 literowy komunikat ma rozmiar 32 bajtów (1 bajt = 8 bitów). kodowane trójki składają się zawsze z dwóch liczb z przedziału od 0 do 3 oraz z litery. liczbę z przedziału od 0 do 3 moŝna zakodować na 2 bitach. całą trójkę moŝna zatem zakodować na 2+2+8 bitach. do zakodowania całego komunikatu uŝyliśmy 16 kodów. 16 * 12 = 192 192 / 8 = 24 zatem do zakodowania całego komunikatu uŝylismy 24 bajtów! 24 / 32 = ~ 0.75 zatem przy pomocy kompresji udało nam się zmniejszyć rozmiar komunikatu do 75% jego oryginalnego rozmiaru! zatem otrzymaliśmy stopień kompresji równy około 25%. wersja: 20080108 strona 13

literatura Adam Drozdek Wprowadzenie do kompresji danych Artur Przelaskowski Kompresja danych wersja: 20080108 strona 14