PRACA DYPLOMOWA INŻYNIERSKA

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

Download "PRACA DYPLOMOWA INŻYNIERSKA"

Transkrypt

1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Radioelektroniki Rok akademicki 2001/2002 PRACA DYPLOMOWA INŻYNIERSKA Dominik Rives Standard kompresji obrazów JPEG 2000 z uwzględnieniem zastosowań w medycynie Kierownik Pracy dr inż. Artur Przelaskowski Ocena Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Streszczenie W pracy przedstawiono podstawy teoretyczne kompresji oraz nowy standard kompresji obrazów JPEG Opisano także program do kompresji oraz dekompresji obrazów JPER 2000, który stanowi część praktyczną niniejszej pracy. Pracę uzupełnia zestaw testów standardu JPEG 2000 wykonanych z wykorzystaniem aplikacji JPER Na każdym etapie pracy brano pod uwagę przydatność standardu do kompresji obrazów medycznych. The JPEG 2000 Image Compression Standard with Regard to Medical Applications Summary The fundamentals of compression and the new JPEG 2000 image compression standard is introduced. The JPER 2000 application for compression and decompression of images practical part of this work is then described. Finally, a good few tests of standard are presented and analyzed. The tests were carried out with JPER 2000 application. Usefulness of the standard for compression of medical images is always taking into consideration.

3 Składam serdeczne podziękowania dr inż. Arturowi Przelaskowskiemu za pomoc i cierpliwość okazaną przy pisaniu niniejszej pracy.

4 Spis treści: 1. Wprowadzenie Przegląd standardów kompresji obrazów Wymagania stawiane kompresji obrazów medycznych Cel i przebieg pracy 3 2. Podstawy teorii kompresji Modelowanie danych Transformacja przestrzeni kolorów Transformacja falkowa Kwantyzacja Kodowanie danych kodowanie arytmetyczne Standard JPEG Schemat kompresji Struktura pliku JP Przegląd dostępnych kodeków Kodeki programowe Kodeki sprzętowe Program JPER Założenia Realizacja Biblioteka JasPer Praca z programem JPER Możliwości rozwoju Eksperymenty Badanie transformat przestrzeni kolorów Badanie wpływu poszczególnych parametrów na kompresję Test kompresji bezstratnej Test kompresji stratnej Podsumowanie 63 Dodatek A. Bibliografia 64 Dodatek B. Obrazy testowe 65

5 Rozdział 1 Wprowadzenie Jedną z najszybciej rozwijających się dziedzin diagnostyki medycznej jest obrazowanie. Dane diagnostyczne w formie obrazu są wynikiem badań radiograficznych, termowizyjnych, scyntygraficznych, ultrasonograficznych, tomograficznych (techniki DR, CT, NMR, SPECT, PET) i.in. Jedną z charakterystycznych cech danych obrazowych jest ich duża objętość. Na przykład cyfrowa radiografia klatki piersiowej to obraz o rozdzielczości oraz 12 bitach na próbkę i w efekcie objętości 12 bit = 24MB ; pełne badanie mammograficzne składające się z 4 obrazów to prawie 100MB. Dużo danych pochodzi także z badań, których wynikiem jest obraz trójwymiarowy (będący najczęściej serią dwuwymiarowych przekrojów, ang. slice): tomografia CT klatki piersiowej to 140 obrazów o matrycy punktów, co daje bit = 52MB. Taka ilość danych powoduje duże trudności w ich archiwizacji (dane muszą być przechowywane przez kilka lat). Utrudnione jest także ich wykorzystanie, np. w telediagnostyce (długi czas przesyłania danych). Powyższy przykład pokazuje celowość stosowania kompresji danych, mimo malejących cen pamięci masowej. 1.1 Standardy kompresji obrazów Standardy kompresji obrazów można podzielić na dwie grupy: standardy kompresji bezstratnej oraz standardy kompresji stratnej. Do pierwszej grupy zaliczają się wszystkie metody, które nie doprowadzają do utraty danych, tzn. obraz rekonstruowany jest identyczny z obrazem oryginalnym. W tabeli zawartych jest kilka najszerzej rozpowszechnionych standardów kompresji bezstratnej. Standardy kompresji bezstratnej Liczba komponentów Liczba bitów na próbkę Graphics Interchange Format (GIF) 1, 3 8 Portable Network Graphics (PNG) 1, 3 1, 4, 8, 16 JPEG-LS 1, 3 8, 12, 16 JPEG 2000 R Tabela Standardy kompresji bezstratnej. Mimo że rozpowszechniony format GIF jest standardem kompresji bezstratnej, ze względu na ograniczenia standardu (obraz jest dzielony na bloki 16 na 16 pikseli; każdy blok ma własną paletę kolorów; w efekcie kompresja jest stosunkowo słaba), nie nadaje się do kompresji obrazów naturalnych. Istotnym czynnikiem ograniczającym zastosowanie formatu GIF jest także koszt licencji. Pamiętać należy, że dostępnych jest więcej metod kompresji bezstratnej, niż wymieniono w tabeli 1.1.1, jednak prace nad tymi standardami nie są formalnie zakończone, nie są więc one zarejestrowane i gotowe do natychmiastowego wykorzystania (np. TMW, MRP, LOCO, FELICS) lub nie spełniły oczekiwań i nie są 2

6 wykorzystywane (dotyczy to np. standardu JPEG Lossless Mode, który ze względu na niezadowalającą skuteczność kompresji został zastąpiony przez JPEG-LS oraz PNG). Tabela zawiera kilka najpopularniejszych standardów kompresji stratnej. Standardy kompresji stratnej Liczba komponentów Liczba bitów na próbkę JPEG 1, 3, 4 8, 12 JPEG 2000 I IW44 (DjVu) 1, 3 8 Tabela Standardy kompresji stratnej. Standard JPEG nie nadaje się do kompresji obrazów naturalnych przy bardzo niskiej średniej bitowej. Silna kompresja w standardzie JPEG powoduje powstanie efektu blokowego. W przypadku DjVu problemem jest koszt licencji uprawniającej do korzystania ze standardu. 1.2 Wymagania stawiane kompresji obrazów medycznych Ze względu na zastosowania medyczne, standard kompresji powinien spełniać warunki: wysoka skuteczność kompresji, kompresja bezstratna i stratna, kompresja progresywna, kompresja z uwzględnieniem ROI (regionu zainteresowania), zdolność do kompresji/dekompresji obrazów o niestandardowej ilości bitów na piksel (np. 12bit/piksel dla skali Hounsfielda), możliwość dodania opisu zawartości, możliwość zawarcia w jednym pliku serii obrazów różnej modalności (a więc obrazów o różnych parametrach), zabezpieczenie praw. Szybkość czasu kompresji i dekompresji może mieć istotne znaczenie jedynie w przypadku telediagnostyki (np.: zdalne przeprowadzanie operacji, konsultacje itp.) i sieci o wystarczająco wysokiej przepustowości. W telediagnostyce duże znaczenie ma też odporność na błędy transmisji. Jedynym standardem kompresji, który spełnia wszystkie wymienione wyżej warunki jest JPEG Cel i przebieg pracy Głównym celem niniejszej pracy jest analiza rozwiązań proponowanych w standardzie kompresji obrazów JPEG 2000 oraz ich praktyczne wykorzystanie opracowanie programu do wygodnej ale jednocześnie zaawansowanej kompresji i dekompresji obrazów z uwzględnieniem obrazów medycznych. Do zrozumienia standardu JPEG 2000 konieczna okazała się wiedza z zakresu teorii kompresji, a w szczególności wiedza ogólna (pojęcia dane, informacja, stopień 3

7 kompresji, miary zniekształceń; modelowanie oraz kodowanie danych) oraz szczegółowe poznanie praktycznych technik obróbki danych stosowanych w kompresji obrazów (transformacja kolorów, transformacja falkowa, kwantyzacja oraz kodowanie arytmetyczne). Teorii kompresji został poświęcony rozdział 2. W rozdziale 3 został przedstawiony standard JPEG Rozdział zawiera tło historyczne, schemat kompresji i własności standardu oraz przegląd obecnie dostępnego oprogramowania oraz rozwiązań do kompresji sprzętowej. Drugim etapem pracy było napisanie programu do kompresji i dekompresji obrazów wykorzystującego standard JPEG 2000 i uwzględniającego specyfikę obrazów medycznych przystosowanego do pracy z plikami o dowolnej liczbie bitów na próbkę i komponentów oraz z możliwością dodania opisu do pliku w języku XML. Program został nazwany JPER Ponieważ aplikacja ma służyć także do eksperymentów, została wyposażona w możliwie dużo opcji pozwalających na zmianę parametrów kompresji. Etap ten wymagał wykorzystania wiedzy na temat techniki i języka programowania w środowisku graficznym (wybrano środowisko Windows oraz kompilator Microsoft Studio C++). Program JPER 2000 został szczegółowo opisany w rozdziale 4. Konieczne okazało się także poznanie języka XML. Ostatnią częścią niniejszej pracy były eksperymenty przeprowadzone z wykorzystaniem napisanego programu JPER Badania objęły określenie wpływu poszczególnych parametrów na kompresję oraz porównanie standardu JPEG 2000 z innymi standardami kompresji (bezstratnej oraz stratnej). Eksperymenty opisano w rozdziale 5. 4

