Commit 3532a87a authored by Michael Niedermayer's avatar Michael Niedermayer

exr: optimize exr_halflt2uint()

30% faster
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent cabc0ac7
......@@ -77,15 +77,13 @@ static inline uint16_t exr_flt2uint(uint32_t v)
*/
static inline uint16_t exr_halflt2uint(uint16_t v)
{
int exp = v >> 10;
if (v & 0x8000)
return 0;
if (!exp)
return (v >> 9) & 1;
if (exp >= 15)
return 0xffff;
unsigned exp = 14 - (v >> 10);
if (exp >= 14) {
if (exp == 14) return (v >> 9) & 1;
else return (v & 0x8000) ? 0 : 0xffff;
}
v <<= 6;
return (v + (1 << 16)) >> (15 - exp);
return (v + (1 << 16)) >> (exp + 1);
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment