Kwantyzacja skalarna i wektorowa. Metody zaawansowane

Podobne dokumenty
Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kompresja danych DKDA (7)

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

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

Kwantyzacja wektorowa. Plan 1. Zasada działania 2. Projektowanie. Algorytm LBG 3. Kwantyzatory strukturalne 4. Modyfikacje

Proste metody przetwarzania obrazu

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

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 ),...

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

Co to jest grupowanie

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

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

Teoria przetwarzania A/C i C/A.

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

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

Temat: Algorytm kompresji plików metodą Huffmana

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Antyaliasing w 1 milisekundę. Krzysztof Kluczek

Hierarchiczna analiza skupień

Optymalizacja ciągła

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe


Wybrane metody kompresji obrazów

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.

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

Algorytmy graficzne. Charakterystyki oraz wyszukiwanie obrazów cyfrowych

Algorytm grupowania danych typu kwantyzacji wektorów

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Kompresja dźwięku w standardzie MPEG-1

Programowanie celowe #1

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Algorytm grupowania danych typu kwantyzacji wektorów

Podstawy OpenCL część 2

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Grupowanie VQ. Kwantyzacja wektorowa (VQ Vector Quantization) SOM Self-Organizing Maps. Wstępny podział na grupy. Walidacja grupowania

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Elementy statystyki wielowymiarowej

POB Odpowiedzi na pytania

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 2 AiR III

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

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Sieci Kohonena Grupowanie

Joint Photographic Experts Group

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Spacery losowe generowanie realizacji procesu losowego

Zadanie 1. Suma silni (11 pkt)

Transformaty. Kodowanie transformujace

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

Testowanie modeli predykcyjnych

Kompresja obrazów w statycznych - algorytm JPEG

Implementacja filtru Canny ego

Uczenie sieci typu MLP

ALGORYTMY GENETYCZNE ćwiczenia

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

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

Algorytmy graficzne. Kwantyzacja wektorowa obrazów cyfrowych

Podstawy kompresji danych

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

SEGMENTACJA OBRAZU Wprowadzenie

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

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

Agnieszka Nowak Brzezińska Wykład III

Laboratorium ochrony danych

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

Metody numeryczne I Równania nieliniowe

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III

Aproksymacja funkcji a regresja symboliczna

Metody systemowe i decyzyjne w informatyce

Filtracja obrazu operacje kontekstowe

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

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

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

Algorytmy sortujące i wyszukujące

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

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

Analiza obrazów - sprawozdanie nr 2

Statystyka. Rozkład prawdopodobieństwa Testowanie hipotez. Wykład III ( )

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Metody Sztucznej Inteligencji II

Wyszukiwanie obrazów 1

Kody blokowe Wykład 2, 10 III 2011

Analiza składowych głównych. Wprowadzenie

Lekcja 5: Sieć Kohonena i sieć ART

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

Teoria Informacji i Metody Kompresji Danych

Wartości i wektory własne

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

W11 Kody nadmiarowe, zastosowania w transmisji danych

POPRAWIANIE JAKOŚCI OBRAZU W DZIEDZINIE PRZESTRZENNEJ (spatial image enhancement)

Transkrypt:

Kwantyzacja skalarna i wektorowa. Metody zaawansowane

Kwantyzacja blokowa BTC (block truncation coding) Innym przykładem metod kwantyzacji adaptacyjnej wymagającej wstępnego podziału obrazu na bloki i niezależnego przetwarzania takich bloków jest metoda dwupoziomowej kwantyzacji blokowej BTC. Idea metody BTC sprowadza się do dwupoziomowej kwantyzacji (binaryzacja, kwantyzator dwupoziomowy, jednobitowy) obrazu w poszczególnych blokach tak, aby zachować statystykę obrazu. W najprostszym przypadku sprowadza się to do zachowania średniej oraz wariancji wartości pikseli w danym bloku obrazu. Wyznaczmy parametry kwantyzacji BTC zakładając, że wartości obrazu w bloku progowane są na podstawie wartości średniej wyznaczonej w bloku nxn pikseli, N=nxn. Średnia wartość pikseli w bloku oraz średnia kwadratów wartości pikseli w bloku przed kwantyzacją określone są równaniami: Ponieważ metoda kwantyzacji BTC w podstawowej wersji sprowadza się do binaryzacji obrazu w bloku, to po wykonaniu kwantyzacji w bloku występować będą tylko dwie wartości: wartości reprezentantów dwóch przedziałów kwantyzacji. Niech wartości te oznaczone są jako y oraz y. Przyjmijmy też, że liczby pikseli skwantowanych do wartości odpowiednio y oraz y są równe: n oraz n. Wówczas średnia oraz średnia kwadratów w bloku po kwantyzacji są równe: Przyrównując prawe strony powyższych równań otrzymuje się równania określające wartości poziomów rekonstrukcji wykorzystywanych w metodzie BTC: gdzie

Kwantyzacja blokowa BTC Możliwe jest wykorzystanie innych metod określania wartości poziomów rekonstrukcji niż przedstawiona na poprzedniej stronie. Jedną z nich jest minimalizacja błędu średniokwadratowego kwantyzacji: Warunkiem koniecznym minimalizacji powyższego błędu, jak łatwo wykazać w bezpośrednim rachunku, jest: Stopień kompresji uzyskanej przy użyciu metody kwantyzacji BTC można opisać prostym równaniem: gdzie n jest rozmiarem bloku (liczbą pikseli w bloku) natomiast b określa liczbę bitów koniecznych do reprezentacji pojedynczego piksela w obrazie oryginalnym. Cechą charakterystyczną jest nasycanie się wartości stopnia kompresji do wartości b oraz wzrost stopnia kompresji przy ustalonym rozmiarze okna wraz ze wzrostem średniej bitowej w obrazie oryginalnym. Rozmiar bloku Stopień kompresji Rozmiar bloku Stopień kompresji x x 7.88 8x8 6. 6x6 7.97 6x6 7. 8 7 6 6 Rys.. Zależność stopnia kompresji przy użyciu kwantyzacji BTC od rozmiaru bloku.

Kwantyzacja blokowa BTC. Przykład y = y =7 6 6 6 treshold= 6 6 6 kodowanie dekodowanie (dekompresja) 7 7 7 7 7 7 Rys.. Prezentacja schematu pracy algorytmu BTC kwantyzacji obrazu: a) macierz reprezentująca blok x obrazu; b) segmenty bloku o wartościach powyżej i poniżej wartości progowej (tu: wartość średnia w bloku); c) mapa bitowa po kwantyzacji i kodowaniu; d) reprezentacja bloku po dekompresji. Obraz oryginalny Kwantyzacja BTC Rys.. Przykładowy obraz wejściowy i wyjściowy.

Kwantyzacja blokowa BTC przykład / a b MSE=76.9 c MSE=.7 d MSE=.68 e MSE=.68 Rys. Przykład kwantyzacji metodą BTC (z zachowanie statystyki w blokach). Na rysunku (a) przedstawiony jest obraz oryginalny. Rysunki (b)- (e) przedstawiają wynik kwantyzacji z blokiem rozmiaru odpowiednio 8x8, 6x6, x oraz x pikseli. Widoczna jest degradacja jakości obrazu towarzysząca wzrostowi rozmiaru bloku. Na rysunku (e) bardzo wyraźny jest efekt postrzępienia krawędzi na granicy bloków. Efekt blokowania (blokowy) można zmniejszyć stosując szereg metod: dithering, zmiana kształtu okna (np. w postaci krzyża), losowanie położenia okna, etc.

Kwantyzacja blokowa BTC przykład / Obraz oryginalny Obraz kwantyzowany, BTC x Obraz kwantyzowany, BTC 8x8 a b c d Obraz kwantyzowany, BTC 6 x6 Obraz kwantyzowany, BTC x e Kwantyzacja BTC: Zalety: zachowanie ostrych krawędzi obrazu; szybkość i mała złożoność obliczeniowa (wersja podstawowa BTC), względnie duże wartości stopnia kompresji przy niewielkim poziomie zniekształcenia. W praktyce algorytmy kompresji BTC należą do najbardziej efektywnych w grupie algorytmów gwarantujących średnią bitową na poziomie - bita na piksel. Istnieje wiele wariacji opisanego algorytmu BTC dodatkowo zwiększających jego efektywność. Rys. Przykład kwantyzacji obrazu kolorowego (RGB) metodą BTC (każda składowa kwantyzowana niezależnie). Wady: efekt blokowania widoczne krawędzie poszczególnych bloków obrazu; strzępienie krawędzi obiektów obrazu.

Modyfikacje podstawowej wersji metody BTC Opracowanych zostało bardzo wiele modyfikacji podstawowej wersji blokowej kwantyzacji dwupoziomowej BTC. Jedną z metod jest metoda wykorzystująca korelacje pomiędzy sąsiednimi pikselami bloku w którym wykonywana jest kwantyzacja. Istnienie korelacji pozwala przewidywać (interpolować) wartości niektórych pikseli na podstawie wartości pikseli sąsiednich. Tym samym kodowanie informacji o każdym pikseli bloku może być nadmiarowe. Jednym z rozwiązań wykorzystujących powyższą obserwację jest technika zgodnie z którą kodowanych jest połowa pikseli bloku (zaznaczone kolorem zielonym na rysunku (a)). Na ich podstawie dekoder ustala wartości brakujących pikseli, których wartości nie zostały zakodowane w strumieniu. Interpolacja przebiega według poniższych reguł: - piksele B, E, L, O otrzymują wartość wtedy i tylko wtedy, gdy co najmniej dwa piksele z ich bezpośredniego sąsiedztwa mają wartość równą. Bezpośrednie sąsiedztwo wymienionych pikseli stanowią odpowiednio: {A,C,F}, {A,F,I}, {H,K,P} oraz {N,K,P}. - D=C oraz M=N - piksele G oraz J otrzymują wartość wtedy i tylko wtedy gdy co najmniej dwa piksele z ich bezpośredniego sąsiedztwa mają wartość równą. Bezpośrednimi sąsiadami pikseli G oraz J są odpowiednio piksele {C,F,H,K} oraz {F,K,N,I}. A B C D MSE=.8 a b c MSE=6. E F G H I J K L M N O P Rys. (a) - Mapa bitowa x piksele (wyjaśnienie w tekście powyżej). Rysunki (b) i (c) przedstawiają wyniki kwantyzacji BTC w wersji odpowiednio: podstawowej oraz wykorzystującej korelacje przestrzenne. Stopień kompresji dwóch metod wynosi odpowiednio:. oraz..

Korekcja obrazu skwantyzowanego. Dithering losowy Główną metodą korekcji obrazu skwantyzowanego jest rozstrząsanie popełnionego błędu systematycznego - dithering. Istnieją trzy podstawowe odmiany tej techniki: dithering losowy lub pseudolosowy dithering systematyczny dyfuzja błędu Dithering pseudolosowy polega na dodaniu do wartości każdego piksela obrazu oryginalnego liczby pochodzącej ze zbioru ustalonego na podstawie szerokości przedziału kwantyzacji. Dopiero tak zmodyfikowany obraz poddawany jest właściwej kwantyzacji. Wartość liczb takiego zbioru zależna jest od szerokości podprzedziałów kwantyzacji, Δ. Przykładowymi zbiorami mogą być zbiory: D={-Δ/, -Δ/8,, Δ/8, Δ/} lub D={-Δ/8, -Δ/6, -Δ/,, Δ/, Δ/6, Δ/8}. Kontury obrazu zostają rozmyte na skutek dyfuzji pikseli pomiędzy obszarami wartości należącymi w oryginalnym obrazie do różnych podprzedziałów kwantyzacji.

Dithering losowy. Przykład a b c d Rys. Przykład ditheringu pseudolosowego: a) obraz wyjściowy (bez ditheringu); (b) obraz powstały po przeprowadzeniu kwantyzacji równomiernej do poziomów; c) dithering przy użyciu zbioru D; d) dithering przy użyciu zbioru D. W przypadku (d) widoczne jest zmniejszenie promienia penetracji pikseli do obszarów sąsiednich. W tym przypadku wykonana została kwantyzacja równomierna do czterech poziomów (kwantyzator z wyjściem dwubitowym).

Dithering systematyczny a Dithering systematyczny sprowadza się do sumowania obrazu wejściowego z obrazem korygującym (tzw. siatka mikrowzorów, macierz ditheringu). Systematyczność metody polega na korekcji bloków pikseli o rozmiarze odpowiadającym wymiarowi macierzy korekcji. Korekcje pomiędzy pikselami w bloku są ze sobą skorelowane, np. suma elementów macierzowych jest zerowa. Przykładowa macierz może mieć postać: b W przypadku, gdy operacja wyprowadza wartość piksela poza przedział [,L-], wartości są obcinane do tego przedziału. Rys. Przykład ditheringu systematycznego wykonanego przy użyciu macierzy D przedstawionej wyżej.

Algorytm Floyda-Steinberga dyfuzji błędu (976) Metoda dyfuzji błędu polega na korekcji wartości pikseli obrazu w zależności od popełnianego błędu kwantyzacji (!). Działanie poprzednich metod opiera się na korekcji wartości piksela liczbami wybranymi arbitralnie, a nie na podstawie błędu kwantyzacji. Popełniony błąd kwantyzacji, obliczany w każdym kroku algorytmu, jest dystrybuowany pomiędzy sąsiednimi pikselami, które nie zostały jeszcze przetworzone (poddane kwantyzacji). Algorytm Floyda-Steinberga dyfuzji błędu kwantyzacji:. przygotuj obraz wejściowy (img) oraz inicjalizuj obraz rekonstrukcji (imgq). Ustal granice decyzyjne i poziomy rekonstrukcji. Rozpocznij przeglądanie całego obrazu.. wybierz nowy piksel obrazu i porównaj jego wartość z progiem. Przydziel mu odpowiedniego reprezentanta.. wyznacz błąd kwantyzacji. przeprowadź dystrybucję błędu pomiędzy sąsiadów piksela bieżącego. jeśli istnieją nieprzejrzane piksele, to przejdź do punktu, w przeciwnym przypadku zatrzymaj algorytm. Algorytm Floyda-Steinberga posiada cechę przyczynowości, której pozbawione są dwie metody omówione wcześniej. a b for i= to n for j= to m imgq[i,j]=(img[i,j] < 8)? : ; err=img[i,j] - imgq[i,j]*; img[i+,j]+=err*(7/6); img[i-,j+]+=err*(/6); img[i,j+]+=err*(/6); img[i+,j+]+=err*(/6); end for; end for; Rys. (a) schemat dystrybucji błędu kwantyzacji dla algorytmu Floyda-Steinberga; (b) listing algorytmu.

Algorytm Floyda-Steinberga dyfuzji błędu. Przykład a =, bitrate= b =, bitrate= c =, bitrate= d =, bitrate= e =8, bitrate= f =8, bitrate= Rys.. Porównanie wyników kwantyzacji równomiernej bez niwelowania błędu kwantyzacji (rysunki a, c, e) oraz kwantyzacji z dyfuzją błędu Floyda- Steinberga (rysunki b, d, f).

Modyfikacje algorytmu Floyda-Steinberga a b Dyfuzja błędów może powodować pojawienie się zniekształceń w postaci geometrycznych wzorów (worms). Zaproponowano wiele modyfikacji podstawowego algorytmu dyfuzji. Modyfikacje sprowadzają się do zmiany schematu dystrybucji błędu oraz zwiększenia liczby sąsiadów wśród których błąd jest dystrybuowany. W drugim przypadku, wzrasta koszt wykonywanych obliczeń. a Rys.. Przykład błędów (mikrowzorów) generowanych przez algorytmy dyfuzji błędu (w silnym pomniejszeniu). a b b Rys.. Przykład dyfuzji błędu w powiększeniu: a) wynik rzeczywisty; b) przypadek idealny. Rys.. Schemat dyfuzji błędu wg a) Jarvis, Judice and Ninke (976); b) Stucki (99).

