JPEG

JPEG to nazwa systemu kompresji statycznych obrazów rastrowych, przeznaczonego głównie do przetwarzania obrazów naturalnych (zdjęć satelitarnych, pejzaży, portretów itp.), a więc takich, które nie mają zbyt wielu ostrych krawędzi i małych detali. Motywacją do powstania tego systemu była standaryzacja algorytmów kompresji obrazów monochromatycznych i kolorowych.
Prace nad standardem rozpoczęły się w roku 1986 z inicjatywy organizacji ISO oraz CCITT i były prowadzone przez zespół ekspertów nazywany Joint Photographic Experts Group. Standard został opublikowany po 5 latach, w 1991 roku.

    Definiuje on cztery tryby kompresji:
  1. sekwencyjny, oparty na DCT (kompresja stratna)
  2. progresywny, oparty na DCT (kompresja stratna)
  3. sekwencyjny, bezstratny
  4. hierarchiczny

Dwie pierwsze metody umożliwiają uzyskanie bardzo dużej kompresji obrazu, rzędu 20:1 kosztem pewnej utraty szczegółów, na ogół niezauważalnej.

Metoda 3., bezstratna, kompresuje ok. 2:1 i nie jest zbyt powszechnie stosowana.

Tryb hierarchiczny kompresuje coraz mniejsze, przeskalowane obrazy (można to sobie wyobrazić jako piramidę obrazów: na samym dole znajduje się największy obraz, wyżej 2 razy mniejszy, jeszcze wyżej 4 razy mniejszy itd.). Został pomyślany głównie po to, by móc szybko pobierać z obrazów b. wysokiej rozdzielczości mniejsze obrazy; tryb ten nie definiuje która z metod kompresji ma zostać użyta: może być stratna, albo bezstratna.


Standard opisujący sposób zapisu plików graficznych skompresowanych metodą JPEG nazywa się JFIF (JPEG File Interchange Format). Pliki JFIF - zwyczajowo nazywane JPEG (wym. "dżej-peg") i posiadające rozszerzenie "jpeg" albo "jpg" - obok formatów GIF i PNG, są najczęściej stosowanym formatem grafiki na stronach WWW.

Algorytm stratny JPEG

Algorytm kompresji używany przez JPEG jest algorytmem stratnym, tzn. w czasie jego wykonywania tracona jest bezpowrotnie część pierwotnej informacji.

Użyta transformata powoduje efekty blokowe w przypadku mocno skompresowanych obrazków.

Wielką innowacją algorytmu JPEG była możliwość kontroli stopnia kompresji w jej trakcie, co umożliwia dobranie jego stopnia do danego obrazka, tak aby uzyskać jak najmniejszy plik, ale o zadowalającej jakości.

Przykłady

spirala.png Obrazek podstawowy, przed skompresowaniem zajmuje 196662B.
spirala-compr-25.png Obrazek potraktowany silną kompresją. Wg programu kompresującego po DCT dane zostają upakowane do poziomu ok. 25%. Rozmiar po kompresji: 4070B. Efekt pocięcia raczej niewidoczny, ale widać przekłamania w kolorach.
spirala-compr-5.png Obrazek potraktowany bardzo silną kompresją. Wg programu kompresującego po DCT dane zostają upakowane do poziomu ok.5% Rozmiar po kompresji: 1741B. Widoczne silne "pocięcie" obrazka na kwadraty oraz dużo przekłamań w kolorach.

Jak algorytmy okłamują nasze oko

spirala-srod-un.png spirala-srod-un-f.png Po lewej stronie mamy dwukrotnie powiększony środek spirali. Z prawej strony nałożony na niego efekt "wykrywanie krawędzi". Filtr wykrywa krawędzie tylko na przejściach między kolorami.
spirala-srod-5.png spirala-srod-5-f.png Po lewej stronie mamy dwukrotnie powiększony środek spirali, która wcześniej została silnie skompresowana. Z prawej strony nałożony na niego efekt "wykrywanie krawędzi". Filtr zaczyna się gubić, wykrywa krawędzie wszędzie tam, gdzie zachodzi podział na kwadraty, działanie filtra ujawnia także zwiększoną liczbę przekłamań w kolorach.

Słabe strony algorytmu JPEG

napis-z-n.png
napis-p-n.png
Nieskompresowany napis nie ujawni żadnych błędów. Rozmiar 196662B, po kompresji, ale bez kwantyfikacji danych (czyli przy ustawieniu, że dane mają być przycięte do 100% dokładności, czyli nie mają być przycięte) zajmuje 5094B.
napis-z-75.png
napis-p-75.png
Na pierwszy rzut oka nie widać przekłamań w kolorach itp. Po powiększeniu ujawniają się "przebarwienia" wynikające z usunięcia pewnej części danych (kompresja 75%, usunięto ok.25%). Rozmiar: 3116B.
napis-z-25.png
napis-p-25.png
Zauważalne bez powiększania przebarwienia, po powiększeniu widać ich więcej. Wychodzą na jaw niedostatki jeśli chodzi o uproszczenia. (kompresja 25%, usunięto ok.75% danych) Rozmiar: 2040B.
napis-z-5.png
napis-p-5.png
Bez powiększania widać przebarwienia i rozmazanie tekstu, jednakże widać także pewną cechę naszego oka, a mianowicie pewne uproszczenia itp. które pozwalają nam odczytać, co tu jest napisane. (Kompresja 5%, usunięto ok.95%) Rozmiar: 1253B.