Deze afbeelding van het Amerikaanse BJOC-logo (aan de rechterkant) is 158 pixels breed en 186 pixels hoog, in totaal 29.388 pixels. De BMP (bitmap) bevat alle pixels in het afbeeldingsbestand met 4 bytes per pixel. Dus de grootte van het bestand is ongeveer 120 KB.
Een BMP-bestand is een inefficiënte manier om informatie op te slaan. Als je kijkt naar de eerste 158 pixels in de bovenste regel, dan zie je dat ongeveer de eerste 60 wit zijn. dan komen er 5 geel/oranje pixels (dat is het bovenste deel van de "b"). en dan is de rest van de rij wit.
......
in plaats van 158 pixels individueel op te slaan kunnen we ze samendrukken met 'run-length'-versleuteling en dan gewoon zes waardes opslaan (3 getallen en 3 kleuren):
Aantal Pixels | Kleur-code |
---|---|
60 | FFFFFF |
5 | E5A84A |
93 | FFFFFF |
Tegenwoordig is de grootte van een afbeelding niet zo belangrijk, maar bedenk, ieder frame in een film is een afbeelding en denk dan even na over het versturen van informatie via het internet. Compressie maakt het makkelijker om een film te streamen.
Compressie zonder verlies bedenkt dat geen informatie verloren gaat.
Run-Length-versleuteling is een formaat dat gegevens samendrukt zonder verlies. Het verliest geen informatie. De originele afbeelding kan gereconstrueerd worden met elke pixel exact hetzelfde. Maar het run-length-algoritme werkt niet goed als er heel veel verschillende kleuren pixels zijn die niet opeenvolgend zijn. als de lengte van een kleurreeks slechts een enkele pixel betreft en de versleuteling codeert zowel de lengte van de reeks en de kleur dan heeft het 2 keer zo veel opslag nodig als wanneer je alleen de kleur van de pixel op zou slaan. Een ander compressie algoritme zonder verlies is PNG (Portable Network Graphics, je spreekt het uit als "ping").
Lossy bedenkt dat sommige informatie verloren raakt.
Lossy compressie-algoritmen kunnen de bestandsgrootte nog kleiner maken, maar de originele foto kan niet perfect worden gereconstrueerd; informatie raakt verloren. Dit zou verschrikkelijk zijn als deze algoritmen werden gebruikt om een computerprogramma of een boek te comprimeren, maar om een afbeelding te bekijken hoeft de afbeelding niet perfect te zijn. Evenzo kunnen geluiden en films lossy compressie overleven zonder dat de meeste mensen het merken.
Het meest gebruikte compressie-algoritme met verlies voor afbeeldingen wordt JPEG genoemd (of JPG, beide uitgesproken als "jee-peg" voor "Joint Photographic Experts Group", de naam van de commissie die het heeft uitgevonden). Met lossy algoritmen kan je meestal de mate van verlies aangeven.
Hieronder staan een originele, niet-gecomprimeerde BMP en een sterk gecomprimeerde JPG van een foto van
256 × 192 pixels. Kun je zien welke welke is?
Dit zijn de groottes van deze afbeelding in vier verschillende bestandtypes:
type | grootte |
---|---|
BMP, slaat iedere pixel individueel op (staat hierboven) | 148 kB |
PNG | 106 kB |
JPEG met minste compressie | 94 kB |
JPEG met meeste compressie (staat hierboven) | 5 kB |
Compressie zonder verlies (zoals PNG) is omkeerbaar; je kan de originele gegevens herconstrueren. Deze soort compressie werkt door onnodige gegevens te verwijderen.
Lossy Compressie, dus compressie met verlies (zoals JPG) is niet volledig omkeerbaar; je kan alleen een benadering maken van de originele gegevens. Deze soort compressie werkt door gegevens weg te halen waarvan mensen het niet zullen merken.