|
W standardzie MPEG-2 stosowana jest stratna metoda kompresji wizji,
tzn. sygnał po dekompresji różni się od pierwotnego ale różnica
jest niedostrzegalna okiem ludzkim (przy prawidłowo wybranych parametrach).
Powtórna kompresja zdekompresowanego sygnału powoduje jednakże
powstanie zniekształceń obrazu. Z tego powodu standard MPEG-2 jest
przeznaczony przede wszystkim do wykorzystania do transmisji programów
telewizyjnych: możliwości zastosowania w technice studyjnej (jak
zresztą wszystkich innych metod stratnych) są ograniczone. Metoda
kompresji stosowana w standardzie MPEG-2 wykorzystuje:
- korelację przestrzenną (wewnątrzobrazową) - w większości obrazów
występują jednolite lub nieznacznie tylko różniące się fragmenty,
dzięki zastosowaniu dyskretnej transformaty kosinusowej DCT obszary
takie mogą być efektywnie zakodowane;
- korelację czasową - kolejne obrazy w sekwencji składającej się
na obraz telewizyjny z reguły niewiele od siebie się różnią, na
podstawie bieżącego obrazu można z dobrym przybliżeniem wyznaczyć
następny obraz w sekwencji jeśli zostaną wykryte przesuwające się
obiekty i prawidłowo zostanie opisany ich ruch, metoda ta nazywana
jest także metodą kompensacji ruchu;
- właściwości oka ludzkiego - oko ludzkie-nie jest idealnym przetwornikiem,
nie jest w stanie dostrzec wszystkich detali w transmitowanych
obrazach, a więc z obrazów tych można usunąć część informacji nie
powodując przy tym pogorszenia subiektywnej oceny jakości obrazu.
Właściwości oka ludzkiego wykorzystywano także w analogowych standardach
telewizyjnych - mniejsza rozdzielczość oka dla obrazów kolorowych
niż monochromatycznych pozwala na ponad dwukrotne ograniczenie
pasma sygnału chrominancji w stosunku do pasma sygnału luminancji;
- właściwości statystyczne sygnału - w transmitowanym sygnale pewne
symbole pojawiają się częściej, a inne rzadziej, zastosowanie do
ich kodowania słów o różnej długości krótszych słów dla symboli
częściej się pojawiających, dłuższych dla pozostałych pozwala na
zmniejszenie przepływności binarnej sygnału.

Rys. 5.12. Przykładowa struktura grupy obrazów w MPEG-2 [7]
W standardzie MPEG-2 cała sekwencja podzielona jest na grupy obrazów
- rys. 5.12, każda grupa składa się z trzech typów obrazów:
- obrazów typu I (Intra Frame), przy kompresji których wykorzystywana
jest korelacja przestrzenna;
- obrazów typu P (Predicted Frame) komprymowanych przy użyciu jednokierunkowej
kompensacji ruchu;
- obrazów typu B (Bidirectional Predicted Frame)komprymowanych
przy użyciu dwukierunkowej kompensacji ruchu.
Liczba obrazów poszczególnych typów jak i długość całej grupy
obrazów nie jest określona w standardzie i może być różna w zależności
od wymagań stawianych danemu systemowi transmisji. Struktura grupy
obrazów nie musi być stała w czasie całej transmisji i może się
zmieniać w zależności od aktualnej treści przekazywanego programu.

