Damocles skrev:
Njae, det lär vara rätt meckigt att få allting korrekt att omvandla tillbaka till ett raw-format, speciellt från jpg. Dels är det ju 12-bitar i de flesta RAW-formaten, så om inte utgångsfilen är 16-bit tiff och dessutom helt orörd lär man förlora en hel del information.
I RAW-filerna så är ju varje pixel bara enfärgad och de slutgiltiga RGB värdena interpoleras in från omgivningen bland annat med en korrigeringskurva efter vald vitbalans. Det lär vara rätt meckigt att splitta varje pixel till sina grundkomponenter och säga att en speciell pixel har en viss färg och från vilka omgivande pixlar de kommit.
Varför det? Så länge man vet vilken pixel i råformtet som ska vara grön, röd, och blå förstår jag inte alls varför just *det* ska vara så svårt. Det beror på ju helt på vilken algoritm som har används.
Låt oss som analogi anta att vi har en rad med burkar (numrerade 1..n) och att det i varje burk finns en lapp med ett tal.I de ojämna burkarna står numret på en röd lapp och i jämna burkarna på en grön lapp.
Därefter applicerar vi följande algoritm på burkarna:
För varje burk
, lägg i en lapp som är medelvärdet av talen på ursprungslapparna i burk n-1 och n+1. Låt färgen på den nya lappen bli densamma som för färgen på lapparna i burkarna intill.
För burk 1, så lägg i en lapp men urpsrungstalet i burk 2, och för burk n, lägg i en lapp med ursprungstalet i burk n-1.
Denna algoritm är ju *mycket enkelt* reverserbar, och är ett exempel på en enkel uppräkning från rå till rgb.
Frågan är hur mycket destruktiva element som finns i de verkliga uppräkningarna, men saken är egentligen tämligen enkel och rör huruvida algoritmen som överför rådata till rgb-data är "tillräckligt" injektiv eller ej.
Under antagandet att det inte finns 2 olika rå-bilder som ger upphov till samma (16bit) rgb-data så är algoritmen injektiv.
Är algoritmen injektiv går det med säkerhet att från rgb-data att exakt bestämma den rå-data som skapade rgb-data. Kan det finnas 2 olika uppsättningar rådata som genererar exakt samma rgb-data? Det är inte omöjligt. Finns det massor med olika rådata som genererar samma rgb-data - betvivlar jag. Vad jag menar med detta är att algoritmen sannolikt är "tillräckligt" injektiv för att det inte ska ställa till några större problem.
Kravet blir än lite enklare om vi konstaterar att vi *inte* måste generera en rå-bild som är helt identisk med den ursprungliga rå-bilden, utan endast en bild som någorlunda uppfyller kravet för det rådande rå-formatet. Jmf med att omvandla jpg till tiff, och sedan tillbaka till jpg igen.
Alla dessa omvandlingar går att göra, men den slutliga jpg-bilden blir inte identisk med den ursprungliga jpg-bilden.
Med detta resonemang följer det ganska naturligt att man *kan* omvandla jpg, tiff eller vad det än må vara till rå. Det är vidare inte omöjligt att det för tex 16 bit tiff skulle kunna vara möjligt att *exakt* återskapa rå-formatet, men det är mer osäkert.
Frågan är bara *varför* man skulle vilja göra något sådant.
/ep