Videocompressie

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Naar zoeken springen

Videocompressie is het voorstellen van videodata met minder bits dan bij de oorspronkelijke representatie. Wanneer deze data niet gecomprimeerd zou worden kan deze groottes aannemen tot 17 megabyte per seconde aan videobeeld. Zo zou een film van één uur tot 61 gigabyte groot kunnen worden.

De meeste compressiealgoritmes en codecs die gebruikt worden voor videocompressie combineren twee mechanismes, namelijk ruimtelijke beeldcompressie en tijdelijke bewegingscompensatie. Daarnaast wordt meestal ook nog audiocompressie parallel uitgevoerd, zodat beide datastreams als één geheel kunnen gecomprimeerd worden.

Geschiedenis[bewerken]

De volgende tabel geeft een chronologisch overzicht van de verschillende videocompressiestandaarden.

Geschiedenis van de videocompressiestandaarden
Jaar Standaard Uitgever Populaire implementaties
1984 H.120 ITU-T
1988 H.261 ITU-T Videoconferenties, Videofoon
1993 MPEG-1 deel 2 ISO, IEC Video-cd
1995 H.262/MPEG-2 deel 2 ISO, IEC, ITU-T DVD Video, Blu-ray, Digital Video Broadcasting, SVCD
1996 H.263 ITU-T Videoconferenties, Videofoon, Video op mobiele telefoons (3GP)
1999 MPEG-4 Part 2 ISO, IEC Video op het internet (DivX, Xvid ...)
2003 H.264/MPEG-4 AVC Sony, Panasonic, Samsung, ISO, IEC, ITU-T Blu-ray, hd-dvd Digital Video Broadcasting, iPod Video, Apple TV,
2009 VC-2 (Dirac) SMPTE Video on Internet, HDTV broadcast, UHDTV
2013 H.265 ISO-under development

Typen datacompressie[bewerken]

Men kan twee types van videocompressie onderscheiden:

  1. verlieshebbende of lossy
  2. verliesloze of lossless

Verlieshebbende[bewerken]

Bij verlieshebbende compressie kan niet alle data worden gecomprimeerd en gaat er dus een deel verloren. Omdat een videobeeld een digitale weergave is van een analoog signaal is het niet noodzakelijk om het originele signaal volledige te kunnen reconstrueren. Waardoor deze vorm van compressie bij videodata de meest gebruikte is.

Opdat niet-gecomprimeerde videobestanden zeer hoog kunnen oplopen in bestandsgrootte (62 GB voor 1 uur) biedt deze compressiemethode de mogelijkheid om die groottes drastisch te verminderen. Bij verlieshebbende compressiealgoritmes zijn er compressies tot meer dan 99% mogelijk. Dat wil zeggen dat de grootte van het bestand minder dan 1% van het originele wordt. Dit heeft uiteraard gevolgen op de kwaliteit en de kostprijs, dus moeten deze factoren afgewogen worden tegen elkaar.

Een compressiealgoritme dat wordt gebruikt voor onder andere dvd's is MPEG-2, dit kan het originele bestand 15 tot 30 keer verkleinen, maar toch nog weinig van de zichtbare kwaliteit doen verloren gaan.

Verliesloze[bewerken]

Bij verliesloze compressie is het gecomprimeerde bestand een exacte kopie van het originele en is er dus geen data verloren gegaan. Hierbij gaat er dus geen kwaliteit verloren.

Daarnaast hebben bestanden die gecomprimeerd zijn met behulp van deze techniek vaak dezelfde grootte dan het originele bestand. Waardoor het dus praktisch nooit wordt gebruikt bij videocompressie.

Videocompressietechnieken[bewerken]

Het menselijk oog is gevoeliger voor veranderingen in helderheid dan veranderingen in kleur. Daarvoor wordt de beelddata eerst verdeeld in één helderheid en in twee kleurcomponenten. Na deze stap wordt de verlieshebbende compressie toegepast, deze is gebaseerd op een discrete cosinustransformatie en kwantisatie. Deze techniek vermindert het aantal hoge ruimtelijke frequentiecomponenten omdat het menselijke oog gevoeliger is voor reconstructiefouten bij de lagere frequentiecomponenten. De kwantisatie stap dient voor de DCT-coëfficiënten te representeren met de nodige precisie die belangrijk is om de noodzakelijke kwaliteit te behalen.

Vervolgens wordt er een zigzagscan gedaan, deze ordent de hoge frequentie coëfficiënten naar het einde van de stream, omdat de meeste van deze 0 zijn geworden na de kwantisatie. Daarna wordt run-length encoding of RLE toegepast voor de verdere compressie. Ten slotte volgt nog een Huffmancodering of Aritmetische codering, deze zorgen voor een verkleining van de entropie.

