In running a simple H.264 encode in QT7 this weekend I noticed a
distinct shift, perhaps caused by improper gamma compensation,
resulting in bad luminance (esp. in shadows) and color rendering. From
additional - though not comprehensive - testing I have a feeling there
is some decode-time gamma compensation occuring, perhaps based on
assumptions about the display environment (rather than actually
matching to the display using the assigned ICC monitor profile). This
compensation seems to only be present in actual playback - decoding to
a file shows a much smaller shift, within what I'd consider normal
tolerances.
It's possible if you're running QT7 on a Mac with a display environment
sufficiently close to whatever is being assumed, that you also won't
see this problem during playback.
Didn't we see something similar with MPEG-4 in QT early on? Or was it
another codec? I specifically recall there was gamma compensation
occurring that seemed to assume if you were on a Mac you were using a
1.8 display gamma, and if you're on a PC it was 2.2 (or 2.5?), which of
course are broad and generally inaccurate assumptions that, if used,
are frankly worse than not doing any compensation.
Anyhow, I've posted some sample files and a more detailed explanation.
If you're interested, please download the following archive, check out
the readme, and look at my samples. I'd be very curious to get an
informed explanation - not my simple speculation.