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

Podobne dokumenty
AKD Metody słownikowe

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 6 Metody predykcyjne. Przemysław Sękalski.

Kodowanie informacji

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

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

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

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

Kodowanie Shannona-Fano

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kodowanie informacji

Przetwarzanie i transmisja danych multimedialnych. Wykład 2 Podstawy kompresji. Przemysław Sękalski.

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

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu

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

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Temat: Algorytm kompresji plików metodą Huffmana

Wprowadzenie Algorytm ByteRun ByteRun - przykład Algorytm RLE Przykład działania RLE Algorytm LZW Przykład kompresji LZW

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

Nierówność Krafta-McMillana, Kodowanie Huffmana

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 3, strona 1.

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

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

Kompresja bezstratna. Entropia. Kod Huffmana

Kody Tunstalla. Kodowanie arytmetyczne

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Kodowanie informacji. Kody liczbowe

Algorytmy i struktury danych

Teoria Informacji - wykład. Kodowanie wiadomości

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

Kwantyzacja wektorowa. Plan 1. Zasada działania 2. Projektowanie. Algorytm LBG 3. Kwantyzatory strukturalne 4. Modyfikacje

Algorytmy kodowania entropijnego

Ćwiczenie nr 4: Kodowanie arytmetyczne, range coder

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Kwantyzacja wektorowa. Kodowanie różnicowe.

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

KOMPRESJA STRATNA I BEZSTRATNA

Kody splotowe. Zastosowanie

Kodowanie predykcyjne

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

Kompresja danych DKDA (7)

Przetwarzanie obrazu cyfrowego

Arytmetyka komputera

ALGORYTMY BEZSTRATNEJ KOMPRESJI DANYCH

Teoria informacji i kodowania Ćwiczenia

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

Tematy projektów Algorytmy Kompresji Danych (2006)

ZADANIE 1. Rozwiązanie:

Algorytmy zachłanne. dr inż. Urszula Gałązka

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Przetwarzanie i transmisja danych multimedialnych. Wykład 10 Kompresja obrazów ruchomych MPEG. Przemysław Sękalski.

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Definicja. Jeśli. wtedy

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Teoria Informacji i Metody Kompresji Danych

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

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

W11 Kody nadmiarowe, zastosowania w transmisji danych

Elementy Teorii Obliczeń

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 KOMPRESJA BEZSTRATNA PLIKÓW ALGORYTM HUFFMANA

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Gramatyki atrybutywne

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Wybrane metody kompresji obrazów

Przetwarzanie i transmisja danych multimedialnych

Matematyczne Podstawy Informatyki

Kodowanie informacji. Przygotował: Ryszard Kijanka

Podstawowe pojęcia. Teoria informacji

Komunikacja człowiek-komputer

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Języki formalne i automaty Ćwiczenia 9

2 Kryptografia: algorytmy symetryczne

Fundamentals of Data Compression

Metody kompresji i przechowywania obrazów

Kodowanie predykcyjne

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

dr inż. Jacek Naruniec

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Architektura komputerów Wykład 2

Tranzystor JFET i MOSFET zas. działania

Detekcja i korekcja błędów w transmisji cyfrowej

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Sławomir Kulesza. Projektowanie automatów synchronicznych

Wykład 5. Kompresja danych

- - Ocena wykonaniu zad3. Brak zad3

0-0000, , , itd

Kompresja obrazów w statycznych - algorytm JPEG

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

Algorytmy i struktury danych. wykład 8

Transkrypt:

Przetwarzanie i transmisja danych multimedialnych Wykład 5 Kodowanie słownikowe Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 1

Plan wykładu Dlaczego warto stosować kodowanie słownikowe? Przykłady róŝnych algorytmów kodowania słownikowego LZ77 LZSS LZ78 LZW Zastosowanie kodowania słownikowego Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 2

Wprowadzenie Kodowanie Huffmana polega na zamianie symbolu s przez przypisanie mu krótszego (z reguły) słowa kodowego k Kodowanie słownikowe wykorzystuje inną zaleŝność: Ciąg symboli o zmiennej długości zastępowany jest indeksem o prawie stałej długości W szczególności budowany jest słownik. Ciąg symboli kodowany jest za pomocą indeksu wskazującego pozycję identycznego ciągu symboli w słowniku. Efektywność mierzona jest jako bitowa długość frazy podzielona przez bitową długość indeksu. Efektywność zaleŝy od słownika. Krótkie indeksy mały słownik, długie frazy lepsza efektywność, nowe frazy konieczność definicji Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 3

Słownik NajwaŜniejszą rzeczą w kodowaniu słownikowym jest odpowiedni dobór słownika!!!! Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 4

