MPEG-4

grupa standardów kodowania audio i wideo

MPEG-4 – oznaczenie grupy standardów kodowania audio i wideo wraz z pokrewnymi technologiami, opracowanej przez grupę ISO/IEC MPEG i wprowadzonej pod koniec 1998. Główne zastosowania MPEG-4 to media strumieniowe w sieci Web, dystrybucja CD, wideokonferencje i telewizja.

MPEG-4 przejął wiele elementów standardów MPEG-1, MPEG-2 i pokrewnych, dodając nowe możliwości, takie jak (rozszerzona) obsługa VRML dla renderowania 3D, zorientowane obiektowo pliki złożone (zawierające obiekty audio, wideo i VRML), obsługa technologii DRM (zdefiniowanych jako zewnętrzne standardy) i różnoraką interaktywność.

To, jakie elementy zaimplementowane będą w obrębie MPEG-4, pozostawiane jest jako indywidualna decyzja programisty. Oznacza to, że prawdopodobnie w chwili obecnej nie istnieje pełna implementacja całego zestawu standardów składających się na MPEG-4. Rozwiązanie tego problemu osiągnięto poprzez koncepcję "profili" i "poziomów", pozwalających konkretnym zbiorom możliwości być zdefiniowanymi w sposób odpowiedni dla podzbioru aplikacji.

Implementacje MPEG-4 edytuj

Standard MPEG-4 w różnych wariantach stosowany jest także w plikach WMA i WMV systemu Windows Media, w oprogramowaniu multimedialnym Apple QuickTime, formacie Nero Digital, w plikach wideo zapisywanych przez niektóre telefony komórkowe z wbudowanymi kamerami wideo oraz DivX/XviD.

Funkcje MPEG-4 edytuj

Transport edytuj

W zasadzie MPEG-4 nie definiuje warstwy transportu, lecz w wielu przypadkach zostało zdefiniowane dostosowanie warstwy transportu w sposób następujący: transport przez MPEG-2 Transport Stream transport przez IP (w kooperacji z IETF, the Internet Engineering Task Force).

DMIF (Delivery Multimedia Integration Framework) jest to interfejs pomiędzy aplikacją i transportem, który jest tak naprawdę odpowiedzialny za transport w standardzie MPEG-4. Twórcy aplikacji zgodnej ze standardem MPEG-4 nie muszą się martwić o transport pomiędzy warstwami dzięki wprowadzeniu DMIF. Konkretniej mówiąc DMIF jest niewidoczny dla twórców aplikacji.

System edytuj

MPEG-4 definiuje zestaw zaawansowanych algorytmów kompresji audio i informacji wizualnej. Strumienie danych podstawowych (ES - Elementary Streams), które wynikają z procesu kodowania mogą być przekazywane lub przechowywane oddzielnie, i muszą mieć możliwość odtworzenia tak aby po stronie odbiorcy ukazać aktualną prezentację multimedialną.

Część systemów MPEG-4 zajmuje się opisem relacji pomiędzy elementami audio-wizualnymi. Ten związek jest opisany w dwóch głównych poziomach.

Binary Format Scenes (BIFS) opisuje czasowo-przestrzenne układy scen. Widzowie mogą mieć możliwość interakcji z obiektami, np. przez przekształcenie ich w scenie lub zmieniając ich własny punkt widzenia w wirtualnym środowisku 3D. Opis sceny stanowi bogaty zbiór węzłów dla operatorów kompozycji 2-D i 3-D oraz grafiki. Object Descriptors (ODs) określają związek między podstawowymi strumieniami (ES) odnoszącymi się do poszczególnych obiektów ODs, jak również podają dodatkowe informacje, takie jak np. adres URL, niezbędne do uzyskania dostępu do strumienia podstawowego.

Inne informacje dotyczące systemu MPEG-4:

  • Standardowy format plików wspiera wymianę treści MPEG-4.
  • Wspierana interaktywność, ogólny model zdarzeń uruchamiania lub kierowania działaniami użytkowników.
  • Stosowana jest Java (MPEG-J), aby móc wysyłać zapytania do terminala, wspierane jest środowisko Javy, istnieje również silnik aplikacji Javy - MPEGlets.
  • Narzędzie do przeplatania wielu strumieni w jeden strumień - FlexMux.
  • Narzędzie do przechowywania danych MPEG-4 w pliku (MPEG-4 Format "MP4").
  • Interfejsy do różnych aspektów terminal i sieci, w postaci Java API (MPEGJ) niezależności warstwy transportu.
  • Reprezentacja mający obsługa wielu języków, czcionek i wybór stylu, możliwość synchronizacji.

Audio edytuj

Kodek audio MPEG-4 umożliwia szeroki zakres zastosowań. W szczególności wspiera wysoce wydajną reprezentację obiektów audio składających się z:

