Hey Stacey & Don,
I'm working on implementing a new DirectShow video renderer with highest possible image quality (making use of GPU shaders to do all the dirty work). I've just released a first beta version here, in case anybody is interested:
http://forum.doom9.org/showthread.php?t=146228
In order to achieve best quality I've researched topics like dithering, scaling algorithms and finally linear light processing. After having read this thread (again) I have a couple of questions:
(1) I'm currently using simple TPDF dithering to do bring the floating point RGB data (coming from YCbCr -RGB conversion) down to e.g. 8bit integer. I'm aware that when going to very low bitdepths (e.g. 2bit like in your screenshots above) random dithering looks bad. But what is your opinion when going down to 8bit RGB or 10bit, 12bit? Is error diffusion really visibly better in this situation, too? Random dithering looks just fine to me with these bitdepths. Btw, is the algorithm you're using very different to Floyd Steinberg?
(2) I've implemented chroma upsampling by using Gaussian scaling which seems to produce the best (very smooth) results. But I've done that in gamma corrected light. I'm wondering whether upsampling chroma in linear light would be even better? But of course the problem is how to get 4:2:0 chroma to linear light without upsampling it first...
(3) Can I directly convert Y'CbCr to YCbCr without going to RGB? I've been told that isn't possible. But if that isn't possible then why is Y'CbCr named Y'CbCr and not Y'Cb'Cr'? I mean the name Y'CbCr suggests that the only difference when going Y'CbCr -> YCbCr is the luma channel. Is CbCr not changed at all? Sorry, this might be a stupid question...
(4) I've stumbled over your 2007 patent. How are you handling it? I mean can I implement linear light scaling in my renderer without getting into trouble or do I need to get a license from you somehow? (Of course I'd use my own algorithms/code/logic, I'd just use the idea to do scaling in linear light).
Sorry for the very indepth questions and thanks for any reply you can give!
FYI, I've developed a (mostly) ringing free new scaling algorithm based on 4-lobe Lanczos. Is that of any interest to you? If so, PM me.