Deblocking signaling in video coding

By introducing format rules and adaptive parameter sets, the color conversion and filter application in the video encoding and decoding process are optimized, solving the problem of low efficiency in existing video encoding and decoding technologies, and achieving more efficient bandwidth utilization and improved video quality.

CN115668917BActive Publication Date: 2026-05-15DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies struggle to effectively utilize control information for efficient encoding and decoding conversion when processing video, resulting in low bandwidth utilization efficiency. This is especially true in multi-layer video encoding and decoding standards, where format rules and filter applications are not flexible enough.

Method used

By introducing format rules during video encoding and decoding, controlling chroma conversion, deblocking filter application, image segmentation, and signaling notification of quantization parameters, video block processing is optimized, and more flexible encoding and decoding conversion is achieved by utilizing adaptive parameter sets and prediction mode indicators.

Benefits of technology

It improves the efficiency of video encoding and decoding and bandwidth utilization, enhances the flexibility and quality of video processing, and is suitable for multi-layer video encoding and decoding standards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115668917B_ABST
    Figure CN115668917B_ABST
Patent Text Reader

Abstract

Systems, methods, and apparatus, including computer programs encoded on a computer-readable medium, for video processing are described. Video processing can include video encoding, video decoding, or video transcoding. One example method of video processing includes a method of video processing comprising performing a conversion between a video region of a video and a bitstream of the video according to a format rule, and wherein the format rule specifies to determine an applicability of a deblocking filter to the video region based on i) a picture parameter set level and ii) a syntax element at a picture level or a slice level.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application is filed to promptly claim priority and benefit from International Patent Application No. PCT / CN2020 / 083967, filed April 9, 2020. The entire disclosure of the aforementioned application is incorporated herein by reference as part of the disclosure. Technical Field

[0003] This patent document relates to image and video encoding and decoding. Background Technology

[0004] Digital video accounts for the largest share of bandwidth usage on the Internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video is expected to continue to grow. Summary of the Invention

[0005] This document discloses techniques that can be used by video encoders and decoders to process the codec representation of video using control information useful for decoding the codec representation.

[0006] In one example aspect, a video processing method is disclosed. The method includes: performing a conversion between a video having one or more chroma components and a codec representation of the video, the video comprising one or more video pictures containing one or more stripes, wherein the codec representation conforms to a format rule, wherein the format rule specifies that a chroma array type field controls constraints on the conversion characteristics of the chroma used during the conversion.

[0007] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video images containing one or more video regions and a codec representation of the video, wherein the codec representation conforms to a format rule specifying the inclusion of a deblocking mode indicator for the video regions, the indicator indicating the applicability of a deblocking filter to the video regions during the conversion.

[0008] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video images and a codec representation of the video, the one or more video images comprising one or more video stripes and / or one or more video sub-images, wherein the codec representation conforms to a format rule specifying a flag indicating whether a single stripe mode per sub-image is considered enabled for the video image when image segmentation is disabled for the video image.

[0009] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video images containing one or more video strips and a codec representation of the video, wherein the codec representation conforms to a format rule specifying that the image or strip level colorimetric parameter offset is signaled in the image header or strip header.

[0010] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video images containing one or more video stripes and a codec representation of the video, wherein the codec representation conforms to a format rule specifying a chroma quantization parameter (QP) table applicable to the conversion of video blocks of the video as derived by an XOR operation between (delta_qp_in_val_minus1[i][j]+1) and delta_qp_diff_val[i][j], wherein delta_qp_in_val_minus1[i][j] specifies the incremental value for deriving the input coordinates of the j-th pivot point of the i-th chroma map, and delta_qp_diff_val[i][j] specifies the incremental value for deriving the output coordinates of the j-th pivot point of the i-th chroma QP map, where i and j are integers.

[0011] In another example, a different video processing method is disclosed. This method includes performing video and video-to-bitstream conversion according to format rules, wherein the format rules specify that, if an image or stripe references an adaptive parameter set, constraints on the values ​​of a first field in the adaptive parameter set based on a second field are derived using information included in the image header or stripe header.

[0012] In another example, a different video processing method is disclosed. This method includes performing a conversion between video regions and the video bitstream according to format rules, wherein the format rules specify the applicability of a deblocking filter to the video regions based on i) picture parameter set level and ii) picture level or stripe level syntax elements.

[0013] In another example, a different video processing method is disclosed. The method includes: performing a conversion between a current video block and a bitstream of video according to format rules, and wherein the format rules specify omitting a first syntax element indicating whether the current video block is encoded / decoded in a skip mode based on at least one of a second syntax element indicating the applicability of a first prediction mode or the block size of the current video block, wherein the first prediction is derived from a block of sample values ​​of the same stripe of the current video block determined by a block vector.

[0014] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video and a video bitstream comprising one or more images, according to format rules, wherein the format rules specify the presence and / or value of an indication of whether an image is segmented into video regions based on the number of codec tree blocks in the image.

[0015] In yet another example, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the methods described above.

[0016] In yet another example, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the methods described above.

[0017] In yet another example, a computer-readable medium on which code is stored is disclosed. This code embodies one of the methods described herein in the form of processor-executable code.

[0018] These and other features are described in this document. Attached Figure Description

[0019] Figure 1 This is a block diagram of an example video processing system.

[0020] Figure 2 This is a block diagram of a video processing device.

[0021] Figure 3 This is a flowchart of an example method for video processing.

[0022] Figure 4 This is a block diagram illustrating a video encoding / decoding system according to some embodiments of the present disclosure.

[0023] Figure 5 This is a block diagram illustrating an encoder according to some embodiments of the present disclosure.

[0024] Figure 6 This is a block diagram illustrating a decoder according to some embodiments of the present disclosure.

[0025] Figure 7 The flowchart shows an example method for video processing based on some implementations of the disclosed technology.

[0026] Figure 8A , Figure 8B and Figure 8C The flowchart shows an example method for video processing based on some implementations of the disclosed technology. Detailed Implementation

[0027] The use of chapter headings in this document is for ease of understanding and does not limit the applicability of the techniques and embodiments disclosed in each chapter to that chapter only. Furthermore, the use of H.266 terminology in some descriptions is merely for ease of understanding and not to limit the scope of the disclosed techniques. Therefore, the techniques described herein are also applicable to other video codec protocols and designs.

[0028] 1. Introduction

[0029] This document relates to video codec technologies. Specifically, it concerns the syntax design of APS, deblocking, subpictures, and QP increments in video codecs. These ideas can be applied individually or in various combinations to any video codec standard or non-standard video codec that supports multi-layer video codecs (e.g., the Versatile Video Codec (VVC) under development).

[0030] 2. Abbreviation

[0031] APS Adaptive Parameter Set

[0032] AU Access Unit

[0033] AUD Access Unit Separator

[0034] AVC Advanced Video Codec

[0035] CLVS codec layer video sequence

[0036] CPB image buffer

[0037] CRA Clean Random Access

[0038] CTU (Codec Tree Unit)

[0039] CVS codec video sequence

[0040] DPB Decoding Image Buffer

[0041] DPS Decoding Parameter Set

[0042] EOB bitstream end

[0043] EOS sequence ends

[0044] GDR Gradual Decoding and Refresh

[0045] HEVC High-Efficiency Video Encoding and Decoding

[0046] HRD Assumption Reference Decoder

[0047] IDR Instant Decoding and Refresh

[0048] JEM Joint Exploration Model

[0049] MCTS Motion Constraint Pieces

[0050] NAL Network Abstraction Layer

[0051] OLS Output Layer Set

[0052] PH image header

[0053] PPS Image Parameter Set

[0054] PROF refines predictions using optical flow.

[0055] PTL (Level, Grade, Class)

[0056] PU Image Unit

[0057] RBSP raw byte sequence payload

[0058] SEI Supplemental Enhancement Information

[0059] SH strip header

[0060] SPS Sequence Parameter Set

[0061] SVC Scalable Video Codec

[0062] VCL (Video Codec Layer)

[0063] VPS Video Parameter Set

[0064] VTM VVC Test Model

[0065] VUI Video Availability Information

[0066] VVC Multi-Functional Video Encoding and Decoding

[0067] 3. Preliminary Discussion

[0068] Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, while ISO / IEC developed the MPEG-1 and MPEG-4 Visual standards. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM). JVET meetings are held quarterly, and the goal of new codec standards is to reduce the bitrate by 50% compared to HEVC. The new video codec standard was officially named Multifunctional Video Coding (VVC) at the JVET meeting in April 2018, and the first version of the VVC Test Model (VTM) was also released at that time. With ongoing efforts to standardize VVC, new codec technologies have been adopted into the VVC standard at each JVET meeting. The VVC working draft and test model VTM are updated after each meeting. The current goal of the VVC project is to achieve Technical Completion (FDIS) at the meeting in July 2020.

[0069] 3.1 PPS Syntax and Semantics

[0070] In the latest VVC draft text, the syntax and semantics of PPS are as follows:

[0071]

[0072]

[0073]

[0074]

[0075]

[0076] The PPS RBSP should be available for the decoding process before being referenced, including in at least one AU where the TemporalId is less than or equal to the TemporalId of the PPS NAL unit, or provided by external means.

[0077] All PPS NAL cells within a PU that have a specific value for pps_pic_parameter_set_id should have the same content.

[0078] The pps_pic_parameter_set_id identifies the PPS referenced by other syntax elements. The value of pps_pic_parameter_set_id should be in the range of 0 to 63 (inclusive).

[0079] Regardless of the nuh_layer_id value, PPS NAL units share the same value space for pps_pic_parameter_set_id.

[0080] Let ppsLayerId be the value of numh_layer_id for a specific PPS NAL cell, and vclLayerId be the value of numh_layer_id for a specific VCL NAL cell. A specific VCL NAL cell should not refer to a specific PPS NAL cell unless a layer whose ppsLayerId is less than or equal to vclLayerId and whose nuh_layer_id is equal to ppsLayerId is contained in at least one OLS that includes layers whose nuh_layer_id is equal to vclLayerId.

[0081] The `pps_seq_parameter_set_id` parameter specifies the value of `sps_seq_parameter_set_id` for the SPS. The value of `pps_seq_parameter_set_id` should be in the range of 0 to 15 (inclusive). The value of `pps_seq_parameter_set_id` should be the same across all PPSs referenced by the codec image in CLVS.

[0082] A mixed_nalu_types_in_pic_flag value of 1 indicates that each image in the reference PPS has multiple VCLNAL units, the VCLNAL units do not have the same nal_unit_type value, and the image is not an IRAP image. A mixed_nalu_types_in_pic_flag value of 0 indicates that each image in the reference PPS has one or more VCL NAL units, and the VCL NAL units of each image in the reference PPS have the same nal_unit_type value.

[0083] When no_mixed_nalu_types_in_pic_constraint_flag equals 1, the value of mixed_nalu_types_in_pic_flag should be equal to 0.

[0084] For each stripe in image picA that has a nal_unit_type value nalUnitTypeA in the range IDR_W_RADL to CRA_NUT (inclusive), and image picA also contains one or more stripes with another value of nal_unit_type (i.e., the value of mixed_nalu_types_in_pic_flag of image picA is equal to 1), the following applies:

[0085] - The stripe should belong to the subpicA whose corresponding subpic_treated_as_pic_flag[i] value is 1.

[0086] - A stripe should not belong to a subpico of a picA containing a VCL NAL unit whose nal_unit_type is not equal to nalUnitTypeA.

[0087] - If nalUnitTypeA equals CRA, then for all subsequent PUs in CLVS that are after the current picture in the decoding and output order, neither RefPicList[0] nor RefPicList[1] of the stripes in subpicA of these PUs should be included in any picture in the active entry that is before picA in the decoding order.

[0088] - Otherwise (i.e., nalUnitTypeA equals IDR_W_RADL or IDR_N_LP), for all PUs in CLVS that are after the current picture in the decoding order, neither RefPicList[0] nor RefPicList[1] of the stripes in subpicA of these PUs should be included in any picture in the active entry that is before picA in the decoding order.

[0089] Note 1 – `mixed_nalu_types_in_pic_flag` equal to 1 indicates that the reference PPS image contains stripes with different NAL unit types, for example, codec images derived from sub-picture bitstream merge operations. The encoder must ensure that the bitstream structure matches and further aligns the parameters of the original bitstream. An example of this alignment is as follows: when `sps_idr_rpl_flag` is equal to 0 and `mixed_nalu_types_in_pic_flag` is equal to 1, the reference PPS image cannot have stripes with `nal_unit_type` equal to `IDR_W_RADL` or `IDR_N_LP`.

[0090] `pic_width_in_luma_samples` specifies the width of each decoded image referenced in PPS, in luminance samples. `pic_width_in_luma_samples` should not be equal to 0, should be an integer multiple of `Max(8, MinCbSizeY)`, and should be less than or equal to `pic_width_max_in_luma_samples`.

[0091] When res_change_in_clvs_allowed_flag equals 0, the value of pic_width_in_luma_samples should be equal to pic_width_max_in_luma_samples.

[0092] `pic_height_in_luma_samples` specifies the height of each decoded image referenced to the PPS, in units of luminance samples. `pic_height_in_luma_samples` should not be equal to 0 and should be an integer multiple of `Max(8, MinCbSizeY)`, and should be less than or equal to `pic_height_max_in_luma_samples`.

[0093] When res_change_in_clvs_allowed_flag equals 0, the value of pic_height_in_luma_samples should be equal to pic_height_max_in_luma_samples.

[0094] The variables PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC, and PicHeightInSamplesC are derived as follows:

[0095] PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY) (69)

[0096] PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY) (70)

[0097] PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (71)

[0098] PicWidthInMinCbsY=pic_width_in_luma_samples / MinCbSizeY (72)

[0099] PicHeightInMinCbsY=pic_height_in_luma_samples / MinCbSizeY (73)

[0100] PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY (74)

[0101] PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples (75)

[0102] PicWidthInSamplesC=pic_width_in_luma_samples / SubWidthC (76)

[0103] PicHeightInSamplesC=pic_height_in_luma_samples / SubHeightC (77)

[0104] A pps_conformance_window_flag value of 1 indicates that the consistency trimming window offset parameter immediately follows in PPS. A pps_conformance_window_flag value of 0 indicates that the consistency trimming window offset parameter does not exist in PPS.

[0105] `pps_conf_win_left_offset`, `pps_conf_win_right_offset`, `pps_conf_win_top_offset`, and `pps_conf_win_bottom_offset` specify the sample points of the image in the CLVS output from the decoding process, outputting them according to the rectangular region specified in the image coordinates. When `pps_conformance_window_flag` equals 0, the values ​​of `pps_conf_win_left_offset`, `pps_conf_win_right_offset`, `pps_conf_win_top_offset`, and `pps_conf_win_bottom_offset` are inferred to be equal to 0.

[0106] The consistent cropping window contains luminance samples, where the horizontal image coordinates range from SubWidthC*pps_conf_win_left_offset to pic_width_in_luma_samples-(SubWidthC*pps_conf_win_right_offset+1), and the vertical image coordinates range from SubHeightC*pps_conf_win_top_offset to pic_height_in_luma_samples-(SubHeightC*pps_conf_win_bottom_offset+1), including end values.

[0107] The value of SubWidthC*(pps_conf_win_left_offset+pps_conf_win_right_offset) should be less than pic_width_in_luma_samples, and the value of SubHeightC*(pps_conf_win_top_offset+pps_conf_win_bottom_offset) should be less than pic_height_in_luma_samples.

[0108] When ChromaArrayType is not equal to 0, the corresponding specified sample points of the two chroma arrays are sample points with image coordinates (x / SubWidthC, y / SubHeightC), where (x, y) are the image coordinates of the specified brightness sample point.

[0109] Note 2 – The consistent crop window offset parameter applies only to the output. All internal decoding processes are applied to the uncropped image size.

[0110] Assume ppsA and ppsB are any two PPSs referencing the same SPS. The requirement for bitstream consistency is that when ppsA and ppsB have the same pic_width_in_luma_samples and pic_height_in_luma_samples values, respectively, ppsA and ppsB should also have the same pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, and pps_conf_win_bottom_offset values, respectively.

[0111] When pic_width_in_luma_samples equals pic_width_max_in_luma_samples and pic_height_in_luma_samples equals pic_height_max_in_luma_samples, the bitstream consistency requirement is that pps_conf_win_left_offset, pps_conf_win_right_offset, pps_conf_win_top_offset, and pps_conf_win_bottom_offset are equal to sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, and sps_conf_win_bottom_offset, respectively.

[0112] A scaling_window_explicit_signaling_flag value of 1 indicates that the scaling window offset parameter exists in the PPS. A scaling_window_explicit_signaling_flag value of 0 indicates that the scaling window offset parameter does not exist in the PPS. When res_change_in_clvs_allowed_flag is equal to 0, the value of scaling_window_explicit_signaling_flag should be equal to 0.

[0113] `scaling_win_left_offset`, `scaling_win_right_offset`, `scaling_win_top_offset`, and `scaling_win_bottom_offset` specify the offsets of the image size applied to the scaling calculation. When these values ​​are not present, they are inferred to be equal to `pps_conf_win_left_offset`, `pps_conf_win_right_offset`, `pps_conf_win_top_offset`, and `pps_conf_win_bottom_offset`, respectively.

[0114] The value of SubWidthC*(scaling_win_left_offset+scaling_win_right_offset) should be less than pic_width_in_luma_samples, and the value of SubHeightC*(scaling_win_top_offset+scaling_win_bottom_offset) should be less than pic_height_in_luma_samples.

[0115] The variables PicOutputWidthL and PicOutputHeightL are derived as follows:

[0116]

[0117] PicOutputHeightL=pic_height_in_luma_samples- (79)

[0118] Assume that refPicOutputWidthL and refPicOutputHeightL are the PicOutputWidthL and PicOutputHeightL of the reference image to the current image of this PPS, respectively. Bitstream consistency requires that all of the following conditions be met:

[0119] –PicOutputWidthL*2 should be greater than or equal to refPicWidthInLumaSamples.

[0120] –PicOutputHeightL*2 should be greater than or equal to refPicHeightInLumaSamples.

[0121] –PicOutputWidthL should be less than or equal to refPicWidthInLumaSamples*8.

[0122] –PicOutputHeightL should be less than or equal to refPicHeightInLumaSamples*8.

[0123] –PicOutputWidthL*pic_width_max_in_luma_samples should be greater than or equal to refPicOutputWidthL*(pic_width_in_luma_samples-Max(8,MinCbSizeY)).

[0124] –PicOutputHeightL*pic_height_max_in_luma_samples should be greater than or equal to refPicOutputHeightL*(pic_height_in_luma_samples-Max(8,MinCbSizeY)).

[0125] An output_flag_present_flag value of 1 indicates that the pic_output_flag syntax element exists in the header of the reference PPS. An output_flag_present_flag value of 0 indicates that the pic_output_flag syntax element does not exist in the header of the reference PPS.

[0126] `subpic_id_mapping_in_pps_flag` equal to 1 specifies that signaling notification of subpicture ID mapping is performed in the PPS. `subpic_id_mapping_in_pps_flag` equal to 0 specifies that signaling notification of subpicture ID mapping is not performed in the PPS. If `subpic_id_mapping_explicitly_signalled_flag` is 0 or `subpic_id_mapping_in_sps_flag` is 1, then the value of `subpic_id_mapping_in_pps_flag` should be 0. Otherwise (where `subpic_id_mapping_explicitly_signalled_flag` is 1 and `subpic_id_mapping_in_sps_flag` is 0), the value of `subpic_id_mapping_in_pps_flag` should be 1.

[0127] pps_num_subpics_minus1 should be equal to sps_num_subpics_minus1.

[0128] pps_subpic_id_len_minus1 should be equal to sps_subpic_id_len_minus1.

[0129] pps_subpic_id[i] specifies the subpick ID of the i-th subpick. The length of the pps_subpic_id[i] syntax element is pps_subpic_id_len_minus1+1 bits.

[0130] For each value of i in the range from 0 to sps_num_subpics_minus1 (inclusive), the variable SubpicIdVal[i] is derived as follows:

[0131]

[0132] Bitstream consistency requires the application of the following two constraints:

[0133] --For any two distinct values ​​of i and j in the range from 0 to sps_num_subpics_minus1 (inclusive), SubpicIdVal[i] should not be equal to SubpicIdVal[j].

[0134] --When the current image is not the first image of CLVS, for each i value in the range of 0 to sps_num_subpics_minus1 (inclusive of end values), if the value of SubpicIdVal[i] is not equal to the value of SubpicIdVal[i] of the previous image in the same layer in the decoding order, then the nal_unit_type of all codec strip NAL units of the subpics in the current image with subpic index i should be equal to a specific value in the range of IDR_W_RADL to CRA_NUT (inclusive of end values).

[0135] `no_pic_partition_flag` equal to 1 indicates that no image segmentation is applied to each image in the reference PPS. `no_pic_partition_flag` equal to 0 indicates that each image in the reference PPS can be segmented into multiple slices or strips.

[0136] The requirement for bitstream consistency is that the value of no_pic_partition_flag should be the same for all PPS referenced by the encoding and decoding images within CLVS.

[0137] The requirement for bitstream consistency is that when the value of sps_num_subpics_minus1+1 is greater than 1, the value of no_pic_partition_flag should not be equal to 1.

[0138] The value pps_log2_ctu_size_minus5 plus 5 specifies the luma codec tree block size for each CTU. pps_log2_ctu_size_minus5 should be equal to sps_log2_ctu_size_minus5.

[0139] The increment of 1 in `num_exp_tile_columns_minus1` specifies the number of explicitly provided tile column widths. The value of `num_exp_tile_columns_minus1` should be in the range of 0 to `PicWidthInCtbsY–1` (inclusive). When `no_pic_partition_flag` equals 1, the value of `num_exp_tile_columns_minus1` is inferred to be 0.

[0140] The increment of 1 in `num_exp_tile_rows_minus1` specifies the number of explicitly provided tile row heights. The value of `num_exp_tile_rows_minus1` should be in the range of 0 to `PicHeightInCtbsY–1` (inclusive). When `no_pic_partition_flag` is equal to 1, the value of `num_tile_rows_minus1` is inferred to be equal to 0.

[0141] `tile_column_width_minus1[i]` incremented by 1 specifies the width of the i-th tile column in CTB units, ranging from 0 to `num_exp_tile_columns_minus1-1` (inclusive). `tile_column_width_minus1[num_exp_tile_columns_minus1]` is used to derive the width of tile columns whose index is greater than or equal to `num_exp_tile_columns_minus1` as specified in Clause 6.5.1. The value of `tile_column_width_minus1[i]` should be in the range of 0 to `PicWidthInCtbsY–1` (inclusive). When it does not exist, the value of `tile_column_width_minus1[0]` is inferred to be equal to `PicWidthInCtbsY-1`.

[0142] `tile_row_height_minus1[i]` incremented by 1 specifies the height of the i-th slice row in CTB units, ranging from 0 to `num_exp_tile_rows_minus1-1` (inclusive). `tile_row_height_minus1[num_exp_tile_rows_minus1]` is used to derive the height of slice rows whose index is greater than or equal to `num_exp_tile_rows_minus1` as specified in Clause 6.5.1. The value of `tile_row_height_minus1[i]` should be in the range from 0 to `PicHeightInCtbsY-1` (inclusive). When it does not exist, the value of `tile_row_height_minus1[0]` is inferred to be equal to `PicHeightInCtbsY-1`.

[0143] A `rect_slice_flag` value of 0 indicates that slices within each slice are in the raster scan order, and slice information is not signaled in the PPS. A `rect_slice_flag` value of 1 indicates that slices within each slice cover a rectangular area of ​​the image, and slice information is signaled in the PPS. When it does not exist, `rect_slice_flag` is inferred to be equal to 1. When `subpic_info_present_flag` is equal to 1, the value of `rect_slice_flag` should be equal to 1.

[0144] A single_slice_per_subpic_flag value of 1 indicates that each subpicture consists of one and only one rectangular stripe. A single_slice_per_subpic_flag value of 0 indicates that each subpicture can consist of one or more rectangular stripes. When single_slice_per_subpic_flag is 1, num_slices_in_pic_minus1 is inferred to be equal to sps_num_subpics_minus1. When it does not exist, the value of single_slice_per_subpic_flag is inferred to be 0.

[0145] `num_slices_in_pic_minus1` incremented by 1 specifies the number of rectangular stripes in each picture of the reference PPS. The value of `num_slices_in_pic_minus1` should be in the range of 0 to `MaxSlicesPerPicture – 1` (inclusive), where `MaxSlicesPerPicture` is specified in Appendix A. When `no_pic_partition_flag` equals 1, the value of `num_slices_in_pic_minus1` is inferred to be equal to 0.

[0146] A tile_idx_delta_present_flag value of 0 indicates that the tile_idx_delta value does not exist in the PPS, and all rectangular stripes in the PPS image are specified in raster order according to the procedure defined in Clause 6.5.1. A tile_idx_delta_present_flag value of 1 indicates that the tile_idx_delta value may exist in the PPS, and all rectangular stripes in the PPS image are specified in the order indicated by the tile_idx_delta value. When it does not exist, the value of tile_idx_delta_present_flag is inferred to be equal to 0.

[0147] `slice_width_in_tiles_minus1[i]` incremented by 1 specifies the width of the i-th rectangular strip in units of slice columns. The value of `slice_width_in_tiles_minus1[i]` should be in the range of 0 to `NumTileColumns–1` (inclusive).

[0148] The following applies when slice_width_in_tiles_minus1[i] does not exist:

[0149] --If NumTileColumns equals 1, then the value of slice_width_in_tiles_minus1[i] is inferred to be equal to 0.

[0150] --Otherwise, infer the value of slice_width_in_tiles_minus1[i] according to Clause 6.5.1.

[0151] `slice_height_in_tiles_minus1[i]` incremented by 1 specifies the height of the i-th rectangular strip in units of rows. The value of `slice_height_in_tiles_minus1[i]` should be in the range of 0 to NumTileRows–1 (inclusive).

[0152] The following applies when slice_height_in_tiles_minus1[i] does not exist:

[0153] --If NumTileRows equals 1, or tile_idx_delta_present_flag equals 0, and tileIdx%NumTileColumns is greater than 0, then the value of slice_height_in_tiles_minus1[i] is inferred to be equal to 0.

[0154] --Otherwise (NumTileRows is not equal to 1, and tile_idx_delta_present_flag is equal to 1 or tileIdx%NumTileColumns is equal to 0), when tile_idx_delta_present_flag is equal to 1 or tileIdx%NumTileColumns is equal to 0, the value of slice_height_in_tiles_minus1[i] is inferred to be equal to slice_height_in_tiles_minus1[i-1].

[0155] `num_exp_slices_in_tile[i]` specifies the number of slice heights explicitly provided in the current slice containing multiple rectangular slices. The value of `num_exp_slices_in_tile[i]` should be in the range of 0 to `RowHeight[tileY] – 1` (inclusive), where `tileY` is the slice row index containing the `i`-th slice. When it does not exist, the value of `num_exp_slices_in_tile[i]` is inferred to be equal to 0. When `num_exp_slices_in_tile[i]` is equal to 0, the value of the variable `NumSlicesInTile[i]` is derived to be equal to 1.

[0156] The value of exp_slice_height_in_ctus_minus1[j], incremented by 1, specifies the height of the j-th rectangular stripe in the current slice, in units of CTU rows. The value of exp_slice_height_in_ctus_minus1[j] should be in the range of 0 to RowHeight[tileY] – 1 (inclusive), where tileY is the slice row index of the current slice.

[0157] When num_exp_slices_in_tile[i] is greater than 0, the SliceHeightInCtusMinus1[i+k] of variables NumSlicesInTile[i] and k in the range of 0 to NumSlicesInTile[i]-1 (inclusive) is derived as follows:

[0158]

[0159]

[0160] `tile_idx_delta[i]` specifies the difference between the tile index of the first piece in the i-th rectangular strip and the tile index of the first piece in the (i+1)-th rectangular strip. The value of `tile_idx_delta[i]` should be in the range of -NumTilesInPic+1 to NumTilesInPic–1 (inclusive). When it does not exist, the value of `tile_idx_delta[i]` is inferred to be equal to 0. When it exists, the value of `tile_idx_delta[i]` should not be equal to 0.

[0161] A `loop_filter_across_tiles_enabled_flag` value of 1 indicates that loop filtering operations can be performed across tile boundaries in the reference PPS image. A `loop_filter_cross_tiles_enabled_flag` value of 0 indicates that loop filtering operations are not performed across tile boundaries in the reference PPS image. Loop filtering operations include deblocking filtering, sample adaptive offset filtering, and adaptive loop filtering operations. When it does not exist, the value of `loop_filter_cross_tiles_enabled_flag` is inferred to be equal to 1.

[0162] A `loop_filter_cross_slices_enabled_flag` value of 1 indicates that loop filtering operations can be performed across slice boundaries in the reference PPS image. A `loop_filter_cross_slice_enabled_flag` value of 0 indicates that loop filtering operations are not performed across slice boundaries in the reference PPS image. Loop filtering operations include deblocking filters, sample adaptive offset filters, and adaptive loop filter operations. When it does not exist, the value of `loop_filter_cross_slices_enabled_flag` is inferred to be 0.

[0163] A cabac_init_present_flag value of 1 indicates that the cabac_init_flag exists in the reference PPS stripe header. A cabac_init_present_flag value of 0 indicates that the cabac_init_flag does not exist in the reference PPS stripe header.

[0164] Increment 1 by num_ref_idx_default_active_minus1[i]. When i equals 0, it specifies the inferred value of variable NumRefIdxActive[0] for P-strips or B-strips where num_ref_idx_active_override_flag equals 0. When i equals 1, it specifies the inferred value of NumRefIdxActive[1] for B-strips where num_ref_idx_active_override_flag equals 0. The value of num_ref_idx_default_active_minus1[i] should be in the range of 0 to 14 (inclusive).

[0165] A value of 0 for rpl1_idx_present_flag indicates that ref_pic_list_sps_flag[1] and ref_pic_list_idx[1] do not exist in the PH syntax structure or the strip header of the image referenced in PPS. A value of 1 for rpl1_idx_present_flag indicates that ref_pic_list_sps_flag[1] and ref_pic_list_idx[1] may exist in the PH syntax structure or the strip header of the image referenced in PPS.

[0166] init_qp_minus26 plus 26 specifies the SliceQp for each stripe of PPS. Y The initial value. When a non-zero value of ph_qp_delta is decoded, SliceQp Y The initial value of SliceQp is modified at the image level, or when a non-zero value of slice_qp_delta is decoded. Y The initial value is modified at the stripe level. The value of init_qp_minus26 should be in the range of -(26+QpBdOffset) to +37 (inclusive).

[0167] A flag of 1 for `cu_qp_delta_enabled_flag` indicates that the syntax elements `ph_cu_qp_delta_subdiv_intra_slice` and `ph_cu_qp_delta_subdiv_inter_slice` exist in the PH of the reference PPS, and `cu_qp_delta_abs` may exist in the transformation unit syntax. A flag of 0 for `cu_qp_delta_enabled_flag` indicates that the syntax elements `ph_cu_qp_delta_subdiv_intra_slice` and `ph_cu_qp_delta_subdiv_inter_slice` do not exist in the PH of the reference PPS, and `cu_qp_delta_abs` does not exist in the transformation unit syntax.

[0168] A value of 1 for `pps_chroma_tool_offsets_present_flag` indicates the presence of syntax elements related to chroma tool offsets in the PPS RBSP syntax structure. A value of 0 for `pps_chroma_tool_offsets_present_flag` indicates the absence of such syntax elements in the PPS RBSP syntax structure. When `ChromaArrayType` equals 0, the value of `pps_chroma_tool_offsets_present_flag` should be 0.

[0169] pps_cb_qp_offset and pps_cr_qp_offset are respectively specified for exporting Qp′ Cb and Qp′ Cr Brightness quantization parameter Qp′ Y The values ​​of pps_cb_qp_offset and pps_cr_qp_offset should be in the range of -12 to +12 (inclusive). When ChromaArrayType equals 0, pps_cb_qp_offset and pps_cr_qp_offset are not used during decoding, and the decoder should ignore their values. When they do not exist, the values ​​of pps_cb_qp_offset and pps_cr_qp_offset are inferred to be equal to 0.

[0170] A value of 1 for `pps_joint_cbcr_qp_offset_present_flag` indicates that `pps_joint_cbcr_qp_offset_value` and `joint_cbcr_qp_offset_list[i]` exist in the PPS RBSP syntax structure. A value of 0 for `pps_joint_cbcr_qp_offset_present_flag` indicates that `pps_joint_cbcr_qp_offset_value` and `joint_cbcr_qp_offset_list[i]` do not exist in the PPS RBSP syntax structure. When `ChromaArrayType` equals 0 or `sps_joint_cbcr_enabled_flag` equals 0, the value of `pps_joint_cbcr_qp_offset_present_flag` should be 0. When it does not exist, the value of `pps_joint_cbcr_qp_offset_present_flag` is inferred to be 0.

[0171] pps_joint_cbcr_qp_offset_value specifies the value used to export Qp′. CbCr Brightness quantization parameter Qp′ YThe offset. The value of pps_joint_cbcr_qp_offset_value should be in the range of -12 to +12 (inclusive). When ChromaArrayType equals 0 or sps_joint_cbcr_enabled_flag equals 0, pps_joint_cbcr_qp_offset_value is not used during decoding, and the decoder should ignore its value. When pps_joint_cbcr_qp_offset_present_flag equals 0, pps_joint_cbcr_qp_offset_value does not exist and is inferred to be equal to 0.

[0172] A value of 1 for `pps_slice_chroma_qp_offsets_present_flag` indicates that the `slice_cb_qp_offset` and `slice_cr_qp_offset` syntax elements exist in the associated slice header. A value of 0 for `pps_slice_chroma_qp_offsets_present_flag` indicates that the `slice_cb_qp_offset` and `slice_cr_qp_offset` syntax elements do not exist in the associated slice header. When they do not exist, the value of `pps_slice_chroma_qp_offsets_present_flag` is inferred to be 0.

[0173] A value of 1 for `pps_cu_chroma_qp_offset_list_enabled_flag` indicates that the syntax elements `ph_cu_chroma_qp_offset_subdiv_intra_slice` and `ph_cu_chroma_qp_offset_subdiv_inter_slice` exist in the reference PPS's PH, and `cu_chroma_qp_offset_flag` may exist in the Transform Unit syntax and Palette Encoding / Decoding syntax. A value of 0 for `pps_cu_chroma_qp_offset_list_enabled_flag` indicates that the syntax elements `ph_cu_chroma_qp_offset_subdiv_intra_slice` and `ph_cu_chroma_qp_offset_subdiv_inter_slice` do not exist in the reference PPS's PH, and `cu_chroma_qp_offset_flag` does not exist in the Transform Unit syntax and Palette Encoding / Decoding syntax. When it does not exist, the value of `pps_cu_chroma_qp_offset_list_enabled_flag` is inferred to be 0.

[0174] The increment of 1 in `chroma_qp_offset_list_len_minus1` specifies the number of syntax elements `cb_qp_offset_list[i]`, `cr_qp_offset_list[i]`, and `joint_cbcr_qp_offset_list[i]` present in the PPS RBSP syntax structure. The value of `chroma_qp_offset_list_len_minus1` should be in the range of 0 to 5 (inclusive).

[0175] cb_qp_offset_list[i], cr_qp_offset_list[i], and joint_cbcr_qp_offset_list[i] respectively define Qp′ Cb Qp′ Cr and Qp′ CbCr The offsets used in the export. The values ​​of cb_qp_offset_list[i], cr_qp_offset_list[i], and joint_cbcr_qp_offset_list[i] should be in the range of -12 to +12 (inclusive). When pps_joint_cbcr_qp_offset_present_flag equals 0, joint_cbcr_qp_offset_list[i] does not exist and is inferred to be equal to 0.

[0176] A value of 0 for pps_weighted_pred_flag indicates that weighted predictions should not be applied to the P-strips of the reference PPS. A value of 1 for pps_weighted_pred_flag indicates that weighted predictions should be applied to the P-strips of the reference PPS. When sps_weighted_pred_flag is equal to 0, the value of pps_weighted_pred_flag should also be 0.

[0177] A value of 0 for pps_weighted_bipred_flag indicates that explicit weighted predictions should not be applied to the B-strips of the reference PPS. A value of 1 for pps_weighted_bipred_flag indicates that explicit weighted predictions should be applied to the B-strips of the reference PPS. When sps_weighted_bipred_flag is equal to 0, the value of pps_weighted_bipred_flag should also be 0.

[0178] A deblocking filter control present flag of 1 indicates that the PPS contains a deblocking filter control syntax element. A deblocking filter control present flag of 0 indicates that the PPS does not contain a deblocking filter control syntax element.

[0179] A value of 1 for `deblocking_filter_override_enabled_flag` indicates that either `ph_deblocking_filter_override_flag` exists in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` exists in the slice header of the reference PPS. A value of 0 for `deblocking_filter_override_enabled_flag` indicates that either `ph_deblocking_filter_override_flag` does not exist in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` does not exist in the slice header of the reference PPS. When neither exists, the value of `deblocking_filter_override_enabled_flag` is inferred to be 0.

[0180] A value of 1 for `pps_deblocking_filter_disabled_flag` indicates that the deblocking filter operation does not apply to slices referencing PPSs that do not have `slice_deblocking_filter_disabled_flag`. A value of 0 for `pps_deblocking_filter_disabled_flag` indicates that the deblocking filter operation applies to slices referencing PPSs that do not have `slice_deblocking_filter_disabled_flag`. When it does not exist, the value of `pps_deblocking_filter_disabled_flag` is inferred to be 0.

[0181] `pps_beta_offset_div2` and `pps_tc_offset_div2` specify default deblocking parameter offsets for β and tC (divided by 2). These parameter offsets are applied to the luminance component of the reference PPS strip, unless the default deblocking parameter offsets are overridden by deblocking parameter offsets present in the image header or strip header of the reference PPS strip. The values ​​of `pps_beta_offset_div2` and `pps_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `pps_beta_offset_div2` and `pps_tc_offset_div2` are inferred to be equal to 0.

[0182] `pps_cb_beta_offset_div2` and `pps_cb_tc_offset_div2` specify default deblocking parameter offsets for β and tC (divided by 2). These parameter offsets are applied to the Cb component of the reference PPS strip, unless the default deblocking parameter offsets are overridden by deblocking parameter offsets present in the image header or strip header of the reference PPS strip. The values ​​of `pps_cb_beta_offset_div2` and `pps_cb_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `pps_cb_beta_offset_div2` and `pps_cb_tc_offset_div2` are inferred to be equal to 0.

[0183] `pps_cr_beta_offset_div2` and `pps_cr_tc_offset_div2` specify default deblocking parameter offsets for β and tC (divided by 2). These parameter offsets apply to the Cr component of the reference PPS strip, unless the default deblocking parameter offsets are overridden by deblocking parameter offsets present in the image header or strip header of the reference PPS strip. The values ​​of `pps_cr_beta_offset_div2` and `pps_cr_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `pps_cr_beta_offset_div2` and `pps_cr_tc_offset_div2` are inferred to be equal to 0.

[0184] A value of 1 for `rpl_info_in_ph_flag` indicates that the reference image list information exists within the PH syntax structure, but not within the header of a PPS that does not contain a PH syntax structure. A value of 0 for `rpl_info_in_ph_flag` indicates that the reference image list information does not exist within the PH syntax structure, but may exist within the header of a PPS that does not contain a PH syntax structure.

[0185] A value of 1 for `dbf_info_in_ph_flag` indicates that the deblocking filter information exists within the PH syntax structure, but not in the strip header of a PPS that does not contain a PH syntax structure. A value of 0 for `dbf_info_in_ph_flag` indicates that the deblocking filter information does not exist in the PH syntax structure, but may exist in the strip header of a PPS that does not contain a PH syntax structure. When it does not exist, the value of `dbf_info_in_ph_flag` is inferred to be 0.

[0186] A `sao_info_in_ph_flag` value of 1 indicates that the SAO filter information exists within the PH syntax structure, but not within the strip header of a PPS that does not contain a PH syntax structure. A `sao_info_in_ph_flag` value of 0 indicates that the SAO filter information does not exist within the PH syntax structure, but may exist within the strip header of a PPS that does not contain a PH syntax structure.

[0187] An alf_info_in_ph_flag value of 1 indicates that the ALF information exists within the PH syntax structure, but not within the strip header of a PPS that does not contain a PH syntax structure. An alf_info_in_ph_flag value of 0 indicates that the ALF information does not exist within the PH syntax structure, but may exist within the strip header of a PPS that does not contain a PH syntax structure.

[0188] A value of 1 for `wp_info_in_ph_flag` indicates that the weighted prediction information can exist within the PH syntax structure, but not in the strip header of a PPS that does not contain a PH syntax structure. A value of 0 for `wp_info_in_ph_flag` indicates that the weighted prediction information does not exist within the PH syntax structure, but may exist in the strip header of a PPS that does not contain a PH syntax structure. When it does not exist, the value of `wp_info_in_ph_flag` is inferred to be 0.

[0189] A value of 1 for `qp_delta_info_in_ph_flag` indicates that the QP incremental information exists within the PH syntax structure, but not within the strip header of a PPS that does not contain a PH syntax structure. A value of 0 for `qp_delta_info_in_ph_flag` indicates that the QP incremental information does not exist within the PH syntax structure, but may exist within the strip header of a PPS that does not contain a PH syntax structure.

[0190] `pps_ref_wraparound_enabled_flag` equal to 1 specifies that horizontal wraparound motion compensation is applied in inter-frame prediction. `pps_ref_wraparound_enabled_flag` equal to 0 specifies that horizontal wraparound motion compensation is not applied. When the value of `CtbSizeY / MinCbSizeY+1` is greater than `pic_width_in_luma_samples / MinCbSizeY-1`, the value of `pps_ref_wraparound_enabled_flag` should be equal to 0. When `sps_ref_wraparound_enabled_flag` is equal to 0, the value of `pps_ref_wraparound_enabled_flag` should also be equal to 0.

[0191] The value of pps_ref_wraparound_offset plus (CtbSizeY / MinCbSizeY) + 2 specifies the offset used to calculate the horizontal wraparound position in units of MinCbSizeY luminance samples. The value of pps_ref_wraparound_offset should be within the range of 0 to (pic_width_in_luma_samples / MinCbSizeY) - (CtbSizeY / MinCbSizeY) - 2 (inclusive).

[0192] The variable PpsRefWraparoundOffset is set to equal pps_ref_wraparound_offset+(CtbSizeY / MinCbSizeY)+2.

[0193] A picture_header_extension_present_flag value of 0 indicates that the PH extension syntax element does not exist in the PH of the reference PPS. A picture_header_extension_present_flag value of 1 indicates that the PH extension syntax element exists in the PH of the reference PPS. In bitstreams conforming to this version of the specification, picture_header_extension_present_flag should be equal to 0.

[0194] A slice_header_extension_present_flag value of 0 indicates that the slice header extension syntax element does not exist in the slice header of the reference PPS codec image. A slice_header_extension_present_flag value of 1 indicates that the slice header extension syntax element exists in the slice header of the reference PPS codec image. In bitstreams conforming to this version of the specification, slice_header_extension_present_flag should be equal to 0.

[0195] A value of 0 for pps_extension_flag indicates that the pps_extension_data_flag syntax element does not exist in the PPS RBSP syntax structure. A value of 1 for pps_extension_flag indicates that the pps_extension_data_flag syntax element exists in the PPS RBSP syntax structure.

[0196] The `pps_extension_data_flag` flag can have any value. Its presence and value do not affect the consistency of the decoder with the grade specified in this version of the specification. Decoders conforming to this version of the specification should ignore all `pps_extension_data_flag` syntax elements.

[0197] 3.2 APS Syntax and Semantics

[0198] In the latest VVC draft text, the syntax and semantics of APS are as follows:

[0199]

[0200] APS RBSP contains the ALF syntax structure, namely alf_data().

[0201]

[0202]

[0203]

[0204] APS RBSP contains the LMCS syntax structure, namely lmcs_data().

[0205]

[0206]

[0207] APS RBSP includes a scaling list data syntax structure, namely scaling_list_data().

[0208]

[0209]

[0210] Each APS RBSP should be available for the decoding process before being referenced, either in at least one AU whose TemporalId is less than or equal to the TemporalId of the NAL unit of the stripe being encoded or decoded, or provided by external means.

[0211] All APS NAL cells within the PU that have specific values ​​for adaptation_parameter_set_id and aps_params_type, regardless of whether they are prefix APS NAL cells or suffix APS NAL cells, should have the same content.

[0212] The adaptation_parameter_set_id provides an identifier for APS for reference by other syntax elements.

[0213] When aps_params_type is equal to ALF_APS or SCALING_APS, the value of adaptation_parameter_set_id should be in the range of 0 to 7 (inclusive).

[0214] When aps_params_type equals LMCS_APS, the value of adaptation_parameter_set_id should be in the range of 0 to 3 (inclusive).

[0215] Let apsLayerId be the value of nuh_layer_id for a specific APS NAL cell, and vclLayerId be the value of nuh_layer_id for a specific VCL NAL cell. A specific VCL NAL cell should not reference a specific APS NAL cell unless apsLayerId is less than or equal to vclLayerId, and the layer whose nuh_layer_id is equal to apsLayerId is contained in at least one OLS containing a layer whose nuh_layer_id is equal to vclLayerId.

[0216] aps_params_type specifies the type of APS parameters carried in APS, as specified in Table 6.

[0217] Table 6 – APS Parameter Type Codes and APS Parameter Types

[0218]

[0219]

[0220] All APS NAL cells with a specific value of aps_params_type share the same value space for adaptation_parameter_set_id, regardless of the nuh_layer_id value. APS NAL cells with different values ​​of aps_params_type use a separate value space for adaptation_parameter_set_id.

[0221] Note 1 – APS NAL units (with specific values ​​for adaptation_parameter_set_id and aps_params_type) can be shared across images, and different stripes within an image can reference different ALF APSs.

[0222] Note 2 - The suffix APS NAL unit associated with a specific VCL NAL unit (which is before the suffix APS NAL unit in the decoding order) is not used by the specific VCL NAL unit, but is used by the VCL NAL unit that is after the suffix APS NAL unit in the decoding order.

[0223] An aps_extension_flag value of 0 indicates that the aps_extension_data_flag syntax element does not exist in the APS RBSP syntax structure. An aps_extension_flag value of 1 indicates that the aps_extension_data_flag syntax element exists in the APS RBSP syntax structure.

[0224] The `aps_extension_data_flag` flag can have any value. Its presence and value do not affect the decoder's consistency with the grade specified in this version of the specification. Decoders conforming to this version of the specification should ignore all `aps_extension_data_flag` syntax elements.

[0225] `alf_luma_filter_signal_flag` equal to 1 specifies a set of luminance filters for signaling notification. `alf_luma_filter_signal_flag` equal to 0 specifies a set of luminance filters for which no signaling notification is required.

[0226] An alf_chroma_filter_signal_flag value of 1 indicates that the chroma filter is signaled. An alf_chroma_filter_signal_flag value of 0 indicates that the chroma filter is not signaled. When ChromaArrayType is equal to 0, alf_chroma_filter_signal_flag should be equal to 0.

[0227] At least one of the values ​​of alf_luma_filter_signal_flag, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag should be equal to 1.

[0228] The variable NumAlfFilters, which specifies the number of different adaptive loop filters, is set to 25.

[0229] A value of 0 for `alf_luma_clip_flag` specifies that a linear adaptive loop filter is applied to the luminance component. A value of 1 for `alf_luma_clip_flag` specifies that a nonlinear adaptive loop filter can be applied to the luminance component.

[0230] The increment of 1 in alf_luma_num_filters_signalled_minus1 specifies the number of adaptive loop filter classes whose luminance coefficients can be signaled. The value of alf_luma_num_filters_signalled_minus1 should be in the range of 0 to NumAlfFilters–1 (inclusive).

[0231] `alf_luma_coeff_delta_idx[filtIdx]` specifies the index of the adaptive loop filter luminance coefficient increment, indicated by the signaling of the filter class, ranging from 0 to `filtIdx` in the range `NumAlfFilters-1`. If `alf_luma_coeff_delta_idx[filtIdx]` does not exist, it is inferred to be equal to 0. The length of `alf_luma_coeff_delta_idx[filt idx]` is `Ceil(Log2(alf_luma_num_filters_signalled_minus1+1))` bits. The value of `alf_luma_coeff_delta_idx[filtIdx]` should be in the range from 0 to `alf_luma_num_filters_signalled_minus1` (inclusive).

[0232] `alf_luma_coeff_abs[sfIdx][j]` specifies the absolute value of the j-th coefficient of the luminance filter notified by the signaling indicated by `sfIdx`. When `alf_luma_coeff_abs[sfIdx][j]` does not exist, it is inferred to be equal to 0. The value of `alf_luma_coeff_abs[sfIdx][j]` should be in the range of 0 to 128 (inclusive).

[0233] alf_luma_coeff_sign[sfIdx][j] specifies the sign of the j-th luminance coefficient of the filter indicated by sfIdx, as follows:

[0234] --If alf_luma_coeff_sign[sfIdx][j] equals 0, then the corresponding luminance filter coefficient has a positive value.

[0235] --Otherwise (alf_luma_coeff_sign[sfIdx][j] equals 1), the corresponding luminance filter coefficient has a negative value.

[0236] When alf_luma_coeff_sign[sfIdx][j] does not exist, it is inferred to be equal to 0.

[0237] The variable filtCoeff[sfIdx][j] with sfIdx = 0..alf_luma_num_filters_signalled_minus1 and j = 0..11 is initialized as follows:

[0238]

[0239] Having element AlfCoeff L The luminance filter coefficients AlfCoeff are defined by [adaptation_parameter_set_id][filtIdx][j] (where filtIdx = 0..NumAlfFilters–1 and j = 0..11). L [adaptation_parameter_set_id] is exported as follows:

[0240] AlfCoeff L [adaptation_parameter_set_id][filtIdx][j]=filtCoeff[alf_luma_coeff_delta_idx[filtIdx]][j] (94)

[0241] The fixed filter coefficients AlfFixFiltCoeff[i][j] for i = 0..64, j = 0..11 and the class-to-filter mapping AlfClassToFiltMap[m][n] for m = 0..15 and n = 0..24 are derived as follows:

[0242]

[0243]

[0244]

[0245]

[0246]

[0247] The requirement for bitstream consistency is that the AlfCoeff values ​​are filtIdx = 0..NumAlfFilters–1 and j = 0..11. L The value of [adaptation_parameter_set_id][filtIdx][j] should be in the range of -2. 7 Up to 2 7 The range is -1 (inclusive).

[0248] `alf_luma_clip_idx[sfIdx][j]` specifies the clipping index of the clipping value to be used before multiplying by the j-th coefficient of the luminance filter notified by the signaling indicated by `sfIdx`. The bitstream consistency requirement is that the value of `alf_luma_clip_idx[sfIdx][j]` for `sfIdx = 0..alf_luma_num_filters_signalled_minus1` and `j = 0..11` should be in the range of 0 to 3 (inclusive).

[0249] The element AlfClip has filtIdx = 0..NumAlfFilters–1 and j = 0..11. L The luminance filter clipping value AlfClip in [adaptation_parameter_set_id][filtIdx][j]. L [adaptation_parameter_set_id] is derived from BitDepth and clipIdx, which are set to be equal to alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j], as specified in Table 8.

[0250] A value of 0 for `alf_chroma_clip_flag` indicates that a linear adaptive loop filter is applied to the chroma components; a value of 1 for `alf_chroma_clip_flag` indicates that a nonlinear adaptive loop filter is applied to the chroma components. When `alf_chroma_clip_flag` does not exist, it is inferred that `alf_chroma_clip_flag` is equal to 0.

[0251] The value of alf_chroma_num_alt_filters_minus1 plus 1 specifies the number of alternative filters for the chroma component. The value of alf_chroma_num_alt_filters_minus1 should be in the range of 0 to 7 (inclusive).

[0252] `alf_chroma_coeff_abs[altIdx][j]` specifies the absolute value of the j-th chroma filter coefficient of the candidate chroma filter with index `altIdx`. If `alf_chroma_coeff_abs[altIdx][j]` does not exist, it is inferred to be equal to 0. The value of `alf_chroma_coeff_abs[sfIdx][j]` should be in the range of 0 to 128 (inclusive).

[0253] alf_chroma_coeff_sign[altIdx][j] specifies the sign of the j-th chroma filter coefficient of the candidate chroma filter with index altIdx, as follows:

[0254] --If alf_chroma_coeff_sign[altIdx][j] equals 0, then the corresponding chroma filter coefficient has a positive value.

[0255] --Otherwise (alf_chroma_coeff_sign[altIdx][j] equals 1), the corresponding chroma filter coefficients have negative values.

[0256] When alf_chroma_coeff_sign[altIdx][j] does not exist, it is inferred to be equal to 0.

[0257] Having element AlfCoeff C The chromaticity filter coefficients AlfCoeff in [adaptation_parameter_set_id][altIdx][j] C The export of [adaptation_parameter_set_id][altIdx] (where altIdx = 0..alf_chroma_num_alt_filters_minus1 and j = 0..5) is as follows:

[0258]

[0259] The requirement for bitstream consistency is that AlfCoeff has altIdx = 0..alf_chroma_num_alt_filters_minus1 and j = 0..5. C The value of [adaptation_parameter_set_id][altIdx][j] should be in the range of -2. 7 Up to 2 7 The range is -1 (inclusive).

[0260] A value of 1 for `alf_cc_cb_filter_signal_flag` indicates that cross-component filters for the Cb color components are signaled. A value of 0 for `alf_cc_cb_filter_signal_flag` indicates that cross-component filters for the Cb color components are not signaled. When `ChromaArrayType` is 0, `alf_cc_cb_filter_signal_flag` should be 0.

[0261] Incrementing 1 by 1 specifies the number of cross-component filters for the Cb color components signaled in the current ALF APS. The value of alf_cc_cb_filters_signalled_minus1 should be in the range of 0 to 3 (inclusive).

[0262] alf_cc_cb_mapped_coeff_abs[k][j] specifies the absolute value of the j-th mapping coefficient of the k-th cross-component filter for the signaling notification of the Cb color component. When alf_cc_cb_mapped_coeff_abs[k][j] does not exist, it is inferred to be equal to 0.

[0263] alf_cc_cb_coeff_sign[k][j] specifies the sign of the j-th coefficient of the k-th cross-component filter for the signaling notification of the Cb color component, as shown below:

[0264] --If alf_cc_cb_coeff_sign[k][j] equals 0, then the corresponding cross-component filter coefficients have positive values.

[0265] --Otherwise (alf_cc_cb_sign[k][j] equals 1), the corresponding cross-component filter coefficients have negative values.

[0266] When alf_cc_cb_coeff_sign[k][j] does not exist, it is inferred to be equal to 0.

[0267] Cb color component CcAlfApsCoeff with j = 0..6 Cb The kth cross-component filter coefficient of the signaling notification in [adaptation_parameter_set_id][k][j] is derived as follows:

[0268] --If alf_cc_cb_mapped_coeff_abs[k][j] equals 0, then CcAlfApsCoeff Cb [adaptation_parameter_set_id][k][j] is set to equal to 0.

[0269] --Otherwise, CcAlfApsCoeff Cb [adaptation_parameter_set_id][k][j] is set to equal to (1-2*alf_cc_cb_coeff_sign[k][j])*2 alf_cc_cb_mapped_coeff_abs[k][j]-1 .

[0270] A value of 1 for `alf_cc_cr_filter_signal_flag` indicates that the cross-component filter for the Cr color component is signaled. A value of 0 for `alf_cc_cr_filter_signal_flag` indicates that the cross-component filter for the Cr color component is not signaled. When `ChromaArrayType` is 0, `alf_cc_cr_filter_signal_flag` should be 0.

[0271] Incrementing 1 by 1 specifies the number of cross-component filters for the Cr color component signaled in the current ALF APS. The value of alf_cc_cr_filters_signalled_minus1 should be in the range of 0 to 3 (inclusive).

[0272] `alf_cc_cr_mappedcoeff_abs[k][j]` specifies the absolute value of the `j`-th mapping coefficient of the `k`-th cross-component filter for the signaling notification of the `Cr` color component. When `alf_cc_cr_mappedcoeff_abs[k][j]` does not exist, it is inferred to be equal to 0.

[0273] alf_cc_cr_coeff_sign[k][j] specifies the sign of the j-th coefficient of the k-th cross-component filter for the signaling notification of the Cr color component, as shown below:

[0274] --If alf_cc_cr_coeff_sign[k][j] equals 0, then the corresponding cross-component filter coefficients have positive values.

[0275] --Otherwise (alf_cc_cr_sign[k][j] equals 1), the corresponding cross-component filter coefficients have negative values.

[0276] When alf_cc_cr_coeff_sign[k][j] does not exist, it is inferred to be equal to 0.

[0277] The signaling notification for the k-th cross-component filter coefficient CcAlfApsCoeff for the Cr color component j = 0..6 Cr [adaptation_parameter_set_id][k][j] is exported as follows:

[0278] --If alf_cc_cr_mapped_coeff_abs[k][j] equals 0, then CcAlfApsCoeff Cr [adaptation_parameter_set_id][k][j] is set to equal to 0.

[0279] --Otherwise, CcAlfApsCoeff Cr [adaptation_parameter_set_id][k][j] is set to equal to (1-2*alf_cc_cr_coeff_sign[k][j])*2 alf_cc_cr_mapped_coeff_abs[k][j]-1 .

[0280] `alf_chroma_clip_idx[altIdx][j]` specifies the clipping index to be used before multiplying the j-th coefficient of the candidate chroma filter with index `altIdx`. The bitstream consistency requirement is that the value of `alf_chroma_clip_idx[altIdx][j]` for `altIdx = 0..alf_chroma_num_alt_filters_minus1` and `j = 0..5` should be in the range of 0 to 3 (inclusive).

[0281] Having element AlfClip C The chroma filter clipping value AlfClip is defined as [adaptation_parameter_set_id][altIdx][j] (where altIdx = 0..alf_chroma_num_alt_filters_minus1, j = 0..5). C[adaptation_parameter_set_id][altIdx] is derived from BitDepth and clipIdx, which are set to be equal to alf_chroma_clip_idx[altIdx][j], as specified in Table 8.

[0282] Table 8 – AlfClip Specification Depends on BitDepth and clipIdx

[0283]

[0284] The `lmcs_min_bin_idx` parameter specifies the minimum bin index used during the construction of a luma map with chroma scaling. The value of `lmcs_min_bin_idx` should be in the range of 0 to 15 (inclusive).

[0285] `lmcs_delta_max_bin_idx` specifies the incremental value between 15 and the maximum bin index `LmcsMaxBinIdx`, used in the luma map construction process with chroma scaling. The value of `lmcs_delta_max_bin_idx` should be in the range of 0 to 15 (inclusive). The value of `LmcsMaxBinIdx` is set to equal to 15 - `lmcs_delta_max_bin_idx`. The value of `LmcsMaxBinIdx` should be greater than or equal to `lmcs_min_bin_idx`.

[0286] The increment of 1 in lmcs_delta_cw_prec_minus1 specifies the number of bits used to represent the syntax lmcs_delta_abs_cw[i]. The value of lmcs_delta_cw_prec_minus1 should be in the range of 0 to BitDepth–2 (inclusive).

[0287] lmcs_delta_abs_cw[i] specifies the absolute increment codeword value of the i-th bin.

[0288] lmcs_delta_sign_cw_flag[i] specifies the sign of the variable lmcsDeltaCW[i], as shown below:

[0289] --If lmcs_delta_sign_cw_flag[i] equals 0, then lmcsDeltaCW[i] is a positive value.

[0290] --Otherwise (lmcs_delta_sign_cw_flag[i] is not equal to 0), lmcsDeltaCW[i] is negative.

[0291] When lmcs_delta_sign_cw_flag[i] does not exist, it is inferred to be equal to 0.

[0292] The variable OrgCW is exported as follows:

[0293] OrgCW = (1 < <BitDepth) / 16 (98)

[0294] The variable lmcsDeltaCW[i] of i = lmcs_min_bin_idx..LmcsMaxBinIdx is derived as follows:

[0295] lmcsDeltaCW[i]=(1-2*lmcs_delta_sign_cw_flag[i])*lmcs_delta_abs_cw[i](99)

[0296] The variable lmcsCW[i] is derived as follows:

[0297] --For i = 0..lmcs_min_bin_idx-1, lmcsCW[i] is set to equal to 0.

[0298] --For i = lmcs_min_bin_idx..LmcsMaxBinIdx, the following applies:

[0299] lmcsCW[i]=OrgCW+lmcsDeltaCW[i] (100)

[0300] The value of lmcsCW[i] should be in the range of (OrgCW>>3) to (OrgCW<<3-1) (inclusive).

[0301] --For i = LmcsMaxBinIdx + 1..15, lmcsCW[i] is set to 0.

[0302] Bitstream consistency requires the following condition to be true:

[0303]

[0304] The variable InputPivot[i] (where i = 0..16) is derived as follows:

[0305] InputPivot[i] = i * OrgCW (102)

[0306] The variables LmcsPivot[i] (i = 0..16), ScaleCoeff[i] (i = 0..15), and InvScaleCoeff[i] are derived as follows:

[0307]

[0308] The requirement for bitstream consistency is that, for i = lmcs_min_bin_idx..LmcsMaxBinIdx, when the value of LmcsPivot[i] is not a multiple of 1 << (BitDepth-5), the value of (LmcsPivot[i] >> (BitDepth-5)) should not be equal to the value of (LmcsPivot[i+1] >> (BitDepth-5)).

[0309] `lmcs_delta_abs_crs` specifies the absolute codeword value of the variable `lmcsDeltaCrs`. The value of `lmcs_delta_abs_crs` should be in the range of 0 and 7 (inclusive). If it does not exist, `lmcs_delta_abs_crs` is inferred to be equal to 0.

[0310] The `lmcs_delta_sign_crs_flag` parameter specifies the sign of the variable `lmcsDeltaCrs`. When it does not exist, `lmcs_delta_sign_crs_flag` is assumed to be equal to 0.

[0311] The variable lmcsDeltaCrs is exported as follows:

[0312] lmcsDeltaCrs=(1-2*lmcs_delta_sign_crs_flag)*lmcs_delta_abs_crs (104)

[0313] The requirement for bitstream consistency is that when lmcsCW[i] is not equal to 0, (lmcsCW[i]+lmcsDeltaCrs) should be within the range of (OrgCW>>3) to ((OrgCW<<3)-1) (inclusive of end value).

[0314] The variable ChromaScaleCoeff[i] (where i = 0…15) is derived as follows:

[0315]

[0316] A scaling_matrix_for_lfnst_disabled_flag value of 1 specifies that the scaling matrix should not be applied to blocks encoded or decoded using LFNST. A scaling_matrix_for_lfnst_disabled_flag value of 0 specifies that the scaling matrix can be applied to blocks encoded or decoded using LFNST.

[0317] A scaling_list_chroma_present_flag value of 1 indicates that the chroma scaling list exists in scaling_list_data(). A scaling_list_chroma_present_flag value of 0 indicates that the chroma scaling list does not exist in scaling_list_data(). Bitstream consistency requires that scaling_list_chroma_present_flag should be 0 when ChromaArrayType is 0, and should be 1 when ChromaArrayType is not 0.

[0318] A scaling_list_copy_mode_flag[id] equal to 1 indicates that the value of the scaling list is the same as the value of the reference scaling list. The reference scaling list is specified by scaling_list_pred_id_delta[id]. A scaling_list_copy_mode_flag[id] equal to 0 indicates that scaling_list_pred_mode_flag exists.

[0319] A scaling_list_pred_mode_flag[id] equal to 1 indicates that the value of the scaling list can be predicted from the reference scaling list. The reference scaling list is specified by scaling_list_pred_id_delta[id]. A scaling_list_pred_mode_flag[id] equal to 0 indicates the value of the scaling list that is explicitly signaled. When it does not exist, the value of scaling_list_pred_mode_flag[id] is inferred to be 0.

[0320] `scaling_list_pred_id_delta[id]` specifies the reference scaling list used to derive the predicted scaling matrix `ScalingMatrixPred[id]`. If it does not exist, the value of `scaling_list_pred_id_delta[id]` is inferred to be 0. The value of `scaling_list_pred_id_delta[id]` should be in the range of 0 to `maxIdDelta`, where `maxIdDelta` is derived from `id`, as shown below:

[0321] maxIdDelta=(id<2)? id:((id<8)?(id-2):(id-8)) (106)

[0322] The variables refId and matrixSize are exported as follows:

[0323] refId=id-scaling_list_pred_id_delta[id] (107)

[0325] matrixSize=(id<2)? 2:((id<8)?4:8) (108)

[0326] The array ScalingMatrixPred[x][y] and variable ScalingMatrixDCPred for x = 0..matrixSize-1 and y = 0..matrixSize-1, where (matrixSize)x(matrixSize), are derived as follows:

[0327] --When both scaling_list_copy_mode_flag[id] and scaling_list_pred_mode_flag[id] are equal to 0, all elements of ScalingMatrixPred are set to equal to 8, and the value of ScalingMatrixDCPred is set to equal to 8.

[0328] --Otherwise, when scaling_list_pred_id_delta[id] equals 0, all elements of ScalingMatrixPred are set to equal to 16, and ScalingMatrixDCPred is set to equal to 16.

[0329] --Otherwise (if scaling_list_copy_mode_flag[id] or scaling_list_pred_mode_flag[id] equals 1 and scaling_list_pred_id_delta[id] is greater than 0), ScalingMatrixPred is set to equal ScalingMatrixRec[refId], and the following applies to ScalingMatrixDCPred:

[0330] --If refId is greater than 13, ScalingMatrixDCPred is set to equal ScalingMatrixDCRec[refId-14].

[0331] --Otherwise (refId is less than or equal to 13), ScalingMatrixDCPred is set to equal ScalingMatrixPred[0][0].

[0332] The scaling_list_dc_coef[id-14] variable is used to export the value of the scalingMatrixDC[id-14] variable when the id is greater than 13, as shown below:

[0333] ScalingMatrixDCRec[id-14]=(ScalingMatrixDCPred+

[0334] scaling_list_dc_coef[id-14])&255 (109)

[0335] When it does not exist, the value of scaling_list_dc_coef[id-14] is inferred to be equal to 0. The value of scaling_list_dc_coef[id–14] should be in the range of -128 to 127 (inclusive). The value of ScalingMatrixDCRec[id-14] should be greater than 0.

[0336] `scaling_list_delta_coef[id][i]` specifies the difference between the current matrix coefficients `ScalingList[id][i]` and the previous matrix coefficients `ScalingList[id][i-1]` when `scaling_list_copy_mode_flag[id]` equals 0. The value of `scaling_list_delta_coef[id][i]` should be in the range of -128 to 127 (inclusive). When `scaling_list_copy_mode_flag[id]` equals 1, all elements of `ScalingList[id]` are set to 0.

[0337] The array ScalingMatrixRec[id] of (matrixSize)x(matrixSize) is exported as follows:

[0338] ScalingMatrixRec[id][x][y]=(ScalingMatrixPred[x][y]+ScalingList[id][k])&255(110)

[0339] Where k = 0..(matrix size * matrix size 1),

[0340] x=DiagScanOrder[Log2(matrix size)][Log2(matrix size)][k][0], and

[0341] y=DiagScanOrder[Log2(matrix size)][Log2(matrix size)][k][1]

[0342] The value of ScalingMatrixRec[id][x][y] should be greater than 0.

[0343] 3.3 PH Syntax and Semantics

[0344] In the latest VVC draft text, the PH syntax and semantics are as follows:

[0345]

[0346] The PH RBSP contains the PH syntax structure, namely picture_header_structure().

[0347]

[0348]

[0349]

[0350]

[0351]

[0352]

[0353] The PH syntax structure contains common information for all stripes of the encoded / decoded image associated with the PH syntax structure.

[0354] A value of 1 for `gdr_or_irap_pic_flag` indicates that the current image is either a GDR or IRAP image. A value of 0 for `gdr_or_irap_pic_flag` indicates that the current image may or may not be a GDR or IRAP image.

[0355] A `gdr_pic_flag` value of 1 indicates that the image associated with a `PH` is a GDR image. A `gdr_pic_flag` value of 0 indicates that the image associated with a `PH` is not a GDR image. When it does not exist, the value of `gdr_pic_flag` is inferred to be 0. When `gdr_enabled_flag` is 0, the value of `gdr_pic_flag` should be 0.

[0356] A ph_inter_slice_allowed_flag value of 0 indicates that the slice_type of all codec slices in the image is equal to 2. A ph_inter_slice_allowed_flag value of 1 indicates that the image may or may not contain one or more codec slices with a slice_type equal to 0 or 1.

[0357] A value of 0 for `ph_intra_slice_allowed_flag` indicates that the slice_type of all codec slices in the image is either 0 or 1. A value of 1 for `ph_intra_slice_allowed_flag` indicates that the image may or may not contain one or more codec slices with a slice_type of 2. When none exist, the value of `ph_intra_slice_allowed_flag` is inferred to be 1.

[0358] Note 1 – For bitstreams that should be merged based on subpictures without requiring changes to the PH NAL units, the codec should set the values ​​of ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag to 1.

[0359] A non_reference_picture_flag value of 1 indicates that a picture associated with a pH should never be used as a reference picture. A non_reference_picture_flag value of 0 indicates whether a picture associated with a pH may or may not be used as a reference picture.

[0360] The `ph_pic_parameter_set_id` parameter specifies the value of `pps_pic_parameter_set_id` for the PPS being used. The value of `ph_pic_parameter_set_id` should be in the range of 0 to 63 (inclusive).

[0361] The requirement for bitstream consistency is that the TemporalId value of PH should be greater than or equal to the TemporalId value of PPS whose pps_pic_parameter_set_id is equal to ph_pic_parameter_set_id.

[0362] `ph_pic_order_cnt_lsb` specifies the image order count of the current image modulo `MaxPicOrderCntLsb`. The length of the `ph_pic_order_cnt_lsb` syntax element is `log2_max_pic_order_cnt_lsb_minus4+4` bits. The value of `ph_pic_order_cnt_lsb` should be in the range of 0 to `MaxPicOrderCntLsb–1` (inclusive).

[0363] The `no_output_of_prior_pics_flag` flag affects the output of previously decoded pictures in the DPB after decoding a CLVSS picture, which is not the first picture in the bitstream specified in Appendix C.

[0364] `recovery_poc_cnt` specifies the recovery point of the decoded images according to the output order. If the current image is a GDR image associated with the PH, and there exists an image `picA` in the CLVS that follows the current GDR image in the decoding order, and its `PicOrderCntVal` is equal to the `PicOrderCntVal` of the current GDR image plus the value of `recovery_poc_cnt`, then image `picA` is called the recovery point image. Otherwise, the first image in the output order whose `PicOrderCntVal` is greater than the `PicOrderCntVal` of the current image plus the value of `recovery_poc_cnt` is called the recovery point image. In the decoding order, the recovery point image should not precede the current GDR image. The value of `recovery_poc_cnt` should be in the range of 0 to `MaxPicOrderCntLsb–1` (inclusive).

[0365] When the current image is a GDR image, the variable RpPicOrderCntVal is exported as follows:

[0366] RpPicOrderCntVal=PicOrderCntVal+recovery_poc_cnt (82)

[0367] Note 2 – When gdr_enabled_flag equals 1 and the PicOrderCntVal of the current image is greater than or equal to the RpPicOrderCntVal of the related GDR image, the current and subsequent decoded images in the output order are completely matched with the corresponding images generated by starting the decoding process from the previous IRAP image (if it exists) before the related GDR image in the decoding order.

[0368] ph_extra_bit[i] can be equal to 1 or 0. Decoders conforming to this version of the specification should ignore the value of ph_extra_bit[i]. Its value does not affect the consistency of the decoder with the grade specified in this version of the specification.

[0369] A value of 1 for `ph_poc_msb_present_flag` indicates that the syntax element `poc_msb_val` exists in the PH. A value of 0 for `ph_poc_msb_present_flag` indicates that the syntax element `poc_msb_val` does not exist in the PH. The value of `ph_poc_msb_present_flag` should be 0 when `vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]` is 0 and an image exists in the current AU of the current layer's reference layer.

[0370] poc_msb_val specifies the POC MSB value of the current image. The length of the syntax element poc_msb_val is poc_msb_len_minus1+1 bits.

[0371] A `ph_alf_enabled_flag` value of 1 enables the adaptive loop filter for all stripes associated with `PH`, and can be applied to the Y, Cb, or Cr color components within the stripe. A `ph_alf_enabled_flag` value of 0 disables the adaptive loop filter for one or more or all stripes associated with `PH`. When it does not exist, `ph_alf_enabled_flag` is inferred to be equal to 0.

[0372] ph_num_alf_aps_ids_luma specifies the number of ALF APSs for the PH-related stripe reference.

[0373] ph_alf_aps_id_luma[i] specifies the adaptation_parameter_set_id of the i-th ALF APS, and the luminance components of the PH-related stripes are referenced to this ALF APS.

[0374] The value of alf_luma_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be equal to 1.

[0375] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the image associated with PH.

[0376] A value of 0 for `ph_alf_chroma_idc` indicates that the adaptive loop filter is not applied to the Cb and Cr color components. A value of 1 for `ph_alf_chroma_idc` indicates that the adaptive loop filter is applied to the Cb color component. A value of 2 for `ph_alf_chroma_idc` indicates that the adaptive loop filter is applied to the Cr color component. A value of 3 for `ph_alf_chroma_idc` indicates that the adaptive loop filter is applied to both the Cb and Cr color components. When `ph_alf_chroma_idc` does not exist, it is inferred to be equal to 0.

[0377] The ph_alf_aps_id_chroma parameter specifies the adaptation_parameter_set_id of the ALF APS, and the chromaticity components of the stripes associated with PH are referenced to this ALF APS.

[0378] The value of alf_chroma_filter_signal_flag in the APS NAL unit where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma should be equal to 1.

[0379] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma should be less than or equal to the TemporalId of the image associated with PH.

[0380] A value of 1 for `ph_cc_alf_cb_enabled_flag` enables the cross-component filter for the Cb color components in all stripes associated with `PH`, and can be applied to the Cb color components within a stripe. A value of 0 for `ph_cc_alf_cb_enabled_flag` disables the cross-component filter for the Cb color components in one, several, or all stripes associated with `PH`. When it does not exist, `ph_cc_alf_cb_enabled_flag` is inferred to be equal to 0.

[0381] ph_cc_alf_cb_aps_id specifies the adaptation_parameter_set_id of the ALF APS referenced by the Cb color component of the band associated with PH.

[0382] The value of alf_cc_cb_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id should be equal to 1.

[0383] The TemporalId of an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the PH-related image.

[0384] A value of 1 for `ph_cc_alf_cr_enabled_flag` enables the cross-component filter for the Cr color component in all PH-related stripes, and can be applied to the Cr color component within a stripe. A value of 0 for `ph_cc_alf_cr_enabled_flag` disables the cross-component filter for the Cr color component in one, several, or all PH-related stripes. When it does not exist, `ph_cc_alf_cr_enabled_flag` is inferred to be equal to 0.

[0385] ph_cc_alf_cr_aps_id specifies the adaptation_parameter_set_id of the ALF APS referenced by the Cr color component of the band associated with PH.

[0386] The value of alf_cc_cr_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id should be equal to 1.

[0387] The TemporalId of an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id should be less than or equal to the TemporalId of the PH-related image.

[0388] A value of 1 for ph_lmcs_enabled_flag indicates that luminance mapping with chroma scaling is enabled for all PH-related stripes. A value of 0 for ph_lmcs_enabled_flag indicates that luminance mapping with chroma scaling is disabled for one, more, or all PH-related stripes. If ph_lmcs_enabled_flag does not exist, its value is inferred to be 0.

[0389] `ph_lmcs_aps_id` specifies the `adaptation_parameter_set_id` of the LMCS APS referenced by the stripe associated with the PH. The TemporalId of the APS NAL cell whose `aps_params_type` is equal to `LMCS_APS` and whose `adaptation_parameter_set_id` is equal to `ph_lmcs_aps_id` should be less than or equal to the TemporalId of the image associated with the PH.

[0390] A ph_chroma_residual_scale_flag value of 1 enables chroma residual scaling for all stripes associated with PH. A ph_chroma_residual_scale_flag value of 0 disables chroma residual scaling for one, several, or all stripes associated with PH. When ph_chroma_residual_scale_flag does not exist, it is inferred to be equal to 0.

[0391] A value of 1 for `ph_scaling_list_present_flag` specifies that the scaling list data used for the stripes associated with the PH is derived from the scaling list data contained in the reference scaling list APS. A value of 0 for `ph_scaling_list_present_flag` specifies that the scaling list data used for the stripes associated with the PH is set to 16. When it does not exist, the value of `ph_scaling_list_present_flag` is inferred to be 0.

[0392] `ph_scaling_list_aps_id` specifies the `adaptation_parameter_set_id` of the scaling list APS. The `TemporalId` of the APS NAL cell whose `aps_params_type` is equal to `SCALING_APS` and whose `adaptation_parameter_set_id` is equal to `ph_scaling_list_aps_id` should be less than or equal to the `TemporalId` of the image associated with the PH.

[0393] `ph_virtual_boundaries_present_flag` equal to 1 specifies that information about virtual boundaries is signaled in the PH (Physical Imagery). `ph_virtual_boundaries_present_flag` equal to 0 specifies that information about virtual boundaries is not signaled in the PH. When one or more virtual boundaries are signaled in the PH, loop filtering operations are disabled on the virtual boundaries in the image. Loop filtering operations include deblocking filters, sample adaptive offset filters, and adaptive loop filter operations. When not present, the value of `ph_virtual_boundaries_present_flag` is inferred to be 0.

[0394] The requirement for bitstream consistency is that when subpic_info_present_flag equals 1, the value of ph_virtual_boundaries_present_flag should equal 0.

[0395] The variable VirtualBoundariesPresentFlag is exported as follows:

[0396]

[0397] `ph_num_ver_virtual_boundaries` specifies the number of `ph_virtual_boundaries_pos_x[i]` syntax elements present in `PH`. When `ph_num_ver_virtual_boundaries` does not exist, it is inferred to be equal to 0.

[0398] The variable NumVerVirtualBoundaries is exported as follows:

[0399]

[0400] ph_virtual_boundaries_pos_x[i] specifies the position of the i-th vertical virtual boundary in units of luminance samples divided by 8. The value of ph_virtual_boundaries_pos_x[i] should be in the range of 1 to Ceil(pic_width_in_luma_samples÷8)–1 (inclusive).

[0401] The range i is a list VirtualBoundariesPosX[i] from 0 to NumVerVirtualBoundaries–1 (inclusive), in units of luminance samples, which specifies the position of the vertical virtual boundary and is derived as follows:

[0402] for(i=0; i <NumVerVirtualBoundaries;i++)

[0403] VirtualBoundariesPosX[i]=(sps_virtual_boundaries_present_flag?

[0404] sps_virtual_boundaries_pos_x[i]:ph_virtual_boundaries_pos_x[i])*8(85)

[0405] The distance between any two vertical virtual boundaries should be greater than or equal to the CtbSizeY brightness sample.

[0406] `ph_num_hor_virtual_boundaries` specifies the number of `ph_virtual_boundaries_pos_y[i]` syntax elements present in `PH`. When `ph_num_hor_virtual_boundaries` does not exist, it is inferred to be equal to 0.

[0407] The parameter NumHorVirtualBoundaries is exported as follows:

[0408]

[0409] When sps_virtual_boundaries_enabled_flag equals 1 and ph_virtual_boundaries_present_flag equals 1, the sum of ph_num_ver_virtual_boundaries and ph_num_hor_virtual_boundaries should be greater than 0.

[0410] ph_virtual_boundaries_pos_y[i] specifies the position of the i-th horizontal virtual boundary in units of luminance samples divided by 8. The value of ph_virtual_boundaries_pos_y[i] should be in the range of 1 to Ceil(pic_height_in_luma_samples÷8)–1 (inclusive).

[0411] The range of i is a list of VirtualBoundariesPosY[i] from 0 to NumHorVirtualBoundaries–1 (inclusive), in units of luminance samples, which specifies the position of the horizontal virtual boundary and is derived as follows:

[0412] for(i=0; i <NumHorVirtualBoundaries;i++)

[0413] VirtualBoundariesPosY[i]=(sps_virtual_boundaries_present_flag?

[0414] sps_virtual_boundaries_pos_y[i]:ph_virtual_boundaries_pos_y[i])*8(87)

[0415] The distance between any two horizontal virtual boundaries should be greater than or equal to the CtbSizeY luminance sample.

[0416] The `pic_output_flag` affects the decoded image output and removal process, as specified in Appendix C. When `pic_output_flag` is absent, it is inferred to be equal to 1.

[0417] A partition_constraints_override_flag value of 1 indicates that the partition constraint parameters exist in the partition property (PH). A partition_constraints_override_flag value of 0 indicates that the partition constraint parameters do not exist in the PH. When they do not exist, the value of partition_constraints_override_flag is inferred to be 0.

[0418] `ph_log2_diff_min_qt_min_cb_intra_slice_luma` specifies the base-2 logarithm of the minimum size of the luminance samples of the luminance leaf blocks generated by the quadtree partitioning of the CTU, and the base-2 logarithm of the minimum decoder block size of the luminance samples of the luminance CUs in the slices with a slice_type equal to 2(I) associated with PH. The value of `ph_log2_diff_min_qt_min_cb_intra_slice_luma` should be in the range of 0 to `CtbLog2SizeY - MinCbLog2SizeY` (inclusive). When it does not exist, the value of `ph_log2_diff_min_qt_min_cb_luma` is inferred to be equal to `sps_log2_diff_min_qt_min_cb_intra_slice_luma`.

[0419] `ph_max_mtt_hierarchy_depth_intra_slice_luma` specifies the maximum hierarchical depth of the encoding / decoding unit generated by multi-type tree partitioning of quad-leaf trees in stripes with a slice_type of 2(I) associated with `PH`. The value of `ph_max_mtt_hierarchy_depth_intra_slice_luma` should be in the range of 0 to 2*(CtbLog2SizeY - MinCbLog2SizeY) (inclusive). When it does not exist, the value of `ph_max_mtt_hierarchy_depth_intra_slice_luma` is inferred to be equal to `sps_max_mtt_hierarchy_depth_intra_slice_luma`.

[0420] `ph_log2_diff_max_bt_min_qt_intra_slice_luma` specifies the difference between the base-2 logarithm of the largest size (width or height) of the luminance samples in a luminance codec block that can be partitioned using binary partitioning, and the base-2 logarithm of the smallest size (width or height) of the luminance samples in a luminance leaf block resulting from a quadtree partition of a CTU in a slice with a slice_type equal to 2(I) associated with PH. The value of `ph_log2_diff_max_bt_min_qt_intra_slice_luma` should be in the range of 0 to `CtbLog2SizeY - MinQtLog2SizeIntraY` (inclusive). When it does not exist, the value of `ph_log2_diff_max_bt_min_qt_intra_slice_luma` is inferred to be equal to `sps_log2_diff_max_bt_min_qt_intra_slice_luma`.

[0421] ph_log2_diff_max_tt_min_qt_intra_slice_luma specification

[0422] The difference between the base-2 logarithm of the maximum size (width or height) of the luminance samples in a luminance codec block partitioned using ternary partitioning and the base-2 logarithm of the minimum size (width or height) of the luminance samples in a luminance leaf block resulting from a quadtree partitioning of a CTU in a slice with slice_type equal to 2(I) associated with PH. The value of ph_log2_diff_max_tt_min_qt_intra_slice_luma should be in the range of 0 to CtbLog2SizeY - MinQtLog2SizeIntraY (inclusive). When not present, the value of ph_log2_diff_max_tt_min_qt_intra_slice_luma is inferred to be equal to sps_log2_diff_max_tt_min_qt_intra_slice_luma.

[0423] `ph_log2_diff_min_qt_min_cb_intra_slice_chroma` specifies the difference between the base-2 logarithm of the smallest size of the luminance samples in the chrominance leaf blocks generated by partitioning the chrominance CTU with `treeType` equal to `DUAL_TREE_CHROMA`, and the base-2 logarithm of the smallest decoder block size in the luminance samples of the chrominance CU with `treeType` equal to `DUAL_TREE_CHROMA` in the slices with `slice_type` equal to 2(I) associated with `PH`. The value of `ph_log2_diff_min_qt_min_cb_intra_slice_chroma` should be in the range of 0 to `CtbLog2SizeY - MinCbLog2SizeY` (inclusive). When it does not exist, the value of ph_log2_diff_min_qt_min_cb_intra_slice_chroma is inferred to be equal to sps_log2_diff_min_qt_min_cb_intra_slice_chroma.

[0424] `ph_max_mtt_hierarchy_depth_intra_slice_chroma` specifies the maximum hierarchical depth of a chroma codec unit, which is generated by multi-type tree partitioning of chroma quadtree leaves with `treeType` equal to `DUAL_TREE_CHROMA` in a slice with `slice_type` equal to 2(I) associated with `PH`. The value of `ph_max_mtt_hierarchy_depth_intra_slice_chroma` should be in the range of 0 to 2*(CtbLog2SizeY - MinCbLog2SizeY) (inclusive). When it does not exist, the value of `ph_max_mtt_hierarchy_depth_intra_slice_chroma` is inferred to be equal to `sps_max_mtt_hierarchy_depth_intra_slice_chroma`.

[0425] ph_log2_diff_max_bt_min_qt_intra_slice_chroma specification

[0426] The value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma is the base-2 logarithm of the largest size (width or height) of the luminance samples in a chroma codec block that can be partitioned using binary partitioning, and the base-2 logarithm of the smallest size (width or height) of the luminance samples in a chroma CTU with a treeType equal to DUAL_TREE_CHROMA from a slice with a slice_type equal to 2(I) associated with PH. The value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma should be in the range of 0 to CtbLog2SizeY - MinQtLog2SizeIntraC (inclusive). When it does not exist, the value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma is inferred to be equal to sps_log2_diff_max_bt_min_qt_intra_slice_chroma.

[0427] `ph_log2_diff_max_tt_min_qt_intra_slice_chroma` specifies the difference between the base-2 logarithm of the largest size (width or height) of the luminance samples in a chroma codec block that can be partitioned using ternary partitioning, and the base-2 logarithm of the smallest size (width or height) of the luminance samples in a chroma leaf block resulting from a quadtree partition of a chroma CTU with `treeType` equal to `DUAL_TREE_CHROMA` in a stripe with `slice_type` equal to 2(I) associated with `PH`. The value of `ph_log2_diff_max_tt_min_qt_intra_slice_chroma` should be in the range of 0 to `CtbLog2SizeY - MinQtLog2SizeIntraC` (inclusive). When it does not exist, the value of ph_log2_diff_max_tt_min_qt_intra_slice_chroma is inferred to be equal to sps_log2_diff_max_tt_min_qt_intra_slice_chroma.

[0428] `ph_cu_qp_delta_subdiv_intra_slice` specifies the maximum `cbSubdiv` value of the codec unit in the intra-slice transmitting `cu_qp_delta_abs` and `cu_qp_delta_sign_flag`. The value of `ph_cu_qp_delta_subdiv_intra_slice` should be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma) (inclusive).

[0429] When it does not exist, the value of ph_cu_qp_delta_subdiv_intra_slice is inferred to be equal to 0.

[0430] `ph_cu_chroma_qp_offset_subdiv_intra_slice` specifies the maximum `cbSubdiv` value of the codec unit in the intra-slice transmitting `cu_chroma_qp_offset_flag`. The value of `ph_cu_chroma_qp_offset_subdiv_intra_slice` should be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeIntraY+ph_max_mtt_hierarchy_depth_intra_slice_luma) (inclusive).

[0431] When it does not exist, the value of ph_cu_chroma_qp_offset_subdiv_intra_slice is inferred to be equal to 0.

[0432] `ph_log2_diff_min_qt_min_cb_inter_slice` specifies the difference between the base-2 logarithm of the minimum size of the luminance samples in the luminance leaf blocks generated by the quadtree partitioning of the CTU, and the base-2 logarithm of the minimum luminance codec block size in the luminance samples of the luminance CUs in the slices with a slice_type equal to 0 (B) or 1 (P) associated with PH. The value of `ph_log2_diff_min_qt_min_cb_inter_slice` should be in the range of 0 to `CtbLog2SizeY - MinCbLog2SizeY` (inclusive). When it does not exist, the value of `ph_log2_diff_min_qt_min_cb_luma` is inferred to be equal to `sps_log2_diff_min_qt_min_cb_inter_slice`.

[0433] `ph_max_mtt_hierarchy_depth_inter_slice` specifies the maximum hierarchical depth of the codec unit, which is generated by multi-type tree partitioning of quad-leaf trees in stripes with a slice_type of 0 (B) or 1 (P) associated with `PH`. The value of `ph_max_mtt_hierarchy_depth_inter_slice` should be in the range of 0 to 2*(CtbLog2SizeY - MinCbLog2SizeY) (inclusive). When it does not exist, the value of `ph_max_mtt_hierarchy_depth_inter_slice` is inferred to be equal to `sps_max_mtt_hierarchy_depth_inter_slice`.

[0434] `ph_log2_diff_max_bt_min_qt_inter_slice` specifies the difference between the base-2 logarithm of the largest size (width or height) of the luminance samples in a luminance codec block that can be divided using binary partitioning, and the base-2 logarithm of the smallest size (width or height) of the luminance samples in a luminance leaf block resulting from a quadtree partition of the CTU in a stripe with a slice_type equal to 0 (B) or 1 (P) associated with PH. The value of `ph_log2_diff_max_bt_min_qt_inter_slice` should be in the range of 0 to `CtbLog2SizeY - MinQtLog2SizeInterY` (inclusive). When it does not exist, the value of `ph_log2_diff_max_bt_min_qt_inter_slice` is inferred to be equal to `sps_log2_diff_max_bt_min_qt_inter_slice`.

[0435] `ph_log2_diff_max_tt_min_qt_inter_slice` specifies the difference between the base-2 logarithm of the largest size (width or height) of the luminance samples in a luminance codec block that can be partitioned using ternary partitioning, and the base-2 logarithm of the smallest size (width or height) of the luminance samples in a luminance leaf block resulting from a quadtree partition of a CTU in a stripe with a slice_type equal to 0 (B) or 1 (P) associated with PH. The value of `ph_log2_diff_max_tt_min_qt_inter_slice` should be in the range of 0 to `CtbLog2SizeY - MinQtLog2SizeInterY` (inclusive). When it does not exist, the value of `ph_log2_diff_max_tt_min_qt_inter_slice` is inferred to be equal to `sps_log2_diff_max_tt_min_qt_inter_slice`.

[0436] `ph_cu_qp_delta_subdiv_inter_slice` specifies the maximum `cbSubdiv` value of the codec unit for transmitting `cu_qp_delta_abs` and `cu_qp_delta_sign_flag` in the inter-frame slice. The value of `ph_cu_qp_delta_subdiv_inter_slice` should be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice) (inclusive).

[0437] When it does not exist, the value of ph_cu_qp_delta_subdiv_inter_slice is inferred to be equal to 0.

[0438] `ph_cu_chroma_qp_offset_subdiv_inter_slice` specifies the maximum `cbSubdiv` value of the codec unit for transmitting `cu_chroma_qp_offset_flag` in the inter-frame slice. The value of `ph_cu_chroma_qp_offset_subdiv_inter_slice` should be in the range of 0 to 2*(CtbLog2SizeY-MinQtLog2SizeInterY+ph_max_mtt_hierarchy_depth_inter_slice) (inclusive).

[0439] When it does not exist, the value of ph_cu_chroma_qp_offset_subdiv_inter_slice is inferred to be equal to 0.

[0440] `ph_temporal_mvp_enabled_flag` specifies whether a temporal motion vector predictor (TVP) can be used for inter-frame prediction of the slice associated with the PH. If `ph_temporal_mvp_enabled_flag` equals 0, the syntax elements of the slice associated with the PH should be constrained so that the TVP is not used in the decoding of the slice. Otherwise (if `ph_temporal_mvp_enabled_flag` equals 1), the TVP can be used to decode the slice associated with the PH. When it does not exist, the value of `ph_temporal_mvp_enabled_flag` is inferred to be 0. The value of `ph_temporal_mvp_enabled_flag` should be 0 when there is no reference image in the DPB with the same spatial resolution as the current image.

[0441] The maximum number of MVP candidates based on sub-blocks, MaxNumSubblockMergeCand, is derived as follows:

[0442]

[0443] The value of MaxNumSubblockMergeCand should be in the range of 0 to 5 (inclusive).

[0444] A value of 1 for ph_collocated_from_l0_flag specifies that the co-located image used for temporal motion vector prediction is derived from reference image list 0. A value of 0 for ph_collocated_from_l0_flag specifies that the co-located image used for temporal motion vector prediction is derived from reference image list 1.

[0445] ph_collocated_ref_idx specifies the reference index of the co-located image used for temporal motion vector prediction.

[0446] When ph_collocated_from_l0_flag equals 1, ph_collocated_ref_idx references the entry in reference image list 0, and the value of ph_collocated_ref_idx should be in the range of 0 to num_ref_entries[0][RplsIdx[0]]–1 (inclusive).

[0447] When ph_collocated_from_l0_flag equals 0, ph_collocated_ref_idx references the entry in reference image list 1, and the value of ph_collocated_ref_idx should be in the range of 0 to num_ref_entries[1][RplsIdx[1]]1 (inclusive).

[0448] When it does not exist, the value of ph_collocated_ref_idx is inferred to be equal to 0.

[0449] A `mvd_l1_zero_flag` value of 1 indicates that the `mvd_coding(x0,y0,1)` syntax structure is not parsed, and for `compIdx = 0..1` and `cpIdx = 0..2`, `MvdL1[x0][y0][compIdx]` and `MvdCpL1[x0][y0][cpIdx][compIdx]` are set to 0. A `mvd_l1_zero_flag` value of 0 indicates that the `mvd_coding(x0,y0,1)` syntax structure is parsed.

[0450] A value of 1 for `ph_fpel_mmvd_enabled_flag` specifies that merge mode with motion vector difference uses integer sample precision in the strips associated with the PH. A value of 0 for `ph_fpel_mmvd_enabled_flag` specifies that merge mode with motion vector difference can use fractional sample precision in the strips associated with the PH. When it does not exist, the value of `ph_fpel_mmvd_enabled_flag` is inferred to be 0.

[0451] Setting ph_disable_bdof_flag to 1 disables bidirectional data sharing in the stripe associated with PH.

[0452] Inter-frame bidirectional prediction based on optical flow inter-frame prediction. A value of 0 for ph_disable_bdof_flag indicates whether inter-frame bidirectional prediction based on bidirectional optical flow inter-frame prediction can be enabled or disabled in the stripe associated with PH.

[0453] The following applies when ph_disable_bdof_flag is not present:

[0454] --If sps_bdof_enabled_flag equals 1, then it is inferred that the value of ph_disable_bdof_flag is equal to 0.

[0455] --Otherwise (sps_bdof_enabled_flag equals 0), the value of ph_disable_bdof_flag is inferred to be equal to 1.

[0456] `ph_disable_dmvr_flag` equal to 1 disables inter-frame bidirectional prediction based on decoder motion vector refinement in the stripe associated with the PH. `ph_disable_dmvr_flag` equal to 0 disables inter-frame bidirectional prediction in the stripe associated with the PH.

[0457] Inter-frame bidirectional prediction based on decoder motion vector refinement can be enabled or disabled in the associated stripes.

[0458] The following applies when ph_disable_dmvr_flag is not present:

[0459] --If sps_dmvr_enabled_flag equals 1, then the value of ph_disable_dmvr_flag is inferred to be equal to 0.

[0460] --Otherwise (sps_dmvr_enabled_flag equals 0), the value of ph_disable_dmvr_flag is inferred to be equal to 1.

[0461] A value of 1 for ph_disable_prof_flag disables optical flow prediction refinement in the stripe associated with PH. A value of 0 for ph_disable_prof_flag enables or disables optical flow prediction refinement in the stripe associated with PH.

[0462] The following applies when ph_disable_prof_flag is not present:

[0463] --If sps_affine_prof_enabled_flag equals 1, then the value of ph_disable_prof_flag is inferred to be equal to 0.

[0464] --Otherwise (sps_affine_prof_enabled_flag equals 0), the value of ph_disable_prof_flag is inferred to be equal to 1.

[0465] ph_qp_delta specifies the Qp used for codec blocks in an image. Y The initial value remains unchanged until it is modified by the value of CuQpDeltaVal in the codec unit layer.

[0466] When qp_delta_info_in_ph_flag equals 1, the Qp of all bands in the image Y The initial value of the quantization parameter SliceQpY is derived as follows:

[0467] SliceQp Y =26+init_qp_minus26+ph_qp_delta(89

[0468] SliceQp Y The value should be in the range of -QpBdOffset to +63 (inclusive).

[0469] `ph_joint_cbcr_sign_flag` specifies whether the co-located residual samples of the two chromaticity components have inverted signs in a transform unit where `tu_joint_cbcr_residual_flag[x0][y0]` equals 1. When `tu_joint_cbcr_residual_flag[x0][y0]` equals 1 for the transform unit, `ph_joint_cbcr_sign_flag` equals 0, indicating that the sign of each residual sample of the Cr (or Cb) component is the same as the sign of the co-located Cb (or Cr) residual sample, and `ph_joint_cbcr_sign_flag` equals 1, indicating that the sign of each residual sample of the Cr (or Cb) component is given by the inverted sign of the co-located Cb (or Cr) residual sample.

[0470] A value of 1 for ph_sao_luma_enabled_flag indicates that SAO is enabled for the luminance component in all stripes associated with PH; a value of 0 for ph_sao_luma_enabled_flag indicates that SAO for the luminance component can be disabled for one, more, or all stripes associated with PH. When ph_sao_luma_enabled_flag does not exist, it is inferred to be equal to 0.

[0471] A value of 1 for ph_sao_chroma_enabled_flag indicates that SAO is enabled for the chromaticity components in all stripes associated with PH; a value of 0 for ph_sao_chroma_enabled_flag indicates that SAO for the chromaticity components can be disabled for one, more, or all stripes associated with PH. When ph_sao_chroma_enabled_flag does not exist, it is inferred to be equal to 0.

[0472] A value of 0 for `ph_dep_quant_enabled_flag` disables dependent quantization for the current image. A value of 1 for `ph_dep_quant_enabled_flag` enables dependent quantization for the current image. When `ph_dep_quant_enabled_flag` does not exist, it is inferred to be equal to 0.

[0473] A value of 0 for `pic_sign_data_hiding_enabled_flag` disables sign bit hiding for the current image. A value of 1 for `pic_sign_data_hiding_enabled_flag` enables sign bit hiding for the current image. When `pic_sign_data_hiding_enabled_flag` does not exist, it is inferred to be equal to 0.

[0474] A value of 1 for `ph_deblocking_filter_override_flag` indicates that the deblocking parameter exists in the PH (Physical Deblocking Filter). A value of 0 for `ph_deblocking_filter_override_flag` indicates that the deblocking parameter does not exist in the PH. When it does not exist, the value of `ph_deblocking_filter_override_flag` is inferred to be 0.

[0475] A value of 1 for `ph_deblocking_filter_disabled_flag` indicates that the deblocking filter operation does not apply to stripes associated with pH. A value of 0 for `ph_deblocking_filter_disabled_flag` indicates that the deblocking filter operation applies to stripes associated with pH. When `ph_deblocking_filter_disabled_flag` does not exist, it is inferred to be equal to `pps_deblocking_filter_disabled_flag`.

[0476] `ph_beta_offset_div2` and `ph_tc_offset_div2` specify the deblocking parameter offsets for β and tC (divided by 2), which are applied to the luminance component of the PH-related stripe. The values ​​of `ph_beta_offset_div2` and `ph_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `ph_beta_offset_div2` and `ph_tc_offset_div2` are inferred to be equal to `pps_beta_offset_div2` and `pps_tc_offset_div2`, respectively.

