Method and apparatus for generic transformation of intra block copy mode or intra template matching mode for video coding
By improving various transformation techniques of intra-frame block copying and template matching modes, the problem of limited performance improvement in screen content processing of existing video coding has been solved, and more efficient video coding effects have been achieved.
Patent Information
- Application Number
- CN202480025377.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-04-12
- Filing Date
- 2024-04-07
- Publication Date
- 2025-11-11
AI Technical Summary
Existing video coding technologies offer limited performance improvements in intra-block copy mode and intra-template matching mode, especially when processing screen content, as they struggle to effectively utilize the spatial correlation of pixels within the same frame.
An improved intra-frame block copy mode and intra-frame template matching mode are adopted. By selecting multiple transform modes and/or downsampling/upsampling methods, including multiple transform selection, low-frequency non-separable transform, sub-block transform, block differential pulse coding modulation, reconstruction reordering and other techniques, the intra-frame prediction and residual coding processes are optimized.
It improves the efficiency and quality of video encoding, especially when processing screen content, by making better use of the spatial correlation of pixels within the same frame, thus enhancing encoding performance.
Smart Images

Figure CN120937352A_ABST
Abstract
Description
[0001] Related citations This invention is a non-provisional application filed on April 12, 2023, in U.S. Provisional Patent Application No. 63 / 495,581, and claims priority thereto. The entire contents of that U.S. Provisional Patent Application are incorporated herein by reference. Technical Field
[0002] This invention relates to video encoding and decoding systems using intra-block copy mode or intra-template matching (IntraTMP) mode. Specifically, this invention relates to transform modes and / or downsampling / upsampling allowed by extended intra-block copy mode or intra-TMP mode. Background Technology
[0003] Universal Video Coding (VVC) is the latest international video coding standard jointly developed by the Joint Video Experts Group (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). This standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology – Coding representation of immersive media – Part 3: Universal Video Coding, published in February 2021. VVC improves encoding and decoding efficiency by adding more encoding and decoding tools to its predecessor, HEVC (High Efficiency Video Coding), and can also handle various types of video sources, including 3D video signals.
[0004] Figure 1A An exemplary adaptive inter-frame / intra-frame video codec system incorporating loop processing is described. For intra-frame prediction, prediction data is derived from previously encoded video data in the current frame. For inter-frame prediction 112, motion estimation (ME) is performed on the encoder side, and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other frames and motion data. Switch 114 selects either intra-frame prediction 110 or inter-frame prediction 112, and the selected prediction data is provided to adder 116 to form a prediction error, also known as a residual. The prediction error is then processed by transform (T) 118 and subsequent quantization (Q) 120. The residuals from the transform and quantization are then encoded by entropy encoder 122 to be included in the video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged with auxiliary information, such as motion and coding modes associated with intra-frame and inter-frame prediction, and other information, such as parameters associated with loop filters applied to the underlying image regions. Auxiliary information associated with intra-frame prediction 110, inter-frame prediction 112, and intra-loop filter 130 is provided to entropy encoder 122, such as... Figure 1AAs shown. When using inter-frame prediction mode, one or more reference images must also be reconstructed at the encoder end. Therefore, the transformed and quantized residuals are processed by inverse quantization (IQ) 124 and inverse transform (IT) 126 to recover the residuals. Then, at reconstruction (REC) 128, the residuals are added back to the prediction data 136 to reconstruct the video data. The reconstructed video data can be stored in the reference image buffer 134 and used to predict other frames.
[0005] like Figure 1A As shown, the input video data undergoes a series of processing steps in the encoding / decoding system. Due to these processing steps, the reconstructed video data from REC128 may suffer various forms of degradation. Therefore, loop filters 130 are often applied to the reconstructed video data before it is stored in the reference picture buffer 134 to improve video quality. For example, deblocking filters (DF), sample adaptive offset (SAO), and adaptive loop filters (ALF) may be used. It may be necessary to incorporate loop filter information into the bitstream so that the decoder can correctly recover the required information. Therefore, loop filter information is also provided to the entropy encoder 122 for incorporation into the bitstream. Figure 1A In this process, the loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference image buffer 134. Figure 1A The system described herein is intended to illustrate an exemplary architecture of a typical video encoder. It may correspond to a High Efficiency Video Coding (HEVC) system, VP8, VP9, H.264, or VVC.
[0006] like Figure 1B As shown, the decoder can use similar or identical function blocks to the encoder, except for transform 118 and quantization 120, since the decoder only needs inverse quantization 124 and inverse transform 126. Instead of entropy encoder 122, the decoder uses entropy decoder 140 to decode the video bitstream into quantized transform coefficients and the required coding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information). Intra-frame prediction 150 on the decoder side does not require mode search. Instead, the decoder only needs to generate intra-frame predictions based on the intra-frame prediction information received from entropy decoder 140. Furthermore, for inter-frame prediction, the decoder only needs to perform motion compensation (MC 152) based on the inter-frame prediction information received from entropy decoder 140 without motion estimation.
[0007] This invention discloses methods and apparatus for improving the performance of IBC / IntraTMP modes. For example, a transform coding method for IBC / IntraTMP modes is proposed. For example, a downsampling / upsampling method for IBC / IntraTMP modes is proposed. Summary of the Invention
[0008] A method and apparatus for video encoding and decoding using IBC / IntraTMP mode are disclosed. According to the method, input data associated with a current block in a current image is received, wherein the input data includes residual data of the current block to be encoded on the encoder side or transform coefficients of the current block to be decoded on the decoder side. Prediction data of the current block is generated by applying intra-block copying or intra-template matching prediction. An improved transform mode is applied to the current block to derive final transform coefficients on the encoder side or reconstructed residual data on the decoder side, wherein the improved transform mode includes a target transform mode selected from a transform set comprising two or more transforms. The final transform coefficients on the encoder side or the reconstructed residual data on the decoder side are provided.
[0009] In one embodiment, the transform set is used by other non-block vector encoding / decoding tools. In one embodiment, the transform set includes transform skips, single transforms, double transforms, or combinations thereof. In one embodiment, the transform set includes one or more inherited transform candidates. In one embodiment, the K most popular candidates from the one or more inherited transform candidates are searched for the current block, where K is a positive integer. In one embodiment, one of the K most popular candidates is selected as the target transform mode.
[0010] In one embodiment, the improved transform mode is used as an additional transform option indicated by explicit syntax. In another embodiment, the improved transform mode is enabled for the block vector codec tool if one or more enable conditions are met. For example, the one or more enable conditions include the target block vector codec tool being a submode of the block vector codec tool. In yet another example, the improved transform mode is enabled for the current block if the current block meets a size condition. Attached Figure Description
[0011] Figure 1A An exemplary adaptive inter-frame / intra-frame video encoding and decoding system incorporating loop processing is shown.
[0012] Figure 1B It shows Figure 1A The encoder and its corresponding decoder.
[0013] Figure 2 An example of CPR (Current Image Reference) compensation is shown, in which blocks are predicted using corresponding blocks in the same image.
[0014] Figure 3 An example of a search region for intra-frame template matching is shown.
[0015] Figure 4 An example of the use of the IntraTMP block vector for IBC blocks is shown.
[0016] Figure 5 An example of the low-frequency non-separable transform (LFNST) process is shown.
[0017] Figure 6 The location-dependent transformation core selection of SBT is displayed.
[0018] Figure 7A An example of a horizontally flipped BV adjustment is shown.
[0019] Figure 7B An example of vertically flipped BV adjustment is shown.
[0020] Figure 8 This example shows the current block being divided into four transform blocks by a quadtree, where the target portion is indicated as a region within the current block (indicated as a shaded area).
[0021] Figure 9 An example of the downsampling IBC mode is shown.
[0022] Figure 10 A flowchart of an exemplary video codec system using multiple transformations for IBC / IntraTMP mode according to an embodiment of the present invention is shown. Detailed Implementation
[0023] It will be readily understood that the components of the invention, as generally described and illustrated in the accompanying drawings, can be arranged and designed in a variety of different configurations. Therefore, the following more detailed description of embodiments of the systems and methods of the invention as shown in the figures is not intended to limit the scope of the claimed invention, but only represents selected embodiments of the invention. References throughout this specification to “one embodiment,” “an embodiment,” or similar language mean that a particular feature, structure, or characteristic described in connection with that embodiment may include in at least one embodiment of the invention. Therefore, the phrases “in one embodiment” or “in an embodiment” appearing throughout this specification do not necessarily refer to the same embodiment.
[0024] Furthermore, the described features, structures, or characteristics can be combined in one or more embodiments in any suitable manner. However, those skilled in the art will recognize that the invention can be practiced without one or more specific details, or using other methods, components, etc. In other instances, well-known structures or operations are not shown or depicted in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood with reference to the accompanying drawings, wherein like parts are represented by like numerals throughout. The following description is intended only as an example and simply illustrates certain selected embodiments of devices and methods consistent with the invention as claimed herein.
[0025] Intra-Block-Copy (IBC) mode Motion compensation is a key technique in hybrid video coding and decoding, exploring pixel correlations between adjacent images. It typically assumes that in a video sequence, patterns corresponding to objects or background in a frame are shifted to form corresponding objects in subsequent frames or to correlate with other patterns within the current frame. By estimating this shift (e.g., using block matching techniques), patterns can be largely reproduced without re-encoding them. Similarly, block matching and copying have been explored to allow the selection of reference blocks from images identical to the current block. When this concept is applied to camera-captured video, it has been found to be inefficient. This is partly because text patterns in spatially adjacent regions may be similar to the currently encoded block, but often exhibit some gradual spatial variations. Finding an exact match for a block within the same image in the camera-captured video is difficult. Therefore, improvements in coding performance are limited.
[0026] However, the spatial correlation between pixels within the same frame differs for screen content. For typical videos containing text and graphics, recurring patterns often exist within the same image. Therefore, intra-frame (image) block compensation has been observed to be very effective. Screen content coding introduces a novel prediction mode, Intra-Frame Block Copying (IBC) mode, or Current Image Reference (CPR), to take advantage of this characteristic. In CPR mode, prediction units (PUs) are predicted based on previously reconstructed blocks within the same image. Furthermore, a displacement vector (called the block vector or BV) is used to indicate the relative displacement from the current block's position to the reference block's position. The prediction error is then encoded and decoded using transform, quantization, and entropy coding. Figure 2 An example of IBC compensation is shown, where block 212 is the corresponding block of block 210, and block 222 is the corresponding block of block 220. In this technique, the reference sample corresponds to the reconstructed sample currently decoded. Loop filters operate on previous images, including deblocking filters and Sample Adaptive Offset (SAO) filters in HEVC.
[0027] The first version of IBC was proposed in JCTVC-M0350 (Budagavi et al., AHG8: Video Coding with Intra-Frame Motion Compensation, Joint Collaboration on Video Coding of ITU-T SG16 WP3 and ISO / 3 (JCT-VC)). IEC JTC 1 / SC29 / WG11, 13th Meeting: Incheon, South Korea, April 18-26, 2013, Document: JCTVC-M0350) HEVC Range Extension (RExt) development. In this version, IBC compensation was limited to small local areas, with only 1-D block vectors, and only applicable to block sizes of 2Nx2N. Later, a more advanced IBC design was developed during the standardization process of HEVC SCC (Screen Content Coding).
[0028] Intra-frame template matching prediction Intra-Template Matching Prediction (IntraTMP) is a special intra-prediction mode that copies the best prediction block from the reconstructed portion of the current frame, with its L-shaped template matching the current template. For a predefined search range, the encoder searches for the most similar template matching the current template in the reconstructed portion of the current frame and uses the corresponding block as the prediction block. The encoder then signals the use of this mode and performs the same prediction operation on the decoder side.
[0029] By combining the L-shaped causal neighbors of the current block with Figure 3 Pairing with another block in a predefined search region to generate a prediction signal includes: R1: All or any subset of the current CTU. R2: CTU in the upper left corner. R3: Above CTU, R4: Left CTU, exist Figure 3 In the image, the current block 310 in R1 corresponds to the corresponding block 312 in R2. The templates for the current block and the matching block are displayed as dark L-shaped regions. Region 322 corresponds to the reconstructed region in the current image 320. The sum of absolute differences (SAD) is used as the cost function. Within each region, the decoder searches for the template with the minimum SAD relative to the current region and uses its corresponding block as the prediction block.
[0030] The dimensions of all regions (SearchRange_w, SearchRange_h) are set to be proportional to the block size (BlkW, BlkH) for a fixed number of SAD comparisons in pixels. That is: SearchRange _w = a * BLkW, SearchRange_h = a * BlkH, Where "a" is a constant that controls the tradeoff between gain and complexity. In fact, "a" equals 5.
[0031] To accelerate the template matching process, the search range of all search regions is double-sampled by a factor of 2. This results in a 4-fold reduction in the template matching search. After finding the best match, a refinement process is performed. Refinement is accomplished by performing a second template matching search around the best match within the narrowed range. The reduced range is defined as min(BlkW, BlkH) / 2.
[0032] The intra-frame template matching tool is enabled for CUs with a width and height less than or equal to 64. The maximum CU size for intra-frame template matching is configurable.
[0033] When DIMD (Decoder-side Intra Mode Derivation) is not used in the current CU, a special flag is used at the CU level to signal the intra-template matching prediction mode.
[0034] IntraTMP-derived IBC block vector candidates In this method, the block vector (BV) derived from IntraTMP (IntraTMP) is used for IntraBlock Copy (IBC). The stored IntraTMP BVs and IBC BVs of neighboring blocks are used as spatial BV candidates in the construction of the IBC candidate list.
[0035] The IntraTMP block vector is stored in the IBC block vector buffer. The current IBC block can use both the IBC BV and the IntraTMP BV of the adjacent block as BV candidates in the IBC BV candidate list, such as... Figure 4 As shown.
[0036] exist Figure 4 In the image, block 410 corresponds to the current block, and block 412 corresponds to the adjacent IntraTMP block. IntraTMPBV 416 is used to locate the best matching block 422 based on the matching cost between template 424 and template 414. Region 432 corresponds to the reconstructed region in the current image 430. The IntraTMP block vector is added to the IBC block vector candidate list as a spatial vector candidate option.
[0037] IntraTMP block vectors are added to the IBC block vector candidate list as spatial candidates.
[0038] Multiple Transform Selection (MTS) for Core Transformation In addition to DCT-II, which is already used in HEVC, the Multiple Transform Selection (MTS) scheme is also used for residual-coded inter- and intra-coded blocks. It uses several selected transforms from DCT8 / DST7. The newly introduced transform matrices are DST-VII and DCT-VIII. Table 1 shows the basic functions of the selected DST / DCT.
[0039]
[0040] To maintain the orthogonality of the transformation matrix, the transformation matrix is quantized more accurately than that in HEVC. To keep the intermediate values of the transformation coefficients within a 16-bit range, all coefficients have 10-bit precision after both horizontal and vertical transformations.
[0041] To control the MTS scheme, separate enable flags are specified at the SPS (Sequence Parameter Set) level for intra-frame and inter-frame use. When MTS is enabled at the SPS, a CU level flag signal is emitted to indicate whether MTS is applied. Here, MTS applies only to luminance. The MTS signal is skipped when one of the following conditions is met: - The position of the last effective coefficient of luminance TB is less than 1 (i.e., DC only). - The last effective coefficient of luminance TB is located in the MTS zero region.
[0042] If the MTS CU flag is equal to 0, DCT2 is applied in both directions. However, if the MTS CU flag is equal to 1, two additional flags are signaled to indicate the transformation type in the horizontal and vertical directions, respectively. The transformation-signal mapping table is shown in Table 2.
[0043]
[0044] To reduce the complexity of large-sized DST-7 and DCT-8 converters, the high-frequency transform coefficients are zeroed out for DST-7 and DCT-8 blocks with a size (width or height, or width and height) equal to 32. The coefficients in the 16x16 low-frequency region are retained.
[0045] As in HEVC, the transform skip mode can be used to encode the residuals of blocks. To avoid redundancy in syntax coding, the transform skip flag is not signaled when the CU level MTS_CU_flag is not equal to 0. Note that when LFNST is enabled, the implicit MTS transform is set to DCT2. Furthermore, implicit MTS can still be enabled when MTS is enabled for inter-coded blocks.
[0046] Low-frequency non-separable transform (LFNST) In VVC, LFNST is applied between the forward primary transform and quantization (on the encoder side) and between inverse quantization and the inverse primary transform (on the decoder side), such as... Figure 5 As shown. Figure 5 As shown, after the forward primary transform 510, a forward low-frequency non-separable transform (LFNST) 520 is applied to the upper left region 522 of the forward primary transform output, for example, 16 coefficients of a 4x4 forward LFNST and / or 64 coefficients of an 8x8 forward LFNST. In the LFNST, either the 4x4 or 8x8 non-separable transform is applied depending on the block size. For example, 4x4 LFNST is suitable for small blocks (i.e., min(width, height) < 8), and 8x8 LFNST is suitable for larger blocks (i.e., min(width, height) > 4). After the LFNST, the transform coefficients are quantized by quantization 530. To reconstruct the input signal, the quantized transform coefficients are dequantized using dequantization 540 to obtain the dequantized transform coefficients. An inverse LFNST 550 is applied to the upper left region 552 (8 coefficients of a 4x4 inverse LFNST or 16 coefficients of an 8x8 inverse LFNST). After the inverse LFNST, the inverse primary transform 560 is applied to recover the input signal.
[0047] The following describes the application of the inseparable transform used in LFNST using the input as an example. To apply 4x4 LFNST, the 4x4 input block X... , First, represent it as a vector. : , Inseparable transformation is calculated as ,in This represents the transformation coefficient vector, where T is a 16x16 transformation matrix. The 16x16 coefficient vector is then transformed using the scan order of this block (horizontal, vertical, or diagonal). Reorganized into 4x4 blocks. Coefficients with smaller indices are placed in the 4x4 coefficient block together with smaller scan indices.
[0048] Reduced separable transform LFNST (Low-Frequency Non-Separable Transform) applies the non-separable transform based on the direct matrix multiplication method, enabling its implementation in a single pass without multiple iterations. However, it is necessary to reduce the dimension of the non-separable transform matrix to minimize the computational complexity and the storage space for storing the transform coefficients. Therefore, the Reduced Separable Transform (RST) method is used in LFNST. The main idea of the reduced separable transform is to map an N-dimensional vector (for an 8x8 NSST, N is usually equal to 64) to an R-dimensional vector in a different space, where N / R (R < N) is the reduction factor. Thus, the RST matrix is no longer an NxN matrix but becomes an R×N matrix, as follows:
[0049] where the R rows of the transform are the R bases of the N-dimensional space.
[0050] The inverse transform matrix of RST is the transpose of its forward transform. For 8x8 LFNST, a reduction factor of 4 is applied, and the 64x64 direct matrix (the traditional size of an 8x8 inseparable transform matrix) is reduced to a 16x48 direct matrix. Therefore, the 48×16 inverse RST matrix is used on the decoder side to generate the core (primary) transform coefficients in the top-left region of the 8×8 matrix. When using a 16x48 matrix instead of a 16x64 with the same transform set configuration, each matrix takes 48 input data from three 4x4 blocks in the top-left 8x8 block (excluding the bottom-right 4x4 block). With the help of dimensionality reduction, the memory usage for storing all LFNST matrices is reduced from 10KB to 8KB, and the performance degradation is reasonable. To reduce complexity, LFNST is restricted to only being applied if all coefficients outside the first coefficient subgroup are insignificant. Therefore, when applying LFNST, all primary transform coefficients must be zero. This allows the LFNST index signal to be adjusted at the last valid position, thus avoiding the extra coefficient scan in the current LFNST design, which only needs to check the valid coefficients at specific positions. The worst-case handling of LFNST (in terms of multiplication per pixel) limits the non-separable transformation of 4x4 and 8x8 blocks to 8x16 and 8x48 transformations, respectively. In these cases, the last valid scan position must be less than 8 when LFNST is applied, and for other sizes less than 16. For blocks of shapes 4xN and Nx4 where N>8, the proposed limitation means that LFNST is now applied only once, and only to the 4x4 region in the top left corner. Since all only major coefficients are zero when LFNST is applied, the number of operations required for the major transformation is reduced in this case. From the encoder's perspective, coefficient quantization is significantly simplified when testing LFNST transformations. Maximum rate distortion optimized quantization must be performed on the first 16 coefficients (in scan order), and the remaining coefficients are forced to zero.
[0051] LFNST Transform Selection There are a total of 4 transform sets in LFNST, each using 2 inseparable transform matrices (kernels). The mapping from intra-prediction modes to transform sets is predefined, as shown in Table 3. If one of the three CCLM modes (INTRA_LT_CCLM, INTRA_T_CCLM, or INTRA_L_CCLM) is used for the current block (81 <= predModeIntra <= 83), transform set 0 is selected for the current chroma block. For each transform set, the selected inseparable quadratic transform candidate is further specified by an LFNST index explicitly signaled. The index is signaled once in the bitstream of the CU within each frame after the transform coefficients.
[0052]
[0053] LFNST index signals and their interaction with other tools Because LFNST is restricted to only being applied when all coefficients outside the first coefficient subgroup are insignificant, LFNST index encoding depends on the position of the last valid coefficient. Furthermore, LFNST indexes are context-coded but not dependent on intra-frame prediction modes, and only the first bin is context-coded. Additionally, LFNST applies to intra-frame CUs for both luma and chroma. If dual-tree is enabled, the LFNST indexes for luma and chroma are represented separately as signals. For inter-frame (dual-tree is disabled), a single LFNST index is signaled and used for both luma and chroma.
[0054] Considering that due to the existing maximum transform size limit (64x64), large CUs larger than 64x64 will be implicitly segmented (TU tiling), the LFNST index search could potentially quadruple the data buffer size for a certain number of decoding pipeline stages. Therefore, the maximum allowed size for LFNST is limited to 64x64. Note that LFNST is only enabled in DCT2. The LFNST index signal is passed before the MTS index signal.
[0055] Using a scaling matrix for perceptual quantization does not clearly indicate that the scaling matrix specified for the main matrix might be useful for the LFNST coefficients. Therefore, scaling matrices for the LFNST coefficients are not permitted. For single-tree partitioning modes, chroma LFNST is not applied.
[0056] Subblock Transformation (SBT) In the VTM (VVC Test Model) software, a sub-block transform is introduced for the inter-frame predicted CU. In this transform mode, only a sub-part of the residual block is CU-coded. When the cu_cbf of the inter-frame predicted CU equals 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 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 an inference adaptive transform, while another portion of the residual block is cleared.
[0057] When SBT is used for inter-frame coding of CUs, the SBT type and SBT location information are signaled in the bitstream. There are two SBT types and two SBT locations. For SBT-V (or SBT-H), the TU width (or height) may be equal to half the CU width (or height) or 1 / 4 of the CU width (or height), resulting in a 2:2 split or a 1:3 / 3:1 split. A 2:2 split is similar to a binary tree (BT) split, while a 1:3 / 3:1 split is similar to an asymmetric binary tree (ABT) split. In an ABT split, only small regions contain non-zero residuals. If one dimension of the CU in the luma sample is 8, a 1:3 / 3:1 split along that dimension is not allowed. A CU can have a maximum of 8 SBT modes.
[0058] Position-dependent transform core selection applies to the luma transform blocks in SBT-V and SBT-H (chroma TB always uses DCT-2). Two positions in SBT-H (630 and 640) and SBT-V (610 and 620) are associated with different core transforms, such as... Figure 6 As shown. More specifically, the horizontal and vertical transformations at each SBT location are... Figure 6 The transformations are specified in the code. For example, the horizontal and vertical transformations at SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the transformations in both dimensions (or directions) are set to DCT-2. Therefore, the sub-block transformations collectively specify the TU tiling, cbf, and horizontal and vertical core transformation types of the residual block.
[0059] SBT is not applicable to CUs that use combined inter-frame and intra-frame mode coding.
[0060] Block Differential Pulse Coded Modulation (BDPCM) VVC supports Block Differential Pulse Code Modulation (BDPCM) for screen content encoding. At the sequence level, a BDPCM enable flag is signaled in the SPS; this flag is only signaled when a transform skip mode is enabled in the SPS (as appears in several sections or embodiments).
[0061] When BDPCM is enabled, if the CU size is less than or equal to MaxTsSize multiplied by MaxTsSize in terms of luma samples, and if the CU is intra-coded, a flag is transmitted at the CU level, where MaxTsSize is the maximum block size allowed by the transform to skip modes. This flag indicates whether regular intra-coding or BDPCM is used. If BDPCM is used, a BDPCM prediction direction flag is sent to indicate whether the prediction is horizontal or vertical. Blocks are then predicted using the regular horizontal or vertical intra-prediction process and unfiltered reference samples. The residuals are quantized, and the difference between each quantized residual and its prediction value (i.e., the previously encoded / decoded residual at the horizontal or vertical (depending on the BDPCM prediction direction) adjacent position) is encoded.
[0062] For a block of size M (height) × N (width), let To predict the residuals, let... , representing residual The quantized version. BDPCM is applied to the quantized residuals, producing a modified M × N array. Its elements are ,in It is predicted based on its adjacent quantization residual values. For the vertical BDPCM prediction model, for Use the following formula to derive : , For the horizontal BDPCM prediction model, for 0 ≤ i ≤ (M-1), the following formula is used for derivation. : , At the decoding end, the above process is reversed. , 0≤i≤(M-1), 0≤j≤N-1, as follows: If using vertical BDPCM If using horizontal BDPCM Inverse quantization residual Incorporate predicted values within the block to generate reconstructed sample values.
[0063] The predicted quantized residual values are generated using the same residual coding process as in transform skip mode residual coding. The quantization residual values are transmitted to the decoder. For lossless coding, if slice_ts_residual_coding_disabled_flag is set to 1, the quantization residual values are transmitted to the decoder using regular transform residual coding. For MPM modes used for encoding future intra-frame modes, if the BDPCM prediction direction is horizontal or vertical, the CUs encoded by BDPCM store the horizontal or vertical prediction mode, respectively. For deblocking, if both blocks on either side of a block boundary are encoded using BDPCM, that particular block boundary will not be deblocked.
[0064] Reconstruction-Reordered IBC (RR-IBC) IBC encoded blocks allow the use of Reconstruction Reordered IBC (RR-IBC) mode. When RR-IBC is applied, samples in the reconstructed block are flipped according to the flip type of the current block. On the encoder side, the original block is flipped before motion search and residual calculation, while the predicted block is derived without flipping. On the decoder side, the reconstructed block is flipped back to recover the original block.
[0065] RR-IBC coded blocks support two flipping methods: horizontal flipping and vertical flipping. First, a syntax flag is signaled for the IBC AMVP coded block to indicate whether the reconstruction is flipped. If flipped, another flag is further signaled to specify the flipping type. For IBC merging, the flipping type is inherited from adjacent blocks, without syntax signaling. Considering horizontal or vertical symmetry, the current block and the reference block are typically horizontally or vertically aligned. Therefore, when a horizontal flip is applied, the vertical component of the BV is not signaled and is inferred to be equal to 0. Similarly, when a vertical flip is applied, the horizontal component of the BV is not signaled and is inferred to be equal to 0.
[0066] To better utilize symmetry, a flip-aware BV adjustment method is employed to refine the block vector candidates. For example, as... Figure 7A and Figure 7B As shown, (xnbr, ynbr) and (xcur, ycur) represent the coordinates of the center samples of the adjacent block and the current block, respectively. BVnbr and BVcur represent BV of the adjacent block and the current block, respectively. The horizontal component of BVcur is not directly inherited from the adjacent block, but is calculated by adding a motion offset to the horizontal component of BVnbr (denoted as BVnbrh) to prevent adjacent blocks from using horizontal flipping for encoding (as shown in the figure). Figure 7A That is, BVcurh = 2(xnbr - xcur) + BVnbrh. Similarly, when adjacent blocks use vertical flip encoding (such as... Figure 7B As shown), the vertical component of BVcur is calculated by adding a motion translation to the vertical component of BVnbr (denoted as BVnbrv), i.e., BVcurv = 2(ynbr - ycur) + BVnbrv.
[0067] IBC Merge Mode with Block Vector Difference (IBC-MBVD) Affine MMVD and GPM-MMVD have been adopted by ECM as extensions to the regular MMVD mode. It is natural to extend the MMVD mode to the IBC merging mode.
[0068] In IBC-MBVD, the distance is set to {1 pixel, 2 pixels, 4 pixels, 8 pixels, 12 pixels, 16 pixels, 24 pixels, 32 pixels, 40 pixels, 48 pixels, 56 pixels, 64 pixels, 72 pixels, 80 pixels, 88 pixels, 96 pixels, 104 pixels, 112 pixels, 120 pixels, 128 pixels}, and the BVD direction is two horizontal and two vertical directions.
[0069] The base candidates are selected from the top five candidates in the reordered IBC merge list. All possible MBVD refinement positions (20×4) for each base candidate are reordered based on the SAD cost between the template (one row above and one column to the left of the current block) and its reference at each refinement position. Finally, the top 8 refinement positions with the lowest template SAD costs are reserved as available positions for MBVD index encoding. The MBVD index is binarized using Rice codes with a parameter equal to 1.
[0070] IBC-MBVD encoded blocks do not inherit the flip type from adjacent RR-IBC encoded blocks.
[0071] IBC-LIC In JVET-AC0112 (Yang Wang et al., "EE2-3.6: IBC-CIIP, IBC-GPM and IBC-LIC", Joint Video Experts Group (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, 29th meeting, via teleconference, January 11-20, 2023, document: JVET-AC0112), IBC-LIC was adopted in ECM (Enhanced Compression Model). Intra-block copy with local brightness compensation (IBC-LIC) is an encoding / decoding tool that compensates for local brightness variations within the image between the CU encoded using IBC and its predicted blocks through linear equations. Except for the use of block vectors in IBC-LIC to generate a reference template, the derivation of the parameters of the linear equations is the same as that of LIC used for inter-frame prediction. IBC-LIC can be applied to IBC AMVP mode and IBC merging mode. IBC AMVP (IBC with Advanced Motion Vector Prediction Mode) corresponds to the IBC mode that directly sends the motion vector predictor index and, if necessary, the motion vector difference using a signal. The name IBC AMVP is used in this disclosure. For the IBC AMVP mode, the IBC-LIC flag is issued to indicate the use of IBC-LIC. For the IBC merging mode, the IBC-LIC flag is inferred from the merging candidates.
[0072] IBC-GPM In JVET-AC0112, IBC-GPM is used in the ECM. Intra-Block Copy with Geometric Partitioning (IBC-GPM) is an encoding / decoding tool that geometrically divides the CU into two sub-partitions. Predictive signals for the two sub-partitions are generated using IBC and intra-frame prediction. IBC-GPM can be applied to either regular IBC merging mode or IBC TM merging mode. The Intra-Frame Prediction Mode (IPM) candidate list is constructed using the same method as GPM, performing inter-frame and intra-frame prediction. The IPM candidate list size is predefined to 3. There are a total of 48 geometric partitioning modes, divided into the following two geometric partitioning mode groups:
[0073] When using IBC-GPM, the IBC-GPM geometric segmentation mode set flag is signaled to indicate whether a first or second geometric segmentation mode set is selected, followed by the geometric segmentation mode index. The IBC-GPM in-frame flag is signaled to indicate whether in-frame prediction is used for the first sub-segment. When intra-frame prediction is used for a sub-segment, the intra-frame prediction mode index is signaled. When IBC is used for a sub-segment, a merge index signal is issued.
[0074] IBC-CIIP In JVET-AC0112, the ECM employs IBC-CIIP. Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) is a codec tool for the CU that uses two prediction signals: IBC prediction (e.g., IBC prediction from IBC with merged mode) and intra-prediction (e.g., intra-prediction from planar or DC mode). These two prediction signals are then weighted and summed to produce the final prediction as follows: , in and These represent the IBC prediction signal and the intra-frame prediction signal, respectively. For IBC combining mode and IBC AMVP mode, Set to equal (13, 4) and (1, 1).
[0075] To improve the coding performance of IBC / IntraTMP mode, various transformation methods and / or downsampling / upsampling for IBC / IntraTMP coding blocks are disclosed.
[0076] In this invention, when using an intra-block copying scheme to generate the predictor for the current block, various transformation methods, such as multiple transformation modes, are proposed to improve encoding and decoding efficiency. The intra-block copying scheme means indicating (referencing) a predefined set of reconstructed samples in the current image through block vectors used for the current block and / or template matching. For example, the current block refers to a coding unit containing only luma-coded blocks, only chroma-coded blocks (including Cb-coded blocks and Cr-coded blocks), and / or simultaneously containing luma and chroma-coded blocks. When encoding the current block using IBC or intra-TMP, the intra-block copying scheme is used, and the predictor for the current block is generated by copying and / or referencing a set of reconstructed samples already reconstructed in the current image, where the set can have the same size as the current block. At the encoder, the residual of the current block is calculated as the difference between the original source of the current block and the predictor of the current block. In traditional codec systems, only the transform mode DCT-II is used to process residuals from IBC and / or IntraTMP modes.
[0077] According to embodiments of the invention, one or more proposed transform patterns are applied to the residual or temporary transform coefficients associated with the residual to obtain improved transform coefficients. The improved transform coefficients may be the final transform coefficients used in subsequent residual encoding processes and encoded (after quantization) in the bitstream to the decoder. Alternatively, the improved transform coefficients may be coefficients of another temporary transform, which will be further transformed through subsequent transform processes. At the decoder, the final transform coefficients are parsed from the bitstream and recovered (through dequantization). If any subsequent transform process is applied after the proposed transform pattern at the encoder, the final transform coefficients are first inversely transformed through the subsequent transform process (to obtain improved transform coefficients), and then inversely transformed through the proposed transform pattern. Then, after all inverse transform processes are completed, the residual of the current block is obtained, and the residual can be used to reconstruct the current block by adding it to the predictor of the current block. In one embodiment, the proposed transform pattern refers to a target transform pattern that can be selected from a transform set. For example, the transform set includes two or more transform patterns. For example, the transform set and / or transform selection may be used by or unified with other non-block vector codec tools, such as inter-frame codec tools that use motion information for prediction and / or intra-frame codec tools that use spatial reference samples, using DC, planar, or angular prediction modes. For instance, the transform set may include transform skip, single transform, double transform, or a combination of these. In the transform skip mode paradigm, no transform operation and / or no transform kernel is required. For a primary transform example, it is applied to the residual at the encoder, and / or it is applied to the final transform coefficients (if the final transform coefficients are generated using only a primary transform) or the temporary transform coefficients (if the final transform coefficients are first inversely transformed at the decoder using another transform process). The primary transform can be separable or non-separable n-separable. An example of a separable primary transform is MTS, which explicitly and / or implicitly determines the transform type. Explicit transform selection can use the MTS index to select the transform type in the horizontal and / or vertical directions. Implicit transform selection can use position-dependent transform core selection. For a secondary transform example, it is applied to the temporary transform coefficients at the encoder, and / or it is applied to the final transform coefficients at the encoder (if the final transform coefficients are generated using both primary and secondary transforms) at the decoder. The secondary transform can be separable or non-separable. An example of a non-separable secondary transform is LFNST or any RST. Variants. In another embodiment, the proposed transformation pattern is used as an additional transformation option indicated by the explicit syntax. For the example of using the block vector for the current block to generate the predicted MTS-type transformation pattern, the proposed transformation option is applied and / or refers to using the MTS-type transformation pattern for the current block.The proposed transformation options complement the traditional options that only use the DCT-II transformation mode.
[0078] In one embodiment, the proposed transformation mode refers to a partial transformation setting. The following is an example of applying the proposed method to the residual (at the encoder). Note that the proposed method can be applied to temporary transform coefficients at the encoder and / or performed accordingly at the decoder. A partial transform setting at the encoder means (1) retaining only the target portion of the residual in the current block, (2) clearing the remaining residual in the current block (excluding the predefined portion) to zero, and / or (3) transforming the target portion of the residual in the current block. A partial transform setting at the decoder means (1) receiving the transform coefficients of the current block (related to the target portion of the residual), and / or (2) performing an inverse transform on the received transform coefficients and retrieving the residual of the current block. For (1), the coefficients in the non-target portion of the current block can or should be zero.
[0079] In one sub-implementation, to define the target portion, the current block is divided into multiple transform blocks according to a segmentation rule, and the target portion refers to one of the transform blocks. For example, the segmentation rule applies a quadtree to the current block, such as... Figure 8 As shown.
[0080] The current block is then divided into four transform blocks. The target portion is indicated as one of the four transform blocks through implicit definition or explicit signaling. That is, the target portion is indicated as a region within the current block (which is indicated as a shaded area and / or a transform block that can be considered part of the current block) through implicit definition or explicit signaling. In the case of a quadtree, the target portion has four possible positions. The first, second, third, and fourth positions (as shown in 810, 820, 830, and 840) are the target portions of the upper-left, upper-right, lower-left, and lower-right regions of the current block, respectively. For example, the segmentation rule is to apply a 2:2 binary tree to the current block. Then, the current block is divided into two equally sized transform blocks through vertical or horizontal segmentation. The target portion is indicated as one of the two transform blocks. The segmentation direction (vertical or horizontal) and / or partial indication depends on the implicit definition or explicit signaling. For example, the segmentation rule is to use a 1:3 binary tree to segment the current block. The current block is then divided into two transform blocks of 1:3 size using either vertical or horizontal segmentation. The target portion is indicated as the smaller of the two transform blocks. If vertical segmentation is used, the size ratio of the two transform blocks (left and right) is 1:3 or 3:1. If horizontal segmentation is used, the size ratio of the two transform blocks (top and bottom) is 1:3 or 3:1. The segmentation direction (vertical or horizontal) and / or size ratio (1:3 or 3:1, where 1 in the size ratio is referred to as the target portion) depends on implicit or explicit signals. The transform type (any predefined MTS type) of the target portion's transform block is determined based on the segmentation direction and / or portion indication. The transform type can be selected from DCT-II and / or any MTS type and / or transform skip mode. For the case of two transform blocks, examples of indications are shown in Table 6.
[0081]
[0082] In another example of four transform blocks, the different part indicators refer to different combinations of transform modes. For {Horizontal, Vertical}, part indicators 0 to 3 can refer to {DCT-VIII, DCT-VIII}, {DST-VII, DCT-VIII}, {DCT-VIII, DST-VII}, {DST-VII, DST-VII}, or any other combination of DCT-VIII and DST-VII.
[0083] In another sub-implementation, to define the target portion, the residuals around the split line are scanned and placed into the target portion. At the decoder, the coefficients associated with the target portion are scanned. For example, the split line is used to divide the current block into multiple (e.g., 2) prediction blocks, and different block vectors are used to generate predictors for each prediction block, and the predictors from multiple prediction blocks are combined as predictors around the split line. The residuals calculated by the predictors near the split line are scanned and placed into the square transform block in the scan order. At the decoder, the coefficients associated with the square transform block that is the target portion are scanned in the scan order.
[0084] In another sub-implementation, the current block is not divided into multiple transform blocks by the proposed partial transform setting. The target portion does not refer to a single transform block, but rather to a subset of the residuals of the current block. For example, the target portion refers to the first N residuals or coefficients after diagonal scanning of the current block. As another example, the target portion refers to the first half of the current block after vertical or horizontal segmentation. Specifically, the target portion refers to the first half of the current block after vertical or horizontal segmentation, containing residuals or coefficients.
[0085] In another sub-implementation, the method proposed under the same root embodiment can be an optional mode. For example, a flag is signaled to indicate whether a partial transformation setting for the current block is used. If the flag indicates use, an index is signaled to indicate which sub-setting (in each sub-implementation under the partial transformation setting) is used for the current block.
[0086] In another embodiment, whether the proposed transform mode is supported depends on the higher-order grammar. For example, grammars at the tile, slice, picture, SPS, or PPS (Picture Parameter Set) level. In one case, this grammar is shared with other non-block vector codecs. In another case, the grammar is independent of other non-block vector codecs.
[0087] In another embodiment, the transform skip mode can be one of the transform modes of the current block, which uses an intra-block copying scheme to generate the predictor of the current block. The maximum size of the transform skip mode can be indicated by a higher-order syntax. For example, a tile, slice, image, SPS, or PPS level syntax. In one case, this syntax is shared with other non-block vector codecs. In another case, the syntax is independent of other non-block vector codecs.
[0088] In one sub-implementation, the higher-order syntax is independent of other higher-order syntaxes that indicate the maximum size of the transform skip mode. For example, the higher-order syntax that indicates the maximum size of the transform skip mode for mode type inter-frame, mode type intra-frame, and / or mode type IBC (third mode type) is separate.
[0089] In another embodiment, when IBC uses a vertical or horizontal BV (BV_x = 0 or BV_y = 0) or the reference sample is horizontally or vertically oriented, BDPCM is applied to the quantization residual values, where It is predicted based on its adjacent quantization residual values. For the vertical IBC BDPCM prediction model, for 0≤ j ≤( N -1), derived using the following formula. : , In another embodiment, the proposed transformation mode refers to an inherited transformation setting. An inherited transformation setting means supporting inherited transformation candidates for the current block. An example of the IBC case is shown below. One or more inherited transformation candidates are inherited from the IBC reference block. The K most popular inherited transformation candidates are available for the current block, where K is 1, 2, or any predefined positive integer. One of the K inherited candidates is selected as the transformation mode for the current block. In one embodiment, several proposed transformation candidates with inherited transformation settings are included in a transformation set and / or a transformation set provides the transformation mode for the current block.
[0090] In one sub-implementation, for IBC merge / inter-frame modes (e.g., IBC merge and / or IBC AMVP), the reference block refers to the block that provides the block vector information of the current block.
[0091] In another sub-implementation, the reference block is indicated by a block vector (for IBC blocks) or a template match (for intra-TMP blocks). In addition to deriving the predictor for the current block, the reference block also provides transformation information for the current block.
[0092] In another sub-implementation, the inherited transform setting depends on the RR-IBC encoding information. For example, when the current block uses RR-IBC, the transform type is inverted. Or, when the current block uses RR-IBC, the transform types in the horizontal and vertical directions are swapped. Or, when the current block uses RR-IBC, the transform mode selection differs from other encoding modes.
[0093] In another embodiment, the proposed transform mode supports all or any subset of the JCCR (Jointly Encoded Residual / Coefficients of Cb and Cr) mode. Examples of the mapping between tu_cbf_cb / tu_cbf_cr and the reconstruction of the Cb and Cr residuals are shown in Table 7.
[0094]
[0095] In another embodiment, whether the proposed transformation pattern is applied to the current block depends on the block-level syntax.
[0096] In another embodiment, an undersampling / upsampling IBC mode is proposed as follows: When the current block adopts the undersampling / upsampling IBC mode, the reference block indicated by the block vector is greater than / less than the current block. The reference sample is undersampled / upsampled and then used to predict the current block. Figure 9 An example of a downsampling IBC mode is shown, where the current block 920 uses the reference block 930 in the current image 910 to generate the IBC predictor. The current block size is (W, H), and the reference block size is (kW, kH). Therefore, the reference block is downsampled k:1 before being used as the predictor.
[0097] The method proposed in this invention can be based on implicit rules (e.g., block width, height, or area) or explicit rules (e.g., block-level or high-level such as tiles, slices, images, SPS, or PPS levels). For example, the proposed method is applied when the block area is smaller than / greater than a threshold. For the example of using MTS-type transform modes for the current block to generate predictions and / or to encode using block vector encoding / decoding tools, the proposed transform mode refers to using MTS-type transform modes for prediction. The current block is only allowed to use sub-modes for block vector encoding / decoding tools. Sub-modes for block vector encoding / decoding tools can be IBC-CIIP, IBC-GPM, IBC-LIC, IBC-MBVD, RR-IBC, IBC merging, IBCAMVP (or IBC inter-frame), and / or any IBC or intraTMP sub-mode. The sub-modes of the block vector codec tool (e.g., IBC, IBC merging, IBC inter-frame, or intraTMP as root mode) can be any optional mode that can be used / signaled if the root mode is enabled / applied. For the example of using MTS-type transform modes for the current block to generate predictions and / or to encode using the block vector codec tool, the proposed transform mode refers to using MTS-type transform modes for prediction. The current block is only allowed if its width, height, and / or area are less than a predefined threshold.
[0098] The term "block" in this invention may refer to TU / TB, CU / CB, PU / PB, predefined area, or CTU / CTB.
[0099] Any combination of the methods proposed in this invention can be applied.
[0100] Any of the aforementioned methods can be implemented in the encoder and / or decoder. For example, any of the proposed methods can be implemented in the encoder's inter-frame / intra-frame / IBC / prediction / transform module (e.g. Figure 1A Implemented in intra-frame prediction 110 / inter-frame prediction 112 / transform 118 / inverse transform 126 of the decoder, and / or in the inter-frame / intra-frame / IBC / prediction / inverse transform module of the decoder (e.g., Figure 1B Intra-frame prediction 150 / MC 152 / inverse transform 126). Alternatively, any of the proposed methods can be implemented as circuitry coupled to the inter-frame / intra-frame / IBC / prediction / transform module of the encoder and / or the inter-frame / intra-frame / IBC / prediction / (inverse)transform module of the decoder, thereby providing the information required by the inter-frame / intra-frame / IBC / prediction / transform module (e.g., transform module or inverse transform module). Although the modules involved (e.g., Figure 1A Units 110 / 112 / 118 / 126 or Figure 1B Units 150 / 152 / 126 in the diagram are shown as separate processing units, but they may correspond to executable software or firmware code stored on a medium, such as a hard disk or flash memory, for a CPU (Central Processing Unit) or a programmable device (such as a DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array)).
[0101] Figure 10 A flowchart illustrating an exemplary video codec system using multiple transforms for IBC / IntraTMP mode according to an embodiment of the present invention is shown. The steps shown in the flowchart can be implemented as program code executable on one or more processors (e.g., one or more CPUs) on the encoder side. The steps shown in the flowchart can also be implemented in hardware, such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, in step 1010, input data associated with a current block in the current image is received, wherein the input data includes residual data of the current block to be encoded on the encoder side or transform coefficients of the current block to be decoded on the decoder side, and prediction data of the current block is generated by applying intra-block copying or intra-template matching prediction. In step 1020, an improved transform mode is applied to the current block to derive final transform coefficients on the encoder side or reconstructed residual data on the decoder side, wherein the improved transform mode includes a target transform mode selected from a transform set including two or more transform modes. In step 1030, the final transform coefficients at the encoder side or the reconstructed residual data at the decoder side are provided.
[0102] The flowchart shown is intended to illustrate an example of video encoding according to the present invention. Those skilled in the art can modify, rearrange, segment, or combine each step to implement the invention without departing from its spirit. Specific syntax and semantics have been used in this disclosure to illustrate examples of implementing embodiments of the invention. Those skilled in the art can practice the invention by substituting equivalent syntax and semantics without departing from its spirit.
[0103] The above description is given to enable those skilled in the art to practice the invention provided in the context of a particular application and its requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments. Therefore, the invention is not intended to be limited to the specific embodiments shown and described, but should be given the widest scope consistent with the principles and novel features disclosed herein. In the detailed description above, various specific details are shown to provide a thorough understanding of the invention. However, those skilled in the art will understand that the invention can be practiced.
[0104] The embodiments of the present invention described above can be implemented in various hardware, software program code, or a combination of both. For example, embodiments of the present invention may be one or more circuits integrated into a video compression chip or program code integrated into video compression software to perform the processes described herein. Embodiments of the present invention may also be program code executed on a digital signal processor (DSP) to perform the processes described herein. The present invention may also relate to a variety of functions executed by a computer processor, digital signal processor, microprocessor, or field-programmable gate array (FPGA). These processors may be configured to perform specific tasks according to the present invention by executing machine-readable software program code or firmware program code that defines the specific methods embodied in the present invention. The software program code or firmware program code may be developed in different programming languages and in different formats or styles. The software program code may also be compiled for different target platforms. However, different program code formats, software program code styles and languages, and other ways of configuring program code to perform tasks according to the present invention will not depart from the spirit and scope of the present invention.
[0105] This invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples should be considered in all respects as illustrative rather than restrictive. Therefore, the scope of the invention is indicated by the appended claims rather than the foregoing description. All modifications falling within the meaning and scope of equivalents of the claims are included within their scope.
Claims
1. A video encoding / decoding method, the method comprising: Receive input data related to the current block in the current image, wherein the input data includes residual data for encoding the current block at the encoder end or transformation coefficients for decoding the current block at the decoder end, and the prediction data of the current block is generated by applying intra-block copying or intra-template matching prediction. An improved conversion mode is applied to the current block to derive the final conversion coefficients at the encoder or to derive the reconstructed residual data at the decoder, wherein the improved conversion mode includes a target conversion mode selected from a conversion set containing two or more conversion modes. The final conversion coefficients are provided at the encoder end, or the reconstructed residual data is provided at the decoder end.
2. The method according to claim 1, characterized in that, The transformed set is used by other non-block vector encoding / decoding tools.
3. The method according to claim 1, characterized in that, The transformation set includes transformation skips, primary transformations, secondary transformations, or combinations thereof.
4. The method according to claim 1, characterized in that, The transformation set includes one or more inherited transformation candidates.
5. The method according to claim 4, characterized in that, For the current block, search one or more inherited transformation candidates and select the K most popular candidates, where K is a positive integer.
6. The method according to claim 5, characterized in that, One of the K most popular candidates is selected as the target conversion mode.
7. The method according to claim 1, characterized in that, The improved conversion mode is used as an additional conversion option indicated by explicit syntax.
8. The method according to claim 1, characterized in that, The improved conversion mode is enabled for block vector codec tools if one or more enabling conditions are met.
9. The method according to claim 8, characterized in that, The one or more enabling conditions include the target block vector codec tool being a sub-mode of the block vector codec tool.
10. The method according to claim 8, characterized in that, If the current block meets the size requirements, the improved conversion mode is enabled for the current block.
11. An apparatus for video encoding and decoding, the apparatus comprising one or more electronic components or a processor configured to: Receive input data related to the current block in the current image, wherein the input data includes residual data for encoding the current block at the encoder end or transformation coefficients for decoding the current block at the decoder end, and the prediction data of the current block is generated by applying intra-block copying or intra-template matching prediction. An improved conversion mode is applied to the current block to derive the final conversion coefficients at the encoder or to derive the reconstructed residual data at the decoder, wherein the improved conversion mode includes a target conversion mode selected from a conversion set containing two or more conversion modes. The final conversion coefficients are provided at the encoder end, or the reconstructed residual data is provided at the decoder end.