Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 1.
Format JPEG
Cechy formatu JPEG ● Schemat blokowy kompresora ● Transformacja koloru ● Obniżenie rozdzielczości chrominancji ● Podział na bloki ● Transformata
cosinusowa ● Kwantyzacja współczynników ● Zbieranie współczynników z macierzy ● Kompresja współczynników ● JPEG progresywny
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 2.
Cechy formatu JPEG
1. JPEG jest formatem przeznaczonym do zapisu obrazów nieruchomych z zastosowaniem kompresji stratnej.
2. JPEG obsługuje obrazy w odcieniach szarości (8 bitów na piksel) i RGB (24 bity na piksel).3. JPEG wykorzystuje dwie cechy ludzkiego wzroku: mniejszą rozdzielczość widzenia kolorów niż
jasności oraz małą wrażliwość na amplitudę szybkich zmian jasności.4. JPEG posiada dość rozbudowane środki informowania o absolutnej przestrzeni barw obrazu
(możliwość umieszczenia profilu koloru w pliku).5. JPEG obsługuje wyświetlanie progresywne (zwiększanie rozdzielczości obrazka w miarę
napływania nowych danych).6. JPEG jest przystosowany do transmisji w sieci – może być dekodowany przy sekwencyjnym
dostępie do danych.
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 3.
Budowa kodera JPEG
Transformacjakoloru
(RGB na YCbCr)
Podział na blokio rozmiarach8 x 8 pikseli
Transformatacosinusowa
(DCT II)
Liniowakwantyzacja
współczynników
Pominięciezer
(ByteRun)
Zebranie danychzygzakiem
Kompresjabezstratna(Huffman)
Obrazek RGB
Plik JPEG
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 4.
Transformacja koloru RGB do YCbCr i obniżenie rozdzielczości.
Transformacja ta rozkłada obraz w kolorach RGB na składową luminancyjną (Y) i dwie składowe chrominancyjne (składowa antyczerwona Cr i antyniebieska Cb), podobnie jak to się dzieje w telewizji kolorowej. Składowe chrominancyjne mogą zostać poddane próbkowaniu ze zmniejszoną rozdzielczością. W zależności od wymaganej jakości, składowe chrominancyjne mogą zostać:1.Pozostawione bez zmian, tzw. format 4:4:4.2.Rozdzielczość pozioma jest zmniejszana o połowę (format 4:2:2).3.Rozdzielczość pozioma i pionowa jest zmniejszana o połowę (format 4:2:0).
Y = 0,299·R + 0,587·G + 0,114·BCr = 128 – 0,168736·R – 0,331264·G + 0,5·BCb = 128 + 0,5·R – 0,418688·G – 0,081312·B
Y Cb i Cr 4:2:0Cb i Cr 4:2:2Cb i Cr 4:4:4
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 5.
Podział obrazu na bloki.
Każda ze składowych jest oddzielnie dzielona na bloki o rozmiarach 8 x 8 pikseli. Jeżeli składowe Cr i Cb były przeskalowane, bloki tych składowych obejmują obszar 16 x 8 lub 16 x 16 oryginalnego obrazka.
Pewnym problemem jest uzupełnienie bloków leżących na prawej i dolnej krawędzi obrazu do całkowitej wielokrotności 8 (o ile rozmiary obrazu nie są taką wielokrotnością). Najgorszym rozwiązaniem jest uzupełnienie zerami, nieco lepszym – kolorem ostatniego piksela. Najlepsze jest dodanie takich pikseli, aby odwrotna transformata cosinusowa odtworzyła piksele należące do obrazka jak najbardziej zbliżone wartościami do oryginalnych. W praktyce wykonuje się to najczęściej dla trzech pierwszych współczynników transformaty.
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 6.
O transformatach słów kilka
Generalnie rzecz biorąc transformata, to wyrażenie jakiejś funkcji jako (skończona lub nie) suma pewnego zestawu funkcji zwanego bazą transformaty. Np. baza transformaty Fouriera to zestaw sinusów i cosinusów o częstotliwości podstawowej i wielokrotnych. Współczynniki transformaty to po prostu zestaw liczb przez jakie mnożymy kolejne funkcje z bazy, aby uzyskać analizowaną funkcję pierwotną. W ogólnym przypadku współczynniki uzyskujemy licząc korelacje między kolejnymi funkcjami z bazy, a funkcją badaną w określonym przedziale.
W przypadku transformat dyskretnych, funkcja badana i funkcje bazy są zbiorami próbek, a korelacja jest iloczynem skalarnym funkcji bazowej i badanej.
Żeby transformata miała sens, jej baza musi być ortogonalna. To znaczy, że korelacja dwóch dowolnych różnych funkcji z bazy jest równa zero. Skąd to wymaganie? Jeżeli nie jest spełnione, to znaczy, że któraś z funkcji bazy może być wyrażona przez kombinację liniową innych funkcji bazy. Wskutek tego transformata nie jest jednoznaczna – badaną funkcję można poskładać z bazowych na kilka różnych sposobów. Nieortogonalność oznacza też, że albo niektóre z funkcji bazowych są zbędne, albo też transformata nie zadziała dla dowolnej funkcji badanej.
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 7.
Transformata cosinusowa kontra Fourier
Dyskretna transformata Fouriera zakłada okresowość badanej funkcji:
Przez to funkcja z reguły jest nieciągła na granicach, co zwiększa wartości składowych o wyższych częstotliwoś-ciach. Oprócz tego każda składowa sinusoidalna ma inną fazę, dlatego transformata Fouriera jest zespolona.
Transformata cosinusowa natomiast zakłada symetrię funkcji wokół osi Y (parzystość funkcji). Funkcja parzysta może być wyrażona przez sumę samych cosinusów, nieprzesuniętych w fazie. Dlatego transformata cosinusowa nie jest zespolona. Oprócz tego po lewej stronie badanego przedziału nie ma nieciągłości, więc amplitudy cosinusów o wyższych częstotliwościach są małe (tzw. cecha skupiania energii). Transformata cosinusowa ma w sumie 8 wariantów wynikających z następujących możliwości:● po prawej może nastąpić odbicie tylko po osi Y, albo po obu osiach.● symetria po lewej może być ustawiona na pierwszej próbce sygnału, albo w połowie między
pierwszą próbką a jej lustrzanym odbiciem.● symetria po prawej też może być ustawiona na próbce lub między próbkami.
JPEG używa transformaty typu II: odbicie po prawej tylko w osi Y, symetria po obu stronach między próbkami.
Podobnie jak DFT posiada przyspieszony algorytm FFT, tak DCT posiada również (bazowany na FFT) algorytm przyspieszonego przeprowadzania transformaty.
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 8.
Kwantyzacja współczynników i zbieranie zygzakiem.
Po przeprowadzeniu dwuwymiarowej DTC na kwadracie 8-bitowych pikseli o rozmiarach 8 x 8, otrzymujemy macierz 16-bitowych współczynników, również o rozmiarach 8 x 8, a więc 2 razy tyle danych. Gdzie kompresja? Otóż współczynniki poddawane są kwantyzacji liniowej (podzieleniu przez pewną liczbę i odrzuceniu części ułamkowej). Następnie współczynniki zbierane są w kolejności zygzakowatej (żółte strzałki), przez co elementy o największych wartościach znajdują się na HHHHHHHH
0wrażliwość
wzroku,wartości
współczynników
siła kwantyzacji
00
00
00
00
0 00
000
początku szeregu, natomiast na końcu z reguły mamy sporą ilość zer. Zastępowane są one symbolem „zera do końca”. Tak powstały stru-mień danych podawany jest do kodera Huffmana (z predefiniowanym lub dyna-micznym słownikiem).
mgr inż. Grzegorz Kraszewski – SYSTEMY MULTIMEDIALNE – wykład 6, strona 9.
JPEG progresywny
Progresywne wyświetlanie obrazów JPEG zostało zrealizowane poprzez zmianę kolejności przesyłania skwantowanych współczynników transformaty cosinusowej. W normalnym obrazku przesyłane są zebrane zygzakiem współczynniki dla kolejnych kwadratów 8 × 8 (kwadraty idą kolejno liniami od góry i od lewej do prawej w linii). W obrazku progresywnym najpierw przesyłane są elementy [0,0] transformaty dla wszystkich kwadratów, następnie elementy [1,0], następnie [0,1] i dalej zgodnie z zygzakiem. Poruszamy się więc zygzakiem jednocześnie po wszystkich kwadratach obrazka.
Progresywność JPEG ma kilka przewag nad progresywnością PNG:1. Rozmiar pliku nie zwiększa się, często się nawet zmniejsza (progresywny PNG z reguły jest nieco
większy od zwykłego), bo koder Hufmana pracuje na symbolach o zbliżonych wartościach.2. Przybliżony obrazek lepiej wygląda. Dlaczego? Przy PNG przybliżony prostokąt ma kolor lewego
górnego piksela. Przy JPEG pierwsze przybliżenie używa współczynników [0,0] transformat, a więc wartości średnie koloru. Tak więc przybliżenia w PNG wyglądają jakbyśmy przeskalowali obrazek w dół metodą usuwania linii i kolumn, a następnie powiększyli. Przy JPEG efekt jest taki jakbyśmy wykonali resampling i powiększyli. Daje to znacznie przyjemniejszy dla oka efekt.
3. Można uzyskać znacznie więcej poziomów pośrednich (chociaż 7 to i tak najczęściej za dużo...).