Coding of low bit-depth visual media data

By employing low-bit-depth video encoding and decoding technology, and utilizing tools such as intra-frame block copying, palette mode, and adaptive loop filtering, the inefficiency and redundancy issues of existing video encoding and decoding standards in low-bit-depth video processing are resolved, resulting in more efficient encoding and decoding effects.

CN115066897BActive Publication Date: 2026-01-02DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080078183.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-14
Filing Date
2020-11-12
Publication Date
2026-01-02
Estimated Expiration
2040-11-12

AI Technical Summary

Technical Problem

Existing video codec standards suffer from inefficiency and redundancy when processing low-bit-depth video, especially when processing screen content and natural video, making it difficult to effectively utilize redundant information in the video for encoding and decoding.

Method used

Low-bit-depth video encoding and decoding technologies are employed, including tools such as Intra-Block Copying (IBC), Palette Mode, Adaptive Loop Filtering (ALF), and Sample Adaptive Offset (SAO). Adaptive encoding and decoding and filtering are performed based on the bit depth of the video blocks to improve encoding and decoding efficiency.

Benefits of technology

By adaptively adjusting encoding/decoding tools and filtering processes, the efficiency and quality of video encoding/decoding are improved, especially when processing screen content and natural video, significantly reducing redundancy and improving encoding efficiency and decoding quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115066897B_ABST
    Figure CN115066897B_ABST
Patent Text Reader

Abstract

An apparatus, system, and method for video coding, including low bit-depth video and image coding, are described. An example method for video processing includes, for a conversion between a current block of a video and a bitstream representation of the video, determining a use of an adaptive color transform coding tool based on an input bit depth of source samples in the current block. The method also includes performing the conversion based on the determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application is related to and claims priority to International Patent Application No. PCT / CN2019 / 118476 filed on November 14, 2019, under the applicable patent law and / or Paris Convention. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application for all purposes. TECHNICAL FIELD

[0003] This patent document relates to video coding techniques, systems, and devices. BACKGROUND

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

[0005] Devices, systems, and methods related to digital video coding are described, including low bit-depth video and image coding. The described methods can be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC) and / or Versatile Video Coding (VVC) and future video coding standards or video codecs.

[0006] In one representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes, for a conversion between a current block of a video and a bitstream representation of the video, determining, based on an input bit depth of source samples in the current block, a use of an adaptive color transform coding tool. The method also includes performing the conversion based on the determining.

[0007] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes, for a conversion between a current block of a video and a bitstream representation of the video, determining, according to an input bit depth of source values of samples, that a reconstructed value or a predicted value of the samples of the current block is to be rounded. The method also includes performing the conversion based on the determining.

[0008] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes, for a conversion between a current block of a video and a bitstream representation of the video, determining, based on an input bit depth of source samples in the current block, a use of an in-loop filtering process. The method also includes performing the conversion based on the determining.

[0009] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining, for a conversion between a current block of a video and a bitstream representation of the video, a use of a luma mapping with chroma scaling (LMCS) coding tool based on an input bit depth of source samples in the current block. The method also includes performing the conversion based on the determination.

[0010] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining, for a conversion between a current block of a video and a bitstream representation of the video, a pixel clipping range based on an input bit depth of source pixels. The method also includes performing the conversion based on the determination.

[0011] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes, during a conversion between a current video block and a bitstream representation of a video, determining a given bit depth based on a bit depth used to represent the video, and performing the conversion using the given bit depth as a calculation bit depth for at least one or more calculations of the conversion.

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

[0013] In yet another representative aspect, an apparatus configured to or operable to perform the above-described method is disclosed. The apparatus can include a processor programmed to perform the method.

[0014] In yet another representative aspect, a video decoder apparatus can perform the methods described in the present disclosure.

[0015] The above and other aspects and features of the disclosed technology are more fully described in the accompanying drawings, description, and claims. BRIEF DESCRIPTION OF DRAWINGS

[0016] Figure 1 An example of intra block copy is shown.

[0017] Figure 2 An example of palette mode coded block is shown.

[0018] Figure 3 An example of signaling palette entries using a palette predictor is shown.

[0019] Figure 4 An example of horizontal and vertical traversal scans is shown.

[0020] Figure 5 An example of coding of palette indices is shown.

[0021] Figure 6 An example of 67 intra prediction modes is shown.

[0022] Figure 7 An example of neighboring blocks to the left and above the current block is shown.

[0023] Figure 8A An example of filter shapes for adaptive loop filtering (ALF) is shown.

[0024] Figure 8B Another example of filter shapes for adaptive loop filtering (ALF) is shown.

[0025] Figure 9A An example of sub-sampled Laplacian computation is shown.

[0026] Figure 9B Another example of sub-sampled Laplacian computation is shown.

[0027] Figure 9C Another example of sub-sampled Laplacian computation is shown.

[0028] Figure 9D Yet another example of sub-sampled Laplacian computation is shown.

[0029] Figure 10 An example of block classification modified at virtual boundaries is shown.

[0030] Figure 11 An example of modified ALF filtering of luma components at virtual boundaries is shown.

[0031] Figure 12 An example of four 1-D 3-pixel patterns used for pixel classification in the edge offset (EO) case of sample adaptive offset (SAO) operation is shown.

[0032] Figure 13 An example of four wavebands grouped together and represented by their starting waveband location is shown.

[0033] Figure 14 An example of top and left neighboring blocks used in combined inter and intra prediction (CIIP) weight derivation is shown.

[0034] Figure 15 An example of luma mapping with chroma scaling (LMCS) architecture is shown.

[0035] Figure 16 An example of an encoding process with adaptive color transform (ACT) is shown.

[0036] Figure 17 An example of a decoding process with ACT is shown.

[0037] Figure 18 is an example flowchart of a video processing method.

[0038] Figure 19 is a block diagram of an example video processing system in which the disclosed technology can be implemented.

[0039] Figure 20 is a block diagram illustrating an example video coding system.

[0040] Figure 21 is a block diagram illustrating an encoder according to some embodiments of the disclosure.

[0041] Figure 22 is a block diagram illustrating an encoder according to some embodiments of the disclosure.

[0042] Figure 23 is a flowchart representation of a method of video processing of the present technology.

[0043] Figure 24 is a flowchart representation of another method of video processing of the present technology.

[0044] Figure 25 is a flowchart representation of another method of video processing of the present technology.

[0045] Figure 26 is a flowchart representation of another method of video processing of the present technology.

[0046] Figure 27 is a flowchart representation of yet another method of video processing of the present technology. DETAILED DESCRIPTION

[0047] This document provides various techniques that can be used by a decoder of an image or video bitstream to improve the quality of the decompressed or decoded digital video or images. For brevity, the term “video” is used herein to include both a sequence of pictures (traditionally referred to as video) and a single image. Furthermore, a video encoder can also implement these techniques in the encoding process in order to reconstruct decoded frames for further encoding.

[0048] Section headings are used in the document to facilitate understanding, and do not limit the embodiments and techniques to the respective sections. As such, embodiments of one section can be combined with embodiments of other sections.

[0049] 1 SUMMARY

[0050] This document relates to video coding techniques. In particular, it relates to low bit-depth video and image coding. It can be applied to existing video coding standards such as HEVC, or standards that are being finalized (Versatile Video Coding). It can also be applied to future video coding standards or video codecs.

[0051] 2. EXAMPLE EMBODIMENTS OF VIDEO CODING

[0052] Video coding standards have evolved primarily through the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. Starting with H.262, the video coding standards are based on the hybrid video coding structure where temporal prediction plus transform coding is used. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by JVET and put into the reference software named Joint Exploration Model (JEM). In April 2018, the Joint Video Team (JVT) was formed by VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to work on the VVC standard with the goal of 50% bitrate reduction over HEVC.

[0053] 2.1 Intra block copy

[0054] Intra block copy (IBC), i.e., current picture reference, is adopted in the HEVC Screen Content Coding extensions (HEVC-SCC) and the current VVC test model (VTM-4.0). IBC extends the concept of motion compensation from inter coding to intra coding. As shown in FIG. 1, IBC encodes a block in the current picture using a block in the previously reconstructed picture as reference. The previously reconstructed picture can be the same picture as the current picture, or a picture in the past. In the case of the same picture, IBC is also known as motion-constrained intra prediction (MCIP). Figure 1IBC, as illustrated, the current block is predicted from a reference block in the same picture. The samples in the reference block must have been reconstructed before the current block is coded or decoded. Although IBC is not efficient for most camera captured sequences, it shows significant coding gain for screen content. The reason is that there are many repetitive patterns in screen content pictures, such as icons and text characters. IBC can effectively remove the redundancy between these repetitive patterns. In HEVC-SCC, if an inter-coded coding unit (CU) chooses the current picture as its reference picture, it can apply IBC. In this case, the MV is renamed as block vector (BV), and the BV always has integer pixel precision. To be compatible with the main profile HEVC, the current picture is marked as a "long-term" reference picture in the decoded picture buffer (DPB). It is noted that similarly, in multi-view / 3D video coding standards, the inter-view reference pictures are also marked as "long-term" reference pictures.

[0055] Following the BV to find its reference block, the prediction can be generated by copying the reference block. The residual can be obtained by subtracting the reference pixels from the original signal. Then the transform and quantization can be applied as in other coding modes.

[0056] However, when the reference block is outside the picture, or overlaps with the current block, or outside the reconstructed area, or outside the active area under certain constraint, some or all of the pixel values are undefined. Basically, there are two solutions to handle such problems. One is to prohibit such cases in, for example, bitstream conformance. The other is to apply padding for those undefined pixel values. The following sub-sections describe the solutions in detail.

[0057] 2.2 IBC in HEVC screen content coding extension

[0058] In HEVC screen content coding extension, when a block uses the current picture as reference, it should guarantee that the whole reference block is within the available reconstructed area, as shown in the following specification text:

[0059] The variables offsetX and offsetY are derived as follows:

[0060] offsetX = ( ChromaArrayType == 0 )? 0 : ( mvCLX[ 0 ] & 0x7? 2 : 0 ) (8-104)

[0061] offsetY = ( ChromaArrayType == 0 )? 0 : ( mvCLX[ 1 ] & 0x7? 2 : 0 ) (8-105)

[0062] As a requirement for bitstream conformance, when the reference picture is the current picture, the luma motion vector mvLX shall follow the following constraint:

[0063] - When the derivation process for z-scan order block availability as specified in clause 6.4.1 is invoked with ( xCurr, yCurr ) set equal to ( xCb, yCb ) and the neighboring luma position ( xNbY, yNbY ) set equal to ( xPb + ( mvLX[ 0 ] » 2 ) - offsetX, yPb + ( mvLX[ 1 ] » 2 ) - offsetY ) as inputs, the output shall be equal to TRUE.

[0064] - When the derivation process for z-scan order block availability as specified in clause 6.4.1 is invoked with ( xCurr, yCurr ) set equal to ( xCb, yCb ) and the neighboring luma position ( xNbY, yNbY ) set equal to ( xPb + ( mvLX[ 0 ] » 2 ) + nPbW - 1 + offsetX, yPb + ( mvLX[ 1 ] » 2 ) + nPbH - 1 + offsetY ) as inputs, the output shall be equal to TRUE.

[0065] - One or both of the following conditions shall be true:

[0066] - The value of ( mvLX[ 0 ] » 2 ) + nPbW + xB1 + offsetX is less than or equal to 0.

[0067] - The value of ( mvLX[ 1 ] » 2 ) + nPbH + yB1 + offsetY is less than or equal to 0.

[0068] Therefore, the case that the reference block overlaps with the current block or the reference block is out of the picture will not happen. There is no need to pad the reference or prediction block.

[0069] 2.3 IBC in VVC test model

[0070] In the current VVC test model, e.g., VTM-4.0 design, the whole reference block shall accompany the current coding tree unit (CTU) and does not overlap with the current block. Therefore, there is no need to pad the reference or prediction block. The IBC flag is coded as the prediction mode of the current CU. Therefore, each CU shares three prediction modes, MODE_INTRA, MODE_INTER, and MODE_IBC.

[0071] 2.3.1 IBC Merge mode

[0072] In IBC merge mode, the indices pointing to the entries in the IBC merge candidate list are parsed from the bitstream. The construction of the IBC Merge list can be summarized in the following sequence of steps:

[0073] Step 1 : Derive spatial candidates

[0074] Step 2: Insert HMVP candidates

[0075] Step 3: Insert pairwise average candidates

[0076] In the derivation of spatial merge candidates, up to four merge candidates are selected among the candidates located in the positions depicted in the figure. The derivation order is A1, B1, B0, A0, B2. Position B2 is only considered if any of the positions A1, B1, B0, A0 is not available (e.g. because it belongs to another slice or tile) or not coded using IBC mode. After adding the candidate for position A1, a redundancy check is performed for the insertion of the remaining candidates, ensuring that candidates with the same motion information are excluded from the list, thus improving the coding efficiency. In order to reduce the computational complexity, not all possible pairs of candidates are considered in the mentioned redundancy check. Instead, only the pairs linked with the arrows depicted in the figure are considered and a candidate is added to the list only if the corresponding candidate for the redundancy check has different motion information.

[0077] After the insertion of the spatial candidates, IBC candidates from the HMVP table can be inserted if the IBC merge list size is still smaller than the maximum IBC merge list size. A redundancy check is performed when inserting the HMVP candidates.

[0078] Finally, pairwise average candidates are inserted into the IBC merge list.

[0079] A merge candidate is called invalid merge candidate when the reference block identified by the merge candidate is outside the picture, or overlaps with the current block, or is outside the reconstructed area, or is outside the active area under certain constraint.

[0080] It is to be noted that invalid merge candidates can be inserted into the IBC merge list.

[0081] 2.3.2 IBC AMVP mode

[0082] In IBC AMVP mode, the AMVP indices pointing to the entries in the IBC AMVP list are parsed from the bitstream. The construction of the IBC AMVP list can be summarized in the following sequence of steps:

[0083] Step 1 : Derive spatial candidates

[0084] Check A0, A1 until a usable candidate is found.

[0085] Check B0, B1, B2 until a usable candidate is found.

[0086] Step 2: Insert HMVP candidate

[0087] Step 3: Insert zero candidate

[0088] After inserting the spatial candidate, if the IBC AMVP list size is still smaller than the maximum IBC AMVP list size, IBC candidates from the HMVP table can be inserted.

[0089] Finally, the zero candidate is inserted into the IBC AMVP list.

[0090] 2.4 Palette mode

[0091] The basic idea behind palette mode is that the samples in a CU are represented by a small set of representative color values. This set is referred to as the palette. Samples outside of the palette can also be indicated by signaling an escape symbol followed by the (possibly quantized) component values. This is illustrated in Figure 2 .

[0092] 2.5 Palette mode in HEVC screen content coding extension (HEVC-SCC)

[0093] In the palette mode of HEVC-SCC, the palette and index map are coded using a predictive way.

[0094] 2.5.1 Codel of palette entries

[0095] For the coding of palette entries, a palette predictor is maintained. The maximum size of the palette as well as the palette predictor are signaled in the SPS. In HEVC-SCC, a palette_predictor_initializer_present_flag is introduced in the PPS. When this flag is equal to 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 the palette_predictor_initializer_present_flag, the palette predictor is either reset to 0 or initialized using the palette predictor initializer entry signaled in the PPS. In HEVC-SCC, a palette predictor initializer of size 0 is enabled to allow explicit disabling of the palette predictor initialization at the PPS level.

[0096] For each entry in the palette predictor, a reuse flag is sent to indicate whether it is part of the current palette or not. This is illustrated in Figure 3 . The reuse flag is sent using zero run coding. After this, the number of new palette entries is signaled using exponential Golomb coding of order 0. Finally, the component values of the new palette entries are signaled.

[0097] 2.5.2 Coding of palette indices

[0098] The palette indices are coded using horizontal and vertical traversing scans, as illustrated in Figure 4 . The scan order is explicitly signaled in the bitstream using the flag palette_transpose_flag. For the rest of this subsection, it is assumed that the scan is horizontal.

[0099] The palette indices are coded using two main palette sample modes: "INDEX" and "COPY_ABOVE". As mentioned before, the escape symbol is also signaled as an "INDEX" mode and is assigned an index equal to the maximum palette size. This mode is signaled using a flag, except for the topmost row, or when the previous mode was "COPY_ABOVE". In "COPY_ABOVE" mode, the palette index of the sample above is copied. In "INDEX" mode, the palette index is explicitly signaled. For both "INDEX" and "COPY_ABOVE" modes, a run value is signaled, which specifies the number of subsequent samples that are also coded using the same mode. When the escape symbol is part of a run in "INDEX" or "COPY_ABOVE" mode, the escape component value is signaled for each escape symbol. The coding of the palette indices is illustrated in Figure 5 .

[0100] This syntax order is done in the following way. First, the number of index values of the CU is signaled. Subsequently, the actual index values of the entire CU are signaled using truncated binary coding. Both the number of indices and the index values are coded in bypass mode. This combines the bypass bins related to the indices together. Then, the palette sample mode (if needed) and the runs are signaled in an interleaved way. Finally, the escape values corresponding to the escape samples of the entire CU are combined together and coded in bypass mode.

[0101] After signaling the index values, the additional syntax element last_run_type_flag is signaled. This syntax element, in combination with the number of indices, removes the need to signal the run value corresponding to the last run in the block.

[0102] In HEVC-SCC, palette mode is also enabled for 4:2:2, 4:2:0 and monochrome chroma formats. For all chroma formats, the signaling of palette entries and palette indices is almost the same. In the case of non-monochrome formats, each palette entry consists of 3 components. For monochrome formats, each palette entry consists of a single component. For the subsampled chroma directions, the chroma samples are associated with the luma sample indices that are divisible by 2. After the palette indices of a reconstructed CU are signaled, if a sample has only one component associated with it, only the first component of the palette entry is used. The only difference in the signaling is the escape component value. For each escape sample, the number of escape component values signaled can be different depending on the number of components associated with that sample.

[0103] 2.6 Intra mode coding in VVC

[0104] To capture arbitrary edge directions presented in natural videos, the number of directional intra modes in VTM5 is extended from 33 used in HEVC to 65. The new directional modes not in HEVC are depicted as red dashed arrows in Figure 6 . The planar mode and DC mode remain unchanged. These more densely directed intra prediction modes are applied to all block sizes and for both luma and chroma intra prediction.

[0105] In VTM5, several traditional angular intra prediction modes are replaced adaptively by wide-angle intra prediction modes for non-square blocks.

[0106] In HEVC, each intra coded block is square and each side has a length that is a power of 2. Therefore, using the DC mode to produce the intra predictor does not require division operations. In VTM5, blocks can have rectangular shapes, which require division operations for each block in general case. To avoid the division operations for DC prediction, only the longer side is used to calculate the average value for non-square blocks.

[0107] To keep the generation of the most probable mode (MPM) list low in complexity, an intra mode coding method with 6 MPMs is used by considering two available neighboring intra modes. The MPM list is constructed considering the following three aspects:

[0108] o default intra mode

[0109] o neighboring intra modes

[0110] o derived intra mode

[0111] A uniform 6-MPM list is used for intra blocks, whether or not the MRL and ISP coding tools are applied. The MPM list is constructed based on the intra modes of the left and above neighboring blocks. Assuming the mode of the left block is denoted as Left and the mode of the above block is denoted as Above, the uniform MPM list is constructed as follows (in Figure 7 which the left and above blocks are shown):

[0112] - When the neighboring blocks are not available, their intra mode is set to Planar by default.

[0113] - If both Left and Above modes are non-angular modes:

[0114] o MPM list {Planar, DC, V, H, V-4, V+4}

[0115] - If one of Left and Above modes is angular and the other is non-angular:

[0116] o Set mode Max to the larger one of Left and Above

[0117] o MPM list {Planar, Max, DC, Max-1, Max+1, Max-2}

[0118] - If both Left and Above have angles and are different from each other:

[0119] o Set mode Max to the larger one of Left and Above

[0120] o If the difference of modes Left and Above is in the range 2 to 62, inclusive

[0121] ■MPM list {Planar, Left, Above, DC, Max-1, Max+1}

[0122] o Else

[0123] ■MPM list {Planar, Left, Above, DC, Max-2, Max+2}

[0124] - If both Left and Above are angular and are the same from each other:

[0125] o MPM list {Planar, Left, Left-1, Left+1, DC, Left-2}

[0126] In addition, the first bin of the mpm index codeword is CABAC context coded. In total, three contexts are used, corresponding to whether the current intra block is enabled for MRL, ISP or is a normal intra block.

[0127] In the 6MPM list generation process, pruning is used to remove duplicate modes so that only unique modes can be included into the MPM list. For the entropy coding of the 61 non-MPM modes, Truncated Binary Code (TBC) is used.

[0128] For chroma intra mode coding, the chroma intra mode coding allows a total of 8 intra modes. These modes include five traditional intra modes and three cross component linear model modes (CCLM, LM_A and LM_L). The chroma mode signaling and derivation process is shown in Table 1. The chroma mode coding directly depends on the intra prediction mode of the corresponding luma block. Since separate block partitioning structures for luma and chroma components are enabled in I slices, one chroma block can correspond to multiple luma blocks. Therefore, for chroma DM mode, the intra prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited.

[0129] Table 1: Derivation of chroma prediction mode from luma mode when cclm_is is enabled

[0130]

[0131] 2.7 Block Differential Pulse-Code Modulation (BDPCM)

[0132] In some embodiments, quantized residual block differential pulse-code modulation (QR-BDPCM) is proposed to efficiently code screen content.

[0133] The prediction direction used in QR-BDPCM can be vertical and horizontal prediction modes. Similar to intra prediction, the whole block is intra predicted by sample copying in the prediction direction (horizontal or vertical prediction). The residual is quantized and the difference between the quantized residual and its prediction (horizontal or vertical) quantized value is coded. It can be described as follows: for a block of size M (rows) x N (columns), let r i,j, 0≤i≤M-1, 0≤j≤N-1 are the prediction residuals after implementing intra prediction using unfiltered samples from above or left block boundary samples, horizontal (copying left neighboring pixel values row by row over the prediction block) or vertical (copying the top neighboring row to each row in the prediction block). Let Q(r i,j ), 0≤i≤M-1, 0≤j≤N-1 denote the quantized version of the residual r i,j , where the residual is the difference between the original block and the prediction block values. Then a block DPCM is applied to the quantized residual samples resulting in a modified MxN array with elements When vertical BDPCM is signaled:

[0134]

[0135] For horizontal prediction, similar rules apply, the residual quantized samples are obtained by:

[0136]

[0137] The residual quantized samples are sent to the decoder.

[0138] At the decoder side, the above calculations are reversed to produce Q(r i,j ), 0≤i≤M-1, 0≤j≤N-1. For the vertical prediction case,

[0139]

[0140] For the horizontal case,

[0141]

[0142] The inverse quantized residual Q -1 (Q(r i,j )) is added to the intra frame block prediction values to produce the reconstructed sample values.

[0143] The main benefit of this scheme is that the inverse DPCM can be done dynamically during the coefficient parsing, only the predictor needs to be added when parsing the coefficients, it can also be implemented after parsing.

[0144] 2.8 Adaptive loop filter

[0145] In VTM5, an adaptive loop filter (ALF) with block-based filter adaptation is applied. For the luma component, one out of 25 filters is selected for each 4x4 block based on the direction value and activity value of the local gradient.

[0146] 2.8.1.1 Filter shape

[0147] In VTM5, two diamond filter shapes (as shown in FIG. 8) are used. A 7x7 diamond is used for the luma component and a 5x5 diamond is used for the chroma components.

[0148] 2.8.1.2 Block classification

[0149] For the luma component, each block is classified into one of 25 classes. The classification index C is derived from its directional value D and activity value quantized as follows:

[0150]

[0151] To compute D and First, the gradients in the horizontal, vertical and two diagonal directions are computed using a one-dimensional Laplacian operator:

[0152]

[0153]

[0154]

[0155]

[0156] where the indices i and j refer to the coordinates of the top-left sample in the 4x4 block and R(i,j) denotes the reconstructed sample at coordinate (i,j).

[0157] To reduce the complexity of the block classification, a subsampled one-dimensional Laplacian computation is applied. As shown in FIG. 9, the same subsampling positions are used for the gradient computation in all directions. Figures 9A-9D

[0158] The maximum and minimum values of the horizontal and vertical directional gradients are then set as:

[0159]

[0160] The maximum and minimum values of the two diagonal directional gradients are set as:

[0161]

[0162] To derive the value of the directional value D, these values are compared to each other and to two thresholds t1 and t2:

[0163] Step 1. If and are both true, then set D to 0.

[0164] Step 2. If continue with Step 3; otherwise continue with Step 4. ​

[0165] Step 3. If Set D to 2; otherwise set D to 0.

[0166] Step 4. If Set D to 4; otherwise set D to 3.

[0167] The activity value A is computed as follows:

[0168]

[0169] A is further quantized to the range 0 to 4, inclusive, and the quantized value is denoted by

[0170] For chroma components in a picture, the classification method is not applied, e.g., one set of ALF coefficients is applied for each chroma component.

[0171] 2.8.1.3 Geometrical transformation of filter coefficients and clipping values

[0172] Before filtering each 4x4 luma block, a geometrical transformation such as rotation or diagonal and vertical flip is applied to the filter coefficients f(k,l) and the corresponding filter clipping values c(k,l) depending on the gradient value computed for the block. This is equivalent to applying these transformations to the samples in the filter support region. The idea is to make different blocks for which ALF is applied more similar by adjusting their directionality.

[0173] Three geometrical transformations are introduced, including diagonal, vertical flip and rotation:

[0174] Diagonal: f D (k,l) = f(l,k), c D (k,l) = c(l,k),

[0175] Vertical flip: f V (k,l) = f(k,K-l-1), c V (k,l) = c(k,K-l-1)

[0176] Rotation: f R (k,l) = f(K-l-1,k), c R (k,l) = c(K-l-1,k)

[0177] Here, K is the size of the filter, 0≤k,l≤K-1 are the coefficient coordinates, so that position (0,0) is at the top-left corner and position (K-1,K-1) is at the bottom-right corner. The transformation is applied to the filter coefficients f(k,l) and clipping values c(k,l) depending on the gradient value computed for the block. The relationship between the transformation and the four gradients for the four directions is summarized in Table 2.

[0178] Table 2: Mapping of computed gradients and transforms for one block

[0179] Gradient value Transform g d2 <g d1 and g h <g v ]]> No transform g d2 <g d1 and g v <g h ]]> Diagonal g d1 g d2 and g h g v ]]> Vertical flip g d1 <g d2 and g v <g h ]]> Rotation

[0180] 2.8.1.4 Filter parameter signaling

[0181] In VTM5, ALF filter parameters are signaled in an Adaptation Parameter Set (APS). In one APS, up to 25 sets of luma filter coefficients and clipping value indices, and up to one set of chroma filter coefficients and nd clipping value indices can be sent. To reduce the bit overhead, filter coefficients of different categories can be combined. In the slice header, the index of the APS used by the current slice is signaled.

[0182] The clipping value indices decoded from the APS allow to determine the clipping values using the table of clipping values for luma and the table of clipping values for chroma. These clipping values depend on the internal bit depth. More precisely, the table of clipping values for luma and the table of clipping values for chroma are obtained by:

[0183]

[0184]

[0185] Here, B is equal to the internal bit depth, and N is equal to 4, which is the number of clipping values allowed in VTM5.0.

[0186] The filtering process can be controlled at the CTB level. A flag is always signaled to indicate whether ALF is applied to the luma CTB or not. The luma CTB can select one filter set from 16 fixed filter sets and the filter set in the APS. The filter set index is signaled for the luma CTB to indicate which filter set is applied. The 16 fixed filter sets are pre-defined and hard-coded in both the encoder and the decoder.

[0187] The filter coefficients are quantized to have a norm equal to 128. To limit the multiplication complexity, a bitstream conformance is applied such that the coefficient values at non-central positions should be in the range of -2 7 to 2 7 -1, inclusive. The central position coefficients are not signaled in the bitstream and are considered equal to 128.

[0188] 2.8.1.5 Filtering process

[0189] At the decoder side, when the CTB enables ALF, each sample within the CU is filtered to produce a sample value as shown below,

[0190]

[0191] where f(k, l) denotes the decoded filter coefficients, K(x, y) is a clipping function, and c(k, l) denotes the decoded clipping parameters. The variables k and l vary between 0 and L - 1, where L denotes the filter length. The clipping function K(x, y) = min(y, max(-y, x)) corresponds to the function Clip3(-y, y, x). and where f(k, l) denotes the decoded filter coefficients, K(x, y) is a clipping function, and c(k, l) denotes the decoded clipping parameters. The variables k and l vary between 0 and L - 1, where L denotes the filter length. The clipping function K(x, y) = min(y, max(-y, x)) corresponds to the function Clip3(-y, y, x).

[0192] 2.8.1.6 Reduced virtual boundary filtering process for line buffer

[0193] In VTM5, to reduce the line buffer requirement of ALF, an improved block classification and filtering is applied for samples near the horizontal CTU boundary. For this purpose, a virtual boundary is defined as the line that moves the horizontal CTU boundary by “N” samples, as shown in Figure 10 where N = 4 for luma components and N = 2 for chroma components.

[0194] As shown in Figure 11 , a modified block classification is applied for chroma components. For the one-dimensional Laplacian gradient calculation for the 4x4 block above the virtual boundary, only samples above the virtual boundary are used. Similarly, for the one-dimensional Laplacian gradient calculation for the 4x4 block below the virtual boundary, only samples below the virtual boundary are used. The quantization of the activity value A is scaled accordingly, considering the reduced number of samples used in the one-dimensional Laplacian gradient calculation.

[0195] For the filtering process, a symmetric padding operation at the virtual boundary is applied for luma and chroma components. As shown in Figure 11 , when the filtered sample is located below the virtual boundary, the neighboring sample located above the virtual boundary is padded. At the same time, the corresponding sample on the other side is also symmetrically padded.

[0196] 2.9 Sample Adaptive Offset (SAO)

[0197] Sample adaptive offset (SAO) is applied to the reconstructed signal after the deblocking filter by using the offsets specified for each CTB by the encoder. The HM encoder first decides whether to apply the SAO process to the current slice. If SAO is applied to the slice, each CTB is classified into one of five SAO types as shown in Table 3. The concept of SAO is to classify pixels and reduce distortion by adding an offset to each class of pixels. The SAO operation includes edge offset (EO) for pixel classification in SAO types 1-4 using edge attribute and band offset (BO) for pixel classification in SAO type 5 using pixel intensity. Each applicable CTB has SAO parameters including sao_merge_left_flag, sao_merge_up_flag, SAO type, and four offsets. If sao_merge_left_flag is equal to 1, the current CTB will reuse the SAO type and offsets of the CTB to the left. If sao_merge_up_flag is equal to 1, the current CTB will reuse the SAO type and offsets of the CTB above.

[0198] Table 3: SAO type specification

[0199] SAO type Sample adaptive offset type to use Number of categories 0 None 0 1 One-dimensional 0-degree mode edge offset 4 2 One-dimensional 90-degree mode edge offset 4 3 One-dimensional 135-degree mode edge offset 4 4 One-dimensional 45-degree mode edge offset 4 5 With offset 4

[0200] 2.9.1 Operation of each SAO type

[0201] As shown in Figure 12 , edge offset classifies the current pixel p using four one-dimensional 3-pixel patterns considering edge direction information. From left to right are: 0 degrees, 90 degrees, 135 degrees, and 45 degrees.

[0202] According to Table 4, each CTB is classified into one of 5 categories.

[0203] Table 4: EO pixel classification rule

[0204] Category Condition Meaning 0 None of the following Generally monotonic 1 p < 2 adjacent Local minimum 2 p < 1 adjacent && p == 1 adjacent Edge 3 Adjacent p>1 && adjacent p==1 Edge 4 Adjacent p>2 Local maximum

[0205] Band offset (BO) divides all pixels in a CTB region into 32 uniform bands using the top 5 bits of the pixel value as the band index. In other words, the pixel intensity range is divided into 32 equal segments from zero to the maximum intensity value (e.g. 255 for 8-bit pixels). Four adjacent bands are combined together, each group represented by its leftmost position as shown in Figure 13 . The encoder searches all positions by compensating the offset of each band to obtain the group with the maximum distortion reduction.

[0206] 2.10 Combined inter and intra prediction (CIIP)

[0207] In VTM5, when a CU is coded in merge mode, if the CU contains at least 64 luma samples (i.e. CU width times CU height is equal to or larger than 64), if both CU width and CU height are smaller than 128 luma samples, an additional flag is signaled to indicate whether the combined inter / intra prediction (CIIP) mode is applied to the current CU. As the name suggests, CIIP prediction combines inter prediction signaling with intra prediction signaling. The inter prediction signaling P inter is derived using the same inter prediction process applied for regular merge mode intra ; the intra prediction signaling P CIIP is derived following the regular intra prediction process for planar mode. Then, a weighted average is used to combine the intra and inter prediction signaling, where the weight value is calculated according to the coding modes of the top and left neighboring blocks (as shown in Figure 14

[0208] - if the top neighboring value is available and coded as intra, set isIntraTop to 1, otherwise set it to 0;

[0209] - if the left neighboring value is available and coded as intra, set islntraLeft to 1, otherwise set it to 0;

[0210] - if (islntraLeft + islntraLeft) is equal to 2, set wt to 3;

[0211] - otherwise, if (islntraLeft + islntraLeft) is equal to 1, set wt to 2;

[0212] - otherwise, set wt to 1.

[0213] The CIIP prediction is formed as follows:

[0214] P CIIP = ((4 - wt) * P inter + wt * P intra + 2) » 2

[0215] 2.11 Luma Mapping and Chroma Scaling (LMCS)

[0216] In VTM5, a new processing block called Luma Mapping and Chroma Scaling (LMCS) is added before the loop filter as a coding tool. LMCS has two main components: 1) a loop mapping of the luma component based on an adaptive piecewise linear model; 2) for the chroma components, a luma-dependent chroma residual scaling is applied. Figure 15 The LMCS architecture is shown from the decoder’s perspective.Figure 15 The light blue shaded block in indicates the location where the processing is applied in the mapped domain; it includes inverse quantization, inverse transform, luma intra prediction, and addition of luma prediction and luma residual. Figure 15 The unshaded block in indicates the location where the processing is applied in the original (e.g., non-mapped) domain; it includes in-loop filters such as deblocking, ALF, and SAO, motion-compensated prediction, chroma intra prediction, addition of chroma prediction and chroma residual, and storing the decoded picture as a reference picture. Figure 15 The light yellow shaded block in is the new LMCS functional block, including forward and inverse mapping of luma signaling and luma-dependent chroma scaling process. Like most other tools in VVC, LMCS can be enabled / disabled at sequence level using an SPS flag.

[0217] 2.12 Adaptive Color Transform (ACT)

[0218] 2.12.1 ACT in HEVC Screen Content Coding Extension

[0219] In HEVC SCC extension, several tools have been proposed and used to improve the efficiency of SCC under the HEVC framework. For example, to exploit the repetitive patterns in SC, an intra block copy (IBC) scheme is adopted. Similar to the motion-compensated scheme for inter pictures, the IBC mode searches for repetitive patterns in the already reconstructed region of the current picture. Another direction to improve SCC is to reduce the inter-color component redundancy of the RGB / YCbCr sequence in 4:4:4 chroma format.

[0220] The cross-component prediction (CCP) technique signals a weighting parameter index for each chroma color component of a transform unit. CCP provides good coding efficiency improvement with limited added complexity, and thus it is adopted by the HEVC range extension and is part of the HEVC version 2 that specifies the description of the range extension and other extensions.

[0221] To further exploit the inter-color component correlation of SCC, the in-loop adaptive color-space transform (ACT) of the HEVC SCC extension is adopted. The basic idea of ACT is to adaptively transform the prediction residual into a color space where the redundancy among the three color components is reduced. Before and after this, the signaling follows the existing coding path in the HEVC range extension. To keep the complexity as low as possible, only one additional color space (e.g., RGB to YCgCo-R inverse transform) is considered, which can be easily implemented by shift and addition operations.

[0222] The encoding procedure using ACT is as followsFigure 16 is shown.

[0223] The decoding process using ACT is shown in Figure 17 .

[0224] 2.12.2 Transformations used in ACT

[0225] For lossy coding, the YCgCo transform is used, while its invertible variant (e.g. YCgCo-R) is used for lossless coding.

[0226] The YCgCo forward and inverse transform processes are as follows: taking pixels in (R, G, B) color format as an example:

[0227] Forward:

[0228] Inverse:

[0229] Unlike the YCgCo transform which can be implemented through matrix multiplication, the invertible color space transform used in ACT (e.g. YCgCo-R) can only be implemented in lifting-based operations, as shown below:

[0230] Forward:

[0231] Inverse:

[0232] 2.12.3 Usage of ACT

[0233] For each TU, a flag can be signaled to indicate the usage of color space transform. In addition, for intra coded CUs, ACT is enabled only when the chroma and luma intra prediction modes are the same, e.g. the chroma block is coded with DM mode.

[0234] Figure 16 A block diagram showing the proposed method at the encoder is shown, where the residual signal derived from intra / inter prediction is taken as input. The proposed functional blocks include forward and inverse color space transform, which are located in the coding loop and highlighted. As Figure 16 shown, after the intra or inter prediction process (including the prediction process of IBC mode), it is determined whether to implement the forward color space transform. By introducing the color space transform, the color space of the input signal can be converted to YCgCo, which has less correlation between the three color components. Then, the original coding process is further invoked in sequence, e.g. CCP, integer transform (e.g. T in Figure 16 ), quantization (e.g. Q in Figure 16 ) and entropy coding process if applicable. Meanwhile, in the reconstruction or decoding process as shown in Figure 17 , the traditional inverse quantization (e.g. Figure 17IQ in, IT out), and inverse CCP (if applicable) in the encoder, and inverse color transform (e.g. Figure 17 After the color space conversion process in the encoder, inverse color transform is applied to convert the coded residual back to the original color space. It is noted that the color space conversion process is applied to the residual signal, not the reconstructed signal. With this approach, the decoder only needs to implement the color space inverse transform process, which can keep the increase of complexity at the lowest possible level. In addition, in ACT, a fixed color space transform, e.g., YCgCo and YCgCo-R, is used regardless of the input color space.

[0235] 2.12.4 ACT in VVC

[0236] ACT is based on CU, not TU. The core transform for color space conversion is kept the same as that for HEVC. Specifically, the forward and inverse YCgCo color transform matrices as described below are applied.

[0237] In addition, to compensate for the dynamic range change of the residual signal before and after color conversion, a QP adjustment of (-5, -5, -3) is applied to the transformed residual.

[0238] On the other hand, the forward and inverse color transforms need to access all three components of the residual. Accordingly, in the proposed implementation, ACT is disabled in the following two cases, where all residuals of the three components are not available.

[0239] Separation tree partitioning: When separation tree is applied, the luma and chroma samples within one CTU are partitioned by different structures. This results in CUs in the luma tree containing only luma components, while CUs in the chroma tree containing only two chroma components.

[0240] Intra sub-partition prediction (ISP): ISP sub-partitioning is only applied to luma, while chroma signals are coded without being partitioned. In the current ISP design, except for the last ISP sub-partition, other sub-partitions contain only luma components.

[0241] 2.13 Internal bit-depth increase (IBDI)

[0242] In HEVC and VVC coding, IBDI is used to improve the in-loop processing precision to achieve better coding efficiency.

[0243] For example, for images / videos with 8-bit bit-depth, instead of encoding the 8-bit signal directly, a 10-bit source is generated by left-shifting each pixel p by 2 bits, e.g., P « 2. Then for the encoder and decoder, they have no information from the original source of 8 bits. Instead, it will be treated as a 10-bit video. At the time of decoding, if it is needed to reconstruct the 8-bit video, a conversion from 10-bit to 8-bit will be applied and rounding is done. For example, let p denote the 10-bit reconstructed pixel, then the 8-bit reconstruction is clip3(0, 255, (P + 1) » 2).

[0244] However, without knowing the original source bit-depth, e.g., the input bit-depth, sometimes the coding efficiency can be compromised. For example, in transform skip coding, the allowed minimum QP should be aligned with the input bit-depth, not the internal bit-depth.

[0245] 3. Examples of problems solved by embodiments

[0246] (1) Currently, quantization and dequantization in video coding only rely on the internal bit-depth, without considering the input bit-depth.

[0247] (2) Currently, the loop filtering process only relies on the internal bit-depth, without considering the input bit-depth.

[0248] (3) Currently, the prediction process only relies on the internal bit-depth, without considering the input bit-depth.

[0249] (4) Currently, the LMCS process only relies on the internal bit-depth, without considering the input bit-depth.

[0250] (5) Currently, the reconstruction process only relies on the internal bit-depth, without considering the input bit-depth.

[0251] (6) Currently, pixel clipping does not consider the input bit-depth.

[0252] (7) Currently, adaptive color transform does not consider the input bit-depth.

[0253] 4. Examples of embodiments

[0254] The following detailed items should be considered as examples to explain the general concepts. These items should not be interpreted narrowly. Furthermore, these items can be combined in any way.

[0255] In the following, the internal bit-depth is denoted as IBD and the input bit-depth is denoted as iBD.

[0256] 1. The reconstructed value can be rounded according to the input bit-depth.

[0257] a. In one example, for a value P in the IBD bit depth, the reconstruction can be clip3(0, (1 « IBD) - 1, (P + (1 « (IBD - iBD - 1))) » (IBD - iBD) « (IBD - iBD)).

[0258] b. In one example, for a value P in the IBD bit depth, the reconstruction can be P » (IBD - iBD) « (IBD - iBD).

[0259] c. Alternatively, the reconstructed value can be rounded according to the lowest allowed QP of the transform skip block.

[0260] 2. The prediction value can be rounded according to the input bit depth.

[0261] a. In one example, for a value P in the IBD bit depth, the prediction used thereafter can be clip3(0, (1 « IBD) - 1, (P + (1 « (IBD - iBD - 1))) » (IBD - iBD) « (IBD - iBD)).

[0262] b. In one example, for a value P in the IBD bit depth, the prediction used thereafter can be P » (IBD - iBD) « (IBD - iBD).

[0263] c. Alternatively, the prediction value can be rounded according to the lowest allowed QP of the transform skip block. 3. The loop filtering process can depend on the input bit depth.

[0264] a. In one example, the output of the loop filtering process can be rounded according to the input bit depth.

[0265] i. In one example, the output of the deblocking process can be rounded according to the input bit depth.

[0266] ii. In one example, the output of the ALF process can be rounded according to the input bit depth.

[0267] iii. In one example, the output of the SAO process can be rounded according to the input bit depth.

[0268] iv. In one example, the output of the CC-ALF process can be rounded according to the input bit depth.

[0269] b. Alternatively, the loop filtering process can depend on the lowest allowed QP of the transform skip block.

[0270] 4. The LMCS process can depend on the input bit depth.

[0271] a. In one example, the output of the LMCS mapping can be rounded according to the input bit-depth.

[0272] b. Alternatively, the LMCS process can depend on the lowest allowed QP of the transform skip block.

[0273] 5. The pixel clipping range can depend on the input bit-depth.

[0274] a. In one example, the pixel clipping range can be [0, ((1 « iBD) - 1) « (IBD - iBD)].

[0275] b. In one example, when IBD is equal to 10 and iBD is equal to 8, the pixel clipping range can be [0, 1020].

[0276] c. Alternatively, the pixel clipping range can depend on the lowest allowed QP of the transform skip block.

[0277] 6. The adaptive color transform can depend on the input bit-depth.

[0278] a. In one example, when iBD is equal to IBD, the YCoCg-R color transform can be applied. The YCoCg color model, also known as YCgCo color model, is a color space formed by a simple transformation of the associated RGB color space to a luminance value (denoted as Y) and two chroma values called green chroma (Cg) and orange chroma (Co). A scaled version of the transformation, sometimes called YCoCg-R (where "-R" refers to RGB reversibility), can be implemented effectively by reducing the bit-depth.

[0279] b. In one example, when IBD - iBD >= 2, the YCoCg color transform can be applied.

[0280] c. Alternatively, the adaptive color transform can depend on the lowest allowed QP of the transform skip block.

[0281] 7. In the above methods, the input bit-depth can be signaled as a high-level syntax element.

[0282] a. In one example, the input bit-depth can be signaled in the DPS / VPS / SPS / picture header / slice header.

[0283] b. In one example, the input bit-depth can be inferred from the lowest allowed QP of the transform skip block.

[0284] 8. Whether and / or how the above methods can be applied can depend on the characteristics of the current block.

[0285] a. In one example, the above methods can be applied when the QP of the current block is less than a given threshold.

[0286] b. In one example, the above method can be applied when the QP of the current block is greater than a given threshold.

[0287] c. In one example, the above method can be applied when (QP % 6) is equal to a certain value of the current block.

[0288] d. In one example, the above method can be applied when the width and / or height and / or size of the current block is less than a given threshold.

[0289] e. In one example, the above method can be applied when the width and / or height and / or size of the current block is greater than a given threshold.

[0290] f. In one example, the above method can be applied only to luma blocks.

[0291] g. In one example, the above method can be applied only to chroma blocks.

[0292] h. In one example, the above method can be applied when the current block is coded in mode X.

[0293] i. In one example, X can refer to an intra mode.

[0294] ii. In one example, X can refer to an inter mode.

[0295] iii. In one example, X can refer to a transform skip coding mode.

[0296] iv. In one example, X can refer to a BDPCM mode.

[0297] v. In one example, X can refer to an IBC mode.

[0298] vi. In one example, X can refer to a palette mode.

[0299] vii. In one example, X can refer to an ISP mode.

[0300] viii. In one example, X can refer to a MIP mode.

[0301] ix. In one example, X can refer to a LMCS mode.

[0302] x. In one example, X can refer to a CCLM mode.

[0303] xi. In one example, X can refer to a DM mode.

[0304] xii. In one example, X can refer to a DC mode.

[0305] xiii. In one example, X can refer to an ACT mode.

[0306] The examples described above can be incorporated into the context of the methods described below, e.g., method 1800, which can be performed in a video decoder or video encoder.

[0307] Figure 18 A flowchart illustrating an example method 1800 for video processing is shown. The method 1800 includes, at operation 1810, determining a given bit-depth (BD) based on a bit-depth used to represent a video during a conversion between a current block of the video and a bitstream representation of the video.

[0308] The method 1800 includes, at operation 1820, performing the conversion using the given bit-depth as a computational bit-depth (cBD) for at least one or more computations of the conversion.

[0309] In some embodiments, the following technical solutions can be implemented:

[0310] A1. A method of video processing, comprising: determining a given bit-depth (BD) based on a bit-depth used to represent a video during a conversion between a current block of the video and a bitstream representation of the video; and performing the conversion using the given bit-depth as a computational bit-depth (cBD) for at least one or more computations of the conversion.

[0311] A2. The method of solution A1, wherein the at least one or more computations includes a rounding operation on a reconstructed value or a predicted value.

[0312] A3. The method of solution A2, wherein the rounding operation is defined as: Clip3(0, (1 « cBD) - 1, (P + (1 « (cBD - BD - 1))) » (cBD - BD) « (cBD - BD)), where the value P is the reconstructed value or the predicted value having the computational bit-depth, and where Clip3(x, min, max) is defined as:

[0313]

[0314] A4. The method of solution A2, wherein the rounding operation is defined as: P » (cBD - BD) « (cBD - BD), where the value P is the reconstructed value or the predicted value having the computational bit-depth.

[0315] A5. The method of solution A2, wherein the rounding operation is based on a lowest allowed quantization parameter (QP) for a transform skip block.

[0316] A6. The method of any of solution Al, wherein the at least one or more calculations comprise a rounding operation on an output value of the in-loop filtering process.

[0317] A7. The method of solution A6, wherein the in-loop filtering process comprises at least one of a deblocking process, an adaptive loop filtering (ALF) process, a sample adaptive offset (SAO) process, or a cross-component ALF (CC-ALF) process.

[0318] A8. The method of solution A6, wherein the in-loop filtering process is based on a lowest allowed quantization parameter (QP) for a transform-skip block.

[0319] A9. The method of solution Al, wherein the at least one or more calculations comprise a luma mapping and chroma scaling (LMCS) process.

[0320] A10. The method of solution A9, wherein the at least one or more calculations comprise a rounding operation on an output of the LMCS process.

[0321] A11. The method of solution A9, wherein the LMCS process is based on a lowest allowed quantization parameter (QP) for a transform-skip block.

[0322] A12. The method of solution Al, wherein the at least one or more calculations comprise a pixel clipping operation on an output pixel clipping range.

[0323] A13. The method of solution A12, wherein the output pixel clipping range is [0, ((1 « BD) - 1) « (cBD - BD)].

[0324] A14. The method of solution A13, wherein cBD = 10 and BD = 8, wherein the output pixel clipping range is [0, 1020].

[0325] A15. The method of solution A12, wherein the output pixel clipping range is based on a lowest allowed quantization parameter (QP) for a transform-skip block.

[0326] A16. The method of solution Al, wherein the at least one or more calculations comprise an adaptive color transform (ACT).

[0327] A17. The method of solution A16, wherein the ACT comprises a YCoCg-R color transform when it is determined that BD is equal to cBD.

[0328] A18. The method of solution A16, wherein the ACT comprises a YCoCg color transform when it is determined that (cBD - BD) > 2.

[0329] A19. The method of solution A16, wherein the ACT is based on a lowest allowed quantization parameter (QP) for a transform-skip block.

[0330] A20. The method of any of solution A1, wherein the given depth is signaled in the bitstream representation as a high-level syntax element.

[0331] A21. The method of solution A20, wherein the given depth is signaled in a decoder parameter set (DPS), a video parameter set (VPS), a sequence parameter set (SPS), a picture header, or a slice header.

[0332] A22. The method of solution A20, wherein the given depth is inferred from a lowest allowed quantization parameter (QP) of a transform skip block.

[0333] A23. The method of any of solutions A1 to A22, wherein the at least one or more computations are further based on one or more characteristics of the current block.

[0334] A24. The method of solution A23, wherein the one or more characteristics comprise a quantization parameter (QP) of the current block being less than a predetermined threshold.

[0335] A25. The method of solution A23, wherein the one or more characteristics comprise a quantization parameter (QP) of the current block being greater than a predetermined threshold.

[0336] A26. The method of solution A23, wherein the one or more characteristics comprise (QP % 6) being a predetermined value, wherein QP is a quantization parameter of the current block.

[0337] A27. The method of solution A23, wherein the one or more characteristics comprise a width, height, or size of the current block being less than a predetermined threshold.

[0338] A28. The method of solution A23, wherein the one or more characteristics comprise a width, height, or size of the current block being greater than a predetermined threshold.

[0339] A29. The method of solution A23, wherein the one or more characteristics comprise the current block being a luma block or a chroma block.

[0340] A30. The method of solution A23, wherein the one or more characteristics comprise a coding mode of the current block being an intra mode, an inter mode, a transform skip coding mode, a block differential pulse code modulation (BDPCM) mode, an intra block copy (IBC) mode, a palette mode, an intra sub partition prediction (ISP) mode, a matrix-based intra prediction (MIP) mode, a luma mapping and chroma scaling (LMCS) mode, a cross component linear model (CCLM) mode, a DM mode, a DC mode, or an adaptive color transform (ACT) mode.

[0341] A31. The method of any of solutions Al to A30, wherein the conversion produces the current block from the bitstream representation.

[0342] A32. The method of any of solutions Al to A30, wherein the conversion produces the bitstream representation from the current block.

[0343] A33. An apparatus in a video system comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any of solutions Al to A32.

[0344] A34. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing the method in any of solutions Al to A32.

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

[0346] The system 1300 can include a codec component 1904, which can implement various coding or encoding methods described in this document. The codec component 1904 can reduce the average bitrate of video output from the input 1902 to the codec component 1304 to produce a coded representation of the video. Thus, the coding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the codec component 1904 can be stored or transmitted via a communication connected as shown by component 1906. The stored or transmitted bitstream (or coded) representation of the video received at the input 1902 can be used by component 1908 to produce pixel values or displayable video sent to a display interface 1910. The process of producing user- visible video from a bitstream representation is sometimes referred to as video decompression. Furthermore, although certain video processing operations are referred to as “coding” operations or tools, it should also be recognized that the coding tools or operations are used by an encoder, and corresponding decoding tools or operations that reverse the coding results would be performed by a decoder.

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

[0348] Figure 20 FIG. 1 is a block diagram illustrating an example video coding system 100 that can utilize the techniques of this disclosure.

[0349] As shown in FIG. 1, video coding system 100 can include a source device 110 and a destination device 120. Source device 110 generates encoded video data, which can be referred to as a video encoding device. Destination device 120 can decode the encoded video data generated by source device 110, which can be referred to as a video decoding device. Figure 20

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

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

[0352] Destination device 120 can include an I / O interface 126, a video decoder 124, and a display device 122.

[0353] I / O interface 126 can include a receiver and / or a modem.

[0354] ​I / O interface 126 can obtain encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 can decode the encoded video data. Display device 122 can display the decoded video data to a user. Display device 122 can be integrated with target device 120, or can be external to target device 120, which is configured to interface with an external display device.

[0355] Video encoder 114 and video decoder 124 can operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, Versatile Video Coding (VVC) standard, and other current and / or further standards.

[0356] Figure 21 is a block diagram illustrating an example of a video encoder 200 that can be video encoder 114 in system 100 described in FIG. 1. Figure 20

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

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

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

[0360] Furthermore, some components, such as motion estimation unit 204 and motion compensation unit 205, can be highly integrated, but are represented separately for illustrative purposes. Figure 5

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

[0362] ​​​The mode selection unit 203 can select one of the coding modes (intra or inter, e.g., based on error results), and provide 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 can select a combination of intra and inter prediction (CIIP) mode, where the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 can also select a resolution for the motion vectors (e.g., sub-pixel or integer pixel precision) for the block.

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

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

[0365] In some examples, the motion estimation unit 204 can perform single prediction for a current video block, and the motion estimation unit 204 can search a reference picture in list 0 or list 1 for a reference video block for the current video block. The motion estimation unit 204 can then generate a reference index indicating the reference picture in list 0 or list 1 that contains the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. The motion estimation unit 204 can output the reference index, the prediction direction indicator, and the motion vector as the motion information for the current video block. The motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information for the current video block.

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

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

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

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

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

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

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

[0373] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a negative sign) the predicted video block of the current video block from the current video block. The residual data for the current video block can include a residual video block that corresponds to different sample components of samples in the current video block.

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

[0375] Transform processing unit 208 can produce one or more transform coefficient video blocks for the current video block by applying one or more transforms to a residual video block associated with the current video block.

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

[0377] Inverse quantization unit 210 and inverse transform unit 211 can apply inverse quantization and inverse transform, respectively, to a transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 can add the reconstructed residual video block to corresponding samples of one or more prediction video blocks produced from prediction unit 202 to produce a reconstructed video block associated with the current block for storage in buffer 213.

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

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

[0380] Figure 22 is an example block diagram illustrating a video decoder 300 that can be Figure 20 the video decoder 114 in the system 100 described in

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

[0382] In Figure 22 examples, video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, video decoder 300 can perform a decoding pass generally reciprocal to the encoding pass described with respect to video encoder 200 (e.g., Figure 21 ).

[0383] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream can include entropy coded video data (e.g., encoded video data blocks). The entropy decoding unit 301 can decode the entropy coded video data and, from the entropy decoded video data, the motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. For example, the motion compensation unit 302 can determine this information by performing AMVP and merge modes.

[0384] The motion compensation unit 302 can generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter used at sub-pixel precision can be included in the syntax elements.

[0385] The motion compensation unit 302 can use the interpolation filter used by video encoder 20 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by video encoder 200 from the received syntax information and use the interpolation filter to generate the prediction block.

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

[0387] The intra prediction unit 303 can use intra prediction modes, e.g., received in the bitstream, to form a prediction block from spatial neighboring blocks. The inverse quantization unit 303 inverse quantizes, i.e., dequantizes, quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0388] The reconstruction unit 306 can add the residual block to the corresponding prediction block produced by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If desired, a deblocking filter can also be applied to filter the decoded block to remove blocking artifacts. The decoded video blocks are then stored in the buffer 307, which provides reference blocks for subsequent motion compensation and also produces decoded video for presentation on a display device.

[0389] Figure 23is a flowchart representation of a video processing method of the present technology. The method 2300 includes, at operation 2310, for a conversion between a current block of a video and a bitstream representation of the video, determining usage of an adaptive color transform coding tool based on an input bit depth of source samples in the current block. The method 2300 also includes, at operation 2320, performing the conversion based on the determination.

[0390] In some embodiments, during the conversion, in a case where the input bit depth is the same as an internal bit depth of the adaptive color transform coding tool, a color transform from a green-blue-red color space to a luma value Y and two chroma values including a green chroma (Cg) and an orange chroma (Co) with invertibility is applied. In some embodiments, the internal bit depth of the adaptive color transform coding tool is denoted as IBD, and the input bit depth is denoted as iBD. During the conversion, in a case where IBD-iBD≥2, a color transform from a green-blue-red color space to a luma value Y and two chroma values including a green chroma (Cg) and an orange chroma (Co) is applied. In some embodiments, the adaptive color transform coding tool is applied based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0391] Figure 24 is a flowchart representation of a video processing method of the present technology. The method 2400 includes, at operation 2410, for a conversion between a current block of a video and a bitstream representation of the video, determining that a reconstructed value or a prediction value of a sample of the current block is rounded according to an input bit depth of a source value of the sample. The method 2400 also includes, at operation 2420, performing the conversion based on the determination.

[0392] In some embodiments, the input bit depth is denoted as iBD. The value P is represented in the internal bit depth IBD. The reconstructed value or the prediction value corresponding to the value P is equal to clip3(0, (1 « IBD) - 1, (P + (1 « (IBD-iBD-1))) » (IBD-iBD) « (IBD-iBD)), where clip3 is defined as

[0393] In some embodiments, the input bit depth is denoted as iBD, where the value P is represented in the internal bit depth IBD, and where the reconstructed value or the prediction value corresponding to the value P is equal to P » (IBD-iBD) « (IBD-iBD).

[0394] In some embodiments, the reconstructed value or the prediction value is determined based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0395] Figure 25is a flowchart representation of a video processing method of the present technology. The method 2500 includes, at operation 2510, for a conversion between a current block of a video and a bitstream representation of the video, determining a use of an in-loop filtering process based on an input bit depth of source samples in the current block. The method 2500 includes, at operation 2520, performing the conversion based on the determination.

[0396] In some embodiments, an output of the in-loop filtering process is rounded according to the input bit depth. In some embodiments, the in-loop filtering process includes at least one of a deblocking process, an adaptive loop filtering process, a sample adaptive offset process, or a cross-component adaptive loop filtering process. In some embodiments, the use of the in-loop filtering process is determined based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0397] Figure 26 is a flowchart representation of a video processing method of the present technology. The method 2600 includes, at operation 2610, for a conversion between a current block of a video and a bitstream representation of the video, determining a use of a luma mapping and chroma scaling (LMCS) coding tool based on an input bit depth of source samples in the current block. The method 2600 also includes, at operation 2620, performing the conversion based on the determination.

[0398] In some embodiments, an output of the LMCS coding tool is rounded according to the input bit depth. In some embodiments, the use of the LMCS coding tool is determined based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0399] Figure 27 is a flowchart representation of a video processing method of the present technology. The method 2700 includes, at operation 2710, for a conversion between a block of a video and a bitstream representation of the video, determining a pixel clipping range based on an input bit depth of source pixels. The method 2700 also includes, at operation 2720, performing the conversion based on the determination.

[0400] In some embodiments, an internal bit depth of the conversion is denoted as IBD, and the input bit depth is denoted as iBD, and wherein the pixel clipping range is equal to [0, ((1 « iBD) - 1) « (IBD - iBD)]. In some embodiments, in a case where the internal bit depth is 10 and the input bit depth is 8, the pixel clipping range is [0, 1020]. In some embodiments, the pixel clipping range is based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0401] In some embodiments, the input bit depth is indicated as a syntax element in the bitstream representation. In some embodiments, the syntax element is included in a decoder parameter set, a video parameter set, a sequence parameter set, a picture header, or a slice header in the bitstream representation. In some embodiments, the input bit depth is determined based on a lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

[0402] In some embodiments, the determination is applied in the above-described method in a manner that is based on a characteristic of the current block. In some embodiments, the determination is applied in a case where a quantization parameter of the current block is less than a threshold. In some embodiments, the determination is applied in a case where a quantization parameter of the current block is greater than a threshold. In some embodiments, the characteristic of the current block comprises a quantization parameter of the current block represented as QP, and wherein the determination is applied in a case where (QP % 6) is equal to a predefined value. In some embodiments, the determination is applied in a case where a dimension of the current block is less than a threshold. In some embodiments, the determination is applied in a case where a dimension of the current block is greater than a threshold. In some embodiments, the determination is applied in a case where the current block is associated with a luma component of the video. In some embodiments, the determination is applied in a case where the current block is associated with a chroma component of the video. In some embodiments, the determination is applied in a case where the current block is coded in a particular coding mode. In some embodiments, the particular coding mode comprises at least: an intra mode, an inter mode, a transform skip mode, a block differential pulse code modulation (BDPCM) mode, an intra block copy mode, a palette mode, an intra sub-partition prediction mode, a matrix-based intra prediction mode, a luma mapping and chroma scaling mode, a cross-component linear model mode, a derived mode, a DC prediction mode, or an adaptive color transform mode.

[0403] In some embodiments, the conversion generates the current block from the bitstream representation. In some embodiments, the conversion generates the bitstream representation from the current block.

[0404] It should be appreciated that the disclosed technology can be embodied in a video encoder or decoder to improve compression efficiency using an enhanced coding tree structure.

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

[0406] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, an encoder will not use the tool or mode to convert a video block to a bitstream representation of a video. In another example, when a video processing tool or mode is disabled, a decoder will process a bitstream knowing that the bitstream has not been modified using the video processing tool or mode enabled based on the decision or determination.

[0407] The disclosed and other solutions, examples, embodiments, modules and functional operations set forth in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural equivalents of such as disclosed in this document, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine- readable propagated signal, or a combination of one or more of them. The computer readable medium can be a machine-readable storage device, a machine- readable storage substrate, a memory device, a composition of matter effecting a machine- readable propagated signal, or a combination of one or more of them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. The propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.

[0408] 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 it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and are interconnected by a communication network.

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

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

[0411] Although this patent document contains many details, these should not be construed as limiting the scope of any invention or of the scope of patentable subject matter in which an invention can be embodied. Certain features described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented separately or in any suitable subcombination. Moreover, although features can be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination and the claimed combination can be directed to a subcombination or variation of a subcombination.

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

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

Claims

1. A video processing method, comprising: For the conversion between the current block of the video and the bitstream representation of the video, the use of the adaptive color transformation codec tool is determined based on the input bit depth of the source samples in the current block; as well as Based on the aforementioned determination, the conversion will be performed. The adaptive color transform codec is applied based on the minimum allowed quantization parameters of one or more transform skip blocks associated with the current block.

2. The method as described in claim 1, wherein, During the conversion, with the input bit depth being the same as the internal bit depth of the adaptive color transformation codec, a color transformation from the green-blue-red color space to a luminance value Y and two chrominance values ​​are applied, the two chrominance values ​​including a reversible green chrominance (Cg) and an orange chrominance (Co).

3. The method as described in claim 1, wherein, The internal bit depth of the adaptive color transformation codec tool is represented as IBD, the input bit depth is represented as iBD, and wherein, during the transformation process, when IBD-iBD≥2, a color transformation from the green-blue-red color space to a luminance value Y and two chrominance values ​​are applied, the two chrominance values ​​including green chrominance (Cg) and orange chrominance (Co).

4. The video processing method as described in claim 1, further comprising: For the transformation, the reconstructed or predicted value of the source sample is rounded based on the input bit depth.

5. The method of claim 4, wherein, The input bit depth is represented as iBD, where the value P represents the value in the internal bit depth IBD, and where the reconstructed value or the predicted value corresponding to the value P is equal to clip3(0,(1< <IBD)-1,(P+(1<<(IBD-iBD-1)))> >(IBD-iBD)<<(IBD-iBD)), where clip3 is defined as 6. The method of claim 4, wherein, The input bit depth is denoted as iBD, where the value P represents the value in the inner bit depth IBD, and where the reconstructed value or the predicted value corresponding to the value P is equal to P >> (IBD - iBD) << (IBD - iBD).

7. The method as described in any one of claims 4 to 6, wherein, The reconstructed value or the predicted value is determined based on the lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

8. The video processing method as described in claim 1, further comprising: For the transformation, the use of the loop filtering process is determined based on the input bit depth.

9. The method of claim 8, wherein, The output of the loop filtering process is rounded based on the input bit depth.

10. The method of claim 9, wherein, The loop filtering process includes at least one of the following: a deblocking process, an adaptive loop filtering process, a sample point adaptive offset process, or a cross-component adaptive loop filtering process.

11. The method as described in any one of claims 8 to 10, wherein, The use of the loop filtering process is determined based on the minimum allowed quantization parameters of one or more transform skip blocks associated with the current block.

12. The video processing method as described in claim 1, further comprising: For the conversion, the use of the luminance mapping and chrominance scaling LMCS codec tool is determined based on the input bit depth.

13. The method of claim 12, wherein, The output of the LMCS codec tool is rounded according to the input bit depth.

14. The method of claim 12 or 13, wherein, The use of the LMCS codec tool is determined based on the minimum allowed quantization parameters of one or more transform skip blocks associated with the current block.

15. The video processing method as described in claim 1, further comprising: For the transformation, the pixel cropping range is determined based on the input bit depth.

16. The method of claim 15, wherein, The internal bit depth of the transformation is represented as IBD, and the input bit depth is represented as iBD, wherein the pixel cropping range is equal to [0, ((1< <iBD))-1)<<(IBD-iBD)]。 17. The method of claim 16, wherein, When the internal bit depth is 10 and the input bit depth is 8, the pixel cropping range is [0, 1020].

18. The method as described in any one of claims 15 to 17, wherein, The pixel cropping range is based on the lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

19. The method of claim 1, wherein, The input bit depth is indicated as a syntax element in the bitstream representation.

20. The method of claim 19, wherein, The syntax elements are included in the decoder parameter set, video parameter set, sequence parameter set, image header, or stripe header in the bitstream representation.

21. The method of claim 19 or 20, wherein, The input bit depth is determined based on the lowest allowed quantization parameter of one or more transform skip blocks associated with the current block.

22. The method of claim 1, wherein, The method of determination is applied based on the characteristics of the current block.

23. The method of claim 22, wherein, The determination is applied when the quantization parameter of the current block is less than the threshold.

24. The method of claim 22, wherein, The determination is applied if the quantization parameter of the current block is greater than the threshold.

25. The method of claim 22, wherein, The characteristics of the current block include a quantization parameter of the current block, denoted as QP, wherein the determination is applied when (QP%6) equals a predefined value.

26. The method of claim 22, wherein, The determination is applied if the dimension of the current block is less than the threshold.

27. The method of claim 22, wherein, The determination is applied if the dimension of the current block is greater than the threshold.

28. The method of claim 22, wherein, The determination is applied when the current block is associated with the luminance component of the video.

29. The method of claim 22, wherein, The determination is applied when the current block is associated with the chroma components of the video.

30. The method of claim 22, wherein, The determination is applied when the current block is encoded or decoded in a specific encoding / decoding mode.

31. The method of claim 30, wherein, The specific encoding / decoding modes include at least: intra-frame mode, inter-frame mode, transform skip mode, block differential pulse coding / decoding modulation (BDPCM) mode, intra-frame block copy mode, palette mode, intra-frame sub-segmentation prediction mode, matrix-based intra-frame prediction mode, luminance mapping and chrominance scaling mode, cross-component linear model mode, derived mode, DC prediction mode, or adaptive color transformation mode.

32. The method as described in any one of claims 1 to 6, wherein, The transformation generates the current block from the bitstream representation.

33. The method as described in any one of claims 1 to 6, wherein, The transformation generates the bitstream representation from the current block.

34. An apparatus for a video system, comprising a processor and a non-transitory memory with instructions, wherein, When the instruction is executed by the processor, it causes the processor to perform the method as described in any one of claims 1 to 31.

35. A computer program product stored on a non-transitory computer-readable medium, wherein, The computer program product includes program code for performing the method as described in any one of claims 1 to 31.

36. A video processing apparatus, comprising a processor configured to perform the method as claimed in any one or more of claims 1 to 31.

37. A computer-readable medium having a bitstream representation of video stored thereon, the bitstream representation being generated by the method according to any one or more of claims 1 to 31.