Kompresja sekwencji wideo w systemie Linux

Wielkość: px
Rozpocząć pokaz od strony:

Download "Kompresja sekwencji wideo w systemie Linux"

Transkrypt

1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2011/2012 Praca dyplomowa magisterska Stanisław Ogórkis Kompresja sekwencji wideo w systemie Linux Opiekun pracy: mgr inż. Julian Myrcha Ocena Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Specjalność: Informatyka Inżynieria systemów informatycznych Data urodzenia: 15 lutego 1988 r. Data rozpoczęcia studiów: 1 października 2007 r. Życiorys Nazywam się Stanisław Ogórkis i urodziłem się 15 lutego 1988 r. w Suwałkach. Po ukończeniu gimnazjum, kontynuowałem naukę w I L.O. im. Marii Konopnickiej w Suwałkach. W szkole średniej uczęszczałem do klasy o profilu matematyczno-fizycznym. W październiku 2007 r. rozpocząłem studia na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. W wrześniu 2011 r. obroniłem pracę inżynierską pt. Kompresja falkowa w środowisku NVIDIA CUDA z wynikiem bardzo dobrym podpis studenta Egzamin dyplomowy Złożył egzamin dyplomowy w dn Z wynikiem Ogólny wynik studiów Dodatkowe wnioski i uwagi Komisji

3 Streszczenie Głównym celem pracy jest opracowanie i opisanie metody tworzenia nowych kodeków wideo w systemie operacyjnym Linux. Opisano w niej istniejące w systemie Linux biblioteki i narzędzia wideo. Implementacja wykorzystuje bibliotekę FFmpeg oraz jest zintegrowana z różnymi aplikacjami i bibliotekami. Dodatkowo w ramach wstępu teoretycznego przedstawione są podstawy kompresji wideo, kompensacja ruchu, transformaty sygnału oraz metody kwantyzacji i kodowania bezstratnego. Praca zawiera szczegółową instrukcję dodania nowego kodeka wideo do biblioteki FFmpeg oraz jego integracji z pozostałymi aplikacjami. Wykonany kodek zweryfikowano pod kątem efektywności kompresji i szybkości działania. Słowa kluczowe: kompresja wideo, kompresja stratna, ffmpeg, linux, dwt, kodek arytmetyczny, kwantyzacja. Abstract Title: Video compression in Linux. The main goal of this thesis is to discover and document method of creation video codec in Linux operating system. It describes existing video libraries and tools in Linux system. Implementation uses FFmpeg library and it is integrated with various applications and libraries. Moreover theoretical introduction describes video compression basics, motion compensation, signal transforms, quantization and lossless encoding methods. Thesis contains detailed instruction of adding new video codec to FFmpeg library and its integration with other applications. Developed codec is verified for compression effectiveness and speed. Key words: video compression, lossy compression, ffmpeg, linux, dwt, arith coder, quantization.

4 Spis treści 1 Wstęp Zdefiniowanie problemu Cele pracy Zawartość pracy Podstawy kompresji sekwencji wideo Redundancje sekwencji wideo Przestrzenie barw Miary jakości kompresji wideo Hybrydowy model kompresji stratnej DPCM/DCT Estymacja i kompensacja ruchu Blokowa estymacja ruchu Blokowe algorytmy dopasowania bloku Transformaty sygnału Dyskretna transformata kosinusowa DCT Dyskretna transformata falkowa DWT Metody kwantyzacji Skalarna kwantyzacja równomierna Skalarna kwantyzacja nierównomierna Skalarna kwantyzacja równomierna z rozszerzonym przedziałem zerowym Kwantyzacja wektorowa Etap kodowania bezstratnego Kodowanie RLE Kody zmiennej długości Koder artymetyczny Modelowanie statystyczne Przegląd kodeków wideo w systemie Linux FFmpeg Libav Xvid x

5 7.5 Gstreamer MPlayer ffmpegthumbnailer Opis proponowanego rozwiązania Główne założenia Architektura rozwiązania Implementacja projektu Platforma sprzętowa Narzędzia i biblioteki Dodanie kodeka wideo do FFmpeg Integracja FFmpeg z odtwarzaczem MPlayer Integracja FFmpeg z biblioteką GStreamer Wykorzystanie ffmpegthumbnailer Weryfikacja Zbiór testowy Efektywność kompresji Szybkość działania Podsumowanie

6 1 Wstęp 1.1 Zdefiniowanie problemu Efektywne metody kompresji sekwencji wideo, są kluczowym elementem w współczesnych rozwiązaniach multimedialnych i telekomunikacyjnych. Ograniczone możliwości przechowywania i przesyłania danych, wymagają korzystania z algorytmów kompresji stratnej. Metody bezstratne pozwalają na uzyskanie współczynników kompresji rzędu 3.5 : 1 [8]. W większości zastosowań, identyczna rekonstrukcja sygnału nie jest istotna, ze względu na ograniczone możliwości percepcji obserwatora, który jest końcowym odbiorcą sygnału. Wykorzystanie algorytmów kompresji stratnej pozwala na selektywne odrzucenie części informacji, która jest mało istotna dla odbiorcy. Przekształcony w ten sposób sygnał poddaje się skutecznej kompresji przy użyciu algorytmów kompresji bezstratnej. Dzięki istnieniu wysoce efektywnych kodeków wideo takich jak MPEG4 AVC, możliwe stało się powstanie m.in. takich usług jak telewizja cyfrowa DVB-T, czy strumieniowanie wideo wysokiej jakości przez internet w urządzeniach mobilnych. System operacyjny Linux posiada znaczący zbiór bibliotek i narzędzi wideo. Projekty takie jak FFmpeg, Libav, Xvid czy x264 pozwalają na kodowanie i dekodowanie przy użyciu większości istniejących kodeków wideo i kontenerów multimediów. Rozwiązania te cechują się bardzo wysoką jakością i efektywnością, często lepszą niż rozwiązania komercyjne 1. Dzięki tak bogatym możliwościom, system Linux jest bardzo często wykorzystywany w serwerach strumieniujących multimedia, czy w różnego rodzaju multimedialnych urządzeniach klienckich, np. nowoczesnych telewizorach. Potencjalna liczba odbiorców jest dodatkowo zwiększona poprzez bardzo dużą popularność mobilnego systemu operacyjnego Android, opierającego się na systemie Linux. Wymienione wcześniej projekty, są wykorzystywane również poza systemem Linux, np. przeglądarka Google Chrome wykorzystuje bibliotekę FFmpeg w celu dekodowania strumieni wideo określonych elementem < video > z powstającej specyfikacji HTML5. Otwartość kodu źródłowego rozwiązań wideo w systemie Linux, pozwala na zapoznanie się z ich mechanizmem działania oraz sposobem implementacji. Jest to szczególne przydatne w celach akademickich, umożliwiając rozszerzanie istniejących oraz dodawanie nowych kodeków. Wspomniane wcześniej projekty posiadają dokumentację, która nie zawsze w wystarczającym stopniu wyjaśnia sposób integracji nowego kodeka. Dodatkowo nie istnieje uwspólnione API podobne do DirectShow firmy Microsoft, przez co integracja kodeków z innymi bibliotekami, narzędziami i odtwarzaczami, wymaga często dodatkowych zabiegów. 1 W porównaniu kodeków MPEG AVC, kodek open source x264 wygrywa w większości testów oceniających jakość kompresji [7]. 3

7 1.2 Cele pracy Celem niniejszej pracy jest opracowanie i opisanie metody tworzenia kodeka sekwencji wideo w systemie operacyjnym Linux. Kodek został dodany do biblioteki FFmpeg oraz zintegrowany z aplikacjami oraz innymi bibliotekami. Ze względu na ubogą dokumentację projektu FFmpeg w tym zakresie, szczególny nacisk został położony na przygotowanie szczegółowej instrukcji dodania kodeka oraz jego integracji z aplikacjami korzystającymi z FFmpeg. Może być to szczególnie przydatne dla osób zainteresowanych pracą nad własnymi kodekami. Dodatkowo, opracowany kodek poddano szczegółowej weryfikacji, obejmującej porównanie z istniejącymi rozwiązaniami. Praca zawiera również opis algorytmów oraz metod wykorzystywanych w kompresji wideo. Aby ułatwić ich zrozumienie przedstawiłem kilka przykładów. Materiał ten pozwala zobrazować poszczególne kroki jakie są wykonywane w procesie stratnej kompresji sekwencji wideo i może być użyty w celach dydaktycznych. Opisane są również odtwarzacze, narzędzia i inne biblioteki wideo (poza FFmpeg) dostępne w systemie Linux. 1.3 Zawartość pracy W rozdziale drugim przedstawione są podstawy kompresji wideo, zawierające m.in. informację o redundancjach sekwencji wideo, przestrzeniach barw i miarach jakości. Rozdział trzeci zawiera informację o algorytmach estymacji i kompensacji ruchu. Rozdział czwarty opisuje transformaty sygnału wykorzystywane w kompresji stratnej na przykładzie transformaty kosinusowej DCT i transformaty falkowej DWT. W rozdziale piątym przedstawiono metody kwantyzacji, a w rozdziale szóstym kodowanie bezstratne. Rozdział siódmy zawiera przegląd kodeków i aplikacji wideo w systemie Linux. W rozdziale ósmym przedstawiono opis zaprojektowanego kodeka wideo. Rozdział dziewiąty zawiera informację o implementacji, w tym instrukcję dodania kodeka i jego integracji z aplikacjami. Rozdział dziesiąty przedstawia wyniki testów. Ostatni jedenasty rozdział, zawiera podsumowanie pracy. 4

