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

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

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

Transkrypt

1 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 przedstawienie algorytmu kompresji JPEG. W pierwszej części zostanie w miarę szczegółowo omówiony algorytm kompresji dla obrazów monochromatycznych i barwnych. Opisane zostaną kolejne kroki algorytmu od konwersji obrazu do modelu luminancja chrominancja, przez obliczenie transformaty kosinusowej, do kodowania entropijnego. Praktyczna część ćwiczenia będzie polegała na napisaniu uproszczonego kodeka (kodera i dekodera), który pozwoli na symulację prawie całego procesu kodowania i następnie odtwarzanie obrazu. Uproszczenia będą polegały na tym, że kodowanie będą jedynie obrazy monochromatyczne oraz (ze względu na zbyt dużą złożoność) pominięty zostanie fragment dotyczący kodowania entropijnego. W części trzeciej zaproponowano przeprowadzenie eksperymentu, polegającego na pomiarze stopnia kompresji i jakości obrazu uzyskanego w procesie kodowania i dekodowania. Rozważane będą, więc trzy zagadnienia: algorytm kompresji, implementacja w języku MATLAB uproszczonej wersji kodeka JPEG, wpływ stopnia kompresji na jakość odtwarzanego obrazu. 1. Algorytm kompresji i dekompresji obrazu JPEG jest algorytmem symetrycznym, co oznacza, że operacje wykonywane w dekoderze są odwróceniem odpowiednich operacji przeprowadzonych w koderze. W związku z tym na początku opisany zostanie w miarę szczegółowo proces kodowania, a w dalszej części już w sposób jedynie skrótowy dekoder. Zakłada się, że kompresowany jest obraz może być monochromatyczny lub barwny, czyli punkty obrazu opisane są przy pomocy odpowiednio jednej lub trzech liczb całkowitych. Ponadto zakłada się, że szerokość i wysokość obrazu, liczone w punktach są wielokrotnościami liczby 8. Jeśli warunek ten nie jest spełniony należy obraz uzupełnić przez dodanie właściwej liczby wierszy i (lub) kolumn.

2 Algorytm kodowania obrazu realizowany jest w sześciu krokach. Krok 1 - Konwersja do modelu luminancja chrominancja Krok ten wykonywany jest jedynie dla obrazów barwnych, zapisanych inaczej niż w kategoriach modelu luminancja - chrominancja. W przypadku, gdy kompresowany jest obraz monochromatyczny, niniejszy krok jest także pomijany. Jeśli założyć, że punkty obrazu źródłowego opisane są przy pomocy składowych R, G, B konwersja na model luminacja chrominancja n. p. model YUV, realizowana jest tak jak to pokazano w ćwiczeniu 3 a więc przez przeliczenie składowych opisujących barwę punktu przy pomocy wzoru: Y U V R G B (1) Jeśli, tak jak to zostało wcześniej założone, składowe R, G, B są liczbami całkowitymi to bezpośrednie zastosowanie wzoru (1) spowoduje, że składowe Y, U, V, już liczbami całkowitymi nie będą. Należy je, więc dalej przeliczyć na liczby całkowite przez n. p. zaokrąglenie, lub zastosować w miejsce wzoru (1) inną zależność dającą wynik bezpośrednio w postaci liczb całkowitych. Krok 2 Podział obrazu na bloki Na wstępie od wszystkich składowych obrazu odejmowana jest liczba całkowita równa połowie zakresu dla jej elementów. Dla przykładu, jeśli składowe Y, U, V zapisane są na 8 bitach to zakres wynosi 256, czyli odejmowana jest liczba 128. Po wykonaniu odejmowania obraz dzielony jest na tak zwane bloki (mniejsze obrazy) o rozmiarach 8x8 punktów. Następuje w ten sposób rozpad obrazu na części, które będą dalej przetwarzane już całkowicie niezależnie. Jeśli obraz jest monochromatyczny, blok opisywany jest jedną tablicą, w przypadku obrazu barwnego trzema tablicami zawierającymi odpowiednio składowe Y, U, V. Dla uproszczenia notacji i w jednym i w drugim przypadku blok będzie zapisywany jako tablica f : f f (i, j ) i 0, 1,, 7 j 0, 1,, 7 (2) Krok 3 Obliczenie transformaty kosinusowej dla bloków Dla każdego bloku obliczana jest transformata kosinusowa zadana wzorami (3) i (5). C( k )C(l ) F( k,l ) i 1 2 j 1 f (i, j )cos k cos l 16 i0 j0 16 (3)

3 f (i, j ) i 1 2 j 1 C( k )C(l )F( k,l )cos k cos l 16 k0 l0 16 (4) gdzie: 1 / 2 dla k 0 1 / 2 dla l 0 C ( k ) i C( l ) (5) 1 dla k 0 1 dla l 0 Jak widać przekształcenie polega na obliczeniu dla tablicy f o rozmiarze 88, innej tablicy F, o elementach F(k, l) również o rozmiarze 88. Wzór (4) opisuje natomiast tak zwaną transformatę odwrotną. Pozwala ona z tablicy F odtworzyć z powrotem tablicę, f, czyli blok danych opisujących obraz. Transformata odwrotna będzie wykorzystana w dekoderze. Krok 4 Kwantyzacja współczynników transformaty kosinusowej Wynikiem obliczeń z poprzedniego kroku jest tablica F, czyli transformata kosinusowa tablicy danych f opisujących blok. Elementy tablicy F są oczywiście liczbami rzeczywistymi. Przekształcenie zwane kwantyzacją ma dwa zadania. Po pierwsze usunięcie z danych, informacji opisującej szczegóły obrazu praktycznie niewidoczne dla oka ludzkiego. Po drugie zastąpienie liczb rzeczywistych przybliżeniami całkowitoliczbowymi. Kwantyzacja wykonywana jest według zależności opisanych wzorami (6), (7) i (8). Tak, więc zgodnie ze wzorem (6) efektem kwantyzacji jest tablica liczb całkowitych F = F (k, l), której wyliczenie sprowadza się do podzielenia współczynnika transformaty kosinusowej z tablicy F przez odpowiedni element tablicy kwantyzacji a następnie do zaokrągleniu wyniku do najbliższej liczby całkowitej. Do kwantyzacji współczynników transformaty dla składowych opisujących luminancje i chrominancję stosuje się zwykle różne tablice. Tablica, o elementach (k, l) zapisana przy pomocy zależności (7) jest przykładem tablicy stosowanej do kwantyzacji luminancji, natomiast zależność (8) pokazuje przykład tablicy kwantyzacji dla chrominancji. F( k,l ) F ( k,l ) Integer Round (6) ( k,l ) (k, l) (7)

4 ( k, l) (8) Dla typowych obrazów fotograficznych uzyskana w wyniku kwantyzacji tablica F = F (k, l) zawiera zwykle stosunkowo dużą liczbę zer rozmieszczonych zazwyczaj w obszarze prawego dolnego rogu tablicy. Oczywiście liczba i rozkład zer zależą od wartości współczynników transformaty F i od wartości liczb zapisanych w tablicach kwantyzacji. Jak widać we wzorach (7) i (8) liczby (k, l ) są znacznie większe w okolicy prawego dolnego rogu tablic kwantyzacji, tam, bowiem w tablicy współczynników transformaty F znajdują się współczynniki związane z praktycznie niewidocznymi dla oka ludzkiego szczegółami obrazu. Należy jeszcze raz podkreślić, że przedstawione tablice kwantyzacji (7), (8) zawierają jedynie wartości przykładowe, ilustrujące ideę eliminacji szczegółów obrazu przez całkowitoliczbowe przybliżenie jego transformaty. W praktyce wartości liczb (k, l) mogą być także inne. Dokładnie problem ten zostanie zilustrowany w praktycznej części ćwiczenia. Krok 5 Zamiana tablicy współczynników na wektor Następnym krokiem algorytmu, mającym za zadanie przygotowanie danych uzyskanych w wyniku kwantyzacji współczynników transformaty kosinusowej do kodowania, jest zamiana tablicy liczb całkowitych F = F (k, l) na wektor. Zamiana tablicy na wektor polega na zapisaniu elementów tablicy F w odpowiedniej kolejności określonej przez tak zwany algorytm zig-zag. Schemat wyjaśniający ideę algorytmy zig-zag pokazano poniżej. F F F ( k,l ) F ( 0, 0 ) ( 1, 0 ) ( 2, 0 ) F F F ( 0, 1) ( 11, ) ( 2, 1) F F F ( 0, 2 ) ( 1, 2 ) ( 2, 2 ) (9) Dla wygody dalszego opisu dogodnie jest wprowadzić następującą konwencje zapisu elementów tablicy F : F DC AC (10) 1 AC2 AC3 AC63

5 Pierwszy element wektora współczynników DC = F (0, 0) nosi nazwę składowej stałej, następne elementy AC 1 = F (0, 1), AC 2 = F (1, 0) itd. aż do AC 63 = F (7, 7), określone zgodnie z algorytmem zig-zag, nazywane są składowymi zmiennymi. Przekształcenie tablicy w wektor według schematu zig-zag ma sens, dlatego że zazwyczaj duża liczba zer znajdująca się w prawym dolnym rogu tablicy, zostanie przekształcona po zapisie w postaci wektora w długi ciąg zer. Taki ciąg jest obiektem stosunkowo prostym do oszczędnego zakodowania. Krok 6 Kodowanie entropijne wektora współczynników Ostatnim krokiem algorytmu kompresji jest kodowanie entropijne wektorów F zapisanych w postaci (10). Idea kodowania entropijnego polega na tym, że długość słowa kodowego służącego do zapisania kodowanego elementu jest powiązania z prawdopodobieństwem pojawienia się tego elementu. Żeby zminimalizować średnią długość ciągu kodowego (ciągu słów kodowych opisujących kolejne elementy), te elementy, które występują częściej kodowane są przy pomocy słów krótszych niż słowa kodowe przypisywane elementom występującym rzadziej. Kodowanie entropijne wektorów F wykonywane jest osobno dla składowych stałych DC i składowych zmiennych AC i. Kodowanie składowej stałej DC W typowym obrazie fotograficzny bliskie siebie bloki są zwykle dość podobne. Konsekwencją tego faktu jest to, że składowa stała transformaty kosinusowej dla bliskich bloków różni się zazwyczaj niewiele. W związku z tym w algorytmie JPEG zastosowano kodowanie składowej stałej nie bezpośrednio, lecz przy pomocy różnic. Po podziale na bloki przeprowadzonym w drugim punkcie algorytmu struktura obrazu jest taka jak pokazano na rysunku 1. DC 0 DC 1 DC 2 blok 0 blok 1 blok 2 DC k DC k+1 blok k blok k+1 DC 2k blok 2k Rys. 1. Obraz podzielony na bloki

6 W poprzednich krokach algorytmu dla każdego z bloków została obliczona skwantowana składowa stała transformaty kosinusowej DC i (górny indeks określa kolejność bloku zgodnie ze schematem pokazanym na rysunku 1). Wyodrębniając z każdego bloku składowa stałą można, więc utworzyć wektor w postaci: DC k k 1 m DC DC DC,, DC DC,, DC (11) gdzie m jest liczbą bloków obrazu. Algorytm kodowania elementów wektora DC jest następujący: Zbudować wektor w postaci: gdzie: k 1,, k,, (12) m DC 0 DC 0 DC dla k 1, k k 1 k 2,,m (13) Dla kolejnych k określić liczby size przy pomocy zależności: size IntegerRound log 2 abs 1 (14) k Zakodować elementy wektora przy pomocy poniższej tabeli kodu Hoffmana. Tab. 1. Tablica kodowania dla składowej stałej Wartość k size Kod Huffmana dla size Bity dodatkowe , ,1-3,-2, 2, ,01,10,11-7,,-4,4, ,,011,100,,111-15,,-8,8,, ,,0111,1000,, , -1024,1024,, ,,

7 Ciąg bitów kodujący kolejny element k, wektora ustala się w następujący sposób. Po pierwsze dla k i liczby size obliczonej przy pomocy wzoru (14) odczytuje się z kolumny 3 w tabeli 1 bity kodu Huffmana dla size. Po drugie w zależności od pozycji k w kolumnie 1 dodaje się do odczytanych z kolumny 3 bitów kodu odpowiednie bity dodatkowe z kolumny 4. Analizując zawartość tabeli 1 można łatwo dostrzec, na czym polega idea kodowania entropijnego. Dla typowego obrazu fotograficznego prawdopodobieństwo, że blisko położone względem siebie bloki różnią się niewiele jest duże. W takim przypadku liczby k, będące różnicami składowych stałych dla bliskich bloków będą również z dużym prawdopodobieństwem niewielkie, a często będą wynosiły wręcz 0. W tabeli 1 liczbie k = 0 przypisano, więc najkrótszy kod (00). Widać także, że coraz większym wartościom k (są one coraz mniej prawdopodobne) przypisane zostały coraz dłuższe kody. Kodowanie składowych zmiennych AC 1 - AC 63 Kodowanie składowych zmiennych AC k przeprowadza się osobno dla każdego bloku. Składowa stała DC została już zapisana wcześniej. Dla każdego bloku kodowaniu podlega, więc wektor w postaci: AC 1 AC AC,, AC (15) Wykonana w kroku 4 kwantyzacja współczynników transformaty kosinusowej spowodowała, że stosunkowo dużo współczynników AC k przyjmuje wartość 0. Na wektor (15) można, więc spojrzeć jako na układ zbudowany z niektórych niezerowych współczynników AC k, przedzielonych ciągami współczynników o wartości zerowej, czyli: AC AC AC,, AC, AC,, 0 AC,, AC, k 1 0 k 0 k 1 Jeśli dwa niezerowe współczynniki AC k będą następowały bezpośrednio po sobie, przedzielający je ciąg zer można traktować jako ciąg pusty o długości 0. Przy takim sposobie podejścia dla zapisania wektora współczynników składowej zmiennej wystarczy określić regułę kodowania dla kolejnych ciągów współczynników w postaci 0,, 0, AC k. W metodzie kodowania przyjętej w algorytmie JPEG ciąg taki zapisywany jest przy pomocy pary tak zwanych symboli. W dalszym ciągu stosowana będzie następująca notacja, 0,, 0, AC k symbol _1, symbol _ 2 (16) przy czym poszczególne symbole określone są w następujący sposób: symbol _ 1 symbol _ 2 amplitude gdzie elementy runlength, size i amplitude to: runlength, size runlength liczba zer pomiędzy niezerowym współczynnikiem AC k i poprzednim niezerowym współczynnikiem AC k-1,

