Ontspanning door compressie

13 december 2008

Kun je een uur film in 4 kilobyte stoppen? Nee, natuurlijk niet. Maar hoeveel
geheugen heb je dan nodig? Om die vraag te beantwoorden richten we ons naar
de informatietheorie. Deze theorie behandelt onder meer de condities waarin
foutvrije communicatie kan optreden en wat er gebeurt bij niet ideale condities,
zoals ruis op een communicatiekanaal. Een bekende wet, het Nyquist-Shannon-
samplingtheorema, zegt bijvoorbeeld het volgende: als je een analoog signaal
hebt, bijvoorbeeld voor tv, met een hoogste frequentie van f, dan moet je van
dat signaal met een tenminste twee maal zo hoge frequentie (2f) monsters
nemen (‘samplen’ op z’n goed Nederlands) om een getrouwe weergave van het
oorspronkelijke signaal te kunnen garanderen.

Neem bijvoorbeeld een Pal-videosignaal met een resolutie van 576 bij 720
pixels. Dat zijn 414.720 pixels per beeld. Een beeld wordt vierentwintig maal per
seconde ververst, dus dat geeft bijna tien miljoen pixels per seconde. Met
hoeveel bits moeten we een pixel coderen? Het oog kan onderscheid maken
tussen een miljard lichtniveaus en ongeveer honderdtwintig kleurgradaties. Dat
vertaalt zich in respectievelijk 23 en 7 bits, totaal 30 bits per pixel (ik heb even
buiten beschouwing gelaten dat de kleurgevoeligheid van het oog afhankelijk is
van de hoeveelheid licht). In ons voorbeeld betekent dat zo’n 300 miljoen bits
per seconde. In de praktijk gebruiken we veel minder. Stel dat we 15 bits
gebruiken, dan levert dat nog altijd 150 miljoen bits per seconde.

Een beeld bevat redundantie. Daardoor kunnen we met minder informatie uit
door op een speciale manier te coderen en we dus bijvoorbeeld een gekleurd
vlak dat in tien achtereenvolgende beeldjes wordt weergegeven, kunnen
aangeven door het kleurniveau te coderen en de coördinaten van het
betreffende vlak in de tien beeldjes. Bekende technieken zijn MPeg-2 met een
compressieverhouding in de ordegrootte van 30:1 en H.264 met een verhouding
van 50:1. In dat laatste geval levert ons voorbeeld een totale benodigde
opslagcapaciteit van 1,3 Gigabyte voor een film van 1 uur. Voor een HD-tv-beeld
(1920 bij 1180 beeldpunten) levert bovengenoemde redenering een benodigde
opslag capaciteit op van 7,3 Gigabyte.

Hoever kunnen we met compressie gaan? In een artikel in De Ingenieur van
augustus dit jaar stond een verhelderend verhaal over De Broncode, een boek
dat gaat over uitvinder Jan Sloot en zijn compressiemethode. De schrijver legt
daarin uit hoe die uitvinding volgens hem (en ook volgens mij) werkt. De
methode maakt gebruik van een geheugen met voorbeeldpixels. Een beeld wordt
dan gecodeerd door een tabel met getallen die naar de voorbeeldpixels wijzen.
Uit de combinatie van verwijstabel en voorbeeldpixelgeheugen kan dan het
oorspronkelijke beeld worden gereconstrueerd. Die verwijstabel kan daarmee
veel kleiner worden en volgens de auteur namen anderen dat geheugen als maat
voor de compressieverhouding. In dat geval kom je dan op een
compressiefactor van een miljoen. Maar in werkelijkheid komt die benadering
ruwweg meer overeen met een techniek zoals MPeg-2.

Wat zou een factor miljoen hebben betekend? Laten we weer uitgaan van
bovenstaand voorbeeld. Dan zou een beeld van 1920 bij 1180 HD-beeldpunten
na compressie met deze factor een resolutie hebben overeenkomend met nog
maar een of twee HD-beeldpunten. En dat zou natuurlijk onzin zijn. En bij een
compressiefactor van 50 (H.264) is de resolutie equivalent met zo’n 45.000 HD-
beeldpunten.

Natuurlijk is er altijd ruimte voor verbetering, maar elke bit die we uit een
beeldelement verwijderen, komt overeen met een 6 dB verslechtering van de
signaal-ruisverhouding. Die ruis wordt voor het grootste deel gevormd door de
compressiefactor. Dus meer compressie en deze ruis begint te overheersen tot
er niets meer van een film zichtbaar is. Misschien is dat ook wel zo rustig.

Cees Jan Koomen
 
 
Facebook Twitter LinkedIn Translate Favorites More Services

 

Cees Jan Koomen (cjk@gte.net) is in
Silicon Valley en Nederland
betrokken bij startende bedrijven.