Waar blijft de opvolger van jpeg?

De 'strijd' om een nieuw beeldformaat

Inleiding

Als je een foto maakt op wat voor apparaat dan ook, wordt deze meestal opgeslagen als jpeg-bestand. Dat is de standaard die we al sinds 1992 gebruiken op camera's, smartphones en andere apparaten. In de jaren negentig was jpeg een kleine revolutie en luidde het mede de transformatie van analoog naar digitaal in. Het werd immers het standaardformaat voor foto's en ander beeldmateriaal, en dat is het anno 2018 nog steeds. Wat minder fijn is, is dat er sindsdien nauwelijks iets is veranderd. In feite werkt je smartphone en hypermoderne camera dus nog steeds met een gedateerd en technisch inferieur bestandsformaat van begin jaren negentig, en dat terwijl er juist heel veel ontwikkeling is geweest op het gebied van kwaliteit, compressie en opslagmogelijkheden. Zie het voorbeeld hieronder.

Het effect van zware compressie met jpeg (links) versus een modern hevc-compressiealgoritme: bpg

Wat is het probleem?

Er zijn nogal wat ontwikkelingen geweest op het vlak van digitale formaten. Enkele praktijkvoorbeelden zien we in de audio- en videowereld, waar de klassieke mp3's en mpeg2-bestanden niet langer alleenheerser, maar waar betere alternatieven bestaan en daadwerkelijk worden gebruikt. Denk bijvoorbeeld aan aac, ogg vorbis en flac voor audio, en mpeg4 en hevc voor video. Het jpeg-formaat heeft die ontwikkeling niet doorgemaakt en dat ligt niet aan een gebrek aan alternatieven.

Net als bij audio en video zijn er verschillende knelpunten: lossless versus lossy compressie, sterk verouderde compressiealgoritmen en een lage, 8bit-kleurdiepte. Door het eerste en laatste is de kwaliteit veel lager dan mogelijk is en door het tweede punt neemt het bestandsformaat zestig procent meer ruimte in beslag dan feitelijk nodig is. Voor het maken van foto's heb je daardoor slechts één alternatief: fotograferen in het rawformaat. Dat is echter weer onnodig groot en niet compatibel met veel apparaten en apps, waardoor je verplicht wordt de bestanden via software te bewerken en om te zetten. Voor veel mensen is dat een drempel.

Het probleem beperkt zich niet tot foto's. Ook 'animated gifs' met slechts 256 kleuren worden nog steeds op het web gebruikt, terwijl het png-formaat online veel gebruikt wordt voor transparantie, maar onnodig veel ruimte in beslag neemt door lossless compressie.

Een nieuwere jpeg-versie, die nu al bestaat, zou het beste van beide werelden zijn; een modern bestandsformaat dat weinig ruimte in beslag neemt en maximale kwaliteit biedt, ook voor beeldbewerking. Verderop in dit artikel leggen we uit wat dit nieuwe jpeg-formaat zoal kan en welke alternatieven er nog meer zijn, maar eerst gaan we iets dieper in op de manco's van het huidige jpeg-formaat.

Compressie en kleurdiepte

Aan de huidige jpeg-standaard kleven twee grote nadelen. Het bestandsformaat dat in camera's en smartphones wordt toegepast, gebruikt een zwaar verouderde compressievorm. Iedere keer dat je een jpeg-bestand opnieuw opslaat, wordt opnieuw compressie toegepast en gaat er beeldinformatie, lees: beeldkwaliteit, verloren.

Compressie

Er bestaan twee soorten compressie: lossless en lossy. Beide hebben als doel om de bits en bytes zo efficiënt mogelijk op te slaan, zonder dat onnodig veel ruimte wordt gebruikt. Lossless werkt als een zipbestand; data wordt op een slimme manier efficiënt opgeslagen. Stel je hebt de volgende tekst: aaaaabbbccccccccccccccc. Dit kun je letterlijk zo opschrijven, maar ook als a5b3c15. Dat laatste neemt veel minder ruimte in beslag. Bij lossless compressie is wel sprake van compressie, oftewel het kleiner maken van het bestand, maar blijft alle data intact. Je kunt een bestand dus kleiner maken zonder kwaliteitsverlies, omdat je altijd het origineel kunt reconstrueren. Dit is hoe raw, met dng als voorbeeld, over het algemeen werkt; alle beeldinformatie blijft behouden.

Een concreet voorbeeld van de gevolgen van compressie. De linkerfoto is het origineel en bevat weinig compressie. De rechterfoto bevat veel compressie, wat duidelijk is terug te zien aan de kleurgradaties in de lucht en de blokcompressie in de muur.