8 2 Podstawy kompresji sekwencji wideo Zapis sekwencji wideo bez wykorzystania jakichkolwiek metod kompresji cechuje się znaczącą ilością danych niezbędnych do przechowywania. Dla przykładu chcąc zapisać nieskompresowane dane wideo dwugodzinnego filmu w jakości DVD-Video (25 klatek z przeplotem w rozdzielczości 720 x 576 pikseli), należy przeznaczyć na nie ponad 208 gigabajtów pamięci na sam obraz, co znacząco przekracza dostępną pojemność dla nośników DVD 2. Wzrost zapotrzebowania na takie usługi jak telewizja cyfrowa wysokiej jakości HDTV czy wideotelefonia wymaga stosowania skutecznych metod kompresji ze względu na ograniczone pasmo przenoszenia dla tych usług. 2.1 Redundancje sekwencji wideo Naturalne sekwencje wideo charakteryzują się redundancją, co pozwala skutecznie je kompresować. Celem algorytmów kompresji wideo jest jej usunięcie. Wyróżniamy odpowiednio: redundancję przestrzenną (spatial redundancy) Typowe obrazy składają sie z dużych obszarów tła (gradienty) oraz z małej ilości krawędzi. Wartości pikseli w ramce są ze sobą statystycznie skorelowane. Dzięki temu, możemy, np. skutecznie przewidzieć jaki będzie kolejny kodowany piksel. Przy kodowaniu sekwencji wideo proces ten nazywamy predykcją w ramach ramki (intraprediction). Usuwanie redundancji przestrzennej jest podstawą algorytmów kompresji zwykłych obrazów. Poniższy rysunek przedstawia predykcję wartości piksela w standardzie bezstratnej kompresji obrazów JPEG-LS. Rysunek 1: Predykcja wartości piksela X na podstawie kontekstu złożonego z trzech wcześniej zakodowanych pikseli ABC w standarcie JPEG-LS. Odpowiednie funkcje określające wartość można znaleźć w książce [24] 2 Każdy z pikseli przechowuje informację o składowych RGB na trzech bajtach. Dla 120 minutowej sekwencji wideo z 25 klatkami na sekundę musimy zapisać 180 tys. klatek. Sumaryczna niezbędna ilość danych wynosi więc: 720 x 576 x 3 x = GB. 5

9 redundancję temporalną (temporal redundancy) Kolejne ramki sekwencji wideo prawie zawsze przedstawiają tą samą scenę. Kolejno występujące po sobie dwie ramki obrazu są więc ze sobą bardzo silnie skorelowane. Na rysunku 2 załączone są ramki 5 i 6 sekwencji testowej Akiyo przedstawiające prezenterkę telewizyjną w studiu. Powtarzając badanie opisane w książce [34], sprawdziłem dla ilu procent pikseli zmiany jasności wynoszą więcej niż jeden procent przy porównaniu sąsiadujących ramek 3. Dla dwóch wybranych wcześniej ramek zaledwie 0.65 procenta pikseli zmieniło swoją jasność o więcej niż jeden procent. Rysunek 2: Ramki 5 i 6 z sekwencji testowej Akiyo Wybrana sekwencja testowa charakteryzuje się dużą statycznością. Wykres 3 pozwala zauważyć, że przekroczenie wybranego progu dotyczy niewielkiej liczby pikseli. Dla prawie wszystkich ramek obrazu jest ich mniej niż 5%. Dokonując predykcji pikseli w dziedzinie czasu możemy efektywnie skompresować podobne do siebie ramki sekwencji wideo (inter-prediction). Algorytmy analizy i kompensacji ruchu pozwalają skutecznie usunąć redundancję temporalną. Rysunek 3: Wykres zależności procentu pikseli, których zmiana jasności przekracza jeden procent od czasu w sekwencji testowej Akiyo 3 Zastosowałem tu przejście do przestrzeni barw Y C b C r 6

10 redundancję psychowizualną (psychovisual redundancy) Końcowym odbiorcą większości systemów kompresji sekwencji wideo jest człowiek. Należy wiec zwrócić szczególną uwagę na cechy ludzkiego zmysłu wzroku, nazywanego systemem ludzkiego postrzegania (HSV - Human Visual System). Obecnie trwające prace nad ulepszeniem metod kompresji stratnej skupiają się na dwóch głównych kierunkach. Pierwszym z nich jest usprawnianie metod usuwania wspomnianych wcześniej redundancji przestrzennych i temporalnych oraz na doskonalszych metodach kodowania. Drugim kierunkiem jest wykorzystanie niedoskonałości ludzkiego zmysłu wzroku, umożliwiających wprowadzanie zniekształceń w niewidoczny dla obserwatora sposób. W książkach [1] i [29], można znaleźć szczegółowy opis w jaki sposób zachodzi percepcja obrazów przez ludzki zmysł wzroku. Najbardziej istotne dla kompresji cechy to: większa czułość na zmiany jasności niż na zmiany barwy niska zdolność do postrzegania wysokoczęstotliwościowych składowych detali czułość na ruch percepcja jasności ma nieliniową charakterystykę (korekcja gamma) postrzeganie uzależnione od kontrastu - zniekształcenia w bardzo jasnych oraz bardzo ciemnych obszarach są mało widoczne (efekt lumminance masking - rysunek 4) Rysunek 4: Efekt luminance masking ukazany na silnie skompresowanym obrazie Lena. Efekty blokowe są mniej widoczne w rozjaśnionej części obrazu. 7

11 redundancję kodowania (coding redundancy) Przedstawione wcześniej rodzaje redundancji zajmują się nadmiarowością informacji zawartej w sygnale. Redundancja kodowania związana jest z reprezentacją informacji. Uzyskanie jak najmniejszej liczby bitów wymaga jej usunięcia. Dzięki temu, że liczność poszczególnych symboli kodowanego alfabetu jest różna (np. znacząca ilość zer w kodowanym strumieniu), możemy wykorzystać różnego rodzaju metody kompresji bezstratnej. Metody te zostały opisane w rozdziale Przestrzenie barw Przestrzeń barw jest matematycznym modelem umożliwiającym zapisanie informacji o barwie przy pomocy odpowiedniej ilości wartości numerycznych (zazwyczaj trzech bądź czterech), będących składowymi koloru. Zdefiniowana w 1931 r. przez Międzynarodową Komisję Oświetleniową (Commission internationale de l éclairage) przestrzeń XYZ była pierwszą matematycznie opisaną przestrzenią barw [1]. Eksperymenty wykorzystujące kolorymetr pozwoliły zdefiniować opis widocznych przez człowieka barw przy użyciu trzech zmiennych XYZ, które są zależne od sprawności poszczególnych rodzajów receptorów oka. Aby umożliwić wygodniejszy opis wprowadzono przekształcenie do przestrzeni CIE xyy, gdzie zmienne x i y określają chromatyczność, a Y określa luminancję. Umożliwia to graficzną reprezentację widocznej gamy barw przy pomocy wykresu chromatyczności (rysunek 5). Rysunek 5: Wykres chromatyczności widocznych dla człowieka barw. Na zewnętrznej granicy opisane są długości fali elektromagnetycznej w nanometrach odpowiadające poszczególnym barwom. 8

12 2.2.1 RGB Standardowym sposobem na przechowywanie informacji o jasności i barwie jest wykorzystanie przestrzeni barw RGB. W tym systemie, każdy z pikseli jest reprezentowany przez trójkę wartości jasności barw czerwieni, zieleni i niebieskiego. Dzięki temu dość łatwo można wykorzystać ten model do addytywnego wyświetlania kolorów, poprzez sterowanie jasnością odpowiednich barw, jak również do jego akwizycji poprzez odpowiednie filtrowanie. Wybór tych konkretnie barw jest podyktowany fizjologią receptorów ludzkiego oka [1]. Na rysunku 6 przedstawione zostały barwy możliwe do uzyskania w przestrzeni RGB. Warto zauważyć, że mieszając trzy kolory nie jesteśmy w stanie uzyskać wszystkich widocznych dla człowieka barw. Rysunek 6: Wykres chromatyczności z wartościami możliwymi do uzyskania w przestrzeni barw RGB YC b C r Przestrzeń barw YC b C r ze względu na swoje właściwości jest powszechnie wykorzystywanym modelem w dziedzinie kompresji obrazów oraz sekwencji wideo. W składowej Y przechowywana jest informacja o luminancji, natomiast na dwóch pozostałych składowych C b C r informacja o chrominancji. Dzięki temu można w prosty sposób wykorzystać wyższą czułość ludzkiego wzroku na zmiany jasności niż barwy. Przy kompresji należy przeznaczyć więcej bitów na informację o chrominancji kosztem liczby bitów przeznaczonych na chrominancję. Wprowadzone w ten sposób zniekształcenia, będą mniej widoczne niż miałoby to miejsce w przypadku zastosowania modelu RGB, gdzie informacja o jasności jest zawarta w każdej z składowych. Poniżej znajdują się wzory transformacyjne między przestrzeniami RGB oraz YC b C r. 9

13 Y R C b = G C r B R Y G = (C b 128) B (C r 128) (1) Podpróbkowanie chromatyczności YC b C r Zgodnie z opisanym wcześniej systemem ludzkiego postrzegania HSV, ludzki wzrok jest bardziej czuły na zmiany jasności niż chrominancji. Wykorzystując tą cechę, można zmniejszyć rozdzielczość przeznaczoną na składowe chrominancji nie wpływając znacząco na jakość obrazu odbieraną przez obserwatora. Proces ten nazywa się podpróbkowaniem chromatyczności (chroma subsampling) i jest opisywany najczęściej przy użyciu trzech lub czterech cyfr oddzielonych dwukropkami [22]. Na rysunku 7 pokazane są przykładowe wzorce podpróbkowania wraz z opisem numerycznym. Wzorzec 4:4:4 oznacza brak podpróbkowania, czyli chrominancja jest w tej samej rozdzielczości co jasność. Uzyskujemy w ten sposób 24 bity na piksel. Dla metody 4:2:2 zmniejszamy rozdzielczość w poziomie o 2 uzyskując rozdzielczość 16 bitów. W metodzie 4:1:1 dzielimy rozdzielczość w poziomie o 4. Dla wzorca 4:2:0 potrzeba jedynie 6 wartości (4 jasności i 2 chrominancji) do opisania grupy 4 pikseli. Rozdzielczość jest tu podzielona o dwa zarówno dla poziomu jak i pionu. Uzyskujemy w wyniku tej metody jedynie 12 bitów na piksel. Pozycje pikseli C b i C r mogą być przesunięte w stosunku do pikseli jasności. Więcej informacji na temat podpróbkowania chromatyczności znajduje się w książce [22]. Rysunek 7: Metody podpróbkowania chromatyczności YC b C r [22]. 10

14 2.3 Miary jakości kompresji wideo Ocena jakości wideo jest bardzo ważnym problemem przy zastosowaniu kompresji stratnej. Głównym celem koderów jest minimalizacja zniekształceń wprowadzonych w wyniku kompresji. Miary jakości dzielimy na obiektywne i subiektywne. Przyjęcie odpowiedniej miary jakości pozwala na skuteczniejszą kompresję Obiektywne miary jakości Obiektywne miary jakości korzystają z matematycznych modeli, które pozwalają na ich obliczenie w sposób numeryczny na komputerze. Najczęściej stosowane jest porównanie pikseli obrazu nieskompresowanego oraz skompresowanego. Tradycyjnie wykorzystywaną metodą oceny jakości jest miara PSNR (peak signal-to-noise ratio) opisana wzorem: ( ) MAX 2 P SNR = 10 log 10 MSE ( ) MAX = 20 log 10 MSE gdzie M AX to maksymalna jasność piksela, a M SE to błąd średniokwadratowy między obrazem oryginalnym, a zrekonstruowanym. Różna dynamika sygnałów dla których wykorzystuje się tę miarę wymaga, aby była ona wyrażona w skali logarytmicznej. Przy braku zniekształceń MSE wynosi zero i P SNR dąży do nieskończoności. Nieliniowa charakterystyka percepcji jasności sprawia, że miara ta nie odwzorowuje w dokładny sposób oceny jakości obrazu przez obserwatora. Było to motywacją do powstania wielu innych modeli opisanych m.in. w pracy [24] Subiektywne miary jakości Subiektywne miary jakości korzystają bezpośrednio z opinii obserwatorów na temat jakości sekwencji wideo. Przeprowadzenie subiektywnych testów jest kosztowne w dziedzinie czasu i zasobów ludzkich. Pierwszym krokiem przy przeprowadzeniu tego typu testów jest wybranie odpowiednich sekwencji testowych oraz wybranie cech kompresora, które będą badane (np. ocena jakości w zależności od współczynnika kompresji). Następnie należy wybrać grupę osób, która będzie oceniała wyniki działania kodera. W zależności czy testy przeprowadzane są na ekspertach z dziedziny analizy obrazu czy na przypadkowych ludziach, uzyskiwane mogą być zupełnie różne wyniki. Dla przykładu, rozmycie obrazu powstałe w wyniku zastosowania kompresji redukuje naturalne szumy, przez co osoby nie świadome tego zjawiska, często mylą obraz oryginalny z zrekonstruowanym. Po przeprowadzeniu testów dokonywana jest analiza otrzymanych danych. Najczęściej stosuje się w tym przypadku uśrednienie z usunięciem niepewnych próbek (np. osoba która bardzo często zmieniała zdanie w poszczególnych ocenach). Przykładem standardowej metodologi w przeprowadzaniu testów subiektywnych jest rekomendacja Międzynarodowej Unii Telekomunikacyjnej (International Telecommunication Union) ITU-R BT.500 [14]. (2) 11

15 2.4 Hybrydowy model kompresji stratnej DPCM/DCT Aby uzyskać możliwie najkrótszą reprezentację sekwencji wideo, należy usunąć z niej wszystkie opisane wcześniej rodzaje redundancji. Najczęściej stosowanym współcześnie schematem jest hybrydowy model DPCM/DCT (hybrid DPCM/DCT CODEC ). Jest on wykorzystywany w standardach: H.261, H.263, H.264, MPEG-1, MPEG-2, MPEG-4 Visual. Na rysunkach 8 i 9 znajdują się schematy kodera oraz dekodera. Przytaczając zamieszczony w książce [26] opis, koder wykonuje następujące kroki: 1. Podzielenie ramki F n na makrobloki (macroblock) o ustalonej wielkości (np. 16x16). 2. Porównanie makrobloków ramki F n z makroblokami ramki odniesienia F n 1, która w najprostszym schemacie może być po prostu poprzednią ramką. Wykonanie estymacji i kompensacji ruchu generuje wektory przesunięcia MV (motion vector). Uzyskana w wyniku predykcja makrobloku P jest odejmowana od oryginalnego kodowanego makrobloku. 3. Uzyskany różnicowy makroblok D jest dzielony na mniejsze bloki (8x8 albo 4x4) i są one oddzielnie poddawane dyskretnej transformacie kosinusowej DCT. Uzyskane współczynniki są następnie kwantyzowane (X). 4. Kolejność współczynników jest odpowiednio zmieniana i jest kodowana bezstratnie koderem entropijnym. Dla każdego makrobloku kodowane są również informacje związane z wektorami przesunięć oraz danymi nagłówka. 5. Ostatnim krokiem jest przygotowanie ramki odniesienia F n na potrzeby kodowania kolejnych ramek. W tym celu należy wykonać dekwantyzację współczynników X oraz odwrotną transformatę IDCT. Uzyskany różnicowy makroblok D dodawany jest do makrobloku predykcji P w wyniku czego uzyskujemy ramkę odniesienia F n. Rysunek 8: Koder wideo zgodny z modelem hybrid DPCM/DCT [26] 12

16 Dekodowanie przebiega zgodnie z następującymi krokami: 1. Dekodowanie strumienia bitowego zawierającego współczynniki, wektory przesunięć oraz dane nagłówka każdego z makrobloków. 2. Przywrócenie pierwotnej kolejności współczynników. 3. Dekwantyzacja współczynników i transformata odwrotna IDCT. Uzyskujemy w tym momencie różnicowy makroblok D identyczny do tego, który był konstruowany w celu przygotowania ramki odniesienia F n w koderze. 4. Utworzenie makrobloku predykcji P na podstawie ramki odniesienia F n 1 oraz wektora przesunięcia MV. 5. Dodanie makrobloku predykcji P i różnicowego makrobloku D. W wyniku uzyskujemy zrekonstruowany makroblok. Po zdekodowaniu wszystkich makrobloków uzyskujemy zrekonstruowaną ramkę F n. Rysunek 9: Dekoder wideo zgodny z modelem hybrid DPCM/DCT [26] 13

17 3 Estymacja i kompensacja ruchu Algorytmy estymacji oraz kompensacji ruchu są wykorzystywane w większości współczesnych kodeków wideo. Sąsiadujące ze sobą ramki obrazu cechują się znaczącym podobieństwem. Przedstawiony w poprzednim rozdziale hybrydowy model kompresji stratnej DPCM/DCT, wykorzystuje kompensację i estymację ruchu, aby przygotować bloki o możliwie najmniejszej energii. Pozwala to znacząco zredukować redundancję temporalną, dzięki czemu możliwe jest uzyskanie wysokiej efektywności kompresji. 3.1 Blokowa estymacja ruchu Algorytm blokowej estymacji ruchu operuje na blokach, np. 16x16 pikseli. Zwyczajne odjęcie pikseli kodowanej ramki od ramki odniesienia pozostawia wiele energii w ramce rezydualnej. Na rysunku 10 przedstawione są wyniki bez zastosowania kompensacji ruchu, jak również z wykorzystaniem kompensacji ruchu. Dokonanie estymacji i kompensacji ruchu, przed odjęciem pikseli pozwala, znacząco zredukować energię w wynikowej ramce rezydualnej, dzięki czemu możliwa będzie jej skuteczniejsza kompresja. Rysunek 10: Porównanie uzyskanych ramek rezydualnych bez i z kompensacją ruchu. Lewy górny obraz - obraz oryginalny; prawy górny - ramka rezydualna bez kompensacji; lewy dolny - obraz po wykonaniu kompensacji (zawiera wektory przemieszczenia); prawy dolny - ramka rezydualna z kompensacją. Na podstawie materiałów Moscow State University Video Group. 14

18 Istnieje wiele algorytmów estymacji ruchu. Metoda optical flow [3] jest uogólnioną metodą estymacji ruchu, którą można zastosować zarówno w wariance dwu jak i trzy wymiarowym. Generuje ona wektory przemieszczeń dla każdego z pikseli obrazu. Metoda ta nie może być wykorzystana w kompresji ze względu na wysoką złożoność obliczeniową, jak również konieczność przesłania do dekodera wektora przemieszczeń dla każdego z pikseli. W praktyce wykorzystuje się algorytmy, w których dokonywana jest estymacja ruchu dla całego bloku z kodowanej ramki. Porównywanie odbywa się według specjalnego algorytmu dopasowania do wzorca (Block-matching algorithm), który powinien znajdować optymalny wektor przemieszczenia dla danego bloku. Opis dwóch wybranych algorytmów dopasowania bloku znajduje się w dalszej części rozdziału. Istnieją również inne metody, opisane szczegółowo w książce [17]. Ważna kwestią jest wybór odpowiedniego rozmiaru bloku. Bloki o małych rozmiarach jest łatwiej dopasować, dzięki czemu ramka rezydualna ma mniej energii. Ich dopasowanie jest jednak bardziej wymagające obliczeniowo i uzyskujemy więcej wektorów przemieszczeń, które należy przesłać do dekodera. Nowsze rozwiązania takie jak MPEG-4 posiadają kompensację ruchu operującą na blokach zmiennej wilkości (Variable block-size motion compensation). Koder w trakcie kompresji, tak dobiera rozmiary bloków, aby uzyskać możliwie najlepszy stopień kompresji. 3.2 Blokowe algorytmy dopasowania bloku Algorytmy dopasowania bloku, poszukują wektora przemieszczenia w sąsiedztwie danego bloku. Na rysunku 11 przedstawiony jest blok o rozmiarze 16x16 i parametrze poszukiwania p = 7, który określa wielkość sąsiedztwa w jakim odbywa się poszukiwanie wzorca. Większy rozmiar sąsiedztwa pozwala znaleźć potencjalnie lepsze dopasowanie. Wymaga to jednak znaczenie większych nakładów obliczeniowych. Rysunek 11: Sąsiedztwo dopasowania bloku[2] 15