Kwantyzacja nierównomierna a b MSE=6. c Histogram cezanne.tif W przypadku obrazów o histogramach nierównomiernych, kwantyzacja równomierna jest mało efektywna. Istnieje lepsze rozwiązanie: kwantyzacja nierównomierna. Kwantyzacja nierównomierna: przedziały kwantyzacji nie muszą mieć i najczęściej nie mają - jednakowej długości. Obszary większego prawdopodobieństwa (większych wartości histogramu) otrzymują wyższą wagę i są dzielone przedziałami o mniejszym kroku. Jednocześnie obszary mniejszego prawdopodobieństwa (małe wartości histogramu) dzielone są przedziałami o większej długości. Kwantyzacja nierównomierna uwzględnia rozkład prawdopodobieństwa danych wejściowych. Podział na przedziały kwantyzacji powinien być wykonany w taki sposób, by poziomy rekonstrukcji poszczególnych przedziałów reprezentowały w przybliżeniu identyczną liczbę pikseli. MSE=..% pikseli MSE=7.6 8% pikseli 6 8 9 6 Rys. Przykład kwantyzacji równomiernej obrazu o nierównomiernym histogramie. (a) - obraz oryginalny; (b) - wynik kwantyzacji równomiernej z krokiem Δ=6 wraz z naniesionym globalnym błędem MSE kwantyzacji; (c) histogram obrazu oryginalnego z zaznaczonymi przedziałami i poziomami kwantyzacji, błędem kwantyzacji oraz udziałem pikseli w dwóch wybranych przedziałach.

Kwantyzacja nierównomierna pdf-optymalizowana Zagadnienie kwantyzacji nierównomiernej w przypadku, gdy znany jest rozkład prawdopodobieństwa danych: wyznaczyć podział pierwotnego przedziału [,L) na M nowych przedziałów kwantyzacji za pomocą M+ granic decyzyjnych {b i } i= M+ wraz z M poziomami rekonstrukcji, {y i } i=m tak, by zminimalizować błąd kwantyzacji MSE q : Teoretyczne rozwiązanie takiego zagadnienia uzyskuje się przez różniczkowanie wyrażenia na MSE q względem parametrów kwantyzacji granic decyzyjnych i poziomów rekonstrukcji. W efekcie, otrzymujemy Twierdzenie o warunkach optymalnej kwantyzacji Lloyda-Maxa. Przedziały i reprezentanci optymalnej kwantyzacji spełniają następujące warunki: Komentarz: powyższe równania są wzajemnie sprzężone, tzn. do wyznaczenia poziomów rekonstrukcji wymagana jest znajomość granic decyzyjnych, dla których z kolei wymaga się znajomości poziomów rekonstrukcji. Równania takie rozwiązuje się metodami iteracyjnymi, startując od zadanego ustawienia początkowego (podział inicjalny) i stopniowo poszukując rozwiązań zmniejszających błąd kwantyzacji. Rys. Funkcja rozkładu prawdopodobieństwa z zaznaczonymi granicami decyzyjnymi oraz centroidami przedziałów (czerwone kropki).

Kwantyzacja nierównomierna. Kwantyzacja Lloyda-Maxa. Algorytm Lloyda-Maxa:. Przyjęcie b =min(dane) oraz b M =max(dane); ustalenie progu tolerancji (warunku zatrzymania algorytmu); wybór wartości y.. Dla i=..(m -) (a) na podstawie znajomości y i oraz korzystając z równania () wyznaczamy wartość b i ; (b) znając wartości b i oraz y i oraz korzystając z () wyznaczamy wartość y i+ : y i+ =b i -y i ; Proces ten jest kontynuowany aż do wyznaczenia wartości {y,,y M } oraz {b,,b M- }. Obliczenie y =y M na podstawie równania (). Wyznaczenie różnicy y oraz y M uzyskanego na wyjściu iteracji M-. W przypadku, gdy różnica y M -y jest mniejsza od przyjętego progu - algorytm jest zatrzymywany.. W przeciwnym wypadku wartość y jest korygowana na podstawie znaku różnicy wyznaczonej w punkcie i następuje przejście do kroku.. y b y b Gdy warunek zatrzymania algorytmu nie jest spełniony () () y M- b M- Kwantyzacja nieró wnomierna opt. y M.. Rys.. Schemat wyznaczania parametrów kwantyzacji przez algorytm Lloyda-Maxa... Rys.. Przykład optymalnego podziału zakresu wejścia dla rozkładu przybliżonego przez rozkład normalny.

Amplituda zmiennej Kwantyzacja wektorowa Kwantyzacja wektorowa jest uogólnieniem kwantyzacji skalarnej. W takim przypadku wielowymiarowe przestrzenie (np. trójwymiarowa przestrzeń RGB) są dzielone na obszary decyzyjne (przedziały kwantyzacji), a następnie w każdym z takich obszarów wyznaczany jest jego reprezentant (poziom rekonstrukcji). a b komórka/ klaster R wzorzec/ reprezentant Y funkcja rozkładu Amplituda zmiennej Rys. (a) histogram dwuwymiarowy przykładowego obrazu cyfrowego (składowe R oraz G). Przykład pokazuje korelacje pomiędzy składowymi barwy. (b) - przykład podziału dwuwymiarowej przestrzeni danych na klastry grupujące się wokół swoich wzorców wektorów kodowych. Rysunek (a) przedstawia typową sytuację w której uzasadnione jest wykorzystanie kwantyzacji wektorowej.

Kwantyzacja wektorowa a b Dane wejściowe kwantyzatora Podział obrazu na wektory (bloki) koder wektor danych wektor danych wektor danych wektor danych i wektor danych K Porównanie wejścia z wektorami słownika i generowani e indeksu wzorzec wzorzec wzorzec wzorzec p Czytanie danych wejściowych (indeksu) dekoder Formowanie obrazu strumień: ciąg indeksów Rys. Kwantyzacja wektorowa. a) ogólny schemat pracy kwantyzatora; b) porównywanie wektorów danych z wektorami kodu książki kodowej (słownika) i generowanie strumienia złożonego z indeksów słownika. Kwantyzacja wektorowa jest procesem niesymetrycznym: dekodowanie jest dużo prostsze od procesu kodowania. Etapy pracy kwantyzatora wektorowego Formowanie danych wejściowych do postaci N wektorów n-wymiarowych (etap wstępny). Faza klasteryzacji: podział wszystkich wektorów wejściowych i konstrukcja książki kodowej (słownika) zawierającej K najbardziej reprezentatywnych wektorów całego zbioru danych, tzw. wektorów kodowych. Konstrukcja książki kodowej może być wykonana w fazie wstępnej na podstawie zbioru treningowego lub dynamicznie we właściwej fazie kwantyzacji. Faza klasteryzacji jest kluczowym etapem kwantyzacji wektorowej! Faza indeksowania: przyporządkowanie każdemu wektorowi wejściowemu jednego wektora ze słownika i reprezentowanie wektora wejściowego indeksem słownika. Wektorowi wejściowemu zostaje przyporządkowany ten wektor słownika, który spełnia relację: gdzie d(x,y) jest przyjętą funkcją odległości w przestrzeni wielowymiarowej. Problemy: Wybór odpowiedniej funkcji odległości w przestrzeni wektorowej. Struktura książki kodowej (prosta struktura w postaci tablicy jest nieefektywna do przeglądania).

Przykład: algorytm popularności Prostym algorytmem generacji książki kodowej jest algorytm popularności (popularity algorithm): wektorami kodowymi staje się ustalona liczba wektorów danych występujących w obrazie najczęściej (konieczne jest ustalenie progu liczby wystąpień) algorytm wyróżnia się stosunkowo małą złożonością obliczeniową i prostotą implementacji Wadą podstawowej wersji algorytmu popularności jest wprowadzanie do książki kodowej podobnych barw (dominujących). Redukcję rozmiaru książki uzyskać można przez usunięcie bliskich (w sensie przyjętej metryki) wektorów i wprowadzenie kolejnego wektora pod względem liczby wystąpień. a b c d Rys. Przykład kwantyzacji wektorowej przeprowadzonej z książką kodową skonstruowaną zgodnie z algorytmem popularności. a) - obraz oryginalny x pikseli; b) d) efekt kwantyzacji wektorowej z książkami kodowymi rozmiaru odpowiednio: 6, oraz 6. W tym przypadku, książki tworzone były przy użyciu analizy częstości wystąpień wektorów koloru po wcześniejszej równomiernej kwantyzacji skalarnej całego obrazu do 8 poziomów na każdą składową.

Przykład: algorytm popularności Obraz oryginalny Obraz skwantowany, size. % Obraz skwantowany, size.8 % a b c d Obraz skwantowany, size.6 % e 7 7 8 8 9 9 6 6 6 6 Rys. Przykład kwantyzacji wektorowej przeprowadzonej z książką kodową skonstruowaną zgodnie z algorytmem popularności. (a) - obraz oryginalny x pikseli; (b) - wynik kwantyzacji z książką kodową o rozmiarze 9, przedstawioną na rysunku (e); (c), (d) kwantyzacja z książką zawierającą odpowiednio oraz 6 wektory. W tym przypadku wejściowy obraz monochromatyczny został w fazie wstępnej podzielony na dwuelementowe bloki (wektory) zawierające pary sąsiadujących ze sobą w obrazie pikseli.

Wektorowa kwantyzacja blokowa (BTC) W przypadku podstawowej wersji metody BTC każdy skwantowany blok obrazu reprezentowany jest w strumieniu bitowym przez mapę bitową zawierającą n =n x n bitów oraz dwa bajty reprezentujące poziomy rekonstrukcji. W takim przypadku:. liczba wszystkich możliwych map bitowych jest równa n =66,. nie wszystkie z nich występują w każdym obrazie cyfrowym, np. ze względu na rozmiar obrazu oraz korelacje danych obrazowych,. różne mapy bitowe mogą prowadzić do podobnego wrażenia wzrokowego. Jednym z możliwych sposobów wykorzystania powyższych obserwacji do kompresji obrazu jest kwantyzacja wektorowa map bitowych, tzn. reprezentacja zbioru wszystkich możliwych map bitowych przez niewielki jego podzbiór (słownik). W fazie indeksacji, każda z map bitowych stworzonych dla kolejnych bloków obrazu porównywana jest ze zbiorem map w słowniku. Prostą miarą podobieństwa map jest liczba miejsc na których porównywane mapy różnią się. Mapą najbardziej podobną do zadanej jest mapa minimalizująca tak zdefiniowaną miarę. Wykorzystanie zbioru map stanowiących słownik zwiększa stopień kompresji. Przykład: w przypadku bloków x oraz elementowego słownika 6 bitów reprezentujących elementy oryginalnej mapy można zastąpić bitowym indeksem słownika. Zwiększa to stopień kompresji z CR=. do CR=6.9. Rys. Baza map bitowych służących do wygenerowania zbioru map (Ammarunnishad, Govindan, Mathew, 7). W przypadku stosowania zbioru predefiniowanych map nie ma konieczności ich włączania do strumienia bitowego ponieważ koder i dekoder używają z góry określonego zbioru. W innych przypadkach (jak opisany na następnej stronie) słownik musi być włączony do strumienia bitowego, co zmniejsza efektywność metody.

Wektorowa kwantyzacja blokowa (BTC). Przykład a b MSE=9. c MSE=.8 d e Rys. Kwantyzacja wektorowa BTC. W tym przypadku mapy bitowe stanowiące słownik zostały wybrane na podstawie kryterium częstości wystąpienia w obrazie (algorytm popularności). Rysunek (a) przedstawia obraz oryginalny. Rysunki (b) i (c) przedstawiają wynik kwantyzacji wektorowej ze słownikiem rozmiaru odpowiednio 8 oraz. Słowniki przedstawione są na rysunkach (d) oraz (e). Wykorzystanie algorytmu popularności wiąże się z koniecznością włączenia do strumienia bitowego całego słownika. Pod względem efektywności kompresji jest to rozwiązanie mniej efektywne od rozwiązania słownika standaryzowanego (zawierającego predefiniowane elementy).

