Nazwa przedmiotu:
Kompresja danych
Koordynator przedmiotu:
Grzegorz Pastuszak
Status przedmiotu:
Fakultatywny ograniczonego wyboru
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne - zaawansowane
Kod przedmiotu:
KODA
Semestr nominalny:
4 / rok ak. 2018/2019
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 Łączny nakład pracy studenta wynosi zatem: 30+ 20 + 3 + 40 + 6 + 15 = 114 godz., co odpowiada ok. 4 punktom ECTS.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- udział w wykładach: 30 godz. - udział w zajęciach projektowych (omówienie projektów, wybór tematu, zaliczanie projektu): 3 godziny - 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) w sumie 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:
- 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: 4 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) 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 wykładu jest omówienie podstaw teoretycznych oraz metod 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 doboru koderów optymalnych dla określonego rodzaju danych, a także sformułowanie współczesnych paradygmatów kompresji. Zarys użytecznych teorii obejmuje podstawy teorii informacji (modele, reguły kodowania i zniekształceń źródeł) oraz elementy analizy funkcjonalnej, teorii aproksymacji oraz przetwarzania sygnałów. Zagadnienia implementacji omawiane są na przykładzie kodów Huffmana oraz arytmetycznego. Szczególny nacisk położono na analizę kodeków danych obrazowych, modelowanie danych w przestrzeni obrazu, transformacje i kodowanie kontekstowe. Studenci poznają algorytmy m.in. CALIC, EZW, JPEG-LS, JPEG, JPEG2000, JPEG_XR, ZIP, PNG, JBIG, WebP, rodziny MPEG. Spodziewane efekty kształcenia to zdobycie syntetycznej i pragmatycznej wiedzy w zakresie nowoczesnych i użytecznych metod kompresji danych multimedialnych, umiejętność konstrukcji efektywnych algorytmów kompresji różnego przeznaczenia, optymalizacji metod bazujących na otwartych bibliotekach według kryteriów dopasowanych do charakteru zastosowań, a także projektowania i realizacji testów oceny efektywności technik kompresji odwracalnej i nieodwracalnej, z analizą wyników i formułowaniem wniosków.
Treści kształcenia:
Treść wykładu Wprowadzenie: przegląd i charakterystyka różnego typu danych wykorzystywanych do przekazu informacji, form ich reprezentowania (formaty, protokoły) 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, kierunki rozwoju nowoczesnych metod kompresji (2h). Podstawy teorii informacji: definicje informacji, pojęcia nadmiarowości, kanału przekazu informacji, modele źródeł informacji (m.in. źródła 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, WebP, 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 itp.) 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 itp.) 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, strumieniowania w systemach telemedycznych, itd.) i dostępnych narzędzi oraz 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:
https://usosweb.usos.pw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=103D-xxxxx-MSP-KODA; 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_W09, K_W11, K_W04
Powiązane charakterystyki obszarowe: I.P7S_WG
Charakterystyka W2
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_W04, K_W09
Powiązane charakterystyki obszarowe: I.P7S_WG

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_U11, K_U13
Powiązane charakterystyki obszarowe: I.P7S_UK, I.P7S_UW, III.P7S_UW.3.o
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_U07, K_U09, K_U11
Powiązane charakterystyki obszarowe: I.P7S_UK, I.P7S_UW, III.P7S_UW.2.o, III.P7S_UW.1.o, III.P7S_UW.3.o
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_U08, K_U09, K_U10, K_U13
Powiązane charakterystyki obszarowe: I.P7S_UK, I.P7S_UW, III.P7S_UW.3.o, III.P7S_UW.1.o

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: I.P7S_KO