Residual coding for transforming skipped blocks

JP7632804B2Active Publication Date: 2025-02-19DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023179454
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-08-20
Filing Date
2023-10-18
Publication Date
2025-02-19
Estimated Expiration
2040-08-20

Smart Images

  • Figure 0007632804000029
    Figure 0007632804000029
  • Figure 0007632804000030
    Figure 0007632804000030
  • Figure 0007632804000031
    Figure 0007632804000031
Patent Text Reader

Abstract

To provide devices, systems and methods related to video coding and decoding that uses a transform-skip block coding tool.SOLUTION: A video processing method includes determining, for a conversion between a current block of a video and a bitstream representation of the video, whether to enable a level mapping operation or a level remapping operation based on a rule. The level mapping operation or the level remapping operation includes changing between a first representation of a residual coefficient of the current block and a second representation of the residual coefficient of the current block based on neighboring residual coefficients of the residual coefficient. The method also includes performing the conversion by selectively using the level mapping operation or the level remapping operation based on the determination.SELECTED DRAWING: Figure 23
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a divisional application of Japanese Patent Application No. 2022-510897, which is based on International Patent Application No. PCT / CN2020 / 110150 filed on August 20, 2020, which claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 101608 filed on August 20, 2019. All of the foregoing patent applications are incorporated herein by reference in their entirety.

[0002] This patent document relates to video coding techniques, devices and systems. [Background technology]

[0003] Despite advances in video compression, digital video still accounts for the largest bandwidth usage on the Internet and other digital communications networks, and the bandwidth demands for digital video usage are expected to continue to increase as the number of connected user devices capable of receiving and displaying video grows. Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video coding, and in particular, video coding and decoding using transform skip block coding tools, are disclosed.

[0005] In one exemplary aspect, a method of video processing is disclosed, the method including: determining whether to enable a level mapping or level remapping operation based on a rule for a conversion between a current block of video and a bitstream representation of the video, the level mapping or level remapping operation including a change between a first representation of residual coefficients of the current block and a second representation of residual coefficients of the current block based on neighboring residual coefficients of the residual coefficients; and performing the conversion using selectively the level mapping or level remapping operation based on the determination.

[0006] In another exemplary aspect, a method of video processing is disclosed, comprising: determining, based on a rule, one or more previously decoded coefficients to be used as predictors during a level mapping or remapping operation, the level mapping or remapping operation including changing between a first representation of residual coefficients and a second representation of residual coefficients of a current block based on neighboring residual coefficients of the residual coefficients, the one or more previously decoded coefficients being used according to a decoding order or a scanning order; and performing a conversion between the current block of video and a bitstream representation of the video using the one or more previously decoded coefficients.

[0007] In another example aspect, a method of video processing is disclosed that includes performing a conversion between a current block of video and a bitstream representation of the video, where the bitstream representation complies with a format rule that specifies including a syntax element in the bitstream to indicate that an absolute value of a subset of coefficients of a video unit of the current block is greater than M, where M is an integer.

[0008] In another exemplary aspect, a method of video processing is disclosed that includes determining whether a condition associated with enabling a level recalculation for a conversion between a current block of video and a bitstream representation is satisfied, and performing a conversion in which the level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion.

[0009] In another exemplary aspect, another method of video processing is disclosed, the method including the steps of: determining whether a condition is met for performing a level recalculation for a conversion between a current block of video and a bitstream representation, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion; determining, based on a rule, one or more decoded coefficients to be used as predictors during the level recalculation; and performing the conversion using the one or more decoded coefficients.

[0010] In another exemplary aspect, another method of video processing is disclosed, for converting between a current block of video and a coded representation, the method includes determining whether a subset of absolute coefficients of a video unit corresponding to the current block are all greater than M, where M is an integer, and performing the conversion based on the determination.

[0011] In another exemplary aspect, another method of video processing is disclosed, the method including: determining whether a rule related to enabling level recalculation is satisfied for a conversion between a current block of video and a bitstream representation, the conversion using a block differential pulse code modulation (BDPCM) coding tool; and performing the conversion in which level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion.

[0012] In another exemplary aspect, another method of video processing is disclosed, the method including: determining whether a rule associated with enabling level recalculation is satisfied for a conversion between a current block of video and a bitstream representation, the conversion being based on a palette coding mode; and performing the conversion in which level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of a palette index or an escape symbol and a second representation of the palette index or the escape symbol during the conversion.

[0013] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining that a conversion between a current block and a bitstream representation of the current block is based on a transform skip mode that skips a transform operation on coefficients of the current block; determining a context model for the conversion based on the coefficients and a rule; and performing the conversion using the transform skip mode and based on the context model.

[0014] In yet another representative aspect, the above method is embodied in the form of processor executable code and stored on a computer readable program medium.

[0015] In yet another representative aspect, an apparatus configured or operable to perform the above method is disclosed. The apparatus may include a processor programmed to implement the method.

[0016] In yet another exemplary aspect, a video decoder device is capable of implementing the methods described herein.

[0017] These and other aspects and features of the disclosed technology are explained in more detail in the drawings, description, and claims. [Brief description of the drawings]

[0018] [Figure 1] FIG. 2 is a block diagram of an exemplary video encoder implementation. [Diagram 2] FIG. 1 is a diagram showing an example of a quadratic transformation of JME (Joint Exploration Model). [Diagram 3] FIG. 1 illustrates an exemplary or reduced quadratic transform (RST). [Figure 4] FIG. 2 illustrates an example of forward and inverse contractive transformation. [Diagram 5] FIG. 13 shows an example of a forward RST 8×8 process using a 16×48 matrix. [Figure 6] FIG. 1 is a diagram of sub-block transform modes SBT-V and SBT-H. [Figure 7] FIG. 13 shows a diagonal upright scan order (e.g., 4×4 as CG). [Figure 8] FIG. 13 shows an example diagonal upright scan of an 8x8 block (CG size: 4x4). [Figure 9] FIG. 1 is a diagram of a template used to select a probabilistic model. [Figure 10] FIG. 1 is a diagram of two scalar quantizers used in the proposed approach of dependent quantization. [Figure 11] FIG. 13 shows an example of state transitions and quantizer selection for the proposed dependent quantization. [Figure 12]1 shows an example of a current coefficient value X, an adjacent left coefficient value X0, and an adjacent above coefficient value X1. [Figure 13] FIG. 2 is a diagram showing an example of a block coded in palette mode. [Figure 14] FIG. 1 illustrates the use of a palette predictor to inform palette entries. [Figure 15] Figure 1 shows an example of horizontal and vertical traverse scans. [Figure 16] FIG. 13 is a diagram illustrating an example of coding of a palette index. [Figure 17] FIG. 1 is a block diagram of an exemplary implementation of a hardware platform for video processing. [Figure 18] 1 is a flowchart of an exemplary method of video processing. [Figure 19] FIG. 2 is a block diagram illustrating an example of a video decoder. [Figure 20] FIG. 1 is a block diagram illustrating an example video processing system in which various techniques disclosed herein may be implemented. [Figure 21] FIG. 1 is a block diagram illustrating an example video coding system that can utilize the techniques of this disclosure. [Figure 22] FIG. 2 is a block diagram illustrating an example of a video encoder. [Figure 23] 1 is a flowchart of an exemplary method of video processing. [Figure 24] 1 is a flowchart of an exemplary method of video processing. [Diagram 25] 1 is a flowchart of an exemplary method of video processing. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] Embodiments of the disclosed technology can be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve compression performance. Paragraph headings are used in this document to enhance readability of the description and are not intended to limit the discussion or embodiments (and / or implementations) to only the respective paragraphs.

[0020] 1. Overview This document relates to image / video coding technologies, specifically residual coding for image / video coding. The techniques can be applied to existing video coding standards such as HEVC or standards to be finalized (Versatile Video Coding), and also to future video coding standards or video codecs.

[0021] 2. Initial discussion Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created the H.262 / MPEG-2 Video and H.264 / MPEG-4 AVC (Advanced Video Coding) and H.265 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding structure in which temporal prediction and transform coding are utilized. In order to explore future video coding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, many new methods have been adopted by JVET and incorporated into a reference software named JEM (Joint Exploration Model). In April 2018, the Joint Video Experts Team (JVET) of VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established and is working on the VVC standard, which aims to achieve a 50% bitrate reduction compared to HEVC.

[0022] The latest version of the VVC draft, i.e. Versatile Video Coding (Committee Draft), can be found at: http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 15_Gothenburg / wg11 / JVET-O2001-v14.zip

[0023] The latest reference software for VVC, named VTM, can be found at: https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-5.0

[0024] 2.1. Typical video codec coding flow Figure 1 shows an example of an encoder block diagram for VVC, which includes three in-loop filtering blocks: Deblocking Filter (DF), Sample Adaptive Offset (SAO), and ALF. Unlike DF, which uses a predefined filter, SAO and ALF utilize the original samples of the current picture, add an offset, and apply a Finite Impulse Response (FIR) filter to reduce the mean square error between the original and reconstructed samples, with coded side information informing the offset and filter coefficients. The ALF is the last processing stage for each picture and can be seen as a tool that tries to catch and correct artifacts created by previous stages.

[0025] 2.2. Transform Coding in VVC 2.2.1. VVC Multiple Transformation Set (MTS) 2.2.1.1 Explicit Multiple Transformation Sets (MTS) VTM4 enables transforms with large block sizes up to 64x64 in size, which is primarily useful for high resolution videos, e.g., 1080p and 4K sequences. For transform blocks with size (width or height, or both width and height) equal to 64, high frequency transform coefficients are zeroed out, so that only low frequency coefficients are kept. For example, for an MxN transform block, where M is the block width and N is the block height, only the left 32 columns of transform coefficients are kept when M is equal to 64. Similarly, only the top 32 rows of transform coefficients are kept when N is equal to 64. When using transform skip mode for large blocks, the entire block is used without zeroing values.

[0026] In addition to the DCT-II adopted in HEVC, a Multiple Transform Selection (MTS) scheme is used for residual coding of both inter-coded and intra-coded blocks. The MTS scheme uses multiple transforms selected from DCT8 / DST7. The newly introduced transform matrices are DST-VII and DCT-VIII. Table 1 below shows the selected DST / DCT basis functions. [Table 1]

[0027] To maintain the orthogonality of the transform matrices, they are quantized more precisely than those of HEVC: after horizontal and vertical transformations, all coefficients need to be 10 bits in order to keep intermediate values ​​of the transformed coefficients within the 16-bit range.

[0028] To control the MTS scheme, separate enable flags are specified for intra and inter at the SPS level, respectively. When MTS is enabled at the SPS, a CU level flag is signaled to indicate whether MTS is applied or not. Here, MTS is only applied to luma (luminance). The MTS CU level flag is signaled if the following conditions are met: - Both width and height are less than or equal to 32 - CBF flag equals 1

[0029] If the MTS CU flag is equal to zero, then DCT2 is applied in both directions. However, if the MTS CU flag is equal to one, then two other flags are additionally signaled to indicate the transform type in the horizontal direction and vertical direction, respectively. The mapping table of transform and signaling is shown in Table 2. Regarding the precision of the transform matrix, an 8-bit linear transform core is used. Therefore, all transform cores used in HEVC remain the same, including 4-point DCT2 and DST-7, 8-point, 16-point and 32-point DCT2. Also, other transform cores, including 64-point DCT2, 4-point DCT-8, 8-point, 16-point, 32-point DST-7 and DCT-8, use 8-bit linear transform cores. [Table 2]

[0030] To reduce the complexity of large sizes of DST-7 and DCT-8, the high frequency transform coefficients are zeroed in DST-7 and DCT-8 blocks whose size (width or height, or both width and height) is equal to 32. Only the coefficients in the 16x16 low frequency region are retained.

[0031] In addition to the cases where different transforms are applied, VVC also supports a mode called Transform Skip (TS), which is similar to the TS concept in HEVC. TS is treated as a special case of MTS.

[0032] 2.2.2. Reduced Quadratic Transform (RST) proposed in JVET-N0193 2.2.2.1. JEM Non-separable Quadratic Transformation (NSST) In JEM, quadratic transforms are applied between the forward linear transform and the quantization (at the encoder) and between the inverse quantization and the inverse linear transform (at the decoder side). As shown in Figure 2, a 4x4 (or 8x8) quadratic transform is performed depending on the block size. For example, a 4x4 quadratic transform is applied to small blocks (i.e., min(width,height)<8) and an 8x8 quadratic transform is applied to large blocks (i.e., min(width,height)>4) for every 8x8 block.

[0033] The application of a non-separable transformation is illustrated as follows using the example input:

number

number

[0034] A non-separable transformation is F → =T X → where F → denotes the transformation coefficient vector, and T is the 16×16 transformation matrix. Then, the 16×1 coefficient vector F → are reorganized as 4x4 blocks using the scan order of the block (horizontal, vertical, or diagonal). Coefficients with lower indices are placed in 4x4 coefficient blocks using lower scan indices. There are 35 transform sets in total, with three non-separable transform matrices (kernels) used per transform set. The mapping from intra prediction modes to transform sets is predefined. For each transform set, the selected non-separable secondary transform (NSST) candidate is further specified by an explicitly signaled secondary transform index. The index is signaled in the bitstream once per intra CU after the transform coefficients.

[0035] 2.2.2.2. Reduced Quadratic Transformation (RST) of JVET-N0193 RST (also known as LFNST (Low Frequency Non-Separable Transform)) was introduced in JVET-K0099, and the mapping of four transform sets (not 35 transform sets) was introduced in JVET-L0133. In this JVET-N0193, 16×64 (further reduced to 16×48) and 16×16 matrices are adopted. For notation convenience, the 16×64 (reduced to 16×48) transform is shown as RST8×8, and the 16×16 transform is shown as RST4×4. Figure 3 shows an example of RST.

[0036] 2.2.2.2.1. RST Calculation The main idea of the reduction transform (RT) is to map an N-dimensional vector to an R-dimensional vector in a different space, where R / N (R < N) is the reduction factor.

[0037] The RT matrix is an R×N matrix as follows.

Equation

[0038] Here, the R rows of the transform are the R bases in the N-dimensional space. The inverse transform matrix of RT is the transpose of its forward transform. The forward and inverse RTs are shown in Figure 4.

[0039] In this contribution, RST8×8 with a reduction factor of 4 (1 / 4 size) is applied. Therefore, instead of the conventional 64×64 non-separable transform matrix size of 8×8, a 16×64 direct matrix is used. In other words, a 64×16 invert RST matrix is used on the decoder side to generate the core (primary) transform coefficients in the upper left region of 8×8. Since the forward RST8×8 uses a 16×64 (or 8×64 for an 8×8 block) matrix, it generates non-zero coefficients only in the upper left 4×4 region within a given 8×8 region. In other words, when RST is applied, then the coefficients in the 8×8 region excluding the upper left 4×4 region become all zeros. In the case of RST4×4, a 16×16 (or 8×16 for a 4×4 block) direct matrix multiplication is applied.

[0040] Inverted RST is conditionally applied if the following two conditions are met: - Block size is greater than or equal to a given threshold (W>=4&&H>=4) - Conversion skip mode flag is equal to zero

[0041] If both the width (W) and height (H) of the transform coefficient block are greater than 4, then RST8×8 is applied to the top-left 8×8 region of the transform coefficient block. Otherwise, RST4×4 is applied to the top-left min(8,W)×min(8,H) region of the transform coefficient block.

[0042] If the RST index is equal to 0, then the RST is not applied. Otherwise, the RST is applied and the kernel is selected using the RST index. The method of selecting the RST and the coding of the RST index are described later.

[0043] Furthermore, RST applies to intra CUs, both intra and inter slices, and both luma and chroma. When dual tree is enabled, RST indexes for luma and chroma are signaled separately. In the inter slice case (dual tree is disabled), a single RST index is signaled and used for both luma and chroma.

[0044] RST Restrictions When ISP mode is selected, RST is disabled and the RST index is not signaled because the performance improvement was small even if RST was applied to all feasible partition blocks. Furthermore, disabling RST for ISP predicted residuals may reduce the coding complexity.

[0045] RST Selection The RST matrix is ​​selected from four transform sets, each of which consists of two transforms. Which transform set is applied is determined from the intra prediction mode as follows: 1) If any of the three CCLM modes are indicated, conversion set 0 is selected. 2) Otherwise, the selection of the transformation set is performed according to Table 3. [Table 3]

[0046] The index for accessing the table, denoted as IntraPredMode, has a range of [-14, 83], which are the transformed mode indexes used for wide-angle intra prediction.

[0047] RST matrix with reduced dimensions As a further simplification, a 16×48 matrix is ​​applied instead of 16×64 with the same transform set configuration, and each matrix takes 48 input data from three 4×4 blocks in the top-left 8×8 block excluding the bottom-right 4×4 block (Figure 5).

[0048] FIG. 5 shows an example of a forward RST8×8 process using a 16×48 matrix.

[0049] 2.2.3. Subblock Transformation For inter predicted CUs with cu_cbf equal to 1, cu_sbt_flag may be signaled to indicate whether the entire residual block or a portion of the residual block is decoded. In the former case, the inter MTS information is further analyzed to determine the transform type of the CU. In the latter case (i.e., when SBT is enabled), a portion of the residual block is coded with an estimated adaptive transform and other portions of the residual block are zeroed. SBT does not apply to combinations of inter-intra and triangular prediction modes.

[0050] In the sub-block transform, the position-dependent transform is applied to the luma transform blocks of SBT-V and SBT-H (chroma TB that always uses DCT-2). The two positions of SBT-H and SBT-V are associated with different core transforms. More specifically, the horizontal and vertical transforms of each SBT position are specified in FIG. 6. For example, the horizontal and vertical transforms of SBT-V position 0 are DCT-8 and DST-7, respectively. If one side of the residual TU is greater than 32, the corresponding transform is set as DCT-2. Thus, the sub-block transform jointly specifies the TU tiling, cbf, and horizontal and vertical transforms of the residual block, which can be considered as a syntax shortcut when the main residual of the block is on one side of the block.

[0051] FIG. 6 is a diagram of sub-block transform modes SBT-V and SBT-H.

[0052] 2.2.4. Quantized Residual Domain Block Differential Pulse Code Modulation Coding (QR-BDPCM) A variation of BDPCM in HEVC, called quantized residual domain BDPCM (hereafter denoted as QR-BDPCM), is used in VVC. Unlike BDPCM, intra prediction is performed on the whole block by copying samples in the prediction direction (horizontal or vertical prediction) as in intra prediction. The residual is quantized and the delta between the quantized residual and the quantized value of its predictor (horizontal or vertical) is coded.

[0053] For a block of size M (width) × N (height), r i,j , 0<=i<=M-1, 0<=j<=N-1 be the prediction residual after performing intra prediction horizontally (copying the left neighboring pixel values ​​row by row across the prediction block) or vertically (copying the top neighboring row into each row of the prediction block) using unfiltered samples from the above or left block boundary samples. i,j ), 0<=i<=M-1, 0<=j<=N-1 is the residual r i,jLet denote the quantized version of , where the residual is the difference between the original block values ​​and the predicted block values. Then, block DPCM is applied to the quantized residual samples, resulting in an element r ~ i,j A modified M×N array R with ~ is generated. When the vertical BDPCM is signaled:

number

[0054] For horizontal prediction, a similar rule applies and the remaining quantized samples are obtained as follows:

number

[0055] The remaining quantized samples r ~ i,j is transmitted to the decoder.

[0056] At the decoder side, the above calculation is reversed to give Q(r i,j ), 0<=i<=M-1, 0<=j<=N-1 are generated.

number

[0057] In the horizontal case,

number

[0058] Inverse quantized residual Q -1 (Q(r i,j ) is added to the intrablock prediction to generate the reconstructed sample value.

[0059] QR-BDPCM always uses transform skip.

[0060] 2.3. Entropy coding of coefficients 2.3.1. Coefficient coding for transformed blocks In HEVC, the transform coefficients of a coding block are coded using non-overlapping coefficient groups (CGs, or sub-blocks), where each CG contains coefficients for a 4x4 block of the coding block. The CGs within a coding block, and the transform coefficients within a CG, are coded according to a predefined scan order.

[0061] The CG in a coding block and the transform coefficients within the CG are coded according to a predefined scan order. Both the CG and the coefficients within the CG follow a diagonal up-right scan order. Examples of 4x4 block and 8x8 scan orders are shown in Figures 7 and 8, respectively.

[0062] FIG. 7 shows a diagonal upright scan order (e.g., 4×4 as CG).

[0063] FIG. 8 shows the diagonal upright scan of an example 8×8 block (CG size: 4×4).

[0064] Note that the coding order is the reverse scan order (i.e., decoding from CG3 to CG0 in Figure 8), and when decoding one block, the coordinates of the last non-zero coefficient are decoded first.

[0065] The coding of transform coefficient levels of a CG containing at least one non-zero transform coefficient may be separated into multiple scan paths. In VVC3, for each CG, normal coded bins and bypass coded bins are separated in coding order. First, all normal coded bins of a subblock are transmitted, and then the bypass coded bins are transmitted. The transform coefficient levels of a subblock are coded as follows when passing through five scan positions: Pass 1: The codings of significance (sig_flag), the greater 1 flag (gt1_flag), the parity (par_level_flag), and the greater 2 flag (gt2_flag) are processed in coding order. If sig_flag is equal to 1, then gt1_flag is coded first (which specifies whether the absolute level is greater than 1). If gt1_flag is equal to 1, then par_flag is coded additionally (which specifies the parity of the absolute level minus 2). Pass 2: The remaining absolute level (residue) coding is processed for all scan positions where gt2_flag is equal to 1 or gt1_flag is equal to 1. Non-binary syntax elements are binarized with a Golomb-Rice code and the resulting bins are coded in the bypass mode of the arithmetic coding engine. Pass 3: The absolute levels (absLevel) of coefficients whose sig_flag was not coded in the first pass (because the limit of the normal coding bins was reached) are fully coded in the bypass mode of the arithmetic coding engine using Golomb-Rice codes. Pass 4: Coding of the sign (sign_flag) of all scan positions where sig_coeff_flag is equal to 1.

[0066] For 4x4 sub-blocks, no more than 32 normal coded bins (sig_flag, par_flag, gt1_flag, and gt2_flag) are guaranteed to be coded or decoded. For 2x2 chroma sub-blocks, the number of normal coded bins is limited to 8.

[0067] The Rice parameter (ricePar) for coding the rest of the non-binary syntax elements (in pass 3) is derived similarly to HEVC. At the beginning of each subblock, ricePar is set equal to 0. After coding the rest of the syntax elements, the Rice parameter is modified according to a predefined formula. For coding the non-binary syntax element absLevel (pass 4), the sum of the absolute values ​​sumAbs of the local template is determined. The variables ricePar and posZero are determined based on the dependent quantization by table lookup and sumAbs. The intermediate variable codeValue is derived as follows: - If absLevel[k] is equal to 0, then codeValue is set equal to posZero. - Otherwise, if absLevel[k] is less than or equal to posZero, then codeValue is set equal to absLevel[k]-1. - Otherwise (if absLevel[k] is greater than posZero), codeValue is set equal to absLevel[k]. The value of codeValue is coded using a Golomb-Rice code with Rice parameters ricePar.

[0068] 2.3.1.1. Context modeling for coefficient coding The choice of the probability model for syntax elements related to the absolute values ​​of the transform coefficient levels depends on the values ​​of the absolute levels or partially reconstructed absolute levels in the local neighborhood. The template used is shown in FIG.

[0069] Figure 9 shows a diagram of the template used to select the probabilistic model. The black box indicates the current scan position, and the boxes with patterns represent the local neighbors that are used.

[0070] The selected probability model depends on the absolute levels (or partially reconstructed absolute levels) of the local neighbors and the sum of the number of absolute levels of the local neighbors greater than 0 (given by the number of sig_coeff_flags equal to 1). The context modeling and binarization process depends on the following measures for the local neighbors: · numSig: number of non-zero levels of local neighbors; · sumAbs1: sum of absolute levels (absLevel1) partially reconstructed after the first pass of local neighbors; · sumAbs: sum of reconstructed absolute levels of local neighbors; Diagonal position (d): The sum of the horizontal and vertical coordinates of the current scan position within the transformation block.

[0071] Based on the values ​​of numSig, sumAbs1, and d, a probability model for coding sig_flag, par_flag, gt1_flag, and gt2_flag is selected. The Rice parameters for binarizing abs_remainder are selected based on the values ​​of sumAbs and numSig.

[0072] 2.3.1.2. Dependent Quantization (DQ) Moreover, the same HEVC scalar quantization is used in a new concept called dependent scale quantization. Dependent scalar quantization refers to an approach where the set of allowable reconstructed values ​​of a transform coefficient depends on the value of the transform coefficient level preceding the current transform coefficient level in the reconstruction order. The main effect of this approach is that allowable reconstructed vectors are densely packed in an N-dimensional vector space (N represents the number of transform coefficients in a transform block) compared to the traditional independent scalar quantization used in HEVC. That is, for a given average number of allowable reconstructed vectors per N-dimensional unit volume, the average distortion between the input vector and the nearest reconstructed vector is reduced. The dependent scalar quantization approach is realized by (a) prescribing two scalar quantizers at different reconstruction levels and (b) prescribing a process of switching between the two scalar quantizers.

[0073] FIG. 10 is an illustration of the two scalar quantizers used in the proposed approach of dependent quantization.

[0074] The two scalar quantizers used are denoted by Q0 and Q1 and are shown in Figure 10. The position of the available reconstruction levels is uniquely specified by the quantization step size Δ. The scalar quantizer used (Q0 or Q1) is not explicitly signaled in the bitstream. Instead, the quantizer used for the current transform coefficient is determined by the parity of the transform coefficient level that precedes the current transform coefficient in the coding / reconstruction order.

[0075] FIG. 11 shows an example of state transitions and quantizer selection for the proposed dependent quantization.

[0076] As shown in FIG. 11, the switching between the two scalar quantizers (Q0 and Q1) is realized via a state machine containing four states. The state can take four different values: 0, 1, 2, and 3, which is uniquely determined by the parity of the transform coefficient level preceding the current transform coefficient in the coding / reconstruction order. At the start of the inverse quantization of a transform block, the state is set to 0. The transform coefficients are reconstructed in scan order (i.e., in the same order as they are entropy decoded). After the current transform coefficient is reconstructed, the state is updated as shown in FIG. 11, where k denotes the value of the transform coefficient level.

[0077] 2.3.2. Coefficient coding for TS-coded blocks and QR-BDPCM-coded blocks QR-BDPCM follows the context modeling method for TS coded blocks.

[0078] 2.3.2.1. Level Mapping and Remapping When RDPCM is not applied to the current coding unit, the absolute coefficient level, absCoeffLevel, is mapped to a modified level that is coded by the following method, which depends on the values ​​of the quantized residual samples to the left and above the current residual sample: Let X0 denote the absolute coefficient level to the left of the current coefficient, and X1 denote the absolute coefficient level of the coefficient above. To represent a coefficient with absolute coefficient level absCoeff, the mapped absCoeffMod is coded, which is derived as follows: Level mapping on the encoder side, absCoeff is the quantized absolute coefficient and absCoeffMod is the quantized absolute coefficient sent in the bitstream.

number

number

[0079] Furthermore, the context derivation of abs_level_gt1_flag in VTM5.0 is replaced by the following method that utilizes information of the above and left adjacent coefficients (X0 and X1 in FIG. 12): If RDPCM is not applied to the current coding unit, context offset 0 is used if both X0 and X1 are zero, context offset 1 is used if only one of the two adjacent coefficients is non-zero, and context offset 2 is used if both X0 and X1 are non-zero. If RDPCM is applied to the current coding unit, context offset 3 is used.

[0080] 2.3.2.2. Code Context Modeling The sign coding context derivation in VTM5.0 is replaced with the following method, which uses the sign information of the above adjacent coefficient and the left adjacent coefficient to derive the sign coding context offset.

[0081] FIG. 12 shows an example of a current coefficient value X, an adjacent left coefficient value X0, and an adjacent above coefficient value X1.

[0082] As shown in Figure 12, X0 is the left neighboring coefficient value and X1 is the above neighboring coefficient value. If RDPCM is not applied to the current coding unit: if both X0 and X1 are zero or non-zero but have opposite signs, context offset 0 is used, if both X0 and X1 are non-negative, context offset 1 is used, otherwise context offset 2 is used. If RDPCM is applied to the current coding unit: if both X0 and X1 are zero or non-zero but have opposite signs, context offset 3 is used, if both X0 and X1 are non-negative, context offset 4 is used, otherwise context offset 5 is used. This can be summarized by the following table: [Table 4]

[0083] 2.3.2.3. Coding pass Modified transform coefficient level coding of the TS residual. Multiple passes are applied to code each CG when it contains non-zero coefficients. · 1st pass: Optionally encode the greater than 0 flag (sig_coeff_flag), the sign flag (coeff_sign_flag), the greater than 1 flag (abs_level_gtx_flag[0]), and the parity flag (par_level_flag). 2nd to 5th passes: In the jth pass, code flags (abs_level_gtx_flag[j-1]) that are greater than (2*j) 6th pass: Code the remainder (abs_remainder) of the coefficient magnitudes (magnitude).

[0084] 2.3.2.4. Summary of changes compared to non-TS residual coding Compared with the normal residual coding case, the residual coding of TS includes the following changes: 1) no signaling of last x / y position, 2) coded_sub_block_flag for all sub-blocks except the last one, if all previous flags are equal to 0; 3) sig_coeff_flag context modeling using the reduced template; 4) abs_level_gtX_flag[0] and par_level_flag single-context model; 5) Context modeling of sign flags, additional flags greater than 5, 7, and 9; 6) Derivation of modified Rice parameters for the remaining binarization process; 7) Number of context-coded bins per sample, with a limit of two bins per sample in a block.

[0085] 2.3.2.5. Syntax and Semantics 7.3.8.10 Conversion unit syntax [Table 5] TIFF0007632804000015.tif1831707.3.8.11 Residual coding syntax [Table 6] TIFF0007632804000017.tif254166TIFF0007632804000018.tif244166TIFF0007632804000019.tif254166The number of context coded bins is limited to no more than 2 bins per sample for each CG. [Table 7] TIFF0007632804000021.tif232168

[0086] 2.4. HEVC Screen Content Coding Extensions (HEVC-SCC) Palette Mode 2.4.1. Palette Mode Concept The basic idea behind the palette mode is that pixels in a CU are represented by a small set of representative color values. This set is called the palette. It is also possible to indicate samples that are outside the palette by signaling an escape symbol followed by a (possibly quantized) component value. This kind of pixel is called an escape pixel. The palette mode is illustrated in FIG. 13. As shown in FIG. 13, for each pixel with three color components (luma and two chroma components), an index into the palette is created and the block can be reconstructed based on the resulting values ​​in the palette. In FIG. 13, blocks marked with "x" indicate that those regions of the input block have sample values ​​between palette values ​​0 and 1, and blocks marked with "y" indicate that that region of the input block has sample values ​​between palette values ​​3 and 4.

[0087] FIG. 13 shows an example of a block coded in palette mode.

[0088] 2.4.2. Coding Palette Entries For coding of palette entries, a palette predictor is maintained. The maximum size of the palette and the palette predictor are signaled in the SPS. In HEVC-SCC, paltte_predictor_initializer_present_flag is introduced in the PPS. If this flag is 1, an entry for initializing the palette predictor is signaled in the bitstream. The palette predictor is initialized at the beginning of each CTU row, each slice, and each tile. Depending on the value of paltte_predictor_initializer_present_flag, the palette predictor is either reset to 0 or initialized using the palette predictor initialization entry signaled in the PPS. In HEVC-SCC, a palette predictor initializer of size 0 is enabled, and it is now possible to explicitly disable the palette predictor initialization at the PPS level.

[0089] For each entry of the palette predictor, a reuse flag is signaled to indicate whether it is part of the current palette or not. This is shown in Figure 14. The reuse flag is transmitted using run-length coding of zeros. After this, the number of the new palette entry is signaled using an Exponential Golomb (EG) code of degree 0, i.e. EG-0. Finally, the component values ​​of the new palette entry are signaled.

[0090] FIG. 14 illustrates the use of a palette predictor to inform palette entries.

[0091] 2.4.3. Palette index coding Palette indices are coded using a horizontal and vertical traverse scan as shown in Figure 15. The scan order is explicitly signaled in the bitstream using palette_transpose_flag. In the remainder of the subsection, the scan is assumed to be horizontal.

[0092] Figure 15 shows an example of horizontal and vertical traverse scans.

[0093] The palette index is coded using two palette sample modes: 'COPY_LEFT' and 'COPY_ABOVE'. In 'COPY_LEFT' mode the palette index is assigned to the decoded index. In 'COPY_ABOVE' mode the palette index of the sample in the row above is copied. In both 'COPY_LEFT' and 'COPY_ABOVE' modes a running value is signalled which specifies the number of subsequent samples which are coded using the same mode.

[0094] In palette mode, the value of the index of the escape sample is the number of palette entries. Also, the component values ​​of the escape are reported for each escape symbol if the escape symbol is part of a run in 'COPY_LEFT' or 'COPY_ABOVE' modes. The coding of the palette index is shown in Figure 16.

[0095] This syntax order is achieved as follows: First, the number of index values ​​for the CU is signaled. This is followed by the actual index values ​​for the entire CU using truncated binarization coding. Both the number of indices and the index values ​​are coded in bypass mode, which results in index-related bypass bins being grouped together. Next, the palette sample mode (if required) and execution are signaled in an interleaved manner. Finally, the escape component values ​​corresponding to the escape samples for the entire CU are grouped together and coded in bypass mode. The binarization process for the escape samples is third order EG coding, i.e. EG-3.

[0096] After signaling the index value, an additional syntax element, last_run_type_flag, is signaled which, in combination with the index number, removes the need to signal the run value corresponding to the last run in the block.

[0097] In HEVC-SCC, palette mode is also enabled for 4:2:2, 4:2:0, and monochrome chroma formats. The signaling of palette entries and palette indexes is almost the same for all chroma formats. For non-monochrome formats, each palette entry consists of three components. For monochrome formats, each palette entry consists of a single component. For subsampled chroma directions, chroma samples are associated with luma sample indices that are divisible by 2. After reconstructing the palette index of a CU, if only one component is associated with a sample, only the first component of the palette entry is used. The only difference in the signaling is the escape component values. For each escape sample, the number of escape component values ​​signaled may vary depending on the number of components associated with that sample.

[0098] In addition, there is an index adjustment process in palette index coding. When reporting a palette index, the left neighbor index or the above neighbor index must be different from the current index. Therefore, the range of the current palette index can be reduced by 1 by removing one possibility. After that, the index is reported in the binarization process of truncated binarization (TB).

[0099] The text associated with this part is shown below, where CurrPaletteIndex is the current palette index and adjustedRefPaletteIndex is the predicted index. The variables PaletteIndexMap[xC][yC] specify a palette index, which is an index into the array represented by CurrentPaletteEntries. The array indices xC, yC specify the location (xC, yC) of the sample relative to the top-left luma sample of the picture. The value of PaletteIndexMap[xC][yC] must be in the range from 0 to MaxPaletteIndex (inclusive).

[0100] The variable adjustedRefPaletteIndex is derived as follows:

number

[0101] When CopyAboveIndicesFlag[xC][yC] is equal to 0, the variable CurrPaletteIndex is derived as follows:

number

[0102] 2.4.4. VVC Palette Mode 2.4.4.1. Dual Tree Palettes In VVC, since a dual-tree coding structure is used for coding intra-slice, the luma component and the two chroma components may have different palettes and palette indices, and furthermore, the two chroma components share the same palette and palette indices.

[0103] 2.4.4.2. Palettes as Alternative Modes In JVET-N0258 and current VTM, the prediction mode of a coding unit can be MODE_INTRA, MODE_INTER, MODE_IBC, and MODE_PLT. The binarization process of the prediction mode is changed accordingly.

[0104] When IBC is turned off, on an I tile, one first bin is used to indicate whether the current prediction mode is MODE_PLT or not. On a P / B tile, the first bin is used to indicate whether the current prediction mode is MODE_INTRA or not. If not, one additional bin is used to indicate whether the current prediction mode is MODE_PLT or MODE_INTER.

[0105] When IBC is turned on, on an I-tile, the first bin is used to indicate whether the current prediction mode is MODE_IBC. Otherwise, the second bin is used to indicate whether the current prediction mode is MODE_PLT or MODE_INTRA. On a P / B-tile, the first bin is used to indicate whether the current prediction mode is MODE_INTRA. In case of intra mode, the second bin is used to indicate whether the current prediction mode is MODE_PLT or MODE_INTRA. Otherwise, the second bin is used to indicate whether the current prediction mode is MODE_IBC or MODE_INTER.

[0106] 3. Technical Problems Solved by the Embodiments The current design has the following problems: 1. In the current design of level mapping / remapping, the remapping process is always performed, so the decoded coefficients cannot be equal to zero. For example, if the decoded AbsLevelPassX[xC][yC]+abs_remainder[n] is equal to 0, then TransCoeffLevel is reset to −1 according to subclause 7.3.8.11 even if the decoded significance flag is equal to 0. b. On the other hand, such an encoder constraint may be necessary because the mapping process only applies to non-zero coefficients. Otherwise, the same value "1" may be interpreted in different ways, such as a coefficient equal to 0 or equal to the predictor. 2. The context modeling of the sign flag / greater than 1 flag depends on two spatial neighbors. However, in the case of different coding blocks, the correlation with respect to the spatial neighbors may be weaker than the blocks adjacent to the current block in the scan order. 3. The coding of the palette index is purely based on information from either the sample above or the sample to the left. The relationships with both the above neighbor and the left neighbor are under-utilized. 4. According to our analysis, the correlations between the current coefficient and adjacent coefficients in various contexts are as follows: [Table 8] As can be seen, the same bin value may be associated with different probabilities under different contexts: when the associated probabilities are relatively low (such as when the context offset is equal to 2), the efficiency of the context-coded bins is also low.

[0107] 4. Exemplary embodiments and techniques The following list of items should be considered as examples to illustrate the general concept. These items should not be interpreted in a narrow sense. Moreover, these items can be combined in any way.

[0108] In the following discussion, a CU may include information related to all three color components with a single tree coding structure, or a CU may include information related only to the luma color component with monochromatic coding, or a CU may include information related only to the luma color component with a dual tree coding structure (e.g., the Y component in a YCbCr format or the G component in a GBR format), or a CU may include information related only to two chroma components with a dual tree coding structure (e.g., the Cb and Cr components in a YCbCr format or the B and R components in a GBR format).

[0109] In the following description, a "block" may refer to a coding unit (CU) or a transform unit (TU) or a coding block (CB) or a transform block (TB). Related to enabling level mapping / remapping 1. Whether to enable the level mapping (encoder side) or level re-mapping (decoder side) process of the decoded residual coefficients may depend on whether the decoded value is not equal to 0 or not. In one example, if the decoded value (e.g., AbsLevelPassX[xC][yC] or sig_coeff_flag[xC][yC] or AbsLevelPassX[xC][yC]+abs_remainder[n]) is equal to 0, the level mapping / remapping process is skipped. b. In one example, the level mapping / remapping process is invoked under the condition that the decoded value (e.g., AbsLevelPassX[xC][yC] or sig_coeff_flag[xC][yC] or AbsLevelPassX[xC][yC]+abs_remainder[n]) is not equal to 0. c. In one example, a conforming bitstream shall satisfy that if the quantization value or the value coded before level mapping is equal to 0, then the coded significance flag (e.g., sig_coeff_flag) must be equal to 0. 2. Whether to enable the level mapping (encoder side) or level remapping (decoder side) process may depend on the decoded residual information of the current block and / or neighboring blocks (adjacent or non-adjacent blocks). In one example, whether to apply level remapping is derived on-the-fly in addition to the condition that the current block is coded in a non-BDPCM TS mode. 3. Whether to enable the level mapping (encoder side) or level remapping (decoder side) process may depend on the side information signaled in the video unit. In one example, a flag may be signaled to indicate whether at least one decoded value should be remapped before being used to reconstruct the current block. b. In one example, a video unit is a CTU (e.g., VPDU) / CTU / CTB / multiple CTUs / multiple CUs / CTU row / tile / brick / slice / picture, sub-picture / sequence / view, etc. c. In one example, whether to enable the proposed method and / or how to enable the proposed method may be signaled by a sequence parameter set / view parameter set / adaptive parameter set / picture parameter set / picture header / slice header / CU / PU / TU / CTU / CTB, etc. 4. Whether to enable the level mapping (encoder side) or level remapping (decoder side) process may depend on the color format / color components. a. For example, the level mapping (encoder side) or level remapping (decoder side) process can only be applied to the luma component and not to the chroma component. b. For example, the level mapping (encoder side) or level remapping (decoder side) process can only be applied to the luma component and not to the chroma component when the color format is 4:2:0. c. For example, the level mapping (encoder side) or level remapping (decoder side) process can chroma process all color components only when the color format is 4:4:4 or when individual color plane coding is used. 5. Whether to enable the level mapping (encoder side) or level remapping (decoder side) process may depend on the block dimensions W×H. a. For example, when W*H>=T1 or W*H>T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. b. For example, when W*H<=T1 or W*H<T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. c. For example, when Min (minimum) (W,H)>=T1 or Min(W,H)>T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. d. For example, when Max (maximum) (W, H) <= T1 or Max (W, H) < T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. e. For example, when Min (W, H) <= T1 or Min (W, H) < T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. f. For example, when Max (W, H) >= T1 or Max (W, H) > T1, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. g. For example, when W >= T1 and H >= T2, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. h. For example, when W <= T1 and H <= T2, the level mapping (encoder side) or level remapping (decoder side) process is not enabled. i. T1 and T2 are integers in the above bullet points. 6. Instead of determining the predictors used in the level mapping / remapping process using two spatially adjacent decoded coefficients (left or above), it is proposed to use one or more decoded coefficients according to the decoding / scan order. a. In one example, the K nearest decoded coefficients are utilized. b. In one example, K of the M (M > K) nearest decoded coefficients are utilized. c. In one example, K can be predefined or notified. d. In one example, K can be derived on-the-fly based on the decoded information. e. In one example, K can depend on the number of already decoded coefficients. i. For example, S coefficients have already been decoded. Next, K is derived as K = Min (S, M), where M is a fixed number such as 2. Related to syntax elements 7. A syntax element may be coded to indicate whether a subset of the absolute coefficients in a video unit are all greater than M, where M is an integer. In one example, a video unit is a coefficient group (CG, e.g., 4x4) / transform block / transform unit / predictive block / coding block. b. In one example, the subsets are defined based on a scan order. i. In one example, the subset may include the first L coefficients according to the forward scan order. ii. In one example, the subset may include the last L coefficients in forward scan order or the first L coefficients in decoding order of the video unit. c. In one example, the subsets are defined based on coordinates. i. In one example, the subset may include coefficients within a rectangular region. ii. In one example, the subset may include coefficients within a square region. d. In one example, the subsets are defined based on the mode information / block size being coded. i. In one example, if the current block is coded with QR-BDPCM or other variance of BDPCM and is vertically predicted, the subset is defined as the top row subset. ii. In one example, if the current block is coded with QR-BDPCM or other distribution of BDPCM and is horizontally predicted, the subset is defined as the leftmost column subset. e. In one example, M is equal to 0, 1, 2, 3, 4, 5. Related to context modeling 8. The level mapping / remapping concept may also be applicable to other non-TS coded blocks (eg, BDPCM coded blocks). a. Alternatively or additionally, the level mapping / remapping process is applied only to the residuals at the specified locations. i. In one example, the defined position may depend on the prediction direction. 1) In one example, for the vertical prediction direction, the residual located in the first row can be mapped / remapped. 2) In one example, for the horizontal prediction direction, the residuals located in the first column can be mapped / remapped. b. Alternatively or additionally, the level mapping / remapping process is applied only to the residuals that are not predictively coded. i. In one example, for the vertical prediction direction, the residual located in the first row may be mapped / remapped. ii. In one example, for the horizontal prediction direction, the residuals located in the first column may be mapped / remapped. 9. A level mapping / remapping process can be used to encode palette indices or escape symbol coding in palette mode. In one example, palette indices may be mapped at the encoder side and remapped at the decoder side based on the maximum value of previously coded palette indices. b. In one example, the mapping and re-mapping process may be invoked for every palette coded block. Alternatively, the processes may be invoked under certain conditions. 10. We propose to use a function f(a0, a1, · · ·,) in the context modeling process, with parameters ai representing the coefficients / palette indices etc. previously coded. In one example, the function f can be defined as a maximum or minimum function. b. The parameters a i can be parameters in a template that covers the current sample / coefficient and some neighbors (near or near). i. In one example, in the case of palette index coding, both the left and above palette indices may be utilized based on the function f to code the index. c. The parameter ai may be a scanning / decoding order parameter for the current sample / coefficient. 11. Instead of using two spatially adjacent decoded coefficients (left or above) for context modeling of coding of sign flags or other syntax elements, we propose to use one or more decoded coefficients according to the decoding / scanning order. In one example, the most recent K (eg, K=2) decoded coefficients are utilized. b. In one example, K decoded coefficients out of the most recent M (M>K) decoded coefficients are utilized. c. In one example, K may be predefined or signaled. d. In one example, K may be derived on the fly based on the decoded information. e. In one example, K may depend on the number of coefficients already decoded. For example, S coefficients have already been decoded. Then, K is derived as K=Min(S,M), where M is a fixed number such as 2. 12. Instead of using two spatially adjacent decoded coefficients (left or above) for context modeling of coding of sign flags or other syntax elements, we propose to use one or more decoded coefficients according to the prediction direction. In one example, for a BDPCM coded block with vertical prediction direction, previously decoded coefficients in the same column may be utilized. b. In one example, for a BDPCM coded block with a horizontal prediction direction, previously decoded coefficients in the same row may be utilized. c. In one example, for a BDPCM coded block with vertical prediction direction, previously decoded coefficients in the same row may be utilized. d. In one example, for BDPCM coded blocks with horizontal prediction direction, previously decoded coefficients in the same column may be utilized. 13. Instead of coding a sign flag with the same binarization process (e.g., “0” indicates a positive value and “1” indicates a negative value), we propose to set the sign value dynamically (i.e., the decoded bin value can be interpreted into different semantics), e.g., based on information from neighboring blocks or based on a selected context. In one example, at the encoder side, the bin value that is coded is based on whether the sign information of the current coefficient is most likely the same as the sign information of the previously coded coefficient. b. In one example, if the selected context represents a majority of neighbors as negative (e.g., two neighbors are checked and both are negative, or one is negative and the other is equal to zero), a decoded bin equal to "1" may indicate a positive value and a "0" may indicate a negative value. i. Alternatively or additionally, if the selected context represents a majority of neighbors as positive (e.g., if two neighbors are checked and both are positive, or one is positive and the other is equal to zero), a decoded bin equal to "0" may indicate a positive value and a "1" may indicate a negative value. c. In one example, if the selected context represents a majority of neighbors as negative (e.g., two neighbors are checked and both are negative, or one is negative and the other is equal to zero), a decoded bin equal to "0" may indicate a positive value and a "1" may indicate a negative value. i. Alternatively or additionally, if the selected context represents a majority of neighbors as positive (e.g., if two neighbors are checked and both are positive, or one is positive and the other is equal to zero), a decoded bin equal to "1" may indicate a positive value and a "0" may indicate a negative value. Common Usage 14. Indications as to whether the proposed method is enabled and / or which bullet points apply can be signaled at video unit level. In one example, a video unit may be a tile / brick / slice / picture / subpicture / sequence / view, etc. b. In one example, whether and / or how to enable the proposed method may be signaled in a sequence parameter set / view parameter set / adaptation parameter set / picture parameter set / picture header / slice header. c. In one example, whether and / or how the suggestion method is enabled may be controlled by other syntax elements, such as one syntax element used to indicate whether the video content is screen content. 15. Whether and / or how the proposed method is effective may depend on coding information such as block dimensions, slice type / picture type / temporal layer index / video content / color components / partitioning tree type / coding mode / transformation information, etc. d. In one example, the proposed method can be applied to blocks with width less than or equal to T1 and height less than or equal to T2. e. In one example, the proposed method can be applied to blocks whose width is less than or equal to T1 or whose height is less than or equal to T2. f. In one example, the proposed method can be applied to blocks whose width x height is equal to or smaller than T3.

[0110] Several embodiments using the above techniques are described for illustrative purposes. 5. Embodiment 5.1.Embodiment #1 This embodiment illustrates an example of whether or not to enable the level remapping process depends on the decoded value, (e.g., AbsLevelPassX[xC][yC] or sig_coeff_flag[xC][yC] or (AbsLevelPassX[xC][yC]+abs_remainder[n])) is not equal to 0. Changes compared to the VVC WD are highlighted in bold italic text. 7.3.8.11 Residual Coding Syntax [Table 9] TIFF0007632804000026.tif254170TIFF0007632804000027.tif246167TIFF0007632804000028.tif254167

[0111] FIG. 17 is a block diagram of a video processing device 1700. The device 1700 may be used to perform one or more of the methods described herein. The device 1700 may be embodied in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1700 may include one or more processors 1702, one or more memories 1704, and video processing hardware 1706. The processor 1702 may be configured to perform one or more methods described herein. The one or more memories 1704 may be used to store data and code used to perform the methods and techniques described herein. The video processing hardware 1706 may be used to perform some of the techniques described herein in a hardware circuit. In some embodiments, the video processing hardware 1706 may be at least partially internal to the processor 1702, for example a graphics co-processor.

[0112] The following solution may be implemented as a preferred solution in some embodiments.

[0113] The following solutions may be implemented in conjunction with the additional techniques described in the items listed in the previous section (eg, item 1).

[0114] 1. A method of video processing (e.g., method 1800 shown in FIG. 18) includes a step of determining (1802) whether a condition associated with enabling level recalculation is met for a conversion between a current block of video and a bitstream representation; and a step of performing (1804) the conversion in which level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion.

[0115] 2. The method of solution 1, where the condition depends on the decoded value of the residual coefficient during conversion.

[0116] 3. The method of solution 2, where the condition is that the decoded value of the residual coefficient is not equal to zero.

[0117] 4. The method of solution 2, where the condition is that the decoded value of the residual coefficient is equal to zero.

[0118] 5. The method of Solution 4, further comprising the step of disabling level recalculation because the condition is not met.

[0119] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (eg, item 2).

[0120] 6. Solution 1 method, where the condition depends on the coding mode of the current block used during conversion.

[0121] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (eg, item 3).

[0122] 7. Solution 1 method, where the condition is based on side information about the current block used for conversion.

[0123] 8. The method of solution 7, wherein the side information includes a syntax element that signals that level recalculation is enabled for the conversion of the current block.

[0124] 9. The method of solution 8, where syntax elements are included at the video region level, and the video region includes the current block.

[0125] 10. The method of Solution 9, wherein the video region includes a single coding tree unit or multiple coding units of a video, or a row or a tile or a brick or a slice or a picture or a subpicture or a sequence or a view.

[0126] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (eg, item 4).

[0127] 11. The method of any one of Solutions 1 to 10, wherein the condition further depends on a color format or color component of the video to which the current block belongs.

[0128] 12. The method of Solution 11, wherein the condition is that level recalculation is enabled for luma blocks and disabled for chroma blocks.

[0129] 13. The method of solution 11 or 12, wherein the condition is that the level recalculation is only valid for 4:4:4 format.

[0130] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (eg, item 5).

[0131] 14.The condition is based on the dimensions of the current block, in any one of solutions 1-13.

[0132] 15. The dimensions of the current block include height H and width W, and the condition is that the current block satisfies W*H>=T1, so level recalculation is disabled, where T1 is an integer, Solution 14 method.

[0133] 16. The dimensions of the current block include height H and width W, and the condition is that the current block satisfies W*H>=T1, so level recalculation is enabled, where T1 is an integer, Solution 14 method.

[0134] 17. The current block dimensions include height H and width W, and the condition is that level recalculation is disabled because min(W,H)>=T1, where T1 is an integer, Solution 14 method.

[0135] 18. The current block dimensions include height H and width W, and the condition is that level recalculation is enabled because min(W,H)>=T1, where T1 is an integer, Solution 14 method.

[0136] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 6).

[0137] 19. A method of video processing, comprising the steps of: determining whether conditions are met for performing a level recalculation for a conversion between a current block of video and a bitstream representation, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion; determining, based on rules, one or more decoded coefficients to be used as predictors during the level recalculation; and performing the conversion using the one or more decoded coefficients.

[0138] 20. The method of solution 19, wherein the rules define the number and / or identity of the one or more decoded coefficients.

[0139] 21. The method of solution 20, wherein the rule specifies using the most recent K decoded coefficients, where K is an integer.

[0140] 22.The method of solution 21, wherein K is signaled via a syntactic element in the coded representation.

[0141] 23.K is a method of solution 21 that is not signaled in a coded representation.

[0142] 24. The method of solution 21, where K can be determined based on the state of the conversion of the current block.

[0143] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 7).

[0144] 25. A method of video processing, for converting between a current block of video and a coded representation, comprising: determining whether a subset of absolute coefficients of a video unit corresponding to the current block are all greater than M, where M is an integer; and performing the conversion based on the determination.

[0145] 26. The method of solution 25, where the video unit is the coefficient group of the current block.

[0146] 27. The method of Solution 25, wherein the video unit is a transform block or a prediction block or a coding block of the current block.

[0147] 28.Any one of solutions 25-27, where the subset is based on the scan order of the coefficients used in the conversion.

[0148] 29.Any one of solutions 25-28, in which the subset is based on the coordinates of the pixels that make up the video unit.

[0149] 30.Any one of solutions 25-29, where the subset is based on the coding mode of the current block.

[0150] 31.The subset is based on the dimensions of the current block. One of solutions 25-30.

[0151] 32.M is zero, any one of solutions 25-31.

[0152] 33.M is 1, any one of solutions 25-31.

[0153] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (eg, item 8).

[0154] 34. A method of video processing, comprising: determining whether a rule relating to enabling level recalculation is satisfied for a conversion between a current block of video and a bitstream representation, the conversion using a block differential pulse code modulation (BDPCM) coding tool; and performing the conversion in which level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block used during the conversion.

[0155] 35. The method of solution 34, wherein the rule dictates that level recalculation is performed only for certain positions of the residual block.

[0156] 36. The method of solution 34, wherein the rules stipulate that the level recalculation is applied only to the unpredictably coded residual coefficients of the current block.

[0157] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 9).

[0158] 37. A method of video processing, comprising: determining whether a rule relating to enabling level recalculation is satisfied for a conversion between a current block of video and a bitstream representation, the conversion being based on a palette coding mode; and performing a conversion in which level recalculation is selectively used based on the determination, the level recalculation including a change between a first representation of a palette index or escape symbol and a second representation of the palette index or escape symbol during the conversion.

[0159] 38. The method of solution 37, wherein the rules further provide that the level recalculation is based on a level recalculation performed for a previous block.

[0160] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 10).

[0161] 39. The method of any one of Solutions 1-38, in which the conversion further uses a context modeling function f(a0,a1,···,), where the parameters ai represent the coefficients of the previously coded palette indices.

[0162] 40. The method of solution 39, in which the order of parameters ai is a function of the scan order used for the current block.

[0163] The following solutions may be implemented in conjunction with the additional techniques described in the items listed in the previous section (e.g., items 11 and 12).

[0164] 41. A method of video processing, comprising the steps of: determining that a conversion between a current block and a bitstream representation of the current block is based on a transform skip mode in which a transform operation on coefficients of the current block is skipped; determining a context model for the conversion based on the coefficients and a rule; and performing the conversion based on the context model using the transform skip mode.

[0165] 42. The method of solution 41, wherein the rules specify using a coefficient decoding or scanning order to determine the context model.

[0166] 43. The method of solution 42, in which the rule dictates that the most recent K coefficients are used.

[0167] 44. The method of solution 41, wherein the rule specifies using the predicted direction of the coefficients to determine the context model.

[0168] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 13).

[0169] 45. The method of any one of solutions 1 to 44, wherein the use of the method is signaled in a coded representation using a syntax element.

[0170] 46. ​​The method of solution 45, wherein the syntax element is included in a sequence parameter set / view parameter set, an adaptation parameter set, a picture parameter set, a picture header, or a slice header.

[0171] The following solutions may be implemented in conjunction with additional techniques described in the items listed in the previous section (e.g., item 14).

[0172] 47. A method according to any one of solutions 1 to 46, wherein the method is selectively used based on coding conditions.

[0173] 48. The method of Solution 47, wherein the coding condition is coding information or block dimension or slice type or picture type or temporal layer index or video content or color component or partitioning tree type or coding mode or transformation information.

[0174] 49. The method of any one of solutions 1-48, wherein converting includes encoding the video into a coded representation.

[0175] 50. The method of any one of Solutions 1-48, wherein converting includes decoding the coded representation to generate video pixel values.

[0176] 51. A video decoding device including a processor configured to implement the methods described in one or more of solutions 1 to 50.

[0177] 52. A video encoding device including a processor configured to implement the methods described in one or more of solutions 1 to 50.

[0178] 53. A computer program product storing computer code which, when executed by a processor, causes the processor to perform a method as described in any one of solutions 1 to 50.

[0179] 54. Any method, apparatus or system described herein.

[0180] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, an encoder uses or implements the tool or mode in processing blocks of video, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, conversion of blocks of video to a bitstream representation of video uses the video processing tool or mode when enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, a decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, conversion of a bitstream representation of video to blocks of video is performed using the video processing tool or mode enabled based on the decision or determination.

[0181] Some embodiments of the disclosed techniques include making a decision or determination to disable a video processing tool or mode. In one example, when the video processing tool or mode is disabled, an encoder does not use the tool or mode in converting blocks of video to a bitstream representation of the video. In another example, when the video processing tool or mode is disabled, a decoder processes the bitstream with the knowledge that the bitstream has not been modified using the video processing tool or mode that was disabled based on the decision or determination.

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

[0183] The video source 112 may include sources such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to the destination device 120 via the I / O interface 116 over the network 130a. The coded video data may also be stored on a storage medium / server 130b for access by the destination device 120.

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

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

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

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

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

[0189] Functional components of the video encoder 200 may include a partition unit 201, a prediction unit 202 (which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206), a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

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

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

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

[0193] The mode selection unit 203 selects one of intra or inter coding modes, for example based on an error result, and provides the resulting intra or inter coded block to the residual generation unit 207 to generate residual block data and to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra and inter prediction (CIIP) modes, where prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 203 may also select the resolution of the motion vector of the block (e.g., sub-pixel or integer pixel precision) in the case of inter prediction.

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

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

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

[0197] In another example, motion estimation unit 204 may perform bidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 to find a reference video block for the current video block and may search reference pictures in list 1 to find another reference video block for the current video block. Motion estimation unit 204 may 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 block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector for the current video block as motion information for the current video block. Motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.

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

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

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

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

[0202] As described 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.

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

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

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

[0206] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block related to the current video block.

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

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

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

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

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

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

[0213] In the example of Figure 19, the video decoder 300 includes an entropy decoding unit 310, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, the video encoder 300 performs a decoding pass that is generally inverse to the encoding pass described with respect to the video encoder 200 (Figure 22).

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

[0215] The motion compensation unit 302 may generate motion compensated blocks, possibly performing the interpolation based on an interpolation filter. An identifier of the interpolation filter used with sub-pixel precision may be included in the syntax element.

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

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

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

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

[0220] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation or vice versa. The bitstream representation, or coded representation, of a current video block may correspond to bits that are co-located at different locations in the bitstream or spread across the bitstream, for example, as specified by a syntax. For example, a video block may be coded in terms of a transform and coded error residual value, and using bits of a header and other fields of the bitstream. Furthermore, during conversion, a decoder may parse the bitstream knowing that some fields may be present or absent based on a decision, as described in the above solution. Similarly, an encoder may generate a coded representation by determining whether a particular syntax field is included or not, and accordingly including or excluding the syntax field from the coded representation.

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

[0222] The system 2000 may include a coding component 2004 that may implement various coding or encoding methods described herein. The coding component 2004 may reduce the average bit rate of the video from the input 2002 to the output of the coding component 2004 to generate a coded representation of the video. Thus, the coding techniques may be referred to as video compression or video transcoding techniques. The output of the coding component 2004 may be stored or transmitted via a connected communication, as represented by component 2006. The stored or communicated bitstream (or coded) representation of the video received at the input 2002 may be used by component 2008 to generate pixel values ​​or displayable video that are sent to the display interface 2010. The process of generating a user-viewable video from the bitstream representation may be referred to as video decompression. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it will be understood that the coding tools or operations are used in an encoder, and that corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.

[0223] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (HBS) or High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces include serial advanced technology attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may be embodied in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0224] FIG. 23 shows a video processing method 2300 including the steps of: determining (2302) whether to enable a level mapping or level remapping operation based on a rule for a conversion between a current block of video and a bitstream representation of the video, where the level mapping or level remapping operation includes a change between a first representation of residual coefficients of the current block and a second representation of residual coefficients of the current block based on neighboring residual coefficients of the residual coefficients; and performing the conversion using selectively the level mapping or level remapping operation based on the determination (2304).

[0225] FIG. 24 shows a video processing method 2400, which includes determining (2402) based on a rule one or more previously decoded coefficients to be used as predictors during a level mapping or level remapping operation, where the level mapping or level remapping operation includes a change between a first representation of residual coefficients and a second representation of residual coefficients of the current block based on neighboring residual coefficients of the residual coefficients, and where the one or more previously decoded coefficients are used according to a decoding order or scan order; and performing (2404) a conversion between the current block of video and a bitstream representation of the video using the one or more previously decoded coefficients.

[0226] FIG. 25 shows a video processing method 2500, which includes a step of performing (2502) a conversion between a current block of video and a bitstream representation of the video, where the bitstream representation complies with format rules which specify that a syntax element is included in the bitstream to indicate that the absolute values ​​of a subset of coefficients of a video unit of the current block are greater than M, where M is an integer.

[0227] The following sections describe numbered exemplary video processing techniques.

[0228] 1. A method for video processing includes determining whether to enable a level mapping operation or a level remapping operation based on a rule for a conversion between a current block of video and a bitstream representation of the video, where the level mapping operation or the level remapping operation includes a change between a first representation of residual coefficients of the current block and a second representation of residual coefficients of the current block based on neighboring residual coefficients of the residual coefficients; and performing the conversion using selectively the level mapping operation or the level remapping operation based on the determination.

[0229] 2. The method of example 1, wherein the rules specify that whether a level mapping operation or a level remapping operation is enabled is based on whether a decoded value of a residual coefficient or a signal value of a residual coefficient is not equal to zero.

[0230] 3. The method of example 1, wherein the rule provides that in response to the decoded value of the residual coefficient or the signal value of the residual coefficient being equal to zero, the level mapping operation or the level remapping operation is disabled.

[0231] 4. The method of example 2 or 3, wherein the decoded value of the residual coefficient or the signal value of the residual coefficient includes in the bitstream representation a value of a significant coefficient flag that indicates whether the residual coefficient has an absolute level greater than zero.

[0232] 5. The method of example 2 or 3, wherein the decoded value of the residual coefficient or the signal value of the residual coefficient includes an absolute value of the coefficient level.

[0233] 6A. The method of example 2 or 3, wherein the decoded value of the residual coefficient or the signal value of the residual coefficient includes a combination of a first absolute value of the coefficient level and a second absolute value of the remaining magnitude of the residual coefficient.

[0234] 6B. The method of example 2 or 3, wherein the decoded value of the residual coefficient or the signal value of the residual coefficient includes a remaining magnitude of the residual coefficient.

[0235] 7. The method of Example 1, wherein when the quantization value of the residual coefficient or the value of the residual coefficient coded before applying the level mapping operation is equal to zero, the significant coefficient flag indicated in the bitstream representation is equal to zero, and the significant coefficient flag indicates whether the absolute level of the residual coefficient is greater than zero.

[0236] 8. The method of example 1, wherein the rule specifies that whether a level mapping operation or a level remapping operation is enabled depends on decoded residual information of either the current block or an adjacent block of the current block.

[0237] 9. The method of example 8, wherein the neighboring block is a neighboring block located adjacent to the current block, or the neighboring block is a non-adjacent neighboring block that is not adjacent to the current block.

[0238] 10. The method of example 8, wherein the rule specifies whether a level mapping operation or a level remapping operation is enabled is determinable based on a coding mode of the current block used during the conversion.

[0239] 11. The method of example 10, wherein the coding mode includes a non-block differential pulse code modulation (non-BDPCM) transport skip (TS) mode in which transform operations on residual coefficients of the current block are skipped.

[0240] 12. The method of example 1, wherein the rule specifies that whether a level mapping operation or a level remapping operation is enabled is based on side information of the current block, the side information being signaled at the level of the video region that contains the current block.

[0241] 13. The method of example 12, wherein the side information is associated with a syntax element that signals whether a level mapping operation or a level remapping operation is enabled for the conversion of the current block.

[0242] 14. The method of example 12, wherein the video region level includes sub-regions of coding tree units (CTUs).

[0243] 15. The method of example 14, wherein the subregion of the coding tree unit (CTU) includes a virtual pipeline data unit (VPDU), a single coding tree unit (CTU), a coding tree block (CTB), multiple coding tree units (CTUs), multiple coding units (CUs), a row of coding tree units (CTUs), a tile, a brick, a slice, a picture, a subpicture, a sequence, or a view of a video.

[0244] 16. The method of example 12, wherein whether a level mapping operation or a level remapping operation is enabled is indicated in the bitstream representation in a sequence parameter set, a view parameter set, an adaptation parameter set, a picture parameter set, a picture header, a slice header, a coding unit (CU), a picture unit (PU), a transform unit (TU), a coding tree unit (CTU), or a coding tree block (CTB) of the video.

[0245] 17. The method of example 1, wherein the rule specifies that whether a level mapping operation or a level remapping operation is enabled is based on a color format or color component of the video to which the current block belongs.

[0246] 18. The method of example 17, wherein the rules specify that a level mapping operation or a level remapping operation is enabled for luma blocks and disabled for chroma blocks.

[0247] 19. The method of example 17, wherein the rule specifies that if the color format of the video is a 4:2:0 format, then the level mapping operation or the level remapping operation is enabled for luma blocks and disabled for chroma blocks.

[0248] 20. The method of example 17, wherein the rule specifies that if the color format of the video is a 4:4:4 format or if a separate color plane coding mode is used during the conversion, then a level mapping operation or a level remapping operation is enabled for all color components.

[0249] 21. The method of example 1, wherein the rule specifies that whether a level mapping operation or a level remapping operation is enabled is based on a dimension of the current block.

[0250] 22. The method of example 21, wherein the dimensions of the current block include a height H and a width W, and a rule specifies that the level mapping operation or the level remapping operation is disabled because the current block satisfies W*H>=T1, where T1 is an integer.

[0251] 23. The method of example 21, wherein the dimensions of the current block include a height H and a width W, and a rule specifies that the level mapping operation or the level remapping operation is disabled because the current block satisfies W*H<=T1, where T1 is an integer.

[0252] 24. The method of example 21, wherein the dimensions of the current block include a height H and a width W, and the rule specifies that a level mapping or level remapping operation is disabled because min(W,H)>=T1, where T1 is an integer.

[0253] 25. The method of example 21, where the dimensions of the current block include a height H and a width W, and the rule specifies that a level mapping or level remapping operation is disabled because max(W,H)<=T1, where T1 is an integer.

[0254] 26. The method of example 21, wherein the dimensions of the current block include a height H and a width W, and the rule specifies that a level mapping or level remapping operation is disabled because min(W,H)<=T1, where T1 is an integer.

[0255] 27. The method of example 21, wherein the dimensions of the current block include a height H and a width W, and the rule specifies that a level mapping or level remapping operation is disabled because max(W,H)>=T1, where T1 is an integer.

[0256] 28. The method of example 21, wherein the dimensions of the current block include height H and width W, and the rules specify that the level mapping or level remapping operation is disabled because W>=T1 and H>=T2, where T1 and T2 are integers.

[0257] 29. The method of example 21, wherein the dimensions of the current block include height H and width W, and the rules specify that the level mapping or level remapping operation is disabled because W<=T1 and H<=T2, where T1 and T2 are integers.

[0258] 30. A method of video processing, comprising: determining, based on a rule, one or more previously decoded coefficients to be used as predictors during a level mapping or level remapping operation, the level mapping or level remapping operation including a change between a first representation of residual coefficients and a second representation of a current block residual coefficients based on neighboring residual coefficients of the residual coefficients, the one or more previously decoded coefficients being used according to a decoding order or a scanning order; and performing a conversion between the current block of video and a bitstream representation of the video using the one or more previously decoded coefficients.

[0259] 31. The method of example 30, wherein the rule specifies using the most recent K previously decoded coefficients, where K is an integer.

[0260] 32. The method of example 30, wherein the rule specifies that K previously decoded coefficients of the most recent M previously decoded coefficients are used, where K and M are integers and M is greater than K.

[0261] 33. The method of example 30, wherein some of the one or more previously decoded coefficients are signaled in the bitstream representation via syntax elements.

[0262] 34. The method of example 30, wherein some of the one or more previously decoded coefficients are predefined.

[0263] 35. The method of example 30, wherein some of the one or more previously decoded coefficients are determinable based on the decoded information of the current block.

[0264] 36. The method of example 30, wherein the number of the one or more previously decoded coefficients depends on the number of decoded residual coefficients.

[0265] 37. The method of example 36, wherein the number is the minimum of S or M, where S is the number of decoded residual coefficients, and M is a fixed number.

[0266] 38. A method of video processing, comprising performing a conversion between a current block of video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying that a syntax element is included in the bitstream to indicate that an absolute value of a subset of coefficients of a video unit of the current block is greater than M, where M is an integer.

[0267] 39. The method of example 38, wherein the video unit is a coefficient group of the current block, a transform block, a prediction block, or a coding block.

[0268] 40. The method of example 38, where the subset is based on the scan order used in the conversion.

[0269] 41. The method of example 40, wherein the subset includes the first L coefficients in forward scan order, where L is an integer.

[0270] 42. The method of example 40, wherein the subset includes the last L coefficients in forward scan order, where L is an integer.

[0271] 43. The method of example 40, wherein the subset includes the first L coefficients according to the decoding order of the video unit, where L is an integer.

[0272] 44. The method of example 38, wherein the subset is based on the coordinates of the pixels that make up the video unit.

[0273] 45. The method of example 44, wherein the subset includes coefficients within a rectangular region of the video unit.

[0274] 46. ​​The method of example 44, wherein the subset includes coefficients within a square region of the video unit.

[0275] 47. The method of example 38, wherein the subset is based on the coding mode of the current block.

[0276] 48. The method of example 47, wherein the subset is defined to include the top row of coefficients in response to the current block being coded with a block differential pulse code modulation (BDPCM) coding tool or a quantized residual domain BDPCM (QR-BDPCM) coding tool, and in response to the current block being vertically predicted.

[0277] 49. The method of example 47, wherein the subset is defined to include coefficients in the leftmost row in response to the current block being coded with a block differential pulse code modulation (BDPCM) coding tool or a quantized residual domain BDPCM (QR-BDPCM) coding tool, and in response to the current block being horizontally predicted.

[0278] 50. The method of example 38, where the subset is based on the dimensions of the current block.

[0279] 51. The method of example 38, wherein M is equal to 0, 1, 2, 3, 4, or 5.

[0280] 52. The method of example 1, wherein the current block is a non-transformed skip coded block.

[0281] 53. The method of example 52, wherein the converting uses a block differential pulse code modulation (BDPCM) coding tool for the current block.

[0282] 54. The method of example 52, wherein the rule specifies that the level mapping or level remapping operation is performed only for specific positions of the residual coefficients.

[0283] 55. The method of example 54, wherein the particular position depends on the prediction direction.

[0284] 56. The method of example 55, wherein the residual coefficients are arranged in the first row in response to the prediction direction being vertical.

[0285] 57. The method of example 55, wherein the residual coefficients are arranged in the first column in response to the prediction direction being horizontal.

[0286] 58. The method of example 52, wherein the rules specify that a level mapping operation or a level remapping operation is enabled only for unpredictably coded residual coefficients.

[0287] 59. The method of example 58, wherein the residual coefficients are placed in the first row in a vertical prediction direction.

[0288] 60. The method of example 58, wherein the residual coefficients are arranged in a first column in a horizontal prediction direction.

[0289] 61. The conversion is based on palette coding mode, method of example 1.

[0290] 62. The method of example 61, wherein the rules further provide that the palette index is based on a maximum value of previously coded palette indices from previous blocks of the video.

[0291] 63. The method of example 61, wherein the rules further specify that the level mapping operation or level remapping is enabled for all palette coded blocks of the video.

[0292] 64. The method of example 61, wherein the rules further provide that the level mapping operation or level remapping is enabled under specified conditions.

[0293] 65. The conversion further uses a context modeling process in which the residual coefficients depend on the residual information of neighboring blocks of the current block, the context modeling process using a context modeling function f(a0, a1, ···, ), where the parameters ai represent previously coded coefficients or palette indices, where i is greater than or equal to zero.

[0294] 66. The method of example 65, wherein the context modeling function f(a0, a1, . . . ,) is a maximum function or a minimum function.

[0295] 67. The method of example 65, wherein the parameters a i include a template that covers a current sample or coefficient and at least some neighboring blocks of the current block.

[0296] 68. The method of example 67, in which, for palette index coding, the palette index is coded using a left palette index and an above palette index based on a context modeling function f(a0, a1, . . . ,).

[0297] 69. The method of example 67, in which, for palette index coding, the palette index is coded using a left palette index and an above palette index based on a context modeling function f(a0, a1, . . . ,).

[0298] 70. The method of example 65, wherein the order of parameters ai is a function of the scan order used for the current block.

[0299] 71. The method of example 1, wherein one or more decoded coefficients are used to obtain syntax elements for a context modeling process during conversion, and the one or more decoded coefficients are used according to a decoding order or a scanning order.

[0300] 72. The method of example 71, wherein the syntax element includes a coding sign flag.

[0301] 73. The method of example 71, wherein the most recent K decoded coefficients are used, where K is an integer.

[0302] 74. The method of example 71, wherein K decoded coefficients of the most recent M decoded coefficients are used, K and M being integers, and M being greater than K.

[0303] 75. The method of example 71, wherein some of the one or more decoded coefficients are signaled in the bitstream representation via syntax elements.

[0304] 76. The method of example 71, wherein some of the one or more decoded coefficients are predefined.

[0305] 77. The method of example 71, wherein some of the one or more decoded coefficients are determinable based on the decoded information of the current block.

[0306] 78. The method of example 71, wherein the number of the one or more decoded coefficients depends on the number of decoded residual coefficients.

[0307] 79. The method of example 78, wherein the number is the minimum of S or M, where S is the number of decoded residual coefficients, and M is a fixed number.

[0308] 80. The method of example 1, wherein one or more decoded coefficients are used to obtain syntax elements for a context modeling process during conversion, and the one or more decoded coefficients are used according to a prediction direction.

[0309] 81. The method of example 80, wherein the syntax element includes a coding sign flag.

[0310] 82. The method of example 80, wherein the one or more decoded coefficients are one or more previously decoded coefficients in the same column as a column of the current block, in response to the current block being a block differential pulse code modulation (BDPCM) coded block in a vertical prediction direction.

[0311] 83. The method of example 80, wherein the one or more decoded coefficients are one or more previously decoded coefficients in the same row as a row of the current block, in response to the current block being a block differential pulse code modulation (BDPCM) coded block in a horizontal prediction direction.

[0312] 84. The method of example 80, wherein the one or more decoded coefficients are one or more previously decoded coefficients in the same row as a row of the current block in response to the current block being a block differential pulse code modulation (BDPCM) coded block in a vertical prediction direction.

[0313] 85. The method of example 80, wherein the one or more decoded coefficients are one or more previously decoded coefficients in the same column as a column of the current block, in response to the current block being a block differential pulse code modulation (BDPCM) coded block in a horizontal prediction direction.

[0314] 86. The method of example 1, wherein one or more decoded coefficients are used to obtain syntax elements for a context modeling process during conversion, and the values ​​of the syntax elements are dynamically set according to neighboring block information of the current block or according to a selected context.

[0315] 87. The method of example 86, wherein the value of the syntax element is based on whether the sign information of the current coefficient is the same as a majority of the sign information of previously coded coefficients of the video.

[0316] 88. The method of example 86, in which in response to the selected context representing a majority of the adjacent block being negative, the value of the syntax element is equal to one to indicate a positive value and the value of the syntax element is equal to zero to indicate a negative value.

[0317] 89. The method of example 88, wherein a majority of the adjacent blocks are negative in response to two adjacent blocks being negative or in response to one adjacent block being negative and another adjacent block being equal to zero.

[0318] 90. The method of example 86, in which in response to the selected context representing a majority of the adjacent block being positive, the value of the syntax element is equal to zero to indicate a positive value and the value of the syntax element is equal to one to indicate a negative value.

[0319] 91. The method of example 90, wherein a majority of the adjacent blocks are positive in response to two adjacent blocks being positive or in response to one adjacent block being positive and another adjacent block being equal to zero.

[0320] 92. The method of example 86, in which, in response to the selected context representing a majority of the adjacent block being negative, the value of the syntax element is equal to zero to indicate a positive value and the value of the syntax element is equal to one to indicate a negative value.

[0321] 93. The method of example 92, wherein a majority of the adjacent blocks are negative in response to two adjacent blocks being negative or in response to one adjacent block being negative and another adjacent block being equal to zero.

[0322] 94. The method of example 86, in which in response to the selected context representing a majority of the adjacent block being positive, the value of the syntax element is equal to one to indicate a positive value and the value of the syntax element is equal to zero to indicate a negative value.

[0323] 95. The method of example 94, wherein a majority of the adjacent blocks are positive in response to two adjacent blocks being positive or in response to one adjacent block being positive and another adjacent block being equal to zero.

[0324] 96. The method of any one of Examples 1-95, wherein whether a level mapping operation or a level remapping operation is enabled for the current block is indicated at a video unit level.

[0325] 97. The method of example 96, wherein video units include tiles, bricks, slices, pictures, subpictures, sequences, and views.

[0326] 98. The method of example 96, wherein whether a level mapping operation or a level remapping operation is enabled and the process of enabling the level remapping operation is signaled in a sequence parameter set, a view parameter set, an adaptation parameter set, a picture parameter set, a picture header, or a slice header.

[0327] 99. The method of example 96, wherein whether a level mapping operation or a level remapping operation is enabled and the process by which the level mapping operation or the level remapping operation is enabled are indicated by a syntax element.

[0328] 100. The method of example 99, in which the syntax element indicates whether the video content associated with the video is screen content.

[0329] 101. The method of any one of Examples 1-95, wherein whether a level mapping operation or a level remapping operation is enabled is based on coding information of the current block.

[0330] 102. The method of example 101, wherein the coding information includes block dimensions, slice type, picture type, temporal layer index, video content, color components, partitioning tree type, coding mode, or transform information of the current block.

[0331] 103. The method of example 101, wherein the level mapping or level remapping operation is enabled in response to the width of the current block being less than or equal to T1 and the height of the current block being less than or equal to T2.

[0332] 104. The method of example 101, wherein the level mapping or level remapping operation is enabled in response to the width of the current block being less than or equal to T1 or the height of the current block being less than or equal to T2.

[0333] 105. The method of example 101, wherein the level mapping or level remapping operation is enabled in response to the width of the current block times the height of the current video block being less than or equal to T3.

[0334] 106. The method of any one of Examples 1-107, wherein converting includes encoding the current block into a bitstream representation.

[0335] 107. The method of any one of Examples 1-107, wherein converting includes decoding the bitstream representation to generate pixel values ​​for the current block.

[0336] 108. A video decoding device including a processor configured to implement the method according to one or more of examples 1-107.

[0337] 109. A video encoding device including a processor configured to implement a method according to one or more of Examples 1-107.

[0338] 110. A computer program product having computer code stored thereon, which code, when executed by a processor, causes the processor to perform a method as described in any of Examples 1-107.

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

[0340] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including a standalone program, or modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored as part 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 several coordinated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to run on one computer, or on several computers, which may be located at one site or distributed across several sites and interconnected by a communication network.

[0341] The processes and logic flows described herein may be performed by one or more programmable processors that execute one or more computer programs to perform functions by manipulating input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit), or may implement an apparatus.

[0342] Processors suitable for executing computer programs include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data or transmit data, or both. However, such devices are not required for a computer. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0343] Although this patent document contains many details, these should not be construed as limitations on the scope of the subject matter or the scope of the claims, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, even if features are described above as acting in a particular combination and initially claimed as such, one or more features from the claimed combination may in some cases be carved out of the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

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

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

Claims

1. 1. A method for processing video data, the method comprising: determining whether to enable a level mapping or level remapping operation for a conversion between a current block of video and a bitstream of the video based on whether a combination of an absolute value of a coefficient level and an absolute value of a remainder of the coefficient levels is equal to zero, the level mapping or level remapping operation including a change between a first representation of a residual coefficient and a second representation of the residual coefficient based on neighboring residual coefficients of the residual coefficient; and selectively using the level mapping operation or the level re-mapping operation to perform the conversion based on the determination. method.

2. The method of claim 1 , wherein the current block is coded in a transform-skip (TS) mode in which a transform operation on the residual coefficients of the current block is skipped.

3. The method of claim 1 , wherein the level mapping operation or the level remapping operation is disabled in response to a significant coefficient flag being equal to zero.

4. The method of claim 1 , wherein whether the level mapping operation or the level remapping operation is enabled is further based on whether the absolute value of the coefficient level is equal to zero.

5. The method of claim 4 , wherein the level mapping operation or the level remapping operation is disabled in response to the absolute value of the coefficient level being equal to zero.

6. The method of claim 1 , wherein the level mapping operation or the level remapping operation is disabled in response to the combination being equal to zero.

7. The method of claim 1 , wherein the level mapping operation or the level remapping operation is enabled in response to a significant coefficient flag not being equal to zero.

8. The method of claim 4 , wherein the level mapping operation or the level remapping operation is enabled in response to the absolute value of the coefficient level not being equal to zero.

9. The method of claim 1 , wherein the level mapping operation or the level remapping operation is enabled in response to the combination not being equal to zero.

10. The method of claim 1 , wherein the transforming comprises encoding the current block into the bitstream.

11. The method of claim 1 , wherein the transforming comprises decoding the current block from the bitstream.

12. 1. An apparatus for processing video data, the apparatus including a processor and a non-transitory memory having instructions thereon, the instructions, when executed by the processor, causing the processor to: determining whether to enable a level mapping operation or a level remapping operation for a conversion between a current block of video and a bitstream of the video based on whether a combination of an absolute value of a coefficient level and an absolute value of a remainder of the coefficient levels is equal to zero, the level mapping operation or the level remapping operation including a change between a first representation of a residual coefficient and a second representation of the residual coefficient based on neighboring residual coefficients of the residual coefficient; selectively using the level mapping operation or the level re-mapping operation to perform the conversion based on the determination. device.

13. 1. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to: determining whether to enable a level mapping operation or a level remapping operation for a conversion between a current block of video and a bitstream of the video based on whether a combination of an absolute value of a coefficient level and an absolute value of a remainder of the coefficient levels is equal to zero, the level mapping operation or the level remapping operation including a change between a first representation of a residual coefficient and a second representation of the residual coefficient based on neighboring residual coefficients of the residual coefficient; selectively using the level mapping operation or the level re-mapping operation to perform the conversion based on the determination. A non-transitory computer-readable storage medium.

14. 1. A method for storing a bitstream of a video, the method comprising: determining whether to enable a level mapping or level remapping operation for a current block of a video based on whether a combination of an absolute value of a coefficient level and an absolute value of a remainder of the coefficient levels is equal to zero, the level mapping or level remapping operation comprising a change between a first representation of a residual coefficient and a second representation of the residual coefficient based on neighboring residual coefficients of the residual coefficient; selectively using the level mapping operation or the level re-mapping operation to generate the bitstream based on the determination; storing the bitstream on a non-transitory computer-readable recording medium. method.

Citation Information

Patent Citations

  • JPP7372449B