|
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 |
|
Cees Jan
Koomen (cjk@gte.net) is in
Silicon Valley en Nederland
betrokken bij startende bedrijven. |
|