[0477] `ph_cb_beta_offset_div2` and `ph_cb_tc_offset_div2` specify the deblocking parameter offsets for β and tC (divided by 2), which are applied to the Cb component of the PH-related stripe. The values ​​of `ph_cb_beta_offset_div2` and `ph_cb_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `ph_cb_beta_offset_div2` and `ph_cb_tc_offset_div2` are inferred to be equal to `pps_cb_beta_offset_div2` and `pps_cb_tc_offset_div2`, respectively.

[0478] `ph_cr_beta_offset_div2` and `ph_cr_tc_offset_div2` specify the deblocking parameter offsets for β and tC (divided by 2), which are applied to the Cr component of the PH-related stripe. The values ​​of `ph_cr_beta_offset_div2` and `ph_cr_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `ph_cr_beta_offset_div2` and `ph_cr_tc_offset_div2` are inferred to be equal to `pps_cr_beta_offset_div2` and `pps_cr_tc_offset_div2`, respectively.

[0479] `ph_extension_length` specifies the length of the PH extension data in bytes, excluding the bits used for signaling notifications within `ph_extension_length` itself. The value of `ph_extension_length` should be in the range of 0 to 256 (inclusive). If it does not exist, the value of `ph_extension_length` is inferred to be 0.

[0480] `ph_extension_data_byte` can be any value. Decoders conforming to this version of the specification should ignore the value of `ph_extension_data_byte`. Its value does not affect the consistency of the decoder with the grade specified in this version of the specification.

[0481] 3.4 SH Syntax and Semantics

[0482] In the latest VVC draft text, the syntax and semantics of SH are as follows:

[0483]

[0484]

[0485]

[0486]

[0487]

[0488] The variable CuQpDeltaVal, which specifies the difference between the luminance quantization parameter and its prediction for the codec unit containing cu_qp_delta_abs, is set to 0. It is also specified that the Qp′ of the codec unit containing cu_chroma_qp_offset_flag is determined... Cb Qp′ Cr and Qp′ CbCrThe variable CuQpOffset is used to determine the value of the quantized parameter. Cb CuQpOffset Cr and CuQpOffset CbCr All of them were set to 0.

[0489] A picture_header_in_slice_header_flag value of 1 indicates that the PH syntax structure exists in the slice header. A picture_header_in_slice_header_flag value of 0 indicates that the PH syntax structure does not exist in the slice header.

[0490] The requirement for bitstream consistency is that the value of picture_header_in_slice_header_flag should be the same in all codec slices in CLVS.

[0491] When picture_header_in_slice_header_flag is equal to 1 for the codec slice, the requirement for bitstream consistency is that there should be no VCL NAL unit in CLVS with nal_unit_type equal to PH_NUT.

[0492] When picture_header_in_slice_header_flag equals 0, all encoded and decoded stripes in the current image should have picture_header_in_slice_header_flag equal to 0, and the current PU should have PH NAL units.

[0493] `slice_subpic_id` specifies the subpick ID of the subpick containing the slice. If `slice_subpic_id` exists, the value of the variable `CurrSubpicIdx` is exported such that `SubpicIdVal[CurrSubpicIdx]` equals `slice_subpic_id`. Otherwise (if `slice_subpic_id` does not exist), `CurrSubpicIdx` is exported as 0. The length of `slice_subpic_id` is `sps_subpic_id_len_minus1+1` bits.

[0494] `slice_address` specifies the slice address. When it does not exist, the value of `slice_address` is inferred to be 0. When `rect_slice_flag` is equal to 1 and `NumSlicesInSubpic[CurrSubpicIdx]` is equal to 1, the value of `slice_address` is inferred to be 0.

[0495] If rect_slice_flag equals 0, then the following applies:

[0496] --The stripe address is the raster scan stripe index.

[0497] The length of `--slice_address` is `Ceil(Log2(NumTilesInPic))` bits.

[0498] The value of --slice_address should be in the range of 0 to NumTilesInPic–1 (inclusive).

[0499] Otherwise (rect_slice_flag equals 1), the following applies:

[0500] --The stripe address is the sub-image level stripe index of the stripe.

[0501] The length of `--slice_address` is `Ceil(Log2(NumSlicesInSubpic[CurrSubpicIdx]))` bits.

[0502] The value of --slice_address should be in the range of 0 to NumSlicesInSubpic[CurrSubpicIdx]–1 (inclusive).

[0503] Bitstream consistency requires the application of the following constraints:

[0504] --If rect_slice_flag is equal to 0 or subpic_info_present_flag is equal to 0, then the value of slice_address should not be equal to the value of slice_address of any other codec strip NAL unit of the same codec image.

[0505] --Otherwise, a pair of slice_subpic_id and slice_address values ​​should not be equal to a pair of slice_subpic_id and slice_address values ​​for any other codec strip NAL unit of the same codec image.

[0506] --The shape of the image stripes should be such that, when each CTU is being decoded, its entire left edge and entire top edge should consist of the image boundary or the boundaries of the previously decoded (multiple) CTUs.

[0507] sh_extra_bit[i] can be equal to 1 or 0. Decoders conforming to this version of the specification should ignore the value of sh_extra_bit[i]. Its value does not affect the consistency of the decoder with the grade specified in this version of the specification.

[0508] The increment of 1 in num_tiles_in_slice_minus1 (if present) specifies the number of slices in the strip. The value of num_tiles_in_slice_minus1 should be in the range of 0 to NumTilesInPic–1 (inclusive).

[0509] The variable NumCtusInCurrSlice specifies the number of CTUs in the current slice, and i ranges from 0 to a list of NumCtusInCurrSlice–1 (inclusive). CtbAddrInCurrSlice[i] specifies the raster scan address of the i-th CTU within the slice, derived as follows:

[0510]

[0511]

[0512] The variables SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos, and SubpicBotBoundaryPos are derived as follows:

[0513]

[0514] slice_type specifies the encoding / decoding type of the slice according to Table 9.

[0515] Table 9 – Name association with slice_type

[0516] slice_type The name of slice_type 0 B (B band) 1 P (P-band) 2 I(I strip)

[0517] When it does not exist, the value of slice_type is inferred to be equal to 2.

[0518] When ph_intra_slice_allowed_flag equals 0, the value of slice_type should be 0 or 1. When nal_unit_type is in the range from IDR_W_RADL to CRA_NUT (inclusive), and vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] equals 1, slice_type should be 2.

[0519] The derivation of the variables MinQtLog2SizeY, MinQtLog2SizeC, MinQtSizeY, MinQtSizeC, MaxBtSizeY, MaxBtSizeC, MinBtSizeY, MaxTtSizeY, MaxTtSizeC, MinTtSizeY, MaxMttDepthY and MaxMttDepthC is as follows:

[0520] -- If slice_type is equal to 2 (I), then the following applies:

[0521] MinQtLog2SizeY = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_intra_slice_luma (119)

[0522] MinQtLog2SizeC = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_intra_slice_chroma (120)

[0523] MaxBtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_bt_min_qt_intra_slice_luma) (121)

[0524] MaxBtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_bt_min_qt_intra_slice_chroma) (122)

[0525] MaxTtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_tt_min_qt_intra_slice_luma) (123)

[0526] MaxTtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_tt_min_qt_intra_slice_chroma) (124)

[0527] MaxMttDepthY = ph_max_mtt_hierarchy_depth_intra_slice_luma (125)

[0528] MaxMttDepthC = ph_max_mtt_hierarchy_depth_intra_slice_chroma (126)

[0529] CuQpDeltaSubdiv = ph_cu_qp_delta_subdiv_intra_slice (127)

[0530] CuChromaQpOffsetSubdiv = ph_cu_chroma_qp_offset_subdiv_intra_slice(128)

[0531] -- Otherwise (slice_type is equal to 0 (B) or 1 (P)), the following applies:

[0532] MinQtLog2SizeY = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_inter_slice(129)

[0533] MinQtLog2SizeC = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_inter_slice(130)

[0534] MaxBtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_bt_min_qt_inter_slice) (131)

[0535] MaxBtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_bt_min_qt_inter_slice) (132)

[0536] MaxTtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_tt_min_qt_inter_slice) (133)

[0537] MaxTtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_tt_min_qt_inter_slice) (134)

[0538] MaxMttDepthY = ph_max_mtt_hierarchy_depth_inter_slice (135)

[0539] MaxMttDepthC=ph_max_mtt_hierarchy_depth_inter_slice (136)

[0540] CuQpDeltaSubdiv=ph_cu_qp_delta_subdiv_inter_slice (137)

[0541] CuChromaQpOffsetSubdiv=ph_cu_chroma_qp_offset_subdiv_inter_slice(138)

[0542] --The following applies:

[0543] MinQtSizeY = 1 <MinQtLog2SizeY (13

[0544] MinQtSizeC = 1 <MinQtLog2SizeC (14

[0545] MinBtSizeY=1< <MinCbLog2SizeY (14

[0546] MinTtSizeY=1< <MinCbLog2SizeY (14

[0547] A slice_alf_enabled_flag value of 1 indicates that the adaptive loop filter is enabled and can be applied to the Y, Cb, or Cr color components in the slice. A slice_alf_enabled_flag value of 0 indicates that the adaptive loop filter is disabled for all color components in the slice. When it does not exist, the value of slice_alf_enabled_flag is inferred to be equal to ph_alf_enabled_flag.

[0548] `slice_num_alf_aps_ids_luma` specifies the number of ALF APS referenced by the slice. When `slice_alf_enabled_flag` is equal to 1 and `slice_num_alf_aps_ids_luma` does not exist, the value of `slice_num_alf_aps_ids_luma` is inferred to be equal to the value of `ph_num_alf_aps_ids_luma`.

[0549] `slice_alf_aps_id_luma[i]` specifies the `adaptation_parameter_set_id` of the i-th ALF APS referenced by the luminance component of the slice. The `temporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_alf_aps_id_luma[i]` should be less than or equal to the `temporalId` of the NAL unit of the codec slice. When `slice_alf_enabled_flag` equals 1 and `slice_alf_aps_id_luma[i]` does not exist, the value of `slice_alf_aps_id_luma[i]` is inferred to be equal to the value of `ph_alf_aps_id_luma[i]`.

[0550] The value of alf_luma_filter_signal_flag for the APS NAL cell where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to slice_alf_aps_id_luma[i] should be equal to 1.

[0551] A slice_alf_chroma_idc equal to 0 indicates that the adaptive loop filter is not applied to the Cb and Cr color components. A slice_alf_chroma_idc equal to 1 indicates that the adaptive loop filter is applied to the Cb color component. A slice_alf_chroma_idc equal to 2 indicates that the adaptive loop filter is applied to the Cr color component. A slice_alf_chroma_idc equal to 3 indicates that the adaptive loop filter is applied to both the Cb and Cr color components. When slice_alf_chroma_idc does not exist, it is inferred to be equal to ph_alf_chroma_idc.

[0552] `slice_alf_aps_id_chroma` specifies the `adaptation_parameter_set_id` of the ALF APS referenced by the chroma components of the slice. The `temporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_alf_aps_id_chroma` should be less than or equal to the `temporalId` of the NAL unit of the codec slice. When `slice_alf_enabled_flag` equals 1 and `slice_alf_aps_id_chroma` does not exist, the value of `slice_alf_aps_id_chroma` is inferred to be equal to the value of `ph_alf_aps_id_chroma`.

[0553] The value of alf_chroma_filter_signal_flag in the APS NAL cell where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to slice_alf_aps_id_chroma should be equal to 1.

[0554] A slice_cc_alf_cb_enabled_flag value of 0 indicates that the cross-component filter is not applied to the Cb color component. A slice_cc_alf_cb_enabled_flag value of 1 indicates that the cross-component filter is enabled and can be applied to the Cb color component. When slice_cc_alf_cb_enabled_flag does not exist, it is inferred to be equal to ph_cc_alf_cb_enabled_flag.

[0555] slice_cc_alf_cb_aps_id specifies the adaptation_parameter_set_id referenced by the Cb color component of the stripe.

[0556] The TemporalId of the APS NAL unit whose aps_params_type equals ALF_APS and whose adaptation_parameter_set_id equals slice_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the codec slice NAL unit. When slice_cc_alf_cb_enabled_flag equals 1 and slice_cc_alf_cb_aps_id does not exist, the value of slice_cc_alf_cb_aps_id is inferred to be equal to the value of ph_cc_alf_cb_aps_id.

[0557] The value of alf_cc_cb_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cb_aps_id should be equal to 1.

[0558] A slice_cc_alf_cr_enabled_flag value of 0 indicates that the cross-component filter is not applied to the Cr color component. A slice_cc_alf_cb_enabled_flag value of 1 indicates that the cross-component adaptive loop filter is enabled and can be applied to the Cr color component. When slice_cc_alf_cr_enabled_flag does not exist, it is inferred to be equal to ph_cc_alf_cr_enabled_flag.

[0559] `slice_cc_alf_cr_aps_id` specifies the `adaptation_parameter_set_id` referenced by the Cr color component of the slice. The `TemporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_cc_alf_cr_aps_id` should be less than or equal to the `TemporalId` of the NAL unit of the codec slice. When `slice_cc_alf_cr_enabled_flag` equals 1 and `slice_cc_alf_cr_aps_id` does not exist, the value of `slice_cc_alf_cr_aps_id` is inferred to be equal to the value of `ph_cc_alf_cr_aps_id`.

[0560] The value of alf_cc_cr_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cr_aps_id should be equal to 1.

[0561] When separate_colour_plane_flag equals 1, colour_plane_id identifies the color plane associated with the current stripe. The value of colour_plane_id should be in the range of 0 to 2 (inclusive). colour_plane_id values ​​0, 1, and 2 correspond to the Y, Cb, and Cr planes, respectively. The value of colour_plane_id 3 is reserved for future use by ITU-T|ISO / IEC.

[0562] Note 1 – There is no dependency between the decoding processes of different color planes of an image.

[0563] A value of 1 for num_ref_idx_active_override_flag indicates that the syntax element num_ref_idx_active_minus1[0] exists in stripes P and B, and that the syntax element num_ref_idx_active_minus1[1] exists in stripe B. A value of 0 for num_ref_idx_active_override_flag indicates that the syntax elements num_ref_idx_active_minus1[0] and num_ref_idx_active_minus1[1] do not exist. When they do not exist, the value of num_ref_idx_active_override_flag is inferred to be equal to 1.

[0564] num_ref_idx_active_minus1[i] is used to derive the variable NumRefIdxActive[i], as specified in Equation 143. The value of num_ref_idx_active_minus1[i] should be in the range of 0 to 14 (inclusive).

[0565] For i equal to 0 or 1, when the current stripe is a B stripe, num_ref_idx_active_override_flag equals 1, and num_ref_idx_active_minus1[i] does not exist, num_ref_idx_active_minus1[i] is inferred to be equal to 0.

[0566] When the current stripe is a P stripe, num_ref_idx_active_override_flag is equal to 1, and num_ref_idx_active_minus1[0] does not exist, num_ref_idx_active_minus1[0] is inferred to be equal to 0.

[0567] The variable NumRefIdxActive[i] is derived as follows:

[0568]

[0569] The value of NumRefIdxActive[i]-1 specifies the maximum reference index of the reference image list i that can be used to decode the strip. When the value of NumRefIdxActive[i] is equal to 0, no reference index of the reference image list i can be used to decode the strip.

[0570] When the current stripe is a P stripe, the value of NumRefIdxActive[0] should be greater than 0.

[0571] When the current stripe is a B stripe, both NumRefIdxActive[0] and NumRefIdxActive[1] should be greater than 0.

[0572] `cabac_init_flag` specifies the method used to determine the initialization table used during the initialization of context variables. When `cabac_init_flag` does not exist, it is inferred to be equal to 0.

[0573] A slice_collocated_from_l0_flag value of 1 specifies that the co-located image used for temporal motion vector prediction is derived from reference image list 0. A slice_collocated_from_l0_flag value of 0 specifies that the co-located image used for temporal motion vector prediction is derived from reference image list 1.

[0574] When slice_type equals B or P, ph_temporal_mvp_enabled_flag equals 1, and slice_collocated_from_l0_flag does not exist, the following applies:

[0575] --If rpl_info_in_ph_flag equals 1, then it is inferred that slice_collocated_from_l0_flag equals ph_collocated_from_l0_flag.

[0576] --Otherwise (rpl_info_in_ph_flag equals 0 and slice_type equals P), the value of slice_collocated_from_l0_flag is inferred to be equal to 1.

[0577] The slice_collocated_ref_idx specifies the reference index of the co-located image used for temporal motion vector prediction.

[0578] When slice_type equals P or when slice_type equals B and slice_collocated_from_l0_flag equals 1, slice_collocated_ref_idx references the entry in reference image list 0, and the value of slice_collocated_ref_idx should be in the range of 0 to NumRefIdxActive[0]–1 (inclusive).

[0579] When slice_type equals B and slice_collocated_from_l0_flag equals 0, slice_collocated_ref_idx references the entry in reference image list 1, and the value of slice_collocated_ref_idx should be in the range of 0 to NumRefIdxActive[1]–1 (inclusive).

[0580] The following applies when slice_collocated_ref_idx does not exist:

[0581] --If rpl_info_in_ph_flag equals 1, then it is inferred that the value of slice_collocated_ref_idx is equal to ph_collocated_ref_idx.

[0582] --Otherwise (rpl_info_in_ph_flag equals 0), the value of slice_collocated_ref_idx is inferred to be equal to 0.

[0583] The requirement for bitstream consistency is that the image referenced by slice_collocated_ref_idx should be identical across all slices of the encoded / decoded image.

[0584] The requirement for bitstream consistency is that the values ​​of pic_width_in_luma_samples and pic_height_in_luma_samples of the reference image referenced by slice_collocated_ref_idx should be equal to the values ​​of pic_width_in_luma_samples and pic_height_in_luma_samples of the current image, respectively, and RprConstraintsActive[slice_collocated_from_l0_flag? 0:1][slice_collocated_ref_idx] should be equal to 0.

[0585] slice_qp_delta specifies the Qp used for codec blocks in a slice. Y The initial value remains unchanged until it is modified by the value of CuQpDeltaVal in the codec unit layer.

[0586] When qp_delta_info_in_ph_flag equals 0, the Qp of the stripe Y Initial value of quantization parameter SliceQp Y The following was exported:

[0587] SliceQp Y =26+init_qp_minus26+slice_qp_delta(144)

[0588] SliceQp Y The value should be in the range of -QpBdOffset to +63 (inclusive).

[0589] When any of the following conditions are true:

[0590] The values ​​of --wp_info_in_ph_flag, pps_weighted_pred_flag, and slice_type are all equal to 1.

[0591] The values ​​of --wp_info_in_ph_flag, pps_weighted_bipred_flag, and slice_type are all equal to 1 and B, respectively.

[0592] The following applies:

[0593] The value of --NumRefIdxActive[0] should be less than or equal to the value of NumWeightsL0.

[0594] – For each reference image index RefPicList[0][i] in the range of i from 0 to NumRefIdxActive[0]-1 (inclusive), the luminance weight, Cb weight and Cr weight applied to the reference image index are LumaWeightL0[i], ChromaWeightL0[0][i] and ChromaWeightL0[1][i], respectively.

[0595] When wp_info_in_ph_flag equals 1, pps_weighted_bipred_flag equals 1, and slice_type equals B, the following applies:

[0596] The value of --NumRefIdxActive[1] should be less than or equal to the value of NumWeightsL1.

[0597] – For each reference image index RefPicList[1][i] in the range of i from 0 to NumRefIdxActive[1]-1 (inclusive), the luminance weight, Cb weight and Cr weight applied to the reference image index are LumaWeightL1[i], ChromaWeightL1[0][i] and ChromaWeightL1[1][i], respectively.

[0598] slice_cb_qp_offset specifies the offset when determining Qp′ Cb The value of the quantization parameter should be added to the difference between the values ​​of pps_cb_qp_offset and pps_cb_qp_offset. The value of slice_cb_qp_offset should be in the range of -12 to +12 (inclusive). If slice_cb_qp_offset does not exist, it is inferred to be equal to 0. The value of pps_cb_qp_offset + slice_cb_qp_offset should be in the range of -12 to +12 (inclusive).

[0599] slice_cr_qp_offset specifies the offset when determining Qp′ Cr The difference between the quantization parameter value and the value of pps_cr_qp_offset should be added when quantizing the parameter. The value of slice_cr_qp_offset should be in the range of -12 to +12 (inclusive). If slice_cr_qp_offset does not exist, it is inferred to be equal to 0. The value of pps_cr_qp_offset + slice_cr_qp_offset should be in the range of -12 to +12 (inclusive).

[0600] slice_joint_cbcr_qp_offset specifies the offset when determining Qp′ CbCr The value should be added to the difference between the values ​​of `pps_joint_cbcr_qp_offset_value` and `slice_joint_cbcr_qp_offset`. The value of `slice_joint_cbcr_qp_offset` should be in the range of -12 to +12 (inclusive). When `slice_joint_cbcr_qp_offset` does not exist, it is inferred to be equal to 0. The value of `pps_joint_cbcr_qp_offset_value + slice_joint_cbcr_qp_offset` should be in the range of -12 to +12 (inclusive).

[0601] A value of 1 for `cu_chroma_qp_offset_enabled_flag` indicates that `cu_chroma_qp_offset_flag` can exist in the transform unit and the palette codec syntax. A value of 0 for `cu_chroma_qp_offset_enabled_flag` indicates that `cu_chroma_qp_offset_flag` does not exist in either the transform unit or the palette codec syntax. When it does not exist, the value of `cu_chroma_qp_offset_enabled_flag` is inferred to be 0.

[0602] A slice_sao_luma_flag value of 1 indicates that SAO is enabled for the luminance component in the current slice; a slice_sao_luma_flag value of 0 indicates that SAO is disabled for the luminance component in the current slice. When slice_sao_luma_flag does not exist, it is inferred to be equal to ph_sao_luma_enabled_flag.

[0603] A slice_sao_chroma_flag value of 1 indicates that SAO is enabled for the chroma components in the current slice; a slice_sao_chroma_flag value of 0 indicates that SAO is disabled for the chroma components in the current slice. When slice_sao_chroma_flag does not exist, it is inferred to be equal to ph_sao_chroma_enabled_flag.

[0604] A slice_deblocking_filter_override_flag value of 1 indicates that the deblocking parameters are present in the slice header. A slice_deblocking_filter_override_flag value of 0 indicates that the deblocking parameters are not present in the slice header. When the deblocking parameters are not present, the value of slice_deblocking_filter_override_flag is inferred to be equal to ph_deblocking_filter_override_flag.

[0605] A slice_deblocking_filter_disabled_flag value of 1 indicates that the deblocking filter operation should not be applied to the current slice. A slice_deblocking_filter_disabled_flag value of 0 indicates that the deblocking filter operation should be applied to the current slice. When slice_deblocking_filter_disabled_flag does not exist, it is inferred to be equal to ph_deblocking_filter_disabled_flag.

[0606] `slice_beta_offset_div2` and `slice_tc_offset_div2` specify the deblocking parameter offsets applied to the luminance component of the current slice, β and tC (divided by 2). The values ​​of both `slice_beta_offset_div2` and `slice_tc_offset_div2` should be in the range of -12 to 12 (inclusive). When not present, the values ​​of `slice_beta_offset_div2` and `slice_tc_offset_div2` are inferred to be equal to `ph_beta_offset_div2` and `ph_tc_offset_div2`, respectively.

[0607] `slice_cb_beta_offset_div2` and `slice_cb_tc_offset_div2` specify the deblocking parameter offsets applied to the Cb components of the current slice, β and tC (divided by 2). The values ​​of both `slice_cb_beta_offset_div2` and `slice_cb_tc_offset_div2` should be in the range of -12 to 12 (inclusive). When not present, the values ​​of `slice_cb_beta_offset_div2` and `slice_cb_tc_offset_div2` are inferred to be equal to `ph_cb_beta_offset_div2` and `ph_cb_tc_offset_div2`, respectively.

[0608] `slice_cb_beta_offset_div2` and `slice_cb_tc_offset_div2` specify the deblocking parameter offsets for β and tC (divided by 2) applied to the Cr component of the current slice. The values ​​of `slice_cr_beta_offset_div2` and `slice_cr_tc_offset_div2` should both be in the range of -12 to 12 (inclusive). When not present, the values ​​of `slice_cr_beta_offset_div2` and `slice_cr_tc_offset_div2` are inferred to be equal to `ph_cr_beta_offset_div2` and `ph_cr_tc_offset_div2`, respectively.

[0609] A slice_ts_residual_coding_disabled_flag value of 1 specifies that the residual_coding() syntax structure is used to parse the residual samples of the transform skipped blocks of the current slice. A slice_ts_residual_coding_disabled_flag value of 0 specifies that the residual_ts_coding() syntax structure is used to parse the residual samples of the transform skipped blocks of the current slice. When slice_ts_residual_coding_disabled_flag does not exist, it is inferred to be equal to 0.

[0610] A slice_lmcs_enabled_flag value of 1 indicates that luma mapping with chroma scaling is enabled for the current slice. A slice_lmcs_enabled_flag value of 0 indicates that luma mapping with chroma scaling is not enabled for the current slice. When slice_lmcs_enabled_flag does not exist, it is inferred to be equal to 0.

[0611] A slice_scaling_list_present_flag value of 1 indicates that the scaling list data used for the current slice is derived from the scaling list data contained in the reference scaling list APS, where aps_params_type equals SCALING_APS and adaptation_parameter_set_id equals ph_scaling_list_aps_id. A slice_scaling_list_present_flag value of 0 indicates that the scaling list data used for the current image is the default scaling list data specified in Clause 7.4.3.21. When it does not exist, the value of slice_scaling_list_present_flag is inferred to be equal to 0.

[0612] The variable NumEntryPoints specifies the number of entry points in the current strip, derived as follows:

[0613]

[0614]

[0615] Increasing offset_len_minus1 by 1 specifies the length (in bits) of the entry_point_offset_minus1[i] syntax element. The value of offset_len_minus1 should be in the range of 0 to 31 (inclusive).

[0616] The offset of the i-th entry point is specified by incrementing 1 by entry_point_offset_minus1[i] in bytes and is represented by offset_len_minus1 plus 1 bit. The strip data following the strip header consists of NumEntryPoints+1 subsets, where the subset index values ​​range from 0 to NumEntryPoints (inclusive). The first byte of the strip data is considered byte 0. When present, simulations appearing in the strip data portion of the NAL unit of the codec strip prevent bytes from being counted as part of the strip data for subset identification purposes. Subset 0 consists of bytes 0 to entry_point_offset_minus1[0] (inclusive) of the codec strip data, and subset k (where k ranges from 1 to NumEntryPoints-1 (inclusive)) consists of bytes firstByte[k] to lastByte[k] (inclusive) of the codec strip data, where firstByte[k] and lastByte[k] are defined as:

[0617]

[0618] lastByte[k]=firstByte[k]+entry_point_offset_minus1[k] (147)

[0619] The last subset (where the subset index equals NumEntryPoints) consists of the remaining bytes of the encoded and decoded stripe data.

[0620] When sps_entropy_coding_sync_enabled_flag equals 0 and the stripe contains one or more complete slices, each subset should consist of all the codec bits of all CTUs in the stripe within the same slice, and the number of subsets (i.e., the value of NumEntryPoints+1) should be equal to the number of slices in the stripe.

[0621] When `sps_entropy_coding_sync_enabled_flag` equals 0 and the slice contains a subset of CTU rows from a single slice, `NumEntryPoints` should be 0, and the number of subsets should be 1. This subset should consist of all the codec bits for all CTUs in the slice.

[0622] When sps_entropy_coding_sync_enabled_flag equals 1, each subset k in the range of 0 to NumEntryPoints (inclusive) should consist of all the codec bits of all CTUs in the CTU line within the slice, and the number of subsets (i.e., the value of NumEntryPoints+1) should be equal to the total number of slice-specific CTU lines in the stripe.

[0623] `slice_header_extension_length` specifies the length of the slice header extension data in bytes, excluding the bits used for signaling notifications within `slice_header_extension_length` itself. The value of `slice_header_extension_length` should be in the range of 0 to 256 (inclusive). If it does not exist, the value of `slice_header_extension_length` is inferred to be 0.

[0624] The slice_header_extension_data_byte[i] can have any value. Decoders conforming to this version of the specification should ignore the values ​​of all slice_header_extension_data_byte[i] syntax elements. Its value does not affect the consistency of the decoder with the grade specified in this version of the specification.

[0625] 3.5 Chromaticity QP Mapping Table

[0626] In clause 7.3.2.3 of JVET-Q2001-vC, SPS includes a structure called the Chromaticity QP table, as shown below:

[0627]

[0628] They have the following semantics and QP table exports:

[0629] A value of 0 for `sps_joint_cbcr_enabled_flag` disables joint encoding and decoding of chroma residuals. A value of 1 for `sps_joint_cbcr_enabled_flag` enables joint encoding and decoding of chroma residuals. When `sps_joint_cbcr_enabled_flag` does not exist, its value is inferred to be 0.

[0630] A value of `same_qp_table_for_chroma` equal to 1 indicates that only one chroma QP map table is signaled, and this table applies to both Cb and Cr residuals, and also applies to the joint Cb-Cr residual when `sps_joint_cbcr_enabled_flag` equals 1. A value of `same_qp_table_for_chroma` equal to 0 indicates that when `sps_joint_cbcr_enabled_flag` equals 1, the chroma QP map table is signaled in SPS, two for Cb and Cr, and one for the joint Cb-Cr. If `same_qp_table_for_chroma` is not present in the bitstream, it is inferred that the value of `same_qp_table_for_chroma` is equal to 1.

[0631] The value of qp_table_start_minus26[i] plus 26 specifies the starting luminance and chrominance QP used to describe the i-th chrominance QP mapping table. The value of qp_table_start_minus26[i] should be in the range of -26–QpBdOffset to 36 (inclusive). If qp_table_start_minus26[i] is not present in the bitstream, it is inferred that the value of qp_table_start_minus26[i] is equal to 0.

[0632] The increment of 1 in num_points_in_qp_table_minus1[i] specifies the number of points used to describe the i-th chroma QP mapping table. The value of num_points_in_qp_table_minus1[i] should be in the range of 0 to 63+QpBdOffset (inclusive). When num_points_in_qp_table_minus1[0] does not exist in the bitstream, it is inferred that the value of num_points_in_qp_table_minus1[0] is equal to 0.

[0633] delta_qp_in_val_minus1[i][j] specifies the increment value of the input coordinates used to derive the j-th pivot point of the i-th chroma QP mapping table. When delta_qp_in_val_minus1[0][j] does not exist in the bitstream, it is inferred that the value of delta_qp_in_val_minus1[0][j] is equal to 0.

[0634] delta_qp_diff_val[i][j] specifies the incremental value used to derive the output coordinates of the j-th pivot point of the i-th chromaticity QP mapping table.

[0635] The i-th chroma QP mapping table ChromaQpTable[i] of i = 0..numQpTables-1 is derived as follows:

[0636]

[0637]

[0638] When same_qp_table_for_chroma equals 1, ChromaQpTable[1][k] and ChromaQpTable[2][k] are set to ChromaQpTable[0][k] in the range of -QpBdOffset to 63 (inclusive).

[0639] The requirement for bitstream consistency is that, for i in the range of 0 to numQpTables–1 (inclusive) and j in the range of 0 to num_points_in_qp_table_minus1[i]+1 (inclusive), qpInVal[i][j] and qpOutVal[i][j] should be in the range of -QpBdOffset to 63 (inclusive).

[0640] In the above description, QpBdOffset is exported as:

[0641] bit_depth_minus8 specifies the bit depth BitDepth of the samples in the luma and chroma arrays, as well as the value of the range offset QpBdOffset for the luma and chroma quantization parameters, as follows:

[0642] BitDepth = 8 + bit_depth_minus8

[0643] QpBdOffset=6*bit_depth_minus8

[0644] bit_depth_minus8 should be in the range of 0 to 8 (inclusive).

[0645] 4. The technical problem solved by the disclosed technical solution

[0646] The existing design in the latest VVC draft specification for APS, deblocking, sub-images, and QP increments has the following issues:

[0647] 1) Currently, the value of the APS syntax element scaling_list_chroma_present_flag is constrained based on the ChromaArrayType derived from the SPS syntax elements chroma_format_idc and separate_colour_plane_flag, as stated below: scaling_list_chroma_present_flag should be equal to 0 when ChromaArrayType is equal to 0, and scaling_list_chroma_present_flag should be equal to 1 when ChromaArrayType is not equal to 0.

[0648] This constraint in the semantics of APS syntax elements introduces a semantic dependency of APS on SPS, which should not happen because since there is no PPS ID or SPS ID in the APS syntax, APS can be applied to images (or stripes of images) that reference different SPS, which may be associated with different values ​​of ChromaArrayType.

[0649] a. In addition, similar APS-SPS semantic dependencies also exist in the semantics of some ALF / CC-ALFAPS syntax elements, as stated below: when ChromaArrayType equals 0, alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag should be equal to 0.

[0650] b. Currently, when signaling is sent to the LMCS APS, the chroma residual scaling related syntax elements are always sent within the LMCS APS syntax structure, regardless of whether ChromaArrayType is equal to 0 (i.e., there are no chroma components in CLVS). This results in unnecessary signaling of chroma-related syntax elements.

[0651] 2) It is claimed that the deblocking control mechanism in the latest VVC text is quite complex, unintuitive, and difficult to understand, thus prone to errors. Below are some example issues we have observed:

[0652] a. Based on the current text, even if the deblocking filter is disabled in PPS, it can still be enabled in PH or SH. For example, if signaling first notifies that pps_deblocking_filter_disabled_flag is equal to 1, and also signaling that deblocking_filter_override_enabled_flag is equal to 1, it indicates that the deblocking filter is disabled in PPS, and it also allows deblocking filter enable / disable control overridden in PH or SH. Then dbf_info_in_ph_flag is subsequently signaled, and the PH syntax element ph_deblocking_filter_disabled_flag may be signaled to be equal to 0, which ultimately enables the deblocking filter for the stripe associated with PH. In this case, deblocking is ultimately enabled in PH, regardless of whether it has been disabled at a higher level (e.g., PPS). This design logic is unique in VVC text and is very different from the design logic of other codec tools (such as ALF, SAO, LMCS, TMVP, WP, etc.) because usually when a codec tool is disabled at a higher level (e.g., SPS, PPS), it is completely disabled at a lower level (e.g., PH, SH).

[0653] b. Furthermore, the current definition of pps_deblocking_filter_disabled_flag is similar to "pps_deblocking_filter_disabled_flag equal to 1 specifies that the deblocking filter operation should not be applied to slices of PPS that do not have slice_deblocking_filter_disabled_flag...". However, according to the current syntax table, even if pps_deblocking_filter_disabled_flag equals 1 and slice_deblocking_filter_disabled_flag does not exist, the deblocking filter operation will still be applied if ph_deblocking_filter_disabled_flag exists and is signaled to be equal to 0. Therefore, the current definition of pps_deblocking_filter_disabled_flag is incorrect.

[0654] c. Furthermore, according to the current text, if both the PPS syntax elements `deblocking_filter_override_enabled_flag` and `pps_deblocking_filter_disabled_flag` are equal to 1, it specifies that deblocking is disabled in PPS, and the control of the deblocking filter is intended to be overridden in PH or SH. However, subsequent PH syntax elements `ph_deblocking_filter_override_flag` and `ph_deblocking_filter_disabled_flag` may still be signaled to be equal to 1, indicating that the resulting overriding process does not change anything (e.g., deblocking remains disabled in PH / SH) and simply uses unnecessary bits for meaningless signaling notification.

[0655] d. Additionally, based on the current text, when the SH syntax element `slice_deblocking_filter_override_flag` is absent, it is inferred to be equal to `ph_deblocking_filter_override_flag`. However, aside from implicit or explicit signaling notifications in PPS, deblocking parameters can only be signaled in either PH or SH according to `dbf_info_in_ph_flag`, but not in both PH and SH. Therefore, when `dbf_info_in_ph_flag` is true, the intent is to allow signaling notifications of overridden deblocking filter parameters in PH. In this case, if the PH overriding flag is true and the SH overriding flag is not signaled but is inferred to be equal to the PH overriding flag, additional deblocking filter parameters will still be signaled in SH, which conflicts with the intent.

[0656] e. Additionally, since there is no SPS-level deblocking on / off control, it can be added, and the relevant syntax elements in PPS / PH / SH can be updated accordingly.

[0657] 3) Currently, when the PPS syntax element single_slice_per_subpic_flag does not exist, it is inferred to be equal to 0. single_slice_per_subpic_flag does not exist in two cases: i) no_pic_partition_flag is equal to 1, and ii) no_pic_partition_flag is equal to 0 and rect_slice_flag is equal to 0.

[0658] In case i), `no_pic_partition_flag` equal to 1 indicates that image segmentation is not applied to each image of the reference PPS. Therefore, there is only one stripe per image, and thus only one sub-image per image, and only one stripe per sub-image. Therefore, in this case, `single_slice_per_subpic_flag` should be inferred to be equal to 1.

[0659] For case ii), since rect_slice_flag is equal to 0, the inferred value of single_slice_per_subpic_flag is not needed.

[0660] 4) Currently, luminance QP increments at the image or strip level are always forcibly signaled in either PH or SH, rather than in both PH and SH. However, strip-level chroma QP offsets are optionally signaled in SH. This design is somewhat inconsistent.

[0661] a. Furthermore, the current semantic wording of the PPS syntax element cu_qp_delta_enabled_flag is as follows: cu_qp_delta_enabled_flag equal to 1 indicates that the syntax elements ph_cu_qp_delta_subdiv_intra_slice and ph_cu_qp_delta_subdiv_inter_slice exist in the reference PPS PH, and cu_qp_delta_abs may exist in the transform unit syntax… However, cu_qp_ may also exist in the palette encoding / decoding syntax, which should also be specified by cu_qp_delta_enabled_flag. In other words, the current semantics of cu_qp_delta_enabled_flag are not clear enough and are somewhat confusing.

[0662] 5) The current design of the chromaticity Qp mapping table cannot directly represent the case where chromaticity Qp is equal to luminance Qp.

[0663] 6) Currently, `subpic_treated_as_pic_flag[i]` is inferred to be equal to the value of `sps_independent_subpics_flag`. However, the current specification only allows horizontal wrapping to be enabled when `subpic_treated_as_pic_flag[i]` is equal to 0, where wrapping motion compensation is designed for 360 video content. Therefore, when an image contains only one sub-image (especially for a complete 360 ​​video sequence containing only one sub-image), the inferred value of `subpic_treated_as_pic_flag[i]` can be inferred to be equal to 0 or a specific value that allows wrapping motion compensation.

[0664] 7) Currently, the semantics of pps_deblocking_filter_disabled_flag are incorrect and incomplete. For example, when pps_deblocking_filter_disabled_flag equals 1, deblocking can be enabled or disabled for a stripe referencing that PPS, but these conditions are not mentioned in the semantics. Similarly, the semantic part of pps_deblocking_filter_disabled_flag is equal to 0.

[0665] a. Furthermore, when the PPS syntax element `pps_deblocking_filter_disabled_flag` is equal to 1, and the PH / SH syntax element `ph / slice_deblocking_filter_override_flag` is signaled to be equal to 1, it is still permissible for `ph / slice_deblocking_filter_disabled_flag` to be explicitly signaled to be equal to 1. This combination of flag values ​​essentially means that deblocking is disabled at the PPS level and overriding is allowed on the picture or slice, then at the PH / SH level it indicates that it will be overridden, and then a bit is signaled in the same header (PH / SH) to finally determine that it was not actually overridden, and deblocking remains disabled at the picture / slice level. This is asserted to have a double negative effect: not only is a bit wasted unnecessarily, but it is also wasted simply to cause some confusion. Therefore, we recommend further refining the semantics of the deblocking control syntax elements and removing the feature that allows indicating overriding and then immediately sending the next bit in the same PH or SH to indicate a change of mind.

[0666] 5. List of solutions and implementation examples

[0667] To address the issues mentioned above and some other issues not mentioned, the following summarized methods are disclosed. The items listed below should be considered as examples for explaining general concepts and should not be interpreted narrowly. Furthermore, these items can be applied individually or in combination in any way.

[0668] In the following discussion, SH can be associated with PH, meaning SH is associated with a band that is in an image associated with PH. SH can be associated with PPS, meaning SH is associated with a band that is in an image associated with PPS. PH can be associated with PPS, meaning PH is associated with an image that is associated with PPS.

[0669] In the following discussion, SPS may be associated with PPS, that is, PPS may refer to SPS.

[0670] In the following discussion, the changed text is based on the latest VVC text in JVET-Q2001-vE. Most of the relevant parts that have been added or modified are highlighted in bold italics, and deleted parts are marked with double brackets (e.g., [[a]] indicates that the character "a" has been deleted).

[0671] 1. Regarding the constraints on APS syntax elements used to solve the first problem, one or more of the following methods are disclosed:

[0672] a. In one example, the value of scaling_list_chroma_present_flag is constrained according to the ChromaArrayType derived from the PH syntax element.

[0673] i. For example, whether the value of scaling_list_chroma_present_flag is constrained may depend on whether ph_scaling_list_aps_id exists, for example, as in the first set of embodiments.

[0674] 1) In one example, it is required that when ph_scaling_list_chroma_present_flag of the APS NAL cell whose aps_params_type is equal to SCALING_APS and whose adaptation_parameter_set_id is equal to ph_scaling_list_aps_id should be equal to ChromaArrayType == 0?0:1.

[0675] ii. Alternatively, scaling_list_chroma_present_flag is constrained based on the ChromaArrayType derived from the PH syntax element, but is independent of the presence of ph_scaling_list_aps_id, for example, as in the first set of embodiments.

[0676] 1) In one example, the value of scaling_list_chroma_present_flag of the APS NAL cell whose aps_params_type is equal to SCALING_APS should be equal to ChromaArrayType == 0?0:1.

[0677] b. In one example, the value of lmcs_delta_abs_crs is constrained according to the ChromaArrayType derived from the PH syntax element.

[0678] i. For example, whether the value of lmcs_delta_abs_crs is constrained may depend on whether ph_lmcs_aps_id exists, for example, as in the first set of embodiments.

[0679] 1) For example, if ph_lmcs_aps_id exists, and ChromaArrayType is equal to 0, then the value of lmcs_delta_abs_crs for APSNAL cells with aps_params_type equal to LMCS_APS and adaptation_parameter_set_id equal to ph_lmcs_aps_id should be equal to 0; otherwise, the value should be greater than 0.

[0680] 2) Alternatively, if ph_lmcs_aps_id exists and ChromaArrayType is equal to 0, then the value of lmcs_delta_abs_crs for APSNAL cells with aps_params_type equal to LMCS_APS and adaptation_parameter_set_id equal to ph_lmcs_aps_id should be equal to 0.

[0681] ii. Alternatively, lmcs_delta_abs_crs is constrained based on the ChromaArrayType derived from the PH syntax elements, but is independent of the presence of ph_lmcs_aps_id, for example, as in the first set of embodiments.

[0682] 1) For example, it is required that if ChromaArrayType is equal to 0, then the value of lmcs_delta_abs_crs of the APS NAL cell equal to ph_lmcs_aps_id should be equal to 0, otherwise the value should be greater than 0.

[0683] 2) For example, if ChromaArrayType is equal to 0, then the value of lmcs_delta_abs_crs of the APS NAL cell that is equal to ph_lmcs_aps_id should be equal to 0.

[0684] c. In one example, constrain the values ​​of ALF APS syntax elements (e.g., alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, alf_cc_cr_filter_signal_flag, etc.) based on the ChromaArrayType derived from the PH syntax element and / or SH syntax element.

[0685] i. For example, whether the values ​​of alf_chroma_filter_signal_flag and / or alf_cc_cb_filter_signal_flag and / or alf_cc_cr_filter_signal_flag are constrained may depend on the existence of ph_alf_aps_id_luma[i] or slice_alf_aps_id_luma[i] and / or whether ChromaArrayType is equal to 0, for example, as in the first set of embodiments.

[0686] 1) For example, it is required that when ph_alf_aps_id_luma[i] exists and ChromaArrayType is equal to 0, the values ​​of alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag of the APS NAL cell of aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_alf_aps_id_luma[i] should all be equal to 0.

[0687] 2) Additionally, when slice_alf_aps_id_luma[i] exists and ChromaArrayType equals 0, the values ​​of alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag of the APS NAL unit of slice_alf_aps_id_luma[i] should all be equal to 0.

[0688] ii. Alternatively, alf_chroma_filter_signal_flag and / or alf_cc_cb_filter_signal_flag and / or alf_cc_cr_filter_signal_flag are constrained based on the ChromaArrayType derived from the PH syntax element or the SH syntax element, regardless of the presence of ph_alf_aps_id_luma[i] and / or slice_alf_aps_id_luma[i], for example, as in the first set of embodiments.

[0689] 1) For example, when ChromaArrayType is equal to 0, the values ​​of alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag of the APSNAL cell of ALF_APS should all be equal to 0.

[0690] 2) Additionally, when ChromaArrayType equals 0, the values ​​of alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, and alf_cc_cr_filter_signal_flag of the APSNAL cell of ALF_APS with aps_params_type equal to 0 should all be equal to 0.

[0691] iii. Alternatively, alf_chroma_filter_signal_flag and / or alf_cc_cb_filter_signal_flag and / or alf_cc_cr_filter_signal_flag are constrained based on the ChromaArrayType derived from the PH or SH syntax elements associated with the chroma APS ID, for example, as in the first set of embodiments.

[0692] 1) For example, alf_chroma_filter_signal_flag is constrained by the ChromaArrayType derived from the PH syntax element ph_alf_aps_id_chroma and / or the SH syntax element slice_alf_aps_id_chroma.

[0693] 2) For example, alf_cc_cb_filter_signal_flag is constrained based on the ChromaArrayType derived from the PH syntax element ph_cc_alf_cb_aps_id and / or the SH syntax element slice_cc_alf_cb_aps_id.

[0694] 3) For example, alf_cc_cr_filter_signal_flag is constrained based on the ChromaArrayType derived from the PH syntax element ph_cr_alf_cb_aps_id and / or the SH syntax element slice_cr_alf_cb_aps_id.

[0695] d. In one example, the semantics of the APS syntax element in the ALF and / or SCALING LIST and / or LMCS data syntax structure may not depend on whether it is a 4:0:0 video codec and / or a separate color plane codec.

[0696] i. For example, the semantics of APS syntax elements (e.g., alf_chroma_filter_signal_flag, alf_cc_cb_filter_signal_flag, alf_cc_cr_filter_signal_flag, etc.) in the ALF data syntax structure may not depend on variables / syntax derived from SPS / PH / SH syntax elements (e.g., ChromaArrayType), for example, as in the first set of embodiments.

[0697] ii. Alternatively, the semantics of APS syntax elements (e.g., scaling_list_chroma_present_flag, etc.) in the SCALING LIST data syntax structure may not depend on variables / syntax derived from SPS / PH / SH syntax elements (e.g., ChromaArrayType), for example, as in the first set of embodiments.

[0698] e. Additionally, whether the temporalId of the ALF / SCALING / LMCS APS NAL unit is constrained may depend on the existence of the corresponding APS ID, for example, as in the first set of embodiments.

[0699] i. For example, whether the temporalId of an ALF APS NAL cell is constrained can depend on whether ph_alf_aps_id_luma[i] and / or ph_alf_aps_id_chroma and / or ph_cc_alf_cb_aps_id and / or ph_cc_alf_cr_aps_id exists.

[0700] ii. For example, whether the temporalId of an LMCS APS NAL cell is constrained can depend on whether ph_lmcs_aps_id exists.

[0701] iii. For example, whether the temporalId of the SCALING APS NAL unit is constrained may depend on whether ph_scaling_list_aps_id exists.

[0702] f. Furthermore, whether the values ​​of alf_luma_filter_signal_flag, alf_chroma_filter_signal_flag and / or alf_cc_cb_filter_signal_flag and / or alf_cc_cr_filter_signal_flag should be equal to 1 may depend on whether the corresponding APS ID exists, for example, as in the first set of embodiments.

[0703] i. For example, whether alf_luma_filter_signal_flag should be equal to 1 may depend on whether ph_alf_aps_id_luma[i] and / or slice_alf_aps_id_luma[i] exist.

[0704] ii. For example, whether alf_chroma_filter_signal_flag should be equal to 1 may depend on whether ph_alf_aps_id_chroma and / or slice_alf_aps_id_chroma exist.

[0705] iii. For example, whether alf_cc_cb_filter_signal_flag should be equal to 1 may depend on whether ph_cc_alf_cb_aps_id and / or slice_cc_alf_cb_aps_id exist.

[0706] iv. For example, whether alf_cc_cr_filter_signal_flag should be equal to 1 may depend on whether ph_cc_alf_cr_aps_id and / or slice_cc_alf_cr_aps_id exist.

[0707] g. Alternatively, whether to infer the chroma ALF APS ID syntax elements in the SH (e.g., slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cr_alf_cb_aps_id, etc.) may depend on the value of ChromaArrayType, for example, as in the embodiment in the first group.

[0708] i. For example, when ChromaArrayType is not equal to 0, the value of the chroma ALF APS ID syntax element (such as slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cr_alf_cb_aps_id, etc.) in SH can be inferred.

[0709] h. In one example, constraints of an APS syntax element based on ChromaArrayType can be derived from a PH or SH syntax element.

[0710] i. In one example, the APS of the syntax element is constrained by an index notified by signaling in the PH or SH (e.g., and To determine.

[0711] ii. The ChromaArrayType can be derived from information in the signaling notification in SPS (e.g., chroma_format_idc and separate_colour_plane_flag), which is obtained from the index of the signaling notification in PPS (e.g., ...). This index is determined by the index notified by signaling in the PH or SH (e.g., To determine.

[0712] iii. In one example, constraints should be checked after resolving APS and PH or SH.

[0713] iv. In one example, the signaling notification in the APS syntax structure (e.g., adaptation_parameter_set_rbsp()) can specify whether to include the signaling notification of the chroma-related APS syntax element (e.g., named...). ), .

[0714] v. In addition, grammatical elements It may be subject to ChromaArrayType constraints.

[0715] a) For example, if ChromaArrayType equals 0, then It should be equal to 0.

[0716] b) For example, if ChromaArrayType is greater than 0, then It should be equal to 1.

[0717] vi. In addition, constraints based on ChromaArrayType can be derived from PH or SH syntax elements.

[0718] a) In one example, it is required that when chromaArrayType equals 0, aps_params_type equals ALF_APS and The APS NAL cell equal to ph / slice_alf_aps_id_luma[i] The value should be equal to 0.

[0719] a. Alternatively, it can be required that when chromaArrayType is greater than 0,

[0720] aps_params_type equals ALF_APS and The APS NAL unit equal to ph / slice_alf_aps_id_chroma (and / or ph_cc_alf_cb_aps_id and / or ph_cc_alf_cr_aps_id) The value should be equal to 1.

[0721] b) In one example, it is required that when chromaArrayType equals 0, aps_params_type equals SCALING_APS and The APSNAL unit equal to ph_scaling_list_aps_id The value should be equal to 0.

[0722] a. Alternatively, when chromaArrayType is greater than 0, aps_params_type should be equal to SCALING_APS and Equal to the APS NAL unit of ph_scaling_list_aps_id The value should be equal to 1.

[0723] c) In one example, it is required that when chromaArrayType equals 0, aps_params_type equals LMCS_APS and The APS NAL cell equal to ph_lmcs_list_aps_id The value should be equal to 0.

