Redactie - 17 juli 2016

Dropbox lanceert nieuwe tool voor 'streaming image'-compressie

Dropbox komt met een tool ontwikkeld genaamd 'Lepton', door middel van deze tool kan jpeg-beeldmateriaal zonder verlies gemiddeld 22 procent gecomprimeerd worden. Dit scheelt naast veel opslagruimte ook veel in het direct streaming serveren van beelden en tevens drukt het bandbreedtegebruik.

Dropbox beschrijft op zijn blog dat de tool al heeft ingezet om 16 miljard beelden te comprimeren die op de servers van het bedrijf opgeslagen staan. Dit zou al een besparing van meerdere petabytes opleveren.

Voorspellen
Lepton voorspelt coëfficiënten in jpeg-blokken en voert deze voorspellingen als context in een rekenkundig model in. Lepton behoudt daarbij het originele jpeg-bestand bit-voor-bit. Het comprimeert de jpeg-bestanden met een snelheid van vijf megabyte per seconde en decodeert ze terug naar de originele bits met 15MB/s.

8x8 pixels
Een van de technieken die Lepton gebruikt, heeft te maken met het voorspellen van de verschillen in helderheid tussen groepen pixels. Het algoritme gebruikt daarvoor blokken pixels van 8 bij 8 pixels binnen de jpeg. Lepton kijkt naar de randen van een nog niet gecomprimeerd blok, dat omringd is door blokken waarbij de compressie al wel is uitgevoerd. Het algoritme weet de helderheidgradient van de randen van die blokken dus al. Op de scheidslijn tussen de gecodeerde en ongecodeerd blokken, neemt het algoritme in het midden een punt, en van hieruit wordt het verloop van de helderheid voorspeld. Lepton slaat vervolgens alleen de delta op tussen de voorspelling en de echte waarde.

Deterministisch
Uit automatische testprocessen die Dropbox tot nu toe met Lepton heeft gedraaid, blijkt dat het zich deterministisch gedraagt, ofwel de uitkomst is altijd gelijk aan de invoer. Dit heeft het bedrijf nu al met meer dan 4 miljard beelden getest. Dit betekent dat op het moment dat Dropbox een beeld voor de eerste keer verifieert, het weer decodeert naar de originele bits waaruit de ingevoerde jpeg bestaat. Als dit zo is, dan kan ook in de toekomst altijd weer naar het originele bestand teruggegaan worden.

Om te voorkomen dat er toch fouten gemaakt worden door het compressie-algoritme, wordt elk gecomprimeerd bestand ten minste één keer gedecodeerd naar het ongecomprimeerde bestand en wordt het resultaat bit-voor-bit vergeleken met het origineel voordat het door Lepton gecomprimeerde bestand wordt doorgezet.

Het compressie-algoritme is open source en staat op GitHub. Dropbox nodigt de community uit mee te denken aan verbeteringen van het algoritme.