# Videocompressie

Videocompressie is het voorstellen van videodata met minder bits dan bij de oorspronkelijke representatie, om bandbreedte of opslagruimte te besparen.
De meeste compressiealgoritmen en codecs die gebruikt worden voor videocompressie combineren twee mechanismen, namelijk ruimtelijke beeldcompressie en tijdelijke bewegingscompensatie. Daarnaast wordt meestal ook nog audiocompressie parallel uitgevoerd, zodat beide datastreams als één geheel kunnen gecomprimeerd worden.

## Geschiedenis

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 etc.) |
| 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

Men kan twee typen videocompressie onderscheiden:
* met verlies of lossy
* verliesloze of lossless

### Met verlies

Bij compressie met verlies kunnen 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 compressiealgoritmen met verlies 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

Bij verliesloze compressie is het gecomprimeerde bestand een exacte kopie van het originele en zijn 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

Het menselijk oog is gevoeliger voor veranderingen in helderheid dan veranderingen in kleur. Daarvoor worden de beelddata eerst verdeeld in één helderheidscomponent en twee kleurcomponenten. Na deze stap wordt de compressie met verlies 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, die de hoge frequentiecoëfficiënten naar het einde van de stream ordent, omdat na de kwantisatie de meeste van deze 0 zijn geworden. Daarna wordt run-length encoding of RLE toegepast voor de verdere compressie. Ten slotte volgt nog een huffmancodering of aritmetische codering, die voor een verkleining van de entropie zorgen.
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 waarden van deze fouten worden dan naar het compressieproces doorgestuurd. De frames die hierdoor zijn ontstaan, worden p-frames genoemd. Wanneer niet alleen de voorgaande maar ook de komende frames worden gebruikt als referentie wordt dit b-frame of bidirectioneel frame genoemd.

## Codec

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 dat om in een gecomprimeerd bestand. Omdat niet alle originele data overgezet kunnen worden, moet de codec kiezen welke data belangrijk zijn 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

Het Internationale Organisatie voor Standaardisatie heeft een groep genaamd de Moving Picture Experts Group of MPEG. De algoritmen gebruikt door MPEG maken gebruik van een transformatietechniek die de videodata onderverdeelt 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

H.261 is een videocoderingsstandaard gepubliceerd door de Internationale Telecommunicatie-unie en ontworpen voor ISDN-netwerkdatarates.
Het belangrijkste element van het gehele proces is de broncoder, die het inkomende videosignaal comprimeert en daarbij werkt op niet-geïnterlinieerde beelden die 30.000/1001 per seconde voorkomen. Afbeeldingen worden gecodeerd als waarden 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

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

* 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.