Hierna is er een frame ontstaan dat volledig gecodeerd is en dat het I-frame of intra frame genoemd wordt, dit omdat het coderingsproces geen informatie van andere frames gebruikt.

De tijdelijke redundantie tussen de frames kan benut worden voor verdere compressie. Hierbij gaat de voorspellingsfout tussen corresponderende blokken in het huidige en voorgaande frame berekend worden. De waardes van deze fouten worden dan naar het compressie proces doorgestuurd. De frames die hierdoor ontstaan zijn worden p-frames genoemd. Wanneer niet enkel de voorgaande maar ook de komende frames worden gebruikt als referentie wordt dit b-frame of bidirectioneel frame genoemd.

Codec[bewerken]

Een codec is een korte naam voor een coder-decoder, ze kunnen hun werk doen aan de hand van hardware, maar ook door software met snelle processoren. Deze neemt dan een ruwedatabestand en zet die om in een gecomprimeerd bestand. Omdat niet alle originele data kan overgezet worden moet de codec kiezen welke data belangrijk is en welke niet. Het belangrijkste doel is om de bitrate van de bron te verlagen voor opslag en transmissie, maar daarbij de videokwaliteit zo goed mogelijk te houden. Het achterliggende idee is om de ruimtelijke redundantie binnen een videoframe en de tijdelijke redundantie tussen aangrenzende videoframes te verwijderen.

MPEG[bewerken]

Het Internationale Organisatie voor Standaardisatie heeft een groep genaamd de Moving Picture Experts Group of MPEG. De algoritmes gebruikt door MPEG maken gebruik van een transformatietechniek, deze gaat de videodata onderverdelen in segmenten. Deze segmenten worden eerst getransformeerd naar een frequentiedomein en vervolgens gekwantiseerd.

MPEG heeft ondertussen al enkele compressieformaten gestandaardiseerd, namelijk MPEG-1, MPEG-2 MPEG-3 en MPEG-4, MPEG-7, MPEG-21 en MJPEG.

MPEG-1 was de eerste standaard uitgebracht door de groep. het definieert de codering van het gecombineerde audio-videosignaal bij een bitrate van ongeveer 15 Mbps en een VHS-kwaliteit van 320×240. Deze was opgericht om te werken vanaf opslagmedia.

Later is de MPEG-2-standaard ontwikkeld, deze had als doel digitale televisieapplicaties. Er werden nieuwe functies geïntroduceerd zoals schaalbaarheid, met als doel de implementatiecomplexiteit laag te houden voor toestellen die niet de volledige video-inputformaten ondersteunen die door de standaard vereist zijn. De bitrate is bij MPEG-2 verhoogd tot 8 Mbps.

H.261[bewerken]

Blokdiagram H.261

H.261 is een videocoderingsstandaard gepubliceerd door de Internationale Telecommunicatie-unie, het is ontworpen voor ISDN-netwerkdatarates. Het is vandaag de dag de meest gebruikte standaard voor videoconferenties.

Het belangrijkste element van het gehele proces is de bron coder, deze comprimeert het inkomende video signaal en werkt daarbij op niet-geïnterlinieerde beelden die 30000/1001 per seconde voorkomen. Afbeeldingen worden gecodeerd als waardes van luminantie en twee kleurverschilcomponenten (Y, Cb, Cr). Waarbij de grootte van de Cb- en Cr-matrices een kwart is tegenover de Y matrix.

Om het incompatibiliteit op te lossen tussen verschillende tv-standaarden (Phase Alternating Line, NTSC en SECAM), zijn de CIF- en QCIF-beeldstructuren ontstaan. Onderstaande tabel geeft een overzicht van de H.261-beeldformaten.

Beeldformaat Luminantie pixels Luminantie lijnen
QCIF 176 144
CIF 352 288

H.263[bewerken]

H.263 is gebaseerd op H.261 en is bedoeld om bewegende beelden te comprimeren tegen lage bitrates. Het coderingsalgoritme heeft enkele verbeteringen tegenover zijn voorganger, het kan daardoor met minder dan de helft van het aantal bits in de gecodeerde stroom dezelfde kwaliteit bieden.

Voordelen tegenover H.261[bewerken]
  • Halvepixelprecisie wordt gebruikt voor bewegingscompensatie in tegenstelling tot de volledige pixelprecisie en loopfilter bij de H.261.
  • Sommige delen van de datastreamstructuur zijn niet optioneel, waardoor de codec voor een lagere bitrate kan geconfigureerd worden.
  • Er zijn vier extra coderingsopties voorzien:
    • Unrestricted motion vectors mode
    • syntax-based arithmetic coding
    • advanced prediction mode
    • PB-frames mode
  • H.264 ondersteunt nieuwe resoluties.

Zie ook[bewerken]