Method and apparatus for suggesting sub-block transform coding and decoding
通过在视频编解码系统中依据边界匹配成本暗示推导子块变换位置,解决了现有技术中子块变换信息节省位效率低的问题,实现了更高效的编解码过程和资源利用。
Patent Information
- Application Number
- CN202380048685.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-22
- Filing Date
- 2023-06-21
- Publication Date
- 2025-02-14
AI Technical Summary
In the inter-screen prediction and codec process, existing video encoding and codec systems have the problem of bit saving efficiency of information saving, especially in the sub-block transformation process, which requires parsing the sub-block transformation position in the bitstream, which increases the computational complexity and resources. Consumption.
By deriveing information related to sub-block transformations based on boundary matching costs, avoiding parsing sub-block transformation positions in the bitstream, thereby simplifying the calculation process.
It improves the encoding and decoding efficiency of the video encoding and decoding system, reduces the computational complexity and resource consumption, and reduces the signaling overhead in the bitstream.
Smart Images

Figure CN119452659A_ABST
Abstract
Description
[0001] Cross-references
[0002] This application is a non-provisional application based on and claims the benefit of U.S. Provisional Patent Application No. 63 / 354,376, filed on June 22, 2022, and U.S. Provisional Patent Application No. 63 / 354,380, filed on June 22, 2022. The U.S. Provisional Patent Applications are hereby incorporated by reference in their entirety. Technical Field
[0003] The present invention relates to a subblock transform (SBT) process for inter-picture prediction of a codec block in a video coding and decoding system, and more particularly to saving bits by implicitly deriving SBT-related information. Background Art
[0004] Versatile Video Coding (VVC) is the latest international video codec standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). The standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology - Codec representation of immersive media - Part 3: Versatile video codec, released in February 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding), by adding more codec tools to improve codec efficiency and handle various types of video sources including three-dimensional (3D) video signals.
[0005] Figure 1AAn exemplary self-adjusting inter / intra video coding system incorporating in-loop processing is described. For intra prediction, prediction data is derived based on previously encoded video data in the current picture. For inter prediction 112, motion estimation (ME) is performed at the encoder end, and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other pictures and motion data. Switch 114 selects intra prediction 110 or inter prediction 112, and the selected prediction data is provided to adder 116 to form a prediction error, also called a residual. The prediction error is then processed by a transform (Transform, T) 118 and a quantization (Quantization, Q) 120. The transformed and quantized residual is then encoded and decoded by an entropy encoder 122 for inclusion in a video bitstream corresponding to the compressed video data. This bitstream of transform coefficients is then packaged together with side information (e.g., motion and codec modes related to intra-picture and inter-picture prediction) and other information (e.g., parameters related to the loop filter applied to the underlying picture area). Figure 1A As shown, the end information related to intra-picture prediction 110, inter-picture prediction 112 and in-loop filter 130 is provided to the entropy encoder 122. When using the inter-picture prediction mode, the reference picture must also be reconstructed at the encoder end. Therefore, the transformed and quantized residuals are processed by inverse quantization (Inverse Quantization, IQ) 124 and inverse transformation (Inverse Transformation, IT) 126 to restore the residuals. Then, the residuals are added back to the prediction data 136 in reconstruction (Reconstruction, REC) 128 to reconstruct the video data. The reconstructed video data can be stored in the reference picture buffer 134 and used to predict other frames.
[0006] like Figure 1AAs shown, the incoming video data undergoes a series of processes in the encoding system. The reconstructed video data from REC 128 may suffer various damages due to the series of processes. Therefore, in order to improve the video quality, the reconstructed video data is usually applied with an in-loop filter 130 before being stored in the reference picture buffer 134. For example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF) can be used. The loop filter information may need to be introduced into the bitstream so that the decoder can properly recover the required information. Therefore, the loop filter information is also provided to the entropy encoder 122 for introduction into the bitstream. Figure 1A In , a loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in a reference picture buffer 134 . Figure 1A The system in is intended to describe an exemplary structure of a typical video encoder. The system may correspond to a HEVC system, VP8, VP9, H.264, or VVC.
[0007] like Figure 1B As shown, the decoder can use similar or partially identical functional blocks as the encoder, except for transform 118 and quantization 120, because the decoder only needs inverse quantization 124 and inverse transform 126. Instead of using the entropy encoder 122, the decoder uses an entropy decoder 140 to decode the video bitstream into quantized transform coefficients and required coding information (such as in-loop filter (ILPF) information, intra-picture prediction information, and inter-picture prediction information). The intra-picture prediction 150 at the decoder end does not need to perform a pattern search. Instead, the decoder only needs to generate an intra-picture prediction based on the intra-picture prediction information received from the entropy decoder 140. In addition, for inter-picture prediction, the decoder only needs to perform motion compensation (MC 152) based on the inter-picture prediction information received from the entropy decoder 140, without performing motion estimation.
[0008] The invention discloses a method and a device for deriving sub-block transformation information based on boundary matching cost hints in order to improve coding and decoding efficiency. Summary of the invention
[0009] The present invention discloses a method and device for video coding and decoding. According to the method at the decoder end, coded data related to a current block to be decoded is received, wherein the current block is coded and decoded using a subblock transform (SBT) mode. The SBT position in the candidate sub-partial block set of the current block is determined, wherein the SBT position is implicitly determined without parsing the SBT position from a bit stream; or the SBT position is selected from a partial set of candidate sub-partial blocks implicitly derived from the candidate sub-partial block set. The transformed residual data of the current block is derived from the coded data related to the current block. By using the SBT information including the SBT position, the SBT is applied to the transformed residual data of the current block to restore the reconstructed residual data of the current block.
[0010] In one embodiment, the SIB position is determined based on a boundary matching cost of the candidate sub-part block set derived from one or more adjacent samples of the current block and one or more corresponding boundary samples of the current block. For example, the boundary matching cost of the candidate sub-part block set can be derived, wherein a boundary matching cost is determined for each candidate sub-part block based on a difference derived from a predicted sample of the one or more corresponding boundary samples of the current block and a reconstructed sample of the one or more adjacent samples of the current block. In this case, the SBT position can be determined based on the target candidate sub-part block with the largest boundary matching cost among the boundary matching costs of the candidate sub-part block set.
[0011] In one embodiment, a boundary matching cost of the set of candidate sub-part blocks is derived, wherein for each candidate sub-part block with residual, a boundary matching cost is determined for each candidate sub-part block according to a first difference derived from a reconstructed sample of the one or more corresponding boundary samples of the current block and a reconstructed sample of the one or more neighboring samples of the current block, and for each candidate sub-part block without residual, a boundary matching cost is determined for each candidate sub-part block according to a second difference derived from a predicted sample of the one or more corresponding boundary samples of the current block and the reconstructed sample of the one or more neighboring samples of the current block, the reconstructed sample of the one or more corresponding boundary samples of the current block being generated by adding the reconstructed residual sample of the current block to the predicted sample of each candidate sub-part block. In this case, the SBT position can be determined according to the target candidate sub-part block with the smallest boundary matching cost among the boundary matching costs of the set of candidate sub-part blocks.
[0012] In one embodiment, the one or more neighboring samples of the current block include top neighboring samples of the current block, left neighboring samples of the current block, or both.
[0013] In one embodiment, the set of candidate sub-partial blocks includes sub-partial blocks generated using a vertical SBT (SBT-vertical, SBT-V) with a binary tree (BT) split, a horizontal SBT (SBT-horizontal, SBT-H) with a BT split, an SBT-V with an asymmetric binary tree (ABT) split, an SBT-H with an ABT split, an SBT-V with a ternary tree (TT) split, an SBT-H with a TT split, or a combination thereof.
[0014] In one embodiment, the SBT partition direction is implicitly determined, for example, by comparing the boundary matching cost associated with the hypothetical position generated by flipping, rotating, or cutting / pasting the residual block of the current block.
[0015] In one embodiment, the SBT partition type is determined implicitly.
[0016] In one embodiment, the candidate sub-partial block portion set corresponds to the first k hypothesis positions with the largest boundary matching cost among the N hypothesis positions of the candidate sub-partial block set, where k and N are both positive integers, and N is greater than K. In addition, an index can be parsed from the bitstream, the index indicating the SBT position among the first k hypothesis positions.
[0017] The present invention also discloses a corresponding method at the encoder end. At the decoder end, pixel data related to a current block to be encoded is received, wherein the current block is encoded and decoded using a subblock transform (SBT) mode. Residual data of the current block is derived by applying inter-picture prediction to the current block. An SBT position in a set of candidate sub-part blocks of the current block is derived, wherein the SBT position is implicitly determined without the need to send the SBT position signal in the bitstream; or the SBT position is selected from a partial set of candidate sub-part blocks implicitly derived from the set of candidate sub-part blocks. By using the SBT information including the SBT position, the SBT is applied to the residual data of the current block to generate the transformed residual data of the current block. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1A is a schematic diagram illustrating an exemplary self-adjusting inter-picture / intra-picture video codec system incorporating loop processing.
[0019] Figure 1B Is a description Figure 1A Schematic diagram of the corresponding decoder of the encoder in .
[0020] Figure 2It is a schematic diagram describing examples of multiple types of tree structures corresponding to vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER) and horizontal ternary splitting (SPLIT_TT_HOR).
[0021] Figure 3 is a diagram illustrating an example of a signaling mechanism for partition splitting information within a quadtree codec tree structure with nested multi-type trees.
[0022] Figure 4 An example showing the partitioning of Coding Tree Units (CTU) into multiple coding units (CU) using quadtree and nested multi-type tree codec block structures; where bold block edges represent quadtree partitions and the remaining edges represent multi-type tree partitions.
[0023] Figure 5 Some examples showing ternary tree (TT) splitting disabled when luma codec block width or height is greater than 64.
[0024] Fig. 6A -D is a schematic diagram illustrating an example of regions used for boundary matching calculation of different SBTs according to an embodiment of the present invention.
[0025] Figure 7 is a schematic diagram for describing an example of samples involved in boundary matching cost calculation according to an embodiment of the present invention.
[0026] Figure 8 is a schematic diagram describing examples of splits including 1:2:1, 3:4:1 and 1:4:3 of SBT-V with TT split and 1:2:1, 1:4:3 and 3:4:1 of SBT-H with TT split; wherein only the transform unit (TU) "B" has a non-zero residual.
[0027] Fig. 9 is a schematic diagram illustrating an example of a region (ie, a to f) for calculating a difference of TU "B" according to an embodiment of the present invention; wherein only TU "B" has a non-zero residual.
[0028] Fig. 10A -C is used to describe the rotation ( Fig. 10A)、Flip( Fig. 10B ) and cut / paste ( Fig. 10C ) Schematic diagram suggesting an example of deriving partition directions within an SBT.
[0029] Fig.11A -D is a schematic diagram illustrating an example of regions used for boundary matching calculation of different SBTs according to an embodiment of the present invention.
[0030] Fig.12 is a schematic diagram for describing an example of samples involved in boundary matching cost calculation according to another embodiment of the present invention.
[0031] Fig.13 is a flowchart describing an exemplary video decoding system implicitly deriving an SBT position according to an embodiment of the present invention.
[0032] Fig.14 FIG. 4 is a flowchart describing an exemplary video coding system implicitly deriving an SBT position according to an embodiment of the present invention. DETAILED DESCRIPTION
[0033] It will be readily appreciated that the components of the present invention may be arranged and designed in a variety of different configurations, as generally described and illustrated in the figures herein. Therefore, the following more detailed description of embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the claimed invention, but is merely representative of selected embodiments of the present invention. Reference throughout this specification to "one embodiment" or similar terms means that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Therefore, the phrase "in one embodiment" appearing throughout this specification does not necessarily refer to the same embodiment.
[0034] In addition, the described features, structures or characteristics can be combined in any suitable manner in one or more embodiments. However, those of ordinary skill in the relevant art will recognize that the present invention can be practiced without one or more specific details, or practiced using other methods, components, etc. In other examples, the present invention does not illustrate or describe in detail well-known structures or operations to avoid confusing aspects of the present invention. The embodiments described in the present invention can be better understood with reference to the drawings, in which similar parts are represented by similar numbers throughout the text. The following description is for example only, and only some selected embodiments of the device and method consistent with the invention required herein are described.
[0035] According to VVC, similar to HEVC, the input picture is divided into non-overlapping square block areas, called CTUs (Coding Tree Units). Each CTU can be divided into one or more smaller-sized Coding Units (CUs). The resulting CU partitions can be square or rectangular. In addition, VVC also divides CTUs into prediction units (PUs), which serve as units for applying prediction processes such as inter-picture prediction, intra-picture prediction, etc.
[0036] Compared with the HEVC standard, the VVC standard introduces various new coding tools to further improve coding efficiency. Among the various new coding tools, some coding tools of the present invention are summarized as follows.
[0037] Segmentation of CTU using tree structure
[0038] In HEVC, CTUs are split into CUs using a quadtree (quaternary-tree or quadtree, QT) structure (called a codec tree) to accommodate various local characteristics. The leaf CU layer decides whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode and decode the picture area. Depending on the PU splitting type, each leaf CU can be further split into one, two or four PUs. Within a PU, the same prediction process is applied, and relevant information is transmitted to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU partition type, the leaf CU can be divided into transform units (TUs) according to another quadtree structure similar to the codec tree of the CU. One of the key features of the HEVC structure is that it has multiple partition concepts, including CU, PU and TU.
[0039] In VVC, the quadtree with nested multi-type trees replaces the concept of multiple partition unit types with binary and ternary split structures, that is, the separation of the concepts of CU, PU, and TU is cancelled, except for CUs that are too large relative to the maximum transform length, and supports more flexibility in the shape of CU partitions. In the codec tree structure, the CU can be square or rectangular. The codec tree unit (CTU) is first partitioned by the quadtree structure. Then, the quadtree leaf nodes can be further partitioned by the multi-type tree structure. Figure 2As shown, there are four types of splits in the multi-type tree structure, namely vertical binary split (SPLIT_BT_VER 210), horizontal binary split (SPLIT_BT_HOR 220), vertical ternary split (SPLIT_TT_VER 230) and horizontal ternary split (SPLIT_TT_HOR 240). The multi-type tree leaf nodes are called codec units (CUs), and this split is used for prediction and transform processing without any further splitting unless the CU is too large for the maximum transform length. This means that in most cases, CUs, PUs, and TUs have the same block size in the quadtree codec block structure with nested multi-type trees. The exception occurs when the maximum supported transform length is less than the width or height of the color component of the CU.
[0040] Figure 3 It is a signaling mechanism that describes partition split information within a quadtree codec tree structure with nested multi-type trees. The codec tree unit (CTU) is considered as the root of the quadtree and is first split by the quadtree structure. Then, each quadtree leaf node (when allowed to be sufficiently large) is further split by the multi-type tree structure. In the multi-type tree structure, a first flag (mtt_split_cu_flag) is signaled to indicate whether the node is further split. When the node is further split, a second flag (mtt_split_cu_vertical_flag) is signaled to indicate the split direction, and then a third flag (mtt_spli t_cu_binary_flag) is signaled to indicate whether the split is a binary split or a ternary split. According to the values of mtt_spli t_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree slitting mode (MttSplitMode) of CU can be derived, as shown in Table 1.
[0041] Table 1 - Derivation of MttSplitMode based on multi-type tree syntax elements
[0042] MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag SPLIT_TT_HOR 0 0 SPLIT_BT_HOR 0 1 SPLIT_TT_VER 1 0 SPLIT_BT_VER 1 1
[0043] Figure 4The CTU is divided into multiple CUs using a quadtree and nested multi-type tree codec block structure, where bold block edges represent quadtree partitioning and the remaining edges represent multi-type tree partitioning. Quadtree partitioning with nested multi-type trees provides a content-adaptive codec tree structure consisting of CUs. The size of the CU can be as large as the CTU or as small as 4×4 in units of luma samples. For the 4:2:0 chroma format, the maximum chroma CB size is 64×64 and the minimum size chroma CB consists of 16 chroma samples.
[0044] In VVC, the maximum supported luma transform size is 64 × 64, and the maximum supported chroma transform size is 32 × 32. When the width or height of the CB is larger than the maximum transform width or height, the CB will be automatically split in the horizontal and / or vertical direction to meet the transform size limit in that direction.
[0045] The SPS (Sequence Parameter Set) syntax element defines and specifies the following parameters for the quadtree coding tree scheme with nested multi-type trees.
[0046] -CTU size: the root node size of the quadtree
[0047] -MinQTSize: Minimum allowed quadtree leaf node size
[0048] -MaxBtSize: Maximum allowed binary tree root node size
[0049] -MaxTtSize: Maximum allowed ternary tree root node size
[0050] -MaxMttDepth: Maximum allowed hierarchical depth of a multi-type tree split from a quaternary tree leaf
[0051] -MinBtSize: minimum allowed binary tree leaf node size
[0052] -MinTtSize: minimum allowed ternary tree leaf node size
[0053] In one example of a quadtree codec tree structure with nested multi-type trees, the CTU size is set to 128×128 luma samples and two corresponding 64×64 blocks of 4:2:0 chroma samples. MinQTSi ze is set to 16×16, MaxBtSize is set to 128×128, MaxTtSize is set to 64×64, MinBtSize and MinTtSize (width and height) are set to 4×4, and MaxMttDepth is set to 4. First, quadtree partitioning is applied to the CTU to generate quadtree leaf nodes. The size of the quadtree leaf node can be between 16×16 (i.e., MinQTSize) and 128×128 (i.e., CTU size). If the leaf QT node is 128×128, it will not be further split by the binary tree because its size exceeds MaxBtSize and MaxTtSize (i.e., 64×64). Otherwise, the leaf quadtree node can be further split by the multi-type tree. Therefore, the quad leaf node is also the root node of the multi-type tree, and its multi-type tree depth (multi-type tree depth, mttDepth) is 0. When the multi-type tree depth reaches MaxMttDepth (i.e. 4), no further splitting is considered. When the width of the multi-type tree node is equal to MinBtSize and less than or equal to 2*MinTtSize, no further horizontal splitting is considered. Similarly, when the height of the multi-type tree node is equal to MinBtSize and less than or equal to 2*MinTtSize, no vertical splitting is considered.
[0054] In VVC, the codec tree scheme supports the ability to have separate block tree structures for luma and chroma. For P and B slices, the luma and chroma CTBs in one CTU must share the same codec tree structure. However, for I slices, luma and chroma can have separate block tree structures. When separate block tree mode is applied, the luma CTB is partitioned into multiple CUs by one codec tree structure, while the chroma CTB is partitioned into chroma CUs by another codec tree structure. This means that a CU in an I slice may consist of a codec block for one luma component or a codec block for two chroma components, while a CU in a P or B slice always consists of codec blocks for all three color components unless the video is monochrome.
[0055] Inter-picture prediction
[0056] For each inter-predicted CU, the motion parameters consist of a motion vector, a reference picture index and a reference picture list usage index, as well as additional information required by the new codec features of VVC for sample generation for inter-prediction. Motion parameters can be signaled either explicitly or implicitly. When encoding and decoding a CU using skip mode, the CU is associated with a PU, with no significant residual coefficients and no encoded or decoded motion vector deltas or reference picture indices. Merge mode specifies that the motion parameters of the current CU are taken from neighboring CUs, including spatial and temporal candidates, as well as an additional time table introduced in VVC. Merge mode is applicable to any inter-predicted CU, not just skip mode. An alternative to merge mode is the explicit transmission of motion parameters, where the motion vector, the corresponding reference picture index for each reference picture list, the reference picture list usage flag and other required information are explicitly signaled for each CU.
[0057] High-Frequency Zeroing for large block size conversion
[0058] In VVC, large block size transforms up to 64×64 in size are enabled. Large size transforms are mainly helpful for higher resolution videos, such as 1080p and 4K sequences. For transform blocks with size (width or height, or width and height) equal to 64, high-frequency transform coefficients are cleared so that only lower-frequency coefficients are retained. For example, for an M×N transform block, M is the block width and N is the block height, when M is equal to 64, only the transform coefficients of the 32 columns on the left are retained. Similarly, when N is equal to 64, only the transform coefficients of the top 32 rows are retained. When transform skip mode is used for large blocks, the entire block is used and no value is cleared. In addition, transform shift is removed in transform skip mode. VTM (VVC Test Mode 1) also supports a maximum transform size configurable in SPS, so that the encoder can flexibly select a transform size of maximum 32 length or 64 length depending on the needs of the specific implementation.
[0059] Sub-Block Transform (SBT)
[0060] In VVC, sub-block transforms are introduced for inter-predicted CUs. In SBT, only a sub-portion of the residual block of a CU is encoded and decoded. When an inter-predicted CU has cu_coded_flag equal to 1, a cu_sbt_flag signal may be issued to indicate whether the entire residual block or a sub-portion of the residual block is encoded and decoded through the transform process. In the former case, the inter-picture MTS (Multi Transform Sel ection) information is further parsed to determine the transform type of the CU. In the latter case, a portion of the residual block is adaptively encoded and decoded using the transform type inferred by the end (i.e., the split end), while the rest of the residual block is cleared.
[0061] When SBT is used for inter-picture coded CUs, the SBT type and SBT position information are signaled in the bitstream. The SBT type information indicates the TU split type (e.g., split similar to binary tree splitting or asymmetric binary tree splitting) and split direction (e.g., horizontal splitting or vertical splitting), and the corresponding semantic names are cu_sbt_quad_flag and cu_sbt_horizontal_flag in VVC. The SBT position information indicates which TU has a non-zero residual, and the corresponding semantic name is cu_sbt_pos_flag in VVC. For example, Figure 5 Two SBT types and two SBT positions are described. For SBT-V (510 and 520), the TU width may be equal to half the CU width or one-quarter the CU width, forming a 2:2 split or a 1:3 / 3:1 split. Similarly, for SBT-H (530 and 540), the TU height may be equal to half the CU height or one-quarter the CU height, forming a 2:2 split or a 1:3 / 3:1 split. The 2:2 split is like a binary tree (BT) split, while the 1:3 / 3:1 split is like an asymmetric binary tree (ABT) split. In an ABT split, only small areas contain non-zero residuals. If one dimension of the CU size (width or height) is 8 luminance samples, 1:3 / 3:1 splits are not allowed along that dimension. A CU has at most 8 SBT modes.
[0062] Position-dependent transform core selection is applied to the luma transform blocks in SBT-V and SBT-H. On the other hand, the chroma TBs always use DCT-2. The two positions of SBT-H and SBT-V are associated with different core transforms. More specifically, the horizontal and vertical transforms for each SBT position are Figure 5For example, the horizontal and vertical transforms of SBT-V position 0 are DCT-8 and DST-7 respectively. When a side of the residual TU is greater than 32, the transforms in both dimensions are set to DCT-2. Therefore, the sub-block transforms jointly specify the TU tiling, cbf, and horizontal and vertical core transform types of the residual block. Note that SBT is not applied to CUs encoded and decoded with combined intra-inter mode in VVC.
[0063] In order to reduce the encoder running time, some fast algorithms have been developed in SBT's RDO (Rate-Distortion Optimization):
[0064] Algorithm 1: For each SBT mode, the RD (Rate-Distortion) cost is estimated based on the sum of squared differences (SSD) of the skipped parts of the residual. If the estimated RD cost of an SBT mode is greater than the actual RD cost of the best mode, the SBT mode is skipped in RDO. In addition, only the four best SBT modes in terms of estimated RD cost are tried in RDO.
[0065] Algorithm 2: Apply transform mode saving and loading (improved on the model proposed in JVET-K0358). The residual energy (i.e., SSD) and the best transform mode (whole block transform using DCT-2, whole block transform using inter-picture MTS, one of sub-block transform) of the PU are saved as history information. When the residual energy of the PU matches the previous case, the best transform mode associated with the residual energy is tried, and other transform modes are skipped. This fast algorithm reduces the encoding and decoding time of SBT and inter-picture MTS.
[0066] Algorithm 3: If the RD cost of the entire residual block transformed by DCT-2 is much lower than the current best RD cost, skip SBT.
[0067] Algorithm 4: If the RD cost of the entire residual block transformed by DCT-2 is small enough, skip SBT.
[0068] Several methods for reducing the signaling overhead of SBT or improving the encoding and decoding efficiency are disclosed below.
[0069] According to an embodiment of the present invention, the final position of the sub-part of the residual block in the SBT (e.g., cu_sbt_pos_flag in VVC) can be implicitly derived. In one embodiment, the final position can be implicitly derived based on boundary matching, that is, checking the boundary matching cost between the current predicted sample and the adjacent reconstructed sample of each sub-part TU. If a sub-part TU has the largest boundary matching difference among all sub-part TUs, it is implicitly inferred that the sub-part TU has a non-zero residual and the transform or inverse transform process should be further applied, while the other sub-part TUs are set to have all residuals zero.
[0070] For example, if the current SBT type is SBT-H with BT split (i.e. Fig. 6A 610), then the boundary matching difference of TU "C" is diff C =∑|reco e -pred f |, where reco e is the adjacent reconstructed sample of "e", pred f is the predicted sample of "f". Similarly, the boundary matching difference of TU "D" is diff D =∑|reco g -pred h |, where reco g is the adjacent reconstructed sample of "g", pred h is the predicted sample of "h". If diff C >fiff D , then TU "C" is a sub-part with a non-zero residual. Otherwise, if diff D >diff C , then TU “D” is the sub-part with non-zero residual.
[0071] For another example, if the current SBT type is SBT-V with BT split (i.e. Figure 6C 630), then the boundary matching difference of TU "A" is diff A =∑|reco a -pred b |, where reco a is the adjacent reconstructed sample of "a", pred b is the predicted sample of "b". Similarly, the boundary matching difference of TU "B" is diff B =∑|reco c -pred d |, where reco c is the adjacent reconstructed sample of "c", pred dis the predicted sample of "d". If diff A >diff B , then TU "A" is a subpart with a non-zero residual. Otherwise, if diff B >diff A , then TU "B" is the sub-part with non-zero residual.
[0072] For another example, if the current SBT type is SBT-H with ABT split (i.e. Figure 6B 620), then the boundary matching difference of TU "E" is diff E =∑|reco i -pred j |, where reco i is the adjacent reconstructed sample of "i", pred j is the predicted sample of "j". Similarly, the boundary matching difference of TU "F" is diff F =∑|reco o -pred p |, where reco o is the adjacent reconstructed sample of "o", pred p is the predicted sample of "p". If diff E >diff F , then TU "E" is a sub-part with non-zero residual. Otherwise, if diff F >diff E , then TU "F" is the sub-part with non-zero residual. Still the same example, if ∑|reco k -pred l |>∑|reco m -pred n |, then TU "F" is a sub-part with non-zero residual. If ∑|reco k -pred l |<∑|reco m -pred n |, then TU “E” is the sub-part with non-zero residual, where reco k is the neighboring reconstructed sample of “k”, pred l is the predicted sample of "l", rec m is the adjacent reconstructed sample of "m", pred n is the predicted sample of "n".
[0073] For another example, if the current SBT type is SBT-V with ABT split (i.e. Fig.6D 640 and 642), then the boundary matching difference of TU "G" is diffG =∑|reco q -pred r |, where reco q is the adjacent reconstructed sample of "q", pred r is the predicted sample of "r". Similarly, the boundary matching difference of TU "H" is diff H =∑|reco w -pred x |, where reco W is the adjacent reconstructed sample of "w", pred x is the predicted sample of "x". If diff G >diff H , then TU "G" is a subpart with non-zero residual. Otherwise, if diff H >diff G , then TU「H」is the sub-part with non-zero residual. Still in the same example, if ∑|reco s -pred t |>∑|reco u -pred v |, then TU「H」is a subpart with non-zero residual. s -pred t |<∑|reco u -pred v |, then TU "G" is the sub-part with non-zero residual, where reco s is the adjacent reconstructed sample of "s", pred t is the predicted sample of "t", reco u is the adjacent reconstructed sample of "u", pred v is the predicted sample of "v".
[0074] More specifically, when performing boundary matching, the boundary matching difference of the candidate pattern refers to Figure 7 , a discontinuity measurement (e.g., including top boundary matching and / or left boundary matching) between a current prediction (i.e., a prediction sample in the current block) and an adjacent reconstruction (i.e., a reconstructed sample in one or more adjacent blocks) of a current block 710 shown in . The top boundary matching refers to the comparison between the current top prediction sample and the adjacent top reconstructed sample, and the left boundary matching refers to the comparison between the current left prediction sample and the adjacent left reconstructed sample.
[0075] In one embodiment, a predefined subset of the current prediction is used to calculate the boundary match difference. N lines of the top boundary in the current block and / or M lines of the left boundary in the current block are used. In addition, M and N can be further determined by the current block size. For example, Figure 7 The boundary matching error of the described sample can be expressed as:
[0076]
[0077] In the above formula, the weight (a, b, c, d, e, f, g, h, i, j, k, l) can be any positive integer, or equal to 0. For example, various possible embodiments of the weight are listed below:
[0078] –a=2,b=1,c=1,d=2,e=1,f=1,g=2,h=1,i=1,j=2,k=1,l=1.
[0079] –a=2,b=1,c=1,d=0,e=0,f=0,g=2,h=1,i=1,j=0,k=0,l=0.
[0080] –a=0,b=0,c=0,d=2,e=1,f=1,g=0,h=0,i=0,j=2,k=1,l=1.
[0081] –a=1,b=0,c=1,d=0,e=0,f=0,g=1,h=0,i=1,j=0,k=0,l=0.
[0082] –a=2,b=1,c=1,d=2,e=1,f=1,g=1,h=0,i=1,j=0,k=0,l=0.
[0083] –a=1,b=0,c=1,d=0,e=0,f=0,g=2,h=1,i=1,j=2,k=1,l=1.
[0084] If SBT-H and SBT-V types are allowed more assumed positions (e.g. Figure 8 If only TU "B" has non-zero residual, the final position is implicitly derived by checking not only the boundary matching difference between the current prediction sample and the adjacent reconstructed sample of each sub-part TU, but also the current prediction sample difference along the inter-TU boundary of the current block. Figure 8 1:2:1 (810), 3:4:1 (820) and 1:4:3 (830) SBT-V with TT splitting, and 1:2:1 (840), 1:4:3 (850) and 3:4:1 (860) SBT-H with TT splitting are shown. Figure 8For example, if the current block uses SBT-V, the residual can be added to the TU "B" of each hypothetical position. Then, the difference along the boundary of TU "B" is calculated, and the hypothetical position with the smallest difference is selected as the final position of the sub-part TU with the residual. In more detail, Fig. 9 For example, only TU "B" has a non-zero residual. The difference of TU "B" can be obtained through diff b =∑|reco b -pred a |+∑|pred d -pred c |+∑|pred e -pred f |Derived, where reco b is the reconstructed sample of "b". pred a , pred c , pred d , pred e , pred f are the predicted samples of "a", "c", "d", "e", and "f" respectively. For a given SBT split type with multiple hypothesis positions, cost b The calculation of is applied to each hypothesis position, and then the hypothesis position with the minimum difference is the final position of the sub-part TU with the residual. Note that the proposed method is not limited to 1:1, 1:3, 3:1, 1:4:3, 1:2:1 or 3:4:1 splits. Instead, other SBT types can be applied.
[0085] The partition direction in SBT (e.g., cu_sbt_horizontal_flag in VVC) can be implicitly derived by flipping, rotating, or cutting / pasting the residual block and checking the boundary matching difference between the current prediction sample and the adjacent reconstructed samples for each candidate SBT codec mode. Fig. 10A -C describes an example of the above invention. Fig. 10A In , the implicit partition direction is determined by rotating the residual blocks (1010 and 1020). Fig. 10B In , the implied partition direction is determined by flipping the residual blocks (1030 and 1040). Fig. 10C In FIG. 1 , it is implied that the partition direction is determined by cutting / pasting the residual block ( 1050 and 1060 ). For example, if the current SBT codec block uses BT splitting, the current SBT codec block may have Figure 5Assume that the current transform block size is the same as the gray area of "SBT-V position 0", the boundary matching difference can be calculated by the above method, and the candidate SBT codec mode with the largest boundary difference is the final SBT codec mode. In another example, cut / paste the residual block of area "A" that can be used for SBT-H, such as Fig. 10C Examples in .
[0086] If the current SBT codec block uses BT splitting, the initially assumed transform width may be max(block width, block height) (i.e., the maximum of the block width and block height), and the transform height is assumed to be min(block width, block height) / 2 (i.e., the minimum of the block width and block height divided by two). In another embodiment, the initially assumed transform width is max(block width, block height) / 2 (i.e., the minimum of the block width and block height divided by two), and the transform height is assumed to be min(block width, block height) (i.e., the minimum of the block width and block height). If the current SBT codec block uses 1:3 / 3:1 ABT splitting, the initially assumed transform width is max(block width, block height) (i.e., the maximum of the block width and block height), and the transform height is assumed to be min(block width, block height) / 4 (i.e., the minimum of the block width and block height divided by four). In another embodiment, the transform width is initially assumed to be max(block width, block height) / 4 (the maximum value of block width and block height divided by four), and the transform height is initially assumed to be min(block width, block height) (ie, the minimum value of block width and block height).
[0087] In another embodiment, the boundary matching cost of each hypothesis position (assuming that the total number of hypothesis positions is N) can be calculated through the current prediction sample and the adjacent reconstructed sample, and the first k hypothesis positions with the largest boundary matching difference are selected from the N hypothesis positions, where N and k are both positive integers, and N>k. Then, the final hypothesis position and SBT type are further determined from these K hypothesis positions (k can be 2, 3, 4, ... or N-1) through the signal index in the bitstream.
[0088] In another embodiment of the present invention, if the current block is encoded and decoded via SBT, the position of the sub-partial block with non-zero residual in the current block (e.g., cu_sbt_pos_flag in VVC) can be implicitly derived. According to this embodiment, the position can be implicitly derived via boundary matching, i.e., the reconstructed residual is added to the current prediction sample by relying on the assumed position of the non-zero residual sub-partial block, and the boundary matching cost of each assumed position with adjacent L-shaped reconstructed samples is checked. The boundary matching cost can be the difference between the current boundary reconstructed sample and the adjacent reconstructed sample of the current block. If a hypothetical position has the best boundary matching cost (e.g., the smallest difference) than other hypothetical positions, the non-zero residual sub-partial block position of the hypothetical position is implicitly inferred as the final position of the sub-partial block with non-zero residual in the current block, and the residuals of other sub-partial TUs are all zero.
[0089] For example, if the current SBT type is SBT-H with BT split (e.g. Fig.11A 1110), the assumed positions of the non-zero residual sub-blocks are "C" and "D". For the assumed position "C", the residual is added to the predicted sample in "C", and the boundary matching cost is cost C =∑|reco g -(pred h +resi h )|+∑|reco i -(pred k +resi k )|+∑|reco f -pred l |, where reco g 、reco i and reco j are the adjacent reconstructed samples in "g", "i" and "j" respectively. h 、pred k and pred l are the predicted samples of "h", "k" and "l" respectively. h and resi k are the predicted residual samples of "h" and "k" respectively. Similarly, for the assumed position "D", the residual is added to the predicted sample in "D", and the boundary matching cost is cost D =∑|reco g -pred h |+∑|reco i -pred k |+∑|reco j -(pred l +resi l )|, where resil is the predicted residual sample of "l". If cost C <cost D , then TU "C" is a sub-part of the non-zero residual. Otherwise (i.e. cost D ≥cost C ), TU “D” is a sub-part of the non-zero residual. As shown in the above boundary matching cost calculation, when calculating the cost of position “C”, the boundary regions “h” and “k” in “C” use the reconstructed sample values (i.e., (pred h +resi h ) and (pred k +resi k )), while the non-“C” (referred to as the remaining sub-block of “C”) boundary area “l” uses the predicted samples. A similar rule applies to position “D”, where the boundary area of “D” uses the reconstructed sample values, while the non-“D” boundary area (referred to as the remaining sub-block of “D”) uses the predicted reconstructed sample values.
[0090] For example, if the current SBT type is SBT-H with ABT split (e.g. Fig. 11B 1120 and 1122 in ), the assumed positions of the non-zero residual sub-part blocks are "E" and "F". For the assumed position "E", the residual is added to the predicted sample in "E", and the boundary matching cost is cost e =∑|reco m -(pred n +resi n )|+∑|reco o -(pred q +resi q )|+∑|reco p -pred r |, among which, reco m 、reco o and reco p are the adjacent reconstructed samples in “m”, “o” and “p” respectively. n 、pred q and pred r are the predicted samples of "n", "q" and "r" respectively. n and resi q are the residual prediction samples of "n" and "q" respectively. Similarly, for the assumed position "F", the residual is added to the prediction sample of "F", and the boundary matching cost is cost F =∑|reco m -pred n |+∑|reco u-pred w |+∑|reco hh -(pred v +resi x )|, where resi x is the predicted residual sample of "x". If cost E <cost F , then TU "E" is a sub-part with non-zero residual. Otherwise (i.e. cost E ≥cost F ), then TU “F” is the sub-part with non-zero residual.
[0091] For example, if the current SBT type is SBT-V with BT split (e.g. Fig. 11C 1130), the assumed positions of the non-zero residual sub-part blocks are "A" and "B". For the assumed position "A", the residual is added to the predicted sample in "A", and the boundary matching cost is cost A =∑|reco a -(pred c +resi c )|+∑|reco e -(pred f +resi f )|+∑|reco b -pred d |, among which, reco a 、reco e and reco b are the adjacent reconstructed samples in "a", "e" and "b" respectively. c 、pred f and pred d are the predicted samples of "c", "f" and "d" respectively. c and resi f are the predicted residual samples of "c" and "f" respectively. Similarly, for the assumed position "B", the residual is added to the predicted sample in "B", and the boundary matching cost is cost B =∑|reco a -pred c |+∑|reco e -pred f |+∑|reco b -(pred d +resi d )|, where resi d is the prediction residual sample of "d". If cost A <cost B, then TU "A" is a sub-part with non-zero residual. Otherwise (i.e. cost A ≥cost B ), then TU “B” is the sub-part with non-zero residual.
[0092] For example, if the current SBT type is SBT-V with ABT split (e.g. Fig.11D , then the assumed positions of the non-zero residual sub-blocks are "G" and "H". For the assumed position "G", the residual is added to the predicted sample in "G", and the boundary matching cost is cost G =∑|reco aa -(pred cc +resi cc )|+∑|reco ee -(pred ff +resi ff )|+∑|reco bb -pred dd |, where reco aa 、reco ee and reco bb are the adjacent reconstructed samples in "aa", "ee" and "bb" respectively. cc 、pred ff and pred dd They are the predicted samples of "cc", "ff" and "dd" respectively. cc and resi ff are the predicted residual samples of "cc" and "ff" respectively. Similarly, for the assumed position "H", the residual is added to the predicted sample of "H", and the boundary matching cost is cost H =∑|reco gg -pred ii |+∑|reco ee -pred ff |+∑|reco hh -(pred jj +resi jj )|, where resi jj is the prediction residual sample of "jj". If cost G <cost H , then TU "G" is a sub-part with non-zero residual. Otherwise (i.e. cost G ≥cost H ), then TU “H” is the sub-part with non-zero residual.
[0093] In more detail, when performing boundary matching according to the above method, the boundary matching cost of the candidate mode refers to the discontinuity measurement (e.g., including top boundary matching and / or left boundary matching) between the adjacent reconstruction (e.g., the reconstructed samples in one or more adjacent blocks) and the current prediction with or without residual (e.g., depending on the assumed position). The top boundary matching refers to the comparison between the adjacent top reconstruction sample and the current top prediction sample with or without residual. The left boundary matching refers to the comparison between the adjacent left reconstruction sample and the current left prediction sample with or without residual.
[0094] In one embodiment, a predefined subset of the current prediction is used to calculate the boundary matching cost. N lines of the top boundary in the current block and / or M lines of the left boundary in the current block are used. In addition, M and N can be further determined by the current block size. For example, Fig.12 The boundary matching cost of the described sample can be formulated as:
[0095]
[0096] In the above formula, the weight (a, b, c, d, e, f, g, h, i, j, k, l) can be any positive integer, or equal to 0. For example, (a, b, c, d, e, f, g, h, i, j, k, l) can use the example values mentioned above.
[0097] If SBT-H and SBT-V types are allowed more assumed positions (e.g. Figure 8 In one embodiment, depending on the assumed position of the non-zero residual sub-part block, the reconstructed residual is added to the current prediction sample, and the boundary matching cost of each assumed position with adjacent L-shaped reconstructed samples is checked. If one assumed position has the best boundary matching cost (such as the smallest difference) than other assumed positions, the non-zero residual sub-part block position of the assumed position is implicitly inferred as the final position of the non-zero residual sub-part block in the current block, and the other sub-part TUs are set to have all residuals zero.
[0098] In another embodiment, the final position of the sub-part TU with residual can be implicitly derived by checking not only the boundary matching cost between the current prediction sample and the adjacent reconstructed sample of each sub-part TU, but also the boundary matching cost between the current prediction sample and the current prediction sample with residual sample. Fig. 9In the position example, assuming that only TU "B" has non-zero residual, if the current block uses SBT-V, the residual can be added to each candidate TU "B". Then, the boundary matching cost along the boundary of TU "B" is calculated, and the hypothesized position with the minimum cost is selected as the final position of the sub-part TU with residual. In more detail, Figure 8 For example, the boundary matching cost of TU "B" can be calculated by cost b =∑|reco b -(pred a +resi a )|+∑|(pred d +resi d )-pred c |+∑|(pred e +resi e )-pred f |Derivation, where rec b is the reconstructed sample of "b". pred a 、pred c 、pred d 、pred e 、pred f They are the predicted samples of "a", "c", "d", "e", and "f" respectively. a 、resi d 、resi e They are the (reconstructed) residual samples of “a”, “d”, and “e” respectively.
[0099] In another embodiment, the final position of the sub-part TU with the residual can be derived based on the assumed position through specific horizontal and vertical transformation hints. Figure 5 As shown, different horizontal and vertical transforms are used for position 0 and position 1. To implicitly derive the final position of the sub-part TU with the residual, the reconstructed coefficients are input into the inverse transform according to the assumed position (e.g., horizontal and vertical transforms are DCT-8 and DST-7 for SBT-V position 0, and DST-7 and DST-7 for SBT-V position 1), and then the reconstructed residual is added to the corresponding predicted sample, and the boundary matching cost of each assumed position with the adjacent L-shaped reconstructed sample is checked. In another embodiment, if the SBT-H and SBT-V types are allowed to have more assumed positions (such as Figure 8 If the 1:4:3, 1:2:1, or 3:4:1TT class split is shown), more horizontal and vertical transformation combinations can be designed for each hypothesized position, and the reconstruction coefficients are input into the corresponding transformation combinations according to the hypothesized position, and then the boundary matching cost of each hypothesized position with adjacent L-shaped reconstructed samples is checked.
[0100] In another embodiment, N hypothesis positions of the same SBT type may share the same horizontal and vertical transform settings, and the first k hypothesis positions with better boundary matching costs are selected from the N hypothesis positions. Then, the final hypothesis position among the k hypothesis positions (e.g., k may be 2, 3, 4, ... or N-1) is signaled in the bitstream.
[0101] In another embodiment, the reconstructed transform coefficients may be applied to the assumed transform size and inverse transform combination according to each hypothesis position (assuming that the total number of hypothesis positions is J), and the first i hypothesis positions with the best boundary matching cost are selected from the J hypothesis positions. Then, the final hypothesis position and SBT type are further determined from the i hypothesis positions (for example, i may be 2, 3, 4, ... or J-1) through the signal index in the bitstream.
[0102] Any of the methods proposed above may be implemented in an encoder and / or a decoder. For example, any of the methods proposed may be implemented in an inter-picture / intra-picture / prediction / transform module of an encoder, and / or an inverse transform / inter-picture / intra-picture / prediction module of a decoder. Alternatively, any of the methods proposed may be implemented as a circuit coupled to an inverse transform / inter-picture / intra-picture / prediction module of an encoder, and / or an inter-picture / intra-picture / prediction / transform module of a decoder, thereby providing the information required by the inter-picture / intra-picture / prediction / transform module.
[0103] Any of the above-mentioned sub-block transform (SBT) codecs can be implemented in an encoder and / or a decoder. For example, any of the proposed methods can be implemented in a transform module (such as Figure 1A 118) and / or the inverse transform module of the decoder (e.g. Figure 1B ” IT 126 in ). However, the encoder or decoder may also use additional processing units to implement the required processing. Alternatively, any of the proposed methods may be implemented as a circuit coupled to the inter-picture / intra-picture / prediction module of the encoder, and / or the inter-picture / intra-picture / prediction module of the decoder, thereby providing the information required by the inter-picture / intra-picture / prediction module. In addition, the signaling of the proposed method is implemented using the entropy encoder 122 in the encoder or the entropy decoder 140 in the decoder.
[0104] Fig.13The present invention is a flowchart describing an exemplary video decoding system according to an embodiment of the present invention implicitly deriving an SBT position. The steps shown in the flowchart can be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder end. The steps shown in the flowchart can also be implemented based on hardware, such as one or more electronic devices or processors configured to execute the steps in the flowchart. According to the method, in step 1310, the encoded data related to the current block to be decoded is received at the decoder end, wherein the current block is encoded and decoded using a subblock transform (SBT) mode. In step 1320, the SBT position in the candidate sub-part block set of the current block is determined, wherein the SBT position is implicitly determined without parsing the SBT position from the bitstream; or the SBT position is selected from a partial set of candidate sub-part blocks implicitly derived from the candidate sub-part block set. In step 1330, the transformed residual information of the current block is derived from the encoded data related to the current block. In step 1340 , the SBT is applied to the transformed residual data of the current block using the SBT information including the SBT position to recover the reconstructed residual data of the current block.
[0105] Fig.14 The present invention is a flowchart describing an exemplary video coding system implicitly deriving an SBT position according to an embodiment of the present invention. According to the method, in step 1410, pixel data related to a current block to be encoded is received at an encoder, wherein the current block is encoded and decoded using a subblock transform (SBT) mode. In step 1420, residual data of the current block is derived by applying inter-picture prediction to the current block. In step 1430, an SBT position in a set of candidate sub-part blocks of the current block is derived, wherein the SBT position is implicitly determined without signaling the SBT position in the bitstream; or the SBT position is selected from a set of candidate sub-part blocks implicitly derived from the set of candidate sub-part blocks. In step 1440, the SBT is applied to the residual data of the current block using the SBT information including the SBT position to generate transformed residual data of the current block.
[0106] The flowchart shown is intended to describe an example of video encoding and decoding according to the present invention. Those skilled in the art may modify each step, rearrange the steps, split individual steps or combine the steps to practice the present invention without departing from the spirit of the present invention. In the disclosed content, specific syntax and semantics have been used to describe examples of embodiments of the present invention. Generally, those skilled in the art can practice the present invention by replacing these syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0107] The above description is intended to enable the ordinary skilled person in the art to practice the present invention according to specific applications and requirements thereof. It is obvious to the ordinary skilled person in the art that various modifications are made to the described embodiments, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the illustrated and described specific embodiments, but to be given the widest scope consistent with the disclosed principles and novel features. In the above detailed description, various specific details are described in order to provide a thorough understanding of the present invention. Nevertheless, the ordinary skilled person in the art may understand that the present invention may be put into practice.
[0108] The above-described embodiments of the present invention may be implemented through various hardware, software codes, or a combination of both. For example, an embodiment 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 processing described herein. An embodiment of the present invention may also be program code executed on a digital signal processor (DSP) to perform the processing described herein. The present invention may also involve some functions performed by a computer processor, a digital signal processor, a microprocessor, or a field programmable gate array (FPGA). These processors can be used to perform specific tasks of the present invention by executing machine-readable software code or firmware code that defines the specific methods embodied in the present invention. The software code or firmware code can be developed in different programming languages and different formats or styles. The software code can also be compiled for different target platforms. However, different code formats, styles and languages of the software code and other ways of configuring the code to perform tasks according to the present invention will not depart from the spirit and scope of the present invention.
[0109] Without departing from the spirit or essential characteristics of the present invention, the present invention may be embodied in other specific forms. The described examples are considered to be illustrative and non-restrictive in all respects. Therefore, the scope of the present invention is indicated by the appended invention claims rather than the above description. All changes occurring within the equivalent meaning and scope of the invention claims should be included within the scope of the invention claims.
Claims
1. A video decoding method, comprising: Receiving, at a decoder, coded data related to a current block to be decoded, wherein the current block is coded and decoded using a Subblock Transform (SBT) mode; Determine an SBT position in a set of candidate sub-part blocks of the current block, wherein the SBT position is implicitly determined without parsing the SBT position from a bitstream; or select the SBT position from a partial set of candidate sub-part blocks implicitly derived from the set of candidate sub-part blocks; deriving transformed residual information of the current block from the coded data associated with the current block; and The SBT is applied to the transformed residual data of the current block using the SBT information including the SBT position to restore the reconstructed residual data of the current block.
2. The method of claim 1, wherein: The SBT position is determined according to a boundary matching cost of the candidate sub-part block set derived from one or more neighboring samples of the current block and one or more corresponding boundary samples of the current block.
3. The method of claim 2, wherein: A boundary matching cost for the set of candidate sub-part blocks is derived, and wherein a boundary matching cost is determined for each candidate sub-part block based on a difference derived from a predicted sample of the one or more corresponding boundary samples of the current block and a reconstructed sample of the one or more neighboring samples of the current block.
4. The method of claim 3, wherein: The SBT position is determined according to the target candidate sub-partial block having the largest boundary matching cost among the boundary matching costs of the candidate sub-partial block set.
5. The method of claim 2, wherein: A boundary matching cost for the set of candidate sub-part blocks is derived, and, for each candidate sub-part block with residual, a boundary matching cost is determined for each candidate sub-part block according to a first difference derived from reconstructed samples of the one or more corresponding boundary samples of the current block and reconstructed samples of the one or more neighboring samples of the current block, and for each candidate sub-part block without residual, a boundary matching cost is determined for each candidate sub-part block according to a second difference derived from predicted samples of the one or more corresponding boundary samples of the current block and the reconstructed samples of the one or more neighboring samples of the current block, the reconstructed samples of the one or more corresponding boundary samples of the current block being generated by adding the reconstructed residual samples of the current block to the predicted samples of each candidate sub-part block.
6. The method of claim 5, wherein: The SBT position is determined according to the target candidate sub-partial block having the smallest boundary matching cost among the boundary matching costs of the candidate sub-partial block set.
7. The method of claim 2, wherein: The one or more neighboring samples of the current block include top neighboring samples of the current block, left neighboring samples of the current block, or both.
8. The method of claim 1, wherein: The set of candidate sub-partial blocks includes sub-partial blocks generated using a vertical SBT (SBT-vertical, SBT-V) with binary tree (BT) splitting, a horizontal SBT (SBT-horizontal, SBT-H) with BT splitting, an SBT-V with an asymmetric binary tree (ABT) splitting, an SBT-H with an ABT splitting, an SBT-V with a ternary tree (TT) splitting, an SBT-H with a TT splitting, or a combination thereof.
9. The method of claim 1, wherein: The SBT partition direction is determined implicitly.
10. The method of claim 9, wherein: The SBT partition direction is implicitly determined by comparing the boundary matching costs associated with the hypothesized positions of the residual blocks generated by flipping, rotating, or cutting / pasting the contents of the current block.
11. The method of claim 1, wherein: The SBT partition type is implicitly determined.
12. The method of claim 1, wherein: The partial set of the candidate sub-partial block corresponds to the first k hypothesis positions with the largest boundary matching cost among the N hypothesis positions of the candidate sub-partial block set, where k and N are both positive integers, and N is greater than k.
13. The method of claim 12, wherein: An index is parsed from the bitstream, the index indicating the SBT position among the top k hypothesis positions.
14. A video encoding and decoding method, comprising: Receiving pixel data associated with a current block to be encoded at an encoder, wherein the current block is encoded and decoded using a Subblock Transform (SBT) mode; deriving residual data of the current block by applying inter-picture prediction to the current block; deriving an SBT position in a set of candidate sub-partial blocks of the current block, wherein the SBT position is implicitly determined without signaling the SBT position in a bitstream; or selecting the SBT position from a partial set of candidate sub-partial blocks implicitly derived from the set of candidate sub-partial blocks; The SBT is applied to the residual data of the current block using the SBT information including the SBT position to generate transformed residual data of the current block.