|
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:
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.
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. 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. 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). 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:
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:
Źródło: [6] |
|
|
.: 2007 | Daniel Tuzimek. © Wszelkie prawa zastrzeżone :. |