Signaling prediction weights in general constraint information of a bitstream

The solution enhances video coding efficiency by optimizing the signaling of weighted prediction syntax elements, addressing the inefficiencies in existing video coding standards, thereby reducing the bitrate and improving the video coding efficiency, and reducing the bitrate demands in digital video transmission.

JP7768961B2Active Publication Date: 2025-11-12BYTEDANCE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023215928
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-02-19
Filing Date
2023-12-21
Publication Date
2025-11-12
Estimated Expiration
2041-01-26

AI Technical Summary

Technical Problem

Existing video coding standards, such as VVC, face inefficiencies in signaling and application of weighted prediction syntax elements, leading to unnecessary signaling and resource waste when weighted prediction is not applied to certain slice types.

Method used

Implementing rules and constraints to control the signaling of weighted prediction syntax elements based on slice types and picture properties, including the use of constraint flags and inference rules to optimize signaling and reduce unnecessary data transmission.

Benefits of technology

Enhances video coding efficiency by reducing unnecessary signaling and improving resource utilization, aligning with the goal of reducing bitrate demands in digital video transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007768961000064
    Figure 0007768961000064
  • Figure 0007768961000065
    Figure 0007768961000065
  • Figure 0007768961000066
    Figure 0007768961000066
Patent Text Reader

Abstract

To provide systems, methods and devices for video processing including weighted prediction of video blocks.SOLUTION: An example method includes performing conversion between a current slice of a current picture of video and a bitstream of the video, where the bitstream conforms to a format rule, and where the format rule specifies that a general constraint information syntax structure is present which comprises one or more constraint flags indicating that constraints on explicit weighted prediction are enabled for slices of a set of pictures.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application is a divisional application of Japanese Patent Application No. 2022-549583, filed August 18, 2022, which is based on International Patent Application No. PCT / US2021 / 015017, filed January 26, 2021, which claims priority to and the benefit of U.S. Provisional Patent Application No. US62 / 978,740, filed February 19, 2020. All of the aforementioned patent applications are incorporated herein by reference in their entirety.

[0002] [Technical field] This patent document relates to image and video coding and decoding. [Background technology]

[0003] Digital video accounts for the largest bandwidth usage on the Internet and other digital communication networks, and as the number of connected user devices capable of receiving and displaying video increases, the bandwidth demands for digital video usage are expected to continue to grow. Summary of the Invention

[0004] This document discloses techniques involving weighted prediction that can be used by video encoders and decoders that process video bitstreams to perform video encoding and decoding.

[0005] In one exemplary aspect, a video processing method is disclosed. The method includes performing a conversion between a current slice of a current picture of the video and a bitstream of the video according to a rule, the rule specifying that a value of a first syntax element of a Picture Parameter Set (PPS) and a value 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 a bidirectional slice (B slice) of a coding picture in the bitstream that references the PPS, the second syntax element indicating whether information related to weighted prediction is present in a picture header or a slice header of the coding picture that references the PPS, and the third syntax element indicating a number of weights associated with reference picture list 1 of the current slice.

[0006] In another exemplary aspect, another video processing method is disclosed, the method including: performing a conversion between a current slice of a current picture of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying 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) referenced by the current picture.

[0007] In yet another exemplary 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, the bitstream conforming to a format rule, the format rule specifying the presence of a general constraint information syntax structure including one or more constraint flags indicating that a constraint on explicit weighted prediction is enabled for a slice of the set of pictures.

[0008] In yet another exemplary aspect, another video processing method is disclosed that 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, the rule specifying that one or more constraint flags are included in a parameter set or a header associated with the current slice, the constraint indicating that a constraint on explicit weighted prediction is enabled for the slice of the set of pictures.

[0009] In yet another exemplary aspect, another video processing method is disclosed, the method including performing a conversion between a video including a current picture and a video bitstream, the bitstream conforming to a format rule, the format rule specifying that an indication of whether the current picture excludes a bidirectional slice (B slice) is included in a picture header syntax structure associated with the current picture.

[0010] In yet another exemplary aspect, a video encoder apparatus is disclosed, the video encoder including a processor configured to perform the above-described method.

[0011] In yet another exemplary aspect, a video decoder apparatus is disclosed, the video decoder including a processor configured to perform the above-described method.

[0012] In yet another exemplary aspect, a computer-readable medium having stored thereon code, the code embodying one of the methods described herein in the form of processor-executable code, is disclosed.

[0013] These and other features are described throughout this document. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 is a block diagram illustrating an example video processing system in which various techniques disclosed herein may be implemented. [Figure 2] FIG. 1 is a block diagram of an exemplary hardware platform used for video processing. [Figure 3] 1 is a block diagram illustrating an example video coding system in which some embodiments of the present disclosure may be implemented. [Figure 4] FIG. 1 is a block diagram illustrating an example of an encoder capable of implementing some embodiments of the present disclosure. [Figure 5] FIG. 2 is a block diagram illustrating an example of a decoder capable of implementing some embodiments of the present disclosure. [Figure 6] 1 shows a flowchart of an exemplary method of video processing. [Figure 7] 1 shows a flowchart of an exemplary method of video processing. [Figure 8] 1 shows a flowchart of an exemplary method of video processing. [Figure 9] 1 shows a flowchart of an exemplary method of video processing. [Figure 10] 1 shows a flowchart of an exemplary method of video processing. DETAILED DESCRIPTION OF THE INVENTION

[0015] Section headings are used in this document for ease of understanding and do not limit the applicability of the techniques and embodiments disclosed in each section to that section alone. Furthermore, H.266 terminology is used in some descriptions for ease of understanding only and is not intended to limit the scope of the disclosed techniques. Thus, the techniques described herein are applicable to other video codec protocols and designs.

[0016] 1. Summary This document relates to video coding technology. Specifically, this document relates to the design of PH and SH syntax in video coding. The ideas can be applied, individually or in various combinations, to any video coding standard or non-standard video codec that supports multi-layer video coding, such as the Generic Video Coding (VVC) under development. 2. Abbreviation APS Adaptation Parameter Set AU Access Unit AUD Access Unit Delimiter AVC Advanced Video Coding CLVS Coded Layer Video Sequence CPB Coded Picture Buffer CRA Clean Random Access CTU Coding Tree Unit CVS Coded Video Sequence DPB Decoded Picture Buffer DPS Decoding Parameter Set EOB End Of Bitstream EOS End of Sequence GDR Gradual Decoding Refresh HEVC High Efficiency Video Coding HRD Hypothetical Reference Decoder IDR Instantaneous Decoding Refresh JEM Joint Exploration Model MCTS Motion-Constrained Tile Sets NAL Network Abstraction Layer OLS Output Layer Set PH Picture Header PPS Picture Parameter Set PTL Profile, Tier and Level PU Picture Unit RBSP Raw Byte Sequence Payload SEI Supplemental Enhancement Information SH Slice Header SPS Sequence Parameter Set SVC Scalable Video Coding VCL Video Coding Layer VPS Video Parameter Set VTM VVC Test Model VUI Video Usability Information VVC Versatile Video Coding

[0017] 3. Initial discussion Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, while ISO / IEC developed MPEG-1 and MPEG-4 Visual. These two organizations jointly developed the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / HEVC standards. Starting with H.262, video coding standards have been based on a hybrid video coding architecture that utilizes temporal prediction plus transform coding. In 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) to explore future video coding technologies beyond HEVC. Since then, many new methods have been adopted by the JVET and incorporated into reference software named the Joint Exploration Model (JEM). JVET meetings are held quarterly in parallel, and the new coding standard aims to achieve a 50% bitrate reduction compared to HEVC. The new video coding standard was officially named Generic Video Coding (VVC) at the April 2018 JVET meeting, and the first version of the VVC Test Model (VTM) was released at that time. With ongoing efforts contributing to VVC standardization, new coding methods are adopted for the VVC standard at each JVET meeting. The VVC Working Draft and Test Model VTM are subsequently updated after each meeting. The VVC project is currently aiming for technical completion (FDIS) at the July 2020 meeting. 3.1. PH Syntax and Semantics In the latest VVC draft document, the PH syntax and semantics are as follows: [Table 1] The PH RBSP contains the PH syntax structure, namely picture_header_structure(). [Table 2] TIFF0007768961000003.tif219161TIFF0007768961000004.tif218161TIFF0007768961 000005.tif211159TIFF0007768961000006.tif234160TIFF0007768961000007.tif39161 A PH syntax structure contains information that is common to all slices of the coded picture associated with the PH syntax structure. [Table 3] TIFF0007768961000009.tif208167TIFF0007768961000010.tif204166TIFF0007768 961000011.tif216167TIFF0007768961000012.tif198167TIFF0007768961000013.t if207165TIFF0007768961000014.tif210166TIFF0007768961000015.tif219169TIF F0007768961000016.tif219167TIFF0007768961000017.tif216166TIFF0007768961 000018.tif209163TIFF0007768961000019.tif217168TIFF0007768961000020.tif2 18166TIFF0007768961000021.tif218167TIFF0007768961000022.tif212165TIFF00 07768961000023.tif206167TIFF0007768961000024.tif211166TIFF0007768961000 025.tif218167TIFF0007768961000026.tif220165TIFF0007768961000027.tif94167

[0018] 3.2. SH Syntax and Semantics In the latest VVC draft document, the SH syntax and semantics are as follows: [Table 4] TIFF0007768961000029.tif205162TIFF0007768961000030.tif219159TIFF0007768961000031.tif125162 [Table 5] TIFF0007768961000033.tif208165TIFF0007768961000034.tif211168TIFF0007768961000035.tif215166TIFF0007768961000036.tif213168 TIFF0007768961000037.tif209164TIFF0007768961000038.tif218167TIFF0007768961000039.tif217168TIFF0007768961000040.tif215168 TIFF0007768961000041.tif207165TIFF0007768961000042.tif212168TIFF0007768961000043.tif208165TIFF0007768961000044.tif216166 TIFF0007768961000045.tif218165TIFF0007768961000046.tif214165TIFF0007768961000047.tif207168TIFF0007768961000048.tif152164

[0019] 3.3. Weighted Prediction Syntax and Semantics In the latest VVC draft document, the weighted prediction syntax and semantics are as follows: [Table 6] TIFF0007768961000050.tif66162 [Table 7] TIFF0007768961000052.tif213165TIFF0007768961000053.tif207165

[0020] 4. Examples of technical problems solved by the disclosed technical solutions The existing designs of PPS, PH, and SH syntaxes have the following problems: 1) In the pred_weight_table() syntax in the latest VVC draft document, the syntax element num_l1_weights is signaled when wp_info_in_ph_flag is equal to 1, even when pps_weighted_pred_flag is equal to 1 but pps_weighted_bipred_flag is equal to 0. Consequently, under the same conditions, a list of the syntax element uma_weight_l1_flag[i] may be further signaled, and a list 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] may be further signaled. However, when pps_weighted_bipred_flag is equal to 0, weighted prediction is not applied to B slices, and therefore all these signaled syntax elements are useless. 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 is present in the PH syntax structure of the picture that references the PPS. In this case, when pps_weighted_pred_flag is equal to 0 (in this case, pps_weighted_bipred_flag is equal to 1), the list of luma_weight_l0_flag[i] syntax elements is signaled in the PH syntax structure, but weighted prediction is not applied in P slices, and therefore the value of the list of luma_weight_l0_flag[i] syntax elements 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), weighted prediction is not applied to B slices, so both the list of luma_weight_l0_flag[i] syntax elements and the list of luma_weight_l1_flag[i] syntax elements for B slices should be inferred to be equal to 0. 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 is present in the PH syntax structure of the picture that references the PPS. In this case, if the picture does not have a B slice and at the same time pps_weighted_bipred_flag is equal to 1, all syntax elements in the pred_weight_table() syntax structure for reference picture list 1 are useless.

[0021] 5. Examples of Techniques and Embodiments To solve the above problems, the methods summarized below are disclosed. The inventions should be considered as examples to explain the general concepts and should not be interpreted narrowly. Furthermore, these inventions can be applied individually or combined in any way. In the following methods and embodiments, the most relevant parts that have been added or modified are indicated by underlined, bold, and italic text, and the most relevant parts that have been removed are highlighted by bold double brackets. For example, [[a]] indicates that "a" has been removed. 1. Signaling of weighted prediction related syntax elements: 1) To solve the first problem, whether to signal the number of weights for entries in reference picture list 1 and / or the luma / chroma weights for entries in reference picture list 1 may depend on the enabling of explicit weighted prediction for B slices. a. In one example, in the pred_weight_table() syntax, the following syntax: [Table 8] is changed as follows: [Table 9] And the following semantics: [Table 10] is changed as follows: [Table 11] 2) To solve the second problem, add the following inference to the slice header semantics for luma_weight_l0_flag[i], chroma_weight_l0_flag[i], luma_weight_l1_flag[i], and chroma_weight_l1_flag[i]: 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 0 to NumRefIdxActive[0]-1, inclusive, 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. 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 0 to NumRefIdxActive[0]-1, inclusive, 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. c. Alternatively, further, when pps_weighted_bipred_flag is equal to 0 and slice_type is equal to B, for each value of i in the range of 0 to NumRefIdxActive[1]-1, inclusive, 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. 3) To solve the third problem, the following alternative approach can be applied: a. For pictures that do not have B slices, bullet item 2.1 above applies, the encoder forces them to reference PPSs with 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 shall only reference PPSs with pps_weighted_bipred_flag equal to 0. b. For pictures that do not have B slices, the encoder forces them to reference PPSs with wp_info_in_ph_flag equal to 0. This can be achieved by adding the following constraint: Pictures that do not contain B slices shall only reference PPSs with wp_info_in_ph_flag equal to 0. c. For pictures that do not have 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 any B slices, the value of num_l1_weights shall be equal to 0. 4) An indication that explicit weighted prediction is enabled may be signaled in the SPS using one flag. a. Alternatively, the SPS indicator of this one flag may also be used to adjust the signaling of indicators of explicit weighted prediction for P and B slices in SPS (ie, sps_weighted_pred_flag and sps_weighted_bipred_flag). b. Alternatively, one or more constraint flags may be added to the general constraint information syntax to indicate constraints on the explicit weighted prediction. i. In one example, one constraint flag, for example named no_explicit_weighted_prediction_constraint_flag, is added, and when this constraint flag indicates that explicit weighted prediction is not applied to both P slices and B slices (or only to P slices, or only to B slices), the corresponding SPS flag shall be equal to 0. 5) An indication that explicit weighted prediction is enabled may be signaled in the PPS using one flag. a. Alternatively, this one flag PPS indicator may also be used to coordinate the signaling of explicit weighted prediction indicators for P and B slices in the PPS (ie, pps_weighted_pred_flag and pps_weighted_bipred_flag). b. Alternatively, one or more constraint flags may be added to the general constraint information syntax to indicate constraints on the explicit weighted prediction. i. In one example, one constraint flag, for example named no_explicit_weighted_prediction_constraint_flag, is added, and when this constraint flag indicates that explicit weighted prediction is not applied to both P slices and B slices (or only to P slices, or only to B slices), the corresponding PPS flag shall be equal to 0. 6) An indication that explicit weighted prediction is applied to a P or B slice may be signaled in the picture header or slice header instead of being signaled in the SPS and PPS. a. In one example, whether such an indication is signaled in the picture header or slice header may depend on where the RPL is present, i.e., whether the RPL information is present in the PH syntax structure or the SH syntax structure (e.g., according to the value of rpl_info_in_ph_flag). b. Alternatively, whether to signal such an indication may also depend on the type of slice. c. Alternatively, whether to signal such an indication may also depend on whether the current picture may contain inter slices, or may contain P slices, or may contain B slices.

[0022] 2. Indication of whether a picture does not contain B slices and the use of this indication to skip the signaling of some syntax elements: 1) An indication of whether the current picture does not contain a B slice may be added to the PH syntax structure. a. In one example, this indicator is a flag named, for example, ph_b_slices_allowed_flag, where ph_b_slices_allowed_flag equal to 1 specifies that the picture may contain one or more B slices, and ph_b_slices_allowed_flag equal to 0 specifies that the picture does not contain any B slices. i. Alternatively, in addition, ph_b_slices_allowed_flag may be signaled in the PH syntax structure only when ph_inter_slice_allowed_flag is equal to 1. ii. Alternatively, further, when ph_inter_slice_allowed_flag is equal to 0, the value of ph_b_slices_allowed_flag may be inferred to be equal to 0. b. In one example, when ph_b_slices_allowed_flag is equal to 0, the syntax elements for reference picture list 1 in the ref_pic_lists() syntax and the ref_pic_list_struct() syntax may be skipped. 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 may be skipped. i. Alternatively, further, when ph_b_slices_allowed_flag is equal to 0, the value of mvd_l1_zero_flag may be inferred to be equal to 1. d. In one example, when ph_b_slices_allowed_flag is equal to 0, num_l1_weights and other parameters in the pred_weight_table() syntax for reference picture list 1 may be skipped. i. Alternatively, further, when ph_b_slices_allowed_flag is equal to 0, the value of num_l1_weight may be inferred to be equal to 0. 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 may be skipped. i. Alternatively, further, when ph_b_slices_allowed_flag is equal to 0, the value of NumRefIdxActive[1] may be inferred to be equal to 0. 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 may be skipped. i. Alternatively, further, when ph_b_slices_allowed_flag is equal to 0, the value of slice_collocated_from_l0_flag may be inferred to be equal to 1.

[0023] 6. Implementation Below are some exemplary embodiments of some of the inventive aspects summarized above in Section 5 that can be applied to the VVC specification. The text to be changed is based on the latest VVC text in JVET-Q2001-vC. The most relevant portions that have been added or modified are indicated by underlined, bold, and italicized text, and the most relevant portions that have been removed are highlighted in bold double brackets. For example, [[a]] indicates that an "a" has been removed. There are several other changes that are editorial in nature and therefore not highlighted. 6.1. First embodiment This is an embodiment of items 1.1, 1.1.a, 1.2.a, and 1.2.b summarized in Section 5 above. [Table 12] TIFF0007768961000059.tif79162 [Table 13] TIFF0007768961000061.tif148169 [Table 14] TIFF0007768961000063.tif111169

[0024] 1 is a block diagram illustrating an example video processing system 1000 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1000. System 1000 may include an input 1002 that receives video content. The video content may be received in a raw or uncompressed format, e.g., 8- or 10-bit multi-component pixel values, or 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), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0025] System 1000 may include a coding component 1004 capable of implementing various coding or encoding methods described herein. Coding component 1004 may reduce the average bitrate of video from input 1002 to the output of coding component 1004 to generate a coded representation of the video. Thus, this coding technique is sometimes referred to as a video compression or video transcoding technique. The output of coding component 1004 may be stored or transmitted via a connected communication, as represented by component 1006. The stored or communicated bitstream (or coded) representation of the video received at input 1002 can be used by component 1008 to generate pixel values ​​or displayable video that is sent to display interface 1010. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Furthermore, while certain video processing operations are referred to as "coding" operations or tools, it will be understood that the coding tools or operations are used in an encoder, and that corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.

[0026] 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 herein may be implemented in a variety of electronic devices such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display. can.