[0724] vii. Furthermore, constraints based on ChromaArrayType can be derived from PH or SH syntax elements, but are independent of whether an APS ID exists in the PH / SH.

[0725] a) In one example, it is required that when chromaArrayType equals 0, aps_params_type equals the APS NAL cell of SCALING_APS and / or ALF_APS and / or LMCS APS. The value should be equal to 0.

[0726] b) Alternatively, when chromaArrayType is greater than 0, aps_params_type is required to be equal to the APS NAL unit of SCALING_APS APS and / or ALF_APS and / or LMCS APS. The value should be equal to 1.

[0727] 2. Regarding signaling notification for deblocking control to address the second problem, one or more of the following methods are disclosed, for example, as in the second set of embodiments:

[0728] a. In one example, signaling informs N bits (e.g., N=2) of the deblocking mode indicator (e.g., named deblocking_filter_mode_idc).

[0729] i. In one example, the syntax element deblocking_filter_mode_idc is encoded and decoded by u(2).

[0730] a) Alternatively, the parsing process of deblocking_filter_mode_idc is an N (e.g., N=2) bit unsigned integer.

[0731] ii. In one example, the syntax element deblocking_filter_mode_idc is used for signaling notification in PPS.

[0732] iii. In one example, the syntax element deblocking_filter_mode_idc is used to specify the following four modes: a) Deblocking is completely disabled and not used for all slices; b) Deblocking is performed on all slices using a β value of 0 and a tC offset; c) Deblocking is performed on all slices using a β and a tC offset explicitly signaled in the PPS; d) Deblocking is further controlled at the picture or slice level.

[0733] b. The syntax flag ph / slice_deblocking_filter_used_flag is used in PH or SH signaling to specify whether deblocking should be used for the current image / slice.

[0734] c. The syntax flag ph / slice_deblocking_parameters_override_flag is used in the signaling notification in PH or SH to specify whether the β and tC offsets are overridden by the values ​​notified in the signaling notification in PH / SH.

[0735] i. In addition, when it does not exist, it is inferred that the value of slice_deblocking_parameters_override_flag is equal to 0.

[0736] d. In one example, the signaling notification in SPS can specify the syntax elements for deblocking control (e.g., enable flags, disable flags, control flags, deblocking mode indicator, deblocking filter beta / tc parameters, etc.).

[0737] i. In one example, one or more syntax elements can be signaled in the SPS to specify whether deblocking is enabled in a video unit (e.g., CLVS).

[0738] ii. Additionally, when deblocking is disabled in SPS, the syntax element in PPS / PH / SH for deblocking on / off control at the PPS / PH / SH level must be equal to the specific value that specifies deblocking is completely disabled and not used for all stripes.

[0739] iii. In one example, the presence flag of the deblocking filter control can be signaled in the SPS.

[0740] iv. For example, an N-bit (e.g., N=2) deblocking mode indicator (e.g., named deblocking_filter_mode_idc) can be signaled in the SPS.

[0741] v. For example, signaling can be used in SPS to notify beta / tc of block deblocking parameters.

[0742] vi. For example, whether to enable deblocking using the 0-value beta / tc deblocking parameter can depend on the SPS syntax element.

[0743] vii. For example, deblocking can be applied at the SPS / PPS / PH / SH level using the beta / tc deblocking parameters notified in SPS signaling.

[0744] viii. For example, deblocking can be applied at the SPS / PPS / PH / SH level, using the 0-value deblocking parameter notified in the SPS signaling notification.

[0745] 3. Regarding the inference of the PPS syntax element single_slice_per_subpic_flag used to solve the third problem, one or more of the following methods are disclosed:

[0746] a. In one example, when no_pic_partition_flag equals 1, it is inferred that single_slice_per_subpic_flag equals 1. For example, the semantics of single_slice_per_subpic_flag are changed as follows:

[0747] A value of 1 indicates that each sub-image consists of one and only one rectangular stripe. A value of 0 indicates that each sub-image can consist of one or more rectangular stripes. If [[does not exist]], it is inferred that the value of single_slice_per_subpic_flag is equal to [[0]].

[0748] 4. Regarding the image or stripe QP incremental signaling notification used to resolve the fourth issue, one or more of the following methods are disclosed:

[0749] a. In one example, signaling is always performed in PH or SH to notify the image or stripe-level chroma QP offset.

[0750] i. For example, if the video content contains chroma components (e.g., ChromaArrayType is not equal to 0), the image or slice-level chroma QP offset can always be signaled, without being conditional on the current flag of the signaling notification in PPS (e.g., pps_slice_chroma_qp_offsets_present_flag).

[0751] ii. Alternatively, if the video content contains chroma components (e.g., ChromaArrayType is not equal to 0), the slice_cb_qp_offset and slice_cr_qp_offset syntax elements can always be present in the associated slice header, regardless of whether PPS has a flag (e.g., pps_slice_chroma_qp_offsets_present_flag).

[0752] iii. Additionally, it is possible to specify the current flag (e.g., pps_slice_chroma_qp_offsets_present_flag) of the slice_cb_qp_offset and slice_cr_qp_offset syntax elements without signaling notification.

[0753] b. In one example, pps_cu_qp_delta_enabled_flag can be used to specify the presence of cu_qp_delta_abs and cu_qp_delta_sign_flag in both the transform unit syntax and the palette codec syntax, and the semantics of pps_cu_qp_delta_enabled_flag change as follows:

[0754] Equal to 1 specifies that the syntax elements ph_cu_qp_delta_subdiv_intra_slice and ph_cu_qp_delta_subdiv_inter_slice exist in the PH of the reference PPS, and cu_qp_delta_abs It can exist in the transformation unit syntax. In the middle, pps_cu_qp_delta_enabled_flag equal to 0 indicates that the ph_cu_qp_delta_subdiv_intra_slice and ph_cu_qp_delta_subdiv_inter_slice syntax elements do not exist in the PH of the reference PPS, and cu_qp_delta_abs Not present in the transformation unit syntax middle.

[0755] c. In one example, the brightness QP increment can be signaled in both PH and SH.

[0756] i. For example, a signaling notification for the presence of a brightness QP increment can be sent in PPS and / or PH and / or SH.

[0757] ii. For example, whether the brightness QP increment is signaled in PH / SH depends on the presence flag in PPS and / or PH / SH.

[0758] iii. For example, the values ​​of PH brightness QP increment and SH brightness QP increment can be cumulative values ​​and used to calculate brightness quantization parameters, such as SliceQp. Y .

[0759] d. In one example, the chroma QP offset can be signaled in both PH and SH.

[0760] i. For example, a chromaticity QP offset presence flag can be signaled in PPS and / or PH and / or SH.

[0761] ii. For example, whether signaling notification of chroma QP offset is included in PH / SH depends on the presence flag in PPS and / or PH / SH.

[0762] iii. For example, the values ​​of PH chromaticity QP offset and SH chromaticity QP offset can be accumulated values ​​and used to derive chromaticity quantification parameters for the Cb and Cr components.

[0763] 5. Regarding the chroma Qp mapping table, one or more of the following methods are disclosed:

[0764] a. In one example, during the derivation of the chroma QP table, the XOR operator should be performed between (delta_qp_in_val_minus1[i][j]+1) and delta_qp_diff_val[i][j], as in the third set of embodiments.

[0765] b. A flag is proposed to be included in sps_multiple_sets_of_chroma_qp_table_present_flag in SPS.

[0766] i. When sps_multiple_sets_of_chroma_qp_table_present_flag equals 0, only one set of chroma Qp mapping tables is allowed to be signaled.

[0767] ii. When sps_multiple_sets_of_chroma_qp_table_present_flag equals 1, signaling notifications are allowed for more than one set of chroma Qp maps.

[0768] c. For sequences without B / P stripes, signaling notifications of more than one set of chroma Qp mapping tables may be disallowed.

[0769] 6. Regarding the `sps_independent_subpics_flag` and `subpic` used to solve the sixth problem.

[0770] _treatment_as_pic_flag[i] exposes one or more of the following methods:

[0771] a. In one example, the existence of sps_independent_subpics_flag depends on whether the number of subpics is greater than 1.

[0772] i. For example, only when the number of sub-images is greater than 1 (e.g., if The sps_independent_subpics_flag flag is signaled.

[0773] ii. For example, when the number of sub-images is equal to 1 (e.g., if...) If the signaling notification for `sps_independent_subpics_flag` is not found, then the signaling notification for `sps_independent_subpics_flag` will be skipped.

[0774] b. Additionally, when sps_independent_subpics_flag does not exist, it is inferred that it is equal to a specific value (e.g., 0 or 1).

[0775] c. In one example, when subpic_treatment_as_pic_flag[i] does not exist, it is inferred to be equal to a specific value (e.g., 0 or 1).

[0776] d. In one example, if subpic_treatment_as_pic_flag[i] does not exist, it is inferred that it is equal to a specific value that enables (or can be used) surround motion compensation.

[0777] i. Furthermore, when subpic_treated_as_pic_flag[i] does not exist, it is inferred that it is equal to a specific value that enables (or allows) horizontal surround motion compensation.

[0778] e. In one example, the inferred value of subpic_treatment_as_pic_flag[i] may depend on whether the image consists of only one subpic; and / or whether the subpic has the same width as the image.

[0779] i. In one example, if the subpic has the same width as the picture, then subpic_treatment_as_pic_flag[i] can be inferred to be X (e.g., X = 0).

[0780] f. In one example, when sps_independent_subpics_flag does not exist, sps_independent_subpics_flag is inferred to be the reason why the value can depend on (multiple) other syntax elements or (multiple) variables.

[0781] i. For example, the inferred value may depend on whether subpic information exists (e.g., subpic_info_present_flag equals 0 or 1).

[0782] ii. For example, when subpic_info_present_flag is equal to 0 and sps_independent_subpics_flag does not exist, it is inferred to be equal to a specific value (e.g., 0 or 1).

[0783] iii. For example, when subpic_info_present_flag is equal to 1 and sps_independent_subpics_flag does not exist, it is inferred to be equal to a specific value (such as 0 or 1).

[0784] g. In one example, when subpic_treatment_as_pic_flag[i] does not exist, subpic_treatment_as_pic_flag[i] is inferred to be the reason why its value can depend on the presence of subpic information (e.g., subpic_info_present_flag) and / or the number of subpics in CLVS (e.g., sps_num_subpics_minus1) and / or sps_independent_subpics_flag.

[0785] i. In one example, when subpic_info_present_flag equals 0 and subpic_treatment_as_pic_flag[i] does not exist, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to a specific value (e.g., 0).

[0786] ii. In one example, when subpic_info_present_flag equals 1 and subpic_treatment_as_pic_flag[i] does not exist, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to a specific value (e.g., 1).

[0787] iii. In one example, when subpic_info_present_flag equals 1, and sps_num_subpics_minus1 equals 0, and subpic_treatment_as_pic_flag[i] does not exist, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to a specific value (e.g., 0 or 1).

[0788] iv. In one example, when subpic_info_present_flag equals 1, sps_num_subpics_minus1 is greater than 0, sps_independent_subpics_flag equals 1, and subpic_treatment_as_pic_flag[i] does not exist, the value of subpic_treatment_as_pic_flag[i] is inferred to be equal to a specific value (e.g., 0 or 1).

[0789] 7. How boundaries are padded or clipped during the inter-frame prediction process can depend on a combination of checks on the type of boundary, the indication of wraparound padding or clipping (e.g., pps_ref_wraparound_enabled_flag, sps_ref_wraparound_enabled_flag, etc.), and the indication of treating subpic boundaries as picture boundaries (e.g., subpic_treatment_as_pic_flag[i]).

[0790] a. For example, if the boundary is the image boundary, and the indication for wrap fill is true, wrap fill (or wrap clipping) can be applied without considering the indication that the sub-image boundary is considered the image boundary.

[0791] i. In one example, the boundary must be a vertical boundary.

[0792] b. For example, if both vertical boundaries are image boundaries, the wrap fill indicator is true, and wrap fill (or wrap clipping) can be applied without considering the indicator that the sub-image boundary is considered an image boundary.

[0793] c. In one example, the above wrap fill (or wrap clipping) can indicate horizontal wrap fill / clipping.

[0794] 8. In one example, different instructions for wrap padding or clipping can be provided for different sub-image signaling notifications.

[0795] 9. In one example, different offsets can be used for wrap padding or clipping for different sub-image signaling.

[0796] 10. In PH / SH, the variable X is used to indicate whether B stripes are allowed / used in an image / strip, and this variable can be derived in one of the following ways: a)(rpl_info_in_ph_flag&&num_ref_entries[0][RplsIdx[0]]>0&&num_ref_entries[1][RplsIdx[1]]>0); b)(rpl_info_in_ph_flag&&num_ref_entries[1][RplsIdx[1]) >0); c)(rpl_info_in_ph_flag&&num_ref_entries[1][RplsIdx[1]]>1); d)(rpl_info_in_ph_flag&&num_ref_entries[1][RplsIdx[1]]>0); e) NumRefIdxActive based on VVC text (e.g., NumRefIdxActive of List 1 is greater than K (e.g., K=0)); f) Number of allowed reference images based on List 1.

[0797] 1) Alternatively, the signaling notification and / or semantics and / or inference of one or more syntax elements in the signaling notification in PH can be modified based on variables.

[0798] i. In one example, one or more syntax elements are those syntax elements used to enable codec tools that require more than one prediction signal, such as bidirectional prediction or mixed intra-frame and inter-frame codecs, or predictions that utilize linear / non-linear weighted predictions from multiple prediction blocks.

[0799] ii. In one example, one or more syntax elements may include, but are not limited to:

[0800] a)ph_collocated_from_l0_flag

[0801] b)mvd_l1_zero_flag

[0802] c)ph_disable_bdof_flag

[0803] d)ph_disable_dmvr_flag

[0804] e)num_l1_weights

[0805] iii. In one example, one or more syntax elements may be signaled only if the variable indicates that the image can contain one or more B stripes. Otherwise, the signaling is skipped and the value of the syntax element is inferred.

[0806] a) Alternatively, whether signaling is used to notify one or more syntax elements may depend on the first syntax element in bullet points 1.1) and 2.1), for example (X is true or 1).

[0807] b) Only if (sps_bdof_pic_present_flag) The signaling will only notify ph_disable_bdof_flag when it is true.

[0808] c) Only if (sps_dmvr_pic_present_flag) The signaling will only notify ph_disable_dmvr_flag when the flag is true.

[0809] iv. In one example, when X equals 0 (or false), mvd_l1_zero_flag is not signaled and its value is inferred to be 1.

[0810] v. In one example, the inference of one or more syntactic elements depends on the value of the first syntactic element.

[0811] a) In one example, for ph_disable_bdof_flag, the following applies: --If sps_bdof_enabled_flag equals 1 Then it is inferred that the value of ph_disable_bdof_flag is equal to 0. -- Otherwise (sps_bdof_enabled_flag equals 0) ), thus inferring that the value of ph_disable_bdof_flag is equal to 1.

[0812] b) In one example, for ph_disable_dmvr_flag, the following applies:

[0813] --If sps_dmvr_enabled_flag equals 1 Therefore, it can be inferred that the value of ph_disable_dmvr_flag is equal to 0.

[0814] --Otherwise (sps_dmvr_enabled_flag equals 0) ), and it can be inferred that the value of ph_disable_dmvr_flag is equal to 1.

[0815] c) In one example, if ph_temporal_mvp_enabled_flag and rpl_info_in_ph_flag are both equal to 1 and X is equal to 0 (or false), then it is inferred that the value of ph_collocated_from_l0_flag is equal to 1.

[0816] d) In one example, when X equals 0 (or false), num_l1_weights is not signaled and its value is inferred to be 0. Therefore, the weighted prediction parameters of reference image list 1 are not signaled in the PH or SH of the image.

[0817] 11. A signaling notification indicating whether to segment an image into slices / strips / sub-images (e.g., in PPS) is provided. The number of CTUs in the image can be used as a condition. 1) In one example, if the number of CTUs in the image is equal to 1 (or less than 2), no signaling notification is given.

[0818] 2) Alternatively, the constraint is that if the number of CTUs in the image is equal to 1 (or less than 2), then It must be equal to 0.

[0819] 12. Regarding improving the syntax and semantics of deblocking to address the seventh problem, one or more of the following methods are disclosed, for example, as in the fourth embodiment:

[0820] a. Whether the deblocking filter is disabled (or enabled) for a reference PPS depends on both the deblocking syntax of the signaling notification in the PPS (e.g., pps_deblocking_filter_disabled_flag) and the deblocking syntax elements of the signaling notification at the picture or strip level.

[0821] i. In one example, pps_deblocking_filter_disabled_flag equal to 1 specifies that the deblocking filter operation is disabled for the reference PPS strip, unless otherwise indicated at the picture or strip level.

[0822] ii. In one example, pps_deblocking_filter_disabled_flag equal to 0 specifies that the deblocking filter operation is enabled for the reference PPS strip, unless otherwise indicated at the picture or strip level.

[0823] b. If it does not exist, infer that slice_deblocking_filter_override_flag is equal to 0.

[0824] c. When the deblocking filter in PPS is disabled and will be overridden in PH / SH, skip the signaling notification of the deblocking on / off control flag in PH / SH.

[0825] i. In one example, whether the deblocking on / off control flag (e.g., ph_deblocking_filter_disabled_flag) is signaled in the PH may depend on whether deblocking is disabled in the PPS (e.g., whether the value of pps_deblocking_filter_disabled_flag is equal to 1) and / or the override flag in the PH (e.g., whether the value of ph_deblocking_filter_override_flag is equal to 1).

[0826] a) For example, when pps_deblocking_filter_disabled_flag and ph_deblocking_filter_override_flag are equal to 1, the signaling notification of ph_deblocking_filter_disabled_flag can be skipped.

[0827] b) Alternatively, when deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag, and ph_deblocking_filter_override_flag are all equal to 1, the signaling notification for ph_deblocking_filter_disabled_flag can be skipped.

[0828] ii. Furthermore, when ph_deblocking_filter_disabled_flag is not present, it can be inferred that:

[0829] a) If deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag, and ph_deblocking_filter_override_flag are all equal to 1, then it is inferred that the value of ph_deblocking_filter_disabled_flag is equal to 0.

[0830] b) Otherwise, the value of ph_deblocking_filter_disabled_flag is inferred to be equal to pps_deblocking_filter_disabled_flag.

[0831] iii. Alternatively, if ph_deblocking_filter_disabled_flag does not exist, it can be inferred that:

[0832] a) If both pps_deblocking_filter_disabled_flag and ph_deblocking_filter_override_flag are equal to 1, then it is inferred that the value of ph_deblocking_filter_disabled_flag is equal to 0.

[0833] b) Otherwise, the value of ph_deblocking_filter_disabled_flag is inferred to be equal to pps_deblocking_filter_disabled_flag.

[0834] iv. In one example, whether the deblocking on / off control flag (e.g., slice_deblocking_filter_disabled_flag) is signaled in the SH may depend on whether deblocking is disabled in the PPS (e.g., whether the value of pps_deblocking_filter_disabled_flag is equal to 1) and / or whether the override flag is in the SH (e.g., whether slice_deblocking_filter_override_flag is equal to 1).

[0835] a) In one example, when deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag, and slice_deblocking_filter_override_flag are all equal to 1, the signaling notification for slice_deblocking_filter_disabled_flag can be skipped.

[0836] b) Alternatively, when pps_deblocking_filter_disabled_flag and slice_deblocking_filter_override_flag are equal to 1, the signaling notification for slice_deblocking_filter_disabled_flag can be skipped.

[0837] v. Furthermore, when slice_deblocking_filter_disabled_flag is not present, it can be inferred that:

[0838] a) If deblocking_filter_override_enabled_flag, pps_deblocking_filter_disabled_flag, and slice_deblocking_filter_override_flag are all equal to 1, then it is inferred that the value of slice_deblocking_filter_disabled_flag is equal to 0.

[0839] b) Otherwise, infer that the value of slice_deblocking_filter_disabled_flag is equal to pps_deblocking_filter_disabled_flag.

[0840] vi. Alternatively, if slice_deblocking_filter_disabled_flag does not exist, it can be inferred as follows:

[0841] a) If both pps_deblocking_filter_disabled_flag and slice_deblocking_filter_override_flag are equal to 1, then it is inferred that the value of slice_deblocking_filter_disabled_flag is equal to 0.

[0842] b) Otherwise, infer that the value of slice_deblocking_filter_disabled_flag is equal to pps_deblocking_filter_disabled_flag.

[0843] 13. It is recommended that cu_skip_flag be skipped when sps_ibc_enabled_flag is equal to 1 and the block size is not less than 64x64.

[0844] a. An example is shown in the fifth embodiment.

[0845] 6. Example Implementation

[0846]

[0847] 6.1. First set of embodiments

[0848] This is a set of examples of Project 1 summarized in Section 5 of the previous article.

[0849] Example of 6.1.1.1.ai

[0850] Specify the adaptation_parameter_set_id for the scaling list APS.

[0851] The TemporalId of an APS NAL cell whose aps_params_type is equal to SCALING_APS and whose adaptation_parameter_set_id is equal to ph_scaling_list_aps_id should be less than or equal to the TemporalId of the image associated with PH.

[0852]

[0853]

[0854] A value of 1 indicates that the chroma scaling list exists in `scaling_list_data()`. A value of 0 indicates that the chroma scaling list does not exist in `scaling_list_data()`. [[The requirement for bitstream consistency is that `scaling_list_chroma_present_flag` should be 0 when `ChromaArrayType` is 0, and should be 1 when `ChromaArrayType` is not 0.]]

[0855] Example of 6.1.2.1.a.ii

[0856] Specify the adaptation_parameter_set_id for the scaling list APS.

[0857] The TemporalId of an APS NAL cell whose aps_params_type is equal to SCALING_APS and whose adaptation_parameter_set_id is equal to ph_scaling_list_aps_id should be less than or equal to the TemporalId of the image associated with PH.

[0858] (Or, it can be expressed as follows:)

[0859]

[0860] A value of 1 indicates that the chroma scaling list exists in `scaling_list_data()`. A value of 0 indicates that the chroma scaling list does not exist in `scaling_list_data()`. [[The requirement for bitstream consistency is that `scaling_list_chroma_present_flag` should be 0 when `ChromaArrayType` is 0, and should be 1 when `ChromaArrayType` is not 0.]]

[0861] Example of 6.1.3.1.bi

[0862] Specifies the adaptation_parameter_set_id of the LMCS APS referenced by the stripe associated with PH.

[0863] The TemporalId of an APS NAL cell whose aps_params_type is equal to LMCS_APS and whose adaptation_parameter_set_id is equal to ph_lmcs_aps_id should be less than or equal to the TemporalId of the image associated with the PH.

[0864]

[0865] Example of 6.1.4.1.b.ii

[0866] Specifies the adaptation_parameter_set_id of the LMCS APS referenced by the stripe associated with PH.

[0867] The TemporalId of an APS NAL cell whose aps_params_type is equal to LMCS_APS and whose adaptation_parameter_set_id is equal to ph_lmcs_aps_id should be less than or equal to the TemporalId of the image associated with the PH.

[0868]

[0869] Example of 6.1.5.1.ci

[0870] The semantic changes of PH syntax elements are as follows:

[0871] [i] Specifies the adaptation_parameter_set_id of the i-th ALFAPS that is referenced for the luminance component of the strip associated with PH.

[0872] The value of alf_luma_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be equal to 1.

[0873] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the image associated with PH.

[0874]

[0875]

[0876] The semantic changes of SH syntax elements are as follows:

[0877]

[0878] [i] specifies the adaptation_parameter_set_id of the i-th ALF APS referenced by the luminance component of the strip. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_luma[i] does not exist, the value of slice_alf_aps_id_luma[i] is inferred to be equal to the value of ph_alf_aps_id_luma[i].

[0879] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the slice NAL cell for encoding and decoding.

[0880] The value of aps_params_type equals ALF_APS and the value of alf_luma_filter_signal_flag in the APS NAL cell equals slice_alf_aps_id_luma should be equal to 1.

[0881]

[0882]

[0883] Furthermore, the semantic changes of APS syntax elements in the ALF data syntax structure are as follows:

[0884]

[0885] A value of 1 indicates that the chroma filter is signaled. A value of 0 indicates that the chroma filter is not signaled. [[When ChromaArrayType equals 0, alf_chroma_filter_signal_flag should be 0.]]

[0886]

[0887] A value of 1 indicates that the cross-component filter for the Cb color component is signaled. A value of 0 indicates that the cross-component filter for the Cb color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cb_filter_signal_flag should be 0.]]

[0888] A value of 1 indicates that the cross-component filter for the Cr color component is signaled. A value of 0 indicates that the cross-component filter for the Cr color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cr_filter_signal_flag should be 0.]]

[0889] Example of 6.1.6.1.c.ii

[0890] The semantic changes of PH syntax elements are as follows:

[0891] [i] Specifies the adaptation_parameter_set_id of the i-th ALFAPS that is referenced for the luminance component of the strip associated with PH.

[0892] The value of alf_luma_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be equal to 1.

[0893] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the image associated with PH.

[0894]

[0895] A value of 0 indicates that the adaptive loop filter is not applied to the Cb and Cr color components. A value of 1 indicates that the adaptive loop filter is applied to the Cb color component. A value of 2 indicates that the adaptive loop filter is applied to the Cr color component. A value of 3 indicates that the adaptive loop filter is applied to both the Cb and Cr color components. When ph_alf_chroma_idc does not exist, it is inferred to be equal to 0.

[0896]

[0897] The semantic changes of SH syntax elements are as follows:

[0898]

[0899] [i] specifies the adaptation_parameter_set_id of the i-th ALF APS referenced by the luminance component of the strip. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_luma[i] does not exist, the value of slice_alf_aps_id_luma[i] is inferred to be equal to the value of ph_alf_aps_id_luma[i].

[0900] The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the slice NAL cell for encoding and decoding.

[0901] The value of alf_luma_filter_signal_flag for the APS NAL cell where aps_params_type equals ALF_APS and adaptation_parameter_set_id equals slice_alf_aps_id_luma[i] should be equal to 1.

[0902]

[0903]

[0904] Furthermore, the semantic changes of APS syntax elements in the ALF data syntax structure are as follows:

[0905]

[0906] A value of 1 indicates that the chroma filter is signaled. A value of 0 indicates that the chroma filter is not signaled. [[When ChromaArrayType equals 0, alf_chroma_filter_signal_flag should be 0.]]

[0907]

[0908] A value of 1 indicates that the cross-component filter for the Cb color component is signaled. A value of 0 indicates that the cross-component filter for the Cb color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cb_filter_signal_flag should be 0.]]

[0909] A value of 1 indicates that the cross-component filter for the Cr color component is signaled. A value of 0 indicates that the cross-component filter for the Cr color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cr_filter_signal_flag should be 0.]]

[0910] Example of 6.1.7.1.c.iii

[0911] The semantic changes of PH syntax elements are as follows:

[0912]

[0913] Specifies the adaptation_parameter_set_id of ALFAPS as the reference for the chromaticity components of the bands associated with pH.

[0914] The value of alf_chroma_filter_signal_flag in the APS NAL unit where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to ph_alf_aps_id_chroma should be equal to 1.

[0915]

[0916]

[0917] The adaptation_parameter_set_id of the ALF APS is used to reference the Cb color component of the band associated with PH.

[0918] The value of alf_cc_cb_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id should be equal to 1.

[0919]

[0920]

[0921] The adaptation_parameter_set_id of the ALF APS is used to reference the Cr color component of the band associated with pH.

[0922] The value of alf_cc_cr_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id should be equal to 1.

[0923]

[0924]

[0925] The semantic changes of SH syntax elements are as follows:

[0926]

[0927] The `adaptation_parameter_set_id` is the ALF APS referenced for the chroma components of the specified stripe. The `TemporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_alf_aps_id_chroma` should be less than or equal to the `TemporalId` of the NAL unit of the codec stripe. When `slice_alf_enabled_flag` equals 1 and `slice_alf_aps_id_chroma` does not exist, the value of `slice_alf_aps_id_chroma` is inferred to be equal to the value of `ph_alf_aps_id_chroma`.

[0928] The value of alf_chroma_filter_signal_flag in the APS NAL cell where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to slice_alf_aps_id_chroma should be equal to 1.

[0929]

[0930]

[0931] The adaptation_parameter_set_id is referenced by the Cb color component of the specified stripe.

[0932] The TemporalId of the APS NAL unit whose aps_params_type equals ALF_APS and whose adaptation_parameter_set_id equals slice_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the codec slice NAL unit. When slice_cc_alf_cb_enabled_flag equals 1 and slice_cc_alf_cb_aps_id does not exist, the value of slice_cc_alf_cb_aps_id is inferred to be equal to the value of ph_cc_alf_cb_aps_id.

[0933] The value of alf_cc_cb_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cb_aps_id should be equal to 1.

[0934]

[0935]

[0936] The `adaptation_parameter_set_id` referenced by the Cr color component of the specified stripe. The `TemporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_cc_alf_cr_aps_id` should be less than or equal to the `TemporalId` of the NAL unit of the codec stripe. When `slice_cc_alf_cr_enabled_flag` equals 1 and `slice_cc_alf_cr_aps_id` does not exist, the value of `slice_cc_alf_cr_aps_id` is inferred to be equal to the value of `ph_cc_alf_cr_aps_id`.

[0937] The value of alf_cc_cr_filter_signal_flag for an APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cr_aps_id should be equal to 1.

[0938]

[0939]

[0940] Furthermore, the semantic changes of APS syntax elements are as follows:

[0941]

[0942] A value of 1 indicates that the chroma filter is signaled. A value of 0 indicates that the chroma filter is not signaled. [[When ChromaArrayType equals 0, alf_chroma_filter_signal_flag should be 0.]]

[0943]

[0944] A value of 1 indicates that the cross-component filter for the Cb color component is signaled. A value of 0 indicates that the cross-component filter for the Cb color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cb_filter_signal_flag should be 0.]]

[0945] A value of 1 indicates that the cross-component filter for the Cr color component is signaled. A value of 0 indicates that the cross-component filter for the Cr color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cr_filter_signal_flag should be 0.]]

[0946]

[0947] Example of 6.1.8.1.di

[0948] The semantic changes of APS syntax elements in the ALF data syntax structure are as follows:

[0949]

[0950] A value of 1 indicates that the chroma filter is signaled. A value of 0 indicates that the chroma filter is not signaled. [[When ChromaArrayType equals 0, alf_chroma_filter_signal_flag should be 0.]]

