Podręcznik

Strona: SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych
Kurs: Użytkowanie multimediów
Książka: Podręcznik
Wydrukowane przez użytkownika: Gość
Data: środa, 4 grudnia 2024, 19:50

1. Standardy multimedialne

Wysiłki wielu badaczy, teoretyków i praktyków, próbujących sprostać bieżącym wyzwaniom współczesności koncentrowały się wokół tworzonych i doskonalonych standardów multimedialnych. Prace standaryzacyjne gwarantowały możliwość przełożenia najnowszych osiągnięć badaczy na rozwiązania praktyczne, stanowiące globalne ramy najnowszych technologii rynkowych. Otwarty i twórczy charakter takiej pracy służył nierzadko narodzinom nowych technologii przekładanych prawie  natychmiast na usługi użyteczne w niemal nieograniczonej skali.

Do najistotniejszych zagadnień poruszonych w tym wykładzie należy charakterystyka standardów multimedialnych rodzin JPEG i MPEG, ze szczególnym zwróceniem uwagi na proces ich doskonalenia, zakres zastosowań oraz stosowne rozwiązania algorytmiczne. Warto zwrócić uwagę przede wszystkim na algorytmy kompresji JPEG, JPEG2000 oraz MPEG-2 i H.264, specyficzne ich dostosowanie do charakterystyki odbiorcy informacji, wręcz nieograniczonego zakresu definiowania danych źródłowych oraz wymagań współczesnych systemów przekazu informacji wielostrumieniowej. Ważne jest ponadto zrozumienia zasad indeksowania oraz ocena skuteczności procesu wyszukiwania danych po zawartości.


Najstarszymi (1980 rok) i szeroko stosowanymi obecnie standardami kompresji obrazów cyfrowych są międzynarodowe standardy kodowania cyfrowych faksów, odpisów (\emph{facsimile}) Grupy 3 i Grupy 4 opracowane przez grupę konsultacyjną CCITT (Consultative Committee of the International Telephone and Telegraph). Standardy te dotyczą jedynie binarnych obrazów zawierających teksty i dokumenty. Wzrost liczby zastosowań wielopoziomowych obrazów cyfrowych w szerokiej gamie zastosowań nieuchronnie prowadzi do opracowywania nowych standardów kompresji. Udogodnienia związane z wprowadzeniem tych standardów dotyczą nie tylko łatwiejszej wymiany obrazów pomiędzy różnymi systemami i aplikacjami, lecz także pozwalają na znaczące ograniczenie kosztu budowy wyspecjalizowanych urządzeń cyfrowych niezbędnych w wielu systemach kompresji obrazów w czasie rzeczywistym. W ostatnich latach prace nad nowymi standardami kompresji obrazów prowadzone były w trzech zasadniczych kierunkach:

  • obrazy binarne
  • obrazy ruchome (sekwencje wizyjne, wideo)

W 1988 roku został uformowany komitet znany jako JBIG (Joint Bilevel Imaging Group) pod auspicjami ISO-IEC/JTC1/SC2/WG8 i CCITT SG VIII NIC, w celu opracowania standardu kompresji i dekompresji obrazów binarnych. Grupa skoncentrowała swoje wysiłki na poszukiwaniu efektywniejszego algorytmu od opracowanych wcześniej przez CCITT, w zastosowaniu do klasycznych aplikacji (n.p. ośmiu binarnych obrazów odniesienia zaproponowanych przez CCITT), a także rozszerzenia ich stosowalności do nowych aplikacji.  Chodziło głównie o opracowanie algorytmów progresywnych i adaptacyjnych.

Należy też wspomnieć o opracowanej przez naukowców z IBM w 1988 roku binarnej wersji kodera arytmetycznego o nazwie Q-koder i zastosowaniu go do kompresji obrazów binarnych w następujących opracowaniach:

  • technika ABIC (Arithmetic Binary Image Compression)
  • CCITT Group 3 i 4 - kodowanie długości sekwencji do kompresji obrazów binarnych
  • JBIG/JBIG2 (Joint Bilevel Imaging Group) - kodowanie arytmetyczne do kompresji danych binarnych

Komitet znany powszechnie pod nazwą JPEG (Joint Photographic Experts Group), działający jako ISO-IEC/JTC1/SC2/WG10 przy bliskiej nieformalnej współpracy  z CCITT SG VIII NIC, uformowany został pod koniec 1986 roku w celu opracowania międzynarodowego standardu dla pojedynczych, wielopoziomowych, monochromatycznych i kolorowych obrazów. Zadaniem zespołu było zdefiniowanie standardu dla tak różnych zastosowań jak foto- i telegazeta, grafika komputerowa, skład komputerowy, mała poligrafia, kolorowe faksy, systemy medyczne i wiele innych. Pomimo tego, iż w tej dziedzinie nie istniały wcześniejsze standardy, członkowie JPEG byli silnie przekonani, że wymagania zdecydowanej większości tych zastosowań winny być uwzględnione w standardzie. Ostateczna propozycja standardu, która została opublikowana w 1992/1993 r. jako standard międzynarodowy ISO/IEC zawiera trzy główne składniki: 1) system podstawowy, który zawiera prosty i efektywny algorytm, adekwatny w stosunku do większości zastosowań kompresji obrazów, 2) zbiór rozszerzeń systemu zawierający przede wszystkim algorytm progresywnego kodowania rozszerzający pole zastosowań, 3) niezależna bezstratna metoda kodowania dla zastosowań wymagających tego typu kompresji. Bardziej dokładne omówienie tego standardu, ze względu na przewidywane przez twórców jego zastosowanie także w systemach obrazowania medycznego, zostanie przedstawione w następnej części tego podrozdziału.

Rozwój nowych metod i technik multimedialnych w dużym stopniu odbywa się przy okazji prac nad nowymi standardami. Tak było z kompresją obrazów doskonaloną w ramach standardów JPEG, http://www.jpeg.org, normalizacyjna (grupa robocza ISO/IEC SC 29/WG 1 - Joint Picture Expert Group) oraz kompresją sekwencji wizyjnych i dźwięku, czy też opisem multimediów w rodzinie standardów MPEG, http://www.mpeg.org, (MPEG - normalizacyjna grupa robocza ISO/IEC SC 29/WG 11 - Moving Picture Expert Group). Nie tylko sankcjonowano standardem uznane powszechnie rozwiązania istotnych technik multimedialnych, ale ogłaszano konkursy na nowe algorytmy, metody, opracowania, by rozwiązać bieżące i przyszłe problemy świata multimediów w określonych uwarunkowaniach (np. kolejne części JPEG2000, czy rozwój technik promowanych przez MPEG), indeksowania treści multimedialnej z wykorzystaniem doskonalszych deskryptorów (MPEG-7), stworzyć zintegrowaną platformę multimedialną (MPEG-21), itd. Wręcz aranżowano nowe prace badawcze w dużych zespołach, by sprostać wyzwaniom dynamicznego rozwoju technologicznego według perspektyw umiejętnie zarysowanych w kolejnych wezwaniach (call) grup normalizacyjnych. Standardy multimedialne mają więc charakter silnie innowacyjny. 

Normy JPEG i MPEG mają charakter ogólny (generyczny). Wynika to ze specyfiki  multimediów, które mają charakter powszechny, uniwersalny, o szerokim spektrum zastosowań w różnorodnych produktach komercyjnych, przemysłowych, teleinformatycznych, elektronicznych. Takie podejście wymaga definiowania profili aplikacyjnych i poziomów zgodności, a niekiedy zestawów narzędziowych  dostosowujących ogólne ramy standardu do wiodących, konkretnych zastosowań.  

1.1. Standardy rodziny JPEG

Chociaż zestawem standardów w pełni zasługujących na miano multimedialnych jest efekt wieloletniej pracy grupy MPEG, to jednak nie sposób nie wspomnieć o równoległych działaniach grupy JPEG. Prace te w jakimś sensie były komplementarne do MPEG, multimedialne w nieco węższym sensie, przede wszystkim w różnorodnym reprezentowaniu i opisie treści obrazowej, będącej niewątpliwie najistotniejszym składnikiem przekazywanych strumieni informacji. Zasadniczym przedmiotem prac standaryzacyjnych grupy JPEG jest obraz pojedynczy, tzw. statyczny, ale także sekwencja obrazów. Przekaz informacji obrazowej rozpatrywany jest w różnorodnych kontekstach aplikacyjnych.

Zasadniczy nurt opracowań tej rodziny standardów dotyczy zagadnienia efektywnej kompresji obrazów pojedynczych o trzech i większej liczbie komponentów, ograniczonej w coraz mniejszym stopniu dynamice wartości komponentów oraz stale rosnącej rozdzielczości kodowanych zobrazowań. Zakres możliwych do uzyskania stopni kompresji jest bardzo szeroki -- od odwracalnych kodeków (z rekonstrukcją obrazów źródłowych z dokładnością do pojedynczego bitu) w niewielkim stopniu (typowo od 2:1 do 3:1) redukujących rozmiary plików, aż po możliwość dowolnej redukcji rozmiaru kodowanego obrazu z możliwością kontroli poziomu zachowanej jakości danych źródłowych, z selekcją informacji zachowanej w skompresowanej reprezentacji danych.
 

1.2. JPEG: najbardziej znany kodek obrazów

Specyfikacja normy standardu JPEG zawiera:

  • opis procesu przetwarzania źródłowych danych obrazowych w dane obrazowe skompresowane;
  • opis procesu przetwarzania skompresowanych danych obrazowych w zrekonstruowane dane obrazu;
  • wskazania dotyczące praktycznych implementacji standardu;
  • opis zakodowanej reprezentacji skompresowanych danych obrazowych.

Specyfikacja nie opisuje kompletnej zakodowanej reprezentacji obrazu, może ona zawierać pewne parametry zależne od aplikacji. W normie wyszczególniono cztery procedury (tryby) kompresji, a mianowicie: 

  • podstawowa (baseline process);
  • rozszerzona na bazie DCT(extended DCT- based process);
  • bezstratna (lossless process);
  • hierarchiczna (hierarchical process);

Początkowo źródłowe obrazy kolorowe z przestrzeni barw RGB, zwykle stosowanej przy rejestracji obrazów, są konwertowane do przestrzeni barw YCrCb w celu efektywniejszej kompresji, zgodnie z zależnością:

\begin{split} Y&=0,2989\cdot R + 0,5866\cdot G + 0,1145\cdot B \\ Cr&=0,5 \cdot R - 0,4183\cdot G - 0,0816\cdot B \\ Cb&=-0,1687\cdot R - 0,3312\cdot G + 0,5\cdot B  \end{split} (1.1)

Wydziela się w ten sposób składową luminancji (Y), na którą przede wszystkim wrażliwe jest ludzkie oko podczas percepcji treści obrazowej. Dalej każdy komponent kodowany jest niezależnie, przy uwzględnieniu pewnych różnic związanych z mniejszej czułością percepcji składowych chrominancji. 

Kodowanie każdego składnika obrazu (luminancja, składowe chrominancji) przebiega analogicznie. W podstawowym procesie kodowania dane wejściowe są ośmiobitowe, w rozszerzonym - 12 bitowe. Obraz jest dzielony na bloki 8\times 8 i każdy blok jest transformowany za pomocą DCT (discrete cosine transform), przy czym kodowanie obrazu przebiega sekwencyjnie, tzn. z lewej strony na prawą zaczynając od góry obrazu i przemieszczając się na dół.

W standardzie JPEG wykorzystano zbiór funkcji bazowych transformacji DCT - 2W dyskretna transformacja kosinusowa funkcji obrazu f(x,y) w bloku o rozmiarach N\times N zdefiniowana jest w sposób następujący: 

k(u,v)=\frac{1}{\sqrt{2N}}C(u)C(v)\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)\cos{\frac{\pi(2x+1)u}{2N}}\cos{\frac{\pi(2y+1)v}{2N}} (1.2)

jako przekształcenie proste, a odwrotne:

f(x,y)=\frac{1}{\sqrt{2N}}\sum_{u=0}^{N-1}\sum_{v=0}^{N-1}C(u)C(v)k(u,v)\cos{\frac{\pi(2x+1)u}{2N}}\cos{\frac{\pi(2y+1)v}{2N}} (1.3)

gdzie k(u,v) są wartościami współczynników w dziedzinie DCT, C(u),C(v)=\frac{1}{\sqrt{2}} dla u,v=0 oraz C(u),C(v)=1 w p.p.

W JPEG przyjęto blokową postać DCT, dla N=8, ze względu na redukcję efektów Gibbsa (pierścieniowe zniekształcenia powodowane obcinaniem górnej części pasma) oraz dostosowanie do lokalnej charakterystyki widmowej obrazu. Istotną okazała się także możliwość przyspieszenia procesu transformacji -- przy podziale blokowym redukowana jest liczba obliczeń w stosunku do wersji pełnokadrowej, można opracować szybkie algorytmy ze stablicowanymi wartościami kosinusów, możliwe jest też zrównoleglenie obliczeń niezależnych przekształceń w blokach. Dwuwymiarowe funkcje bazowe przedstawiono na rys.1.1.   

Rys. 1.1  Baza 64 dwuwymiarowych funkcji kosinusowych zastosowana w JPEG; według ogólnie przyjętej konwencji w lewym górnym rogu bloku ustalana jest wartość średnia pikseli w bloku, która odpowiada współczynnikowi określonemu przez splot danych z funkcją stałą); kolejne wartości współczynników DCT są efektem splotu danych z kolejnymi harmonicznymi bazy funkcji kosinusowych. 


Norma określa N=8, a obliczone 64 współczynniki DCT z każdego bloku podlegają \textbf{kwantyzacji} skalarnej z przedziałem kwantyzacji dobranym dla każdej harmonicznej. Kolejne wartości k(u,v) są dzielone przez odpowiadające im wartości w tablicy kwantyzacji \mathbf{Z}=\Biggl[ \begin{smallmatrix}
z(0,0) & \cdots & z(7,0)\\ \vdots & \vdots & \vdots \\ z(0,7) & \cdots & z(7,7)
\end{smallmatrix} \Biggr]  
i zaokrąglone do najbliższej liczby całkowitej: \hat k(u,v)=\Big [ \frac{k(u,v)}{z{(u,v)}} \Big]. Tablicę tę można dobrać w zależności od aplikacji, przykładowe postacie oddzielnych tablic dla luminancji i chrominancji pokazano na rys. 1.2. 

Rys. 1.2  Charakterystyka procesu kwantyzacji w JPEG: u góry -- tablice kwantyzacji dla luminancji (po lewej) i chrominancji, optymalizujące jakość rekonstruowanych obrazów pod kątem oceny psychowizualnej (rekomendowane w normie JPEG, jednak nie obligatoryjne); u dołu -- krzywa równomiernej kwantyzacji skalarnej z przedziałem zerowym. 

Uzyskano schemat kwantyzacji równomiernej (ze stałym przedziałem) z zerem, jak na rys. 1.2. Dla przykładowej wartości z(u,v)=c  wartość \hat k(u,v)=p wtedy i tylko wtedy, jeśli c(p - \frac{1}{2}) \leq k(u,v) < c(p + \frac{1}{2}). Dla |k(u,v)| < \frac{c}{2} mamy p=0, czyli następuje wyzerowanie współczynnika, tj. usunięcie odpowiedniej harmonicznej z widma sygnału odtwarzanego w procesie dekompresji według  (1.3).  

Powyższe rozwiązanie pozwala przy stosunkowo niewielkim błędzie kwantyzacji zachować współczynniki o wartościach powyżej progu \frac{c}{2}. Poprzez dobranie odpowiednich wartości tablicy kwantyzacji z(u,v), zgodnie z wagą percepcji ustalonej dla poszczególnych współczynników-harmonicznych można zachować wysoką psychowizualną jakość obrazu w subiektywnej ocenie obserwatora. Standard JPEG dopuszcza dowolną postać tablicy kwantyzacji, jednak w normie podano rekomendowane postacie tablic kwantyzacji dla luminancji i chrominancji (rys. 1.2). Tablice te zawierają doświadczalnie dobrane wartości, które odzwierciedlają subiektywne wrażenie odbioru poszczególnych składowych harmonicznych obrazów. Są one efektem kilkuletnich badań nad psychowizualnym odbiorem obrazów naturalnych.

Silniejsza kwantyzacja współczynników w blokach powoduje charakterystyczny dla JPEG efekt blokowy, który jest konsekwencją uzyskanej nieciągłości funkcji jasności obrazu na granicach bloków - rys. 1.3.

Rys. 1.3 Efekt blokowy uzyskany dla kompresji JPEG w stopniu 43:1 (para obrazów u góry -- z lewej oryginał Lena) oraz 75:1 (dolna para obrazów Barbara).


Kolejnym etapem schematu kompresji jest kodowanie kwantowanych współczynników DCT. Wartości współczynników każdego bloku są ustawiane w jednowymiarowy ciąg danych według sekwencji zygzak, a następnie kodowane z wykorzystaniem metody Huffmana, kodu binarnego oraz RLE. Charakterystyczny rozkład wartości współczynników to  składowa stała oraz dominujące zwykle, co do wartości bezwzględnej, wartości współczynników niskich harmonicznych, malejące przy przechodzeniu do składowych o wyższej częstotliwości, z dużą liczbą zer. Ustalenie ciągu kodowanych danych według porządku zygzak pozwala na ustawienie w najbliższym sąsiedztwie danych o zbliżonych wartościach. Uzyskuje się w ten sposób jednowymiarowy ciąg wartości zakończony dużą ilością zer, podatny na efektywne kodowanie - zobacz rys. 1.4. Składową stałą bloku koduje się różnicowo, tzn. koduje się jedynie różnicę pomiędzy wartością składowej stałej obecnego bloku i poprzedniego. Do kodowania kategorii wartości współczynnika używa się kodu Huffmana, przy czym rekomendowana tablica słów kodowych nie jest obligatoryjna. Doprecyzowanie wartości współczynnika wewnątrz kategorii odbywa się za pomocą kodu dwójkowego. W przypadku składowej stałej (DC) ustalono słowa Huffmana dla 12 takich kategorii (rys. 1.5), zaś dla składowych zmiennych (AC) utworzonych zostało 10 kategorii wartości (z wykluczeniem wartości 0), przy czym każda z kategorii otrzymała różne słowa kodowe w zależności od liczby zer poprzedzających wartość niezerową - rys. 1.5. Norma w wersji rozszerzonej dopuszcza także stosowanie kodera arytmetycznego.

Rys. 1.4  Przykład przekształceń w procesie kodowania JPEG: kolejno przykładowy blok obrazu z wartościami funkcji jasności, obliczone współczynniki DCT, te same współczynniki po kwantyzacji z użyciem tablic luminancji z rys. 1.2 oraz ustalenie kolejności kodowania skwantowanych współczynników według porządku zygzak.

Rys. 1.5 Tablice kodowania rekomendowane normą JPEG, choć nieobligatoryjne: dla składowej stałej DC (po lewej u góry) oraz składowych zmiennych AC - tablica z podziałem na kategorie wartości oraz tablica słów kodowych poszczególnych kategorii poprzedzonych określoną liczbą współczynników zerowych.

Proces dekompresji przebiega dokładnie odwrotnie, przy czym dekoder musi posługiwać się dokładnie tymi samymi tablicami specyfikacji (tablica kwantyzacji, Huffmana). Umożliwia to format zapisu (JFIF), w którym tablice specyfikacji poprzedzone odpowiednimi markerami umieszczone są w pliku razem z danymi skompresowanymi. 

Ogólny schemat algorytmu przedstawiono na rys. 1.6. 

Rys. 1.6  Ogólny schemat blokowy algorytmu kompresji ze standardu JPEG, bazujący na blokowej DCT.

Tryb rozszerzony i hierarchiczny

Rozszerzony proces kompresji umożliwia kompresję zarówno 8- mio jak i 12- to bitowych danych, przy czym kodowanie może być nie tylko sekwencyjne, ale i progresywne. W modzie progresywnym poszczególne bloki współczynników przeglądane są w tej samej kolejności, jednak wartości ich współczynników kodowane są częściowo w wielu skanach, zgodnie z podziałem na poszczególne podpasma lub mapy bitowe. Rozwiązanie to wymaga jednak zapewnienia dodatkowego bufora pamięci do przechowania skwantowanych wartości współczynników całego obrazu, odpowiednio porządkowanych na etapie ich finalnego kodowania oraz formowania strumienia wyjściowego. 

W normie występują dwa rodzaje procedur progresywnego kodowania. Pierwsza, nazywana selekcją widma, dzieli współczynniki ustawione według sekwencji zygzak na kolejne pasma, które zawierają poszczególne części częstotliwościowego spektrum każdego z bloków. Druga procedura związana jest z precyzją, z jaką kodowane są współczynniki w każdym z pasm i nazywana jest sukcesywną aproksymacją. Najpierw kodowana jest pewna liczba bardziej znaczących bitów wartości tych współczynników, a następnie mniej znaczące bity. Można progresywnie kodować współczynniki jedynie przy pomocy procedury selekcji widma, jak też z wykorzystaniem obu procedur. Wówczas mamy do czynienia z tzw. pełną progresją. Ze stwierdzeń zawartych w opisie normy wynika, że zastosowanie selekcji widmowej, jakkolwiek wygodne dla wielu zastosowań, daje porównywalne bądź nieco gorsze wyniki kompresji niż sekwencyjna metoda kodowania, podczas gdy przy pełnej progresji skuteczność kompresji może się okazać nieco większa.
 
W rozszerzonym procesie kodowania możliwe jest także arytmetyczne kodowanie, a tablica warunkowych zależności danych (conditioning table) jest wówczas zapamiętywana jako tablica specyfikacji.

Hierarchiczny proces kodowania macierzy obrazu polega na tworzeniu jego reprezentacji w postaci sekwencji kadrów  o różnej rozdzielczości za pomocą rozszerzonego procesu kodowania (wykorzystującego DCT) lub metody bezstratnej (bazującej na predykcji). Można także połączyć te dwie metody i w schemacie kodowania z DCT zastosować kodowanie bezstratne współczynników jedynie zaokrąglonych do najbliższej liczby całkowitej (a więc bez opisanej wyżej metody kwantyzacji z wyspecyfikowaną tablicą), co daje efekt kompresji prawie bezstratnej (zmiany źródłowych wartości pikseli poprzez błędy przybliżeń są praktycznie niezauważalne). 

Tworzone są zrekonstruowane składniki odniesienia obrazu różnej rozdzielczości i koduje się różnice pomiędzy obrazem oryginalnym a tymi składnikami odniesienia. Stosowanie filtrów próbkujących obraz oryginalny z różną rozdzielczością tworzy charakterystyczną piramidę przestrzennej rozdzielczości.

Tryb hierarchiczny może być stosowany alternatywnie, aby zwiększyć jakość rekonstruowanych składników obrazu o danej rozdzielczości w stosunku do procedury z progresją z trybu rozszerzonego, bardziej kontrolując poszczególne poziomy rozdzielczości. W tej procedurze kodowania możliwe jest porządkowanie treści przekazu według ustalonej progresji skali, co jest szczególnie użyteczne w systemach posługujących się wielorozdzielczymi wersjami danych obrazów (zależnymi np. od parametrów urządzeń do wizualizacji, drukarek czy też wymagań do przetwarzania obrazów).

Bezstratny JPEG

Standard opisujący odwracalny algorytm kodowania obrazów wykorzystuje predykcyjne kodowanie wartości pikseli z kilkoma wariantowymi modelami o różnych kontekstach. Można wybrać najbliższe sąsiedztwo piksela rzędu 1, 2 lub 3 jak na rys. 1.7a). Dostępnych jest kilka najprostszych podstawień lub liniowych predykcji ponumerowanych od 1 do 7 jak w tabeli na rys. 1.7b). Opcja 0 oznacza rezygnację z jakiejkolwiek formy predykcji, co jest szczególnie przydatne w różnicowym kodowaniu według trybu hierarchicznego.

Rys. 1.7 Modele predykcji w bezstratnym JPEG: a) przestrzenny kontekst sąsiednich pikseli (f_w,f_{gl},f_g) wykorzystywanych przy kodowaniu f; b) równania określające wartość przewidywaną \hat f w poszczególnych trybach kodowania predykcyjnego. 

Opcje 1,2 i 3 to najprostsze predykcje rzędu 1 dobierane ze względu na dominujący kierunek ułożenia informacji w obrazie. Predykcja z numerem 7 wykorzystuje dwóch najbliższych sąsiadów w pionie i w poziomie, podczas gdy opcje 4-6 są najbardziej złożonymi modelami rzędu o bardzo uproszczonym rozkładzie wartości wag. 

Proces kodowania bezstratnego ujęty w standardzie zamiast koncepcji kodowania transformacyjnego z DCT realizowaną w kwadratowych blokach 8\times 8 pikseli, proponuje liniową predykcję kodowanych wartości dobieraną dla danego skanu. Różnica pomiędzy wartością przewidywaną \hat f, a źródłową wartością piksela f  kodowana jest dostosowaną metodą Huffmana lub arytmetycznie. W metodzie Huffmana stosuje się 17 kategorii różnicowych wartości błędu predykcji, a w kodowaniu arytmetycznym konstruowany jest dwuwymiarowy model statystyczny.

Odwracalny koder JPEG cechuje stosunkowo mała efektywność kompresji obrazów ze względu na zbyt proste w wielu zastosowaniach modele predykcji oraz wykorzystanie metod entropijnych o ograniczonej efektywności (statyczny koder Huffmana) bądź stosowalności (ze względu na ograniczenia powszechnego dostępu do binarnego kodera arytmetycznego QM). Zaletą jest jednak to, że według specyfikacji JPEG metodą tą  można odwracalnie kodować obrazy o dynamice od 2 do 16 bitów, co oznacza potencjalnie bardzo szeroki zakres zastosowań. W przypadku medycznych danych obrazowych, gdzie często stosowane są wyłącznie bezstratne metody kompresji, szczególnie cenna jest możliwość kodowania danych obrazowych dwubajtowych (wartość funkcji jasności piksela zapisana jest na 2 bajtach). Taka sytuacja występuje np. w tomografii komputerowej, tomografii rezonansu megnetycznego czy w radiografii cyfrowej i mammografii. 

Przykładowo, bezstratną procedurę JPEG wykorzystano na Uniwersytecie Południowej Florydy do archiwizacji znaczącego zestawu obrazów mammograficznych DDSM. Baza ta zawiera wiele referencyjnych, zweryfikowanych diagnostycznie rezultatów badań, które są wykorzystywane  przez naukowców na całym świecie od wielu lat. Te ogólnodostępne zasoby są przydatne w porównawczej ocenie radiologicznej, jak też w testowaniu nowych metod przetwarzania, analizy i poprawy jakości obrazów, wykorzystywanych w komputerowym wspomaganiu diagnostyki, a także w optymalizacji metod kompresji obrazów. 
 

1.3. JPEG-LS, czyli mało popularny kodek o dużych możliwościach

Ograniczenia efektywności bezstratnego JPEG doprowadziły do opracowania i przyjęcia w 1996 roku nowego standardu kompresji obrazów rodziny JPEG -- JPEG-LS (lossless and near lossless). 

Główne etapy bezstratnej/prawie bezstratnej kompresji obrazów według standardu JPEG-LS, tj. modelowanie kontekstu, predykcja, kodowanie błędu predykcji oraz alternatywny mod sekwencji podobnej (w szczególnym przypadku kompresji bezstratnej - identycznej), przedstawiono na rys. 1.8.

Rys. 1.8 Schemat blokowy kodera JPEG-LS.

Modelowanie kontekstu polega na w pierwszej kolejności na ustaleniu rozmiaru i kształtu najbliższego sąsiedztwa każdego z kodowanych pikseli. Na podstawie rozkładu wartości pikseli sąsiedztwa: a) wybierany jest tryb kodowania; b) obliczana jest przewidywana wartość piksela, c) konstruowany jest statystyczny model błędów predykcji (tj. różnicy pomiędzy wartością piksela i wartością przewidywaną). Lokalny kontekst z JPEG-LS pokazano na rys. 1.9. 

Rys. 1.9  Lokalny, przyczynowy kontekst wystąpienia kodowanego piksela f w przestrzeni obrazu, wykorzystany w standardzie JPEG-LS do wyboru trybu kodowania, w nieliniowej predykcji oraz przy modelowaniu błędu predykcji na etapie binarnego kodowania; sąsiednie piksele o wskaźnikach pozycji a,b,c stanowią elementy kontekstu predykcji rzędu 3, natomiast poszerzony zbiór pikseli f_a,f_b,f_c,f_d został użyty w ocenie lokalnych zależności danych do selekcji trybu kodowania oraz zwiększenia efektywność modelu źródła stosowanego w kodowaniu binarnym.

Kontekst określony na podstawie czterech danych o położeniu a, b, c i d pozwala po pierwsze określić, czy informacja zawarta w wartości f ma być kodowana w trybie regularnym czy w trybie sekwencji próbek identycznych:

  • tryb sekwencji pikseli podobnych jest wybierany wówczas, gdy estymacja na podstawie kontekstu wskazuje, że wartości sąsiednich pikseli z dużym prawdopodobieństwem są prawie identyczne, z tolerancją dopuszczalną w kodowaniu prawie bezstratnym (identyczne w kodowaniu bezstratnym);
  • tryb regularny jest wybierany wówczas, gdy z estymacji kontekstowej wynika, że nie istnieje duże prawdopodobieństwo wystąpienia kolejnych pikseli prawie identycznych, z tolerancją dopuszczalną w kodowaniu prawie bezstratnym (identycznych w bezstratnym); wówczas stosowana jest predykcja wartości kodowanego piksela na podstawie kontekstu jego wystąpienia.

Kodowanie sekwencji próbek podobnych

Charakter kontekstu ustalany jest za pomocą prostej estymacji gradientów lokalnych pikseli sąsiednich według zależności: d_1=f_d-f_b, d_2=f_b-f_c, \\ d_3=f_c-f_a. Warunek kontekstu pikseli podobnych w przypadku kompresji odwracalnej  wygląda następująco: d_1=d_2=d_3=0, co oczywiście oznacza identyczność pikseli sąsiedztwa: f_a=f_b=f_c=f_d. Dopuszczając stratność procesu kompresji, redefiniowany jest warunek kontekstu pikseli podobnych (z dokładnością \sigma) w sposób następujący: \forall_{i \in \{1,2,3\}} |d_i| \leq \sigma. Przy spełnieniu powyższych warunków wartość piksela kodowana jest w trybie sekwencji próbek podobnych. 

Oczekiwana jest wtedy seria kolejnych próbek o wartościach identycznych z f_a zakończona pojawieniem się piksela o innej wartości lub końcem aktualnego wiersza. Długość serii jest kodowana z wykorzystaniem adaptacyjnej wersji kodu Golomba EG_m (kod elementarny z ograniczeniem wartości rzędu m do potęgi dwójki). W przypadku przerwania serii pikseli podobnych kodowana jest różnica pomiędzy f i f_b (modulo rozmiar skończonego alfabetu wartości pikseli). 

Nieliniowa predykcja trybu regularnego

W przypadku nie spełnienia warunku podobieństwa (identyczności) przez wartości pikseli sąsiedztwa  kodowanego piksela stosowany jest bardziej złożony tryb regularny (dominujący w przypadku obrazów naturalnych), wykorzystujący nieliniową predykcję z trójelementowego kontekstu oraz statystyczne modelowanie kontekstu i adaptacyjny kod Golomba do kodowania błędu predykcji.

W standardzie kompresji bezstratnej JPEG-LS wykorzystano prosty kontekst predykcji trzeciego rzędu składający się z elementów o położeniu a, b i c jak na rys.1.9. Model predykcji MED/MAP  jest nieliniowy, określony dla wartości f następująco:

\hat f = \left\{\begin{array}{ll} \min(f_a,f_b), & f_c\geq \max(f_a,f_b)\\ \max(f_a,f_b), & f_c\leq \min(f_a,f_b)\\ f_a+f_b-f_c, & \text{wpp}\\ \end{array}\right. (1.4)

gdzie wartość przewidywana \hat f ustalana jest adaptacyjnie na okoliczność znajdującej się w najbliższym sąsiedztwie krawędzi obiektu (gdy f_c nie jest medianą pikseli sąsiedztwa), bądź też na okoliczność obszaru łagodnego ($f_c\) jest medianą).

Dodatkowo, błąd predykcji \epsilon =f-\hat f jest korygowany za pomocą składnika zależnego od kontekstu, aby skompensować systematyczny błąd odchylenia w predykcji. Obciążenie operatora predykcji jest możliwe wskutek wykorzystania predykcji medianowej oraz przybliżeń \hat f do wartości całkowitej (w skończonym zbiorze punktów).

Po predykcji według (1.4) wartość \hat f jest korygowana zależnie od odchylenia błędu predykcji przy danym konteście. Założono dwustronny geometryczny, symetryczny rozkład błędów predykcji ze środkiem (wartością średnią) w przedziale . Celem jest utrzymanie środka rozkładu błędów w tym przedziale. Procedura wykorzystuje sumaryczną wartość błędów próbek zanotowanych przy tym samym kontekście kodowania.

Zmienna odchylenia błędu B[Q] pozwala na aktualizację wartości korekcji predykcji C[Q] najwyżej o jeden w każdej iteracji. WartośćC[Q] obliczana jest zgodnie z procedurą jak niżej, podobnie jak aktualna postać B[Q]:

Przykład 1.1. Oprogramowanie: korekcja błędu predykcji związana z obciążeniem operatora predykcji w JPEG-LS

/* Aktualizacja zmiennych B[Q] i C[Q]; zmienna C[Q] zawiera wartość korekcji wartości przewidywanej Px; SIGN równe jeden oznacza kontekst 'dodatni' */
B[Q] = B[Q] + E; /* suma błędów predykcji E */
N[Q] = N[Q] + 1; /* liczba wystąpień Q od inicjalizacji */ 

if (B[Q] <= -N[Q]) {<br />    B[Q] = B[Q] + N[Q]; C[Q] = C[Q] - 1;<br />    if (B[Q] <= -N[Q])  B[Q] = -N[Q] + 1;<br /> } else if (B[Q] > 0) {<br />    B[Q] = B[Q] - N[Q]; C[Q] = C[Q] + 1;<br />    if (B[Q] > 0) B[Q] = 0;<br /> }
....
if (SIGN == +1)  /* korekcja przewidywań */
   Px = Px + C[Q];
else Px = Px - C[Q];

Skorygowany błąd predykcji jest następnie kodowany z wykorzystaniem adaptacyjnego kodu Golomba, którego podstawowy parametr (tj. rząd) dobierany jest na podstawie rozkładu wartości błędu predykcji przy danym kontekście.

Modelowanie kontekstu

Chcąc objąć modelem statystycznym entropijnego kodowania szerszy niż w predykcji obszar potencjalnych zależności danych zdefiniowano najbliższe sąsiedztwo 4 pikseli a, b, c, d,  jak na rys. \ref{Rys_jpegls}. Na jego podstawie określono wykorzystany w kodowaniu binarnym, skwantowany kontekst  rzędu~4 składający się z następujących różnic:

\Delta \epsilon _1=\epsilon _{d}-\epsilon _{b},\quad \Delta \epsilon _2=\epsilon _{b}-\epsilon _{c},\quad \Delta \epsilon _3=\epsilon _{c}-\epsilon _{a}  (1.5)

gdzie wartości błędów predykcji \epsilon=f-\hat f obliczane są według modelu predykcji (1.4). Wykorzystując kontekst (1.5) do estymacji prawdopodobieństw warunkowych konstruowany jest model P(\epsilon |\Delta \epsilon _1,\Delta \epsilon _2,\Delta \epsilon _3)

Alfabet każdego z trzech elementów kontekstu C^{(4)}=(\Delta \epsilon _1,\Delta \epsilon _2,\Delta \epsilon _3) zmniejszono za pomocą operatora kwantyzacji Q(\cdot ) o 2T+1 regionach indeksowanych: \{-T,-T+1,\ldots,-1,0,1,\ldots,T\}, co daje (2T+1)^3 różnych kontekstów. Przykładowo, dla T=4 mamy indeksy regionów: \{-4,-3,\ldots, 3, 4\}, co daje 9^3=729 stanów modelu kontekstu. Kwantyzacja Q(\cdot ) nie musi być równomierna (o stałej szerokości przedziału kwantyzacji). W JPEG-LS dopuszczono kwantyzację nierównomierną, np. według następujących przedziałów domyślnych (zakładając T=4): \{0\},\pm \{1,2\},\pm \{3,4,5,6\},\pm \{7,8,\ldots,20\},\pm \{\Delta \epsilon >20\}. Procedurę kwantyzacji alfabetu kontekstu przedstawia poniższy fragment kodu:

Przykład 1.2. Oprogramowanie: kwantyzacja alfabetu kontekstu przy kodowaniu błędów predykcji w JPEG-LS

/* Różnica błędów predykcji E w punkcie i jest kwantowana do wartości QEi; T1,T2,T3 to dobierane granice przedziałów*/
if (Ei <= -T3) QEi = -4;
else if (Ei <= -T2) QEi = -3;
else if (Ei <= -T1) QEi = -2;
else if (Ei < 0) QEi = -1;
else if (Ei == 0) QEi = 0;
else if (Ei < T1) QEi = 1;
else if (Ei < T2) QEi = 2;
else if (Ei < T3) QEi = 3;
else Ei = 4;

Domyślnie T1=3, T2=7, T3=27. Okazuje się, że dla mniejszych zbiorów danych, np. obrazów o rozmiarach 64\times 64, lepiej jest użyć jeszcze silniejszej kwantyzacji kontekstów, np. do 63 stanów trójelementowego kontekstu z alfabetem składającym się z pięciu symboli zamiast dziewięciu. Daje to poprawę efektywności kompresji, ponieważ model o mniejszej liczbie stanów może być bardziej wiarygodny.

Aby dodatkowo zmniejszyć liczbę stanów modelu z pamięcią ustala się znak kontekstu kodowanej wartości. Kontekst ''ujemny'' zamieniany jest na ''dodatni'', a model konstruowany jest wyłącznie na podstawie  kontekstów ''dodatnich''. Adaptacyjnie modyfikowany model w chwili t (używany do kodowania \epsilon _{t+1}) określa prawdopodobieństwo wystąpienia określonej wartości \epsilon _{t+1} zależnie od kontekstu C_{\mathbf{t}}=C_t^{(3)}=\mathbf{c}=(g_1,g_2,g_3) (określony w każdej chwili jak na rys. 1.9). Jeśli pierwszy niezerowy element kontekstu zaczynając od g_1=Q(\Delta \epsilon _1) jest ujemny, odwracane są znaki wszystkich elementów niezerowych. ''Dodatni'' kontekst -\mathbf{c} warunkuje wtedy prawdopodobieństwo symbolu w kodzie binarnym. Założono w tym przypadku symetryczność rozkładu:

\Pr[\epsilon _{t+1} =\varepsilon |C_t^{(3)}=\mathbf{c}]=\Pr[\epsilon_{t+1} =-\varepsilon |C_t^{(3)}=-\mathbf{c})] (1.6)

gdzie \varepsilon \in A_{\mathcal{E}}. Takie rozwiązanie zakłada kodowanie wartości -\epsilon _{t+1} dla kontekstów ''ujemnych'', co należy uwzględnić podczas dekodowania. 

Uzyskano zmniejszenie liczby stanów do ((2T+1)^3+1)/2=365.

Binarne kodowanie błędu predykcji

Na etapie rozwoju standardu JPEG-LS jako kod binarny stosowano metodę Huffmana z modelem z pamięcią, a także optymalizowany algorytm adaptacyjny kodu Golomba. Pozwoliło to uzyskać bardzo szybką metodę kompresji obrazów o dużej efektywności. Dodatkowy wzrost efektywności kosztem większej złożoności obliczeniowej można uzyskać wykorzystując kodowanie arytmetyczne (proponowane rozszerzenie JPEG-LS) \cite{LOCOA}. Używany jest tutaj analogiczny sposób kwantyzacji kontekstu i alfabetu na podstawie sąsiedztwa 5 pikseli. 

W finalnej wersji standardu wykorzystano szybki kod Rice'a R_k rzędu k, gdzie k jest dobierane zależnie od kontekstu i zmieniane adaptacyjnie. Wartość k dla danego kontekstu jest uaktualniana za każdym razem, gdy kodowana jest próbka poprzedzona tym kontekstem. Metoda modyfikacji k wykorzystuje skumulowaną sumę modułów błędów predykcji wartości pikseli występujących przy danym kontekście jak niżej:

Przyklad 1.3. Oprogramowanie: dynamiczne ustalanie optymalnego rzędu kodu Rice'a JPEG-LS

/* Zmienna A[0..364] zawiera sumę modułów błędów predykcji kontektu Q;  w N[0..364] liczone są przypadki wystąpień Q od inicjalizacji; A[Q]  i N[Q] są aktualizowane zgodnie z aktualnym błędem predykcji E*/
A[Q] = A[Q] + abs(E); /* aktualizacja zmiennych */
N[Q] = N[Q] + 1;
...
for(k=0; (N[Q]<<k)<A[Q]; k++); /* wyznaczenie rzędu k */

1.4. JPEG2000, czyli elastyczny paradygmat

W marcu 1997 rozpoczęto prace nad nowym standardem kompresji obrazów JPEG2000. Obecnie prowadzone są prace (niektóre już zakończono) nad następującymi częściami JPEG2000:

  • część 1: podstawowy system kompresji obrazów pojedynczych;
  • część 2: rozszerzenia (dodatkowe opcje systemu, m.in. możliwość definiowania własnych transformacji falkowych i kolorów, inny sposób kodowania ROI, nowe algorytmy kwantyzacji itp.);
  • część 3: algorytm kompresji sekwencji obrazów (Motion JPEG 2000);
  • część 4: testy zgodności (conformance);
  • część 5: oprogramowanie referencyjne, tj. biblioteki w Javie (JJ2000) oraz C (JasPer);
  • część 6: format pliku dla danych złożonych (obrazowanie dokumentów, artykułów prasowych itp.);
  • część 7: (prace nad tą częścią zostały zaniechane);
  • część 8: JPSEC, bezpieczeństwo danych;
  • część 9: JPIP, interaktywne protokoły transmisji i API;
  • 10: JP3D, obrazowanie 3D;
  • 11: JPWL, aplikacje bezprzewodowe.

Standard JPEG2000 umożliwia kompresję obrazów o niemal dowolnej reprezentacji oryginalnej, tzn. możliwa jest duża liczba komponentów oraz bitów na próbkę w niemal nieograniczonej przestrzeni obrazu, a także różna orientacja dziedziny obrazu względem układu odniesienia. Liczba komponentów jest ograniczona do 214 (16384); natomiast ich maksymalna szerokość i wysokość to 232-1 próbki (przekracza 4 miliardy próbek). Liczba bitów na próbkę jest ograniczona do 38 bitów (ponad 4 bajty).
    
Nowy paradygmat

Zdolność uzyskiwania możliwie krótkiej reprezentacji danych obrazowych była dotychczas jednym z najważniejszych kryteriów decydujących o przydatności techniki kompresji. Przy obecnym rozwoju nowych technologii multimedialnych równie istotne okazały się nowe cechy funkcjonalne systemów kompresji-dekompresji, powodujące dużą użyteczność algorytmów w znacznie szerszym obszarze zastosowań. Wiele postulatów stawianych przez rosnący krąg potencjalnych użytkowników jest praktycznie nie do zrealizowania za pomocą funkcjonujących dotąd standardów kompresji obrazów, czyli przede wszystkim JPEG-a. Schemat kompresji wynikający z klasycznego paradygmatu definiuje zbiór dostępnych opcji kodera, które pozwalają z jednej strony dopasować algorytm kompresji do własności strumienia wejściowego (dynamiki danych, przestrzeni kolorów itp.), z drugiej zaś - dobrać parametry procesu kompresji (sposób kwantyzacji - np. tablice, szerokość przedziałów, czy kodowania - np. sekwencyjny, progresywny itd.). Po stronie dekodera standard nie dopuszcza żadnych możliwości wyboru sposobu odtwarzania strumienia - obowiązuje ustalony w koderze porządek i sposób rekonstrukcji, a strumień zakodowany jest rekonstruowany w całości. Realizację paradygmatu schematu kompresji ze standardu JPEG przedstawiono na rys. 1.10a).

Koncepcja nowego paradygmatu kompresji (rys. 1.10b)) została sformułowana w okresie intensywnych prac badawczych nad realizacją standardu JPEG2000. W porównaniu z paradygmatem z JPEG-a następuje znaczne rozszerzenie możliwości kształtowania skompresowanego strumienia danych (np. wprowadzanie regionów zainteresowań - ROI, mechanizmu podziału oryginału na części - ang. tile) oraz postaci dekompresowanej reprezentacji oryginału (np. sterowanie rozdzielczością, jakością obrazu, bitowym rozmiarem reprezentacji informacji rekonstruowanej).

Współczesny standard kompresji powinien być tworzony z myślą o szerokiej gamie zastosowań, takich jak Internet, różnorodne aplikacje multimedialne, obrazowanie medyczne, kolorowy fax, drukowanie, skanowanie, cyfrowa fotografia, zdalne sterowanie, przenośna telefonia nowej generacji, biblioteka cyfrowa oraz e-komercja (elektroniczna komercja, głównie z wykorzystaniem Internetu). Nowy system kodowania musi więc być skuteczny w przypadku różnych typów obrazów (binarne, ze skalą szarości, kolorowe, wieloskładnikowe) o odmiennej charakterystyce (obrazy naturalne, medyczne, sztuczne obrazy grafiki komputerowej, naukowe z różnych eksperymentów, z tekstem itd.). Ponadto, powinien zapewniać efektywną współpracę z różnymi technologiami obrazowania (akwizycji/generacji/ wykorzystywania obrazów): z transmisją w czasie rzeczywistym, z archiwizacją, gromadzeniem bazodanowym (np. w cyfrowej bibliotece), w strukturze klient/serwer, z ograniczonym rozmiarem bufora czy limitowaną szerokością pasma itp. Wymagania odnośnie nowego standardu kompresji najlepiej charakteryzują stwierdzenia z 'JPEG2000 call for proposals' z marca 1997 r.: "poszukiwany jest standard dla tych obszarów, gdzie aktualne standardy nie potrafią zagwarantować wysokiej jakości lub wydajności, standard zapewniający nowe możliwości na rynkach, które dotąd nie wykorzystywały technologii kompresji i dający otwarte narzędzia systemowe dla aplikacji obrazowych."

Użyteczność falek w modelowaniu i realizacji Użyteczność analizy falkowej leży głównie w możliwościach skutecznego modelowania przy ich pomocy przestrzenno-częstotliwościowej charakterystyki obrazów naturalnych. Typowa postać obrazu jest mieszaniną obszarów o znacznych rozmiarach z treścią niskoczęstotliwościową (wolno zmieniające się tło sceny naturalnej, np. niebo, ściana w pokoju, czy też jednostajne, lekko zaszumione tło w obrazie medycznym), małych obszarów ze znaczącą treścią wysokoczęstotliwościową (silne krawędzie o dużych gradientach, wyraźne, drobne struktury) oraz obszarów (obiektów) pokrytych teksturami. W bazie falkowej znajdują się elementy o skończonym nośniku, które mają dobrą rozdzielczość częstotliwościową (przy słabszej przestrzennej) w zakresie częstotliwości niskich, czyli dobrze charakteryzują tło i wolnozmienne tekstury, a także elementy z dobrą rozdzielczością przestrzenną (przy słabszej częstotliwościowej) w zakresie częstotliwości wysokich, co daje dobrą lokalizację krawędzi w podpasmach dokładnej skali. Taka korelacja cech bazy z własnościami obrazów naturalnych prowadzi do silnej koncentracji energii sygnału w niewielkiej liczbie współczynników, przy czym większość informacji obrazu znajduje się w niewielkim obszarze podpasma najniższych częstotliwości dziedziny falkowej dekompozycji. Pozostała część informacji zawarta jest w wartościach współczynników rozrzuconych w niewielkich grupach wokół przestrzennej pozycji silnych krawędzi w obrazach uzupełniających różnych skal. Zaś zdecydowana większość współczynników ma wartości bliskie zeru i może być zupełnie pominięta lub silnie kwantowana w procesie stratnej kompresji, bez znaczącego wpływu na jakość rekonstrukcji. Wyższość wielorozdzielczej analizy falkowej w stosunku do STFT (ang. Short Time Fourier Transform) lub blokowej DCT (ang. discrete cosine transform) jest tutaj bezdyskusyjna, ponieważ lepiej, w sposób naturalny opisuje rzeczywisty sygnał.

Rys.1.10  Porównanie paradygmatu schematu kompresji: a) z podstawowej wersji standardu JPEG; b) z nowego standardu JPEG2000 - część I, opartego na falkowej technice kompresji; SNR (ang. Signal to Noise Ratio).


Dodatkową zaletą dekompozycji falkowej jest jej podatność na rozwiązania adaptacyjne, dotyczące zarówno stosowania bazy falkowej o nieskończonej ilości możliwych postaci, jak też samego schematu dekompozycji i podziału na podpasma. Adaptacyjną postać transformacji można lepiej dopasować do własności konkretnego obrazu czy grupy obrazów. Gładkość funkcji bazowych, ich rozmiar, symetryczność, decydują o możliwie najlepszym przybliżeniu lokalnych własności obrazu, a ich właściwy wybór wpływa znacząco na skuteczność kompresji. Zagadnienie doboru optymalnej bazy falkowej w kompresji konkretnego obrazu nie jest właściwie rozwiązywalne w sposób jednoznaczny, ale istnieje cały zbiór przesłanek (w postaci wiedzy a priori) pozwalających dobrać jądro przekształcenia w sposób prawie optymalny.

Klasyczny schemat wielorozdzielczej dekompozycji Mallata ze strukturą logarytmiczną dobrze opisuje wspomniane własności typowych obrazów z wykładniczo opadającym widmem gęstości mocy. Dla obrazów o nieco innej charakterystyce, zawierających dużą ilość informacji w zakresie wysokoczęstotliwościowym (np. rozległe obszary z teksturą prążkową: czarne pasy na białym tle) bardziej efektywną dekompozycję otrzymuje się za pomocą bazy pozwalającej uzyskać dobrą lokalizację w dziedzinie częstotliwości podpasm wysokoczęstotliwościowych (ze względu dobre zróżnicowanie zgromadzonej tam dużej ilości informacji). Konieczne jest do tego narzędzie transformacji falkowej, pozwalające dobrać schemat dekompozycji w zależności od cech obrazu (źródła informacji). Choć teoretycznie można zbudować dowolną liczbę schematów dekompozycji, rozwiązując zagadnienie optymalizacji schematu dekompozycji w każdym konkretnym przypadku, to bardziej praktycznym jest rozwiązanie, gdzie można zbudować skończoną bibliotekę reprezentatywnych transformacji, dobierając z biblioteki, dzięki szybkiemu algorytmowi, optymalną postać transformacji dla konkretnego obrazu. Takim narzędziem jest dekompozycja za pomocą pakietu falek (wavelet packets), zwana też, bardziej algorytmicznie, schematem wyboru najlepszej bazy (best basis). Pakiety falek stanowią dużą bibliotekę transformacji silnie zróżnicowaną pod kątem ich własności dekompozycji przestrzenno-częstotliwościowej, ze zdolnością szybkiego przeszukiwania. Funkcje bazowe pakietu falek mają własności falek klasycznych, przy czym wzbogacone są często o większą liczbę oscylacji. Wykorzystując pakiet falek, można dostosować postać transformacji do praktycznie dowolnego spektrum sygnału - zobacz rys.1.11. Implementacja dekompozycji z pakietem falek wymaga dodatkowych nakładów obliczeniowych, głównie na proces wyszukania optymalnego schematu transformacji dla danego obrazu, a także przesłania niewielkiej informacji dodatkowej do dekodera. Kosztem większego obciążenia obliczeniowego można niemal dowolnie 'blisko' dopasować postać transformacji do sygnału, np. wprowadzając zmienną w czasie segmentację, pozwalając na ewolucję pakietu falek wraz z sygnałem (silnie niestacjonarnym). Z drugiej strony, procedurę takiej transformacji można znacznie uprościć, dobierając ustaloną postać dekompozycji pakietu falek dla danego typu obrazów, jak to ma miejsce np. w standardzie FBI do kompresji obrazów z odciskami palców.

Rys. 1.11 Podział dziedziny czas (przestrzeń)-częstotliwość w różnych schematach dekompozycji: a) dekompozycja równomierna, uzyskana za pomocą pakietu falek lub też STFT, b) klasyczna dekompozycja falkowa Mallata, c) dekompozycja pakietu falek, gdzie szerokość podpasm nie zmienia się ani równomiernie ani logarytmicznie, d) odwrócona dekompozycja falkowa, uzyskana z wykorzystaniem pakietu falek.

Ponadto, atrakcyjną cechą falkowej reprezentacji obrazu, od skal mało dokładnych (tj. skal dużych), z silną koncentracją informacji (energii) na bit danych, do małych skal bardzo dokładnych (z małym przyrostem informacji na bit), jest jej naturalna progresywność. Reprezentacja ta umożliwia sterowanie kolejnością i rodzajem przekazywanej informacji, przy czym niewielkim kosztem można uzyskać strumień danych (prawie) optymalny w sensie R-D.

Kompresja konstruowana na podstawie dekompozycji falkowej jakby naturalnie odpowiada na większość wymagań stawianych w nowym paradygmacie kompresji, pozwalając je realizować w szybkich algorytmach obliczeniowych tak, że praca koderów w systemach czasu rzeczywistego jest możliwa.

Metoda kodowania

Na rys. 1.12 przedstawiono schemat blokowy algorytmu kompresji zaproponowany w standardzie. Dokładniej poszczególne operacje na danych pokazano na rys. 1.13.

Rys. 12  Diagram ogólnego algorytmu kompresji według JPEG2000.

Rys. 1.13  Poglądowy zarys struktur danych wykorzystywanych w kolejnych krokach podstawowego algorytmu kodowania JPEG2000.

Pierwszym etapem kompresji jest formatowanie danych polegające na umiejscowieniu poszczególnych komponentów obrazu na siatce odniesienia (reference grid) oraz podziale ich na części (tile). Zastosowanie siatki umożliwia dokonywanie prostych operacji na obrazie skompresowanym (m.in. obrót o wielokrotność 90 stopni) oraz kompresję obrazów o komponentach o różnej wielkości. Podział obrazu na kafelki ma na celu zmniejszenie zapotrzebowania na pamięć, umożliwia przyspieszenie kodowania (dzięki możliwości równoczesnego kodowania wielu części obrazu) oraz daje dostęp do fragmentów obrazu bez konieczności dekompresji całości (należy zaznaczyć, że taka lokalna dekompresja jest możliwa także w inny sposób). Po podziale obrazu na części każda z nich jest dalej przetwarzane niezależnie.

Po podziale każda część jest poddawany transformacji kolorów. W cz. I standardu zastosowano transformację YCbCr (YCC) w wersji odwracalnej (YCC_R) oraz nieodwracalnej (YCC_I). Transformacja może być zastosowana tylko w przypadku, kiedy obraz zawiera co najmniej 3 komponenty, przy czym 3 pierwsze muszą mieć taką samą wielkość. Po transformacji kolorów wszystkie komponenty są dalej przetwarzane niezależnie. Cz. II standardu umożliwia dodanie innych (własnych) transformacji przestrzeni kolorów. 

1.5. Standardy rodziny MPEG

Grupa MPEG tworzy standardy reprezentacji naturalnych danych multimedialnych (tj. danych rejestrowanych jako odbicie natury, czyli otaczającego świata realnego, będącego źródłem informacji) oraz związanymi z nimi  metadanych (opisów danych). Celem jest zapewnienie możliwości skutecznej i efektywnej wymiany danych między aplikacjami różnych wytwórców. Ogólniejszym zamierzeniem jest doskonalenie systemów multimedialnych, zwiększanie ich dostępności oraz użyteczności, dzięki szerokiej dystrybucji dokumentów norm i otwartości kodów referencyjnych \cite{Skarbek04}.

Kolejne wersje dokumentów: MPEG-1, MPEG-2, MPEG-4, MPEG-7, czy też MPEG-21 miały nieco odmienny charakter ze względu na zmieniające się z czasem zapotrzebowania, rozszerzane obszary zastosowań, a niekiedy modyfikowany cel standaryzowania. Rozwój rodziny standardów MPEG ma przede wszystkim trudne do przecenienia walory aplikacyjne: dał przede wszystkim podstawy rozwoju cyfrowych archiwów filmowych (MPEG-1) i nowoczesnej telewizji cyfrowej (kompresja sekwencji wizyjnych i dźwięku w MPEG-2), odtwarzaczy MP3 (kompresja dźwięku z MPEG-1), współczesnych zapisów filmów formatu HD (MPEG-4 AVC), nowoczesnych systemów odtwarzania dźwięku (kodeki AC3 czy AAC z MPEG-4), wyszukiwarek obrazów, filmów i zapisów dźwiękowych (opis obiektów multimedialnych, deskryptory wizyjne czy dźwiękowe z MPEG-7) oraz ambitny program przezroczystości zintegrowanych multimediów różnych standardów, zastosowań, koncepcji wykorzystania (MPEG-21).
 

1.6. MPEG 1 i 2, czyli muzyka i telewizja cyfrowa

Norma MPEG-1 składa się z trzech podstawowych części, dotyczących: a) kodowania wideo, b) kodowania audio, c) multipleksacji (łączenia) strumieni wideo i audio (część systemowa, uwzględniająca tak istotny dla multimediów aspekt integracji różnych strumieni informacji). Części te uzupełnia referencyjne oprogramowanie i dokument opisujący testy zgodności ze standardem. MPEG-1, przeznaczony początkowo do kompresji materiałów cyfrowych przechowywanych na lokalnie dostępnych nośnikach pamięci zewnętrznej (dysk, CD-ROM), z powodzeniem został wykorzystany w strumieniowaniu wideo w lokalnych sieciach komputerowych. Jednak największy wpływ na współczesny świat multimediów wywarł fragment tego standardu, dotyczący kodowania audio (Audio Layer III), powszechnie znany i używany do strumieniowania i archiwizacji dźwięku jako MP3 (Wśród młodzieży bardzo popularny stał się odtwarzacz nazywany ''mp-trójką'', pozwalający odsłuchiwać niezłej jakości muzykę w niemal każdych warunkach). Określono kodowanie audio w trybie mono i stereo w trzech warstwach, będących kompromisem miedzy złożonością a wydajnością kompresji. Pierwsze dwie bazują na kodowaniu pasmowym, zaś trzecia (MP3) dodatkowo wykorzystuje mechanizmy dopasowania widma kodowanego sygnału do zdolności percepcyjnych odbiorcy w dziedzinie dyskretnej transformacji kosinusowej (DCT).

Podstawowy algorytm kompresji wideo bazuje na metodzie kompresji obrazów pojedynczych opisanej normą JPEG - z blokową dyskretną transformacją kosinusową, kwantyzacją z przedziałami i progami selekcji współczynników DCT opisanymi odpowiednią tablicą oraz binarnym kodowaniem skwantowanych wartości metodą entropijną. Metoda kompresji MPEG została jednak rozszerzona o dodatkowy mechanizm estymacji i kompensacji ruchu w celu usunięcia nadmiarowości czasowej, czyli istniejących zależności (korelacji) pomiędzy kolejnymi ramkami zapisu wideo. 

Kompensacja ruchu wykorzystuje zasadę lokalnej predykcji kodowanego kadru na podstawie ustalonej ramki (lub ramek) odniesienia. Odbywa się w strukturze makrobloków, gdzie dla każdego kolejnego bloku obrazu o wymiarach $16 \times 16$ wyszukiwany jest (na etapie estymacji ruchu) najbardziej podobny blok ramki odniesienia, stanowiący predykcję informacji kodowanej. Różnicowy błąd predykcji makrobloków kodowany jest z wykorzystaniem blokowej DCT (transformacja niezależna w blokach $8 \times 8$) analogicznie jak w JPEG. Predykcja może się odbywać na podstawie ramek poprzedzających, a także następników przybierając formę interpolacji wzdłuż osi czasu (wymaga to zmiany naturalnej kolejności kodowania ramek znakowanych czasem, skorelowanej ze zmianą powrotną w dekoderze formującym strumień wyjściowy). Składnia strumienia MPEG przewiduje zapis tzw. wektorów ruchu, opisujących kolejno przesunięcie (przemieszczenie) najbardziej podobnego makrobloku obrazu odniesienia (referencyjnego) w położenie aktualnie kodowanego bloku ramki. 

Kolejna norma, MPEG-2 jest kontynuacją, rozszerzeniem MPEG-1 zarówno w wersji systemowej, jak i algorytmicznej-sygnałowej (wideo, audio). Wprowadza elementy skalowalności jakościowej (SNR), czasowej i przestrzennej strumienia wideo, rozszerza spektrum rozdzielczości, dołączając profil telewizji wysokiej rozdzielczości HDTV, dodaje warstwę transportową do transmisji w sieciach rozległych (zastosowanie telewizji cyfrowej). W kolejnych dokumentach MPEG-2 pojawia się protokół interakcji i sygnalizacji (DSM-CC - Digital Storage Media Command and Control), ochrona praw autorskich (IP protection) oraz określenie czasowej precyzji dostawy strumienia transportowego (RTI - Real Time Interface).

W MPEG-2 oprócz rozszerzenia liczby kanałów dźwiękowych i zestawu dopuszczalnych
częstości próbkowania, dodano zupełnie nowy algorytm AAC (Advanced Audio Coding) wykorzystujący DCT, który przy tej samej jakości redukuje przepływność bitową strumienia audio o jedną trzecią w stosunku do MP3. Algorytm AAC zapewnia kilka trybów pracy z różną złożonością i wydajnością bitową.   

W MPEG-2 wprowadzono możliwość dopisywania do strumienia dowolnych danych użytkownika (jako metadane), opisujących dane sygnałowe -- składnia i znaczenie metadanych wynikają już z konkretnej aplikacji. 

1.7. MPEG 4, czyli pułapki złożoności natury

Zmiana koncepcji kodowania wideo jest chyba największym wyróżnikiem kolejnej normy - MPEG-4. Zrealizowano w niej koncepcję kodowania obiektowego, z definicją obszaru obiektu o dowolnym kształcie, zgodnie z paradygmatem metod kompresji tzw. drugiej generacji. Obok kompresji sekwencji ramek typowych (definiowanych w prostokątnej dziedzinie pikseli) dopuszczono kompresję sekwencji regionów dowolnych kształtów (obszarów o kształtach zadanych  mapą binarną). W normie dodano także możliwość syntetycznego kodowania  obrazu i dźwięku. W porównaniu z MPEG-2 udoskonalono możliwości skalowalności strumienia kodowanego oraz dodano mechanizm odporności na błędy (error resilience).

Obok mechanizmów śledzenia obiektów o naturalnych kształtach w sekwencji czasowej, w normie zaproponowano nowatorskie narzędzie do kompresji obrazów pojedynczych - kodowanie wizualnej tekstury VTC (Visual Texture Coding), przewidziane dla scen multimedialnych zawierających obrazy statyczne. W algorytmie VTC wykorzystano falkową dekompozycję obrazu, realizując kodowanie w nieco uproszczonej wersji niż w JPEG2000.

Możliwe jest także kodowanie obrazów syntetycznych. W zależności od rodzaju syntezy obrazu sztucznego zaproponowano: kodowanie siatek dwuwymiarowych, kodowanie siatek wielokątnych trójwymiarowych, animację sztucznej twarzy i sztucznego ciała. Zdefiniowano trzy typy modelowania wizualnego: modele geometryczne opisujące kształt i wygląd prezentowanych obiektów, modele kinematyczne określające przemieszczenia i zniekształcenia obiektów oraz modele dynamiczne (w tym biomechaniczne), definiujące siły działające na obiekty i naprężenia wewnątrz tych obiektów.

Norma wzbogaca część systemową o narzędzia kompozycji i interakcji z mediami cyfrowymi. Ochrona praw autorskich znajduje odbicie w dwóch protokołach IPMP (Intelectual Property Management and Protection): IPMP-H (odpowiednik MPEG-2) oraz IPMP-X z nowymi funkcjonalnościami. Odpowiednikiem protokołu interakcji i sygnalizacji z MPEG-2 (DSM-CC) jest w przypadku MPEG-4 DMIF (Delivery Multimedia Integration Framework). DMIF jest protokołem sesji kontrolującej strumieniowanie mediów cyfrowych za pośrednictwem technik transportowych w sieci.

MPEG-4 określa mechanizmy budowy scen multimedialnych złożonych z równoczesnych prezentacji wideo, audio, obrazów statycznych, animacji, efektów grafiki komputerowej. Kluczowym narzędziem temu służącym jest binarny format strumieniowania BIFS (BInary Format for Streaming), w którym opisano  hierarchiczną strukturę sceny, z mechanizmem zmiany konfiguracji sceny i jej animacji. Tekstowy opis sceny określono w rozszerzalnym tekstowym formacie XMT (eXtensible MPEG-4 Textual format), który w postaci XMT-A jest tekstową wersją BIFS. Cennym rozwiązaniem zamieszczonym w  MPEG-4 jest mechanizm interakcji wielu użytkowników współdzielących tę samą scenę multimedialną, zgodnie z mechanizmem ''światów wielu użytkowników'' (MUW - multi-user worlds).

W normie zdefiniowano składnię formatu plikowego MP4 - dla kodowanej reprezentacji treści multimedialnych oraz metadanych wspomagających strumieniowanie, edycję, lokalne odtwarzanie i wymianę treści. Wprowadzono także pojęcie informacji o multimedialnej treści obiektów (OCI - Object Content Information).

W obszarze audio zaproponowano w MPEG-4 trzy nowe techniki kompresji dźwięku z przepływnościami bitowymi w zakresie od 2 kbit/s do 64 kbit/s. Ponadto, określono dwa narzędzia reprezentacji danych wspierających tworzenie dźwięku syntetycznego: interfejs systemu ''tekst w mowę'' (text to speech interface) oraz interfejs systemów dźwięku strukturalnego. Pierwszy z nich jest wykorzystywany do zapisu parametrów dźwiękowych (takich jak czas trwania głoski), które równolegle z tekstem są wprowadzane na wejście syntetyzera dźwięku. Określa też parametry umożliwiające synchronizację dźwięku z animowaną twarzą, dopuszcza różne języki w tekście i międzynarodowe symbole dla głosek, przy czym informacja jest wprowadzana do oryginalnego tekstu techniką specjalnych znaczników. W systemie dźwięku strukturalnego zdefiniowano język orkiestry (Structured Audio Orchestra Language), który umożliwia konfigurowanie sztucznej orkiestry złożonej z ''instrumentów'' reprezentowanych przez dynamicznie ładowane strumienie. Ponadto, język definiowania nut (Structured Audio Score Language)  reprezentuje nie tylko zapis nutowy, ale umożliwia określanie nowych dźwięków i modyfikację dźwięków istniejących.

Obok części 2 standardu, opisującej obiektowe kodowanie wideo, w okresie późniejszym opracowano zupełnie inną koncepcję kodowania wideo, wracając do schematu blokowego i transformacji DCT, jednak na zupełnie innych warunkach adaptacji przyjętych schematów do realiów treści obrazowej. Część 10 zawiera specyfikację metody, w ramach innej ścieżki standaryzacyjnej zwaną H.264, która pozwala wyraźnie zwiększyć efektywność kodowania kosztem wyraźnego wzrostu złożoności obliczeniowej algorytmów. Co warto podkreślić, tak wysoką wydajność kodeka H.264 uzyskano metodą wielu drobnych modyfikacji, powodujących uelastycznienie modelu ruchu obiektów i wynikających z tego, konsekwentnych zmian w zakresie realizacji poszczególnych przekształceń, aż do formowania strumienia zakodowanych danych. Wprowadzono m.in. takie mechanizmy jak:

  • predykcja wewnątrzramkowa INTRA, realizowana w blokach 4\times 4 (dla szczegółów) lub 16\times 16 (dla płaskich, łagodnych obszarów); nie jest to opcja obligatoryjna; 
  • wykorzystanie nadpróbkowania, sięgającego nawet 1/8 piksela do estymacji ruchu;  
  • wykorzystanie w estymacji i kompensacji ruchu bloków o różnej wielkości: 16\times 16,\ 16\times 8,\  8\times 16,\   8\times 8,\   8\times 4,\  4\times 8,\  4\times 4;
  • stosowanie wielu obrazów referencyjnych do kompensacji ruchu, z możliwością ustalenia dowolnych wag, przy czym kierunek ruchu nieistotny, a klatki typu B mogą być referencyjne;
  • całkowitoliczbowa wersja transformacji DCT liczona w bloku 4\times 4, z możliwością rozszerzeń na dziedzinę 8\times 8 lub 16\times 16 poprzez wykorzystanie transformacji Hadamarda; 
  • adaptacyjny filtr redukcji efektów blokowych.

