JPEG
Rozszerzenia pliku .jpg, .jpeg, .jpe
.jif, .jfif, .jfi (rozszerzenie .jfi nie jest bezpośrednio obsługiwane przez Windows XP) (kontenery)
Typ MIME image/jpeg
Producent Joint Photographic Experts Group
Typ stratna kompresja grafiki rastrowej

JPEG (wym. dżej-peg lub jot-peg) – format stratnej kompresji statycznych obrazów rastrowych, przeznaczony głównie do przetwarzania obrazów naturalnych ( pejzaży, portretów itp.), charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali.

Motywacją do powstania tego standardu było ujednolicenie algorytmów kompresji obrazów monochromatycznych i kolorowych. Format plików JPEG/JFIF obok formatów GIF i PNG jest najczęściej stosowanym formatem grafiki na stronach WWW. Typ MIME zarejestrowany dla tego formatu nosi nazwę image/jpeg i został zdefiniowany w RFC 1341.

Spis treści

edytuj Historia standardu JPEG

Prace nad standardem rozpoczęły się w kwietniu 1983 roku w organizacji ISO. W 1986 roku z inicjatywy ISO oraz CCITT powstał zespół ekspertów nazwany Joint Photographic Experts Group (ang. Połączona Grupa Ekspertów Fotograficznych), który zjednoczył wysiłki różnych niezależnych grup.

Standard o nazwie ISO/IEC IS 10918-1 | ITU-T Recommendation T.81 został opublikowany w dwóch częściach w 1991 roku i definiował podstawowy (ang. baseline), sekwencyjny tryb kompresji stratnej, oparty na dyskretnej transformacie kosinusowej (DCT) oraz jego różne rozszerzenia:

  • Tryb progresywny kompresji, również oparty na DCT, przewidziany do wyÅ›wietlania obrazów w trakcie przesyÅ‚ania danych. Efekt pÅ‚ynnie wyostrzajÄ…cego siÄ™ obrazu jest szczególnie dobrze widoczny przy użyciu szybkiego dekompresora i wolnej transmisji danych. Tryb ten zyskaÅ‚ rozpowszechnienie wraz z rozwojem Internetu.
  • Tryb hierarchiczny, pozwalajÄ…cy na zapis w jednym pliku tego samego obrazu jako sekwencji kadrów o różnych rozdzielczoÅ›ciach. Kolejne kadry sÄ… kodowane jako różnice wzglÄ™dem kadrów poprzednich, o niższej rozdzielczoÅ›ci, a nie jako oddzielne obrazy, co zmniejsza rozmiar pliku. Tryb ten nie definiuje, która z metod kompresji ma zostać użyta. Tryb hierarchiczny umożliwia szybki podglÄ…d obrazów bez czasochÅ‚onnej dekompresji obrazów o wysokiej rozdzielczoÅ›ci, co ma zastosowanie np. w fotografii cyfrowej.

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

Opublikowany standard JPEG nie opisywał dokładnych implementacji algorytmów kompresji, W rezultacie powstało wiele rozwiązań różniących się nawet w takich szczegółach, jak skala jakości obrazu. Równocześnie z implementacjami komercyjnymi, częściowo opatentowanymi, zaczęły powstawać rozwiązania rozprowadzane na innych licencjach. Szczególnie wyróżniła się praca zespołu znanego jako Independent JPEG Group (IJG), zakończona publikacją bibliotek kompresji i dekompresji JPEG jako wolnego oprogramowania na licencji zbliżonej do licencji BSD.

Standard JPEG nie określał też dokładnego formatu plików graficznych, zdefiniowano tylko podstawy znane pod nazwą JPEG Interchange Format. W rezultacie największą popularność uzyskał wprowadzony przez firmę C-cube Microsystems format JFIF (ang. JPEG File Interchange Format), stanowiący rozszerzenie wobec standardu i posługujący się rozszerzeniem "jpeg" albo "jpg", dlatego często błędnie identyfikowany ze standardem JPEG. Inny popularny format pliku wykorzystujący standard JPEG to TIFF.

W 1993 roku opracowano rozszerzenie standardu JPEG dla bezstratnej kompresji, używające zupełnie innej metody niż istniejące metody stratne. Rozszerzenie to nie jest obsługiwane przez biblioteki IJG i nigdy się szerzej nie przyjęło.

W 1995 pod nazwą ISO/IEC IS 10918-3 | ITU-T Recommendation T.84 opublikowano część trzecią standardu, zawierającą kolejne rozszerzenia, które miały poprawić jakość obrazu przy tym samym stopniu kompresji. Są to m.in.:

  • zmienna kwantyzacja (ang. variable quantization) uwzglÄ™dnia różne poziomy szczegółowoÅ›ci w różnych częściach obrazu;
  • wybiórcza poprawa jakoÅ›ci (ang. selective refinement) umożliwia kontynuacjÄ™ progresywnej dekompresji lub podjÄ™cie dekompresji z kadru o wyższej rozdzielczoÅ›ci tylko dla fragmentów obrazu zawierajÄ…cych najwiÄ™cej szczegółów;
  • podziaÅ‚ na kafelki (ang. tiling), umożliwiajÄ…cy skÅ‚adanie obrazu z kawaÅ‚ków o różnych rozmiarach, rozdzielczoÅ›ciach, współczynnikach kompresji czy nawet paletach barw.

