NewDwarf What will be on the diff.mov in the case of temporal dithering?
It will show the difference in sub-pixel brightnesses between the dithering noise from this frame, and the previous frame, where middle gray is the zero value. So to be more accurate, this is not the actual dither signal per frame, it is the difference between the past two dithering signals. We are assuming that this noise pattern is an FRC color dithering pattern intended to increase the panel bits per color.
To get into the weeds a bit, I think it is unlikely that Apple is using an accurate color dither across pairs of frames. My guess is they would use a simpler approach that applies a standard spatial dither, but re-randomized per frame. Over time, this would approximate an accurate per frame color dither.
The diff.mov shows each sub pixel rise, or fall in brightness, or do nothing. All by a single 8 bit integer value. To be fair, I haven't looked closely at those files yet. But this should be the case. Whether the output rises or falls is determined by a standard color dithering algorithm.
A good algorithm would be to first convert the 10 bit color value to 0-1, then multiply that by the number of brightness steps available native to that display. So if we are converting to an 8 bit native display, that is 255 steps. Then, you add to this value a random number from 0-1. Then convert that sum to 8 bits. The 8 bit conversion chops off the remainder. What you are left with is a seemingly randomized 8 bit brightness value, that amazingly still can contribute to a 10 bit signal. We can extract and display the exact 10 bit value by repeating and displaying the output of this algorithm over time (temporary). If the frame rate is fast enough, you can achieve the 10 bit precision again. The other extraction works spatially across pixels, but that is not the focus of Stillcolor.