Rys. 5.13. Transformata kosinusowa bloku próbek w przypadku obrazu
pasów pionowych.[7]
Obrazy typu I kodowane są w sposób następujący: cały obraz jest
dzielony na bloki o wymiarach 8x8 pikseli (sygnał luminancji niezależnie
od sygnału chrominancji), a następnie dla każdego bloku (niezależnie
od pozostałych bloków) wyznaczana jest jego transformata kosinusowa
- rys. 5.13. Transformata kosinusowa jest przekształceniem odwracalnym
i z jej współczynników można odtworzyć pierwotny blok. Współczynniki
transformaty kosinusowej zawierają informację o tym jak szybko
zmieniają się wartości próbek w przetwarzanym bloku. W większości
obrazów występują obszary stałe, wartości próbek bloków należących
do takich obszarów niewiele różnią się od siebie. Natomiast współczynniki
transformaty kosinusowej mają znacznie różniące się wartości -
tylko współczynnik odpowiadający składowej stałej i sąsiednie współczynniki
odpowiadające niskim częstotliwościom mają duże wartości, pozostałe
odpowiadające wyższym częstotliwościom są równe lub bliskie zeru.
Z badań nad właściwościami wzroku ludzkiego wiadomo, że oko jest
znacznie bardziej wrażliwe na składowe niskoczęstotliwościowe obrazu
niż na składowe wysokoczęstotliwościowe. Jeśli więc będziemy kwantować
współczynniki transformaty kosinusowej to współczynniki niskoczęstotliwościowe
powinny być kwantowane dokładniej, z dużą liczbą bitów, a współczynniki
wysokoczęstotliwościowe mniej dokładnie. W wyniku takiej kwantyzacji
większość współczynników wysokoczęstotliwościowych, które były
bliskie zeru, przyjmie zerowe wartości. Na etapie kwantyzacji następuje
nieodwracalna utrata części informacji o obrazie, ze skwantowanych
współczynników zostaną odtworzone próbki różniące się od pierwotnych.
Tab. 5.1. Wybieranie zygzakowe współczynników transformaty kosinusowej
[7]
Jeśli jednak poszczególne współczynniki będą wystarczająco dokładnie
skwantowane (zostanie im przypisana dostatecznie duża liczba bitów),
to różnice pomiędzy pierwotnym, a odtworzonym blokiem obrazu będą
niedostrzegalne przez człowieka. Kolejnym etapem jest wybieranie "zygzakowe" współczynników
transformaty kosinusowej - tab. 5.1. Taki sposób wybierania powoduje
powstanie ciągów liczb, w których znajdują się długie sekwencje
kolejno po sobie następujących zer. Sekwencje te zapisywane są
za pomocą kodu RLC (Run Length Coding), tzn. w postaci symboli <długość
sekwencji, wartość>. Niezerowe współczynniki i symbole kodu
RLC są następnie zapisywane w kodzie o zmiennej długości słów (VLC
- Variable Length Coding), w którym za pomocą krótkich słów koduje
się częściej pojawiające się symbole, a za pomocą dłuższych słów
pozostałe symbole. Jak łatwo przewidzieć strumień danych po kompresji
nie będzie stały i będzie się zmieniał w zależności od zawartości
aktualnie przetwarzanego bloku. Ponieważ jednak w większości systemów
transmisyjnych szybkość bitowa musi być stała, na wyjściu kodera
- rys. 5.14 - znajduje się bufor, a cały koder objęty jest pętlą
sprzężenia zwrotnego. Jeśli bufor zaczyna się przepełniać to wysyłany
jest odpowiedni sygnał do bloku kwantyzacji, który powoduje, że
współczynniki transformaty kodowane są mniej dokładnie. W odwrotnym
przypadku, gdy w buforze zaczyna brakować danych do wysłania zwiększana
jest dokładność kwantyzacji współczynników. Stałe kontrolowanie
stanu zapełnienia bufora pozwala na utrzymanie stałej szybkości
bitowej strumienia danych na wyjściu kodera.

Rys. 5.14. Koder obrazów typu I [7]
Przy kodowaniu obrazów typu P korzysta się z podobieństwa obrazów
w sekwencji. Dlatego też koduje się nie poszczególne obrazy ale
różnice pomiędzy kolejnymi obrazami. Dwa kolejne obrazy są odejmowane
od siebie i ich różnicę koduje się tak jak omówione wcześniej obrazy
typu I, wykorzystując transformatę kosinusową i kwantyzację jej
współczynników. Ponieważ jest to kompresja stratna więc transmitowana
informacja różni się od wyniku odejmowania kolejnych obrazów. Ta
różnica mogłaby spowodować rozbieżności pomiędzy procesami kodowania
i dekodowania obrazów. Żeby tego uniknąć w koderze odtwarza się
poprzez odwrotną transformatę kosinusową i odwrotną kwantyzację
dokładnie taki sam obraz jaki powstanie w dekoderze - rys. 5.15
- obraz ten nazywany jest obrazem odniesienia. Kodowaniu poddawana
jest więc różnica pomiędzy bieżącym obrazem a obrazem odniesienia.
Przedstawiony niżej schemat kodowania jest skuteczny, jeśli kolejne
obrazy w sekwencji niewiele różnią się od siebie, a więc gdy transmitowana
scena jest prawie statyczna. Jeśli jednak występują w niej ruchome
elementy, to metoda kompresji oparta na kodowaniu różnic, pomiędzy
tymi obrazami przestaje być efektywna. Aby zwiększyć stopień kompresji
na podstawie porównania kolejnych obrazów wyznaczana jest informacja
o tym jakie fragmenty obrazu, jak szybko i w jakim kierunku się
przemieszczają - oba obrazy dzielone są na makrobloki, dla każdego
makrobloku w bieżącym obrazie znajdowany jest najbardziej podobny
do niego makro-blok w obrazie odniesienia. Względne przesunięcia
dopasowanych bloków - wektory ruchu - opisują ruch obiektów w przekazywanej
scenie. Na podstawie wektorów ruchu modyfikowany jest obraz odniesienia
- tworzona jest prognoza (predykcja) kolejnego obrazu z makrobloków
obrazu odniesienia przesuniętych zgodnie z wyznaczonymi wektorami
ruchu. Informacja o obrazie typu P składa się więc z dwóch części:
wektorów ruchu oraz informacji o różnicy pomiędzy kodowanym obrazem
i prognoza tego obrazu wyznaczoną na podstawie obrazu odniesienia
i wektorów ruchu. Informacje o różnicach poddaje się transformacji
DCT - analogicznie jak próbki obrazu I.
Rys. 5.15. Koder obrazów typu P [7]
Obrazy typu B kodowane są podobnie jak obrazy typu P, z tym że
jednocześnie wykorzystuje się dwa obrazy odniesienia - wcześniejszy
i późniejszy. Dla obu obrazów odniesienia wyznaczane są dwa zestawy
wektorów ruchu. Prognoza kodowanego obrazu tworzona jest przez
uśrednienie informacji pochodzących od obu obrazów odniesienia,
dlatego też ten typ obrazu nazywany jest obrazem interpolowanym.
Poszczególne typy obrazów stosowane w standardzie MPEG-2 zapewniają
różne stopnie kompresji. Najmniejszy stopień kompresji zapewniają
obrazy typu I, gdyż zawierają pełną informację o obrazie. Obrazy
te muszą być jednakże dość często transmitowane, gdyż odbiornik
może rozpocząć dekodowanie sekwencji tylko od tego typu obrazu.
Obrazy typu P zapewniają większy stopień kompresji, przy ich kodowaniu
powstają jednak pewne zniekształcenia spowodowane skończoną dokładnością
obliczeń, które kumulują się i dlatego liczba kolejno następujących
po sobie obrazów typu P nie może być zbyt duża. Jeszcze większy
stopień kompresji zapewniają obrazy typu B. W tym przypadku także
występują wspomniane wcześniej zniekształcenia, a ponadto przy
transmisji obrazów tego typu musi zostać zmieniona kolejność nadawania
obrazów - najpierw muszą być wysłane oba obrazy odniesienia, a
dopiero potem obraz typu B. Wymaga to wyposażenia dekodera w odpowiednio
dużą pamięć.
|
O stronie:
Stronka poświęcona szeroko pojętej tematyce telewizyjnej. Zawarte
informacje pomogą w zrozumieniu wielu zagadnień związanych z satelitarna
telewizja cyfrowa DVB, zarówno teoretycznie, jak i praktycznie.
Ciekawe linki:
dvb-board-pl-com
satkurier.pl
happysat.org
dvbpl.com
dvbzone.prv.pl
|