8 size liczba określającą zakres, w którym znajduje się wartość współczynnika AC k, amplitude liczba wyrażająca wartość współczynnika AC k. Do zakodowania ciągu współczynników w postaci 0,, 0, AC k używa się podobnie jak to miało miejsce przy kodowaniu składowej stałej metody entropijnej, wykorzystującej kod Huffmana. Jednak algorytm jest w tym przypadku trochę bardziej skomplikowany. Można go zapisać w czterech krokach: Obliczyć runlength, czyli liczbę pomiędzy niezerowym współczynnikiem AC k i poprzednim niezerowym współczynnikiem AC k-1 Dla niezerowego współczynnika AC k obliczyć size ze wzoru size IntegerRound log 2 abs 1 Zakodować parę (runlength, size) według tabeli kodu Huffmana. Fragment tabeli pokazano poniżej. k Tab. 2. Fragment tabeli kodu Huffmana dla par (runlength, size) (runlength, size) kod Huffmana (runlength, size) kod Huffmana (0, 1) 00 (0, 6) (0, 2) 01 (1, 3) (0, 3) 100 (5, 1) EOB 1010 (6, 1) (0, 4) 1011 (0, 7) (1, 1) 1100 (2, 2) (0, 5) (7, 1) (1, 2) (1, 4) (2, 1) (3, 1) ZRL (4, 1) Występujące w tabeli 2 oznaczenia EOB i ZRL służą do zapisania odpowiednio, EOB samych zer do końca bloku, ZRL ciągu 16 zer, które można traktować jako 15 zer i zerowy współczynnik AC k. Tabela 2 jest tylko fragmentem zwierającym najbardziej prawdopodobne kombinacje par (runlength, size) tabeli kodu Huffmana.

9 Pełna tabela kodowa liczy 162 wiersze i została dołączona w pliku AC_HUFFMAN.pdf Zakodować liczbę amplitude, używając liczby size obliczonej w kroku 2 posługując się następującą tablicą: Tab. 3. Tablica do zakodowania wartości współczynnika AC k jako amplitude size wartość AC k kod amplitude , 1 0, 1 2-3, -2, 2, 3 00, 01, 10, ,,-4, 4,,7 000,, 011, 100,, ,,-8, 8,, ,, 0111, 1000,, ,,-1024,1024,, ,, W ten sposób działa algorytm realizowany w koderze JPEG. Podsumowując proces kodowania można w pewnym uproszczeniu przedstawić tak jak to pokazano na rysunku 2. Bloki 8x8 danych źródłowych DCT Kwantyzator Koder bitowy Dane skompresowane Tablice kwantyzacji Tablice kodu Huffmana Rys. 2. Uproszczona struktura kodera JPEG Algorytm wykorzystuje dane opisujące kodowany obraz oraz dwa zestawy tablic, tablice kwantyzacji i tablice kodu Huffmana. W koderze po podziale obrazu na bloki następuje obliczenie transformaty kosinusowej dla poszczególnych bloków (3) a następnie kwantyzacja współczynników transformaty (6), (7), (8). Po skwantowaniu, tablice współczynników dla

10 poszczególnych bloków są przekształcane w wektory zgodnie z regułą zig-zag i kodowane entropijnie z wykorzystaniem tablic kodu Huffmana. Osobno kodowane są składowe stałe dla poszczególnych bloków i składowe zmienne w blokach. Operacje wykonywane w dekoderze są w zasadzie odwrotnością czynności wykonanych w koderze, tak jak pokazano to na rysunku 3. Skompresowane dane przekształcane są w dekoderze bitowym, wykorzystującym tablice kodu Huffmana w wektory F (10), które po zastosowaniu algorytmu odwrotnego do algorytmu zig-zag zamieniane są w tablice F (k, l) (9). Po operacji odwrotnej do kwantyzacji, czyli pomnożeniu poszczególnych elementów tablic F (k, l) przez odpowiednie elementy tablic (k, l) otrzymuje się przybliżenia tablic współczynników transformaty kosinusowej F. Kolejnym etapem jest obliczenie odwrotnej transformaty kosinusowej (4), czyli odtworzenie bloków danych. Dane skompresowane Dekoder bitowy Dekwantyzator DCT -1 Bloki 8x8 danych odtworzonych Tablice kodu Huffmana Tablice kwantyzacji Rys. 3. Uproszczona struktura dekodera JPEG

