Strona główna Mapa strony Linki Bibliografia O autorze Kontakt
Charakterystyka satelitów
Platforma DVB
System satelitarny DVB-S
Standardy MPEG

 »  MPEG1

 »  MPEG2

 »  MPEG4/AVC

Telewizja cyfrowa
Sygnał cyfrowy TV-SAT
Terminal multimedialny
Terminal na bazie PC
Oprogramowanie do kart
Zestaw do odbioru TV-SAT
Cyfrowa telewizja satelitarna
Karty DVB-S
Karty DVB-S2


Standardy kodowania - MPEG4/AVC



  Szeroko stosowany w praktyce MPEG-2 został ulepszony w roku 1991 przez grupę MPEG poprzez wprowadzenie standardu MPEG-4 zgodnego z normą ISO/IEC 14496 cz. 2. Standard ten wykorzystuje bardziej zaawansowane techniki kompresji oraz wiele dodatkowych narzędzi umożliwiających kodowanie i manipulowanie mediami cyfrowymi.


  Jądro rozwiązania jest oparte na znanym modelu kodowania hybrydowego DPCM/OCT a podstawowe funkcje modelu są wspomagane, jak na przykład zwiększenia wydajności kompresji, niezawodności transmisji, kodowanie niezależnych obiektów sceny wizyjnej, kompresja oparta na siatce i ożywianie twarzy i modeli ludzkich. Jest to standard bardzo skomplikowany wykorzystujący skomplikowany software. Oczywiście pojedyncze zastosowanie nie wymaga zastosowania wszystkich możliwości standardu.


  Standard MPEG-4 opisuje wiele profili grupujących narzędzia dla poszczególnych zastosowań a między innymi wydajne kodowanie ramek wizyjnych, kodowanie wizyjne dla zawodnych sieci transmisyjnych, kodowanie i manipulacja oparte na obiekcie. kodowanie syntetycznych i hybrydowych, syntetyczno-naturalnych scen i interaktywne zastosowania wizyjne. Jednakże z punktu widzenia zastosowań najbardziej potrzebne są narzędzia profilu kodowania prostego i ulepszonego prostego oraz wydajnego kodowania prostokątnych ramek. Wymagania takie spełnia standard H.264/AVC wynaleziony w 2003r. w celu zastąpienia standardu MPEG-4. Opublikowany w ISO/IEC 14496 cz. 10 i zaleceniu ITU-T 264.


  Podobnie jak koder standardu MPEG-2, koder standardu H.264/AVC jest koderem hybrydowym z kompensacją ruchu.

W standardzie AVC wprowadzono pewne innowacje do sposobu kodowania obrazów w sekwencji wizyjnej:

  • Każdy obraz w sekwencji może być zakodowany niezależnie jako RAMKA (FRAME), POLA (FIELDS) oraz w trybie adaptacyjnym MBAFF;
  • Może być więcej niż jeden obraz odniesienia zarówno na liście odniesienia wstecz jak i w przód;
  • Obrazy mogą być kodowane praktycznie w dowolnej kolejności jak przedstawiono na rysunku poniżej:
Sposób kodowania obrazów

Rys.7 Sposób kodowania obrazów


  Wprowadzono zarządzanie listą obrazów odniesienia. Lista ta ma dwie części: krótko i długoterminową. Na liście krótkoterminowej znajdują się obrazy ostatnio zdekodowane natomiast na liście długoterminowej mogą się znaleźć obrazy wskazane przez specjalne znaczniki w strumieniu. Zdefiniowane znaczniki strumienia AVC umożliwiają precyzyjne sterowanie zawartością obu list. Poniżej przedstawiono przykład kolejności kodowania pól w sekwencji. Numery obok typu pola/ramki informują o kolejności kodowania.


Kolejność kodowania pól w sekwencji

Rys.8 Kolejność kodowania pól w sekwencji


Wybór kolejności kodowania kolejnych obrazów ma istotny wpływ na stopień kompresji. Dzięki temu możemy np. drugie pole pierwszego obrazu (obrazu dostępowego INTRA) zakodować jako pole B. w efekcie możemy uzyskać nawet 25% wzrost stopnia kompresji wynikający tylko i wyłącznie ze zmiany kolejności kodowania i dopuszczeniu różnego typu pól w jednym obrazie. W standardzie AVC wprowadzono także kodowanie adaptacyjne POLE/RAMKA na poziomie makrobloku (MBAFF). W takim trybie kodowania obrazu sąsiadujące w pionie makrobloki łączone są w pary. Każda taka para może zostać zakodowana jako dwa makrobloki z przeplotem lub jako progresywne.


  Wybór kolejności kodowania kolejnych obrazów ma istotny wpływ na stopień kompresji. Dzięki temu możemy np. drugie pole pierwszego obrazu (obrazu dostępowego INTRA) zakodować jako pole B. w efekcie możemy uzyskać nawet 25% wzrost stopnia kompresji wynikający tylko i wyłącznie ze zmiany kolejności kodowania i dopuszczeniu różnego typu pól w jednym obrazie. W standardzie AVC wprowadzono także kodowanie adaptacyjne POLE/RAMKA na poziomie makrobloku (MBAFF). W takim trybie kodowania obrazu sąsiadujące w pionie makrobloki łączone są w pary. Każda taka para może zostać zakodowana jako dwa makrobloki z przeplotem lub jako progresywne.


  W AVC wartości próbek obrazu jak i wektory ruchu wyliczane są na podstawie prognozy danych zawartych w sąsiadujących blokach 4x4. W trybie MBAFF wyznaczenie sąsiedztwa jest dość złożone, ponieważ każdy z sąsiadów (prawy, górny, lewy-górny i prawy-górny) może być zakodowany w innym trybie, a zatem istnieją 4 kombinacje dla każdego z czterech z sąsiedztwa. Tak, więc, aby określić konteksty potrzebne do zakodowania bieżącego makrobloku należy znać typ makrobloku sąsiadującego. Tryb MBAFF pozwala adaptować się lokalnie do struktury obrazu. Tam gdzie nie ma przeplotu, obraz jest gładszy i nie ma tekstur przeważnie używany jest tryb FRAME, w innych przypadkach a szczególnie na krawędziach obiektów stosuje się tryb FIELD. Kodowanie obrazu z adaptacją trybu na poziomie makrobloku daje największy współczynnik kompresji.


  W standardzie AVC/H.264 obrazy kodowane w trybie międzyobrazowym (P i B) rekonstruowane są przy użyciu jednego lub więcej obrazów odniesienia, występujących w sekwencji wcześniej lub później w stosunku do bieżącego obrazu.


  Każdy z makrobloków może zostać podzielony w procesie kodowania na prostokątne fragmenty o rozmiarach 16×8, 8×16, 8×8, 8×4, 4×8 oraz 4×4 próbki luminancji.


Mechanizm międzyobrazowego prognozowania z kompensacją ruchu

Rys.9 Mechanizm międzyobrazowgo prognozowania z kompensacją ruchu


  Do rekonstrukcji makrobloku w takim obrazie konieczne jest przesłanie w zakodowanym strumieniu binarnym indeksów obrazów odniesienia oraz wektorów ruchu dla wszystkich fragmentów makrobloku. Ponieważ pole wektorów ruchu cechuje się lokalną korelacją, dlatego kodowaniu entropijnemu podlegają jedynie błędy wektorów określonych na podstawie prognozy, co owocuje znacznym zmniejszeniem strumienia wektorów ruchu.


  W standardzie AVC zdefiniowano dwa ogólne schematy prognozy wektorów ruchu: prognoza kierunkową dla makrobloków podzielonych na prostokąty o rozmiarze 16×8 i 8×16 oraz adaptacyjną prognozę medianową dla pozostałych przypadków.


Przykładowe podziały makrobloku na partycje w standardzie AVC

Rys.10 Przykładowe podziały makrobloku na partycje w standardzie AVC


  Tryby podziału makrobloku na prostokąty o rozmiarach 16×8 i 8×16 zostały wprowadzone specjalnie do reprezentacji fragmentów obrazu o wyraźnym kierunkowym charakterze ruchu, tam gdzie występuje krawędź pomiędzy poruszającymi się obiektami, bądź też poruszającym się obiektem a statycznym tłem.


  W trybie 16×8 prognozę wektora ruchu dla górnego fragmentu makrobloku jest wektor ruchu z górnego sąsiedniego bloku (A1), zaś prognoza wektora ruchu dla dolnego fragmentu makrobloku jest wektor ruchu z lewego sąsiada (B1).


W trybie 8×16 wektor ruchu dla lewego fragmentu makrobloku jest przewidywany na podstawie lewego sąsiedniego bloku (A2), zaś wektor ruchu dla prawego fragmentu makrobloku - z górnego prawego bloku (B2).


Kierunkowa prognoza wektorów ruchu

Rys.11 Kierunkowa prognoza wektorów ruchu


Powyższy schemat prognozy ma zastosowanie tylko w przypadku, gdy sąsiednie bloki używają tego samego obrazu odniesienia. W przeciwnym razie, prognozowanie przełącza się w tryb prognozy medianowej, opisany poniżej.


  Prognoza medianowa wykorzystuje wektory ruchu trzech bloków sąsiadujących z kodowanym fragmentem makrobloku, standardowo są to wektory z bloków A,B i C, chyba, że obraz odniesienia bloku C jest różny od obrazu odniesienia bieżącego bloku, wówczas wektor ruchu bloku C zastępowany jest wektorem ruchu bloku D.


Następnie prognoza przebiega kolejno według następującego schematu:

  • jeśli którykolwiek z bloków A,B,C/D kodowany jest w trybie wewnątrzobrazowym, występuje poza krawędzią obrazu lub nie używa wektora ruchu dla danego trybu prognozy ("wprzód"/"wstecz"), wówczas oznacza się go jako blok używający nieistniejącego obrazu odniesienia,
  • jeśli jedynym dostępnym z punktu widzenia prognozy jest blok A, wynikiem prognozy jest jego wektor ruchu,
  • jeśli tylko jeden spośród bloków A,B,C/D używa tego samego obrazu odniesienia co bieżący fragment makrobloku, wynikiem prognozy jest wektor ruchu tego bloku,
  • wynikiem prognozy jest wektor o składowych będących medianą wektorów ruchu bloków A,B,C/D.

  Standard H.264/AVC jest standardem wizyjnym, natomiast standardy kodowania dźwięku towarzyszących są takie same jak dla standardu MPEG-2. Standard H.264/AVC dotyczy wyłącznie kodowania źródłowego natomiast jest przesyłany za pomocą strumienia transportowego MPEG-2 TS podobnie jak w MPEG-2.


Standard AVC/H.264 ma jeszcze szersze zastosowanie w wielu dziedzinach transmisji, przetwarzania i przechowywania treści telewizyjnych:

  • telewizja programowa satelitarna DVB-S, kablowa DVB-C i naziemna DVB-T
  • telewizja wysokiej rozdzielczości HDTV
  • telewizja płatna
  • telewizja w telefonii trzeciej generacji
  • zastosowania militarne w NATO
  • telewizja w mediach strumieniowych
  • telekonferencje
  • zapis na nośnikach HD-DVD, Blu-ray Disk
  • usługi wideo na życzenie w sieciach internetowych
  • w piątej generacji iPod do odtwarzania sekwencji wizyjnych firmy Apple
  • w przenośnych stacjach gier Playstation Portale firmy Sony

Źródło: [6]




Strona glowna

poczatek strony

.:  2007 | Daniel Tuzimek. © Wszelkie prawa zastrzeżone  :.