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.