1.8. MPEG 7, czyli specyfika opisu

Standard MPEG-7 nie definiuje algorytmów kompresji audio i wideo (czy raczej dekompresji, jak poprzednie normy), ale normuje metadane multimedialne, a więc opisy danych  cyfrowych lub też zawartej w nich treści. Opisy te są wykorzystywane do efektywnej charakterystyki, selekcji, doboru czy wyszukania określonych materiałów multimedialnych lub ich fragmentów. 

Dokument systemowy określa narzędzia definiowania składni metadanych w języku XML oraz techniki kompresji postaci XML-owej do postaci binarnej BiM (Binary Format for MPEG-7). Informacja zawarta w schemacie XML, określającym składnię danego typu opisów, wykorzystywana jest do redukcji strukturalnej nadmiarowości informacji (nazwa elementu, nazwa atrybutu, itp.), natomiast dedykowane techniki kodowania służą do kompresji wartości elementów i atrybutów w dokumencie XML (IEEE 754 dla liczb zmiennoprzecinkowych, UTF8 dla kodu UNICODE, kodowanie listy wartości, itp.)

Metadane

W MPEG-7 zaproponowano wiele mechanizmów definiowania metadanych, ustalono przede wszystkim bogaty język definicji opisów treści multimedialnej DDL (Description Definition Language). Język DDL jest nieznacznym rozszerzeniem  XML Schema, który w MPEG-7 wykorzystywany jest w definiowaniu normowanych typów metadanych dla poszczególnych mediów cyfrowych. Aplikacja generująca metadane, przypisane określonemu strumieniowi danych musi generować opisy według składni zdefiniowanej w typach metadanych normy, a więc zgodnych z odpowiednimi schematami XML.

Główne atrybuty informacji o treści przypisanej obiektom (OCI) to: klasyfikatory treści, słowa kluczowe, opis w języku naturalnym, język strumienia audio, informacja o kontekście wytwórczym danego medium, kategoria przyzwolenia odbioru (np. ocena dopuszczalnego wieku widza danego programu). Metadane mogą być włączane do opisu obiektu audio-wizualnego (AV), do strumienia elementarnego lub też same mogą tworzyć strumień elementarny. W strumieniu OCI mogą się znajdować opisy wielu obiektów AV.

Typy metadanych zostały podzielone na następujące kategorie:

  • typy sygnałowe, odnoszące się do informacji zawartej w danych zarejestrowanego sygnału cyfrowego, np. tekstura czy kształt konturu obiektów obrazu, struktura kolorów, linia melodyczna audio; metadane tego typu są generowane automatycznie na podstawie zarejestrowanego sygnału określonego rodzaju;
  • typy semantyczne, dotyczące znaczenia obiektów, relacji między nimi i zrozumiałych zdarzeń świata rzeczywistego (naturalnego) zapisanych w sygnale;
  • typy strukturalne, normujące organizację metadanych w struktury danych i ich kolekcje;
  • typy kontrolne, nawiązujące do informacji niezbędnych w zarządzaniu i udostępnianiu medium cyfrowego, takich jak:  kontekst techniczny (typ nośnika, typ kompresji, format i rozmiar pliku), kontekst wytwórczy (autor, producent, typ narzędzia wytwórczego, klasyfikacja produktu, np. muzyka filmowa), kontekst dystrybucyjny (dystrybutor, prawa własności, koszty).

 Szereg technik automatycznej ekstrakcji cech z obrazów, ich sekwencji oraz z materiału dźwiękowego określono w dokumentach wideo i audio tego standardu.

Deskryptory wizualne

Wśród deskryptorów wizualnych można wyróżnić kilka zasadniczych grup:

  • opis struktur podstawowych
    • rozmieszczenie siatki (Grid Layout) -- kompozycja deskryptorów wizualnych obliczanych niezależnie w siatce bloków pokrywających dany obraz,
    • widok złożony w 2W-3W (2D-3D Multiple View) -- kompozycja deskryptorów wizualnych obliczanych niezależnie dla wielu obrazów 2W lub 3W tej samej sceny,
  • deskryptory koloru
    • dominujące kolory (Dominant Colors) -- informacje o dominujących kolorach, ekstrahowane z obiektu wizualnego (ramka, region ramki, sekwencja ramek, obszar czasowy),   
    • skalowalny kolor (Scalable Color) -- informacja o histogramie kolorów skalowalna ze względu na liczbę poziomów kwantyzacji koloru w przestrzeni HSV (Hue, Saturation, Value),
    • rozmieszczenie koloru (Color Layout) -- informacja o współczynnikach DCT w blokach ramki dla składowych Y (luminancja) oraz Cb i Cr (chrominancja),
    • struktura koloru (Color Structure) -- informacja o strukturalnym histogramie kolorów w przestrzeni kolorów HMMD (Hue, Min, Max, Difference),
  • deskryptory tekstury
    • jednolitość tekstury (Homogenous Texture) -- informacja o teksturze jednorodnej bazująca na analizie spektrum transformacji Radona z wykorzystaniem zestawu filtrów Gabora,
    • przegląd tekstury (Texture Browsing) -- zwarta informacja o teksturze na podstawie analizy kierunków dominujących w amplitudowym spektrum transformaty Gabora  obrazu oryginalnego,
    • histogram krawędzi (Edge Histogram) -- histogram dla elementarnych typów krawędzi liczonych w różnych konfiguracjach bloków,
  • deskryptory kształtu
    • kształt regionu (Region Shape) -- informacja o kształcie obszaru na podstawie momentów Zernicke (transformacja ART),
    • kształt konturu (Contour Shape) -- informacja o kształcie konturu na podstawie analizy CSS (transformacja do skalowalnej przestrzeni krzywizny),
    • trójwymiarowe widmo kształtu (3D Shape Spectrum),
  • deskryptory ruchu:
    • ruch kamery (Camera Motion) -- informacja o parametrach ruchomej kamery,
    • tor ruchu (Motion Trajectory) -- informacja o trajektorii ruchu obiektu interpolowanej funkcją kawałkami wielomianową, co najwyżej stopnia drugiego,
    • aktywność ruchu (Motion Activity) -- aktywność ruchu mierzona na podstawie estymacji ruchu w makroblokach 16\times 16.

Warto zwrócić uwagę przede wszystkim na trzy zdefiniowane w MPEG-7 deskryptory tekstury obiektów wizyjnych:

  • Homogeneous Texture Descriptor – HTD, który służy do opisu jednorodnych tekstur obiektów wizyjnych,
  • Texture Browsing Descriptor – TBD, który opisuje percepcyjne właściwości postrzegania tekstur,
  • Edge Histogram Descriptor – EHD, który nie opisuje regionów o danych teksturach, lecz rozkład i kierunkowość krawędzi pomiędzy regionami o różnych teksturach w obrazie.

Edge Histogram Description

Rys. 1.14 Pięc typów krawędzi ekstrahowanych w EHD

Histogram krawędzi opisuje rozkład przestrzenny obrazu za pomocą pięciu typów krawędzi pokazanych na rysunku (1.14): czterech kierunkowych i jednym bezkierunkowym. Ostatni typ krawędzi nie jest określony a priori w żaden sposób i jest częścią obrazu. Zostaje on z niego wydzielony za pomocą procedury pokazanej na rysunku 1.15. Obraz wejściowy jest dzielony na bloki, a następnie podbloki, w obrębie których wykonywana jest operacja detekcji krawędzi.


Rys. 1.15 Zasada składania bloków i definiowanie pod--bloków w EHD.

Krawędzie odgrywają ważną rolę w postrzeganiu obrazów, szczególnie obrazów naturalnych, dlatego też powyższy deskryptor uważany jest za najważniejszy przy porównywaniu grup obrazów za pomocą wzorca.

Homogeneous Texture Descriptor
Deskryptor homogennych tekstur służy do opisu jednorodnych tekstur obiektów wizyjnych. Metoda wykorzystywana do ekstrakcji tego deskryptora została zaproponowana w Manjunath'a i polega na wyznaczeniu parametrów statystycznych każdego z kanałów dwuwymiarowego widma obrazu statycznego. Podział widma na rozłączne podpasma odbywa się przy użyciu zastawu filtrów zamodelowanych funkcją Gabora:

G_{s,r}(\omega, \theta)=\exp[\dfrac{-(\omega-\omega_s)^2}{2\sigma_s^2}]\exp[\dfrac{-(\theta-\theta_r)^2}{2\tau_s^2}] (1.7)

gdzie s, r to indeksy podpasm, \omega, \theta to argumenty pulsacji i kąta, natomiast \sigma, \tau to odchylenie standardowe pulsacji i kąta.

Deskryptor HTD dzieli widmo obrazu na 30 kanałów o sześciu kierunkach orientacji i pięciu zakresach częstotliwości, tak jak pokazano na rysunku 1.16. Dla każdego z kanałów wyznaczana jest średnia energia składników widma oraz ich wariancja. Składnia deskryptora HTD jest następująca (MPEG75}:

HTD=[f_{DC},f_{SD},e_1,\dots e_{30},d_1,\dots d_{30}] (1.8)

gdzie [f_{DC} to jednorodnie skwantowana wartość średniej luminancji obrazu, f_{SD} to jednorodnie skwantowana wartość odchylenia standardowego luminancji punktów obrazu od średniej, e_i to średnia wartość energii i--tego kanału, natomiast d_i to wartość dewiacji energii i--tego kanału.

Rys. 1. 16 Podział widma na kanały dla obliczeń deskryptora HTD. Rysunek zaczerpnięto z literatury.

Texture Browsing Descriptor 
Percepcyjny deskryptor tekstury opisuje tekstury obiektów wizyjnych poprzez wyznaczenie parametrów odpowiadających ludzkiemu sposobowi postrzegania. Składnia opisu deskryptora TBD jest następująca:

TBD=[v_1,v_2,v_3,v_4,v_5] (1.9)

gdzie v_1 to parametr regularności bądź struktury tekstury (regularity), v_2, v_3 to parametry opisujące kierunkowość tekstury (directionality), natomiast v_4, v_5 to parametry opisujące ziarnistość tekstury (coarseness).

Algorytm ekstrakcji cech TBD został przedstawiony w i także opiera się na filtracji widma z użyciem funkcji Gabora (1.7). 

Deskryptor TBD ma na celu wyznaczenie opisu, który bardziej odpowiada percepcyjnym właściwościom postrzegania człowieka. Nie gwarantuje to jednak uzyskiwania zadowalających rezultatów wyszukiwania. Liczba parametrów deskryptora jest ograniczona do pięciu (1.9). Dodatkowo wartości poszczególnych parametrów są silnie kwantowane, co zapewnia bardzo ograniczoną objętość bitową deskryptora, co niekorzystnie wpływa na precyzję wyszukiwania z użyciem TBD i ogranicza zakres jego zastosowań. Dodatkowo, deskryptor TBD charakteryzuje się bardzo dużą złożonością obliczeniowa ekstrakcji opisu, co dyskwalifikuje zastosowanie tego deskryptora w aplikacjach działających w czasie rzeczywistym.

Deskryptory rozpoznawania twarzy

Zdefiniowano także specyficzne, bardziej zaawansowane deskryptory, m.in. rozpoznawania twarzy:

  • deskryptor rozpoznawania twarzy (Face Recognition) - informacja o obrazie twarzy uzyskana na podstawie skwantowanych do 5 bitów pierwszych 48 współczynników transformaty KLT,
  • zaawansowany deskryptor rozpoznawania twarzy (Advanced Face Recognition) -- informacja o obrazie twarzy uzyskana w wyniku hierarchicznej liniowej analizy dyskryminacyjnej LDA, dokonanej na informacji spektralnej globalnej i lokalnej w blokach, z opcjonalną wstępną normalizacją twarzy do pozy frontalnej.

Deskryptory wizualne oprócz formatu XML mają także zdefiniowaną formę binarną, bardziej upakowaną niż binarna postać BiM -- w oprogramowaniu referencyjnym zamieszczono kodeki postaci XML na postać binarną (rys. 1.17).

Rys. 1.17 Schemat blokowy kodeków deskryptorów wizualnych MPEG-7, zaczerpnięty z literatury.
 

Deskryptory audio

Wśród deskryptorów opisujących dźwięk i mowę warto wymienić przede wszystkim:

  • sygnatura audio (Audio Signature) - skalowalna informacja o lokalnych statystykach widma dźwięku,
  • deskryptory brzmienia instrumentów (Musical Instrument Timbre) -- szereg deskryptorów charakteryzujących brzmienie instrumentu w terminach bazowych charakterystyk widmowych, takich jak centroid widma harmonicznego, jego rozproszenie, itp.
  • deskryptor melodii (Melody) -- złożony deskryptor zawierający między innymi sygnaturę czasową i linię melodyczną w postaci ciągu zmian melodycznych.
  • deskryptory rozpoznawania i indeksowania dźwięku (General Sound Recognition and Indexing) -- szereg deskryptorów pozwalających dokonać rozróżnienia dźwięków na poziomie ogólnym, np. pomiędzy muzyką, mową, a szumem, lub bardziej szczegółowym, np. między głosem mężczyzny, kobiety i dziecka (podstawowym modelem jest ukryty łańcuch Markowa).

1.9. MPEG-21, czyli integracja

Obecnie ostatni z serii, intensywnie rozwijany MPEG-21 definiuje narzędzia do opakowania zarówno danych, jak i metadanych multimedialnych w celu sprawnej ich zintegrowanej dystrybucji na nośnikach pamięci i w sieci rozległej. Zasadniczą wizją jest zapewnienie przezroczystego i możliwie poszerzonego wykorzystania zasobów multimedialnych dostępnych w sposób niemal nieograniczony poprzez zintegrowanie różnego typu sieci i urządzeń oraz współpracę różnych społeczności w skali globalnej. Chodzi o zbudowanie na tych warunkach infrastruktury dla dostarczania i konsumpcji multimediów poprzez integracje rozwiązań juz istniejących oraz wskazanie potrzeb opracowania nowych standardów porządkujących współdziałanie. 

Norma MPEG-21 zawiera uniwersalne mechanizmy definiowania praw odnoszących się do materiału multimedialnego REL (Rights Expression Language) oraz koncepcje adaptacji
i przetwarzania obiektów cyfrowych: DIA (Digital Item Adaptation) i DIP (Digital Item Processing). W standardzie występują obiekty cyfrowe (digital items), złożone z materiałów cyfrowych i  ich opisów, przez które użytkownicy realizują różne formy interakcji. Struktura obiektu cyfrowego opisana jest dokumentem XML, który nosi nazwę deklaracji obiektu cyfrowego.

Przykładem multimedialnego obiektu cyfrowego jest film wideo wraz z zestawem ścieżek dźwiękowych, opisem tekstowym, mechanizmami interakcji, zdjęciami z procesu produkcji, opiniami o filmie, wywiadami z aktorami, itp. 

1.10. Przegląd narzędzi służących wyszukiwaniu

Konstruowane na podstawie indeksów narzędzia do wyszukiwania treści obrazowej wykorzystują różnorakie struktury słownikowe do konstrukcji indeksu, list obiektowych czy też mechanizmów dostępu do danych fizycznych przeszukiwanych obiektów multimedialnych. Poniżej krótko scharakteryzowano wybrane wyszukiwarki (zebrane przez P. Bonińskiego).

W pierwszej kolejności warto wymienić rozwiązania komercyjne, o szerokiej skali zastosowań. 

QBIC
QBIC (Query By Image Content) jest pierwszym komercyjnym systemem indeksowania danych obrazowych ich zawartością, wprowadzonym na rynek przez firmę IBM. Mimo swojej prostoty, jest to jeden z bardziej znanych systemów typu CBIR, który z pewnością wpłynął na kształt późniejszych rozwiązań w tej dziedzinie.

QBIC obsługuje dużą gamę form zapytań: przykładowego obrazu, zakreślonego konturu, rozkładu kolorów bądź wybranego fragmentu tekstury. Wykorzystywane przez system indeksy są relatywnie proste i obejmują podstawowe cechy histogramowe, zmodyfikowane teksturowe cechy  Tamury jako kombinacja skrośności, kontrastu i kierunkowości oraz cechy kształtu, w tym cyrkularność, mimośród, orientacja głównych osi i grupa momentów inwariantnych.

Efektywność systemu QBIC nie jest wysoka, tym niemniej znalazł on zastosowania komercyjne, np. był wykorzystywany  przez słynne rosyjskie muzeum Ermitaż w Sankt Petersburgu. Funkcjonalność systemu QBIC jest obecnie dostępna w komercyjnym systemie zarządzania bazą danych IBM DB2 w ramach rozszerzenia oferowanego pod nazwą DB2 Image Extender.

Virage
System Virage jest kolejnym, szeroko znanym systemem typu CBIR, z zastosowaniami  komercyjnymi. Obsługuje różne formy zapytań: przykładowy obraz, kontur, tekstura, rozkład kolorystyczny. Virage umożliwia modyfikację parametrów indeksowania poprzez przypisanie wag każdej wyznaczanej cesze. Koncepcja ta została po raz pierwszy zastosowana w praktycznym systemie właśnie w Virage i była często wykorzystywana w rozwiązaniach późniejszych.

System Virage znalazł zastosowanie w wielu instytucjach i firmach, choćby w stacji telewizyjnej CNN, w dużej mierze dzięki integracji z bazą danych firmy Sybase oraz Oracle. Swego czasu Virage był też stosowany jako silnik wyszukujący w usłudze Altavista PhotoFinder, co jest dowodem skuteczności tego rozwiązania.

Natomiast zdecydowana większość prac nad systemami indeksowania zawartością prowadzona jest na uniwersytetach i innych środowiskach badawczych, dlatego tutaj właśnie można znaleźć największe bogactwo koncepcji i rozwiązań w obszarze systemów wyszukiwania. Poniżej wymieniono kilka przykładowych rozwiązań.

SCORE
SCORE (System for COntent based REtrieval of pictures) proponuje specjalny model reprezentacji zawartości obrazów. Każdy z obrazów w bazie danych jest opisany przez zmodyfikowany diagram encji reprezentujących obiekt oraz związków. Encje nie oznaczają tu jednak typów, ale konkretne obiekty. Podobnie symbol związku dotyczy jednego konkretnego powiązania, a nie zbioru powiązań. Wyróżnione są dwa typy związków: akcje opisują pewne sytuacje rozpoznawane w obrazie (np. pies goni kota), zaś relacje przestrzenne określają względne pozycje występujących obiektów (na lewo, pod spodem, z przodu).

Tworzenie zapytania polega na graficznym wyborze kilku obiektów z palety ikon. Następnie użytkownik określa dodatkowe parametry i atrybuty obiektów (kolor, rozmiar, liczba) oraz definiuje żądane związki między obiektami. Wykonanie zapytania uwzględnia przybliżone dopasowywanie wartości atrybutów oraz akcji (np. sosna jest drzewem) i reguły dedukcji dla związków przestrzennych (np. przechodniość relacji na lewo).

Photobook
Jednym z najbardziej znanych systemów jest opracowany w MIT Media Lab system Photobook. Rozwiązanie to jest interesujące ze względu na próbę połączenia koncepcji w pełni automatycznego indeksowania obrazów zawartością z adnotacjami dodawanymi przez użytkownika, wspierającymi proces wyszukiwania. Wykorzystywane są cechy kształtu i tekstury, posiada też zestaw cech dedykowany rozpoznawaniu twarzy (jest to efekt współpracy z firmą Viisage Technology, która zaowocowała systemem FaceID, wykorzystywanym przez policję w Stanach Zjednoczonych).

SMDS
SMDS jest jedną z pierwszych prób opracowania podstaw technologii multimedialnych. Formalnie zdefiniowano instancję medium, która reprezentuje jeden konkretny typ mediów, np.  audio, wideo, obrazy, dokumenty. Instancja medium zawiera w sobie poszczególne egzemplarze danego typu (np. ścieżka audio) oraz cechy opisujące zawartość tych egzemplarzy. Określono również formalnie strukturę bazy danych, która oprócz instancji mediów obejmuje również elementy pozwalające na osłabianie treści zapytań, np. hierarchię generalizacji cech (mustang jest przykładem forda) lub dopuszczenie substytutów wartości atrybutów (kolor żółty można zastąpić pomarańczowym).
Zaproponowane definicje są na tyle ścisłe, że pozwalają utworzyć język zapytań w formie operacji logicznych (podobny do języka PROLOG). Wykorzystano także język bazujący na składni SQL, który na niższym poziomie wykorzystuje odpowiednie formuły logiczne. Poniższe zapytanie w języku SMDS-SQL znajduje obrazy, na których dostrzegalny jest biały ford:

SELECT M<br /> FROM smds source1 M<br /> WHERE FindType(M)=image<br /> AND FindObjWithFeature(ford)<br /> AND Color(ford, white, S)

SEMCOG
Język CSQLjest częścią systemu zarządzania bazą danych SEMCOG, który służy do przechowywania obrazów statycznych. System wprowadza hierarchiczną strukturę modelowania obrazów, która wspiera zarówno zapytania na poziomie całych obrazów, jak też poszczególnych obiektów. Dodatkowo uwzględniono dwojaki charakter przechowywanych obrazów -- ich cechy wizualne i semantyczne. Uwzględnienie cech wizualnych pozwala np. na tworzenie zapytań o podobieństwo dwóch obrazów (dotyczące kształtów, kolorów, rozmiarów), natomiast cechy semantyczne umożliwiają wyszukiwanie obrazów na podstawie opisu treści obrazowej, który jest definiowany ręcznie przez użytkownika lub półautomatycznie przez algorytmy przetwarzania
obrazów. 

Model zakłada, że obraz jest obiektem złożonym z wielu obiektów składowych, które mają określoną semantykę i cechywizualne (np. człowiek, samochód). Struktura każdego obiektu obejmuje więc jego obraz (zbiór pikseli), cechy semantyczne i relacje przestrzenne. Obiekty mogą również zawierać kolejne podobiekty i relacje przestrzennemiędzy nimi. W zapytaniach można specyfikować kryteria selekcji, odwołujące się do semantyki obrazów, wizualnego podobieństwa obrazów oraz relacji przestrzennych, określonych w modelu obrazu. Poniższe, przykładowe zapytanie wyszukuje wszystkie obrazy, na których widoczna jest osoba na prawo od obiektu podobnego do zadanego obrazu obiektu.

Język MOQL (Multimedia Object Query Language)
MOQL jest rozszerzeniem języka OQL opracowanego dla obiektowych baz danych. Celem twórców była reprezentacja dowolnych danych multimedialnych. Sposób przechowywania nie został konkretnie określony, natomiast założono, że oprócz samych mediów, dostępne będą również informacje semantyczne dotyczące interesujących obiektów wchodzących w ich skład.

Rozszerzenia OQL dotyczą przede wszystkim nowych wyrażeń, jakie można stosować w ramach klauzuli WHERE. Są to m.in. predykaty i funkcje przestrzenne –- np. intersect, predykaty i funkcje temporalne – np. overlap, predykat CONTAINS. Składnia zapytań została również poszerzona o specjalną klauzulę PRESENT, która daje szerokie możliwości definiowania sposobu prezentacji wyników.

Przedstawione poniżej, przykładowe zapytanie wyszukuje pary (obraz, wideo), gdzie  wszystkie samochody widoczne na obrazku mają być wyszukane z wideo-klipu. Obraz i wideo są prezentowane w oknach o określonej pozycji i rozmiarze. Pokaz obrazu trwa 20 sekund i rozpoczyna się 10 sekund przed początkiem klipu wideo, który jest odtwarzany przez 30 minut.

SELECT m, v<br /> FROM Images m, Videos v<br /> WHERE FOR ALL c IN (SELECT r FROM Cars r WHERE m CONTAINS r)<br /> v CONTAINS c<br /> PRESENT atWindow(m, (0,0), (300, 400))<br /> AND atWindow(v, (301, 401), (500, 700))<br /> AND play(v, 10, normal, 30*60) parStart display(m, 0, 20)
 

ASSERT
ASSERT  jest jednym z nielicznych przykładów systemu CBIR do zastosowań medycznych. Jest on dedykowany indeksowaniu obrazów CT (Computed Tomography) płuc ze wsparciem detekcji symptomów rozedmy płuc. Do oceny charakteru i rodzaju  zmian wykorzystano deskryptory cech teksturowych.

GIFT/medGIFT
Bardzo interesującym i dostępnym w ramach fundacji GNU jest GNU Image Finding Tool (GIFT),  opracowany na uniwersytecie w Genewie system typu CBIR. Do komunikacji z klientem wykorzystuje on bazujący na XML protokół MRML (Multimedia Retrieval Markup Language){http://www.mrml.org), dający szereg możliwości, takich jak: uzyskanie informacji o kolekcjach obrazów na serwerze, dostępnych algorytmach, ich parametrach, itp. Ustandaryzowany sposób komunikacji teoretycznie umożliwia uniezależnienie klienta od konkretnego rodzaju serwera. 

Z pewnością GIFT jest interesującą, rozwojową platformą do budowy własnych rozwiązań typu CBIR, szczególnie, że projekt dostępny jest w ramach licencji GNU GPL daje dostęp do pełnych kodów źródłowych.  

FIRE

Flexible Image Retrieval Engine (FIRE) jest projektem związanym z projektem IRMA, mającym na celu realizację systemu typu CBIR o uniwersalnym przeznaczeniu, z architekturą umożliwiającą łatwą rozbudowę systemu o nowe cechy, metryki i struktury danych. 

1.11. Modele inteligencji

Jest to zagadnienie frapujące badaczy od dziesiątków lat, tak jak od tysięcy lat badana jest ta fascynująca cecha ludzkiego umysłu (Umysł to ogół aktywności mózgu ludzkiego, przede wszystkim takich, których posiadania człowiek jest świadomy (Wikipedia)). Inteligencja oznacza przede wszystkim sprawność w zakresie zasadniczych zdolności umysłowych, takich jak: myślenie i rozwiązywanie problemów, postrzeganie, rozpoznawanie, rozumienie, zapamiętywanie, posługiwanie się liczbami, symbolami, wyobraźnię przestrzenną, rozumowanie przez indukcję i dedukcję (ogólnie procesy poznawcze, które generują nowe treści na podstawie rozumowania), płynne używanie języka, odczuwanie i kontrola emocji, koncentracja uwagi, planowanie, wyciąganie wniosków z doświadczeń, kreatywność (twórczość, oryginalność), zdolność oceny i interpretacji, podejmowanie decyzji, itp. Zdolności konkretnych osób są zwykle ukierunkowane na szczególne typy inteligencji, np. językową, emocjonalną czy twórczą.

W jakich aspektach potencjał nauk komputerowych sięga ludzkiej inteligencji, których zdolności dotyczy, czy stanowi docelowo jej substytut, replikę, a może innowację? Niełatwo znaleźć odpowiedź na te pytania, chociaż niewątpliwie warto je rozważyć w kontekście tak trudnego zadania, jak użytkowanie przekazu informacji obrazowej.
 

1.12. Inteligencja ludzka

Fransis Galton stwierdził mało wnikliwie w 1883 roku, że inteligencja to podstawowa zdolność umysłu, decydująca o sukcesie jednostki w ,,walce o byt'', zależna przede wszystkim od energii działania oraz wrażliwości zmysłów. Trafniej zdefiniował to pojęcie Alfred Binet (1905) jako mniej więcej zdolność do wydawania trafnych sądów, bazująca na adekwatnym rozumieniu sytuacji oraz logicznym wnioskowaniu, zwłaszcza w odniesieniu do problemów i sytuacji dnia codziennego \cite{Binet}. Warte podkreślenia jest bardzo pragmatyczne w tych definicjach rozumienie inteligencji. 

Od poziomu inteligencji zależy poprawność rozumienia złożonych, abstrakcyjnych problemów i skuteczność poszukiwania trafnych rozwiązań, a także sprawność działania w sytuacjach trudnych, niecodziennych, w warunkach licznych ograniczeń, niepewności, w stresie. To umiejętność stawiania celów, planowania, podjęcia decyzji w warunkach ekstremalnych, nagłych, sytuacjach ''życiowych'', to możliwość twórczego myślenia o własnym myśleniu.

Szczególną rolę w zachowaniach inteligentnych zajmuje rozum i intuicja w kontekście ludzkiej świadomości. Inteligencja oznacza sprawne uczenie się, myślenie abstrakcyjne, adaptacja do bieżącej sytuacji, podejmowanie skutecznych decyzji, ale także świadomość określonych celów, praw, wartości, wyzwań, istniejących uwarunkowań. Świadomość pozwala formułować zadania, stawiać cele, określać dążenia -- stanowi więc warstwę podmiotową zachowań inteligentnych. 


Rozum kojarzony jest przede wszystkim z myśleniem logicznym. To zdolność do operowania pojęciami abstrakcyjnymi, do analitycznego myślenia i wyciągania wniosków na podstawie dostępnych danych, informacji, wiedzy, eksperymentów. To umiejętność uczenia się, używania zdobytych doświadczeń i posiadanej wiedzy do rozwiązywania konkretnych problemów życiowych. Znacznie trudniejszym w definicji pojęciem jest intuicja.

Intuicja natomiast oznacza zdolność do nagłego przebłysku myślowego, w którym dostrzega się rozwiązanie problemu lub znajduje odpowiedź na nurtujące pytanie. To możność szybkiego dopasowania rozwiązania problemu do zaistniałych uwarunkowań. Jest to proces bardziej kreatywny i działający na wyższym poziomie abstrakcji w porównaniu do myślenia logicznego.
 
Słowo intuitio (łac.) oznacza wejrzenie, wewnętrzne przekonanie, że mam rację. Chodzi więc o zdolność bezpośredniego pojmowania, szybkiego dotarcia do bezpośredniej wiedzy bez udziału obserwacji, rozumu, świadomej myśli -- myślenie intuicyjne jest podobne do percepcji, postrzegania, czyli błyskawiczne i bez wysiłku. Intuicja to inaczej

  •  wgląd, olśnienie pojawiające się w trakcie rozwiązywania problemu,
  • przeczucie,  zdolność przewidywania, szybkie rozpoznanie,
  • przekonanie, którego nie można w pełni uzasadnić,
  • poznanie docierające do istoty rzeczy,

Intuicja to nie są emocje, a proces podświadomy, którego nie można kontrolować -- przewidywanie, domyślanie się niebazujące na przejrzystym wnioskowaniu. Zasadniczo można jedynie dopuszczać lub odrzucać podawane przez intuicję rozwiązania. 

Próbując nieco bardziej zrozumieć mechanizm tego zjawiska, wydaje się, że na intuicyjne myślenie mają wpływ takie czynniki jak:

  • mimowolne uczenie się, automatyczne, nieuświadomione zdobywanie wiedzy,
  • kreatywne działanie poprzez automatyzm zachowania według ustalonych, aczkolwiek w większości nieznanych  reguł reagowania na podstawie własnego doświadczenia życiowego,
  • markery somatyczne jako automatyczny sygnał przewidywanych skutków podjęcia decyzji -- są to specjalne rodzaje uczuć, emocji, odnoszące się do wcześniejszych doświadczeń, o charakterze ostrzegającym (negatywne) lub zachęcającym (pozytywne).

Świadomość określana jest jako stan psychiczny, w którym jednostka zdaje sobie sprawę ze zjawisk wewnętrznych (własne procesy myślowe, psychika) oraz zjawisk zachodzących w środowisku zewnętrznym (świadomość otoczenia, możliwość reakcji). Jako samoświadomość jest specyficzną, gatunkową cechą człowieka, stanowi podstawę tworzenia wiedzy i zapamiętywania, a więc działań inteligentnych. Jest zawsze intencjonalna, nakierowana na jakiś przedmiot materialny lub abstrakcyjny i powiązana z odczuciem własnego ''ja''. W szczególności jest to:

  • stan przytomności, czuwania, odbierania bodźców; 
  • zdolność do celowej orientacji i odczuwania, tj. przeżywania doznań i stanów emocjonalnych.

1.13. Mechanizmy i schematy poszukiwania rozwiązań

W sprawnym i stającym na odpowiednio wysokim poziomie abstrakcji, tj. inteligentnym, działaniu odgrywają istotną rolę takie elementy jak pamięć robocza (jej pojemność, trwałość, strategie gospodarowania), strategie poznawcze (m.in, wyobrażeniowa, analityczna, globalna -- ważny jest wybór właściwej strategii), kontrola poznawcza (względem czynności ważnych dla rozwiązania zadania), zasoby uwagi (wielkość ''mocy przetwarzania'' systemu poznawczego, odnosząca się do pojęcia ludzkiej świadomości i woli). 

Dwa podstawowe sposoby rozumowania (wnioskowania) to metoda dedukcyjna i indukcyjna. Można też mówić o wnioskowaniu:

  • do przodu, które rozpoczyna się od analizy faktów, a następnie na podstawie dostępnych reguł i faktów generowane są nowe fakty tak długo, aż wśród nich znajdzie się poszukiwane przez użytkownika rozwiązanie (cel) lub  zabraknie reguł;
  • wstecz -- wnioskowanie sprowadza się do wersyfikacji postawionej na początku hipotezy poprzez  poszukiwanie  argumentów (dowodów), które ją potwierdzą lub obalą.

Możliwe jest także łączenie obu strategii, stosowanie ich naprzemiennie zależnie od bieżącej sytuacji w zbiorze wygenerowanych stanów -- jeśli zdefiniowany cel wydaje się mało osiągalny, brakuje skutecznych reguł (operatorów) przybliżających, można zdefiniować pomocniczy podcel, nadający kierunek lokalnym poszukiwaniom.  

Rozumowanie dedukcyjne jest prostym wyciąganiem wniosków, nie wymagającym tworzenia nowych twierdzeń  czy  pojęć. Wykorzystuje się jednie formułę logicznej konsekwencji: na podstawie istniejących  przesłanej (faktów, wiarygodnych danych treningowych) oraz dostępnej wiedzy tzw. zastanej formułuje się wnioski (tj. konkluzje, nowe fakty), które stają się wiedzą nabytą. Zakładając poprawność wiedzy (reguł logicznych), do której się odwołujemy, z prawdziwości przesłanek wynika logiczna prawdziwość konkluzji. Taki rodzaj wnioskowania stanowi podstawę przede wszystkim systemów eksperckich (inaczej ekspertowych), ważnego obszaru skutecznych rozwiązań sztucznej inteligencji.

Indukcja logiczna to sposób rozumowania polegający na wyprowadzaniu nowych twierdzeń, weryfikacji hipotez, sugerowaniu możliwości zaistnienia nowych faktów na podstawie intuicyjnej analizy wejściowych przesłanek. 

W rozumowaniu indukcyjnym obserwując określone fakty (a więc postrzegając prawdę) szukamy ich wyjaśnienia w postaci możliwie wiarygodnych przyczyn, bazując na dostępnej wiedzy, zastanej lub nabytej we wspomagającym rozumowaniu dedukcyjnym. Weryfikując domniemane przyczyny zadajemy pytanie o ich prawdziwość i na tej podstawie wyprowadzamy  wniosek  ogólny, nową teorię czy  prawo. 

Prawdziwość przyczyn potwierdzonych faktów wynika w takim rozumowaniu z prawdziwości stosowanych reguł, stąd szczególna rola algorytmu wnioskującego.   

Poszukiwanie inteligentnych rozwiązań realnych, życiowych problemów często nie jest proste. Trudno jest z góry określić ciąg czynności prowadzących do ich rozwiązania -- jednym ze sposobów jest systematyczna analiza kolejnych alternatyw. Zaletą takiego rozwiązania jest łatwość formułowania kolejnych zadań. Wymagane jest jedynie określenie
zbioru stanów przestrzeni rozwiązywanego problemu (w tym stanu początkowego i zbioru możliwych stanów końcowych) oraz zbioru operatorów przekształcających stany tej przestrzeni (zastosowane do określonych stanów generują nowe stany). Rozwiązanie polega na wyznaczeniu ciągu operatorów przekształcających stan 
początkowy w stan końcowy.
 
Korzysta się przy tym z dobranych strategii realizacji procesu przeszukiwań przestrzeni stanów, od metod ślepych po 
zmyślne heurystyki.  Poszukiwanie żądanego stanu -- najlepszego rozwiązania odbywa się nierzadko w sposób względny, subiektywny,  zależny od reguł wypracowanych doświadczalnie, bazujących na opiniach ekspertów. Metody analityczne są zwykle niepraktyczne,  

Metody ślepe nie wykorzystują żadnej informacji o zadaniu -- specyfice rozwiązywanego problemu, dzięki czemu mają one charakter uniwersalny. Polegające na kolejnym przeszukiwaniu (niekiedy wszystkich) możliwych dróg prowadzących do rozwiązania  według z góry ustalonego porządku, w szczególności:

  • deterministycznie, np. 
    • w głąb, wszerz, dwukierunkowo, z jednolitym kosztem -- pomocne są tutaj grafowe czy drzewiaste struktury stanów -- węzłów;
    • zachłannie -- po ekspansji stanów badane są nowe węzły i najbardziej obiecujący z nich jest wybierany do dalszej ekspansji; taka lokalna optymalizacja uniemożliwia powrót do żadnego przodka aktualnie badanego węzła; 
    • siłowe, \emph{brute force}, polegające na sukcesywnym sprawdzeniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu, bez jakiejkolwiek  szczegółowej analizy, co prowadzi do prostych realizacji i dużej złożoności obliczeniowej, zapewniając pełen sukces wyznaczenia optymalnego rozwiązania.
  • niedeterministycznie, np. metodą Monte Carlo, z losowym wyborem punktów w przestrzeni dopuszczalnych rozwiązań i obliczaniem dlań funkcji celu -- najlepsze rozwiązanie jest uznawane za rozwiązanie problemu.  

W zadaniach przeszukiwania mianem ''heurystyczne'' określa się wszelkie reguły, zasady, prawa, kryteria i intuicje (również takie, których konieczność ani skuteczność nie jest całkowicie pewna), które umożliwiają wybranie najbardziej efektownych kierunków działania zmierzających do celu. Istotne jest dobre dopasowanie do problemu, wykorzystanie lokalnej czy czasowej charakterystyki stanów. Heurystyka oznacza metodę znajdowania przyzwoitego (dobrego?) rozwiązania przy akceptowalnych nakładach obliczeniowych. Nie daje gwarancji uzyskania optymalnych czy choćby prawidłowych rozwiązań, a nierzadko nawet bez oszacowania, jak blisko optymalnego jest otrzymane rozwiązanie. Jej stosowanie zawsze grozi pominięciem najlepszego ruchu. 

W heurystyce ważne są sensowne przypuszczenia odnośnie kierunku poszukiwania rozwiązań, choćby przez wykluczanie rozwiązań nie rokujących sukcesów, zawężanie przestrzeni przeszukiwań, wybór możliwie najkrótszej, najbardziej prawdopodobnej drogi. Stosowanie heurystyki powinno umożliwiać uniknięcie badania tzw. ślepych ścieżek i skuteczne   wykorzystanie  zdobytych  w  trakcje badania obserwacji. Spodziewanym efektem jest średnia poprawa efektywności, przy braku poprawy w przypadku pesymistycznym.

Heurystyka jest więc rozumiana jako praktyczna strategia poprawiająca efektywność znajdowania rozwiązania złożonych problemów. Ogólniej, jest to nauka o metodach i regułach rządzących dokonywaniem odkryć i tworzeniem wynalazków. Inaczej, heurystyka nazywamy metodologię twórczego rozwiązywania zadań czy problemów złożonych (tj. wymagających w wyczerpujących rozwiązaniach olbrzymich ilości obliczeń) poprzez eksperyment, metodę prób i błędów, analogie, odwołanie do doświadczenia. Wykorzystywane jest podejście logiczne, matematyczne, ale też komputerowe (numeryczne), przez eksperyment, często za pomocą metody prób i błędów, odwoływania się do analogii, uogólnień. Heurystyka dąży do rozwiązania najkrótszą drogą, omijając mniej obiecujące ścieżki, wykorzystuje proste kryterium wyboru kierunku, a jej działania nie daje się analizować.
 

1.14. Sztuczna inteligencja

Sztuczna inteligencja kojarzona jest z maszyną myślącą, czyli są to metody, algorytmy, urządzenia  posiadające (skutecznie naśladujące) funkcje ludzkiego umysłu. Inaczej, sztuczna inteligencja jest nauką o maszynach wykonujących zadania, które wymagają inteligencji, gdy są rozwiązywane przez człowieka.

Sztuczna inteligencja (artificial intelligence -- AI) to dział informatyki, którego przedmiotem jest badanie reguł rządzących inteligentnymi zachowaniami człowieka, tworzenie formalnych modeli tych zachowań i — w konsekwencji — realizacja narzędzi komputerowych (za pomocą algorytmów, procedur, oprogramowania, rozwiązań sprzętowych) symulujących, naśladujących lub wspomagających te zachowania. 

SI ma powiązania z psychologią, medycyną, fizjologią, bioniką, cybernetyką, teorią gier, modelowaniem matematycznym i in., czerpiąc pojęcia, metody i rezultaty oraz ubogacając poprzez oferowanie własnych pojęć i aparatu badawczego, metod obiektywizacji i formalizacji wiedzy. Przykładowe, wykorzystywane metody i narzędzia to -- w warstwie konceptualnej -- języki programowania (głównie Lisp i Prolog), języki systemów eksperckich (CLIPS, jego rozszerzenia -- np. Jess, Flops,  OPS5, Smalltalk), środowiskowe programy ułatwiające implementacje systemów (Pro Genesis, KEE,  Loops,  Level  5 Object, Aion  Execution System), systemy szkieletowe (ExSys, DecisionPro, PC-Shell, G2, XpertRule), zintegrowany pakiet oprogramowania narzędziowego (np. SPHINX), algorytmy wyszukiwania informacji, poszukiwania rozwiązań problemów złożonych, dopasowywania wzorców i in., systemy wspomagania rozpoznania, decyzji, schematy i procedury działań zaradczych, przewidywania, ostrzegania, planowania, sterowania, zaś w warstwie materialnej -- komputery o specjalnej architekturze, urządzenia komunikowania się z komputerem (interfejsy, różne technologie interakcji), inteligentne roboty itp.
 
Komputerowe realizacje SI wykorzystuje  się konkretniej do rozpoznawania kształtów (np. pisma, elementów obrazów), dźwięków (np. mowy), do gry (np. w szachy, strategicznych), dowodzenia twierdzeń, wyszukiwania informacji, analizy wyników eksperymentalnych, w celu komponowania muzyki, tłumaczenia testów, formułowania ekspertyz (ocen, opinii), sterowania, monitorowania, śledzenia obiektów, robotów i procesów technologicznych, do sugerowania prostych diagnoz lekarskich, w koncepcji inteligentnego domu, zarządzania sprzętem, aktualizacji informacji i zasobów wiedzy,  klasyfikacji zagadnień, problemów itp. 

Jednoznaczna definicja systemów SI jest trudna, a granice płynne. Ogólnie są to systemy bazujące na wiedzy i doświadczeniu, wykorzystujące bardziej jakościową wiedzę niż modele matematyczne, charakteryzujące się symbolicznym wnioskowaniem, chociaż z biegiem lat w coraz większym stopniu wykorzystujące metody numeryczne. Algorytmy odwołują się coraz częściej do sprawdzonych heurystyk, poszukując wręcz najbardziej korzystnych uproszczeń w sytuacji zastanej. Tworzone systemy  informacyjne (maszyny) mają zdolność uczenia się, pozyskiwania wiedzy, głębokiej adaptacyjności oraz autonomiczności. 

Wśród fundamentalnych obszarów SI wyróżnia się przede wszystkim reprezentację wiedzy, systemy ekspertowe, sieci neuronowe, algorytmy genetyczne, szerzej -- ewolucyjne, kognitywistykę, teorię gier, przetwarzanie języka, rozumienie mowy, widzenie komputerowe, uczenie maszyn, logikę rozmytą, programowanie automatyczne i robotykę.

Zasadniczy podział zagadnień sztucznej inteligencji ogranicza się do:

  • silnej SI, dotyczącej systemów myślących, odwołującej się do osiągnięć kognitywistyki (tj. nauki zajmującej się badaniem, wyjaśnianiem i modelowaniem umysłu oraz procesów poznawczych, w tym percepcją, reprezentacją, emocjami, świadomością, pamięcią, rozumowaniem, mową, komunikacją itp.); 
  • słabej SI, nazywanej inteligencją obliczeniową, soft computing, zajmującej się problemami szczegółowymi, o jasno zdefiniowanym celu oraz kryteriach wykorzystując logikę, teorie zbiorów, teorię automatów, probabilistykę i statystykę itp.; podstawowe metody to automatyczne wnioskowanie, transmutacje wiedzy, stosowanie heurystyk, algorytmy mrówkowe, maszynowe uczenie się (z nadzorem, bez nadzoru, odkrywanie asocjacji i wzorców sekwencji, boty (tj. narzędzia do przeszukiwania  i  pozyskiwania  wiedzy, z mechanizmem decyzyjnym na bazie wcześniej  zdobytej wiedzy) itd.

Aproksymacja i optymalizacja

Zadania rozwiązywane w ramach SI można przyporządkować dwóm postawowym kategoriom: zadania aproksymacji oraz zadania optymalizacji.

Aproksymacją nazywamy znajdowanie ciągłego modelu zjawiska, cechy czy sygnału za pomocą funkcji czy krzywej przechodzącej w pobliżu zadanego, ziarnistego (dyskretnego) zbioru punktów. Zwykle aproksymację rozumie się więc w kontekście funkcjonalnego opisu danej dziedziny. Jest to problem dobrania nieznanej funkcji (zespołu funkcji określonej klasy, kawałków funkcji, krzywej itp.) na podstawie  ograniczonych informacji o danym procesie, tj. skończonej liczby wartości (często zmierzonych, a więc obarczonych błędem pomiaru) danej dziedziny. Inaczej, mamy więc do czynienia z zagadnieniem przybliżania (dopasowywania) danych data fitting). 

Zadania aproksymacji (inaczej ekstrapolacji, rozpoznania) obejmują przede wszystkim

  • znajdowanie ukrytych zależności pomiędzy danymi,
  • przewidywanie (predykcja) zachowań obiektów, przebiegu zdarzeń, wyników własnych działań, prognozowanie trendów;
  • uogólnienia wiedzy (''skoro wszyscy sportowcy -- biegacze trenują przynajmniej pięć dni w tygodniu, to brak takiego treningu może oznaczać niebycie biegaczem''); 
  • uzupełnianie fragmentów zniszczonych zdjęć, zwiększanie rozdzielczości obrazów cyfrowych w celu wyświetlenia na wysokiej jakości monitorze; 
  • rozpoznanie (efekt klasyfikacji) nieznanych obiektów na podstawie znanych przykładów, np. rozpoznawanie obrazów, mowy, OCR;
  • sterowanie obiektami, modelowanie zachowań, naśladowanie, animacja.

Podstawowy schemat postępowania obejmuje wybór uzasadnionej klasy funkcji dobrze aproksymujących właściwości opisywanego zjawiska (jest to zasadniczy przedmiot rozważań teorii aproksymacji), a następnie procedurę (algorytm) dobierania konkretnej postaci funkcji odpowiadającej pomierzonym wartościom (to przede wszystkim obszar analizy i metod numerycznych). Użyteczna klasa funkcji aproksymujących to przede wszystkim funkcje względnie gładkie (gładkość to cecha sygnałów naturalnych), stanowiące zbiór możliwie zupełny (tj. kompletny, obejmujący opisem wszystkie możliwe przypadki) względem rozważanej grupy problemów. Korzystne jest przy tym, gdy są to funkcje łatwe w komputerowej obróbce (liczenie wartości, określanie pochodnych i całek itp.). Przykładem stosowanych klas aproksymacji opisów naturalnych zjawisk są funkcje wielomianowe, przedziałami wielomianowe, funkcje sklejane.

Formalnie, mając dane niektóre wartości nieznanej funkcji f na X, tj. ciąg przykładów (próbek) -- zbioru treningowego (x_1, y_1), \ldots, (x_n, y_n), chcemy zgadnąć wartości f: X \rightarrow Y w innych punktach dziedziny, tj. w dowolnym x_0 \in X. Szukana f, dająca zgadywane y_0=f(x_0), wyznaczana jest przy określonych ograniczeniach, wynikających z przyjętego  kryterium aproksymacji f jest możliwie wiarygodnym uogólnieniem charakteryzującym dany problem, rodzajem modelu określonej cechy dziedziny. 

Kryterium aproksymacji może mieć różną postać, zwykle jedną z poniższych

  •  
\forall_{i=1,\dots,n} f(x_i)=y_i\ \ \text{(interpolacja)}  (3.1)
  •  
\forall_{i=1,\dots,n} |f(x_i)-y_i| < \epsilon (3.2)

gdzie \epsilon jest maksymalnym dopuszczalnym błędem w punkcie 

  •  
\min_f \sum_{i=1}^n |f(x_i)-y_i| (3.3)
  •  
\max_f \Pr(f(x_1),\ldots, f(x_n)) (3.4)

gdzie f rozumiana jest jako zmienna losowa, proces losowy lub pole losowe. 

W przypadku obrazów, obok dwuwymiarowych funkcji przybliżających rozkład wartości jasności danej grupy pikseli, stosowany jest też opis konturów obiektów za pomocą krzywych S konstruowanych w płaszczyźnie obrazów. Do najbardziej użytecznych klas krzywych aproksymujących należy zaliczyć parametryczne krzywe wielomianowe typu Beziera, Hermite'a czy też krzywe sklejane. W kryteriach aproksymacji, występuje euklidesowa metryka \|S - (x_i,y_i)\|

Znajdowanie optymalnych rozwiązań dla bardziej złożonych zagadnień aproksymacji, a takimi niewątpliwie jest większość przybliżeń realnych obiektów i cech obrazowych, nie jest zadaniem prostym. Wydaje się, że do dziś aktualne jest ogólne stwierdzenie P.J. Daviesa z 1965 roku, że jednym z najbardziej zaskakujących faktów teorii aproksymacji jest nieskuteczność najprostszych i najbardziej naturalnych rozwiązań. Nierzadko w użytecznych realiach ocieramy się o problemy NP-trudne.

Optymalizacja jest metodą  poszukiwania wśród wielu alternatyw rozwiązania najlepszego (optymalnego), ocenianego według wiarygodnego, liczbowego kryterium jakości. Przykładowo, są to problemy minimalizacji funkcji kosztu poszukiwań, minimalizacji funkcji błędu względem rozwiązania wzorcowego, maksymalizacja wygranej (w grach logicznych) itp. W złożonych problemach często nie wystarcza jedno kryterium -- mówimy wtedy o optymalizacji wielokryterialnej, np. odwieczny problem maksymalizacji zysków przy minimalizacji kosztów czy też maksymalizacji jakości kompresowanego stratnie obrazu przy minimalizacji średniej bitowej jego reprezentacji. Dobór metody przetwarzania obrazów źródłowych, kiedy chcemy jednocześnie zredukować szum, wyostrzyć krawędzie i zachować oryginalne cechy tekstury jest też dobrym przykładem takiego zagadnienia. 

Przez X oznaczmy dowolny, skończony zbiór  wszystkich możliwych rozwiązań problemu (tzw. przestrzeń stanów). Do oceny rozwiązań -- stanów wykorzystajmy rzeczywistą funkcję celu f:\ X\rightarrow R. Zadaniem jest znaleźć takie x_0 \in X według jednego z kryteriów

  • maksimum
x_0=\arg \max_{x \in X} \{f(x)\} (3.5)
  • minimum
x_0=\arg \min_{x \in X} \{f(x)\} (1.3)

Klasycznym przykładem zadań optymalizacji jest sortowanie, poszukiwanie wyjścia z labiryntu, poszukiwanie najkrótszej drogi dojścia do celu (np. problem komiwojażera), posunięcia giełdowe maksymalizujące zysk, zarządzanie pamięcią operacyjną czy dostępem do zasobów itp. 

Realne problemy optymalizacji mają zwykle olbrzymią przestrzeń stanów, niepozwalającą zastosować trywialnych metod typu brute force jako praktycznego rozwiązania. W takich przypadkach poszukiwane są skuteczne heurystyki, pozwalające przeglądać przestrzeń stanów w rozsądnych wymiarach czasowych. Jeśli problem da się opisać analitycznie, co nie jest częste w realnych zjawiskach, zadanie optymalizacji sprowadza się do policzenia odpowiedniego ekstremum zadanej funkcji celu (lub funkcjonału). Wykorzystuje się wtedy zwykle układ równań uzyskany poprzez przyrównanie składowych gradientu funkcji celu do zera. Można też poszukiwać lokalnych ekstremów kierując się kierunkiem gradientu. Stosowany jest też losowy wybór rozwiązań według określonego scenariusza, np. w algorytmach ewolucyjnych. 

Łatwo zauważyć, że zadanie optymalizacji może znaleźć zastosowanie w problemie aproksymacji, np. do wyszukania ze skończonego zbioru funkcji danej klasy rozwiązania dającego minimalny błąd przybliżenia danych według kryterium. Odwrotnie, aproksymację uproszczonych rozwiązań, jako pewnego rodzaju redukcję przestrzeni stanów można wykorzystać do rozwiązania problemu optymalizacji (np. w metodzie Newtona).
 

1.15. Komputer (nie)może być inteligentny

Ponieważ termin ''inteligencja'' trudno precyzyjnie zdefiniować, zmierzyć, jednoznacznie ocenić, Turing zaproponował test oceny subiektywnej z kryterium weryfikacji: nie sposób odróżnić komputera od człowieka na podstawie udzielanych odpowiedzi. Celem jest stwierdzenie, czy maszyna jest inteligentna. Osoba oceniająca zadaje pytania, na które odpowiadają w sposób anonimowy maszyna oraz człowiek. Jeśli maszyna zostanie uznana za człowieka, to można o niej powiedzieć, że jest inteligentna.

Toczy się spór o świadomość, tj. możliwość wytworzenia świadomych systemów sztucznej inteligencji. Wielu przedstawicieli nauki o procesach poznawczych (cognitive science), m.in. M. Minsky, widzi taką możliwość, zaś sceptycy (m.in. J.R. Searle, R. Penrose) twierdzą, że świadomość jest jedyną w swoim rodzaju właściwością ludzkiego mózgu, który nie przypomina w działaniu komputera.
 

1.16. Obliczeniowa mądrość

Pojęcie komputerowej (ew. obliczeniowej) mądrości, computational sapience (wisdom)obejmuje przede wszystkim:

  • szeroki i selektywny dostęp do informacji oraz wiedzy (niezastąpiona rola Internetu, efektywnych metod indeksowania zawartością, nowoczesnych technologii semantycznych, gridowych, chmur obliczeniowych, itp.);
  • dominującą role obrazowego przekazu informacji, w tym 
    • efektywne reprezentacje treści,
    • wiarygodna charakterystyka odbiorcy -- użytkownika,
    • automatyczne rozumienie obrazów lub komputerowe wspomaganie rozumienia obrazów,
  • maksymalne wykorzystanie ludzkich zdolności z wykorzystaniem konwencji komputerowego asystenta, dzięki m.in.
    • integracji dostępnych środków, zasobów oraz metod (m.in. komputerowego wspomagania),
    • inteligentnemu interfejsowi człowiek -- komputer.

1.17. Formalizacja wiedzy

Jak wspomniano, wiedza ekspertów staje się często źródłem sformalizowanych, logicznych reguł opisujących wzajemne relacje pomiędzy obiektami i ich cechami, niejako kształtuje przydatne w danym obszarze wiedzy metody wnioskowania, opisuje dane uczące czy weryfikuje rezultaty ''inteligentnych'' zachowań systemu komputerowego. Przyjrzyjmy się nieco bliżej zasadom i istniejącym możliwościom na styku ludzkiej wiedzy eksperckiej oraz komputerowych możliwości reprezentowania i opisu informacji, uzupełnionych olbrzymią mocą obliczeniową.

W użytecznych zastosowaniach komputerowej inteligencji coraz większą rolę odgrywa formalizacja wiedzy, czyli tworzenie maszynowej czy komputerowej reprezentacji wiedzy danej dziedziny (czyli wiedzy dziedzinowej), właściwej danemu zastosowaniu. Chodzi z grubsza o to, by wiedza i związane z nią umiejętności danej dziedziny wyrazić na sposób ''zrozumiały'' dla maszyny, by mogła stać się przedmiotem analiz, odwołań, wnioskowań, służących automatycznemu rozwiązywaniu zagadnień optymalizacji i aproksymacji w konkretnych realiach zastosowań.

Można to inaczej opisać jako tworzenie precyzyjnego modelu danego zakresu wiedzy, obejmującego możliwie kompletny jej zapis, z zachowaniem odpowiedniego poziomu abstrakcji hierarchii pojęć, zależności, reguł wnioskowania czy odniesień do realistycznej warstwy decyzyjnej, będącej skutkiem właściwej interpretacji wiedzy odniesionej do uwarunkowań danego przypadku. Służy temu m.in. coraz częściej stosowane narzędzie ontologii.

Filozoficzne pojęcie ontologii

Ontologia to teoria bytu, istoty, istnienia i jego sposobów, przedmiotu i jego własności, przyczynowości, czasu, przestrzeni, konieczności i możliwości. Chociaż termin ''ontologia'' pojawił się w literaturze filozoficznej dopiero w XVII wieku, to jej źródła sięgają IV w p.n.e, kiedy to Platon sformułował nową kategorię transcendencji, a Arystoteles zaproponował system uniwersalnych kategorii pod nazwą ''metafizyka'', służący klasyfikacji wszystkich istniejących bytów. Termin ''ontologia'' wywodzi się z greckich słów: ontos - byt i logos - słowo. Ontologię spopularyzowali w swoich pracach  J. Clauberg i Ch. Wolf (XVII),  gdzie oznaczał zamiennie z ''metafizyką'' arystotelesowską teorię bytu. Rozważania na temat ontologii kontynuowali tak sławni filozofowie, jak G. Leibniz, I. Kant czy B. Bolzano , definiując ją jako naukę o rodzajach i strukturach obiektów, ich właściwości, a także zdarzeń, procesów, relacji i dziedzin opisywanej rzeczywistości. Ontologia stawia pytania typu: co stanowi prazasadę i praprzyczynę rzeczywistości? - jak klasyfikować byty, - jakie klasy pojęć są niezbędne do opisu i wnioskowania na temat danego procesu? i inne.

Informatyczne pojęcie ontologii

Wykorzystanie ontologii w informatyce wymuszone zostało rozwojem tzw. technologii semantycznych i koniecznością coraz większej integracji, albo porozumienia na linii człowiek-komputer. Jako opis wybranego wycinka rzeczywistości stało się pojęciowym narzędziem służącym formalnym opisom praktycznej wiedzy i doświadczeń ekspertów, rozumianych przede wszystkim jako najbardziej wiarygodny wykładnik znaczeń i ocen, pozwalający formułować kryteria optymalizacji i szacować dopuszczalne błędy aproksymacji. Rozumienie ontologii w zupełnie nowym, teleinformatycznym kontekście wymagało oczywiście doprecyzowania podstawowych definicji oraz kształtowania zupełnie inaczej rozumianych modeli i metod. Ten proces rozpoczął się w na początku lat dziewięćdziesiątych. Jednak sam ''duch'' filozoficznej ontologii niewątpliwie przetrwał, w innym kształcie pozwala nam po nowemu opisywać stary świat, szczególnie w takich zastosowaniach jak medycyna.

Na początku, kiedy powstawały pierwsze ontologie, wśród przyczyn uzasadniających ich tworzenie wymieniano:

  • konieczność systematyzacji i objaśnienia struktury wiedzy w danej dziedzinie;
  • umożliwienie i ułatwienie współdzielenia struktury wiedzy i informacji  w danej dziedzinie, zarówno przez ludzi, jak i systemy komputerowe;
  • umożliwienie i ułatwienie ponownego użycia wiedzy (knowledge reuse) zarówno przez ludzi, jak i systemy komputerowe. 

Podstawowe definicje

Według Neches et al ontologia definiuje podstawową terminologię i relacje opisujące daną dziedzinę, jak również reguły określające jej rozszerzenia. Definicja ta oddaje intuicyjny sens konstruowania ontologii w celu formalizacji wiedzy dziedzinowej, nie podaje jednak żadnych wyróżników służących jej praktycznej realizacji. Według rozważań autorów, ontologię stanowi przede wszystkim słownik opisujący dziedzinę oraz zasady jego konstrukcji. Warto podkreślić, że ontologia obejmuje tutaj nie tylko terminologię \emph{explicite} zawartą w przyjętym modelu wiedzy, ale również to wszystko, co można z niej wydobyć poprzez wnioskowanie. 

Klasyczna, najczęściej wykorzystywana definicja ontologii została podana przez T. Grubera  w 1993 roku. Stwierdził on, że ontologia jest jawną specyfikacją warstwy pojęciowej. Zakładał, że warstwa pojęciowa (\emph{conceptualization}) to abstrakcyjny model zjawisk w ograniczonym wycinku rzeczywistości, uzyskany poprzez identyfikację istotnych pojęć (obiekty, zdarzenia, stany itp.) z nim związanych i relacje pomiędzy nimi. Słowo specyfikacja zaś oznacza, że definicje istotnych w danej dziedzinie pojęć i relacji muszą być precyzyjnie i jednoznacznie sformułowane, przy czym opis ten powinien w pierwszej kolejności uwzględniać ich znaczenie. Oznacza to, że ontologiczny model dziedziny określa strukturę wiedzy w danej dziedzinie, ograniczając możliwe interpretacje  zdefiniowanych tam pojęć i relacji. Budowa ontologii jest zawsze związana z konstrukcją słownika zawierającego zbiór formalnych definicji pojęć będących opisem modelowanej dziedziny.

Przykładowo, wynikiem bardzo pobieżnej ontologicznej analizy warstwy pojęciowej wybranego obszaru medycyny są takie pojęcia jak: choroba, symptom, diagnoza, rozpoznanie, terapia i relacje pomiędzy nimi, takie jak ''choroba wywołuje (określone) symptomy'', ''terapia leczy (tą) chorobę''. 

Przymiotnik formalna oznacza, że model musi być czytelny dla maszyny, specyfikacja to wymóg jednoznacznego sformułowania definicji pojęć i relacji, określenie wspólna odnosi się do faktu, że wiedza zawarta w ontologii powinna być akceptowana przez ogół użytkowników. 

Konkretnej, Gruber uściślił konceptualizację dziedziny jako $(C, I, R, F, A)$, gdzie: $C$ -- zbiór wszystkich pojęć opisujących dziedzinę, $I$ -- zbiór obiektów istniejących w dziedzinie, nazywanych też instancjami klas (pojęć), $R$ -- zbiór wszystkich relacji definiowanych na $C$, $F$ -- zbiór funkcji zdefiniowanych na $C$,  zwracających jako wynik działania jedno z pojęć należących do modelowanej dziedziny, $A$ --- zbiór aksjomatów nakładających ograniczenia na możliwe w modelu znaczenia pojęć, relacji i funkcji. 

Borst poszerza definicję Grubera w kierunku jeszcze bardziej użytecznym w zastosowaniach informatyki, określając ontologię jako formalną specyfikację wspólnej warstwy pojęciowej. Specyfikacja formalna znaczy tutaj - czytelna dla maszyny, wykluczająca więc raczej bezpośrednie użycie języka naturalnego. Z kolei wspólna warstwa pojęciowa to taka, która jest akceptowana przez ogół użytkowników, możliwie ustandaryzowana, stanowiąca consensus zespołów czy ośrodków, odgrywających dominującą rolę w kształtowaniu wiedzy danego obszaru.

Obok oczywistych zalet takiego rozumienia ontologii, pojawiły się także pewne wątpliwości. Obawy dotyczyły definiowania ontologii z wykorzystaniem pojęcia warstwy pojęciowej, który wywodzi się z epistemologii (inaczej teorii poznania) i dotyczy sposobu spostrzegania świata przez obserwatora, a więc subiektywnie. Modelując dziedzinę należy natomiast  dążyć do maksymalnego obiektywizmu. Wskazano także na problem wymogu współdzielenia wiedzy - czy model zbudowany na potrzeby tylko jednej aplikacji, a więc mogący wykorzystywać niekoniecznie powszechnie przyjętą wiedzę, nie ma prawa do nazywania się ontologią? 

Pojawiły się więc określania bardziej precyzyjnie i mniej kontrowersyjne, choć wydaje się -- mniej użyteczne w opisie złożonych abstrakcyjnie i nie do końca jednoznacznych realnych pojęć i relacji, które odwołują się do formalizmów logicznych. Według nich ontologia to:

  • teoria logiczna, która podaje jawną, częściową warstwę pojęciową; 
  • zbiór logicznych aksjomatów, zaprojektowanych w celu wyjaśnienia zamierzonego znaczenia słownika; 
  • hierarchiczna struktura terminów opisujących daną dziedzinę, która może być użyta do budowy bazy wiedzy ją opisującej. 

   Współczesna definicja ontologii podana przez Maedche w 2002 roku także nie korzysta z kontrowersyjnego pojęcia warstwy pojęciowej oddzielając strukturę samej ontologii od struktury opisującego ją leksykonu. Ontologię definiują tutaj dwa zbiory, zbiór $O$ określający strukturę ontologii, oraz zbiór $L$ zawierający strukturę opisującego ją leksykonu. Struktura ontologii definiująca pojęcia i występujące między nimi relacje ma postać $O=\{C, R, Hc, Rel, A\}$ gdzie kolejno: $C$ stanowi zbiór wszystkich pojęć zdefiniowanych w modelu, $R$ jest zbiorem nietaksonomicznych relacji (zwanych właściwościami, slotami lub rolami), definiowanych jako nazwane połączenie między pojęciami, $Hc$ stanowi zbiór taksonomicznych relacji pomiędzy pojęciami, $Rel$  to zdefiniowane nietaksonomiczne relacje pomiędzy pojęciami, a $A$ jest zbiorem aksjomatów.

Struktura leksykonu ma postać $L=\{Lc, Lr, F,G\}$ gdzie: $Lc$ to definicje leksykonu dla zbioru pojęć, $Lr$ oznacza  definicje leksykonu dla zbioru relacji, $F$ -- referencje dla pojęć, a $G$ to referencje dla relacji.

W definicji Maedche’a ontologię tworzą taksonomia pojęć i semantyczna interpretacja terminów użytych do ich opisu. Dlatego tłumaczenie terminów występujących w ontologii z jednego języka narodowego na drugi nie zmienia struktury pojęciowej samej ontologii.

Podsumowując, podstawowym powodem konstrukcji modeli ontologicznych są dziś zastosowania internetowe (sieciowe). Ontologii nie należy utożsamiać z katalogiem czy taksonomią (usystematyzowaniem) obiektów w danej dziedzinie. Ontologia dostarcza przesłanek pozwalających je budować. Ontologia związana jest z obiektem, a nie z jego subiektywnym odbiorem. W ontologii relacje (zależności) między obiektami nie są opisywane funkcyjnie. Istnieje wiele ontologii –- nie jest możliwe stworzenie jednej ogólnej ontologii.

Podsumowanie

Warto zwrócić uwagę przede wszystkim na rolę tworzenia dobrego, czyli wiarygodnego i upakowanego (reprezentowanego przez stosunkowo małą liczbę parametrów) modelu danych. Omawiane metody kompresji, indeksowania, a także analizy danych bazują na mniej lub bardziej abstrakcyjnym opisie zasadniczych cech treści, która stanowi najbardziej istotne dla odbiorcy przesłanie przekazu multimedialnego. Połączenie dobrej aproksymacji zasadniczej treści przekazu z doborem odpowiedniej formy zwartej reprezentacji i skutecznym opisem jej kluczowych właściwości stanowi o sukcesie nowych technologii.

Zasygnalizowane metody przetwarzania, segmentacji, ekstrakcji cech czy klasyfikacji dają bogaty arsenał w doskonaleniu przekazu multimedialnego. Ważne jest tutaj zarówno uzyskanie dużej wyrazistości w prezentacji dostarczanej informacji, jak też zautomatyzowanie metod rozumienia treści przekazu w celu selektywnego doboru danych, stanowiących informacje dla konkretnego odbiorcy. 

Uzupełnieniem tych metod w coraz większym stopniu stają się narzędzia komputerowej inteligencji. Zagadnienie inteligencji, działanie ludzkiego mózgu, przejawy komputerowej ''świadomości'', formy optymalizacyjne sztucznej inteligencji, coraz częściej znajdują odzwierciedlenie w użytecznych formach systemów ekspertowych, ewolucyjnych algorytmów optymalizacji czy tez konstrukcjach formalnego opisu wiedzy dziedzinowej. Odwoływanie się do różnych form wnioskowania, wyszukiwania rozwiązań czy dopasowania przybliżeń pełni przede wszystkim rolę wspierającą ambitne ludzkie zadania, dotyczące interpretacji danych, odkrywania treści i jej oceny, czy wreszcie podejmowania ważnych decyzji (np. w diagnostyce medycznej). Dzięki temu multimedia mogą w coraz większym stopniu służyć człowiekowi.