Methods and apparatus of block partition prediction by spatial and temporal information for video coding

By utilizing spatial and temporal information from previously coded blocks, the method enhances block partition prediction in video coding systems, reducing encoding time and improving compression efficiency.

WO2025180465A1PCT designated stage Publication Date: 2025-09-04MEDIATEK INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/079710
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-29
Filing Date
2025-02-28
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in efficiently predicting and constraining block partitions, particularly in versatile video coding (VVC), which can lead to increased encoding time and suboptimal compression results due to the complexity of quadtree and multi-type tree structures.

Method used

The method involves predicting or constraining block partition using spatial and temporal information from previously coded blocks, including the use of spatial and temporal partition prediction information to guide the partitioning process, with additional flags and constraints to optimize encoding and decoding efficiency.

Benefits of technology

This approach reduces encoding time and improves coding performance by adaptively adjusting block partition depths, leading to better compression results and coding gains.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025079710_04092025_PF_FP_ABST
    Figure CN2025079710_04092025_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus for adaptive block partition by using block partition information from previously coded blocks are disclosed. According to the method, input data associated with a current picture area in a current picture is received, wherein the input data comprise pixel data for the current picture area to be encoded at an encoder side or encoded data associated with the current picture area to be decoded at a decoder side. The current picture area is partitioned into one or more target blocks by using block partition information, wherein the block partition information comprises spatial information associated with one or more previously coded spatial-neighbouring blocks. Encoding or decoding process is applied to said one or more target blocks.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF BLOCK PARTITION PREDICTION BY SPATIAL AND TEMPORAL INFORMATION FOR VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS

[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 559, 254, filed on February 29, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system. In particular, the present invention discloses to predict or constrain block partition using block partition information from previously coded blocks in a video coding system. BACKGROUND AND RELATED ART

[0003] Versatile video coding (VVC) is the latest international video coding 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 -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.

[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, is provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.

[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.

[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as 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 an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.

[0007] Partitioning of CTUs Using Tree Structure

[0008] In HEVC, a CTU is split into CUs by using a quaternary-tree structure denoted as coding tree to adapt to various local characteristics. The decision whether to code a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the leaf CU level. Each leaf CU can be further split into one, two or four PUs according to the PU splitting type. Inside one PU, the prediction process is applied and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU splitting type, a leaf CU can be partitioned into transform units (TUs) according to another quaternary-tree structure similar to the coding tree for the CU. One of key feature of the HEVC structure is that it has the multiple partition conceptions including CU, PU, and TU.

[0009] In VVC, a quadtree (QT) with nested multi-type tree (MTT) using segmentation structure based on binary and ternary splits replaces the concept of multiple partition unit types. In other words, the quadtree with nested MTT removes the separation of the CU, PU and TU concepts except for the CUs that have a size exceeding the maximum transform length and need more flexibility for CU partition shapes. In the coding tree structure, a CU can have either a square or rectangular shape. A coding tree unit (CTU) is first partitioned by a quaternary tree (a.k.a. quadtree) structure. Then the quaternary tree leaf nodes can be further partitioned by a multi-type tree structure. As shown in Fig. 2, there are four splitting types in multi-type tree structure, i.e., vertical binary splitting (SPLIT_BT_VER) 210, horizontal binary splitting (SPLIT_BT_HOR) 220, vertical ternary splitting (SPLIT_TT_VER) 230, and horizontal ternary splitting (SPLIT_TT_HOR) 240. The multi-type tree leaf nodes are called coding units (CUs) .

[0010] Since the CTU is partitioned recursively, larger depth for partitioning results in longer encoding coding time and better compression result. In this invention, methods and apparatus of predicting or constraining block partition using block partition information from previously coded blocks are disclosed. BRIEF SUMMARY OF THE INVENTION

[0011] A method and apparatus for adaptive block partition by using block partition information from previously coded blocks are disclosed. According to the method, input data associated with a current picture area in a current picture is received, wherein the input data comprise pixel data for the current picture area to be encoded at an encoder side or encoded data associated with the current picture area to be decoded at a decoder side. The current picture area is partitioned into one or more target blocks by using block partition information, wherein the block partition information comprises spatial information associated with one or more previously coded spatial-neighbouring blocks. Encoding or decoding process is applied to said one or more target blocks.

[0012] In one embodiment, said one or more previously coded spatial-neighbouring blocks correspond to multiple previously coded spatial-neighbouring blocks, the block partition information associated with the multiple previously coded spatial-neighbouring blocks is blended.

[0013] In one embodiment, a candidate list comprising said one or more previously coded spatial-neighbouring blocks is built. In one embodiment, an index is signalled or parsed to indicate a target previously coded spatial-neighbouring block selected from the candidate list. In one embodiment, the index is omitted when the block partition information associated with all said one or more previously coded spatial-neighbouring blocks is blended.

[0014] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks comprises minimum, maximum, or average of QT (Quadtree) , MTT (Multi-Type Tree) , BT (Binary Tree) or TT (Ternary Tree) depth associated with said one or more previously coded spatial-neighbouring blocks respectively.

[0015] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks is generated from an area in spatial neighbourhood of the current picture area. In one embodiment, the spatial neighbourhood of the current picture area corresponds to adjacent neighbourhood or non-adjacent neighbourhood of the current picture area.

[0016] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks is inherited from one or more referred locations in spatial neighbourhood of the current picture area.

[0017] In one embodiment, the block partition information further comprises temporal information associated with one or more previously coded temporal-neighbouring blocks. In one embodiment, a candidate list comprising said one or more previously coded spatial-neighbouring blocks and said one or more previously coded temporal-neighbouring blocks is built. In one embodiment, an index is signalled or parsed to indicate a target previously coded spatial-neighbouring block selected from the candidate list.

[0018] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks and the temporal information associated with said one or more previously coded temporal-neighbouring blocks comprise minimum, maximum, or average of QT (Quadtree) , MTT (Multi-Type Tree) , BT (Binary Tree) or TT (Ternary Tree) depth associated with said one or more previously coded spatial-neighbouring blocks and said one or more previously coded temporal-neighbouring blocks respectively.

[0019] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks is generated from a first area in spatial neighbourhood of the current picture area and the temporal information associated with said one or more previously coded temporal-neighbouring blocks is generated from a second area in temporal neighbourhood of the current picture area.

[0020] In one embodiment, the spatial information associated with said one or more previously coded spatial-neighbouring blocks is inherited from one or more first referred locations in spatial neighbourhood of the current picture area, and the temporal information associated with said one or more previously coded temporal-neighbouring blocks is inherited from one or more second referred locations in temporal neighbourhood of the current picture area.BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.

[0022] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.

[0023] Fig. 2 illustrates the multi-type tree splitting modes in VVC.

[0024] Fig. 3 illustrates an example of grid point and the neighbourhood used for deriving partition information.

[0025] Fig. 4 illustrates an example of non-merge / merge candidates from adjacent blocks.

[0026] Fig. 5 illustrates an example of non-merge / merge candidates from adjacent blocks corresponding to another neighbourhood type.

[0027] Fig. 6 illustrates an example of non-merge / merge candidates from blocks in a non-adjacent neighbourhood.

[0028] Fig. 7A illustrates an example of positions for one temporal candidates and Fig. 7B illustrates an example of positions for five temporal candidates, where the temporal block partition information is calculated with a certain grid resolution (e.g. N by N) and for each grid point, the information is calculated upon an area of neighbourhood of 2M by 2M.

[0029] Fig. 8 illustrates an example of three types of partition class (QT / xHBT / xVBT) .

[0030] Fig. 9 illustrates a flowchart of an exemplary video coding system that predicts or constrains block partition using block partition information from previously coded blocks according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

[0031] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of 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 the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.

[0032] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.

[0033] In order to improve the coding performance of for signalling block partition, methods of predictive block partition or constrained block partition are disclosed.

[0034] Proposed Methods

[0035] I. Estimating Partition Prediction Information Temporally

[0036] I. 1 Partition prediction information for non-merge and merge coding modes

[0037] Partition prediction information is stored for each picture after encoding or decoding in order to be utilized in non-merge and merge coding modes. This partition prediction information can include: a. minimum temporal QT depth b. maximum temporal QT depth c. average temporal QT depth d. minimum temporal MTT depth e. maximum temporal MTT depth f. average temporal MTT depth g. minimum temporal BT depth h. maximum temporal BT depth i. average temporal BT depth j. minimum temporal TT depth k. maximum temporal TT depth l. average temporal TT depth.

[0038] This information is calculated with a certain grid resolution. Assume the grid resolution is N by N, and for each grid point, the information is calculated upon an area of neighbourhood of 2M by 2M as shown in Fig. 3.

[0039] Minimum temporal QT depth and maximum temporal MTT depth are derived by searching all the CUs in the 2M-by-2M area. Average temporal QT depth and average temporal MTT depth are calculated by accumulating the area-weighted depth information (i.e., CU area *depth and the area covered by one CU only calculated once) for the two partition types (QT and MTT calculated separately) among all the CUs in 2M-by-2M area. Then dividing the area-weighted depth information with the accumulated CU area to obtain the average partition depth. This information is stored after the whole picture is encoded or decoded and can be used in the coding process for the other frame. The information is filled with unit of N-by-N area (same information is filled for every location in the N-by-N area) with the grid point as the upper-left point of the filled area. For processing the other frame, a collocated picture is retrieved from the frame buffer to be referenced by current frame.

[0040] The partition information from the collocated frame is used to predict or constrain the block partition when splitting the current block. For one implementation (time-saving oriented) , maximal QT depth for the current block is constrained to minimum temporal QT depth plus one and maximal MTT depth for the current block is constrained to the average temporal MTT depth plus one. For another implementation (coding gain oriented) , maximal QT depth for the current block is constrained to maximal temporal QT depth plus two and maximal MTT depth for the current block is constrained to maximum temporal MTT depth plus one. These extra constraints are applied with higher precedence compared with the original block partition constraints set by the coding parameters such as MaxMTTHierarchyDepth, MaxBTNonISlice, MaxTTNonISlice and MaxMTTHierarchyDepthByTid. Therefore, maximal MTT depth can be increased adaptively for seeking better coding gain for every CU.

[0041] I. 2 Additional flag for non-merge temporal partition prediction coding

[0042] For the above-mentioned non-merge coding with temporal partition prediction, an extra flag, called NMTPPC (non-merge temporal partition prediction coding) flag, is added to indicate whether the partition prediction information is adopted for coding the block. This extra flag can be a CU-based, CTU-based, or region-based (extra syntaxes are required for signalling the regions) flag. For encoder, RDO process is invoked to determine whether the CU, CTU, or region is coded with the partition prediction information based on the costs. If partition prediction information is adopted, then set the extra flag to true to indicate this situation. For another implementation, NMTPPC flag, is a slice or picture or GOP or sequence-level syntax element.

[0043] I. 3 Temporal statistics as additional partition prediction information

[0044] In addition to the partition prediction information (items a to l) listed in section I.1, other temporal statistics from the collocated picture can be used to predict the partition. The statistics include the amount of horizontal BT, the amount of vertical BT, the amount of horizontal TT, the amount of vertical TT, the change of block motion, the residue of MC with collocated motion information, and the coding mode of the collocated temporal CU. For one embodiment, if the amount of horizontal split (HBT, HTT) partition is much more than the amount of vertically split partition (VBT, VTT) , the increment of MTT depth is only allowable for the more popular direction. This can result in coding time saving and negligible coding gain loss. For another embodiment, if the change of block motion is larger than a threshold, the block prediction information may be unreliable. Therefore, the process of partition prediction is aborted. This situation can be signalled by the extra flag, NMTPPC, described in section I. 2 by setting this flag to false. In order to get a rough motion estimation (before knowing the exact partition of the CTU) of current CU, CTU-level motion estimation can be done for the CTU where the CU located. This CTU-level motion information can be shared by all the CUs inside the CTU.

[0045] Another method to get the rough motion estimation is to pre-partition the CTU with a predefined grid with horizontal stride P and vertical stride Q (for example, P = Q = 8) . Then, apply the motion estimation process with this predefined grid and use this grid-based motion information for each CU by looking up the motion information from the closest grid centre. With the coarse motion estimation of current CU and the motion information from the collocated temporal block, the change of the motion can be calculated. For another implementation, motion change is indirectly estimated by doing motion compensation (MC) for the current CTU or grid divided CTU with the collocated motion information. If the residue after MC is larger than a threshold, the coding with temporal partition prediction information is aborted. For another embodiment, for non-I slice, if the coding mode of the collocated block is intra, the block partition prediction process is aborted.

[0046] II. Estimating Partition Prediction Information Spatially

[0047] II. 1 Partition prediction information for non-merge and merge coding modes

[0048] In addition to predicting block partition temporally, the block partition can also be predicted spatially for both non-merge and merge coding mode. Non-merge coding mode obtains the partition prediction information by traversing CUs in an area while merge coding mode uses the stored partition prediction information directly without re-calculation. Fig. 4 shows one possible embodiment. There are five neighbouring candidates, “A” , “AR” , “AL” , “L” and “BL” . The block partition information around these five candidates can be used to predict the block partition of current CU. For one embodiment, for a certain candidate, a neighbouring M-by-N area are assigned to the candidate. In Fig. 4, neighbouring area is depicted only for “A” , “AL, and “BL” . The candidate is aligned to the bottom-right corner of the neighbouring M-by-N area as shown in Fig. 4. For every position in this M-by-N area, if a valid previously coded CU is found, the CU is used to calculate the partition prediction information which can include: a. minimum spatial (M-by-N area) QT depth b. maximum spatial (M-by-N area) QT depth c. average spatial (M-by-N area) QT depth d. minimum spatial (M-by-N area) MTT depth e. maximum spatial (M-by-N area) MTT depth f. average spatial (M-by-N area) MTT depth g. minimum spatial (M-by-N area) BT depth h. maximum spatial (M-by-N area) BT depth i. average spatial (M-by-N area) BT depth j. minimum spatial (M-by-N area) TT depth k. maximum spatial (M-by-N area) TT depth l. average spatial (M-by-N area) TT depth

[0049] For another embodiment, as shown in Fig. 5, the neighbouring M-by-N area is the area with the candidate CU as the centre. In Fig. 5, there are three candidates depicted and candidates “AL” and “L” have overlapped neighbouring area. For every position in this M-by-N area, if a valid previously coded CU is found, the CU is used to calculate the spatial partition prediction information as list in section II. 1. The calculation procedures for the block prediction information are similar to those described in section I. 1 with information input from spatial CUs within the M-by-N area.

[0050] The candidate for the current CU to inherit the partition prediction information can also be non-adjacent candidate as shown in Fig. 6. There are 10 positions for the non-adjacent candidate denoted by 0 to 9. For each position, there is an associated neighbouring M-by-N area for deriving the spatial partition prediction information. For every position in this M-by-N area, if a valid previously coded CU is found, the CU is used to calculate the spatial partition prediction information as listed in section II. 1. For another embodiment, the partition prediction information is shared by multiple CUs. For example, all the CUs inside one CTU share the same partition prediction information. With this information sharing, complexity of calculating the partition prediction information can be reduced drastically. This is a trade-off between computation complexity and accuracy of the information when coding of each CU.

[0051] For merge coding mode, the spatial partition prediction information is stored for each CUs. A merge candidate list with maximal size K can be built by searching adjacent area and non-adjacent area as shown in Fig. 4 or Fig. 5. and Fig. 6. The adjacent candidates are appended to the candidate list first and then the non-adjacent candidates are appended after the adjacent candidates. For non-merge mode coding, the partition prediction information is calculated based on areas of the spatially adjacent and non-adjacent neighbourhood while for merge mode coding the partition prediction information is inherited from the adjacent and non-adjacent CUs.

[0052] For one embodiment, an extra flag, called MSPPC (merged spatial partition prediction coding) flag, is signalled to indicate merge mode coding is adopted or not. If MSPPC is adopted, an index (0 to K-1) is signalled to indicate which candidate from the candidate list is selected for inheriting its partition prediction information for coding. Smaller indexes are assigned to the adjacent candidates for better coding gain. Furthermore, pruning is applied when adding a candidate to the candidate list. For a possible candidate (before appended to the candidate list) , the partition prediction information is checked against the elements already put into the candidate list.

[0053] For one embodiment, if the information of the possible candidate is identical to any of the existing elements in the list, this possible candidate is discarded. For another embodiment, a similarity measurement is calculated, if the similarity is less than a threshold, the possible candidate is added to the candidate list otherwise it is discarded. Yet in another embodiment, partition prediction information from multiple candidates is first blended together. For example, maximal MTT depth is determined as the minimal value of the maximal MTT depths from the candidates. Information other than the maximal MTT depth is also selected from the candidate whose maximal MTT depth is minimal among the candidates. Besides, because the information is fused (i.e., blended) first, the MSPPC flag can be transferred to a single-bit flag as an on / off switch to turn on or turn off the partition prediction. This single-bit flag can be a slice-level, picture-level, GOP-level, sequence-level, region-level (extra syntaxes are required for signalling the regions) , CTU-level flag, or CU-level flag.

[0054] II. 2 Spatial statistics as additional partition prediction information

[0055] In addition to the spatial partition prediction information (items a to l) listed in section II. 1, other statistics can be used to predict the partition. The statistics include the amount of horizontal BT, the amount of vertical BT, the amount of horizontal TT, the amount of vertical TT, and the coding mode of the neighbouring CU. Some of the embodiments are described as in section I. 3.

[0056] II. 3 History of partition information

[0057] For another implementation, a historic stack of storing partition prediction information is kept for generating the merge candidate list. The depth of the stack is N (N = 2 or 4 or 8 or more) . When generating the merge candidate list, the elements in the stack can be appended to the merge candidate list by an oldest-element-first or latest-element-first fashion. When a CU completes its coding process, the partition prediction information is push (can with or without pruning) to the stack and the oldest information is popped from the stack. In another implementation, when starting a new CTU row, the historic stack of storing partition prediction information is cleared by removing all the elements in the stack. As for the insertion location of the historic candidate to be appended in the candidate list, for one implementation, the historic candidates are appended after adjacent candidates. For another implementation, the historic candidate is appended after the non-adjacent candidates.

[0058] II. 4 Constraints on spatial partition prediction information

[0059] The partition information from the spatial neighbourhood is used to predict or constrain the block partition when splitting the current block. For one implementation (time-saving oriented) , maximal QT depth for the current block is constrained to minimum QT depth from spatially neighbouring CUs plus one, and maximal MTT depth for the current block is constrained to the average MTT depth from spatially neighbouring CUs plus one. For another implementation (coding gain oriented) , maximal QT depth for the current block is constrained to maximal QT depth from spatially neighbouring CUs plus two, and maximal MTT depth for the current block is constrained to maximum MTT depth from spatially neighbouring CUs plus one. These extra constraints are applied with higher precedence compared with the original block partition constraints set by the coding parameters, such as MaxMTTHierarchyDepthI, MaxMTTHierarchyDepthISliceL, MaxMTTHierarchyDepthISliceC, MaxBTLumaISlice, MaxBTChromaISlice, MaxTTLumaISlice, MaxTTChromaISlice and MaxMTTHierarchyDepthByTid. Therefore, maximal MTT depth can be increased adaptively for seeking better coding gain for every CU.

[0060] III. Estimating Partition Prediction Information both Temporally and Spatially

[0061] III. 1 Joint temporal and spatial partition prediction information

[0062] The merge candidate list can be constructed jointly by the collocated temporal partition prediction information and spatial partition prediction information. For one embodiment, one or more positions in the collocated pictures are selected as possible candidates to be considered to put into the merge candidate list as shown in Fig. 7A and Fig. 7B. Then the spatial candidates, as depicted in Fig. 4 or Fig. 5 and Fig. 6, from the current picture with spatial partition prediction information are appended to the candidate list. Pruning process as described in section II. 1 is utilized for discarding redundant candidates. For another embodiment, coarse motion estimation (as described in section I. 3) is invoked to get the motion change comparing to motion information in the collocated picture. If the motion change is larger than a threshold T1, the spatial candidates are considered first when inserting into the merge candidate list and the temporal candidates are appended after the spatial candidates. If the motion change is larger than a threshold T2 (T2 is larger than T1 for indicating even larger change in motion) , temporal candidates are discarded, and no temporal candidate is put into the merge candidate list. In another embodiment, MC residue (with motion from a collocated picture) is used against thresholds to decide the order of putting possible candidate into the candidate list. In another embodiment, additional syntax element for indicating the order of inserting different types of candidates is required for decoder to construct the candidate list. Table 1 is one possible example for this extra syntax element. Table 1. Exemplary syntax meaning of candidate construction order indication

[0063] III. 2 Additional flag for screening possible merge candidates

[0064] With the extra non-merge coding flag, NMTPPC flag, (as described in section I.2) , a pre-screening step can be applied before the construction of the merge candidate list. For one embodiment, the possible merge candidate should be the one coded with non-merge process with NMTPPC flag set true (e.g. CU with NMTPPC flag set true or CU within a CTU or a region with NMTPPC flag set true for that CTU or that region) for adopting partition prediction information from the candidate. In addition, the possible merge candidate can also be the one coded by merge mode with partition prediction information utilized (MSPPC flag set true for indicating this situation) . For historic candidate, only the CU coded by referring to a certain type of merge candidates is push to the stack. The types of the referred merge candidates can be candidates with NMTPPC flag set true and candidates with MSPPC flag set true. Consequently, the historic candidate is adaptively selected by these additional flags from the merge candidate itself.

[0065] III. 3 Constraints on temporal and spatial partition prediction information

[0066] The partition information from the collocated frame is used to predict or constrain the block partition when splitting the current block. For one implementation (time-saving oriented) , maximal QT depth for the current block is constrained to minimum QT depth derived from the candidates plus one and maximal MTT depth for the current block is constrained to the average MTT depth derived from the candidates plus one. For another implementation (coding gain oriented) , maximal QT depth for the current block is constrained to maximal QT depth derived from the candidates plus two, and maximal MTT depth for the current block is constrained to maximum MTT depth derived from the candidates plus one. These extra constraints are applied with higher precedence compared with the original block partition constraints set by the coding parameters, such as MaxMTTHierarchyDepthI, MaxMTTHierarchyDepthISliceL, MaxMTTHierarchyDepthISliceC, MaxBTLumaISlice, MaxBTChromaISlice, MaxTTLumaISlice, MaxTTChromaISlice, MaxMTTHierarchyDepth, MaxBTNonISlice, MaxTTNonISlice and MaxMTTHierarchyDepthByTid. Therefore, maximal MTT depth can be increased adaptively for seeking better coding gain for every CU.

[0067] IV. Estimating Partition Prediction Information Directly from Coarse Motion Estimation

[0068] In section I. 1, partition prediction information is derived in a collocated area from the collocated picture. Minimum temporal QT depth and maximum temporal MTT depth are derived by searching all the CUs in the 2M-by-2M area. Average temporal QT depth and average temporal MTT depth are calculated by accumulating the area-weighted depth information. In this section, we propose an alternative method to derive the partition prediction information spatially directly from motion estimation. In Fig. 8, there are three types of partition classes (QT / xHBT / xVBT) and each class can have multiple levels of partition, where 4 levels (i.e., QT: 810-816, xHBT: 820-826, and xVBT: 830-836) are depicted in Fig. 8. For each partition type, motion estimation is conducted for the sub-blocks for different levels. The coding costs (distortion + lambda *bits) are summed for each level. The average QT depth and average MTT depth can be calculated with weightings inversely proportional to the level costs.

[0069] For the three partition types: WeightLevel = (1 / costLevel) , Average level = (Level *WeightLevel)  /  (∑WeightLevel) .

[0070] For one implementation, the final average MTT depth can be the average levels of xHBT and xVBT. In another implementation, the average MTT depth can be the maximal or minimal value of the average levels of xHBT and xVBT. For determining the minimum QT depth or the maximum MTT depth, for one implementation, the average cost for each partition type can be calculated first. For determining the minimum QT depth, the process starts from the level of minimal QT-type cost, and searches for the smaller level. If the cost of the smaller level is still within a ratio of the average cost (for example: 115%of the average cost) , the level of QT is updated as the minimum QT depth. For determining the maximum MTT depth, the process starts from the level of minimal BT-type (xHBT or xVBT) cost, and searches for the larger level. If the cost of the larger level is still within a ratio of the average cost (for example: 115%of the average cost) , the level of BT-type is updated as the maximum MTT depth. With this cost ratio searching method, the minimum or the maximum partition prediction information can be derived. The derived information is signalled to decoder where the signalled syntax elements can be region-level (extra syntaxes are required to signal for the regions) , or CTU-level syntax elements. Take Fig. 8 as an example, the signalled information for block partition prediction can be CTU-level syntax elements because the partition analysis is done in CTU level. Then the same procedure described in section I. 1 can be applied to increase or decrease the QT or MTT depth for predicting block partition.

[0071] Yet in another embodiment, for every candidate in the built list, the process determines selected cost items (e.g. there are twelve cost items calculated in Fig. 8) based on the parameters of a candidate. For example, QT depth and BT depth of a candidate can be used to selected cost items (e.g. BT depth of a candidate is used to select the xHBT or xVBT cost item from Fig. 8 where xHBT and xVBT are approximate block partition to HBT and VBT) . Then, the selected cost items are summed together as the final cost of a candidate. Select the index of the candidate whose cost is minimal for partition prediction purpose. The index is signalled to decoder side and the information from the selected candidate is used to predict the partition of current block with the methods described in sections I. 1, II. 4, and III. 3.

[0072] Any of the foregoing proposed methods of predicting or constraining block partition by using block partition information of previously coded blocks can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / prediction module of an encoder, and / or an inter / intra / prediction module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / prediction module of the encoder and / or the inter / intra / prediction module of the decoder, so as to provide the information needed by the inter / intra / prediction module. With reference to the exemplary encoder in Fig. 1A and decoder in Fig. 1B, any of the proposed methods can be implemented in an Intra / Inter coding module (e.g. Intra Pred. 150 / MC 152 in Fig. 1B) in a decoder or an Intra / Inter coding module is an encoder (e.g. Intra Pred. 110 / Inter Pred. 112 in Fig. 1A) . Any of the proposed methods can also be implemented as a circuit coupled to the intra / inter coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required cross-component prediction processing. While the Intra / Inter Pred. units (e.g. unit 110 / 112 in Fig. 1A and unit 150 / 152 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .

[0073] Fig. 9 illustrates a flowchart of an exemplary video coding system that predicts or constrains block partition using block partition information from previously coded blocks according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, input data associated with a current picture area in a current picture is received in step 910, wherein the input data comprise pixel data for the current picture area to be encoded at an encoder side or encoded data associated with the current picture area to be decoded at a decoder side. The current picture area is partitioned into one or more target blocks by using block partition information in step 920, wherein the block partition information comprises spatial information associated with one or more previously coded spatial-neighbouring blocks. Encoding or decoding process is applied to said one or more target blocks in step 930.

[0074] The flowcharts shown are intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.

[0075] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.

[0076] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit 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 to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

[0077] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1.A method of video coding, the method comprising:receiving input data associated with a current picture area in a current picture, wherein the input data comprise pixel data for the current picture area to be encoded at an encoder side or encoded data associated with the current picture area to be decoded at a decoder side;partitioning the current picture area into one or more target blocks by using block partition information, wherein the block partition information comprises spatial information associated with one or more previously coded spatial-neighbouring blocks; andapplying encoding or decoding process to said one or more target blocks.2.The method of Claim 1, wherein said one or more previously coded spatial-neighbouring blocks correspond to multiple previously coded spatial-neighbouring blocks, the block partition information associated with the multiple previously coded spatial-neighbouring blocks is blended.3.The method of Claim 1, wherein a candidate list comprising said one or more previously coded spatial-neighbouring blocks is built.4.The method of Claim 3, wherein an index is signalled or parsed to indicate a target previously coded spatial-neighbouring block selected from the candidate list.5.The method of Claim 4, wherein the index is omitted when the block partition information associated with all said one or more previously coded spatial-neighbouring blocks is blended.6.The method of Claim 1, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks comprises minimum, maximum, or average of QT (Quadtree) , MTT (Multi-Type Tree) , BT (Binary Tree) or TT (Ternary Tree) depth associated with said one or more previously coded spatial-neighbouring blocks respectively.7.The method of Claim 1, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks is generated from an area in spatial neighbourhood of the current picture area.8.The method of Claim 7, wherein the spatial neighbourhood of the current picture area corresponds to adjacent neighbourhood or non-adjacent neighbourhood of the current picture area.9.The method of Claim 1, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks is inherited from one or more referred locations in spatial neighbourhood of the current picture area.10.The method of Claim 1, wherein the block partition information further comprises temporal information associated with one or more previously coded temporal-neighbouring blocks.11.The method of Claim 10, wherein a candidate list comprising said one or more previously coded spatial-neighbouring blocks and said one or more previously coded temporal-neighbouring blocks is built.12.The method of Claim 11, wherein an index is signalled or parsed to indicate a target previously coded spatial-neighbouring block selected from the candidate list.13.The method of Claim 10, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks and the temporal information associated with said one or more previously coded temporal-neighbouring blocks comprise minimum, maximum, or average of QT (Quadtree) , MTT (Multi-Type Tree) , BT (Binary Tree) or TT (Ternary Tree) depth associated with said one or more previously coded spatial-neighbouring blocks and said one or more previously coded temporal-neighbouring blocks respectively.14.The method of Claim 10, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks is generated from a first area in spatial neighbourhood of the current picture area and the temporal information associated with said one or more previously coded temporal-neighbouring blocks is generated from a second area in temporal neighbourhood of the current picture area.15.The method of Claim 10, wherein the spatial information associated with said one or more previously coded spatial-neighbouring blocks is inherited from one or more first referred locations in spatial neighbourhood of the current picture area, and the temporal information associated with said one or more previously coded temporal-neighbouring blocks is inherited from one or more second referred locations in temporal neighbourhood of the current picture area.16.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current picture area in a current picture, wherein the input data comprise pixel data for the current picture area to be encoded at an encoder side or encoded data associated with the current picture area to be decoded at a decoder side;partition the current picture area into one or more target blocks by using block partition information, wherein the block partition information comprises spatial information associated with one or more previously coded spatial-neighbouring blocks; andapply encoding or decoding process to said one or more target blocks.

Citation Information

Patent Citations

  • Video decoding method and device and storage medium

    CN112399180A

  • Condition dependent video block partition

    US20210368185A1

  • Entropy coding of coding units in image and video data

    WO2020007353A1

  • Adaptive coding image and video data

    WO2023236775A1