8 Rozdział 2 Podstawy teorii kompresji Kompresja danych jest procesem mającym na celu zmniejszenie ich objętości [3, 4]. Dane są w tym znaczeniu rozumiane jako uporządkowany ciąg symboli będący nośnikiem pewnej informacji. Granicznym stopniem kompresji jest więc sytuacja, w której objętość danych jest równa objętości (ilości) informacji zawartej w tym zbiorze. Poniżej przedstawiono wzór określający autoinformacje (I, ang. selfinformation), ilość informacji przekazywaną w wyniku pojawienia się jednego symbolu (zdarzenia) A o prawdopodobieństwie wystąpienia P(A): I ( A) 1 = logb. P Podstawa logarytmu b określa jednostkę informacji; jeśli b = 2 to jest nią bit. Entropia H ciągu S składającego się z n niezależnych zdarzeń A n (czyli wygenerowanych przez model bez pamięci, ang. discrete memoryless source) określa średnia ilość informacji przypadającej na jedno zdarzenie i dana jest wzorem: H ( S ) P( A ) ( A ) n ( A) 1 = n log b = P( An ) I( An ). n P n W rzeczywistości częściej spotykanym źródłem są modele z pamięcią (ang. conditional source model), w których prawdopodobieństwo zajścia zdarzenia zależy od zdarzeń wcześniej zaistniałych (liczbę zdarzeń mających wpływ na bieżące zdarzenie określa rząd takiego źródła). Skuteczność algorytmu kompresji (tzn. skuteczność redukcji objętości danych) jest określana stopniem kompresji (CR, ang. compression ratio), o postaci: D o CR =, D s gdzie: D o objętość danych oryginalnych w bitach, D s objętość danych skompresowanych w bitach. Inną często stosowana miarą jest procent kompresji (CP, ang. compression percentage): [%] 1 1 CP = 100. CR Drugą istotną własnością charakteryzującą jakość algorytmu kompresji jest stopień zniekształcenia (ang. distortion) zrekonstruowanych danych w stosunku do oryginalnych. Oczywiście miara ta dotyczy wyłącznie kompresji stratnej. Najczęściej do oceny zniekształceń stosuje się błąd średniokwadratowy (MSE, ang. mean squared 5

9 error). Jeśli x to N-elementowy zbiór danych oryginalnych (w przypadku obrazów są to wartości wszystkich próbek), natomiast x ~ jest zbiorem danych zrekonstruowanych, to błąd średniokwadratowy można wyznaczyć ze wzoru: MSE = 1 N N ( ~ ) n= 1 x n x n 2. Poniżej zdefiniowano kilka innych miar zniekształceń: pierwiastek błędu średniokwadratowego (RMSE, ang. root mean squared error): RMSE = MSE = 1 N N ( ) n= 1 ~ x n x n 2, średni błąd absolutny (MAE, ang. mean absolute error): MAE = 1 N ~ x n x n N n= 1, szczytowy błąd absolutny (PAE, ang. peak absolute error): PAE = ~ max x n= 1K N n x n, szczytowy stosunek sygnału do szumu (PSNR, ang. peak signal to noise ratio): max n= 1K N PSNR = MSE 2 2 ( x ) ( x ) n lub = 1 N max n= 1K N N ( ~ x x ) n= 1 [ db] 10log PSNR PSNR = 10. Proces kompresji można podzielić na dwa etapy: modelowanie oraz kodowanie danych. Jeśli kompresja jest stratna, to występuje także kwantyzacja. 2.1 Modelowanie danych W fazie modelowania tworzona jest pośrednia reprezentacja danych, która może być kodowana efektywniej, niż dane oryginalne [3, 4]. W niniejszym rozdziale przez modelowanie będzie rozumiany proces prowadzący do dekorelacji, czyli usuwania nadmiarowości z danych. Operacja ta polega na znalezieniu takiego modelu danych, który możliwie najdoskonalej opisze kompresowane dane. W przypadku danych jednowymiarowych, n n n 2 6

10 modelem może być równanie prostej. Wynikowym ciągiem danych będzie wtedy opis prostej oraz zbiór różnic między wartością rzeczywistą a wskazywaną przez dany punkt na prostej. Modelowanie danych sprowadza się więc do podziału oryginalnego zbioru danych na dwie części: opis modelu oraz ciąg różnic liczb o ograniczonej dynamice, które w efekcie mogą być reprezentowane mniejszą liczbą bitów Transformacja przestrzeni kolorów Transformacja przestrzeni kolorów jest przeprowadzana na obrazach kolorowych (choć można sobie oczywiście wyobrazić transformacje na obrazach o dowolnej, większej od jedności liczbie komponentów) i ma za zadanie doprowadzić do wzajemnej dekorelacji komponentów obrazu [5]. Istnieje nieskończona liczba możliwych przestrzeni kolorów. W ogólnym przypadku liniowe transformacje przestrzeni kolorów z przestrzeni RGB na V 1 V 2 V 3 wyrażone są wzorami: V V V = a = a = a r1 r 2 r3 R + a R + a R + a g1 g 2 g 3 G + a G + a G + a przy czym a xx są stałymi określającymi transformacje do danej przestrzeni kolorów. Podobny zestaw równań pozwala określić transformacje V 1 V 2 V 3 na RGB: R = d G = d B = d r1 r 2 r3 V + d 1 V + d 1 V + d 1 g1 g 2 g 3 V 2 V V d + d + d b1 b2 b3 b1 b2 b3 B, B, B. V3, V3, V. gdzie d xx są współczynnikami określającymi tą transformację (współczynniki te uzyskuje się poprzez odwrócenie macierz współczynników a xx ). Pomysł dekorelacji obrazu kolorowego opiera się na założeniu (potwierdzonym eksperymentami przedstawionymi w rozdziale 5), że jasność, w przeciwieństwie do chrominancji (informacji o odcieniu i nasyceniu barwy), poszczególnych punktów obrazu jest informacją wspólną dla wszystkich trzech składowych RGB. Dekorelację można zatem przeprowadzić poprzez wydzielenie z wartości RGB informacji o jasności oraz chrominancji danego piksela. Modelem informacji jest w tym przypadku jasność (jako cecha wspólna wszystkich składowych R, G i B), a różnicą chrominancja. W kompresji obrazów stosuje się głównie transformatę z przestrzeni RGB na YCbCr. Składowa Y to jasność danego piksela i jest średnią ważoną trzech składowych RGB: Y = R G B. Taki udział poszczególnych składowych wynika z czułości oka ludzkiego na barwy podstawowe. Chrominancja jest różnicą miedzy dana składową piksela a jego 3 7

11 jasnością. Wynika z tego, ze do poprawnego odtworzenia wartości RGB wystarczają dwie z trzech składowych chrominancji. Ze względu na oczywista potrzebę minimalizacji korelacji miedzy składową jasności oraz dwiema składowymi chrominancji zdecydowano się na składowe o najmniejszym udziale w jasności: chrominancje barwy niebieskiej (Cb) oraz czerwonej (Cr): czyli: Cb = B Y, Cr = R Y, Cb = R G B, Cr = R G B. Po normalizacji (sprowadzeniu składowych Cb i Cr do zakresu zmienności od -0.5 do 0.5) przekształcenie RGB na YCbCr przyjmuje ostateczną postać: Y = R G B, Cb = R G B, Cr = R G B. Transformację odwrotną (YCbCr na RGB) określają równania: R = Y Cr, G = Y Cb Cr, B = Y Cb. Na rysunku 2.1 przedstawiono obraz testowy kredki oraz rodzinę składowych RGB oraz YCbCr. Rys. 2.1 Rodzina składowych RGB oraz YCbCr obrazu testowego kredki. 8

12 Podane wyżej przekształcenia są nieodwracalne (ze względu na zmiennoprzecinkową reprezentacje składowych). Poniżej przedstawiono odwracalna wersję przekształcenia RGB na YCbCr: oraz YCbCr na RGB: Y = R + G + B 4 2 4, Cb = B - G, Cr = R G, 1 1 G = Y Cb + Cr 4 4, R = Cr + G, B = Cb + G. Przedstawiony sposób dekorelacji obrazów kolorowych daje pozytywne efekty tylko dla obrazów naturalnych (w ogólności takich, w których informacja o jasności dominuje nad informacją o odcieniu i nasyceniu barwy). Niżej podano definicje kilku innych popularnych transformacji: Transformacja RGB na YIQ oraz YIQ na RGB RGB na YIQ: Y = R G B, I = R G B, Q = R G B. YIQ na RGB: R = Y I Q, G = Y I Q, B = Y I Q. Transformacja RGB na XYZ oraz XYZ na RGB RGB na XYZ: X = R G B, Y = R G B, Z = R G B. XYZ na RGB: R = X Y Z, G = X Y Z, B = X Y Z. 9

13 Transformacja RGB na CMY oraz CMY na RGB RGB na CMY: C = 1 - R, M = 1 - G, Y = 1 - B. CMY na RGB: R = 1 - C, Transformacja falkowa G = 1 - M, B = 1 - Y. Transformata falkowa (ang. wavelet transform) jest kolejnym narzędziem, które ma za zadanie zdekorelować sygnał. Opisana w poprzednim punkcie transformacja przestrzeni kolorów dekorelowała informację pomiędzy komponentami obrazu. Transformata falkowa służy do rozdzielenia informacji zawartych w jednym komponencie na kilka części (pasm) o różnym zakresie częstotliwości (rozdzielczości) i jednocześnie malej wzajemnej korelacji [1, 3, 4, 6, 7]. Transformacja falkowa jest procesem przekształcającym daną funkcję na superpozycję funkcji bazowych falek. W przeciwieństwie do funkcji bazowych transformaty Fouriera sinusów i cosinusów, falki są funkcjami o skończonym nośniku i ograniczonej energii. Funkcje te muszą spełniać także warunek zerowej wartości średniej, który wymusza oscylacyjny przebieg funkcji. Falki ( t) ψ s, τ są uzyskiwane z funkcji macierzystej ψ ( t) poprzez jej przeskalowywanie w funkcji czasu (parametr s) oraz przesuniecie (parametr τ): 1 t τ ψ s τ () t = ψ s s,, gdzie 1 s,τ R; s 0. Element s gwarantuje zachowanie takiej samej energii wszystkich falek niezależnie od parametru s. Dla tak zdefiniowanych funkcji bazowych ciągłe przekształcenie falkowe (ang. continuous wavelet transform) ω s,τ ma postać: ω s τ f s, τ s, () t ψ () t = f () t ψ () t, =, τ dt. 10

14 Zauważyć należy, ze parametrami transformaty są wymiar i położenie falki. Dzięki temu transformata falkowa sygnału (w przeciwieństwie do transformaty Fouriera) daje bezpośredni dostęp do informacji o położeniu przestrzennym poszczególnych składowych częstotliwościowych. Funkcję oryginalną można odtworzyć korzystając z odwrotnej transformaty falkowej o postaci: gdzie: 2 Ψ( ω ) C = dω, a ( ω ) ψ 0 ω f 1 dsdτ = s, τ s, τ, 2 C s () t ω ψ () t ψ Ψ jest transformata Fouriera funkcji ψ () t. Aby całka C ψ była skończona, funkcja macierzysta ( t) warunek o zerowej wartości średniej, co odpowiada zachodzeniu równości ( 0 ) = 0 ψ musi spełniać wymieniony wcześniej Ψ. Warunek ten jest nazywany warunkiem dopuszczalności (ang. admissibility condition). Ponieważ w kompresji dane są dyskretne, bardziej interesującą wersją przekształcenia jest dyskretna transformata falkowa. Zostanie ona przedstawiona na przykładzie najprostszej transformaty falkowej transformaty Haara [7]. Najprostszym odwracalnym przekształceniem dwóch liczb (oznaczonych a, b) jest operacja polegająca na zastąpieniu danych liczb ich średnią (s) oraz różnicą (d): a + b s =, d = b a. 2 Pomysł zastosowania takiego przekształcenia opiera się na spostrzeżeniu, że jeśli wartości a i b są podobne (skorelowane), to ich różnica d będzie mała, a więc możliwa do zakodowania przy pomocy małej liczby bitów. Liczby a oraz b mogą być odtworzone ze wzorów: d a = s, 2 d b = s +. 2 Powyższe równania stanowią podstawę falkowej transformaty Haara. Niech s n będzie sygnałem (ciągiem) składającym się z 2 n wartości oznaczonych s n,l. Wartość n 2 stanowi niejako wymiar (rozdzielczość) sygnału s n, natomiast l jest numerem danej wartości (próbki) sygnału s n,l. Poste przekształcenie Haara (analiza) sygnału s n jest zdefiniowana następująco: 1 1 s n 1, l = sn,2l + sn,2l+ 1, d n 1, l = sn,2l+ 1 sn, 2l 2 2. Sygnał oryginalny s n jest dzielony na dwa sygnały (pasma) s n-1 oraz d n-1 ; oba o dwa razy mniejszej liczbie wartości (a więc o wymiarach 2 n-1 ). Sygnał s n-1 jest ciągiem średnich, natomiast d n-1 jest ciągiem różnic. Poszczególne wartości sygnałów s n-1 oraz d n-1 są nazywane współczynnikami. 11

15 Sygnał średnich s n-1 to niskorozdzielcza (niskoczęstotliwościowa) reprezentacja sygnału s n (czyli model sygnału oryginalnego), natomiast sygnał d n-1, ciąg różnic umożliwiający bezstratne odtworzenie sygnału oryginalnego, jest wysokorozdzielczą reprezentacją sygnału s n. Sygnały te stanowią pierwszy poziom rozkładu (dekompozycji) sygnału s n. Niskorozdzielcza reprezentacja sygnału oryginalnego s n-1 także może być poddana transformacji. W wyniku podziału s n-1 powstają dwa sygnały: s n-2 oraz d n-2, o liczbie współczynników równej 2 n 2 każdy. Proces dekompozycji sygnału może być oczywiście powtarzany n-krotnie (rysunek 2.2) co jest cechą charakterystyczną każdej transformacji falkowej. Sygnał s 0 jest sygnałem o najniższej rozdzielczości i składa się z jednego współczynnika s 0,0, który jest po prostu wartością średnią (składową stałą) sygnału oryginalnego. Rys. 2.2 Analiza. Odwrotną transformację (syntezę) Haara można wyznaczyć poprzez odwrócenie macierzy współczynników określających transformację prostą, stąd: 1 1 =, s n,2l+ 1 = sn 1, l d n 1. l, 2 2 s n,2l sn 1, l + d n 1. l natomiast schemat procesu syntezy przedstawiono na rysunku 2.3. Rys. 2.3 Synteza. Ciekawe spojrzenie na wyżej przedstawioną analizę oraz syntezę sygnału polega na zauważeniu, że sygnał oryginalny jest rozkładany za pomocą dwóch funkcji: skalującej oraz falki; przy czym funkcja skalująca wyznacza średnią wartość pary próbek, natomiast falka różnicę między tymi wartościami (rysunek 2.4). 12

16 Rys. 2.4 Transformacja falkowa realizowana za pomocą falki i funkcji skalującej. Z punktu widzenia teorii cyfrowego przetwarzania sygnałów przedstawiona transformata Haara stanowi zestaw dwóch bardzo prostych filtrów SOI: dolnoprzepustowego (na wyjściu którego powstaje ciąg średnich) oraz górnoprzepustowego (generującego ciąg różnic), uzupełnionych o proces binarnej decymacji (ang. downsampling) sygnału wynikowego. Filtry tej transformaty są drugiego rzędu, jednak lepsze efekty mogą być uzyskane przy pomocy filtrów wyższego rzędu (i innej rodziny funkcji bazowych, najczęściej są stosowane filtry biortogonalne). W ogólnym przypadku transformację falkową można przedstawić następująco: sn 2 t 1, l = ht sn, l+ t, d n, l g t sn, 2l+ 1 = t, t gdzie h t oraz g t to współczynniki filtru dolnoprzepustowego oraz górnoprzepustowego analizy. Odwrotna transformata falkowa ma postać: ~ = h t+ sn l+ t + g~ ~ 2 1 1, 2t+ 1d n 1 l+ t, n,2l+ 1 = h2t sn 1, l+ t + g~ s n,2l, t t s 2td n 1, l+ t t t gdzie h ~ t oraz g ~ t to współczynniki filtrów odpowiednio dolnoprzepustowego i górnoprzepustowego syntezy. W przypadku dekompozycji obrazów, proces jest identyczny, ale musi być przeprowadzany dwukrotnie (kolejno rozkładane są wiersze oraz kolumny obrazu). W efekcie takiego rozkładu powstają 4 przefiltrowane wersje obrazu oryginalnego pasma, każde odpowiadające innej częstotliwości przestrzennej po każdej ze współrzędnych. Pasma te są zazwyczaj oznaczane LL, LH, HL oraz HH. Przykładowo, pasmo oznaczone HL to obraz powstały przez przefiltrowanie obrazu oryginalnego wzdłuż współrzędnych x przez filtr górnoprzepstowy (stąd oznaczenie H, ang. high) a następnie przefiltrowanie go wzdłuż współrzędnych y przez filtr dolnoprzepustowy (oznaczenie L, ang. low). Na rysunku 2.5 przedstawiono schemat dekompozycji, 13