Koncepcje słowników Słownik statyczny Słownik zdefiniowany odgórnie, np.: słownik języka polskiego PWN rak konieczności przesyłania słownika pomiędzy koderem a dekoderem Słownik quasi statyczny Słownik zbudowany na podstawie analizy danych, konieczne jest przesłanie słownika pomiędzy koderem a dekoderem Słownik dynamiczny Słownik tworzony na podstawie dekodowanych danych, adaptowany po kaŝdym symbolu, nie ma konieczności przesyłania słownika, wymaga większej mocy obliczeniowej Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 5

LZ77 Zaproponowany przez Lempela i Ziva w 1977 roku, Wykorzystuje dynamiczny słownik, Słownikiem jest okno przesuwne o ustalonej długości, Wykorzystuje model przyczynowy (słownik zaleŝy od ostatnio zakodowanych danych) Rozmiar bufora frazy jest ograniczony Indeks jest złoŝony z: Wskaźnika połoŝenia frazy w słowniku Długości frazy Symbolu następującego po kodowanym łańcuchu Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 6

LZ77 Algorytm LZ77: 1. Ustaw okno na początku danych źródłowych 2. Wyszukaj najdłuŝszy łańcuch danych w buforze, który ma dokładny odpowiednik w słowniku 3. Utwórz słowo kodowe (indeks): (właściwy indeks, długość frazy, następny symbol) 4. Przesuń okno o długość frazy + 1 symboli 5. Powtarzaj od punktu 2, aŝ do zakodowania wszystkich symboli Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 7

Przykład kodowania LZ77 SŁWNIK UFR 123456789012345678901234567890121234567890123456 A_SIĘ_USPKJĘ PEŁNE_STRACHU_CZY_MJE_PEŁNE_GRZY_MYŚLI_M Indeks (9, 7, G ) 123456789012345678901234567890121234567890123456 PKJĘ PEŁNE_STRACHU_CZY_MJE_PEŁNE_GRZY_MYŚLI_MJE_PEŁNE Indeks (10, 1, ) 123456789012345678901234567890121234567890123456 KJĘ PEŁNE_STRACHU_CZY_MJE_PEŁNE_GRZY_MYŚLI_MJE_PEŁNE_T Indeks (16, 4, Y ) Długość indeksu: 5 bitów wskaźnik właściwy, 5 bitów długość frazy, 8 bitów symbol 18 bitów / frazę Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 8

Wady LZ77 graniczona długość kodowanego łańcucha ZłoŜony indeks, szczególnie istotne gdy pojawia się nowy symbol, nie mający odpowiednika w słowniku Indeks nieznanego słowa ma postać (0,0, symbol ), okno przesuwane jest o 1 symbol do przodu Uwzględnienie tylko najbliŝszego kontekstu (ograniczonego przez okno słownika), Proste zwiększanie słownika i bufora nie daje zwiększenia efektywności tylko zwiększa nakłady obliczeniowe, np.: słownik 4096 pozycji, bufor 32 symbole, indeks zajmuje 25 bitów (12, 5, 8). W przypadku frazy 1 elementowej potrzebne jest 25 bitów do opisania 2 symboli (16 bitów) (ekspansja) W przypadku nowego słowa potrzebne jest 25 bitów zamiast 8 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 9

Modyfikacja LZSS Wykorzystuje algorytm LZ77 wprowadzając modyfikacje: 1. Słownik jako drzewo binarne (kolejne frazy umieszczone są w węzłach drzewa) PKJĘ PEŁNE_S KJĘ PEŁNE_ST KJĘ PEŁNE_STR JĘ PEŁNE_STRA 2. Dwa sposoby kodowania sekwencji danych: Frazy krótkie i pojedyncze symbole przepisanie na wyjście Frazy długie indeks właściwy oraz długość frazy Wprowadzony dodatkowy bit do rozróŝnienia sposobu kodowania. it poprzedza kaŝde słowo kodowe! RozróŜnienie między frazą krótką a długą zaleŝy od zastosowania (np. 3 symbole) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 10

Modyfikacja LZFG Długi łańcuch tworzą juŝ 2 symbole Długość frazy zapisywana jest z wykorzystaniem kodów unarnych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 11

LZ78 Własności: Słownik nieograniczony, zewnętrzny, dynamiczny Słownik pusty po inicjacji (NULL na pierwszej pozycji) Indeks moŝe rosnąć nie ma stałego rozmiaru Wpisywane są coraz to dłuŝsze frazy Po zakodowaniu łańcucha wprowadzany jest do słownika pod nowym indeksem (fraza + następny symbol) Długość frazy nie jest limitowana Indeks: (wskaźnik właściwy, następny symbol) MoŜliwość zbytniego rozrastania słownika (konieczne jest jego ograniczanie aby poprawić efektywność) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 12

