Spring til indhold

MPEG-2

Fra Wikipedia, den frie encyklopædi

MPEG-2 er en standard, udgivet af MPEG, til kodning af lyd- og billedstrømme, og er oprindeligt tænkt til kodning af videostrømme i 4-10 Mbit/s.

I Danmark, udgik MPEG-2 den 1. januar 2012, og erstattedes af MPEG-4. MPEG-2-udstyr er derefter ubrugeligt til modtagelse af TV i Danmark.

MPEG-2 var oprindeligt tænkt til at indeholde 10 dele, men del 7 og 8 er trukket tilbage:

  1. Systems
  2. Video
  3. Audio
  4. Conformance testing
  5. Software simulation
  6. Extensions for Digital Storage Media Command and Control (DSM-CC)
  7. Advanced Audio Coding (AAC) (tilbagetrukket)
  8. Video with 10 bit input sampling (aldrig udviklet, pga. manglende interesse)
  9. Extension for real time interface for systems decoders
  10. Conformance extensions for DSM-CC

Den vigtigste forskel mellem MPEG-1 og MPEG-2 ligger i billeddelen. Hvor MPEG-1 kun arbejder med I- og P-rammer, introducerede MPEG-2 B-rammer. Se nedenfor for en beskrivelse af de forskellige rammetyper.

MPEG-2 udnytter flere kodningsteknikker til at opnå komprimering af en videostrøm:

  1. Temporal redundans
  2. Transformation til frekvensdomænet
  3. Reducering af farveopløsningen
  4. Kvantisering
  5. Entropikodning

Temporal redundans

[redigér | rediger kildetekst]

De fleste videostrømme indeholder en meget stor mængde temporal redundans, dvs. der er en meget stor lighed mellem de enkelte rammer i videostrømmen. Dette udnyttes i MPEG-2 ved at kode forskellen mellem rammer, i stedet for at kode hver enkelt ramme for sig.

Det er dog ikke blot den rå forskel mellem enkelte rammer, der kan kodes. MPEG-2 giver mulighed for at beskrive bevægelser i videostrømmen, og dermed yderligere at kunne udnytte temporal redundans, når videostrømmen indeholder bevægelse.

I MPEG-2 kan bevægelse i billedet angives på makroblok-niveau. En makroblok er en blok på 16x16 billedpunkter, og bevægelsen vil angive hvordan hver blok har "bevæget sig" mellem to rammer i strømmen.

Transformation til frekvensdomænet

[redigér | rediger kildetekst]

Et billede, hvilket en ramme i en videostrøm kan opfattes som, indholder væsentligt mere redundans, hvis dette transformeres til frekvensdomænet.

Transformation til frekvensdomænet kan opfattes som en slags statistik analyse af billedet: I stedet for at angive hvert punkts farve eller lysintensitet, vil den resulterende datastrøm indeholde generel information om fordelingen af farver, eller lysstyrker, i billedet.

Transformationen foregår på blok-niveau (ikke at forveksle med en makroblok). En blok består af 8×8 billedepunkter. MPEG-2 bruger en diskret cosinus-transformation (DCT) til at transformere til frekvensdomænet.

Da transformationen til og fra frekvensdomænet uafværgeligt vil resultere i afrundingsfejl, især pga. forskelle i implementationen af transformationer til kodning of afkodning, er transformationen den første årsag til afvigelser mellem den oprindelige videostrøm og den afkodede strøm.

Reducering af farveopløsning

[redigér | rediger kildetekst]

Det menneskelige øje er væsentligt mere følsom over for lysintensitet, end for farveforskelle. Dette kan udnyttes i MPEG-2 ved at reducere mængden af farveinformation i videostrømmen. Derfor arbejder MPEG-2 ikke med billeder i RGB-format, men i YCrCb-format, dvs. i stedet for at hvert punkt beskrives ved dets komposition af tre grundfarver, beskrives punktet ud fra dets lysintensitet (Y) og dets farve (Cr, Cb).

Der er en række forskellige måder at begrænse mængden af farveinformation i et billede:

  • 4:4:4 – Fuld farveopløsning
  • 4:2:2 – Kun hvert andet punkt indeholder farveinformation
  • 4:1:1 og 4:2:0 – Kun hvert fjerde punkt indeholder farveinformation

I stedet for at gemme den fulde information efter transformation til frekvensdomænet, gemmes afrundede værdier. Dette foregår rent praktisk ved at bruge en kvantiseringsmatrix, som gemmes én gang i videostrømmen. Resten af strømmen kan så referere til denne matrix, frem for at gemme de faktiske kvantiseringsværdier.

Entropikodning

[redigér | rediger kildetekst]

Det sidste trin i kompression opnås ved at foretage en entropikodning kvantiseringsværdierne.