Poza tym zdefiniowano standardowy format pliku o nazwie SPIFF (ang. Still Picture Interchange File Format), który jako kompatybilny wstecznie miał zastąpić format JFIF. Darmowe biblioteki IJG nie obsługują rozszerzeń zawartych w tej części standardu.

Krytyka braku w standardzie dobrych metod bezstratnej kompresji, które nadawałyby się do zapisu obrazu o najwyższej jakości czy kompresji różnic między kadrami w trybie hierarchicznym, przyczyniła się do rozpoczęcia prac nad kolejnym rozszerzeniem standardu. Komitet JPEG rozpatrzył różne algorytmy i jako podstawę kolejnego rozszerzenia standardu wybrał sekwencyjny algorytm LOCO-I (ang. Low Complexity, Context-Based, Lossless Image Compression Algorithm), opracowany w HP Labs w 1996. Standard został opublikowany w 1999 roku w dokumencie ISO/IEC IS 14495-1 | ITU-T T.87, a metoda kompresji jest znana pod nazwą JPEG-LS. Metoda ta daje kompresję rzędu 2:1 i nie jest zbyt powszechnie stosowana. Standard opisuje również (mało) stratny tryb metody JPEG-LS.

W tym samym czasie trwały też prace nad modyfikacją metod stratnych, które miały wyeliminować wady stosowanego dotychczas algorytmu DCT. Na następcę wybrano algorytm dyskretnej transformaty falkowej, co dało możliwość połączenia kompresji stratnej i bezstratnej oraz zastosowania wcześniej zdefiniowanych rozszerzeń w jednej metodzie. Tak zdefiniowany standard otrzymał nazwę JPEG 2000 i został ogłoszony w 2000 roku w dokumencie ISO/IEC 15444-1:2000.

edytuj Algorytm stratny JPEG

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

Algorytm przebiega następująco: (część danych zaczerpnięto z hasła kompresja stratna)

  • obraz jest konwertowany z kanałów czerwony-zielony-niebieski (RGB) na jasność (luminancjÄ™) i 2 kanaÅ‚y barwy (chrominancje). Ludzie znacznie dokÅ‚adniej postrzegajÄ… drobne różnice jasnoÅ›ci od drobnych różnic barwy, a wiÄ™c użyteczne jest tutaj użycie różnych parametrów kompresji. Krok nie jest obowiÄ…zkowy (opcjonalnie można go pominąć).
  • wstÄ™pnie odrzucana jest część pikseli kanałów barwy, ponieważ ludzkie oko ma znacznie niższÄ… rozdzielczość barwy niż rozdzielczość jasnoÅ›ci. Można nie redukować wcale, redukować 2 do 1 lub 4 do 1.
  • kanaÅ‚y sÄ… dzielone na bloki 8 Ã— 8 pikseli. W przypadku kanałów kolorów, jest to 8 Ã— 8 danych po redukcji rozdzielczoÅ›ci, a wiÄ™c zwykle 16 Ã— 16 pikseli obrazu poczÄ…tkowego.
  • na blokach wykonywana jest dyskretna transformata kosinusowa (DCT). Zamiast wartoÅ›ci pikseli mamy teraz Å›redniÄ… wartość wewnÄ…trz bloku oraz czÄ™stotliwoÅ›ci zmian wewnÄ…trz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. Transformata DCT jest odwracalna, wiÄ™c na razie nie tracimy żadnych danych.
  • ZastÄ…pienie Å›rednich wartoÅ›ci bloków przez różnice wobec wartoÅ›ci poprzedniej. Poprawia to w pewnym stopniu współczynnik kompresji.
  • Kwantyzacja, czyli zastÄ…pienie danych zmiennoprzecinkowych przez liczby caÅ‚kowite. To wÅ‚aÅ›nie tutaj wystÄ™pujÄ… straty danych. Zależnie od parametrów kompresora, odrzuca siÄ™ mniej lub wiÄ™cej danych. Zasadniczo wiÄ™ksza dokÅ‚adność jest stosowana do danych dotyczÄ…cych niskich czÄ™stotliwoÅ›ci niż wysokich.
  • współczynniki DCT sÄ… uporzÄ…dkowywane zygzakowato, aby zera leżaÅ‚y obok siebie.
  • współczynniki niezerowe sÄ… kompresowane algorytmem Huffmana. SÄ… specjalne kody dla ciÄ…gów zer.

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.

edytuj Przykłady

Obraz Jakość Rozmiar (bajty) Współczynnik kompresji Komentarz
JPEG example JPG RIP 100.jpg PeÅ‚na jakość (Q = 100) 83,261 2,6:1 Niezauważalnie maÅ‚e artefakty
JPEG example JPG RIP 050.jpg PrzeciÄ™tna jakość (Q = 50) 15,138 15:1 Pierwsze oznaki artefaktów maÅ‚ej skali na granicach obiektów
JPEG example JPG RIP 025.jpg Åšrednia jakość (Q = 25) 9,553 23:1 Silniejsze artefakty; strata informacji z dużej rozdzielczoÅ›ci
JPEG example JPG RIP 010.jpg Niska jakość (Q = 10) 4,787 46:1 Duże straty rozciÄ…gÅ‚oÅ›ci tonalnej; artefakty na krawÄ™dziach obiektów, "pixeloza"
JPEG example JPG RIP 001.jpg Najniższa jakość (Q = 1) 1,523 144:1 Bardzo duża strata kolorów i ksztaÅ‚tów; niektóry obiekty niemalże nierozpoznawalne

edytuj Zobacz też

edytuj Linki zewnętrzne

Rowery | Rowery