Videocompressie - MediaNet Vlaanderen
Videocompressie - MediaNet Vlaanderen
Videocompressie - MediaNet Vlaanderen
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>MediaNet</strong> <strong>Vlaanderen</strong><br />
Van studio tot tablet<br />
Van (veel) fotonen tot<br />
This work is protected under copyright. Third party images used with permission and marked as such.<br />
Wednesday 28 November 2012<br />
(weinig) bits<br />
Niels.Laukens@vrt.be<br />
1
Wat is videocompressie?<br />
• Video<br />
Wednesday 28 November 2012<br />
• Wikipedia: Video ("ik zie", afgeleid van het Latijnse<br />
videre, "zien") is een techniek om bewegende<br />
beelden als een elektronisch signaal weer te geven.<br />
2
Wat is videocompressie?<br />
• Compressie<br />
• Wikipedia: samendrukken of kleiner maken<br />
• Datacompressie is het representeren van digitale<br />
gegevens met minder bits dan de oorspronkelijke<br />
•<br />
Wednesday 28 November 2012<br />
representatie<br />
Beeldcompressie is een bewerking waarbij men<br />
afbeeldingen in grootte beperkt om opslagcapaciteit<br />
te besparen en datatransmissie te versnellen<br />
3
Wednesday 28 November 2012<br />
Wat is videocompressie?<br />
• Wat wij zien digitaal voorstellen met zo weinig<br />
mogelijk bits<br />
• MAAR met zo hoog mogelijke kwaliteit<br />
• Zo “realistisch mogelijk”<br />
4
Wednesday 28 November 2012<br />
• Definities<br />
Inhoud<br />
• “Analoge” compressie-technieken<br />
• “Digitale” compressie-technieken<br />
5
Wednesday 28 November 2012<br />
• Oog is gevoelig voor EMstraling<br />
• λ= 750nm – 390nm (400 –<br />
790THz)<br />
• piek rond 555nm (540THz)<br />
• Spectral Power Density geeft<br />
volledige informatie<br />
• Nachtzicht heeft een<br />
verschoven gevoeligheid naar<br />
blauw<br />
Wat is licht?<br />
Spectrale gevoeligheid ifv golflengte [nm] van het oog in scoptisch (staafjes,<br />
groen) en fotoptisch (kegeltjes, wit) zicht.<br />
Source: Wikipedia; Copyright: public domain<br />
6
Wednesday 28 November 2012<br />
• 3 type kegeltjes: korte (blauwe),<br />
medium (groen), lang (rood)<br />
• Reductie van ∞ veel λ naar 3<br />
mogelijk?<br />
• Ja: CIE XYZ curves<br />
SPD → RGB<br />
Relatieve gevoeligheid van de drie type kegeltjes ifv de golflengte<br />
(c) Wikipedia - Pieter Kuiper & Koenb<br />
CIE XYZ curves<br />
(c) Wikipedia - Acdx<br />
7
Wednesday 28 November 2012<br />
• XYZ kleurenruimte is niet bruikbaar<br />
in praktijk:<br />
• Opname: Onmogelijk om optische<br />
filters te maken met XYZ-curves<br />
• Weergave: Scherm zou moeten<br />
negatief licht geven<br />
• Omzetten naar andere kleurruimte<br />
• Rec. 709 (HD), EBU Tech. 3213<br />
(SD), LogC (Alexa)<br />
• Eenvoudige lineaire transformatie<br />
(matrix)<br />
SPD → RGB<br />
xy-chromaticity diagramma met D65 wit, Rec709 driehoek en<br />
EBU Tech. 3213 groen. Kleuren buiten de driehoek kunnen niet<br />
worden weergegeven op een monitor.<br />
Aangepast van (c) Wikipedia - Sakurambo<br />
8
Wednesday 28 November 2012<br />
Bemonsteren &<br />
• Van ∞ veel mogelijkheden naar een<br />
eindig aantal<br />
Discretiseren<br />
• Ruimte:<br />
• Diepte: één mogelijkheid / 2D<br />
• Breedte x hoogte: 176x144,<br />
720x576, 1280x720, 1920x1080,<br />
7680x4320<br />
• Tijd:<br />
• Beperkte framerate: 12, 25, 50,<br />
60 Hz<br />
• Amplitude:<br />
• Beperkte bit-diepte: 8, 10, 16bit<br />
Een continu signaal (in deze illustratie 1D) kan worden benaderd<br />
door te bemonsteren (informatie van tussenliggende punten gaat<br />
verloren) en te discretiseren (de exacte amplitude gaat verloren)<br />
(c) public domain<br />
9
• Methode om bandbreedte te<br />
halveren<br />
• 1/2 lijnen weglaten<br />
• Even / oneven raster (field)<br />
• Display moet interlaced<br />
materiaal kunnen weergeven<br />
• CRT kan dat<br />
• Andere: de-interlacen<br />
Wednesday 28 November 2012<br />
Interlacing<br />
10
Naamgeving<br />
rasterformaten<br />
• Zootje, vooral fieldrate vs framerate “1080i60”=?<br />
• EBU-notatie<br />
• aantal beeldlijnen<br />
• interlaced of progressief<br />
• /<br />
• Frames per seconde<br />
• 576i/25,1080i/25, 720p/50, 1080p/50<br />
• 480i/29.97<br />
Wednesday 28 November 2012<br />
11
•<br />
Tussenresultaat<br />
Video is<br />
• Een opeenvolging van frames, F frames per seconde<br />
• Van X bij Y pixels<br />
• Elke pixel heeft 3 waarden: rood, groen & blauw, elk<br />
voorgesteld met B bits<br />
• (impliciete) specificatie welk rood, groen, blauw en<br />
wit<br />
• Bitrate: 3·B · X·Y · F bits / seconde<br />
• HD: 3·16 · 1280·720 · 50 = 2.212 Gbps<br />
Wednesday 28 November 2012<br />
12
Wednesday 28 November 2012<br />
Perceptueel uniforme<br />
• Contrastgevoeligheid is ~1%,<br />
onafhankelijk van de lichtintensiteit<br />
• Ons oog is logaritmisch gevoelig<br />
voor licht<br />
• Best de discretisatie ook nietlineair<br />
doen, maar “perceptueel<br />
uniform”<br />
• Aangeduid met * of ’ na het<br />
symbool: L*a*b*, R’G’B’, Y’CbCr<br />
• 1-100 @ 0.01 lineair: 10000 (14<br />
bits)<br />
• 1-100 @ +1% expo: 463 (9 bits)<br />
codering<br />
Twee licht-gradienten. De bovenste is een lineaire gradient van zwart<br />
naar wit; de onderste is een niet-lineaire gradient.<br />
Twee egale vlakken met evenveel ruis: links 10 licht ±5 ruis;<br />
rechts 90 licht ±5 ruis<br />
13
Perceptueel uniforme codering<br />
• Camera doet omzetting van<br />
lineair licht naar perceptueel<br />
uniform waarden<br />
• Monitor doet omzetting van<br />
perceptueel uniforme waarden<br />
naar lineair licht<br />
• Toevallig heeft een CRT een<br />
heel gelijkaardige spanning →<br />
licht curve!<br />
Wednesday 28 November 2012<br />
Gamma curves<br />
(c) Wikipedia – Jurohi<br />
14
Gevoeligheid aan kleur en<br />
Wednesday 28 November 2012<br />
• Het oog is gevoeliger aan lichtdonker<br />
contrasten dan aan<br />
kleur-kleur contrasten<br />
• Zowel spatiaal<br />
• Als temporaal (15Hz)<br />
licht<br />
De rechter helft toont een zwart-wit ladder; de<br />
linker helft een rood-groen ladder. De zwart-wit<br />
ladder is nog duidelijk te zien; de rood-groen<br />
ladder lijkt geel.<br />
15
R’G’B’ → Y’CbCr<br />
• R’G’B’ omvormen naar Luma (bevat geen kleur-informatie)<br />
en Chroma (twee kleur parameters)<br />
• Historisch nodig voor compatibiliteit kleur & ZWtelevisie<br />
• Y’CbCr in de digitale wereld<br />
• Y’PbPr in de analoge wereld<br />
• Y’UV en Y’IQ zijn geschaalde versies gebruikt in PAL en<br />
NTSC<br />
• De parameters voor de omvorming moeten gekend zijn:<br />
• Rec. 601 (SD) of Rec. 709 (HD)<br />
Wednesday 28 November 2012<br />
16
Wednesday 28 November 2012<br />
Chroma subsampling<br />
• Het kleurensignaal een lagere<br />
resolutie geven dan het<br />
lichtsignaal<br />
• Analoge wereld: enkel<br />
horizontaal /2<br />
• Digitale wereld: kan ook<br />
vertikaal en zelf temporeel<br />
• Naamgeving is verwarrend<br />
Y’<br />
Y’<br />
Y’<br />
Y’<br />
Cb<br />
Cb<br />
Cb<br />
Cb<br />
Cr<br />
Cr<br />
Cr<br />
Cr<br />
4:4:4<br />
4:2:2<br />
4:1:1<br />
4:2:0<br />
17
•<br />
Tussenresultaat<br />
Video is<br />
• Een opeenvolging van frames, F frames per seconde<br />
• Van X bij Y pixels luma, X/Sh bij Y/Sv pixels chroma<br />
• Elke pixel heeft 3 waarden (mogelijk gedeeld met naburige<br />
pixels): luma & twee chroma’s, elk voorgesteld met B niet<br />
lineaire bits<br />
• (impliciete) specificatie van de gebruikte RGBW kleuren en de<br />
matrix voor Y’CbCr-omzetting<br />
• Bitrate: (1 + 1/(SvSh) + 1/(SvSh))·B · X·Y · F bits / seconde<br />
• HD-SDI: (1+.5+.5)·10 · 1280·720 · 50 = 0.9126 Gbps<br />
(+HBI+VBI)<br />
Wednesday 28 November 2012<br />
18
Wednesday 28 November 2012<br />
• Definities<br />
Inhoud<br />
• “Analoge” compressie-technieken<br />
• “Digitale” compressie-technieken<br />
19
Contrastgevoeligheid oog<br />
• “Naburige pixels zijn gelijkaardig”<br />
• De contrastgevoeligheid van ons oog is afhankelijk van de spatiale<br />
frequentie<br />
• Piek bij 5 à 10 c/º (0.5%)<br />
• Cut-off rond 50 à 60 c/º<br />
• Lage en vooral hoge spatiale frequenties kunnen minder nauwkeurig<br />
worden opgeslaan<br />
Wednesday 28 November 2012<br />
Sinusoidale contrastgevoeligheid: van 0c/lp tot 1c/lp (horizontaal) aan 0.3% tot 100%<br />
contrast (verticaal)<br />
20
Wednesday 28 November 2012<br />
Achterhalen spatiale<br />
• Fourier transformatie en familie<br />
• Ontbindt een signaal in een<br />
som van (co)sinussen<br />
• Vaak Discrete Cosinus<br />
Transformatie (DCT) gebruikt<br />
frequenties<br />
De ontbinding van een blokgolf in een som van sinussen. Deze<br />
figuur toont de som van 1, 2, 3 en 4 sinussen.<br />
(c) Public domain<br />
21
• Complexe formule<br />
• Vaak beperkt tot kleine<br />
blokken: 4x4 tot 64x64 pixels<br />
• DC coëfficiënt + AC<br />
coëfficiënten<br />
• Interlaced materiaal: op field of<br />
frame doen?<br />
Wednesday 28 November 2012<br />
2D DCT<br />
De DCT-patronen voor een 8x8 pixel blok<br />
(c) Public domain<br />
22
Wednesday 28 November 2012<br />
Quantization Matrix &<br />
• Minder “cijfers na de komma”<br />
voor HF<br />
• Elke coëfficiënt delen door<br />
getal,<br />
• dan afronden, dit bepaalt de<br />
compressie<br />
• Enkel hier gaat kwaliteit<br />
verloren!<br />
Parameter<br />
6 10 13 16 18 23 25 27<br />
10 11 16 18 23 25 27 29<br />
13 16 18 23 25 27 29 31<br />
16 18 23 25 27 29 31 33<br />
18 23 25 27 29 31 33 36<br />
23 25 27 29 31 33 36 38<br />
25 27 29 31 33 36 38 40<br />
27 29 31 33 36 38 40 42<br />
De quantisatie-matrix zoals gebruikt in h.264<br />
23
Wednesday 28 November 2012<br />
Voorbeeld h.264 Intra<br />
frame<br />
1 20 30 40 50<br />
24
Tussenresultaat<br />
• (M)JPEG<br />
• DCT 8x8 blokken (na chroma subsampling, meestal 4:2:0)<br />
• D10 / IMX / SMPTE 356M<br />
• DCT 8x8 blokken (na subsampling)<br />
• 4:2:2 chroma subsampling<br />
• DV25<br />
• DCT 8x8 blokken (na subsampling)<br />
• 4:2:0 subsampling; 4:1:1 voor 480i/29.97<br />
Wednesday 28 November 2012<br />
25
Inter frame codering<br />
• “Opeenvolgende frames zijn gelijkaardig”<br />
• Stukken van vorige frame(s) herbruiken, enkel verschillen<br />
doorsturen<br />
• Interlaced materiaal: Frame of field?<br />
• Frames zijn niet meer onafhankelijk<br />
• Group Of Pictures (GOP):<br />
• Eerste frame is intra-coded (onafhankelijk)<br />
• Volgende frames zijn inter-coded<br />
• Meestal eindige lengte: inzappen, error-containment<br />
Wednesday 28 November 2012<br />
26
Motion Vectors<br />
• SKIP blok: Behoud de pixels uit het vorige beeld<br />
• MV: Neem blok uit vorige beeld dat 2 pixels hoger<br />
en 4 pixels meer naar links stond<br />
• MPEG1 & 2: enkel vorige frame<br />
• h.264: tot 16 frames terug, ¼ pixel nauwkeurigheid<br />
• Residu: En doe er nog deze aanpassingen aan<br />
• Standaard intra-frame compressie<br />
Wednesday 28 November 2012<br />
27
Wednesday 28 November 2012<br />
Demo MVs<br />
• Decodeer-fouten blijven de hele GOP zichtbaar<br />
• Wat als de I-frame vervangen wordt door een<br />
andere I-frame?<br />
28
B-frames<br />
• Combinatie maken van twee frames<br />
• Vaak een “vorig” en een “volgend” frame<br />
• Twee Motion vectoren<br />
• Met gewichten (in h.264)<br />
• Decoding volgorde vs Display volgorde<br />
Wednesday 28 November 2012<br />
29
Wednesday 28 November 2012<br />
Entropie-coding<br />
• “ZIP-en” van het resultaat<br />
• Huffman coding<br />
• Vaak voorkomende symbolen korte codes geven<br />
• Context Adaptive Variable Length Coding (CAVLC)<br />
• symbool-code mapping wordt dynamisch aangepast<br />
• Context Adaptive Binary Arithmetic Coding<br />
(CABAC)<br />
30
•<br />
•<br />
•<br />
Levels & profiles<br />
Hele hoop mogelijkheden om video te comprimeren<br />
•<br />
•<br />
Wednesday 28 November 2012<br />
Profiles geven aan welke tools een decoder kan<br />
gebruiken<br />
e.g. h.264 baseline profile: geen CABAC, geen B-<br />
frames, …<br />
Levels geven aan in welke mate een decoder die tools<br />
kan gebruiken<br />
e.g. h264 Level 1: frame size
Wednesday 28 November 2012<br />
• Charles Poynton<br />
Digital Video and HDTV<br />
• Ian Richardson<br />
H.264 and MPEG-4 video<br />
compression<br />
Referenties<br />
32