[M4IF Technotes] Sprite brightness change?
Kris Huber
khuber sorenson.com
Tue Mar 5 14:25:07 EST 2002
Hello all,
Are there any test bitstreams exercising brightness change for the low
latency sprite or GMC case? I've noticed some ambiguity in MPEG-4 visual
about how it is done, especially relative to how I think it should be done.
The problem I see with the spec is that it doesn't allow transmission of
brightness_factor_change_value=0. To encode this value, it appears that one
has to start a new VOL with sprite_brightness_change=0, which is very
expensive. The MoMuSys reference encoder software has an implementation
that produces a code for brightness_factor_change_value=0, but that is only
because the routine is buggy and does not implement the code given in Table
B-34. I think the text should be revised to shift the negative integers of
Table B-34 up by one value and modification of the reference software
accordingly. I believe the omission of brightness_factor_change_value=0 in
Table B-34 occured because the feature was orignally designed only with
static sprites in mind, in which the value 0 is not needed. There are some
unused negative values that are encodable. Shifting these up (adding 1)
agrees with what the MoMuSys encoder puts into the bitstream to encode
brightness_factor_change_value=0, and I think would be a proper
reconciliation.
Another problem with the specification of the brightness change semantics is
that the conversion to integer is not specified after the scaling,
Y = Y * (brightness_change_factor * 0.01 + 1),
in sub-clause 7.8.6. This part isn't implemented at all in the reference
software. Either rounding or truncation could be used with equal coding
efficiency in this case, but mismatch will occur if some implement one way
and others do it another. Alternatively, the scaling could be inserted into
the interpolation formulas above to resolve the ambiguity. My preference is
to simply truncate the fraction.
Now a comment on using the brightness_control feature. It is an obvious
method of improving coding efficiency during fade-ins and fade-outs. Does
anyone have examples to share or pointers to papers about how significant
this is? Simple modification of DC coefficients could give about the same
effect, but AC frequencies won't be scaled.
Information about specs related to MPEG-4 visual in which
sprite_brightness_change is required to be 0 would also be appreciated
(ISMA?, existing implementations?).
I'll make a report of this MPEG-4 problem to individuals who may have
opportunity to address it soon within the MPEG organization. Please reply
in the next day or two, and there is a chance that your view can be
incorporated into the next MPEG visual problem report.
Regards,
Kris Huber
Sorenson Media, Inc.
More information about the Mp4-tech
mailing list