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 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 Transport 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 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 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 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 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 Norma MPEG-4 składa się z kilkudziesięciu części: