[Mp4-tech] Questions about constraint flags

Gary Sullivan garysull windows.microsoft.com
Tue Jun 20 11:16:24 EDT 2006


Eric et al,
1) Be careful about conceptually lumping all of those flags together.
constraint_set3_flag is quite different than the others.
2) You seem to have made a mistake regarding High profile.  When
profile_idc indicates High profile (profile_idc equal to 100), all four
of those flags must be equal to 0.
3) For constraint_set0_flag, constraint_set1_flag, and
constraint_set2_flag, these enable decoders of multiple profiles to be
able to decode the same bitstream.  If these flags did not exist and you
changed the value of profile_idc in a bitstream, then decoders of the
original profile would not decode the bitstream, even though they could
as far as the set of features used in the bitstream are concerned.  It
is obviously desirable to enable as many decoders as possible to decode
a bitstream.
4) Furthermore, in the absence of these flags it could be very difficult
to determine whether a bitstream obeys all the constraints that would
allow profile_idc to be changed.  This is particularly true regarding
some constraints that are not obvious from examining headers, such as
the MaxSubMbRectSize constraint that applies only in the Baseline and
Extended profiles.
5) For the Baseline, Main, and Extended profiles, constraint_set3_flag
was used to insert a level 1b in between levels 1 and 1.1 in a
backward-compatible fashion.  This could be difficult to do if we had
not reserved some syntax for such uses.
6) Note that some uses of these flags remain reserved for future uses
yet to be determined.  The flags can be very useful for future
extensibility.
7) Note that reserved_zero_4bits contains four more bits that can be
defined as flags or other such syntax elements for future extensibility
purposes.
8) For implementation purposes, it is not really necessary to have a
good answer to questions about why things in a standard are the way they
are.  It is more important to understand "what" the standard says than
"why" it says what it says.
Best Regards,
Gary Sullivan
________________________________
	From: mp4-tech-bounces lists.mpegif.org
[mailto:mp4-tech-bounces lists.mpegif.org] On Behalf Of
EricChuang via.com.tw
	Sent: Tuesday, June 20, 2023 6:28 AM
	To: mp4-tech lists.mpegif.org
	Subject: [Mp4-tech] Questions about constraint flags
	Dear experts,
	I have a question about the constraint_set0_flag,
constraint_set1_flag, ... constraint_set3_flag. I have no idea why this
kind of flag is used for. The same restriction can be achieved by
changing the profile_idc. 
	It seems that these flags can be used to indicate it conforms to
baseline, main, or exteded profile, etc.. even if the profile_idc
indicates it's high profile. Why not just changing the profile_idc, and
created these 4 constraint flags ?
	Thanks,
	Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20060620/4652d1d7/attachment-0001.html


More information about the Mp4-tech mailing list