Back to using 16-bit floats, but only for U and V, we'll use doubles for S