[0027] FIG. 2 is a block diagram of a video processing device 2000. The device 2000 can be used to perform one or more of the methods described herein. The device 2000 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The device 2000 can include one or more processors 2002, one or more memories 2004, and video processing hardware 2006. The processor 2002 can be configured to perform one or more of the methods described herein (e.g., in FIGS. 6-10). The memory(s) 2004 can be used to store data and code used to perform the methods and techniques described herein. The video processing hardware 2006 can be used to implement some of the techniques described herein in hardware circuitry. In some embodiments, the hardware 2006 can reside partially or completely within the processor 2002 and can be, for example, a graphics processor.

[0028] 3 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure. As shown in FIG. 3, video coding system 100 may include a source device 110 and a destination device 120. Source device 110 generates encoded video data, which may be referred to as a video encoding device. Destination device 120 can decode the encoded video data generated by source device 110, which may be referred to as a video decoding device. Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0029] The video source 112 may include a source 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 such sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a bit sequence forming a coded representation of the video data. The bitstream may include coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or transmitter. The coded video data may be transmitted directly to the destination device 120 over the network 130a via the I / O interface 116. The coded video data may also be stored on a storage medium / server 130b for access by the destination device 120.

[0030] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .

[0031] I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may obtain encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120 or may be external to destination device 120 configured to interface with an external display device.

[0032] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVM) standard, and other current and / or future standards.

[0033] FIG. 4 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 in the system 100 shown in FIG.

[0034] Video encoder 200 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 4, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be distributed among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0035] The functional components of the video encoder 200 may include a partitioning unit 201, a predication 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 transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

[0036] In other examples, video encoder 200 may include more, fewer, or different functional components. In one example, predication unit 202 may include an intra block copy (IBC) unit. The IBC unit can perform predication in IBC mode, in which at least one reference picture is the picture in which the current video block is located.

[0037] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are shown separately in the example of FIG. 4 for illustrative purposes.

[0038] Partitioning unit 201 may partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support a variety of video block sizes.

[0039] Mode select unit 203 may select one of the coding modes, intra or inter, based on, for example, an error result, and provide the resulting intra- or inter-coded block to residual generation unit 207, which generates residual block data, and to reconstruction unit 212, which reconstructs coded blocks for use as reference pictures. In some examples, mode select unit 203 may select a combination of intra and inter predication (CIIP) mode, in which predication is based on an interpredication signal and an intrapredication signal. Mode select unit 203 may also select the resolution of motion vectors for blocks (e.g., sub-pixel or integer pixel precision) in the case of interpredication.

[0040] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 may determine a predictive video block for the current video block based on the motion information and decoded samples from buffer 213 of pictures other than the picture associated with the current video block.

[0041] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block depending on, for example, whether the current video block is in an I slice, a P slice, or a B slice.

[0042] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 204 may then generate a reference index that indicates a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector that indicates a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 may generate a predictive video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0043] In another example, motion estimation unit 204 may perform bidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 for a reference video block for the current video block and may also search reference pictures in list 1 for another reference video block for the current video block. Motion estimation unit 204 may then generate reference indexes that indicate the reference pictures in lists 0 and 1 that contain the reference video blocks, and motion vectors that indicate spatial displacements between the reference video blocks and the current video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information for the current video block. Motion compensation unit 205 may generate a predictive video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0044] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.

[0045] In some examples, motion estimation unit 204 may not output a full set of motion information for the current video. Rather, motion estimation unit 204 may signal the motion information of the current video block by reference to the motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

[0046] In one example, motion estimation unit 204 may indicate, in a syntax structure associated with the current video block, a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.

[0047] In another example, 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 a difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may determine the motion vector of the current video block using the motion vector of the indicated video block and the motion vector difference.

[0048] As discussed above, video encoder 200 may predictively signal motion vectors. Two example predictive signaling techniques that may be implemented by video encoder 200 include advanced motion vector predication (AMVP) and merge mode signaling.

[0049] Intra prediction unit 206 may perform intra prediction on the current video block. When intra prediction unit 206 performs intra prediction on the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks within the same picture. The predictive data for the current video block may include the predicted video block and various syntax elements.

[0050] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the prediction video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

[0051] In other examples, for the current video block, for example in skip mode, residual data for the current video block may not exist and residual generation unit 207 may not perform a subtraction operation.

[0052] Transform processing unit 208 may 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.

[0053] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may 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.

[0054] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by predication unit 202 to create a reconstructed video block associated with the current block for storage in buffer 213.

[0055] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.

[0056] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. Once the entropy encoding unit 214 receives the data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.

[0057] FIG. 5 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 114 in the system 100 shown in FIG.

[0058] Video decoder 300 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 5, video decoder 300 includes multiple functional components. The techniques described in this disclosure may be distributed among various components of video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0059] 5, 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. Video decoder 300, in some examples, may perform a decoding path that is generally inverse to the encoding path described with respect to video encoder 200 (FIG. 4).

[0060] The entropy decoding unit 301 may retrieve an encoded bitstream. This encoded bitstream may include entropy-coded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy-coded video data, and from the entropy-decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 may determine such information by, for example, implementing AMVP and merge mode.

[0061] The motion compensation unit 302 may perform interpolation, possibly based on an interpolation filter, to create a motion-compensated block. An identifier of the interpolation filter to be used with sub-pixel accuracy may be included in a syntax element.

[0062] Motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of the reference block using the interpolation filters used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and create a predictive block using the interpolation filters.

[0063] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to encode the frames and / or slices of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is partitioned, a mode indicating how each partition is coded, one or more reference frames (and a reference frame list) for each inter-coded block, and other information for decoding the encoded video sequence.

[0064] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks, for example, using an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes, or de-quantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0065] Reconstruction unit 306 may sum the residual blocks with corresponding prediction blocks generated by motion compensation unit 202 or intra-prediction unit 303 to form decoded blocks. If desired, a deblocking filter may be further applied to filter the decoded blocks to remove blockiness artifacts. The decoded video blocks are then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra-predication and further produces decoded video for presentation on a display device.

[0066] 6 to 10 illustrate exemplary ways in which the technical solutions described above can be implemented, for example, in the embodiments shown in FIGS.

[0067] 6 shows a flowchart of an example method 600 of video processing. The method 600 includes, at operation 610, performing a conversion between a current slice of a current picture of the video and a bitstream of the video according to a rule, the rule specifying that a value of a first syntax element of a picture parameter set (PPS) and a value 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 a bidirectional slice (B slice) of a coding picture in the bitstream that references the PPS, the second syntax element indicating whether information related to weighted prediction is present in a picture header or a slice header of the coding picture that references the PPS, and the third syntax element indicating a number of weights associated with reference picture list 1 of the current slice.

[0068] 7 shows a flowchart of an example method 700 of video processing. The method 700 includes, at operation 710, performing a conversion between a current slice of a current picture of the video and a bitstream of the video, where the bitstream conforms to a format rule specifying 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.

[0069] 8 shows a flowchart of an example method of video processing 800. The method 800 includes, at operation 810, performing a conversion between a current slice of a current picture of the video and a bitstream of the video, where the bitstream complies with a format rule specifying the presence of a general constraint information syntax structure including one or more constraint flags indicating that constraints on explicit weighted prediction are enabled for the slice of the set of pictures.

[0070] 9 shows a flowchart of an example method of video processing 900. The method 900 includes, at operation 910, performing a conversion between a current slice of a current picture of the video and a bitstream of the video according to a rule, the rule specifying that one or more constraint flags indicating that a constraint on explicit weighted prediction is enabled for the slice of the set of pictures are included in a parameter set or header associated with the current slice.

[0071] 10 shows a flowchart of an example method of video processing 1000. The method 1000 includes, at operation 1010, performing a conversion between a video including a current picture and a video bitstream, where the bitstream conforms to a format rule that specifies that an indication of whether the current picture excludes a bidirectional slice (B slice) is included in a picture header syntax structure associated with the current picture.

[0072] Next, we provide a list of preferred solutions in some embodiments.

[0073] A1. A method of video processing, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to rules, wherein the rules specify that a value of a first syntax element of a picture parameter set (PPS) and a value 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 a bidirectional slice (B slice) of a coding picture in the bitstream that references the PPS, the second syntax element indicating whether information related to the weighted prediction is present in a picture header or slice header of a coding picture that references the PPS, and the third syntax element indicating the number of weights associated with reference picture list 1 of the current slice.

[0074] A2. The method according to Solution A1, wherein 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.

[0075] A3. The method according to Solution A1 or A2, wherein the first syntax element equal to zero indicates that the weighted prediction is disabled for a B slice of the coded picture that references the PPS.

[0076] A4. The method according to Solution A1 or A2, wherein the first syntax element equal to 1 indicates that the weighted prediction is enabled for a B slice of the coded picture that references the PPS.

[0077] A5. The method according to Solution A1 or A2, wherein the first syntax element is equal to zero when the fourth syntax element included in the sequence parameter set (SPS) is equal to zero.

[0078] A6. The method according to Solution A5, wherein the fourth syntax element is sps_weighted_bipred_flag.

[0079] A7. The method according to Solution A1 or A2, wherein the first syntax element being equal to zero indicates that the number of weights associated with Reference Picture List 1 is not included in the slice header of the current slice.

[0080] A8. A 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.

[0081] A9. The method according to any one of Solutions A1 to A8, wherein the conversion comprises decoding the video from the bitstream.

[0082] A10. The method according to any one of Solutions A1 to A8, wherein the converting comprises encoding the video into the bitstream.

[0083] A11. A method for storing a bitstream representing a video on a computer-readable recording medium, comprising the steps of generating the bitstream from the video according to a method described in any one or more of Solutions A1 to A8, and storing the bitstream on the computer-readable recording medium.

[0084] A12. A video processing device including a processor configured to perform the method according to any one or more of Solutions A1 to A11.

[0085] A13. A computer readable medium having stored thereon instructions that, when executed, cause a processor to perform a method as described in one or more of Solutions A1-A11.

[0086] A14. A computer-readable medium storing a bitstream generated according to any one or more of Solutions A1 to A11.

[0087] A15. A video processing device for storing a bitstream, the video processing device being configured to implement the method according to any one or more of solutions A1 to A11.

[0088] Next, we provide another list of solutions that are preferred in some embodiments.

[0089] B1. A method of video processing, 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 a format rule, and the format rule specifies 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 picture parameter set (PPS) referenced by the current picture.

[0090] B2. The method described in Solution B1, wherein the plurality of syntax elements include a first syntax element indicating the number of luma weights associated with Reference Picture List 0 of the current slice, a second syntax element indicating the number of chroma weights associated with Reference Picture List 0 of the current slice, a third syntax element indicating the number of luma weights associated with Reference Picture List 1 of the current slice, and a fourth syntax element indicating the number of luma weights associated with Reference Picture List 1 of the current slice.

[0091] B3. The method described in 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_l0_flag[i], where i is a non-negative integer.

[0092] B4. A method according to Solution B2 or B3, wherein the first flag indicates whether weighted prediction is enabled for a picture that references the PPS, and the first syntax element and the second syntax element are inferred to be zero because the first flag is equal to zero and the slice type is a unidirectionally predicted slice (P slice).

[0093] B5. The method according to Solution B4, wherein the first flag is pps_weighted_pred_flag.

[0094] B6. A method according to Solution B2 or B3, wherein the first flag indicates whether weighted bi-prediction is enabled for the picture that references the PPS, and the first syntax element and the second syntax element are inferred to be zero because the first flag is equal to zero and the slice type is a bidirectional slice (B slice).

[0095] B7. A method according to Solution B2 or B3, wherein the first flag indicates whether weighted bi-prediction is enabled for the picture that references the PPS, and the third syntax element and the second syntax element are inferred to be zero because the first flag is equal to zero and the slice type is a bi-directional slice (B slice).

[0096] B8. The method according to any one of solutions B6 to B7, wherein the first flag is pps_weighted_bipred_flag.

[0097] B9. The method according to any one of Solutions B6 to B8, wherein the current picture references a PPS for which the first flag is equal to zero due to the current picture excluding a B slice.

[0098] B10. The method according to any one of Solutions B6 to B8, wherein the current picture references a PPS whose second flag is equal to zero due to the current picture excluding a B slice.

[0099] B11. A method according to any one of Solutions B6 to B8, wherein the value of a syntax element indicating the number of weights associated with Reference Picture List 1 of the current slice is zero because the second flag is equal to zero and the current picture excludes a B slice.

[0100] B12. The method according to Solution B10 or B11, wherein the second flag indicates whether information related to weighted prediction is present in a picture header or slice header of a picture that references the PPS.

[0101] B13. The method according to any one of Solutions B10 to B12, wherein the second flag is wp_info_in_ph_flag.

[0102] B14. The method according to any one of Solutions B1 to B13, wherein the conversion comprises decoding the video from the bitstream.

[0103] B15. The method according to any one of Solutions B1 to B13, wherein the converting comprises encoding the video into the bitstream.

[0104] B16. A method for storing a bitstream representing a video on a computer-readable recording medium, comprising: generating the bitstream from the video according to a method described in any one or more of Solutions B1 to B13; and storing the bitstream on the computer-readable recording medium.

