- Nazwa przedmiotu:
- Kompresja danych
- Koordynator przedmiotu:
- Artur Przelaskowski
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia II stopnia
- Program:
- Elektronika
- Grupa przedmiotów:
- Przedmioty techniczne - zaawansowane
- Kod przedmiotu:
- KODA
- Semestr nominalny:
- 3 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Realizacja przedmiotu obejmuje następujące formy zajęć:
- wykład prowadzony w wymiarze 2 godz. tygodniowo,
- zajęcia projektowe w wymiarze 1 godz. tygodniowo;
- student może ponadto uczestniczyć w cotygodniowych konsultacjach (w wymiarze do 2 godz.).
Bilans nakładu pracy przeciętnego studenta wygląda następująco:
- udział w wykładach: 30 godz.
- przygotowanie do kolejnych wykładów, rozwiązywanie sygnalizowanych na wykładzie problemów: 20 godzin
- udział w zajęciach projektowych (omówienie projektów, wybór tematu, zaliczanie projektu): 3 godziny
- realizacja projektu (analiza teoretyczna, realizacja algorytmiczna, implementacja, eksperymenty, sprawozdanie): 40 godzin
- udział w konsultacjach: 6 godz. (zakładamy, że student sześciokrotnie w ciągu semestru korzysta z 1-godz. konsultacji dot. wykładu i projektu, w proporcjach 1:2)
- przygotowanie do egzaminu końcowego (rozwiązanie zadań przygotowawczych): 15 godzin
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- Łączny nakład pracy studenta wynosi zatem: 30+ 20 + 3 + 40 + 6 + 15 = 114 godz., co odpowiada ok. 4 punktom ECTS.
W ramach tak określonego nakładu pracy studenta:
- nakład pracy związany z zajęciami wymagającymi bezpośredniego udziału nauczycieli akademickich wynosi 30 + 3 + 6 = 39 godz., co odpowiada ok. 1.5 punktom ECTS
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- Nakład pracy związany z zajęciami o charakterze praktycznym wynosi 3 + 40 + 4 = 47 godz., co odpowiada ok. 2 punktom ECTS
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Podstawy przetwarzania danych (obrazów, dźwięku). Podstawy algorytmów i struktur danych. Podstawy probabilistyki, algebry liniowej i analizy matematycznej.
- Limit liczby studentów:
- 100
- Cel przedmiotu:
- Celem jest przekazanie wiedzy i umiejętności z zakresu podstaw teoretycznych oraz metodologii kodowania danych, zasad realizacji prostych algorytmów kompresji, przegląd współczesnych narzędzi i standardów z uwzględnieniem potencjalnych obszarów zastosowań, analiza możliwości oraz kryteriów i sposobów doboru koderów optymalnych dla określonego rodzaju danych, a także sformułowanie współczesnych paradygmatów kompresji. Wśród prezentowanego zarysu teorii użytecznych znajdują się przede wszystkim podstawy teorii informacji w zakresie modeli i reguł obejmujących kodowanie odwracalne oraz zniekształcenia źródeł informacji. Uzupełniają je wybrane zagadnienia analizy funkcjonalnej, teorii aproksymacji oraz przetwarzania i analizy obrazów. Wśród metod omawiane są zasady tworzenia kodów jednoznacznie dekodowalnych, sposoby redukcji nadmiarowości w reprezentacji danych tekstowych, obrazowych, przestrzennych, sekwencji obrazów. Na przykładzie kodu Huffmana oraz arytmetycznego analizowane są problemy związane z implementacją kodeków, ich optymalizacją i pragmatycznym upraszczaniem teoretycznych założeń.
- Treści kształcenia:
- Treść wykładu:
- Wprowadzenie: przegląd różnego typu danych i zbiorów danych oraz formatów ich zapisu, występujących w systemach informatycznych (głównie pliki tekstowe i graficzne, dźwięk, obrazy naturalne, medyczne, czarno-białe, wideo); podstawowe pojęcia z dziedziny kompresji, rozwój nowoczesnych metod kompresji (2h);
- Podstawy teorii informacji: definicje informacji, nadmiarowość, kanał informacji, modele źródeł informacji (m.in. źródło Markowa), miary ilości informacji, twierdzenia o kodowaniu źródeł, reguły i ograniczenia efektywnego kodowania danych, kody jednoznacznie dekodowalne, praktyczne wykorzystanie modeli teoretycznych - kody optymalne, (3h);
- Podstawowe metody kodowania odwracalnego: schematy ogólne i paradygmaty bezstratnych metod kompresji, kodery długości sekwencji, Shannona-Fano, Huffmana (statyczny i dynamiczny), Golomba, przekształcenia BWT i adaptacyjne modele kontekstowe (3h);
- Efektywne metody bezstratnej kompresji danych: kodowanie arytmetyczne (m.in. szybkie kodeki binarne typu BAC i FBAC), słownikowe (m.in. przegląd archiwizerów rodziny ZIP), metody predykcyjne (wstecz, wprzód, DPCM, nieliniowe,), analiza porównawcza skuteczności znanych narzędzi kompresji dla różnego typu danych, przegląd dostępnych bibliotek (m.in. ZLIB, BZIP2, QccPack) (6h);
- Wybrane standardy odwracalnej kompresji obrazów: predykcja 2-D (adaptacyjne modele przełączane, HINT, kilkuetapowe), modelowanie i kwantyzacja kontekstu (CALIC, JPEG-LS), standardy GIF, PNG, JPEG-LS, JBIG (2h);
- Podstawy metod selekcji informacji: teoria zniekształceń źródeł informacji, optymalizacja R-D, średnia informacja wzajemna, metody kwantyzacji, kryteria i metody oceny jakości rekonstrukcji danych, podstawowe cechy skutecznych algorytmów kompresji – elastyczność, interakcja, skalowalność, hierarchia informacji, zagnieżdżanie kodu, sterowana średnia bitowa (2h);
- Metody kompresji nieodwracalnej: stratna predykcja (JPEG-LS), BTC, wektorowa kwantyzacja, kodowanie transformacyjne z DCT (standard JPEG), modyfikacje JPEG-XR, z analizą wielorozdzielczą (EZW, JPEG2000), kompresja map bitowych (JBIG), zasady kodowania dźwięku (AAC), kodowanie wideo (MPEG-2, AVC) (7h);
- Optymalizacja kodeka obrazów: zalety falkowej metody SPIHT, rozszerzenia standardu JPEG2000 (do transmisji bezprzewodowej, kompresji danych przestrzennych, sekwencji obrazów, zabezpieczenia danych), najnowsze koncepcje zaawansowanych koderów obrazów (AIC) (3h);
- Przykłady zastosowań multimedialnych: archiwizacja z kompresją i indeksowaniem, interakcyjne protokoły transmisji obrazów (JPIP) oraz progresja i skalowanie informacji do celów telekonsultacji (2h).
Zakres projektu:
Zadania projektowe obejmują takie aktywności jak studia literaturowe, opracowanie koncepcji i algorytmów kodowania, implementacja poznanych metod kompresji, analiza najnowszych standardów, formatów czy narzędzi (w zakresie algorytmów, dostępnych pakietów oprogramowania, optymalizacja i modyfikacja dostępnych bibliotek, implementacje sprzętowe, projektowanie i realizacja testów weryfikacji narzędzi. Treść poszczególnych zadań projektowych, stale aktualizowanych, należy do jednej z kilku zasadniczych grup tematycznych:
- samodzielna realizacja prostych aplikacji kodeków (według kodu Huffmana, arytmetycznego, Golomba, słownikowego, predykcji, RLE, wykorzystującego BWT) oraz narzędzi wspomagających (do liczenia entropii, do eksperymentalnej weryfikacji określonych kodeków);
- realizacja kodeków złożonych (archiwizery, CALIC, JPEG-LS, kodek falkowy, kodek obrazów z serializacją, JPEG-XR, JPEG2000) oraz monitorów śledzących działanie wybranego algorytmu - z możliwością wykorzystania zewnętrznych bibliotek;
- optymalizacja i testy kodeków złożonych, z wykorzystaniem dostępnych pakietów oprogramowania (JPEG2000, MPEG-2 i MPEG-4, DIRAC, SNOW, kodeki dźwięku CAC, AAC, AC-3, Vobis itp.);
- analiza teoretyczna w zakresie wybranych zagadnień (podstaw wykorzystywanych teorii, specyficznych zastosowań – np. kompresji grafiki, systemy telemedyczne, itd.) i dostępnych narzędzi i usług bazujących na algorytmach kodowania.
- Metody oceny:
- Przedmiot jest zaliczany na podstawie wyników z egzaminu oraz zaliczenia projektu. Ocena końcowa jest średnią ocen uzyskanych z egzaminu oraz projektu.
Egzamin jest oceną pisemnej umiejętności rozwiązywania krótkich
zadań problemowych z zakresu prezentowanej wiedzy.
W ramach projektu student realizuje wybrane zadania z elementami analizy teoretycznej, praktycznej realizacji oraz eksperymentalnej weryfikacji.
- Egzamin:
- tak
- Literatura:
- 1. Przelaskowski A., "Kompresja danych: podstawy, metody bezstratne, kodery obrazów", Wydawnictwo BTC, str. 258, 2005.
2. A.Przelaskowski, "Kompresja danych", skrypt internetowy, http://www.ire.pw.edu.pl/~arturp/Dydaktyka/koda/skrypt.html
3. A. Przelaskowski, "Falkowe metody kompresji danych obrazowych", Prace Naukowe – Elektronika, z. 138, Oficyna Wydawnicza PW, 2002.
4. K. Sayood, "Kompresja danych. Wprowadzenie", READ ME, 2002.
5. W. Skarbek, "Metody reprezentacji obrazów cyfrowych", Akademicka Oficyna Wydawnicza PLJ, W-wa 1993.
6. W. Skarbek (red.), "Multimedia. Algorytmy i standardy kompresji", Akademicka Oficyna Wydawnicza PLJ, W-wa 1998.
7. A. Drozdek, "Wprowadzenie do kompresji danych", WNT, 1999.
8. M. Domański, "Zaawansowane techniki kompresji obrazów i sekwencji wizyjnych", Wydawnictwo Politechniki Poznańskiej, 2000.
9. D. Salomon, "A concise introduction to data compression", Springer, 2008.
10. M. Nelson, "The Data Compression Book", M&T Books, 1991.
11. M. Rabbani, P. W. Jones, "Digital Image Compression Techniques", SPIE Press, 1991.
- Witryna www przedmiotu:
- http://www.ire.pw.edu.pl/~arturp/Dydaktyka/koda/download_koda.php
- Uwagi:
- Szczególny nacisk położony jest na analizę koderów danych obrazowych, modelowanie danych w przestrzeni obrazu, kontekstowe kodowanie binarne, a także na dobór efektywnych przekształceń w transformacyjnych metodach kodowania. Studenci poznają szczególnie efektywne rozwiązania koderów (np. CALIC, EZW, SPIHT,JPEG-LS), popularne standardy i formaty (ZIP, GIF, PNG, AAC, JPEG, JPEG2000, JBIG, MPEG-2, AVC), jak i nowe propozycje (JPEG_XR, AIC). Metody kompresji omawiane są na poziomie algorytmu, niekiedy kodu źródłowego w C/C++, szczegółów aplikacyjnych, kosztów czasowych i sprzętowych, użyteczności oraz możliwych modyfikacji. Szczególnie istotne jest omówienie kluczowych paradygmatów, porządkujących i systematyzujących najbardziej obiecujące koncepcje kodowania.
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka W1
- Student, który zaliczył przedmiot potrafi syntetycznie scharakteryzować podstawy teorii kompresji danych, obejmujące zasadnicze elementy teorii informacji, teorii zniekształceń źródeł informacji oraz teorii aproksymacji
Weryfikacja: egzamin
Powiązane charakterystyki kierunkowe:
K_W01
Powiązane charakterystyki obszarowe:
- Charakterystyka W2
- Student, który zaliczył przedmiot zna podstawowe algorytmy kompresji danych, bezstratnej i z selekcja informacji, a także obowiązujące paradygmaty kompresji oraz metody kompresji wykorzystywane w standardach rodziny JPEG i MPEG
Weryfikacja: egzamin
Powiązane charakterystyki kierunkowe:
K_W01, K_W04, K_W06
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - umiejętności
- Charakterystyka U1
- potrafi projektować i realizować algorytmy wybranych metod kompresji danych, dobierać parametry i formy implementacji metod znanych, a także realizować własne pomysły w zakresie kompresji danych
Weryfikacja: egzamin/zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U01, K_U07, K_U09
Powiązane charakterystyki obszarowe:
- Charakterystyka U2
- potrafi wykorzystać potencjał metod kompresji w określonych zastosowaniach oraz dobrać metodę lub narzędzie kompresji do zastosowania wykorzystując znane cechy algorytmów oraz właściwości możliwych do wykorzystania modeli źródeł informacji
Weryfikacja: egzamin/zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U01, K_U08, K_U09
Powiązane charakterystyki obszarowe:
- Charakterystyka U3
- potrafi ocenić skuteczność metod kompresji dobierając właściwą miarę, kryterium, zbiór testowy oraz procedurę testu weryfikacyjnego
Weryfikacja: egzamin/zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_U01, K_U07, K_U09, K_U10, K_U12
Powiązane charakterystyki obszarowe:
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka K1
- potrafi sprawozdać rezultaty pracy własnej i zespołowej oraz konfrontować rezultaty pracy własnej i zespołowej ze specyfiką zastosowań
Weryfikacja: zaliczenie projektu
Powiązane charakterystyki kierunkowe:
K_K01
Powiązane charakterystyki obszarowe: