What's the “Convert Float” checkbox in the VSE for?

When using an Adjustment Layer Effect Strip, there's this curious function button in the VSE... what is its meaning?

I found no description on the wiki....

• do u mean this? sequence_editor.sequences_all["Adjustment"].use_float – Francesco Yoshi Gobbo Jul 9 '16 at 17:24

That option enables you to process image adjustments using 32bit float precision.

Why would you want that?

Most consumer video formats create 8 bit images. In 8 bit images each channel (Red,Green or Blue) is limited to 256 values.

In 8 bit the number of possible colors is 16 million. While it might sound like a lot of, you'll find that it is not enough, specially when dealing color transformations and compositing, you'll see artifacts like banding, along with some other inconsistencies. By converting the image to 32bit float the number of available combinations is over 4 billion...

In other words: Color operations in 8 bit (or even 10 bit for some video formats) will result in posterization and rounding errors, due to the very limited amount of possible values. By carrying out the adjustments in 32bit float you are increasing the precision of color operations.

Enabling float data does have the penalty of using more computing power and memory, so depending on your computer be aware of a possible slowdown on performance.

It's briefly mentioned in the source code that some operations (like color correction) are more efficient when the input data is converted to float data.

  - Color balance (is most efficient in the byte -> float
(future: half -> float should also work fine!)
case, if done on load, since we can use lookup tables)


Source: sequencer.c, lines 2377 to 2379