Avkoda Canons metadata med Exiftool

Exchangeable image file format, Exif, är en öppen standard som innebär att kameratillverkaren bäddar in viktig data i bildfilen. Exempelvis vilket fabrikat och vilken kameramodell. Även kamerainställningar som bländare/ISO/slutartid, datum/tid och geografisk position. Utöver det finns det även någonting som heter MakerNote.

I MakerNote får kameratillverkaren själv bestämma sina egna metadatataggar. Inte heller behöver kameratillverkaren berätta vad taggarna innebär eller är till för och kan t.o.m. välja att kryptera taggarna.

Varför en kameratillverkare inte publicerar en lista över vad taggarna i MakerNote betyder är en gåta. Speciellt när vissa delar innehåller viktig information som exempelvis black level, d.v.s. den förskjutning man måste göra med råfilen för att den inte ska få färgstick.

Black level 2048 till vänster vs black level 0 till höger.

Att felsöka andras kameraproblem försvåras också när man inte vet vilka specifika inställningar som använts eller vilka temperaturer kameran haft.

Det verkar bra märkligt att från kameratillverkarens sida bädda in en mängd information såsom slutarläge, exponeringsräknare eller flimmerreducering för att sedan aldrig låta fotograferna ta del av dem.

Exiftool

Ett populärt program för att analysera metadata är Exiftool och med programmet kan man själv försöka sig på att avkoda just sådana metadatataggar i fältet MakerNote som fortfarande är okända. Exiftool har för Canon en förteckning över vilka taggar som är avkodade. Tänk på att de inte behöver stämma till 100%. Exempelvis taggen som döps till Measured EV 2 som man trodde hade med uppmätt exponeringsvärde att göra har med nyare kameror värden som är helt uppåt väggarna.

Exiftool för Linux

Ladda ned senaste version, packa upp och lägg filen exiftool och dess mapp lib i din lokala användarmapp Hem>.local>bin. Se till att visa dolda filer är ikryssad.

Öppna terminalen någonstans och kontrollera att det är senaste version du har genom att skriva:

$ exiftool -ver

Nu kan du börja analysera dina råfiler. Med kommandot -U visas okända taggar och om man lägger till kommandot -G får man reda på om det rör sig om Exif, MakerNotes eller Composite (taggar som Exiftool själv skapar genom att kombinera vissa befintliga taggar).

Exempel där * syns är vad som kallas för wildcard. Har man 100 råfiler i CR2-format behöver man inte beskriva alla vid namn utan alla filer som har CR2 i slutet kommer användas. Fungerar i Linux men ej i Windows.

$ exiftool -U -G *CR2

För att få ned allt till textfiler kan man lägga till -w för write.

out är mappnamnet och  %f_%e.txt innebär att varje textfil får samma namn som råfilens namn.

exiftool -U -G -w out/%f_%e.txt *CR2

Linux: diff i Terminalen

Öppna Terminalen i den mapp där du har dina textfiler och välj två som du vill analysera skillnaden hos.

$ diff _M7D0195_CR2.txt _M7D0196_CR2.txt
Kommandot diff i Linux för att jämföra skillnader.

För att exportera allt till en textfil lägger man till följande i slutet:

$ diff _M7D0195_CR2.txt _M7D0196_CR2.txt > Ny-textfil.txt

Windows: fc i CMD

För att jämföra textfilernas skillnad kan man öppna kommandotolken, CMD, i den mapp man har sina textfiler liggandes. Därefter skriver man när man jämför textfilerna:

fc _M7D0195_CR2.txt _M7D0196_CR2.txt
Kommandot fc i Windows för att jämföra skillnader.

För att exportera allt till en textfil lägger man till följande i slutet:

fc _M7D0195_CR2.txt _M7D0196_CR2.txt > Ny-textfil.txt

Exempel från verkligheten

R6 flimmerreducering

Jag tog totalt 40 bilder med flimmerreduceringen från en R6 av/på.

Därefter jämförde jag de okända taggarna och kunde se att en tagg, Canon File Info 0x0020, ändrade sig i takt med att jag aktiverade och inaktiverade flimmerreduceringen. Genom att lägga till kommandot nedan kunde jag isolera taggen för att få en enklare överblick.

 |grep "File Info 0x0020"

Det blev rätt tydligt att taggen hade med flimmerreduceringen att göra.

exiftool -U /home/macgyver/Publikt/Canon/Exiftool/0x0020/*CR3 |grep "File Info 0x0020"


Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 0
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1
Canon File Info 0x0020          : 1

Därefter postade jag informationen i Exiftools forum och bidrog till att taggen accepterades av Exiftool.