Algorytm Lindego-Buza-Graya (LBG, 98) Algorytm Lindego-Buza-Graya (LBG, zmodyfikowany algorytm Lloyda) generacji książki kodowej. Określ wektory danych zbioru uczącego. Spośród wszystkich N wektorów wejściowych wybierz losowo K wektorów stanowiących wstępną wersję słownika.. Korzystając metryki euklidesowej, d(x,y), dokonaj klasteryzacji wektorów danych wokół słów kodowych bieżącej wersji słownika. Wyznacz globalny błąd kwantyzacji popełniony w bieżącej iteracji. Sprawdź czy popełniany błąd spadł poniżej ustalonej granicy. Jeśli tak to zatrzymaj algorytm. W przeciwnym wypadku przejdź do punktu.. Wyznacz centroidy każdego regionu decyzyjnego i uczyń je wektorami kodowymi kolejnej iteracji słownika. Przejdź do kroku. Problemy: wrażliwość algorytmu na inicjalną postać książki kodowej (problem inicjalizacji); problem pustych podziałów.

Algorytm Lindego-Buza-Graya przykład / a Przykladowy obraz d Przestrzeń wektorow obrazu e b I (,) (,) c I,,,,,,,,,,, Wektor danych Wektor kodowy Rys. a) przykładowy obraz cyfrowy x piksele; b) postać macierzowa obrazu; c) ciąg dwuwymiarowych wektorów obrazu; d) wektory obrazu jako punkty dwuwymiarowej przestrzeni wektorowej; e) przestrzeń wektorowa z naniesionymi wektorami kodowymi.

Algorytm Lindego-Buza-Graya przykład / error=8. a b c error=8. Iteracja : (.;.7) (,) (,) Wyznaczanie centroidów (,) d error=8. e error=6.7 f error=6.7 Iteracja : (.;.7) (.67;). Wyznaczanie centroidów (,) (.67;.) Rys. Przykład działania algorytmu LGB..

Algorytm Lindego-Buza-Graya przykład / g error=6.7 h error=6. i error=6. Iteracja : (.67;) (.67;) (;.) Wyznaczanie centroidów (.67;.) (.67;.) (.7;.) j error=6. k error=6. STOP l Iteracja : (.7;.) (;.) (.7;.) (;.) Kolejne iteracje nie wprowadzają żadnych zmian! Błąd zatrzymuje się na ustalonym poziomie: error=6.. Rys. Zmiany położeń wektorów kodowych w kolejnych iteracjach algorytmu LGB.

Książka kodów - przykład Rys. Książka kodowa zawierająca 6x6=6 wektorów kodowych dla rzeczywistego obrazu cyfrowego, uzyskana dla przypadku podziału obrazu na bloki o rozmiarze x piksele.

Inicjalizacja słownika Rozwiązania na wektory kodowe znajdowane przez algorytm LGB są wrażliwe na inicjalną postać książki kodowej podawanej na wejściu algorytmu. Istnieją trzy podstawowe, różne metody inicjowania słownika (przygotowania wersji zerowej): Metoda losowania. Sprowadza się do wylosowania w jednym kroku całej ksiązki kodowej o zadanym rozmiarze, K. Metoda grupowania najbliższych sąsiądów (PNN pairwise nearest neighbour). Konstrukcja książki rozpoczyna się od książki o rozmiarze K=N zawierającej wszystkie wektory zbioru uczącego. Stopniowo redukuje się rozmiar książki przez grupowanie par wektorów sąsiednich. Metoda rozdzielania (splitting). Konstrukcja rozpoczyna się od pojedynczego wektora centroidu zbioru uczącego. W m-tym kroku dokonywany jest (w drodze dodawania zaburzenia) podział każdego z wektorów kodowych na dwa wektory. Po takim rozdzieleniu uzyskana konfiguracja regionów decyzyjnych jest optymalizowana przez algorytm LBG, po czym dokonywany jest kolejny rozdział, etc. a b c d e Y Y- Y Y+ Rys. Konstrukcja słownika metodą rozdzialania. a) idea podziału wektora kodowego; b), c), d), e) kolejne etapy konstrukcji wektorów kodowych (zaznaczone czerwonymi punktami) na zbiorze uczącym (zaznaczony kolorem zielonym).