Lossy compressie, die voor het jpeg-, maar ook voor het mp3-formaat wordt gebruikt, is een vorm van destructieve compressie, want hierbij wordt 'overtollige' informatie weggegooid. Een blauwe lucht ziet er voor onze ogen egaal uit, wat je kunt opvatten als oneindig veel tinten blauw. Er kan best een aantal tinten blauw verdwijnen zonder dat we verschil merken. Als de lucht tot één tint blauw wordt gereduceerd, zouden we dat zien, maar niet als het een paar duizend tinten minder zijn of de compressie slim wordt ingezet. Bij jpeg wordt de compressie in blokken van 8x8 pixels toegepast, wat ook zichtbaar is in de afbeelding hierboven.

Lossy compressie scheelt enorm in de omvang van een beeldbestand. Waar een omgecomprimeerde foto 60MB groot kan zijn en lossless gecomprimeerd 40MB, kan dat bij jpeg worden gereduceerd tot slechts 6MB of minder. Dat scheelt dus een factor tien, waardoor meer foto's in het geheugen of op een sd-kaartje passen. Vroeger was dat pure noodzaak, want de geheugenopslag was beperkt. Tegenwoordig is dit minder belangrijk, want geheugen is goedkoop geworden. Hoewel je vaak de mate van compressie kunt instellen, gebruiken smartphones en camera's nog steeds de jpeg-standaard uit 1992, terwijl er tegenwoordig betere alternatieven zijn, met slimmere compressie en een grotere kleurdiepte. Bovendien, telkens als je het bestand opnieuw opslaat, wordt opnieuw compressie toegepast en gaat dus weer beeldinformatie verloren. Met lossy compressie neemt de beeldkwaliteit dus altijd af.

Bits, kleurdiepte en dynamisch bereik

Los van kleurverlies door compressie gebruikt jpeg slechts 8bit-kleurinformatie, tegenover 12bit tot 16bit in tiff en raw. Dat verschil is enorm. Zoals je weet, worden gegevens bewaard als enen en nullen. Een foto met een bitdiepte van 1 zou bestaan uit 0 en 1, oftewel van iedere pixel zou simpelweg vastgelegd kunnen worden of hij zwart of wit is. Reken dat door en dan besef je dat je met 8bit alle combinaties krijgt met een numerieke schaal van 0 tot en met 255, oftewel 256 helderheidsgradaties per kleurkanaal. Met drie kleurkanalen, rgb, betekent dat dus een weergave van in totaal 16,7 miljoen verschillende kleurtinten: r256xg256xb256.

Dat lijkt heel wat en het is voor normaal gebruik ook prima, maar voor beeldbewerking is het niet optimaal, omdat niet alle kleurgradaties worden vastgelegd, nog los van eventuele schadelijke compressie. Een 8bit-bestand, zoals jpeg, kan maximaal circa acht stops aan dynamisch bereik vastleggen. Een moderne camerasensor is in staat om 10bit tot 14bit aan dynamisch bereik vast te leggen, dus is het zonde dat een groot deel daarvan simpelweg wordt weggegooid, vaak met colour banding als ongewenst resultaat. Een rawbestand kan tien à zestien stops bevatten, mede afhankelijk van de analoog-naar-digitaalconverter, die meestal 12bit tot 14bit is. Simpel samengevat: hoe meer bits, hoe groter het belichtingsbereik zonder dat colour banding optreedt.

Witbalans en ruis

Als je een foto maakt met een smartphone of fotocamera, wordt deze eerst rekenkundig onder handen genomen. Allereerst om het resultaat te optimaliseren door de kleurverzadiging en het contrast op te schroeven, het beeld te verscherpen, ruis kunstmatig te verminderen en de details in lichte en donkere delen te verbeteren. Vooral smartphones peppen foto's flink op zodat ze er beter uitzien. Bij camera's met verwisselbare lenzen is dat veel minder het geval. Hoe dan ook, het resultaat wordt uiteindelijk opgeslagen als jpeg-bestand.

Op dat moment komen de nadelen van het jpeg-bestand aan het licht, nog los van de eerder genoemde gevolgen van de lossy compressie en beperkte kleurdiepte. Het eerste nadeel is dat de witbalans vast komt te liggen. Dat kan leiden tot kleurzwemen, bijvoorbeeld te oranje of te blauw, die bij een jpeg-foto lastig te corrigeren zijn. Het tweede nadeel is dat de camera softwarematige ruisreductie toepast als een foto in een donkere omgeving is genomen. Dat filtert lelijke ruis weg, maar maakt een foto ook minder scherp. Vooral bij camera's met een kleine sensor, zoals een smartphone, zijn daar erg gevoelig voor en dat leidt dat tot minder mooie resultaten. Als je je foto's niet in jpeg, maar in raw opslaat, kun je zowel de witbalans als de ruisreductie zelf optimaliseren, bijvoorbeeld met gespecialiseerde software zoals Lightroom of Noise Ninja. Met een nieuw jpeg-formaat zou dat ook kunnen.

