2009/3/5 Matthias Hopf
On Mar 04, 09 09:38:58 -0800, Yang Zhao wrote:
Does MPEG/BT.601/BT.709 define an upscaling method for chroma when decoding, or is that up to each decoder implement as they see fit? I
It seems that even the definition of where the subsamples lie is exactly defined, and different per codec...
I haven't found a spec for how the values have to be reconstructed. But the original sample positions would influence that very much.
From page 93: "To interpolate the missing chroma samples prior to conversion back to R'G'B', low-end systems simply replicate the subsampled Cb and Cr values throughout the 2x2 quad. This technique is ubiquitous in JPEG/JFIF... and is used in M-JPEG, H.261, and MPEG-1"
This seems to imply that stored chroma is upscaled using nearest-point interpolation by standard, or at least that's the common way for renderers to operate. This is the same conclusion I arrived at after comments of blurriness prompted me to investigate how the up-sampling is done.
failed to find any secondary source information on this, and acquiring specs myself is a PITA.
Read http://www.glennchan.info/articles/technical/chromata/chromata.html
IMHO bilinear filtered already looks *much* better than nearest neighbor.
http://www.glennchan.info/articles/technical/chroma/chroma1.htm looks like an interesting read. Haven't read yet, though.
That's one of the more useful sites I did manage to find, but I didn't give it much thought since it seemed to be geared toward how to encode the stills such that artifacts as a result of nearest-neighbour decoding doesn't end up producing crappy results. Looking over it again, it seems to have some hints for decoders as well. I'll give it a better read through. In any case, I'll keep working on this to see if I can come up with a better solution. It's easier to let results do the talking. I'll check my university's library catalogue to see if it has copies of the various MPEG-related specs. Cheers, -- Yang Zhao http://yangman.ca -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org