[Mp4-tech] Questions about constraint flags

EricChuang via.com.tw EricChuang via.com.tw
Wed Jun 21 10:16:00 EDT 2006


Hi Gary,
Regarding 2), I did not read any statements explicitly to have the
requirement that these flags set to 0 in Hgih profile. It seems to me
that If a High profile bitstream set the constraint_set2_flag to 1, some
decoder conforming to Main profile cannot decode it correctly, because
there are more syntax element in SPS that may not be understood by the
Main profile decoder. Is it the reason that these flags set to 0 in high
profile ?
About 4)  I cannot understand why it's difficult to change profile_idc
without constraint flags existence. Since the profile_idc and constraint
flag are set by encoder, if an encoder could be able to set the
constraint flag, it can change the profile accordingly if it wants.
I really appreciate your comment on this, I got lot from it. I'm not
just for implementation purposes, I wish to know more, so I'd like to
know the reason behind it.
Thanks very much,
Eric.
-----Original Message-----
From: Gary Sullivan [mailto:garysull windows.microsoft.com] 
Sent: Tuesday, June 20, 2023 10:16 AM
To: Eric Chuang; mp4-tech lists.mpegif.org
Subject: RE: [Mp4-tech] Questions about constraint flags
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/20060621/3b53ee7f/attachment-0001.html


More information about the Mp4-tech mailing list