Position dependent coefficient reordering in coded video
By reordering based on position correlation coefficients and determining based on rule-based identity transformations, the encoding and decoding process of video blocks is optimized, solving the problem of inefficient use of transformation skipping modes in existing technologies and improving video encoding efficiency, especially the encoding efficiency of screen content video.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- DOUYIN VISION CO LTD
- Filing Date
- 2021-11-24
- Publication Date
- 2026-06-09
AI Technical Summary
Existing video encoding and decoding technologies are not efficient enough in processing video data, especially screen content videos, in terms of switching skip modes, resulting in low encoding efficiency.
The encoding and decoding process of video blocks is optimized by reordering the coefficients of the video blocks using the Position Relevance Coefficient Reordering (SRCC) method and rule-based identity transformation. This includes determining the application of horizontal or vertical identity transformations and controlling the zeroing operation.
It improves video encoding efficiency, especially for screen content videos, reduces the transmission of redundant information, and enhances encoding efficiency and compression performance.
Smart Images

Figure CN116601953B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application is filed to promptly claim priority and benefit from International Patent Application No. PCT / CN2020 / 131205, filed on November 24, 2020. The entire disclosure of the aforementioned application is incorporated herein by reference as part of the disclosure. Technical Field
[0003] The patent document relates to image and video encoding and decoding. Background Technology
[0004] Digital video accounts for the largest share of bandwidth usage on the Internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video is expected to continue to grow. Summary of the Invention
[0005] This document discloses techniques that can be used in video encoders and decoders to process the codec representation of video using control information useful for decoding the codec representation.
[0006] In one example aspect, a method for processing video data includes: performing a conversion between a current block of video and a bitstream of video. According to rules, in response to the position of samples in the current block, coefficients corresponding to the samples of the current block in the bitstream are arranged before the samples of the current block are used for reconstruction of the current block.
[0007] In another example, a video processing method is disclosed. The method includes: performing a conversion between video blocks and a codec representation of the video; determining, based on a rule, whether a horizontal or vertical identity transformation is applied to the video blocks; and performing the conversion based on the determination. The rule specifies a relationship between the determination and representative coefficients of decoding coefficients from one or more representative blocks of the video.
[0008] In another example aspect, a different video processing method is disclosed. This method includes: performing a conversion between video blocks and a codec representation of the video; determining, based on a rule, whether a horizontal or vertical identity transformation should be applied to the video blocks; and performing the conversion based on the determination. The rule specifies the relationship between the determination and the decoded luminance coefficients of the video blocks.
[0009] In another example, a different video processing method is disclosed. This method includes: performing a conversion between video blocks and the encoded / decoded representation of the video; determining, based on a rule, whether a horizontal or vertical identity transformation should be applied to the video blocks; and performing the conversion based on the determination. The rule specifies the relationship between the determination and a value V associated with a representative coefficient or representative block of the decoded coefficients.
[0010] In another example, a different video processing method is disclosed. This method includes determining that one or more syntax fields exist in the codec representation of a video, wherein the video contains one or more video blocks; and, based on the one or more syntax fields, determining whether a horizontal or vertical identity transformation has been enabled for a video block in the video.
[0011] In another example, a different video processing method is disclosed. This method includes making a first determination regarding whether to enable identity transformation between video blocks used for video and the codec representation of the video; making a second determination regarding whether to enable zeroing operations during the transformation; and performing the transformation based on the first and second determinations.
[0012] In another example, a different video processing method is disclosed. This method includes performing a conversion between video blocks and a codec representation of the video; wherein the video blocks are represented as codec blocks in the codec representation, wherein the non-zero coefficients of the codec blocks are restricted to one or more sub-regions; and wherein an identity transformation is applied to generate the codec blocks.
[0013] In another example, a different video processing method is disclosed. This method includes performing a conversion between a video comprising one or more video regions and a codec representation of the video, wherein the codec representation conforms to a format rule; wherein the format rule specifies that the coefficients of the video regions are reordered according to a mapping after parsing from the codec representation.
[0014] In another example, a different video processing method is disclosed. The method includes: converting video blocks and a codec representation of the video; determining whether a video block satisfies a condition for signaling notification as a partial residual block in the codec representation; and performing a conversion based on the determination; wherein the partial residual block is divided into at least two parts, wherein at least one part does not have a non-zero residual signaled in the codec representation.
[0015] In yet another example, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the methods described above.
[0016] In yet another example, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the methods described above.
[0017] In yet another example, a computer-readable medium on which code is stored is disclosed. This code embodies one of the methods described herein in the form of processor-executable code.
[0018] These and other features are described in this document. Attached Figure Description
[0019] Figure 1An example of a video encoder block diagram is shown.
[0020] Figure 2 Examples of 67 intra-frame prediction modes are shown.
[0021] Figure 3A Examples of reference samples for wide-angle intra-frame prediction are shown.
[0022] Figure 3B Another example of reference samples for wide-angle intra-frame prediction is shown.
[0023] Figure 4 The diagram illustrates the discontinuity problem when the direction exceeds 45 degrees.
[0024] Figure 5A Example definitions of samples used by PDPC for diagonal and adjacent-corner intra-frame modes are shown.
[0025] Figure 5B Another example definition of the samples used by PDPC in diagonal and adjacent-corner intra-frame modes is shown.
[0026] Figure 5C Another example definition of the samples used by PDPC in diagonal and adjacent-corner intra-frame modes is shown.
[0027] Figure 5D This shows yet another example definition of the samples used by PDPC in diagonal and adjacent-corner intra-frame modes.
[0028] Figure 6 Examples of 4×8 and 8×4 block partitioning are shown.
[0029] Figure 7 Examples of block partitioning are shown, except for 4×8, 8×4, and 4×4.
[0030] Figure 8 An example of a quadratic transformation in JEM is shown.
[0031] Figure 9 An example of the simplified quadratic transformation LFNST is shown.
[0032] Figure 10A An example of a forward simplification transformation is shown.
[0033] Figure 10B An example of the inverse simplified transformation is shown.
[0034] Figure 11 An example of a forward LFNST8x8 process with a 16×48 matrix is shown.
[0035] Figure 12 Examples of scan positions 17 to 64 for non-zero elements are shown.
[0036] Figure 13 Example illustrations of the subblock transformation modes SBT-V and SBT-H.
[0037] Figure 14A An example of scan region-based coefficient encoding and decoding (SRCC) is shown.
[0038] Figure 14B Another example of scan region-based coefficient encoding and decoding (SRCC) is shown.
[0039] Figure 15A Example constraints of IST based on the position of non-zero coefficients are shown.
[0040] Figure 15B Another example constraint of IST based on the position of non-zero coefficients is shown.
[0041] Figure 16A This shows an example of a zeroed-out type for a TS codec block.
[0042] Figure 16B This shows another example of a zeroed-out type for a TS codec block.
[0043] Figure 16C This shows another example of a zeroed-out type for a TS codec block.
[0044] Figure 16D This shows yet another zeroing type for the TS codec block.
[0045] Figure 17 This is a block diagram of an example video processing system.
[0046] Figure 18 This is a block diagram illustrating a video encoding / decoding system according to some embodiments of the present disclosure.
[0047] Figure 19 This is a block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0048] Figure 20 This is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0049] Figure 21 This is a block diagram of a video processing device.
[0050] Figure 22 A flowchart of an example method for video processing.
[0051] Figure 23 An example of L-shaped segmentation of a partial residual block is shown.
[0052] Figure 24 An example of a coefficient reordering method is shown.
[0053] Figure 25 An example of a coefficient reordering method is shown.
[0054] Figure 26 This is a flowchart representation of a method for processing video data according to this technology. Detailed Implementation
[0055] The use of chapter headings in this document is for ease of understanding and does not limit the application of the technologies and embodiments disclosed in each chapter to that chapter only. Furthermore, the use of H.266 terminology in some specifications is merely for ease of understanding and not to limit the scope of the disclosed technologies. Thus, the technologies described herein are also applicable to other video codec protocols and designs.
[0056] 1. Overview
[0057] This document relates to video codec technology. Specifically, it covers transform skipping modes and transform types (e.g., identity transforms) in video codecs. It can be applied to existing video codec standards, such as HEVC, or upcoming standards (Multi-Functional Video Codec). It can also be applied to future video codec standards or video codecs.
[0058] 2. Preliminary Discussion
[0059] Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, while ISO / IEC developed the MPEG-1 and MPEG-4 Visual standards. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard, with the goal of reducing the bit rate by 50% compared to HEVC.
[0060] 2.1. Encoding and decoding process of a typical video codec
[0061] Figure 1An example of a VVC encoder block diagram is shown, comprising three loop filtering blocks: Deblocking Filter (DF), Sample Adaptive Offset (SAO), and ALF. Unlike DF, which uses predefined filters, SAO and ALF utilize the original samples of the current image to reduce the mean square error between the original and reconstructed samples, respectively, by adding an offset and by applying a Finite Impulse Response (FIR) filter. Auxiliary information signaling from the encoder / decoder informs the offset and filter coefficients. ALF is located in the final processing stage of each image and can be viewed as a tool attempting to capture and repair artifacts created by previous stages.
[0062] 2.2. Intra-mode encoding and decoding with 67 intra-prediction modes
[0063] To capture arbitrary edge directions presented in natural video, the number of intra-frame directional modes has been expanded from the 33 used by HEVC to 65. Additional directional modes are... Figure 2 The dashed arrows indicate this, and the planar and DC modes remain unchanged. These denser directional intra-prediction modes are applicable to all block sizes and to both luma and chroma intra-prediction.
[0064] like Figure 2 As shown, the traditional angular intra-prediction direction is defined clockwise from 45 degrees to -135 degrees. In VTM2, for non-square blocks, several traditional angular intra-prediction modes are adaptively replaced with wide-angle intra-prediction modes. The replaced modes are signaled using the original method and remapped to the wide-angle mode index after parsing. The total number of intra-prediction modes remains unchanged at 67, and the intra-mode encoding and decoding remain unchanged.
[0065] In HEVC, each intra-codec block has a square shape, and the length of each side is a power of 2. Therefore, generating an intra-predictor using DC mode does not require division. In VVV2, blocks can have rectangular shapes, which generally requires division for each block. To avoid division in DC prediction, only the longer side is used to calculate the average of non-square blocks.
[0066] 2.3. Wide-angle intra-frame prediction for non-rectangular blocks
[0067] Traditional angular intra-prediction directions are defined as ranging from 45 degrees to -135 degrees clockwise. In VTM2, for non-square blocks, several traditional angular intra-prediction modes are adaptively replaced with wide-angle intra-prediction modes. The replaced modes are signaled using the original method and remapped to the wide-angle mode index after resolution. The total number of intra-prediction modes for a given block remains unchanged (e.g., 67), and intra-mode encoding / decoding remains unchanged.
[0068] To support these predicted directions, a top reference of length 2W+1 and a left reference of length 2H+1 are defined as follows: Figure 3B As shown.
[0069] The number of modes replaced in wide-angle directional mode depends on the aspect ratio of the block. Table 1 shows the replaced intra-prediction modes.
[0070] Table 1: Intra-prediction modes replaced by wide-angle mode
[0071]
[0072] like Figure 4 As shown, in the case of wide-angle intra-frame prediction, two vertically adjacent prediction samples can use two non-adjacent reference samples. Therefore, a low-pass reference sample filter and side smoothing are applied to wide-angle prediction to reduce the increased gap Δp. α The negative impact.
[0073] 2.4. Location-related intra-frame prediction combination
[0074] In VTM2, the intra-prediction results for planar modes are further modified using the Position-Related Intra-Prediction Combination (PDPC) method. PDPC is an intra-prediction method that combines unfiltered boundary reference samples with HEVC-type intra-prediction samples with filtered boundary reference samples. PDPC is applicable to the following intra-modal modes that do not require signaling notification: planar, DC, horizontal, vertical, lower-left corner mode and its eight adjacent corner modes, and upper-right corner mode and its eight adjacent corner modes.
[0075] The predicted sample point pred(x,y) is predicted using a linear combination of the intra-frame prediction mode (DC, plane, angle) and the reference sample point according to the following equation:
[0076] pred(x,y)=(wL×R -1,y +wT×R x,-1 –wTL×R -1,-1 +(64–wL–wT+wTL)×pred(x,y)+32)>>6
[0077] Among them, R x,-1 R -1,y R represents the reference sample points located at the top and left of the current sample point (x, y), respectively. -1,-1 This represents the reference sample point located at the top left corner of the current block.
[0078] If PDPC is applied to DC, planar, horizontal, and vertical intra-frame modes, no additional boundary filters are required, as in the case of HEVC DC mode boundary filters or horizontal / vertical mode edge filters.
[0079] Figures 5A-5D Reference samples (R) of PDPC applied to various prediction modes are shown. x,-1 R -1,y and R -1,-1 The definition of ). The predicted sample point pred(x',y') is located at (x',y') within the prediction block. The reference sample point R. x,-1 The coordinates x are given by the following formula: x = x' + y' + 1, and the reference point R is... -1,y The coordinates y are similarly given by the following formula: y = x' + y' + 1. Figure 5A The top-right diagonal pattern is shown. Figure 5B The bottom left diagonal pattern is shown. Figure 5C The adjacent diagonal top right pattern is shown. Figure 5D The adjacent diagonal bottom left pattern is shown.
[0080] The PDPC weights depend on the prediction pattern and are shown in Table 2.
[0081] Table 2: Examples of PDPC weights based on prediction patterns
[0082] Predictive patterns wT wL wTL diagonal top right 16>>((y’<<1)>>shift) 16>>((x’<<1)>>shift) 0 diagonal bottom left 16>>((y’<<1)>>shift) 16>>((x’<<1)>>shift) 0 adjacent diagonal top right 32>>((y’<<1)>>shift) 0 0 Adjacent diagonal bottom left 0 32>>((x’<<1)>>shift) 0
[0083] 2.5. Intra-frame sub-block segmentation (ISP)
[0084] In some embodiments, JVET-M0102 proposes an ISP that divides the intra-prediction block of luminance into two or four sub-segments vertically or horizontally based on the block size dimension, as shown in Table 3. Figure 6 and Figure 7 Examples of two possibilities are shown. All sub-segments satisfy the condition of having at least 16 samples.
[0085] Table 3: Number of sub-segments depending on block size
[0086] Block size Number of sub-segments 4×4 No division 4×8 and 8×4 2 All other cases 4
[0087] For each of these sub-segments, a residual signal is generated by entropy decoding of the coefficients sent by the encoder, followed by inverse quantization and inverse transform. The sub-segment is then intra-predicted, and the corresponding reconstructed samples are finally obtained by adding the residual signal to the predicted signal. Therefore, the reconstructed values of each sub-segment can be used to generate the prediction for the next sub-segment, and the process is repeated for the next sub-segment, and so on. All sub-segments share the same intra-frame mode.
[0088] Based on the intra-frame mode and segmentation used, two different types of processing orders (referred to as normal and reverse orders) are employed. In the normal order, the first sub-segment to be processed is the one containing the top-left sample of the CU, and then it continues downwards (horizontal segmentation) or to the right (vertical segmentation). As a result, the reference samples used to generate the sub-segment prediction signal are located only to the left and top of the line. On the other hand, the reverse processing order either starts with the sub-segment containing the bottom-left sample of the CU and continues upwards, or starts with the sub-segment containing the top-right sample of the CU and continues to the left.
[0089] 2.6. Multiple Transform Set (MTS)
[0090] In addition to DCT-II already used in HEVC, the Multiple Transform Selection (MTS) scheme is used for residual coding and decoding of both inter-frame and intra-frame codec blocks. It uses the multiple selection transform from DCT8 / DST7. The newly introduced transform matrices are DST VII and DCT VIII. Table 4 shows the basis functions of the selected DST / DCT.
[0091] Table 4: Transformation Types and Basis Functions
[0092]
[0093] There are two ways to enable MTS: explicit MTS and implicit MTS.
[0094] 2.6.1. Implicit MTS
[0095] Implicit MTS is a new tool in VVC. The derivation of the variable implicitMtsEnabled is as follows:
[0096] Whether implicit MTS is enabled depends on the value of the variable implicitMtsEnabled. The derivation of the variable implicitMtsEnabled is as follows:
[0097] – If sps_mts_enabled_flag equals 1, and one or more of the following conditions are true, then implicitMtsEnabled is set to equal to 1:
[0098] –IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT (i.e., ISP is enabled).
[0099] –cu_sbt_flag equals 1 (i.e., ISP is enabled), and Max(nTbW, nTbH) is less than or equal to 32.
[0100] –sps_explicit_mts_intra_enabled_flag equals 0 (i.e., explicit MTS is disabled), CuPredMode[0][xTbY][yTbY] equals MODE_INTRA, and lfnst_idx[x0][y0] equals 0, and intra_mip_flag[x0][y0] equals 0.
[0101] Otherwise, implicitMtsEnabled is set to 0.
[0102] The derivation of the variable trTypeHor, which defines the horizontal transform kernel, and the variable trTypeVer, which defines the vertical transform kernel, is as follows:
[0103] – Set trTypeHor and trTypeVer to 0 if one or more of the following conditions are true (e.g., DCT2).
[0104] –cIdx is greater than 0 (i.e., for the chromaticity component).
[0105] –IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT, and lfnst_idx is not equal to 0
[0106] Otherwise, if implicitMtsEnabled equals 1, the following applies:
[0107] – If cu_sbt_flag equals 1, then trTypeHor and trTypeVer are specified in Table 40 according to cu_sbt_horizontal_flag and cu_sbt_pos_flag.
[0108] Otherwise (cu_sbt_flag equals 0), the derivation of trTypeHor and trTypeVer is as follows:
[0109] trTypeHor=(nTbW>=4&&nTbW<=16)? 1:0 (1188)
[0110] trTypeVer=(nTbH>=4&&nTbH<=16)? 1:0 (1189)
[0111] – Otherwise, trTypeHor and trTypeVer are specified in Table 39 according to mts_idx.
[0112] The derivation of variables nonZeroW and nonZeroH is as follows:
[0113] –If ApplyLfnstFlag equals 1, and
[0114] If nTbW is greater than or equal to 4 and nTbH is greater than or equal to 4, then the following conditions apply:
[0115] nonZeroW=(nTbW==4||nTbH==4)? 4:8 (1190)
[0116] nonZeroH=(nTbW==4||nTbH==4)? 4:8 (1191)
[0117] Otherwise, the following applies:
[0118] nonZeroW=Min(nTbW,(trTypeHor>0)?16:32) (1192)
[0119] nonZeroH=Min(nTbH,(trTypeVer>0)?16:32) (1193)
[0120] 2.6.2. Explicit MTS
[0121] To control the MTS scheme, a flag is used to specify whether explicit MTS exists in the bitstream for intra / inter-frame use. Additionally, two separate enable flags are specified at the SPS level for intra and inter-frame use to indicate whether explicit MTS is enabled. When MTS is enabled at SPS, the CU-level transform index can be signaled to indicate whether MTS should be applied. Here, MTS applies only to luma. The MTS CU-level index (represented by mts_idx) is signaled when the following conditions are met.
[0122] - Width and height are both less than or equal to 32
[0123] -CBF brightness mark equals one
[0124] -Non-TS
[0125] -Non-ISP
[0126] -Non-SBT
[0127] -LFNST is disabled
[0128] - There exists a non-zero coefficient that is not at the DC position (top left of the block).
[0129] - There are no non-zero coefficients outside the 16×16 region at the top left.
[0130] If the first bit of `mts_idx` is zero, DCT2 applies in both directions. However, if the first bit of `mts_idx` is one, additional signaling informs the other two bits to indicate the transform type in the horizontal and vertical directions, respectively. The transform and signaling mapping table is shown in Table 5. For transform matrix precision, an 8-bit master transform kernel is used. Therefore, all transform kernels used in HEVC remain unchanged, including 4-point DCT-2 and DST-7, 8-point DCT-2, 16-point DCT-2, and 32-point DCT-2. Furthermore, other transform kernels, including 64-point DCT-2, 4-point DCT-8, 8-point, 16-point, 32-point DST-7, and DCT-8, use an 8-bit master transform kernel.
[0131] Table 5: Signaling Notifications of MTS
[0132]
[0133] To reduce the complexity of large-sized DST-7 and DCT-8 blocks, the high-frequency transform coefficients are set to zero for DST-7 and DCT-8 blocks with a size (width or height, or both) equal to 32. Only the coefficients in the 16×16 low-frequency region are retained.
[0134] In HEVC, for example, block residuals can be encoded and decoded using transform skip mode. To avoid redundancy in syntax encoding and decoding, the transform skip flag is not signaled when the CU level MTS_CU_flag is not equal to zero. The block size limit for transform skip is the same as the block size limit for MTS in JEM4, which indicates that transform skip applies to the CU when both the block width and block height are equal to or less than 32.
[0135] 2.6.3. Zeroing in MTS
[0136] In VTM8, large block size transforms up to 64×64 are enabled, primarily for higher resolution video, such as 1080p and 4K sequences. For transform blocks with a size (width or height, or both) of 64 or more, the high-frequency transform coefficients of the block to which DCT2 transform is applied are set to zero, thus retaining only the low-frequency coefficients, and all other coefficients are forced to zero without signaling notification. For example, for an M×N transform block, where M is the block width and N is the block height, when M is not less than 64, only the left 32 columns of transform coefficients are retained. Similarly, when N is not less than 64, only the first 32 rows of transform coefficients are retained.
[0137] For transform blocks with dimensions (width or height, or both) not less than 32, the high-frequency transform coefficients of blocks to which DCT8 or DST7 transform is applied are set to zero, thus retaining only the low-frequency coefficients, while all other coefficients are forced to zero without being notified. For example, for an M×N transform block, where M is the block width and N is the block height, when M is not less than 32, only the left 16 columns of transform coefficients are retained. Similarly, when N is not less than 32, only the first 16 rows of transform coefficients are retained.
[0138] 2.7. Low-Frequency Indivisible Quadratic Transform (LFNST)
[0139] 2.7.1. Indivisible Quadratic Transformation (NSST) in JEM
[0140] In JEM, a quadratic transform is applied between the forward master transform and quantization (on the encoder side) and between the dequantization and inverse master transform (on the decoder side). For example... Figure 8 As shown, a 4×4 (or 8×8) quadratic transformation is performed based on the block size. For example, for each 8×8 block, the 4×4 quadratic transformation is applied to the smaller block (e.g., min(width, height) < 8), and the 8×8 quadratic transformation is applied to the larger block (e.g., min(width, height) > 4).
[0141] The following describes the application of inseparable transformations using an input as an example. To apply inseparable transformations, a 4x4 input block X...
[0142]
[0143] First, it is represented as a vector.
[0144]
[0145] Inseparable transformations are calculated as in The vector indicates the transformation coefficients, and T is a 16×16 transformation matrix. (16×1 coefficient vector) The scan order (horizontal, vertical, or diagonal) of this block is then reorganized into 4x4 blocks. Coefficients with smaller indices are placed in the 4x4 coefficient blocks along with their smaller scan indices. There are a total of 35 transform sets, and each transform set uses 3 inseparable transform matrices (kernels). The mapping from intra-frame prediction modes to transform sets is predefined. For each transform set, the selected inseparable quadratic transform candidate is further specified by a quadratic transform index explicitly signaled. This index is signaled once per intra-frame CU in the bitstream after the transform coefficients.
[0146] 2.7.2. Simplified Quadratic Transformation (LFNST)
[0147] In some embodiments, LFNST is introduced and a mapping using 4 transform sets (instead of 35 transform sets) is used. In some implementations, a 16×64 (which can be further simplified to 16×48) matrix and a 16×16 matrix are used for 8×8 blocks and 4×4 blocks respectively. For ease of annotation, the 16×64 (which can be further simplified to 16×48) transform is denoted as LFNST8×8, and the 16×16 transform is denoted as LFNST4×4. Figure 9 An example of LFNST is shown.
[0148] LFNST calculation
[0149] The main idea of the Reduced Transform (RT) is to map an N-dimensional vector to an R-dimensional vector in a different space, where R / N (R < N) is the reduction factor.
[0150] The RT matrix is an R×N matrix as follows:
[0151]
[0152] Among them, the R rows of the transform are the R bases of the N-dimensional space. The inverse transform matrix of RT is the transpose of its forward transform. The forward RT and the inverse RT are as Figure 10A and Figure 10B depicted.
[0153] In this proposal, LFNST 8×8 with a reduction factor of 4 (1 / 4 size) is applied. Therefore, instead of 64×64, a 16×64 direct matrix is used, which is the size of the traditional 8×8 non-separable transform matrix. In other words, a 64×16 inverse LFNST matrix is used on the decoder side to generate the core (primary) transform coefficients in the upper-left 8×8 region. The forward LFNST 8×8 uses a 16×64 (or 8×64 for an 8×8 block) matrix, such that it only produces non-zero coefficients in the upper-left 4×4 region within a given 8×8 region. In other words, if LFNST is applied, the 8×8 region except for the upper-left 4×4 region will only have zero coefficients. For LFNST 4×4, 16×16 (or 8×16 for a 4×4 block) direct matrix multiplication is applied.
[0154] The inverse LFNST is conditionally applied when the following two conditions are met:
[0155] a. The block size is greater than or equal to a given threshold (W >= 4 && H >= 4)
[0156] b. The transform skip mode flag is equal to zero
[0157] If both the width (W) and height (H) of the transform coefficient block are greater than 4, then LFNST 8x8 is applied to the top-left 8×8 region of the transform coefficient block. Otherwise, LFNST 4x4 is applied to the top-left min(8,W)×min(8,H) region of the transform coefficient block.
[0158] If the LFNST index is equal to 0, then LFNST is not applied. Otherwise, LFNST is applied, and its core is selected along with the LFNST index. The LFNST selection method and the encoding / decoding of the LFNST index will be explained later.
[0159] In addition, LFNST is applied to intra-frame CUs in intra-frame and inter-frame stripes, as well as luma and chroma. If dual-tree is enabled, the LFNST indexes for luma and chroma are signaled separately. For inter-frame stripes (where dual-tree is disabled), a single LFNST index is signaled and used for luma and chroma.
[0160] At the 13th JVET conference, Intra-Frame Sub-Segmentation (ISP) was adopted as a new intra-frame prediction mode. When ISP mode is selected, LFNST is disabled, and the LFNST index is not signaled because the performance improvement is limited even if LFNST is applied to every feasible segmentation block. Furthermore, disabling LFNST on the residuals of ISP predictions reduces coding complexity.
[0161] LFNST selection
[0162] The LFNST matrix is selected from four transform sets, each consisting of two transforms. Which transform set is applied is determined by the intra-prediction mode, as follows:
[0163] 1) If one of the three CCLM modes is indicated, then select transform set 0.
[0164] 2) Otherwise, perform the transformation set selection according to Table 6.
[0165] Table 6: Transform Set Selection Table
[0166]
[0167]
[0168] The index of the access table, denoted as IntraPredMode, ranges from [-14, 83], and is the transform mode index used for wide-angle intra-frame prediction.
[0169] Simplified LFNST matrix
[0170] For further simplification, a 16×48 matrix is used instead of a 16×64 matrix with the same transformation set configuration. Each 16×48 matrix obtains 48 input data points from three 4×4 blocks (excluding the bottom right 4×4 block) in the top left 8×8 block. Figure 11 ).
[0171] LFNST signaling notification
[0172] A positive LFNST 8×8 with R=16 uses a 16×64 matrix, therefore it produces non-zero coefficients only in the top-left 4×4 region of a given 8×8 region. In other words, if LFNST is applied, the 8×8 region produces only zero coefficients except for the top-left 4×4 region. Therefore, when the top-left 4×4 region is excluded (e.g., ... Figure 12 When any non-zero element is detected in an 8×8 block region outside of the one shown in the diagram, the LFNST index is not encoded or decoded because this means that no LFNST has been applied. In this case, the LFNST index is inferred to be zero.
[0173] Zeroing range
[0174] Normally, any coefficient in a 4×4 subblock can be nonzero before applying the reverse LFNST to it. However, in some cases, there are constraints that some coefficients in the 4×4 subblock must be zero before applying the reverse LFNST to it.
[0175] Let nonZeroSize be a variable. Any coefficient with an index not less than nonZeroSize must be zero when rearranging it into a 1-D array before reversing LFNST.
[0176] When nonZeroSize equals 16, the coefficients in the top left 4×4 sub-block have no zeroing constraint.
[0177] In some examples, nonZeroSize is set to 8 when the current block size is 4×4 or 8×8. For other block sizes, nonZeroSize is set to 16.
[0178] 2.8. Affine Linear Weighted Intra-Prediction (ALWIP, also known as matrix-based intra-prediction)
[0179] In some embodiments, affine linear weighted intra-prediction (ALWIP, also known as matrix-based intra-prediction (MIP)) is used.
[0180] In some embodiments, two tests are performed. In Test 1, ALWIP is designed with an 8KB memory limit and a maximum of 4 multiplications per sample. Test 2 is similar to Test 1, but with a further simplified design in terms of memory requirements and model architecture.
[0181] • A single set of matrices and offset vectors for all block shapes.
[0182] • The number of patterns for all block shapes has been reduced to 19.
[0183] • Reduce memory requirements to 5760 10-bit values, or 7.20 kilobytes.
[0184] • Linear interpolation of the predicted samples is performed in a single step in each direction, instead of iterative interpolation in the first test.
[0185] 2.9. Sub-block Transformation
[0186] For an inter-frame prediction CU with a cu_cbf equal to 1, the cu_sbt_flag can be signaled to indicate whether to decode the entire residual block or a sub-part of the residual block. In the former case, the inter-frame MTS information is further parsed to determine the transform type of the CU. In the latter case, a portion of the residual block is encoded and decoded using the inferred adaptive transform, and the other portion of the residual block is set to zero. SBT is not applied to combined inter-frame and intra-frame modes.
[0187] In the sub-block transformation, position-dependent transformations are applied to the luma transform blocks in SBT-V and SBT-H (chroma TB always uses DCT-2). The two positions in SBT-H and SBT-V are associated with different kernel transforms. More specifically, the horizontal and vertical transforms at each SBT position are... Figure 13 The rules specify that, for example, the horizontal and vertical transformations for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the corresponding transformation is set to DCT-2. Therefore, the sub-block transformation joint specifies TU tiling, cbf, and the horizontal and vertical transformations of the residual block, which can be considered a syntax shortcut for cases where the main residual of the block is on one side of the block.
[0188] 2.10. Scan Region-Based Coefficient Encoding / Decoding (SRCC)
[0189] SRCC has been adopted by AVS-3. Regarding SRCC, such as... Figures 14A to 14B The lower right position (SRx, SRy) shown in the diagram is signaled, and only the coefficients within the rectangle with its four corners (0, 0), (SRx, 0), (0, SRy), and (SRx, SRy) are scanned and signaled. All coefficients outside the rectangle are zero.
[0190] 2.11. Implicit Selection of Transformations (IST)
[0191] As disclosed in PCT / CN2019 / 090261 (included herein by reference), an implicit choice of the transformation solution is given, wherein the choice of the transformation matrix (DCT2 for horizontal and vertical transformations, or DST7 for both) is determined by the parity of the non-zero coefficients in the transformation block.
[0192] The proposed method is applied to the luminance component of intra-frame encoded blocks, excluding those encoded using DT, and allows block sizes from 4×4 to 32×32. The transform type is hidden in the transform coefficients. Specifically, the parity of the number of valid coefficients (e.g., non-zero coefficients) in a block is used to indicate the transform type. Odd numbers indicate the application of DST-VII, and even numbers indicate the application of DCT-II.
[0193] To eliminate the 32-point DST-7 introduced by IST, it is proposed that the use of IST be limited based on the remaining scan area when using SRCC. For example... Figures 15A to 15B As shown, IST is not allowed when the x-coordinate or y-coordinate of the lower right position in the remaining scan area is not less than 16. That is to say, in this case, DCT-II is applied directly.
[0194] In another scenario, when using run-length coefficient encoding / decoding, each non-zero coefficient needs to be checked. IST is not allowed when the x-coordinate or y-coordinate of a non-zero coefficient position is not less than 16.
[0195] The corresponding grammatical changes are indicated by bold, italic, and underlined text, as shown below:
[0196]
[0197]
[0198]
[0199]
[0200] 2.12. SBT in AVS3
[0201] The corresponding syntax changes are highlighted below (bold and italic):
[0202]
[0203]
[0204] 7.2.6 Encoding / Decoding Unit
[0205] Sub-block transformation flag sbt_cu_flag
[0206] A binary variable. See section 8.3 for the analysis process. The value of SbtCuFlag is equal to the value of sbt_cu_flag. If sbt_cu_flag does not exist in the bitstream, the value of SbtCuFlag is 0.
[0207] Sub-block conversion quarter-size flag sbt_quad_flag
[0208] A binary variable. See section 8.3 for the analysis process. The value of SbtQuadFlag is equal to the value of sbt_quad_flag. If sbt_quad_flag does not exist in the bitstream, the value of SbtQuadFlag is 0.
[0209] Sub-block transformation direction flag sbt_dir_flag
[0210] Binary variables. See section 8.3 for the analysis process. The value of SbtDirFlag is equal to the value of sbt_dir_flag. If sbt_dir_flag does not exist in the bitstream, when SbtQuadFlag is 1, the value of SbtDirFlag is equal to the value of SbtHorQuad; when SbtQuadFlag is 0, the value of SbtDirFlag is equal to the value of SbtHorHalf.
[0211] Sub-block transformation position flag sbt_pos_flag
[0212] A binary variable. See section 8.3 for the analysis process. The value of SbtPosFlag is equal to the value of sbt_pos_flag. If sbt_pos_flag does not exist in the bitstream, the value of SbtPosFlag is 0.
[0213] 3. Examples of technical problems solved by publicly available technical solutions
[0214] The current designs of IST and MTS have the following problems:
[0215] 1. In VVC, the Transform Skip (TS) mode is signaled at the block level. However, while DCT2 and DST7 work well for residual blocks in camera-captured sequences, Transform Skip (TS) mode is used more frequently for video with screen content compared to DST7. Further research is needed on how to more effectively determine TS mode usage.
[0216] 2. In VVC, the maximum allowed TS block size is set to 32×32. How to support large TS blocks requires further investigation.
[0217] 3. When applying TS, the scanning order of coefficients may be inefficient.
[0218] 4. Example technologies and implementation examples
[0219] The items listed below should be considered as examples to illustrate general concepts. These items should not be interpreted in a narrow way. Furthermore, these items can be combined in any way. min(x, y) yields the smaller of x and y.
[0220] Implicit determination of transformation skip mode / identity transformation
[0221] A method is proposed to determine whether to apply a horizontal and / or vertical identity transform (IT) (e.g., transform skip mode) to the current first block based on the decoding coefficients of one or more representative blocks. This method is called "implicit determination of IT". When both the horizontal and vertical transforms are IT, the transform skip (TS) mode is applied to the current first block.
[0222] A “block” can be a transform unit (TU) / prediction unit (PU) / encoder / decoder unit (CU) / transform block (TB) / prediction block (PB) / encoder / decoder block (CB). A TU / PU / CU can include one or more color components, such as a luma-only component for a two-tree segment, where the currently encoded color component is luma; and two chroma components for a two-tree segment, where the currently encoded color component is chroma; or three color components for a single-tree case.
[0223] 1. Decoding coefficients can be associated with one or more representative blocks of the same or different color components of the current first block.
[0224] a. In one example, the representative block is the first block, and the decoding coefficients associated with the first block are used to determine the use of IT in the first block.
[0225] b. In one example, the determination of which IT is used for the first block may depend on the decoding coefficients of multiple blocks, including at least one block different from the first block.
[0226] i. In one example, multiple blocks may include the first block.
[0227] ii. In one example, multiple blocks may include one or more blocks that are adjacent to the first block.
[0228] iii. In one example, multiple blocks may include one or more blocks having the same block dimension as the first block.
[0229] iv. In one example, multiple blocks may include the last N decoded blocks that precede the first block in decoding order and satisfy certain conditions (such as having the same prediction mode as the current block, e.g., all intra-frame codecs or IBC codecs, or having the same dimensions as the current block). N is an integer greater than 1.
[0230] 1) The same prediction mode can be an inter-frame encoding / decoding mode.
[0231] 2) The same prediction mode can be the direct encoding / decoding mode.
[0232] v. In one example, multiple blocks may include one or more blocks that have a different color component than the first block.
[0233] 1) In one example, the first block can be in the luminance component. Multiple blocks can include blocks in the chrominance components (e.g., a second block in the Cb / B component and a third block in the Cr / R component).
[0234] a) In one example, the three blocks are in the same codec unit.
[0235] b) In addition, optionally, implicit MTS is applied only to the luma block and not to the chroma block.
[0236] 2) In one example, the first block in the first color component and the multiple blocks included in the multiple blocks that are not in the first color component can be in corresponding or juxtaposed positions in the image.
[0237] 2. The decoding coefficients used to determine the use of IT are called representative coefficients.
[0238] a. In one example, the representative coefficients only include coefficients that are not equal to zero (referred to as effective coefficients).
[0239] b. In one example, the representativeness coefficient can be modified before it is used to determine the use of IT.
[0240] i. For example, representativeness coefficients can be clipped before being used to derive the transformation.
[0241] ii. For example, representativeness coefficients can be scaled before being used to derive the transformation.
[0242] iii. For example, the representativeness coefficient can be offset before it is used to derive the transformation.
[0243] iv. For example, representativeness coefficients can be filtered before being used to derive the transform.
[0244] v. For example, coefficients or representative coefficients can be mapped to other values (e.g., by lookup tables or dequantization) before being used to derive a transformation.
[0245] c. In one example, the representativeness coefficient is all the valid coefficients in the representative block.
[0246] d. Alternatively, the representativeness coefficient is a portion of the effective coefficients in the representative block.
[0247] i. In one example, the representative coefficients are those odd-numbered valid decoding coefficients.
[0248] 1) Optionally, the representative coefficients are those even-numbered valid decoding coefficients.
[0249] ii. In one example, the representative coefficients are those valid decoding coefficients that are greater than or not less than the threshold.
[0250] 1) Optionally, representative coefficients are those effective decoding coefficients whose amplitude is greater than or not less than a threshold.
[0251] iii. In one example, the representative coefficients are those valid decoding coefficients that are less than or no greater than the threshold.
[0252] 1) Optionally, representative coefficients are those effective decoding coefficients whose amplitude is less than or not greater than the threshold.
[0253] iv. In one example, the representative coefficients are the first K (K>=1) valid decoded coefficients in the decoding order.
[0254] v. In one example, the representative coefficients are the last K (K>=1) valid decoded coefficients in the decoding order.
[0255] vi. In one example, the representativeness coefficient can be the coefficient at a predefined location within the block.
[0256] 1) In one example, the representativeness coefficient may include only one coefficient relative to the representative block at the coordinates (xPos, yPos). For example, xPos = yPos = 0.
[0257] 2) In one example, the representativeness coefficient may include only one coefficient relative to the representative block at coordinates (xPos, yPos). And xpo and / or ypo satisfy the following condition:
[0258] a) In one example, xPos is not greater than the threshold Tx (e.g., 31) and / or yPos is not greater than the threshold Ty (e.g., 31).
[0259] b) In one example, xPos is not less than the threshold Tx (e.g., 32) and / or yPos is not less than the threshold Ty (e.g., 32).
[0260] 3) For example, the location can depend on the dimensions of the block.
[0261] 4) In one example, the representativeness coefficients may include only the coefficients located at (xPos, yPos)(multiple) coordinates relative to the representative block. And xPos and / or yPos satisfy the following condition:
[0262] a) In one example, xPos is not greater than the threshold Tx (e.g., 31) and / or yPos is not greater than the threshold Ty (e.g., 31).
[0263] b) In one example, xPos is not less than the threshold Tx (e.g., 32) and / or yPos is not less than the threshold Ty (e.g., 32).
[0264] 5) In one example, the representative coefficients may include only the coefficients located at (xPos, yPos)(multiple) coordinates relative to the representative block. And xPos and / or yPos can be derived from the syntax elements indicating the allowed sub-blocks with non-zero coefficients.
[0265] a) In one example, the syntax element is the same as the syntax element used to indicate the sub-block transformation mode (e.g., SBT, such as SbtCuFlag, SbtQuadFlag, SbtDirFlag, SbtPosFlag, or position-based transformation (pbt)).
[0266] vii. In one example, representative coefficients can be those coefficients at predefined positions in the coefficient scan order.
[0267] e. Alternatively, the representativeness coefficient may also include those with zero coefficients.
[0268] f. Alternatively, the representative coefficients may be coefficients derived from the decoded coefficients, such as by cropping to a range or by quantization.
[0269] g. In one example, the representative coefficient can be the coefficient preceding the last effective coefficient (which may include the last effective coefficient).
[0270] 3. The determination of whether to use IT for the first block may depend on the decoding luminance coefficient of the first block.
[0271] a. In addition, optionally, the use of a specific IT is applied only to the luminance component of the first block, while DCT2 is always used for the chrominance component of the first block.
[0272] b. Alternatively, the determined IT is applied to all color components of the first block. That is, the same transformation matrix is applied to all color components of the first block.
[0273] 4. The determination of the use of IT can depend on a function of representativeness coefficients, such as a function that uses representativeness coefficients as input and value V as output.
[0274] a. In one example, V is derived as the number of representative coefficients.
[0275] i. Optionally, V is derived as the sum of representative coefficients.
[0276] 1) Optionally, V is derived as the sum of the levels (or absolute values) of the representative coefficients.
[0277] 2) Optionally, V can be derived as a level (or absolute value) of a representative coefficient (such as the last one).
[0278] 3) Optionally, V can be derived as the number of representative coefficients of even levels.
[0279] 4) Optionally, V can be derived as the number of representative coefficients of odd level.
[0280] 5) In addition, optionally, the sum can be trimmed to derive V. 6)
[0282] ii. Alternatively, V is derived as the output of a function, where the function defines the residual energy distribution.
[0283] 1) In one example, the function returns the ratio of the sum of the absolute values of the partial representative coefficients to the absolute values of all representative coefficients.
[0284] 2) In one example, the function returns the ratio of the sum of squares of the absolute values of the partial representative coefficients to the sum of squares of the absolute values of all representative coefficients.
[0285] 3) In one example, the function returns whether the energy of the top K representative coefficients multiplied by the scaling factor is greater than the energy of the top M (M>K) or all representative coefficients.
[0286] 4) In one example, the function returns whether the energy of the representative coefficient in the first subregion of the representative block multiplied by the scaling factor is greater than the energy of the representative coefficient in the second subregion containing the first subregion and is greater than the first subregion.
[0287] a) Alternatively, the function returns whether the energy of the representative coefficient in the first subregion of the representative block multiplied by the scaling factor is greater than the energy of the representative coefficient in the second subregion that does not overlap with the first subregion.
[0288] b) In one example, the first sub-region is the top-left MxN sub-region (i.e., M=N=1, only DC).
[0289] i. Alternatively, the first sub-region is the second sub-region excluding the top-left MxK sub-region (i.e., excluding DC).
[0290] c) In one example, the first sub-region is the top left 4x4 sub-region.
[0291] 5) In the above example, energy is defined as the sum of absolute values or the sum of squares of values.
[0292] iii. Alternatively, V is derived as whether at least one representative coefficient is located outside a subregion of the representative block.
[0293] 1) In one example, a subregion is defined as the top left subregion of the representative block, for example, the top left quarter of the representative block.
[0294] b. In one example, the determination of the use of IT may depend on the parity of V.
[0295] i. For example, if V is even, then IT is used; but if V is odd, then IT is not used.
[0296] 1) Optionally, if V is even, use IT; if V is odd, do not use IT.
[0297] ii. In one example, if V is less than the threshold T1, then IT is used; while if
[0298] If V is greater than the threshold T2, then IT is not used.
[0299] 1) Optionally, if V is greater than threshold T1, then IT is used; if V is less than threshold T2, then IT is not used.
[0300] iii. For example, the threshold can depend on encoding / decoding information, such as block dimension and prediction mode.
[0301] iv. For example, the threshold can depend on QP.
[0302] c. In one example, the determination of the use of IT may depend on a combination of V and other codec information (e.g., prediction mode, strip type / picture type, block dimension).
[0303] 5. The determination of the use of IT can further depend on the encoding and decoding information of the current block.
[0304] a. In one example, the determination may also depend on mode information (e.g., inter-frame, intra-frame, or IBC).
[0305] i. In one example, the mode could be an inter-frame encoding / decoding mode.
[0306] ii. In one example, the mode could be direct encoding / decoding mode.
[0307] iii. In one example, the current block can be encoded or decoded using SBT mode (e.g., sbt_cu_flag equals 1).
[0308] 1) In addition, whether to use the current transform set (e.g., DCT2 / DST7 / DCT8) or IT can depend on the representativeness coefficient.
[0309] a) In one example, if it is determined that the use of IT is not IT, then DCT2 / DST7 / DCT8 can be used and it is determined which transformation to use can follow existing techniques (e.g., described in sections 2.12, 2.9).
[0310] iv. In one example, the determination of the use of IT may depend on the syntax elements of the signaling notification at a higher level, such as in the picture header and / or sequence header and / or SPS / PPS / VPS / strip header.
[0311] b. In one example, whether IT is applied may depend on the representativeness coefficient of the inter-frame codec block, which is not direct and does not use SBT.
[0312] c. In one example, if SBT is used, IT can be applied to inter-frame codec blocks.
[0313] d. The first message (denoted as ph_ts_inter_enable_flag) is signaled in the picture header. Inter-frame codec blocks can only apply IT if ph_ts_inter_enable_flag is true. Otherwise, the default conversion (e.g., DCT2) will be used.
[0314] i. The second message (denoted as ts_inter_enable_flag) is signaled in the sequence header. ph_ts_inter_enable_flag is signaled only if ts_inter_enable_flag is true. Otherwise, ph_ts_inter_enable_flag is not signaled and is inferred to be false.
[0315] e. In one example, the transformation determination may depend on the scan area, which is the smallest rectangle covering all valid coefficients (e.g., as depicted in Figure 14).
[0316] i. In one example, if the size of the scan region associated with the current block (e.g., width multiplied by height) is greater than a given threshold, a default transformation (such as DCT-2) can be used, including both horizontal and vertical transformations. Otherwise, rules such as those defined in bullet point 3 can be used (e.g., IT when V is even and DCT-2 when V is odd).
[0317] ii. In one example, if the width of the scan region associated with the current block is greater than (or less than) a given maximum width (e.g., 16), then a default horizontal transformation (such as DCT-2) can be used. Otherwise, rules such as those defined in bullet point 3 can be used.
[0318] iii. In one example, if the height of the scan region associated with the current block is greater than (or less than) a given maximum height (e.g., 16), a default vertical transformation (such as DCT-2) can be utilized. Otherwise, rules such as those defined in bullet point 3 can be used.
[0319] iv. In one example, the given dimensions are L×K, where L and K are integers, such as 16.
[0320] v. In one example, the default transformation matrix can be either DCT-2 or DST-7.
[0321] f. In one example, the determination of IT usage can only be invoked if the conditions (e.g., pattern information) are met; otherwise, other transformations (excluding identity transformations) can be used instead.
[0322] 6. One or more of the methods disclosed in bullet points 1 through 5 can only be applied to a specific block.
[0323] a. For example, one or more of the methods disclosed in bullets 1 to 5 may only be applied to IBC codec blocks and / or intra-frame codec blocks other than DT.
[0324] i. In one example, one or more methods disclosed in bullets 1 through 5 may be applied to inter-frame codec blocks.
[0325] ii. In one example, one or more methods disclosed in bullets 1 through 5 may be applied to a direct codec block.
[0326] b. For example, one or more of the methods disclosed in bullet points 1 through 5 can only be applied to blocks with specific constraints on the coefficients.
[0327] i. A rectangle with four corners (0, 0), (CRx, 0), (0, CRy), and (CRx, CRy) is defined as a constrained rectangle, as in the SRCC method, for example. In one example, one or more of the methods disclosed in bullets 1 through 5 may be applied only if all coefficients outside the constrained rectangle are zero. For example, CRx = CRy = 16.
[0328] 1) For example, CRx = SRx and CRy = SRy, where (SRx, SRy) is defined in SRCC as described in Section 2.14.
[0329] 2) Alternatively, the above method may be applied only when the block width or block height is greater than K.
[0330] a) In one example, K equals 16.
[0331] b) In one example, the above method is applied only when the block width is greater than K1 and K1 equals CRx; or when the block height is greater than K2 and K2 equals CRy.
[0332] ii. One or more of the methods may be applied only if the last non-zero coefficients (in the forward scan order) meet certain conditions, such as when the horizontal / vertical coordinates are not greater than a threshold (e.g., 16 / 32).
[0333] 7. When it is determined that IT is not to be used, default transformations such as DCT-2 or DST-7 can be used instead.
[0334] a. Optionally, when it is determined that IT is not to be used, one can choose from several default transformations such as DCT-2 or DST-7.
[0335] 8. To determine the transformations from the transformation set to be applied to the block encoded in prediction mode A, representative coefficients (e.g., bullet 2) in one or more representative blocks (e.g., bullet 1) are used, and the transformation set may depend on prediction mode A and / or one or more syntax elements and / or other encoding and decoding information (e.g., the use of DT, block dimensions).
[0336] a. In one example, the transform set is {DCT2}.
[0337] b. In one example, the transformation set is {IT}.
[0338] c. In one example, the transform set includes {DCT2, IT}.
[0339] d. In one example, the transform set includes {DCT2, DST7}.
[0340] e. In one example, DCT2 is used when the number of representative coefficients is even. Otherwise (when the number of representative coefficients is odd), DST7 or IT is used, which can be determined by prediction mode A and / or one or more syntax elements and / or other codec information.
[0341] i. In one example, if the prediction pattern A is IBC, IT is always used when the number of representative coefficients is odd.
[0342] ii. In one example, if the prediction mode A is intra-frame and DT is applied, DCT2 is always used when the number of representative coefficients is odd.
[0343] iii. In one example, if prediction mode A is intra-frame and DT is not applied, and one or more syntax elements indicate the use of implicit determination of IT or enable the use of implicit determination of transform skip mode, IT is always used when the number of representative coefficients is odd.
[0344] 9. Whether and / or how the methods disclosed above can be applied to signaling notification at the video region level (such as sequence level / picture level / strip level / group level / piece level / subpicture level).
[0345] a. In one example, signaling notifications (e.g., flags) can be found in the sequence header / picture header / SPS / VPS / DCI / DPS / PPS / APS / strip header / piece group header.
[0346] i. Additionally, alternatively, one or more syntax elements (e.g., one or more flags) may be signaled to specify whether the implicit determination method of IT is enabled or the use of implicit determination of the transformation skip mode is enabled.
[0347] 1) In one example, a signaling notification first flag can be used to control the use of a method for implicitly determining the IT of an IBC codec block at the video region level.
[0348] a) Additionally, a signaling notification flag may be added if IBC is checked to see if it is enabled.
[0349] b) Alternatively, whether the use of an implicit determination method for the IT of an IBC codec block is enabled can be controlled by the same flag used to control the use of the implicit selection (IST) mode for the transformation of intra-codec blocks in Excluded Derivative Tree (DT) mode.
[0350] 2) In one example, a signaling notification of a second flag may be used to control the implicit determination of the IT of intra-frame codec blocks at the video region level (e.g., blocks with derivation tree (DT) mode may be excluded).
[0351] 3) In one example, a signaling notification third flag can be used to control the use of an implicit method for determining the IT of inter-frame codec blocks at the video region level.
[0352] 4) In one example, signaling notification flags can be used to control the implicit determination of the IT of intra-frame codec blocks (e.g., blocks with DT mode can be excluded) and inter-frame codec blocks at the video region level.
[0353] 5) In one example, signaling notification flags can be used to control the implicit determination of the IT of IBC codec blocks and intra-frame codec blocks at the video region level (e.g., blocks with DT mode can be excluded).
[0354] ii. Additionally, optionally, when an implicit method for determining the video region is enabled (e.g., a flag is true), the following can be further applied:
[0355] 1) In one example, for an IBC codec block, if IT is used for the block, TS mode is applied; otherwise, DCT2 is used.
[0356] 2) In one example, for intra-frame codec blocks (e.g., blocks with DT mode can be excluded), if IT is used for the block, then TS mode is applied; otherwise, DCT2 is used.
[0357] iii. Additionally, optionally, when the implicit determination method of IT is disabled for a video region (e.g., the flag is set to false), the following can be further applied:
[0358] 1) In one example, DCT-2 is used for IBC or intra-frame codec blocks.
[0359] 2) In one example, for an intra-frame codec block (e.g., excluding blocks with DT mode), DCT-2 or DST-7 can be determined on the fly, such as by IST.
[0360] 3) In one example, for inter-frame codec blocks, if IT is used for the block, then TS mode is applied; otherwise, the following may apply:
[0361] a) In one example, DCT2 was used.
[0362] b) In one example, DCT2 / DST7 / DCT8 are used depending on the use of SBT.
[0363] 4) In one example, for direct codec blocks, if IT is used for the block, then TS mode is applied; otherwise, the following may apply.
[0364] a) In one example, DCT2 was used.
[0365] b) In one example, DCT2 / DST7 / DCT8 are used depending on the use of SBT.
[0366] b. Multi-level control that enables / applies IT methods can signal notifications at multiple video unit levels (e.g., sequence, picture, stripe levels).
[0367] i. In one example, the first video unit level is defined as the sequence level.
[0368] 1) Additionally, optionally, the first syntax element (e.g., a flag) is signaled in the sequence header / SPS / to indicate the use of IT.
[0369] a) In one example, the first syntax element being 0 indicates that the Implicit Selection Transform Skip (ISTS) method cannot be used in a sequence. Otherwise (the first syntax element being 1) indicates that the Implicit Selection Transform Skip (ISTS) method can be used in a sequence.
[0370] b) Alternatively, the first syntax element may be conditionally signaled, such as according to "Implicit selection of transformation (IST) is enabled / ist_enable_flag equals 1".
[0371] c) Additionally, optionally, when the first syntax element is not present, it is inferred to be a default value. For example, IT is inferred to be disabled for the first video unit level.
[0372] ii. In one example, the second video unit level is defined as the image / strip level.
[0373] 1) Additionally, optionally, a second syntax element (e.g., a flag) is signaled in the picture header (e.g., intra-frame picture header and / or inter-frame picture header) / strip header to indicate the use of IT.
[0374] a) Additionally, optionally, the second syntax element may be conditionally signaled, such as according to “Implicit Selection of Transformation (IST) is enabled” or “ist_enable_flag equals 1” and / or “IT method is enabled at the first video unit level (e.g., sequence)”.
[0375] b) Additionally, or, if the second syntax element is not present, it is inferred to be the default value. For example, IT is inferred to be disabled for the second video unit level.
[0376] c. Syntax elements indicating the allowed transform sets can be used at the video unit level (e.g., figure).
[0377] The slice is signaled and can be conditionally signaled based on whether the implicit selection of transformation (IST) is enabled.
[0378] i. In one example, syntax elements (e.g., flags or indexes) are signaled in the picture header (e.g., intra-frame picture header and / or inter-frame picture header) / strip header.
[0379] 1) In addition, or, support N different allowed transformation sets, the choice of which depends on the syntax element.
[0380] a) In one example, N is set to 2.
[0381] b) In one example, the choice of transform set may depend on block information, such as the encoding / decoding mode of the CU, or whether the CU is encoded / decoded in (derivative tree) DT mode.
[0382] i. For example, DCT2 is always used for CUs with DT mode.
[0383] ii. For example, DCT2 is always used for chroma blocks.
[0384] c) In one example, the two sets are {DCT2,DST7} and {DCT2,IT}.
[0385] i. Alternatively, they are used for intra-frame codec blocks.
[0386] ii. Alternatively, they are used for intra-frame codec blocks that are not DT-coded.
[0387] d) In one example, the two sets are {DCT2} and {DCT2,IT}.
[0388] i. Alternatively, they are used for intra-block copy (IBC) codec blocks.
[0389] ii. Alternatively, they are used for intra-block copy (IBC) codec blocks that are not DT-coded.
[0390] e) In one example, the two sets are {DCT2} and {DCT2,IT}.
[0391] i. In addition, or, they are used for inter-frame codec blocks.
[0392] ii. Alternatively, they may be used for inter-frame codec blocks that are not DT-coded.
[0393] f) In one example, the two sets are {DCT2} and {DCT2,IT}.
[0394] i. In addition, or, they are used for direct encoding and decoding blocks.
[0395] ii. Alternatively, they are used for direct codec blocks that are not DT codecs.
[0396] 2) Alternatively, if it does not exist, it is inferred as a default value. For example, the allowed set of transformations is inferred to allow only one transformation type (e.g., DCT2).
[0397] ii. In one example, syntax elements (e.g., flags or indexes) are used to control the selection of transformations from the allowed set of transformations for blocks with a particular encoding / decoding mode.
[0398] 1) In one example, it controls the selection of transforms from the allowed set of transforms for intra-frame codec blocks / intra-frame codec blocks, excluding blocks with applied DT and blocks with Pulse Codec Modulation (PCM) mode.
[0399] 2) Alternatively, for blocks with other encoding / decoding modes, the allowed set of transformations may be independent of the syntax elements.
[0400] a) In one example, for an inter-frame codec block, the allowed transform set is {DCT2}.
[0401] b) In one example, for an IBC codec block, the allowed transform set is {DCT2} or {DCT2, IT}, which may depend on, for example, whether IST is enabled or whether IBC is enabled for the current image.
[0402] c) In one example, for an inter-frame codec block, the allowed transform set is {DCT2,IT}.
[0403] d) In one example, for a direct codec block, the allowed transform set is {DCT2, IT}.
[0404] e) In one example, how to select the set of allowed transformations may depend on, for example, whether IST / SBT is enabled.
[0405] d. Whether and / or how the methods disclosed in this document are applied can be determined by considering one or more messages of signaling notification at the video area level, such as sequence level / picture level / strip level / piece group level / piece level / subpicture level, as well as picture / strip type and / or CTU / CU / PU / TU mode.
[0406] i. For example, for the first CU mode (e.g., IBC or inter-frame), TS is applied if the signaling notification message at the video region level (e.g., picture level) indicates that TS is enabled. For the second CU mode (e.g., intra-frame), TS is applied if the signaling notification message at the video region level indicates that TS should be used and additional conditions are met (e.g., the parity of the coefficients meets certain requirements set forth in this document).
[0407] ii. For example, for a first mode (e.g., CU / TU / PU mode, e.g., DT codec), TS is applied if the signaling notification message at the video region level (e.g., picture level) indicates that TS is enabled. For a second mode (e.g., non-DT codec), TS is applied if the signaling notification message at the video region level indicates that TS should be used and additional conditions are met (e.g., the parity of the coefficients meets certain requirements set forth in this document).
[0408] iii. For example, for the first mode (e.g., CU / TU / TU mode) (e.g., SBT codec), TS is applied if the signaling notification message at the video region level (e.g., picture level) indicates that TS is enabled. For the second mode (e.g., non-SBT codec), TS is applied if the signaling notification message at the video region level indicates that TS should be used and additional conditions are met (e.g., the parity of the coefficients meets certain requirements set forth in this document).
[0409] 10. At the video region level, such as sequence level / picture level / strip level / group level / piece level / subpicture level, signaling indicates whether to apply a zeroing instruction to transform blocks (including identity transforms).
[0410] a. In one example, the indication (e.g., a flag) can be signaled in the sequence header / picture header / SPS / VPS / DCI / DPS / PPS / APS / strip header / piece group header.
[0411] b. In one example, when the instruction specifies that zeroing is enabled, only IT transformations are allowed.
[0412] c. In one example, when the instruction specifies that zeroing is disabled, only non-IT transformations are allowed.
[0413] d. Additionally, optionally, the allowed range of binary / context modeling / last valid coefficients / bottom-right position (e.g., the maximum X / Y coordinates relative to the top-left position of the block) in the SRCC can depend on this indication.
[0414] 11. The first rule (e.g., in bullet points 1 to 7 above) can be used to determine the use of IT in the first block, and the second rule can be used to determine the transformation type that does not include IT.
[0415] a. In one example, the first rule can be defined as the residual energy distribution.
[0416] b. In one example, the second rule can be defined as the parity of the representative coefficients.
[0417] Transformation skip
[0418] 12. Apply zeroing to IT (e.g., TS) codec blocks, where non-zero coefficients are restricted to specific sub-regions of the block.
[0419] a. In one example, the zeroing range of an IT (e.g., TS) codec block is set to the upper right K*L sub-region of the block, where K is set to min(T1, W) and L is set to min(T2, H), where W and H are the block width / block height respectively, and T1 / T2 are two thresholds.
[0420] i. In one example, T1 and / or T2 can be set to 32 or 16.
[0421] ii. Alternatively, the last non-zero coefficient should be located within the K*L subregion.
[0422] iii. Alternatively, the lower right position (SRx, SRy) in the SRCC method should be located within the K*L subregion.
[0423] 13. Multiple zeroing types are defined for IT (e.g., TS) codec blocks, where each type corresponds to a sub-region of the block, where non-zero coefficients exist only in that sub-region.
[0424] a. In one example, non-zero coefficients exist only in the top-left K0*L0 subregion of the block.
[0425] b. In one example, non-zero coefficients exist only in the upper right K1*L1 subregion of the block.
[0426] i. Alternatively, signaling may be used to indicate the lower left position of a sub-region with a non-zero coefficient.
[0427] c. In one example, non-zero coefficients exist only in the lower left K2*L2 subregion of the block.
[0428] i. Alternatively, signaling may be used to indicate the upper right position of a sub-region with a non-zero coefficient.
[0429] d. In one example, non-zero coefficients exist only in the lower right K3*L3 subregion of the block.
[0430] i. Alternatively, signaling may be used to indicate the upper left position of a sub-region with a non-zero coefficient.
[0431] e. In addition, alternatively, explicit signaling notifications or immediate export of IT zeroing type instructions may be provided.
[0432] 14. When at least one valid coefficient is outside the zeroing region defined by IT (e.g., TS), such as outside the top-left K0*L0 sub-region of the block, IT (e.g., TS) is not used in the block.
[0433] a. Alternatively, in this case, the default transformation can be used.
[0434] 15. Use IT (e.g., TS) in a block when at least one valid coefficient is outside the zeroing region defined by another transformation matrix (e.g., DST7 / DCT2 / DCT8), such as outside the top-left K0*L0 sub-region of the block.
[0435] a. Alternatively, in this case, the TS mode may be used for inference.
[0436] Figures 16A to 16D The various zeroing types of TS codec blocks are shown. Figure 16A The top-left K0*L0 sub-region is shown. Figure 16B The upper right K1*L1 sub-region is shown. Figure 16C The lower left K2*L2 sub-region is shown. Figure 16D The lower right K3*L3 sub-region is shown.
[0437] General
[0438] 16. The transformation matrix can be determined at the CU / CB level or the TU level.
[0439] a. In one example, the decision is made at the CU level, where all TUs share the same transformation matrix.
[0440] i. Alternatively, when a CU is divided into multiple TUs, the coefficients in one TU (e.g., the first TU or the last TU) or some or all of the TUs can be used to determine the transformation matrix.
[0441] b. Whether to use a CU-level solution or a TU-level solution may depend on the block size and / or VPDU size and / or maximum CTU size and / or encoding / decoding information of a block.
[0442] i. In one example, when the block size is larger than the VPDU size, the CU level determination method can be applied.
[0443] 17. Whether and / or how the disclosed methods are applied may depend on encoding / decoding information, which may include:
[0444] a. Block dimension.
[0445] i. In one example, the above method can be applied to blocks whose width and / or height are no greater than a threshold (e.g., 32).
[0446] ii. In one example, the above method can be applied to blocks whose width and / or height are not less than a threshold (e.g., 4).
[0447] iii. In one example, the above method can be applied to blocks whose width and / or height are less than a threshold (e.g., 64).
[0448] b.QP
[0449] c. Image or strip type (such as I-frame or P / B frame, I-strip or P / B strip)
[0450] i. In one example, the proposed method can be enabled for I-frames but disabled for P / B frames.
[0451] d. Structural segmentation methods (single-tree or dual-tree)
[0452] i. In one example, the above method can be applied to strips / images / tiles / pieces for which single-tree segmentation is applied.
[0453] e. Encoding / decoding modes (such as inter-frame mode / intra-frame mode / IBC mode, etc.).
[0454] i. In one example, the above method can be applied to intra-frame codec blocks.
[0455] ii. In one example, the above method can be applied to intra-frame codec blocks (excluding blocks with DT applied and blocks without PCM mode).
[0456] iii. In one example, the above method can be applied to intra-frame codec blocks (excluding blocks with DT applied and blocks without PCM mode) and IBC codec blocks.
[0457] f. Encoding and decoding methods (such as intra-frame sub-block segmentation, Derived Tree (DT) methods, etc.).
[0458] i. In one example, the above method can be disabled for intra-frame codec blocks that have applied DT.
[0459] ii. In one example, the above method can be disabled for intra-frame codec blocks that have applied ISP.
[0460] iii. Encoding and decoding methods may include Subblock Transform (SBT).
[0461] iv. Encoding and decoding methods may include position-based transform (PBT).
[0462] v. In one example, the above method can be applied to blocks that use SBT for IBC encoding / decoding or inter-frame encoding / decoding.
[0463] g. Color components
[0464] i. In one example, the above method can be applied to the luma block, but not to the chroma block.
[0465] h. Intra-frame prediction modes (such as DC, vertical, horizontal, etc.).
[0466] i. Motion information (such as MV and reference index).
[0467] j. Standard grade / level / hierarchy
[0468] Coefficient Reordering
[0469] On the decoder side, coefficient reordering is defined as how to reorder or map the resolved coefficients before dequantization, or before inverse transformation, or before reconstruction. These coefficients can be used to reconstruct samples with or without inverse transformation.
[0470] 18. Coefficient reordering can be done at the CU level, TU level, or PU level.
[0471] 19. Whether / how coefficient reordering is applied may depend on the encoding / decoding information.
[0472] a. In one example, the encoding / decoding information may include the TU position of a TU-level partial sub-block.
[0473] b. In one example, the encoding / decoding information may include the transformation type.
[0474] i. In one example, the transformation type can be derived based on the coefficients presented in bullet points 1 through 17.
[0475] ii. Transformation types may include DCT-II, DST-VII, DCT-VIII, and TS (also known as IT).
[0476] iii. In one example, how the coefficients are reordered may depend on whether TS (also known as IT) is used.
[0477] 1) In one example, the analyzed coefficients are rearranged in reverse order before dequantization.
[0478] 2) In one example, the analyzed coefficients are rearranged in reverse order before being used for reconstruction.
[0479] 3) In one example, the analytical coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged in reverse order to C'(i,j) = C(M-1-i, N-1-j).
[0480] 4) In one example, the analytical coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged into C'(i,j) in different ways according to (i,j).
[0481] a) In one example, rearrange or not rearrange the analytical coefficients C(i,j) for i = 0, 1, ..., M-1, j = 0, 1, ..., N-1 according to (i,j).
[0482] b) In one example, for some specific (i,j), the analytical coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged in reverse order, but for some other (i,j), the analytical coefficients C(i,j) are not rearranged.
[0483] i. For example, when (i,j) satisfies (i<M / 2-S1||i> M / 2+S2)&&(j<N / 2-S3||j> The analytic coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged in reverse order to form C'(i,j) = C(M-1-i, N-1-j). S1, S2, S3, and S4 are integers, for example, S1 = S3 = 1, S2 = S4 = 0.
[0484] ii. For example, for (i,j) that does not satisfy the condition C'(i,j)=C(i,j).
[0485] iii. For example, such as Figure 24 (As shown in coefficient reordering method A), for all valid (i,j) except those where (i,j) equals (M / 2-1, N / 2) or (M / 2, N / 2-1), the analytical coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged in reverse order to C'(i,j) = C(M-1-i, N-1-j). For these two positions, C'(M / 2-1, N / 2) = C(M / 2-1, N / 2) and C'(M / 2, N / 2-1) = C(M / 2, N / 2-1).
[0486] iv. In Figure 25 In one example shown in (coefficient reordering method B), for all valid (i,j) except those where (i,j) equals (M-1, 0) and (0, N-1), the analytical coefficients C(i,j) of i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1 are rearranged in reverse order to C'(i,j) = C(M-1-i, N-1-j). For these two positions, C'(M-1,0) = C(M-1,0) and C'(0, N-1) = C(0, N-1).
[0487] 20. Whether to determine coefficient reordering based on the transformation type can depend on the strip / image / slice type.
[0488] a. In one example, the coefficient reordering is determined based on the transformation type of a specific strip / picture / (multiple) slice type, such as I-strip or I-picture.
[0489] b. In one example, the coefficient reordering is not determined based on the transformation type of a specific strip / picture / (multiple) slice type, such as P-strips and / or B-strips or P-pictures and / or B-pictures.
[0490] 21. Whether coefficient reordering is determined based on the transformation type can depend on the CTU / CU / block type.
[0491] a. In one example, the coefficient reordering is determined based on the transform type of a particular CTU / CU / (multiple) block type (e.g., intra-frame codec block).
[0492] b. In one example, the coefficient reordering is not determined based on the transformation type of a specific CTU / CU / (multiple) block type, CTU / CU / block(multiple) type (e.g., inter-frame codec block or IBC codec block).
[0493] c. In one example, the coefficient reordering is not determined based on the transform type of the DT codec block.
[0494] 22. Whether to determine the coefficient reordering based on the transformation type may depend on the message that can be signaled in VPS / SPS / PPS / sequence header / picture header / strip header / CTU / CU / block.
[0495] a. The message can be a flag.
[0496] b. The message can be conditionally signaled.
[0497] i. For example, if the CU-level block is not a zero residual block, only signaling notification messages can be used.
[0498] ii. For example, if a TU-level block or a portion of a sub-block is not a zero residual block, then only signaling notification messages are allowed.
[0499] iii. If the message is not signaled, it is assumed to be a default value, such as 0 or 1.
[0500] iv. For example, if TS is enabled, only signaling notification messages can be sent.
[0501] c. For example, the first message (denoted as ph_rts_enable_flag) is a signaling notification in the image header. The TS codec block can only reorder the coefficients if ph_rts_enable_flag is true.
[0502] i. The second message (denoted as rts_enable_flag) is signaled in the sequence header. ph_rts_enable_flag will only be signaled if rts_enable_flag is true. Otherwise, ph_rts_enable_flag will not be signaled and will be inferred as false.
[0503] 23. How coefficients are reordered may depend on the signaling notification messages that can be included in VPS / SPS / PPS / sequence header / picture header / strip header / CTU / CU / block.
[0504] a. The message can be a flag.
[0505] b. The message can be conditionally signaled.
[0506] i. If the message is not signaled, it is assumed to be a default value, such as 0 or 1.
[0507] ii. For example, if TS is enabled, only signaling notification messages can be sent.
[0508] iii. For example, signaling notification messages can only be sent to specific CTU / CU / (multiple) block types, or CTU / CU / (multiple) block types (e.g., inter-frame codec blocks or IBC codec blocks).
[0509] Partial residual blocks
[0510] 24. If the current block is IBC encoded, there may be no signaling notification indicating whether a position-based transformation message (represented as pbt_cu_flag) should be applied.
[0511] 25. It is recommended that blocks with a specific pattern be divided into at least two parts, and that at least one part of each part has no non-zero residuals (in other words, the residuals are set to zero without being signaled). Such a block is called a Partial Residual Block (PRB).
[0512] a. In one example, the specific mode is IBC.
[0513] i. In one example, IT or DCT2 can be applied to PRB.
[0514] ii. In one example, IT is applied to PRB.
[0515] b. In one example, if the current block is IBC encoded or decoded, a message indicating whether SBT is used (denoted as sbt_cu_flag) can be signaled.
[0516] i. If sbt_cu_flag is true for an IBC codec block, then the block uses PRB codec. Furthermore, the segmentation method is the same as defined in the messages describing SBT segmentation (such as sbt_quad_flag, sbt_dir_flag, sbt_pos_flag).
[0517] c. In one example, the specific mode is inter-frame, and only IT (or one of IT / DCT2) is applied to the block.
[0518] d. In one example, the M×N block is divided into two parts:
[0519] i. The two parts can be (M / k)×N blocks A and (MM / k)×N blocks B, where k is an integer greater than 1, such as 2, 4, 8, 16.
[0520] ii. The two parts can be M×(N / k) blocks A and M×(NN / k) blocks B, where k is an integer greater than 1, such as 2, 4, 8, 16.
[0521] iii. The two parts can be (M / k)×(N / k) blocks A, and the other part is an "L"-shaped region B, where k is an integer greater than 1, such as 2, 4, 8, or 16. Block A can be located at the top left, top right, bottom left, or bottom right corner of the M×N block, as shown below. Figure 23 As shown.
[0522] iv. In one example, block A may have no residuals, while block B may have non-zero residuals.
[0523] v. In one example, block B may have no residuals, while block A may have non-zero residuals.
[0524] vi. In one example, a message used to indicate whether a block has a non-zero residual (such as a CBF) may not be notified by signaling and for the portion of the PRB to be determined to have a non-zero residual, it is inferred as one.
[0525] e. In one example, signaling can be used in the bitstream to notify portions of the data that have non-zero coefficients (or have all zero coefficients).
[0526] i. In one example, the instruction for this part can be signaled, such as an instruction for SBT.
[0527] ii. In one example, the allowed set of segments (e.g., as described in the bullet points above) may be predefined and / or indicated in the bitstream based on decoding information (e.g., mode).
[0528] f. In one example, transformation skipping can be applied to a PRB with dimensional (width and / or height) constraints.
[0529] i. In one example, a transform skip can only be applied if (W <= T1) && (H <= T1) && (W > T2 || H > T2), where W and H are the width and height of the codec block, and T1 and T2 are integers, for example, T1 = 64, T2 = 4.
[0530] ii. In one example, the transformation skip can only be applied if (W<=T1)&&(H<=T2), where T1 and T2 are integers, such as 32 or 64, and W and H are the width and height of the non-zero portion of the PRB or codec block.
[0531] iii. In one example, the transform skip can only be applied if (W>T1)||(H>T2), where T1 and T2 are integers, such as 4 or 8, and W and H are the width and height of the non-zero portion of the PRB or codec block.
[0532] g. In one example, a transformation or transformation skip can be applied to the portion of the PRB that has non-zero residues.
[0533] i. All bullet points and examples in this document can be applied to this section to determine whether and / or how to use transformations.
[0534] h. In one example, whether a block is a PRB depends on the signaling notification messages that can be found in VPS / SPS / PPS / Sequence Header / Picture Header / Strip Header / CTU / CU / Block.
[0535] i. The message can be a flag.
[0536] ii. The message can be conditionally signaled.
[0537] 5) If the message is not signaled, it is assumed to be a default value, such as 0 or 1.
[0538] iii. For example, signaling notification messages can only be sent for specific CTU / CU / (multiple) block types, CTU / CU / (multiple) block types (e.g., IBC codec blocks).
[0539] iv. If the block is a PRB, a signaling notification message will be sent to indicate how the PRB should be segmented.
[0540] i. In one example, multi-level signaling can be used to determine whether to use PRB.
[0541] i. In one example, for the first level, such as the sequence / image level, a signaling indication can be given as to whether the PRB is enabled.
[0542] 6) In addition, optionally, the instruction can be conditionally signaled, for example, based on whether IBC / screen content is used.
[0543] ii. In one example, for the second level, such as at the block level, signaling can be used to indicate whether a PRB should be applied.
[0544] 7) In addition, or, conditionally, the instruction may be signaled, for example, based on the instruction in Level 1 and / or other decoding information (e.g., block dimension / mode).
[0545] j. Whether PRB mode is allowed may depend on the information provided by the signaling notification or may be determined on the fly based on the decoding information (e.g., color components).
[0546] k. For example, the first message (denoted as ph_pts_enable_flag) is a signaling notification in the image header. The IBC codec block can only apply the PRB if ph_pts_enable_flag is true.
[0547] i. The second message (denoted as pts_enable_flag) is signaled in the sequence header. ph_pts_enable_flag is only signaled if pts_enable_flag is true. Otherwise, ph_pts_enable_flag is not signaled and is inferred to be false.
[0548] 5. Example Implementation
[0549] The following are some example embodiments of this disclosure summarized in Section 4 above, which can be applied to the VVC specification. Most of the relevant parts that have been added or modified are based on... Bold Italic Underline the text, and use [[]] to indicate any deleted parts.
[0550] 5.1. Example #1
[0551] This section presents an example of a solution for implicit selection of Transform Skip Mode (ISTS). Essentially, it follows the design principles of Implicit Transform Selection (ISTS) already adopted by AVS3. A high-level flag in the image header signaling indicates that ITS is enabled. If enabled, the allowed transform set is set to {DCT-II TS}, and the TS mode is determined based on the parity of the number of non-zero coefficients in the block. Simulation results report that, compared to HPM 6.0, the proposed ITS achieves a 15.86% and 12.79% bitrate reduction in screen content encoding / decoding, respectively, under AI and RA configurations. The increase in encoder and decoder complexity is claimed to be negligible.
[0552] 5.1.1. Introduction
[0553] In the current design of AVS3, only DCT-II is allowed for encoding and decoding residual blocks in IBC mode. For intra-frame codec blocks that do not include DT, applying IST allows the block to choose between DCT-II or DST-VII based on the parity of the number of non-zero coefficients. However, DST-VII is much less efficient for screen content encoding and decoding. Transform Skip (TS) mode is an efficient encoding and decoding method for screen content encoding and decoding. It is necessary to investigate how to allow the codec to support TS without explicitly notifying the block via signaling.
[0554] 5.1.2. Recommended Methods
[0555] In some embodiments, an implicit selection of Transformation Skip Mode (ISTS) can be used. An advanced flag is signaled in the image header to indicate whether ISTS is enabled.
[0556] When ISTS is enabled, the allowed transform set is set to {DCT-II TS}, and the TS mode is determined based on the parity of the number of non-zero coefficients in the block, following the same design principles as IST. Odd indicators apply TS, while even indicators apply DCT-II. ISTS is applicable to CUs of sizes from 4×4 to 32×32 for intra-frame or IBC codecs (excluding CUs applying DT or PCM).
[0557] When ITS is disabled and IST is enabled, the allowed transform set is set to {DCT-II DST-VII}, which is the same as the current AVS3 design.
[0558] 5.1.3. Suggested changes to the syntax table, semantics, and decoding process
[0559] 7.1.2.2 Sequence Header
[0560] Table 14 Sequence Header Definitions
[0561]
[0562] 7.1.3.1 Image header of image
[0563] Table 27 Intra-frame Prediction Header Definitions
[0564]
[0565] 7.1.3.2 Inter-frame Prediction Header Definition
[0566] Table 28 Inter-frame Prediction Header Definitions
[0567]
[0568]
[0569]
[0570] 7.2.2.2 Sequence Header
[0571]
[0572] 7.2.3.1 Intra-frame prediction header
[0573]
[0574] 9.6.3 Inverse Transformation
[0575] This paper defines the process of converting the M1×M2 transformation coefficient matrix CoeffMatrix into the residual sample matrix ResidueMatrix.
[0576] If the intra-prediction mode is neither 'Intra_Luma_PCM' nor 'Intra_Chroma_PCM'
[0577] like The current transform block is a lumen intra-frame prediction residual block. The values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1. Then, the residual sample matrix ResidueMatrix is derived according to the method defined by 0.
[0578]
[0579] Otherwise, derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.1.
[0580] Otherwise (intra-prediction mode is 'Intra_Luma_PCM' or 'Intra_Chroma_PCM'), derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.3.
[0581] 9.6.3.4 Implicit Inverse Transformation Skip Method
[0582]
[0583] 5.2. Example #2
[0584] 5.2.1. Suggested changes to the syntax table, semantics, and decoding process
[0585] 7.1.2.2 Sequence Header Definition
[0586] Table 14 Sequence Header Definitions
[0587] Sequence header definition descriptor … … ist_enable_flag u(1) ists_enable_flag u(1) <![CDATA[ ts_inter_enable_flag ]]> <![CDATA[ u(1) ]]>
[0588] 7.1.3.2 Inter-frame Prediction Header Definition
[0589]
[0590]
[0591] 7.1.6 Encoding / Decoding Unit Definition
[0592]
[0593] 7.1.7 Transform Block Definition
[0594]
[0595]
[0596] 7.2.2.2 Sequence Header
[0597]
[0598] 7.2.3.2 Inter-frame Prediction Image Header
[0599]
[0600] 9.6.3 Inverse Transformation
[0601] If the intra-prediction mode is neither 'Intra_Luma_PCM' nor 'Intra_Chroma_PCM', or if the current block uses the block copy intra-prediction mode, then:
[0602] —If PhIstsEnableFlag is 0 and the current transform block is a lumen intra-frame prediction residual block, the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.2.
[0603] Otherwise, if PhIstsEnableFlag is 1, and the current transform block is a luma intra-prediction residual block or a luma block copy of an intra-prediction residual block. , If the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.4.
[0604] Otherwise, derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.1.
[0605] Otherwise (intra-prediction mode is 'Intra_Luma_PCM' or 'Intra_Chroma_PCM'), derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.3.
[0606] 5.3. Example #3
[0607] 7.1.2.2 Sequence Header Definition
[0608] Sequence header definition descriptor … … ist_enable_flag u(1) ists_enable_flag u(1) <![CDATA[ ts_inter_enable_flag ]]> <![CDATA[ u(1) ]]> <![CDATA[ pts_enable_flag ]]> <![CDATA[ u(1) ]]> srcc_enable_flag u(1)
[0609] 7.1.3.2 Inter-frame Prediction Header Definition
[0610]
[0611]
[0612] 7.1.6 Encoding / Decoding Unit Definition
[0613]
[0614] 7.1.7 Transform Block Definition
[0615]
[0616] 7.2.2.2 Sequence Header
[0617]
[0618]
[0619] 7.2.3.2 Inter-frame Prediction Image Header
[0620]
[0621] 9.6.3 Inverse Transformation
[0622] If the intra-prediction mode is neither 'Intra_Luma_PCM' nor 'Intra_Chroma_PCM', or if the current block uses the block copy intra-prediction mode, then:
[0623] —If PhIstsEnableFlag is 0 and the current transform block is a lumen intra-frame prediction residual block, the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.2.
[0624] Otherwise, if PhIstsEnableFlag is 1, and the current transform block is a luma intra-prediction residual block or a luma block copy of an intra-prediction residual block. If the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.4.
[0625] Otherwise, derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.1.
[0626] Otherwise (intra-prediction mode is 'Intra_Luma_PCM' or 'Intra_Chroma_PCM'), derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.3.
[0627] 5.4. Example #4
[0628] 7.1.2.2 Sequence Header Definition
[0629] Sequence header definition descriptor … … ist_enable_flag u(1) ists_enable_flag u(1) <![CDATA[ ts_inter_enable_flag ]]> <![CDATA[ u(1) ]]> <![CDATA[ pts_enable_flag ]]> <![CDATA[ u(1) ]]> <![CDATA[ rts_enable_flag ]]> <![CDATA[ u(1) ]]> srcc_enable_flag u(1)
[0630] 7.1.3.2 Inter-frame Prediction Header Definition
[0631]
[0632]
[0633] 7.1.6 Encoding / Decoding Unit Definition
[0634]
[0635] 7.1.7 Transform Block Definition
[0636]
[0637] 7.2.2.2 Sequence Header
[0638]
[0639] 7.2.3.2 Inter-frame Prediction Header Definition
[0640]
[0641] 9.6.3 Inverse Transformation
[0642] If the intra-prediction mode is neither 'Intra_Luma_PCM' nor 'Intra_Chroma_PCM', or if the current block uses the block copy intra-prediction mode, then:
[0643] —If PhIstsEnableFlag is 0 and the current transform block is a lumen intra-frame prediction residual block, the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.2.
[0644] Otherwise, if PhIstsEnableFlag is 1, and the current transform block is a luma intra-prediction residual block or a luma block copy of an intra-prediction residual block. If the values of M1 and M2 are both less than 64 and the value of IstTuFlag is equal to 1, then the residual sample matrix ResidueMatrix is derived according to the method defined in 9.6.3.4.
[0645] Otherwise, derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.1.
[0646] Otherwise (intra-prediction mode is 'Intra_Luma_PCM' or 'Intra_Chroma_PCM'), derive the residual sample matrix ResidueMatrix according to the method defined in 9.6.3.3.
[0647] 9.6.3.4 Implicit Selective Inverse Transform Skip Method
[0648] The implicit selective inverse transform skipping method is as follows:
[0649] a) Calculate the shift, the shift is equal to 15 – BitDepth – ((logM1+logM2)>>1)
[0650]
[0651] otherwise:
[0652] m = i, n = j
[0653] [[b)]] c) If the shift is greater than or equal to 0, then the carry factor rnd_factor is equal to 1 << (shift – 1). The matrix W is obtained from the transformation coefficient matrix:
[0654] w ij =(CoeffMatrix [[ij)] mn +rnd_factor)>> Shift
[0655] [[c)]] d) If the shift is less than 0, let shift = -shift. Obtain matrix W from the transformation matrix:
[0656] w ij =(CoeffMatrix [[ij)] mn +rnd_factor)<< shift
[0657] [[d)]] e) The matrix W is directly used as the residual sample matrix ResidueMatrix, and the implicit inverse transformation skip operation is terminated.
[0658] 5.5. Example #5
[0659] 9.6.3.4 Implicit Inverse Transformation Skip Method
[0660] The method for skipping implicit selective inverse transform is as follows:
[0661] a) Calculate the shift, the shift is equal to 15 – BitDepth – ((logM1+logM2)>>1)
[0662] b) Calculate the position indices m and n, as follows:
[0663] If the current transform block is a normal lumen intra-prediction residual block or the value of the current transform block SbtCuFlag is greater than 0, and PhRtsEnableFlag is 1, and m is not equal to (M1 / 2-1) and n is not equal to (M2 / 2) or m is not equal to (M1 / 2) and n is not equal to (M2 / 2–1):
[0664] m = M1 – i, N = M2 – j
[0665] otherwise:
[0666] m = i, N = j
[0667] c) If the shift is greater than or equal to 0, then the carry factor rnd_factor is equal to 1 << (shift – 1). The matrix W is obtained from the transformation coefficient matrix:
[0668] wij=(CoeffMatrixijmn+rnd_factor)>>shift
[0669] d) If the shift is less than 0, let shift = -shift. Obtain matrix W from the transformation matrix:
[0670] wij=(CoeffMatrixijmn+rnd_factor)<<transition
[0671] e) Directly use matrix W as the residual sample matrix ResidueMatrix and end the skip operation of implicit selective inverse transformation.
[0672] Figure 17 This is a block diagram of an example video processing system 1700 that can implement the various techniques disclosed herein. Various implementations may include some or all of the components in system 1700. System 1700 may include an input 1702 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10-bit multi-component pixel values), or in a compressed or encoded format. Input 1702 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces (such as Ethernet, Passive Optical Networking (PON), etc.) and wireless interfaces (such as Wi-Fi or cellular interfaces).
[0673] System 1700 may include a codec component 1704 capable of implementing the various codec or encoding methods described in this document. Codec component 1704 can reduce the average bit rate of the video from input 1702 to the output of codec component 1704 to produce a codec representation of the video. Therefore, codec techniques are sometimes referred to as video compression or video transcoding techniques. The output of codec component 1704 may be stored or transmitted via connected communication, as represented by component 1706. The stored or communicated bitstream (or codec) representation of the video received at input 1702 may be used by component 1708 to generate pixel values or displayable video that is sent to display interface 1710. The process of generating user-visible video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although some video processing operations are referred to as "codec" operations or tools, it should be understood that the codec tool or operation is used at the encoder, and the corresponding decoding tool or operation will be inverted by the decoder to retrieve the result of the codec.
[0674] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort. Examples of storage interfaces include SATA (Serial Advanced Technology Accessory), PCI, IDE, etc. The technologies described in this document can be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of digital data processing and / or video display.
[0675] Figure 21 This is a block diagram of a video processing apparatus 3600. Apparatus 3600 can be used to implement one or more of the methods described herein. Apparatus 3600 can be implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. Apparatus 3600 may include one or more processors 3602, one or more memories 3604, and video processing circuitry 3606. The processors 3602(s) may be configured to implement one or more methods described herein. The memories 3604(s) may be used to store data and code used to implement the methods and techniques described herein. The video processing circuitry 3606 may be used to implement some of the techniques described herein in hardware circuitry.
[0676] Figure 18 This is a block diagram illustrating an example video codec system 100 that can utilize the techniques disclosed herein.
[0677] like Figure 18As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110, and the destination device 120 may be referred to as a video decoding device.
[0678] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0679] Video source 112 may include sources such as video capture devices, interfaces for receiving video data from video content providers, and / or computer graphics systems that generate video data, or combinations of these sources. Video data may include one or more pictures. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a codec representation of the video data. The bitstream may include codec pictures and associated data. A codec picture is a codec representation of a picture. Associated data may include sequence parameter sets, picture parameter sets, and other syntax elements. I / O interface 116 includes a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be transmitted directly to destination device 120 via network 130a through I / O interface 116. Encoded video data may also be stored on storage medium / server 130b for access by destination device 120.
[0680] Destination device 120 may include I / O interface 126, video decoder 124 and display device 122.
[0681] I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may acquire encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120 or may be external to destination device 120 configured to connect to an external display device.
[0682] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as High Efficiency Video Codec (HEVC), Multi-Functional Video Codec (VVM), and other current and / or other standards.
[0683] Figure 19 This is a block diagram illustrating an example of a video encoder 200, which may be... Figure 18 The video encoder 114 in the system 100 shown in the figure.
[0684] The video encoder 200 can be configured to perform any or all of the techniques disclosed herein. Figure 19 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0685] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 (which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206), a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.
[0686] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0687] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, can be highly integrated, but for interpretive purposes... Figure 19 The examples are shown separately.
[0688] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.
[0689] The mode selection unit 203 can, for example, select one of the intra-frame or inter-frame encoding / decoding modes based on the error result, and provide the obtained intra-frame or inter-frame encoded / decoded blocks to the residual generation unit 207 to generate residual block data and to the reconstruction unit 212 to reconstruct the encoded blocks for use as reference images. In some examples, the mode selection unit 203 can select a combined intra-frame and inter-frame prediction (CIIP) mode, where the prediction is based on the inter-frame prediction signal and the intra-frame prediction signal. The mode selection unit 203 can also select the resolution of the motion vector (e.g., sub-pixel or integer pixel precision) for the blocks in the inter-frame prediction case.
[0690] To perform inter-frame prediction for the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information of the image from buffer 213 (rather than the image associated with the current video block) and decoded samples.
[0691] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, for example, the different operations performed depend on whether the current video block is in an I-strip, a P-strip, or a B-strip.
[0692] In some examples, motion estimation unit 204 can perform unidirectional prediction of the current video block, and can search for a reference video block for the current video block in the reference images of list 0 or list 1. Motion estimation unit 204 can then generate a reference index indicating that the reference image in list 0 or list 1 contains the reference video block, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current block based on the reference video block indicated by the motion information of the current video block.
[0693] In other examples, motion estimation unit 204 can perform bidirectional prediction of the current video block. Motion estimation unit 204 can search for a reference video block for the current video block in the reference images of list 0 and can also search for another reference video block for the current video block in the reference images of list 1. Motion estimation unit 204 can then generate a reference index indicating that the reference images in list 0 or list 1 contain the reference video block, and a motion vector indicating the spatial displacement between the reference video block and the current video block. Motion estimation unit 204 can output the reference index and the motion vector of the current video block as the motion information of the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.
[0694] In some examples, the motion estimation unit 204 can output the complete set of motion information for the decoder's decoding process.
[0695] In some examples, motion estimation unit 204 may not output the complete set of motion information for the current video. Instead, motion estimation unit 204 may signal the motion information of the current video block by referencing the motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of adjacent video blocks.
[0696] In one example, the motion estimation unit 204 may indicate in the syntax structure associated with the current video block that the current video block has the same motion information value as another video block.
[0697] In another example, motion estimation unit 204 can identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicating video block. Video decoder 300 can use the motion vector of the indicating video block and the motion vector difference to determine the motion vector of the current video block.
[0698] As discussed above, the video encoder 200 can predictively signal motion vectors. Two examples of predictive signaling notification techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge pattern signaling notification.
[0699] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples from other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.
[0700] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) multiple predicted video blocks from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of the samples in the current video block.
[0701] In other examples, such as in skip mode, residual data for the current video block may not exist, and the residual generation unit 207 may not perform a subtraction operation.
[0702] The transform processing unit 208 can generate one or more transform coefficient video blocks of the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0703] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the 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.
[0704] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block respectively to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted video blocks generated by the prediction unit 202 to produce a reconstructed video block associated with the current block for storage in the buffer 213.
[0705] After the video block is reconstructed in reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.
[0706] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream including the entropy encoded data.
[0707] Figure 20 This is a block diagram illustrating an example of a video decoder 300, which may be... Figure 18 The video decoder 114 in the system 100 shown in the figure.
[0708] The video decoder 300 can be configured to perform any or all of the techniques disclosed herein. Figure 20 In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0709] exist Figure 20 In the example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform operations related to the video encoder 200 ( Figure 19 The decoding process is the overall inversion of the encoding process described.
[0710] Entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded blocks of video data). Entropy decoding unit 301 can decode the entropy-encoded video, and based on the entropy-encoded video data, motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference image list index, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and merge modes.
[0711] The motion compensation unit 302 can generate motion compensation blocks, possibly based on interpolation filters. The identifier of the interpolation filter to be used at sub-pixel precision can be included in the syntax element.
[0712] The motion compensation unit 302 can use the interpolation filter used by the video encoder 200 during the encoding of the video block to calculate the interpolation values of a sub-integer number of pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 based on the received syntax information and use the interpolation filter to generate the prediction block.
[0713] The motion compensation unit 302 can use some syntactic information to determine: the size of the blocks used to encode (multiple) frames and / or (multiple) stripes of the encoded video sequence, segmentation information describing how each macroblock of the image of the encoded video sequence is segmented, a mode indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence.
[0714] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Inverse quantization unit 304 inverse quantizes (e.g., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies an inverse transform.
[0715] The reconstruction unit 306 can sum the residual blocks using the corresponding prediction blocks generated by the motion compensation unit 202 or the intra-frame prediction unit 303 to form a decoded block. As desired, a deblocking filter can also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also produces the decoded video for presentation on the display device.
[0716] The following provides a list of preferred solutions for some embodiments.
[0717] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 1).
[0718] 1. A video processing method (e.g., Figure 22 The method described in the text (2200) includes: for the conversion between video blocks of a video and the encoded / decoded representation of the video, determining (2202) whether a horizontal or vertical identity transformation is applied to the video blocks based on a rule; and performing (2204) a conversion based on the determination, wherein the rule specifies the relationship between the determination and the representative coefficients of the decoding coefficients from one or more representative blocks of the video.
[0719] 2. According to the method described in Solution 1, one or more representative blocks belong to the color component to which the video block belongs.
[0720] 3. According to the method described in Solution 1, one or more representative blocks belong to a color component that is different from the color component of the video block.
[0721] 4. The method according to any one of solutions 1-3, wherein one or more representative blocks correspond to video blocks.
[0722] 5. The method according to any one of solutions 1-3, wherein one or more representative blocks do not include video blocks.
[0723] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Items 1 and 2).
[0724] 6. The method according to any one of solutions 1-5, wherein the representative coefficients include decoding coefficients with non-zero values.
[0725] 7. The method according to any one of solutions 1-6, wherein the relationship specifies the use of the representativeness coefficient based on a modified coefficient determined by modifying the representativeness coefficient.
[0726] 8. The method according to any one of solutions 1-7, wherein the representative coefficients correspond to the effective coefficients of the decoding coefficients.
[0727] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 3).
[0728] 9. A video processing method, comprising: performing a conversion between video blocks of a video and a encoded / decoded representation of the video; determining, based on a rule, whether a horizontal or vertical identity transformation is applied to the video blocks; and performing the conversion according to the determination, wherein the rule specifies a relationship between the determination and the decoded luminance coefficients of the video.
[0729] 10. The method according to Solution 1, wherein performing the transformation includes applying a horizontal or vertical isomorphic transformation to the luminance component of the video block and applying DCT2 to the chrominance component of the video block.
[0730] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Items 1 and 4).
[0731] 11. A video processing method comprising: performing a conversion between video blocks of a video and a codec representation of the video; determining, based on a rule, whether a horizontal or vertical identity transformation is applied to the video blocks; and performing the conversion according to the determination, wherein the rule defines a relationship between the determination and a value V associated with a decoding coefficient or a representative coefficient of a representative block.
[0732] 12. The method according to solution 11, wherein V equals multiple representative coefficients.
[0733] 13. The method described in solution 11, wherein V is equal to the sum of the values of the representative coefficients.
[0734] 14. The method according to solution 11, wherein V is a function of the residual energy distribution of the representative coefficient.
[0735] 15. The method according to any one of solutions 11-14, wherein the relationship is defined relative to the parity check of the value V.
[0736] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 5).
[0737] 16. The method according to any one of the above solutions, wherein the rule-defined relationship further depends on the encoding and decoding information of the video block.
[0738] 17. The method according to solution 16, wherein the encoding / decoding information is the encoding / decoding mode of the video block.
[0739] 18. The method according to solution 16, wherein the encoding / decoding information includes a minimum rectangular region covering all valid coefficients of the video block.
[0740] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 6).
[0741] 19. The method according to any one of the above solutions, wherein the determination is performed because the video block has a pattern or constraints on the coefficients.
[0742] 20. The method according to solution 19, wherein the type corresponds to the intra-block copy (IBC) mode.
[0743] 21. The method according to solution 19, wherein the constraint on the coefficients makes the coefficients outside the rectangle of the current block zero.
[0744] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 7).
[0745] 22. The method according to any one of solutions 1-21, wherein, when it is determined that horizontal and vertical identity transformations are not used, the transformation is performed using DCT-2 or DST-7 transformation.
[0746] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Project 9).
[0747] 23. The method according to any one of solutions 1-22, wherein one or more syntax fields in the codec representation indicate whether the method is enabled for a video block.
[0748] 24. The method according to solution 23, wherein one or more syntax fields are included at the sequence level, picture level, strip level, slice group level, slice level, or sub-picture level.
[0749] 25. The method according to any one of solutions 23-24, wherein one or more syntax fields are included in a strip header or an image header.
[0750] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Items 1 and 8).
[0751] 26. A video processing method, comprising: determining that one or more syntax fields exist in a codec representation of a video, wherein the video contains one or more video blocks; and determining, based on the one or more syntax fields, whether a horizontal or vertical identity transformation has been enabled for a video block in the video.
[0752] 27. The method according to Solution 1, wherein in response to an implicit determination indicating that a transform skip mode is enabled by one or more syntax fields, a determination is made on whether to apply a horizontal identity transformation or a vertical identity transformation to the video block for the transformation between a first video block of the video and the codec representation of the video, according to a rule; and the transformation is performed based on the determination, wherein the rule specifies the relationship between the determination and the representative coefficients of the decoding coefficients from one or more representative blocks of the video.
[0753] 28. According to the method described in Solution 27, the first video block is encoded and decoded in intra-block copy mode.
[0754] 29. According to the method described in Solution 27, the first video block is encoded and decoded in intra-frame mode.
[0755] 30. According to the method described in Solution 27, the first video block is encoded and decoded in intra-frame mode rather than in derivative tree (DT) mode.
[0756] 31. According to the method described in Solution 27, the parity is determined based on the number of non-zero coefficients in the first video block.
[0757] 32. According to the method described in Solution 27, when the parity of the number of non-zero coefficients in the first video block is even, apply horizontal and vertical identity transformations to the first video block.
[0758] 33. According to the method described in Solution 27, when the parity of the number of non-zero coefficients in the first video block is even, the horizontal and vertical identity transformations are not applied to the first video block.
[0759] 34. According to the method described in solution 33, DCT-2 is applied to the first video block.
[0760] 35. The method according to solution 32 further includes, in response to one or more syntax fields indicating that the implicit determination of the transform skip mode is disabled, that the horizontal and vertical identity transforms are not applied to the first video block.
[0761] 36. The method according to solution 32, wherein DCT-2 is applied to the first video block.
[0762] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., Items 9 and 10).
[0763] 37. A video processing method, comprising: making a first determination regarding whether a video block is a video and a video codec representation thereof enables the use of an identity transformation; making a second determination regarding whether a zeroing operation is enabled during the transformation process; and performing the transformation based on the first determination and the second determination.
[0764] 38. The method according to solution 37, wherein one or more syntax fields of the first level in the codec representation indicate the first determination.
[0765] 39. The method according to any one of solutions 37-38, wherein one or more syntax fields of the second level in the codec representation indicate a second determination.
[0766] 40. The method according to any one of solutions 38-39, wherein the first level and the second level correspond to a header field at the sequence or image level or a parameter set or adaptive parameter set at the sequence or image level.
[0767] 41. The method according to any one of solutions 37-40, wherein the transformation uses an identity transformation or a zeroing operation, but not both.
[0768] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., items 12 and 13).
[0769] 42. A video processing method comprising: performing a conversion between video blocks of a video and a codec representation of the video; wherein the video blocks are represented as codec blocks in the codec representation, wherein the non-zero coefficients of the codec blocks are restricted to one or more sub-regions; and wherein an identity transformation is applied to generate the codec blocks.
[0770] 43. According to the method of Solution 1, one or more sub-regions include the upper right sub-region of the video block with dimensions KxL, where K and L are integers, and K is min(T1,W) and L is min(T2,H), where W and H are the width and height of the video block, respectively, and T1 and T2 are thresholds.
[0771] 44. The method according to any one of solutions 42-43, wherein the encoding / decoding representation indicates one or more sub-regions.
[0772] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., items 16 and 17).
[0773] 45. The method according to any one of solutions 1-44, wherein the video region includes a video encoding / decoding unit.
[0774] 46. The method according to solutions 1-45, wherein the video region is a prediction unit or a transformation unit.
[0775] 47. The method according to any one of solutions 1-46, wherein the video blocks satisfy a specific dimension condition.
[0776] 48. The method according to any one of solutions 1-47, wherein the video block is encoded and decoded using a predefined range of quantization parameters.
[0777] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., items 18-23).
[0778] 49. A video processing method comprising: performing a conversion between a video comprising one or more video regions and a video codec representation, wherein the codec representation conforms to a format rule; wherein the format rule specifies that the coefficients of the video regions are reordered according to a mapping after being parsed from the codec representation.
[0779] 50. The method according to solution 49, wherein the coefficients are reordered before dequantization, before inverse transformation, or before reconstruction.
[0780] 51. The method according to any one of solutions 49-50, wherein the format rules specify that the video region corresponds to the encoding / decoding unit, the transform unit, or the prediction unit.
[0781] 52. The method according to any one of solutions 49-51, wherein the format rules specify how the codec information of the codec representation determines how the coefficients are reordered after parsing.
[0782] 53. The method according to any one of solutions 49-52, wherein the format rules specify that the mapping is determined by the transformation type or slice type of the video region used in the strip or picture.
[0783] 54. The method according to any one of solutions 49-52, wherein the format rules specify that the mapping is determined by the transform type used in the codec tree unit, the codec unit of the video region, or the block type.
[0784] 55. The method according to any one of solutions 49-52, wherein the format rules specify that the mapping is determined by the syntax fields included in the parameter set or the header fields in the codec representation.
[0785] The following solutions show example implementations of the techniques discussed in the previous chapter (e.g., items 24-25).
[0786] 56. A video processing method, comprising: converting a video block of a video and a codec representation of the video; determining whether the video block satisfies the condition that the signaling notification in the codec representation is a partial residual block; and performing the conversion based on the determination; wherein the partial residual block is divided into at least two parts, wherein at least one part does not have a non-zero residual notified in the codec representation.
[0787] 57. The method according to solution 56, wherein the conditions are based on a mode used to encode and decode video blocks into a codec representation.
[0788] 58. The method according to solutions 56-57, wherein the signaling notification in the codec representation comprises at least one or more of two parts according to format rules.
[0789] 59. The method according to any one of solutions 1 to 58, wherein the video region includes video images.
[0790] 60. The method according to any one of solutions 1 to 59, wherein the conversion includes encoding the video into a codec representation.
[0791] 61. The method according to any one of solutions 1 to 59, wherein the conversion includes decoding the encoding / decoding representation to generate pixel values of the video.
[0792] 62. A video decoding apparatus, including a processor configured to implement one or more of the methods described in solutions 1 to 61.
[0793] 63. A video encoding apparatus, including a processor configured to implement one or more of the methods described in solutions 1 to 61.
[0794] 64. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement the method described in any one of solutions 1 to 61.
[0795] 65. The methods, apparatus or systems described in this document.
[0796] Figure 26 This is a flowchart representation of a method 2600 for video processing according to the present technology. Method 2600 includes, in operation 2610, performing a conversion between a current block of video and a video bitstream. According to a rule, in response to the position of the samples of the current block, coefficients corresponding to the samples of the current block in the bitstream are arranged before the samples of the current block are used for reconstruction of the current block.
[0797] In some embodiments, the rule specifies that for a subset of samples satisfying at least one condition, the coefficients of the subset of samples in the current block are rearranged in reverse order. In some embodiments, the position of a sample is represented as (i,j) and the coefficient of the sample is represented as C(i,j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1. The coefficients in reverse order are represented as C'(i,j) = C(M-1-1, N-1-j). In some embodiments, the position of a sample is represented as (i,j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1. In response to a sample satisfying the conditions (i,j) ≠ (M / 2-1, N / 2) and (i,j) ≠ (M / 2, N / 2-1), the coefficients of sample (i,j) are rearranged in reverse order. In some embodiments, the position of a sample point is represented as (i,j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1. In response to a sample point satisfying the condition (i...j ...<M / 2-S1||i> M / 2+S2)&&(j<N / 2-S3||j> The coefficients of sample points (i,j) are rearranged in reverse order (N / 2+S4), where S1, S2, S3, and S4 are integers. In some embodiments, S1 = S3 = 1 and S2 = S4 = 0. In some embodiments, the position of a sample point is represented as (i,j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1. In response to a sample point satisfying the condition ((i,j)≠(M-1,0)and(i,j)≠(0,N-1), the coefficients of sample point (i,j) are rearranged in reverse order.
[0798] In some embodiments, the rule further specifies that for samples that do not meet the conditions, the coefficients of the samples are arranged in the original order determined during the transformation. In some embodiments, at least one condition includes a condition specifying whether to apply a transform skip mode to the current block. In some embodiments, the application of the transform skip mode to the current block is indicated using implicit selection.
[0799] In some embodiments, the conversion includes encoding the video into a bitstream. In some embodiments, the conversion includes decoding the bitstream to generate the video.
[0800] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm can be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, and vice versa. As defined in the syntax, the bitstream representation of the current video block can, for example, correspond to bits that are co-occurring or scattered at different positions within the bitstream. For example, a macroblock can be encoded based on the error residuals from the transformation and encoding / decoding, and also using bits in the header and other fields in the bitstream. Furthermore, during the conversion, the decoder can, based on this determination, parse the bitstream knowing that some fields may or may not be present, as described in the solutions above. Similarly, the encoder can determine whether to include or exclude certain syntax fields and generate the codec representation accordingly by including or excluding syntax fields from the codec representation.
[0801] The disclosures and other schemes, examples, embodiments, modules, and functional operations described in this document can be implemented in digital electronic circuits or in computer software, firmware, or hardware, containing the structures disclosed in this document and their equivalents, or combinations thereof. The disclosed and other embodiments can be implemented as one or more computer program products encoded on a computer-readable medium, such as one or more computer program instruction modules, for execution by a data processing apparatus or for controlling the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a complex influencing machine-readable propagating signals, or combinations thereof. The term "data processing apparatus" encompasses all means, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or combinations thereof. Propagating signals are artificially generated signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiver device.
[0802] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including standalone programs or modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored 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 co-located files (e.g., a file storing one or more modules, subroutines, or code portions). A computer program can be deployed to execute on one computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communications network.
[0803] 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 manipulating input data and generating outputs. The processes and logic flows can also be performed by special-purpose logic circuitry (e.g., field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs)), and the apparatus can be implemented as special-purpose logic circuitry (e.g., FPGAs or ASICs).
[0804] Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, and any one or more processors in any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magneto-optical, magneto-optical, or optical disc) for storing data, or operatively coupled to receive data from or transfer data to a mass storage device (e.g., magneto-optical, magneto-optical, or optical disc), or both. However, a computer does not necessarily need to 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, for 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. Processors and memory may be supplemented by or incorporated into special-purpose logic circuitry.
[0805] While this patent document contains numerous details, these details should not be construed as limiting any subject matter or the scope of the claims, but rather as descriptions of features specific to particular embodiments of a particular art. In this patent document, certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in various suitable sub-combinations. Furthermore, although features may be described above as operating in certain combinations and even initially claimed in the same manner, in certain circumstances one or more features from the claimed combination may be removed from the combination, and the claimed combination may be for sub-combinations or variations thereof.
[0806] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring such operations to be performed in the specific order or sequence shown, or to perform all the operations shown, in order to achieve the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.
[0807] Only a few implementations and examples are described, and other implementations, enhancements and variations can be made based on what is described and shown in this patent document.
Claims
1. A method for processing video data, comprising: Perform the conversion between the current block of the video and the bitstream of the video. Specifically, according to the rules governing the position of the coefficients of the current block, the coefficients of the current block in the bitstream are arranged before being used for the reconstruction of the current block. The rule stipulates that for a subset of coefficients that satisfies at least one condition, the subset of coefficients in the current block shall be rearranged in reverse order. Wherein, the position of the coefficient is represented as (i, j) and the coefficient is represented as C(i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where the coefficients in the reverse order are represented as C'(i, j) = C(M-1-i, N-1-j). In response to the condition that the position of the coefficients satisfies (i, j)≠(M / 2-1, N / 2) and (i, j)≠(M / 2, N / 2-1), the coefficients located at (i, j) are rearranged in the reverse order.
2. The method of claim 1, wherein, The position of the coefficient is represented as (i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where, in response to the coefficient satisfying the condition (i < M / 2-S1 || i > M / 2+S2) && (j < N / 2-S3 || j > N / 2+S4), the coefficients located at (i, j) are rearranged in the reverse order, where S1, S2, S3 and S4 are integers.
3. The method of claim 2, wherein, S1=S3=1 and S2=S4=0.
4. The method according to claim 1, wherein, The position of the coefficient is represented as (i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and wherein, in response to the condition that (i, j) ≠ (M-1, 0) and (i, j) ≠ (0, N-1), the coefficients located at (i, j) are rearranged in the reverse order.
5. The method according to claim 1, wherein, The rule also stipulates that coefficients that do not satisfy the condition shall be arranged in the original order determined during the conversion.
6. The method according to claim 5, wherein, The coefficients located at (i, j) = (M / 2-1, N / 2) are rearranged in the original order to be represented as C'(M / 2-1, N / 2) = C(M / 2-1, N / 2).
7. The method according to claim 5, wherein, The coefficients located at (i, j) = (M / 2, N / 2-1) are rearranged in the original order to be represented as C'(M / 2, N / 2-1) = C(M / 2, N / 2-1).
8. The method according to claim 1, wherein, The current block is a lumen intra-frame prediction residual block, and a transform skip mode is applied to the current block, wherein the application of the transform skip mode to the current block is indicated by implicit selection.
9. The method according to claim 1, wherein, The conversion includes encoding the video into the bitstream.
10. The method according to claim 1, wherein, The conversion includes decoding the video from the bitstream.
11. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: Perform the conversion between the current block of the video and the bitstream of the video. in, According to the rules governing the position of the coefficients of the current block, the coefficients of the current block in the bitstream are arranged before being used for the reconstruction of the current block. The rule stipulates that for a subset of coefficients that satisfies at least one condition, the subset of coefficients in the current block shall be rearranged in reverse order. Wherein, the position of the coefficient is represented as (i, j) and the coefficient is represented as C(i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where the coefficients in the reverse order are represented as C'(i, j) = C(M-1-i, N-1-j). In response to the condition that the position of the coefficients satisfies (i, j)≠(M / 2-1, N / 2) and (i, j)≠(M / 2, N / 2-1), the coefficients located at (i, j) are rearranged in the reverse order.
12. The apparatus according to claim 11, wherein, The rule also stipulates that coefficients that do not satisfy the condition shall be arranged in the original order determined during the conversion. The coefficients located at (i, j) = (M / 2-1, N / 2) are rearranged according to the original order to be represented as C'(M / 2-1, N / 2) = C(M / 2-1, N / 2), and The coefficients located at (i, j) = (M / 2, N / 2-1) are rearranged in the original order to be represented as C'(M / 2, N / 2-1) = C(M / 2, N / 2-1).
13. The apparatus according to claim 11, wherein, The current block is a lumen intra-frame prediction residual block, and a transform skip mode is applied to the current block, wherein the application of the transform skip mode to the current block is indicated by implicit selection.
14. A non-transitory computer-readable storage medium for storing instructions, said instructions causing a processor to: Perform the conversion between the current block of the video and the bitstream of the video. in, According to the rules governing the position of the coefficients of the current block, the coefficients of the current block in the bitstream are arranged before being used for the reconstruction of the current block. The rule stipulates that for a subset of coefficients that satisfies at least one condition, the subset of coefficients in the current block shall be rearranged in reverse order. Wherein, the position of the coefficient is represented as (i, j) and the coefficient is represented as C(i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where the coefficients in the reverse order are represented as C'(i, j) = C(M-1-i, N-1-j). In response to the condition that the position of the coefficients satisfies (i, j)≠(M / 2-1, N / 2) and (i, j)≠(M / 2, N / 2-1), the coefficients located at (i, j) are rearranged in the reverse order.
15. The non-transitory computer-readable storage medium according to claim 14, wherein, The rule also stipulates that coefficients that do not satisfy the condition shall be arranged in the original order determined during the conversion. The coefficients located at (i, j) = (M / 2-1, N / 2) are rearranged according to the original order to be represented as C'(M / 2-1, N / 2) = C(M / 2-1, N / 2), and The coefficients located at (i, j) = (M / 2, N / 2-1) are rearranged in the original order to be represented as C'(M / 2, N / 2-1) = C(M / 2, N / 2-1).
16. A non-transitory computer-readable recording medium for storing bitstreams of instructions and video, wherein, The instruction causes the processor to: Generate the bitstream of the video from the current block of the video. Specifically, according to the rules governing the position of the coefficients of the current block, the coefficients of the current block in the bitstream are arranged before being used for the reconstruction of the current block. The rule stipulates that for a subset of coefficients that satisfies at least one condition, the subset of coefficients in the current block shall be rearranged in reverse order. Wherein, the position of the coefficient is represented as (i, j) and the coefficient is represented as C(i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where the coefficients in the reverse order are represented as C'(i, j) = C(M-1-i, N-1-j). In response to the condition that the position of the coefficients satisfies (i, j)≠(M / 2-1, N / 2) and (i, j)≠(M / 2, N / 2-1), the coefficients located at (i, j) are rearranged in the reverse order.
17. The non-transitory computer-readable recording medium according to claim 16, wherein, The rule also stipulates that coefficients that do not satisfy the condition are arranged in the original order determined during the generation period. The coefficients located at (i, j) = (M / 2-1, N / 2) are rearranged according to the original order to be represented as C'(M / 2-1, N / 2) = C(M / 2-1, N / 2), and The coefficients located at (i, j) = (M / 2, N / 2-1) are rearranged in the original order to be represented as C'(M / 2, N / 2-1) = C(M / 2, N / 2-1).
18. A method for storing a video bitstream, comprising: Generate the bitstream of the video from the current block of the video. The bitstream is stored in a non-transitory computer-readable storage medium. Specifically, according to the rules governing the position of the coefficients of the current block, the coefficients of the current block in the bitstream are arranged before being used for the reconstruction of the current block. The rule stipulates that for a subset of coefficients that satisfies at least one condition, the subset of coefficients in the current block shall be rearranged in reverse order. Wherein, the position of the coefficient is represented as (i, j) and the coefficient is represented as C(i, j), where i = 0, 1, ..., M-1 and j = 0, 1, ..., N-1, and where the coefficients in the reverse order are represented as C'(i, j) = C(M-1-i, N-1-j). In response to the condition that the position of the coefficients satisfies (i, j)≠(M / 2-1, N / 2) and (i, j)≠(M / 2, N / 2-1), the coefficients located at (i, j) are rearranged in the reverse order.