19 Istotną kwestią jest również określenie kryterium decyzyjnego określającego, które dopasowanie jest lepsze pod względem kompresji. Stosuje się tu różnego rodzaju funkcję kosztu, np. MSE (Mean Square Error), MAD (Mean absolute difference), SAD (Sum of absolute differences), SSE (Sum of squared errors). Poniżej znajduje się opis trzech wybranych algorytmów poszukiwania dopasowania na podstawie artykułu [2]. Przeszukiwanie wyczerpujące Przeszukiwanie wyczerpujące (Exhaustive Search - ES) jest metodą, która oblicza funkcję kosztu dla każdego z możliwych położeń bloku w oknie poszukiwania. Uzyskujemy w ten sposób rozwiązanie optymalne. Wymaga to jednak znaczących nakładów obliczeniowych. Dla bloku o rozmiarze 16x16 i parametrze poszukiwania p = 7, algorytm ES wykona 225 obliczeń funkcji kosztu. Pozostałe algorytmy dopasowania bloku starają się zredukować liczbę obliczeń, przy zachowaniu wyniku bliskiemu optymalnemu. Przeszukiwanie trzystopniowe Przeszukiwanie trzystopniowe (Three Step Search - TSS), to jedna z pierwszych metod, próbujących zastosować heurystykę w celu zredukowania liczby obliczeń funkcji kosztu. Poszukiwanie rozpoczyna się od policzenia kosztu dla 8 punktów oddalonych od punktu początkowego o odległość S = 4. Następnie spośród tych punktów oraz punktu początkowego wybierany jest punkt o najmniejszym koszcie i w następnym kroku, od niego rozpoczynamy dalsze poszukiwanie. Poprzedni proces powtarzamy dwukrotnie ze zmniejszoną odległością, odpowiednio S = 2 oraz S = 1. Na rysunku 12 przedstawiony jest proces poszukiwania algorytmem TSS, w którym uzyskujemy wektor przemieszczenia (5, 3). Zastosowanie tego algorytmu redukuje liczbę obliczeń do Rysunek 12: Algorytm przeszukiwania trzystopniowego (Three Step Search - TSS)[2] 4 przy wybranym wcześniej rozmiarze bloku 16x16 i parametrze p = 7 16

20 Przeszukiwanie czterostopniowe Przeszukiwanie czterostopniowe (Four Step Search - 4SS), to metoda w której liczba kroków nie jest stała. Na rysunku 13 przedstawiony jest pesymistyczny wariant o czterech krokach, w wyniku którego uzyskujemy wektor przemieszczenia (3, 7). Poszukiwanie rozpoczyna się od obliczenia kosztu dla punktów oddalonych o S = 2 od punktu początkowego i jego samego. Następnie jeśli uzyskaliśmy najmniejszy koszt dla punktu początkowego, wówczas przechodzimy do kroku czwartego. Jeśli nie, wtedy za nowy punkt początkowy uznajemy punkt o najniższym koszcie i obliczamy koszt tak samo jak w kroku pierwszym. W zależności od położenia nowego punktu początkowego, w kroku drugim, musimy policzyć koszt dla trzech lub pięciu punktów. Ponownie sprawdzamy czy punkt początkowy ma najniższy koszt i jeśli nie, to przechodzimy do kroku trzeciego analogicznego do kroku drugiego. W kroku czwartym zmniejszamy odległość przeszukiwania na S = 1. Punkt o najniższym koszcie jest szukanym wektorem przemieszczenia. Metoda ta umożliwia znalezienie wektora w 17 krokach w wariancie optymistycznym oraz w 27 krokach w wariancie pesymistycznym. Rysunek 13: Algorytm przeszukiwania czterostopniowego (Four Step Search - 4SS)[2] 17

21 4 Transformaty sygnału Schemat kodowania transformacyjnego jest powszechnie używaną metodą w dziedzinie kompresji stratnej obrazów i sekwencji wideo. Polega ona na zastosowaniu transformaty na sygnale przekształcając go w do nowej dziedziny. Dzięki takiemu działaniu uzyskujemy reprezentację sygnału, która lepiej poddaje się kompresji przy użyciu standardowych metod kodowania. Przy dekodowaniu wykonywana jest transformata odwrotna pozwalająca na powrócenie do pierwotnej dziedziny danych. Transformaty wykorzystywane w kompresji charakteryzują się następującymi cechami: 1. Dla transformaty musi istnieć transformata odwrotna pozwalająca na powrót to dziedziny bazowej. Na potrzeby kompresji stratnej nie jest wymagane, aby transformata była w pełni odwracalna, tj. dopuszczalne są niewielkie zmiany w zrekonstruowanym sygnale. 2. Dane powinny być zdekorelowane. Korelacja pomiędzy składowymi sygnału oznacza, że jest w nim zawarta redundantna informacja. Na rysunku 14 przedstawione są dane w kartezjańskim układzie współrzędnych. Cechują się one silną korelacją i dokonując przekształcenia układu współrzędnych do układu biegunowego usuwamy tą redundancję. Składowa r ma niewielką zmienność, natomiast składowa φ dużą. W pierwotnej reprezentacji obie składowe cechowały się znaczą zmiennością, więc nowa baza jest korzystniejsza ze względu na kompresję danych. 3. Silnie upakowana reprezentacja danych. W przekształconym sygnale energia powinna kumulować się na niewielkiej liczbie współczynników. Pozostałe powinny być zerami, bądź wartościami bliskimi zeru. Rysunek 14: Reprezentacja danych w kartezjańskim i biegunowym układzie współrzędnych 18

22 4. Transformata musi mieć możliwe do spełnienia wymagania obliczeniowe w kwestii czasu wykonania oraz zasobów pamięciowych. Transformaty wykorzystywane na potrzeby kompresji obrazów i sekwencji wideo można podzielić na dwie główne kategorie: operujące na blokach oraz na całych obrazach. Ze względu na wykorzystanie algorytmów kompensacji ruchu, które operują na blokach, w kompresji wideo częściej korzysta się transformat blokowych. W dalszej części rozdziału zostały opisane szczegółowo transformata kosinusowa DCT operująca na blokach oraz transformata falkowa DWT operująca na całych obrazach. 4.1 Dyskretna transformata kosinusowa DCT Dyskretna transformata kosinusowa DCT (Discrete Cosine Transform) jest używana w wielu dziedzinach, m.in. przy kompresji danych. Jej odmiany są wykorzystywane zarówno do kompresji audio (MP3, AAC, Vorbis), obrazów (JPEG) jak i sekwencji wideo (MPEG, h264). Pozwala na przedstawienie danych jako sumy funkcji kosinus o różnych częstotliwościach oscylacji. Wzory transformacyjne dla przypadku jednowymiarowego mają postać [33]: 2 n 1 Y (i) = n C(i) (2j + 1)iΠ X(j)cos, i = 0,..., n j=0 2n dla i = 0 C(i) = 1 dla w p.p. (3) gdzie X ciąg wejściowy o długości n, a Y to sygnał wyjściowy. Transformata odwrotna IDCT (Inverse Discrete Cosine Transform), jest wykonywana przy użyciu wzoru: 2 n 1 (2i + 1)jΠ X(i) = C(j)Y (j)cos, i = 0,..., n n j=0 2n dla i = 0 C(i) = 1 dla w p.p. (4) Transformata jednowymiarowa jest przydatna dla sygnałów jednowymiarowych, np. dźwięku. W przypadku obrazów i sekwencji wideo wykorzystywana jest transformata dwuwymiarowa. Dzięki temu, że transformata kosinusowa posiada cechę separowalności, możemy wykonać transformatę dwuwymiarową poprzez wykonanie transformaty jednowymiarowej po każdym z wymiarów osobno. Dla bloku X o wymiarach n x m obliczenie transformaty Y oraz transformaty odwrotnej wykonujemy przy użyciu poniższych wzorów: 19

23 Y (i, j) = 2 m 1 nm C(i)C(j) l=0 n 1 k=0 X(k, l)cos (2k + 1)iΠ (2l + 1)jΠ cos, i, j = 0,..., n, (5) 2n 2m X(i, j) = 2 nm m 1 l=0 n 1 k=0 C(k)Y (l)cos (2i + 1)kΠ (2j + 1)lΠ cos, i, j = 0,..., n (6) 2n 2m Zadany sygnał wejściowy, np. obraz jest dzielony na bloki o określonej wielkości. W standardzie JPEG [5] przyjmuje się, że bloki mają rozmiar 8 x 8. Równanie 5, możemy przedstawić przy pomocy mnożenia macierzy: Y = AXA T (7) gdzie X to blok danych wejściowych, Y to blok uzyskanych współczynników, a A to macierz przekształcenia. Macierz przekształcenia jest macierzą ortogonalną i jej wartości zależą od jej rozmiaru. Pierwsze mnożenie macierzy przekształcenia przez macierz wejściową AX, odpowiada wykonaniu transformaty po wierszach, natomiast drugie mnożenie przez macierz transponowaną przekształcenia odpowiada tranformacie po kolumnach. Każdy z współczynników wynikowej macierzy jest wagą odpowiedniego wzorca bazowego. Na rysunku 15 przedstawiono wzorce dla bloku o rozmiarze 8 x 8. Współczynniki w bazie DCT, tworzą kombinację liniową wzorców. Rozważmy przykład w którym wszystkie piksele bloku mają tą samą wartość. Wówczas taki blok w bazie DCT, będzie miał tylko jeden piksel o wartościach różnych od zera (pierwszy lewy górny wzorzec z rysunku 15). Rysunek 15: Wzorce bazy DCT dla bloku 8 x 8 20

24 Transformata DCT posiada wszystkie opisane na początku rozdziału pożądane cechy. Jest odwracalna. Współczynniki w nowej bazie mają wartości zmiennoprzecinkowe i wymagają skwantyzowania przed kodowaniem bezstratnym. Po rekonstrukcji nie odzyskamy więc dokładnie tych samych wartości. Wykorzystanie transformaty DCT umożliwia zredukowanie korelacji między pikselami obrazu (redundancja przestrzenna). Na rysunku 16 przedstawiono wynik obliczenia transformaty DCT na obrazie Lena (wartości współczynników zostały odpowiednio zeskalowane). Większość współczynników w nowej dziedzinie ma wartości bliskie zeru. W wynikowym bloku energia kumuluje się w lewym górnym rogu, dzięki czemu uzyskujemy silnie upakowaną reprezentację danych. Poniżej znajduje się wejściowy i wynikowy blok dla transformaty DCT 4 x X = , 50 37, 95 5, 00 5, 39 2, 55 1, 96 0, 97 1, 81 Y = 1, 50 0, 35 3, 00 1, 77 4, 30 0, 31 4, 19 0, 54 (8) Proste zastosowanie powyższych wzorów w celu obliczenia transformaty ma złożoność obliczeniową O(n 2 ) Zastosowanie zoptymalizowanych do konkretnych rozmiarów bloków algorytmów, pozwala uzyskać złożoność obliczeniową rzędu O(nlog(n)). Algorytmy nie wymagają znacznej ilości pamięci operacyjnej. Rysunek 16: Wynik wykonania transformaty DCT na obrazie Lena 21

25 4.2 Dyskretna transformata falkowa DWT Dyskretna transformata falkowa DWT (Discrete Wavelet Transform) jest obecnie najlepszą istniejącą transformatą w dziedzinie kompresji obrazów. Jest m.in. wykorzystywana w standardzie JPEG2000[15] oraz jednym z najskuteczniejszych kompresorów obrazów SPIHT[28]. W odróżnieniu do transformaty DCT operuje ona nie na blokach, a na całych obrazach. Transformata falkowa należy do przekształceń całkowych, w których obliczany jest iloczyn skalarny sygnału z częścią nazywaną jądrem przekształcenia. W przypadku transformaty Fouriera, jądrem przekształcenia są funkcje sinusoidalne. Transformata falkowa nie posiada ściśle określonej funkcji jądra. Mogą nimi być dowolne funkcje spełniające określone warunki. Takie funkcje nazywamy funkcjami falkowymi, bądź falkami (wavelets). Szczegółowe wzory opisujące ciągłą transformatę falkową CWT oraz funkcje falkowe można znaleźć w [10] oraz [31]. Dyskretna transformata falkowa jest realizowana poprzez filtrację sygnału przy pomocy banków filtrów górno i dolno przepustowych [4]. Dla transformaty sygnału wykorzystujemy filtry analizy (H 0 i H 1 ), a w przypadku transformaty odwrotnej filtry syntezy (F 0 i F 1 ). Każda z funkcji falkowych opisywana jest więc przy pomocy odpowiedniego zestawu filtrów. Poniżej znajdują się wzory opisujące wyjście filtrów dolno (y L ) i górno (y H ) przepustowego. y L [n] = (x H 1 )[n] y H [n] = (x H 0 )[n] (9) Warto zauważyć, że na wyjściu uzyskamy dwa wektory współczynników o długości równej przetwarzanemu sygnałowi. Cechy transformaty falkowej zapewniają nam, że po usunięciu co drugiej próbki z obu wektorów, będziemy w stanie zrekonstruować sygnał wejściowy wstawiając w miejsce usuniętych wartości zera. Na rysunku 17 przedstawiony został prosty bank filtrów analizy i syntezy. Symbol 2 oznacza usunięcie co drugiej próbki, natomiast symbol 2 oznacza wstawienie zera pomiędzy każdą z próbek. Rysunek 17: Bank filtrów analizy i syntezy 22

26 Na wyjściu filtru dolno przepustowego uzyskujemy współczynniki uśrednione, natomiast na wyjściu filtru górno przepustowego współczynniki detali. Na potrzeby kompresji warto kontynuować dekompozycję sygnału w paśmie niskiej częstotliwości. Rysunek 18 przedstawia schemat dekompozycji sygnału o trzech poziomach, razem z podziałem pasma częstotliwości na poszczególnych poziomach. Rysunek 18: Podział pasma częstotliwości w banku filtrów analizy Transformata falkowa podobnie jak transformata kosinusowa charakteryzuje się separowalnością, dzięki czemu obliczenie transformaty wielowymiarowej wykonujemy poprzez wykonanie transformaty po każdym z wymiarów osobno. Schemat dekompozycji sygnału wielowymiarowego przy użyciu banków filtrów przedstawił Mallat [10]. Na rysunku 19 przedstawiony został bank filtrów analizy dla obrazu X. Rysunek 19: Dekompozycja obrazu przy użyciu algorytmu Mallata 23

27 Jednowymiarowej transformacie poddawane są najpierw wektory wierszy i usuwana jest z nich co druga kolumna, podobnie jak zostało to przedstawione w banku filtrów na rysunku 17. W kolejnym kroku analogiczne działanie jest wykonywane na wektorach kolumn. Uzyskujemy w ten sposób cztery podmacierze A, B, C i D. Dekompozycję warto kontynuować w podpaśmie niskich częstotliwości A. Na poniższym rysunku znajduje się wynik działania dekompozycji Mallata, dla obrazu Lena. Rysunek 20: Schematyczny sposób działania dekompozycji wielorozdzielczej obrazu: a) obraz orginalny; b) obraz poddany dekompozycji jednopoziomowej c) przykład działania na obrazie Lena; Taki właśnie schemat dekompozycji, jest wykorzystywany w standardzie JPEG2000 [23]. W paśmie niskiej częstotliwości A uzyskujemy obraz w niższej skali, natomiast w pasmach B, C i D uzyskujemy odpowiednio krawędzie: pionowe, poziome i ukośne. Transformata falkowa pozwala nam usunąć korelację przestrzenną między sąsiadującymi współczynnikami, poprzez zmniejszenie skali obrazu i zapisanie różnic w współczynnikach detali. Typowe obrazy składają się znacznych ilości pikseli reprezentujących tło (składowe niskoczęstotliwościowe) oraz z niewielkiej liczby pikseli krawędzi (składowe wysokoczęstotliwościowe). Dziedzina falkowa jest więc bardzo dobrą bazą do opisu naturalnych obrazów. Uzyskujemy silnie upakowaną reprezentację sygnału, ponieważ większość współczynników detali ma wartości zero, bądź bliskie zeru. Dokonując wielopoziomowej dekompozycji sygnału, jeszcze bardziej zmniejszamy stosunek liczby współczynników uśrednionych do współczynników detali. Wszystkie przedstawione cechy sprawiają, że transformata falkowa pozwala na uzyskanie wyższej skuteczności od transformaty kosinusowej w przypadku kompresji obrazów [30]. Zadecydowało to jej wykorzystaniu przy tworzeniu nowego standardu przez komitet JPEG (Joint Picture Experts Group). Transformata falkowa ma większe wymagania obliczeniowe, jednak nie są one w praktyce istotne. Jej wykorzystanie w dziedzinie kompresji wideo jest ograniczone, ze względu na wykorzystanie algorytmów kompensacji ruchu operujących na blokach. 24

28 5 Metody kwantyzacji Otrzymane w wyniku obliczenia odpowiednich transformat sygnały muszą być poddane kwantyzacji. Dzięki zmniejszeniu dziedziny danych sygnału, można zredukować liczbę bitów niezbędną do jego zapisania. Dodatkowo w wyniku części transformat uzyskujemy współczynniki o wartościach ciągłych. Kwantyzacja umożliwia zredukowanie alfabetu symboli, który będzie poddawany kompresji bezstratnej koderami entropijnymi. Odpowiedni dobór poziomów kwantyzacji decyduje o jakości zrekonstruowanego w procesie dekompresji sygnału. W przedstawionym w pierwszym rozdziale schemacie kompresji DPC- M/DCT, kwantyzacja jest krokiem stratnym. Kwantyzator powinien więc cechować się możliwie niewielkimi wprowadzanymi zniekształceniami i takim przekształceniem dziedziny danych, aby poddawały się skutecznie kompresji bezstratnej. Wyróżniamy dwa podstawowe typy kwantyzatorów. Kwantyzator skalarny dokonuje odwzorowania pojedynczej wartości sygnału na skwantyzowany współczynnik. Kwantyzator wektorowy odwzorowuje grupę (wektor) wartości sygnału na odpowiednią grupę skawantyzowanych współczynników. W niniejszym rozdziale opisane zostały różne rodzaje kwantyzatorów skalarnych oraz wektorowych. 5.1 Skalarna kwantyzacja równomierna Najpowszechniejszą metodą kwantyzacji jest skalarna kwantyzacja równomierna (ang. Scalar Uniform Quantization) [21]. Dla sygnału o wartościach od f min do f max, dzielimy cały dostępny zakres na L równych przedziałów Q, nazywanych przedziałem kwantyzacji zgodnie z poniższym wzorem: Q = (f max f min )/L (10) Wartości znajdujące się w danym przedziale kwantyzacji, są odwzorowywane na wartość środkową tego przedziału (rysunek 21). Skwantyzowana wartość jest indeksem odpowiadającego jej przedziału kwantyzacji zgodnie z wzorem: Q i (f) = f f min Q (11) Proces dekwantyzacji polega na odwzorowaniu odpowiednich indeksów na środki przedziałów kwantyzacji. Niezbędne jest w tym celu przesłanie do dekodera wartości początkowych przedziałów f min i f max w celu obliczenia szerokości przedziału Q. Poniżej znajduje się wzór na obliczenie zdekwantyzowanej wartości współczynnika: Q(f) = Q i (f)q + Q/2 + f min (12) 25

