The offset is needed because this quantization dividing by 256 uses truncation whereas by 255 uses rounding.
So a value of 245 (for example) could be anything between 245.00000 and 245.99999. Therefore, when dequantizing, we set the value to 245.5, which is in the middle. Between 245.00000 and 245.99999.
#FF0000 is red because 0xFF is 255. 256 is 0x100 and is not a thing.
Did you read the article or just the title?
I’m honestly surprised this comment is the one that shows at the top.
So, it’s basically saying that anything less than 1/256 (0.00390625f) is 0x0.
Anything equal to or over 0.99609375 (255/256) should be 0xff.
Divide by the count (256), not the max index (255). I’m not sure the 0.5 offset is really needed.
The offset is needed because this quantization dividing by 256 uses truncation whereas by 255 uses rounding.
So a value of 245 (for example) could be anything between 245.00000 and 245.99999. Therefore, when dequantizing, we set the value to 245.5, which is in the middle. Between 245.00000 and 245.99999.