Ogólne sygnały audio:

MPEG-4 posiada ogólne kodowania audio, począwszy od bardzo niskiej prędkości transmisji do wysokiej jakości, zastosowane przez przekształcenie technik kodowania. Funkcjonalności obejmują szeroki zakres strumienia bitów i przepustowości. Rozpoczyna się od strumienia bitów o wartości 6 kbit/s i przepustowości poniżej 4 kHz a rozciąga się na jakości transmisji od przesyłu mono(jednokanałowego) do wielokanałowego. Wysoką jakość można osiągnąć przy małych opóźnieniach. Parametry Audio Coding pozwalają na manipulację dźwiękami przy małych prędkościach.

Sygnały mowy:

Kodowanie mowy może być wykonane przy użyciu strumienia bitów od 2 kbit/s do 24 kbit/s przy użyciu narzędzi kodowania mowy. Niższe strumienie bitów, takie jak 1,2 kbit/s, jest możliwe przy dostępnej zmiennej wartości kodowania. Niskie opóźnienie jest możliwe dla aplikacji połączeniowych. Podczas korzystania z narzędzia HVXC, prędkość i wysokość dźwięku mogą być zmieniane przez użytkownika w czasie odtwarzania. Jeśli używane są narzędzia CELP, zmianę prędkości odtwarzania można osiągnąć za pomocą dodatkowych narzędzi do przetwarzania efektów.

Dźwięk syntetyczny:

Structured Audio opisuje narzędzia (małe programy, które generują dźwięk) oraz wyniki (wejścia opisujące różne obiekty). Tymi obiektami nie są instrumenty muzyczne, lecz są to formuły matematyczne, które mogą generować dźwięki instrumentów muzycznych np. pianina, dźwięki przyrody np. spadającej wody.

Syntetyczna mowa skalowalna:

Kodeki TTS ze strumieniem bitów od 200 bit/s do 1,2 Kbit/s pozwalają na generowane mowy syntetycznej. Jest to sztuczna mowa ludzka.

Wideo i obrazy edytuj

Standard MPEG-4 Visual umożliwia kodowanie hybrydowe naturalnych obrazów i wideo wraz z syntetycznymi scenami (generowanymi przez komputer). Pozwala to na przykład na wirtualną obecność uczestników wideokonferencji. W tym celu standardowe narzędzia wizualne wspierają algorytmy kodowania naturalnych zdjęć i sekwencji wideo, a także narzędzia do obsługi kompresji syntetycznych grafiki 2-D i 3-D.

Poniższe podrozdziały zawierają szczegółowy przegląd funkcjonalności narzędzi i algorytmów w standardzie MPEG-4.

Obsługiwane formaty:

MPEG-4 wspiera następujące formaty i strumienie bitów:

  • Strumienie bitów: zazwyczaj od 5 kbit/s, do ponad 1 Gbit/s
  • Formaty: progresywne, także filmy z przeplotem
  • Rozdzielczości: zazwyczaj od sub-QCIF do Studio-resolution (4k x 4k piksele)

Wydajność kompresji:

  • Dla wszystkich wartości strumieni bitów algorytmy są bardzo wydajne. Obejmuje to kompaktowe kodowania tekstury w wysokiej jakości, regulowane w zakresie dobrej jakości i z bardzo wysokim współczynnikiem kompresji.
  • Kompresja tekstur do mapowania sieci 2-D i 3-D.
  • Dowolny dostęp do funkcji umożliwiających wstawienie pauzy, przewijanie do przodu i do tyłu.

Funkcje zarządzania treścią:

  • Oparte na treści kodowania obrazów i wideo pozwalają na oddzielne dekodowanie i rekonstrukcje dowolnie kształtowanych obiektów wideo.
  • Rozszerzone modyfikowanie treścią w sekwencjach wideo pozwala na zastosowanie funkcji, takich jak zniekształcenie, przekształcanie syntetycznego lub naturalnego tekstu, tekstury, grafiki i wideo.
  • Przykładem jest odwzorowanie tekstu, tzn tekst jest wyświetlany na wierzchu filmu i porusza się wraz z obiektem obrazu, w tym samym kierunku.

Skalowalność tekstur, obrazów i wideo:

  • Skalowalność złożoności kodowania pozwala na różną złożoność generowania strumieni bitów ważnych i istotnych dla danej tekstury, zdjęcia lub filmu wideo.
  • Skalowalność złożoności dekodowania pozwala na dekodowanie strumienia bitów danej tekstury, obrazu lub wideo przez dekodery o różnym stopniu złożoności. Zrekonstruowanie jakości, odnosi się do złożoności używanego dekodera. Może to oznaczać, że dekoder o mniejszej mocy może dekodować tylko część strumieni bitów.
  • Skalowalność przestrzenna pozwala na dekodowanie podzbioru całego strumienia bitów generowanych przez koder do rekonstrukcji i wyświetlania obiektów tekstury, obrazu i wideo o obniżonej rozdzielczości przestrzennej.
  • Czasowa skalowalność pozwala na dekodowanie podzbiorów całego strumienia bitów generowanego przez koder do rekonstrukcji i wyświetlania wideo w czasie obniżonej rozdzielczości. Obsługiwane są maksymalnie trzy poziomy.

Kodowanie kształtu i kanału alfa:

  • Kodowanie kształtu wspomaga opisanie i składanie konwencjonalnych obrazów jak również dowolnych kształtów wideo. Aplikacje, które korzystają z map kształtów binarnych są reprezentacją treści obiektu dla baz danych obrazu, interaktywnych gier i animacji. Mapa binarna alfa określa, czy piksel należy do obiektu. Wartość piksela może być ustawiona na "on" lub "off".
  • Płaszczyzna alfa określa "przejrzystość" obiektu, która nie zawsze jest jednolita i może różnić się w obiekcie, np. krawędzie są bardziej przejrzyste niż właściwa zawartość. Wielopoziomowe mapy alfa są często wykorzystywane do mieszania różnych warstw sekwencji obrazów. Inne aplikacje, które korzystają z map alfa binarne związane z obrazów opartych na treści oświadczenia obrazu dla baz danych obrazu, interaktywnych gier i animacji.

Odporność na błędy:

Elastyczne dostosowanie do występowania błędów pozwala na szeroki dostęp do zdjęć i wideo, oraz przesyłania mediów w szerokim zakresie. Jest to możliwe, dzięki funkcjonowaniu algorytmów kompresji obrazów i wideo w środowiskach narażonych na błąd niskiej jakości (tj. mniej niż 64 Kb/s). Istnieją narzędzia, które są odpowiednie do używania standardu przy paśmie o ograniczonej przepustowości i są one odporne na błąd dostępu do sieci.

Animacja twarzy i ciała:

Narzędzia animacji twarzy i ciała w standardzie MPEG-4 umożliwiają wysyłanie parametrów, które definiują, kalibrują i animują syntetyczne twarze i ciała. Modele te same w sobie nie są standardem MPEG-4, jedynie te parametry należą do standardu.

Narzędzia obejmują:

  • Definicje i kodowanie parametrów animacji twarzy i ciała
  • Cechy punktów pozycji i kierunków, ożywiające twarz i ciało
  • Wirtualne usta odwzorowujące ruchy prawdziwych ust podczas mowy
  • Parametry i definicje ruchów ciała i twarzy
  • Charakterystyki personalne
  • Kodowanie tekstury twarzy

Wersje MPEG-4 edytuj

Wersja pierwsza standardu MPEG-4 została przyjęta przez MPEG w grudniu 1998 r., wersja druga została wdrożona w grudniu 1999 roku. Dużo narzędzi zostało dodanych w kolejnych zmianach standardu, które mogłyby zostać zakwalifikowane jako wersje, lecz ciężko sprecyzować ich odrębność jako wersje standardu. Rozróżnianie wersji nie jest ważne i jako tako potrzebne, dużo bardziej potrzeba wiedzieć o tym jak się dzielą profile. Wersje wszystkich głównych części standardu MPEG-4 (systemy, Audio, Video, DMIF) zostały zsynchronizowane, po tym, jak poszczególne części rozwijały się swoimi własnymi drogami.

Nowsze wersje warstwy systemu są zawsze kompatybilne z wcześniejszymi wersjami. W zakresie systemu, dźwięku i wizualnym, nowe wersje dodają nowe profile, ale nie zmieniają dotychczas istniejących. W rzeczywistości jest to bardzo ważne, że istniejące systemy zawsze będą zgodne, ponieważ starsze profile nigdy nie będą zmienione.


Części MPEG-4 edytuj

Norma MPEG-4 składa się z kilkudziesięciu części:

Część ISO/IEC Opis
Część 1 ISO/IEC 14496-1 Systemy: Opisuje synchronizację i mieszanie audio i wideo.
Część 2 ISO/IEC 14496-2 Wizja: kodek kompresji dla danych wizualnych (wideo, nieruchome tekstury, obrazy syntetyczne, itd.). Jednym z wielu "profili" w Części 2 jest Advanced Simple Profile (ASP).
Część 3 ISO/IEC 14496-3 Audio: Zbiór kodeków kompresji dla kodowania postrzeganego sygnałów wraz z pewnymi wariantami kodowania Advanced Audio Coding (AAC), jak i innymi narzędziami kodowania audio/mowy.
Część 4 ISO/IEC 14496-4 Testowanie zgodności: Opisuje procedury testowania zgodności implementacji standardu z jego wymaganiami.
Część 5 ISO/IEC 14496-5 Oprogramowanie referencyjne: Dostarcza oprogramowania demonstrującego i precyzującego pozostałe części standardu.
Część 6 ISO/IEC 14496-6 Struktura integracji dostarczania multimediów (Delivery Multimedia Integration Framework, DMIF).
Część 7 ISO/IEC TR 14496-7 Zoptymalizowane oprogramowanie referencyjne do kodowania obiektów audiowizyjnych: demonstruje, w jaki sposób należy wykonywać ulepszone implementacje (np. w odniesieniu do Części 5).
Część 8 ISO/IEC 14496-8 Przenoszenie treści ISO/IEC 14496 w sieciach IP: Określa metody transportu treści MPEG-4 w sieciach opartych o protokół IP.
Część 9 ISO/IEC TR 14496-9 Opis sprzętu referencyjnego: dostarcza projektów sprzętowych w języku HDL, demonstrujących w jaki sposób implementować pozostałe części standardu.
Część 10 ISO/IEC 14496-10[1] Zaawansowane kodowanie wizji (Advanced Video Coding): kodek sygnałów wideo zwany także AVC, identyczny pod względem technicznym ze standardem ITU-T H.264.
Część 11 ISO/IEC 14496-11 Opis scen i silnik aplikacji, inaczej BIFS, może być używana do opisu interaktywnej zawartości 3D lub podpisów.
Część 12 ISO/IEC 14496-12 Podstawowy format pliku mediów ISO: format pliku przechowującego media.
Część 13 ISO/IEC 14496-13 Rozszerzenia zarządzania i ochrony własności intelektualnej (IPMP).
Część 14 ISO/IEC 14496-14 Format pliku MP4: dedykowany format pliku kontenera dla zawartości MPEG-4 opisanej w Części 12.
Część 15 ISO/IEC 14496-15 Format pliku AVC: przechowywanie wideo z Części 10 w oparciu o Część 12.
Część 16 ISO/IEC 14496-16 Rozszerzenie szkieletu animacji (Animation Framework eXtension, AFX).
Część 17 ISO/IEC 14496-17 Format podpisów Timed Text.
Część 18 ISO/IEC 14496-18 Strumieniowanie i kompresja fontów (dla fontów OpenType).
Część 19 ISO/IEC 14496-19 Strumień syntetycznych tekstur.
Część 20 ISO/IEC 14496-20 Wydajna reprezentacja scen (Lightweight Scene Representation, LASeR) i format prostej agregacji (SAF).
Część 21 ISO/IEC 14496-21 Rozszerzenie szkieletu grafiki (GFX) MPEG-J.
Część 22 ISO/IEC 14496-22 Specyfikacja formatu otwartych fontów (Open Font Format Specification, OFFS) oparta na OpenType.
Część 23 ISO/IEC 14496-23 Symboliczna reprezentacja muzyki
Część 24 ISO/IEC TR 14496-24 Interakcje audio i systemów
Część 25 ISO/IEC 14496-25 Model kompresji grafiki trójwymiarowej
Część 27 ISO/IEC 14496-27 Zgodność grafiki trójwymiarowej.

Profile zdefiniowane są także w obrębie indywidualnych części, tak więc implementacja części zazwyczaj nie jest implementacją jej całości.

Profile w MPEG-4 edytuj

MPEG-4 zapewnia bardzo duży i bogaty zestaw narzędzi do kodowania obiektów audio-wizualnych. W celu umożliwienia skutecznego wdrożenia standardu, zestawy narzędzi 'Systems', 'Visual' i 'Audio' MPEG-4 zostały podzielone na podgrupy, które mogą być użyte do poszczególnych zastosowań. Te podgrupy nazywają się profilami i zawierają limity zaimplementowanych narzędzi i funkcji kodujących. Dla każdego z profili dostępne są również poziomy. Najbardziej powszechną kombinacją profili i poziomów jest kombinacja 'Main Profile @ Main Level'.

Przykładowe profile 'Visual':

  • Simple Visual Profile
  • Simple Scalable Visual Profile
  • The Core Visual Profile
  • Main Visual Profile
  • N-Bit Visual Profile
  • Simple Face and Body Animation Profile
  • The Scalable Texture Visual Profile

Przykładowe profile 'Audio':

  • The Speech Profile
  • The Synthesis Profile
  • The Scalable Profile,
  • The Main Profile
  • The High Quality Audio Profile
  • The Low Delay Audio Profile

Przykładowe profile grafiki:

  • Simple 2-D Graphics Profile
  • Complete 2-D Graphics Profile
  • Complete Graphics Profile
  • The 3D Audio Graphics Profile

Obsługiwane formaty edytuj

Przypisy edytuj

Zobacz też edytuj

Linki zewnętrzne edytuj