29 Rysunek 21: Podział na przedziały kwantyzacji w kwantyzatorze równomiernym 5.2 Skalarna kwantyzacja nierównomierna Kwantyzacja równomierna nie jest optymalna w przypadku sygnałów o rozkładzie nierównomiernym. Uzyskanie możliwie najmniejszego błędu średniokwadratowego MSE (ang. Mean Square Error), wymaga podzielenia dziedziny sygnału na przedziały kwantyzacji o różnej szerokości. Na rysunku 22 widoczne jest zmniejszenie przedziałów kwantyzacji w miejscu skupienia wartości sygnału. Warto również wykorzystać psychowizualne cechy ludzkich zmysłów. Pozwala to na zagęszczenie przedziałów w wybranych miejscach (np. średnie tony przy kompresji sygnału mowy). Rysunek 22: Podział na przedziały kwantyzacji w kwantyzatorze nierównomiernym W procesie dekwantyzacji dekoder musi znać szerokości wszystkich przedziałów kodowych. Wysłanie informacji o nich wraz z współczynnikami, znacząco zwiększyłoby ilość potrzebnych bitów i nie jest praktycznie stosowane w kompresji. W tym celu wykorzystywane są specjalne modele, które dokonują najpierw nieliniowego przekształcenia sygnału na nową dziedzinę, a następnie jego kwantyzacji przy pomocy kwantyzatora równomiernego. 26

30 5.3 Skalarna kwantyzacja równomierna z rozszerzonym przedziałem zerowym Transformaty wykorzystywane w kompresji wideo doprowadzają sygnał do postaci, w której znacząca liczba współczynników ma wartości równe, bądź bliskie zeru. Przybliżenie tych wartości do zera pozwala na uzyskanie bardzo długich ciągów zer, które skutecznie poddają się kompresji bezstratnej, wprowadzając niewielkie różnice w zrekonstruowanym sygnale. Kwantyzator z rozszerzonym przedziałem zerowym (rysunek 23), znacząco poprawia stopień kompresji przy niewielkim wzroście zniekształceń. Kwantyzator ten jest wykorzystywany w standardzie JPEG2000 [19]. Wartość skwantyzowana q dla elementu f wynosi: 0 dla f nz q = (13) sign(f) f +nz dla f nz gdzie to przedział kwantyzacji dla kwantyzatora równomiernego. Parametr nz określa szerokość przedziału zerowego i jest przesyłany do dekodera. Szerokość przedziału zerowego wynosi 2(1 nz). W standardzie JPEG2000 jako potencjalnie korzystną wartość wskazuje się nz 0.25 czyli 1.5 ([19], [21]). Dekwantyzację wykonuje się przy pomocy wzoru: 0 dla q = 0 f = (14) sign(q)( q nz + 0.5) dla q 0 Rysunek 23: Podział na przedziały kwantyzacji w kwantyzatorze równomiernym z rozszerzonym przedziałem zerowym 27

31 5.4 Kwantyzacja wektorowa W odróżnieniu do przedstawionej wcześniej kwantyzacji skalarnej, kwatyzacja wektorowa odwzorowuje wektor wartości wejściowych na odpowiednie słowo kodowe, będące możliwie najlepszym przybliżeniem oryginalnych danych [13]. Na rysunku 24 przedstawiono schemat przyporządkowania wartości w dwuwymiarowym kwantyzatorze, tj. kwantyzatorze który wykorzystuje słowa kodowe o dwóch elementach. Każda z par wartości, przypada na konkretny region i jest przybliżana do wartości oznaczonej czerwoną gwiazdką, np. para (-2, 2) zostanie przypisana do słowa kodowego (-1.5, 1.5). Jako, że mamy 16 regionów, możemy zapisać informację o wartości na 4 bitach. Zwiększenie liczby regionów, zmniejsza błąd związany z kwantyzacją, jednocześnie zwiększając liczbę bitów przesyłanych do dekodera (indeks słowa kodowego w słowniku) oraz czas potrzebny na znalezienie najlepszego słowa kodowego przy kodowaniu. Rysunek 24: Podział dwuwymiarowej przestrzeni dla kwantyzatora wektorowego. Czerwone kropki oznaczają wartości słów kodowych. Zarówno koder i dekoder przechowują słownik słów kodowych (ang. codebook). W przypadku kompresji obrazów najczęściej stosowane są słowa kodowe w postaci bloków. Na rysunku 25 przedstawiony jest schemat kwantyzatora wektorowego. Bardzo ważną kwestią jest odpowiednie wybranie słów kodowych, minimalizujące globalnie błąd przy przybliżeniu. Implementacja musi również cechować się efektywnym algorytmem przeszukiwania słownika, aby znaleźć optymalny wektor przybliżający oryginalny zbiór danych. 28

32 Rysunek 25: Schemat kwantyzacji wektorowej [25] 29

33 6 Etap kodowania bezstratnego Uzyskane w wyniku kwantyzacji ciągi całkowitych współczynników, są poddawane kompresji bezstratnej, która pozwala dokładnie zrekonstruować wejściowe dane. To jaki stopień kompresji uda się uzyskać, zależy od zastosowanej metody, jak również od samych wejściowych danych. Silna redukcja alfabetu symboli podczas kwantyzacji oraz zgrupowanie tych samych symboli przy transformacie, pozwala uzyskać wysoki poziom kompresji przy metodach bezstratnych. W niniejszym rozdziale przedstawię popularne metody kompresji bezstratnej wykorzystywane w procesie kompresji sekwencji wideo oraz obrazów. Najpierw opiszę prostą metodę RLE wykorzystywaną m. in. w standardzie JPEG. Następnie przedstawię rodzinę kodów zmiennej długości (ang. variable-length code), do której zaliczamy metodę kodowanie Huffmana oraz najskuteczniejszą obecnie metodę tego typu - kodowanie arytmetyczne. Na końcu opiszę znaczenie modelowania statystycznego w procesie kompresji bezstratnej. 6.1 Kodowanie RLE Kodowanie RLE (Run-Length Encoding) to prosta metoda kompresji bezstratnej, kodująca ciąg współczynników przy pomocy zliczania serii występujących po sobie takich samych symboli. Wariant tej metody jest wykorzystywany przy kompresji bloków skwantyzowanych współczynników transformaty DCT w standardzie JPEG [12]. Warto zauważyć, że istotny jest sposób w jakiej kolejności będziemy kodować współczynniki. Dla obrazu poddanemu transformacie DCT korzystniejsze jest kodowanie według schematu zig-zag (rysunek 26), niż proste kodowanie linia po linii. Rysunek 26: Schemat kodowania współczynników zig-zag 30

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2. Technika obrazu 24 W.3. Normalizacja w zakresie obrazu cyfrowego

Bardziej szczegółowo

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

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

Bardziej szczegółowo

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

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Założenia i obszar zastosowań KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Plan wykładu: Geneza algorytmu Założenia i obszar zastosowań JPEG kroki algorytmu kodowania obrazu Założenia: Obraz monochromatyczny

Bardziej szczegółowo

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

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 Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy

Bardziej szczegółowo

Wybrane metody kompresji obrazów

Wybrane metody kompresji obrazów Wybrane metody kompresji obrazów Celem kodowania kompresyjnego obrazu jest redukcja ilości informacji w nim zawartej. Redukcja ta polega na usuwaniu informacji nadmiarowej w obrazie, tzw. redundancji.

Bardziej szczegółowo

Kompresja danych DKDA (7)

Kompresja danych DKDA (7) Kompresja danych DKDA (7) Marcin Gogolewski marcing@wmi.amu.edu.pl Uniwersytet im. Adama Mickiewicza w Poznaniu Poznań, 22 listopada 2016 1 Kwantyzacja skalarna Wprowadzenie Analiza jakości Typy kwantyzatorów

Bardziej szczegółowo

Kompresja video (MPEG)

Kompresja video (MPEG) mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 8, strona 1. Kompresja video (MEG) Zasadniczy schemat kompresora video Typy ramek przy kompresji czasowej Analiza ramek przez syntezę Sposób detekcji

Bardziej szczegółowo

dr inż. Piotr Odya Wprowadzenie

dr inż. Piotr Odya Wprowadzenie dr inż. Piotr Odya Wprowadzenie Dane multimedialne to przede wszystkim duże strumienie danych liczone w MB a coraz częściej w GB; Mimo dynamicznego rozwoju technologii pamięci i coraz szybszych transferów

Bardziej szczegółowo

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG Tomasz Wykład 11: Transformaty i JPEG Idea kodowania transformujacego Etapy kodowania 1 Wektor danych x 0,...,x N 1 przekształcamy (odwracalnie!) na wektor c 0,...,c N 1, tak aby: energia była skoncentrowana

Bardziej szczegółowo

Kompresja sekwencji obrazów - algorytm MPEG-2

Kompresja sekwencji obrazów - algorytm MPEG-2 Kompresja sekwencji obrazów - algorytm MPEG- Moving Pictures Experts Group (MPEG) - 988 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et TélégraphieT

Bardziej szczegółowo

Kompresja dźwięku w standardzie MPEG-1

Kompresja dźwięku w standardzie MPEG-1 mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 7, strona 1. Kompresja dźwięku w standardzie MPEG-1 Ogólne założenia kompresji stratnej Zjawisko maskowania psychoakustycznego Schemat blokowy

Bardziej szczegółowo

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kwantyzacja wektorowa. Kodowanie różnicowe. Kwantyzacja wektorowa. Kodowanie różnicowe. Kodowanie i kompresja informacji - Wykład 7 12 kwietnia 2010 Kwantyzacja wektorowa wprowadzenie Zamiast kwantyzować pojedyncze elementy kwantyzujemy całe bloki

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

Fundamentals of Data Compression

Fundamentals of Data Compression Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat BIBLIOTEKA PROGRAMU R - BIOPS Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat Biblioteka biops zawiera funkcje do analizy i przetwarzania obrazów. Operacje geometryczne (obrót, przesunięcie,

Bardziej szczegółowo

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

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając Cyfrowe przetwarzanie i kompresja danych dr inż.. Wojciech Zając Wykład 7. Standardy kompresji obrazów nieruchomych Obraz cyfrowy co to takiego? OBRAZ ANALOGOWY OBRAZ CYFROWY PRÓBKOWANY 8x8 Kompresja danych

Bardziej szczegółowo

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji dr inż. Piotr Odya Klasyfikacja metod kompresji Metody bezstratne Zakodowany strumień danych po dekompresji jest identyczny z oryginalnymi danymi przed kompresją, Metody stratne W wyniku kompresji część

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007

Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007 1 Kompresja wideo Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007 Dane wideo jako sekwencja skorelowanych obrazów (ramek). Specyfika danych wideo: drobne zmiany kolorów w kolejnych

Bardziej szczegółowo

Transformaty. Kodowanie transformujace

Transformaty. Kodowanie transformujace Transformaty. Kodowanie transformujace Kodowanie i kompresja informacji - Wykład 10 10 maja 2009 Szeregi Fouriera Każda funkcję okresowa f (t) o okresie T można zapisać jako f (t) = a 0 + a n cos nω 0

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. KOMPRESJA ALGORYTMEM ARYTMETYCZNYM, GOLOMBA I RICE'A Idea algorytmu arytmetycznego Przykład kodowania arytmetycznego Renormalizacja

Bardziej szczegółowo

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Joint Photographic Expert Group - 1986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard

Bardziej szczegółowo

Joint Photographic Experts Group

Joint Photographic Experts Group Joint Photographic Experts Group Artur Drozd Uniwersytet Jagielloński 14 maja 2010 1 Co to jest JPEG? Dlaczego powstał? 2 Transformata Fouriera 3 Dyskretna transformata kosinusowa (DCT-II) 4 Kodowanie

Bardziej szczegółowo

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

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania Kodowanie podpasmowe Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania Zasada ogólna Rozkład sygnału źródłowego na części składowe (jak w kodowaniu transformacyjnym) Wada kodowania

Bardziej szczegółowo

Kompresja sekwencji obrazów

Kompresja sekwencji obrazów Kompresja sekwencji obrazów - algorytm MPEG-2 Moving Pictures Experts Group (MPEG) - 1988 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie T et TélégraphieT

Bardziej szczegółowo

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji dr inż. Piotr Odya Klasyfikacja metod kompresji Metody bezstratne Zakodowany strumień danych po dekompresji jest identyczny z oryginalnymi danymi przed kompresją, Metody stratne W wyniku kompresji część

Bardziej szczegółowo

Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2)

Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2) Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2) Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna

Bardziej szczegółowo

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Zastosowanie kompresji w kryptografii Piotr Piotrowski Zastosowanie kompresji w kryptografii Piotr Piotrowski 1 Plan prezentacji I. Wstęp II. Kryteria oceny algorytmów III. Główne klasy algorytmów IV. Przykłady algorytmów selektywnego szyfrowania V. Podsumowanie

Bardziej szczegółowo

dr inż. Piotr Odya dr inż. Piotr Suchomski

dr inż. Piotr Odya dr inż. Piotr Suchomski dr inż. Piotr Odya dr inż. Piotr Suchomski Podział grafiki wektorowa; matematyczny opis rysunku; małe wymagania pamięciowe (i obliczeniowe); rasteryzacja konwersja do postaci rastrowej; rastrowa; tablica

Bardziej szczegółowo

Przekształcenia punktowe

Przekształcenia punktowe Przekształcenia punktowe Przekształcenia punktowe realizowane sa w taki sposób, że wymagane operacje wykonuje sie na poszczególnych pojedynczych punktach źródłowego obrazu, otrzymujac w efekcie pojedyncze

Bardziej szczegółowo

Kompresja obrazów w statycznych - algorytm JPEG

Kompresja obrazów w statycznych - algorytm JPEG Kompresja obrazów w statycznych - algorytm JPEG Joint Photographic Expert Group - 986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard

Bardziej szczegółowo

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja JPEG

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja JPEG Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Inżynieria obrazów cyfrowych Ćwiczenie 5 Kompresja JPEG Zadaniem ćwiczenia jest

Bardziej szczegółowo

Sieci neuronowe - projekt

Sieci neuronowe - projekt Sieci neuronowe - projekt Maciej Barański, Kamil Dadel 15 stycznia 2015 Streszczenie W ramach projektu został zrealizowany algorytm kompresji stratnej bazujący na działaniu samoorganizującej się sieci

Bardziej szczegółowo

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Python: JPEG. Zadanie. 1. Wczytanie obrazka Python: JPEG Witajcie! Jest to kolejny z serii tutoriali uczący Pythona, a w przyszłości być może nawet Cythona i Numby Jeśli chcesz nauczyć się nowych, zaawansowanych konstrukcji to spróbuj rozwiązać

Bardziej szczegółowo

Technika audio część 2

Technika audio część 2 Technika audio część 2 Wykład 12 Projektowanie cyfrowych układów elektronicznych Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl http://www.cs.put.poznan.pl/lkirchner Wprowadzenie do filtracji

Bardziej szczegółowo

Praca dyplomowa magisterska

Praca dyplomowa magisterska Praca dyplomowa magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA Dyplomant: Jakub Kołakowski Opiekun pracy: dr inż. Michał Meller Plan prezentacji

Bardziej szczegółowo

Kodowanie źródeł sygnały video. Sygnał video definicja i podstawowe parametry

Kodowanie źródeł sygnały video. Sygnał video definicja i podstawowe parametry Kodowanie źródeł sygnały video (A) (B) (C) Sygnał video definicja i podstawowe parametry Liczba klatek na sekundę Przeplot Rozdzielczość obrazu Proporcje obrazu Model barw Przepływność binarna Kompresja

Bardziej szczegółowo

Implementacja filtru Canny ego

Implementacja filtru Canny ego ANALIZA I PRZETWARZANIE OBRAZÓW Implementacja filtru Canny ego Autor: Katarzyna Piotrowicz Kraków,2015-06-11 Spis treści 1. Wstęp... 1 2. Implementacja... 2 3. Przykłady... 3 Porównanie wykrytych krawędzi

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany

Bardziej szczegółowo

Transformata Fouriera

Transformata Fouriera Transformata Fouriera Program wykładu 1. Wprowadzenie teoretyczne 2. Algorytm FFT 3. Zastosowanie analizy Fouriera 4. Przykłady programów Wprowadzenie teoretyczne Zespolona transformata Fouriera Jeżeli

Bardziej szczegółowo

PRACA DYPLOMOWA STUDIA PIERWSZEGO STOPNIA. Łukasz Kutyła Numer albumu: 5199

PRACA DYPLOMOWA STUDIA PIERWSZEGO STOPNIA. Łukasz Kutyła Numer albumu: 5199 PRACA DYPLOMOWA STUDIA PIERWSZEGO STOPNIA Łukasz Kutyła Numer albumu: 5199 Temat pracy: Metody kompresji obrazu implementowane we współczesnych systemach telewizji cyfrowej opartej o protokół IP Cel i

Bardziej szczegółowo

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska.

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska. Politechnika Świętokrzyska Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 9 Przetwarzanie sygnałów wizyjnych. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów z funkcjami pozwalającymi na

Bardziej szczegółowo

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera. Politechnika Świętokrzyska Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 6 Transformata cosinusowa. Krótkookresowa transformata Fouriera. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów

Bardziej szczegółowo

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy Kwantowanie sygnałów analogowych na przykładzie sygnału mowy Treść wykładu: Sygnał mowy i jego właściwości Kwantowanie skalarne: kwantyzator równomierny, nierównomierny, adaptacyjny Zastosowanie w koderze

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12, 1 Kompresja stratna Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12, 5.05.2005 Algorytmy kompresji bezstratnej oceniane są ze względu na: stopień kompresji; czas działania procesu kodowania

Bardziej szczegółowo

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

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład 13 1 Kody liniowe - kodowanie w oparciu o macierz parzystości Przykład Różne macierze parzystości dla kodu powtórzeniowego. Co wiemy z algebry

Bardziej szczegółowo

Krótki przegląd pierwszych standardów kompresji obrazów

Krótki przegląd pierwszych standardów kompresji obrazów Krótki przegląd pierwszych standardów kompresji obrazów Najstarszymi (980 rok) i szeroko stosowanymi obecnie standardami kompresji obrazów cyfrowych są międzynarodowe standardy kodowania cyfrowych faksów,

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335 Sztuczne sieci neuronowe Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335 Wykład 10 Mapa cech Kohonena i jej modyfikacje - uczenie sieci samoorganizujących się - kwantowanie wektorowe

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego Bogdan Uljasz Wydział Elektroniki Wojskowej Akademii Technicznej ul. Kaliskiego 2 00-908 Warszawa Konferencja naukowo-techniczna Dzisiejsze

Bardziej szczegółowo

Wstęp do techniki wideo

Wstęp do techniki wideo Wstęp do techniki wideo Wykład 11 Technologie dla urządzeń mobilnych Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl http://www.cs.put.poznan.pl/lkirchner Standardy przesyłania obrazu wideo Luminancja

Bardziej szczegółowo

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski Przekształcenia widmowe Transformata Fouriera Adam Wojciechowski Przekształcenia widmowe Odmiana przekształceń kontekstowych, w których kontekstem jest w zasadzie cały obraz. Za pomocą transformaty Fouriera

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 2

Analiza obrazów - sprawozdanie nr 2 Analiza obrazów - sprawozdanie nr 2 Filtracja obrazów Filtracja obrazu polega na obliczeniu wartości każdego z punktów obrazu na podstawie punktów z jego otoczenia. Każdy sąsiedni piksel ma wagę, która

Bardziej szczegółowo

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU Wojciech Zając Instytut Informatyki

Bardziej szczegółowo

Obiektywne metody pomiaru jakości obrazu

Obiektywne metody pomiaru jakości obrazu Systemy i Terminale Multimedialne Obiektywne metody pomiaru jakości obrazu Marcin Szykulski Wprowadzenie Kompresja Transmisja Jak osiągnąć kompromis przepływność/jakość? Podstawowe informacje Jakość obrazu

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Konfiguracja kodeka 3ivx 4.5.1

Konfiguracja kodeka 3ivx 4.5.1 Konfiguracja kodeka 3ivx 4.5.1 3ivx, podobnie jak bardziej popularne kodeki XviD i DivX, jest kodekiem MPEG-4. Jest on dostarczany w wersjach dla architektur Video for Windows, DirectShow oraz QuickTime

Bardziej szczegółowo

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład II Reprezentacja danych w technice cyfrowej 1 III. Reprezentacja danych w komputerze Rodzaje danych w technice cyfrowej 010010101010 001010111010

Bardziej szczegółowo

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

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

Wykład III: Kompresja danych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład III: Kompresja danych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład III: Kompresja danych 1 I. Reprezentacja danych w komputerze Rodzaje danych w technice cyfrowej 010010101010 001010111010 101101001001 2 Kompresja

Bardziej szczegółowo

9. Dyskretna transformata Fouriera algorytm FFT

9. Dyskretna transformata Fouriera algorytm FFT Transformata Fouriera ma szerokie zastosowanie w analizie i syntezie układów i systemów elektronicznych, gdyż pozwala na połączenie dwóch sposobów przedstawiania sygnałów reprezentacji w dziedzinie czasu

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3.

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Sygnały deterministyczne 4 1.3.1. Parametry 4 1.3.2. Przykłady 7 1.3.3. Sygnały

Bardziej szczegółowo

Kody splotowe (konwolucyjne)

Kody splotowe (konwolucyjne) Modulacja i Kodowanie Labolatorium Kodowanie kanałowe kody konwolucyjne Kody splotowe (konwolucyjne) Główną różnicą pomiędzy kodami blokowi a konwolucyjnymi (splotowymi) polega na konstrukcji ciągu kodowego.

Bardziej szczegółowo

Kodowanie predykcyjne

Kodowanie predykcyjne Kodowanie i kompresja informacji - Wykład 5 22 marca 2010 Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie. Motywacje W tekstach naturalnych symbole bardzo często zależa od siebie.

Bardziej szczegółowo

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Parametryzacja obrazu na potrzeby algorytmów decyzyjnych Piotr Dalka Wprowadzenie Z reguły nie stosuje się podawania na wejście algorytmów decyzyjnych bezpośrednio wartości pikseli obrazu Obraz jest przekształcany

Bardziej szczegółowo

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA AMFETAMINY Waldemar S. Krawczyk Centralne Laboratorium Kryminalistyczne Komendy Głównej Policji, Warszawa (praca obroniona na Wydziale Chemii Uniwersytetu

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

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

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Akwizycja obrazów. Zagadnienia wstępne

Akwizycja obrazów. Zagadnienia wstępne Akwizycja obrazów. Zagadnienia wstępne Wykorzystane materiały: R. Tadeusiewicz, P. Korohoda, Komputerowa analiza i przetwarzanie obrazów, Wyd. FPT, Kraków, 1997 A. Przelaskowski, Techniki Multimedialne,

Bardziej szczegółowo

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

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski Kodowanie Huffmana Platforma programistyczna.net; materiały do laboratorium 24/5 Marcin Wilczewski Algorytm Huffmana (David Huffman, 952) Algorytm Huffmana jest popularnym algorytmem generującym optymalny

Bardziej szczegółowo

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22 Wykład 1 Wstęp do grafiki komputerowej rastrowy i wektorowy mgr inż. 1/22 O mnie mgr inż. michalchwesiuk@gmail.com http://mchwesiuk.pl Materiały, wykłady, informacje Doktorant na Wydziale Informatyki Uniwersytetu

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

POB Odpowiedzi na pytania

POB Odpowiedzi na pytania POB Odpowiedzi na pytania 1.) Na czym polega próbkowanie a na czym kwantyzacja w procesie akwizycji obrazu, jakiemu rodzajowi rozdzielczości odpowiada próbkowanie a jakiemu kwantyzacja Próbkowanie inaczej

Bardziej szczegółowo

Filtracja obrazu operacje kontekstowe

Filtracja obrazu operacje kontekstowe Filtracja obrazu operacje kontekstowe Podział metod filtracji obrazu Metody przestrzenne i częstotliwościowe Metody liniowe i nieliniowe Główne zadania filtracji Usunięcie niepożądanego szumu z obrazu

Bardziej szczegółowo

TRANSFORMATA FALKOWA 2D. Oprogramowanie Systemów Obrazowania 2016/2017

TRANSFORMATA FALKOWA 2D. Oprogramowanie Systemów Obrazowania 2016/2017 TRANSFORMATA FALKOWA 2D Oprogramowanie Systemów Obrazowania 2016/2017 Wielorozdzielczość - dekompozycja sygnału w ciąg sygnałów o coraz mniejszej rozdzielczości na wielu poziomach gdzie: s l+1 - aproksymata

Bardziej szczegółowo

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38 Wykład 2 Przetwarzanie obrazów mgr inż. 1/38 Przetwarzanie obrazów rastrowych Jedna z dziedzin cyfrowego obrazów rastrowych. Celem przetworzenia obrazów rastrowych jest użycie edytujących piksele w celu

Bardziej szczegółowo

Temat: Algorytm kompresji plików metodą Huffmana

Temat: Algorytm kompresji plików metodą Huffmana Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik

Bardziej szczegółowo

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

Podstawy kompresji danych

Podstawy kompresji danych Podstawy kompresji danych Pojęcie kompresji W ogólności kompresja (kodowanie) jest procedurą (przekształceniem) zmiany reprezentacji wejściowego zbioru danych do postaci wymagającej mniejszej liczby bitów

Bardziej szczegółowo

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do pracowni specjalistycznej

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do pracowni specjalistycznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej Temat ćwiczenia: Badanie własności koderów PCM zastosowanych do sygnałów

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Przedstawiamy Państwu tekst będący

Przedstawiamy Państwu tekst będący Zaawansowana kompresja cyfrowych sygnałów wizyjnych standard AVC/H.264 MAREK DOMAŃSKI, TOMASZ GRAJEK, JAROSŁAW MAREK Politechnika Poznańska, Zakład Telekomunikacji Multimedialnej i Radioelektroniki Przedstawiamy

Bardziej szczegółowo

Cyfrowe przetwarzanie i kompresja danych

Cyfrowe przetwarzanie i kompresja danych Cyfrowe przetwarzanie i kompresja danych dr inż.. Wojciech Zając Wykład 5. Dyskretna transformata falkowa Schemat systemu transmisji danych wizyjnych Źródło danych Przetwarzanie Przesył Przetwarzanie Prezentacja

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

TECHNIKI MULTIMEDIALNE

TECHNIKI MULTIMEDIALNE Studia Podyplomowe INFORMATYKA TECHNIKI MULTIMEDIALNE dr Artur Bartoszewski Film ile klatek na sekundę? Impulsy świetlne działają na komórki nerwowe jeszcze przez kilka ułamków sekundy po ustąpieniu faktycznego

Bardziej szczegółowo

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt. 1 Kodowanie podpasmowe Kompresja Danych Streszczenie Studia Dzienne Wykład 13, 18.05.2006 1.1 Transformaty, próbkowanie i filtry Korzystamy z faktów: Każdą funkcję okresową można reprezentować w postaci

Bardziej szczegółowo

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 6 Metody predykcyjne. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 6 Metody predykcyjne Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Wykład opracowano

Bardziej szczegółowo

Audio i video. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Audio i video. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski Audio i video R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski s-rg@siwy.il.pw.edu.pl Fale dźwiękowe Dźwięk jest drganiem powietrza rozchodzącym się w postaci fali. Fala ma określoną amplitudę i częstotliwość.

Bardziej szczegółowo

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Analiza głównych składowych- redukcja wymiaru, wykł. 12 Analiza głównych składowych- redukcja wymiaru, wykł. 12 Joanna Jędrzejowicz Instytut Informatyki Konieczność redukcji wymiaru w eksploracji danych bazy danych spotykane w zadaniach eksploracji danych mają

Bardziej szczegółowo

Wymiana i Składowanie Danych Multimedialnych Mateusz Moderhak, EA 106, Pon. 11:15-12:00, śr.

Wymiana i Składowanie Danych Multimedialnych Mateusz Moderhak, EA 106, Pon. 11:15-12:00, śr. Wymiana i Składowanie Danych Multimedialnych 2019 Mateusz Moderhak, matmod@biomed.eti.pg.gda.pl, EA 106, Pon. 11:15-12:00, śr. 12:15-13:00 Zaliczenie: 60% wykład, 40% laboratorium Zerówka w formie dwóch

Bardziej szczegółowo

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

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Odtwarzanie i kompresja wideo

Odtwarzanie i kompresja wideo Odtwarzanie i kompresja wideo dr inż. Piotr Steć Rodzaje plików wideo Kontenery AVI Audio Video Interleave WMV Windows Media Video MOV QuickTime MKV Matroska Standardy kompresji MPEG Motion Pictures Expert

Bardziej szczegółowo

Proste metody przetwarzania obrazu

Proste metody przetwarzania obrazu Operacje na pikselach obrazu (operacje punktowe, bezkontekstowe) Operacje arytmetyczne Dodanie (odjęcie) do obrazu stałej 1 Mnożenie (dzielenie) obrazu przez stałą Operacje dodawania i mnożenia są operacjami

Bardziej szczegółowo

1. Wprowadzenie 1.1. Zdefiniowanie problemu badawczego

1. Wprowadzenie 1.1. Zdefiniowanie problemu badawczego Spis treści 3 Spis treści Spis ważniejszych oznaczeń... 7 1. Wprowadzenie... 9 1.1. Zdefiniowanie problemu badawczego... 9 1.2. Istniejące rozwiązania bezstratnej kompresji obrazów... 10 1.3. Cel i zakres

Bardziej szczegółowo