LZ78 Algorytm: 1. Inicjacja słownika. Pierwsza pozycja NULL. (później ten indeks wykorzystywany jest do wprowadzania nowego symbolu) 2. Przeszukaj aktualny słownik i ustal najdłuŝszy łańcuch z kolejno czytanych symboli zgodny ze słownikiem 3. Utwórz słowo kodowe najdłuŝszego łańcucha: indeks + kolejny symbol 4. Dopisz nową frazę do słownika (z pkt.3) 5. Powtarzaj od punktu 2, aŝ do zakodowania wszystkich symboli na wejściu. Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 13

Przykład Zakodujmy ciąg: AS_EK_CI i Sekwencja wejściowa Sekwencja wyjściowa Słownik Indeks Symbol Indeks fraza 0 0 NULL 1 0 1 2 0 2 3 A 1 A 3 A 4 S 0 S 4 S 5 _ 0 _ 5 _ 6 1 6 7 E 1 E 7 E 8 K 0 K 8 K 9 _ 5 9 _ 10. 2 10. 11 C 0 C 11 C 12 I 0 I 12 I 13 2 EF Źródło: A. Przelaskowski Kompresja danych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 14

LZ78 Wady Początkowo słownik jest mało efektywny (pusty) W przykładzie wymagane jest przekazanie 13 indeksów oraz 12 wpisów do słownika = 25 bajtów (przy załoŝeniu 8 bitów na indeks), a kodowane jest 18 bajtów Indeks rośnie wraz ze słownikiem (ale wykorzystany jest tylko w części), Początkowa nieefektywność słownika jest cechą wspólną wszystkich metod adaptacyjnych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 15

Struktura słownika LZ78 0 Null 1 2 4 S 5 _ 8 K 11 C 12 I 3 A 6 7 E 10 9 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 16

Modyfikacja LZ78 LZW Wstępne zapełnienie słownika wszystkimi symbolami z alfabetu MoŜliwość skrócenia indeksu tylko indeks właściwy ardzo efektywny w przypadku krótkich sekwencji źródłowych LZW jest analogicznym usprawnieniem LZ78 tak jak LZSS jest usprawnieniem dla LZ77 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 17

Kodowanie LZW i Sekwencja wejściowa Sekwencja wyjściowa Pamięć Indeks Słownik fraza 0 0255 Wszystkie symbole z alfabetu źródła 1 INDEKS 256 2 INDEKS 257 3 4 5 6 7 8 9 10 11 12 13 14 15 A S _ E K _ C I INDEKS INDEKS A INDEKS S INDEKS _ 256 INDEKS INDEKS E INDEKS K 261 257 INDEKS C INDEKS I INDEKS A S _ E K _ C I 258 259 260 261 262 263 264 265 266 267 268 269 A AS S E EK K C CI I Źródło: A. Przelaskowski Kompresja danych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 18

Dekodowanie LZW i Indeksy wejściowe Poprzedni indeks wejściowy Sekwencja wyjściowa Pierwszy symbol Indeks Słownik fraza 0 0255 Wszystkie symbole z alfabetu źródła 1 INDEKS 2 3 4 5 6 7 8 9 10 11 12 13 14 15 INDEKS INDEKS INDEKS A INDEKS S INDEKS _ 256 INDEKS INDEKS E INDEKS K 261 257 INDEKS C INDEKS I INDEKS INDEKS INDEKS INDEKS INDEKS A INDEKS S INDEKS _ 256 INDEKS INDEKS E INDEKS K 261 257 INDEKS C INDEKS I A S _ E K _ C I A S _ E K _ C I 256 257 258 259 260 261 262 263 264 265 266 267 268 269. A AS S E EK K C CI I Źródło: A. Przelaskowski Kompresja danych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 19

Wykorzystanie PNG, MNG LZ77 LHA (LHarc 88), zip, gzip, 7zip LZSS + kodowanie Huffmana ARJ LZ77 + kodowanie Huffmana Deflate (ZLI), RAR LZW GIF (opatentowany!) LZW + kodowanie Huffmana Compress, ARC, PKArc, WinZip oraz inne Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 20

Własności cd. Kodowanie słownikowe jest silnie niesymetryczne kodowanie zajmuje duŝo więcej czasu niŝ dekodowanie (nawet 10:1 dla RAR) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 21

Porównanie efektywności Źródło: A. Przelaskowski Kompresja danych Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 22

Dziękuję za uwagę Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 5, 2006 23