De eerste foto is een onbewerkte jpeg waarbij ruisreductie is toegepast. De tweede foto toont de onbewerkte rawfoto zonder ruisreductie, maar met kleurruis. De laatste is een door ons bewerkte rawfoto.

Witbalans

Dankzij extra kleurgradaties en niet-gecomprimeerde beeldinformatie van het rawformaat kun je zonder kwaliteitsverlies achteraf de witbalans aanpassen. Een verkeerde witbalans is een van de meest voorkomende 'fouten' van digitale camera's. Dit wordt veroorzaakt doordat de camera de witbalans verkeerd inschat, met name door kunstlicht. Zonlicht heeft gedurende de dag steeds een andere kleurtemperatuur en ook kunstlicht is per type lichtbron, van gloeilamp, via tl-buis tot kaars, verschillend. Een stuk wit papier ziet er daardoor steeds een beetje anders uit. Het menselijke gezichtsvermogen corrigeert dit kleurverschil automatisch, waardoor een kleurafwijking ons niet of nauwelijks opvalt. Een camera is minder goed in staat om kleurafwijkingen te constateren en herstellen, al wordt de automatische witbalans wel steeds beter.

Kleurzwemen komen vooral voor in een omgeving met verschillende lichtbronnen, zoals een stad in het donker waarbij verschillende soorten kunstlicht door elkaar worden gebruikt: wit, blauw en geel. Dat soort beelden wordt meestal erg warm, oftewel oranje. Dat is te voorkomen door vooraf de juiste witbalans in te stellen, wat op de meeste smartphones standaard kan in de camera-app, al dan niet in de 'pro'-stand. Als je echter in raw hebt gefotografeerd, kan het ook achteraf, bijvoorbeeld in Lightroom (Mobile). Je kunt dus achteraf nog kiezen voor een voorgeprogrammeerde witbalans of deze zelf heel nauwkeurig instellen met een bepaalde kleurtemperatuur, uitgedrukt in kelvin.

Hieronder zie je een praktijkvoorbeeld. De eerste foto toont de originele, onbewerkte foto, waarbij de witbalans duidelijk te warm is. Bovendien bevat de foto overbelichte delen door felle lampen. De jpeg-versie van deze foto is gedeeltelijk te verbeteren, maar door de correctie van de oranje kleurzweem worden bepaalde delen juist iets te blauw. De hooglichten laten zich redelijk corrigeren, maar overbelichte delen kunnen hooguit grijs worden. In de rawversie zijn de witbalans en de overbelichte delen gecorrigeerd.

De originele foto is veel te oranje geworden doordat de witbalans zich liet beïnvloeden door het kunstlicht. Tegelijk zijn bepaalde delen van de foto overbelicht door felle lampen. Dit hebben we geprobeerd te corrigeren met zowel een jpeg- als een rawbestand.

Dynamisch bereik jpeg versus raw

De compressie en de beperkte kleurdiepte hebben ook grote gevolgen voor beeldbewerking. Een rawbestand bevat dus het maximale dynamische bereik, waardoor je veel meer bewerkingsmogelijkheden hebt. Zo kun je vrijwel zonder kwaliteitsverlies de belichting twee stops bijstellen of de schaduwen en hooglichten aanpassen, waardoor meer details in donkere en lichte gebieden zichtbaar worden. Bij jpeg-foto's is die beeldinformatie simpelweg niet aanwezig. Een ander voordeel van raw is dat je ongestraft achteraf de witbalans van een foto kunt aanpassen en dus heel eenvoudig kleurafwijkingen kunt neutraliseren.

Een concreet voorbeeld? Stel je wilt details van een overbelichte lucht redden. Dan heeft dat bij jpeg maar een beperkt effect. Bepaalde kleurgradaties zijn immers verloren gegaan door de compressie en die krijg je niet terug. Simpel gesteld: als witte lucht honderd procent wit is, wat bij overbelichting het geval is, dan kun je hier niets meer uithalen. De lucht kan alleen egaal grijs worden, maar dat ziet er niet uit. Als je foto opgeslagen is in raw, is de succeskans een stuk hoger. Dat zit hem dus in een combinatie van compressie en bitdiepte. De ruwe beeldinformatie die in het rawbestand is opgeslagen, bevat meer bruikbare beeldinformatie, die bij dergelijke beeldbewerking goud waard is. Dat is in de foto's hieronder ook goed te zien.