Transform skip residual coding

By adjusting the signaling notifications of the initial QP value and chroma QP table in the VVC video codec standard, the problems of unreasonable initial QP values ​​and chroma QP table sharing are solved, achieving more flexible and consistent video codecs and improving codec efficiency and quality.

CN115299063BActive Publication Date: 2025-11-21DOUYIN VISION CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180017711.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-04
Filing Date
2021-02-26
Publication Date
2025-11-21
Estimated Expiration
2041-02-26

AI Technical Summary

Technical Problem

In the existing video codec standard VVC, the signaling notification of the initial quantization parameter (QP) is unreasonable. I and B/P images or stripes may require different chroma QP tables, but the current design shares the same chroma QP table. The starting point of the chroma QP table is biased, the number of points is fixed at 1, and there is a lack of flexibility and consistency constraints in the derivation of chroma QP.

Method used

During video encoding and decoding, the initial QP value is notified by signaling in different levels of bitstream, the starting point and number of chroma QP tables are adjusted, the chroma QP table is determined according to the image or stripe type, different levels of control flags are allowed, the derivation process of the chroma QP table is optimized, and bitstream consistency is ensured.

Benefits of technology

It achieves a more flexible and consistent video encoding and decoding process, improves encoding and decoding efficiency and quality, adapts to the needs of different types of video content, and optimizes the control of chroma residual encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115299063B_ABST
    Figure CN115299063B_ABST
Patent Text Reader

Abstract

Several techniques for video encoding and video decoding are described. An example method includes performing a conversion between a video comprising video units and a bitstream of the video according to a rule, wherein the rule specifies whether a transform skip residual coding operation is enabled for a video unit, and wherein one or more syntax elements are included in the bitstream at a video segment level that indicate whether the transform skip residual coding operation is enabled for the video unit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application is based on International Patent Application No. PCT / CN2021 / 078010 filed February 26, 2021, which claims priority to and benefit of U.S. Provisional Patent Application No. 62 / 982,657 filed February 27, 2020, and International Patent Application No. PCT / CN2020 / 083393 filed April 4, 2020. All of the above-identified applications are hereby incorporated by reference in their entirety. TECHNICAL FIELD

[0003] This patent document relates to image and video coding and decoding. BACKGROUND

[0004] Digital video accounts for the largest bandwidth use on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video usage is expected to continue growing. SUMMARY

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

[0006] In one example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a video unit and a bitstream of the video according to a rule, wherein the rule specifies whether a transform skip residual coding operation is enabled for the video unit, and wherein one or more syntax elements are included in the bitstream at a video segment level that indicate whether the transform skip residual coding operation is enabled for the video unit.

[0007] In another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video and a bitstream of the video, wherein the bitstream conforms to a format rule, and wherein the format rule specifies whether or where one or more syntax elements that indicate one or more initial quantization parameter (QP) values used during the conversion are included in the bitstream.

[0008] In another example aspect, a method of video processing is disclosed. The method includes, for a conversion between a video and a bitstream of the video, determining one or more chroma quantization parameter (QP) tables based on a type of a picture or slice that includes a chroma block, wherein the one or more chroma QP tables are determined according to a rule; and performing the conversion based on the determination.

[0009] In another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a video unit and a bitstream of the video according to a rule, wherein the rule specifies that a syntax element is included in a sequence parameter set (SPS) that indicates whether a current sequence to which the video unit belongs comprises B slices or P slices.

[0010] In another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video and a bitstream of the video according to a rule, wherein the rule specifies whether or how one or two sets of chroma quantization parameter (QP) tables are included in a sequence parameter set (SPS) associated with a chroma block of the video.

[0011] In another example aspect, a method of video processing is disclosed. The method includes, for a conversion between a chroma block of a video and a bitstream of the video, determining one or more sets of chroma quantization parameter (QP) tables based on a prediction mode of the chroma block; and performing the conversion based on the determining.

[0012] In another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a video block and a bitstream of the video according to a rule, wherein the rule specifies that one or more sets of chroma quantization parameter (QP) tables associated with the video block coded in a transform skip (TS) mode are different from QP tables of other video blocks not coded in the TS mode.

[0013] In some embodiments of the method 1500, the video block comprises a luma video block.

[0014] In another example aspect, a method of video processing is disclosed. The method includes, for a conversion between a video comprising a video block and a bitstream of the video, determining that a maximum allowed value of a syntax element of a chroma quantization parameter (QP) table start point is 37; and performing the conversion based on the determining.

[0015] In another example aspect, a method of video processing is disclosed. The method includes, for a conversion between a video comprising a video block and a bitstream of the video, determining that a syntax element offset K of a chroma quantization parameter (QP) table start point, wherein K is less than 26; and performing the conversion based on the determining.

[0016] In another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a video block and a bitstream of the video according to a rule, wherein the rule specifies a property of a chroma quantization parameter (QP) table of the video block.

[0017] In another example aspect, a video processing method is disclosed. The method includes, for a conversion between a video comprising a video block and a bitstream of the video, determining that the bitstream excludes a syntax element that indicates, when a luma adaptive loop filter (ALF) is disabled for a current coding tree unit (CTU), a chroma ALF or a cross-component adaptive loop filter (CC-ALF) is used for the current CTU to which the video block belongs; and performing the conversion based on the determining.

[0018] In another example aspect, a video processing method is disclosed. The method includes performing a conversion between a video comprising a video picture and a coded representation of the video, wherein the coded representation conforms to a format rule, wherein the format rule specifies whether and where one or more syntax elements indicating one or more initial quantization parameter (QP) values used during the conversion are included in the coded representation. In yet another example aspect, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the above-described method.

[0019] In yet another example aspect, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the above-described method.

[0020] In yet another example aspect, a computer-readable medium storing code is disclosed. The code embodies one of the methods described herein in the form of processor-executable code.

[0021] These, additional, and other features will be described in the document. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 is an illustration of two scalar quantizers used in dependent quantization.

[0023] Figure 2 An example of state transitions and quantizer selection for dependent quantization is shown.

[0024] Figure 3 is a block diagram of an example video processing system.

[0025] Figure 4 is a block diagram of a video processing apparatus.

[0026] Figure 5 is a flowchart of an example method of video processing.

[0027] Figure 6 is a block diagram illustrating a video coding system in accordance with some embodiments of the disclosure.

[0028] Figure 7 is a block diagram illustrating an encoder in accordance with some embodiments of the disclosure.

[0029] Figure 8 is a block diagram illustrating a decoder according to some embodiments of the disclosure.

[0030] Figures 9 to 19 is a flowchart of an example method of video processing. DETAILED DESCRIPTION

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

[0032] 1. ABSTRACT

[0033] The present disclosure relates to video coding techniques. In particular, the present disclosure relates to initial quantization parameter (QP) and chroma QP table in video coding. The present disclosure can be applied to existing video coding standards (e.g., HEVC), or to be completed standards (Versatile Video Coding). The present disclosure can also be applicable to future video coding standards or video codecs.

[0034] 2. ABBREVIATIONS

[0035] APS (Adaptation Parameter Set) adaptation parameter set

[0036] AU (Access Unit) access unit

[0037] AUD (Access Unit Delimiter) access unit delimiter

[0038] AVC (Advanced Video Coding) advanced video coding

[0039] CLVS (Coded Layer Video Sequence) coded layer video sequence

[0040] CPB (Coded Picture Buffer) coded picture buffer

[0041] CRA (Clean Random Access) clean random access

[0042] CTU (Coding Tree Unit) coding tree unit

[0043] CVS (Coded Video Sequence) coded video sequence

[0044] DPB (Decoded Picture Buffer) decoded picture buffer

[0045] DPS (Decoding Parameter Set) decoding parameter set

[0046] EOB (End Of Bitstream) end of bitstream

[0047] EOS (End Of Sequence) end of sequence

[0048] GDR (Gradual Decoding Refresh) gradual decoding refresh

[0049] HEVC (High Efficiency Video Coding) high efficiency video coding

[0050] HRD (Hypothetical Reference Decoder) hypothetical reference decoder

[0051] IDR (Instantaneous Decoding Refresh) instantaneous decoding refresh

[0052] JEM (Joint Exploration Model) joint exploration model

[0053] MCTS (Motion-Constrained Tile Sets) motion-constrained tile sets

[0054] NAL (Network Abstraction Layer) network abstraction layer

[0055] OLS (Output Layer Set) output layer set

[0056] PH (Picture Header) picture header

[0057] PPS (Picture Parameter Set) picture parameter set

[0058] PTL (Profile, Tier and Level) profile, tier and level

[0059] PU (Picture Unit) picture unit

[0060] QP (Quantization Parameter) quantization parameter

[0061] RBSP (Raw Byte Sequence Payload) original byte sequence payload

[0062] SEI (Supplemental Enhancement Information) supplemental enhancement information

[0063] SPS (Sequence Parameter Set) sequence parameter set

[0064] SVC (Scalable Video Coding) scalable video coding

[0065] VCL (Video Coding Layer) video coding layer

[0066] VPS (Video Parameter Set) video parameter set

[0067] VTM (VVC Test Model) VVC test model

[0068] VUI (Video Usability Information) video usability information

[0069] VVC (Versatile Video Coding) versatile video coding

[0070] 3. Introduction to video coding

[0071] Video coding standards have evolved mainly through the development of the well-known ITU-T and ISO / IEC standards. The ITU-T has developed H.261 and H.263, ISO / IEC has developed MPEG-1 and MPEG-4 Visual, and the two organizations jointly developed the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. Since H.262, the video coding standards are based on the hybrid video coding structure where temporal prediction plus transform coding is employed. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by the JVET and put into the reference software named Joint Exploration Test Model (JEM). In April 2018, the Joint Video Expert Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on VVC standard, which aims to reduce 50% bitrate compared to HEVC.

[0072] The latest version of VVC draft, namely Versatile Video Coding (Draft 8) can be found at:

[0073] http: / / phenix.int-

[0074] evry.fr / jvet / doc_end_user / documents / 17_Brussels / wg11 / JVET-Q2001-

[0075] v13.zip

[0076] The latest test model software can be found at:

[0077] https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / - / archive / VTM-

[0078] 8.0 / VVCSoftware_VTM-VTM-8.0.zip

[0079] 3.1. Quantization Parameter Control

[0080] In VVC, the maximum QP is extended from 51 to 63, and the signaling of initial QP is also changed accordingly. When a non-zero value of slice_qp_delta is coded, the initial value of SliceQpY is modified at slice segment level. Specifically, the value of init_qp_minus26 is modified to be in the range of (-26 + QpBdOffsetY) to +37. When the size of a transform block is not a power of 4, the transform coefficients are handled with the modification of QP or QP level scaling table instead of being multiplied by 181 / 256 (or 181 / 128) to compensate for the implicit scaling of the transform process. For transform skip blocks, the minimum allowed quantization parameter (QP) is defined to be 4 because when QP is equal to 4, the quantization step becomes 1.

[0081] In HEVC (also in H.264), a fixed lookup table is used to convert the luma quantization parameter QPY to the chroma quantization parameter QPC. In VVC, a more flexible luma-to-chroma QP mapping is used. Instead of using a fixed table, a flexible piecewise linear model is used to signal the luma-to-chroma QP mapping relationship in SPS, with the only constraint for the linear model being that the slope of each segment cannot be negative (i.e., the chroma QP must stay flat or increase, but cannot decrease, as the luma QP increases). The piecewise linear model is defined by 1) the number of segments in the model; 2) the input (luma) and output (chroma) delta QPs for that segment. The input range of the piecewise linear model is [-QpBdOffsetY, 63], and the output range of the piecewise linear model is [-QpBdOffsetC, 63]. For Cb, Cr, and joint Cb / Cr coding, the QP mapping relationship can be signaled separately, or for all three types of residual coding, the QP mapping relationship can be signaled jointly.

[0082] As in HEVC, CU-level QP adaptation is allowed in VVC. The delta QP values for luma and chroma components can be signaled separately. For chroma components, the allowed chroma QP offset values are signaled in the form of an offset list in PPS in a similar way as in HEVC. For Cb, Cr, and joint Cb / Cr coding, the list is defined separately. Up to 6 offset values are allowed in each of the Cb, Cr, and joint Cb / Cr lists. At the CU level, an index is signaled to indicate which offset value in the offset list is used to adjust the chroma QP of the CU. The CU chroma QP offset signaling is also consistent with the VPDU CU QP delta availability, and for a CU larger than 64x64, the chroma QP offset is sent with the first transform unit regardless of whether it has a non-zero CBF.

[0083] 3.2. Dependent quantization

[0084] Furthermore, the same HEVC scalar quantization is used together with a new concept called dependent scalar quantization. Dependent scalar quantization refers to a method in which the set of admissible reconstructed values for a transform coefficient depends on the values of the transform coefficient levels that precede the current transform coefficient level in the reconstruction order. The main effect of this method is that the admissible reconstructed vectors are compressed more densely in the N-dimensional vector space (N denotes the number of transform coefficients in a transform block) compared to the traditional independent scalar quantization as used in HEVC. This means that for a given average number of admissible reconstructed vectors per N-dimensional unit volume, the average distortion between the input vector and the closest reconstructed vector is reduced. The method of dependent scalar quantization is realized by (a) defining two scalar quantizers with different reconstruction levels, and (b) defining a process that switches between the two scalar quantizers.

[0085] In Figure 1 the two scalar quantizers used are denoted by Q0and Q1. The position of the available reconstruction levels is uniquely specified by the quantization step size Δ. The used scalar quantizer (Q0or 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 the coding / reconstruction order.

[0086] As Figure 2 shown, the switching between the two scalar quantizers (Q0and Q1) is realized via a state machine with four states. The state can take four different values: 0, 1, 2, 3. It is uniquely determined by the parity of the transform coefficient level that precedes the current transform coefficient in the coding / reconstruction order. At the beginning of the inverse quantization of a transform block, the state is set equal to 0. The transform coefficients are reconstructed in the scan order, i.e., in the same order as they are entropy decoded. After the reconstruction of the current transform coefficient, the state is updated, where k denotes the value of the transform coefficient level.

[0087] 3.3. Scaling matrices

[0088] VVC supports the use of either default scaling matrices or signaling of user-defined scaling matrices. The DEFAULT mode scaling matrices are all flat, where the elements are equal to 16 for all TB sizes. IBC and Intra coding modes currently share the same scaling matrices. Therefore, for the case of USER_DEFINED matrices, the number of MatrixType and MatrixType DC is updated as follows:

[0089] - MatrixType: 30 = 2 (2 for Intra & IBC / Inter) x 3 (Y / Cb / Cr components) x 5 (square TB sizes: from 4x4 to 64x64 for luma, from 4x4 to 32x32 for chroma)

[0090] - MatrixType DC: 14 = 2 (2 x for Y component 1 for Intra & IBC / Inter) x 3 (TB size: 16x16, 32x32, 64x64) + 4 (2 x for Cb / Cr component 2 for Intra & IBC / Inter) x 2 (TB size: 16x16, 32x32)

[0091] The DC value is separately coded for the following scaling matrixes: 16x16, 32x32 and 64x64. For TBs with size smaller than 8x8, all elements in one scaling matrix are signaled. If the TB has size larger than or equal to 8x8, only 64 elements in one 8x8 scaling matrix are signaled as the base scaling matrix. To obtain square matrixes with size larger than 8x8, the 8x8 base scaling matrix is upsampled (by copying elements) to the corresponding square size (i.e., 16x16, 32x32, 64x64). When the zero-out of high frequency coefficients of 64-point transform is applied, the corresponding high frequencies of the scaling matrix are also zeroed out. That is, if the width or height of the TB is larger than or equal to 32, only the left half or the top half of the coefficients are kept, and the remaining coefficients are assigned as zero. In addition, the number of elements signaled for 64x64 scaling matrix is also reduced from 8x8 to three 4x4 sub-matrixes, since the right bottom 4x4 elements are never used. In VVC, there is no 2x2, 2x4 and 4x2 chroma intra coding blocks (CBs), and the minimum intra block size is equal to 2x8 and 8x2, and the minimum chroma intra block copy (IBC) block size. In addition, the inter prediction is disabled for 4x4 luma CBs. Therefore, the small 2x2 chroma blocks can only be created by applying subblock transform (SBT). Considering these natures, the 2x2 intra chroma quantization matrix (QM) is removed from the default QM list, and the user-defined intra QM for this size is not coded.

[0092] To improve the coding efficiency of user-defined quantization matrix (QM), the following methods are considered.

[0093] - Allow to refer to a previously coded QM with the same base size as the current QM.

[0094] - Allow to code the element-to-element difference between the current QM and the reference QM.

[0095] - Keep the original DPCM coding of elements within the current QM.

[0096] - A single matrix identifier scalingListld using the combination of matrixld and sizeId.

[0097] 3.4. Joint coding of chroma residuals

[0098] VVC supports a mode where the chroma residuals are jointly coded; this is referred to as JCCR (Joint Coding of Chroma Residuals). The usage (activation) of the joint chroma coding mode is indicated by the TU-level flag tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBFs. The flag tu_joint_cbcr_residual_flag is present if one or both of the chroma CBFs of a TU is equal to 1. In the PPS and slice header, chroma QP offset values are signaled for the joint chroma residual coding mode, to be distinguished from the usual 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 the blocks coded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode (mode 2 in the table below) is activated in a TU, this chroma QP offset is added to the luma-derived chroma QP applied during quantization and decoding of that TU. For other modes (modes 1 and 3 in the table below), the chroma QPs are derived in the same way as in the legacy Cb or Cr modules. The process of reconstructing the chroma residuals (resCb and resCr) from the transmitted transform blocks is depicted in Table 1. When the mode is activated, one single joint chroma residual block (resJointC[x][y] in the table below) is signaled, and the residual block for Cb (resCb) and the residual block for Cr (resCr) are derived taking into account information such as tu_cbf_cb, tu_cbf_cr and CSign, which are the sign values specified in the slice header.

[0099] At the encoder side, the joint chroma components are derived as explained below. Depending on the mode (listed in the table above), the encoder generates resJointC{1,2} as follows:

[0100] - If the mode is equal to 2 (reconstruction to a single residual for Cb = C, Cr = CSign * C), the joint residual is determined according to

[0101] resJointC[x][y] = (resCb[x][y] + CSign * resCr[x][y]) / 2

[0102] - Else if the mode is equal to 1 (reconstruction to a single residual for Cb = C, Cr = (CSign * C) / 2), the joint residual is determined according to

[0103] resJointC[x][y] = (4 * resCb[x][y] + 2 * CSign * resCr[x][y]) / 5

[0104] Otherwise (mode equal to 3, i.e., single residual, reconstructed Cr = C, Cb = (CSign * C) / 2), the joint residual is determined according to

[0105] resJointC[x][y] = (4 * resCr[x][y] + 2 * CSign * resCb[x][y]) / 5

[0106] Table 1. Reconstruction of chroma residuals. The value CSign is the sign value (+1 or -1) which is specified in the slice header, resJointC[][] is the transmitted residual.

[0107]

[0108] The three joint chroma coding modes described above are only supported in I slices. In P and B slices, only mode 2 is supported. Therefore, in P and B slices, the syntax element tu_joint_cbcr_residual_flag only exists when both of the two chroma cbfs are equal to 1. Note that the transform depth is removed in the context modeling of tu_cbf_luma and tu_cbf_cb.

[0109] 3.5. Chroma QP table in SPS

[0110] In clause 7.3.2.3 of JVET-Q2001-vC, the SPS includes a structure named chroma QP table, as follows:

[0111]

[0112] They have the following semantics and QP table derivation:

[0113] sps_joint_cbcr_enabled_flag equal to 0 specifies that joint coding of chroma residuals is disabled. sps_joint_cbcr_enabled_flag equal to 1 specifies that joint coding of chroma residuals is enabled. When not present, the value of sps_joint_cbcr_enabled_flag is inferred to be equal to 0.

[0114] same_qp_table_for_chroma equal to 1 specifies that only one chroma QP mapping table is signaled and that table applies to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. same_qp_table_for_chroma equal to 0 specifies that chroma QP mapping tables are signaled in the SPS, where two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr when sps_joint_cbcr_enabled_flag is equal to 1. When same_qp_table_for_chroma is not present in the bitstream, the value of same_qp_table_for_chroma is inferred to be equal to 1.

[0115] qp_table_start_minus26[ i ] plus 26 specifies the starting luma and chroma QPs for describing the i-th chroma QP mapping table. The value of qp_table_start_minus26[ i ] shall be in the range of -26 - QpBdOffset to 36, inclusive. When 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.

[0116] num_points_in_qp_table_minus1[ i ] plus 1 specifies the number of points for describing the i-th chroma QP mapping table. The value of num_points_in_qp_table_minus1[ i ] shall be in the range of 0 to 63 + QpBdOffset, inclusive. When 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.

[0117] delta_qp_in_val_minus1[ i ][ j ] specifies the delta value for deriving the input coordinate of the j-th pivot point of the i-th chroma QP mapping table. When 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.

[0118] delta_qp_diff_val[ i ][ j ] specifies the delta value for deriving the output coordinate of the j-th pivot point of the i-th chroma QP mapping table.

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

[0120]

[0121]

[0122] When same_qp_table_for_chroma is equal to 1, ChromaQpTable[ 1 ][ k ] and ChromaQpTable[ 2 ][ k ] are set equal to ChromaQpTable[ 0 ][ k ], where k is in the range of - QpBdOffset to 63, inclusive.

[0123] It is a requirement of bitstream conformance that the values of qpInVal[ i ][ j ] and qpOutVal[ i ][ j ] shall be in the range of - QpBdOffset to 63, inclusive, where i is in the range of 0 to numQpTables - 1, inclusive, and j is in the range of 0 to num_points_in_qp_table_minus1[ i ] + 1, inclusive.

[0124] In the above description, QpBdOffset is derived as follows:

[0125] bit_depth_minus8 specifies the value of the bit depth BitDepth of the samples of the luma and chroma arrays, and the luma and chroma quantization parameter range offset QpBdOffset as follows:

[0126] BitDepth = 8 + bit_depth_minus8

[0127] QpBdOffset = 6 * bit_depth_minus8

[0128] bit_depth_minus8 shall be in the range of 0 to 8, inclusive.

[0129] 3.6. Initial QP in PPS

[0130] The PPS contains a syntax element named init_qp_minus26. Its semantics are as follows:

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

[0132] When qp_delta_info_in_ph_flag equals 1, the Qp of all bands in the image Y Initial value of quantization parameter SliceQp Y The derivation is as follows:

[0133] SliceQp Y =26+init_qp_minus26+ph_qp_delta

[0134] When qp_delta_info_in_ph_flag equals 0, the Qp of the stripe Y Initial value of quantization parameter SliceQp Y The derivation is as follows:

[0135] SliceQp Y =26+init_qp_minus26+slice_qp_delta

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

[0137] 4. Technical problems solved by the disclosed technical solutions and embodiments

[0138] 1. The signaling notification for the initial QP value (i.e., init_qp_minus26) may be unreasonable.

[0139] 2. I and B / P images or stripes may require different chroma QP tables; however, they share the same chroma QP table in the current VVC draft text.

[0140] 3. Transform skip can need another chroma QP table.

[0141] 4. The chroma QP table starting point should cover the entire QP range, which is not the case in the current design.

[0142] 5. The chroma QP table can have a biased starting point.

[0143] 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, so the minimum number of points is 1.

[0144] 7. Specifying QP clipping in the derivation of chroma QP can be better than specifying a bitstream conformance constraint that limits the derived chroma QP values, because the former will prevent the occurrence of violations.

[0145] 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 the transform block. However, there can be higher level (SPS / PPS) and / or lower level (CU / TU) level control flags for whether TSRC or RRC is used for the current block. In addition, the interaction between different level control flags and between the control flags and the transform skip flag will be further specified.

[0146] 9. In the current VVC, when luma ALF is disabled at 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 can still be applied to the CTU. Such a design conflicts with the intention of controlling chroma ALF / CC-ALF based on luma ALF at a higher level.

[0147] 5. Example list of embodiments and solutions

[0148] To solve the above problems and other problems, methods summarized as follows are disclosed. These items should be considered as examples to explain the general concept and should not be interpreted in a narrow way. In addition, these items can be applied individually or combined in any way.

[0149] In the following, floor(x) denotes a function that returns the largest integer less than or equal to x.

[0150] 1. The initial QP value syntax element (e.g., currently denoted as init_qp_minus26 in JVET-Q2001-vC) in PPS for specifying the initial QP value can be moved to PH.

[0151] a. Alternatively, the initial QP value syntax element can be repeated in PH.

[0152] b. Alternatively, the initial QP value syntax element can be signaled in both PPS and PH, and the one signaled in PH can override or update (by adding the signaled delta) the one signaled in PPS.

[0153] c. Alternatively, the initial QP value syntax element can be signaled in SPS, and possibly in one or more of PPS, PH, and SH, and when present, the lower level value overrides or updates (by adding the signaled delta) the one signaled at the higher level. In the case of update, the initial QP value signaled at the highest level is coded by ue(v), and the delta value signaled at the lower level is coded by se(v).

[0154] 2. Multiple syntax elements for the indication of initial QP value can be signaled in SPS / PPS / PH / SH according to a certain type.

[0155] a. In one example, each of them can correspond to a certain type.

[0156] b. In one example, the certain type can include picture / slice type (e.g., I / P / B; intra / inter).

[0157] c. In one example, the certain type can include video content type (e.g., screen content or camera captured content).

[0158] d. In one example, the certain type can include index or other subpicture identification information of subpicture, i.e., different subpictures can be associated with different syntax elements for initial QP derivation.

[0159] e. In one example, the certain type can include index or other slice identification information of slice, i.e., different slices can be associated with different syntax elements for initial QP derivation.

[0160] f. In one example, the certain type can include index or other tile identification information of tile, i.e., different tiles can be associated with different syntax elements for initial QP derivation.

[0161] g.In one example, the particular type can include a transform type. (e.g., transform skip mode or not transform skip mode).

[0162] 3. The initial QP value syntax element (e.g., in SH / PH / PPS / SPS) can be offset by a number K that is not equal to 26.

[0163] a. In one example, K is less than 26.

[0164] b. In one example, the syntax element can be replaced by init_qp_minusK, and / or the value of the syntax element shall be in the range of -(K+QpBdOffset) to (63-K), inclusive, where K is less than 26.

[0165] i. In one example, K is equal to 20. Also, alternatively, the syntax element can be replaced by init_qp_minus20, and / or the value of the syntax element shall be in the range of -(20+QpBdOffset) to 43 (i.e., 63-20), inclusive.

[0166] c. In one example, K is greater than 26.

[0167] i. In one example, the syntax element can be replaced by init_qp_minusK, and the value of the syntax element shall be in the range of -(K+QpBdOffset) to (63-K), inclusive, where K is a constant greater than 26.

[0168] ii. In one example, K is equal to 32. Also, alternatively, the syntax element can be replaced by init_qp_minus32, and the value of the syntax element shall be in the range of -(32+QpBdOffset) to 31 (i.e., 63-32), inclusive.

[0169] d. Alternatively, K can be set as a function of the maximum allowed QP and / or the minimum allowed QP. For example, K can be set to equal to (maximum allowed QP - minimum allowed QP) / 2 or (maximum allowed QP + 1 - minimum allowed QP) / 2.

[0170] e. In the above examples, K can depend on the picture / slice / block type; and / or the prediction mode and / or the bit depth.

[0171] i. In one example, the value of K for I slice / picture is not greater than the value of K for P / B slice / picture.

[0172] 4. The initial QP value syntax element (e.g., in SH / PH / PPS) can be offset by a value that depends on the internal bit depth.

[0173] a. In one example, the initial QP value syntax element can be offset by floor((-QpBdOffset+M) / 2).

[0174] i. Additionally, alternatively, the value of the syntax element plus floor((-QpBdOffset+M) / 2) should be in the range of -QpBdOffset to 63, inclusive.

[0175] b. In one example, the initial QP value syntax element can be offset by (floor((-QpBdOffset+M) / 2)+K), where K is a constant.

[0176] i. Additionally, alternatively, the value of the syntax element plus (floor((-QpBdOffset+M) / 2)+K) should be in the range of -QpBdOffset to N, inclusive.

[0177] c. In the above example, N can be set to the maximum allowed QP value (e.g., 63).

[0178] d. In the above example, M can be set to the maximum allowed QP value (e.g., 63) or the maximum allowed QP value plus / minus 1.

[0179] 5. Chroma QP tables can be determined according to picture / slice type.

[0180] a. In one example, different picture / slice types can have different sets of chroma QP tables.

[0181] b. In one example, I pictures / slices can have their own set of chroma QP tables.

[0182] c. In one example, I, B, and P pictures / slices can each have their own set of chroma QP tables.

[0183] d. In one example, B and P pictures / slices can share the same set of chroma QP tables.

[0184] e. In one example, picture / slice types can be categorized into M cases (M=2 for I-only, BP shared; M=3 for I / B / P separate). The number of chroma QP tables to be signaled can depend on M.

[0185] i. In one example, the number of chroma QP tables to be signaled can be set to M*numQpTables where M > 1 and numQpTables = (same_qp_table_for_chroma? 1 : (sps_joint_cbcr_enabled_flag? 3 : 2)).

[0186] 1) In addition, alternatively, the semantics of same_qp_table_for_chroma can be further modified as "same_qp_table_for_chroma equal to 1 specifies to signal only one chroma QP mapping table for picture / slice type".

[0187] ii. In addition, in one example, the number of chroma QP tables to be signaled can be set to (same_qp_table_for_chroma? 1 : (M*(sps_joint_cbcr_enabled_flag? 3 : 2))), where M > 1.

[0188] iii. In one example, for each category, first signal an indication of whether all blocks share the same chroma QP table, and the number of QP tables can be set to (same_qp_table_for_chroma? 1 : (sps_joint_cbcr_enabled_flag? 3 : 2)), followed by the details of the chroma QP tables.

[0189] 1) In addition, alternatively, for all categories, an indication for describing the starting luma and chroma QPs of the chroma QP mapping table can be further signaled, such as using actual values minus K (e.g., K = 26).

[0190] 2) In addition, alternatively, an indication for describing the starting luma and chroma QPs of the chroma QP mapping table can be further signaled, such as using actual values minus K (e.g., K = 1 for intra slice / picture, or K = 32 for inter slice / picture), and K is dependent on the category index.

[0191] 6. An indication (e.g., sps_non_intra_present_flag) can be added to SPS to indicate whether the current sequence can contain B / P slices.

[0192] a. In one example, when the flag is 1, it indicates that all slices in the current sequence are intra slices.

[0193] b. In one example, when the flag is 0, it indicates that there can be B / P slices in the current sequence.

[0194] 7. One or two sets of chroma QP tables can be signaled in SPS.

[0195] a. Add a flag to SPS, e.g., named sps_one_set_of_chroma_qp_tables_flag.

[0196] b. sps_one_set_of_chroma_qp_tables_flag equal to 1 specifies the presence of one set of chroma QP tables in SPS (i.e., as in the current VVC draft text), and this set of chroma QP tables is only applicable to intra coding entities (picture, slice, CTU, CU, or coding block).

[0197] i. In one example, the only set of chroma QP tables is only applicable to intra pictures in a CLVS referring to the SPS (for which all slices are intra slices, i.e., I slices).

[0198] ii. In one example, the only set of chroma QP tables is only applicable to intra slices in a CLVS referring to the SPS.

[0199] iii. In one example, the only set of chroma QP tables is only applicable to intra CTUs in a CLVS referring to the SPS.

[0200] iv. In one example, the only set of chroma QP tables is only applicable to intra CUs in a CLVS referring to the SPS.

[0201] v. In one example, the only set of chroma QP tables is only applicable to intra coding blocks in a CLVS referring to the SPS.

[0202] c. sps_one_set_of_chroma_qp_tables_flag equal to 1 specifies the presence of one set of chroma QP tables in SPS (i.e., as in the current VVC draft text), and this set of chroma QP tables is applicable to both intra and inter coding entities (picture, slice, CTU, CU, or coding block).

[0203] d. sps_one_set_of_chroma_qp_tables_flag equal to 0 specifies the presence of two sets of chroma QP tables in SPS (i.e., add one more set of chroma QP tables), the 0th set of chroma QP tables is only applicable to intra coding entities (picture, slice, CTU, CU, or coding block), and the 1st set of chroma QP tables is only applicable to inter coding entities (picture, slice, CTU, CU, or coding block).

[0204] i. In one example, the 0th chroma QP table set is only applied to intra pictures in the CLVS referring to the SPS (for which all slices are intra slices), and the 1st chroma QP table set is only applied to inter pictures in the CLVS referring to the SPS (for which all slices are inter slices, i.e. B slices or P slices).

[0205] ii. In one example, the 0th chroma QP table set is only applied to intra slices in the CLVS referring to the SPS, and the 1st chroma QP table set is only applied to inter slices in the CLVS referring to the SPS.

[0206] iii. In one example, the 0th chroma QP table set is only applied to intra CTUs in the CLVS referring to the SPS, and the 1st chroma QP table set is only applied to inter CTUs in the CLVS referring to the SPS.

[0207] iv. In one example, the 0th chroma QP table set is only applied to intra CUs in the CLVS referring to the SPS, and the 1st chroma QP table set is only applied to inter CUs in the CLVS referring to the SPS.

[0208] v. In one example, the 0th chroma QP table set is only applied to intra coded blocks in the CLVS referring to the SPS, and the 1st chroma QP table set is only applied to inter coded blocks in the CLVS referring to the SPS.

[0209] e. This flag can only be sent when ChromaArrayType is not equal to 0.

[0210] f. An example implementation is shown in Embodiment 4.

[0211] g. Another example implementation is shown in Embodiment 5.

[0212] 8. Chroma QP tables can be determined according to prediction mode.

[0213] a. In one example, intra CUs and other CUs can have different chroma QP table sets.

[0214] i. In one example, it can only apply to dual tree and / or local dual tree.

[0215] b. Alternatively, intra / palette CUs and other CUs can have different chroma QP table sets.

[0216] c. Alternatively, intra / IBC / palette CUs and other CUs can have different chroma QP table sets.

[0217] d. Alternatively, intra / IBC CUs and other CUs can have different chroma QP table sets.

[0218] e. In the above example, the number of chroma QP tables to be signaled can depend on the number of categorized prediction mode groups.

[0219] f. In the above example, the prediction mode can mean the prediction mode of luma CB.

[0220] 9. A transform skip block can have different sets of chroma QP tables.

[0221] a. In one example, it can only apply to luma blocks coded in transform skip mode.

[0222] 10. The maximum allowed value of the chroma QP table starting point syntax element (i.e., currently denoted as qp_table_start_minus26 in JVET-Q2001-vC) can be 37.

[0223] 11. The chroma QP table starting point syntax element (i.e., currently denoted as qp_table_start_minus26 in JVET-Q2001-vC) can be offset by a number K smaller than 26.

[0224] a. In one example, the syntax element can be replaced with qp_table_start_minusK, and / or the value of the syntax element plus K should be in the range of -(K+QpBdOffset) to (M-K) inclusive, where K is smaller than 26.

[0225] b. In one example, the syntax element can be replaced with qp_table_start_minusK, and / or the value of the syntax element should be in the range of -(K+QpBdOffset) to (M-1-K) inclusive, where K is smaller than 26.

[0226] i. In one example, K is equal to 20. In addition, alternatively, the syntax element can be replaced with init_qp_minus20 and / or the value of the syntax element plus 20 should be in the range of -(20+QpBdOffset) to (M-20) inclusive.

[0227] ii. In one example, K is equal to 20. In addition, alternatively, the syntax element can be replaced with init_qp_minus20 and / or the value of the syntax element plus 20 should be in the range of -(20+QpBdOffset) to (M-1-20) inclusive.

[0228] c. Alternatively, the initial QP value syntax element can be offset by a number K larger than 26.

[0229] i. In one example, the syntax element can be replaced by init_qp_minusK, and the value of the syntax element plus K should be in the range of -(K+QpBdOffset) to (M-K), inclusive, where K is a constant larger than 26.

[0230] ii. In one example, the syntax element can be replaced by init_qp_minusK, and the value of the syntax element plus K should be in the range of -(K+QpBdOffset) to (M-1-K), inclusive, where K is a constant larger than 26.

[0231] 1) In one example, K is equal to 32. Also, alternatively, the syntax element can be replaced by init_qp_minus32, and the value of the syntax element plus 32 should be in the range of -(32+QpBdOffset) to (M-32), inclusive.

[0232] 2) In one example, K is equal to 32. Also, alternatively, the syntax element can be replaced by init_qp_minus32, and the value of the syntax element plus 32 should be in the range of -(32+QpBdOffset) to (M-1-32), inclusive.

[0233] d. In the above examples, K can depend on the picture / slice type; and / or prediction mode and / or bit depth.

[0234] i. In one example, for intra picture / slice, K is set to 1.

[0235] ii. In one example, for P / B picture / slice, K is set to 32.

[0236] e. In the above examples, M can be the maximum allowed QP value, e.g., 63.

[0237] f. In one example, K is 0.

[0238] i. Also, alternatively, the syntax element can be binarized with uv(e) instead of sv(e).

[0239] 12. The chroma QP table start point syntax element (i.e., currently denoted as qp_table_start_minus26 in JVET-Q2001-vC) can be offset by a value that depends on whether the current picture is an intra only picture.

[0240] a. Alternatively, the offset can depend on the intra only constraint flag.

[0241] 13. The syntax element related to the number of pivot points in the chroma QP table (i.e., currently denoted as num_points_in_qp_table_minus1) should be able to represent 0 number of points.

[0242] a. In one example, the syntax element num_points_in_qp_table_minus1 can be used to replace num_points_in_qp_table that specifies the number of points in the chroma QP table, and the value is a non-negative integer.

[0243] i. In one example, the value of the syntax element that represents the number of pivot points should be in the range of 0 to (63 + QpBdOffset).

[0244] b. In addition, alternatively, 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.

[0245] c. In addition, alternatively, 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 plus an offset).

[0246] i. In one example, the offset can depend on the coding method (e.g., JCCR is on or off)

[0247] 14. The parsing of the chroma QP table start point syntax element (i.e., currently denoted as qp_table_start_minus26 in JVET-Q2001-vC) can be conditioned on whether the number of pivot points is 0.

[0248] a. In one example, when the number of pivot points is 0, the parsing of the syntax element can be skipped.

[0249] 15. In the derivation of the chroma QP table, the XOR operation should be performed between (delta_qp_in_val_minus1[i][j] + 1) and delta_qp_diff_val[i][j].

[0250] a. An example is shown in Embodiment 3.

[0251] 16. QP clipping can always be applied to the chroma QP table index.

[0252] a. In one example, the clipping range is from -QpBdOffset to 63 (inclusive).

[0253] 17. QP clipping can always be applied to the mapped chroma QP in the chroma QP table.

[0254] a. In one example, the clipping range is from -QpBdOffset to 63 (inclusive).

[0255] 18. The chroma QP table can be signaled in both SPS and PPS.

[0256] a. In one example, the chroma QP table in PPS can override the corresponding table in SPS.

[0257] 19. The chroma QP table can be signaled in PH or SH.

[0258] a. In one example, the chroma QP table in PH or SH can override the corresponding table in SPS or PPS.

[0259] 20. Regarding the control of RRC and TSRC to address the eighth problem, one or more of the following methods are disclosed, e.g., as in the seventh embodiment group:

[0260] a. In one example, whether to allow TSRC for a video unit (CLVS / group of pictures / picture / slice / tile / CTU row / CTU / CU / PU / TU) can depend on a syntax element (e.g., one or more flags) signaled in SPS / PPS / PH / SH / block / CU / TU level.

[0261] i. For example, the TSRC enable / disable flag can be signaled in PH or SH, but not both,

[0262] 1) Additionally, whether to signal the TSRC enable / disable flag in PH or SH can depend on a syntax flag signaled in PPS / SPS.

[0263] 2) Additionally, when the TSRC enable / disable flag is signaled in PH, the TSRC enable / disable flag in SH is not signaled.

[0264] 3) Additionally, when the TSRC enable / disable flag in SH is not present, it is inferred to be equal to the TSRC enable / disable flag in PH

[0265] ii. Alternatively, the TSRC enable / disable flag can be signaled in both PH and SH,

[0266] 1) In addition, additionally, when the TSRC enable / disable flag in PH specifies to disable TSRC for all slices referring to the PH, the TSRC enable / disable flag in SH

[0267] may not be signaled

[0268] iii. For example, the syntax element (such as ae(v) coding) coding a block / CU / TU level TSRC enable / disable flag with context adaptive arithmetic entropy coding.

[0269] iv. For example, the SPS / PPS / PH / SH level TSRC enable / disable flag is coded with unsigned integer using n bits (e.g., u(l) coding), such as n = 1.

[0270] b. Additionally, the signaling of the TSRC enable / disable flag of a video unit can depend on whether transform skip is enabled / used for the video unit.

[0271] i. For example, if transform skip is disabled at SPS level (e.g., sps_transform_skip_enabled_flag is equal to 0), the TSRC enable / disable flag in PPS level is required to be equal to a specific value that specifies to disable TSRC for pictures referring to the current PPS.

[0272] ii. Additionally, if transform skip is disabled at a higher level (e.g., sps_transform_skip_enabled_flag is equal to 0), the TSRC enable / disable flag at a lower level and / or the same layer (e.g., SPS / PH / SH / block / CU / TU level) is not signaled.

[0273] iii. Furthermore, alternatively, if transform skip is enabled at a higher level (e.g., SPS) but not used for a video unit (e.g., TU level transform_skip_flag is equal to 0), the TSRC enable / disable flag for the current video unit (e.g., TU) is not signaled.

[0274] iv. Additionally, when the TSRC enable / disable flag is not signaled at video unit level, the value of the TSRC enable / disable flag is inferred to be a specific value that specifies to disable TSRC for the video unit.

[0275] c. Alternatively, signaling notifications for lower-level TSRC enable / disable flags may rely on higher-level TSRC enable / disable flags.

[0276] i. For example, signaling notifications of TSRC enable / disable flags at the picture / strip level can depend on whether TSRC is enabled at the SPS / PPS level.

[0277] ii. Additionally, signaling notifications of TSRC enable / disable flags at the block / CU / TU level may depend on whether TSRC is enabled at the SPS / PPS / picture / strip level.

[0278] 1) For example, when TSRC is disabled at a higher level (e.g., SPS / PPS / picture / strip level), the TSRC enable / disable flags at the block / CU / TU level are not signaled.

[0279] 2) Additionally, when the TSRC enable / disable flag is not present, it is inferred to be a specific value (such as a value that specifies that TSRC is disabled for the current video unit).

[0280] iii. Additionally, the value of the TSRC enable / disable flag at the PPS level may depend on whether TSRC is enabled at the SPS level.

[0281] 1) For example, when the SPS level TSRC enable / disable flag specifies that TSRC is disabled for CLVS, the value of the PPS level TSRC enable / disable flag is required to be equal to the specific value that specifies that TSRC is disabled for the image referencing the current PPS.

[0282] Regarding ALF and CC-ALF

[0283] 21. It was proposed that when the luminance ALF is disabled for the current CTU, the instruction to use the chrominance ALF / CC-ALF for the current CTU shall not be notified by signaling.

[0284] a. Alternatively, this usage is presumed to be false when the luminance ALF is disabled in the CTU. In other words, when the luminance ALF is disabled in the CTU, the chroma ALF / CC-ALF is disabled.

[0285] 6. Example

[0286] 6.1. Example 1: Colorimetric QP table based on strip type

[0287] by Bold italic underscore The changes to the markings are based on JVET-Q2001-vC. Deleted text is indicated by double brackets (e.g., [[]]) markings between the left and right brackets indicating the deleted text.

[0288] 7.3.2.3 Sequence parameter set RBSP syntax

[0289]

[0290]

[0291] 7.3.2.3 Sequence parameter set RBSP syntax

[0292]

[0293] [[same_qp_table_for_chroma equal to 1 specifies that only one chroma QP mapping table is signaled and that table is applied to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. same_qp_table_for_chroma equal to 0 specifies that chroma QP mapping tables are signaled in the SPS, where two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr when sps_joint_cbcr_enabled_flag is equal to 1. When same_qp_table_for_chroma is not present in the bitstream, the value of same_qp_table_for_chroma is inferred to be equal to 1.]]

[0294] [[qp_table_start_minus26[ i ] plus 26 specifies the starting luma and chroma QPs for describing the i-th chroma QP mapping table. The value of qp_table_start_minus26[ i ] shall be in the range of -26 - QpBdOffset to 36, inclusive. When 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.]]

[0295] [[num_points_in_qp_table_minus1[ i ] plus 1 specifies the number of points for describing the i-th chroma QP mapping table. The value of num_points_in_qp_table_minus1[ i ] shall be in the range of 0 to 63 + QpBdOffset, inclusive. When 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.]]

[0296] [[delta_qp_in_val_minus1[ i ][ j ] specifies the delta value for deriving the input coordinate of the j-th pivot point of the i-th chroma QP mapping table. When 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.]]

[0297] [[delta_qp_diff_val[ i ][ j ] specifies the delta value for deriving the output coordinate of the j-th pivot point of the i-th chroma QP mapping table.]]

[0298] [[The i-th chroma QP mapping table ChromaQpTable[ i ] (where i = 0..numQpTables - 1) is derived as follows:]]

[0299] sps_non_intra_present_flag equal to 0 specifies that all slices are intra slices in the sequence. sps_non_intra_present_flag equal to 1 specifies that non-intra slices can be present in the sequence.

[0300] intra_same_qp_table_for_chroma equal to 1 specifies for intra slices that only one chroma QP mapping table is signalled and that this table applies to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. intra_same_qp_table_for_chroma equal to 0 specifies for intra slices that chroma QP mapping tables are signalled in the SPS, where two chroma QP mapping tables are signalled for Cb and Cr and one additional chroma QP mapping table is signalled for joint Cb-Cr when sps_joint_cbcr_enabled_flag is equal to 1. When same_qp_table_for_chroma is not present in the bitstream, the value of intra_same_qp_table_for_chroma is inferred to be equal to 1.

[0301] intra_qp_table_start_minus26[ i ] plus 26 specifies the starting luma and chroma QPs for describing the i-th chroma QP mapping table for intra slices. The value of intra_qp_table_start_minus26[ i ] shall be in the range of -26 - QpBdOffset to 36, inclusive. When intra_qp_table_start_minus26[ i ] is not present in the bitstream, the value of intra_qp_table_start_minus26[ i ] is inferred to be equal to 0.

[0302] intra_num_points_in_qp_table_minus1[ i ] plus 1 specifies the number of points for describing the i-th chroma QP mapping table for intra slices. The value of intra_num_points_in_qp_table_minus1[ i ] shall be in the range of 0 to 63 + QpBdOffset, inclusive. When intra_num_points_in_qp_table_minus1[ 0 ] is not present in the bitstream, the value of intra_num_points_in_qp_table_minus1[ 0 ] is inferred to be equal to 0.

[0303] intra_delta_qp_in_val_minus1[ i ][ j ] specifies the delta value for deriving the input coordinate of the j-th pivot point of the i-th chroma QP mapping table for intra slices. When intra_delta_qp_in_val_minus1[ 0 ][ j ] is not present in the bitstream, the value of intra_delta_qp_in_val_minus1[ 0 ][ j ] is inferred to be equal to 0.

[0304] intra_delta_qp_diff_val[ i ][ j ] specifies the delta value for deriving the output coordinate of the j-th pivot point of the i-th chroma QP mapping table for intra slices.

[0305] inter_same_qp_table_for_chroma equal to 1 specifies for B slices or P slices that only one chroma QP mapping table is signaled and this table applies to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. inter_same_qp_table_for_chroma equal to 0 specifies for B slices or P slices that chroma QP mapping tables are signaled in the SPS, where two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr when sps_joint_cbcr_enabled_flag is equal to 1. When same_qp_table_for_chroma is not present in the bitstream, the value of inter_same_qp_table_for_chroma is inferred to be equal to 1.

[0306] inter_qp_table_start_minus26[ i ] plus 26 specifies for B slices or P slices the starting luma and chroma QPs used to describe the i-th chroma QP mapping table. The value of intra_qp_table_start_minus26[ i ] shall be in the range of -26 - QpBdOffset to 36, inclusive. When inter_qp_table_start_minus26[ i ] is not present in the bitstream, the value of inter_qp_table_start_minus26[ i ] is inferred to be equal to 0.

[0307] inter_num_points_in_qp_table_minus1[ i ] plus 1 specifies for B slices or P slices the number of points used to describe the i-th chroma QP mapping table. The value of inter_num_points_in_qp_table_minus1[ i ] shall be in the range of 0 to 63 + QpBdOffset, inclusive. When inter_num_points_in_qp_table_minus1[ 0 ] is not present in the bitstream, the value of inter_num_points_in_qp_table_minus1[ 0 ] is inferred to be equal to 0.

[0308] inter_delta_qp_in_val_minus1[ i ][ j ] specifies, for a B slice or a P slice, the delta value for deriving the input coordinate of the j-th pivot point of the i-th chroma QP mapping table. When inter_delta_qp_in_val_minus1[ 0 ][ j ] is not present in the bitstream, the value of inter_delta_qp_in_val_minus1[ 0 ][ j ] is inferred to be equal to 0.

[0309] inter_delta_qp_diff_val[ i ][ j ] specifies, for a B slice or a P slice, the delta value for deriving the output coordinate of the j-th pivot point of the i-th chroma QP mapping table.

[0310] The i-th chroma QP mapping table IntraChromaQpTable[ i ] (where i = 0.. numQpTablesIntra - 1) and the i-th chroma QP mapping table InterChromaQpTable[ i ] (where i = 0.. numQpTablesInter - 1) are derived as follows:

[0311] When intra_same_qp_table_for_chroma is equal to 1, IntraChromaQpTable[ 1 ][ k ] and IntraChromaQpTable[ 2 ][ k ] are set equal to IntraChromaQpTable[ 0 ][ k ] (where k is in the range of - QpBdOffset to 63, inclusive).

[0312] When inter_same_qp_table_for_chroma is equal to 1, InterChromaQpTable[ 1 ][ k ] and InterChromaQpTable[ 2 ][ k ] are set equal to InterChromaQpTable[ 0 ][ k ] (where k is in the range of - QpBdOffset to 63, inclusive).

[0313] Let ChromaQpTable[ i ] represent IntraChromaQpTable[ i ] (where i = 0.. numQpTablesIntra - 1) for an I slice and InterChromaQpTable[ i ] (where i = 0.. numQpTablesInter - 1) for a B slice or a P slice, the following applies

[0314]

[0315]

[0316] When same_qp_table_for_chroma is equal to 1, ChromaQpTable[1][k] and ChromaQpTable[2][k] are set equal to ChromaQpTable[0][k], where k is in the range of -QpBdOffset to 63, inclusive.

[0317] It is a requirement of bitstream conformance that the values of qpInVal[i][j] and qpOutVal[i][j] shall be in the range of -QpBdOffset to 63, inclusive, where i is in the range of 0 to numQpTables - 1, inclusive, and j is in the range of 0 to num_points_in_qp_table_minus1[i] + 1, inclusive.

[0318]

[0319] 8.7.1 Derivation process of quantization parameters

[0320]

[0321] When the current slice is an I slice, ChromaQpTable[ i ] is set equal to IntraChromaQpTable[ i ], where i = 0..2. When the current slice is a B slice or a P slice, ChromaQpTable[ i ] is set equal to InterChromaQpTable[ i ], where i = 0..2.

[0322] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:

[0323] – When treeType is equal to DUAL_TREE_CHROMA, the variable Qp Y is set equal to the luma quantization parameter Qp Y of the luma coding unit that covers the luma position ( xCb + cbWidth / 2, yCb + cbHeight / 2 ).

[0324] – The variables qP Cb , qP Cr and qP CbCr are derived as follows:

[0325] qP Chroma =Clip3(-QpBdOffset,63,Qp Y (1143)

[0326] qP Cb =ChromaQpTable[0][qP Chroma (1144)

[0327] qP Cr =ChromaQpTable[1][qP Chroma (1145)

[0328] qP CbCr =ChromaQpTable[2][qP Chroma (1146)

[0329] ...

[0330] 6.2. Example 2: Number of pivot points and clipping of mapped chromaticity QP

[0331] The change to bold and italic markings is based on JVET-Q2001-vC.

[0332] 7.3.2.3 Sequence Parameter Set (RBSP) Syntax

[0333]

[0334]

[0335] `num_points_in_qp_table[[_minus1]][i][[+1]]` specifies the number of points used to describe the i-th chroma QP map. The value of `num_points_in_qp_table[[_minus1]][i]` should be in the range of 0 to 63+QpBdOffset (inclusive). [[When `num_points_in_qp_table_minus1[0]` is not present in the bitstream, the value of `num_points_in_qp_table_minus1[0]` is inferred to be equal to 0.]]

[0336] delta_qp_in_val_minus1[ i ][ j ] specifies the delta value for deriving the input coordinate of the j-th pivot point of the i-th chroma QP mapping table. When 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.

[0337] delta_qp_diff_val[ i ][ j ] specifies the delta value for deriving the output coordinate of the j-th pivot point of the i-th chroma QP mapping table.

[0338] The i-th chroma QP mapping table ChromaQpTable[ i ] (where i = 0.. numQpTables - 1) is derived as follows:

[0339] When same_qp_table_for_chroma is equal to 1, ChromaQpTable[ 1 ][ k ] and ChromaQpTable[ 2 ][ k ] are set equal to ChromaQpTable[ 0 ][ k ], where k is in the range of - QpBdOffset to 63, inclusive.

[0340]

[0341]

[0342]

[0343] It is a requirement of bitstream conformance that the values of qpInVal[ i ][ j ][ [ and qpOutVal[ i ][ j ] ] ] shall be in the range of - QpBdOffset to 63, inclusive, where i is in the range of 0 to numQpTables - 1, inclusive, and j is in the range of 0 to num_points_in_qp_table_minus1[ i ] + 1, inclusive.

[0344] 6.3. Embodiment 3

[0345] The changes in notation are based on JVET-Q2001-vE. Bold italic underscore

[0346] The i-th chroma QP mapping table ChromaQpTable[ i ] (where i = 0.. numQpTables - 1) is derived as follows:​

[0347]

[0348]

[0349] When same_qp_table_for_chroma is equal to 1, ChromaQpTable[1][k] and ChromaQpTable[2][k] are set equal to ChromaQpTable[0][k], where k is in the range of -QpBdOffset to 63, inclusive.

[0350] It is a requirement of bitstream conformance that the values of qpInVal[i][j] and qpOutVal[i][j] shall be in the range of -QpBdOffset to 63, inclusive, where i is in the range of 0 to numQpTables - 1, inclusive, and j is in the range of 0 to num_points_in_qp_table_minus1[i] + 1, inclusive.

[0351] 6.4. Embodiment 4

[0352] Newly added text is marked with Bold italic underscore Text that is deleted is marked with double square brackets (e.g., [[]]) around the deleted text between the double square brackets. It is based on JVET-Q2001-vE.

[0353] 7.3.2.3 Sequence parameter set RBSP syntax

[0354]

[0355]

[0356] 7.4.3.3 Sequence parameter set RBSP semantics

[0357]

[0358]

[0359] Equal to 1 Specifies that only one chroma QP mapping table is signaled and that table applies to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. Equal to 0 sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When not present in the bitstream, the value of sps_joint_cbcr_qp_offset is inferred to be equal to 1.

[0360] plus 1 sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When the value of sps_joint_cbcr_qp_offset shall be in the range of 0 to 63 + QpBdOffset, inclusive. When not present in the bitstream, the value of sps_joint_cbcr_qp_offset is inferred to be equal to 0.

[0361] sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When the value of sps_joint_cbcr_qp_offset shall be in the range of [[-26]] - QpBdOffset to inclusive. When not present in the bitstream, the value of sps_joint_cbcr_qp_offset is inferred to be equal to 0.

[0362] sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When not present in the bitstream, the value of sps_joint_cbcr_qp_offset is inferred to be equal to 0.

[0363] sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When

[0364]

[0365]

[0366]

[0367] When sps_joint_cbcr_enabled_flag is equal to 1, two chroma QP mapping tables are signaled for Cb and Cr and one additional chroma QP mapping table is signaled for joint Cb-Cr. When and are set equal to ​where k is in the range of -QpBdOffset to 63, inclusive.

[0368] The requirement for bitstream conformance is that the values of qpInVal[ i ][ j ] and qpOutVal[ i ][ j ] shall be in the range of -QpBdOffset to 63, inclusive, where i is in the range of 0 to numQpTables - 1, inclusive, and j is in the range of 0 to num_points_in_qp_table_minus1[ i ] + 1, inclusive.

[0369]

[0370] 8.7.1 Derivation process of quantization parameters

[0371]

[0372]

[0373] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:

[0374] - When treeType is equal to DUAL_TREE_CHROMA, the variable Qp Y is set equal to the luma quantization parameter Qp Y of the luma coding unit that covers the luma position ( xCb + cbWidth / 2, yCb + cbHeight / 2 ).

[0375] - The variables qP Cb , qP Cr and qP CbCr are derived as follows:

[0376] qP Chroma = Clip3( -QpBdOffset, 63, Qp Y ) (1143)

[0377] qP Cb = ChromaQpTable[ 0 ][ qP Chroma ] (1144)

[0378] qP Cr = ChromaQpTable[ 1 ][ qP Chroma ] (1145)

[0379] qP CbCr = ChromaQpTable[2][qP Chroma ] (1146)

[0380]

[0381] 6.5. Embodiment 5

[0382] Newly added text is marked with Bold italic underscore and deleted text is marked with double square brackets (e.g., [[]]) indicating the deleted text between the left and right double square brackets. It is based on JVET-Q2001-vE.

[0383] 7.3.2.3 Sequence parameter set RBSP syntax

[0384]

[0385] 7.4.3.3 Sequence parameter set RBSP semantics

[0386]

[0387]

[0388] equal to 1 specifies that only one chroma QP mapping table is signaled and that this table applies to Cb and Cr residuals and additionally to joint Cb-Cr residuals when sps_joint_cbcr_enabled_flag is equal to 1. equal to 0 specifies that chroma QP mapping tables are signaled in the SPS, where two chroma QP mapping tables are signaled for Cb and Cr when sps_joint_cbcr_enabled_flag is equal to 1 and one additional chroma QP mapping table is signaled for joint Cb-Cr. When not present in the bitstream, the value of sps_chroma_qp_offset is inferred to be equal to 1.

[0389] plus 26 specifies the starting luma and chroma QPs used to describe the i-th chroma QP mapping table. The value of sps_qp_delta_sign_flag shall be in the range of -26 - QpBdOffset to 36, inclusive. When not present in the bitstream, the value of sps_qp_delta_sign_flag is inferred to be equal to 0.

[0390] plus 1 specifies the number of points used to describe the i-th chroma QP mapping table. The value of QpBdOffset shall be in the range of 0 to 63, inclusive. When QpBdOffset is not present in the bitstream, the value of QpBdOffset is inferred to be equal to 0.

[0391] specifies the delta value of the input coordinate used to derive the j-th pivot point of the i-th chroma QP mapping table. When DeltaQpInput is not present in the bitstream, the value of DeltaQpInput is inferred to be equal to 0.

[0392] specifies the delta value of the output coordinate used to derive the j-th pivot point of the i-th chroma QP mapping table.

[0393]

[0394]

[0395]

[0396] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, and are set equal to where k is in the range of -QpBdOffset to 63, inclusive.

[0397] It is a requirement of bitstream conformance that, and the values of QpBdOffset shall be in the range of -QpBdOffset to 63, inclusive, where i is in the range of 0 to , inclusive, and j is in the range of 0 to , inclusive.

[0398]

[0399] 8.7.1 Derivation process of quantization parameters

[0400]

[0401]

[0402] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies: ​​​

[0403] - When treeType is equal to DUAL_TREE_CHROMA, the variable Qp Y is set equal to the luma quantization parameter Qp Y of the luma coding unit covering the luma position (xCb + cbWidth / 2, yCb + cbHeight / 2)

[0404] - The variables qP Cb , qP Cr and qP CbCr are derived as follows:

[0405] qP Chroma = Clip3(-QpBdOffset, 63, Qp Y ) (1143)

[0406] qP Cb = ChromaQpTable[0][qP Chroma ] (1144)

[0407] qP Cr = ChromaQpTable[1][qP Chroma ] (1145)

[0408] qP CbCr = ChromaQpTable[2][qP Chroma ] (1146)

[0409] 6.6. Embodiment 6

[0410] The proposed specification changes on top of JVET-Q2001-vE are described as follows. Text that is deleted is marked with double square brackets (e.g., [[]]) around the deleted text on the left and right, and newly added text is highlighted. Bold italic Bold italic underscore

[0411] 7.3.10.2 Coding tree unit syntax

[0412]

[0413]

[0414]

[0415] 6.7. Seventh set of embodiments

[0416] This is the set of embodiments for item 20 summarized in section 5 above.

[0417] ​The changed text is based on the latest VVC text in JVET-Q2001-vE. The most relevant parts that have been added or modified are highlighted Bold italic underscore Text is highlighted and some deleted text is marked with double square brackets (e.g., [[]]) around the deleted text.

[0418] 6.7.1. Example Embodiments

[0419] In one example, the SPS syntax structure can be changed as follows:

[0420]

[0421]

[0422] In one example, the PPS syntax structure can be changed as follows:

[0423]

[0424]

[0425]

[0426] In one example, the PH syntax structure can be changed as follows:

[0427]

[0428]

[0429]

[0430] In one example, the PH syntax structure can be changed as follows:

[0431]

[0432] is equal to The residual_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. is equal to The residual_ts_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. When When not present, it is inferred to be equal to

[0433] In one example, the transform_unit( ) syntax structure can be changed as follows:

[0434]

[0435]

[0436]

[0437]

[0438] 6.7.2. Another example embodiment

[0439] Alternatively, the PPS, PH, SH syntaxes can be changed as follows:

[0440]

[0441]

[0442]

[0443]

[0444]

[0445]

[0446] equal to The residual_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. equal to The residual_ts_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. When When not present, it is inferred to be equal to 0.

[0447] 6.7.3. Another example embodiment

[0448] Alternatively, the PPS, SH syntaxes can be changed as follows:

[0449]

[0450]

[0451]

[0452]

[0453] equal to The residual_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. equal to The residual_ts_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. When is not present, it is inferred to be equal to 0.

[0454] 6.7.4. Another Example Embodiment

[0455] Alternatively, the SH syntax can be changed as follows:

[0456]

[0457] is equal to The residual_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. is equal to The residual_ts_coding( ) syntax structure is specified for parsing the residual samples of a transform skip block of the current slice. When is not present, it is inferred to be equal to 0.

[0458] Figure 3 is a block diagram illustrating an example video processing system 1900 in which various techniques disclosed herein can be implemented. Various implementations can include some or all of the components of the system 1900. The system 1900 can include an input 1902 for receiving video content. The video content can be received in a raw or uncompressed format, e.g., 8 or 10 bit multi-component pixel values, or can be in a compressed or encoded format. The input 1902 can represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical networks (PONs), etc., and wireless interfaces such as Wi-Fi or cellular interfaces.

[0459] The system 1900 can include a codec component 1904 that can implement various coding or encoding methods described in this document. The codec component 1904 can reduce the average bitrate of video from the input 1902 to the output of the codec component 1904 to produce a coded representation of the video. The codec techniques are thus sometimes referred to as video compression or video transcoding techniques. The output of the codec component 1904 can be stored, or transmitted via a communication connection as represented by the component 1906. The stored or communicated bitstream (or coded) representation of the video received at the input 1902 can be used by a component 1908 to generate pixel values or a displayable video that is sent to a display interface 1910. The process of generating user-viewable video from a bitstream representation is sometimes referred to as video decompression. Also, while certain video processing operations are referred to as “coding” operations or tools, it will be understood that the coding tools or operations are used at an encoder, and corresponding decoding tools or operations that reverse the results of the coding will be performed by a decoder.

[0460] Examples of peripheral bus interfaces or display interfaces can include Universal Serial Bus (USB), or High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The techniques described in this document can be embodied in various electronic devices such as mobile telephones, laptop computers, smart phones, or other devices capable of performing digital data processing and / or video display.

[0461] Figure 4 is a block diagram of a video processing apparatus 3600. The apparatus 3600 can be used to implement one or more methods described herein. The apparatus 3600 can be embodied in a smartphone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. The apparatus 3600 can include one or more processors 3602, one or more memories 3604, and video processing hardware 3606. The processor(s) 3602 can be configured to implement one or more methods described in this document. The memory(ies) 3604 can be used for storing data and code used for implementing the methods and techniques described herein. The video processing hardware 3606 can be used to implement, in hardware circuitry, some of the techniques described in this document.

[0462] Figure 6 is a block diagram illustrating an example video coding system 100 that can utilize the techniques of this disclosure.

[0463] As Figure 6As shown, the video encoding / decoding system 100 may include a source device 110 and a target device 120. The source device 110 generates encoded video data, and this source device 110 may be referred to as a video encoding device. The target device 120 can decode the encoded video data generated by the source device 110, and this target device 120 may be referred to as a video decoding device.

[0464] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0465] Video source 112 may include sources such as video capture devices, interfaces for receiving video data from video content providers, and / or computer graphics systems for generating video data, or combinations of these sources. Video data may include one or more pictures. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a codec representation of the video data. The bitstream may include codec pictures and related data. A codec picture is a codec representation of a picture. Related data may include sequence parameter sets, picture parameter sets, and other syntax structures. I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be transmitted directly to target device 120 via I / O interface 116 through network 130a. Encoded video data may also be stored on storage medium / server 130b for access by target device 120.

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

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

[0468] The video encoder 114 and the video decoder 124 can operate according to video compression standards, such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other current and / or additional standards.

[0469] Figure 7 This is a block diagram illustrating an example of a video encoder 200, which may be... Figure 6 The video encoder 114 in the system 100 shown.

[0470] Video encoder 200 can be configured to perform any or all of the techniques of this disclosure. In Figure 7 In examples, video encoder 200 includes a plurality of functional components. The techniques described in this disclosure can be shared among the various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0471] The functional components of video encoder 200 can include partition unit 201, prediction unit 202, which can include mode select unit 203, motion estimation unit 204, motion compensation unit 205, and intra-prediction unit 206, residual generation unit 207, transform unit 208, quantization unit 209, inverse quantization unit 210, inverse transform unit 211, reconstruction unit 212, buffer 213, and entropy encoding unit 214.

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

[0473] Furthermore, some components, such as motion estimation unit 204 and motion compensation unit 205, can be highly integrated, but are represented separately for explanatory purposes in Figure 7 examples.

[0474] Partition unit 201 can partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 can support various video block sizes.

[0475] Mode select unit 203 can select one of the coding modes (e.g., intra or inter) based on the error results and provide the resulting intra-coded or inter-coded block to residual generation unit 207 for generation of residual block data and to reconstruction unit 212 for reconstruction of the encoded block for use as a reference picture. In some examples, mode select unit 203 can select a combination of intra and inter prediction modes (CIIP), where the prediction is based on both inter-prediction and intra-prediction signals. In the case of inter-prediction, mode select unit 203 can also select a resolution of the block’s motion vector (e.g., sub-pixel or integer-pixel precision).

[0476] To perform inter prediction on a current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 to the current video block. Motion compensation unit 205 can 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.

[0477] Motion estimation unit 204 and motion compensation unit 205 can perform different operations on a current video block, e.g., depending on whether the current video block is in an I slice, a P slice, or a B slice.

[0478] In some examples, motion estimation unit 204 can perform uni-prediction on a current video block, and motion estimation unit 204 can search for a reference video block for the current video block in a reference picture of list 0 or list 1. Motion estimation unit 204 can then generate a reference index indicating the 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 can output the reference index, a prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information for the current video block.

[0479] In other examples, motion estimation unit 204 can perform bi-prediction on a current video block, motion estimation unit 204 can search for a reference video block for the current video block in a reference picture of list 0, and can also search for another reference video block for the current video block in list 1. Motion estimation unit 204 can then generate a reference index indicating the reference pictures in list 0 and list 1 that contain the reference video blocks and a motion vector indicating a spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference index and the motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information for the current video block.

[0480] In some examples, motion estimation unit 204 can output a full set of motion information for a current video block for decoding processing at a decoder.

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

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

[0483] In another example, the motion estimation unit 204 can identify, in a syntax structure associated with the current video block, another video block and a motion vector difference (MVD). The motion vector difference indicates a difference between a motion vector of the current video block and a motion vector of the indicated video block. The video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0484] As discussed above, the video encoder 200 can predictively signal motion vectors. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include advanced motion vector prediction (AMVP) and Merge mode signaling.

[0485] The intra prediction unit 206 can perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block can include a predicted video block and various syntax elements.

[0486] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the prediction video block(s) for the current video block from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of samples in the current video block.

[0487] In other examples, such as in skip mode, there can be no residual data for the current video block, and the residual generation unit 207 can not perform the subtraction operation.

[0488] The transform processing unit 208 can generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video blocks associated with the current video block.

[0489] After the transform processing unit 208 generates the transform coefficient video blocks associated with the current video block, the quantization unit 209 can quantize the transform coefficient video blocks associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.

[0490] Inverse quantization unit 210 and inverse transform unit 211 can 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 can add the reconstructed residual video block to corresponding samples of one or more prediction video blocks generated from prediction unit 202 to produce a reconstructed video block associated with the current block for storage in buffer 213.

[0491] After reconstruction unit 212 reconstructs a video block, in-loop filtering operations can be performed to reduce video block artifacts in the video block.

[0492] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, entropy encoding unit 214 can perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream that includes the entropy encoded data.

[0493] Some embodiments of the disclosed technology 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 will use or implement the tool or mode in the processing of blocks of a video, but can not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, when a video processing tool or mode is enabled based on the decision or determination, the conversion from blocks of a video to a bitstream (or bitstream representation) of the video will use the video processing tool or mode. In another example, when a video processing tool or mode is enabled, a decoder will process a bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from a bitstream of a video to blocks of the video will be performed using the video processing tool or mode that is enabled based on the decision or determination.

[0494] Figure 8 is a block diagram illustrating an example of a video decoder 300 that can be Figure 6 the video decoder 114 in the system 100 shown.

[0495] The video decoder 300 can be configured to perform any or all of the techniques of this disclosure. In Figure 8 In examples, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0496] In Figure 8In the example of FIG. 3, 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 transformation unit 305, a reconstruction unit 306, and a buffer 307. In some examples, video decoder 300 can perform a decoding process generally reciprocal to the encoding process described with respect to video encoder 200 (FIG. 2). Figure 7

[0497] Entropy decoding unit 301 can retrieve an encoded bitstream. The encoded bitstream can include entropy encoded video data (e.g., encoded blocks of video data). Entropy decoding unit 301 can decode the entropy encoded video data and, from the entropy decoded video data, motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference picture list indices, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and Merge modes.

[0498] Motion compensation unit 302 can generate a motion compensated block, and can perform interpolation based on an interpolation filter. An identifier of the interpolation filter to be used at sub-pixel precision can be included in the syntax elements.

[0499] Motion compensation unit 302 can use the interpolation filter as used by video encoder 200 during encoding of the video block to calculate the interpolation of sub-integer pixels of the reference block. Motion compensation unit 302 can determine the interpolation filter used by video encoder 200 from the received syntax information and use the interpolation filter to generate the prediction block.

[0500] Motion compensation unit 302 can use some of the syntax information to determine the size of the blocks used to encode the frame(s) and / or slice(s) of the encoded video sequence, partitioning information describing how each macroblock of a picture of the encoded video sequence is partitioned, modes indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information used to decode the encoded video sequence.

[0501] Intra-prediction unit 303 can use intra-prediction modes, e.g., received in the bitstream, to form a prediction block from spatially adjacent blocks. Inverse quantization unit 303 inverse quantizes, i.e., de-quantizes, quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transformation unit 303 applies an inverse transform.

[0502] ​The reconstruction unit 306 can add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If desired, a deblocking filter can also be applied to filter the decoded block to remove blockiness. The decoded video blocks are then stored in the buffer 307 to provide reference blocks for subsequent motion compensation / intra prediction and also to generate decoded video for presentation on a display device.

[0503] Next, a list of preferred solutions for some embodiments is provided.

[0504] The following solutions show example embodiments of the techniques discussed in the previous section (e.g., item 1).

[0505] Figure 9 is a flowchart of an example method 900 of video processing. Operation 902 includes performing a conversion between a video comprising a video unit and a bitstream of the video according to a rule, wherein the rule specifies whether a transform skip residual coding operation is enabled for the video unit, and wherein one or more syntax elements are included in the bitstream at a video segment level that indicate whether the transform skip residual coding operation is enabled for the video unit.

[0506] In some embodiments of the method 900, the video unit comprises a coded layer video sequence (CLVS), a picture group, a picture, a slice, a tile, a coding tree unit (CTU) row, a CTU, a coding unit (CU), a picture unit (PU), or a transform unit (TU). In some embodiments of the method 900, the video segment level comprises a sequence parameter set (SPS) level, a picture parameter set (PPS) level, a picture header (PH) level, a slice header (SH) level, a video block level, a coding unit (CU) level, or a transform unit (TU) level. In some embodiments of the method 900, the rule specifies that the one or more syntax elements comprise a first syntax element that indicates whether the transform skip residual coding operation is enabled for the video unit, the first syntax element being conditionally included in the PH level or the SH level. In some embodiments of the method 900, whether the first syntax element is included in the bitstream at the PH level or the SH level is based on a second syntax element included in the PPS level or the SPS level.

[0507] In some embodiments of the method 900, the rule specifies that the third syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is not included in the SH level when the first syntax element is included in the PH level. In some embodiments of the method 900, the rule specifies that a value of the third syntax element is inferred to be equal to a value of the first syntax element included in the PH level when the third syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is not present in the SH level. In some embodiments of the method 900, the rule specifies that one or more syntax elements indicating whether the transform skip residual coding operation is enabled for the video unit are indicated in the PH level and the SH level. In some embodiments of the method 900, the rule specifies that the one or more syntax elements include the first syntax element indicating whether the transform skip residual coding operation is enabled for the video unit, the first syntax element being not included in the first syntax element in the SH level when the first syntax element in the PH level specifies that the transform skip residual coding operation is disabled for all slices referring to the PH level.

[0508] In some embodiments of the method 900, the rule specifies that the one or more syntax elements include the first syntax element indicating whether the transform skip residual coding operation is enabled for the video unit, the first syntax element being included in a video block level or a CU level or a TU level, and wherein the first syntax element is coded with a context adaptive arithmetic entropy coding syntax element. In some embodiments of the method 900, the context adaptive arithmetic entropy coding syntax element includes ae(v) coding. In some embodiments of the method 900, the rule specifies that at least one of the one or more syntax elements indicating whether the transform skip residual coding operation is enabled for the video unit is included in an SPS level or a PPS level or a PH level or a SH level, and is coded with an unsigned integer using n bits, where n is an integer. In some embodiments of the method 900, n is equal to 1.

[0509] In some embodiments of the method 900, the rule specifies that whether the one or more syntax elements include the first syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is included in the bitstream is based on whether the transform skip operation is enabled or used for the video unit. In some embodiments of the method 900, the rule specifies that when the transform skip operation is disabled at the SPS level, a value of the first syntax element in the PPS level indicates that the transform skip residual coding operation is disabled for pictures that reference the current PPS. In some embodiments of the method 900, the first syntax element is included in the bitstream at a first video segment level, wherein the rule specifies that due to the transform skip operation being disabled at a second video segment level, the first syntax element indicating that the transform skip residual coding operation is disabled is omitted from the bitstream, and wherein the first video segment level is lower than or the same as the second video segment level.

[0510] In some embodiments of the method 900, the first video segment level includes the SPS level, the PH level, the SH level, the video block level, the CU level, or the TU level. In some embodiments of the method 900, the second video segment level includes the SPS level or the PPS level. In some embodiments of the method 900, the rule specifies that when the transform skip operation is enabled at a video segment level of the video but not for the video unit, a syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is not included in the bitstream. In some embodiments of the method 900, the video segment level includes the SPS level, and wherein the video unit includes the TU.

[0511] In some embodiments of the method 900, the rule specifies that when the syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is not included at the video segment level, a value of the syntax element is inferred to indicate that the transform skip residual coding operation is disabled for the video unit. In some embodiments of the method 900, the rule specifies whether the syntax element indicating whether the transform skip residual coding operation is enabled for the video unit is included in the bitstream at a first video segment level of the video is based on a value of a second syntax element in a bitstream at a second video segment level of the video, and the second video segment level is higher than the first video segment level.

[0512] In some embodiments of the method 900, the first video segment level comprises a picture level or a slice level, the second video segment level comprises an SPS level or a PPS level, and the syntax element is included in the bitstream at the picture level or the slice level based on whether a value of the syntax element indicates that the transform skip residual coding operation is enabled at the SPS level or the PPS level. In some embodiments of the method 900, the first video segment level comprises a video block level, or a CU level, or a TU level, the second video segment level comprises an SPS level, a PPS level, a picture level, or a slice level, and the syntax element is included in the bitstream at the video block level, or the CU level, or the TU level based on whether a value of the syntax element indicates that the transform skip residual coding operation is enabled at the SPS level, the PPS level, the picture level, or the slice level. In some embodiments of the method 900, the rule specifies that the syntax element is not included at the first video segment level when a value of the syntax element indicates that the transform skip residual coding operation is disabled for video units of the second video segment level.

[0513] In some embodiments of the method 900, the rule specifies that the syntax element is inferred to a particular value when the syntax element is not present in the bitstream. In some embodiments of the method 900, a value of the syntax element at a PPS level is based on whether the transform skip residual coding operation is enabled at an SPS level. In some embodiments of the method 900, a value of the syntax element in the bitstream at the PPS level is equal to a particular value that specifies that the transform skip residual coding operation is disabled for pictures that refer to the current PPS when a syntax element at the SPS level indicates that the transform skip residual coding operation is disabled for a CLVS.

[0514] Figure 10 is a flowchart of an example method 1000 of video processing. Operation 1002 includes performing a conversion between a video comprising video units and a bitstream of the video, wherein the bitstream conforms to a format rule, and wherein the format rule specifies whether or where one or more syntax elements indicating one or more initial quantization parameter (QP) values used during the conversion are included in the bitstream.

[0515] In some embodiments of the method 1000, the format rule specifies that the syntax elements indicating the one or more initial QP values are included in the picture header without being included in the picture parameter set. In some embodiments of the method 1000, the format rule specifies that the syntax elements indicating the one or more initial QP values are included in the picture parameter set and repeated in one or more picture headers. In some embodiments of the method 1000, the format rule specifies that the syntax elements indicating the one or more initial QP values are included in the picture parameter set and repeated in one or more picture headers, and the format rule specifies that the one or more initial QP values included in the picture header override or update the one or more initial QP values included in the picture parameter set by using a delta value in the bitstream. In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are included in the bitstream at two or more of a plurality of video segment levels including a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), and a slice header (SH), and the format rule specifies that the one or more initial QP values included at a second video segment level update or override the one or more initial QP values included at a first video segment level, the first video segment level being at a higher level than the second video segment level, and the one or more initial QP values of the first video segment level are coded with ue(v) and the one or more initial QP values of the second video segment level are coded with se(v).

[0516] In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are included in the bitstream at a plurality of video segment levels including two or more of a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), and a slice header (SH) according to a rule. In some embodiments of the method 1000, the rule specifies that each of the one or more syntax elements is based on a type of the video unit. In some embodiments of the method 1000, the rule is based on a type of a picture or slice of the video unit. In some embodiments of the method 1000, the rule is based on a type of video content of the video unit. In some embodiments of the method 1000, the rule is based on an index of a subpicture of the video unit or another identification of the subpicture. In some embodiments of the method 1000, the rule is based on an index of a slice of the video unit or another identification information of the slice. In some embodiments of the method 1000, the rule is based on an index of a tile of the video unit or another identification information of the tile. In some embodiments of the method 1000, the rule is based on a type of a transform of the video unit.

[0517] In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are offset by K, where K is a number that is not equal to 26. In some embodiments of the method 1000, K is less than 26. In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are replaced by init_qp_minusK and / or one or more values of the one or more syntax elements are in a range of -(K+QpBdOffset) to (63-K), inclusive, and where K is less than 26. In some embodiments of the method 1000, K is greater than 26.

[0518] In some embodiments of the method 1000, K is a function of a maximum allowed QP value and / or a minimum allowed QP value. In some embodiments of the method 1000, K is based on a picture or slice of the video unit and / or where K is based on a prediction mode and / or a bit depth of the video unit. In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are offset by a number based on an internal bit depth of the video unit. In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are offset by floor((-QpBdOffset+M) / 2). In some embodiments of the method 1000, the format rule specifies that the one or more syntax elements are offset by (floor((-QpBdOffset+M) / 2)+K), where K is a constant. In some embodiments of the method 1000, the number is set to a maximum allowed QP value. In some embodiments of the method 1000, M is set to a maximum allowed QP value.

[0519] Figure 11 is a flowchart of an example method 1100 of video processing. Operation 1102 includes, for a conversion between a chroma block of a video and a bitstream of the video, determining one or more chroma quantization parameter (QP) tables based on a type of a picture or slice that includes the chroma block, where the one or more chroma QP tables are determined according to a rule. Operation 1104 includes performing the conversion based on the determining.

[0520] In some embodiments of the method 1100, the rule provides that each type of picture or slice of the video is associated with a different chroma QP table. In some embodiments of the method 1100, the rule provides that I pictures or slices are associated with a chroma QP table that is specific to I pictures or slices. In some embodiments of the method 1100, the rule provides that I, B, and P pictures or slices are associated with a chroma QP table that is specific to I, B, and P pictures or slices. In some embodiments of the method 1100, the rule provides that B and P pictures or slices are associated with the same set of chroma QP tables. In some embodiments of the method 1100, the rule provides that one or more pictures or slices of the video are classified into M cases, and the rule provides that the number of chroma QP tables to be included in the bitstream is based on M.

[0521] Figure 12 FIG. 12 is a flowchart of an example method 1200 of video processing. Operation 1202 includes performing a conversion between a video comprising a video unit and a bitstream of the video according to a rule, wherein the rule provides that a syntax element is included in a sequence parameter set (SPS) that indicates whether a current sequence to which the video unit belongs includes B slices or P slices.

[0522] Figure 13 FIG. 13 is a flowchart of an example method 1300 of video processing. Operation 1302 includes performing a conversion between a chroma block of a video and a bitstream of the video according to a rule, wherein the rule provides whether or how one or two sets of chroma quantization parameter (QP) tables are included in a sequence parameter set (SPS) associated with the chroma block.

[0523] In some embodiments of the method 1300, the SPS includes a syntax element that indicates whether one or two sets of QP tables are included in the SPS. In some embodiments of the method 1300, the bitstream includes the syntax element when ChromaArrayType is not equal to zero.

[0524] Figure 14 FIG. 14 is a flowchart of an example method 1400 of video processing. Operation 1402 includes, for a conversion between a chroma block of a video and a bitstream of the video, determining one or more sets of chroma quantization parameter (QP) tables based on a prediction mode of the chroma block. Operation 1404 includes performing the conversion based on the determination.

[0525] In some embodiments of the method 1400, an intra coded unit (CU) and other CUs have different sets of chroma QP tables.

[0526] Figure 15is a flowchart of an example method 1500 of video processing. Operation 1502 includes performing, according to a rule, a conversion between a video comprising a video block and a bitstream of the video, wherein the rule specifies that one or more chroma quantization parameter (QP) tables associated with the video block coded in a transform skip (TS) mode are different from QP tables of other video blocks not coded in the TS mode.

[0527] In some embodiments of the method 1500, the video block comprises a luma video block.

[0528] Figure 16 is a flowchart of an example method 1600 of video processing. Operation 1602 includes determining, for a conversion between a video comprising a video block and a bitstream of the video, that a maximum allowed value of a syntax element of a chroma quantization parameter (QP) table start point is 37. Operation 1604 includes performing the conversion based on the determination.

[0529] Figure 17 is a flowchart of an example method 1700 of video processing. Operation 1702 includes determining, for a conversion between a video comprising a video block and a bitstream of the video, that a syntax element offset K of a chroma quantization parameter (QP) table start point, wherein K is less than 26. Operation 1704 includes performing the conversion based on the determination.

[0530] In some embodiments of the method 1700, K is zero.

[0531] Figure 18 is a flowchart of an example method 1800 of video processing. Operation 1802 includes performing, according to a rule, a conversion between a video comprising a video block and a bitstream of the video, wherein the rule specifies a property of a chroma quantization parameter (QP) table of the video block.

[0532] In some embodiments of the method 1800, the rule specifies that a syntax element offset of a starting point of a chroma QP table is based on a value of whether a current video picture to which a video block belongs is an intra-only picture. In some embodiments of the method 1800, the rule specifies that a number of pivot points in a chroma QP table of the video block is one of: (1) the number is zero, or (2) the number is a non-negative number, or (3) when the number of pivot points in the chroma QP table is zero, an i-th entry in the chroma QP table is equal to an i-th entry of a corresponding luma QP table, or (4) when the number of pivot points in the chroma QP table is zero, an i-th entry in the chroma QP table is equal to an i-th entry of a corresponding luma QP table plus an offset. In some embodiments of the method 1800, the rule specifies that whether to parse a starting point of a chroma QP table is based on whether the number of pivot points is zero. In some embodiments of the method 1800, the rule specifies that a chroma QP table of the video block is determined by performing an exclusive OR (XOR) operation between (delta qp in val minusl[i][j] + 1) and delta qp diff val[i][j]. In some embodiments of the method 1800, the rule specifies that a quantization parameter (QP) clipping operation is applied to an index of a chroma QP table or a mapped chroma QP in the chroma QP table.

[0533] In some embodiments of the method 1800, the rule specifies that a range applicable to the QP clipping operation is from -QpBdOffset to 63, inclusive. In some embodiments of the method 1800, the rule specifies that one or more chroma QP tables including the chroma QP table are included in both a sequence parameter set (SPS) and a picture parameter set (PPS). In some embodiments of the method 1800, the rule specifies that one or more chroma QP tables including the chroma QP table are included in a picture header (PH) or a slice header (SH).

[0534] Figure 19 is a flowchart of an example method 1900 of video processing. Operation 1902 includes, for a conversion between a video comprising video blocks and a bitstream of the video, determining that the bitstream excludes a syntax element that indicates that a chroma adaptive loop filter (ALF) or a cross-component adaptive loop filter (CC-ALF) is used for a current coding tree unit (CTU) to which a video block belongs when a luma ALF is disabled for the current CTU. Operation 1904 includes performing the conversion based on the determining.

[0535] In some embodiments of the method 1900, the chroma ALF or the CC-ALF is inferred to be disabled for the current CTU when the luma ALF is disabled for the current CTU.

[0536] In some embodiments of any one or more of the methods 900-1900, performing the conversion includes encoding the video into a bitstream. In some embodiments of any one or more of the methods 900-1900, performing the conversion includes generating the bitstream from the video, and the method further includes storing the bitstream in a non-transitory computer-readable recording medium. In some embodiments of any one or more of the methods 900-1900, performing the conversion includes decoding the video from the bitstream.

[0537] In some embodiments, a video decoding apparatus includes a processor configured to implement operations of the method(s) 900-1990. In some embodiments, a video encoding apparatus includes a processor configured to implement operations of the method(s) 900-1990. In some embodiments, a computer program product storing computer instructions which, when executed by a processor, cause the processor to implement operations of the method(s) 900-1990. In some embodiments, a non-transitory computer-readable storage medium storing a bitstream generated according to operations of the method(s) 900-1990. In some embodiments, a non-transitory computer-readable storage medium storing instructions causing a processor to implement operations of the method(s) 900-1990. In some embodiments, a method of bitstream generation includes generating a bitstream of a video according to operations of the method(s) 900-1990, and storing the bitstream on a computer-readable program medium. In some embodiments, a method, an apparatus, a bitstream generated according to the disclosed methods or systems described in this document.

[0538] In this document, the term “video processing” can refer to video encoding, video decoding, video compression, or video decompression. For example, during a conversion from a pixel representation of a video to a corresponding bitstream representation, a video compression algorithm can be applied, and vice versa. As defined by the syntax, a bitstream representation of a current video block can for example correspond to bits that are co-located or scattered at different places within the bitstream. For example, a macroblock can be encoded in terms of transformed and coded error residual values and also using bits in headers and other fields in the bitstream. Furthermore, during the conversion, a decoder can parse the bitstream based on the determination, knowing that some fields can or can not be present, as described by the above solutions. Similarly, an encoder can determine to include or not include specific syntax fields, and generate the coded representation accordingly by including the syntax fields or excluding the syntax fields from the coded representation.

[0539] 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 in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of one or more of them, or a combination of one or more of them. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. The propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated for the purpose of encoding information for transmission to suitable receiver apparatus.

[0540] A computer program (which can also be referred to or referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be run on one computer or on multiple computers that are located at one site or distributed across multiple sites and are interconnected by a communication network.

[0541] The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0542] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical, or optical disks, or a computer program product suitable for storing a computer program and data. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0543] Although the patent document contains many details, these should not be construed as limiting the subject matter or the scope of any patent that may issue on this patent document, but as a description of features that are specific to particular embodiments of the specific technology. Certain features described in the context of separate embodiments in this patent document can also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented separately or in any suitable subcombination. Moreover, although features can be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination and the claimed combination can be directed to a subcombination or variation of a subcombination.

[0544] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring such order nor that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0545] Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

Claims

1. A method for processing video data, comprising: The conversion between the video of the first video unit and the bitstream of the video is performed according to the rules. The rule stipulates that, based on the second syntax element included in the sequence parameter set SPS, the first syntax element of the syntax structure indicating whether to disable transform skip residual coding and decoding syntax for the residual samples of the first video unit encoded and decoded in transform skip mode is conditionally included in the strip header SH in the bitstream.

2. The method according to claim 1, wherein, The rule stipulates that the first syntax element included in the SH is encoded and decoded using an n-bit unsigned integer, where n is an integer.

3. The method according to claim 2, wherein, n equals 1.

4. The method according to claim 1, wherein, The second syntax element indicates whether the transform skip mode is enabled for the video unit referencing the SPS.

5. The method according to claim 4, wherein, When the value of the second syntax element indicates that the transform skip mode is disabled for the video unit referencing the SPS, the first syntax element is omitted from the bitstream.

6. The method according to claim 1, wherein, Whether to disable the transform skip residual codec syntax structure for the residual samples of the first video unit is also based on whether dependency quantization is used for the first video unit, and wherein, in the dependency quantization, a set of permissible reconstructed values ​​of the transform coefficients depends on the values ​​of the transform coefficient levels preceding the current transform coefficient level in the reconstructed order.

7. The method according to claim 1, wherein, The rule stipulates that, for the second video unit of the video, when the second video unit is not encoded or decoded in the transform skip mode or when the transform skip residual codec syntax structure is disabled for the residual samples of the second video unit, the non-transform skip residual codec syntax structure is used for the second video unit; otherwise, the transform skip residual codec syntax structure is used for the second video unit.

8. The method according to claim 1, wherein, Performing the conversion includes encoding the video into the bitstream.

9. The method according to claim 1, wherein, Performing the conversion includes decoding the video from the bitstream.

10. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: The conversion between the video of the first video unit and the bitstream of the video is performed according to the rules. in, The rule stipulates that, based on the second syntax element included in the sequence parameter set SPS, the first syntax element of the syntax structure indicating whether to disable transform skip residual coding for residual samples of the first video unit encoded in transform skip mode is conditionally included in the strip header SH in the bitstream.

11. The apparatus according to claim 10, wherein, The rule stipulates that the first syntax element included in the SH is encoded and decoded using an n-bit unsigned integer, where n is an integer; Where n equals 1; The second syntax element indicates whether the transform skip mode is enabled for the video unit referencing the SPS; Wherein, when the value of the second syntax element indicates that the transform skip mode is disabled for the video unit referencing the SPS, the first syntax element is omitted from the bitstream.

12. The apparatus according to claim 10, wherein, Whether to disable the transform skip residual codec syntax structure for the residual samples of the first video unit is also based on whether dependency quantization is used for the first video unit, and wherein, in the dependency quantization, a set of permissible reconstructed values ​​of the transform coefficients depends on the values ​​of the transform coefficient levels preceding the current transform coefficient level in the reconstructed order.

13. The apparatus according to claim 10, wherein, The rule stipulates that, for the second video unit of the video, when the second video unit is not encoded or decoded in the transform skip mode or when the transform skip residual codec syntax structure is disabled for the residual samples of the second video unit, the non-transform skip residual codec syntax structure is used for the second video unit; otherwise, the transform skip residual codec syntax structure is used for the second video unit.

14. A non-transitory computer-readable storage medium for storing instructions, said instructions causing a processor to: The conversion between the video of the first video unit and the bitstream of the video is performed according to the rules. in, The rule stipulates that, based on the second syntax element included in the sequence parameter set SPS, the first syntax element of the syntax structure indicating whether to disable transform skip residual coding for residual samples of the first video unit encoded in transform skip mode is conditionally included in the strip header SH in the bitstream.

15. The non-transitory computer-readable storage medium according to claim 14, wherein, The rule stipulates that the first syntax element included in the SH is encoded and decoded using an n-bit unsigned integer, where n is an integer; Where n equals 1; The second syntax element indicates whether the transform skip mode is enabled for the video unit referencing the SPS; Wherein, when the value of the second syntax element indicates that the transform skip mode is disabled for the video unit referencing the SPS, the first syntax element is omitted from the bitstream.

16. The non-transitory computer-readable storage medium according to claim 14, wherein, Whether to disable the transform skip residual codec syntax structure for the residual samples of the first video unit is also based on whether dependency quantization is used for the first video unit, and wherein, in the dependency quantization, a set of permissible reconstructed values ​​of the transform coefficients depends on the values ​​of the transform coefficient levels preceding the current transform coefficient level in the reconstructed order.

17. The non-transitory computer-readable storage medium according to claim 14, wherein, The rule stipulates that, for the second video unit of the video, when the second video unit is not encoded or decoded in the transform skip mode or when the transform skip residual codec syntax structure is disabled for the residual samples of the second video unit, the non-transform skip residual codec syntax structure is used for the second video unit; otherwise, the transform skip residual codec syntax structure is used for the second video unit.

18. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by a video processing apparatus, wherein, The method includes: According to the rules, a bitstream is generated for the video including the first video unit. The rule stipulates that, based on the second syntax element included in the sequence parameter set SPS, the first syntax element of the syntax structure indicating whether to disable transform skip residual coding and decoding syntax for the residual samples of the first video unit encoded and decoded in transform skip mode is conditionally included in the strip header SH in the bitstream.

19. The non-transitory computer-readable recording medium according to claim 18, wherein, The rule stipulates that the first syntax element included in the SH is encoded and decoded using an n-bit unsigned integer, where n is an integer; Where n equals 1; The second syntax element indicates whether the transform skip mode is enabled for the video unit referencing the SPS; Wherein, when the value of the second syntax element indicates that the transform skip mode is disabled for the video unit referencing the SPS, the first syntax element is omitted from the bitstream.

20. The non-transitory computer-readable recording medium according to claim 18, wherein, Whether to disable the transform skip residual codec syntax structure for the residual samples of the first video unit is also based on whether dependency quantization is used for the first video unit, and wherein, in the dependency quantization, a set of permissible reconstructed values ​​of the transform coefficients depends on the values ​​of the transform coefficient levels preceding the current transform coefficient level in the reconstruction order; and The rule stipulates that, for the second video unit of the video, when the second video unit is not encoded or decoded in the transform skip mode or the transform skip residual codec syntax structure is disabled for the residual samples of the second video unit, the non-transform skip residual codec syntax structure is used for the second video unit; otherwise, the transform skip residual codec syntax structure is used for the second video unit.

21. A method for storing a bitstream of video, comprising: According to the rules, the video bitstream includes the first video unit; and The bitstream is stored in a non-transitory computer-readable recording medium. in, The rule stipulates that, based on the second syntax element included in the sequence parameter set SPS, the first syntax element of the syntax structure indicating whether to disable transform skip residual coding for residual samples of the first video unit encoded in transform skip mode is conditionally included in the strip header SH in the bitstream.

Citation Information

Patent Citations

  • Method and apparatus for encoding / decoding image

    CN105684442A

  • Residual colour transform signalled at sequence level for specific coding modes

    US20160100175A1