[0105] B17. A video processing device including a processor configured to perform the method according to any one or more of solutions B1 to B16.

[0106] B18. A computer-readable medium having stored thereon instructions that, when executed, cause a processor to perform a method according to one or more of solutions B1 to B16.

[0107] B19. A computer-readable medium storing a bitstream generated according to any one or more of solutions B1 to B16.

[0108] B20. A video processing device for storing a bitstream, the video processing device being configured to implement the method according to any one or more of solutions B1 to B16.

[0109] Next, we provide yet another list of solutions that are preferred in some embodiments.

[0110] C1. A method of video processing, 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 a format rule, and the format rule specifies the presence of a general constraint information syntax structure including one or more constraint flags indicating that a constraint on explicit weighted prediction is enabled for a slice of a set of pictures.

[0111] C2. The method according to Solution C1, wherein the one or more constraint flags are included in the bitstream.

[0112] 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.

[0113] 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.

[0114] C5. The method described in Solution C1, wherein the one or more constraint flags include a first constraint flag indicating whether the explicit weighted prediction is applied to one or both of unidirectionally predictive slices (P slices) and bi-predictive slices (B slices) of the set of pictures, and the value of the first constraint flag matches the value of a second flag included in a sequence parameter set (SPS) associated with the current slice.

[0115] C6. The method according to Solution C5, wherein the first constraint flag is gci_no_explicit_weighted_prediction_constraint_flag.

[0116] C7. The method according to solution C5, wherein the first constraint flag is equal to zero due to the second flag being equal to one.

[0117] C8. The method according to solution C7, wherein the second flag is sps_weighted_pred_flag or sps_weighted_bipred_flag.

[0118] C9. A method of video processing, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video according to rules, wherein the rules specify that one or more constraint flags indicating that a constraint on explicit weighted prediction is enabled for a slice of a set of pictures are included in a parameter set or header associated with the current slice.

[0119] C10. A method as described in Solution C9, wherein the one or more constraint flags include a first flag indicating whether an indication of explicit weighted prediction for a unidirectionally predicted slice (P slice) or a bi-predictive slice (B slice) is included in a sequence parameter set (SPS) associated with the current slice.

[0120] C11. The method according to solution C10, wherein the first flag is sps_weighted_pred_flag or sps_weighted_bipred_flag.

[0121] C12. The method described in Solution C9, wherein the one or more constraint flags include a first flag indicating whether an indication of explicit weighted prediction for a unidirectionally predicted slice (P slice) or a bi-predictive slice (B slice) is included in a picture parameter set (PPS) associated with the current slice.

[0122] C13. The method according to solution C12, wherein the first flag is pps_weighted_pred_flag or pps_weighted_bipred_flag.

[0123] C14. The method described in Solution C9, wherein the one or more constraint flags include a first constraint flag indicating whether the explicit weighted prediction is applied to one or both of a unidirectionally predicted slice (P slice) and a bi-predictive slice (B slice), and the value of the first constraint flag matches the value of a second constraint flag included in a picture parameter set (PPS) associated with the current slice.

[0124] C15. The method described in Solution C9, wherein the one or more constraint flags include a first flag indicating whether an indication of explicit weighted prediction for a unidirectionally predicted slice (P slice) or a bi-predictive slice (B slice) is included in a picture header or slice header associated with the current slice.

[0125] C16. The method according to solution C15, wherein the indicator is included in the picture header or the slice header due to information relating to a reference picture list being included in a picture header syntax structure or a slice header syntax structure, respectively.

[0126] C17. The method of solution C15, wherein the including of the indicator is based on a slice type of a slice associated with the current video block.

[0127] C18. The method according to solution C15, wherein including the indication is based on the current picture including an inter-slice, a P-slice, or a B-slice.

[0128] C19. A method of video processing, comprising: performing a conversion between a video including a current picture and a bitstream of the video, wherein the bitstream conforms to a format rule, and the format rule specifies that an indication of whether the current picture excludes a bidirectional slice (B slice) is included in a picture header syntax structure associated with the current picture.

[0129] C20. The method according to solution C19, wherein the index equal to 1 specifies that the current picture contains one or more B slices.

[0130] C21. The method according to solution C19, wherein the index equal to zero specifies that the current picture excludes B slices.

[0131] C22. The method according to solution C20 or C21, wherein the indicator is ph_b_slices_allowed_flag.

[0132] C23. The method according to solution C19, wherein the index being equal to zero specifies that syntax elements in a syntax structure associated with reference picture list 1 are excluded from the bitstream.

[0133] C24. The method according to solution C23, wherein the indicator is ph_b_slices_allowed_flag and the syntax structure is ref_pic_lists() or ref_pic_list_struct().

[0134] C25. The method according to solution C19, wherein the index being equal to zero specifies that syntax elements related to parsing a syntax structure for a motion vector differential coding tool are excluded from the picture header syntax structure.

[0135] C26. The method according to solution C19, specifying that the index being equal to zero causes the value of a syntax element associated with parsing a syntax structure for a motion vector differential coding tool to be inferred to be equal to one.

[0136] C27. The method according to solution C25 or C26, wherein the indicator is ph_b_slices_allowed_flag and the syntax element is mvd_l1_zero_flag.

[0137] C28. The method of solution C19, wherein the index equal to zero specifies that syntax elements related to weighted prediction of the current video block in the current picture are excluded from the bitstream.

[0138] C29. The method according to solution C28, wherein the indicator is ph_b_slices_allowed_flag and the syntax element is num_l1_weights.

[0139] C30. The method according to solution C19, wherein the index being equal to zero specifies that a syntax element associated with a maximum reference index of a reference picture list associated with the current picture is excluded from the slice header syntax structure.

[0140] C31. The method according to solution C30, wherein the indicator is ph_b_slices_allowed_flag and the syntax element is num_ref_idx_active_minus1.

[0141] C32. The method described in Solution C19, wherein the index being equal to zero specifies that syntax elements related to a collocated slice used for temporal motion vector prediction of a current video block in the current picture are derived from reference picture list 0 associated with the current picture and are excluded from the slice header syntax structure.

[0142] C33. The method according to solution C32, wherein the indicator is ph_b_slices_allowed_flag and the syntax element is slice_collocated_from_l0_flag.

[0143] C34. The method according to any one of Solutions C1 to C33, wherein the conversion comprises decoding the video from the bitstream.

[0144] C35. The method according to any one of Solutions C1 to C33, wherein the converting comprises encoding the video into the bitstream.

[0145] C36. A method for storing a bitstream representing a video on a computer-readable recording medium, comprising: generating the bitstream from the video according to a method described in any one or more of Solutions C1 to C33; and storing the bitstream on the computer-readable recording medium.

[0146] C37. A video processing device including a processor configured to perform the method according to any one or more of solutions C1 to C36.

[0147] C38. A computer-readable medium having stored thereon instructions that, when executed, cause a processor to perform a method according to one or more of solutions C1 to C36.

[0148] C39. A computer-readable medium storing a bitstream generated according to any one or more of solutions C1 to C36.

[0149] C40. A video processing device for storing a bitstream, the video processing device being configured to implement the method according to any one or more of solutions C1 to C36.

[0150] Next, we provide yet another list of solutions that are preferred in some embodiments.

[0151] P1. A video processing method, comprising: performing a conversion between a video region of a video and a coded representation of the video, wherein the coded representation conforms to a format rule, the format rule specifying that a value of a first field indicating enablement of weighted prediction for the video region controls whether a second field indicates the number of weights associated with a reference picture list associated with the conversion of the video region.

[0152] P2. The method according to Solution P1, wherein the formatting rules specify that if the first field indicates that the weighted prediction is disabled, then the second field is excluded from the coded representation.

[0153] 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 luma weight.

[0154] 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 chroma weight.

[0155] P5. The method according to any one of Solutions P1 to P4, wherein the reference picture list corresponds to Reference Picture List 1.

[0156] P6. The method according to any one of Solutions P1 to P5, wherein the video region corresponds to a bidirectional slice (B slice).

[0157] P7. The method according to any one of Solutions P1 to P5, wherein the video region corresponds to a unidirectionally predicted slice (P slice).

[0158] P8. A video processing method, comprising: performing a conversion between a video comprising one or more video pictures and a coded representation of said video, wherein said coded representation conforms to a format rule, said format rule specifying that a syntax element in a picture header of a video picture indicates whether said video picture comprises a bidirectionally predicted slice or a slice that is bi-predictive (B slice).

[0159] P9. The method according to solution P8, wherein the syntax element is a single-bit flag.

[0160] P10. A method according to solution P8 or P9, wherein the format rules further exclude syntax elements relating to a second reference picture list (Reference Picture List 1) if the first field indicates that the video picture contains zero B slices.

[0161] P11. The method according to solution P10, wherein the syntax element relating to the second reference picture list is from the picture header.

[0162] P12. The method according to solution P10, wherein the syntax elements include syntax elements related to weighting parameters for using the second reference picture list.

[0163] P13. A method according to any one of the preceding claims, wherein the video region comprises a video coding unit.

[0164] P14. A method according to any preceding claim, wherein the video region comprises a video picture.

[0165] P15. The method according to any one of solutions P1 to P14, wherein the conversion comprises encoding the video into the coded representation.

[0166] P16. The method according to any one of Solutions P1 to P14, wherein the conversion comprises decoding the coded representation to generate pixel values ​​of the video.

[0167] P17. A video decoding device including a processor configured to implement the method according to one or more of solutions P1 to P16.

[0168] P18. A video encoding device including a processor configured to implement the methods according to one or more of solutions P1 to P16.

[0169] P19. A computer program product having stored thereon computer code which, when executed by a processor, causes the processor to perform the method of any one of solutions P1 to P16.

[0170] P20. A method, apparatus, or system described in this document.

[0171] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion of a pixel representation of a video to a corresponding bitstream representation, or vice versa. A bitstream representation (or simply, bitstream) of a current video block may correspond to bits co-located or spread at different locations within the bitstream, e.g., as defined by a syntax. For example, a macroblock may be encoded in terms of transformed and coded error residual values, and further using bits in headers and other fields within the bitstream.

[0172] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can 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 execution by or for controlling the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of these. The term "data processing apparatus" encompasses all apparatuses, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, an apparatus can include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example, a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiver device.

[0173] A computer program (also known as a program, software, software application, script, or code) can be written in any type of programming language, including compiled or interpreted languages, and it can 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. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0174] The processes and logic flows described herein may 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 logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0175] Processors suitable for executing a computer program include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives 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. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data from or transfer data to them, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, 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 memory may be supplemented by, or incorporated in, special-purpose logic circuitry.

[0176] While this patent document contains many details, these should not be considered limitations on any subject matter or the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular approaches. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, while features may be described above as acting in particular combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be carved out of the combination, and the claimed combination may be directed to subcombinations or variations of subcombinations.

[0177] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring such operations to be performed in the particular order or sequence shown, or that all illustrated operations be performed, to achieve desired results. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0178] Only a few implementations and examples have been described, and other implementations, extensions, and variations may be made based on what is described and illustrated in this patent document.

Claims

1. 1. A method of video processing, comprising: performing a conversion between a current slice of a current picture of a video and a bitstream of the video; the bitstream conforms to format rules; the format rule specifies that, when a value of a first syntax element indicates that weighted prediction information is allowed to be present in a picture header syntax structure but is not present in a slice header that references a Picture Parameter Set (PPS), values ​​of a plurality of flags indicating whether prediction weighting factors are included in the bitstream are inferred based on a slice type of a current slice and a value of a second syntax element included in a PPS referenced by the current picture; the second syntax element indicates whether weighted prediction is enabled for a P slice of a picture that references the PPS, or the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture that references the PPS; If the value of the first syntax element 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 that references the PPS, weighted prediction is enabled for a P slice and / or a B slice of the current picture. method.

2. The plurality of flags are: a first flag indicating whether the prediction weighting factor for a luma component associated with reference picture list 0 is included in the bitstream; a second flag indicating whether the prediction weighting factors for the chroma components associated with the reference picture list 0 are included in the bitstream; a third flag indicating whether the prediction weighting factor for the luma component associated with reference picture list 1 is included in the bitstream; or a fourth flag indicating whether the prediction weighting factors for the chroma components associated with the reference picture list 1 are included in the bitstream; The method of claim 1 , comprising at least one of:

3. 3. The method of claim 2, wherein the first flag is luma_weight_l0_flag[i], the second flag is chroma_weight_l0_flag[i], the third flag is luma_weight_l1_flag[i], and the fourth flag is chroma_weight_l1_flag[i], where i is a non-negative integer, each value of i ranges from 0 to NumRefIdxActive-1, and the value of NumRefIdxActive-1 specifies a maximum reference index for the reference picture list 0 or the reference picture list 1.

4. If the second syntax element indicates whether weighted prediction is enabled for a P slice of a picture referencing the PPS, when the second syntax element is equal to 0 and the slice type is a P slice, the first flag and the second flag are inferred to be 0, wherein the second syntax element being equal to 0 indicates that the weighted prediction is not applied to the P slice, the first flag being equal to 0 indicates that the prediction weighting factors for the luma components associated with the reference picture list 0 are not present in the bitstream, and the second flag being equal to 0 indicates that the prediction weighting factors for the chroma components associated with the reference picture list 0 are not present in the bitstream. the second syntax element is pps_weighted_pred_flag; The method of claim 2.

5. If the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture referencing the PPS, and the second syntax element is equal to 0 and the slice type is a B slice, then the first flag and the second flag are inferred to be 0, wherein the second syntax element being equal to 0 indicates that the explicit weighted prediction is not applied to the B slice, the first flag being equal to 0 indicates that the prediction weighting factors for the luma components associated with the reference picture list 0 are not present in the bitstream, and the second flag being equal to 0 indicates that the prediction weighting factors for the chroma components associated with the reference picture list 0 are not present in the bitstream. the second syntax element is pps_weighted_bipred_flag; The method of claim 2.

6. the format rules further specify that if the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture referencing the PPS, then a value of the second syntax element in the PPS and a value of the first syntax element in the PPS control whether a third syntax element is included in the bitstream; the first syntax element indicates whether the weighted prediction information is present in a picture header or a slice header of a coded picture in the bitstream that references the PPS; The third syntax element indicates the number of weights associated with reference picture list 1 of the current slice. The method of claim 1.

7. The method of claim 6 , wherein the first syntax element is wp_info_in_ph_flag, the second syntax element is pps_weighted_bipred_flag, and the third syntax element is num_l1_weights.

8. 7. The method of claim 6, wherein the third syntax element indicates the number of weights associated with the reference picture list 1 when the value of the second syntax element indicates that the explicit weighted prediction is enabled for the B slice of the picture that references the PPS and the value of the first syntax element indicates that the information related to the weighted prediction is allowed to be present in the picture header syntax structure but is not present in the slice header that references the PPS.

9. 9. The method of claim 8, wherein a value of the second syntax element equal to 0 indicates that the explicit weighted prediction is disabled for the B slice of a picture that references the PPS, and a value of the second syntax element equal to 1 indicates that the explicit weighted prediction is enabled for the B slice of a picture that references the PPS.

10. 9. The method of claim 8, wherein a value of the first syntax element equal to 0 indicates that the weighted prediction information is not present in the picture header syntax structure but is allowed to be present in the slice header that references the PPS, and a value of the first syntax element equal to 1 indicates that the weighted prediction information is allowed to be present in the picture header syntax structure but is not present in the slice header.

11. 7. The method of claim 6, wherein if the value of the second syntax element is equal to 0, the third syntax element is not included in the bitstream and the number of weights associated with the reference picture list 1 is derived to be equal to 0.

12. 7. The method of claim 6, wherein when the value of the second syntax element is equal to 1 and the value of the first syntax element is equal to 0, the number of weights associated with the reference picture list 1 is derived to be equal to the number of active reference entries for the reference picture list 1.

13. 2. The method of claim 1, wherein the format rule specifies that a general constraint information syntax structure exists that includes a first constraint flag indicating a constraint regarding weighted prediction being enabled for both P slices and B slices of a set of pictures.

14. If the value of the first constraint flag indicates that weighted prediction is not applied to both the P slice and the B slice: a value of a fourth syntax element included in a sequence parameter set (SPS) indicates that weighted prediction is not applied to the P slice referring to the SPS; a value of a fifth syntax element included in the SPS indicates that explicit weighted prediction is not applied to the B slice that references the SPS; The method of claim 13.

15. The method of claim 14 , wherein the first constraint flag is gci_no_explicit_weighted_prediction_constraint_flag, the fourth syntax element is sps_weighted_pred_flag, and the fifth syntax element is sps_weighted_bipred_flag.

16. The method of any one of claims 1 to 15, wherein the converting comprises decoding the video from the bitstream.

17. 16. The method of any one of claims 1 to 15, wherein the converting comprises encoding the video into the bitstream.

18. 1. An apparatus for processing video data, comprising: a processor; and a non-transitory memory having instructions that, when executed by the processor, cause the processor to: performing a conversion between a current slice of a current picture of a video and a bitstream of said video; the bitstream conforms to format rules; the format rule specifies that, when a value of a first syntax element indicates that weighted prediction information is allowed to be present in a picture header syntax structure but is not present in a slice header that references a Picture Parameter Set (PPS), values ​​of a plurality of flags indicating whether prediction weighting factors are included in the bitstream are inferred based on a slice type of a current slice and a value of a second syntax element included in a PPS referenced by the current picture; the second syntax element indicates whether weighted prediction is enabled for a P slice of a picture that references the PPS, or the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture that references the PPS; If the value of the first syntax element 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 that references the PPS, weighted prediction is enabled for a P slice and / or a B slice of the current picture. Device.

19. A non-transitory computer-readable storage medium storing instructions, the instructions causing a processor to: performing a conversion between a current slice of a current picture of a video and a bitstream of said video; the bitstream conforms to format rules; the format rule specifies that, when a value of a first syntax element indicates that weighted prediction information is allowed to be present in a picture header syntax structure but is not present in a slice header that references a Picture Parameter Set (PPS), values ​​of a plurality of flags indicating whether prediction weighting factors are included in the bitstream are inferred based on a slice type of a current slice and a value of a second syntax element included in a PPS referenced by the current picture; the second syntax element indicates whether weighted prediction is enabled for a P slice of a picture that references the PPS, or the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture that references the PPS; If the value of the first syntax element 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 that references the PPS, weighted prediction is enabled for a P slice and / or a B slice of the current picture. A non-transitory computer-readable storage medium.

20. 1. A method for storing a video bitstream, the method comprising: generating the bitstream of the video including a current picture, the current picture including a current slice; storing the bitstream on a non-transitory computer-readable storage medium; the bitstream conforms to format rules; the format rule specifies that, when a value of a first syntax element indicates that weighted prediction information is allowed to be present in a picture header syntax structure but is not present in a slice header that references a Picture Parameter Set (PPS), values ​​of a plurality of flags indicating whether prediction weighting factors are included in the bitstream are inferred based on a slice type of a current slice and a value of a second syntax element included in a PPS referenced by the current picture; the second syntax element indicates whether weighted prediction is enabled for a P slice of a picture that references the PPS, or the second syntax element indicates whether explicit weighted prediction is enabled for a B slice of a picture that references the PPS; If the value of the first syntax element 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 that references the PPS, weighted prediction is enabled for a P slice and / or a B slice of the current picture. method.