17 (analizy) obrazu testowego domek_grey o jeden poziom natomiast na rysunku 2.6 jego syntezę. Rys. 2.5 Analiza obrazu. Rys. 2.6 Synteza obrazu. 14

18 2.2 Kwantyzacja Kwantyzacja jest przekształceniem jednego zbioru wartości przetwarzanego sygnału w inny o mniejszej liczbie elementów [3, 4]. W technice przetwarzania danych cyfrowych oznacza to zazwyczaj podział zbioru wartości liczb (całkowitych lub rzeczywistych) na kilka przedziałów, z których każdy jest reprezentowany przez przyporządkowane mu słowo kodowe. Zbiór słów kodowych reprezentuje zatem wszystkie możliwe wartości źródła (rysunek 2.7). Rys. 2.7 Kwantyzacja. Z powyższej definicji można wysnuć dwa wnioski. Po pierwsze, proces kwantyzacji sygnału sam w sobie prowadzi do kompresji danych (mniej liczny zbiór symboli to krótsza ich reprezentacja). Po drugie, kwantyzacja prowadzi do utraty części informacji zawartej w oryginalnym ciągu danych. Najprostszym typem kwantyzatora jest kwantyzator równomierny. Kwantyzator ten charakteryzuje się tym że wszystkie przedziały (z wyjątkiem zewnętrznych, w pewnych przypadkach) mają taką samą długość. Mimo, że taki kwantyzator nie jest najczęściej optymalny (ponieważ rzeczywiste dane rzadko mają rozkład równomierny); ze względu na swoją prostotę jest często stosowany. Jeśli x oznacza dane oryginalne, a długość przedziału (krok kwantyzacji), to taki kwantyzator można opisać wzorem: x ( x) = ( x) y = Q sgn, natomiast odpowiadający mu dekwantyzator ma postać: ~ x = D +, ( y) = ( y r sgn( y) ) przy czym współczynnik r określa przesunięcie dekwantyzowanych wartości (ang. bias) i najczęściej jest równy / 2. Na rysunku 2.8 przedstawiono przykład kwantyzatora równomiernego o kroku kwantyzacji = 1 i r = 1/ 2. 15

19 Rys. 2.8 Kwantyzator równomierny. Szczególną cechą (i jednocześnie wadą) powyższego kwantyzatora jest fakt, że zero nie jest jednym z poziomów reprezentacji danych. Taki kwantyzator jest nazywany kwantyzatorem ze skokiem z zerze (ang. midrise quantizer). W przypadku 2 tego kwantyzatora błąd średniokwadratowy jest równy (taki wynik został uzyskany 12 dla funkcji gęstości prawdopodobieństwa o rozkładzie równomiernym). Kwantyzator stały w zerze (ang. midtread quantizier) można otrzymać zerując współczynnik r. 2.3 Kodowanie danych kodowanie arytmetyczne Modelowanie miało na celu dekorelację danych. Procesem prowadzącym do redukcji ich objętości jest kodowanie. Kodowanie danych może polegać na przyporządkowaniu symbolom alfabetu danych oryginalnych ciągów binarnych (tzn. każdemu symbolowi alfabetu źródła jest przypisywany unikalny ciąg bitów) [3, 4]. Zbiór kodów binarnych tworzy kod. Ciągi binarne są nazywane słowami kodowymi. Charakterystyczną cechą słów kodowych jest to, że mogą mieć one ich różną długość. Ponieważ kod binarny to kod o alfabecie składającym się z dwóch elementów, symbol źródła może być reprezentowany przez słowo kodowe o długości będącej wielokrotnością jednego bitu. Idea zastosowania kodowania danych w technikach kompresji polega więc na takim zaprojektowaniu kodu, aby symbole często występujące w kompresowanych danych były reprezentowane przez krótkie słowa kodowe, natomiast symbole występujące rzadko przez długie. Jakość takiego kodu może być określona przez średnią długość kodu (średnią bitową) l, która określa średnią liczbę bitów przypadającą na jeden symbol kodowanego ciągu: ( S ) P( a ) n( ) l =, i i a i 16

20 przy czym suma przebiega po wszystkich symbolach alfabetu, natomiast n ( a i ) jest liczbą bitów użytych do reprezentacji danego symbolu. Sam proces kodowania polega na wyznaczeniu słów kodowych o zmiennej długości stosownie do statystyki kompresowanych danych (optymalnym algorytmem generacji takich słów kodowych jest algorytm Huffmana) oraz właściwym kodowaniu, tzn. zamianie ciągu symboli na ciąg słów kodowych. Taki sposób kodowania danych ma jednak wadę. Jeśli alfabet źródła ma stosunkowo mały rozmiar a prawdopodobieństwa wystąpień poszczególnych symboli alfabetu są silnie zróżnicowane, wyżej podana procedura jest wysoce nieefektywna. Pewnym rozwiązaniem tego problemu może być specyficzne potraktowanie danych wejściowych. W pierwotnym ujęciu kompresowane dane to uporządkowany ciąg symboli należących do alfabetu źródła. Taka organizacja danych nie jest jednak obligatoryjna z punktu widzenia kodowania danych i może być zmieniona. Jedną z metod poprawy efektywności kodowania może być sztuczne powiększenie liczebności alfabetu źródła przez łączenie symboli w grupy. W przypadku zbioru dwuelementowego zgrupowanie ośmiu symboli pozwala zwiększyć liczebność alfabetu z 2 do 256 ( 2 8 = 256 ) elementów. Proces grupowania zazwyczaj niszczy jednak charakter danych. Inna niekorzystną cechą takiego kodowania jest wielkość alfabetu, który musi być przekazany do dekodera. Kodowanie takie to kodowanie z alfabetem rozszerzonym. Idea arytmetycznego kodowania danych polega na potraktowaniu kompresowanych danych jako jednego, dużego symbolu, a więc niejako na granicznym rozszerzeniu alfabetu, jednak bez konieczności jego wyznaczania i przekazywania do dekodera. Sekwencji symboli zostaje przyporządkowana jedna unikalna liczba ułamkowa należąca do zakresu [0;1). Jest to możliwe, ponieważ liczb należących do tego zakresu jest nieskończenie wiele. Liczba ta jest w pewnym sensie prawdopodobieństwem wystąpienia danego ciągu symboli i jest nazywana liczbą kodową. Jako że liczba kodowa jest wyznaczana na podstawie prawdopodobieństw symboli alfabetu źródła, aby jednoznacznie zdekodować dane dekoder musi dysponować wyłącznie zbiorem prawdopodobieństw oraz liczbą kodową nie ma zatem konieczności zapamiętywania całego alfabetu (w przypadku kodowania Huffmana alfabet musi być dla dekodera dostępny). Proces kodowania arytmetycznego można podzielić na dwa etapy. W pierwszym zakres [0; 1) jest dzielony na podzakresy. Liczba podzakresów odpowiada liczebności alfabetu źródła, natomiast szerokość jest wprost proporcjonalna do prawdopodobieństwa wystąpienia odpowiadającego mu symbolu. Podział ten może być przeprowadzony z wykorzystaniem dystrybuanty. Jeśli ( a) F S oznacza dystrybuantę zmiennej losowej S charakteryzującą źródło informacji, to przedział skojarzony z symbolem a i będzie miał zakres [ F S ( a i 1 ); F S ( a i )), przy czym F S ( a 0 ) = 0. W tabeli 2.1 podano przykładowe źródło o alfabecie składającym się z 4 symboli i odpowiadający mu podział zakresu [0; 1). 17

