dinsdag 25 augustus 2009

Data validatie met DNG

In Maart 2009 schreef ik al eerder enthousiast over het DNG formaat maar sinds ik me er nog wat meer in heb verdiept is m'n enthousiasme alleen nog maar toegenomen…

Bij versie 1.2 van DNG die in maart 2008 werd uitgebracht werden een aantal zaken geïntroduceerd die niet in andere fotoformaten zijn te vinden. Een eigenschap die ik er hier even uit wil lichten is optie om een data validatie hash (MD-5) in het bestand op te nemen voor zowel de Ruwe afbeeldingsinformatie als het oorspronkelijke RAW bestand, mocht deze zijn ingesloten.
Hoe werkt dit nu?
Een hash is, eenvoudig gezegd, een unieke waarde die wordt berekend aan de hand van alle nullen en enen waaruit een foto bestaat.
Stel dat ik een foto heb waarvan ik weet dat die goed is omdat ik dat persoonlijk heb geconstateerd door hem te bekijken dan kan ik er een hashwaarde van berekenen. Dit getal bewaar ik dan en stel dat ik dan over een jaar zou willen controleren of de foto nog steeds goed is dan is opnieuw de hashwaarde te berekenen. De uitkomst kan ik vergelijken met het oorspronkelijke getal en beide zouden dus gelijk moeten zijn. Wanneer er ook maar een bit in de foto verandert is de uitkomst van de hash anders.
Mocht later middels het herberekenen van de hash inderdaad blijken dat er een verandering heeft plaatsgevonden dan is het bestand vrijwel zeker corrupt hoewel er ogenschijnlijk niets aan de hand hoeft te zijn. Het kan zelfs zijn dat de foto zonder problemen geopend kan worden maar toch is het bestand ongeoorloofd gewijzigd. Oorzaken hiervoor liggen vaak bij slecht geheugen, netwerkproblemen en fouten op de harde schijf en meestal is de corruptie dusdanig ernstig van aard dat er een backup nodig is om de situatie te herstellen.


Waarom zou je het zo ingewikkeld doen en niet opnieuw (periodiek) de foto openen om te controleren of hij nog steeds goed is? Nu, voor een individuele foto is het inderdaad een te omslachtige methode om op fouten te controleren maar voor grote hoeveelheden foto's kun je dit scenario (het maken van hashes en deze later controleren) wel automatiseren maar het bekijken van de afzonderlijke foto's met het menselijk oog niet.
Het berekenen van een hash aan de hand van een foto kon natuurlijk altijd al maar wat DNG nu zo bijzonder maakt is dat deze hashwaarde in het bestand zelf wordt opgeslagen als metadata. De hash heeft namelijk betrekking op het deel van het bestand (de afbeelding) welke niet zomaar uit zichzelf mag wijzigen. Wanneer de metadata van een DNG wordt gewijzigd zal de hashwaarde dus niet veranderen. Het grote voordeel van dit principe is dat alles bij elkaar in een enkel bestand (container) wordt gehouden en er geen ingewikkelde administratie of database hoeft te worden beheerd. Ieder individuele DNG kan op een willekeurige computer met een willekeurige applicatie worden gevalideerd zonder dat de oorspronkelijke context van dat bestand nodig is.

Een zichzelf validerend bestandsformaat dus!

Download hier de recentste DNG converter voor windows en hier die voor Mac. (dd feb 2016 was dit versie 9.4).


Update juni 2013: m.b.t. dit onderwep is het artikel van juni 2013 een aanvulling "De allerbeste nieuwe functie van Lightroom 5"

Geen opmerkingen: