Video Processing Method, Device, and Medium
By optimizing the syntax element control in the picture parameter set (PPS) in the video processing method and the indication of the number of weights in the reference picture list of the current strip, the problem of inefficient weighted prediction signaling notification in the prior art is solved, and a more efficient video encoding and decoding process is realized.
Patent Information
- Application Number
- CN202180015696.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-19
- Filing Date
- 2021-01-26
- Publication Date
- 2025-06-13
- Estimated Expiration
- 2041-01-26
AI Technical Summary
Existing video codec standards have problems with inefficiency in handling weighted predictions, especially when weighted predictions are not applied, and still signal the relevant syntax elements, resulting in invalid data transmission and processing.
By introducing rules in the video processing method, it is possible to control whether the syntax elements in the picture parameter set (PPS) are included in the bitstream and to make specific instructions on the number of weights associated in the reference picture list of the current strip, thereby optimizing the signaling notification process of the weighted prediction.
Effectively reduces invalid signaling notifications, improves the efficiency of the video encoding and decoding process, and reduces bandwidth requirements and processing complexity.
Smart Images

Figure CN115136598B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application is the U.S. national phase entry of International Patent Application No. PCT / US2021 / 015011, filed on January 26, 2021, which claims the priority of U.S. Provisional Patent Application No. US 62 / 978,740, filed on February 19, 2020. The entire disclosure of the above applications is incorporated herein by reference as part of the disclosure of this application. Technical Field
[0003] This patent document relates to image and video encoding, decoding, and transcoding. Background Art
[0004] Digital video accounts for the largest 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 use 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 bitstream of a video to perform video encoding and decoding, including weighted prediction.
[0006] In one example aspect, a video processing method is disclosed. The method includes: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to a rule, where the rule specifies that the value of a first syntax element of a picture parameter set (PPS) and the value of a second syntax element of the PPS control whether a third syntax element is included in the bitstream, and where the first syntax element indicates whether weighted prediction is enabled for bi - directional slices (B - slices) of decoded pictures in the bitstream of the reference PPS, the second syntax element indicates whether information related to weighted prediction exists in the picture header or slice header of the decoded pictures of the reference PPS, and the third syntax element indicates the number of weights associated with reference picture list 1 of the current slice.
[0007] In another example aspect, another video processing method is disclosed. The method includes: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, where the bitstream conforms to format rules, and where the format rules specify that, based on the slice type of the current slice and the value of a first flag included in a picture parameter set (PPS) referred to by the current picture, the values of a plurality of syntax elements indicating whether prediction weights are included in the slice header of the current slice are inferred.
[0008] In yet another example aspect, another video processing method is disclosed. The method includes: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, where the bitstream conforms to format rules, and where the format rules specify that there is a common constraint information syntax structure that includes one or more constraint flags indicating a constraint for enabling explicit weighted prediction for slices of a picture set.
[0009] In yet another example aspect, another video processing method is disclosed. The method includes: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to a rule, where the rule specifies that one or more constraint flags indicating a constraint for enabling explicit weighted prediction for slices of a picture set are included in a parameter set or a header associated with the current slice.
[0010] In yet another example aspect, another video processing method is disclosed. The method includes: performing a conversion between a video including a current picture and a bitstream of the video, where the bitstream conforms to format rules, and where the format rules specify that an indication of whether the current picture excludes bi-directional slices (B-slices) is included in a picture header syntax structure associated with the current picture.
[0011] In yet another example aspect, a video encoder device is disclosed. The video encoder includes a processor configured to implement the above method.
[0012] In yet another example aspect, a video decoder device is disclosed. The video decoder includes a processor configured to implement the above method.
[0013] In yet another example aspect, a computer-readable medium having code stored thereon is disclosed. The code embodies one of the methods described herein in the form of processor-executable code.
[0014] These and other features will be described in this document. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is a block diagram showing an example video processing system in which various techniques disclosed herein can be implemented.
[0016] Figure 2 is a block diagram of an example hardware platform for video processing.
[0017] Figure 3 is a block diagram showing an example video codec system in which some embodiments of the present disclosure can be implemented.
[0018] Figure 4 is a block diagram showing an example of an encoder in which some embodiments of the present disclosure can be implemented.
[0019] Figure 5It is a block diagram showing an example of a decoder in which some embodiments of the present disclosure can be implemented.
[0020] Figures 6 to 10 A flowchart showing an example method of video processing. Detailed Description
[0021] In this document, chapter titles are used for easy understanding, and the applicability of the technologies and embodiments disclosed in each chapter is not limited only to that chapter. In addition, in some descriptions, H.266 technical terms are used only for easy understanding and not to limit the scope of the disclosed technologies. Therefore, the technologies described herein are also applicable to other video codec protocols and designs.
[0022] 1. Introduction
[0023] This document relates to video codec technology. Specifically, regarding the design of PH and SH syntax in video coding and decoding. This concept can be applied alone or in various combinations to any video coding and decoding standard or non-standard video codec that supports multi-layer video coding and decoding, such as the multi-functional video coding (VVC) being developed.
[0024] 2. Abbreviations
[0025] APS Adaptive Parameter Set
[0026] AU Access Unit
[0027] AUD Access Unit Delimiter
[0028] AVC Advanced Video Coding
[0029] CLVS Coded Layer Video Sequence
[0030] CPB Coded Picture Buffer
[0031] CRA Completely Random Access
[0032] CTU Coding Tree Unit
[0033] CVS Coded Video Sequence
[0034] DPB Decoded Picture Buffer
[0035] DPS Decoding Parameter Set
[0036] EOB End of Bitstream
[0037] EOS End of Sequence
[0038] GDR Gradual Decoding Refresh
[0039] HEVC High Efficiency Video Coding
[0040] HRD Hypothetical Reference Decoder
[0041] IDR Instantaneous Decoding Refresh
[0042] JEM Joint Exploration Model
[0043] MCTS Motion Constraint Tile Set
[0044] NAL Network Abstraction Layer
[0045] OLS Output Layer Set
[0046] PH Picture Header
[0047] PPS Picture Parameter Set
[0048] PTL Profile, Tier and Level
[0049] PU Picture Unit
[0050] RBSP Raw Byte Sequence Payload
[0051] SEI Supplemental Enhancement Information
[0052] SH Slice Header
[0053] SPS Sequence Parameter Set
[0054] SVC Scalable Video Coding
[0055] VCL Video Coding Layer
[0056] VPS Video Parameter Set
[0057] VTM VVC Test Model
[0058] VUI Video Usability Information
[0059] VVC Versatile Video Coding
[0060] 3. Preliminary Discussion
[0061] Video coding and decoding standards have mainly evolved through the well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, ISO / IEC developed MPEG-1 and MPEG-4 Visual, and the two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Coding (AVC) standard, and the H.265 / HEVC standard. Starting from H.262, video coding and decoding standards are based on a hybrid video coding and decoding structure, where temporal prediction plus transform coding is used. To explore future video coding and decoding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and incorporated them into a reference software called the Joint Exploration Model (JEM). JVET meetings are held quarterly simultaneously. The goal of the new coding and decoding standard is to reduce the bit rate by 50% compared to HEVC. The new video coding and decoding standard was officially named Versatile Video Coding (VVC) at the JVET meeting in April 2018, and the first version of the VVC Test Model (VTM) was released at that time. Due to the continuous efforts in VVC standardization, new coding and decoding technologies have been incorporated into the VVC standard at each JVET meeting. The working draft of VVC and the test model VTM are updated after each meeting. The VVC project now aims to be technically completed (FDIS) at the meeting in July 2020.
[0062] 3.1. PH Syntax and Semantics
[0063] In the latest VVC draft text, the PH syntax and semantics are as follows:
[0064]
[0065] The PH RBSP contains a PH syntax structure, namely picture_header_structure().
[0066]
[0067]
[0068]
[0069]
[0070]
[0071] The PH syntax structure contains information common to all slices of the coded picture associated with the PH syntax structure.
[0072] A gdr_or_irap_pic_flag equal to 1 specifies that the current picture is a GDR or IRAP picture. A gdr_or_irap_pic_flag equal to 0 specifies that the current picture may or may not be a GDR or IRAP picture.
[0073] A gdr_pic_flag equal to 1 specifies that the picture associated with PH is a GDR picture. A gdr_pic_flag equal to 0 specifies that the picture associated with PH is not a GDR picture. When not present, the value of gdr_pic_flag is inferred to be equal to 0. When gdr_enabled_flag is equal to 0, the value of gdr_pic_flag shall be equal to 0.
[0074] A ph_inter_slice_allowed_flag equal to 0 specifies that all coded slices of the picture have a slice_type equal to 2. A ph_inter_slice_allowed_flag equal to 1 specifies that there may or may not be one or more coded slices in the picture with a slice_type equal to 0 or 1.
[0075] A ph_intra_slice_allowed_flag equal to 0 specifies that all coded slices of the picture have a slice_type equal to 0 or 1. A ph_intra_slice_allowed_flag equal to 1 specifies that there may or may not be one or more coded slices in the picture with a slice_type equal to 2. When not present, the value of ph_intra_slice_allowed_flag is inferred to be equal to 1.
[0076] Note 1 – For bitstreams that should undergo sub-picture based bitstream merging without changing the PH NAL unit, the encoder is expected to set the values of ph_inter_slice_allowed_flag and ph_intra_slice_allowed_flag equal to 1.
[0077] A non_reference_picture_flag equal to 1 specifies that the picture associated with PH is never used as a reference picture. A non_reference_picture_flag equal to 0 specifies that the picture associated with PH may or may not be used as a reference picture.
[0078] The value of ph_pic_parameter_set_id specifies the pps_pic_parameter_set_id value of the PPS being used. The value of ph_pic_parameter_set_id shall be in the range of 0 to 63 (inclusive of 0 and 63).
[0079] The bitstream conformance requirement is that the value of the PH's TemporalId shall be greater than or equal to the value of the TemporalId of the PPS with a pps_pic_parameter_set_id equal to ph_pic_parameter_set_id.
[0080] ph_pic_order_cnt_lsb specifies the picture order count of the current picture 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 shall be in the range of 0 to MaxPicOrderCntLsb - 1 (inclusive of 0 and MaxPicOrderCntLsb - 1).
[0081] The no_output_of_prior_pics_flag affects the output of the previously decoded pictures in the DPB after decoding a CLVSS picture that is not the first picture in the bitstream as specified in Annex C.
[0082] recovery_poc_cnt specifies the recovery point of the decoded pictures in output order. If the current picture is a GDR picture associated with PH and there is a picture picA in the CLVS with a PicOrderCntVal equal to the value of the PicOrderCntVal of the current GDR picture plus recovery_poc_cnt and that is after the current GDR picture in decoding order, then picture picA is called a recovery point picture. Otherwise, the first picture in output order with a PicOrderCntVal greater than the value of the PicOrderCntVal of the current picture plus recovery_poc_cnt is called a recovery point picture. In decoding order, the recovery point picture shall not be before the current GDR picture. The value of recovery_poc_cnt shall be in the range of 0 to MaxPicOrderCntLsb - 1 (inclusive of 0 and MaxPicOrderCntLsb - 1).
[0083] When the current picture is a GDR picture, the variable RpPicOrderCntVal is derived as follows:
[0084] RpPicOrderCntVal = PicOrderCntVal + recovery_poc_cnt (82)
[0085] Note 2 – When gdr_enabled_flag is equal to 1 and the PicOrderCntVal of the current picture is greater than or equal to the RpPicOrderCntVal of the associated GDR picture, the current decoded picture and subsequent decoded pictures in the output order exactly match the corresponding pictures generated by starting the decoding process from the previous IRAP picture (when present) that is in the decoding order before the associated GDR picture.
[0086] ph_extra_bit[i] can be equal to 1 or 0. A decoder compliant with this version of the specification shall ignore the value of ph_extra_bit[i]. Its value does not affect the profile specified in this version of the specification for which the decoder is compliant.
[0087] ph_poc_msb_present_flag being equal to 1 specifies that the syntax element poc_msb_val is present in ph. ph_poc_msb_present_flag being equal to 0 specifies that the syntax element poc_msb_val is not present in ph. When vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 0 and there is a picture in the current AU in the reference layer of the current layer, the value of ph_poc_msb_present_flag shall be equal to 0.
[0088] poc_msb_val specifies the POC MSB value of the current picture. The syntax element poc_msb_val has a length of poc_msb_len_minus1 + 1 bits.
[0089] ph_alf_enabled_flag being equal to 1 specifies that the adaptive loop filter is enabled for all slices associated with PH and can be applied to the Y, Cb, or Cr color components in the slices. ph_alf_enabled_flag being equal to 0 specifies that the adaptive loop filter can be disabled for one, more, or all slices associated with PH. When not present, ph_alf_enabled_flag is inferred to be equal to 0.
[0090] ph_num_alf_aps_ids_luma specifies the number of ALF APSs referenced by the slices associated with PH.
[0091] ph_alf_aps_id_luma[i] specifies the adaptation_parameter_set_id of the i-th ALF APS for the luma component reference of the slice associated with PH.
[0092] The value of alf_luma_filter_signal_flag of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_alf_aps_id_luma[i] shall be equal to 1.
[0093] The TemporalId of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_alf_aps_id_luma[i] shall be less than or equal to the TemporalId of the picture associated with PH.
[0094] ph_alf_chroma_idc equal to 0 specifies that the adaptive loop filter is not applied to the Cb and Cr color components. ph_alf_chroma_idc equal to 1 specifies that the adaptive loop filter is applied to the Cb color component. ph_alf_chroma_idc equal to 2 specifies that the adaptive loop filter is applied to the Cr color component. ph_alf_chroma_idc equal to 3 specifies that the adaptive loop filter is applied to the Cb and Cr color components. When ph_alf_chroma_idc does not exist, it is inferred to be equal to 0.
[0095] ph_alf_aps_id_chroma specifies the adaptation_parameter_set_id of the ALF APS for the chroma component reference of the slice associated with PH.
[0096] The value of alf_chroma_filter_signal_flag of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_alf_aps_id_chroma shall be equal to 1.
[0097] The TemporalId of an APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_alf_aps_id_chroma should be less than or equal to the TemporalId of the picture associated with the PH.
[0098] ph_cc_alf_cb_enabled_flag being equal to 1 specifies that the cross-component filter for the Cb color component is enabled for all slices associated with the PH and can be applied to the Cb color component in the slices. ph_cc_alf_cb_enabled_flag being equal to 0 specifies that the cross-component filter for the Cb color component can be disabled for one, more than one, or all slices associated with the PH. When absent, ph_cc_alf_cb_enabled_flag is inferred to be equal to 0.
[0099] ph_cc_alf_cb_aps_id specifies the adaptation_parameter_set_id of the ALF APS referred to by the Cb color component of the slices associated with the PH.
[0100] The value of alf_cc_cb_filter_signal_flag of an APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_cc_alf_cb_aps_id should be equal to 1.
[0101] The TemporalId of an APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the picture associated with the PH.
[0102] ph_cc_alf_cr_enabled_flag being equal to 1 specifies that the cross-component filter for the Cr color component is enabled for all slices associated with the PH and can be applied to the Cr color component in the slices. ph_cc_alf_cr_enabled_flag being equal to 0 specifies that the cross-component filter for the Cr color component can be disabled for one, more than one, or all slices associated with the PH. When absent, ph_cc_alf_cr_enabled_flag is inferred to be equal to 0.
[0103] The ph_cc_alf_cr_aps_id specifies the adaptation_parameter_set_id of the ALF APS that references the Cr color component of the slice associated with PH.
[0104] The value of the alf_cc_cr_filter_signal_flag of an APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_cc_alf_cr_aps_id shall be equal to 1.
[0105] The TemporalId of an APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to ph_cc_alf_cr_aps_id shall be less than or equal to the TemporalId of the picture associated with PH.
[0106] The ph_lmcs_enabled_flag equal to 1 specifies that luminance mapping and chroma scaling are enabled for all slices associated with PH. The ph_lmcs_enabled_flag equal to 0 specifies that luminance mapping and chroma scaling are disabled for one, more than one, or all slices associated with PH. When not present, the value of the ph_lmcs_enabled_flag is inferred to be equal to 0.
[0107] The ph_lmcs_aps_id specifies the adaptation_parameter_set_id of the LMCS APS that is referenced by the slice associated with PH. The TemporalId of an APS NAL unit with aps_params_type equal to LMCS_APS and adaptation_parameter_set_id equal to ph_lmcs_aps_id shall be less than or equal to the TemporalId of the picture associated with PH.
[0108] The ph_chroma_residual_scale_flag equal to 1 specifies that chroma residual scaling is enabled for all slices associated with PH. The ph_chroma_residual_scale_flag equal to 0 specifies that chroma residual scaling can be disabled for one, more than one, or all slices associated with PH. When the ph_chroma_residual_scale_flag is not present, it is inferred to be equal to 0.
[0109] The ph_scaling_list_present_flag being equal to 1 specifies that the scaling list data for the slice associated with PH is derived based on the scaling list data contained in the reference scaling list APS. The ph_scaling_list_present_flag being equal to 0 specifies that the scaling list data for the slice associated with PH is set to be equal to 16. When not present, the value of ph_scaling_list_present_flag is inferred to be equal to 0.
[0110] The ph_scaling_list_aps_id specifies the adaptation_parameter_set_id of the scaling list APS. The TemporalId of the APS NAL unit with an aps_params_type equal to SCALING_APS and an adaptation_parameter_set_id equal to ph_scaling_list_aps_id should be less than or equal to the TemporalId of the picture associated with PH.
[0111] The ph_virtual_boundaries_present_flag being equal to 1 specifies that information on virtual boundaries is signaled in PH. The ph_virtual_boundaries_present_flag being equal to 0 specifies that information on virtual boundaries is not signaled in PH. When one or more virtual boundaries are signaled in PH, loop filtering operations are disabled across the virtual boundaries in the picture. Loop filtering operations include deblocking filter, sample adaptive offset filter, and adaptive loop filter operations. When not present, the value of ph_virtual_boundaries_present_flag is inferred to be equal to 0.
[0112] The requirement for bitstream conformance is that when the subpic_info_present_flag is equal to 1, the value of ph_virtual_boundaries_present_flag should be equal to 0.
[0113] The variable VirtualBoundariesPresentFlag is derived as follows:
[0114]
[0115] ph_num_ver_virtual_boundaries specifies the number of the ph_virtual_boundaries_pos_x[i] syntax elements present in the PH. When ph_num_ver_virtual_boundaries is absent, it is inferred to be equal to 0.
[0116] The variable NumVerVirtualBoundaries is derived as follows:
[0117]
[0118] 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 from 1 to Ceil(pic_width_in_luma_samples÷8) - 1 (inclusive of 1 and Ceil(pic_width_in_luma_samples÷8) - 1).
[0119] The list VirtualBoundariesPosX[i] (where i ranges from 0 to NumVerVirtualBoundaries - 1 (inclusive of 0 and NumVerVirtualBoundaries - 1)) specifying the positions of the vertical virtual boundaries in units of luminance samples is derived as follows:
[0120]
[0121]
[0122] The distance between any two vertical virtual boundaries should be greater than or equal to CtbSizeY luminance samples.
[0123] ph_num_hor_virtual_boundaries specifies the number of the ph_virtual_boundaries_pos_y[i] syntax elements present in the PH. When ph_num_hor_virtual_boundaries is absent, it is inferred to be equal to 0.
[0124] The parameter NumHorVirtualBoundaries is derived as follows:
[0125]
[0126] When sps_virtual_boundaries_enabled_flag is equal to 1 and ph_virtual_boundaries_present_flag is equal to 1, the sum of ph_num_ver_virtual_boundaries and ph_num_hor_virtual_boundaries shall be greater than 0.
[0127] 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] shall be in the range from 1 to Ceil(pic_height_in_luma_samples÷8)-1 (including 1 and Ceil(pic_height_in_luma_samples÷8)-1).
[0128] The list VirtualBoundariesPosY[i] (where i ranges from 0 to NumHorVirtualBoundaries-1, inclusive) that specifies the positions of the horizontal virtual boundaries, in units of luminance samples, is derived as follows:
[0129]
[0130] The distance between any two horizontal virtual boundaries shall be greater than or equal to CtbSizeY luminance samples.
[0131] pic_output_flag affects the decoded picture output and removal process as specified in Annex C. When pic_output_flag is not present, it is inferred to be equal to 1.
[0132] partition_constraints_override_flag being equal to 1 specifies that partition constraint parameters are present in PH. partition_constraints_override_flag being equal to 0 specifies that partition constraint parameters are not present in PH. When not present, the value of partition_constraints_override_flag is inferred to be equal to 0.
[0133] ph_log2_diff_min_qt_min_cb_intra_slice_luma specifies the difference between the minimum size in log2 of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU and the minimum size in log2 of the luma samples in a luma CU in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_log2_diff_min_qt_min_cb_intra_slice_luma shall be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY, inclusive of 0 and CtbLog2SizeY - MinCbLog2SizeY. When not present, 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.
[0134] ph_max_mtt_hierarchy_depth_intra_slice_luma specifies the maximum hierarchy depth of the coding units resulting from the multi-type tree partitioning of the quadtree leaves in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_max_mtt_hierarchy_depth_intra_slice_luma shall be in the range from 0 to 2 * (CtbLog2SizeY - MinCbLog2SizeY), inclusive of 0 and 2 * (CtbLog2SizeY - MinCbLog2SizeY). When not present, 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.
[0135] ph_log2_diff_max_bt_min_qt_intra_slice_luma specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples in a luma coding block that can be partitioned using binary partitioning and the minimum size (width or height) of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_log2_diff_max_bt_min_qt_intra_slice_luma shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraY, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeIntraY. When not present, 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.
[0136] ph_log2_diff_max_tt_min_qt_intra_slice_luma specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples in a luma coding block that can be partitioned using ternary partitioning and the minimum size (width or height) of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_log2_diff_max_tt_min_qt_intra_slice_luma shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraY, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeIntraY. 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.
[0137] ph_log2_diff_min_qt_min_cb_intra_slice_chroma specifies the difference between the minimum size in base-2 logarithm of the luma samples in the chroma leaf blocks resulting from the quadtree partitioning of the chroma CTUs with treeType equal to DUAL_TREE_CHROMA and the minimum size in base-2 logarithm of the decoded block size of the luma samples in the chroma CUs with treeType equal to DUAL_TREE_CHROMA in the slice where the slice_type associated with PH is equal to 2(I). The value of ph_log2_diff_min_qt_min_cb_intra_slice_chroma shall be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY (including 0 and CtbLog2SizeY - MinCbLog2SizeY). When absent, 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.
[0138] ph_max_mtt_hierarchy_depth_intra_slice_chroma specifies the maximum hierarchical depth of the chroma coded units resulting from the multi-type tree partitioning of the chroma quadtree leaves with treeType equal to DUAL_TREE_CHROMA in the slice where the slice_type associated with PH is equal to 2(I). The value of ph_max_mtt_hierarchy_depth_intra_slice_chroma shall be in the range from 0 to 2 * (CtbLog2SizeY - MinCbLog2SizeY) (including 0 and 2 * (CtbLog2SizeY - MinCbLog2SizeY)). When absent, 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.
[0139] ph_log2_diff_max_bt_min_qt_intra_slice_chroma specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples of a chroma coding block that can be partitioned using binary partitioning and the minimum size (width or height) of the luma samples of a chroma leaf block resulting from the quadtree partitioning of a chroma CTU with treeType equal to DUAL_TREE_CHROMA in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_log2_diff_max_bt_min_qt_intra_slice_chroma shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraC, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeIntraC. When not present, 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.
[0140] ph_log2_diff_max_tt_min_qt_intra_slice_chroma specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples of a chroma coding block that can be partitioned using ternary partitioning and the minimum size (width or height) of the luma samples of a chroma leaf block resulting from the quadtree partitioning of a chroma CTU with treeType equal to DUAL_TREE_CHROMA in a slice where the slice_type associated with PH is equal to 2 (I). The value of ph_log2_diff_max_tt_min_qt_intra_slice_chroma shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeIntraC, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeIntraC. When not present, 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.
[0141] ph_cu_qp_delta_subdiv_intra_slice specifies the maximum cbSubdiv value for coding units in an intra slice that transmits cu_qp_delta_abs and cu_qp_delta_sign_flag. The value of ph_cu_qp_delta_subdiv_intra_slice shall be in the range of 0 to 2*(CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma), inclusive of 0 and 2*(CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma).
[0142] When not present, the value of ph_cu_qp_delta_subdiv_intra_slice is inferred to be equal to 0.
[0143] ph_cu_chroma_qp_offset_subdiv_intra_slice specifies the maximum cbSubdiv value for coding units in an intra slice that transmits cu_chroma_qp_offset_flag. The value of ph_cu_chroma_qp_offset_subdiv_intra_slice shall be in the range of 0 to 2*(CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma), inclusive of 0 and 2*(CtbLog2SizeY - MinQtLog2SizeIntraY + ph_max_mtt_hierarchy_depth_intra_slice_luma).
[0144] When not present, the value of ph_cu_chroma_qp_offset_subdiv_intra_slice is inferred to be equal to 0.
[0145] ph_log2_diff_min_qt_min_cb_inter_slice specifies the difference between the minimum size in terms of base-2 logarithm of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU and the minimum size in terms of base-2 logarithm of the luma coding block size of the luma CUs in a slice where the slice_type associated with the PH is equal to 0 (B) or 1 (P). The value of ph_log2_diff_min_qt_min_cb_inter_slice shall be in the range from 0 to CtbLog2SizeY - MinCbLog2SizeY, inclusive of 0 and CtbLog2SizeY - MinCbLog2SizeY. When not present, 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.
[0146] ph_max_mtt_hierarchy_depth_inter_slice specifies the maximum hierarchy depth of the coding units resulting from the multi-type tree partitioning of the quadtree leaves in a slice where the slice_type associated with the PH is equal to 0 (B) or 1 (P). The value of ph_max_mtt_hierarchy_depth_inter_slice shall be in the range from 0 to 2 * (CtbLog2SizeY - MinCbLog2SizeY), inclusive of 0 and 2 * (CtbLog2SizeY - MinCbLog2SizeY). When not present, the value of ph_max_mtt_hierarchy_depth_inter_slice is inferred to be equal to sps_max_mtt_hierarchy_depth_inter_slice.
[0147] ph_log2_diff_max_bt_min_qt_inter_slice specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples in a luma coding block that can be partitioned using binary partitioning and the minimum size (width or height) of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU in a slice where the slice_type associated with PH is equal to 0 (B) or 1 (P). The value of ph_log2_diff_max_bt_min_qt_inter_slice shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeInterY, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeInterY. When not present, 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.
[0148] ph_log2_diff_max_tt_min_qt_inter_slice specifies the difference between the base-2 logarithm of the maximum size (width or height) of the luma samples in a luma coding block that can be partitioned using ternary partitioning and the minimum size (width or height) of the luma samples in a luma leaf block resulting from the quadtree partitioning of a CTU in a slice where the slice_type associated with PH is equal to 0 (B) or 1 (P). The value of ph_log2_diff_max_tt_min_qt_inter_slice shall be in the range from 0 to CtbLog2SizeY - MinQtLog2SizeInterY, inclusive of 0 and CtbLog2SizeY - MinQtLog2SizeInterY. When not present, 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.
[0149] ph_cu_qp_delta_subdiv_inter_slice specifies the maximum cbSubdiv value of the coding / decoding units in the inter-slice of the strip that transmits cu_qp_delta_abs and cu_qp_delta_sign_flag. The value of ph_cu_qp_delta_subdiv_inter_slice shall be in the range of 0 to 2*(CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice) (including 0 and 2*(CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice)).
[0150] When not present, the value of ph_cu_qp_delta_subdiv_inter_slice is inferred to be equal to 0.
[0151] ph_cu_chroma_qp_offset_subdiv_inter_slice specifies the maximum cbSubdiv value of the coding / decoding units in the inter-slice of the strip that transmits cu_chroma_qp_offset_flag. The value of ph_cu_chroma_qp_offset_subdiv_inter_slice shall be in the range of 0 to 2*(CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice) (including 0 and 2*(CtbLog2SizeY - MinQtLog2SizeInterY + ph_max_mtt_hierarchy_depth_inter_slice)).
[0152] When not present, the value of ph_cu_chroma_qp_offset_subdiv_inter_slice is inferred to be equal to 0.
[0153] The ph_temporal_mvp_enabled_flag specifies whether the temporal motion vector prediction value can be used for inter prediction of the slices associated with PH. If ph_temporal_mvp_enabled_flag is equal to 0, the syntax elements of the slices associated with PH shall be constrained such that no temporal motion vector prediction value is used in the decoding of the slices. Otherwise (ph_temporal_mvp_enabled_flag is equal to 1), the temporal motion vector prediction value can be used in the decoding of the slices associated with PH. When not present, the value of ph_temporal_mvp_enabled_flag is inferred to be equal to 0. When no reference picture in the DPB has the same spatial resolution as the current picture, the value of ph_temporal_mvp_enabled_flag shall be equal to 0.
[0154] The maximum number of sub - block - based merged MVP candidates, MaxNumSubblockMergeCand, is derived as follows:
[0155]
[0156]
[0157] The value of MaxNumSubblockMergeCand shall be in the range from 0 to 5 (inclusive of 0 and 5).
[0158] ph_collocated_from_l0_flag being equal to 1 specifies that the collocated picture used for temporal motion vector prediction is derived from reference picture list 0. ph_collocated_from_l0_flag being equal to 0 specifies that the collocated picture used for temporal motion vector prediction is derived from reference picture list 1.
[0159] ph_collocated_ref_idx specifies the reference index of the collocated picture used for temporal motion vector prediction.
[0160] When ph_collocated_from_l0_flag is equal to 1, ph_collocated_ref_idx refers to the entries in reference picture list 0, and the value of ph_collocated_ref_idx shall be in the range from 0 to num_ref_entries[0][RplsIdx[0]] - 1 (inclusive of 0 and num_ref_entries[0][RplsIdx[0]] - 1).
[0161] When ph_collocated_from_l0_flag is equal to 0, ph_collocated_ref_idx refers to the entry in Reference Picture 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 (including 0 and num_ref_entries[1][RplsIdx[1]] - 1).
[0162] When it does not exist, the value of ph_collocated_ref_idx is inferred to be equal to 0.
[0163] mvd_l1_zero_flag being equal to 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 be equal to 0. mvd_l1_zero_flag being equal to 0 indicates that the mvd_coding(x0,y0,1) syntax structure is parsed.
[0164] ph_fpel_mmvd_enabled_flag being equal to 1 specifies that the Merge mode with motion vector difference uses integer sample precision in the slice associated with PH. ph_fpel_mmvd_enabled_flag being equal to 0 specifies that the Merge mode with motion vector difference can use fractional sample precision in the slice associated with PH. When it does not exist, the value of ph_fpel_mmvd_enabled_flag is inferred to be 0.
[0165] ph_disable_bdof_flag being equal to 1 specifies that the inter - bidirectional prediction based on bidirectional optical flow inter - prediction is disabled in the slice associated with PH. ph_disable_bdof_flag being equal to 0 specifies that the inter - bidirectional prediction based on bidirectional optical flow inter - prediction can be enabled or not enabled in the slice associated with PH.
[0166] When ph_disable_bdof_flag does not exist, the following applies:
[0167] – If sps_bdof_enabled_flag is equal to 1, the value of ph_disable_bdof_flag is inferred to be equal to 0.
[0168] – Otherwise (sps_bdof_enabled_flag equals 0), the value of ph_disable_bdof_flag is inferred to be equal to 1.
[0169] ph_disable_dmvr_flag being equal to 1 specifies that inter - bidirectional prediction based on decoder motion vector refinement is disabled in the slices associated with PH. ph_disable_dmvr_flag being equal to 0 specifies that inter - bidirectional prediction based on decoder motion vector refinement may or may not be enabled in the slices associated with PH.
[0170] When ph_disable_dmvr_flag does not exist, the following applies:
[0171] – If sps_dmvr_enabled_flag equals 1, the value of ph_disable_dmvr_flag is inferred to be equal to 0.
[0172] – Otherwise (sps_dmvr_enabled_flag equals 0), the value of ph_disable_dmvr_flag is inferred to be equal to 1.
[0173] ph_disable_prof_flag being equal to 1 specifies that prediction refinement using optical flow is disabled in the slices associated with PH. ph_disable_prof_flag being equal to 0 specifies that prediction refinement using optical flow may or may not be enabled in the slices associated with PH.
[0174] When ph_disable_prof_flag does not exist, the following applies:
[0175] – If sps_affine_prof_enabled_flag equals 1, the value of ph_disable_prof_flag is inferred to be equal to 0.
[0176] – Otherwise (sps_affine_prof_enabled_flag equals 0), the value of ph_disable_prof_flag is inferred to be equal to 1.
[0177] ph_qp_delta specifies the initial Qp value to be used for the coded - decoding blocks in the picture until modified by the value of CuQpDeltaVal in the coded - decoding unit layer. Y of.
[0178] When qp_delta_info_in_ph_flag equals 1, the Qp of all slices of the picture YInitial value of quantization parameter SliceQp Y is derived as follows:
[0179] SliceQp Y = 26 + init_qp_minus26 + ph_qp_delta (89)
[0180] SliceQp Y shall be in the range from -QpBdOffset to +63 (including -QpBdOffset and +63).
[0181] ph_joint_cbcr_sign_flag specifies whether the co-located residual samples of the two chrominance components have inverted signs in the transform unit where tu_joint_cbcr_residual_flag[x0][y0] is equal to 1. When tu_joint_cbcr_residual_flag[x0][y0] of the transform unit is equal to 1, ph_joint_cbcr_sign_flag being equal to 0 specifies 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 being equal to 1 specifies 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.
[0182] ph_sao_luma_enabled_flag being equal to 1 specifies that SAO is enabled for the luma component in all slices associated with PH; ph_sao_luma_enabled_flag being equal to 0 specifies that SAO for the luma component can be disabled for one, more than one, or all slices associated with PH. When ph_sao_luma_enabled_flag does not exist, it is inferred to be equal to 0.
[0183] ph_sao_chroma_enabled_flag being equal to 1 specifies that SAO is enabled for the chrominance component in all slices associated with PH; ph_sao_chroma_enabled_flag being equal to 0 specifies that SAO for the chrominance component can be disabled for one, more than one, or all slices associated with PH. When ph_sao_chroma_enabled_flag does not exist, it is inferred to be equal to 0.
[0184] The ph_dep_quant_enabled_flag being equal to 0 specifies that dependency quantization is disabled for the current picture. The ph_dep_quant_enabled_flag being equal to 1 specifies that dependency quantization is enabled for the current picture. When the ph_dep_quant_enabled_flag does not exist, it is inferred to be equal to 0.
[0185] The pic_sign_data_hiding_enabled_flag being equal to 0 specifies that sign bit hiding is disabled for the current picture. The pic_sign_data_hiding_enabled_flag being equal to 1 specifies that sign bit hiding is enabled for the current picture. When the pic_sign_data_hiding_enabled_flag does not exist, it is inferred to be equal to 0.
[0186] The ph_deblocking_filter_override_flag being equal to 1 specifies that deblocking parameters exist in the PH. The ph_deblocking_filter_override_flag being equal to 0 specifies that deblocking parameters do not exist in the PH. When it does not exist, the value of the ph_deblocking_filter_override_flag is inferred to be equal to 0.
[0187] The ph_deblocking_filter_disabled_flag being equal to 1 specifies that the operation of the deblocking filter is not applied to the slices associated with the PH. The ph_deblocking_filter_disabled_flag being equal to 0 specifies that the operation of the deblocking filter is applied to the slices associated with the PH. When the ph_deblocking_filter_disabled_flag does not exist, it is inferred to be equal to the pps_deblocking_filter_disabled_flag.
[0188] ph_beta_offset_div2 and ph_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC for the luma component applied to the slices associated with the PH. The values of ph_beta_offset_div2 and ph_tc_offset_div2 should be in the range of -12 to 12 (including -12 and 12). When they do not exist, 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.
[0189] ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC applied to the Cb component of the slice associated with PH. The values of ph_cb_beta_offset_div2 and ph_cb_tc_offset_div2 shall be in the range of -12 to 12 (including -12 and 12). When absent, 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.
[0190] ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC applied to the Cr component of the slice associated with PH. The values of ph_cr_beta_offset_div2 and ph_cr_tc_offset_div2 shall both be in the range of -12 to 12 (including -12 and 12). When absent, 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.
[0191] ph_extension_length specifies the length of the PH extension data in bytes, excluding the bits used for signaling ph_extension_length itself. The value of ph_extension_length shall be in the range of 0 to 256 (including 0 and 256). When absent, the value of ph_extension_length is inferred to be equal to 0.
[0192] ph_extension_data_byte can have any value. Decoders compliant with this version of the specification shall ignore the value of ph_extension_data_byte. Its value does not affect the profiles specified in this version of the specification for the decoder to be compliant.
[0193] 3.2.SH Syntax and Semantics
[0194] In the latest VVC draft text, the SH syntax and semantics are as follows:
[0195]
[0196]
[0197]
[0198]
[0199] The variable CuQpDeltaVal, which specifies the difference between the luma quantization parameter of the coding unit containing cu_qp_delta_abs and its prediction, is set to be equal to 0. It is specified that when determining the Qp′ Cb 、Qp′ Cr and Qp′ CbCr the variables CuQpOffset, which are the values to be used for the corresponding values of the quantization parameters, Cb 、CuQpOffset Cr and CuQpOffset CbCr are all set to be equal to 0.
[0200] That picture_header_in_slice_header_flag is equal to 1 specifies that the PH syntax structure exists in the slice header. That picture_header_in_slice_header_flag is equal to 0 specifies that the PH syntax structure does not exist in the slice header.
[0201] The requirement for bitstream consistency is that the value of picture_header_in_slice_header_flag should be the same in all coding slices in the CLVS.
[0202] When picture_header_in_slice_header_flag of the coding slice is equal to 1, the requirement for bitstream consistency is that there should be no VCL NAL unit with nal_unit_type equal to PH_NUT in the CLVS.
[0203] When picture_header_in_slice_header_flag is equal to 0, all coding slices in the current picture should have picture_header_in_slice_header_flag equal to 0, and the current PU should have a PH NAL unit.
[0204] The slice_subpic_id specifies the subpicture ID of the subpicture containing the slice. If slice_subpic_id exists, the value of the variable CurrSubpicIdx is derived such that SubpicIdVal[CurrSubpicIdx] is equal to slice_subpic_id. Otherwise (slice_subpic_id does not exist), CurrSubpicIdx is derived to be equal to 0. The length of slice_subpic_id is sps_subpic_id_len_minus1 + 1 bits.
[0205] The slice_address specifies the slice address of the slice. When it does not exist, the value of slice_address is inferred to be equal to 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 equal to 0.
[0206] If rect_slice_flag is equal to 0, the following applies:
[0207] - The slice address is the raster scan slice index.
[0208] - The length of slice_address is Ceil(Log2(NumTilesInPic)) bits.
[0209] - The value of slice_address should be in the range of 0 to NumTilesInPic - 1 (including 0 and NumTilesInPic - 1).
[0210] Otherwise (rect_slice_flag is equal to 1), the following applies:
[0211] - The slice address is the slice's subpicture level slice index.
[0212] - The length of slice_address is Ceil(Log2(NumSlicesInSubpic[CurrSubpicIdx])) bits.
[0213] - The value of slice_address should be in the range of 0 to NumSlicesInSubpic[CurrSubpicIdx] - 1 (including 0 and NumSlicesInSubpic[CurrSubpicIdx] - 1).
[0214] The requirements for bitstream consistency are that the following constraints apply:
[0215] - If rect_slice_flag is equal to 0 or subpic_info_present_flag is equal to 0, the value of slice_address shall not be equal to the value of slice_address of any other coded slice NAL unit of the same coded picture.
[0216] - Otherwise, a pair of slice_subpic_id and slice_address values shall not be equal to a pair of slice_subpic_id and slice_address values of any other coded slice NAL unit of the same coded picture.
[0217] - The shape of the slices of a picture shall be such that each CTU shall have, when decoded, its entire left boundary and its entire upper boundary composed of the picture boundary or of the boundaries of (one or more) previously decoded CTUs.
[0218] sh_extra_bit[i] may be equal to 1 or 0. A decoder compliant with this version of the specification shall ignore the value of sh_extra_bit[i]. Its value does not affect the profile specified in this version of the specification for the decoder to be compliant.
[0219] num_tiles_in_slice_minus1 plus 1 (when present) specifies the number of tiles in the slice. The value of num_tiles_in_slice_minus1 shall be in the range from 0 to NumTilesInPic - 1, inclusive (including 0 and NumTilesInPic - 1).
[0220] The variable NumCtusInCurrSlice that specifies the number of CTUs in the current slice and the list CtbAddrInCurrSlice[i] that specifies the picture raster scan address of the i-th CTB within the slice (where i ranges from 0 to NumCtusInCurrSlice - 1, inclusive (including 0 and NumCtusInCurrSlice - 1)) are derived as follows:
[0221]
[0222]
[0223] The variables SubpicLeftBoundaryPos, SubpicTopBoundaryPos, SubpicRightBoundaryPos, and SubpicBotBoundaryPos are derived as follows:
[0224]
[0225] The slice_type specifies the coding type of the slice according to Table 9.
[0226] Table 9 – Association with the name of slice_type
[0227] slice_type Name of slice_type 0 B (B-strip) 1 P (P-strip) 2 I (I-strip)
[0228] When it does not exist, the value of slice_type is inferred to be equal to 2.
[0229] When ph_intra_slice_allowed_flag is equal to 0, the value of slice_type shall be equal to 0 or 1. When nal_unit_type is in the range from IDR_W_RADL to CRA_NUT (including IDR_W_RADL and CRA_NUT), and vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] is equal to 1, slice_type shall be equal to 2.
[0230] The variables MinQtLog2SizeY, MinQtLog2SizeC, MinQtSizeY, MinQtSizeC, MaxBtSizeY, MaxBtSizeC, MinBtSizeY, MaxTtSizeY, MaxTtSizeC, MinTtSizeY, MaxMttDepthY, and MaxMttDepthC are derived as follows:
[0231] - If slice_type is equal to 2 (I), then the following applies:
[0232] MinQtLog2SizeY = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_intra_slice_luma (119)
[0233] MinQtLog2SizeC = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_intra_slice_chroma (120)
[0235] MaxBtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_bt_min_qt_intra_slice_luma) (121)
[0237] MaxBtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_bt_min_qt_intra_slice_chroma) (122)
[0239] MaxTtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_tt_min_qt_intra_slice_luma) (123)
[0241] MaxTtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_tt_min_qt_intra_slice_chroma) (124)
[0243] MaxMttDepthY = ph_max_mtt_hierarchy_depth_intra_slice_luma (125)
[0244] MaxMttDepthC = ph_max_mtt_hierarchy_depth_intra_slice_chroma (126)
[0245] CuQpDeltaSubdiv = ph_cu_qp_delta_subdiv_intra_slice (127)
[0246] CuChromaQpOffsetSubdiv = ph_cu_chroma_qp_offset_subdiv_intra_slice (128)
[0248] - Otherwise (slice_type equals 0 (B) or 1 (P)), the following applies:
[0249] MinQtLog2SizeY = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_inter_slice(129)
[0250] MinQtLog2SizeC = MinCbLog2SizeY + ph_log2_diff_min_qt_min_cb_inter_slice(130)
[0251] MaxBtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_bt_min_qt_inter_slice) (131)
[0252] MaxBtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_bt_min_qt_inter_slice) (132)
[0253] MaxTtSizeY = 1 << (MinQtLog2SizeY + ph_log2_diff_max_tt_min_qt_inter_slice) (133)
[0254] MaxTtSizeC = 1 << (MinQtLog2SizeC + ph_log2_diff_max_tt_min_qt_inter_slice) (134)
[0255] MaxMttDepthY = ph_max_mtt_hierarchy_depth_inter_slice (135)
[0256] MaxMttDepthC = ph_max_mtt_hierarchy_depth_inter_slice (136)
[0257] CuQpDeltaSubdiv = ph_cu_qp_delta_subdiv_inter_slice (137)
[0258] CuChromaQpOffsetSubdiv = ph_cu_chroma_qp_offset_subdiv_inter_slice (138)
[0260] - The following applies:
[0261] MinQtSizeY = 1 << MinQtLog2SizeY (139)
[0262] MinQtSizeC = 1 << MinQtLog2SizeC (140)
[0263] MinBtSizeY = 1 << MinCbLog2SizeY (141)
[0264] MinTtSizeY = 1 << MinCbLog2SizeY (142)
[0265] When slice_alf_enabled_flag equals 1, it specifies that the adaptive loop filter is enabled and can be applied to the Y, Cb, or Cr color components in the slice. When slice_alf_enabled_flag equals 0, it specifies that the adaptive loop filter is disabled for all color components in the slice. When not present, the value of slice_alf_enabled_flag is inferred to be equal to ph_alf_enabled_flag.
[0266] slice_num_alf_aps_ids_luma specifies the number of ALF APSs referenced by the slice. When slice_alf_enabled_flag equals 1 and slice_num_alf_aps_ids_luma is not present, the value of slice_num_alf_aps_ids_luma is inferred to be equal to the value of ph_num_alf_aps_ids_luma.
[0267] slice_alf_aps_id_luma[i] specifies the adaptation_parameter_set_id of the i-th ALF APS referenced by the luma component of the slice. The TemporalId of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_alf_aps_id_luma[i] should be less than or equal to the TemporalId of the coded slice NAL unit. When slice_alf_enabled_flag equals 1 and slice_alf_aps_id_luma[i] is not present, the value of slice_alf_aps_id_luma[i] is inferred to be equal to the value of ph_alf_aps_id_luma[i].
[0268] The value of alf_luma_filter_signal_flag of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_alf_aps_id_luma[i] should be equal to 1.
[0269] A slice_alf_chroma_idc value of 0 specifies that the adaptive loop filter is not applied to the Cb and Cr color components. A slice_alf_chroma_idc value of 1 indicates that the adaptive loop filter is applied to the Cb color component. A slice_alf_chroma_idc value of 2 indicates that the adaptive loop filter is applied to the Cr color component. A slice_alf_chroma_idc value of 3 indicates that the adaptive loop filter is applied to the Cb and Cr color components. When slice_alf_chroma_idc is not present, it is inferred to be equal to ph_alf_chroma_idc.
[0270] slice_alf_aps_id_chroma specifies the adaptation_parameter_set_id of the ALF APS referred to by the chroma component of a slice. The TemporalId of the APS NAL unit with an aps_params_type equal to ALF_APS and an adaptation_parameter_set_id equal to slice_alf_aps_id_chroma shall be less than or equal to the TemporalId of the coded slice NAL unit. When slice_alf_enabled_flag is equal to 1 and slice_alf_aps_id_chroma is not present, the value of slice_alf_aps_id_chroma is inferred to be equal to the value of ph_alf_aps_id_chroma.
[0271] The value of alf_chroma_filter_signal_flag of the APS NAL unit with an aps_params_type equal to ALF_APS and an adaptation_parameter_set_id equal to slice_alf_aps_id_chroma shall be equal to 1.
[0272] A slice_cc_alf_cb_enabled_flag value of 0 specifies 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 may be applied to the Cb color component. When slice_cc_alf_cb_enabled_flag is not present, it is inferred to be equal to ph_cc_alf_cb_enabled_flag.
[0273] The adaptation_parameter_set_id that the slice_cc_alf_cb_aps_id specifies the Cb color component reference of the slice.
[0274] The TemporalId of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_cc_alf_cb_aps_id should be less than or equal to the TemporalId of the coded slice NAL unit. When slice_cc_alf_cb_enabled_flag is equal to 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.
[0275] The value of alf_cc_cb_filter_signal_flag of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_cc_alf_cb_aps_id should be equal to 1.
[0276] slice_cc_alf_cr_enabled_flag equal to 0 specifies that the cross-component filter is not applied to the Cr color component. slice_cc_alf_cb_enabled_flag equal to 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.
[0277] The slice_cc_alf_cr_aps_id specifies the adaptation_parameter_set_id that references the Cr color component of the slice. The TemporalId of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_cc_alf_cr_aps_id should be less than or equal to the TemporalId of the coded slice NAL unit. 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.
[0278] The value of alf_cc_cr_filter_signal_flag of the APS NAL unit with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_cc_alf_cr_aps_id should be equal to 1.
[0279] When separate_colour_plane_flag is equal to 1, colour_plane_id identifies the colour plane associated with the current slice. The value of colour_plane_id should be in the range from 0 to 2 (inclusive of 0 and 2). The values 0, 1, and 2 of colour_plane_id correspond to the Y, Cb, and Cr planes respectively. The value 3 of colour_plane_id is reserved for future use by ITU-T|ISO / IEC.
[0280] Note 1 – There is no dependency between the decoding processes of the different colour planes of a picture.
[0281] The num_ref_idx_active_override_flag being equal to 1 specifies that the syntax element num_ref_idx_active_minus1[0] exists for P slices and B slices, and the syntax element num_ref_idx_active_minus1[1] exists for B slices. The num_ref_idx_active_override_flag being equal to 0 specifies 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 the num_ref_idx_active_override_flag is inferred to be equal to 1.
[0282] num_ref_idx_active_minus1[i] is used to derive the variable NumRefIdxActive[i] as specified in Formula 143. The value of num_ref_idx_active_minus1[i] shall be in the range from 0 to 14 (inclusive of 0 and 14).
[0283] For i equal to 0 or 1, when the current slice is a B slice, the num_ref_idx_active_override_flag is equal to 1, and num_ref_idx_active_minus1[i] does not exist, num_ref_idx_active_minus1[i] is inferred to be equal to 0.
[0284] When the current slice is a P slice, the 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.
[0285] The variable NumRefIdxActive[i] is derived as follows:
[0286]
[0287] The value of NumRefIdxActive[i] - 1 specifies the maximum reference index of the reference picture list i that can be used to decode the slice. When the value of NumRefIdxActive[i] is equal to 0, no reference index of the reference picture list i can be used to decode the slice.
[0288] When the current slice is a P slice, the value of NumRefIdxActive[0] shall be greater than 0.
[0289] When the current strip is a B strip, both NumRefIdxActive[0] and NumRefIdxActive[1] should be greater than 0.
[0290] cabac_init_flag specifies the method for determining 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.
[0291] slice_collocated_from_l0_flag being equal to 1 specifies that the collocated picture for temporal motion vector prediction is derived from reference picture list 0. slice_collocated_from_l0_flag being equal to 0 specifies that the collocated picture for temporal motion vector prediction is derived from reference picture list 1.
[0292] When slice_type is equal to B or P, ph_temporal_mvp_enabled_flag is equal to 1, and slice_collocated_from_l0_flag does not exist, the following applies:
[0293] - If rpl_info_in_ph_flag is equal to 1, then slice_collocated_from_l0_flag is inferred to be equal to ph_collocated_from_l0_flag.
[0294] - Otherwise (rpl_info_in_ph_flag is equal to 0 and slice_type is equal to P), the value of slice_collocated_from_l0_flag is inferred to be equal to 1.
[0295] slice_collocated_ref_idx specifies the reference index of the collocated picture for temporal motion vector prediction.
[0296] When slice_type is equal to P or when slice_type is equal to B and slice_collocated_from_l0_flag is equal to 1, slice_collocated_ref_idx refers to an entry in reference picture list 0, and the value of slice_collocated_ref_idx should be in the range from 0 to NumRefIdxActive[0] - 1 (including 0 and NumRefIdxActive[0] - 1).
[0297] When slice_type is equal to B and slice_collocated_from_l0_flag is equal to 0, slice_collocated_ref_idx refers to an entry in Reference Picture List 1, and the value of slice_collocated_ref_idx shall be in the range of 0 to NumRefIdxActive[1] - 1 (inclusive of 0 and NumRefIdxActive[1] - 1).
[0298] When slice_collocated_ref_idx does not exist, the following applies:
[0299] - If rpl_info_in_ph_flag is equal to 1, the value of slice_collocated_ref_idx is inferred to be equal to ph_collocated_ref_idx.
[0300] - Otherwise (rpl_info_in_ph_flag is equal to 0), the value of slice_collocated_ref_idx is inferred to be equal to 0.
[0301] The requirement for bitstream consistency is that the picture referred to by slice_collocated_ref_idx shall be the same for all slices of the coded picture.
[0302] The requirement for bitstream consistency is that the values of pic_width_in_luma_samples and pic_height_in_luma_samples of the reference picture referred to by slice_collocated_ref_idx shall be equal to the values of pic_width_in_luma_samples and pic_height_in_luma_samples of the current picture respectively, and RprConstraintsActive[slice_collocated_from_l0_flag? 0:1][slice_collocated_ref_idx] shall be equal to 0.
[0303] slice_qp_delta specifies the initial value of Qp to be used for coded blocks in the slice until modified by the value of CuQpDeltaVal in the coded unit layer Y of the initial value.
[0304] When qp_delta_info_in_ph_flag is equal to 0, the Qp of the slice Y The initial value of the quantization parameter SliceQp Y is derived as follows:
[0305] SliceQp Y = 26 + init_qp_minus26 + slice_qp_delta(144)
[0306] SliceQp Y shall be in the range of -QpBdOffset to +63, inclusive of -QpBdOffset and +63.
[0307] When any of the following conditions is true:
[0308] - The value of wp_info_in_ph_flag is equal to 1, pps_weighted_pred_flag is equal to 1, and slice_type is equal to P.
[0309] - The value of wp_info_in_ph_flag is equal to 1, pps_weighted_bipred_flag is equal to 1, and slice_type is equal to B.
[0310] The following applies:
[0311] - The value of NumRefIdxActive[0] shall be less than or equal to the value of NumWeightsL0.
[0312] - For each reference picture index RefPicList[0][i] (where i is in the range of 0 to NumRefIdxActive[0] - 1, inclusive of 0 and NumRefIdxActive[0] - 1), the luma weight, Cb weight, and Cr weight applied to the reference picture index are LumaWeightL0[i], ChromaWeightL0[0][i], and ChromaWeightL0[1][i], respectively.
[0313] When wp_info_in_ph_flag is equal to 1, pps_weighted_bipred_flag is equal to 1, and slice_type is equal to B, the following applies:
[0314] - The value of NumRefIdxActive[1] shall be less than or equal to the value of NumWeightsL1.
[0315] - For each reference picture index RefPicList[1][i] where i ranges from 0 to NumRefIdxActive[1] - 1 (inclusive of 0 and NumRefIdxActive[1] - 1), the luminance weight, Cb weight, and Cr weight applied to the reference picture index are LumaWeightL1[i], ChromaWeightL1[0][i], and ChromaWeightL1[1][i], respectively.
[0316] slice_cb_qp_offset specifies the difference to be added to the value of pps_cb_qp_offset when determining the Qp′ Cb quantization parameter value. The value of slice_cb_qp_offset shall be in the range of -12 to +12 (inclusive of -12 and +12). When 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 shall be in the range of -12 to +12 (inclusive of -12 and +12).
[0317] slice_cr_qp_offset specifies the difference to be added to the value of pps_cr_qp_offset when determining the Qp′ Cr quantization parameter value. The value of slice_cr_qp_offset shall be in the range of -12 to +12 (inclusive of -12 and +12). When 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 shall be in the range of -12 to +12 (inclusive of -12 and +12).
[0318] slice_joint_cbcr_qp_offset specifies the difference to be added to the value of pps_joint_cbcr_qp_offset_value when determining the Qp′ CbCr value. The value of slice_joint_cbcr_qp_offset shall be in the range of -12 to +12 (inclusive of -12 and +12). 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 shall be in the range of -12 to +12 (inclusive of -12 and +12).
[0319] The cu_chroma_qp_offset_enabled_flag being equal to 1 specifies that the cu_chroma_qp_offset_flag may be present in the transform unit and palette coding / decoding syntax. The cu_chroma_qp_offset_enabled_flag being equal to 0 specifies that the cu_chroma_qp_offset_flag is not present in the transform unit or palette coding / decoding syntax. When not present, the value of the cu_chroma_qp_offset_enabled_flag is inferred to be equal to 0.
[0320] The slice_sao_luma_flag being equal to 1 specifies that SAO is enabled for the luma component in the current slice; the slice_sao_luma_flag being equal to 0 specifies that SAO is disabled for the luma component in the current slice. When the slice_sao_luma_flag is not present, it is inferred to be equal to the ph_sao_luma_enabled_flag.
[0321] The slice_sao_chroma_flag being equal to 1 specifies that SAO is enabled for the chroma component in the current slice; the slice_sao_chroma_flag being equal to 0 specifies that SAO is disabled for the chroma component in the current slice. When the slice_sao_chroma_flag is not present, it is inferred to be equal to the ph_sao_chroma_enabled_flag.
[0322] The slice_deblocking_filter_override_flag being equal to 1 specifies that the deblocking parameters are present in the slice header. The slice_deblocking_filter_override_flag being equal to 0 specifies that the deblocking parameters are not present in the slice header. When not present, the value of the slice_deblocking_filter_override_flag is inferred to be equal to the ph_deblocking_filter_override_flag.
[0323] The slice_deblocking_filter_disabled_flag being equal to 1 specifies that the operation of the deblocking filter is not applied to the current slice. The slice_deblocking_filter_disabled_flag being equal to 0 specifies that the operation of the deblocking filter is applied to the current slice. When the slice_deblocking_filter_disabled_flag is not present, it is inferred to be equal to the ph_deblocking_filter_disabled_flag.
[0324] slice_beta_offset_div2 and slice_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC applied to the luma component of the current slice. The values of slice_beta_offset_div2 and slice_tc_offset_div2 should both be in the range of -12 to 12 (including -12 and 12). When absent, 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.
[0325] slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC applied to the Cb component of the current slice. The values of slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 should both be in the range of -12 to 12 (including -12 and 12). When absent, 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.
[0326] slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) of β and tC 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 (including -12 and 12). When absent, 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.
[0327] The slice_ts_residual_coding_disabled_flag being equal to 1 specifies that the residual_coding() syntax structure is used to parse the residual samples of the transform skip blocks of the current slice. The slice_ts_residual_coding_disabled_flag being equal to 0 specifies that the residual_ts_coding() syntax structure is used to parse the residual samples of the transform skip blocks of the current slice. When the slice_ts_residual_coding_disabled_flag is not present, it is inferred to be equal to 0.
[0328] The slice_lmcs_enabled_flag being equal to 1 specifies that luminance mapping and chroma scaling are enabled for the current slice. The slice_lmcs_enabled_flag being equal to 0 specifies that luminance mapping and chroma scaling are not enabled for the current slice. When the slice_lmcs_enabled_flag is not present, it is inferred to be equal to 0.
[0329] The slice_scaling_list_present_flag being equal to 1 specifies that the scaling list data for the current slice is derived from the scaling list data included in the reference scaling list APS with aps_params_type equal to SCALING_APS and adaptation_parameter_set_id equal to ph_scaling_list_aps_id. The slice_scaling_list_present_flag being equal to 0 specifies that the scaling list data for the current picture is the default scaling list data derived as specified in Clause 7.4.3.21. When not present, the value of the slice_scaling_list_present_flag is inferred to be equal to 0.
[0330] The variable NumEntryPoints that specifies the number of entry points in the current slice is derived as follows:
[0331]
[0332]
[0333] offset_len_minus1 plus 1 specifies the length, in bits, of the entry_point_offset_minus1[i] syntax element. The value of offset_len_minus1 shall be in the range of 0 to 31 (inclusive of 0 and 31).
[0334] entry_point_offset_minus1[i] + 1 specifies the i-th entry point offset in bytes and is represented by offset_len_minus1 + 1 bits. The strip data after the strip header consists of NumEntryPoints + 1 subsets, where the subset index values range from 0 to NumEntryPoints (including 0 and NumEntryPoints). The first byte of the strip data is considered byte 0. When present, the anti-competitive bytes that appear in the strip data part of the coded strip NAL unit are counted as part of the strip data for the purpose of subset identification. Subset 0 consists of bytes 0 to entry_point_offset_minus1[0] (including 0 and entry_point_offset_minus1[0]) of the coded strip data, and subset k (where k ranges from 1 to NumEntryPoints - 1, including 1 and NumEntryPoints - 1) consists of bytes firstByte[k] to lastByte[k] (including firstByte[k] and lastByte[k]) of the coded strip data, where firstByte[k] and lastByte[k] are defined as:
[0335]
[0336] lastByte[k] = firstByte[k] + entry_point_offset_minus1[k] (147)
[0337] The last subset (subset index equal to NumEntryPoints) consists of the remaining bytes of the coded strip data.
[0338] When sps_entropy_coding_sync_enabled_flag is equal to 0 and the strip contains one or more complete slices, each subset shall consist of all the coded bits of all the CTUs in the same slice in the strip, and the number of subsets (i.e., the value of NumEntryPoints + 1) shall be equal to the number of slices in the strip.
[0339] When sps_entropy_coding_sync_enabled_flag is equal to 0 and the strip contains subsets of CTU rows from a single slice, NumEntryPoints shall be 0 and the number of subsets shall be 1. The subset shall consist of all the coded bits of all the CTUs in the strip.
[0340] When sps_entropy_coding_sync_enabled_flag equals 1, each subset k (where k ranges from 0 to NumEntryPoints, inclusive of 0 and NumEntryPoints) shall consist of all the coded and decoded bits of all CTUs in the CTU rows within a slice, and the number of subsets (i.e., the value of NumEntryPoints + 1) shall be equal to the total number of slice-specific CTU rows in the strip.
[0341] slice_header_extension_length specifies the length of the slice header extension data in bytes, excluding the bits used for signaling slice_header_extension_length itself. The value of slice_header_extension_length shall be in the range of 0 to 256, inclusive of 0 and 256. When it is absent, the value of slice_header_extension_length is inferred to be equal to 0.
[0342] slice_header_extension_data_byte[i] can have any value. A decoder compliant with this version of the specification shall ignore the values of all slice_header_extension_data_byte[i] syntax elements. Its value does not affect the profile specified in this version of the specification for the decoder to be compliant.
[0343] 3.3. Weighted Prediction Syntax and Semantics
[0344] In the latest VVC draft text, the weighted prediction syntax and semantics are as follows:
[0345]
[0346]
[0347] luma_log2_weight_denom is the base-2 logarithm of the denominator of all luma weighting factors. The value of luma_log2_weight_denom shall be in the range of 0 to 7, inclusive of 0 and 7.
[0348] delta_chroma_log2_weight_denom is the difference of the base-2 logarithms of the denominators of all chroma weighting factors. When delta_chroma_log2_weight_denom is absent, it is inferred to be equal to 0.
[0349] The variable ChromaLog2WeightDenom is derived to be equal to luma_log2_weight_denom + delta_chroma_log2_weight_denom, and this value shall be in the range of 0 to 7, inclusive (including 0 and 7).
[0350] num_l0_weights specifies the number of weights signaled for an entry in reference picture list 0 when wp_info_in_ph_flag is equal to 1. The value of num_l0_weights shall be in the range of 0 to num_ref_entries[0][RplsIdx[0]], inclusive (including 0 and num_ref_entries[0][RplsIdx[0]]).
[0351] If wp_info_in_ph_flag is equal to 1, the variable NumWeightsL0 is set to be equal to num_l0_weights. Otherwise (wp_info_in_ph_flag is equal to 0), NumWeightsL0 is set to be equal to NumRefIdxActive[0].
[0352] luma_weight_l0_flag[i] being equal to 1 specifies the existence of a weighting factor for the luma component predicted using list 0 of RefPicList[0][i]. luma_weight_l0_flag[i] being equal to 0 specifies the non-existence of such weighting factors.
[0353] chroma_weight_l0_flag[i] being equal to 1 specifies the existence of a weighting factor for the chroma prediction value predicted using list 0 of RefPicList[0][i]. chroma_weight_l0_flag[i] being equal to 0 specifies the non-existence of such weighting factors. When chroma_weight_l0_flag[i] does not exist, it is inferred to be equal to 0.
[0354] delta_luma_weight_l0[i] is the difference of the weighting factor applied to the luma prediction value predicted using list 0 of RefPicList[0][i].
[0355] LumaWeightL0[i] is derived to be equal to (1 << luma_log2_weight_denom) + delta_luma_weight_l0[i]. When luma_weight_l0_flag[i] is equal to 1, the value of delta_luma_weight_l0[i] shall be in the range of -128 to 127 (including -128 and 127). When luma_weight_l0_flag[i] is equal to 0, LumaWeightL0[i] is inferred to be equal to 2 luma_log2_weight_denom 。
[0356] luma_offset_l0[i] is the added offset applied to the luma prediction value predicted using RefPicList[0][i] in list 0. The value of luma_offset_l0[i] shall be in the range of -128 to 127 (including -128 and 127). When luma_weight_l0_flag[i] is equal to 0, luma_offset_l0[i] is inferred to be equal to 0.
[0357] delta_chroma_weight_l0[i][j] is the difference of the weighting factors applied to the chroma prediction values predicted using RefPicList[0][i] in list 0, where j is equal to 0 for Cb and j is equal to 1 for Cr.
[0358] The variable ChromaWeightL0[i][j] is derived to be equal to (1 << ChromaLog2WeightDenom) + delta_chroma_weight_l0[i][j]. When chroma_weight_l0_flag[i] is equal to 1, the value of delta_chroma_weight_l0[i][j] shall be in the range of -128 to 127 (including -128 and 127). When chroma_weight_l0_flag[i] is equal to 0, ChromaWeightL0[i][j] is inferred to be equal to 2 ChromaLog2WeightDenom 。
[0359] delta_chroma_offset_l0[i][j] is the difference of the added offsets applied to the chroma prediction values predicted using RefPicList[0][i] in list 0, where j is equal to 0 for Cb and j is equal to 1 for Cr.
[0360] The variable ChromaOffsetL0[i][j] is derived as follows:
[0361] ChromaOffsetL0[i][j] = Clip3(-128, 127, (128 + delta_chroma_offset_l0[i][j] - (148)
[0362] ((128 * ChromaWeightL0[i][j]) >> ChromaLog2WeightDenom)))
[0363] The value of delta_chroma_offset_l0[i][j] shall be in the range of -4 * 128 to 4 * 127 (including -4 * 128 and 4 * 127). When chroma_weight_l0_flag[i] is equal to 0, ChromaOffsetL0[i][j] is inferred to be equal to 0.
[0364] num_l1_weights specifies the number of weights signaled for an entry in reference picture list 1 when wp_info_in_ph_flag is equal to 1. The value of num_l1_weights shall be in the range of 0 to num_ref_entries[1][RplsIdx[1]] (including 0 and num_ref_entries[1][RplsIdx[1]]).
[0365] If wp_info_in_ph_flag is equal to 1, the variable NumWeightsL1 is set to be equal to num_l1_weights. Otherwise (wp_info_in_ph_flag is equal to 0), NumWeightsL1 is set to be equal to NumRefIdxActive[1].
[0366] luma_weight_l1_flag[i], chroma_weight_l1_flag[i], delta_luma_weight_l1[i], luma_offset_l1[i], delta_chroma_weight_l1[i][j] and delta_chroma_offset_l1[i][j] have the same semantics as luma_weight_l0_flag[i], chroma_weight_l0_flag[i], delta_luma_weight_l0[i], luma_offset_l0[i], delta_chroma_weight_l0[i][j] and delta_chroma_offset_l0[i][j] respectively, where l0, L0, list 0 and List0 are replaced by l1, L1, list 1 and List1 respectively.
[0367] The variable sumWeightL0Flags is derived to be equal to the sum of luma_weight_l0_flag[i] + 2 * chroma_weight_l0_flag[i], where i = 0..NumRefIdxActive[0] - 1.
[0368] When slice_type is equal to B, the variable sumWeightL1Flags is derived to be equal to the sum of luma_weight_l1_flag[i] + 2 * chroma_weight_l1_flag[i], where i = 0..NumRefIdxActive[1] - 1.
[0369] The requirement for bitstream conformance is that when slice_type is equal to P, sumWeightL0Flags shall be less than or equal to 24, and when slice_type is equal to B, the sum of sumWeightL0Flags and sumWeightL1Flags shall be less than or equal to 24.
[0370] 4. Examples of technical problems solved by the disclosed technical solutions
[0371] The existing designs of PPS, PH and SH syntax have the following problems:
[0372] 1) In the pred_weight_table() syntax in the latest VVC draft text, when wp_info_in_ph_flag is equal to 1, and even when pps_weighted_pred_flag is equal to 1 but pps_weighted_bipred_flag is equal to 0, the syntax element num_l1_weights is signaled. Therefore, under the same conditions, the list of the syntax element uma_weight_l1_flag[i] is also signaled, and the lists of the syntax elements luma_weight_l1_flag[i], chroma_weight_l1_flag[i], delta_luma_weight_l1[i], luma_offset_l1[i], delta_chroma_weight_l1[i][j], and delta_chroma_offset_l1[i][j] can also be signaled. However, when pps_weighted_bipred_flag is equal to 0, weighted prediction is not applied to B slices, so all these signaled syntax elements are useless.
[0373] 2) When wp_info_in_ph_flag is equal to 1 (in this case, at least one of pps_weighted_pred_flag and pps_weighted_bipred_flag is equal to 1), the pred_weight_table() syntax structure exists in the PH syntax structure of the picture in the reference PPS. In this case, when pps_weighted_pred_flag is equal to 0 (in this case, pps_weighted_bipred_flag is equal to 1), although the list of the syntax element luma_weight_l0_flag[i] is signaled in the PH syntax structure, for P slices, weighted prediction is not applied, so the values of the list of the syntax element luma_weight_l0_flag[i] for P slices should be inferred to be equal to 0. Similarly, when pps_weighted_bipred_flag is equal to 0 (in this case, pps_weighted_pred_flag is equal to 1), since weighted prediction is not applied to B slices, the lists of the syntax elements luma_weight_l0_flag[i] and luma_weight_l1_flag[i] for B slices should be inferred to be equal to 0.
[0374] 3) When wp_info_in_ph_flag is equal to 1 (in this case, at least one of pps_weighted_pred_flag and pps_weighted_bipred_flag is equal to 1), the pred_weight_table() syntax structure exists in the PH syntax structure of the picture of the reference PPS. In this case, if the picture does not have B slices and pps_weighted_bipred_flag is equal to 1, all syntax elements in the pred_weight_table() syntax structure of reference picture list 1 will be useless.
[0375] 5. Examples of Techniques and Embodiments
[0376] To solve the above problems, the following summarized methods are disclosed. The present invention should be considered as an example for explaining general concepts and should not be interpreted in a narrow manner. In addition, these inventions can be applied alone or combined in any way. In the following techniques and embodiments, the most relevant parts that have been added or modified are shown, and the most relevant removed parts are highlighted in bold double brackets. For example, shows that "a" has been removed. indicates that "a" has been removed.
[0377] 1. Signaling of Syntax Elements Related to Weighted Prediction:
[0378] 1) To solve the first problem, whether to signal the number of weights of the entries in reference picture list 1 and / or the luminance / chrominance weights of the entries in reference picture list 1 may depend on the enabling of explicit weighted prediction for B slices.
[0379] a. In one example, in the pred_weight_table() syntax, the following syntax:
[0380]
[0381] is changed as follows:
[0382]
[0383] And the following semantics:
[0384] num_l1_weights specifies the number of weights signaled for the entries in reference picture list 1 when wp_info_in_ph_flag is equal to 1. The value of num_l1_weights should be in the range from 0 to num_ref_entries[1][RplsIdx[1]] (including 0 and num_ref_entries[1][RplsIdx[1]]).
[0385] If wp_info_in_ph_flag is equal to 1, then the variable NumWeightsL1 is set to be equal to num_l1_weights. Otherwise (wp_info_in_ph_flag is equal to 0), NumWeightsL1 is set to be equal to NumRefIdxActive[1].
[0386] is changed as follows:
[0387] num_l1_weights specifies the number of weights signaled for the entries in reference picture list 1. The value of num_l1_weights shall be in the range (including 0 and num_ref_entries[1][RplsIdx[1]]) from 0 to num_ref_entries[1][RplsIdx[1]].
[0388]
[0389] 2) To solve the second problem, in the slice header semantics, add the following inferences for luma_weight_l0_flag[i], chroma_weight_l0_flag[i], luma_weight_l1_flag[i], and chroma_weight_l1_flag[i]:
[0390] a. When pps_weighted_pred_flag is equal to 0 and slice_type is equal to P, for each value of i in the range (including 0 and NumRefIdxActive[0] - 1) from 0 to NumRefIdxActive[0] - 1, the value of luma_weight_l0_flag[i] is inferred to be equal to 0, and the value of chroma_weight_l0_flag[i] is inferred to be equal to 0.
[0391] b. When pps_weighted_bipred_flag is equal to 0 and slice_type is equal to B, for each value of i in the range (including 0 and NumRefIdxActive[0] - 1) from 0 to NumRefIdxActive[0] - 1, the value of luma_weight_l0_flag[i] is inferred to be equal to 0, and the value of chroma_weight_l0_flag[i] is inferred to be equal to 0.
[0392] c. Additionally, alternatively, when pps_weighted_bipred_flag is equal to 0 and slice_type is equal to B, for each value of i in the range from 0 to NumRefIdxActive[1] - 1 (including 0 and NumRefIdxActive[1] - 1), the value of luma_weight_l1_flag[i] is inferred to be equal to 0, and the value of chroma_weight_10_flag[i] is inferred to be equal to 0.
[0393] 3) To solve the third problem, the following alternative method can be applied:
[0394] a. The above item 2.1 in the bullet points applies, and for pictures without B slices, the encoder forces the reference PPS to have pps_weighted_bipred_flag equal to 0. The latter part can be achieved by adding the following constraint: pictures that do not contain B slices should only refer to PPSs with pps_weighted_bipred_flag equal to 0.
[0395] b. For pictures without B slices, the encoder forces the reference PPS to have wp_info_in_ph_flag equal to 0. This can be achieved by adding the following constraint: pictures that do not contain B slices should only refer to PPSs with wp_info_in_ph_flag equal to 0.
[0396] c. For pictures without B slices, the encoder forces the value of the syntax element num_l1_weights in the pred_weight_table() syntax structure to be equal to 0. This can be achieved by adding the following constraint as part of the semantics of num_l1_weights: when wp_info_in_ph_flag is equal to 1 and the current picture does not contain B slices, the value of num_l1_weights should be equal to 0.
[0397] 4) A flag can be used to signal in the SPS an indication that explicit weighted prediction is enabled.
[0398] a. Additionally, alternatively, this SPS indication of the flag can be used to condition the signaling of the indication of explicit weighted prediction for P slices and B slices in the SPS (i.e., sps_weighted_pred_flag and sps_weighted_bipred_flag).
[0399] b. Alternatively, one or more constraint flags can be added to the general constraint information syntax to indicate constraints on explicit weighted prediction.
[0400] i. In one example, a constraint flag (e.g., named no_explicit_weighted_prediction_constraint_flag) is added, and when the constraint flag indicates that explicit weighted prediction for P slices and B slices (or only for P slices or only for B slices) is not applied, the corresponding SPS flag(s) shall be equal to 0.
[0401] 5) A flag can be used to signal in the PPS an indication that explicit weighted prediction is enabled.
[0402] a. Additionally, alternatively, the indication of the flag in the PPS can be used to condition the signaling of the indication of explicit weighted prediction for P slices and B slices in the PPS (i.e., pps_weighted_pred_flag and pps_weighted_bipred_flag).
[0403] b. Alternatively, one or more constraint flags can be added to the common constraint information syntax to indicate constraints on explicit weighted prediction.
[0404] i. In one example, a constraint flag (e.g., named no_explicit_weighted_prediction_constraint_flag) is added, and when the constraint flag indicates that explicit weighted prediction for P slices and B slices (or only for P slices or only for B slices) is not applied, the corresponding PPS flag(s) shall be equal to 0.
[0405] 6) The indication of explicit weighted prediction applied to P slices or B slices can be signaled in the picture header or slice header instead of in the SPS and PPS.
[0406] a. In one example, whether to signal such an indication in the picture header or slice header can follow the location where the RPL exists, i.e., it can depend on whether the RPL information exists in the PH syntax structure or the SH syntax structure (e.g., according to the value of rpl_info_in_ph_flag).
[0407] b. Additionally, alternatively, whether to signal such an indication can depend on the slice type.
[0408] c. Additionally, alternatively, whether to signal such an indication can depend on whether the current picture can include inter slices or P slices or B slices.
[0409] 2. Indication on whether a picture does not contain B slices and signaling of using this indication to skip some syntax elements:
[0410] 1) An indication of whether the current picture does not contain B slices can be added to the PH syntax structure.
[0411] a. In one example, the indication is a flag, e.g., named ph_b_slices_allowed_flag, where ph_b_slices_allowed_flag equal to 1 specifies that the picture can contain one or more B slices, and ph_b_slices_allowed_flag equal to 0 specifies that the picture does not contain B slices.
[0412] i. Additionally, alternatively, ph_b_slices_allowed_flag can be signaled in the PH syntax structure only when ph_inter_slice_allowed_flag is equal to 1.
[0413] ii. Additionally, alternatively, when ph_inter_slice_allowed_flag is equal to 0, the value of ph_b_slices_allowed_flag can be inferred to be equal to 0.
[0414] b. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax elements of reference picture list 1 in the ref_pic_lists() syntax and ref_pic_list_struct() syntax can be skipped.
[0415] c. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax element mvd_l1_zero_flag in the PH syntax structure can be skipped.
[0416] i. Additionally, alternatively, when ph_b_slices_allowed_flag is equal to 0, the value of mvd_l1_zero_flag can be inferred to be equal to 1.
[0417] d. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax element num_l1_weights and other parameters in the pred_weight_table() syntax of reference picture list 1 can be skipped.
[0418] i. Additionally, alternatively, when ph_b_slices_allowed_flag is equal to 0, the value of num_l1_weights can be inferred to be equal to 0.
[0419] e. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax element num_ref_idx_active_minus1[1] in the SH syntax can be skipped.
[0420] i. Additionally, alternatively, when ph_b_slices_allowed_flag is equal to 0, the value of NumRefIdxActive[1] can be inferred to be equal to 0.
[0421] f. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax element slice_collocated_from_l0_flag in the SH syntax can be skipped.
[0422] i. Additionally, alternatively, when ph_b_slices_allowed_flag is equal to 0, the value of slice_collocated_from_l0_flag can be inferred to be equal to 1.
[0423] 6. Embodiments
[0424]
[0425] 6.1. First Embodiment
[0426] This is an embodiment of items 1.1, 1.1.a, 1.2.a, and 1.2.b summarized in Section 5 above.
[0427] 7.3.7.2 Weighted Prediction Parameter Syntax
[0428]
[0429]
[0430] 7.4.8.2 Weighted Prediction Parameter Semantics
[0431] luma_log2_weight_denom is the base-2 logarithm of the denominator of all luma weighting factors. The value of luma_log2_weight_denom should be in the range from 0 to 7 (inclusive of 0 and 7).
[0432] delta_chroma_log2_weight_denom is the difference of the base-2 logarithms of the denominators of all chroma weighting factors. When delta_chroma_log2_weight_denom does not exist, it is inferred to be equal to 0.
[0433] The variable ChromaLog2WeightDenom is derived to be equal to luma_log2_weight_denom + delta_chroma_log2_weight_denom, and this value shall be in the range from 0 to 7 (inclusive of 0 and 7).
[0434] num_l0_weights specifies the number of weights signaled for an entry in reference picture list 0 when wp_info_in_ph_flag is equal to 1. The value of num_l0_weights shall be in the range from 0 to num_ref_entries[0][RplsIdx[0]] (inclusive of 0 and num_ref_entries[0][RplsIdx[0]]).
[0435] If wp_info_in_ph_flag is equal to 1, the variable NumWeightsL0 is set to be equal to num_l0_weights. Otherwise (wp_info_in_ph_flag is equal to 0), NumWeightsL0 is set to be equal to NumRefIdxActive[0].
[0436] luma_weight_l0_flag[i] being equal to 1 specifies the existence of a weighting factor for the luma component predicted using list 0 of RefPicList[0][i]. luma_weight_l0_flag[i] being equal to 0 specifies the non - existence of these weighting factors.
[0437] chroma_weight_l0_flag[i] being equal to 1 specifies the existence of a weighting factor for the chroma prediction value predicted using list 0 of RefPicList[0][i]. chroma_weight_l0_flag[i] being equal to 0 specifies the non - existence of these weighting factors. When chroma_weight_l0_flag[i] does not exist, it is inferred to be equal to 0.
[0438] delta_luma_weight_l0[i] is the difference of the weighting factor applied to the luma prediction value predicted using list 0 of RefPicList[0][i]. ...
[0439] num_l1_weights specifies when wp_info_in_ph_flag When it is equal to 1, it is the number of weights signaled for the entries in the reference picture list 1. The value of num_l1_weights shall be in the range of 0 to num_ref_entries[1][RplsIdx[1]] (including 0 and num_ref_entries[1][RplsIdx[1]]).
[0440] [[If wp_info_in_ph_flag is equal to 1, the variable NumWeightsL1 is set to be equal to num_l1_weights. Otherwise (wp_info_in_ph_flag is equal to 0), NumWeightsL1 is set to be equal to NumRefIdxActive[1].]]
[0441]
[0442] ...
[0443] 7.4.8.1 General slice header semantics ...
[0444] slice_qp_delta specifies the Qp value to be used for the coding / decoding blocks in the slice until modified by the CuQpDeltaVal in the coding unit layer. Y The initial value of.
[0445] When qp_delta_info_in_ph_flag is equal to 0, the Qp of the slice Y The initial value of the quantization parameter SliceQp Y is derived as follows:
[0446] SliceQp Y = 26 + init_qp_minus26 + slice_qp_delta (144)
[0447] SliceQp Y The value of shall be in the range of -QpBdOffset to +63 (including -QpBdOffset and +63).
[0448] When any of the following conditions is true:
[0449] - The value of wp_info_in_ph_flag is equal to 1, pps_weighted_pred_flag is equal to 1, and slice_type is equal to P.
[0450] - The value of wp_info_in_ph_flag is equal to 1, pps_weighted_bipred_flag is equal to 1, and slice_type is equal to B.
[0451] The following applies:
[0452] - The value of NumRefIdxActive[0] shall be less than or equal to the value of NumWeightsL0.
[0453] - For each reference picture index RefPicList[0][i] (where i ranges from 0 to NumRefIdxActive[0] - 1, inclusive of 0 and NumRefIdxActive[0] - 1), the luma weight, Cb weight, and Cr weight applied to the reference picture index are LumaWeightL0[i], ChromaWeightL0[0][i], and ChromaWeightL0[1][i], respectively.
[0454] When wp_info_in_ph_flag is equal to 1, pps_weighted_bipred_flag is equal to 1, and slice_type is equal to B, the following applies:
[0455] - The value of NumRefIdxActive[1] shall be less than or equal to the value of NumWeightsL1.
[0456] - For each reference picture index RefPicList[1][i] (where i ranges from 0 to NumRefIdxActive[1] - 1, inclusive of 0 and NumRefIdxActive[1] - 1), the luma weight, Cb weight, and Cr weight applied to the reference picture index are LumaWeightL1[i], ChromaWeightL1[0][i], and ChromaWeightL1[1][i], respectively.
[0457]
[0458] ... [Reserve the remaining text in the standard document]
[0459] Figure 1FIG. 0 is a block diagram showing an example video processing system 1000 in which various techniques disclosed herein may be implemented. Various embodiments may include some or all components of system 1000. System 1000 may include an input 1002 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10-bit multi-component pixel values, or may be in a compressed or encoded format. Input 1002 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 Network (PON), etc., and wireless interfaces such as Wi-Fi or cellular interfaces.
[0460] System 1000 may include a codec component 1004 that may implement various codec or encoding methods described in this document. The codec component 1004 may reduce the average bit rate of the video from input 1002 to the output of the codec component 1004 to produce a coded representation of the video. Coding techniques are thus sometimes referred to as video compression or video transcoding techniques. The output of the codec component 1004 may be stored or transmitted via a communication connection represented by component 1006. The stored or communicatively transmitted bitstream (or coded) representation of the video received at input 1002 may be used by component 1008 to generate pixel values or a displayable video for transmission to a display interface 1010. The process of generating a user-visible video from the bitstream representation is sometimes referred to as video decompression. Additionally, although certain video processing operations are referred to as "codec" operations or tools, it will be understood that codec tools or operations are used at the encoder, and the corresponding decoding tools or operations that reverse the codec results will be performed by the decoder.
[0461] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), or High-Definition Multimedia Interface (HDMI), or Displayport, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The techniques described in this document may be embodied in various electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.
[0462] Figure 2 FIG. 10 is a block diagram of a video processing apparatus 2000. Apparatus 2000 may be used to implement one or more methods described herein. Apparatus 2000 may be embodied in a smartphone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. Apparatus 2000 may include one or more processors 2002, one or more memories 2004, and video processing hardware 2006. The (multiple) processors 2002 may be configured to implement the methods described in this document (e.g., Figures 6 - 10one or more of the methods described herein. The memory(ies) 2004 can be used to store data and code for implementing the methods and techniques described herein. The video processing hardware 2006 can be used to implement some of the techniques described in this document in hardware circuitry. In some embodiments, the hardware 2006 can be partially or fully within the processor 2002 (e.g., a graphics processor).
[0463] Figure 3 is a block diagram showing an example video codec system 100 that can utilize the techniques of the present disclosure. As Figure 3 shown, the video codec system 100 can include a source device 110 and a destination device 120. The source device 110 generates encoded video data, where the source device 110 can be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110, where the destination device 120 can be referred to as a video decoding device. The source device 110 can include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0464] The video source 112 can include sources such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. The video data can include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream can include a sequence of bits that form a codec representation of the video data. The bitstream can include coded pictures and associated data. A coded picture is a codec representation of a picture. The associated data can include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 can include a modulator / demodulator (modem) and / or a transmitter. The encoded video data can be sent directly to the destination device 120 via the I / O interface 116 over a network 130a. The encoded video data can also be stored on a storage medium / server 130b for access by the destination device 120.
[0465] The destination device 120 can include an I / O interface 126, a video decoder 124, and a display device 122.
[0466] The I / O interface 126 can include a receiver and / or a modem. The I / O interface 126 can obtain the encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 can decode the encoded video data. The display device 122 can display the decoded video data to a user. The display device 122 can be integrated with the destination device 120 or can be external to the destination device 120 configured to interface with an external display device.
[0467] The video encoder 114 and the video decoder 124 may operate according to video compression standards, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or additional standards.
[0468] Figure 4 is a block diagram showing an example of a video encoder 200, which may be the Figure 3 video encoder 114 in the system 100 shown.
[0469] The video encoder 200 may be configured to perform any or all of the techniques of the present disclosure. In Figure 4 an example, the video encoder 200 includes a plurality of functional components. The techniques described in the present disclosure may be shared among various components of the video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in the present disclosure.
[0470] 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 prediction unit 206), a residual generation unit 207, a transformation unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transformation unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.
[0471] In other examples, the video encoder 200 may include more, fewer, or different functional components. In an example, the prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit may perform prediction in the IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0472] In addition, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are shown separately in Figure 4 the example for the purpose of explanation.
[0473] The segmentation unit 201 may segment a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0474] The mode selection unit 203 may select one of the encoding / decoding modes (e.g., intra or inter) based on the error result, and provide the resulting intra-coded block or inter-coded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra and inter prediction modes (CIIP), where the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 may also select the resolution of the motion vector of the block (e.g., sub-pixel or integer-pixel accuracy).
[0475] To perform inter prediction on a current video block, the motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from the buffer 213 with the current video block. The motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from the buffer 213 other than the picture associated with the current video block.
[0476] The motion estimation unit 204 and the motion compensation unit 205 may perform different operations on the current video block, e.g., depending on whether the current video block is in an I-slice, a P-slice, or a B-slice.
[0477] In some examples, the motion estimation unit 204 may perform uni-directional prediction on the current video block, and the motion estimation unit 204 may search for a reference picture in list 0 or list 1 of reference pictures for the reference video block of the current video block. The motion estimation unit 204 may then generate a reference index indicating the reference picture in list 0 or list 1, the reference index including the reference video block and a motion vector indicating the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 may output the reference index, a prediction direction indicator, and the motion vector as the motion information for the current video block. The motion compensation unit 205 may 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.
[0478] In other examples, the motion estimation unit 204 may perform bidirectional prediction on a current video block. The motion estimation unit 204 may search for a reference video block of the current video block in the reference pictures in list 0, and may also search for another reference video block of the current video block in list 1. The motion estimation unit 204 may then generate a reference index that indicates the reference pictures in list 0 and list 1 that contain the reference video blocks and a motion vector that indicates the spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output the reference index and the motion vector of the current video block as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.
[0479] In some examples, the motion estimation unit 204 may output a complete set of motion information for use in the decoding process of the decoder.
[0480] In some examples, the motion estimation unit 204 may not output a complete set of motion information for the current video. Instead, the motion estimation unit 204 may signal the motion information of the current video block by referring to the motion information of another video block. For example, the motion estimation unit 204 may determine that the motion information of the current video block is similar enough to the motion information of a neighboring video block.
[0481] In one example, the motion estimation unit 204 may indicate a value in a syntax structure associated with the current video block that indicates to the video decoder 300 that the current video block has the same motion information as another video block.
[0482] In another example, the motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a 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 indicated video block. The video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0483] As discussed above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 include advanced motion vector prediction (AMVP) and Merge mode signaling.
[0484] The intra prediction unit 206 may perform intra prediction on a current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on the decoded samples of other video blocks in the same picture. The prediction data of the current video block may include a predicted video block and various syntax elements.
[0485] The residual generation unit 207 can generate residual data for a current video block by subtracting (e.g., as indicated by a minus sign) a (plurality of) predicted video blocks of the current video block from the current video block. The residual data of the current video block can include residual video blocks corresponding to different sample components of the samples in the current video block.
[0486] In other examples, such as in the skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform the subtraction operation.
[0487] The transform processing unit 208 can generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0488] After the transform processing unit 208 generates the 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.
[0489] 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 generate a reconstructed video block associated with the current block for storage in the buffer 213.
[0490] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation can be performed to reduce the block effect in the video block.
[0491] The entropy coding unit 214 can receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives the data, the entropy coding unit 214 can perform one or more entropy coding operations to generate entropy coded data and output a bitstream including the entropy coded data.
[0492] Figure 5 is a block diagram showing an example of a video decoder 300, and the video decoder 300 can be Figure 3 the video decoder 114 in the system 100 shown.
[0493] The video decoder 300 can be configured to perform any or all of the techniques of the present disclosure. In Figure 5 the example, the video decoder 300 includes a plurality of functional components. The techniques described in the present disclosure can be shared among 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 the present disclosure.
[0494] In Figure 5 example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra 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 may perform a decoding process that is generally the reverse of the encoding process described for the video encoder 200 ( Figure 4 ).
[0495] The entropy decoding unit 301 may retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy-encoded video data, and based on the entropy-decoded video data, the motion compensation unit 302 may determine motion information including a motion vector, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information, for example, by performing the AMVP and Merge modes.
[0496] The motion compensation unit 302 may generate a motion-compensated block and may perform interpolation based on an interpolation filter. An identifier of the interpolation filter to be used with sub-pixel precision may be included in the syntax element.
[0497] The motion compensation unit 302 may use the interpolation filter used by the video encoder 200 during the encoding of a video block to calculate the interpolation of sub-integer pixels of a reference block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 based on the received syntax information and use the interpolation filter to generate a prediction block.
[0498] The motion compensation unit 302 may use some syntax information to determine the size of the blocks used to encode the (multiple) frames and / or (multiple) slices of the encoded video sequence, the partitioning information describing how each macroblock of a picture of the encoded video sequence is partitioned, the mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence.
[0499] The intra prediction unit 303 may form a prediction block from spatially adjacent blocks using, for example, an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301, i.e., dequantizes. The inverse transform unit 303 applies an inverse transform.
[0500] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block in order to remove the blocking effect. The decoded video block is then stored in the buffer 307, providing a reference block for subsequent motion compensation / intra prediction, and also generating the decoded video for presentation on a display device.
[0501] Figures 6 to 10 An example method is shown that may implement the above technical solution in an embodiment such as Figures 1 to 5 shown in.
[0502] Figure 6 A flowchart of an example method 600 for video processing is shown. Method 600 includes, at operation 610, performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to rules that specify that values of a first syntax element of a picture parameter set (PPS) and values of a second syntax element of the PPS control whether a third syntax element is included in the bitstream, the first syntax element indicating whether weighted prediction is enabled for bi-directional slices (B-slices) of coded pictures in the bitstream of a reference PPS, the second syntax element indicating whether information related to weighted prediction exists in a picture header or a slice header of a coded picture of a reference PPS, and the third syntax element indicating the number of weights associated with reference picture list 1 of the current slice.
[0503] Figure 7 A flowchart of an example method 700 for video processing is shown. Method 700 includes, at operation 710, performing a conversion between a current slice of a current picture of a video and a bitstream of the video that conforms to format rules, where the format rules specify that values of a plurality of syntax elements indicating whether prediction weights are included in a slice header of the current slice are inferred based on the slice type of the current slice and the value of a first flag included in a PPS referenced by the current picture.
[0504] Figure 8 A flowchart of an example method 800 for video processing is shown. Method 800 includes, at operation 810, performing a conversion between a current slice of a current picture of a video and a bitstream of the video that conforms to format rules, where the format rules specify that there is a general constraint information syntax structure that includes one or more constraint flags indicating constraints for enabling explicit weighted prediction for slices of a picture set.
[0505] Figure 9A flowchart of an example method 900 for video processing is shown. Method 900 includes, at operation 910, performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to a rule that specifies that one or more constraint flags indicating constraints enabling explicit weighted prediction for slices of a picture set are included in a parameter set or a header associated with the current slice.
[0506] Figure 10 A flowchart of an example method 1000 for video processing is shown. Method 1000 includes, at operation 1010, performing a conversion between a video including a current picture and a bitstream of the video, the bitstream conforming to format rules, where the format rules specify that an indication of whether the current picture does not include bi-directional slices (B-slices) is included in a picture header syntax structure associated with the current picture.
[0507] Next, a list of preferred solutions for some embodiments is provided.
[0508] A1. A video processing method includes: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to a rule, where the rule specifies that values of a first syntax element of a picture parameter set (PPS) and a second syntax element of the PPS control whether a third syntax element is included in the bitstream, and where the first syntax element indicates whether weighted prediction is enabled for bi-directional slices (B-slices) of coded pictures in the bitstream that reference the PPS, the second syntax element indicates whether information related to weighted prediction exists in a picture header or a slice header of coded pictures that reference the PPS, and the third syntax element indicates the number of weights associated with reference picture list 1 of the current slice.
[0509] A2. The method according to solution A1, where the first syntax element is pps_weighted_bipred_flag, the second syntax element is wp_info_in_ph_flag, and the third syntax element is num_l1_weights.
[0510] A3. The method according to solution A1 or A2, where the first syntax element being equal to 0 indicates that weighted prediction is disabled for B-slices of coded pictures that reference the PPS.
[0511] A4. The method according to solution A1 or A2, where the first syntax element being equal to 1 indicates that weighted prediction is enabled for B-slices of coded pictures that reference the PPS.
[0512] A5. The method according to solution A1 or A2, where the first syntax element is equal to 0 when a fourth syntax element included in a sequence parameter set (SPS) is equal to 0.
[0513] A6. The method according to solution A5, wherein the fourth syntax element is sps_weighted_bipred_flag.
[0514] A7. The method according to solution A1 or A2, wherein the first syntax element being equal to 0 indicates that the number of weights associated with reference picture list 1 is not included in the slice header of the current slice.
[0515] A8. The method according to solution A1 or A2, wherein the first syntax element being equal to 1 and the second syntax element being equal to 1 indicates that the number of weights associated with reference picture list 1 is included in the slice header of the current slice.
[0516] A9. The method according to any one of solutions A1 to A8, wherein the conversion includes decoding video from a bitstream.
[0517] A10. The method according to any one of solutions A1 to A8, wherein the conversion includes encoding video into a bitstream.
[0518] A11. A method of storing a bitstream representing video in a computer-readable recording medium, comprising: generating a bitstream from video according to the method described in any one or more of solutions A1 to A8; and storing the bitstream in the computer-readable recording medium.
[0519] A12. A video processing apparatus, comprising a processor configured to implement the method according to any one or more of solutions A1 to A11.
[0520] A13. A computer-readable medium having instructions stored thereon that, when executed, cause a processor to implement the method according to one or more of solutions A1 to A11.
[0521] A14. A computer-readable medium storing a bitstream, wherein the bitstream is generated according to any one or more of solutions A1 to A11.
[0522] A15. A video processing apparatus storing a bitstream, wherein the video processing apparatus is configured to implement the method according to any one or more of solutions A1 to A11.
[0523] Next, a list of another preferred solution for some embodiments is provided.
[0524] B1. A video processing method, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, wherein the bitstream conforms to format rules, and wherein the format rules stipulate that values of a plurality of syntax elements indicating whether prediction weights are included in a slice header of the current slice are inferred based on a slice type of the current slice and a value of a first flag included in a picture parameter set (PPS) referred to by the current picture.
[0525] B2. The method according to solution B1, wherein the plurality of syntax elements include a first syntax element indicating a number of luma weights associated with reference picture list 0 of the current slice, a second syntax element indicating a number of chroma weights associated with reference picture list 0 of the current slice, a third syntax element indicating a number of luma weights associated with reference picture list 1 of the current slice, and a fourth syntax element indicating a number of chroma weights associated with reference picture list 1 of the current slice.
[0526] B3. The method according to solution B2, wherein the first syntax element is luma_weight_l0_flag[i], the second syntax element is chroma_weight_l0_flag[i], the third syntax element is luma_weight_l1_flag[i], and the fourth syntax element is chroma_weight_l1_flag[i], and wherein i is a non-negative integer.
[0527] B4. The method according to solution B2 or B3, wherein the first flag indicates whether weighted prediction is enabled for pictures of a reference PPS, and wherein since the first flag is equal to 0 and the slice type is a uni-directional prediction slice (P-slice), the first syntax element and the second syntax element are inferred to be 0.
[0528] B5. The method according to solution B4, wherein the first flag is pps_weighted_pred_flag.
[0529] B6. The method according to solution B2 or B3, wherein the first flag indicates whether weighted bi-directional prediction is enabled for pictures of a reference PPS, and wherein since the first flag is equal to 0 and the slice type is a bi-directional slice (B-slice), the first syntax element and the second syntax element are inferred to be 0.
[0530] B7. The method according to solution B2 or B3, wherein the first flag indicates whether weighted bi-directional prediction is enabled for pictures of a reference PPS, and wherein since the first flag is equal to 0 and the slice type is a bi-directional slice (B-slice), the third syntax element and the second syntax element are inferred to be 0.
[0531] B8. The method according to solution B6 or B7, wherein the first flag is pps_weighted_bipred_flag.
[0532] B9. The method according to any one of solutions B6 to B8, wherein since the current picture does not include B slices, the current picture refers to a PPS with the first flag equal to 0.
[0533] B10. The method according to any one of solutions B6 to B8, wherein since the current picture does not include B slices, the current picture refers to a PPS with the second flag equal to 0.
[0534] B11. The method according to any one of solutions B6 to B8, wherein since the second flag is equal to 0 and the current picture does not include B slices, the value of the syntax element indicating the number of weights associated with reference picture list 1 of the current slice is 0.
[0535] B12. The method according to solution B10 or B11, wherein the second flag indicates whether information related to weighted prediction exists in the picture header or slice header of the pictures in the reference PPS.
[0536] B13. The method according to any one of solutions B10 to B12, wherein the second flag is wp_info_in_ph_flag.
[0537] B14. The method according to any one of solutions B1 to B13, wherein the conversion includes decoding video from a bitstream.
[0538] B15. The method according to any one of solutions B1 to B13, wherein the conversion includes encoding video into a bitstream.
[0539] B16. A method of storing a bitstream representing video in a computer-readable recording medium, comprising: generating a bitstream from video according to the method described in any one or more of solutions B1 to B13; and storing the bitstream in the computer-readable recording medium.
[0540] B17. A video processing apparatus, comprising a processor configured to implement the method according to any one or more of solutions B1 to B16.
[0541] B18. A computer-readable medium having instructions stored thereon, which when executed cause a processor to implement the method according to one or more of solutions B1 to B16.
[0542] B19. A computer-readable medium storing a bitstream, wherein the bitstream is generated according to any one or more of Solutions B1 to B16.
[0543] B20. A video processing apparatus storing a bitstream, wherein the video processing apparatus is configured to implement the method according to any one or more of Solutions B1 to B16.
[0544] Next, a list of another preferred solution of some embodiments is provided.
[0545] C1. A video processing method, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, wherein the bitstream conforms to format rules, and wherein the format rules stipulate that there is a general constraint information syntax structure, and the general constraint information syntax structure includes one or more constraint flags indicating constraints for enabling explicit weighted prediction for slices of a picture set.
[0546] C2. The method according to Solution C1, wherein the one or more constraint flags are included in the bitstream.
[0547] C3. The method according to Solution C1, wherein the one or more constraint flags are included in a parameter set associated with the current slice.
[0548] C4. The method according to Solution C1, wherein the one or more constraint flags are included in a decoder capability information network abstraction layer (NAL) unit.
[0549] C5. The method according to Solution C1, wherein the one or more constraint flags include a first constraint flag indicating whether explicit weighted prediction is applied to one or both of a uni-predicted slice (P-slice) and a bi-predicted slice (B-slice) of a picture set, and wherein the value of the first constraint flag conforms to the value of a second flag included in a sequence parameter set (SPS) associated with the current slice.
[0550] C6. The method according to Solution C5, wherein the first constraint flag is gci_no_explicit_weighted_prediction_constraint_flag.
[0551] C7. The method according to Solution C5, wherein since the second flag is equal to 1, the first constraint flag is equal to 0.
[0552] C8. The method according to Solution C7, wherein the second flag is sps_weighted_pred_flag or sps_weighted_bipred_flag.
[0553] C9. A video processing method, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to a rule, wherein the rule stipulates that one or more constraint flags indicating a constraint for enabling explicit weighted prediction for slices of a picture set are included in a parameter set or a header associated with the current slice.
[0554] C10. The method according to solution C9, wherein the one or more constraint flags consist of a first flag indicating whether an indication of explicit weighted prediction for a unidirectional prediction slice (P-slice) or a bidirectional prediction slice (B-slice) is included in a sequence parameter set (SPS) associated with the current slice.
[0555] C11. The method according to solution C10, wherein the first flag is sps_weighted_pred_flag or sps_weighted_bipred_flag.
[0556] C12. The method according to solution C9, wherein the one or more constraint flags consist of a first flag indicating whether an indication of explicit weighted prediction for a unidirectional prediction slice (P-slice) or a bidirectional prediction slice (B-slice) is included in a picture parameter set (PPS) associated with the current slice.
[0557] C13. The method according to solution C12, wherein the first flag is pps_weighted_pred_flag or pps_weighted_bipred_flag.
[0558] C14. The method according to solution C9, wherein the one or more constraint flags include a first constraint flag indicating whether explicit weighted prediction is applied to one or both of a unidirectional prediction slice (P-slice) and a bidirectional prediction slice (B-slice), and wherein the value of the first constraint flag conforms to the value of a second constraint flag included in a picture parameter set (PPS) associated with the current slice.
[0559] C15. The method according to solution C9, wherein the one or more constraint flags consist of a first flag indicating whether an indication of explicit weighted prediction for a unidirectional prediction slice (P-slice) or a bidirectional prediction slice (B-slice) is included in a picture header or a slice header associated with the current slice.
[0560] C16. The method according to solution C15, wherein the indication is included in the picture header or the slice header because information related to a reference picture list is included in a picture header syntax structure or a slice header syntax structure, respectively.
[0561] C17. The method according to solution C15, wherein the indication is based on the slice type of the slice associated with the current video block.
[0562] C18. The method according to solution C15, wherein the indication is based on the current picture including an inter slice, a P slice, or a B slice.
[0563] C19. A video processing method, comprising: performing a conversion between a video including a current picture and a bitstream of the video, wherein the bitstream conforms to format rules, and wherein the format rules specify that an indication of whether the current picture does not include bi-directional slices (B slices) is included in a picture header syntax structure associated with the current picture.
[0564] C20. The method according to solution C19, wherein the indication being equal to 1 specifies that the current picture includes one or more B slices.
[0565] C21. The method according to solution C19, wherein the indication being equal to 0 specifies that the current picture does not include B slices.
[0566] C22. The method according to solution C20 or C21, wherein the indication is ph_b_slices_allowed_flag.
[0567] C23. The method according to solution C19, wherein the indication being equal to 0 specifies that syntax elements in a syntax structure related to reference picture list 1 are excluded from the bitstream.
[0568] C24. The method according to solution C23, wherein the indication is ph_b_slices_allowed_flag, and wherein the syntax structure is ref_pic_lists() or ref_pic_list_struct().
[0569] C25. The method according to solution C19, wherein the indication being equal to 0 specifies that syntax elements related to parsing a syntax structure for a motion vector difference coding / decoding tool are excluded from the picture header syntax structure.
[0570] C26. The method according to solution C19, wherein the indication being equal to 0 specifies that the values of syntax elements related to parsing a syntax structure for a motion vector difference coding / decoding tool are inferred to be equal to 1.
[0571] C27. The method according to solution C25 or C26, wherein the indication is ph_b_slices_allowed_flag, and wherein the syntax element is mvd_l1_zero_flag.
[0572] C28. The method according to solution C19, wherein an indication equal to 0 stipulates that a syntax element related to weighted prediction of a current video block in a current picture is excluded from the bitstream.
[0573] C29. The method according to solution C28, wherein the indication is ph_b_slices_allowed_flag, and wherein the syntax element is num_l1_weights.
[0574] C30. The method according to solution C19, wherein an indication equal to 0 stipulates that a syntax element related to the maximum reference index of a reference picture list associated with a current picture is excluded from a slice header syntax structure.
[0575] C31. The method according to solution C30, wherein the indication is ph_b_slices_allowed_flag, and wherein the syntax element is num_ref_idx_active_minus1.
[0576] C32. The method according to solution C19, wherein an indication equal to 0 stipulates that a syntax element related to a collocated slice for temporal motion vector prediction of a current video block in a current picture derived from reference picture list 0 associated with the current picture is excluded from the slice header syntax structure.
[0577] C33. The method according to solution C32, wherein the indication is ph_b_slices_allowed_flag, and wherein the syntax element is slice_collocated_from_l0_flag.
[0578] C34. The method according to any one of solutions C1 to C33, wherein the conversion includes decoding video from a bitstream.
[0579] C35. The method according to any one of solutions C1 to C33, wherein the conversion includes encoding video into a bitstream.
[0580] C36. A method for storing a bitstream representing video in a computer-readable recording medium, comprising: generating a bitstream from video according to the method described in any one or more of solutions C1 to C33; and storing the bitstream in a computer-readable recording medium.
[0581] C37. A video processing apparatus, comprising a processor configured to implement the method according to any one or more of solutions C1 to C36.
[0582] C38. A computer-readable medium storing instructions which, when executed, cause a processor to perform the method according to one or more of Solutions C1 to C36.
[0583] C39. A computer-readable medium storing a bitstream, wherein the bitstream is generated according to any one or more of Solutions C1 to C36.
[0584] C40. A video processing apparatus storing a bitstream, wherein the video processing apparatus is configured to perform the method according to any one or more of Solutions C1 to C36.
[0585] Next, a further list of preferred solutions of some embodiments is provided.
[0586] P1. A video processing method, comprising: performing a conversion between a video region of a video and an encoded / decoded representation of the video, wherein the encoded / decoded representation conforms to format rules, and wherein the format rules stipulate that a value of a first field indicating that weighted prediction is enabled for the video region controls a second field indicating the number of weights associated with a reference picture list associated with the conversion of the video region.
[0587] P2. The method according to Solution P1, wherein, in a case where the first field indicates that weighted prediction is disabled, the format rules stipulate that the second field is excluded from the encoded / decoded representation.
[0588] P3. The method according to Solution P1 or P2, wherein the second field indicating the number of weights associated with the reference picture list indicates a luminance weight.
[0589] P4. The method according to any one of Solutions P1 to P3, wherein the second field indicating the number of weights associated with the reference picture list indicates a chrominance weight.
[0590] P5. The method according to any one of Solutions P1 to P4, wherein the reference picture list corresponds to Reference Picture List 1.
[0591] P6. The method according to any one of Solutions P1 to P5, wherein the video region corresponds to a bi-directional slice (B-slice).
[0592] P7. The method according to any one of Solutions P1 to P5, wherein the video region corresponds to a uni-directional prediction slice (P-slice).
[0593] P8. A video processing method, comprising: performing a conversion between a video including one or more video pictures and a codec representation of the video, wherein the codec representation conforms to format rules, and wherein the format rules stipulate that a syntax element in a picture header of a video picture indicates whether the video picture includes a strip as a bi-predictive strip or bi-predictive (B-strip).
[0594] P9. The method according to solution P8, wherein the syntax element is a single-bit flag.
[0595] P10. The method according to solution P8 or P9, wherein, in a case where a first field indicates that a video picture includes 0 B-strips, the format rules further exclude syntax elements related to a second reference picture list (reference picture list 1).
[0596] P11. The method according to solution P10, wherein the syntax elements related to the second reference picture list are from the picture header.
[0597] P12. The method according to solution P10, wherein the syntax elements include syntax elements related to weight parameters for using the second reference picture list.
[0598] P13. The method according to any one of the above claims, wherein the video region includes video codec units.
[0599] P14. The method according to any one of the above claims, wherein the video region includes video pictures.
[0600] P15. The method according to any one of solutions P1 to P14, wherein the conversion includes encoding the video into a codec representation.
[0601] P16. The method according to any one of solutions P1 to P14, wherein the conversion includes decoding the codec representation to generate pixel values of the video.
[0602] P17. A video decoding device, comprising a processor configured to implement the method according to one or more of solutions P1 to P16.
[0603] P18. A video encoding device, comprising a processor configured to implement the method according to one or more of solutions P1 to P16.
[0604] P19. A computer program product having computer code stored thereon, which when executed by a processor causes the processor to implement the method according to any one of solutions P1 to P16.
[0605] P20. A method, device or system described in this document.
[0606] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, during the conversion from the pixel representation of a video to the corresponding bitstream representation, a video compression algorithm may be applied, and vice versa. As defined by the syntax, the bitstream representation (or simply the bitstream) of the current video block may, for example, correspond to bits that are co-located or scattered in different places within the bitstream. For example, a macroblock may be encoded according to the transform and codec error residual values and also using bits in the headers and other fields in the bitstream.
[0607] The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware (including the structures disclosed in this document and their structural equivalents), or in a combination of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for running by, or controlling the operation of, a data processing apparatus. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances affecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" encompasses all apparatus, 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 programs being discussed, e.g., code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal that is generated to encode information for transmission to a suitable receiver apparatus, e.g., a machine-generated electrical, optical, or electromagnetic signal.
[0608] A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language (including a compiled or interpreted language), and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. The program may be stored as part of a file that holds other programs or data (e.g., one or more scripts in a markup language document), in a single file dedicated to the program being discussed, or in multiple coordinated files (e.g., files that hold one or more modules, subroutines, or portions of code). A computer program may be deployed to run on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0609] The processes and logical flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0610] Processors suitable for running a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any type of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data (e.g., magnetic disks, magneto - optical disks, or optical disks), or operatively coupled to receive data from or transfer data to, or both receive and transfer data from, one or more mass storage devices. However, a computer need not 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 by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto - optical disks; and CD ROM and DVD - ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0611] Although this patent specification contains many details, these should not be construed as limitations on the scope of any subject matter or of what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular technology. Certain features that are described in this patent specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented separately in multiple embodiments or in any suitable sub - combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, in some cases one or more features from a claimed combination can be excluded from the combination, and the claimed combination can be directed to a sub - combination or variation of a sub - combination.
[0612] Similarly, although the operations are depicted in the drawings in a particular order, this should not be construed as requiring that the operations be performed in the particular order shown or in sequential order, or that all of the illustrated operations be performed to achieve the desired result. Additionally, the separation of various system components in the embodiments described in this patent document should not be construed as required in all embodiments.
[0613] Only some embodiments and examples have been described, and other embodiments, enhancements, and variations can be made based on what has been described and illustrated in this patent document.
Claims
1. A video processing method, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, wherein the bitstream conforms to format rules, and wherein the format rules stipulate that when the value of a first flag indicates that weighted prediction information is allowed to exist in a picture header syntax structure and does not exist in a slice header of a reference picture parameter set (PPS), values of a plurality of syntax elements indicating whether a prediction weighting factor is included in the bitstream are inferred based on a slice type of the current slice and a value of a second flag included in the PPS referred to by the current picture; wherein the plurality of syntax elements includes at least one of the following: a first syntax element indicating whether the prediction weighting factor associated with a luminance component associated with reference picture list 0 is included in the bitstream, or a second syntax element indicating whether the prediction weighting factor associated with a chrominance component associated with reference picture list 0 is included in the bitstream; wherein the first syntax element being equal to 0 indicates that the prediction weighting factor associated with the luminance component associated with reference picture list 0 does not exist in the bitstream; wherein the second syntax element being equal to 0 indicates that the prediction weighting factor associated with the chrominance component associated with reference picture list 0 does not exist in the bitstream; wherein when the value of the first flag indicates that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header of the reference PPS, weighted prediction is applied to a unidirectional prediction slice (P-slice) and / or a bidirectional slice (B-slice) of the current picture; and wherein a) the second flag indicates whether weighted prediction is enabled for P-slices of pictures referring to the PPS, wherein in the case where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a P-slice, it is inferred that the first syntax element and the second syntax element are 0, wherein the second flag being 0 means that weighted prediction is not applied to P-slices, the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header of the reference PPS, or b) the second flag indicates whether weighted bi-prediction is enabled for B-slices of pictures referring to the PPS, wherein in the case where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a B-slice, it is inferred that the first syntax element and the second syntax element are 0, wherein the second flag being 0 means that weighted bi-prediction is not applied to B-slices, the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header of the reference PPS.
2. The method according to claim 1, wherein, the plurality of syntax elements includes at least one of the following: A third syntax element indicating whether the prediction weighted factor for the luminance component associated with Reference Picture List 1 is included in the bitstream, or A fourth syntax element indicating whether the prediction weighted factor for the chrominance component associated with Reference Picture List 1 is included in the bitstream.
3. The method according to claim 2, wherein, the first syntax element is luma_weight_l0_flag[i], the second syntax element is chroma_weight_l0_flag[i], the third syntax element is luma_weight_l1_flag[i], and the fourth syntax element is chroma_weight_l1_flag[i], and wherein i is a non-negative integer and each value of i is in the range from 0 to NumRefIdxActive–1, and the value of NumRefIdxActive–1 specifies the maximum reference index of Reference Picture List 0 or Reference Picture List 1.
4. The method according to claim 1, wherein, the second flag is pps_weighted_pred_flag.
5. The method according to claim 2, wherein, the second flag indicates whether weighted bi-prediction is enabled for B-slices of pictures that reference the PPS, and wherein, since the second flag is equal to 0 and the slice type is a bi-directional B-slice, it is inferred that the third syntax element and the fourth syntax element are 0, and wherein the second flag equal to 0 indicates that the weighted bi-prediction is not applied to the B-slice, the third syntax element equal to 0 indicates that the prediction weighted factor for the luminance component associated with Reference Picture List 1 does not exist in the bitstream, and the fourth syntax element equal to 0 indicates that the prediction weighted factor for the chrominance component associated with Reference Picture List 1 does not exist in the bitstream.
6. The method according to claim 1, wherein, the second flag is pps_weighted_bipred_flag.
7. The method according to claim 1, wherein, since the current picture does not include B-slices, the current picture references the PPS with the second flag equal to 0.
8. The method according to claim 1, wherein, since the current picture does not include B-slices, the current picture references the PPS with the first flag equal to 0.
9. The method according to claim 1, wherein, since the first flag is equal to 0 and the current picture does not include B-slices, the value of the syntax element indicating the number of prediction weighted factors associated with Reference Picture List 1 is 0.
10. The method according to claim 1, wherein, the conversion includes decoding the video from the bitstream.
11. The method according to claim 1, wherein, the conversion includes encoding the video into the bitstream.
12. A video data processing apparatus, comprising a processor and a non-transitory memory having instructions thereon, wherein, When executed by the processor, the instructions cause the processor to: perform a conversion between a current slice of a current picture of a video and a bitstream of the video, wherein the bitstream conforms to format rules, and wherein the format rules specify that when the value of a first flag indicates that weighted prediction information is allowed to be present in a picture header syntax structure and is not present in a slice header of a reference picture parameter set (PPS), values of a plurality of syntax elements indicating whether a prediction weighting factor is included in the bitstream are inferred based on a slice type of the current slice and a value of a second flag included in the PPS referenced by the current picture; wherein the plurality of syntax elements includes at least one of: a first syntax element indicating whether the prediction weighting factor for a luminance component associated with reference picture list 0 is included in the bitstream, or a second syntax element indicating whether the prediction weighting factor for a chrominance component associated with reference picture list 0 is included in the bitstream; wherein the first syntax element being equal to 0 indicates that the prediction weighting factor for the luminance component associated with reference picture list 0 is not present in the bitstream; wherein the second syntax element being equal to 0 indicates that the prediction weighting factor for the chrominance component associated with reference picture list 0 is not present in the bitstream; wherein when the value of the first flag indicates that the weighted prediction information is allowed to be present in the picture header syntax structure and is not present in the slice header of the referenced PPS, weighted prediction is applied to a unidirectional prediction slice (P-slice) and / or a bi-directional slice (B-slice) of the current picture; and wherein a) the second flag indicates whether weighted prediction is enabled for P-slices of pictures referencing the PPS, wherein in cases where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a P-slice, the first syntax element and the second syntax element are inferred to be 0, wherein the second flag being 0 means that weighted prediction is not applied to P-slices, the first flag being 1 means that the weighted prediction information is allowed to be present in the picture header syntax structure and is not present in the slice header of the referenced PPS, or b) the second flag indicates whether weighted bi-directional prediction is enabled for B-slices of pictures referencing the PPS, wherein in cases where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a B-slice, the first syntax element and the second syntax element are inferred to be 0, wherein the second flag being 0 means that weighted bi-directional prediction is not applied to B-slices, the first flag being 1 means that the weighted prediction information is allowed to be present in the picture header syntax structure and is not present in the slice header of the referenced PPS.
13. The apparatus according to claim 12, wherein, the plurality of syntax elements includes at least one of: A third syntax element indicating whether the prediction weighting factor for the luminance component associated with Reference Picture List 1 is included in the bitstream, or A fourth syntax element indicating whether the prediction weighting factor for the chrominance component associated with Reference Picture List 1 is included in the bitstream; wherein the first syntax element is luma_weight_l0_flag[i], the second syntax element is chroma_weight_l0_flag[i], the third syntax element is luma_weight_l1_flag[i], and the fourth syntax element is chroma_weight_l1_flag[i], and wherein i is a non-negative integer and each value of i is in the range of 0 to NumRefIdxActive–1, and the value of NumRefIdxActive–1 specifies the maximum reference index of Reference Picture List 0 or Reference Picture List 1.
14. The apparatus according to claim 13, wherein, the second flag is pps_weighted_pred_flag.
15. A non-transitory computer-readable storage medium storing instructions that cause a processor to: perform a conversion between a current slice of a current picture of a video and the bitstream of the video, wherein, the bitstream conforms to format rules, and wherein the format rules specify that when the value of a first flag indicates that weighted prediction information is allowed to exist in a picture header syntax structure and does not exist in a slice header of a Picture Parameter Set (PPS), values of a plurality of syntax elements indicating whether prediction weighting factors are included in the bitstream are inferred based on the slice type of the current slice and the value of a second flag included in the PPS referred to by the current picture; wherein the plurality of syntax elements includes at least one of: a first syntax element indicating whether the prediction weighting factor for the luminance component associated with Reference Picture List 0 is included in the bitstream, or a second syntax element indicating whether the prediction weighting factor for the chrominance component associated with Reference Picture List 0 is included in the bitstream; wherein the first syntax element being equal to 0 indicates that the prediction weighting factor for the luminance component associated with Reference Picture List 0 does not exist in the bitstream; wherein the second syntax element being equal to 0 indicates that the prediction weighting factor for the chrominance component associated with Reference Picture List 0 does not exist in the bitstream; wherein when the value of the first flag indicates that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header referring to the PPS, weighted prediction is applied to a unidirectional prediction slice (P-slice) and / or a bi-directional slice (B-slice) of the current picture; and wherein, a) the second flag indicates whether weighted prediction is enabled for P - stripes of a picture referring to the PPS. When the first syntax element and the second syntax element are included in the bitstream, if the value of the first flag is equal to 1, the second flag is equal to 0, and the stripe type is a P - stripe, it is inferred that the first syntax element and the second syntax element are 0. Herein, the second flag being 0 means that weighted prediction is not applied to P - stripes, the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the stripe header referring to the PPS, or b) the second flag indicates whether weighted bi - prediction is enabled for B - stripes of a picture referring to the PPS. When the first syntax element and the second syntax element are included in the bitstream, if the value of the first flag is equal to 1, the second flag is equal to 0, and the stripe type is a B - stripe, it is inferred that the first syntax element and the second syntax element are 0. Herein, the second flag being 0 means that weighted bi - prediction is not applied to B - stripes, the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the stripe header referring to the PPS.
16. A non - transitory computer - readable recording medium storing a bitstream of a video generated by a method executed by a video processing device, wherein, the method includes: generating the bitstream of the video, the video including a current picture, the current picture including a current stripe, wherein the bitstream conforms to format rules, and wherein the format rules stipulate that when the value of a first flag indicates that weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the stripe header referring to the picture parameter set (PPS), the values of a plurality of syntax elements indicating whether a prediction weighted factor is included in the bitstream are inferred based on the stripe type of the current stripe and the value of a second flag included in the PPS referred to by the current picture; wherein the plurality of syntax elements includes at least one of the following: a first syntax element indicating whether the prediction weighted factor for the luminance component associated with reference picture list 0 is included in the bitstream, or a second syntax element indicating whether the prediction weighted factor for the chrominance component associated with reference picture list 0 is included in the bitstream; wherein the first syntax element being equal to 0 indicates that the prediction weighted factor for the luminance component associated with reference picture list 0 does not exist in the bitstream; wherein the second syntax element being equal to 0 indicates that the prediction weighted factor for the chrominance component associated with reference picture list 0 does not exist in the bitstream; wherein when the value of the first flag indicates that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the stripe header referring to the PPS, weighted prediction is applied to unidirectional prediction stripes (P - stripes) and / or bi - directional stripes (B - stripes) of the current picture; and wherein, a) the second flag indicates whether weighted prediction is enabled for P slices of a picture that references the PPS. When the first syntax element and the second syntax element are included in the bitstream, if the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a P slice, it is inferred that the first syntax element and the second syntax element are 0. Here, the second flag being 0 means that weighted prediction is not applied to P slices, and the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header that references the PPS, or b) the second flag indicates whether weighted bi - prediction is enabled for B slices of a picture that references the PPS. When the first syntax element and the second syntax element are included in the bitstream, if the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a B slice, it is inferred that the first syntax element and the second syntax element are 0. Here, the second flag being 0 means that weighted bi - prediction is not applied to B slices, and the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header that references the PPS.
17. The non - transitory computer - readable recording medium according to claim 16, wherein, the first syntax element is luma_weight_l0_flag[i], the second syntax element is chroma_weight_l0_flag[i], and i is a non - negative integer, and each value of i is in the range from 0 to NumRefIdxActive–1, where the value of NumRefIdxActive–1 specifies the maximum reference index of reference picture list 0; where the second flag is pps_weighted_pred_flag.
18. A method for storing a bitstream of a video, comprising: generating the bitstream of the video, the video including a current picture, the current picture including a current slice, and storing the bitstream in a non - transitory computer - readable recording medium, wherein the bitstream conforms to format rules, and where the format rules specify that when the value of a first flag indicates that weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header of the reference picture parameter set (PPS), the values of multiple syntax elements indicating whether prediction weight factors are included in the bitstream are inferred based on the slice type of the current slice and the value of a second flag included in the PPS referenced by the current picture; where the multiple syntax elements include at least one of the following: a first syntax element indicating whether the prediction weight factor associated with the luminance component of reference picture list 0 is included in the bitstream, or a second syntax element indicating whether the prediction weight factor associated with the chrominance component of reference picture list 0 is included in the bitstream; Among them, the first syntax element being equal to 0 indicates that the prediction weighting factor of the luminance component associated with the reference picture list 0 does not exist in the bitstream; Among them, the second syntax element being equal to 0 indicates that the prediction weighting factor of the chrominance component associated with the reference picture list 0 does not exist in the bitstream; Among them, when the value of the first flag indicates that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header referring to the PPS, weighted prediction is applied to the unidirectional prediction slice (P-slice) and / or the bidirectional slice (B-slice) of the current picture; and Among them, a) the second flag indicates whether weighted prediction is enabled for the P-slices of the pictures referring to the PPS. In the case where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a P-slice, it is inferred that the first syntax element and the second syntax element are 0. The second flag being 0 means that weighted prediction is not applied to P-slices, and the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header referring to the PPS, or b) the second flag indicates whether weighted bidirectional prediction is enabled for the B-slices of the pictures referring to the PPS. In the case where the first syntax element and the second syntax element are included in the bitstream, when the value of the first flag is equal to 1, the second flag is equal to 0, and the slice type is a B-slice, it is inferred that the first syntax element and the second syntax element are 0. The second flag being 0 means that weighted bidirectional prediction is not applied to B-slices, and the first flag being 1 means that the weighted prediction information is allowed to exist in the picture header syntax structure and does not exist in the slice header referring to the PPS.
Citation Information
Patent Citations
High precision explicit weighted prediction for video coding
CN105659603A
Slice header three-dimensional video extension for slice header prediction
US20130057646A1