MaxR
TPF Noob!
- Joined
- Jan 15, 2011
- Messages
- 3
- Reaction score
- 0
- Location
- San Jose
- Can others edit my Photos
- Photos OK to edit
Hello,
First post on this forum.
I recently had a discussion regarding whether the 32 bit floating point format is more suitable than the 32 bit integer format for representing a high dynamic range photograph.
I've always believed that 32 float was the better of both types for this purpose. However, I've been presented with a number of arguments that I'm trying to understand, and I'd like your opinion:
Digital images are made up of discrete values.
32 bit float can only represent up to 2^24 discrete values.
32 bit int can represent up to 2^32 discrete values.
Therefore, an image using 32 bit int can represent a richer dynamic range than 32 bit float, simply because it can define the complete range with significantly many more values.
Still, intermediate operations using 32 bit int may end up in rounding up that could bring that 2^32 down - however, if such intermediate operations are done in, say, 64 bit float, the higher number of discrete values in 32 bit int would be preserved.
Now... 32 bit float can address number much higher than 32 bit int, and this, along with the precision supposedly added by 32 bit float is what has always made me think that float 32 can represent better the dynamic range of an image, but it seems, well, I'm trying to understand, that this discretization along with the usual normalization that goes along when defining the dynamic range of an image, throws that theory out of the window (?) and in the end, the main advantage of 32 bit float versus 32 bit int is in the intermediate operations, but then this is no longer an advantage if for intermediate operations with a 32 bit int image we use 64 bit float, being then processing time the only penalty of using 32 bit int, but not precision or "richness" of the defined dynamic range.
I do understand how the IEEE 32 bit float format works, but I'm still trying to digest putting all this together, as anywhere I look, people praise 32 bit float over 32 bit int. I guess my question could also be: Can a particular software make better use of defining the dynamic range of an image using 32 bit int than by using the best it can get from using 32 bit float?
Thanks!
Max
First post on this forum.
I recently had a discussion regarding whether the 32 bit floating point format is more suitable than the 32 bit integer format for representing a high dynamic range photograph.
I've always believed that 32 float was the better of both types for this purpose. However, I've been presented with a number of arguments that I'm trying to understand, and I'd like your opinion:
Digital images are made up of discrete values.
32 bit float can only represent up to 2^24 discrete values.
32 bit int can represent up to 2^32 discrete values.
Therefore, an image using 32 bit int can represent a richer dynamic range than 32 bit float, simply because it can define the complete range with significantly many more values.
Still, intermediate operations using 32 bit int may end up in rounding up that could bring that 2^32 down - however, if such intermediate operations are done in, say, 64 bit float, the higher number of discrete values in 32 bit int would be preserved.
Now... 32 bit float can address number much higher than 32 bit int, and this, along with the precision supposedly added by 32 bit float is what has always made me think that float 32 can represent better the dynamic range of an image, but it seems, well, I'm trying to understand, that this discretization along with the usual normalization that goes along when defining the dynamic range of an image, throws that theory out of the window (?) and in the end, the main advantage of 32 bit float versus 32 bit int is in the intermediate operations, but then this is no longer an advantage if for intermediate operations with a 32 bit int image we use 64 bit float, being then processing time the only penalty of using 32 bit int, but not precision or "richness" of the defined dynamic range.
I do understand how the IEEE 32 bit float format works, but I'm still trying to digest putting all this together, as anywhere I look, people praise 32 bit float over 32 bit int. I guess my question could also be: Can a particular software make better use of defining the dynamic range of an image using 32 bit int than by using the best it can get from using 32 bit float?
Thanks!
Max