Using Subpictures and Tiles in Video Coding
The patent addresses inefficiencies in video coding standards by optimizing initial QP signaling and chroma QP tables, ensuring proper bitstream conformance and supporting diverse sub-picture layouts, thereby enhancing video coding efficiency and decoding accuracy.
Patent Information
- Application Number
- JP2023202345
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-05-27
- Filing Date
- 2023-11-30
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2041-05-26
AI Technical Summary
Existing video coding standards, such as VVC, face issues with inappropriate initial QP value signaling, shared chroma QP tables for I and B/P pictures, transform skip requiring different chroma QP tables, incomplete chroma QP table ranges, biased starting points, insufficient points in chroma QP tables, and insufficient adaptation parameter sets for sub-pictures, leading to inefficiencies and potential violations in bitstream conformance.
Implementing flexible initial QP value signaling across multiple levels (SPS, PPS, PH, SH), separate chroma QP tables for different picture types, adjusting chroma QP table ranges, allowing zero points in chroma QP tables, and increasing adaptation parameter sets to accommodate sub-pictures, ensuring proper bitstream conformance and efficient coding.
Enhances video coding efficiency by optimizing QP signaling and chroma QP tables, improving bitstream conformance, and supporting diverse sub-picture layouts, thereby reducing bandwidth requirements and enhancing decoding accuracy.
Smart Images

Figure 0007753320000043 
Figure 0007753320000044 
Figure 0007753320000045
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application is based on Japanese Patent Application No. 2022-572513, filed November 25, 2022, which is based on International Patent Application No. PCT / US2021 / 034259, filed May 26, 2021, claiming priority and benefit of U.S. Provisional Patent Application No. 63 / 030726, filed May 27, 2020. All of the above patent applications are incorporated herein by reference in their entirety.
[0002] [Technical field] This patent specification 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 communications networks, and as the number of user device connections capable of receiving and displaying video increases, the bandwidth demands for digital video usage are expected to continue to increase. Summary of the Invention
[0004] This patent specification discloses techniques that can be used by video encoders and decoders to process coded representations of video with control information that is useful for decoding the coded representations.
[0005] In one example aspect, a video processing method is disclosed, the method including performing a conversion between a video and a bitstream of the video according to rules, the rules specifying that a quantization parameter table used in the conversion is included in a sequence parameter set, and the rules specifying that whether or how a first syntax element indicating a number of points in the quantization parameter table is included in the sequence parameter set is controlled according to a second syntax element in the sequence parameter set.
[0006] In another example aspect, a video processing method is disclosed, the method including performing conversion between a video and a bitstream of the video according to a rule, the rule defining that if a number of sub-pictures indicated in a sequence parameter set minus one is greater than zero and if a syntax element in the sequence parameter set indicates that an i-th sub-picture of a first video picture of the video in a coding layer video sequence is to be treated as a second video picture of the video in a decoding process excluding in-loop filtering operations, then one of the following two conditions (1) and (2) is true: (1) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture satisfy the following: the picture width in units of luma samples, and the picture height in units of luma samples, and the number of subpictures minus one; For each value of i ranging from 0 to the number of subpictures minus 1, the horizontal position of the top-left coding tree unit (CTU) of the i-th subpicture, the vertical position of the top-left CTU of the i-th subpicture, the width of the i-th subpicture minus 1, the height of the i-th subpicture minus 1, and the syntax elements of the i-th subpicture; has the same value for each of (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an interlayer reference picture whose value is equal to zero when the number of sub-pictures is minus one.
[0007] In another example aspect, a video processing method is disclosed that includes performing a conversion between a video including video blocks and a bitstream of the video according to rules, the rules specifying that when an affine coding tool is enabled and a sub-block-based temporal motion vector prediction (SbTMVP) coding tool is disabled, a maximum number of sub-block merging candidates is not allowed to be a number N.
[0008] In another example aspect, a video processing method is disclosed, the method including performing a conversion between a video including one or more video pictures and a bitstream of the video, the bitstream conforming to format rules, the format rules defining whether a syntax element indicating whether an affine merge mode is enabled is present in the bitstream.
[0009] In another example aspect, a video processing method is disclosed, the method including performing a conversion between a video including one or more video pictures including one or more sub-pictures and a bitstream of the video according to rules, the rules including sub-picture-related syntax elements: a first syntax element indicating whether all subpictures that reference the same sequence parameter set have the same dimensions; a second syntax element indicating the common width and common height of all subpictures with the same dimensions, or One or more syntax elements according to the second rule that are omitted if all subpictures do not have the same dimensions It is specified that one or more of the following are designated or omitted from the sequence parameter set.
[0010] In another example aspect, a video processing method is disclosed that, for conversion between a video including one or more video pictures and a bitstream of the video, includes: determining, in response to a width, in units of luma samples, of each video picture referencing a picture parameter set being less than or equal to a luma coding treeblock size, that a first syntax element in the picture parameter set indicating a width of an i-th tile column in units of coding treeblocks minus one is equal to a width of the video picture in units of coding treeblocks minus one, and performing the conversion based on the determination.
[0011] In another example aspect, a video processing method is disclosed for converting between a video including one or more video pictures and a bitstream of the video, the method including: determining, in response to a height, in units of luma samples, of each video picture referencing a picture parameter set being less than or equal to a luma coding treeblock size, that a first syntax element in the picture parameter set indicating a height of an i-th tile row in units of coding treeblocks minus one is equal to a height of the video picture in units of coding treeblocks minus one, for converting between the video including one or more video pictures and a bitstream of the video, based on the determination.
[0012] In another example aspect, a video processing method is disclosed. The method includes performing a conversion between a video including video pictures and a coded representation of the video, the coded representation conforming to format rules that define whether or where in the coded representation one or more syntax elements indicating one or more initial quantization parameter (QP) values to be used during the conversion are included. In a further example aspect, a video encoder apparatus is disclosed. The video encoder has a processor configured to implement the above method.
[0013] In another example aspect, another video processing method is disclosed, the method including: determining to use an initial quantization parameter (QP) value for a transform between a video block of a video and a coded representation of the video; and performing the transform based on the determination, wherein a syntax element in the coded representation indicates the initial QP value using an offset relationship having an offset value K that is (a) between 1 and 25, or (b) greater than 26, or (c) a function of a maximum allowed QP value for the transform, or (d) a function of a bit depth used for the transform.
[0014] In another example aspect, another video processing method is disclosed, the method including determining, according to a rule, one or more quantization parameter (QP) tables for conversion between chroma blocks of video and a coded representation of the video based on a type of picture or slice that contains the chroma blocks, and performing the conversion based on the determination.
[0015] In another example aspect, another video processing method is disclosed, the method including determining one or more quantization parameter (QP) tables for conversion between chroma blocks of video and a coded representation of the video, and performing the conversion based on the determination, the conversion according to first rules defining one or more syntax elements corresponding to the one or more QP tables or second rules defining a relationship between the one or more QP tables and coding characteristics of the chroma blocks.
[0016] In another example aspect, another video processing method is disclosed, the method including performing a transformation between chroma blocks of video and a coded representation of the video, the coded representation conforming to format rules, the format rules defining characteristics of syntax elements associated with one or more chroma quantization parameter (QP) tables used in the transformation.
[0017] In another example aspect, another video processing method is disclosed, the method including: determining, based on formatting rules for one or more syntax elements in a coded representation of a video, a signaling scheme to be used for signaling quantization parameter tables in the coded representation; and performing, based on the determination, a conversion between the video and the coded representation.
[0018] In another example aspect, another video processing method is disclosed that includes performing a transformation between video blocks of a video and a coded representation of the video according to rules, the rules defining a number N used to limit a maximum number of sub-block merging candidates when use of affine coding is enabled and use of sub-block-based temporal motion vector prediction is disabled.
[0019] In another example aspect, another video processing method is disclosed, the method including performing a conversion between a video including one or more video pictures including one or more video sub-pictures and a coded representation of the video, the coded representation conforming to formatting rules, the formatting rules conforming to the following sub-picture-related syntax elements: a first syntax element indicating whether all subpictures that reference the same sequence parameter set have the same dimensions; A second syntax element signaling the common width and common height of all subpictures with the same dimensions, or A third syntax element that follows the second formatting rule It specifies that one or more of the following may be included or omitted.
[0020] In yet another exemplary aspect, a video decoder apparatus is disclosed, the video decoder having a processor configured to implement the above method.
[0021] In yet another exemplary aspect, a computer-readable medium having stored thereon code, in the form of processor-executable code, embodying one of the methods described herein is disclosed.
[0022] These and other features are described throughout this specification. [Brief explanation of the drawings]
[0023] [Figure 1] An example of two scalar quantizers used in dependent quantization. [Figure 2] 1 shows an example of state transitions and quantizer selection for dependent quantization. [Figure 3] FIG. 1 is a block diagram of an example video processing system. [Figure 4] FIG. 1 is a block diagram of a video processing device. [Figure 5] 1 is a flowchart of an example video processing method. [Figure 6] 1 is a block diagram illustrating a video coding system according to some embodiments of the present disclosure. [Figure 7] FIG. 1 is a block diagram illustrating an encoder according to some aspects of the present disclosure. [Figure 8] FIG. 2 is a block diagram illustrating a decoder according to some aspects of the present disclosure. [Figure 9] 1 is a flowchart of an example video processing method. [Figure 10] 1 is a flowchart of an example video processing method. [Figure 11] 1 is a flowchart of an example video processing method. [Figure 12] 1 is a flowchart of an example video processing method. [Figure 13] 1 is a flowchart of an example video processing method. [Figure 14] 1 is a flowchart of an example video processing method. [Figure 15]1 is a flowchart of an example video processing method. DETAILED DESCRIPTION OF THE INVENTION
[0024] Section headings are used herein for ease of understanding and do not limit the applicability of the techniques and embodiments disclosed in each section to only that section. Furthermore, the term H.266 is used in some descriptions for ease of understanding only, and not to limit the scope of the disclosed techniques. As such, the techniques described herein are applicable to other video codec protocols and designs.
[0025] [1. Introduction] This specification relates to video coding technology. Specifically, it relates to initial quantization parameters (QP) and chroma QP tables in video coding. It may be applied to existing video coding standards such as HEVC or standards to be finalized (Versatile Video Coding). It may also be applicable to future video coding standards or video codecs.
[0026] [2.Acronym] 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 QP Quantization Parameter RBSP Raw Byte Sequence Payload SEI Supplemental Enhancement Information 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
[0027] [3. Introduction to Video Coding] Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, while ISO / IEC produced MPEG-1 and MPEG-4 Visual. The two organizations jointly produced the H.262 / MPEG-2 Video, H264 / MPEG-4 AVC (Advanced Video Coding), and H.265 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding architecture that utilizes temporal prediction plus transform coding. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and incorporated into reference software named the Joint Exploration Model (JEM). In April 2018, the Joint Video Expert Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG2) was formed to work on the VVC standard, which aims to reduce the bitrate by 50% compared to HEVC.
[0028] The latest version of the VVC draft, i.e., Versatile Video Coding (Draft 8), is available from http: / / phenix.int-evry.fr / jvet / doc_end_user / documents / 17_Brussels / wg11 / JVET-Q2001-v13.zip and the latest test model is available from https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / - / archive / VTM-8.0 / VVCSoftware_VTM-VTM-8.0.zip.
[0029] [3.1. Quantization parameter control] In VVC, the maximum QP has been increased from 51 to 63, and the signaling of the initial QP has been changed accordingly. The initial value of SliceQpY is changed in the slice segment layer when a non-zero value of slice_qp_delta is coded. Specifically, the value of init_qp_minus26 is changed to be in the range of (-26 + QpBdOffsetY) to +37. When the size of the transform block is not a power of 4, the transform coefficients are processed with changes to QP or QP levelScale rather than multiplication by 181 / 256 (or 181 / 128) to compensate for the implicit scaling by the transform process. For transform skip blocks, the minimum allowed quantization parameter (QP) is defined as 4 because the quantization step size becomes 1 when QP is equal to 4.
[0030] In HEVC (and also in H.264), a fixed lookup table is used to convert luma quantization parameters QPY to chroma quantization parameters QPC. In VVC, a more flexible luma-chroma QP mapping is used. Instead of having a fixed table, the luma-chroma QP mapping relationship is signaled in the SPS using a flexible piecewise linear model. Note that the only constraint on the linear model is that the slope of each piece cannot be negative (i.e., as the luma QP increases, the chroma QP should remain flat or increase, not decrease). The piecewise linear model is defined by 1) the number of pieces in the model and 2) the input (luma) and output (chroma) delta QPs for that piece. The input range of the piecewise linear model is [-QpBdOffsetY, 63], and the output range of the piecewise linear model is [-QpBdOffsetC, 63]. The QP mapping relationship may be signaled separately for Cb, Cr, and joint Cb / Cr coding, or jointly for all three types of residual coding.
[0031] Similar to HEVC, CU-level QP adaptation is possible in VVC. Delta QP values for luma and chroma components can be signaled separately. For chroma components, allowed chroma QP offset values are signaled in the form of an offset list in the PPS in a manner similar to HEVC. Lists are defined separately for Cb, Cr, and joint Cb / Cr coding. Up to six offset values are allowed for each of the Cb, Cr, and joint Cb / Cr lists. At the CU level, an index is signaled to indicate which one of the offset values in the offset list is used to adjust the chroma QP of that CU. CU chroma QP offset signaling is also consistent with the VPDU CU QP delta availability, and for CUs larger than 64x64, the chroma QP offset is sent in the first transform unit regardless of whether it has a non-zero CBF.
[0032] [3.2. Dependent quantization] Furthermore, the same HEVC scalar quantization is used with a new concept called dependent scalar quantization. Dependent scalar quantization refers to an approach in which the set of allowable reconstructed values of a transform coefficient depends on the value of the transform coefficient level preceding the current transform coefficient level in the reconstruction order. The main effect of this approach is that, compared to the traditional independent scalar quantization used in HEVC, allowable reconstructed vectors are more densely packed in an N-dimensional vector space (N represents the number of transform coefficients in a transform block). That is, for a given average number of allowable reconstructed vectors per N-dimensional unit volume, the average distortion between the input vector and the nearest reconstructed vector is smaller. The dependent scalar quantization approach is realized by (a) defining two scalar quantizers with different reconstruction levels, and (b) defining a process for switching between the two scalar quantizers.
[0033] The two quantizers used, denoted by Q0 and Q1, are shown in Figure 1. The position of the available reconstruction levels is uniquely specified by the quantization step size Δ. The scalar quantizer used (Q0 or Q1) is not explicitly signaled in the bitstream. Instead, the quantizer used for the current transform coefficient is determined by the parity of the transform coefficient level that precedes the current transform coefficient in coding / reconstruction order.
[0034] As shown in Figure 2, switching between the two scalar quantizers (Q0 and Q1) is realized by a state machine with four states. The state can take on four different values: 0, 1, 2, and 3. It is uniquely determined by the parity of the transform coefficient level preceding the current transform coefficient in coding / reconstruction order. At the start of inverse quantization for a transform block, the state is set equal to 0. The transform coefficients are reconstructed in scanning order (i.e., in the same order as they are entropy decoded). After the current transform coefficient is reconstructed, the state is updated as shown in Figure 2, where k represents the value of the transform coefficient level.
[0035] [3.3. Scaling Matrix] VVC supports using a default scaling matrix or signaling a user-defined scaling matrix. The default mode scaling matrices are all flat and have elements equal to 16 for all TB sizes. IBC and intra-coding modes currently share the same scaling matrix. Therefore, for the case of a user-defined matrix, the MatrixType and MatrixType_DC numbers are updated as follows: - MatrixType: 30 = 2 (2 for intra and ICB / inter) x 3 (Y / Cb / Cr components) x 5 (square TB size: 4x4 to 64x64 for luma, 4x4 to 32x32 for chroma) - MatrixType_DC: 14 = 2 (2 x 1 of Y component for Intra and ICB / Inter) x 3 (TB size: 16 x 16, 32 x 32, 64 x 64) + 4 (2 x 2 of Cb / Cr component for Intra and ICB / Inter) x 2 (TB size: 16 x 16, 32 x 32)
[0036] DC values are coded separately for the following scaling matrices: 16x16, 32x32, and 64x64. For TBs with a size smaller than 8x8, all elements in one scaling matrix are signaled. If the TB has a size greater than or equal to 8x8, only 64 elements in one 8x8 scaling matrix are signaled as the base scaling matrix. To obtain a square matrix with a size greater than 8x8, the 8x8 base scaling matrix is upsampled (by element duplication) to the corresponding square size (i.e., 16x16, 32x32, 64x64). When zeroing of high-frequency coefficients for a 64-point transform is applied, the corresponding high frequencies of the scaling matrix are also zeroed. That is, if the width or height of the TB is greater than or equal to 32, only the left or upper half of the coefficients are kept, and the remaining coefficients are assigned to zero. Furthermore, the number of elements signaled for a 64x64 scaling matrix is also reduced from 8x8 to three 4x4 sub-matrices because the bottom-right 4x4 elements are never used. In VVC, 2x2, 2x4, and 4x2 chroma intrablocks (CBs) do not exist, the smaller intrablock sizes are equal to 2x8 and 8x2, and the minimum chroma intrablock copy (IBC) block size is also the same. Furthermore, inter-prediction is not available for 4x4 luma CBs. Therefore, small 2x2 chroma blocks can only be generated by applying sub-block transforms (SBTs). Given these properties, the 2x2 intrachroma quantization matrix (QM) is excluded from the default QM list, and no user-defined intraQMs for this size are coded.
[0037] To improve the coding of user-defined quantization matrices (QMs), the following approaches are considered. - Allows referencing a previously coded QM whose base size is the same as the current QM. - Allows coding of inter-element differences between the current QM and the reference QM. - Maintain the original DPCM coding of the elements in the current QM. - Use a single matrix identifier scalingListId that combines matrixId and sizeId.
[0038] [3.4. Joint Coding of Chroma Residuals] VVC supports a mode in which chroma residuals are jointly coded, called Joint Coding of Chroma Residuals (JCCR). The use (activation) of the joint chroma coding mode is indicated by a TU-level flag, tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBF. The flag tu_joint_cbcr_residual_flag is present if one or both chroma CBFs of the TU are equal to 1. In the PPS and slice header, chroma QP offset values are signaled for the joint chroma residual coding mode to distinguish them from the regular chroma QP offset values signaled for the regular chroma residual coding mode. These chroma QP offset values are used to derive the chroma QP values for blocks coded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode (mode 2 in the following table) is active in a TU, this chroma QP offset is added to the applied luma-derived chroma QP during quantization and decoding of that TU. For other modes (modes 1 and 3 in the following table), the chroma QP is derived in the same way as for conventional Cb or Cr blocks. The reconstruction process of chroma residuals (resCb and resCr) from the transmitted transform block is represented in Table 1. When this mode is activated, one single joint chroma residual block (resJointC[x][y] in the following table) is signaled, and the Cb residual block (resCb) and the Cr residual block (resCr) are derived taking into account information such as tu_cbf_cb, tu_cbf_cr, and CSign. CSign is the sign value specified in the slice header. At the encoder side, the joint chroma components are derived as described below. Depending on the mode (listed in the table above), resJointC{1,2} is generated by the encoder as follows: - If the mode is equal to 2 (single residual with reconstruction Cb=C, Cr=CSign*C), the joint residual is determined according to the following formula: resJointC[x][y]=(resCb[x][y]+CSign*resCr[x][y]) / 2 - Otherwise, if the mode is equal to 1 (single residual with reconstruction Cb=C, Cr=(CSign*C) / 2), the joint residual is determined according to the following formula: resJointC[x][y]=(4*resCb[x][y]+2*CSign*resCr[x][y]) / 5 - Otherwise (mode equals 3, i.e., single residual with reconstruction Cr=C, Cb=(CSign*C) / 2), the joint residual is determined according to the following formula: resJointC[x][y]=(4*resCr[x][y]+2*CSign*resCb[x][y]) / 5 [Table 1]
[0039] The above three joint chroma coding modes are only supported for I slices. For P and B slices, only mode 2 is supported. Therefore, for P and B slices, the syntax element tu_joint_cbcr_residual_flag is present only if both chroma cbfs are 1. Note that transform depth is excluded from the context modeling of tu_cbf_luma and tu_cbf_cb.
[0040] [3.5. Chroma QP Table in SPS] In section 7.3.2.3 of JVET-Q2001-vC, the SPS contains a structure called the chroma QP table, as shown below: [Table 2] They use the following semantics and QP table derivation: sps_joint_cbcr_enabled_flag equal to 0 specifies that joint coding of chroma residual is disabled. sps_joint_cbcr_enabled_flag equal to 1 specifies that joint coding of chroma residual is enabled. If not present, the value of sps_joint_cbcr_enabled_flag is inferred to be equal to 0. same_qp_table_for_chroma equal to 1 specifies that only one chroma QP mapping table is signaled, and that this table applies to the Cb and Cr residual, and also to the joint Cb-Cr residual if sps_joint_cbcr_enabled_flag is equal to 1. same_qp_table_for_chroma equal to 0 specifies that two chroma QP mapping maps are signaled in the SPS: one for Cb and Cr, and one more for the joint Cb-Cr if sps_joint_cbcr_enabled_flag is equal to 1. If same_qp_table_for_chroma is not present in the bitstream, the value of same_qp_table_for_chroma equal to 1 is inferred. qp_table_start_minus26[i] plus 26 specifies the starting luma and chroma QP used to describe the ith chroma QP mapping table. The value of qp_table_start_minus26[i] must be in the range of -26-QpBdOffset to 36, inclusive. If qp_table_start_minus26[i] is not present in the bitstream, the value of qp_table_start_minus26[i] is inferred to be equal to 0. num_points_in_qp_table_minus1[i] plus 1 specifies the number of points used to describe the ith chroma QP mapping table. The value of num_points_in_qp_table_minus1[i] must be in the range 0 to 63 + QpBdOffset, inclusive. If num_points_in_qp_table_minus1[0] is not present in the bitstream, the value of num_points_in_qp_table_minus1[0] is inferred to be equal to 0. delta_qp_in_val_minus1[i][j] specifies the delta value used to derive the input coordinate of the jth pivot point of the ith chroma QP mapping table. If delta_qp_in_val_minus1[0][j] is not present in the bitstream, the value of delta_qp_in_val_minus1[0][j] is inferred to be equal to 0. delta_qp_diff_val[i][j] specifies the delta value used to derive the output coordinate of the jth pivot point of the ith chroma QP mapping table. The i-th chroma QP mapping table ChromaQpTable[i], for i=0 to numQpTables-1, is derived as follows:
number
[0041] [3.6. Initial QP in PPS] There is a syntax element in PPS called init_qp_minus26, whose semantics are as follows: init_qp_minus26 plus 26 specifies the initial value of SliceQpY for each slice that references the PPS. The initial value of SliceQpY is changed at the picture level if a non-zero value is decoded for ph_qp_delta, or at the slice level if a non-zero value is decoded for slice_qp_delta. The value of init_qp_minus26 must be in the range of -(26 + QpBdOffset) to 37, inclusive. When qp_delta_info_in_ph_flag is equal to 1, the initial value of the QpY quantization parameter SliceQpY for all slices of a picture is derived as follows: SliceQpY=26+init_qp_minus26+ph_qp_delta When qp_delta_info_in_ph_flag is equal to 0, the initial value of the slice QpY quantization parameter SliceQpY is derived as follows: SliceQpY=26+init_qp_minus26+slice_qp_delta The value of SliceQpY must be within the range of -QpBdOffset to +63.
[0042] 4. Technical Problems Solved by the Disclosed Technical Solutions and Embodiments 1. Signaling the initial QP value (i.e., init_qp_minus26) may not be appropriate. 2. I and B / P pictures or slices may require different chroma QP tables, but they share the same one in the current VVC draft text. 3. Transform skip may require a different chroma QP table. 4. The chroma QP table starting points must cover the entire QP range, which is not the case in the current design. 5. Chroma QP tables may have biased starting points. 6. The number of points in the chroma QP table should be able to be 0, but this is not allowed in the current design because num_points_in_qp_table_minus1 is coded and the minimum allowed value of the syntax element is equal to 0, and correspondingly the minimum number of points is 1. 7. Specifying QP clipping in the derivation of chroma QP can be superior to specifying bitstream conformance constraints to limit the derived chroma QP values, as the former prevents violations from occurring. 8. In the latest VVC draft text, the SH syntax element slice_ts_residual_coding_disabled_flag is used to specify whether transform skip based residual coding (TSRC) or regular residual coding (RRC) is used for a transform block. However, there may be control flags at higher (SPS / PPS) and / or lower (CU / TU) levels whether the current block is using TSRC or RRC. Furthermore, the interaction between different level control flags and between control flags and transform skip flags is further specified. 9. In the current VVC, when luma ALF is disabled in SPS / PH / SH, chroma ALF and CC-ALF are implicitly disabled. However, such a restriction is not applied at the CTU level. When luma ALF is disabled for a CTU, chroma ALF and CC-ALF may still be applied for the CTU. Such a design contradicts the intention of controlling chroma ALF / CC-ALF based on luma ALF at a higher level. 10. The chroma QP table may have a default set of values depending on the color format. 11. In the sub-bitstream extraction process defined in Section C.6 of the latest VVC draft of JVET-Q2001-vE, one step is defined as follows: - Remove from outBitstream all NAL units for which all of the following conditions are true: - nal_unit_type is not equal to IDR_W_RADL, IDR_N_LP, or CRA_NUT. - nuh_layer_id is equal to LayerIdInOls[targetOlsIdx][j], for values of j in the range 0 to NumLayersInOls[targetOlsIdx]-1, inclusive. - TemporalId is greater than or equal to NumSubLayersInLayerInOLS[targetOlsIdx][j]. However, this means that parameter sets such as non-VCL NAL units that satisfy all three conditions are also removed, which is not preferred, as parameter sets such as PPA and APS may be shared by pictures with different TemporalId values and may be placed at the beginning of the bitstream. 12. The current specification allows for eight ALF_APS, eight SCALING_APS, and three LMCS APS. However, the number of APS NAL units allowed for a picture may not be sufficient. For example, a typical use case is one in which a picture contains 96 sub-pictures, and each sub-picture may require a different ALF_APS. In such a case, the current eight ALF_APS NAL units are insufficient to achieve reasonable coding efficiency. Therefore, it is necessary to support a larger number of APSs. 13. JVET-S0071 proposes to add a shortcut for signaling sub-picture layout to the VVC design in JVET-R2001-vA / v10 as follows: Add a.sps_subpic_same_res_flag, which, when equal to 1, indicates that all subpictures have the same width and height, respectively. b. If sps_subpic_same_res_flag is equal to 1, sps_subpic_width_minus1[i] and sps_subpic_height_minus1[i] are signaled only when i is equal to 0, and sps_subpic_ctu_top_left_x[i] and sps_subpic_ctu_top_left_y[i] are skipped for all i values. However, the syntax design is somewhat messy and the number of sub-pictures should not be signaled as it can be derived if all sub-pictures have the same width and height respectively.
[0043] [5. List of Examples of Embodiments and Solutions] In order to solve the above problems and other problems not mentioned, the methods summarized below are disclosed. The items should be considered as examples for the purpose of overview and should not be interpreted in a narrow sense. Furthermore, these items may be applied individually or combined in any way.
[0044] In the following, floor(x) denotes a function that returns the largest integer that is less than or equal to x.
[0045] 1. The initial QP value syntax element used to specify the initial QP value, for example currently denoted as init_qp_minus26 in JVET-Q2001-vC, may be moved to PH. a. Alternatively, the initial QP value syntax element may be repeated in the PH. b. Alternatively, the initial QP value syntax element may be signaled in both the PPS and the PH, and the initial QP value syntax element signaled in the PH may override or update (by adding a signaled delta) the initial QP value syntax element signaled in the PPS. c. Alternatively, the initial QP value syntax element may be signaled in the SPS, and possibly in one or more of the PPS, PH, and SH. If present, the value at the lower level overrides or updates (by adding a signaled delta) the value signaled at the higher level. In the case of an update, the initial QP value signaled at the higher level is ue(v) coded, and the delta value signaled at the lower level is se(v) coded.
[0046] 2. Multiple syntax elements for indicating the initial QP value may be signaled in the SPS / PPS / PH / SH according to the specific type. In one example, each of them may correspond to a particular type. b. In one example, the specific type may include a picture / slice type (e.g., I / P / B, intra / inter). c. In one example, the specific type may include a video content type (eg, screen content or camera captured content). d. In one example, the specific type may include a subpicture index or other subpicture identification information, i.e., different subpictures may be associated with different syntax elements for initial QP derivation. e. In one example, the specific type may include a slice index or other slice identification information, i.e., different slices may be associated with different syntax elements for initial QP derivation. f. In one example, the specific type may include a tile index or other tile identification information, i.e., different tiles may be associated with different syntax elements for initial QP derivation. g. In one example, the type of measurement may include a transform type (eg, transform skip mode or non-transform skip mode).
[0047] 3. The initial QP value syntax elements (eg, in SH / PH / PPS / SPS) may be offset by a number K that is not equal to 26. a. In one example, K is less than 26. b. In one example, the syntax element may be replaced by init_qp_minusK, and / or the value of the syntax element must be in the range of -(K+QpBdOffset) to (63-K) where K is less than 26. i. In one example, K is equal to 20. Alternatively, the syntax element may be replaced by init_qp_minus20, and / or the value of the syntax element must be in the range of -(20+QpBdOffset) to 43 (i.e., 63-20). c. In one example, K is greater than 26. i. In one example, the syntax element may be replaced by init_qp_minusK, and the value of the syntax element must be in the range of -(K+QpBdOffset) to (63-K), inclusive, where K is a constant greater than 26. ii. In one example, K is equal to 32. Alternatively, the syntax element may be replaced by init_qp_minus32, and the value of the syntax element must be in the range of -(32+QpBdOffset) to 31 (i.e., 63-32). d. Alternatively, K may be set to a function of the maximum allowed QP and / or the minimum allowed QP. For example, K may be set equal to (maximum allowed QP - minimum allowed QP) / 2 or (maximum allowed QP + 1 - minimum allowed QP) / 2. e. In the above example, K may depend on the picture / slice / block type, and / or prediction mode and / or bit depth. i. In one example, the value of K for an I slice / picture is less than or equal to that of a P / B slice / picture.
[0048] 4. The initial QP value syntax element (in SH / PH / PPS) may be offset by an amount that depends on the internal bit depth. a. In one example, the initial QP value syntax element may be offset by fllor((-QpBdOffset+M) / 2). i. Alternatively, and further, the value of the syntax element plus fllor((-QpBdOffset+M) / 2) must be in the range of -QpBdOffset to 63, inclusive. b. In one example, the initial QP value syntax element may be offset by fllor((-QpBdOffset+M) / 2)+K, where K is a constant. i. Alternatively, and further, the value of the syntax element plus (fllor((-QpBdOffset+M) / 2)+K) must be in the range of -QpBdOffset to N, inclusive. c. In the above example, N may be set to the maximum allowed QP value (eg, 63). d. In the above example, M may be set to the maximum allowed QP value (eg, 63) or the maximum allowed QP value plus / minus 1.
[0049] 5. The chroma QP table may be determined according to the picture / slice type. In one example, different picture / slice types may have different sets of chroma QP tables. b. In one example, I-pictures / slices may have their own chroma QP tables. c. In one example, I, B and P pictures / slices may each have their own chroma QP table. d. In one example, B and P pictures / slices may share the same set of chroma QP tables. e. In one example, picture / slice types may be classified into M cases (M=2 for I-only and BP-shared, M=3 for I / B / P separate). The number of chroma QP tables signaled may depend on M. i. In one example, the number of chroma QP tables signaled may be set to M*numQpTables, where (numQpTables=same_qp_table_for_chroma?1:(sps_joint_cbcr_enabled_flag?3:2)), and M is greater than 1. 1) Alternatively, the semantics of same_qp_table_for_chroma may be further changed to "same_qp_table_for_chroma equal to 1 means that only one chroma QP mapping table is signaled for the picture / slice type." ii. In one example, the number of chroma QP tables signaled may also be set to (same_qp_table_for_chroma?1:(M*(sps_joint_cbcr_enabled_flag?3:2))), where M is greater than 1. iii. In one example, for each category, an indication of whether all blocks share the same chroma QP table is signaled first, and the number of QP tables may be set to (same_qp_table_for_chroma?1:(sps_joint_cbcr_enabled_flag?3:2)), followed by detailed information about the chroma QP table. 1) Alternatively, for all categories, an indication of the starting luma and chroma QPs used to describe the chroma QP mapping table may also be signaled, for example using the actual values minus K (e.g., K=26). 2) Alternatively, an indication of the starting luma and chroma QPs used to describe the chroma QP table may also be signaled, for example using the actual value minus K (e.g., K=1 for intra slices / pictures or K=32 for inter slices / pictures), with K depending on the category index.
[0050] 6. An indication, for example, sps_non_intra_present_flag, may be added to the SPS to indicate whether the current sequence may contain B / P slices. a. In one example, when the flag is 1, it indicates that all slices in the current sequence are intra-slices. b. In one example, when the flag is 0, it indicates that there may be a B / P slice in the current sequence.
[0051] 7. One or two sets of chroma QP tables may be signaled in the SPS. a. A flag (for example called sps_one_set_of_chroma_qp_tables_flag) is added to the SPS. sps_one_set_of_chroma_qp_tables_flag equal to b.1 specifies the presence of one set of chroma QP tables in the SPS (i.e., as in the current VVC draft text). This set of chroma QP tables applies only to intra-coded entities (pictures, slices, CTUs, CUs, or coded blocks). i. In one example, a single set of chroma QP tables applies only to intra pictures (all slices are intra slices, i.e., I-slices) in a CLVS that references an SPS. ii. In one example, a single set of chroma QP tables applies only to intra slices in a CLVS that references an SPS. iii. In one example, a single set of chroma QP tables applies only to intra CTUs within a CLVS that references an SPS. iv. In one example, a single set of chroma QP tables applies only to intra CUs in a CLVS that reference an SPS. v. In one example, a single set of chroma QP tables applies only to intra-coded blocks in a CLVS that references an SPS. sps_one_set_of_chroma_qp_tables_flag equal to c.1 specifies the presence of one set of chroma QP tables in the SPS (i.e., similar to the current VVC draft text). This set of chroma QP tables applies to both intra- and inter-coded entities (pictures, slices, CTUs, CUs, or coded blocks). sps_one_set_of_chroma_qp_tables_flag equal to d.0 specifies the presence of two sets of chroma QP tables in the SPS (i.e., add another set of chroma QP tables). The 0th set of chroma QP tables applies only to intra-coded entities (pictures, slices, CTUs, CUs, or coded blocks), and the 1st set of chroma QP tables applies only to inter-coded entities (pictures, slices, CTUs, CUs, or coded blocks). i. In one example, the 0th set of chroma QP tables applies only to intra pictures (where all slices are intra slices, i.e., I slices) in a CLVS that reference an SPS, and the 1st set of chroma QP tables applies only to inter pictures (where all slices are inter slices, i.e., B or P slices) in a CLVS that reference an SPS. ii. In one example, the 0th set of chroma QP tables applies only to intra slices in a CLVS that reference an SPS, and the 1st set of chroma QP tables applies only to inter slices in a CLVS that reference an SPS. iii. In one example, the 0th set of chroma QP tables applies only to intra CTUs in a CLVS that reference an SPS, and the 1st set of chroma QP tables applies only to inter CTUs in a CLVS that reference an SPS. iv. In one example, the 0th set of chroma QP tables applies only to intra CUs in the CLVS that reference an SPS, and the 1st set of chroma QP tables applies only to inter CUs in the CLVS that reference an SPS. v. In one example, the 0th set of chroma QP tables applies only to intra-coded blocks in a CLVS that references an SPS, and the 1st set of chroma QP tables applies only to inter-coded blocks in a CLVS that references an SPS. e. The flag may only be sent if ChromaArrayType is not equal to 0. f. An exemplary implementation is shown in embodiment 4. g. Another exemplary implementation is shown in embodiment 5.
[0052] 8. The chroma QP table may be determined according to the prediction mode. In one example, intra CUs and other CUs may have different sets of chroma QP tables. i. In one example, it may be applied only to dual trees and / or local dual trees. b. Alternatively, the intra / palette CU and other CUs may have different sets of chroma QP tables. c. Alternatively, the intra / IBC / palette CU and other CUs may have different sets of chroma QP tables. d. Alternatively, intra / IBC CUs and other CUs may have different sets of chroma QP tables. e. In the above example, the number of chroma QP tables signaled may depend on the number of sorted sets of prediction modes. f. In the above example, the prediction mode may refer to the prediction mode of the luma CB.
[0053] 9. Transform skip blocks may have different sets of chroma QP tables. a. In one example, it may only be applied to luma blocks coded in transform skip mode.
[0054] 10. The maximum allowed value of the chroma QP table start point syntax element, currently represented as qp_table_start_minus26 in JVET-Q2001-vC, may be 37.
[0055] 11. The chroma QP table start syntax element, currently represented as qp_table_start_minus26 in JVET-Q2001-vC, may be offset by a number K less than 26. a. In one example, the syntax element may be replaced by qp_table_start_minusK, and / or the value of the syntax element plus K must be in the range of -(K+QpBdOffset) to (MK), inclusive, where K is less than 26. b. In one example, the syntax element may be replaced by qp_table_start_minusK, and / or the value of the syntax element must be in the range of -(K+QpBdOffset) to (M-1-K), inclusive, where K is less than 26. i. In one example, K is equal to 20. Alternatively, and further, the syntax element may be replaced by init_qp_minus20, and / or the value of the syntax element plus 20 must be in the range of -(20+QpBdOffset) to (M-20), inclusive. ii. In one example, K is equal to 20. Alternatively, and further, the syntax element may be replaced by init_qp_minus20, and / or the value of the syntax element plus 20 must be in the range of -(20+QpBdOffset) to (M-1-20), inclusive. c. Alternatively, the initial QP value syntax element may be offset by a number K greater than 26. i. In one example, the syntax element may be replaced by init_qp_minusK, and the value of the syntax element plus K must be in the range of -(K+QpBdOffset) to (MK), inclusive, where K is a constant greater than 26. ii. In one example, the syntax element may be replaced by init_qp_minusK, and the value of the syntax element plus K must be in the range of -(K+QpBdOffset) to (M-1-K), inclusive, where K is a constant greater than 26. 1) In one example, K is equal to 32. Alternatively, the syntax element may be replaced by init_qp_minus32, and the value of the syntax element plus 32 must be in the range of -(32+QpBdOffset) to (M-32), inclusive. 2) In one example, K is equal to 32. Alternatively, the syntax element may be replaced by init_qp_minus32, and the value of the syntax element plus 32 must be in the range of -(32+QpBdOffset) to (M-1-32), inclusive. d. In the above example, K may depend on the picture / slice type, and / or prediction mode and / or bit depth. i. In one example, for an intra picture / slice, K is set to 1. ii. In one example, for P / B pictures / slices, K is set to 32. e. In the above example, M may be the maximum allowed QP value, for example 63. f. In one example, K is 0. i. Alternatively, and in addition, syntax elements may be binarized with uv(e) instead of sv(e).
[0056] 12. The chroma QP table start syntax element, denoted as qp_table_start_minus26 in JVET-Q2001-vC, may be offset by a value that depends on whether the current picture is an intra-only picture. a. Alternatively, the offset may depend on the intra_only_constraint_flag.
[0057] 13. The syntax element for the number of pivot points in the chroma QP table, currently represented as num_points_in_qp_table_minus1, should be able to state 0 number of points. a. In one example, the syntax element num_points_in_qp_table_minus1 may be replaced by num_points_in_qp_table, which is used to specify the number of points in the chroma QP table, and the value is a non-negative integer. i. In one example, the value of the syntax element representing the number of pivot points must be in the range of 0 to (63+QpBdOffset). b. Alternatively, further, when the number of pivot points in the chroma QP table is zero, the i-th entry of the chroma QP table is set equal to the i-th entry of the luma QP table. c. Alternatively, and further, when the number of pivot points in the chroma QP table is zero, the i-th entry of the chroma QP table is set equal to (i-th entry of the luma QP table + offset). i. In one example, the offset may depend on the coded method (e.g., JCCR on and off).
[0058] 14. Parsing of the chroma QP table start syntax element, currently represented as qp_table_start_minus26 in JVET-Q2001-vC, may be conditional on whether the number of pivot points is 0 or not. a. In one example, when the number of pivot points is 0, parsing of the syntax element may be skipped.
[0059] 15. In the chroma QP table derivation process, an XOR operator should be performed between (delta_qp_in_val_minus1[i][j]+1) and delta_qp_diff_val[i][j]. a. An example is shown in embodiment 3.
[0060] 16. QP clipping may always be applied to the chroma QP table index. In one example, the clipping range is from -QpBdOffset to 63.
[0061] 17. QP clipping may always be applied to the mapped chroma QP in the chroma QP table. In one example, the clipping range is from -QpBdOffset to 63.
[0062] 18. Chroma QP tables may be signaled in both SPS and PPS. In one example, a chroma QP table in the PPS may take precedence over a corresponding table in the SPS.
[0063] 19. Chroma QP tables may be signaled in PH or SH. In one example, a chroma QP table in PH or SH may take precedence over the corresponding table in SPS or PPS.
[0064] 20. The default chroma QP table may depend on the ChromaArrayType. a. In one example, when ChromaArrayType is equal to 3 (i.e., 4:4:4 color format and separate_colour_plane_flag is equal to 0), the same QP chroma QP table (i.e., luma QP = chroma QP) may be set as the default. b. In one example, when ChromaArrayType is equal to 2 (ie, 4:2:2 color format), the uniform QP chroma QP table (ie, luma QP = chroma QP) may be set as the default.
[0065] 21. With regard to the control of RRC and TSRC to solve the eighth problem, one or more of the following approaches are disclosed, for example, as a seventh set of embodiments: a. In one example, whether TSRC should be allowed for a video unit (CLVS / group of pictures / picture / slice / tile / CTU row / CTU / CU / PU / TU) may depend on syntax elements (e.g., one or more flags) signaled at the SPS / PPS / PH / SH / block / CU / TU level. i. For example, the TSRC enable / disable flag may be signaled in either the PH or the SH, but not both. 1) Furthermore, whether the TSRC enable / disable flag should be signaled in the PH or SH may depend on the syntax elements signaled in the PPS / SPS. 2) Furthermore, when the TSRC enable / disable flag is signaled in the PH, the TSRC enable / disable flag is not signaled in the SH. 3) Furthermore, when the TSRC enable / disable flag is not present in the SH, it is inferred to be equal to the TSRC enable / disable flag in the PH. ii. Alternatively, the TSRC enable / disable flag may be signaled in both the PH and SH. 1) Additionally, if the TSRC enable / disable flag in the PH determines that TSRC is unavailable for all slices that reference the PH, the TSRC enable / disable flag may not be signaled in the SH. iii. For example, the TSRC enable / disable flag at the block / CU / TU level is coded with a context-adaptive arithmatic entropy-coded syntax element such as ae(v) coding. iv. For example, the TSRC enable / disable flag at the SPS / PPS / PH / SH level is coded with an unsigned integer using n bits, such as n=1 (e.g., u(1) coding). b. Furthermore, the signaling of the TSRC enable / disable flag for a video unit may depend on whether transform skip is enabled / used for the video unit. i. For example, if transform skipping is disabled at the SPS level (e.g., sps_transform_skip_enabled_flag is equal to 0), the TSRC enable / disable flag at the PPS level is required to be equal to a specific value that specifies that TSRC is not available for pictures that refer to the current PPS. ii. Furthermore, if transform skipping is disabled at a higher level (e.g., sps_transform_skip_enabled_flag is equal to 0), the TSRC enable / disable flag is not signaled at lower levels and / or at the same level (e.g., SPS / PH / SH / block / CU / TU level). iii. Alternatively, if transform skip mode is enabled at a higher level (e.g., SPS) but is not used for the video unit (e.g., transform_skip_flag at the TU level is 0), the TSRC enable / disable flag for the current video unit (e.g., TU) is not signaled. iv. Furthermore, when the TSRC enable / disable flag is not signaled at the video unit level, the value of the TSRC enable / disable flag is inferred to be a specific value that specifies that the TSRC is not available for that video unit. c. Alternatively, further signaling of the TSRC enable / disable flag at a lower level may depend on the TSRC enable / disable flag at a higher level. i. For example, the signaling of the TSRC enable / disable flag at the picture / slice level may depend on whether the TSRC is enabled at the SPS / PPS level. ii. Furthermore, the signaling of the TSRC enable / disable flag at the block / CU / TU level may depend on whether the TSRC is enabled at the SPS / PPS / picture / slice level. 1) For example, when TSRC is disabled at a higher level (e.g., SPS / PPS / picture / slice level), the TSRC enable / disable flag at the block / CU / TU level is not signaled. 2) Additionally, when the TSRC enable / disable flag is not present, it is inferred to be a specific value (eg, a value specifying that the TSRC is not available for the current video unit). iii. Furthermore, the value of the TSRC enable / disable flag at the PPS level may depend on whether the TSRC is enabled at the SPS level. 1) For example, when the TSRC enable / disable flag at the SPS level specifies that TSRC is unavailable for CLVS, the value of the TSRC enable / disable flag at the PPS level is inferred to be equal to a specific value that specifies that TSRC is unavailable for pictures that refer to the current PPS.
[0066] Regarding ALF and CC-ALF 22. It is proposed that the indication of chroma ALF / CC-ALF usage for the current CTU is not signaled when luma ALF is unavailable for the current CTU. Alternatively, further utilization is inferred to be false when luma ALF is disabled for CUT. In other words, chroma ALF / CC-ALF is disabled when luma ALF is disabled in CUT.
[0067] Regarding sub-bitstream extraction 23. It is proposed that the information carried in the array NumSubLayersInLayerInOLS[ ][ ] may be used in the sub-bitstream extraction process in VVC only for the removal of VCL NAL units. a. In one example, the following steps within the sub-bitstream extraction process specified in VVC section C.6: - Remove from outBitstream all NAL units for which all of the following conditions are true: - nal_unit_type is not equal to IDR_W_RADL, IDR_N_LP, or CRA_NUT. - nuh_layer_id is equal to LayerIdInOls[targetOlsIdx][j], for values of j in the range 0 to NumLayersInOls[targetOlsIdx]-1, inclusive. - TemporalId is greater than or equal to NumSubLayersInLayerInOLS[targetOlsIdx][j]. is changed to be: - Remove all VCL NAL units from outBitstream for which all of the following conditions are true: - nal_unit_type is not equal to IDR_W_RADL, IDR_N_LP, or CRA_NUT. - nuh_layer_id is equal to LayerIdInOls[targetOlsIdx][j], for values of j in the range 0 to NumLayersInOls[targetOlsIdx]-1, inclusive. - TemporalId is greater than or equal to NumSubLayersInLayerInOLS[targetOlsIdx][j].
[0068] Regarding the number of APS In the following discussion, "Maximum allowed number of filters" may refer to "the maximum allowed number of filters that can be signaled by one or more APSs for a sequence / picture / slice." "Maximum allowed number of APS NAL units" may refer to "maximum allowed number of APS NAL units that can be signaled for a sequence / picture / slice." The "maximum allowable number of filter coefficients" may refer to the "maximum allowable number of filter coefficients that can be signaled by one or more APSs for a sequence / picture / slice."
[0069] 24. Regarding the number of APS NAL units to solve the 12th problem: a. The following APS NAL unit types may be one or more of: ALF APS, LMCA APS, and SCALING APS. b. In one example, APSs containing information about different color components may be signaled separately. i. For example, an APS NAL unit may only contain luma-related syntax elements (eg, luma filters). ii. Furthermore, an APS NAL unit may only contain chroma (eg, Cb and / or Cr) related syntax elements (eg, chroma filters). 1) For example, an APS NAL unit may contain only chroma ALF syntax elements. 2) For example, an APS NAL unit may contain only CCALF syntax elements. 3) Alternatively, an APS NAL unit may contain only the CCALF Cb syntax element. 4) Alternatively, an APS NAL unit may contain only the CCALF Cr syntax element. iii. For example, the luma and chroma filters of the ALF (and / or LMCS and / or scaling list) may have different APS types (eg, aps_params_type). iv. For example, one or more SEs are signaled in the APS to indicate which color components are included in the APS. c. In one example, the maximum allowed number of APS NAL units that can be signaled for a sequence / picture / slice may depend on a predefined value (e.g., a predefined memory size or a predefined number of filters). d. In one example, the number of filters signaled in the APS for a sequence / picture / slice must be less than or equal to the maximum allowed number of filters signaled in the APS. e. In one example, the number of filter coefficients signaled in the APS for a sequence / picture / slice must be less than or equal to the maximum allowed number of filter coefficients signaled in the APS. The maximum allowed number of filters signaled in i.APS may be a predefined number. ii. The maximum allowed number of filter coefficients signaled in an APS may be different for different APS types. iii. The maximum allowed number of filter coefficients signaled in the APS may be signaled from the encoder to the decoder, for example in the VPS / SPS / PPS / PH / SH / sequence header. f. In one example, it is required that the number of filters signaled in the APS for a sequence / picture / slice must be less than or equal to the maximum allowed number of filters signaled in the APS. g. In one example, the maximum allowed number of filters signaled in the APS for different color components may be different. i. In one example, the maximum allowed number of luma filters signaled in an APS and the maximum number of chroma filters signaled in an APS may be different. ii. For example, the maximum allowed number of luma filters signaled in an APS of a particular APS type (eg, ALF / LMCS / SCALING) and the maximum allowed number of signals in an APS are equal to a first particular value. iii. Furthermore, the maximum allowed number of chroma (eg, Cb and / or Cr) filters signaled in the APS of a particular APS type (eg, ALF / LMCS / SCALING) is equal to a second particular value. iv. For example, the maximum allowed number of luma filters signaled in the APS for all APS types (eg, ALF / LMCS / SCALING) is equal to a first specified value. v. Furthermore, the maximum allowed number of chroma (eg, Cb and / or Cr) filters signaled in the APS for all APS types (eg, ALF / LMCS / SCALING) is equal to a second specified value. h. In one example, the maximum allowable number of ALF luma filters, the maximum allowable number of ALF chroma filters, and the maximum allowable number of CCALF filters may be different. i. For example, the maximum allowed number of ALF luma filters is equal to X1 (e.g., X1=25×8=200). ii. For example, for an ALF APS unit, the maximum allowed number of ALF chroma filters is equal to X2 (eg, X2=8×8=64). iii. For example, for an ALF APS unit, the maximum allowable number of CCALF filters is equal to X3 (e.g., X3=4×8×2=64). 1) Alternatively, the maximum allowed number of CCALF Cb filters is Y1 (eg, Y1=4×8=32). 2) Furthermore, the maximum allowable number of CCALF Cr filters is Y2 (eg, Y2=4×8=32). iv. In one example, X1, X2, X3, Y1, Y2 are predefined values. i. In one example, each of the maximum allowable numbers of filters in an APS NAL unit is equal to K_i, where K indicates a particular value and i indicates a filter type (eg, luma filter, chroma filter, ccalf filter, etc.). i. For example, K_i for the ALF luma filter is equal to 25×8=200. ii. For example, K_i for ALF chroma filters is equal to 8×8=64. iii. For example, K_i of the CCALF filter is equal to 4×8×2=64. 1) Alternatively, K_i of the CCALF Cb filter is equal to 4×8=32. 2) Alternatively, K_i of the CCALF Cr filter is equal to 4×8=32. j. In one example, the maximum allowed number may be signaled from the encoder to the decoder, for example, in the VPS / SPS / PPS / PH / SH / Sequence header. i. For example, the "maximum allowed number" in this section may refer to the maximum allowed number of APS NAL units, the maximum allowed number of filters, or the maximum allowed number of filter coefficients. ii. For example, the maximum allowed number of APS NAL units of a particular type (eg, aps_params_type equal to ALF APS) may be signaled. 1) For example, the maximum allowed number may be signaled at the SPS level. 2) For example, the maximum allowed number may be signaled at the PS / SH level. iii. For example, the maximum allowed number of signallings may depend on whether coding tools (ALF / CCALF / LMCS / scaling lists) are available. 1) In one example, when ALF / CCALF is unavailable, the maximum allowed number of ALF / CCALF APS may not be signaled. Additionally, numbers are inferred to be equal to a particular value (e.g., 0) when not present. 2) In one example, when CCALF is unavailable, the maximum allowed number for ALF APS with APS ID (e.g., adaptation_parameter_set_id) equal to the CCALF APS ID (e.g., ph_cc_alf_cb_aps_id, ph_cc_alf_cr_aps_id, slice_cc_alf_cb_aps_id, slice_cc_alf_cr_aps_id) may not be signaled. Additionally, numbers are inferred to be equal to a particular value (e.g., 0) when not present. 3) The method of signaling the maximum allowed number for smaller video units (eg, pictures, slices) may depend on the maximum allowed number for higher levels (eg, SPS). For example, the maximum allowed number of ALF luma APS depends on the maximum allowed number of ALF APS. iv. For example, a variable (e.g., NM or MN, where M is a particular value less than N) derived from the maximum allowed number (denoted as N) may be signaled. k. In one example, the maximum allowed number depends on the chroma format. i. For example, the maximum allowed numbers for luma / chroma may depend on whether ChromaArrayType is equal to 0 (eg, 4:0:0 and 4:0:0 with separate color plane coding). ii. For example, the maximum allowed number of ALF / SCALING / LMCS APS depends on whether ChromaArrayType is equal to 0 or not. l. In one example, the maximum allowable number above may depend on whether coding tools are available. i. For example, the maximum allowed numbers above depend on whether ALF is available and / or whether CCALF is enabled at the SPS / PPS / PH / SH level. ii. For example, the maximum allowed number of ALF APS depends on whether ALF is available and / or whether CCALF is enabled at the SPS / PPS / PH / SH level. iii. For example, the maximum allowed number of LMCA APS depends on whether LMCS is available and / or whether chroma residual scaling (CRS) is enabled at the SPS / PPS / PH / SH level. iv. For example, the maximum allowed number of SCALING APS depends on whether explicit scaling lists are enabled at the SPS / PPS / PH / SH level. m. In one example, the method of coding the APS ID may depend on a limited number. i. In one example, the APS ID may be ue(v) coded in the range of 0 to K (e.g., 127 or 255). ii. Alternatively, the APS ID may be u(X) coded, with X=7 or 8, etc. 1) X may be signaled before the APS ID is coded. 2) X may be derived before the APS ID is coded. 3) X may be derived based on the maximum allowed number. iii. Alternatively, the max number of APS IDs is signaled. 1) For example, the maximum number of APS IDs may be u(X) coded, with X=7 or 8, etc. 2) Furthermore, the APS ID may be u(v) coded. iv. For example, the APS ID above may be one or more of the following: 1) adaptation_parameter_set_id in the APS syntax structure. 2) ph_alf_aps_id_luma[i], ph_alf_aps_id_chroma, ph_cc_alf_cb_aps_id, ph_cc_alf_cr_aps_id in the PH syntax structure. 3) slice_alf_aps_id_luma[i], slice_alf_aps_id_chroma, slice_cc_alf_cb_aps_id, slice_cc_alf_cr_aps_id in the SH syntax structure. 4) ph_lmcs_aps_id in the PH syntax structure. 5) ph_scaling_list_aps_id in the PH syntax structure. n. In one example, the above constraints may be expressed by bitstream conformance, bitstream constraints, or explicit signaling in syntax tables. o. In one example, the above restrictions / limitations / restrictions may depend on the profile / level / general restriction flag, etc.
[0070] 25. It is proposed that the signaling and / or range and / or inference of syntax elements specifying the number of points in the QP table depend on other syntax elements. It is suggested to set the maximum value of a.num_points_in_qp_table_minus1[i] to (maximum QP value) - (starting luma and chroma QP used to describe the i-th chroma QP mapping table). i. In one example, the maximum value is set to (63-(qp_table_start_minus26[i]+26)). ii. In one example, the maximum value is set to (64-(qp_table_start_minus26[i]+26)).
[0071] 26. When affine is enabled and SbTMVP is disabled, it is proposed that the maximum number of subblock merge candidates is not allowed to be 0 (MaxNumSubblockMergeCand). a. In one example, the maximum number of sub-block merging candidates is limited to be greater than 0 when affine is enabled and SbTMVP is disabled. b. In one example, the range of sps_five_minus_max_num_subblock_merge_cand is from [0,4], regardless of the value of the SPS's SbTMVP enabled flag (e.g., sps_sbtmvp_enabled_flag). c. A conformance bitstream should satisfy the following when affine is enabled: the value of MaxNumSubblockMergeCand must be in the range 1 to 5, inclusive. i. Alternatively, and in addition, the value of MaxNumSubblockMergeCand must be in the range 0 to 1, inclusive, when affine is disabled. d. Alternatively, whether to signal merge_subblock_flag also depends on whether affine is available, instead of checking the maximum number of subblock merging candidates.
[0072] 27. It is proposed to add a first syntax element to indicate whether affine merge mode is allowed. a. Alternatively, the first syntax element may also be conditionally signaled, for example, according to whether the SPS affine flag is enabled. b. Alternatively, an indication of the maximum number of sub-block merging candidates may also be signaled when the first syntax element indicates that affine merging mode is enabled.
[0073] 28. To solve issue 13, the subpicture layout is signaled as follows: a. A flag, for example called sps_subpic_same_res_flag, is added to specify whether all subpictures that reference an SPS have the same width and height, respectively. b. When sps_subpic_same_res_flag is equal to 1, the common width and height of all subpictures, in units of CTUs, are signaled, for example, by two new syntax elements: sps_uniform_subpic_width_minus1 and sps_uniform_subpic_height_minus1, respectively. i. In one example, furthermore, the number of subpicture columns, denoted numSubpicCols, is derived to be equal to (sps_pic_width_max_in_luma_samples / ((sps_uniform_subpic_width_minus1+1)*CtbSizeY))), the number of subpicture rows, denoted numSubpicRows, is derived to be equal to (sps_pic_height_max_in_luma_samples / ((sps_uniform_subpic_height_minus1+1)*CtbSizeY))), and the number of subpictures, denoted sumSubpics, is derived to be equal to numSubpicCols*numSubpicRows. ii. In one example, even if sps_num_subpics_minus1 is skipped, the value is inferred to be equal to numSubpics-1. iii. In one example, for each value of i ranging from 0 to sps_num_subpics_minus1, the values of sps_subpic_ctu_top_left_x[i], sps_subpic_ctu_top_left_y[i], sps_subpic_width_minus1[i], and sps_subpic_height_minus1[i] are inferred to be equal to (sps_uniform_subpic_width_minus1+1)*(i%numSubpicCols), (sps_uniform_subpic_height_minus1+1)*(i / numSubpicCols), sps_uniform_subpic_width_minus1, and sps_uniform_subpic_height_minus1, respectively. iv. In one example, for each value of i ranging from 0 to sps_num_subpics_minus1, inclusive, when sps_independent_subpics_flag is equal to 0, sps_subpic_treated_as_pic_flag[i] and sps_loop_filter_across_subpic_enabled_flag[i] are signaled. When c.sps_subpic_same_res_flag is equal to 0, the current subpicture layout signaling in JVET-Q2001-vA / v10 is applied. d. In one example, when sps_pic_width_max_in_luma_samples is less than or equal to CtbSizeY, sps_uniform_subpic_width_minus1 is skipped and inferred to be equal to 0. e. In one example, when sps_pic_height_max_in_luma_sample is less than or equal to CtbSizeY, sps_uniform_subpic_height_minus1 is skipped and inferred to be equal to 0. f. In one example, sps_uniform_subpic_width_minus1 and sps_uniform_subpic_height_minus1 are ue(v) coded, and sps_subpic_ctu_top_left_x[i], sps_subpic_ctu_top_left_y[i], sps_subpic_width_minus1[i], and sps_subpic_height_minus1[i] are also ue(v) coded. g. In one example, sps_uniform_subpic_width_minus1 and sps_uniform_subpic_height_minus1 are u(v) coded with the same length as sps_subpic_width_minus1[i] and sps_subpic_height_minus1[i], respectively, in JVET-Q2001-vA / v10. h. In one example, the SPS syntax is changed as follows. Bold italic underlined text indicates newly added text, and double brackets (e.g., [[ ]]) indicate the removal of the text within the brackets: [Table 3] TIFF0007753320000005.tif75170i. In this example, the SPS syntax is changed to: [Table 4] TIFF0007753320000007.tif58168
[0074] 29. The following changes to the latest VVC specification text in JVET-Q2001-vA / v10 are proposed: [Table 5] TIFF0007753320000009.tif190169
[0075] 30. The following changes are proposed to the previous paragraph: [Table 6] TIFF0007753320000011.tif69169
[0076] 31. When pps_pic_width_in_luma_samples is less than or equal to CtbSizeY, pps_tile_column_width_minus1[i] is required to be equal to PicWidthInCtbsY-1.
[0077] 32. When pps_pic_height_in_luma_samples is less than or equal to CtbSizeY, pps_tile_row_height_minus1[i] is required to be equal to PicHeight-1.
[0078] [6. Embodiment] [6.1. Embodiment 1: Chroma QP Table According to Slice Type] Changes marked with bold italic underlined text are based on JVET-Q2001-vC, and deleted text is marked with double brackets (e.g., [[ ]]) with the text that was deleted between the brackets. [Table 7] TIFF0007753320000013.tif223167TIFF0007753320000014.tif228167TIFF00077533200 00015.tif230167TIFF0007753320000016.tif212166TIFF0007753320000017.tif126166
[0079] 6.2. Embodiment 2: Number of Pivot Points and Clipping for Mapped Chroma QP Changes marked with bold italic underlined text are based on JVET-Q2001-vC. [Table 8] TIFF0007753320000019.tif224166TIFF0007753320000020.tif116166
[0080] 6.3. Third Embodiment Changes marked with bold italic underlined text are based on JVET-Q2001-vE. [Table 9]
[0081] 6.4. Embodiment 4 Newly added text is marked with bold italic underlined text, and deleted text is marked with double brackets (e.g., [[ ]]) with the text that was deleted between the double brackets. It is based on JVET-Q2001-vE. [Table 10] TIFF0007753320000023.tif231166TIFF0007753320000024.tif220167TIFF0007753320000025.tif229166TIFF0007753320000026.tif247166
[0082] 6.5. Embodiment 5 Newly added text is marked with bold italic underlined text, and deleted text is marked with double brackets (e.g., [[ ]]) with the text that was deleted between the double brackets. It is based on JVET-Q2001-vE. [Table 11] TIFF0007753320000028.tif218166TIFF0007753320000029.tif224166TIFF0007753320000030.tif149166
[0083] 6.6. Embodiment 6 The proposed specification changes on top of JVET-Q2001-vE are explained as follows: Deleted text is marked with double brackets (e.g., [[ ]]) with the text that was deleted between the double brackets. Newly added text is highlighted with bold italic underlined text. [Table 12] TIFF0007753320000032.tif152168
[0084] [6.7. Seventh Set of Embodiments] This is a series of embodiments of item 20 summarized in section 5 above. The changed text is based on the latest VVC text of JVET-Q2001-vE. The most relevant parts that have been added or changed are highlighted with bold italic underlined text, and some of the deleted text is marked with double brackets (e.g., [[ ]]) to indicate the deleted text between the double brackets.
[0085] 6.7.1. Example Embodiments In one example, the SPS syntax structure may be modified as follows: [Table 13] In one example, the PPS syntax structure may be modified as follows: [Table 14] In one example, the PH syntax structure may be modified as follows: [Table 15] In one example, the PH syntax structure may be modified as follows: [Table 16] In one example, the transform_unit() syntax structure can be modified as follows: [Table 17] TIFF0007753320000038.tif219170
[0086] 6.7.2. Other Example Embodiments Alternatively, the PPS, PS, SH syntax can be modified as follows: [Table 18] TIFF0007753320000040.tif114170
[0087] 6.7.3. Other Example Embodiments Alternatively, the PPS, SH syntax can be modified as follows: [Table 19]
[0088] 6.7.4. Other Example Embodiments Alternatively, the SH syntax can be modified as follows: [Table 20]
[0089] 3 is a block diagram illustrating an example video processing system 1900 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1900. System 1900 may include an input 1902 that receives video content. The video content may be received in raw or uncompressed format, e.g., 8- or 10-bit multi-component pixel values, or may be in a compressed or encoded format. Input 1902 may correspond to 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 a cellular network.
[0090] System 1900 may include a coding component 1904 that may implement various coding or encoding methods described herein. Coding component 1904 may reduce the average bitrate of video from input 1902 to an output of coding component 1904 to generate a coded representation of the video. Coding techniques are therefore sometimes referred to as video compression or video transcoding techniques. The output of coding component 1904 may be stored or transmitted via a connected communication, as represented by component 1906. The stored or communicated bitstream (or coded) representation of the video received at input 1902 may be used by component 1908 to generate pixel values or displayable video that is sent to display interface 1910. 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 such coding tools or operations are used in an encoder, and that corresponding decoding tools or operations that transpose the results of the coding would be performed by a decoder.
[0091] 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 Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect (PCI), Integrated Drive Electronics (IDE) interfaces, etc. The techniques described herein may be embodied 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.
[0092] FIG. 4 is a block diagram of a video processing device 3600. The device 3600 may be used to implement one or more of the methods described herein. The device 3600 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The device 3600 may include one or more processors 3602, one or more memories 3604, and video processing hardware 3606. The processor 3602 may be configured to implement one or more of the methods described herein. The memory(s) 3604 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 3606 may be used in hardware circuitry to implement some of the techniques described herein.
[0093] FIG. 6 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.
[0094] 6, video coding system 100 may include source device 110 and destination device 120. Source device 110 generates encoded video data and may be referred to as a video encoding device. Destination device 120 can decode the encoded video data generated by source device 110 and may be referred to as a video decoding device.
[0095] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface .
[0096] 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 comprise 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 sequence of bits 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 a transmitter. The coded video data may be transmitted directly over the network 130a to the destination device 120 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.
[0097] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0098] I / O interface 126 may include a receiver and / or 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 and configured to interface with an external display device.
[0099] Video encoder 114 and 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 future standards.
[0100] FIG. 7 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 of the system 100 illustrated in FIG.
[0101] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 7, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared 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.
[0102] Functional components of the video encoder 200 may include a partition 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 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.
[0103] In other examples, video encoder 200 may include more, fewer, or different functional components. In an example, prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0104] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are represented separately in the example of FIG. 7 for illustrative purposes.
[0105] Partition 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.
[0106] The mode select unit 203 may select one of intra or inter coding modes, for example, based on an error result, and provide the resulting intra- or inter-coded block to a residual generation unit 207, which generates residual block data, and to a reconstruction unit 212, which reconstructs a coded block for use as a reference picture. In some examples, the mode select unit 203 may select a combination of intra and inter prediction (CIIP) mode, in which prediction is based on an inter prediction signal and an intra prediction signal. The mode select unit 203 may also select a resolution (e.g., sub-pixel or integer pixel precision) for the motion vector of the block in the case of inter prediction.
[0107] 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 predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.
[0108] Motion estimation unit 204 and motion compensation unit 205 may perform different operations for the current video block depending on whether the current video block is an I slice, a P slice, or a B slice, for example.
[0109] In some examples, motion estimation unit 204 may perform unidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 or list 1. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. 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.
[0110] In another example, motion estimation unit 204 may perform bidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 and may look for another reference video block for the current video block from a reference picture in list 1. 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 the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 may output the reference index and the motion vector for the current video block as motion information for the current video block. Motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information for the current video block.
[0111] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.
[0112] 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 motion information of other video blocks. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks.
[0113] 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 other video blocks.
[0114] In other examples, 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. Video decoder 300 may use the motion vector and the motion vector difference of the indicated video block to determine the motion vector of the current video block.
[0115] As described above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.
[0116] 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 a predicted video block and various syntax elements.
[0117] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the predicted 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.
[0118] In other examples, for example, in skip mode, residual data for the current video block may not exist and residual generation unit 207 may not perform the subtraction operation.
[0119] 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.
[0120] 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.
[0121] 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 predicted video blocks generated by prediction unit 202 to generate a reconstructed video block related to the current block for storage in buffer 213.
[0122] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.
[0123] Entropy encoding unit 214 may receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it may perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.
[0124] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In an example, when a video processing tool or mode is enabled, an encoder uses or implements that tool or mode in processing blocks of video, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, conversion of blocks of video to a video bitstream (or bitstream representation) uses the video processing tool or mode when that tool or mode is enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, a decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, conversion of the video bitstream to blocks of video is performed using the video processing tool or mode that was enabled based on the decision or determination.
[0125] FIG. 8 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 114 of the system 100 illustrated in FIG.
[0126] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 8, video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared 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.
[0127] 8, 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 may, in some examples, perform a decoding pass that is generally the reverse of the encoding pass described with respect to video encoder 200 (FIG. 7).
[0128] The entropy decoding unit 301 may retrieve an encoded bitstream. The 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.
[0129] The motion compensation unit 302 may optionally perform interpolation based on an interpolation filter to generate the motion-compensated blocks. Identifiers for the interpolation filters used with sub-pixel precision may be included in the syntax elements.
[0130] Motion compensation unit 302 may use the interpolation filters used by video encoder 200 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to generate the predictive block.
[0131] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to code the frames and / or slices of the coded video sequence, partition information describing how each macroblock of a picture of the coded video sequence is partitioned, a mode indicating how each partition is coded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the coded video sequence.
[0132] Intra prediction unit 303 may use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially neighboring blocks. Inverse quantization unit 304 inverse quantizes, or dequantizes, the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies an inverse transform.
[0133] Reconstruction unit 306 may add the corresponding prediction block generated by motion compensation unit 302 or intra prediction unit 303 to the residual block to form a decoded block. Optionally, a deblocking filter may also be applied to filter the decoded block to remove blockiness artifacts. The decoded video block is then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and further generates the decoded video for presentation on a display device.
[0134] A list of preferred solutions according to some embodiments is provided below.
[0135] The following solutions represent implementations of the techniques described in the previous sections (eg, item 1).
[0136] Solution 1. 1. A method of video processing (e.g., the method of FIG. 5), comprising: performing (502) a conversion between a video including video pictures and a coded representation of said video; The coded representation follows formatting rules: the formatting rules define whether and where one or more syntax elements indicating one or more initial quantization parameter (QP) values to be used during the transform are included in the coded representation. method.
[0137] Solution 2. the formatting rules specify that a syntax element indicating the one or more QP values is included in a picture header without including the syntax element in a picture parameter set. The method described in Solution 1.
[0138] Solution 3. the formatting rules specify that a syntax element indicating the one or more QP values is included in a picture parameter set and repeated in one or more picture headers. The method described in Solution 1.
[0139] Solution 4. the formatting rules specify that the one or more syntax elements are included in the coded representation at multiple levels, including two or more of a sequence parameter set, a picture parameter set, a picture header, and a sequence header, according to rules. The method described in Solution 1.
[0140] Solution 5. the rules are based on a video picture type of the video picture; The method described in Solution 4.
[0141] The following solutions represent implementations of the techniques described in the previous sections (eg, items 2-3).
[0142] Solution 6. 1. A method of video processing, comprising: determining an initial quantization parameter (QP) value to use for transforming between video blocks of a video and a coded representation of the video; performing the conversion based on the determination; and a syntax element in the coded representation indicates an initial QP value using an offset relationship that includes an offset value K that is (a) between 1 and 25, or (b) greater than 26, or (c) a function of the maximum allowed QP value for the transform, or (d) a function of the bit depth used for the transform. method.
[0143] Solution 7. K is a function of the type of the video block or the type of the video slice or video picture that contains the video block. Solution 6:
[0144] The following solutions represent implementations of the techniques described in the previous sections (e.g., items 4-5).
[0145] Solution 8. 1. A video processing method comprising: determining, according to a rule, one or more quantization parameter (QP) tables for conversion between chroma blocks of a video and a coded representation of the video based on the type of picture or slice containing the chroma blocks; performing the conversion based on the determination; A method having the following.
[0146] Solution 9. the rules provide that the one or more QP tables are different for I, B, and P video pictures. The method described in Solution 8.
[0147] Solution 10. the rules provide that the one or more QP tables for I-coded video pictures are different from the one or more QP tables for B- and P-coded video pictures; The method described in Solution 8.
[0148] Solution 11. The rule is based on a classification of the picture type and slice type to which the chroma block belongs, The number M represents an index for the classification, where M is an integer greater than 1. The method according to any one of Solutions 8 to 10.
[0149] The following solutions represent implementations of the techniques described in the previous sections (e.g., items 6-8).
[0150] Solution 12. 1. A video processing method comprising: determining one or more quantization parameter (QP) tables for transforming between chroma blocks of a video and a coded representation of the video; performing the conversion based on the determination; and the transformation is according to a first rule specifying one or more syntax elements corresponding to the one or more QP tables, or a second rule specifying a relationship between the one or more QP tables and coding characteristics of the chroma blocks. method.
[0151] Solution 13. the first rule specifies that the one or more syntax elements are included in a sequence parameter set associated with the coded representation; The method described in Solution 12.
[0152] Solution 14. the second rule specifies that the one or more QP tables are based on a prediction mode used for the transform. The method according to any one of Solutions 12-13.
[0153] Solution 15. The second rule is that the one or more QP tables for intra-coded chroma blocks are different from those for chroma blocks using other prediction modes. The method described in Solution 13.
[0154] The following solutions represent implementations of the techniques described in the previous sections (e.g., items 9-14).
[0155] Solution 16. 1. A video processing method comprising: performing a conversion between chroma blocks of a video and a coded representation of said video; The coded representation follows formatting rules: the format rules define characteristics of syntax elements associated with one or more chroma quantization parameter (QP) tables used in the transform; method.
[0156] Solution 17. the formatting rules define a maximum value for a start-point syntax element of the one or more chroma QP tables. The method described in Solution 16.
[0157] Solution 18. the formatting rules specify that the one or more chroma QP table start point syntax elements have values offset by a number K less than 26. The method described in Solution 16.
[0158] Solution 19. the format rules specify that the one or more chroma QP table start point syntax elements are offset by a value that depends on whether the current picture for the chroma block is an intra-only picture. The method described in Solution 16.
[0159] Solution 20. the formatting rules specify that the number of pivot points in the one or more chroma QP tables is zero. The method according to any one of solutions 16 to 19.
[0160] Solution 21. the number of pivot points in the one or more chroma QP tables is zero, such that the i-th entry of the one or more chroma QP tables is set equal to the i-th entry of a corresponding luma QP table; The method according to any one of solutions 16 to 20.
[0161] Solution 22. the syntax element is included in both a sequence parameter set and a picture parameter set in the coded representation. The method according to any one of solutions 16 to 21.
[0162] Solution 23. The syntax element is included in either a picture header or a sequence header. The method according to any one of solutions 16 to 22.
[0163] The following solutions represent implementations of the techniques described in the previous sections (eg, item 25).
[0164] Solution 24. 1. A video processing method comprising: determining, based on formatting rules for one or more syntax elements in a coded representation of a video, a signaling scheme to be used for signaling a quantization parameter table in the coded representation; performing a conversion between the video and the coded representation based on the determination; A method having the following.
[0165] Solution 25. the signaling scheme comprises an indication of the number of points in the quantization parameter table. The method described in Solution 24.
[0166] The following solutions represent implementations of the techniques described in the previous sections (eg, item 26).
[0167] Solution 26. 1. A video processing method comprising: performing a transformation between video blocks of a video and a coded representation of said video according to a rule; The rule specifies a number N used to limit the maximum number of sub-block merging candidates when the use of affine coding is enabled and the use of sub-block-based temporal motion vector prediction is disabled. method.
[0168] N=0, The method described in Solution 26.
[0169] The following solutions represent implementations of the techniques described in the previous sections (eg, items 27-29).
[0170] Solution 28. 1. A video processing method comprising: performing a conversion between a video including one or more video pictures including one or more video sub-pictures and a coded representation of the video; The coded representation follows formatting rules: The formatting rules include the following subpicture-related syntax elements: a first syntax element indicating whether all subpictures that reference the same sequence parameter set have the same dimensions; A second syntax element signaling the common width and common height of all subpictures with the same dimensions, or A third syntax element that follows the second formatting rule provides for the inclusion or omission of one or more of method.
[0171] Solution 29. the second formatting rule specifies omitting a syntax element indicating a sample width under certain conditions; The method described in Solution 28.
[0172] Solution 30. the converting comprises encoding the video into the coded representation. The method according to any one of solutions 1 to 29.
[0173] Solution 31. the converting comprises decoding the coded representation to generate pixel values of the video. The method according to any one of solutions 1 to 29.
[0174] Solution 32. A video decoding device having a processor configured to implement the methods described in one or more of solutions 1-31.
[0175] Solution 33. A video encoding device having a processor configured to implement the methods described in one or more of solutions 1 to 31.
[0176] Solution 34. Stores computer code, The code, when executed by a processor, causes the processor to implement the method of any one of solutions 1 to 31. Computer program products.
[0177] 9 is a flowchart of an example method 900 of video processing. Operation 902 includes performing a conversion between a video and a video bitstream according to rules, where the rules specify that a quantization parameter table used in the conversion is included in a sequence parameter set, and where the rules specify that whether or how a first syntax element indicating a number of points in the quantization parameter table is included in the sequence parameter set is controlled according to a second syntax element in the sequence parameter set.
[0178] In some embodiments of method 900, the quantization parameter table is a chroma quantization parameter mapping table. In some embodiments of method 900, the value of the first syntax element plus one equals the number of points in the quantization parameter table. In some embodiments of method 900, the value of the second syntax element indicates the starting luma and chroma quantization parameters used to describe the quantization parameter table. In some embodiments of method 900, the maximum number of points in the quantization parameter table is based on the value of the second syntax element. In some embodiments of method 900, a rule stipulates that the maximum number of points in the quantization parameter table minus one is the difference between the maximum quantization parameter value and the starting luma and chroma quantization parameters used to describe the i-th chroma quantization parameter mapping table.
[0179] In some embodiments of method 900, the maximum value is set to (63-(qp_table_start_minus26[i]+26)). In some embodiments of method 900, the maximum value is set to (64-(qp_table_start_minus26[i]+26)).
[0180] 10 is a flowchart of an example method 1000 of video processing. Operation 1002 includes performing conversion between video and a video bitstream according to a rule, where the rule specifies that if the number of sub-pictures indicated in a sequence parameter set minus one is greater than zero, and if a syntax element in the sequence parameter set indicates that the i-th sub-picture of the first video picture of the video in a coded layer video sequence is to be treated as the second video picture of the video in the decoding process excluding in-loop filtering operations, then one of the following two conditions is true: (1) A second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture are in the following order: the picture width in units of luma samples, and the picture height in units of luma samples, and The number of subpictures minus one, For each value of i, which ranges from 0 to the number of subpictures minus one, the horizontal position of the top-left coding tree unit (CTU) of the i-th subpicture, the vertical position of the top-left CTU of the i-th subpicture, the width of the i-th subpicture minus one, the height of the i-th subpicture minus one, and the syntax elements of the i-th subpicture. have the same value for each of (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an interlayer reference picture whose value is equal to zero when the number of sub-pictures is minus one.
[0181] 11 is a flowchart of an example method of video processing 1100. Operation 1102 includes performing a conversion between a video including a video block and a video bitstream according to a rule, the rule specifying that when an affine coding tool is enabled and a sub-block-based temporal motion vector prediction (SbTMVP) coding tool is disabled, the maximum number of sub-block merging candidates is not allowed to be number N.
[0182] In some embodiments of method 1100, N=0. In some embodiments of method 1100, N is greater than 0. In some embodiments of method 1100, the range of the maximum number of sub-block-based merge motion vector prediction candidates supported in the sequence parameter set minus 5 is from [0, 4] regardless of the value of a syntax element in the sequence parameter set indicating whether the SbTMVP coding tool is enabled or disabled. In some embodiments of method 1100, the bitstream is a conformance bitstream that includes a value for the maximum number of sub-block-based merge motion vector prediction candidates from a range of 1 to 5, inclusive, when the affine coding tool is enabled. In some embodiments of method 1100, the bitstream is a conformance bitstream that includes a value for the maximum number of sub-block-based merge motion vector prediction candidates from a range of 0 to 1, inclusive, when the affine coding tool is disabled. In some embodiments of method 1100, the bitstream includes a syntax element indicating whether merging sub-block operations are enabled is based on whether an affine coding tool is enabled, and not based on the maximum number of sub-block merging candidates.
[0183] 12 is a flowchart of an example method 1200 of video processing. Act 1202 includes performing a conversion between a video including one or more video pictures and a bitstream of video, where the bitstream conforms to format rules, and the format rules dictate whether a syntax element indicating whether affine merge mode is enabled is present in the bitstream.
[0184] In some embodiments of method 1200, the formatting rules specify that a syntax element is selectively indicated in the bitstream based on whether affine merge mode is enabled in the sequence parameters. In some embodiments of method 1200, the formatting rules specify that a maximum number of sub-block merging candidates is indicated in the bitstream if the syntax element indicates that affine merge mode is available.
[0185] 13 is a flowchart of an example method 1300 of video processing. Operation 1302 includes performing a conversion between a video including one or more video pictures including one or more sub-pictures and a video bitstream according to rules, the rules including the following sub-picture-related syntax elements: a first syntax element indicating whether all subpictures that reference the same sequence parameter set have the same dimensions; a second syntax element indicating the common width and common height of all subpictures with the same dimensions, or One or more syntax elements according to the second rule that are omitted if all subpictures do not have the same dimensions It is specified that one or more of the following are designated or omitted from the sequence parameter set.
[0186] In some embodiments of method 1300, the rules specify that the number of subpicture columns, denoted numSubpicCols, is derived to be equal to (sps_pic_width_max_in_luma_samples / ((sps_uniform_subpic_width_minus1+1)*CtbSizeY))), the number of subpicture rows, denoted numSubpicRows, is derived to be equal to (sps_pic_height_max_in_luma_samples / ((sps_uniform_subpic_height_minus1+1)*CtbSizeY))), and the number of subpictures, denoted sumSubpics, is derived to be equal to numSubpicCols*numSubpicRows. In some embodiments of the method 1300, the rules stipulate that sps_num_subpics_minus1 is excluded from the sequence parameter set, and the value of sps_num_subpics_minus1 is inferred to be equal to numSubpics-1. In some embodiments of method 1300, the rules provide that for each value of i ranging from 0 to sps_num_subpics_minus1, inclusive, the values of sps_subpic_ctu_top_left_x[i], sps_subpic_ctu_top_left_y[i], sps_subpic_width_minus1[i], and sps_subpic_height_minus1[i] are inferred to be equal to (sps_uniform_subpic_width_minus1+1)*(i%numSubpicCols), (sps_uniform_subpic_height_minus1+1)*(i / numSubpicCols), sps_uniform_subpic_width_minus1, and sps_uniform_subpic_height_minus1, respectively.
[0187] In some embodiments of method 1300, the rules specify that, for each value of i ranging from 0 to sps_num_subpics_minus1, inclusive, sps_subpic_treated_as_pic_flag[i] and sps_loop_filter_across_subpic_enabled_flag[i] are indicated in the sequence parameter set if sps_independent_subpics_flag is equal to 0. In some embodiments of method 1300, a second rule specifies using current subpicture layer signaling. In some embodiments of method 1300, the rules specify that, if sps_pic_width_max_in_luma_samples is less than or equal to CtbSizeY, sps_uniform_subpic_width_minus1 is omitted from the sequence parameter set and inferred to be equal to 0. In some embodiments of the method 1300, the rules provide that if sps_pic_height_max_in_luma_samples is less than or equal to CtbSizeY, then sps_uniform_subpic_height_minus1 is removed from the sequence parameter set and inferred to be equal to 0.
[0188] In some embodiments of method 1300, the rules specify that sps_uniform_subpic_width_minus1, sps_uniform_subpic_height_minus1, sps_subpic_ctu_top_left_x[i], sps_subpic_ctu_top_left_y[i], sps_subpic_width_minus1[i], and sps_subpic_height_minus1[i] are ue(v) coded. In some embodiments of method 1300, the rules specify that sps_uniform_subpic_width_minus1 and sps_uniform_subpic_height_minus1 are u(v) coded with the same length as sps_subpic_width_minus1[i] and sps_subpic_height_minus1[i], respectively. In some embodiments of method 1300, the sequence parameter set includes a first syntax element indicating whether all subpictures of a video have the same width and height, a second syntax element indicating a common width of all subpictures, and a third syntax element indicating a common height of all subpictures. In some embodiments of method 1300, the rule specifies that if the number of subpictures indicated in the sequence parameter set minus one is greater than zero, and if a syntax element in the sequence parameter set indicates that the ith subpicture of a first video picture of a video in a coded layer video sequence is to be treated as a second video picture of the video in a decoding process excluding in-loop filtering operations, then one of the following two conditions is true: (1) A second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture are in the following order: the picture width in units of luma samples, and the picture height in units of luma samples, and The number of subpictures minus one, For each value of i, which ranges from 0 to the number of subpictures minus 1, the horizontal position of the top-left coding tree unit (CTU) of the i-th subpicture, the vertical position of the top-left CTU of the i-th subpicture, the width of the i-th subpicture minus 1, the height of the i-th subpicture minus 1, the syntax elements of the i-th subpicture, and the identification value of the i-th subpicture. have the same value for each of (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an interlayer reference picture whose value is equal to zero when the number of sub-pictures is minus one.
[0189] 14 is a flowchart of an example method 1400 of video processing. Operation 1402 includes, for conversion between a video including one or more video pictures and a video bitstream, determining, in response to a width, in units of luma samples, of each video picture referencing the picture parameter set being less than or equal to the luma coding treeblock size, that a first syntax element in the picture parameter set indicating a width of the i-th tile column in units of coding treeblocks minus one is equal to the width of the video picture in units of coding treeblocks minus one, for conversion between the video including one or more video pictures and a video bitstream. Operation 1404 includes performing the conversion based on the determination.
[0190] 15 is a flowchart of an example method 1500 of video processing. Operation 1502, for converting between a video including one or more video pictures and a video bitstream, includes determining, in response to a height, in units of luma samples, of each video picture referencing the picture parameter set being less than or equal to a luma coding treeblock size, that a first syntax element in the picture parameter set indicating a height of the i-th tile row in units of coding treeblocks minus one is equal to the height of the video picture in units of coding treeblocks minus one. Operation 1504 includes performing the conversion based on the determination.
[0191] In some embodiments of methods 900-1500, performing the conversion comprises encoding the video into a bitstream. In some embodiments of methods 900-1500, performing the conversion comprises generating a bitstream from the video, the method further comprising an act of storing the bitstream on a non-transitory computer-readable storage medium. In some embodiments of methods 900-1500, performing the conversion comprises decoding the video from the bitstream.
[0192] In some embodiments, a video decoding device has a processor configured to implement a method described in one or more embodiments of methods 900-1500. In some embodiments, a video encoding device has a processor configured to implement a method described in one or more embodiments of methods 900-1500. In some embodiments, a computer program product stores instructions that, when executed by a processor, cause the processor to implement a method described in one or more embodiments of methods 900-1500. In some embodiments, a non-transitory computer-readable storage medium stores a bitstream generated according to a method described in one or more embodiments of methods 900-1500. In some embodiments, a non-transitory computer-readable storage medium stores instructions that cause a processor to implement a method described in one or more embodiments of methods 900-1500. In some embodiments, a method of bitstream generation includes generating a video bitstream according to a method described in one or more embodiments of methods 900-1500 and storing the bitstream in a computer-readable program medium. Some embodiments provide methods, apparatus, bitstreams generated according to the disclosed methods, or systems described herein.
[0193] As used herein, 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 conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are either collocated or spread across different locations within the bitstream, e.g., as defined by syntax. For example, a macroblock may be encoded with respect to a transformed and coded error residual value, as well as using bits in the header and other fields within the bitstream. Furthermore, during conversion, a decoder may parse the bitstream, knowing that some fields may be present or absent based on a decision, as described in the solution above. Similarly, an encoder may determine whether a particular syntax field should be included or not, and accordingly generate a coded representation by including or excluding the syntax element from the coded representation.
[0194] 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 one or more combinations thereof. 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 control 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 one or more combinations thereof. 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.
[0195] A computer program (also known as a program, software, software application, script, or code) can be written in any 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 single file dedicated to the program in question, or in multiple coordinated files (e.g., a file storing one or more modules, subprograms, or portions of code), or in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communications network.
[0196] 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 a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).
[0197] Processors suitable for the execution of 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. Generally, a processor will read 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 will also include one or more mass storage devices for storing data, e.g., magnetic, optical, or optical disks, or will be operatively coupled to receive data from and / or transfer data to one or more such mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; optical magnetic disks; and all forms of non-volatile memory, media, and memory devices, including compact disc-like read-only memory (CD-ROM) and digital versatile disc-like read-only memory (DVD-ROM) disks. The processor and memory may be enhanced by, or incorporated in, special purpose logic circuitry.
[0198] While this specification contains numerous details, these should not be construed as limitations on the scope of any subject matter or what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described herein 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 operating in a particular combination and even initially claimed as such, one or more features from a claimed combination may in some cases be deleted from that combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0199] Similarly, although operations are depicted in the figures in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in a sequential order, or that all of the depicted operations be performed, to achieve desired results. Further, the separation of various system components in the embodiments described herein should not be understood as requiring such separation in all embodiments.
[0200] Only a few implementations and examples have been described; other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.
Claims
1. 1. A method for processing video data, comprising: performing a conversion between the video and a bitstream of the video according to a rule; The rule is: if the number of sub-pictures minus one indicated by a first syntax element in a sequence parameter set is greater than zero, and if a current sub-picture having sub-picture index subpicIdx of a first video picture of the video has a second syntax element in the sequence parameter set indicating that a sub-picture having sub-picture index subpicIdx of each video picture of the video in a coding layer video sequence is treated as a video picture in a decoding process excluding in-loop filtering operations, (1) a second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture have the same values for each of a plurality of syntax elements related to size information; and (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an inter-layer reference picture entry in which the value of the first syntax element indicating the number of sub-pictures minus one is equal to zero. stipulate that only one of the two conditions is true, the rules provide that a ninth syntax element plus one indicating the number of points used to describe a quantization parameter table used in the transform is included in the sequence parameter set, and the value of the ninth syntax element is controlled according to a tenth syntax element in the sequence parameter set; The value of the tenth syntax element indicates the starting luma and chroma quantization parameters used to describe the quantization parameter table. method.
2. The plurality of syntax elements related to the size information are: a third syntax element included in the picture parameter set, indicating a picture width in units of luma samples; and a fourth syntax element included in the picture parameter set indicating a picture height in units of luma samples; the first syntax element indicating the number of sub-pictures minus one; for each value of i ranging from 0 to the number of subpictures minus 1, a fifth syntax element included in the sequence parameter set indicating a horizontal position of a top-left coding tree unit (CTU) of an i-th subpicture, a sixth syntax element included in the sequence parameter set indicating a vertical position of the top-left CTU of the i-th subpicture, a seventh syntax element included in the sequence parameter set indicating a width minus 1 of the i-th subpicture, an eighth syntax element included in the sequence parameter set indicating a height minus 1 of the i-th subpicture, and the second syntax element for the i-th subpicture; having The method of claim 1.
3. the quantization parameter table is a chroma quantization parameter mapping table; The method of claim 1.
4. the maximum value of the ninth syntax element is based on the difference between an integer and the value of the tenth syntax element. The method of claim 1.
5. performing the conversion includes encoding the video into the bitstream; A method according to any one of claims 1 to 4.
6. performing the conversion includes decoding the video from the bitstream; A method according to any one of claims 1 to 4.
7. a processor and a non-transitory memory having instructions; The instructions, when executed by the processor, cause the processor to: performing a conversion between the video and a bitstream of the video according to a rule; The rule is: if the number of sub-pictures minus one indicated by a first syntax element in a sequence parameter set is greater than zero, and if a current sub-picture having sub-picture index subpicIdx of a first video picture of the video has a second syntax element in the sequence parameter set indicating that a sub-picture having sub-picture index subpicIdx of each video picture of the video in a coding layer video sequence is treated as a video picture in a decoding process excluding in-loop filtering operations, (1) a second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture have the same values for each of a plurality of syntax elements related to size information; and (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an inter-layer reference picture entry in which the value of the first syntax element indicating the number of sub-pictures minus one is equal to zero. stipulate that only one of the two conditions is true, the rules provide that a ninth syntax element plus one indicating the number of points used to describe a quantization parameter table used in the transform is included in the sequence parameter set, and the value of the ninth syntax element is controlled according to a tenth syntax element in the sequence parameter set; The value of the tenth syntax element indicates the starting luma and chroma quantization parameters used to describe the quantization parameter table. Device.
8. storing instructions that cause a processor to perform conversion between the video and a bitstream of the video according to rules; The rule is: if the number of sub-pictures minus one indicated by a first syntax element in a sequence parameter set is greater than zero, and if a current sub-picture having sub-picture index subpicIdx of a first video picture of the video has a second syntax element in the sequence parameter set indicating that a sub-picture having sub-picture index subpicIdx of each video picture of the video in a coding layer video sequence is treated as a video picture in a decoding process excluding in-loop filtering operations, (1) a second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture have the same values for each of a plurality of syntax elements related to size information; and (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an inter-layer reference picture entry in which the value of the first syntax element indicating the number of sub-pictures minus one is equal to zero. stipulate that only one of the two conditions is true, the rules provide that a ninth syntax element plus one indicating the number of points used to describe a quantization parameter table used in the transform is included in the sequence parameter set, and the value of the ninth syntax element is controlled according to a tenth syntax element in the sequence parameter set; The value of the tenth syntax element indicates the starting luma and chroma quantization parameters used to describe the quantization parameter table. A non-transitory computer-readable storage medium.
9. 1. A method for storing a video bitstream, comprising: generating the bitstream of the video according to a rule; storing the bitstream on a non-transitory computer-readable recording medium. The rule is: if the number of sub-pictures minus one indicated by a first syntax element in a sequence parameter set is greater than zero, and if a current sub-picture having sub-picture index subpicIdx of a first video picture of the video has a second syntax element in the sequence parameter set indicating that a sub-picture having sub-picture index subpicIdx of each video picture of the video in a coding layer video sequence is treated as a video picture in a decoding process excluding in-loop filtering operations, (1) a second video picture referenced by each active entry in the first reference picture list or the second reference picture list of the first video picture and the first video picture have the same values for each of a plurality of syntax elements related to size information; and (2) The second video picture referenced by each active entry in the first reference picture list or the second reference picture list is an inter-layer reference picture entry in which the value of the first syntax element indicating the number of sub-pictures minus one is equal to zero. stipulate that only one of the two conditions is true, the rules provide that a ninth syntax element plus one indicating the number of points used to describe a quantization parameter table used in the generation is included in the sequence parameter set, and the value of the ninth syntax element is controlled according to a tenth syntax element in the sequence parameter set; The value of the tenth syntax element indicates the starting luma and chroma quantization parameters used to describe the quantization parameter table. method.