Semantics for constraint handling and conformance testing in video coding

CN115462075BActive Publication Date: 2026-10-09DOLBY LABORATORIES LICENSING CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180029799.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-05-21
Filing Date
2021-04-21
Publication Date
2026-10-09
Estimated Expiration
2041-04-21

Smart Images

  • Figure CN115462075B_ABST
    Figure CN115462075B_ABST
Patent Text Reader

Abstract

Methods, systems, and bitstream syntaxes for constraint handling in video coding are described. Using one or more syntax elements and explicit or implicit signaling, an encoder can signal to a compliant decoder that certain features of a main profile, such as subpicture and multi-layer scalable coding, are disabled.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 028,214, filed May 21, 2020; U.S. Provisional Patent Application No. 63 / 013,713, filed April 22, 2020; and U.S. Provisional Patent Application No. 63 / 013,474, filed April 21, 2020, all of which are incorporated herein by reference in their entirety. Technical Field

[0003] This document generally relates to images. More specifically, embodiments of the invention relate to syntactic elements and semantics for constraint handling and compliance testing in video decoding. Background Technology

[0004] In 2013, the MPEG group of the International Organization for Standardization (ISO) and the International Telecommunication Union (ITU) jointly released the initial draft of the HEVC (also known as H.265) video coding standard (Reference [1]). Recently, the same group has been working on developing the next generation coding standard (called the Multifunctional Video Coding or VVC standard (Reference [2])), which offers better coding performance than existing video coding technologies.

[0005] To facilitate deployment, video decoding standards such as HEVC can define configuration files, layers and hierarchies, as well as other syntax elements that specify limitations on the bitstream, thereby describing the limitations on the capabilities required to decode the bitstream. Configuration files, layers and hierarchies, and other syntax elements can also be used to indicate interoperability points between various decoder implementations.

[0006] As the inventors understand it herein, this document describes limitations for defining VVC-compliant bitstreams and improved techniques for enhancing compliance testing, while providing access to all of their versatile features.

[0007] The methods described in this section are permissible methods, but not necessarily methods that have been previously conceived or adopted. Therefore, unless otherwise indicated, no method described in this section should be assumed to be prior art simply by virtue of its inclusion in this section. Similarly, unless otherwise indicated, no problem described with respect to one or more methods should be assumed to have been identified as prior art in any of this section. Attached Figure Description

[0008] Embodiments of the invention are illustrated in the accompanying drawings by way of example rather than limitation, and wherein like reference numerals refer to similar elements, and wherein:

[0009] Figure 1 Describe an example process used in a video delivery pipeline;

[0010] Figure 2A An example of encoding a video process according to an embodiment is described;

[0011] Figure 2B Describes an example video decoding process according to an embodiment; and

[0012] Figure 3 An example process for constraint hierarchical processing according to an embodiment is described. Detailed Implementation

[0013] This document describes example embodiments relating to the semantics of constraint handling and compliance testing in the VVC decoding specification. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding of various embodiments of the invention. However, it will be apparent that various embodiments of the invention can be practiced without these specific details. In other instances, well-known structures and apparatuses have not been described exhaustively in order to avoid unnecessarily closing, obscuring, or confusing the invention.

[0014] Overview

[0015] The example embodiments described herein relate to the semantics of constraint processing and compliance testing in video decoding. In the encoder, the processor receives a sequence of video images to be encoded into a decoded bitstream through constraint processing. The processor:

[0016] Determine a set of tools that are not needed for the decoder to decode the decoded bitstream;

[0017] Determine one or more constraint flags associated with the set of tools;

[0018] Group the one or more constraint flags into one or more tool constraint information syntax structures;

[0019] The tool constraint information syntax structure is combined into a general constraint syntax structure; and the decoded bitstream is generated, wherein the decoded bitstream includes the decoded images of the video image sequence and the general constraint syntax structure.

[0020] In another embodiment, in the decoder, the processor receives a decoded image comprising a sequence of video images and a decoded bitstream of a general constraint syntax structure, wherein the general constraint syntax structure includes syntax elements for a set of tools not required for decoding the decoded bitstream by the decoder. The processor then:

[0021] Parse the general constraint syntax structure to identify one or more tool constraint information syntax structures, wherein each tool constraint information syntax structure includes one or more constraint flags associated with a specific decoding tool;

[0022] Parse each of the one or more tool constraint information syntax structures to generate one or more constraint flags associated with the set of tools; and

[0023] The decoded images in the decoded bitstream are decoded according to one or more constraint flags to generate the video image sequence.

[0024] In another embodiment, the processor receives a decoded bitstream including a decoded image and syntax parameters for the decoded image, and detects whether layered processing is enabled, wherein detecting whether layered processing is enabled includes detecting whether one or more of the following flags are set to 1:

[0025] A flag indicating whether scalable decoding or hierarchical decoding is enabled;

[0026] A flag indicating whether the Video Parameter Set (VPS) is constrained;

[0027] A flag indicating whether the total number of Output Layer Sets (OLS) is constrained;

[0028] A flag indicating whether the layer to which the NAL element belongs is constrained;

[0029] A flag indicating whether inter-layer predictions are constrained; and

[0030] If one or more of these flags are set to 1, then hierarchical processing is disabled; otherwise, hierarchical processing is enabled.

[0031] In another embodiment, the processor receives a decoded bitstream including a decoded image and syntax parameters for the decoded image, and detects whether one or more of the following flags are set to 1:

[0032] A flag indicating whether the Video Parameter Set (VPS) is constrained;

[0033] A flag indicating whether the total number of Output Layer Sets (OLS) is constrained;

[0034] A flag indicating whether the layer to which the NAL element belongs is constrained;

[0035] A flag indicating whether the NAL cell type is constrained;

[0036] A flag indicating whether the number of slices in an image is constrained;

[0037] A marker indicating whether the number of tiles in an image is constrained;

[0038] A flag indicating whether the number of sub-images in an image is constrained;

[0039] A flag indicating whether the dual-tree partition is constrained;

[0040] A flag indicating whether the palette pattern is constrained;

[0041] A flag indicating whether copying within a block is constrained;

[0042] A flag indicating whether intra-frame prediction is constrained;

[0043] A flag indicating whether inter-frame prediction is constrained;

[0044] A flag indicating whether quantization is constrained;

[0045] A flag indicating whether the transformation is constrained;

[0046] A flag indicating whether residual decoding is constrained;

[0047] A flag indicating whether the loop filter is constrained;

[0048] A flag indicating whether the bit depth is constrained;

[0049] A flag indicating whether the chroma sampling format is constrained;

[0050] A flag indicating whether 360 video decoding is restricted;

[0051] A flag indicating whether screen content decoding is constrained;

[0052] A flag indicating whether the existence of an SEI message is constrained;

[0053] A flag indicating whether inter-layer predictions are constrained; and

[0054] If one or more of these flags are set to 1, then the bitstream conformance is determined.

[0055] Example video transmission and processing pipeline

[0056] Figure 1An example process of a conventional video delivery pipeline (100) is depicted, illustrating the various stages from video capture to video content display. A sequence of video frames (102) is captured or generated using an image generation block (105). The video frames (102) may be captured digitally (e.g., by a digital camera) or generated by a computer (e.g., using computer animation) to provide video data (107). Alternatively, the video frames (102) may be captured on film by a film camera. The film is converted to a digital format to provide video data (107). In the production stage (110), the video data (107) is edited to provide a video production stream (112).

[0057] The video data from the production stream (112) is then provided to the processor at block (115) for post-production editing. Post-production editing at block (115) may involve adjusting or modifying the color or brightness of specific areas of the image according to the video creator's creative intent to enhance image quality or achieve a specific look. This is sometimes referred to as "timing" or "color grading." Other edits (e.g., scene selection and sorting, image cropping, adding computer-generated visual effects, jitter or blur control, frame rate control, etc.) may be performed at block (115) to produce a final version (117) for distribution. During post-production editing (115), the video image is viewed on a reference monitor (125).

[0058] After post-production (115), the final video data (117) can be transmitted to the encoding block (120) for downstream transmission to decoding and playback devices, such as televisions, set-top boxes, cinemas, etc. In some embodiments, the decoding block (120) may include audio and video encoders, such as those defined by APN, DVB, DVD, Blu-ray, and other transmission formats, to produce a decoded bitstream (122). In the receiver, the decoded bitstream (122) is decoded by the decoding unit (130) to produce a decoded signal (132) that is the same as or very similar to the signal (117). The receiver may be attached to a target display (140) that may have characteristics completely different from those of the reference display (125). In this case, the display management block (135) may be used to map the dynamic range of the decoded signal (132) to the characteristics of the target display (140) by generating a display mapping signal (137).

[0059] Constraint handling in VVC

[0060] The current working draft text of the VVC specification (reference [2]) specifies a set of constraint flags that allow the encoder to inform the decoder that certain decoding tools are not required when decoding the decoded bitstream, and that it is designed to facilitate alternatives to existing official profiles such as the Main 10 profile and the Main 4:4:4 10 profile. For example, each of these profiles would restrict the conforming bitstream to a specific chroma format and bit depth, and require certain hierarchical and layer constraints to be met, but would allow all decoding tools specified in VVC to be indicated in the conforming bitstream.

[0061] Some applications and uses of VVC may not require all the decoding tools and features specified in VVC. Such applications benefit if a subset of the decoding tools is implemented in the corresponding decoding process, but a compatible decoder can still decode the compliant bitstream. One way to accommodate such a decoding process is to define an additional profile for VVC. For example, a “Simplified Main 10” profile could be specified to be identical to the Main 10 profile, except that one or more specific decoding tools and associated syntaxes will not be allowed to be represented as signals in the bitstream. Alternatively, if they are recognized in the bitstream, a compatible decoder can safely ignore them. For example, a Simple Main 10 profile might not allow extensibility or subpictures.

[0062] One drawback of defining multiple profiles is that it can limit the market access available to device and application providers by promoting market segmentation. Another drawback of multiple profiles is that it makes compliance testing and verification more difficult, which can affect quality and interoperability between streaming creators and consumers.

[0063] As proposed in the example embodiments here, an alternative to configuration file segmentation is to package syntactic constraints into a small number of generic constraint information syntax elements. These elements apply to the Main 10 configuration file and the Main 4:4:4 10 configuration file, as well as any equivalent static image configuration file for VVC. For example, the generic constraint information syntax element `no_subpicture_constraint_flag` might be represented as a signal in the bitstream to indicate that decoding a subpicture in the bitstream does not require a parsing and decoding process, but the bitstream still conforms to the configuration file, such as the Main 10 configuration file. One advantage of the generic constraint approach proposed here is that it facilitates compliance testing and verification.

[0064] The use of general constraint information syntax elements can also facilitate the standardization of domain-specific sub-configuration files by the Application Standards Development Organization (SDO) and other organizations such as industry forums. In this sense, the use of general constraint information syntax elements promotes the standardization of a 'soft configuration file' that is easier to specify and verify.

[0065] The current VVC draft specification contains 62 general constraint flags that specify restrictions on the behavior of decoding tools and the values ​​of syntax elements. These existing general constraint flags relate to Network Abstraction Layer (NAL) unit types, prediction modes, inter-frame and intra-frame prediction, transforms, quantization, loop filters, layers, Auxiliary Enhancement Information (SEI) messages, and formats. All 62 general constraint flags are currently represented as signals within the general_contstraint_info() syntax structure.

[0066] As currently specified, the list of general constraint flags may become disorganized because it lacks a logical order. This lack of order can hinder the use of general constraint flags, thus limiting their benefits. Furthermore, adding additional general constraint flags tends to make the list of general constraint flags even more disorganized in the future if additional general constraint flags are added. To maintain backward compatibility, new flags will be added to the end of the list, regardless of their functionality.

[0067] As the inventors understand, by representing separate, categorized syntax structures with signals with a limited but greater flexibility, the `general_constraint_info()` structure can be made easier to use and less prone to user errors. For example, the `general_transform_constraint_info()` syntax structure related to tools involved in transform decoding can be represented with signals as part of a `general_constraint_info()` call. An instance of the `general_transform_constraint_info()` syntax structure can simply represent the general constraint flags related to the transform with signals. Similarly, and for example, calls to `general_quantization_constraint_info()`, `general_inter_constraint_infor()`, and `general_loop_filter_info()` can be represented with signals within `general_constraint_info()` to group the general constraint flags related to quantization, inter-frame prediction, and loop filtering, respectively.

[0068] An added benefit of categorized, limited-scope general constraint syntax is that such structures facilitate the efficient addition of new general constraint flags in a backward-compatible manner. Adding new flags to the end of a shorter list of relevant flags maintains ease of use and reduces the tendency for user errors.

[0069] In another embodiment, several new general constraint flags are added. These new flags can be grouped into three general classes: 1) decoding tool flags; 2) functional limitation flags; and 3) auxiliary enhancement information (SEI) flags.

[0070] The general constraint flags for the decoding tools are consistent with those currently specified, as they specify restrictions on the values ​​of the decoding tools and syntax elements. As examples, the proposed new general constraint flags for the decoding tools include: no_virtual_boundary_constraint_flag; no_weighted_prediction_constraint_flag; no_weighted_bipred_constraint_flag; no_explicit_scaling_list_constraint_flag; and no_vps_constraint_flag.

[0071] The general functional constraint flags provide new capabilities for specifying restrictions on decoding toolkits, other constraint flags, and syntax element values. Functional constraint flags also facilitate compliance testing related to use cases, services, and application types. As examples, the general functional constraint flags presented here include: `no_scalability_constraint_flag`, which disables scalable and hierarchical decoding; `no_360Video_constraint_flag`, which disables 360 video decoding; and `noSCC_constraint_flag`, which disables screen content decoding.

[0072] The SEI general constraint flag extends the ability to specify which SEI messages, typically specified outside the core VVC specification, are absent. Incorporating SEI messages allows information to be signaled or otherwise processed by the decoder to indicate how or intended to be used, displayed, or otherwise manipulated in the decoded video. As an example, the proposed new SEI general constraint flag includes: no_scalable_nesting_SEI_constraint_flag;

[0073] no_subpic_level_SEI_constraint_flag; no_filler_payload_SEI_constraint_flag;

[0074] no_user_data_reg_SEI_constraint_flag; no_user_data_unreg_SEI_constraint_flag;

[0075] no_film_grain_SEI_constraint_flag; no_parameter_set_incl_SEI_constraint_flag;

[0076] no_decoded_picture_hash_SEI_constraint_flag; no_mdcv_SEI_constraint_flag;

[0077] no_cll_SEI_constraint_flag; no_DRAP_constraint_SEI_flag;

[0078] no_alt_transfer_char_SEI_constraint_flag; no_ambient_view_envir_SEI_constraint_flag;

[0079] no_ccv_SEI_constraint_flag; no_omni_video_specific_SEI_constraint_flag;

[0080] no_field_frame_info_SEI_constraint_flag; and no_sar_SEI_constraint_flag.

[0081] In another embodiment, to improve the clarity of the currently specified general constraint flag, a slightly modified name is proposed as follows:

[0082] • Change general_non_packed_constraint_flag to general_non_packed_SEI_constraint_flag

[0083] • Change general_non_projected_constraint_flag to general_non_projected_SEI_constraint_flag

[0084] • Change the `max_bitdepth_constraint_idc` variable to `max_bitdepth_minus8_constraint_idc`

[0085] • Correct the semantics of no_aps_constraint_flag to reference sps_explicit_scaling_list_enabled_flag

[0086] • Split single_layer_constraint_flag into two general constraint flags: a) no_vps_constraint flag, which specifies that sps_video_parameter_set_id should be equal to 0 when it is equal to 1; and b) single_layer_constraint_flag, which specifies that vps_max_layers_minus1 should be equal to 0 when it is equal to 1.

[0087] Note that the syntax, semantics, methods, and advantages of the embodiments presented herein are applicable to alternative methods of representing general constraint information flags with signals, such as: representing general_constraint_info() with signals in a NAL cell of type GCI_NUT; and representing general_constraint_info() with signals in decoding_capability_information_rbsp().

[0088] In the embodiments, Table 1 depicts an instance grammar of the proposed new structure for the “General Constraint Information Syntax” in VVC, replacing Section 7.3.3.2 in reference [2]. As depicted in Table 1, all existing flags are replaced with twelve general_xxx_constraint_info() structures, where “xxx” describes aspects of VVC decoding, such as partitioning, intra-frame coding, loop filtering, etc. Each of these twelve grammar structures is further described in detail in Tables 2-13. The proposed new flags are indicated in italics and may also be explicitly noted after each table. Those skilled in video decoding will understand that existing and proposed constraint flags and grammar parameters can be grouped using fewer or more than twelve general_xxx_constraint_info() structures. Furthermore, while every effort is made to group these flags into the most suitable “xxx” groups, one or more of these flags may be assigned to alternative groups that have the least impact on overall functionality (if any).

[0089] Please note that the order of the general_xxx_constraint_info() syntax structures in Table 1 may affect the checks performed on syntax validation and overall decoding. For example, general_format_constraint_info() contains max_chroma_format_constraint_idc referenced by the syntax of no_qtbtt_dual_tree_intra_constraint_flag (signaled in general_partition_constraint_info()) and the syntax of no_cclm_constraint_flag (signaled in general_intra_constraint_info()). Therefore, signaling general_format_constraint_info() before signaling general_partition_constraint_info() and general_intra_constraint_info() simplifies syntax checking. As another example, `general_functionality_constraint_info()` contains `general_one_picture_only_constraint_flag` referenced by the semantics of `single_layer_constraint_flag` (represented by a signal in `general_layer_constraint_info()`). Therefore, signaling `general_functionality_constraint_info()` before signaling `general_layer_constraint_info()` also simplifies syntax checking. In another embodiment, instead of ordering the `general_xxx_constraint_info()` structures based on ease of syntax checking, their order can be determined based on other criteria such as the importance of the decoding tool, the decoder stream, etc.

[0090] The proposed category groups can also be reorganized, subdivided, or merged. For example, in one embodiment, as depicted later in Table 18, the quantization group and transform group can be combined into a larger group, such as named "tqr," for transform, quantization, and residual decoding. In another embodiment, pred_mod, intra-frame groups, and inter-frame groups can be combined into a larger "prediction_tools" group. In yet another embodiment, the quantization group can be split into smaller quantization and residual decoding groups.

[0091] The tools within each category can also be organized based on, for example, an emphasis on the importance of the tools. For instance, IBC and Palette Mode primarily have gains for in-picture decoding, so they might be included in the intra-frame constraint group. As another example, as depicted in the general_tqr_constraint_info() structure, it may be beneficial to signal the transform-related constraint flags before quantizing them, since, for example, no_transform_skip_constraint_flag is referenced by no_bdpcm_constraint_flag.

[0092] Table 1: Examples of the proposed "General Constraint Information Syntax"

[0093]

[0094] Table 2: Examples of General Format Constraint Information Syntax

[0095]

[0096] The semantics of the proposed new symbol are:

[0097] A value of 1 for `no_separate_colour_plane_constraint_flag` specifies that `sps_separate_colour_plane_flag` should be 0 if it exists. A value of 0 for `no_separate_colour_plane_constraint_flag` will not impose this constraint.

[0098] Table 3: Examples of General Functional Information Syntax

[0099]

[0100] The semantics of the proposed new symbol are:

[0101] A value of 1 for `no_scalability_constraint_flag` disables scalable and hierarchical decoding for CVS. A value of 0 for `no_scalability_constraint_flag` does not impose this constraint.

[0102] The value of `no_scalability_constraint_flag` should be equal to the value of the variable `noScalabilityConstraint`. The value of `noScalabilityConstraint` is derived as follows:

[0103] if((sps_video_parameter_set_id==0)||(vps_max_layers_minus1==0)||

[0104] vps_all_independent_layers_flag)

[0105] noScalabilityConstraint=1

[0106] else

[0107] noScalabilityConstraint=0