21 Symbol Statystyka źródła Prawdopo- Dystrybuanta P F dobieństwo ( ) a i ( ) S a i Zakresy a 1 0,4 0,4 [0; 0,4) a 2 0,3 0,7 [0,4; 0,7) a 3 0,2 0,9 [0,7; 0,9) a 4 0,1 1 [0,9; 1) Tabela 2.1 Podziału zakresu. Drugim etapem kodowania arytmetycznego jest generowanie liczby kodowej. Proces konstruowania liczby kodowej polega na cyklicznym zawężaniu zakresu [d; g), zwanego przedziałem kodu, odpowiednio do kolejnych symboli pobieranych ze źródła danych. Na początku przedział kodu [d; g) jest definiowany jako [0; 1). Każdy symbol pobrany ze źródła danych modyfikuje ten przedział poprzez jego zacieśnianie; każdy nowy przedział kodu zawiera się w przedziale wcześniejszym. Jeśli przez a i jest oznaczony dany symbol, to nowe granice przedziału kodu wyznacza się ze wzorów: * * * * * * d d + ( g d ) F S ( a ), g d + ( g d ) ( ) * d, = i 1 = F S a i, przy czym kodu. Na rysunku 2.9 są pokazane kolejne etapy kodowania arytmetycznego ciągu symboli {a 2, a 3, a 1, a 2 } w oparciu o dane przedstawione w tabeli 2.1. Pierwszym kodowanym symbolem jest a 2, stąd nowe granice przedziału kodu mają wartość: * g oznaczają odpowiednio poprzedni dolny oraz górny próg przedziału d = 0 + ( 1 0) 0,4 = 0, 4, = 0 + ( 1 0) 0,7 = 0, 7 g. W wyniku zakodowania kolejnego symbolu ( a 3 ) granice przyjmują postać: d = 0,7 + ( 0,7 0,4) 0,9 = 0, 67, = 0,7 + ( 0,7 0,4) 0,7 = 0, 61 g. Po zakodowaniu ostatniego symbolu przedział kodowy ma wartość [0,6196; 0,6286). Kodem jednoznacznie identyfikującym dany ciąg symboli jest dowolna liczba należąca do otrzymanego przedziału kodowego. Najczęściej tą liczbą jest dolny próg przedziału kodu lub jego środek. Do jednoznacznego zdekodowania liczby kodowej potrzebna jest informacja o prawdopodobieństwach oraz długości ciągu (w podanym przykładzie równej 4). 18

22 Rys. 2.9 Kolejne etapy kodowania arytmetycznego. Dekodowanie liczby kodowej jest procesem równie prostym jak kodowanie, choć ma niejako odwrotny sens. Dekodowanie to iteracyjny proces odczytywania kolejnego symbolu na podstawie liczby kodowej i jej modyfikacja. Modyfikacja liczby kodowej polega na eliminacji wpływu ostatnio zdekodowanego symbolu na wartość tej liczby, co odpowiada w pewnym sensie stopniowemu rozszerzaniu przedziału kodowego. Operację modyfikacji liczby kodowej lk wyznacza wzór: * FS ( ai 1) ( a ) F ( a ) lk lk =, F S i * przy czym przez lk oznaczono poprzednią liczbę kodową, natomiast a i jest ostatnio zdekodowanym symbolem. S i 1 19

23 Rozdział 3 Standard JPEG 2000 W połowie lat osiemdziesiątych grupa specjalistów z ITU oraz ISO (znana jako Joint Photographic Experts Group) została powołana do opracowania standardu kompresji obrazów. Owocem tych prac jest format kompresji JPEG, który w 1992 roku został oficjalnym standardem międzynarodowym. W wyniku ekspansji technik komputerowych w kolejne dziedziny nauki okazało się, że standard JPEG ma kilka poważnych ograniczeń, które uniemożliwiają jego szersze zastosowanie m.in. w medycynie. To sprawiło, że w marcu 1997 rozpoczęto prace nad nowymi metodami kompresji. W wyniku tych prac powstał standard JPEG 2000 [8, 9, 10, 13]. Standard JPEG 2000 dzieli się na następujące części: część 1, główny algorytm kompresji obrazów, część 2, rozszerzenia (m.in. dodatkowe transformacje, profile kolorów itp.), część 3, algorytm kompresji sekwencji obrazów (Motion JPEG 2000), część 4, test kompatybilności, część 5, oprogramowanie odniesienia (m.in. biblioteka JasPer), część 6, format pliku dla danych złożonych, część 7, (prace nad tą częścią zostały wstrzymane), część 8, bezpieczeństwo danych, część 9, sieciowe protokoły dostępu do danych, część 10, obrazy 3D, część 11, dostęp zdalny. Niniejsza praca opiera się na częściach 1 (kompresja) oraz 5 (oprogramowanie). Wykorzystano także pewne elementy części 2. Cechą charakterystyczną standardu JPEG 2000 jest to, że umożliwia on kompresję obrazów o dowolnej geometrii; tzn. składających się z komponentów o różnych wymiarach i różnej ilości bitów na próbkę. Liczba komponentów jest ograniczona do 2 14 (16384); natomiast ich maksymalna szerokość i wysokość to próbki (przekracza 4 miliardy próbek). Liczba bitów na próbkę jest ograniczona do 38 bitów (ponad 4 bajty). Drugą wyjątkową cechą standardu jest progresywna dekompresja (według postępującej jakości, rozdzielczości, położenia lub kolejnego komponentu). Jednak cechą najbardziej wyróżniającą JPEG 2000 spośród innych standardów jest elastyczność dostępu do skompresowanego obrazu. Standard umożliwia dostęp do wybranego komponentu, fragmentu obrazu, jego wersji niskorozdzielczej lub o ograniczonej jakości, bez konieczności dekompresji całego pliku. Inaczej mówiąc dekoder nie musi odczytywać całego pliku, aby zdekompresować wybraną część obrazu. Wydaje się to szczególnie użyteczne w przypadku zdalnego dostępu do bazy danych zawierającej obrazy o szczególnie dużej objętości (np. obrazy radiografii cyfrowej). Baza może oferować dostęp do obrazów w dowolnej wersji, mimo że każdy 20

24 obraz będzie zapisany na dysku tylko w jednym pliku (rysunek 3.1). W przypadku żądania udostępnienia obrazu w żądanej wersji, z pliku wycinany jest fragment danych (proces ten nie wymaga dekompresji i może być wykonywany przez parser) i wysyłany do odbiorcy. Taka elastyczność standardu jest możliwa przede wszystkim dzięki zastosowaniu transformaty falkowej (zamiast Fouriera) oraz kodowania arytmetycznego z wykorzystaniem procedury EBCOT. Rys. 3.1 Ten sam obraz w różnych wersjach. Pliki JP2 charakteryzują się także stosunkowo wysoką odpornością na błędy transmisji. Odporność na błędy osiągnięto dzięki niezależnemu kodowaniu i transmisji fragmentów danych (pakietów, które zostaną opisane w następnym podrozdziale). W kolejnych rozdziałach zostanie przedstawiony algorytm kompresji (rozdział 3.1), format pliku JP2 organizujący skompresowane dane (rozdział 3.2) oraz przegląd dostępnych kodeków (rozdział 3.3). 3.1 Schemat kompresji Na rysunkach 3.2 oraz 3.3 przedstawiono schemat blokowy odpowiednio algorytmu kompresji oraz dekompresji; natomiast na rysunku 3.4 postać danych w kolejnych krokach procesu kompresji. Rys. 3.2 Kompresja. 21

