Writeable's - Clarification

Started by M.Carlsen, November 19, 2015, 04:39:16 PM

Previous topic - Next topic

M.Carlsen

Dear Phil,

I hope you can answer a few questions..

1) On this page http://www.exiftool.org/TagNames/EXIF.html the Writeables are extremely confusing to me. I have NO idea, what the signs mean --> You have

int16u
int16u!
int16u[n]!
int16u!:
int32u*
int16u/

Now I DO know what an int16 unsigned or signed integer means... But all those exotic signs following the nomenclature (* and !: and / and ! and [n]!) --- I have NO CLUE what they mean. I DID try to find some kind of explanation on the site. But I am alas at a loss. Would you mind explaining this to me (and I imagine many others) ?


Question 2

Would you mind explaining to me - why on earth EXIF or whoever came up with the idea, chose to store values in SO MANY different formats. Sometimes I get the idea that people who come up with stuff like this are simply bored and thus want to complicate things so that they feel important ;-)
But I am more than willing to learn and I would LOVE an explanation...

i.e - WhiteLevel is stored as int32u[n]! (I get the int32 but the [n]! what DOES it mean???) And why store a 14bit image's white level in 32bit unsigned int given the fact that 14 bits max is 16384 -1 ??? Why not store it in a 16bit uInt.

BlackLevel is stored as rational64u[n]! (what are the characters after the u denoting ????) why not store THAT in the same format as white level and again for a 14 bit image it seems weird to chose to store THAT value in a 64 bit container ???

Perhaps and most likely it is just lack of knowledge messing with my mind here but I would sure like to know why all this is so darn complicated ;-)

Thanks in advance

M.C

PS - One last thing that add to the confusion...

FocusDistanceUpper is stored in an int16u - however the value when read out is 16.29 -- why store an int as a decimal ???? would THAT not lead to trouble ?

StarGeek

Quote from: M.Carlsen on November 19, 2015, 04:39:16 PM
Now I DO know what an int16 unsigned or signed integer means... But all those exotic signs following the nomenclature (* and !: and / and ! and [n]!) --- I have NO CLUE what they mean. I DID try to find some kind of explanation on the site. But I am alas at a loss. Would you mind explaining this to me (and I imagine many others) ?

You have to go up a level to the main tag name page
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

M.Carlsen

@stargeek;

quite embarrassing that I have overlooked this clear-cut information. Thanks a whole lot for pointing me in the right direction.

This clearly answers question number 1 on my list ;-)

Phil Harvey

Quote from: M.Carlsen on November 19, 2015, 04:39:16 PM
Question 2

Would you mind explaining to me - why on earth EXIF or whoever came up with the idea, chose to store values in SO MANY different formats.

That is a philosophical question I'm afraid.

QuoteWhiteLevel is stored as int32u[n]! (I get the int32 but the [n]! what DOES it mean???) And why store a 14bit image's white level in 32bit unsigned int given the fact that 14 bits max is 16384 -1 ??? Why not store it in a 16bit uInt.

"[n]" means that is is an array with a variable number of items.  (Usually 3 for RGB images, but it may be 1 for greyscale images, or 4 for RGBA images.)  I don't know why it is 32 bits.

QuoteBlackLevel is stored as rational64u[n]! (what are the characters after the u denoting ????) why not store THAT in the same format as white level and again for a 14 bit image it seems weird to chose to store THAT value in a 64 bit container ???

A rational makes more sense to me since it is typically an average of many pixels, so an simple integer doesn't give that precision.

QuoteFocusDistanceUpper is stored in an int16u - however the value when read out is 16.29 -- why store an int as a decimal ???? would THAT not lead to trouble ?

There is a formula applied to convert the integral value to metres.  In this case, I think the integer is just divided by 100.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).