[0108] A value of 1 for `no_360_video_constraint_flag` specifies that `sps_ref_wraparound_enabled_flag` should be 0, and that no isorectangular projection SEI messages or generalized cubic mapping projection SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_360_video_constraint_flag` does not impose this constraint.

[0109] A value of 1 for `no_scc_constraint_flag` specifies that `sps_ibc_enabled_flag` should be 0, `sps_bdpcm_enabled_flags` should be 0, and `sps_palette_enabled-flag` should be 0. A value of 0 for `no_scc_constraint_flag` does not impose this constraint.

[0110] In another embodiment, since transform skipping primarily benefits the decoding of screen content, the semantics of no_scc_constraint_flag can be written as follows:

[0111] The value of no_scc_constraint_flag being 1 specifies that sps_ibc_enabled_flag should be 0, sps_transform_skip_enabled_flag should be 0, sps_bdpcm_enabled_flag should be 0, and sps_palette_enabled_flag should be 0. The value of no_scc_constraint_flag being 0 will not impose this constraint.

[0112] Table 4: Examples of the proposed NALU constraint information syntax

[0113]

[0114] Table 5: Examples of the proposed partition constraint information syntax

[0115]

[0116]

[0117] The semantics of the proposed new symbol are:

[0118] The value of no_virtual_boundary_constraint_flag being 1 indicates that sps_virtual_boundaries_enabled_flag should be 0.

[0119] When no_virtual_boundary_constraint_flag is equal to 0, this constraint will not be applied.

[0120] Table 6: Examples of the proposed grammar used to predict mode constraint information

[0121]

[0122] Table 7: Examples of the general intra-frame prediction constraint information syntax

[0123]

[0124]

[0125] Table 8: Examples of the general inter-frame prediction constraint information syntax

[0126]

[0127] The semantics of the proposed new symbol are:

[0128] A value of 1 for `no_weighted_pred_constraint_flag` specifies that `sps_weighted_pred_flag` should be 0. A value of 0 for `no_weighted_pred_constraint_flag` will not impose this constraint.

[0129] A value of 1 for `no_weighted_bipred_constraint_flag` specifies that `sps_weighted_bipred_flag` should be 0. A value of 0 for `no_weighted_bipred_constraint_flag` will not impose this constraint.

[0130] Table 9: Examples of General Transformation Format Constraint Information Syntax

[0131]

[0132]

[0133] Table 10: Examples of General Quantization Format Constraint Information Syntax

[0134]

[0135] The semantics of the proposed new symbol are:

[0136] A value of 1 for `no_explicit_scaling_list_constraint_flag` specifies that `sps_explicit_scaling_list_enabled_flag` should be 0. A value of 0 for `no_explicit_scaling_list_constraint_flag` does not impose this constraint. When `no_aps_constraint_flag` is 1, the value of `no_explicit_scaling_list_constraint_flag` should be 1.

[0137] Table 11: Examples of the syntax for constraint information in general loop filters

[0138]

[0139]

[0140] Table 12: Examples of General Layer Format Constraint Information Syntax

[0141]

[0142] The semantics of the proposed new flag are: no_vps_constraint_flag equal to 1 specifies that sps_video_parameter_set_id should be equal to 0. no_vps_constraint_flag equal to 0 does not impose this constraint. When general_one_picture_only_constraint_flag equals 1, the value of no_vps_constraint_flag should be equal to 1.

[0143] A value of 1 for `no_ilrp_constraint_flag` specifies that the value of `sps_inter_layer_ref_pics_present_flag` should be 0. A value of 0 for `no_ilrp_constraint_flag` will not impose this constraint.

[0144] A value of 1 for `no_mnli_constraint_flag` specifies that all VCL NAL cells in CVS should have the same `nuh_layer_id` value. A value of 0 for `no_mnli_constraint` does not impose this constraint.

[0145] When no_mnli_constraint equals 1, one or more of the following apply:

[0146] The value of -vps_max_layers_minus1 should be equal to 0.

[0147] - It is inferred that the value of each_layer_is_an_ols_flag is equal to 1.

[0148] A value of 1 for `no_mols_constraint_flag` specifies that the total number of Output Layer Sets (OLS) specified by the VPS is 1. A value of 0 for `no_mols_constraint` does not impose this constraint.

[0149] When the value of no_mols_constraint_flag is equal to 1, one or more of the following apply:

[0150] The value of -no_vps_constraint_flag should be equal to 0.

[0151] The value of -sps_video_parameter_set should not be equal to 0.

[0152] - When the value of vps_max_layers_minus1 is greater than 0, the value of each_layer_is_an_ols_flag should be equal to 0, and the value of vps_all_independent_layers_flag should be 0.

[0153] - When the value of ols_mode_idc is equal to 2, the value of num_output_layer_sets_minus1 should be equal to 0. Otherwise, if the value of ols_mode_idc is equal to 0 or 1, the value of vps_max_layers_minus1 should be equal to 0.

[0154] Table 13: Examples of General Auxiliary Enhancement Message Constraint Message Syntax

[0155]

[0156] The semantics of the proposed new symbol are:

[0157] A value of 1 for `no_scalable_nesting_SEI_constraint_flag` specifies that no scalable nested SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_scalable_nesting_SEI_constraint_flag` does not impose this constraint.

[0158] A value of 1 for `no_subpic_level_SEI_constraint_flag` specifies that no subpic level SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_subpic_level_SEI_constraint_flag` does not impose this constraint.

[0159] A value of 1 for `no_filler_payload_SEI_constraint_flag` specifies that no filler payload SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_filler_payload_SEI_constraint_flag` does not impose this constraint.

[0160] A value of 1 for `no_user_data_reg_SEI_constraint_flag` specifies that no user data should be registered in the bitstream of OlsInScope as recommended by the ITU T.35 SEI message. A value of 0 for `no_user_data_reg_SEI_constraint_flag` does not impose this constraint.

[0161] A value of 1 for `no_user_data_unreg_SEI_constraint_flag` specifies that no SEI messages for unregistered user data should exist in the bitstream of OlsInScope. A value of 0 for `no_user_data_unreg_SEI_constraint_flag` does not impose this constraint.

[0162] A value of 1 for `no_film_grain_SEI_constraint_flag` specifies that no film grain SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_film_grain_SEI_constraint_flag` does not impose this constraint.

[0163] A value of 1 for `no_parameter_set_incl_SEI_constraint_flag` specifies that no parameter set in the OlsInScope bitstream should contain an indication of the SEI message. A value of 0 for `no_parameter_set_incl_SEI_constraint_flag` does not impose this constraint.

[0164] A value of 1 for `no_decoded_picture_hash_SEI_constraint_flag` specifies that no decoded image hash SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_decoded_picture_hash_SEI_constraint_flag` does not impose this constraint.

[0165] A value of 1 for `no_mcdv_SEI_constraint_flag` specifies that no master display color volume SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_mcdv_SEI_constraint_flag` does not impose this constraint.

[0166] A value of 1 for `no_cll_SEI_constraint_flag` specifies that no content luma level SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_cll_SEI_constraint_flag` does not impose this constraint.

[0167] A value of no_DRAP_SEI_constraint_flag equal to 1 specifies that no associated random access point indication (SEI) messages should exist in the bitstream of OlsInScope. A value of no_DRAP_SEI_constraint_flag equal to 0 does not impose this constraint.

[0168] A value of 1 for `no_alt_transfer_char_SEI_constraint_flag` specifies that no alternative transfer feature SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_alt_transfer_char_SEI_constraint_flag` does not impose this constraint.

[0169] A value of 1 for `no_ambient_view_envir_SEI_constraint_flag` specifies that no ambient view environment SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_ambient_view_envir_SEI_constraint_flag` does not impose this constraint.

[0170] A value of 1 for `no_ccv_SEI_constraint_flag` specifies that no Content Chroma SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_ccv_SEI_constraint_flag` does not impose this constraint.

[0171] A value of 1 for `no_omni_video_specific_SEI_constraint_flag` specifies that no omnidirectional video-specific SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_omni_video_specific_SEI_constraint_flag` does not impose this constraint.

[0172] A value of 1 for `no_field_frame_SEI_constraint_flag` specifies that no frame-field information (SEI) messages should exist in the bitstream of OlsInScope. A value of 0 for `no_field_frame_SEI_constraint_flag` does not impose this constraint.

[0173] The value of no_sar_SEI_constraint_flag equal to 1 indicates that no sample aspect ratio SEI messages should exist.

[0174] For completeness, the semantics of the signs in Table 2-13 are described again in the following sections, including existing signs and newly proposed signs.

[0175] General format constraints information semantics

[0176] A `general_frame_only_constraint_flag` value of 1 specifies that OlsInScope transmits images representing frames. A `general_frame_only_constraint_flag` value of 0 specifies that OlsInScope transmits images that may or may not represent frames. When `general_frame_only_constraint_flag` is 1, the value of `sps_field_seq_flag` should be 0.

[0177] Note - The decoder can ignore the value of general_frame_only_constraint_flag because there is no requirement for its associated decoding process.

[0178] max_bitdepth_minus8_constraint_idc specifies that sps_bit_depth_minus8 will be in the range of 0 to max_bitdepth_minus8_constraint_idc, including the end value.

[0179] max_chroma_format_constraint_idc specifies that sps_chroma_format_idc will be in the range of 0 to max_chroma_format_constraint_idc, inclusive.

[0180] General functional information semantics

[0181] A value of 1 for `general_one_picture_only_constraint_flag` specifies that there is only one decoded image in the bitstream. A value of 0 for `general_one_picture_only_constraint_flag` does not impose this constraint.

[0182] A value of 1 for `no_scalability_constraint_flag` disables scalable and hierarchical decoding for CVS. A value of 0 for `no_scalability_constraint_flag` does not impose this constraint.

[0183] The value of `no_scalability_constraint_flag` should be equal to the value of the variable `noScalabilityConstraint`. The value of `noScalabilityConstraint` is derived as follows:

[0184]

[0185] A value of 1 for `no_360_video_constraint_flag` specifies that `sps_ref_wraparound_enabled_flag` should be 0, and that no isorectangular projection SEI messages or generalized cubic mapping projection SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_360_video_constraint_flag` does not impose this constraint.

[0186] A value of 1 for `no_scc_constraint_flag` specifies that `sps_ibc_enabled_flag` should be 0, `sps_bdpcm_enabled_flags` should be 0, and `sps_palette_enabled-flag` should be 0. A value of 0 for `no_scc_constraint_flag` does not impose this constraint.

[0187] General NAL unit constraint information semantics

[0188] A value of 1 for `no_mixed_nalu_types_in_pic_constraint_flag` specifies the bitstream compliance requirement that `pps_mixed_nalu_types_in_pic_flag` should be 0. A value of 0 for `no_mixed_nalu_types_in_pic_constraint_flag` does not impose this constraint.

[0189] A `no_trail_constraint_flag` value of 1 specifies that NAL units with `nuh_unit_type` equal to `TRAIL_NUT` should not exist in `OlsInScope`. A `no_trail_constraint_flag` value of 0 will not impose this constraint.

[0190] A value of 1 for `no_stsa_constraint_flag` specifies that NAL units with `nuh_unit_type` equal to `STSA_NUT` should not exist in `OlsInScope`. A value of 0 for `no_stsa_constraint_flag` does not impose this constraint.

[0191] A value of 1 for `no_rasl_constraint_flag` specifies that NAL units with `nuh_unit_type` equal to `RASL_NUT` should not exist in `OlsInScope`. A value of 0 for `no_rasl_constraint_flag` does not impose this constraint.

[0192] A value of 1 for `no_radl_constraint_flag` specifies that NAL units with `nuh_unit_type` equal to `RADL_NUT` should not exist in `OlsInScope`. A value of 0 for `no_radl_constraint_flag` does not impose this constraint.

[0193] A `no_idr_constraint_flag` value of 1 specifies that NAL units with `nuh_unit_type` equal to `IDR_W_RADL` or `IDR_N_LP` should not exist in OlsInScope. A `no_idr_constraint_flag` value of 0 does not impose this constraint.

[0194] A no_cra_constraint_flag value of 1 specifies that NAL units with nuh_unit_type equal to CRA_NUT should not exist in OlsInScope. A no_cra_constraint_flag value of 0 does not impose such a constraint.

[0195] A value of 1 for `no_gdr_constraint_flag` specifies that `sps_gdr_enabled_flag` should be 0. A value of 0 for `no_gdr_constraint_flag` will not impose this constraint.

[0196] A `no_aps_constraint_flag` value of 1 specifies that NAL units with `nuh_unit_type` equal to `PREFIX_APS_NUT` or `SUFFIX_APS_NUT` should not exist in OlsInScope, and both `sps_lmcs_enabled_flag` and `sps_explicit_scaling_list_enabled_flag` should be equal to 0. A `no_aps_constraint_flag` value of 0 does not impose this constraint.

[0197] General partition constraint information semantics

[0198] A value of 1 for `one_tile_per_pic_constraint_flag` specifies that each image should contain only one tile. A value of 0 for `one_tile_per_pic_constraint_flag` does not impose this constraint.

[0199] Setting `pic_header_in_slice_header_constraint_flag` to 1 specifies that each image should contain only one slice, and the value of `sh_picture_header_in_slice_header_flag` in each slice should be equal to 1. Setting `pic_header_in_slice_header_constraint_flag` to 0 does not impose this constraint.

[0200] `one_slice_per_pic_constraint_flag` equal to 1 specifies that each image should contain only one slice. `one_slice_per_pic_constraint_flag` equal to 0 does not impose this constraint. When `pic_header_in_slice_header_constraint_flag` equals 1, the value of `one_slice_per_pic_constraint_flag` should be equal to 1.

[0201] A value of 1 for `one_subpic_per_pic_constraint_flag` specifies that each image should contain only one subpicture, and the value of `sps_subpic_info_present_flag` should be 0. A value of 0 for `one_subpic_per_pic_constraint_flag` does not impose this constraint. When `one_slice_per_pic_constraint_flag` is 1, the value of `one_subpic_per_pic_constraint_flag` should be 1.

[0202] A value of 1 for `no_qtbtt_dual_tree_intra_constraint_flag` specifies that `sps_qtbtt_dual_tree_intra_flag` should be 0. A value of 0 for `no_qtbtt_dual_tree_intra_constraint_flag` will not impose this constraint. When `max_chroma_format_constraint_idc` is 0, the value of `no_qtbtt_dual_tree_intra_constraint_flag` should be 1.

[0203] A value of 1 for `no_partition_constraints_override_constraint_flag` specifies that `sps_partition_constraints_override_enabled_flag` should be 0. A value of 0 for `no_partition_constraints_override_constraint_flag` will not impose this constraint.

[0204] A value of 1 for `no_virtual_boundary_constraint_flag` specifies that `sps_virtual_boundaries_enabled_flag` should be 0. A value of 0 for `no_virtual_boundary_constraint_flag` will not impose this constraint.

[0205] General prediction model constrains information semantics

[0206] An intra_only_constraint_flag value of 1 specifies that sh_slice_type should be 1. An intra_only_constraint_flag value of 0 does not impose this constraint. When general_one_picture_only_constraint_flag is 1, the value of intra_only_constraint_flag should be 1.

[0207] A value of 1 for no_palette_constraint_flag specifies that sps_palette_enabled_flag should be 0. A value of 0 for no_palette_constraint_flag will not impose this constraint.

[0208] A value of 1 for no_ibc_constraint_flag specifies that sps_ibc_enabled_flag should be 0. A value of 0 for no_ibc_constraint_flag will not impose this constraint.

[0209] General intra-frame constraint information semantics

[0210] A value of 1 for `no_mrl_constraint_flag` specifies that `sps_mrl_enabled_flag` should be 0. A value of 0 for `no_mrl_constraint_flag` will not impose this constraint.

[0211] A value of 1 for no_isp_constraint_flag specifies that sps_isp_enabled_flag should be 0. A value of 0 for no_isp_constraint_flag will not impose this constraint.

[0212] A value of 1 for no_mip_constraint_flag specifies that sps_mip_enabled_flag should be 0. A value of 0 for no_mip_constraint_flag will not impose this constraint.

[0213] A value of 1 for `no_cclm_constraint_flag` specifies that `sps_cclm_enabled_flag` should be 0. A value of 0 for `no_cclm_constraint_flag` will not impose this constraint. When `max_chroma_format_constraint_idc` is 0, the value of `no_cclm_constraint_flag` should be 1.

[0214] General inter-frame constraint information semantics

[0215] A value of 1 for `no_ref_pic_resampling_constraint_flag` specifies that `sps_ref_pic_resampling_enabled_flag` should be 0. A value of 0 for `no_ref_pic_resampling_constraint_flag` will not impose this constraint.

[0216] A value of 1 for `no_res_change_in_clvs_constraint_flag` specifies that `sps_res_change_in_clvs_allowed_flag` should be 0. A value of 0 for `no_res_change_in_clvs_constraint_flag` does not impose this constraint. When `no_ref_pic_resampling_constraint_flag` is 1, `no_res_change_in_clvs_constraint_flag` should be 1.

[0217] A value of 1 for `no_ref_wraparound_constraint_flag` specifies that `sps_ref_wraparound_enabled_flag` should be 0. A value of 0 for `no_ref_wraparound_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_ref_wraparound_constraint_flag` should be 1.

[0218] A value of 1 for `no_temporal_mvp_constraint_flag` specifies that `sps_temporal_mvp_enabled_flag` should be 0. A value of 0 for `no_temporal_mvp_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_temporal_mvp_constraint_flag` should be 1.

[0219] A value of 1 for `no_sbtmvp_constraint_flag` specifies that `sps_sbtmvp_enabled_flag` should be 0. A value of 0 for `no_sbtmvp_constraint_flag` does not impose this constraint. When `no_temporal_mvp_constraint_flag` is 1, the value of `no_sbtmvp_constraint_flag` should be 1.

[0220] A value of 1 for `no_amvr_constraint_flag` specifies that `sps_amvr_enabled_flag` should be 0. A value of 0 for `no_amvr_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_amvr_constraint_flag` should be 1.

[0221] A value of 1 for `no_bdof_constraint_flag` specifies that `sps_bdof_enabled_flag` should be 0. A value of 0 for `no_bdof_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_bdof_constraint_flag` should be 1.

[0222] A value of 1 for `no_dmvr_constraint_flag` specifies that `sps_dmvr_enabled_flag` should be 0. A value of 0 for `no_dmvr_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_dmvr_constraint_flag` should be 1.

[0223] A value of 1 for `no_affine_motion_constraint_flag` specifies that `sps_affine_enabled_flag` should be 0. A value of 0 for `no_affine_motion_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_affine_motion_constraint_flag` should be 1.

[0224] A value of 1 for `no_mmvd_constraint_flag` specifies that `sps_mmvd_enabled_flag` should be 0. A value of 0 for `no_mmvd_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_mmvd_constraint_flag` should be 1.

[0225] A value of 1 for `no_smvd_constraint_flag` specifies that `sps_smvd_enabled_flag` should be 0. A value of 0 for `no_smvd_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_smvd_constraint_flag` should be 1.

[0226] A value of 1 for `no_prof_constraint_flag` specifies that `sps_affine_prof_enabled_flag` should be 0. A value of 0 for `no_prof_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_prof_constraint_flag` should be 1.

[0227] A value of 1 for `no_bcw_constraint_flag` specifies that `sps_bcw_enabled_flag` should be 0. A value of 0 for `no_bcw_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_bcw_constraint_flag` should be 1.

[0228] A value of 1 for `no_ciip_constraint_flag` specifies that `sps_ciip_enabled_flag` should be 0. A value of 0 for `no_cipp_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_cipp_constraint_flag` should be 1.

[0229] A value of 1 for `no_gpm_constraint_flag` specifies that `sps_gpm_enabled_flag` should be 0. A value of 0 for `no_gpm_constraint_flag` will not impose this constraint. When `intra_only_constraint_flag` is 1, the value of `no_gpm_constraint_flag` should be 1.

[0230] A value of 1 for `no_weighted_pred_constraint_flag` specifies that `sps_weighted_pred_flag` should be 0. A value of 0 for `no_weighted_pred_constraint_flag` will not impose this constraint.

[0231] A value of 1 for `no_weighted_bipred_constraint_flag` specifies that `sps_weighted_bipred_flag` should be 0. A value of 0 for `no_weighted_bipred_constraint_flag` will not impose this constraint.

[0232] General transformation constraint information semantics

[0233] A value of 1 for `no_mts_constraint_flag` specifies that `sps_mts_enabled_flag` should be 0. A value of 0 for `no_mts_constraint_flag` will not impose this constraint.

[0234] A value of 1 for `no_sbt_constraint_flag` specifies that `sps_sbt_enabled_flag` should be 0. A value of 0 for `no_sbt_constraint_flag` will not impose this constraint.

[0235] A value of 1 for no_lfnst_constraint_flag specifies that sps_lfnst_enabled_flag should be 0. A value of 0 for no_lfnst_constraint_flag will not impose this constraint.

[0236] A value of 1 for `no_transform_skip_constraint_flag` specifies that `sps_transform_skip_enabled_flag` should be 0. A value of 0 for `no_transform_skip_constraint_flag` will not impose this constraint.

[0237] A value of 1 for no_act_constraint_flag specifies that sps_act_enabled_flag should be 0. A value of 0 for no_act_constraint_flag will not impose this constraint.

[0238] A value of 1 for `no_tsrc_constraint_flag` specifies that `sh_ts_residual_coding_disabled_flag` should be 1. A value of 0 for `no_tsrc_constraint_flag` will not impose this constraint. When `no_transform_skip_constraint_flag` is 1, the value of `no_tsrc_constraint_flag` should be 1.

[0239] General quantization constraint information semantics

[0240] A value of 1 for `no_joint_cbcr_constraint_flag` specifies that `sps_joint_cbcr_enabled_flag` should be 0. A value of 0 for `no_joint_cbcr_constraint_flag` will not impose this constraint. When `max_chroma_format_constraint_idc` is 0, the value of `no_joint_cbcr_constraint_flag` should be 1.

[0241] A value of 1 for `no_bdpcm_constraint_flag` specifies that `sps_bdpcm_enabled_flag` should be 0. A value of 0 for `no_bdpcm_constraint_flag` does not impose this constraint. When `no_transform_skip_constraint_flag` is 1, the value of `no_bdpcm_constraint_flag` should be 1.

[0242] A value of 1 for `no_cu_qp_delta_constraint_flag` specifies that `pps_cu_qp_delta_enabled_flag` should be 0. A value of 0 for `no_cu_qp_delta_constraint_flag` will not impose this constraint.

[0243] A value of 1 for `no_chroma_qp_offset_constraint_flag` specifies that `pps_cu_chroma_qp_offset_list_enabled_flag` should be 0. A value of 0 for `no_chroma_qp_offset_constraint_flag` will not impose this constraint.

[0244] A value of 1 for `no_dep_quant_constraint_flag` specifies that `sps_dep_quant_enabled_flag` should be 0. A value of 0 for `no_dep_quant_constraint_flag` will not impose this constraint.

[0245] A value of 1 for `no_sign_data_hiding_constraint_flag` specifies that `sps_sign_data_hiding_enabled_flag` should be 0. A value of 0 for `no_sign_data_hiding_constraint_flag` will not impose this constraint.

[0246] A value of 1 for `no_explicit_scaling_list_constraint_flag` specifies that `sps_explicit_scaling_list_enabled_flag` should be 0. A value of 0 for `no_explicit_scaling_list_constraint_flag` does not impose this constraint. When `no_aps_constraint_flag` is 1, the value of `no_explicit_scaling_list_constraint_flag` should be 1.

[0247] General loop filter constraint information semantics

[0248] A value of 1 for no_sao_constraint_flag specifies that sps_sao_enabled_flag should be 0. A value of 0 for no_sao_constraint_flag will not impose this constraint.

[0249] A value of 1 for no_alf_constraint_flag specifies that sps_alf_enabled_flag should be 0. A value of 0 for no_alf_constraint_flag will not impose this constraint.

[0250] A value of 1 for `no_ccalf_constraint_flag` specifies that `sps_ccalf_enabled_flag` should be 0. A value of 0 for `no_ccalf_constraint_flag` does not impose this constraint. The value of `no_ccalf_constraint_flag` should be 1 when `max_chroma_format_constraint_idc` is 0 or `no_alf_constraint_flag` is 1.

[0251] A value of 1 for `no_ladf_constraint_flag` specifies that `sps_ladf_enabled_flag` should be 0. A value of 0 for `no_ladf_constraint_flag` will not impose this constraint.

[0252] A value of 1 for `no_lmcs_constraint_flag` specifies that `sps_lmcs_enabled_flag` should be 0. A value of 0 for `no_lmcs_constraint_flag` does not impose this constraint. When `no_aps_constraint_flag` is 1, the value of `no_lmcs_constraint_flag` should be 1.

[0253] General layer constraint information semantics

[0254] A value of 1 for `no_vps_constraint_flag` specifies that `sps_video_parameter_set_id` should be 0. A value of 0 for `no_vps_constraint_flag` does not impose this constraint. When `general_one_picture_only_constraint_flag` is 1, the value of `no_vps_constraint_flag` should be 1.

[0255] A single_layer_constraint_flag value of 1 specifies that vps_max_layers_minus1 should be equal to 0. A single_layer_constraint_flag value of 0 does not impose this constraint. When general_one_picture_only_constraint_flag is equal to 1 or no_vps_constraint_flag is equal to 1, the value of single_layer_constraint_flag should be equal to 1.

[0256] An all_layers_independent_constraint_flag value of 1 specifies that vps_all_independent_layers_flag will be equal to 1 if it exists, and will be inferred to be equal to 1 if it does not exist. An all_layers_independent_constraint_flag value of 0 will not impose this constraint.

[0257] General auxiliary enhancement information constrains information semantics

[0258] Note 1 - The decoder can ignore the value of the general auxiliary enhancement information constraint information flag because there is no decoding process required by the presence or interpretation of the corresponding SEI message.

[0259] A value of 1 for `no_scalable_nesting_SEI_constraint_flag` specifies that no scalable nested SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_scalable_nesting_SEI_constraint_flag` does not impose this constraint.

[0260] A value of 1 for `no_subpic_level_SEI_constraint_flag` specifies that no subpic level SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_subpic_level_SEI_constraint_flag` does not impose this constraint.

[0261] A value of 1 for `no_filler_payload_SEI_constraint_flag` specifies that no filler payload SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_filler_payload_SEI_constraint_flag` does not impose this constraint.

[0262] A value of 1 for `no_user_data_reg_SEI_constraint_flag` specifies that no user data should be registered in the bitstream of OlsInScope as recommended by the ITU T.35 SEI message. A value of 0 for `no_user_data_reg_SEI_constraint_flag` does not impose this constraint.

[0263] A value of 1 for `no_user_data_unreg_SEI_constraint_flag` specifies that no SEI messages for unregistered user data should exist in the bitstream of OlsInScope. A value of 0 for `no_user_data_unreg_SEI_constraint_flag` does not impose this constraint.

[0264] A value of 1 for `no_film_grain_SEI_constraint_flag` specifies that no film grain feature SEI messages should exist in the OlsInScope bitstream. A value of 0 for `no_film_grain_SEI_constraint_flag` does not impose this constraint.

[0265] A `general_non_packed_SEI_constraint_flag` value of 1 specifies that no frame encapsulation layout SEI messages should exist in the bitstream of OlsInScope. A `general_non_packed_SEI_constraint_flag` value of 0 does not impose this constraint.

[0266] Note that the decoder can ignore the value of general_non_packed_constraint_flag because there is no requirement for the decoding process associated with the presence or interpretation of the frame encapsulation arrangement SEI message.

[0267] A `general_non_projected_SEI_constraint_flag` value of 1 specifies that no equirectangular projection SEI messages should exist, and that no equirectangular projection SEI messages or generalized cubic mapping projection SEI messages should exist in the bitstream of OlsInScope. A `general_non_projected_SEI_constraint_flag` value of 0 does not impose this constraint.

[0268] Note that the 3-decoder can ignore the value of general_non_projected_constraint_flag because there is no decoding process requirement associated with the existence or interpretation of the isorectangular projection SEI message and the generalized cubic projection SEI message.

[0269] A value of 1 for `no_parameter_set_incl_SEI_constraint_flag` specifies that no parameter set in the OlsInScope bitstream should contain an indication of the SEI message. A value of 0 for `no_parameter_set_incl_SEI_constraint_flag` does not impose this constraint.

[0270] A value of 1 for `no_decoded_picture_hash_SEI_constraint_flag` specifies that no decoded image hash SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_decoded_picture_hash_SEI_constraint_flag` does not impose this constraint.

[0271] A value of 1 for `no_mcdv_SEI_constraint_flag` specifies that no master display color volume SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_mcdv_SEI_constraint_flag` does not impose this constraint.

[0272] A value of 1 for `no_cll_SEI_constraint_flag` specifies that no content luma level SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_cll_SEI_constraint_flag` does not impose this constraint.

[0273] A value of no_DRAP_SEI_constraint_flag equal to 1 specifies that no associated random access point indication (SEI) messages should exist in the bitstream of OlsInScope. A value of no_DRAP_SEI_constraint_flag equal to 0 does not impose this constraint.

[0274] A value of 1 for `no_alt_transfer_char_SEI_constraint_flag` specifies that no alternative transfer feature SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_alt_transfer_char_SEI_constraint_flag` does not impose this constraint.

[0275] A value of 1 for `no_ambient_view_envir_SEI_constraint_flag` specifies that no ambient view environment SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_ambient_view_envir_SEI_constraint_flag` does not impose this constraint.

[0276] A value of 1 for `no_ccv_SEI_constraint_flag` specifies that no Content Chroma SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_ccv_SEI_constraint_flag` does not impose this constraint.

[0277] A value of 1 for `no_omni_video_specific_SEI_constraint_flag` specifies that no omnidirectional video-specific SEI messages should exist in the bitstream of OlsInScope. A value of 0 for `no_omni_video_specific_SEI_constraint_flag` does not impose this constraint.

[0278] A value of 1 for `no_field_frame_SEI_constraint_flag` specifies that no frame-field information (SEI) messages should exist in the bitstream of OlsInScope. A value of 0 for `no_field_frame_SEI_constraint_flag` does not impose this constraint.

[0279] The value of no_sar_SEI_constraint_flag equal to 1 indicates that no sample aspect ratio SEI messages should exist.

[0280] Alternative representation

[0281] In an embodiment, the alternative syntax format used in Table 14 can be applied instead of representing the general constraint information structure according to Table 1, where the twelve general_xxx_constraint_info() structures are replaced by the corresponding general_xxx_constraint_info syntax elements, where "xxx" also describes aspects of VVC decoding, such as partitioning, intra-frame decoding, loop filtering, etc.

[0282] Table 14: Examples of Alternative General Constraint Information Syntax

[0283]

[0284]

[0285] Tables 15 and 16 provide examples of the syntax and semantics for using the 7-bit general information general_format_constraint_info. This is intended to illustrate how all other general constraint flag syntax and semantics can be specified.

[0286] Table 15: Examples of General Format Constraint Information Syntax (Variation 1)

[0287]

[0288] Table 16: Examples of General Format Constraint Information Syntax (Variation 2)

[0289]

[0290] In an embodiment, as an example, the semantics of Table 16 can be described as follows:

[0291] A GeneralFrameOnlyConstraintFlag value of 1 specifies that OlsInScope transmits an image representing a frame. A GeneralFrameOnlyConstraintFlag value of 0 specifies that OlsInScope transmits an image that may or may not represent a frame. When GeneralFrameOnlyConstraintFlag is 1, the value of sps_field_seq_flag should be 0.

[0292] Note - The decoder can ignore the value of general_frame_only_constraint_flag because there is no requirement for its associated decoding process.

[0293] MaxBitdepthMinus8ConstraintIdc specifies that sps_bit_depth_minus8 will be in the range of 0 to MaxBitdepthMinus8ConstraintIdc, including the end value.

[0294] MaxChromaFormatConstraintIdc specifies that sps_chroma_format_idc will be in the range of 0 to MaxChromaFormatConstraintIdc, including the end value.

[0295] A value of 1 for NoSeparateColourPlaneConstraintFlag specifies that sps_separate_colour_plane_flag should be 0 if it exists. A value of 0 for NoSeparateColourPlaneConstraintFlag does not impose this constraint.

[0296] In another embodiment, the alternative syntax format used in Table 17 can be applied instead of representing the general constraint information structure according to Table 1, where the twelve general_xxx_constraint_info() structures are replaced by the corresponding general_xxx_constraint_info_present_flag syntax elements, where "xxx" also describes aspects of VVC decoding, such as partitioning, intra-frame decoding, loop filtering, etc. Each general_xxx_constraint_info_present_flag modifies the signaling of the corresponding general_xxx_constraint_info() syntax structure. Modifying the presence of the general_xxx_constraint_info() syntax structure on the general_xxx_constraint_info_present_flag facilitates parsing (the decoder only needs to parse those general_xxx_constraint_info() structures with the corresponding flag enabled) and provides additional measures to determine whether the bitstream meets the requirements.

[0297] Table 17: An example of another embodiment of the proposed "General Constraint Information Syntax"

[0298]

[0299]

[0300] A value of 1 for `general_xxx_constraint_info_present_flag` indicates that at least one general constraint flag represented by a signal in `general_xxx_constraint_info()` has a value that is not equal to 0. A value of 0 for `general_xxx_constraint_info_present_flag` indicates that all general constraint flags represented by signals in `general_xxx_constraint_info` have a value that is equal to 0.

[0301] In another embodiment, the alternative syntax format used in Table 18 can be applied instead of representing the general transform constraint information structure and general quantization constraint information structure according to Tables 9 and 10, respectively. In this embodiment, the general_transform_constraint_info() structure and general_quantization_constraint_info() structure in the twelve general_xxx_constraint_info() structures are replaced with a new general_tqr_constraint_info() structure. This combines the general constraint flags associated with transform, quantization, and residual coding together to reduce confusion in classifying specific general constraint flags as transform, quantization, or residual coding when uncertainty exists.

[0302] Table 18: An example of another embodiment of the general transformation, quantization, and residual constraint information syntax.

[0303]

[0304]

[0305] In another embodiment, to make future expansion easier, the syntax for reserved bytes (gci_tqr_num_reserved_bytes) can also be represented as "extension flags" followed by the corresponding extension data, which is read when the extension flags are true.

[0306] Figure 2A An example process of video encoding according to an embodiment is described. For example... Figure 2AAs described, in step 205, the encoder analyzes the content and decoding requirements (e.g., image resolution, frame rate, available bandwidth, allowable latency, processing power, etc.) and determines which tools to use and which to skip. In multi-layer decoding, these decisions can be made independently for each layer. In steps 210 and 215, for each tool defined above, it iterates through all the general_xxx_constraint_info() functions defined under general_constraint_info(), for example, as defined in Table 1, where “xxx” describes the category of the relevant tool and decision, to specify a specific constraint flag for each tool. Next, in step 220, the encoder sets the corresponding syntax values ​​at each syntax layer (e.g., Sequence Parameter Level (SPS), Picture Parameter Level (PPS), Picture Header (PH), Slice Header (SH), etc.). Finally, in step 225, it encodes the incoming video to produce a decoded bitstream 230 that conforms to all the previously defined constraint parameters (e.g., steps 210 and 215). Such a bitstream also contains the decoder's general_constraint_info() syntax structure.

[0307] Given Figure 2A The encoding process, Figure 2B An example process for video decoding according to an embodiment is described. Given the decoded bitstream 230, in step 240, the decoder parses the bitstream to identify bitstream constraints defined as part of the general_constraint_info() syntax structure. In steps 245 and 250, the decoder iterates through all general_xxx_constraint_info() structures defined under general_constraint_info(), for example, as defined in Table 1, to read all constraint flags for each category "xxx" of the encoding tool. In step 255, the previously extracted parameters can also be used to check compliance by comparing them with other flags and parameters that are part of the decoded bitstream to ensure consistency. Finally, in step 260, the decoded bitstream is decoded to produce a sequence of video frames.

[0308] Examples of sub-image and scalability constraint decoding and compliance testing

[0309] The VVC specification (reference [2]) defines a subpicture as any rectangular region of one or more slices in a picture. More broadly, a subpicture supports a separately decoded substream or view of a picture that the decoder can resample into a single picture.

[0310] In VVC, slices can be defined using "tiles" and "decode tree units," which, along with other VVC syntax elements, are described as follows:

[0311] A slice is an integer number of complete tile blocks or integer number of consecutive complete decode tree unit (CTU) rows within a single Network Abstraction Layer (NAL) unit of an image.

[0312] A tile is a rectangular area of ​​CTU within a specific tile column or row in an image.

[0313] A tile column is a rectangular area of ​​a CTU with a height equal to the height of the image and a width specified by a syntax element in the image parameter set.

[0314] A tile row is a rectangular area of ​​a CTU whose height is specified by a syntax element in the image parameter set and whose width is equal to the width of the image.

[0315] A decoded block is an MxN block of samples with values ​​of M and N, so dividing the CTB into decoded blocks is a partitioning.

[0316] A decode tree block (CTB) is an N×N sample block with a certain N value, so dividing a component into a CTB is a partitioning.

[0317] A decoding tree unit (CTU) is the CTB of a luminance sample, two CTBs of the corresponding chrominance samples of an image with three sample arrays, or the CTB of a black and white image or an image using three separate color planes and a syntax structure for decoding the samples.

[0318] Scalability

[0319] In previous decoding standards such as HEVC, scalability support was defined using different configuration files, such as scalable configuration files. The current version of VVC supports layered scalability in its main configuration file. As defined in VVC, a layer contains a set of Video Decoding Layer (VCL) NAL units, each with a specific nuh_layer_id value and an associated non-VCL NAL unit.

[0320] In a recent proposal to the VVC specification (reference [3]), the authors suggested that there be two profiles in version 1 of the VVC specification for 10-bit 4:2:0 video support, so that appropriate markets can choose the appropriate profile according to their needs:

[0321] • "Main 10" profile with sub-images and scalability

[0322] • The "Constraint Main 10" configuration file lacks sub-images and scalability.

[0323] As an example, in this embodiment, to disable subpictures, the existing VVC syntax element one_subpic_per_pic_constraint_flag can be used, defined as follows:

[0324] A value of 1 for `one_subpic_per_pic_constraint_flag` specifies that each image should contain only one subpic. A value of 0 for `one_subpic_per_pic_constraint_flag` does not impose this constraint. When `one_slice_per_pic_constraint_flag` is 1, the value of `one_subpic_per_pic_constraint_flag` should be 1.

[0325] To disable scalable / layered decoding, reference [3] suggests applying the following constraints in the proposed VVC constraint Main 10 configuration file:

[0326] The Sequence Parameter Set (SPS) syntax element `inter_layer_ref_pics_present_flag` should be equal to 0. This disables inter-layer predictions used for SNR and spatial scalability.

[0327] The Video Parameter Set (VPS) syntax element `vps_max_layers_minus1` should be equal to 0. This disables multiple output layer sets, so the decoder does not have to manage different output layer sets.

[0328] The single value of the nuh_layer_id element in the NAL unit header syntax will be used across the entire decoded video sequence (CVS). This will disable more than one image in each access unit (AU).

[0329] In an embodiment, for example, to disable scalable or layered decoding instead of creating the additional configuration files suggested in reference [3], a similar function can be achieved by using the following general constraint information syntax elements:

[0330] ·no_scalability_constraint_flag

[0331] Introduced as part of the syntax elements in Table 3, when set to 1, it indicates to the decoder that scalable and hierarchical decoding is disabled.

[0332] In other embodiments, the value of no_scalability_constraint_flag may be adjusted or implied based on the value of the additional general constraint information syntax element proposed below.

[0333] The no_vps_constraint_flag (related to single_layer_constraint_flag in reference [3]) indicates that the VPS does not exist.

[0334] The no_mols_constraint_flag disables multiple output layer sets, so the decoder does not have to manage different output layer sets ('mols' means multiple output layer sets) (see also Table 12).

[0335] · no_mnli_constraint_flag disables more than one picture (more than one layer) in any access unit (AU) ('mnli' means multiple nuh_layer_id). (In reference [3], it is called no_mixed_nalu_types_in_pic_constraint_flag)

[0336] • no_ilrp_constraint_flag disables inter-layer prediction for SNR and spatial scalability ('ilrp' stands for inter-layer reference picture). (In reference [3], this appears to be equivalent to all_layers_independent_constraint_flag).

[0337] The instance definitions of these syntax elements include:

[0338] The no_vps_constraint_flag value being 1 indicates that the SPS does not reference the VPS.

[0339] The no_vps_constraint_flag value being 0 indicates that a VPS may exist internally within CVS.

[0340] When no_vps_constraint_flag equals 1, one or more of the following apply:

[0341] The value of -no_mnli_constraint_flag should be equal to 1.

[0342] The value of -no_ilrp_constraint_flag should be equal to 1.

[0343] The value of -sps_video_parameter_set_id should be equal to 0.

[0344] - It is inferred that the value of vps_max_layers_minus1 is equal to 0.

[0345] - It is inferred that the value of each_layer_is_an_ols_flag is equal to 1.

[0346] - It is inferred that the value of inter_layer_ref_pics_present_flag is equal to 0.

[0347] A value of 1 for `no_mols_constraint_flag` specifies that the total number of Output Layer Sets (OLS) specified by the VPS is 1. A value of 0 for `no_mols_constraint` does not impose this constraint.

[0348] When the value of no_mols_constraint_flag is equal to 1, one or more of the following apply:

[0349] The value of -no_vps_constraint_flag should be equal to 0.

[0350] The value of -sps_video_parameter_set should not be equal to 0.

[0351] - When the value of vps_max_layers_minus1 is greater than 0, the value of each_layer_is_an_ols_flag should be equal to 0, and the value of vps_all_independent_layers_flag should be 0.

[0352] - When the value of ols_mode_idc is equal to 2, the value of num_output_layer_sets_minus1 should be equal to 0. Otherwise, the value of ols_mode_idc is equal to 0 or 1, and the value of vps_max_layers_minus should be equal to 0.

[0353] A value of 1 for `no_mnli_constraint_flag` specifies that all VCL NAL cells in CVS should have the same `nuh_layer_id` value. A value of 0 for `no_mnli_constraint` does not impose this constraint.

[0354] When no_mnli_constraint equals 1, one or more of the following apply:

[0355] The value of -vps_max_layers_minus1 should be equal to 0.

[0356] - It is inferred that the value of each_layer_is_an_ols_flag is equal to 1.

[0357] A value of 1 for `no_ilrp_constraint_flag` specifies that no inter-layer reference picture (ILRP) is used for inter-frame prediction of any decoded picture in a decoded layer video sequence (CLVS). A value of 0 for `no_ilrp_constraint_flag` does not impose this constraint.

[0358] When the value of no_ilrp_constraint_flag is equal to 1, one or more of the following apply:

[0359] The value of -inter_layer_ref_pics_present_flag should be equal to 0.

[0360] The value of -vps_all_independent_layers_flag should be equal to 1.

[0361] In the embodiment, the variable noScalabilityConstraint, which specifies the value of no_scalability_constraint_flag, can be derived as follows:

[0362] if(no_vps_constraint_flag||no_mols_constraint_flag||no_mnli_constraint_flag||

[0363] no_ilrp_constraint_flag||vps_max_layers_minus1===0||

[0364] sps_video_parameter_set_id==0)

[0365] noScalabilityConstraint=1

[0366] else

[0367] noScalabilityConstraint=0

[0368] Where x||y represents the Boolean logical "OR" between x and y.

[0369] Figure 3 Describe the process of determining whether scalability is enabled or disabled in a bitstream. For example... Figure 3As described, the decoder can perform the logical operation described in step 305, which is the same as the logical operation defined above. If true, then scalability is disabled (310); otherwise, scalability is enabled (315).

[0370] Those skilled in the art will understand that the proposed new flags can also be applied to constraining and detecting other functions of the VVC codec, not just scalability and layered decoding. Examples are provided below, but without limitation.

[0371] In this example, when no_vps_constraint_flag equals 1, the flag can be used to detect one or more of the following conditions for bitstream compliance or constraints:

[0372] The value of -no_mnli_constraint_flag is equal to 1, which specifies that CVS contains only one layer.

[0373] When the value of -no_ilrp_constraint_flag is equal to 1, it specifies that no inter-layer reference pictures (ILRPs) are used for inter-frame prediction of any decoded picture in CLVS.

[0374] The value of -sps_video_parameter_set_id is equal to 0, which indicates that SPS is not referencing VPS. It is inferred that the value of GeneralLayerIdx[nuh_layer_id] is equal to zero, and the value of vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1.

[0375] - It is inferred that the value of vps_max_layers_minus1 is equal to 0.

[0376] - It is inferred that the value of each_layer_is_an_ols_flag is equal to 1.

[0377] - It is inferred that the value of inter_layer_ref_pics_present_flag is equal to 0.

[0378] In another instance, when no_mols_constraint_flag equals 1, it can be used to detect one or more of the following:

[0379] The value of -no_vps_constraint_flag is equal to 0, which specifies that SPS can reference VPS whose vps_video_parameter_set_id value is equal to the sps_video_parameter_set_id value.

[0380] In another instance, when the value of no_mnli_containts_flag is equal to 0 and the value of no_mols_constraint_flags is equal to 1, CVS can contain multiple layers, but only one set of output layers.

[0381] In another instance, when the constrained SPS does not reference the VPS, bitstream compliance can also be detected by checking the following:

[0382] `no_vps_constraint_flag` is set to 1; check if `sps_video_parameter_set_id` is 0.

[0383] And, independently,

[0384] no_vps_constraint_flag is 1; no_mnli_constraint_flag is =1.

[0385] In another instance, when there is only one OLS constraint, compliance can be detected by checking the following:

[0386] `no_mols_constraint_flag` is set to 1; check if `no_vps_constraint_flag` is 0.

[0387] And, independently,

[0388] no_vps_constraint_flag is 1; sps_video_parameter_set is not 0.

[0389] References

[0390] Each of the references listed in this article is incorporated herein by full citation.

[0391] [1] High efficiency video coding, H.265, H series, Coding of moving video, ITU, (February 2018).

[0392] [2] B. Bross, J. Chen, S. Liu and YK. Wang, “Versatile Video Coding (Draft 9)”, JVET Output Document, JVET-R2001, vA(10), JVET 18th Meeting, Teleconference, April 15-24, 2020.

[0393] [3] W. Wan et al., “VVC Version 1 Profiles”, JVET-R0392 (v.6), JVET 18th Meeting, April 15-24, 2020.

[0394] Example computer system implementation plan

[0395] Embodiments of the present invention may be implemented using systems configured in computer systems, electronic circuit systems and components, such as integrated circuit (IC) devices like microcontrollers, field-programmable gate arrays (FPGAs) or other configurable or programmable logic devices (PLDs), discrete-time or digital signal processors (DSPs), application-specific integrated circuits (ASICs), and / or devices comprising one or more of such systems, devices, or components. The computer and / or IC may execute, control, or perform instructions related to constraint processing in video decoding, such as those described herein. The computer and / or IC may calculate any of the various parameters or values ​​related to constraint processing in video decoding as described herein. Image and video embodiments may be implemented using hardware, software, firmware, and various combinations thereof.

[0396] Some embodiments of the present invention include a computer processor that executes software instructions that cause the processor to perform the methods of the present invention. For example, one or more processors, such as those in a display, encoder, set-top box, transcoder, etc., can implement methods related to constraint layering processing in video decoding as described above by executing software instructions in a processor-accessible program memory. Embodiments of the present invention may also be provided in the form of a program product. The program product may include any non-transitory and tangible media carrying a set of computer-readable signals including instructions that, when executed by a data processor, cause the data processor to perform the methods of the present invention. The program product according to the present invention can be any of a wide variety of non-transitory and tangible forms. For example, the program product may include physical media, such as magnetic data storage media including floppy disks, hard disk drives, optical data storage media including CD-ROMs, DVDs, electronic data storage media including ROMs, flash RAM, etc. The computer-readable signals on the program product may optionally be compressed or encrypted.

[0397] In the case of the components mentioned above (e.g., software modules, processors, parts, devices, circuits, etc.), unless otherwise stated, references to said components (including references to “devices”) should be interpreted as including equivalent (e.g., functionally equivalent) components of any component that performs the functions of the described component, including components that are structurally not equivalent to the disclosed structure that performs the functions of the exemplary embodiments of the present invention.

[0398] Equivalent solutions, extended solutions, alternative solutions, and miscellaneous items

[0399] This describes example embodiments involving constraint processing in video decoding. In the foregoing description, embodiments of the invention have been described with reference to numerous specific details that may vary for different implementations. Therefore, the only and specific indication of the invention, and what the applicant considers to be the content of the invention, is the set of claims determined from this application, which are the specific form of such claims published and include any subsequent amendments. Any definitions expressly set forth herein with respect to terms contained in such claims will determine the meaning of such terms as used in the claims. Therefore, limitations, elements, properties, features, advantages, or attributes not expressly referenced in the claims should not in any way limit the scope of such claims. Therefore, the specification and drawings should be viewed in an illustrative rather than restrictive sense.

[0400] Various aspects of the present invention can be understood from the following exemplary embodiments (EEE):

[0401] EEE 1. A method for decoding a decoded video sequence (CVS) using a processor with constrained hierarchical processing, the method comprising:

[0402] Receive a decoded video sequence (CVS) including decoded images and syntax parameters, and detect whether layered processing is enabled, wherein detecting whether layered processing is enabled includes checking whether one or more of the following syntax parameters are set to 1:

[0403] The first flag indicates whether scalable decoding or hierarchical decoding is enabled;

[0404] The second flag indicates whether the Video Parameter Set (VPS) is constrained;

[0405] The third flag indicates whether the total number of Output Layer Sets (OLS) is constrained;

[0406] The fourth flag indicates whether the layer to which the Network Abstraction Layer (NAL) unit belongs is constrained;

[0407] The fifth indicator, which indicates whether inter-layer predictions are constrained; and

[0408] If one or more of these flags are set to 1, then hierarchical processing is disabled; otherwise, hierarchical processing is enabled.

[0409] EEE 2. According to the method described in EEE 1, wherein if the second flag is set to 1, then:

[0410] It is inferred that the third flag is set to 1;

[0411] It is inferred that the fourth flag is set to 1;

[0412] It is inferred that the fifth flag is set to 1; and

[0413] The inferred parameter vps_max_layers_minus1 is equal to 0.

