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.
FYI, if any of you check this out, I'd be very grateful if you could
provide me the following:
A screenshot of the H.264 and Source samples on screen together, and a
description of:
Your display environment - primarily what gamma your display is set to
Your ColorSync setup - primarily what space is set for Default RGB in
ColorSync Utility