# MPEG

MPEG (spreek uit: em-peg) is een veel gebruikt systeem voor de compressie van beeld- en geluidsbestanden.

## Situering

In 1988 werd de werkgroep Moving Picture Experts Group opgericht als een samenwerkingsverband tussen academici en mensen uit de zakenwereld. Sindsdien houdt deze werkgroep zich bezig met de ontwikkeling van een standaard voor de codering van audio en video.
De MPEG-codecs zijn een voorbeeld van datacompressie met gegevensverlies (lossy). Dit is een methode waarbij decompressie van een gecomprimeerd bestand resulteert in een bestand, verschillend van het origineel. Er zal verlies van informatie optreden, met kwaliteitsverlies als gevolg. Het voordeel hiervan is dat het gecomprimeerde bestand veel kleiner is en dus makkelijk via gegevensdragers of internet kan worden verstuurd.
De MPEG-compressiealgoritmes die gepaard gaan met gegevensverlies maken gebruik van een transformatietechniek. Dit wil zeggen dat de beelden en geluiden in kleine segmenten worden gehakt, getransformeerd worden naar het frequentiedomein, en vervolgens worden gekwantiseerd.
Meestal wordt er een extra stap toegevoegd, waarbij een bepaalde afbeelding voorspeld wordt op basis van de vorige geconstrueerde afbeeldingen, en enkel de verschillen met de vorige afbeeldingen en de extra informatie om de voorspelling te kunnen vormen, worden bijgehouden. Deze voorspellingsmethode wordt ook gebruikt in andere compressieformaten.
MPEG standaardiseert enkel het bitstreamformaat en de decoder. Een bitstreamformaat is de vorm waarin data zich bevindt in een reeks van bits die gebruikt wordt in een toepassing voor digitale communicatie of opslag. De encoder is helemaal niet gestandaardiseerd, maar er zijn referentie-implementaties beschikbaar voor leden die gevalideerde bitstreams produceren. Concreet betekent dit dat bijvoorbeeld een willekeurige MPEG-decoder om het even welk MPEG-materiaal van hetzelfde type kan decoderen, zonder rekening te moeten houden met de encoder.
De officiële benaming van MPEG is ISO/IEC JTC1/SC29 WG11. De gebruikte bestandsextensie voor MPEG op computers is .mpg.

## Formaten

MPEG heeft een aantal compressieformaten gestandaardiseerd. Elk formaat heeft een onbekend aantal codecs. Doordat de bitstream en de decoder gestandaardiseerd is, kan een decoder van een bepaald formaat, iedere MPEG bitstream van dat formaat decoderen. Het is voor de decoder dus niet van belang met welke codec een bepaald bestand gecodeerd werd.

### MPEG-1

MPEG-1 (1991) is de initiële compressiestandaard voor video en audio door de Moving Picture Experts Group. Later werd deze gebruikt als standaard voor video-cd. Het formaat beschrijft ook het populaire Layer 3 (MP3) audiocompressieformaat. De videocodec is enkel van toepassing voor niet-geïnterlinieerde beelden. Het formaat beschrijft verder ook nog synchronisatie en multiplexing van video en audio, procedures om de conformiteit te testen, en referentiesoftware.

### MPEG-2

Het MPEG-2-formaat (niet te verwarren met MP2, MPEG-1 Audio Layer 2) is voornamelijk ontwikkeld voor het transporteren van digitale kwalitatieve video en audio voor televisie-uitzendingen. Het wordt gebruikt voor digitale televisie via conventionele antennes (dus niet via satelliet) (ATSC, DVB en ISDB), uitzending ('broadcasting') over satelliet (DirecTV), en digitale kabeltelevisie. Ook heeft het (met een kleine aanpassing) zijn toepassing gevonden op dvd-videodiscs.
MPEG-2 specificeert dat onbewerkte frames in drie soorten frames gecomprimeerd kunnen worden:
* intra gecodeerde frames (I-frames)
* voorspellend gecodeerde frames (Predictive coded, ofwel P-frames)
* bidirectionele P-frames (B-frames)
       Meestal wisselen I-, P- en B-frames zich af. Een mogelijke volgorde is: IBBPBBPBBPBB(I). De frames samen vormen een GOP (Group Of Pictures). Hoe de variatie moet optreden is niet specifiek vastgelegd: de standaard is hier nogal flexibel in.
    I-frame
       Een I-frame is een gecomprimeerde versie van een enkele onbewerkt frame. Het maakt gebruik van ruimtelijke redundantie en van het feit dat het menselijk oog bepaalde veranderingen in een beeld niet kan waarnemen. In tegenstelling tot P-frames en B-frames zijn de I-frames niet afhankelijk van de vorige of volgende frames. In het kort komt het erop neer dat het frame wordt verdeeld in blokken van 8 bij 8 pixels. De data in elk blok wordt getransformeerd middels een discrete cosinustransformatie. Dit levert een 8 bij 8 matrix van coëfficiënten. De transformatie zet ruimtelijke variaties om naar een variatie in frequentie, waarbij lage frequenties corresponderen met "grove lijnen" en de hoge frequenties corresponderen met details in de afbeelding. De informatie in het frame zelf wordt niet veranderd: door de inverse cosinustransformatie toe te passen kan de originele informatie uit het I-frame worden teruggewonnen. Gewoonlijk zijn de componenten van de hogere frequenties in dit signaal ongeveer 0. Dit resulteert in het verlies van kleine, subtiele niveauveranderingen in kleur en helderheid.
       Vervolgens wordt de gekwantiseerde 8 bij 8 matrix gecomprimeerd. Meestal is één hoek van de matrix gevuld met allemaal nullen. Men start in de linkerbovenhoek van de matrix. Vervolgens gaat men "zigzaggen" door de matrix en worden alle coëfficiënten uit de matrix gecombineerd tot een string. Nadat deze nog enkele bewerkingen heeft ondergaan, krijgt men een veel kleiner array met getallen. Dit array wordt uiteindelijk uitgezonden of op dvd gezet. In de ontvanger, of in de dvd-speler, wordt het voorgaande proces omgekeerd toegepast. Dit resulteert in een goed benaderde reconstructie van het originele signaal.
    P-frames
       P-frames zorgen voor meer compressie dan I-frames. Ze gebruiken de data van het voorafgaande P- of I-frame. P- en I-frames worden zogenaamde referentieframes genoemd. Om een P-frame te genereren wordt het vorige referentieframe gereconstrueerd, net zoals in een dvd-speler of een tv-ontvanger. Het frame dat men wil opbouwen wordt verdeeld in 16 bij 16 pixels macroblocks. Vervolgens wordt het referentieframe doorzocht om het best passende gecomprimeerde 16 bij 16 pixels macroblock te vinden. Beide frames (het voorafgaande en het actuele) worden dus per macroblock vergeleken. Hierbij wordt rekening gehouden met beweging: de wijziging in positie wordt meegegeven als vectoren die de richting en afstand aangeven waarin pixels zich bewegen. Omdat beide macroblocks niet perfect overeenkomen wordt voor beide blocks een string met coëfficiënten bepaald zoals hierboven beschreven. Vervolgens wordt het verschil van deze strings genomen om verder te verwerken.
    B-frames
       Het verwerken van een B-frame lijkt erg op dat van een P-frame, met het verschil dat een B-frame ook het volgende referentieframe gebruikt. Ze zorgen voor meer compressie dan P-frames, maar ze worden nooit gebruikt als referentieframe.
       Bovenstaande tekst haalt enkele bewerkingen van de MPEG-2 laag aan. Er zijn echter nog veel meer details die hier niet zijn besproken, zoals chrominantie, luminantie, het labelen van de delen die de bitstroom vormen en dergelijke.

### MPEG-3

Oorspronkelijk werd MPEG-3 (niet te verwarren met MP3, MPEG-1 Audio Layer 3) ontworpen voor High-definition television (hdtv), maar toen duidelijk werd dat soortgelijke resultaten verkregen konden worden door kleine aanpassingen aan MPEG-2 door te voeren, werd besloten om het verder ontwikkelen van MPEG-3 te beëindigen.

### MPEG-4

MPEG-4 is een uitbreiding van MPEG-1 om video/audio-“objecten” te ondersteunen, 3D-inhoud, lage bitrate-encoding en Digital Rights Management (DRM). Als bestandsformaat koos de Moving Pictures Experts Group voor het QuickTime-bestandsformaat, ontwikkeld door Apple. Microsoft, dat graag zijn eigen bestandsformaat in een ISO-standaard had zien opnemen, kwam daarop met een eigen versie van MPEG-4. Het is overigens op deze (gesloten en incompatibele) Microsoft-variant van MPEG-4 dat het populaire DivX gebaseerd werd.
In samenwerking met het Joint Video Team (JVT) werd een geavanceerde videocodec ontwikkeld. Deze kreeg de naam H.264, maar dient vanzelfsprekend enkel als referentie. Softwareleveranciers kunnen, conform de ISO-standaard, hun eigen codecs en bijhorende encoders ontwikkelen, als dit een meerwaarde kan betekenen voor de door hen aangeboden producten. Enkele voorbeelden hiervan zijn Apple en 3ivx.

### MPEG-7

In tegenstelling tot de andere standaarden, die beschrijven hoe bewegende beelden daadwerkelijk gecodeerd kunnen worden, is MPEG-7 een standaard om multimedia-inhoud te beschrijven aan de hand van XML. Het is een meta-informatiesysteem als aanvulling op MPEG-1, MPEG-2 en MPEG-4. Tegenwoordig is er sprake van een overdaad aan informatie, de toevoer van audiovisuele informatie neemt mettertijd exponentieel toe. Daarom zal een beschrijvend, doorzoekbaar informatiesysteem als MPEG-7 een grote hulp worden voor het terugvinden van audiovisueel materiaal.

### MPEG-21

MPEG-21 is een OpenSource framework voor multimedia-applicaties. Het is de bedoeling dat bij conversies en uitwisseling van multimedia tussen verschillende gebruikers en bedrijven de auteursinformatie en herkomst bewaard blijft. Het is dus niet te vergelijken met DRM dat voor restricties bij de distributie zorgt, maar eerder als een technologie om de herkomst, het gebruik en de distributie van het bestand te achterhalen.

### MJPEG

Vaak wordt MJPEG ten onrechte als een MPEG-formaat aangezien, daarom is het ook in deze lijst opgenomen. MJPEG is echter een methode waarbij iedere frame van een beeldsequentie naar het JPEG-formaat wordt omgezet om zo een 10:1 tot 20:1 compressie te krijgen. Deze methode wordt voornamelijk gebruikt in commerciële postproductie. MPEG-1-kwaliteit bij lage bitrate is niet acceptabel voor deze gebruikers, en het is moeilijk om videosequenties te bewerken met inter-framecompressie.
Samengevat is MJPEG dus een toepassing van de Joint Photographic Experts Group, en niet van de Moving Picture Experts Group.

## Veel gebruikte codecs

Zoals hierboven reeds beschreven heeft ieder MPEG-formaat zijn eigen codec. Aangezien echter enkel het formaat en de decoder beschreven zijn, kunnen dus andere codecs ontwikkeld worden. Voorbeelden hiervan zijn Sorenson Squeeze, 3ivx en Nero Digital.

## Toepassingen

Om intercompatibiliteit te verzekeren, waarbij verschillende producten de standaard op dezelfde manier implementeren, werd de Internet Streaming Media Alliance (ISMA) opgericht als een samenwerkingsverband tussen Apple, Cisco, IBM, Kasenna, Philips, Sun Microsystems, AOL Time Warner, Dolby Laboratories, Sony en 27 andere bedrijven. De ISMA houdt zich vooral bezig met het definiëren van bruikbare profielen.
Zoals eerder al beschreven hebben de verschillende MPEG-formaten elk hun eigen toepassingen gevonden. Zo wordt MPEG-2 voornamelijk gebruikt door digitale televisiebroadcasters, en zal MPEG4 vooral bij de gewone consumenten zijn plaats veroveren (draadloos netwerk). Na verloop van tijd zal MPEG4 echter ook op professioneel vlak MPEG-2 gaan overnemen. Zo zijn er nu al plannen om bij iDTV ondersteuning te bieden aan MPEG4, in plaats van enkel MPEG-2. De grote winst aan bandbreedte aan eenzelfde kwaliteit is vanzelfsprekend een zeer sterk argument.
MPEG-1 wordt niet meer veel gebruikt en is veelal vervangen door MPEG-4. VHS-kwaliteit is voor de veeleisende consument niet langer voldoende en de efficiëntere videocompressie van MPEG-4 part10 heeft bijgedragen aan de adoptie.

### Players

MPEG-4 wordt ondersteund door de meeste spelers ondersteund waaronder QuickTime 6+, Windows Media Player 12+, RealPlayer 10+ en VLC media player.
Webbrowsers ondersteunen om webvideo mogelijk te maken vaak het MPEG-4-formaat.

### Streaming

Het MPEG-formaat is uitermate geschikt voor streaming media, doordat de Moving Picture Experts Group heeft steeds rekening mee gehouden heeft bij de ontwikkeling van de MPEG-formaten en implementatie van codecs. De industrie volgde deze redenering niet, en MPEG 1, 2 en 3 zijn op commercieel vlak nooit doorgebroken als streamingformaat. Dit was voornamelijk het gevolg van het feit dat concurrerende formaten als RealMedia en Windows Media met hun eigen streamingserver op de markt kwamen. MPEG is immers een standaard, die niet wordt gestuwd door een commercieel bedrijf, en dus afhankelijk is van implementatie en ontwikkeling door derden.
MPEG-4 heeft hier verandering in gebracht, dankzij (onder meer) het succes van de Darwin Streaming Server van Apple, de iPod en iTunes.
Voor streaming wordt vaak H.264 (codec) gebruikt in combinatie met MPEG-4 (container).