25 Rys. 3.3 Dekompresja. Rys. 3.4 Postać danych na kolejnych etapach kompresji. Pierwszym etapem kompresji jest formatowanie danych polegające na umiejscowieniu poszczególnych komponentów obrazu na siatce odniesienia (ang. reference grid) oraz podziale ich na części kafelki (ang. tile). Zastosowanie siatki umożliwia dokonywanie prostych operacji na obrazie skompresowanym (m.in. obrót o wielokrotność 90 stopni) oraz kompresję obrazów o komponentach o różnej wielkości (co jest istotne z punktu widzenia zastosowań w medycynie). Podział obrazu na kafelki ma na celu zmniejszenie zapotrzebowania na pamięć, umożliwia przyspieszenie kodowania (dzięki możliwości równoczesnego kodowania wielu kafelków) oraz daje dostęp do fragmentów obrazu bez konieczności dekompresji całości (należy zaznaczyć, że taka lokalna dekompresja jest możliwa także w inny sposób, który zostanie przedstawiony w dalszej części rozdziału). Po podziale obrazu wszystkie jego części są dalej przetwarzane niezależnie. Po podziale każdy kafelek jest poddawany transformacji kolorów (cel stosowania transformaty i sposób jej przeprowadzenia został opisany w rozdziale 22

26 2.1.1). W standardzie zastosowano transformację YCbCr (YCC) w wersji odwracalnej (YCC R ) oraz nieodwracalnej (YCC I ). Transformacja może być zastosowana tylko w przypadku, kiedy obraz zawiera co najmniej 3 komponenty, przy czym 3 pierwsze muszą mieć taką samą wysokość, szerokość oraz liczbę bitów na próbkę. Po transformacji kolorów wszystkie komponenty są dalej przetwarzane niezależnie. Transformacja falkowa została opisana w rozdziale W standardzie zastosowano dwie rodziny filtrów. Do kompresji stratnej stosuje się parę filtrów Daubechies; w przypadku transformaty prostej filtr dolnoprzepustowy jest rzędu 9, natomiast górnoprzepustowy rzędu 7 (stąd transformatę opartą na tych filtrach oznacza się jako 9/7). W tabeli przedstawiono współczynniki tych filtrów dla transformaty prostej (analiza) oraz odwrotnej (synteza). Współczynniki filtrów analizy Współczynniki filtrów syntezy t h t (filtr g t ( filtr h ~ t (filtr g ~ t (filtr dolnoprzepustowy) górnoprzepustowy) dolnoprzepustowy) górnoprzepustowy) ± ± ± ± Tabela Współczynniki filtru 9/7. W procesie kompresji bezstratnej stosowana jest para filtrów Le Galla (filtr dolnoprzepustowy jest rzędu 5, górnoprzepustowy rzędu 3). W tabeli zamieszczono współczynniki tych filtrów. Współczynniki filtrów analizy Współczynniki filtrów syntezy t h t (filtr g t ( filtr h ~ t (filtr g ~ t (filtr dolnoprzepustowy) górnoprzepustowy) dolnoprzepustowy) górnoprzepustowy) 0 6/ /8 ±1 2/8-1/2 1/2-2/8 ±2-1/8-1/8 Tabela Współczynniki filtru 5/3. Transformacja falkowa jest przeprowadzana z wykorzystaniem algorytmu lifting. Proces kwantyzacji został przedstawiony w rozdziale 2.2. Proces ten nie służy do kontroli stopnia kompresji (kontrolę taką zapewnia drugi proces kwantyzacji nazwany sukcesywną aproksymacją, który zachodzi w dalej opisanym procesie kodowania EBCOT), a jedynie wstępnego ograniczenia dynamiki. W standardzie JPEG 2000 zastosowano kwantyzator równomierny. Mimo że współczynnik r nie został jednoznacznie przez normę zdefiniowany, zaleca się stosowanie wartości 1/2. Krok kwantyzacji jest inny dla każdego poziomu dekompozycji, zależy od liczby bitów na próbkę w obrazie oryginalnym oraz od żądanego stopnia kompresji. W przypadku kompresji bezstratnej kwantyzacja nie jest przeprowadzana. Po kwantyzacji dane zostają podzielone na dzielnice (ang. precinct), a te z kolei na bloki kodowe (ang. code block). Każdy blok kodowy to zbiór płaszczyzn bitowych 23

27 (ang. bit plane), które są niezależnie kodowane w koderze arytmetycznym (opisanym w rozdziale 2.3). W wyniku zakodowania jednego bloku kodowego powstaje zbiór pakietów (ang. packet). Każdy pakiet należy do danego poziomu jakości warstwy (ang. layer). Warstwa jest zbiorem wszystkich pakietów z danego poziomu jakości. Zbiór wszystkich pakietów (uzupełniony nagłówkiem z informacjami o obrazie oraz parametrach kompresji) tworzy strumień kodowy (ang. code stream) obraz w postaci skompresowanej (plik zawierający taki strumień ma zazwyczaj rozszerzenie JPC). Drugi, oprócz kwantyzacji, mechanizm regulacji średniej bitowej polega na usuwaniu niektórych pakietów z kodu. Opisana procedura kodowania nosi nazwę EBCOT (ang. Embedded Block Coding with Optimized Truncation). Ze względu na dowolny wzajemny porządek poszczególnych pakietów w strumieniu kodowym (organizacja kodu), możliwe jest kodowanie progresywne. Informacja może się zwiększać poprzez stopniowy przyrost jakości rekonstrukcji (co oznacza grupowanie pakietów należących do tej samej warstwy; progresja LRCP), przyrost rozdzielczości (grupowanie pakietów poszczególnych poziomów dekompozycji; RLCP, RPCL), powiększenie zdekodowanego obszaru (grupowanie pakietów poszczególnych dzielnic lub kafelków; PCRL) bądź dekodowanie kolejnych komponentów (grupowanie pakietów w obrębie komponentów; CPLR). Jeśli obraz został skompresowany z progresją RPCL, to w strumieniu kodowym pakiety zostały zgrupowane według poziomów dekompozycji (rozdzielczości, R PCL resolution) od najwyższego poziomu dekompozycji (najniższa rozdzielczość) do najniższego (rozdzielczość oryginalna). Każda taka grupa składa się z podgrup pakietów ułożonych według położenia ( R P CL position), czyli należących do kolejnych (w porządku rastrowym) dzielnic. Analogicznie, proces przyporządkowania pakietów powtarza się względem komponentów ( RP C L component) oraz, na końcu, warstw ( RPC L - layer). Oczywistą zaletą przedstawionej organizacji danych jest łatwa modyfikacja geometrii obrazu (poprzez usuwanie odpowiednich pakietów) bez potrzeby dekompresji. Region zainteresowania (ROI, ang. region of interest) jest tworzony po przeprowadzeniu transformacji falkowej. Etap ten polega na przeskalowaniu współczynników należących do ROI współczynniki te są niejako wysuwane do góry względem pozostałych (metoda maxshift), w wyniku dominują w bardziej znaczących płaszczyznach bitowych, i w procesie kodowania trafiają do warstw, które są w procesie dekompresji dekodowane wcześniej. 3.2 Struktura pliku JP2 Jak już wspomniano skompresowany obraz w standardzie JPEG 2000 jest ciągiem pakietów, które tworzą strumień kodowy. Strumień ten może być zapisany do pliku z rozszerzeniem JPC i odczytany przez dekompresor. Plik taki nie może jednak przechowywać żadnych dodatkowych informacji (np. opisu obrazu). W standardzie JPEG 2000 zdefiniowano format JP2, który w elegancki sposób rozwiązuje powyższy problem grupuje dane różnego typu w jednym pliku. Struktura pliku JP2 to ciąg pudełek (ang. box) rysunek 3.4. Niektóre z nich mogą zawierać inne pudełka i są nazywane super pudełkami (ang. superbox). Początek 24

28 pierwszego pudełka stanowi pierwszy bajt pliku. Pudełko jest zbiorem danych składającym się z trzech części: długości (4 bajtowej liczby określającej łączną długość całego pudełka), typu (4 bajtowego pola określającego zawartość pudełka) oraz danych. Rys. 3.4 Struktura pliku JP2. Część pudełek jest wymagana i musi się znaleźć w pliku JP2 (m.in. sygnatura, nagłówek, strumień kodowy ); część jest opcjonalna (m.in. dane XML ). Generalnie porządek pudełek w pliku jest dowolny, jest jednak kilka wyjątków ( sygnatura musi być pierwszym pudełkiem w pliku, typ pliku musi się znajdować zaraz za pudełkiem sygnatura, natomiast nagłówek nie powinien się znajdować za strumieniem kodowym ). Każdy plik JP2 może zawierać dowolną liczbę pudełek strumień kodowy, dane XML lub innych zdefiniowanych na potrzeby konkretnej aplikacji. 3.3 Przegląd dostępnych kodeków Obecnie dostępnych jest wiele kodeków programów/bibliotek do kompresji lub dekompresji plików formatu JPC/JP2. W większości są to kodeki programowe, jakkolwiek jest także kilka rozwiązań sprzętowych Kodeki programowe Poniżej przedstawiono w kolejności alfabetycznej większość aktualnie dostępnych kodeków programowych wraz z krótką charakterystyką. Ze względu na to, że standard JPEG 2000 jest stosunkowo młody, wydaje się, że większość programów jest nie do końca opracowana. Regułą jest, że programy nie potrafią obsługiwać obrazów z dowolną liczbą komponentów o dowolnych rozmiarach i bitach na próbkę, nie pozwalają na stosowanie regionu zainteresowania (co może szczególnie dziwić w przypadku programów przeznaczonych do zastosowań profesjonalnych, w tym także w medycynie). Ze względu na stosunkowo częste uaktualniania, nie zdecydowano się na dokładną charakterystykę każdego produktu. Wyjątkiem jest biblioteka JasPer, 25

29 która zostanie jednak scharakteryzowana w rozdziale 4, przy okazji omawiania programu JPER Aware JPEG 2000 Codec Autor Aware, Inc. Opis SDK dla środowiska Windows. Dostępna aplikacja demonstracyjna. Cena Nieznana. Strona Almacom J2000 Autor Almacom. Opis Biblioteka dostępna w wersji źródłowej w języku C, dostępne źródła przykładowych programów konsolowych do kompresji oraz dekompresji w języku C oraz prostej przeglądarki w języku C#. Cena Produkt bezpłatny. Strona Elecard JPEG-2000 Compressor Autor Elecard, Inc. Opis Aplikacja do Windows (Image Compressor) oraz oprogramowanie w języku Java (dostępne źródła) do dekompresji (Java J2K Decompressor). Aplikacja Image Compressor jest dostępna w wersji demonstracyjnej. Firma opracowała także własny format kompresji oparty na falkach (WLT). Cena Cena programu Image Compressor nie jest znana, oprogramowanie do dekompresji w języku Java jest bezpłatne. Strona JasPer Autor Michael David Adams. Opis Biblioteka dostępna w wersji źródłowej w języku C. Dostępne źródła przykładowych programów konsolowych. Wchodzi w skład części 5 standardu JPEG Cena Produkt bezpłatny; tylko do zastosowań edukacyjnych i badawczych. Strona JJ2000 Autor JJ2000 Partners (Canon, EPFL, Ericsson). Opis Biblioteka dostępna w wersji źródłowej w języku Java, dostępne źródła przykładowych programów do kompresji oraz dekompresji w języku Java. Wchodzi w skład części 5 standardu JPEG Cena Produkt bezpłatny. Strona 26