[0951]

[0952] A value of 1 indicates that the cross-component filter for the Cb color component is signaled. A value of 0 indicates that the cross-component filter for the Cb color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cb_filter_signal_flag should be 0.]]

[0953] A value of 1 indicates that the cross-component filter for the Cr color component is signaled. A value of 0 indicates that the cross-component filter for the Cr color component is not signaled. [[When ChromaArrayType is 0, alf_cc_cr_filter_signal_flag should be 0.]]

[0954]

[0955] Example of 6.1.9.1.d.ii

[0956] The semantic changes of APS syntax elements in the SCALING LIST data syntax structure are as follows:

[0957]

[0958] A value of 1 indicates that the chroma scaling list exists in `scaling_list_data()`. A value of 0 indicates that the chroma scaling list does not exist in `scaling_list_data()`. The bitstream consistency requirement is that `scaling_list_chroma_present_flag` should be 0 when `ChromaArrayType` is 0, and 1 when `ChromaArrayType` is not 0.

[0959] …]]

[0960] Examples of 6.1.10.1.e and 1.f

[0961] Specify the adaptation_parameter_set_id for the scaling list APS.

[0962]

[0963] The TemporalId of the APS NAL cell whose `aps_params_type` is equal to `SCALING_APS` and whose `adaptation_parameter_set_id` is equal to `ph_scaling_list_aps_id` should be less than or equal to the TemporalId of the image associated with the PH.

[0964]

[0965] Specifies the adaptation_parameter_set_id of the LMCS APS referenced by the stripe associated with PH.

[0966]

[0967] The TemporalId of an APS NAL cell whose `aps_params_type` is equal to `LMCS_APS` and whose `adaptation_parameter_set_id` is equal to `ph_lmcs_aps_id` should be less than or equal to the TemporalId of the image associated with the PH.

[0968]

[0969] [i] Specifies the adaptation_parameter_set_id of the i-th ALF APS that is a reference for the luminance component of the PH-related strip.

[0970]

[0971] The value of alf_luma_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be equal to 1.

[0972] --The TemporalId of the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the image associated with PH.

[0973] A value of 0 indicates that the adaptive loop filter is not applied to the Cb and Cr color components. A value of 1 indicates that the adaptive loop filter is applied to the Cb color component. A value of 2 indicates that the adaptive loop filter is applied to the Cr color component. A value of 3 indicates that the adaptive loop filter is applied to both the Cb and Cr color components. When ph_alf_chroma_idc does not exist, it is inferred to be equal to 0.

[0974] Specifies the adaptation_parameter_set_id of ALFAPS as the reference for the chromaticity components of the bands associated with pH.

[0975]

[0976] The value of alf_chroma_filter_signal_flag in the APS NAL unit where aps_params_type equals ALF_APS and adaptation_parameter_set_id equals ph_alf_aps_id_chroma should be equal to 1.

[0977] The TemporalId of the APS NAL cell whose `aps_params_type` is equal to `ALF_APS` and `adaptation_parameter_set_id` is equal to `ph_alf_aps_id_chroma` should be less than or equal to the TemporalId of the image associated with the PH.

[0978]

[0979] The adaptation_parameter_set_id of the ALF APS is used to reference the Cb color component of the band associated with PH.

[0980]

[0981] The value of alf_cc_cb_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cb_aps_id should be equal to 1.

[0982] The TemporalId of the APS NAL cell whose `aps_params_type` is equal to `ALF_APS` and whose `adaptation_parameter_set_id` is equal to `ph_cc_alf_cb_aps_id` should be less than or equal to the TemporalId of the PH-related image.

[0983]

[0984] The adaptation_parameter_set_id of the ALF APS is used to reference the Cr color component of the band associated with pH.

[0985]

[0986] The value of alf_cc_cr_filter_signal_flag for APS NAL cells whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to ph_cc_alf_cr_aps_id should be equal to 1.

[0987] The TemporalId of the APS NAL cell whose `aps_params_type` is equal to `ALF_APS` and whose `adaptation_parameter_set_id` is equal to `ph_cc_alf_cr_aps_id` should be less than or equal to the TemporalId of the PH-related image.

[0988]

[0989] [i] specifies the adaptation_parameter_set_id of the i-th ALF APS referenced by the luminance component of the strip. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_luma[i] does not exist, the value of slice_alf_aps_id_luma[i] is inferred to be equal to the value of ph_alf_aps_id_luma[i].

[0990]

[0991] --aps_params_type equals ALF_APS and adaptation_parameter_set_id equals slice_alf_aps_id_luma[i] The TemporalId of the APS NAL cell should be less than or equal to the TemporalId of the slice NAL cell for encoding and decoding.

[0992] The value of alf_luma_filter_signal_flag should be equal to 1 for the APS NAL cell of slice_alf_aps_id_luma[i] where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to slice_alf_aps_id_luma[i].

[0993]

[0994] The ALFAPS adaptation_parameter_set_id is used to reference the chromaticity components of the specified stripe. When slice_alf_enabled_flag equals 1 and slice_alf_aps_id_chroma does not exist, the value of slice_alf_aps_id_chroma is inferred to be equal to the value of ph_alf_aps_id_chroma.

[0995]

[0996] The TemporalId of the APS NAL unit whose `aps_params_type` is equal to `ALF_APS` and `adaptation_parameter_set_id` is equal to `slice_alf_aps_id_chroma` should be less than or equal to the TemporalId of the codec stripe NAL unit.

[0997] The value of alf_chroma_filter_signal_flag in the APS NAL cell where aps_params_type is equal to ALF_APS and adaptation_parameter_set_id is equal to slice_alf_aps_id_chroma should be equal to 1.

[0998]

[0999] The adaptation_parameter_set_id is referenced by the Cb color component of the specified stripe.

[1000] When slice_cc_alf_cb_enabled_flag equals 1 and slice_cc_alf_cb_aps_id does not exist, the value of slice_cc_alf_cb_aps_id is inferred to be equal to the value of ph_cc_alf_cb_aps_id.

[1001]

[1002] The TemporalId of the APS NAL unit whose `aps_params_type` is equal to `ALF_APS` and `adaptation_parameter_set_id` is equal to `slice_cc_alf_cb_aps_id` should be less than or equal to the TemporalId of the codec strip NAL unit.

[1003] The value of alf_cc_cb_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cb_aps_id should be equal to 1.

[1004]

[1005] The `adaptation_parameter_set_id` is referenced by the Cr color component of the specified stripe. When `slice_cc_alf_cr_enabled_flag` is equal to 1 and `slice_cc_alf_cr_aps_id` does not exist, the value of `slice_cc_alf_cr_aps_id` is inferred to be equal to the value of `ph_cc_alf_cr_aps_id`.

[1006]

[1007] The TemporalId of the APS NAL unit whose `aps_params_type` is equal to `ALF_APS` and `adaptation_parameter_set_id` is equal to `slice_cc_alf_cr_aps_id` should be less than or equal to the TemporalId of the codec strip NAL unit.

[1008] The value of alf_cc_cr_filter_signal_flag for the APS NAL cell whose aps_params_type is equal to ALF_APS and whose adaptation_parameter_set_id is equal to slice_cc_alf_cr_aps_id should be equal to 1.

[1009]

[1010] Example 6.1.11.1.g

[1011] The semantic changes of SH syntax elements are as follows:

[1012] The `adaptation_parameter_set_id` of the ALF APS referenced by the chroma components of the specified stripe. The `TemporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_alf_aps_id_chroma` should be less than or equal to the `TemporalId` of the NAL unit of the codec stripe. This is true when `slice_alf_enabled_flag` equals 1 and `slice_alf_aps_id_chroma` does not exist. At that time, the value of slice_alf_aps_id_chroma is inferred to be equal to the value of ph_alf_aps_id_chroma.

[1013]

[1014] The adaptation_parameter_set_id is referenced by the Cb color component of the specified stripe.

[1015] The TemporalId of the APS NAL unit where aps_params_type equals ALF_APS and adaptation_parameter_set_id equals slice_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the codec slice NAL unit. This applies when slice_cc_alf_cb_enabled_flag equals 1 and slice_cc_alf_cb_aps_id does not exist. At that time, the value of slice_cc_alf_cb_aps_id is inferred to be equal to the value of ph_cc_alf_cb_aps_id.

[1016]

[1017] The `adaptation_parameter_set_id` referenced by the Cr color component of the specified stripe. The `TemporalId` of the APS NAL unit where `aps_params_type` equals `ALF_APS` and `adaptation_parameter_set_id` equals `slice_cc_alf_cr_aps_id` should be less than or equal to the `TemporalId` of the NAL unit in the codec stripe. This applies when `slice_cc_alf_cr_enabled_flag` equals 1 and `slice_cc_alf_cr_aps_id` does not exist. At that time, the value of slice_cc_alf_cr_aps_id is inferred to be equal to the value of ph_cc_alf_cr_aps_id.

[1018]

[1019] 6.2. Second set of embodiments

[1020] This is a set of examples of Project 2 (from 2.a to 2.c) summarized in Section 5 of the previous article. The syntax structure pic_parameter_set_rbsp() is changed as follows:

[1021] ...

[1023]

[1024]

[1025] A value of 1 indicates that the deblocking filter control syntax element exists in PPS. A value of 0 indicates that the deblocking filter control syntax element does not exist in PPS.

[1026] A value of 1 indicates that either `ph_deblocking_filter_override_flag` exists in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` exists in the slice header of the reference PPS. A value of 0 indicates that either `ph_deblocking_filter_override_flag` does not exist in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` does not exist in the slice header of the reference PPS. When it does not exist, the value of `deblocking_filter_override_enabled_flag` is inferred to be 0.

[1027] A value of 1 indicates that the deblocking filter operation does not apply to slices referencing PPSs where the `slice_deblocking_filter_disabled_flag` does not exist. A value of 0 indicates that the deblocking filter operation applies to slices referencing PPSs where the `slice_deblocking_filter_disabled_flag` does not exist. When it does not exist, the value of `pps_deblocking_filter_disabled_flag` is inferred to be 0.

[1028] A value of 1 indicates that the deblocking filter information exists within the PH syntax structure, but not in the stripe header of a PPS that does not contain a PH syntax structure. A value of 0 indicates that the deblocking filter information does not exist within the PH syntax structure, but may exist in the stripe header of a PPS that does not contain a PH syntax structure. [[When it does not exist, the value of dbf_info_in_ph_flag is inferred to be 0.]] ...

[1030] Furthermore, the syntax structure of picture_header_structure() has been changed as follows:

[1031]

[1032] ...

[1034]

[1035] A value of 1 indicates that the deblocking parameter exists in the PH. A value of 0 indicates that the deblocking parameter does not exist in the PH. When it does not exist, the value of ph_deblocking_filter_override_flag is inferred to be 0.

[1036] [[ A value of 1 indicates that the deblocking filter operation does not apply to slices associated with pH. A value of 0 indicates that the deblocking filter operation applies to slices associated with pH. When ph_deblocking_filter_disabled_flag does not exist, it is inferred to be equal to pps_deblocking_filter_disabled_flag. ...

[1038] Furthermore, the syntax structure of slice_header() has been changed as follows:

[1039] ...

[1041]

[1042] An equality of 1 indicates that the deblocking parameter exists in the slice header. `slice_deblocking_[[filter]]` A `_override_flag` value of 0 indicates that the deblocking parameter does not exist in the slice header. When it does not exist, the value of `slice_deblocking_filter_override_flag` is inferred to be equal to `[[ph_deblocking_filter_override_flag]]`.

[1043] [[ A value of 1 indicates that the deblocking filter operation should not be applied to the current slice. A value of 0 indicates that the deblocking filter operation should be applied to the current slice. When `slice_deblocking_filter_disabled_flag` does not exist, it is inferred to be equal to `ph_deblocking_filter_disabled_flag`. ...

[1045] Furthermore, the decoding process of the deblocking filtering process has been changed as follows:

[1046] 8.8.3 Deblocking Filtering Process

[1047] 8.8.3.1 Overview

[1048] The deblocking filtering process is applied to all encoded and transformed sub-block edges and transform block edges of the image, except for the following types of edges:

[1049] --The edge at the boundary of the image,

[1050] --with subpicIdx and loop_filter_across_subpic_enabled_

[1051] The edges where the subpicks with flag[subpicIdx] equal to 0 coincide with the boundaries of the subpicks.

[1052] --The edge that coincides with the virtual boundary of the image when VirtualBoundariesPresentFlag is equal to 1.

[1053] --Edges that coincide with tile boundaries when loop_filter_across_tiles_enabled_flag equals 0

[1054] --The edge that coincides with the slice boundary when loop_filter_across_slices_enabled_flag equals 0

[1055] --with slice_deblocking_filter_ [[disabled]]_flag equals [[1]] The edge where the upper or left boundary of the strip coincides.

[1056] --slice_deblocking_filter_ [[disabled]]_flag equals [[1]] The edge within the strip,

[1057] --Edges of the 4×4 sample grid that do not correspond to the brightness component

[1058] --Edges that do not correspond to the boundaries of the 8×8 sample grid for chromaticity components

[1059] The edges within the luminance components on both sides of the edge where --intra_bdpcm_luma_flag equals 1.

[1060] The edges within the chroma components on both sides of the edge where --intra_bdpcm_chroma_flag equals 1.

[1061] --The edge of a chromatic sub-block that is not an edge of a correlated transform unit.

[1062] Edge type (vertical or horizontal) is represented by the variable edgeType as specified in Table 42.

[1063] Table 42 – Names associated with edgeType

[1064] When the current slice_deblocking_filter_ [[disabled]]_flag equals [[0]] The following applies:

[1065] -- Set the variable treeType to equal DUAL_TREE_LUMA.

[1066] --Vertical edges are filtered by calling a deblocking filtering procedure in one direction as specified in Clause 8.8.3.2, where the variable treeType and the reconstructed image before deblocking (i.e., the array recPicture) are used. L The image is a reconstructed image (i.e., an array recPicture) with the variable edgeType set to equal EDGE_VER as input and modified after deblocking. L ) as output.

[1067] -- Horizontal edges are filtered by calling a deblocking filtering procedure in one direction as specified in Clause 8.8.3.2, where the variable treeType and the reconstructed image modified after deblocking (i.e., the array recPicture) are used. L The image is taken as input, along with the variable edgeType set to equal EDGE_HOR, and the reconstructed image (i.e., the array recPicture) modified after deblocking. L ) as output.

[1068] --When ChromaArrayType is not equal to 0, the following applies:

[1069] -- Set the variable treeType to equal DUAL_TREE_CHROMA

[1070] --Vertical edges are filtered by calling a deblocking filtering procedure in one direction as specified in Clause 8.8.3.2, where the variable treeType and the reconstructed image before deblocking (i.e., the array recPicture) are used.Cb and recPicture Cr The image is taken as input, along with the variable edgeType set to equal EDGE_VER, and the reconstructed image (i.e., the array recPicture) after deblocking modification. Cb and recPicture Cr ) as output.

[1071] --By calling, as

[1072] Clause 8.8.3.2 specifies a one-way deblocking filtering process that filters horizontal edges, where the variable `treeType` and the reconstructed image modified after deblocking (i.e., the array `recPicture`) are used. Cb and recPicture Cr The input consists of the variable edgeType, set to equal EDGE_HOR, and the reconstructed image (i.e., the array recPicture) modified after deblocking. Cb and recPicture Cr ) as output.

[1073] 6.3. Third set of embodiments

[1074] The changes to bold and italic markers are based on JVET-Q2001-vE.

[1075] The i-th chroma QP mapping table ChromaQpTable[i] of i = 0..numQpTables-1 is derived as follows:

[1076]

[1077] When same_qp_table_for_chroma equals 1, ChromaQpTable[1][k] and ChromaQpTable[2][k] in the range of -QpBdOffset to 63 (inclusive) are set to equal ChromaQpTable[0][k].

[1078] The requirement for bitstream consistency is that the values ​​of qpInVal[i][j] and qpOutVal[i][j] should be in the range of -QpBdOffset to 63 (inclusive) for i in the range of 0 to numQpTables-1 (inclusive) and j in the range of 0 to num_points_in_qp_table_minus1[i]+1 (inclusive).

[1079] 6.4. Fourth Embodiment

[1080] PPS semantics (based on text in JVET-R0159-v2, excluding SPS flags): ...

[1082] A value of 1 indicates that the PPS contains a deblocking filter control syntax element. A value of 0 indicates that the PPS does not contain a deblocking filter control syntax element.

[1083] A value of 1 indicates that either `ph_deblocking_filter_override_flag` exists in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` exists in the slice header of the reference PPS. A value of 0 indicates that either `ph_deblocking_filter_override_flag` does not exist in the PH of the reference PPS, or `slice_deblocking_filter_override_flag` does not exist in the slice header of the reference PPS. When it does not exist, the value of `deblocking_filter_override_enabled_flag` is inferred to be 0.

[1084] [[ A value of 1 indicates that the deblocking filter operation should not be applied to slices of PPS that reference the absence of `slice_deblocking_filter_disabled_flag` and `ph_deblockig_filter_disabled_flag`. A value of 0 indicates that the deblocking filter operation should be applied to slices of PPS that reference the absence of `slice_deblocking_filter_disabled_flag` and `ph_deblockig_filter_disabled_flag`. When these flags are absent, the value of `pps_deblocking_filter_disabled_flag` is inferred to be 0.

[1085] or

[1086] A value of 1 indicates that when `deblocking_filter_override_enabled_flag` is 0, the deblocking filter operation is not applied to the slices of the reference PPS. A value of 0 indicates that when `deblocking_filter_override_enabled_flag` is 0, the deblocking filter operation is applied to the slices of the reference PPS. If it does not exist, it is assumed that the value of `pps_deblocking_filter_disabled_flag` is 0.

[1087] ...

[1089] The syntax structure of picture_header_structure() has been changed as follows:

[1090]

[1091]

[1092] A value of 1 indicates that the deblocking parameter exists in the PH. A value of 0 indicates that the deblocking parameter does not exist in the PH. When it does not exist, the value of ph_deblocking_filter_override_flag is inferred to be 0.

[1093] A value of 1 indicates that the deblocking filter operation should not be applied to slices associated with [[where slice_deblocking_filter_disabled_flag does not exist [Note: When ph_deblocking_filter_disabled_flag exists, slice_deblocking_filter_disabled_flag will not exist in the SH of any slice of the image, therefore it is deleted. ]]]. A value of ph_deblocking_filter_disabled_flag equal to 0 indicates that the deblocking filter operation is applied to slices associated with [[where slice_deblocking_filter_disabled_flag does not exist [Note: When ph_deblocking_filter_disabled_flag exists, slice_deblocking_filter_disabled_flag will not exist in the SH of any slice of the image, therefore it is deleted. ]].

[1094] It is inferred when ph_deblocking_filter_disabled_flag does not exist.

[1095] It is equal to pps_deblocking_filter_disabled_flag. ...

[1097] Furthermore, the syntax structure of slice_header() has been changed as follows:

[1098]

[1099]

[1100]

[1101] A value of 1 indicates that the deblocking parameter exists in the slice header. A value of 0 indicates that the deblocking parameter does not exist in the slice header. When it does not exist, the value of slice_deblocking_filter_override_flag is inferred to be equal to [[ph_deblocking_filter_override_flag]].

[1102] A value of 1 indicates that the deblocking filter operation should not be applied to the current slice. A value of 0 indicates that the deblocking filter operation should be applied to the current slice.

[1103] When slice_deblocking_filter_disabled_flag is not present, it is inferred as follows:

[1104]

[1105] equal to ph

[1106] _deblocking_filter_disabled_flag.

[1107] 6.5. Fifth Embodiment

[1108] The changes highlighted in bold italics are based on JVET-P2001-vE.

[1109]

[1110]

[1111] Figure 1 This is a block diagram of an example video processing system 1900 that can implement the various techniques disclosed herein. Various implementations may include some or all of the components in system 1900. System 1900 may include an input 1902 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10-bit multi-component pixel values), or in a compressed or encoded format. Input 1902 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces (such as Ethernet, Passive Optical Networking (PON), etc.) and wireless interfaces (such as Wi-Fi or cellular interfaces).

[1112] System 1900 may include a codec component 1904 capable of implementing the various codec or encoding methods described in this document. Codec component 1904 can reduce the average bit rate of the video from input 1902 to the output of codec component 1904 to produce a codec representation of the video. Therefore, codec techniques are sometimes referred to as video compression or video transcoding techniques. The output of codec component 1904 can be stored or transmitted via connected communication, as represented by component 1906. The stored or communicated bitstream (or codec) representation of the video received at input 1902 can be used by component 1908 to generate pixel values ​​or displayable video that are sent to display interface 1910. The process of generating user-visible video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although some video processing operations are referred to as "codec" operations or tools, it should be understood that the codec tool or operation is used at the encoder, and the corresponding decoding tool or operation will be inverted by the decoder to retrieve the result of the codec.

[1113] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort. Examples of storage interfaces include SATA (Serial Advanced Technology Accessory), PCI, IDE, etc. The technologies described in this document can be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other equipment capable of digital data processing and / or video display.

[1114] Figure 2This is a block diagram of a video processing apparatus 3600. Apparatus 3600 can be used to implement one or more of the methods described herein. Apparatus 3600 can be implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. Apparatus 3600 may include one or more processors 3602, one or more memories 3604, and video processing hardware 3606. The processors(multiple) 3602 can be configured to implement one or more methods described herein. The memories(multiple) 3604 can be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 3606 can be used to implement some of the techniques described herein in hardware circuitry.

[1115] Figure 4 This is a block diagram illustrating an example video codec system 100 that can utilize the techniques disclosed herein.

[1116] like Figure 4 As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110, and the destination device 120 may be referred to as a video decoding device.

[1117] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[1118] Video source 112 may include sources such as video capture devices, interfaces for receiving video data from video content providers, and / or computer graphics systems that generate video data, or combinations of these sources. Video data may include one or more pictures. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a codec representation of the video data. The bitstream may include codec pictures and associated data. A codec picture is a codec representation of a picture. Associated data may include sequence parameter sets, picture parameter sets, and other syntax elements. I / O interface 116 includes a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be transmitted directly to destination device 120 via network 130a through I / O interface 116. Encoded video data may also be stored on storage medium / server 130b for access by destination device 120.

[1119] Destination device 120 may include I / O interface 126, video decoder 124 and display device 122.

[1120] I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may acquire encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120 or may be external to destination device 120 configured to connect to an external display device.

[1121] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as High Efficiency Video Codec (HEVC), Multi-Functional Video Codec (VVC), and other current and / or other standards.

[1122] Figure 5 This is a block diagram illustrating an example of a video encoder 200, which may be... Figure 4 The video encoder 114 in the system 100 shown in the figure.

[1123] The video encoder 200 can be configured to perform any or all of the techniques disclosed herein. Figure 5 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

[1124] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 (which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206), a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

[1125] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in IBC mode, where at least one reference picture is the picture in which the current video block is located.

[1126] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, can be highly integrated, but for interpretive purposes... Figure 5 The examples are shown separately.

[1127] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.

[1128] The mode selection unit 203 can, for example, select one of the intra-frame or inter-frame encoding / decoding modes based on the error result, and provide the obtained intra-frame or inter-frame encoded / decoded blocks to the residual generation unit 207 to generate residual block data and to the reconstruction unit 212 to reconstruct the encoded blocks for use as reference images. In some examples, the mode selection unit 203 can select a combined intra-frame and inter-frame prediction (CIIP) mode, where the prediction is based on the inter-frame prediction signal and the intra-frame prediction signal. The mode selection unit 203 can also select the resolution of the motion vector (e.g., sub-pixel or full-pixel precision) for the blocks in the inter-frame prediction case.

[1129] To perform inter-frame prediction for the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information of the image from buffer 213 (rather than the image associated with the current video block) and decoded samples.

[1130] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, for example, the different operations performed depend on whether the current video block is in an I-strip, a P-strip, or a B-strip.

[1131] In some examples, motion estimation unit 204 can perform unidirectional prediction of the current video block, and can search for a reference video block for the current video block in the reference images of list 0 or list 1. Motion estimation unit 204 can then generate a reference index indicating that the reference image in list 0 or list 1 contains the reference video block, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information of the current video block.

[1132] In other examples, motion estimation unit 204 can perform bidirectional prediction of the current video block. Motion estimation unit 204 can search for a reference video block for the current video block in the reference images of list 0 and can also search for another reference video block for the current video block in the reference images of list 1. Motion estimation unit 204 can then generate a reference index indicating that the reference images in list 0 or list 1 contain the reference video block, and a motion vector indicating the spatial displacement between the reference video block and the current video block. Motion estimation unit 204 can output the reference index and the motion vector of the current video block as the motion information of the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[1133] In some examples, the motion estimation unit 204 can output the complete set of motion information for the decoder's decoding process.

[1134] In some examples, motion estimation unit 204 may not output the complete set of motion information for the current video. Instead, motion estimation unit 204 may signal the motion information of the current video block by referencing the motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks.

[1135] In one example, the motion estimation unit 204 may indicate in the syntax structure associated with the current video block that the current video block has the same motion information value as another video block.

[1136] In another example, motion estimation unit 204 can identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicating video block. Video decoder 300 can use the motion vector of the indicating video block and the motion vector difference to determine the motion vector of the current video block.

[1137] As discussed above, the video encoder 200 can predictively signal motion vectors. Two examples of predictive signaling notification techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge pattern signaling notification.

[1138] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples from other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.

[1139] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) multiple predicted video blocks from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of the samples in the current video block.

[1140] In other examples, such as in skip mode, residual data for the current video block may not exist, and the residual generation unit 207 may not perform a subtraction operation.

[1141] The transform processing unit 208 can generate one or more transform coefficient video blocks of the current video block by applying one or more transforms to the residual video block associated with the current video block.

[1142] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 can quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values ​​associated with the current video block.

[1143] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block respectively to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted video blocks generated by the prediction unit 202 to produce a reconstructed video block associated with the current block for storage in the buffer 213.

[1144] After the video block is reconstructed in reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.

[1145] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream including the entropy encoded data.

[1146] Figure 6 This is a block diagram illustrating an example of a video decoder 300, which may be... Figure 4 The video decoder 114 in the system 100 shown in the figure.

[1147] The video decoder 300 can be configured to perform any or all of the techniques disclosed herein. Figure 6 In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

[1148] exist Figure 6 In the example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform operations related to the video encoder 200 ( Figure 5 The decoding process is the overall inversion of the encoding process described.

[1149] Entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). Entropy decoding unit 301 can decode the entropy-encoded video, and based on the entropy-encoded video data, motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference image list index, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and merge modes.

[1150] The motion compensation unit 302 can generate motion compensation blocks, possibly based on interpolation filters. The identifier of the interpolation filter to be used at sub-pixel precision can be included in the syntax element.

[1151] The motion compensation unit 302 can use the interpolation filter used by the video encoder 200 during the encoding of the video block to calculate the interpolation values ​​of a sub-integer number of pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 based on the received syntax information and use the interpolation filter to generate the prediction block.

[1152] The motion compensation unit 302 can use some syntactic information to determine: the size of the blocks used to encode (multiple) frames and / or (multiple) stripes of the encoded video sequence, segmentation information describing how each macroblock of the image of the encoded video sequence is segmented, a mode indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence.

[1153] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Inverse quantization unit 303 inverse quantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 303 applies an inverse transform.

[1154] The reconstruction unit 306 can sum the residual blocks using the corresponding prediction blocks generated by the motion compensation unit 202 or the intra-frame prediction unit 303 to form a decoded block. As desired, a deblocking filter can also be applied to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also produces the decoded video for presentation on the display device.

[1155] The following provides a list of preferred examples of implementation methods.

[1156] The first set of clauses shows example embodiments of the techniques discussed in the previous section. The following clauses illustrate example embodiments of the techniques discussed in the previous section (e.g., item 1).

[1157] 1. A video processing method (e.g., Figure 3 The method 3000 shown includes: performing a conversion between a video having one or more chroma components and a video codec representation (3002), the video including one or more video pictures including one or more stripes, wherein the codec representation conforms to a format rule, wherein the format rule specifies that a chroma array type field controls constraints on the conversion characteristics of the chroma used during the conversion.

[1158] 2. The method according to Clause 1, wherein the conversion feature includes constraints on fields indicating the existence of one or more scaling lists of one or more chromaticity components.

[1159] 3. The method according to Clause 1, wherein the conversion feature includes constraints on the values ​​of fields of an indicator codeword used for signaling a luminance mapping with chroma scaling.

[1160] 4. The method according to Clause 1, wherein the transformation characteristics include constraints on the values ​​of syntax elements describing the adaptive parameter set used during the transformation.

[1161] 5. The method according to Clause 1, wherein the format rules specify the use of the same semantics for one or more entries of an adaptive parameter set for a chroma array type field, the chroma array type field signaling notification 4:0:0 format or a separate color codec format.

[1162] 6. The method according to Clause 5, wherein one or more entries include adaptive loop filter parameters or scaling list parameters or a luminance map with chroma scaling parameters.

[1163] 7. The method according to Clauses 5-6, wherein the format rules further specify that the constraints on one or more entries of the adaptive parameter set depend on whether the identifier of the adaptive parameter set is included in the bitstream.

[1164] The following clauses show example implementations of the techniques discussed in the previous chapter (e.g., Item 2).

[1165] 8. A video processing method comprising: performing a conversion between a video comprising one or more video images and a codec representation of the video, the one or more video images comprising one or more video regions, wherein the codec representation conforms to a format rule specifying the inclusion of a deblocking mode indicator for the video regions, the deblocking mode indicator indicating the applicability of a deblocking filter to the video regions during the conversion.

[1166] 9. The method according to Clause 8, wherein the deblocking mode indicator is an N-bit field, where N is an integer greater than 1.

[1167] 10. The method according to any one of clauses 8-9, wherein the deblocking mode indicator for the video region is included in the picture parameter set.

[1168] 11. The method according to Clause 8, wherein the deblocking mode indicator corresponds to a flag included in the header of the video region that indicates the applicability of the deblocking filter to the video region.

[1169] 12. The method according to any one of Clauses 8-11, wherein the format rule specifies a flag in the deblocking mode indicator indicating whether the deblocking filter parameters of the signaling notification should override the default parameters.

[1170] 13. The method according to any one of Clauses 8-12, wherein the video region corresponds to a video picture or a video strip.

[1171] The following clauses show example implementations of the techniques discussed in the previous chapter (e.g., item 3).

[1172] 14. A video processing method, comprising: performing a conversion between a video comprising one or more video images and a codec representation of the video, the one or more video images comprising one or more video stripes and / or one or more video sub-images, wherein the codec representation conforms to a format rule specifying a flag indicating whether a single stripe mode per sub-image is considered enabled for the video image when image segmentation is disabled for the video image.

[1173] The following clauses show example implementations of the techniques discussed in the previous chapter (e.g., item 4).

[1174] 15. A video processing method, comprising: performing a conversion between a video comprising one or more video images and a codec representation of the video, the one or more video images comprising one or more stripes, wherein the codec representation conforms to a format rule specifying that a signaling notification of a picture or strip level color metric parameter offset is provided in a picture header or stripe header.

[1175] 16. The method described in Clause 15, wherein the format rules specify that the strip level colorimetric parameter offset be included in the strip header.

[1176] The following clauses show example implementations of the techniques discussed in the previous chapter (e.g., Item 5).

[1177] 17. A video processing method, comprising: performing a conversion between a video comprising one or more video images and a codec representation of the video, the one or more video images comprising one or more video strips, wherein the codec representation conforms to a format rule specifying a chroma quantization parameter (QP) table applicable to the conversion of video blocks of the video as an XOR operation between (delta_qp_in_val_minus1[i][j]+1) and delta_qp_diff_val[i][j], wherein delta_qp_in_val_minus1[i][j] specifies an incremental value for deriving the input coordinates of the j-th pivot point of the i-th chroma map, and delta_qp_diff_val[i][j] specifies an incremental value for deriving the output coordinates of the j-th pivot point of the i-th chroma QP table, wherein i and j are integers.

[1178] 18. The method according to any one of clauses 1 to 17, wherein the conversion includes encoding the video into a codec representation.

[1179] 19. The method according to any one of Clauses 1 to 17, wherein the conversion includes decoding the codec representation to generate pixel values ​​of the video.

[1180] 20. A video decoding apparatus comprising a processor configured to implement one or more of the methods described in clauses 1 to 19.

[1181] 21. A video encoding apparatus comprising a processor configured to implement one or more of the methods described in clauses 1 to 19.

[1182] 22. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement the method described in any one of clauses 1 to 19.

[1183] 23. A method, apparatus or system described in this document.

[1184] The second set of clauses shows example implementations of the techniques discussed in the previous chapter (e.g., item 1.h).

[1185] 1. A method for processing video data (e.g., such as...) Figure 7 The method 700 shown includes: performing a conversion between video and video bitstreams according to format rules 710, and wherein the format rules specify that if a picture or stripe references an adaptive parameter set, then information included in the picture header or stripe header is used to derive a constraint on the value of a first field in the adaptive parameter set based on a second field.

[1186] 2. The method according to Clause 1, wherein the second field indicates the chroma format identifier of the video.

[1187] 3. The method according to Clause 1 or 2, wherein the second field indicates the chromaticity sample relative to the luminance sample.

[1188] 4. The method according to Clause 1, wherein the second field indicates the presence of chroma components in the video.

[1189] 5. The method described in Clause 1, wherein the formatting rules further specify that the adaptive parameter set is determined by an index included in the image header or strip header.

[1190] 6. The method according to Clause 1, wherein the second field is a syntax element included in the sequence parameter set.

[1191] 7. The method according to Clause 1, wherein the second field is based on information included in the sequence parameter set.

[1192] 8. The method according to Clause 7, wherein the sequence parameter set is determined by an indication included in the picture parameter set, which is further determined by another indication included in the picture header or strip header.

[1193] 9. The method according to Clause 1, wherein the value is checked after parsing the adaptive parameter set and at least one of the image header or the strip header.

[1194] 10. The method according to Clause 1, wherein the first field corresponds to a chroma presence flag indicating the presence of a chroma-related syntax element.

[1195] 11. The method according to Clause 1, wherein the formatting rules specify syntax elements that specify whether chroma-related syntax elements are included in the adaptive parameter set syntax structure.

[1196] 12. The method according to Clause 1, wherein the first field corresponds to a chroma presence flag that indicates whether the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit includes chroma-related syntax elements.

[1197] 13. The method described in Clause 1, wherein the format rules further specify that the value of the first field is determined based on the value of the second field.

[1198] 14. The method according to Clause 13, wherein, in response to the value of the second field indicating that the chroma component is not included in the video, the value of the first field indicates that the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit does not include chroma-related syntax elements.

[1199] 15. The method according to Clause 13, wherein, in response to the value of the second field indicating that the chroma component is included in the video, the value of the first field indicates that the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit includes chroma-related syntax elements.

[1200] 16. The method described in Clause 1, wherein the formatting rules further specify that the value of the first field depends on the APS (Adaptive Parameter Set) identifier in the picture header or strip header.

[1201] 17. The method according to Clause 16, wherein the format rules specify that, if the second field has a specific value, the value of the first field of the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit is set to be equal to the information included in the picture header or strip header, and the APS NAL unit has an APS parameter type indicating the type of ALF (Adaptive Loop Filter) and an APS identifier.

[1202] 18. The method described in Clause 17, wherein the formatting rules specify the requirement that the value of the first field be set to equal the first specific value if the value of the second field is equal to the second specific value.

[1203] 19. The method according to Clause 18, wherein the first specific value and the second specific value are equal to 0.

[1204] 20. The method described in Clause 17, wherein the formatting rules specify the requirement that the value of the first field be set equal to the first specific value if the value of the second field is greater than the second specific value.

[1205] 21. The method according to Clause 20, wherein the first specific value is equal to 1 and the second specific value is equal to 0.

[1206] 22. The method according to Clause 16, wherein the format rules specify that, if the second field has a specific value, the value of the first field of the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit is set to be equal to the information included in the image header or strip header, and the APS NAL unit has an APS parameter type indicating the scaling type and an APS identifier.

[1207] 23. The method described in Clause 22, wherein the formatting rules specify the requirement that the value of the first field be set to equal the first specific value if the value of the second field is equal to the second specific value.

[1208] 24. The method according to Clause 23, wherein the first specific value and the second specific value are equal to 0.

[1209] 25. The method described in Clause 22, wherein the formatting rules specify the requirement that the value of the first field be set equal to the first specific value if the value of the second field is greater than the second specific value.

[1210] 26. The method described in accordance with Clause 25, wherein the first specific value is equal to 1 and the second specific value is equal to 0.

[1211] 27. The method according to Clause 16, wherein the format rules specify that, if the second field has a specific value, the value of the first field of the APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) unit is set to be equal to the information included in the picture header or strip header, and the APS NAL unit has an APS parameter type indicating the LMCS (Luminance Map with Chroma Scaling) type and an APS identifier.

[1212] 28. The method described in Clause 1, wherein the formatting rules further specify that the value of the first field is independent of the presence of an identifier for the adaptive parameter set in the image header or strip header.

[1213] 29. The method according to Clause 28, wherein the format rules further specify the requirement to set the value of the first field having an APS (Adaptive Parameter Set) NAL (Network Abstraction Layer) cell having an indication scaling type and / or ALF (Adaptive Loop Filter) type and / or LMCS (Luminance Map with Chroma Scaling) type when the second field has a specific value.

[1214] 30. The method described in Clause 29, wherein the formatting rules specify the requirement that the value of the first field be set to equal the first specific value if the value of the second field is equal to the second specific value.

[1215] 31. The method according to Clause 29, wherein the first specific value and the second specific value are equal to 0.

[1216] 32. The method described in Clause 29, wherein the formatting rules specify the requirement that the value of the first field be set equal to the first specific value if the value of the second field is greater than the second specific value.

[1217] 33. The method described in accordance with Clause 32, wherein the third specific value is equal to 1 and the second specific value is equal to 0.

[1218] 34. The method according to any one of clauses 1 to 33, wherein the conversion includes encoding the video into a bitstream.

[1219] 35. The method according to any one of clauses 1 to 33, wherein the conversion includes decoding video from the bitstream.

[1220] 36. The method according to clauses 1 to 33, wherein the conversion includes generating a bitstream from video, and the method further includes storing the bitstream in a non-transitory computer-readable recording medium.

[1221] 37. A video processing apparatus comprising a processor configured to implement the methods described in any one or more of clauses 1 to 36.

[1222] 38. A method for storing a bitstream of video, comprising the method of any one of clauses 1 to 36, and further comprising storing the bitstream to a non-transitory computer-readable recording medium.

[1223] 39. A computer-readable medium storing program code that, when executed, causes a processor to implement any one or more of the methods described in clauses 1 to 36.

[1224] 40. A computer-readable medium for storing a bit stream generated according to any of the above methods.

[1225] 41. A video processing apparatus for storing a bitstream representation, wherein the video processing apparatus is configured to implement the method described in any one or more of clauses 1 to 36.

[1226] The third set of clauses shows example implementations of the techniques discussed in the previous chapter (e.g., items 11-13).

[1227] 1. A method for video processing (e.g., such as...) Figure 8A The method 800 shown includes: performing a conversion between a video region of a video and a bitstream of a video according to format rules 802, wherein the format rules specify the applicability of a deblocking filter to a video region based on i) picture parameter set level and ii) picture level or stripe level syntax elements.

[1228] 2. According to the method of Clause 1, the video region is a strip.

[1229] 3. According to the method of Clause 1, wherein the format rules specify the applicability of the deblocking filter to stripes of a reference picture parameter set based on a first syntax element in the picture parameter set and a second syntax element at the picture level or strip level.

[1230] 4. According to the method of Clause 3, wherein the format rule specifies that the value of the first syntax element specifies whether the deblocking filter is applied to the strips of the reference picture parameter set, unless otherwise indicated at the picture level or the strip level.

[1231] 5. According to the method of Clause 4, wherein a value of 0 for the first syntax element indicates that the deblocking filter is enabled for the picture reference set, unless the picture or strip is covered by information from the rendered picture header or strip header.

[1232] 6. According to the method of Clause 4, wherein a value of 1 for the first syntax element indicates that the deblocking filter is disabled for the picture reference set, unless the picture or strip is covered by information from the rendered picture header or strip header.

[1233] 7. According to the method of Clause 1, wherein the format rules stipulate that, in the absence of a third syntax element indicating the presence of a deblocking parameter in the strip header, the value of the third syntax element is inferred to be equal to a specific value.

[1234] 8. According to the method of Clause 1, wherein the format rules specify whether to include a second syntax element depends on (1) whether the deblocking filter is disabled for a picture reference set and / or (2) whether there are deblocking parameters in the picture header or strip header indicating the permissibility of the deblocking behavior being overridden, and the second syntax element indicates the applicability of the deblocking filter at the picture level or strip level.

[1235] 9. According to the method of Clause 8, wherein the format rules specify whether a second syntax element is included in the picture header depends on (1) whether the deblocking filter is disabled for the picture reference picture parameter set and / or (2) the value of the deblocking overlay flag indicating the presence of deblocking parameters in the picture header.

[1236] 10. According to the method of Clause 9, wherein the format rules stipulate that, in the case that i) the deblocking filter flag indicates whether the deblocking filter is disabled for a picture of the reference picture parameter set, and ii) the deblocking overlay flag at the picture header level has a specific value, the second syntax element is omitted from the picture header.

[1237] 11. According to the method of Clause 9, wherein the format rules stipulate that the second syntax element is omitted from the picture header when i) the deblocking filter flag indicates whether the picture is a reference picture parameter set with the deblocking filter disabled; ii) the deblocking overlay flag is at the picture header level; and iii) the presence flag indicating the presence of the deblocking overlay flag has a specific value.

[1238] 12. According to the method of Clause 9, wherein the format rules stipulate that the value of the second syntax element is inferred if the second syntax element indicating the applicability of the deblocking filter is not present.

[1239] 13. According to the method of Clause 12, wherein the format rules stipulate that the value of the second syntax element indicating that the deblocking filter is enabled in the picture is inferred to be equal to a specific value in the following cases: i) the deblocking overlay flag at the PPS (Picture Parameter Set) level indicates that the stripe of the reference PPS is allowed to be overlaid by the deblocking operation; ii) the deblocking filter flag at the PPS level indicates that the deblocking filter is disabled for the picture of the reference Picture Parameter Set; and iii) the presence flag at the picture header level indicates that the deblocking operation will be overlaid at the picture header level; otherwise, the value of the second syntax element is inferred to be equal to the value of the deblocking filter flag at the PPS level.

[1240] 14. According to the method of Clause 12, wherein the format rules stipulate that the value of the second syntax element indicating that a deblocking filter is enabled in an image is inferred to be equal to a specific value in the following cases: i) the deblocking filter flag at the PPS (Picture Parameter Set) level indicates that the deblocking filter is disabled for an image referencing the Picture Parameter Set, and ii) the presence flag at the picture header level indicates that the deblocking operation will be overridden at the picture header level; otherwise, the value of the second syntax element is inferred to be equal to the value of the deblocking filter flag at the PPS level.

[1241] 15. According to the method of Clause 8, wherein the format rules specify whether a second syntax element is included in the strip header depending on (i) whether the deblocking filter is disabled for the picture of the reference picture parameter set and / or (2) the value of the deblocking overlay flag indicating the presence of deblocking parameters in the strip header.

[1242] 16. The method according to Clause 15, wherein the format rules specify that the second syntax element shall be omitted from the strip header in the following cases: i) the deblocking filter flag indicates whether the deblocking filter is disabled for the picture of the reference picture parameter set; ii) the deblocking overlay flag is at the strip header level; and iii) the presence flag indicating the presence of the deblocking overlay flag has a specific value.

[1243] 17. According to the method of Clause 15, wherein the format rules specify that the second syntax element is omitted from the strip header if i) the deblocking filter flag indicates whether the deblocking filter is disabled for a picture of the reference picture parameter set and ii) the deblocking overlay flag has a specific value.

[1244] 18. The method according to Clause 15, wherein the format rules specify that the value of the second syntax element is inferred if the second syntax indicating the applicability of the deblocking filter does not exist.

[1245] 19. According to the method of Clause 18, wherein the format rules stipulate that the value of the second syntax element indicating that a deblocking filter is enabled in a picture is inferred to be equal to a specific value in the following cases: i) the deblocking overlay flag at the PPS (Picture Parameter Set) level indicates that the stripe of the reference PPS is allowed to be overlaid by the deblocking operation; ii) the deblocking filter flag at the PPS level indicates whether the deblocking filter is disabled for the picture of the reference Picture Parameter Set; and iii) the presence flag at the stripe header level indicates that the deblocking operation will be overlaid at the stripe header level; otherwise, the value of the second syntax element is inferred to be equal to the value of the deblocking filter flag at the PPS level.

[1246] 20. According to the method of Clause 18, wherein the format rules stipulate that the value of the second syntax element indicating that a deblocking filter is enabled in an image is inferred to be equal to a specific value in the following cases: i) the deblocking filter flag at the PPS (Picture Parameter Set) level indicates that the deblocking filter is disabled for the image of the reference picture parameter set, and ii) the presence flag at the strip header level indicates that the deblocking operation will be overridden at the strip header level; otherwise, the value of the second syntax element is inferred to be equal to the value of the deblocking filter flag at the PPS level.

[1247] 21. A method for video processing (e.g., such as...) Figure 8B The method 810 shown includes: performing a conversion 812 between a current video block and a video bitstream according to format rules, and wherein the format rules specify omitting a first syntax element indicating whether the current video block is encoded or decoded in a skip mode based on at least one of a second syntax element indicating the applicability of a first prediction mode or the block size of the current video block, wherein the first prediction is derived from a block of sample values ​​of the same stripe of the current video block determined by the block vector.

[1248] 22. The method according to Clause 21, wherein the second syntax element is located in the sequence parameter set.

[1249] 23. The method according to Clause 21, wherein the first prediction mode is an intra-block copy prediction mode.

[1250] 24. According to the method of Clause 1, wherein the format rule stipulates that the first syntax element is omitted when the second syntax element indicates that the first prediction mode is enabled and the block size is not less than 64×64.

[1251] 25. A method for video processing (e.g., such as...) Figure 8C The method 820 shown includes: performing a conversion 822 between a video and a video bitstream comprising one or more images according to a format rule, wherein the format rule specifies the presence and / or value of an indication of whether the image is segmented into video regions based on the number of codec tree blocks in the image.

[1252] 26. According to the method of Clause 25, where the format rules stipulate that, in the case where the number of codec tree blocks in the picture is equal to 1 or less than 2, no indication is included.

[1253] 27. According to the method of Clause 25, wherein the format rules stipulate that when the number of codec tree blocks in the picture is equal to 1 or less than 2, the indication has a value equal to 0.

[1254] 28. The method according to any one of clauses 1 to 27, wherein the conversion includes encoding the video into a bitstream.

[1255] 29. The method according to any one of clauses 1 to 27, wherein the conversion includes decoding video from the bitstream.

[1256] 30. The method according to Articles 1 to 27, wherein the conversion includes generating a bitstream from video, and the method further includes storing the bitstream in a non-transitory computer-readable recording medium.

[1257] 31. A video processing apparatus comprising a processor configured to implement one or more of the methods of clauses 1 to 30.

[1258] 32. A method for storing a bitstream of video, including the method of any one of clauses 1 to 30, and further including storing the bitstream to a non-transitory computer-readable recording medium.

[1259] 33. A computer-readable medium storing program code, which, when executed, causes a processor to implement one or more of the methods described in clauses 1 to 30.

[1260] 34. A computer-readable medium for storing a bit stream generated according to any of the above methods.

[1261] 35. A video processing apparatus for storing a bitstream representation, wherein the video processing apparatus is configured to implement the method of any one or more of clauses 1 to 30.

[1262] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm can be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, and vice versa. As defined in the syntax, the bitstream representation of the current video block can, for example, correspond to bits that are co-occurring or scattered at different positions within the bitstream. For example, a macroblock can be encoded based on the error residuals from the transformation and encoding / decoding, and also using bits in the header and other fields in the bitstream. Furthermore, during the conversion, the decoder can, based on this determination, parse the bitstream knowing that some fields may or may not be present, as described in the solutions above. Similarly, the encoder can determine whether to include or exclude certain syntax fields and generate the codec representation accordingly by including or excluding syntax fields from the codec representation.

[1263] The disclosures and other schemes, examples, embodiments, modules, and functional operations described in this document can be implemented in digital electronic circuits or in computer software, firmware, or hardware, containing the structures disclosed in this document and their equivalents, or combinations thereof. The disclosed and other embodiments can be implemented as one or more computer program products encoded on a computer-readable medium, such as one or more computer program instruction modules, for execution by a data processing apparatus or for controlling the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a complex influencing machine-readable propagating signals, or combinations thereof. The term "data processing apparatus" encompasses all means, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or combinations thereof. Propagating signals are artificially generated signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device.

[1264] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including standalone programs or modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple co-located files (e.g., a file storing one or more modules, subroutines, or code portions). A computer program can be deployed to execute on one computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communications network.

[1265] The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by manipulating input data and generating outputs. The processes and logic flows can also be performed by special-purpose logic circuitry (e.g., field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs)), and the apparatus can be implemented as special-purpose logic circuitry (e.g., FPGAs or ASICs).

[1266] Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, and any one or more processors in any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magneto-optical, magneto-optical, or optical disc) for storing data, or operatively coupled to receive data from or transfer data to a mass storage device (e.g., magneto-optical, magneto-optical, or optical disc), or both. However, a computer does not necessarily need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into special-purpose logic circuitry.

[1267] While this patent document contains numerous details, these details should not be construed as limiting any subject matter or the scope of the claims, but rather as descriptions of features specific to particular embodiments of a particular art. In this patent document, certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in various suitable sub-combinations. Furthermore, although features may be described above as operating in certain combinations and even initially claimed in the same manner, in certain circumstances one or more features from the claimed combination may be removed from the combination, and the claimed combination may be for sub-combinations or variations thereof.

[1268] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring such operations to be performed in the specific order or sequence shown, or to perform all the operations shown, in order to achieve the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.

[1269] Only a few implementations and examples are described, and other implementations, enhancements and variations can be made based on what is described and shown in this patent document.

Claims

1. A video processing method, comprising: The conversion between the video region and the bitstream of the video is performed according to the format rules, and The format rules specify that the applicability of the deblocking filter to the video region is determined based on the following syntax elements: i) The first disabled control syntax element in the image parameter set, and ii) The second disable control syntax element in the image header or the third disable control syntax element in the strip header. Wherein, the value of the first disable control syntax element being equal to 0 indicates that: unless information present in the image header or the strip header respectively overrides the control of the deblocking filter for the image or strip, the deblocking filter is enabled for the image referencing the image parameter set. Wherein, the value of the first disable control syntax element being equal to 1 indicates that: unless information present in the image header or the strip header respectively covers the control of the deblocking filter for the image or strip, the deblocking filter is disabled for the image referencing the image parameter set. The formatting rules specify that whether a third disabling control syntax element is included in the strip header depends on (1) the value of the first disabling control syntax element and (2) the value of a fifth syntax element that indicates the permissibility of the deblocking parameter in the strip header. Wherein, a value of 0 for the second disable control syntax element indicates that the deblocking filter is enabled for the image, and a value of 1 for the second disable control syntax element indicates that the deblocking filter is disabled for the image. Wherein, when the value of the third disable control syntax element is equal to 0, it indicates that the deblocking filter is enabled for the stripe; when the value of the third disable control syntax element is equal to 1, it indicates that the deblocking filter is disabled for the stripe.

2. The method according to claim 1, wherein, The video region is a strip.

3. The method according to claim 1, wherein, The formatting rules specify whether the second disable control syntax element is included in the image header, depending on (1) the value of the first disable control syntax element and (2) the value of the fourth syntax element that indicates the permissibility of the deblocking parameter in the image header.

4. The method according to claim 3, wherein, The formatting rules stipulate that, in the case where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fourth syntax element is equal to 1, the second disable control syntax element is omitted from the image header, where the value of the fourth syntax element being equal to 1 indicates that the deblocking parameter is allowed in the image header. In cases where the value of the first disable control syntax element is equal to 0 and the value of the fourth syntax element is equal to 1, the second disable control syntax element is included in the image header.

5. The method according to claim 4, wherein, The formatting rules specify that when the second disabling control syntax element is not present: In cases where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fourth syntax element is equal to 1, the value of the second disable control syntax element is inferred to be equal to a specific value indicating that the deblocking filter is enabled in the image, and Otherwise, the value of the second disable control syntax element is inferred to be equal to the value of the first disable control syntax element.

6. The method according to claim 1, wherein, The formatting rules stipulate that, in cases where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fifth syntax element is equal to 1, the third disable control syntax element is omitted from the strip header, where the value of the fifth syntax element being equal to 1 indicates that the deblocking parameter is allowed in the strip header. The third disable control syntax element is included in the strip header if the value of the first disable control syntax element is equal to 0 and the value of the fifth syntax element is equal to 1.

7. The method according to claim 6, wherein, The formatting rules stipulate that when the third disable control syntax element is not present: if i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fifth syntax element is equal to 1, the value of the third disable control syntax element is inferred to be equal to a specific value indicating that the deblocking filter is enabled in the strip.

8. The method according to claim 1, wherein, The formatting rules stipulate that when the fifth syntax element is absent, the value of the fifth syntax element is inferred to be equal to 0, and the value of the fifth syntax element being equal to 0 indicates that the deblocking parameter does not exist in the strip header.

9. The method according to claim 1, wherein, The formatting rules specify that, in response to the image or the stripe reference adaptive parameter set (APS), the constraint on the value of the sixth syntax element in the APS is based on the chroma format index and APS identifier information, which are included in the image header PH or the stripe header SH. The sixth syntax element specifies whether chroma-related APS syntax elements are allowed in the APS, and the constraint is checked after parsing the APS and the PH or the SH.

10. The method according to claim 9, wherein, When the chroma format index is equal to 0, the value of the sixth syntax element of the APS network abstraction layer NAL unit, which has an APS parameter type equal to ALF_APS and an APS identifier equal to the APS identifier information included in the PH or the SH, is equal to 0. Wherein, when the chroma format index is equal to 0, the value of the sixth syntax element of the APS NAL unit having an APS parameter type equal to LMCS_APS and an APS identifier equal to the APS identifier information included in the PH is equal to 0; Wherein, when the chroma format index is equal to 0, the value of the sixth syntax element of the APS NAL unit having an APS parameter type equal to SCALING_APS and an APS identifier equal to the APS identifier information included in the PH is equal to 0; and The value of the sixth syntax element being equal to 0 indicates that the chroma-related APS syntax element is not allowed to exist in the APS.

11. The method according to claim 1, wherein, The conversion includes encoding the video into the bitstream.

12. The method according to claim 1, wherein, The conversion includes decoding the video from the bitstream.

13. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein, When the instruction is executed by the processor, it causes the processor to: The conversion between the video region and the bitstream of the video is performed according to the format rules, and The format rules specify that the applicability of the deblocking filter to the video region is determined based on the following syntax elements: i) The first disabled control syntax element in the image parameter set, and ii) The second disable control syntax element in the image header or the third disable control syntax element in the strip header. Wherein, the value of the first disable control syntax element being equal to 0 indicates that: unless information present in the image header or the strip header respectively overrides the control of the deblocking filter for the image or strip, the deblocking filter is enabled for the image referencing the image parameter set. Wherein, the value of the first disable control syntax element being equal to 1 indicates that: unless information present in the image header or the strip header respectively covers the control of the deblocking filter for the image or strip, the deblocking filter is disabled for the image referencing the image parameter set. The formatting rules specify that whether a third disabling control syntax element is included in the strip header depends on (1) the value of the first disabling control syntax element and (2) the value of a fifth syntax element that indicates the permissibility of the deblocking parameter in the strip header. Wherein, a value of 0 for the second disable control syntax element indicates that the deblocking filter is enabled for the image, and a value of 1 for the second disable control syntax element indicates that the deblocking filter is disabled for the image. Wherein, when the value of the third disable control syntax element is equal to 0, it indicates that the deblocking filter is enabled for the stripe; when the value of the third disable control syntax element is equal to 1, it indicates that the deblocking filter is disabled for the stripe.

14. The apparatus according to claim 13, wherein, The formatting rules specify whether the second disabling control syntax element is included in the image header, depending on (1) the value of the first disabling control syntax element and (2) the value of the fourth syntax element indicating the permissibility of the deblocking parameter in the image header. The formatting rules stipulate that, in the case where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fourth syntax element is equal to 1, the second disable control syntax element is omitted from the image header, where the value of the fourth syntax element being equal to 1 indicates that the deblocking parameter is allowed in the image header. In cases where the value of the first disable control syntax element is equal to 0 and the value of the fourth syntax element is equal to 1, the second disable control syntax element is included in the image header.

15. The apparatus according to claim 14, wherein, The formatting rules specify that when the second disabling control syntax element is not present: In cases where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fourth syntax element is equal to 1, the value of the second disable control syntax element is inferred to be equal to a specific value indicating that the deblocking filter is enabled in the image, and Otherwise, the value of the second disable control syntax element is inferred to be equal to the value of the first disable control syntax element.

16. The apparatus according to claim 13, wherein, The formatting rules stipulate that, in cases where i) the value of the first disable control syntax element is equal to 1 and ii) the value of the fifth syntax element is equal to 1, the third disable control syntax element is omitted from the strip header, where the value of the fifth syntax element being equal to 1 indicates that the deblocking parameter is allowed in the strip header. The third disable control syntax element is included in the strip header if the value of the first disable control syntax element is equal to 0 and the value of the fifth syntax element is equal to 1.

17. A non-transitory computer-readable storage medium for storing instructions, said instructions causing a processor to: The conversion between the video region and the bitstream of the video is performed according to the format rules, and in, The format rules specify that the applicability of the deblocking filter to the video region is determined based on the following syntax elements: i) The first disabled control syntax element in the image parameter set, and ii) The second disable control syntax element in the image header or the third disable control syntax element in the strip header. Wherein, the value of the first disable control syntax element being equal to 0 indicates that: unless information present in the image header or the strip header respectively overrides the control of the deblocking filter for the image or strip, the deblocking filter is enabled for the image referencing the image parameter set. Wherein, the value of the first disable control syntax element being equal to 1 indicates that: unless information present in the image header or the strip header respectively covers the control of the deblocking filter for the image or strip, the deblocking filter is disabled for the image referencing the image parameter set. The formatting rules specify that whether a third disabling control syntax element is included in the strip header depends on (1) the value of the first disabling control syntax element and (2) the value of a fifth syntax element that indicates the permissibility of the deblocking parameter in the strip header. Wherein, a value of 0 for the second disable control syntax element indicates that the deblocking filter is enabled for the image, and a value of 1 for the second disable control syntax element indicates that the deblocking filter is disabled for the image. Wherein, when the value of the third disable control syntax element is equal to 0, it indicates that the deblocking filter is enabled for the stripe; when the value of the third disable control syntax element is equal to 1, it indicates that the deblocking filter is disabled for the stripe.

18. A non-transitory computer-readable recording medium storing a bitstream of video, wherein a computer program is also stored thereon, When the computer program is executed by a processor, it implements the method of any one of claims 1-11 to generate the bit stream.

19. A method for storing a video bitstream, comprising: The bitstream of the video region of the video is generated according to the format rules, and The bitstream is stored in a non-transitory computer-readable recording medium. The format rules specify that the applicability of the deblocking filter to the video region is determined based on the following syntax elements: i) The first disabled control syntax element in the image parameter set, and ii) The second disable control syntax element in the image header or the third disable control syntax element in the strip header. Wherein, the value of the first disable control syntax element being equal to 0 indicates that: unless information present in the image header or the strip header respectively overrides the control of the deblocking filter for the image or strip, the deblocking filter is enabled for the image referencing the image parameter set. Wherein, the value of the first disable control syntax element being equal to 1 indicates that: unless information present in the image header or the strip header respectively covers the control of the deblocking filter for the image or strip, the deblocking filter is disabled for the image referencing the image parameter set. The formatting rules specify that whether a third disabling control syntax element is included in the strip header depends on (1) the value of the first disabling control syntax element and (2) the value of a fifth syntax element that indicates the permissibility of the deblocking parameter in the strip header. Wherein, a value of 0 for the second disable control syntax element indicates that the deblocking filter is enabled for the image, and a value of 1 for the second disable control syntax element indicates that the deblocking filter is disabled for the image. Wherein, when the value of the third disable control syntax element is equal to 0, it indicates that the deblocking filter is enabled for the stripe; when the value of the third disable control syntax element is equal to 1, it indicates that the deblocking filter is disabled for the stripe.