11 2. Uproszczony kodek JPEG W części praktycznej ćwiczenia należy napisać program realizujący kodek, czyli zestaw koder i dekoder, dla obrazów zapisanych według algorytmu JPEG. Kodowane będą obrazy monochromatyczne o rozmiarze 256 x 256 pikseli zapisanych na 8 bitach. Ze względu na to, że pełny proces kodowania i dekodowania jest dość skomplikowany (dotyczy to zwłaszcza kroku 6) przyjęte zostaną następujące założenia upraszczające: Kodowaniu i dekodowaniu podlegał będzie jedynie obraz monochromatyczny, czyli pominięty zostanie krok 1 polegający na zamianie opisu obrazu na model barw YUV lub YI. Ze względu na zbytnie skomplikowanie opuszczony będzie krok 5 (zamiana tablicy na wektor przy pomocy reguły zig-zag) i krok 6 (kodowanie entropijne). Wprowadzone ograniczenia spowodują, że wynikiem kodowania będzie jedynie tablica skwantowanych współczynników transformaty kosinusowej F = F (k, l) otrzymywana jako wynik kroku 4. Ponadto dla uzyskania możliwości doświadczalnego zbadania wpływu kwantyzacji na jakość kompresji wprowadzono dodatkowo zmienną nazwaną α i przyjmującą wartości całkowite 1, 2, określającą stopień kompresji. Zmieniając α można w prosty sposób wpływać na stopień kompresji w ten sposób, że przez wartość α mnożone są wszystkie elementy tablicy kwantyzacji. Zależność opisującą proces kwantyzacji przyjmuje, więc postać: F ( k, l) Integer Round F( k, l) ( k, l) (17) Wzór (17) jest, więc rozszerzoną wersją wzoru (6) a jego senes jest taki, że im większa będzie wartość zmiennej α tym elementy tablicy transformaty kosinusowej F(k, l) dzielone będą przez większe liczby i w tablicy F = F (k, l) uzyska się więcej zer. Schemat uproszczonego kodera uwzględniającego modyfikację polegającą na sterowaniu stopniem kompresji przy pomocy zmiennej α pokazano na rysunku 4. W dekoderze, którego schemat przedstawiony został na rysunku 5 operacja kwantyzacji odwrotnej dla danego stopnia kompresji α realizowana jest przy pomocy zależności: ~ przy czym F k, l ~ F k, l F ( k, l) ( k, l) (18) jest tablicą współczynników transformaty kosinusowej odtworzoną w dekoderze. Struktura uproszczonego dekodera zaprezentowana została na rysunku 5. Jak widać operacje wykonywane w koderze i dekoderze są praktycznie symetryczne.

12 Obraz źródłowy Odjęcie od wartości elementów obrazu liczby 128 Podział obrazu na bloki i obliczenie dla bloków transformaty kosinusowej, wzór (3) Tablica kwantyzacji,wzór (7) Kwantyzacja współczynników transformaty kosinusowej, wzór (17) Stopień kompresji α Obraz zakodowany F = F (k, l) Rys. 4. Schemat uproszczonego kodera JPEG Obraz zakodowany F = F (k, l) Tablica kwantyzacji, wzór (7) Odwrócenie kwantyzacji współczynników transformaty kosinusowej wzór (18) Stopień kompresji α Obliczenie dla bloków obrazu odwrotnej transformaty kosinusowej, wzór (4) Dodanie do wartości elementów obrazu liczby 128 Obraz zrekonstruowany Rys. 5. Schemat uproszczonego dekodera JPEG

13 Szkielet programu kodeka JPEG w języku MATLAB Program składał się będzie z trzech plików: Programu głównego realizującego koder i dekoder o nazwie na przykład jpeg_codec.m, funkcji quantization.m wykonującej kwantyzację według wzoru (17), funkcji dequantizatio.m służącej do odwrócenia operacji kwantyzacji, realizującej wzór (18) Funkcje quantization.m i dequantizatio.m wywoływane będą w odpowiednich miejscach programu jpeg_codec.m Wskazówki dla realizacji poszczególnych funkcji są następujące: Funkcja jpeg_codec.m Koder (realizacja procesu z rysunku 4) Utworzyć plik o nazwie jpeg_codec.m. Przeczytać z pliku Lena_gray_8.tif obraz źródłowy i umieścić go w tablicy. Przekonwertować elementy tablicy zawierającej przeczytany obraz do formatu double. Należy zastosować zwykłą konwersję tablicy liczb całkowitych do tablicy liczb typu double, czyli B = double(a) a nie B = im2double(a), która skaluje elementy do wartości z przedziału [0, 1]. Od elementów otrzymanej w poprzednim kroku tablicy należy odjąć liczbę 128. Podzielić tablicę zawierająca elementy obrazu na bloki i wykonać na elementach bloków transformatę kosinusową. Można to bardzo łatwo zrobić przy pomocy funkcji blkproc( )(patrz system pomocy Help), która wykonuje na blokach o zadanym rozmiarze w tablicy A, zadaną funkcję i wynik umieszcza w tablicy B. W programie kodeka należy po prostu wywołać funkcję w postaci: B = blkproc (A, [8,8], 'dct2'); Spowoduje to, że tablica A zostanie podzielona na bloki o rozmiarze 8 x 8, na każdym z bloków zostanie wykonana dwuwymiarowa transformata kosinusowa opisana wzorem (3), zrealizowana w pakiecie MATALB przy pomocy funkcji dct2 a wynik obliczeń umieszczony zostanie w tablicy B. Wykonać kwantyzację współczynników transformaty kosinusowej, stosując znów funkcje blkproc( ), przy czym trzecim argumentem funkcji powinna być tym razem funkcja realizująca kwantyzacje quantization. Funkcję ta należy napisać

