Alle data honderd keer
verkleind
Herbert Blankesteijn
Er gaat een groots gerucht op
internet. Het onbekende bedrijf ZeoSync zou een methode hebben ontwikkeld om
bestanden honderd keer kleiner te maken, ongeacht de aard van de bestanden, en
compleet omkeerbaar. Compleet omkeerbaar wil zeggen dat je uit de gecomprimeerde
versie het origineel exact kunt reconstrueren.
Als dat waar is, dan is het
geweldig. Alle harde schijven lijken dan opeens honderd keer zo groot. Al het
downloaden op internet lijkt dan opeens honderd keer zo snel te gaan. Het is te
mooi om waar te zijn.
ZeoSync doet twee beweringen.
In de eerste plaats maakt het niet uit wat voor bestanden je comprimeert. Je
krijgt ze hoe dan ook honderd keer zo klein. Volgens woordvoerder Robert St.
George lukt het zelfs met een vrijwel willekeurige rij getallen. In de tweede
plaats is dus de compressie exact ongedaan te maken. Die twee zaken zijn
behoorlijk tegenstrijdig.
Honderd keer samenpersen, dat
kan ik ook. Neem bijvoorbeeld een 24-bits kleurenfoto, sla die op in 8-bits
grijswaarden, en je wint een factor 65.000. Wat nou honderd keer? Enige
probleem is, dat je die kleuren nooit meer terugkrijgt. Je kunt het plaatje ook
kleiner maken, en ook die bewerking is onomkeerbaar. Dit is compressie met
verlies, en het is natuurlijk een flauw voorbeeld. Serieuze manieren om
plaatjes te comprimeren, bijvoorbeeld tot jpg-bestanden, gaan ook altijd met
verlies gepaard. Plaatjes in jpg-vorm hebben blokstructuren rond diagonale
lijnen. Bij compressie van muziek tot mp3-bestanden missen geluidsfreaks wat
hoge tonen. Compressie van video tot mpg-bestanden zorgt voor blokkige beelden
in snel bewegende passages. De oorspronkelijke, ongecomprimeerde informatie is
weg, tenzij natuurlijk het origineel als apart bestand is bewaard. Als je een
factor tien of meer wilt winnen moet je verlies van informatie accepteren. Dat
is een wet die komt bovendrijven in een zee van compressietechnieken.
Dat de methode van ZeoSync
verliesvrij is, is al een sterk verhaal. ZeoSync zegt bovendien dat honderd
keer comprimeren zonder verlies zelfs lukt als de oorspronkelijke data
'praktisch willekeurig' zijn.
Wat
is willekeurig? Tekst bijvoorbeeld is niet willekeurig. Sommige letters zoeken
elkaar op, zoals de e en de n. Door op wiskundige wijze naar herhalingen te
zoeken, zoals de lettercombinaties 'een' en 'ing', kan een computer elke tekst
tot ongeveer een kwart samenpersen zonder verlies aan informatie. Deze techniek
wordt gebruikt bij het 'zippen' van bestanden op de computer. Een programma als
WinZip doet dat zo snel, dat je het nauwelijks merkt. En zoals bekend is deze
bewerking inderdaad ongedaan te maken, want als WinZip een bestand of een
verzameling bestanden 'ontzipt', gaat dat precies even snel en vind je de
originelen ongeschonden terug. Maar bij deze verliesvrije compressie win je dan
ook maar een factor vier. Sterker, een willekeurige, echt onvoorspelbare reeks
getallen, zoals de decimale ontwikkeling van het getal pi, is hooguit een
factor twee kleiner te krijgen. Ik heb tien miljoen decimalen gedownload als
zipbestand, en de omvang was inderdaad ongeveer vijf MB. Verliesvrij
comprimeren, en dan toch met een factor honderd, dat lukt alleen in heel
speciale gevallen. Bijvoorbeeld bij een tekening van zwarte lijnen op een witte
achtergrond. Maar is dan ook geen willekeurige reeks beeldpuntjes; er zit
eindeloos veel herhaling in.
Een
bestand is niets anders dan een reeks tekens, en een verliesvrije techniek als
'zippen' ontdoet zo'n rij van de herhalingen. Blablablablabla wordt 5xbla. Dat
is korter. Herhaling wordt willekeur. Een eenmaal gecomprimeerd bestand valt
niet nogmaals te comprimeren. Je kunt het wel proberen, maar als de eerste
compressie goed is geweeest brengt de tweede ronde niet veel meer op. Hoe weet
ik nou dat het verhaal van ZeoSync niet deugt? Kan er nou niet een compleet nieuwe
techniek of wetenschap zijn uitgevonden? Nee.
Het
is simpel: ZeoSync beweert dat de aard van het bestand waarmee je begint er
niet toe doet. Dat betekent dat je bijvoorbeeld een tekst kunt comprimeren -
met een factor honderd. Het resultaat is weer een bestand waarvoor de bewering
van ZeoSync opgaat, hup, nog een keer een factor honderd kleiner. En
logischerwijs moet het nog een keer kunnen, en nog een keer. We zijn intussen
aan de honderd miljoen keer. En telkens kun je volgens Zeosync het origineel
nog ongeschonden terugkrijgen. Dat is klinkklare kletskoek.
Tekst
heeft niet alleen herhalingen van letters, het heeft ook grammatica, betekenis
en context. Door daar gebruik van te maken kun je een tekst comprimeren met een
factor honderd, duizend of meer. Dit stukje van 750 woorden kan ik samenvatten
als: ZeoSync zwamt. Dat is 375 keer zo klein, maar het is compressie met
verlies. Want uit die twee woorden kun je het origineel niet meer herstellen.
ZeoSync beweert een methode te hebben waarmee dat wel kan. Helaas, het kan
niet.