30 Kakadu Autor David Taubman. Opis Biblioteka dostępna w postaci skompilowanej (w wersji statycznej oraz dynamicznej). Dostępny zestaw demonstracyjny do środowiska Windows. Cena 100 $ do zastosowań indywidualnych lub edukacyjnych, 500 $ do zastosowań edukacyjnych na wiele stanowisk, 5000 $ do zastosowań komercyjnych. Strona LEADTOOLS JPEG2000 Plug-in Autor LEAD Technologies, Inc. Opis LEADTOOLS JPEG2000 Plug-in to wtyczka do zestawów programistycznych (m.in. Raster Imaging, Multimedia Imaging i Medical Imaging) opracowanych przez LEAD Technologies. Zestawy te umożliwiają wygodny dostęp do danych obrazowych i są dostępne z wieloma interfejsami programistycznymi (API, C++ Classes, VCL, ActiveX oraz COM). Firma LEAD opracowała także wtyczkę do edytora Adobe Photoshop (LEAD J2K Photoshop Plug-in). Dostępna jest aplikacja demonstracyjna. Cena LEADTOOLS JPEG2000 Plug-in 995 $, LEAD J2K Photoshop Plug-in 29 $. Strona LuraWave.jp2 Autor Algo Vision LuraTech GmbH. Opis Pod wspólnym szyldem LuraWave.jp2 kryje się zestaw oprogramowania zawierający SDK (w języku C, do środowisk Windows, Unix/Linux i Macintosh), wygodny program GUI do kompresji i dekompresji SmartCompress oraz wtyczki do przeglądarek internetowych, edytora Adobe Photoshop oraz przeglądarki IrfanView. SDK obsługuje region zainteresowania. Firma opracowała także własny format kompresji oparty na falkach (LWF). Cena SDK 2500, SmartCompression Lite bezpłatny, wersja Professional 19,95, wtyczka do Photoshop w wersji Windows 29, w wersji Macintosh 79, wtyczka do IrfanView 9,95, wtyczki do przeglądarek IE i NS bezpłatne. Strona PICTools JPEG2000 Autor Pegasus Imaging Corp. Opis SDK w języku C do środowisk Windows, Solaris i Linux. Dostępny zestaw demonstracyjny. Cena PICTools JPEG2000 do środowiska Windows 4999 $, wersja Enhanced 7999 $, PICTools JPEG2000 do środowiska Solaris 5999 $, wersja Enhanced 8999 $, PICTools JPEG2000 do środowiska Linux 4999 $, wersja Enhanced 7999 $. Strona 27

31 Power SDK/Compressor/Viewer Autor Image Power, Inc. Opis SDK, program GUI do kompresji i dekompresji obrazów oraz wtyczka do przeglądarek internetowych. Uwaga: nie jest do końca jasne, czy SDK obsługuje format JPEG 2000 (jakkolwiek na pewno obsługuje format graficzny oparty na kompresji falkowej autorstwa Image Power). Cena Nieznana. Power Viewer jest bezpłatny. Strona WISImpressionist Autor WIS Technologies, Inc. Opis Konsolowy program do kompresji oraz dekompresji obrazów standardu JPEG Jako jeden z niewielu obsługuje kodowanie z wykorzystaniem regionu zainteresowania. Uwaga: pliki generowane przez WISImpressionist nie są zgodne z normą (precyzyjniej: są zgodne z wczesną wersją normy) i nie są czytane przez inne programy. Cena Bezpłatny do zastosowań edukacyjnych, naukowych lub demonstracyjnych. Strona Zauważono, że pewna część wymienionych programów jest niekompatybilna. Największy zawód sprawiło oprogramowanie firmy Image Power. Aplikacja Power Compressor nie potrafiła odczytać plików skompresowanych przez inne aplikacje (co szczególnie zaskakujące m.in. przez bibliotekę JasPer, która powstała we współpracy z firmą Image Power) i sama generowała pliki nie zawsze dające się odczytać w niektórych innych programach. Zdarzyło się, że pliku skompresowanego przy pomocy aplikacji Apollo (aplikacja demonstracyjna pakietu PICTools JPEG2000) nie był w stanie otworzyć JasPer. Aplikacja firmy WIS generuje pliki niezgodne z normą i nie dające się odczytać przez żaden z innych programów. Dzięki serwisowi MIGRATOR2000, z technologii JPEG 2000 (kompresja, dekompresja, porównanie z formatem JPEG) można skorzystać poprzez sieć Internet ( serwis wymaga jedynie bezpłatnej rejestracji Kodeki sprzętowe Kodeki sprzętowe mogą znaleźć zastosowanie we wszelkiego rodzaju elektronicznych urządzeniach rejestracji i przetwarzania obrazów (głównie przenośnych, choć nie tylko). W niniejszym rozdziale przedstawiono kilka takich rozwiązań. Amphion CS6510/CS6210 Autor Amphion Semiconductor, Ltd. Opis Para układów scalonych (odpowiednio koder oraz układ transformacji falkowej) do kompresji obrazów o szerokich zastosowaniach. Cena Nieznana. Strona 28

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

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

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

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

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 dzienne Wykład 9,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej

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

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

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

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

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

Progresywny internetowy kodek falkowy

Progresywny internetowy kodek falkowy Progresywny internetowy kodek falkowy Autor: Paweł Hałasa Zakład Elektroniki Jądrowej i Medycznej Promotor: dr inż. Artur Przelaskowski Plan prezentacji Cel pracy Środowisko pracy i użyte narzędzia 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

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

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

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

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

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

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

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

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

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20). SPIS TREŚCI ROZDZIAŁ I SYGNAŁY CYFROWE 9 1. Pojęcia wstępne Wiadomości, informacje, dane, sygnały (9). Sygnał jako nośnik informacji (11). Sygnał jako funkcja (12). Sygnał analogowy (13). Sygnał cyfrowy

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

Podstawowe pojęcia. Teoria informacji

Podstawowe pojęcia. Teoria informacji Kodowanie i kompresja informacji - Wykład 1 22 luty 2010 Literatura K. Sayood, Kompresja danych - wprowadzenie, READ ME 2002 (ISBN 83-7243-094-2) Literatura K. Sayood, Kompresja danych - wprowadzenie,

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

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

Kodowanie informacji

Kodowanie informacji Kodowanie informacji Tomasz Wykład 4: kodowanie arytmetyczne Motywacja Podstawy i własności Liczby rzeczywiste Motywacje 1 średnia długość kodu Huffmana może odbiegać o p max + 0.086 od entropii, gdzie

Bardziej szczegółowo

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),...

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),... WYKŁAD 10 Kompresja krzywych dyskretnych Kompresja krzywych dyskretnych KP SK = KW SK - stopień kompresji krzywej. KP [bajt] - obszar pamięci zajmowany przez kod pierwotny krzywej. KW [bajt] - obszar pamięci

Bardziej szczegółowo

Kody Tunstalla. Kodowanie arytmetyczne

Kody Tunstalla. Kodowanie arytmetyczne Kody Tunstalla. Kodowanie arytmetyczne Kodowanie i kompresja informacji - Wykład 3 8 marca 2010 Kody Tunstalla Wszystkie słowa kodowe maja ta sama długość ale jeden kod może kodować różna liczbę liter

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

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

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

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

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

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje Witold Tomaszewski Instytut Matematyki Politechniki Śląskiej e-mail: Witold.Tomaszewski@polsl.pl Je n ai fait celle-ci plus longue

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ Wydział Elektrotechniki, Elektroniki, Informatyki i Automatyki Politechnika Łódzka Środowisko pracy grafików dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ Formaty

Bardziej szczegółowo

FFT i dyskretny splot. Aplikacje w DSP

FFT i dyskretny splot. Aplikacje w DSP i dyskretny splot. Aplikacje w DSP Marcin Jenczmyk m.jenczmyk@knm.katowice.pl Wydział Matematyki, Fizyki i Chemii 10 maja 2014 M. Jenczmyk Sesja wiosenna KNM 2014 i dyskretny splot 1 / 17 Transformata

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

LABORATORIUM AKUSTYKI MUZYCZNEJ. Ćw. nr 12. Analiza falkowa dźwięków instrumentów muzycznych. 1. PODSTAWY TEORETYCZNE ANALIZY FALKOWEJ.

LABORATORIUM AKUSTYKI MUZYCZNEJ. Ćw. nr 12. Analiza falkowa dźwięków instrumentów muzycznych. 1. PODSTAWY TEORETYCZNE ANALIZY FALKOWEJ. LABORATORIUM AKUSTYKI MUZYCZNEJ. Ćw. nr 1. Analiza falkowa dźwięków instrumentów muzycznych. 1. PODSTAWY TEORETYCZNE ANALIZY FALKOWEJ. Transformacja falkowa (ang. wavelet falka) przeznaczona jest do analizy

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

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 falkowa na przykładzie JPEG2000

Kompresja falkowa na przykładzie JPEG2000 Kompresja falkowa na przykładzie JPEG2000 [1/143] [dr inż. Paweł Forczmański] Katedra Systemów Multimedialnych, Wydział Informatyki, Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Zawartość

Bardziej szczegółowo

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG 02.03.00-00-003/09

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG 02.03.00-00-003/09 Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG 02.03.00-00-003/09 Zadanie 6. Zastosowanie technologii informatycznych w medycynie Sprawozdanie

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

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

Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych

Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych Idea Kompresji Kompresja danych - polega na zmianie sposobu zapisu informacji w taki sposób, aby zmniejszyć redundancję czyli

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

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

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

Ćwiczenie 6. Transformacje skali szarości obrazów

Ćwiczenie 6. Transformacje skali szarości obrazów Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej

Bardziej szczegółowo

Kodowanie informacji. Przygotował: Ryszard Kijanka

Kodowanie informacji. Przygotował: Ryszard Kijanka Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy

Bardziej szczegółowo

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 2.3. Model rastrowy Rastrowy model danych wykorzystywany jest dla gromadzenia i przetwarzania danych pochodzących ze skanowania istniejących

Bardziej szczegółowo

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu

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

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

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 1 zakres materiału zakres materiału 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja.

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

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

Grafika komputerowa. Dla DSI II

Grafika komputerowa. Dla DSI II Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji

Bardziej szczegółowo

FORMATY PLIKÓW GRAFICZNYCH

FORMATY PLIKÓW GRAFICZNYCH FORMATY PLIKÓW GRAFICZNYCH Różnice między nimi. Ich wady i zalety. Marta Łukasik Plan prezentacji Formaty plików graficznych Grafika wektorowa Grafika rastrowa GIF PNG JPG SAV FORMATY PLIKÓW GRAFICZNYCH

Bardziej szczegółowo

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

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

Formaty obrazów rastrowych biblioteki PBM

Formaty obrazów rastrowych biblioteki PBM Formaty obrazów rastrowych biblioteki PBM Reprezentacja obrazu Obrazy pobierane z kamery, bądź dowolnego innego źródła, mogą być składowane na pliku dyskowym w jednym z wielu istniejących formatów zapisu

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej GRAFIKA RASTROWA WYKŁAD 2 Oprogramowanie i formaty plików Jacek Wiślicki Katedra Informatyki Stosowanej Oprogramowanie Na rynku istnieje wiele programów do tworzenia i przetwarzania grafiki rastrowej.

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

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7)

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7) mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 5, strona 1. PNG (PORTABLE NETWORK GRAPHICS) Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie

Bardziej szczegółowo

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski Dane obrazowe R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl Przetwarzanie danych obrazowych! Przetwarzanie danych obrazowych przyjmuje trzy formy:! Grafikę

Bardziej szczegółowo

Grafika na stronie www

Grafika na stronie www Grafika na stronie www Grafika wektorowa (obiektowa) To grafika której obraz jest tworzony z obiektów podstawowych najczęściej lini, figur geomtrycznych obrazy są całkowicie skalowalne Popularne programy

Bardziej szczegółowo

Teoria informacji i kodowania Ćwiczenia

Teoria informacji i kodowania Ćwiczenia Teoria informacji i kodowania Ćwiczenia Piotr Chołda, Andrzej Kamisiński Katedra Telekomunikacji Akademii Górniczo-Hutniczej Kod źródłowy Kodem źródłowym nazywamy funkcję różnowartościową, która elementom

Bardziej szczegółowo

POSZUKIWANIE FALKOWYCH MIAR POTENCJAŁU INFORMACYJNEGO OBRAZÓW CYFROWYCH JAKO WSKAŹNIKÓW JAKOŚCI WIZUALNEJ

POSZUKIWANIE FALKOWYCH MIAR POTENCJAŁU INFORMACYJNEGO OBRAZÓW CYFROWYCH JAKO WSKAŹNIKÓW JAKOŚCI WIZUALNEJ Krystian Pyka POSZUKIWANIE FALKOWYCH MIAR POTENCJAŁU INFORMACYJNEGO OBRAZÓW CYFROWYCH JAKO WSKAŹNIKÓW JAKOŚCI WIZUALNEJ Streszczenie. W pracy przedstawiono wyniki badań nad wykorzystaniem falek do analizy

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

Księgarnia internetowa Lubię to!» Nasza społeczność

Księgarnia internetowa Lubię to!» Nasza społeczność Kup książkę Poleć książkę Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność Spis treści Rozdział 1. Zastosowanie komputera w życiu codziennym... 5 Rozdział 2. Elementy zestawu komputerowego...13

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

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

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

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:

Bardziej szczegółowo

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk Kompresja danych kodowanie Huffmana Dariusz Sobczuk Plan wykładu Kodowanie metodą Shannona-Fano Kodowanie metodą Huffmana Elementarny kod Golomba Kod Golomba Kod Rice a kompresja danych 2 Efektywny kod

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

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

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1 Spis treści 1. Cyfrowy zapis i synteza dźwięku... 2 2. Schemat blokowy i zadania karty dźwiękowej... 4 UTK. Karty dźwiękowe. 1 1. Cyfrowy zapis i synteza dźwięku Proces kodowania informacji analogowej,

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

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

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

Obróbka grafiki cyfrowej

Obróbka grafiki cyfrowej Obróbka grafiki cyfrowej 1 ROZDZIELCZOŚĆ (ang. resolution) - oznacza ilość malutkich punktów, które tworzą widzialny znak w druku bądź na ekranie monitora Typowe rozdzielczości monitorów komputerowych

Bardziej szczegółowo

Przetwarzanie Sygnałów. Zastosowanie Transformaty Falkowej w nadzorowaniu

Przetwarzanie Sygnałów. Zastosowanie Transformaty Falkowej w nadzorowaniu Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Zastosowanie Transformaty Falkowej

Bardziej szczegółowo

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka PAMIĘCI Część 1 Przygotował: Ryszard Kijanka WSTĘP Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych. Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji,

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

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

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka. Wstęp teoretyczny Zmienne losowe Zmienne losowe

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

Zadanie 1. Suma silni (11 pkt)

Zadanie 1. Suma silni (11 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję

Bardziej szczegółowo

Akwizycja i przetwarzanie sygnałów cyfrowych

Akwizycja i przetwarzanie sygnałów cyfrowych Akwizycja i przetwarzanie sygnałów cyfrowych Instytut Teleinformatyki ITI PK Kraków 21 luty 2011 Analiza czas - częstotliwość analiza częstotliwościowa: problem dla sygnału niestacjonarnego zwykła transformata

Bardziej szczegółowo

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Cyfrowe Przetwarzanie Obrazów i Sygnałów Cyfrowe Przetwarzanie Obrazów i Sygnałów Laboratorium EX3 Globalne transformacje obrazów Joanna Ratajczak, Wrocław, 2018 1 Cel i zakres ćwiczenia Celem ćwiczenia jest zapoznanie się z własnościami globalnych

Bardziej szczegółowo

Teoria Informacji - wykład. Kodowanie wiadomości

Teoria Informacji - wykład. Kodowanie wiadomości Teoria Informacji - wykład Kodowanie wiadomości Definicja kodu Niech S={s 1, s 2,..., s q } oznacza dany zbiór elementów. Kodem nazywamy wówczas odwzorowanie zbioru wszystkich możliwych ciągów utworzonych

Bardziej szczegółowo

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT Plik graficzny o formacie ".tiff" TIFF (ang. Tagged Image File Format)- komputerowy format plików graficznych służy on do

Bardziej szczegółowo

Kody blokowe Wykład 2, 10 III 2011

Kody blokowe Wykład 2, 10 III 2011 Kody blokowe Wykład 2, 10 III 2011 Literatura 1. R.M. Roth, Introduction to Coding Theory, 2006 2. W.C. Huffman, V. Pless, Fundamentals of Error-Correcting Codes, 2003 3. D.R. Hankerson et al., Coding

Bardziej szczegółowo