14 samodzielnie a jej konstrukcja zostanie podana dalej. W efekcie powstanie tablica zawierająca kwantowane współczynniki transformaty kosinusowej a więc zgodnie z założeniami zakodowany obraz. Dekoder (realizacja procesu z rysunku 5) Wykonać odwrócenie kwantyzacji współczynników zakodowanego obrazu stosując jeszcze raz funkcję blkproc( ), trzecim argumentem funkcji powinna być teraz funkcja realizująca odwrócenie kwantyzacji dequantization. Podobnie jak funkcję quantization należy ja samodzielnie napisać. Stosując kolejny raz funkcję blkproc( ), tym razem z trzecim parametrem idct2 obliczyć odwrotną transformatę kosinusową dla bloków przetwarzanej tablicy. Funkcja idct2 służy w pakiecie MATLAB do obliczania odwrotnej transformaty kosinusowej opisanej wzorem (4). Do elementów otrzymanej w poprzednim kroku tablicy dodać liczbę 128. Znormalizować elementy tablicy do wartości z przedziału [0, 1] przez podzielenie ich przez liczbę 255. Wykonać konwersję tablicy na obraz w formacie uint8 przy pomocy funkcji im2uint8( )otrzymując w efekcie obraz zrekonstruowany ze skompresowanych danych. W oknie graficznym wyświetlić obraz źródłowy (przeczytany z pliku) i obraz zrekonstruowany. Funkcja qantization Zadaniem funkcji jest wykonanie kwantyzacji opisanej wzorem (17). Poszczególne etapy, jakie należy wykonać przy pisaniu funkcji są następujące: Utworzyć plik o nazwie quantization.m Zadeklarować postać funkcji wpisując w pierwszej linii pliku. function B = quantization(a) Zadeklarować zmienną alpha (współczynnik kompresji α ) i ustawić wartość tej zmiennej na przykład na 1. Zadeklarować tablicę o rozmiarze 8 x 8 zgodnie ze wzorem (7). Zakodować wzór (17) używając do zaokrąglenia funkcji round( )

15 Funkcja deqantization Funkcja ma realizować odwrócenie operacji kwantyzacji opisane wzorem (18). Struktura funkcji jest podobna do poprzednio opisanej funkcji quantization. Utworzyć plik o nazwie dequantization.m Zadeklarować postać funkcji wpisując w pierwszej linii pliku. function B = dequantization(a) Zadeklarować zmienną alpha (współczynnik kompresji) i ustawić wartość tej zmiennej na przykład na 1. Zadeklarować tablicę o rozmiarze 8 x 8 zgodnie ze wzorem (7). Zakodować wzór (18). Wykonanie programu jpeg_codec powinno spowodować wyświetlenie w oknie graficznym dwóch obrazów, obrazu źródłowego i obrazu zrekonstruowanego, czyli otrzymanego po przeprowadzeniu procesu kompresji i dekompresji. Obrazy powinny się różnić. Wiadomo, że wykonywana według powyżej opisanego algorytmu kompresja JPEG jest kompresją stratną a więc obraz zrekonstruowany nie jest już taki sam jak obraz źródłowy, bowiem z obrazu źródłowego usunięte zostały niektóre szczegóły. Zmieniając wartość współczynnika α (zrealizowanego w programie przy pomocy zmiennej alpha), przez podanie kolejnych wartości całkowitych 1, 2, itd. można wpływać na stopień kompresji i obserwować jak zmienia się jakość obrazu zrekonstruowanego. Przykłady obrazów źródłowego i zrekonstruowanego przy wartościach α = 1 i α = 10 pokazane zostały na rysunkach 6 i 7. Jak widać na rysunkach dla α = 1 obraz zrekonstruowany prawie nie różni się od źródłowego natomiast dla α = 10 można zaobserwować już znaczącą różnicę. Można przeprowadzić eksperyment polegający na zmianie współczynnik kompresji α i obserwacji obu obrazów. Ocena wizualna jest oczywiście w jakimś sensie miarodajna, jednak dla obiektywnego porównania obrazów i stwierdzenia wpływu stopnia kompresji na jakość jej rezultatu stosowane są pewne kryteria liczbowe. 3. Stopień kompresji i jakość obrazu zrekonstruowanego Stopień kompresji obrazu uzyskany w efekcie zastosowania dowolnego algorytmu kompresji można w oczywisty sposób zmierzyć porównując wielkość pliku zawierającego obraz źródłowy z wielkością pliku, w którym zapisano dane po wykonaniu kompresji. W przypadku uproszczonej wersji algorytmu, jaką zaproponowano w poprzednim punkcie nie jest to jednak bezpośrednio możliwe, bowiem algorytm jako wynik kompresji nie tworzy pliku a jedynie tablicę skwantowanych współczynników transformaty kosinusowej. Implementacja pomija, bowiem ostatni krok algorytmu, czyli kodowanie entropijne. Można jednak wprowadzić w miarę sensowne kryterium pomiaru stopnia kompresji. Kryterium takim może być na przykład liczba zer w tablicy skwantowanych współczynników transformaty kosinusowej. Można powiedzieć, że im więcej zer tym większa kompresja.

16 Rys. 6. Obraz źródłowy i zrekonstruowany dla α = 1 Rys. 7. Obraz źródłowy i zrekonstruowany dla α = 10

17 Ocena stopnia kompresji Przyjmując za kryterium oceny stopnia kompresji liczbę zer w tablicy skwantownych współczynników transformaty kosinusowej należy zmodyfikować poprzednio napisany program w sposób następujący: W programie jpeg_codec po części implementującej koder obliczyć liczbę zer w tablicy kwantowanych współczynników transformaty kosinusowej. Do obliczenia liczby zer w tablicy najlepiej jest użyć funkcji nnz( ) (patrz system pomocy Help). Dodać fragment kodu wyświetlający na konsoli liczbę odpowiadającą procentowej zawartości zer w tablicy skwantowanych współczynników transformaty kosinusowej. Po wprowadzeniu tych prostych modyfikacji należy zaobserwować jak zmienia się procentowa zawartość zer, dla różnych wartości współczynnika α. Ocena jakości obrazu zrekonstruowanego Ocenę jakości obrazu odtworzonego ze skompresowanych danych można przeprowadzić porównując obraz źródłowy i zrekonstruowany. Do porównania dwóch obrazów powszechnie stosuje się kryterium błędu średniokwadratowego MSE (Mean Square Error) wyrażonego w postaci: gdzie: n m 1 2 MSE( X, Y) xi, j yi, j (19) n m i1 j1 X tablica o elementach x(i, j) opisująca obraz źródłowy, Y tablica o elementach y(i, j) opisująca obraz zrekonstruowany, n, m rozmiary obrazów. Często także kryterium MSE przedstawia się dla wygody, w trochę innej postaci, w skali logarytmicznej. Kryterium nazywane jest wtedy PSNR (Peak Signal to Noise Ratio), co oznacza stosunek szczytowej wartości sygnału do szumu i opisane jest wzorem: 255 PSNRX, Y 20 log10 (20) MSE X, Y Jednostką PSNR jest tak zwany decybel oznaczany w skrócie jako db. Aby nie komplikować zadania w materiałach do ćwiczenia została dodana gotowa funkcja [mse, psnr] = mse_error(a, B) obliczająca dla dwóch kwadratowych obrazów wartości wskaźników MSE i PSNR.

18 Wykorzystując tą funkcję należy przeprowadzić eksperyment polegający na wyznaczeniu MSE i PSNR dla obrazów źródłowego i zrekonstruowanego dla różnych wartości współczynnika kompresji α a wyniki zestawić w tabelce lub zaprezentować na wykresie.

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

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 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

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

Techniki wizualizacji. Ćwiczenie 2. Obraz cyfrowy w komputerze

Techniki wizualizacji. Ćwiczenie 2. Obraz cyfrowy w komputerze Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Techniki wizualizacji Ćwiczenie 2 Obraz cyfrowy w komputerze Celem ćwiczenia

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

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

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

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych

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

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

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

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

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

Inżynieria obrazów cyfrowych. Ćwiczenie 3. Wybrane modele kolorów i ich zastosowania

Inżynieria obrazów cyfrowych. Ćwiczenie 3. Wybrane modele kolorów i ich zastosowania Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Inżynieria obrazów cyfrowych Ćwiczenie 3 Wybrane modele kolorów i ich zastosowania

Bardziej szczegółowo

2. Układy równań liniowych

2. Układy równań liniowych 2. Układy równań liniowych Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 2. Układy równań liniowych zima 2017/2018 1 /

Bardziej szczegółowo

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

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

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

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

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

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

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

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

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

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu

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

Sortowanie zewnętrzne

Sortowanie zewnętrzne Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często

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

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa Diagnostyka i niezawodność robotów Laboratorium nr 6 Model matematyczny elementu naprawialnego Prowadzący: mgr inż. Marcel Luzar Cele ćwiczenia:

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

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

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

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

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

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

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

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

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

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

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

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

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

Rijndael szyfr blokowy

Rijndael szyfr blokowy Rijndael szyfr blokowy Andrzej Chmielowiec 24 lipca 2002 1 Podstawy matematyczne Kilka operacji w standardzie Rijndael jest zdefiniowanych na poziomie bajta, przy czym bajty reprezentują elementy ciała

Bardziej szczegółowo

Zad. 3: Układ równań liniowych

Zad. 3: Układ równań liniowych 1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich

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

Zajęcia wprowadzające W-1 termin I temat: Sposób zapisu wyników pomiarów

Zajęcia wprowadzające W-1 termin I temat: Sposób zapisu wyników pomiarów wielkość mierzona wartość wielkości jednostka miary pomiar wzorce miary wynik pomiaru niedokładność pomiaru Zajęcia wprowadzające W-1 termin I temat: Sposób zapisu wyników pomiarów 1. Pojęcia podstawowe

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Podstawy MATLABA, cd.

Podstawy MATLABA, cd. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA, cd. 1. Wielomiany 1.1. Definiowanie

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia I stopnia rok akademicki 2011/2012 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Uwagi wstępne Układ liniowych równań algebraicznych można

Bardziej szczegółowo

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT) 8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT) Ćwiczenie polega na wykonaniu analizy widmowej zadanych sygnałów metodą FFT, a następnie określeniu amplitud i częstotliwości głównych składowych

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

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0, 2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d

Bardziej szczegółowo

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Metoda eliminacji Gaussa. Autorzy: Michał Góra Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4 Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych

Bardziej szczegółowo

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

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

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.1 Opis programów Do rozwiązania zadań programowania

Bardziej szczegółowo

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

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

Stan wysoki (H) i stan niski (L)

Stan wysoki (H) i stan niski (L) PODSTAWY Przez układy cyfrowe rozumiemy układy, w których w każdej chwili występują tylko dwa (zwykle) możliwe stany, np. tranzystor, jako element układu cyfrowego, może być albo w stanie nasycenia, albo

Bardziej szczegółowo

Techniki wizualizacji. Ćwiczenie 4. Podstawowe algorytmy przetwarzania obrazów

Techniki wizualizacji. Ćwiczenie 4. Podstawowe algorytmy przetwarzania obrazów Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Techniki wizualizacji Ćwiczenie 4 Podstawowe algorytmy przetwarzania obrazów

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

LICZBY ZMIENNOPRZECINKOWE

LICZBY ZMIENNOPRZECINKOWE LICZBY ZMIENNOPRZECINKOWE Liczby zmiennoprzecinkowe są komputerową reprezentacją liczb rzeczywistych zapisanych w formie wykładniczej (naukowej). Aby uprościć arytmetykę na nich, przyjęto ograniczenia

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

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

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Systemy liczbowe używane w technice komputerowej

Systemy liczbowe używane w technice komputerowej Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.

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

ZADANIE 1. Rozwiązanie:

ZADANIE 1. Rozwiązanie: EUROELEKTR Ogólnopolska Olimpiada Wiedzy Elektrycznej i Elektronicznej Rok szkolny 200/20 Rozwiązania zadań dla grupy teleinformatycznej na zawody II. stopnia ZNIE ramka logiczna w technologii MOS składa

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm 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 F

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

Synteza strukturalna automatu Moore'a i Mealy

Synteza strukturalna automatu Moore'a i Mealy Synteza strukturalna automatu Moore'a i Mealy (wersja robocza - w razie zauważenia błędów proszę o uwagi na mail'a) Załóżmy, że mamy następujący graf automatu z 2 y 0 q 0 z 1 z 1 z 0 z 0 y 1 z 2 q 2 z

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

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 8 Transformaty i kodowanie cz. 2 Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS

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

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 JPG obrazu sonarowego z uwzględnieniem założonego poziomu błędu

Kompresja JPG obrazu sonarowego z uwzględnieniem założonego poziomu błędu Kompresja JPG obrazu sonarowego z uwzględnieniem założonego poziomu błędu Mariusz Borawski Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Zbieranie danych Obraz sonarowy

Bardziej szczegółowo

1 Układy równań liniowych

1 Układy równań liniowych II Metoda Gaussa-Jordana Na wykładzie zajmujemy się układami równań liniowych, pojawi się też po raz pierwszy macierz Formalną (i porządną) teorią macierzy zajmiemy się na kolejnych wykładach Na razie

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ KDEMI MORSK KTEDR NWIGCJI TECHNICZEJ ELEMETY ELEKTRONIKI LORTORIUM Kierunek NWIGCJ Specjalność Transport morski Semestr II Ćw. 4 Podstawy techniki cyfrowej Wersja opracowania Marzec 5 Opracowanie: mgr

Bardziej szczegółowo

Zadanie 2: Arytmetyka symboli

Zadanie 2: Arytmetyka symboli 1 Cel ćwiczenia Zadanie 2: Arytmetyka symboli Wykształcenie umiejętności abstrahowania operacji arytmetycznych. Zapoznanie się i przećwiczenie mechanizmu tworzenia przeciążeń funkcji operatorowych. Utrwalenie

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

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

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

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015 1 wczoraj Wprowadzenie matematyczne. Entropia i informacja. Kodowanie. Kod ASCII. Stopa kodu. Kody bezprefiksowe.

Bardziej szczegółowo

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze... Tekst na niebiesko jest komentarzem lub treścią zadania. Zadanie. Dane są macierze: A D 0 ; E 0 0 0 ; B 0 5 ; C Wykonaj poniższe obliczenia: 0 4 5 Mnożenia, transpozycje etc wykonuję programem i przepisuję

Bardziej szczegółowo

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for. Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

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

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN): 1. SYSTEMY LICZBOWE UŻYWANE W TECHNICE KOMPUTEROWEJ System liczenia - sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Do zapisu

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

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

Kilka prostych programów

Kilka prostych programów Ćwiczenie 1 Kilka prostych programów Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: definiowanie stałych, deklarowanie

Bardziej szczegółowo