[0414] EEE 3. According to the method of EEE 1 or EEE 2, wherein if the third flag is set to 1, then:

[0415] If the value of the ols_mode_idc parameter is equal to 2, then the value of num_output_layer_sets_minus1 should be equal to 0;

[0416] Otherwise, if the value of ols_mode_idc is equal to 0 or 1, then the value of vps_max_layers_minus1 should be equal to 0.

[0417] EEE 4. The method according to any one of EEEs 1 to 3, wherein if the fourth flag is set to 1, it specifies that all Video Decoding Layer (VCL) NAL units in the decoded video sequence (CVS) should have the same nuh_layer_id value, and vps_max_layers_minus1 = 0.

[0418] EEE 5. The method according to any of EEEs 1 to 4, wherein if the fifth flag is set to 1, it specifies that no inter-layer reference pictures (ILRPs) are used for inter-frame prediction of any decoded pictures in the decoded layer video sequence (CLVS), and inter_layer_ref_pics_present_flag = 0.

[0419] EE 6. A method for decoding a decoded video sequence (CVS) using a processor, the method comprising:

[0420] Receive a decoded video sequence (CVS) including decoded images and syntax parameters, and check whether one or more of the following syntax parameters are set to 1:

[0421] The first indicator is whether the Video Parameter Set (VPS) is constrained;

[0422] The second flag indicates whether the total number of Output Layer Sets (OLS) is constrained;

[0423] The third indicator indicates whether the layer to which the Network Abstraction Layer (NAL) unit belongs is constrained;

[0424] The fourth indicator shows whether inter-layer predictions are constrained; and

[0425] If one or more of these flags are set to 1, then bitstream compliance is determined.

[0426] EEE 7. According to the method of EEE 6, if the first flag is detected to be set to 1, then one or more of the following apply:

[0427] The third flag is set to 1;

[0428] The fourth flag is equal to 1;

[0429] sps_video_parameter_set_id=0;

[0430] It is inferred that vps_max_layers_minus1 equals 0;

[0431] Infer that each_layer_is_an_ols_flag equals 1; or

[0432] It is inferred that inter_layer_ref_pics_present_flag is equal to 0.

[0433] EE 8. A method for encoding a sequence of video images using a processor with constraint processing, the method comprising:

[0434] Receive a sequence of video images to be encoded into a decoded bitstream;

[0435] Determine a set of tools that are not needed for the decoder to decode the decoded bitstream;

[0436] Determine one or more constraint flags associated with the set of tools;

[0437] Group the one or more constraint flags into one or more tool constraint information syntax structures;

[0438] The tool constraint information syntax structure is combined into a general constraint syntax structure; and the decoded bitstream is generated, wherein the decoded bitstream includes the decoded images of the video image sequence and the general constraint syntax structure.

[0439] EEE 9. According to the method described in EEE 8, the one or more tool constraint information syntax structures include syntax elements associated with one or more of the following:

[0440] Constraint flags associated with Network Abstraction Layer (NAL) units,

[0441] Constraint flags related to partitioning,

[0442] Constraints associated with the prediction model

[0443] Constraint flags related to intra-frame prediction

[0444] Constraint flags related to inter-frame prediction

[0445] Constraint flags related to transformation,

[0446] Constraints related to quantization,

[0447] Constraint flags related to loop filtering,

[0448] Constraint flags related to loop format,

[0449] Constraints related to general functionality, or

[0450] Constraint flags related to assisting and enhancing message delivery.

[0451] EEE 10. According to the method of EEE 9, the syntax element associated with the constraint flag relating to general functionality includes a non-scalability constraint flag, wherein if set to equal to 1, then scalable decoding and hierarchical decoding are disabled for the decoded bitstream.

[0452] EE 11. A method for decoding a decoded bitstream with constraint processing using a processor, the method comprising:

[0453] The decoder receives a decoded image comprising a sequence of video images and a decoded bitstream comprising a general constraint syntax structure, wherein the general constraint syntax structure comprises syntax elements for a set of tools not required by the decoder to decode the decoded bitstream;

[0454] Parse the general constraint syntax structure to identify one or more tool constraint information syntax structures, wherein each tool constraint information syntax structure includes one or more constraint flags associated with a specific decoding tool;

[0455] Parse each of the one or more tool constraint information syntax structures to generate one or more constraint flags associated with the set of tools; and

[0456] The decoded images in the decoded bitstream are decoded according to one or more constraint flags to generate the video image sequence.

[0457] EEE 12. According to the method of EEE 11, the one or more tool constraint information syntax structures include syntax elements associated with one or more of the following:

[0458] Constraint flags associated with Network Abstraction Layer (NAL) units,

[0459] Constraint flags related to partitioning,

[0460] Constraints associated with the prediction model

[0461] Constraint flags related to intra-frame prediction

[0462] Constraint flags related to inter-frame prediction

[0463] Constraint flags related to transformation,

[0464] Constraints related to quantization,

[0465] Constraint flags related to loop filtering,

[0466] Constraint flags related to loop format,

[0467] Constraints related to general functionality, or

[0468] Constraint flags related to assisting and enhancing message delivery.

[0469] EEE 13. According to the method of EEE 12, the syntax element associated with the constraint flag relating to general functionality includes a non-scalability constraint flag, wherein if set to equal to 1, then scalable decoding and hierarchical decoding are disabled for the decoded bitstream.

[0470] EEE 14. A non-transitory computer-readable storage medium having computer-executable instructions stored thereon for performing, together with one or more processors, the method described in accordance with any one of EEEs 1 to 13.

[0471] EEE 15. An apparatus comprising a processor and configured to perform the method according to any one of EEEs 1 to 13.

Claims

1. A method for encoding a video image sequence using a processor with constraint processing, the method comprising: Receive a sequence of video images to be encoded into a decoded bitstream; Determine a set of constraints on the decoding tool and the values ​​of the syntax elements of the decoded bitstream; Determine one or more constraint flags associated with the set of constraints; The one or more constraint flags are combined into a general constraint syntax structure, wherein the one or more constraint flags include constraint flags related to loop filtering, including a first flag with no constraints on virtual boundaries, wherein a value of 1 for the first flag specifies that `sps_virtual_boundaries_enabled_flag` should be equal to 0, otherwise a value of 0 will not impose this constraint; and The decoded bitstream is generated, wherein the decoded bitstream includes the decoded images of the video image sequence and the general constraint syntax structure.

2. The method according to claim 1, further comprising: The constraint flags associated with transformation and quantization are combined with the one or more constraint flags to form the general constraint syntax structure, wherein the constraint flags associated with transformation and quantization include a second flag for constraints on lists without explicit scaling.

3. The method of claim 2, wherein a value of 1 for the second flag specifies that sps_explicit_scaling_list_enabled_flag should be equal to 0, otherwise a value of 0 will not impose this constraint.

4. The method of claim 1, further comprising: The constraint flags associated with inter-frame decoding are combined with the one or more constraint flags to form the general constraint syntax structure, wherein the constraint flags associated with inter-frame decoding include a third flag for constraints for unweighted prediction.

5. The method of claim 4, wherein a value of 1 for the third flag specifies that sps_weighted_pred_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint.

6. The method of claim 1, further comprising: The constraint flags related to transformation and quantization are combined with the one or more constraint flags to form the general constraint syntax structure, wherein the constraint flags related to transformation and quantization include a second flag for constraints on an unexplicitly scaled list; as well as The constraint flags associated with inter-frame decoding are combined with the one or more constraint flags to form the general constraint syntax structure, wherein the constraint flags associated with inter-frame decoding include a third flag for constraints for unweighted prediction.

7. The method of claim 6, wherein a value of 1 for the second flag specifies that sps_explicit_scaling_list_enabled_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint; and wherein a value of 1 for the third flag specifies that sps_weighted_pred_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint.

8. A method for decoding a decoded bitstream using a processor with constraints, the method comprising: The decoder receives a decoded image comprising a sequence of video images and a decoded bitstream comprising a general constraint syntax structure, wherein the general constraint syntax structure comprises a set of restrictive syntax elements for the decoding tool and values ​​of the syntax elements of the decoded bitstream. Parse the general constraint syntax structure to identify one or more constraint flags associated with the set of constraints, wherein the one or more constraint flags include constraint flags related to loop filtering, including a first flag with no constraints on virtual boundaries, wherein a value of 1 for the first flag specifies that `sps_virtual_boundaries_enabled_flag` should be equal to 0, otherwise a value of 0 will not impose such a constraint; and The decoded images in the decoded bitstream are decoded according to one or more constraint flags to generate the video image sequence.

9. The method of claim 8, wherein parsing the general constraint syntax structure further identifies constraint flags related to transformation and quantization, the constraint flags related to transformation and quantization including a second flag for constraints on a list without explicit scaling.

10. The method of claim 9, wherein a value of 1 for the second flag specifies that sps_explicit_scaling_list_enabled_flag should be equal to 0, otherwise a value of 0 will not impose this constraint.

11. The method of claim 8, wherein parsing the general constraint syntax structure further identifies constraint flags related to inter-frame decoding, the constraint flags related to inter-frame decoding including a third flag for constraints for unweighted prediction.

12. The method of claim 11, wherein a value of 1 for the third flag specifies that sps_weighted_pred_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint.

13. The method of claim 8, wherein parsing the general constraint syntax structure further identifies constraint flags related to transformation and quantization, the constraint flags related to transformation and quantization including a second flag for constraints on an unexplicit scaling list; and constraint flags related to inter-frame decoding, the constraint flags related to inter-frame decoding including a third flag for constraints on unweighted prediction.

14. The method of claim 13, wherein a value of 1 for the second flag specifies that sps_explicit_scaling_list_enabled_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint; and wherein a value of 1 for the third flag specifies that sps_weighted_pred_flag should be equal to 0, otherwise a value of 0 will not impose such a constraint.

15. A non-transitory computer-readable storage medium having computer-executable instructions stored thereon for performing the method according to any one of claims 1 to 14 together with one or more processors.

16. An apparatus including a processor, the apparatus being configured to perform the method according to any one of claims 1 to 14.

Citation Information

Patent Citations

  • General constraint information in video coding

    WO2021208899A1

  • Coding of instantaneous decoding refresh subpictures

    WO2021211364A1