Method and apparatus for adaptive entropy coding of block partitioning information in image or video coding systems

WO2026113550A1PCT designated stage Publication Date: 2026-06-04MEDIATEK INC

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
MEDIATEK INC
Filing Date
2025-08-28
Publication Date
2026-06-04

Smart Images

  • Figure CN2025117425_04062026_PF_FP_ABST
    Figure CN2025117425_04062026_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus of adaptive entropy coding of block partitioning information are disclosed. According to this method, multiple syntax schemes or codeword sets are determined for entropy coding of splitting decisions. A target syntax scheme or codeword set is selected. Context variables are determined for entropy coding the target splitting decision of the current block, wherein context variables are determined depending on the target syntax scheme or codeword set selected for entropy coding the splitting decision. Entropy encoding is applied to the target splitting decision at the encoder side to derive a target entropy-coded splitting decision or entropy decoding is applied to the target entropy-coded splitting decision corresponding to the target splitting decision at the decoder side to derive a target decoded splitting decision corresponding to the target splitting decision, according to the target syntax scheme or the target codeword using said one or more context variables.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND APPARATUS FOR ADAPTIVE ENTROPY CODING OF BLOCK PARTITIONING INFORMATION IN IMAGE OR VIDEO CODING SYSTEMSCROSS 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 / 725,164, filed on November 26, 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 relates to adaptive entropy coding of block partitioning information 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 some of the functional blocks as the encoder. For example, the decoder can reuse Inverse Quantization 124 and Inverse Transform 126; however, Transform 118 and Quantization 120 are not needed at the decoder. 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] In VVC, the Sequence Parameter Set (SPS) and the Picture Parameter Set (PPS) contain high-level syntax elements that apply to entire coded video sequences and pictures, respectively. The Picture Header (PH) and Slice Header (SH) contain high-level syntax elements that apply to a current coded picture and a current coded slice, respectively.

[0008] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.

[0009] In VVC, each CTU can be partitioned into one or multiple non-overlapped coding units (CUs) using a quaternary tree (QT) with nested multi-type-tree (MTT) structure. The partitioning information is signalled by a coding tree syntax structure, where each CTU is treated as the root of a coding tree. The CTUs may be first partitioned by the quaternary tree (a. k. a. quadtree) structure, as shown in Fig. 2. Then the quaternary tree leaf nodes can be further partitioned by a MTT structure, as shown in Fig. 2. There are four split types in multi-type tree structure: vertical binary split (SPLIT_BT_VER) , horizontal binary split (SPLIT_BT_HOR) , vertical ternary split (SPLIT_TT_VER) , and horizontal ternary split (SPLIT_TT_HOR) . Each quadtree child node may be further split into smaller coding tree nodes using any one of five splitting types in Fig. 2. However, each multi-type-tree child node is only allowed to be further split by one of four MTT splitting types. The coding tree leaf nodes correspond to the coding units (CUs) . Fig. 3 provides an example of a CTU recursively partitioned by QT with the nested MTT, where the bold block edges represent QT partitioning and the remaining edges represent multi-type tree partitioning.

[0010] Each CU contains one or more prediction units (PUs) . The prediction unit, together with the associated CU syntax, works as a basic unit for signalling the predictor information. The specified prediction process is employed to predict the values of the associated pixel samples inside the PU. Each CU may contain one or more transform units (TUs) for representing the prediction residual blocks. A transform unit (TU) is comprised of one transform block (TB) of luma samples and two corresponding transform blocks of chroma samples. Each TB corresponds to one residual block of samples from one colour component. An integer transform is applied to a transform block. The level values of quantized coefficients together with other side information are entropy coded in the bitstream. The terms coding tree block (CTB) , coding block (CB) , prediction block (PB) , and transform block (TB) are defined to specify the 2-D sample array of one colour component associated with CTU, CU, PU, and TU, respectively. Thus, a CTU consists of one luma CTB, two chroma CTBs, and associated syntax elements. A similar relationship is valid for CU, PU, and TU.

[0011] In VVC, an intra dual tree mode can be employed for coding intra slices. When the intra dual tree mode is applied, the luma CTB is partitioned into CUs by one coding tree structure, and the two chroma CTBs are partitioned into chroma CUs by another coding tree structure. There are two coding tree syntax structures thus signalled for luma and chroma, respectively, in a CTU. As a result, each CU consists of either one coding block from the luma component or two coding blocks, respectively from the two chroma components, when the intra dual tree mode is applied.

[0012] Fig. 4 illustrates the signalling mechanism of the partition splitting information in quadtree with nested multi-type tree coding tree structure. A coding tree unit (CTU) is treated as the root of a quaternary tree and is first partitioned by a quaternary tree structure. Each quaternary tree leaf node (when sufficiently large to allow it) is then further partitioned by a multi-type tree structure. In quadtree with nested multi-type tree coding tree structure, for each CU node, a first flag (split_cu_flag) is signalled to indicate whether the node is further partitioned. If the current CU node is a quadtree CU node, a second flag (split_qt_flag) whether it's a QT partitioning or MTT partitioning mode. When a node is partitioned with MTT partitioning mode, a third flag (mtt_split_cu_vertical_flag) is signalled to indicate the splitting direction, and then a fourth flag (mtt_split_cu_binary_flag) is signalled to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree slitting mode (MttSplitMode) of a CU is derived as shown in Table 1. Table 1 -MttSplitMode derivation based on multi-type tree syntax elements

[0013] The following partitioning constraint parameters are defined for the quadtree with nested multi-type tree coding tree scheme. These parameters are specified by SPS syntax elements and can be further refined by picture header syntax elements. – CTU size: the root node size of a quaternary tree – MinQTSize: the minimum allowed quaternary tree leaf node size – MaxBtSize: the maximum allowed binary tree root node size – MaxTtSize: the maximum allowed ternary tree root node size – MaxMttDepth: the maximum allowed hierarchy depth of multi-type tree splitting from a  quadtree leaf – MinCbSize: the minimum allowed coding block node size

[0014] For achieving high compression efficiency, the context-based adaptive binary arithmetic coding (CABAC) mode, or known as regular mode, is employed for entropy coding of the values of the syntax elements in VVC. Fig. 5 provides the block diagram of the CABAC process. As the arithmetic coder in the CABAC engine can only encode the binary symbol values, the CABAC operation first needs to convert the value of a syntax element into a binary string using a binarizer (510) , the process commonly referred to as binarization. During the coding process, the accurate probability models are gradually built up from the coded symbols for the different contexts. A set of context variables are allocated to trace the on-going context states, including accumulated probability states, for individual modelling contexts. The context states are initialized using the pre-defined modelling parameters for each context according to the specified slice QP. The selection of a particular modelling context, indicated by a context variable increment (ctxInc) , for coding a binary symbol can be determined by a pre-defined rule or derived from the coded information. Symbols can be coded without the context modelling stage and assume an equal probability distribution, commonly referred to as the bypass mode, for improving bitstream parsing throughput rate. In Fig. 5, the context modeller (520) serves the modelling purpose. During normal context based coding, the regular coding engine (530) is used, which corresponds to a binary arithmetic coder. For the bypassed symbols, a bypass coding engine (540) may be used. As shown in Fig. 5, switches (S1, S2 and S3) are used to direct the data flow between the regular CABAC mode and the bypass mode. When the regular CABAC mode is selected, the switches are flipped to the upper contacts. When the bypass mode is selected, the switches are flipped to the lower contacts as shown in Fig. 5.

[0015] In VVC, context selection for entropy coding of the syntax element split_cu_flag is conditioned on the widths and heights of the current CU and the two neighbouring and the availability information for five CU splitting types, as follows: Asum = 2AQT + ABH + ABV + ATH + ATV –1 ctxInc = ( (widthC > widthA ) ? 1: 0) + ( (heightC > height ) ? 1 : 0 ) + 3 * ( (Asum ==  0) ? 0: (Asum –1) >> 1) , where widthC and widthA represent the widths of the current CU and the above neighbouring  CU, respectively, and heightC and heightL represent the heights of the current CU and the left neighbouring CU, respectively, and AQT, ABH, ABV, ATH and ATV represent availability (or validity) information for the quadtree split and the four multi-type tree splitting types, respectively. In total, 9 context variables are employed for entropy coding of the syntax element split_cu_flag.

[0016] In VVC, context selection for entropy coding of the syntax element split_qt_flag is conditioned on the number of the neighbouring CUs with higher QT depth than that of the current CU and is further conditioned on the QT depth of the current CU, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0) + 3 *  ( (qtDepthC < 2) ? 0: 1) , where qtDepthC, qtDepthA, and qtDepthL are the QT depths of the current CU, above CU,  and left CU, respectively. In total, 6 context variables are employed for entropy coding of the syntax element split_qt_flag.

[0017] Joint Video Expert Team (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11 are currently in the process of exploring the next-generation video coding standard. Some promising new coding tools have been adopted into Enhanced Compression Model (ECM) (M. Coban, R. -L. Liao, K. Naser, J.  L. Zhang “Algorithm description of Enhanced Compression Model 14 (ECM 14) , ” Joint Video Expert Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, Doc. 35th Meeting: Sapporo, JP, 12–19 July 2024) to further improve VVC.

[0018] In the present invention, methods and apparatus of adaptive entropy coding of block partitioning information are disclosed. BRIEF SUMMARY OF THE INVENTION

[0019] A method and apparatus of adaptive entropy coding of block partitioning information are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprises one or more splitting decisions for partitioning the current block at an encoder side, or one or more entropy-coded splitting decisions to be decoded at a decoder side. Two or more syntax schemes or two or more codeword sets are determined for entropy coding of said one or more splitting decisions of the current block. A target syntax scheme or a target codeword set is selected from said two or more syntax schemes or said two or more codeword sets for a target splitting decision of the current block. One or more context variables are determined for entropy coding the target splitting decision of the current block, wherein said one or more context variables are determined depending on the target syntax scheme or the target codeword set selected for said entropy coding the splitting decision of the current block. Entropy encoding is applied to the target splitting decision at the encoder side to derive a target entropy-coded splitting decision or entropy decoding is applied to the target entropy-coded splitting decision corresponding to the target splitting decision at the decoder side to derive a target decoded splitting decision corresponding to the target splitting decision, according to the target syntax scheme or the target codeword using said one or more context variables. The target entropy-coded splitting decision at the encoder side or the target decoded splitting decision at the decoder side is provided.

[0020] In one embodiment, the target syntax scheme is determined depending on QT (quadtree) depth of the current block, block size of the current block, partitioning information on spatial and temporal neighbouring blocks, or a combination thereof. In one embodiment, the target syntax scheme is determined depending on whether the QT depth of the current block is less than an average temporal QT depth in a specified temporal reference area. In one embodiment, a target context variable for said entropy coding the target splitting decision of the current block is dependent on the target syntax scheme for the current block, and wherein the target splitting decision of the current block corresponds to whether to split the current block.

[0021] In one embodiment, a target context variable for said entropy coding the target splitting decision of the current block is dependent on the target syntax scheme for the current block, and wherein the target splitting decision of the current block corresponds to whether to split the current block.

[0022] In one embodiment, the target syntax scheme is determined by comparing the QT depth of the current block with an average temporal QT depth in a specified temporal reference area in a coded previous picture.

[0023] In one embodiment, different codeword sets for entropy coding of said one or more splitting decisions of the current block correspond to different coding statistics under respective coding conditions. In one embodiment, the respective coding conditions comprise whether the current block is less likely to be further split or likely to be further split by a QT split.

[0024] In one embodiment, context selection for entropy coding of said one or more splitting decisions of the current block is dependent on which codeword set is selected for entropy coding of said one or more splitting decisions of the current block.

[0025] In one embodiment, one or more syntax elements in one or more high-level syntax sets are signalled or parsed to indicate whether to enable or disable said selecting the target syntax scheme or the target codeword set from said two or more syntax schemes or said two or more codeword sets, said determining said one or more context variables for entropy coding the target splitting decision of the current block, and said applying the entropy encoding to the target splitting decision at the encoder side or said applying the entropy decoding to the target entropy-coded splitting decision. In one embodiment, said one or more high-level syntax sets comprise SPS (Sequence Parameter Sets) , PPS (Picture Parameter Sets) , PH (Picture Header) , SH (Slice Header) , or a combination thereof.BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0028] Fig. 2 illustrates that a CU can be split into smaller CUs using one of the five splitting types (quad-tree partitioning, vertical binary tree partitioning, horizontal binary tree partitioning, vertical centre-side triple-tree partitioning, and horizontal centre-side triple-tree partitioning) .

[0029] Fig. 3 illustrates an example of a CTU being recursively partitioned by QT with the nested MTT.

[0030] Fig. 4 illustrates an example of the signalling mechanism of the partition splitting information in quadtree with nested multi-type tree coding tree structure.

[0031] Fig. 5 illustrates an exemplary block diagram of the CABAC process.

[0032] Fig. 6 illustrates an example of signalling the selected splitting type according to Scheme A of an embodiment of the present invention.

[0033] Fig. 7 illustrates an example of signalling the selected splitting type according to Scheme D of an embodiment of the present invention.

[0034] Fig. 8 illustrates a flowchart of an exemplary video coding system that uses adaptive entropy coding of block partitioning information according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

[0035] 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.

[0036] 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.

[0037] When a quaternary tree (QT) with nested multi-type-tree (MTT) structure is utilised for partitioning a block region, two syntax schemes can be utilised to signal the selected splitting type for partitioning the block region, wherein the MTT splitting types comprise a plurality of one-dimensional (1-D) splitting types such as binary-tree (BT) splitting types and triple-tree (TT) splitting types, and each 1-D splitting type further partitions a block into multiple smaller blocks with reduced size in one spatial dimension and the same size in the other spatial dimension . In Scheme A as illustrated in Fig. 6, when a current block is allowed to be further split, a first syntax flag is coded to indicate whether to further split the current block. For example, “0” is signalled to indicate that the current block is a coding tree leaf node and is not further partitioned. “1” is signalled to indicate that the current block is further partitioned into smaller blocks. When the first syntax flag indicates the current block is to be further partitioned and a QT split and at least one 1-D splitting type are allowed to be applied to partition the current block, a second syntax flag is further signalled to indicate whether the current block is further partitioned by a QT split or one of the 1-D splitting types. When it is signalled to indicate a 1-D splitting type being employed, the selected 1-D splitting type can be further signalled. In this way, the effective set of codewords, referred to as Codeword Set A, for signalling different splitting decisions is provided in Table 2 for the QT-MTT structure defined in VVC. “b0” indicates whether to further split the current block, and is not signalled when the current block is inferred to be split or non-split. “b1” indicates whether to select a QT split or one of the 1-D splitting types, and is not signalled when a QT split or all 1-D splitting types are not valid for partitioning the current block. “b2” indicates the selected split direction for 1-D partitioning. “b3” indicates the selected 1-D splitting type and is signalled when both BT and TT splitting types are valid for further partitioning the current block in the specified direction. This syntax scheme has been adopted by VVC and the bins b0, b1, b2, and b3 correspond to the syntax flags split_cu_flag, split_qt_flag, mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag, respectively. Table 2: The set of codewords for signalling the selected splitting type according to  Scheme A (Codeword set A)

[0038] In Scheme B, as illustrated in Fig. 7, when QT and at least one 1-D splitting type are allowed to be applied to partitioning a current block, a first syntax flag is coded to indicate whether to further split a current block by a QT split. For example, “1’ is signalled to indicate that a current block is further partitioned by a QT split. “0” is signalled to indicate that a current block is a QT leaf node and is not further partitioned by a QT split. A QT leaf node may be further divided using one of the 1-D splitting types. When at least one 1-D splitting type is allowed for partitioning the current QT leaf node, a syntax flag is further signalled to indicate whether to further partition the current QT leaf node by a 1-D splitting type. For example, “0” may indicate the current coding tree node is a leaf node and is not further split. “1” may indicate the current node is further partitioned and the selected splitting type is further signalled. In this way, the effective set of codewords, referred to as Codeword Set B, for signalling different splitting decisions is provided in Table 3. ‘b0” indicates whether to partition the current CU by a QT split and is not signalled when the current block is inferred to be further partitioned by a QT split or inferred to be a QT leaf node. “b1” indicates whether to further partition the current QT leaf node by a 1-D splitting type and is not signalled when the current block is inferred to be split or non-split. “b2” indicates the selected split direction for 1-D partitioning. “b3” indicates the selected 1-D type and is signalled when both BT and TT splitting types are valid for further partitioning the current block in the specified direction. Table 3: The set of codewords for signalling the selected splitting type according to  Scheme B (Codeword set B)

[0039] As we can see in Table 2, a video coder adopting Codeword Set A only needs to signal one bin ( “0” ) to indicate that a current block is not further split, and the video coder needs to signal two bins ( “11” ) to indicate that a current block is to be further partitioned into four smaller blocks by a QT split. In contrast, as we can see in Table 3, a video coder adopting Codeword Set B needs to signal 2 bins ( “00” ) to indicate that a current block is not further split, and the video coder needs to signal one bin ( “1” ) to indicate that a current block is to be further partitioned into four smaller blocks by a QT split. Therefore, when it is expected that a current block is unlikely to be further split according to contextual information, Codeword Set A may be used to efficiently signal that the current block is not further split. On the other hand, when it is expected a current block is very likely to be further split by a QT split according to contextual information, Codeword Set B may be used to efficiently signal that the current block is further partitioned by a QT split.

[0040] In JVET-AH0135 (G. Laroche and P. Onno, “EE2-1.1: Temporal partitioning prediction” , Joint Video Expert Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29, Doc. 34th Meeting, Rennes, FR, 17–24 April 2024, Document: JVET-AH0135) , it was proposed to exploit temporal information on CU partitions in a specified coded picture to derive the partitioning structure for a current block. When it is determined that the QT depth of a current block is less than the average temporal QT depth in the specified temporal reference area, Scheme B is employed to signal the selected splitting decision for the current block with split_cu_flag coded after split_qt_flag, followed by signalling mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag for each MTT node. Otherwise, Scheme A is employed to signal the selected splitting decision for the current block with split_cu_flag coded before split_qt_flag, the same as the current method in VVC.

[0041] In the present invention, new methods for context modelling are disclosed for entropy coding of information related to splitting decisions for partitioning individual blocks in a picture for image or video coding applications. According to one aspect of the present invention, when different codeword sets are adaptively applied for signalling splitting decisions, different codeword sets may correspond to different coding statistics under respective coding conditions. For example, a video coder may choose to apply Scheme A to signal a splitting decision under the condition that a current block is less likely to be further split. A video coder may choose to apply Scheme B to signal a splitting decision under the condition where a current block is likely to be further split by a QT split. Under different contextual conditions, a video coder may thus utilise different context models for entropy coding of different codeword sets. Context selection for entropy coding of a splitting decision for a current block may be dependent on which codeword set is selected for entropy coding of the splitting decision of the current block.

[0042] In the proposed methods, a video coder may comprise two or more syntax schemes or codeword sets for entropy coding of splitting decisions for individual blocks or coding tree nodes in a picture. The video coder may further determine a selected syntax scheme or codeword set for entropy coding of the splitting decision of a current block. For example, a video coder may determine the selected syntax scheme dependent on the QT depth and / or block size of the current block and partitioning information of spatial and temporal neighbouring blocks. The video coder may further comprise one or more context variables for entropy coding of splitting decisions using context-based adaptive binary arithmetic coding. The video coder may further comprise determining one or more context variables for entropy coding of the splitting decision of the current block, wherein selection of said one or more context variables for entropy coding of the splitting decision of the current block may be dependent on the selected syntax scheme or codeword set for entropy coding of the splitting decision of the current block. The video coder may further comprise some syntax information or pre-defined rule to disable the use of the proposed adaptive syntax scheme and always adopt the same set of codewords for entropy coding of individual blocks or coding tree nodes in a picture. In some specific embodiments, a video coder may determine the selected syntax scheme by comparing the QT of the current block with the minimum, maximum and / or average of QT depth derived from a collocated temporal reference CTU or certain specified temporal reference region.

[0043] In some embodiments, a video coder may comprise Syntax Scheme A and Syntax Scheme B for entropy coding splitting decisions for individual blocks or coding tree nodes. The video coder may further comprise determining a selected syntax scheme between Syntax Schemes A and B for entropy coding the splitting decision of a current block. For example, a video coder may determine whether to select Scheme A or B for entropy coding the splitting decision of a current block by comparing the QT depth of the current block with the average temporal QT depth in the specified temporal reference area in a coded previous picture. In one embodiment, a video coder may derive a selected context variable for entropy coding of split_cu_flag dependent on the selected syntax scheme for a current block, as follows: Asum = 2AQT + ABH + ABV + ATH + ATV –1 ctxInc = ( (widthC > widthA ) ? 1: 0) + ( (heightC > height ) ? 1: 0) + 3 * ( (Asum = = 0) ?  0: (Asum –1) >> 1) + (isSchemeA ? 0: 9) , where the variable isSchemeA is “true” when Scheme A is adopted for entropy coding of the  splitting decision of the current block and is “false” , otherwise.

[0044] In one embodiment, a video coder may derive a selected context variable for entropy coding of split_qt_flag dependent on the selected syntax scheme for a current block, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0) + 3 *  ( (qtDepthC < 2) ? 0: 1) + (isSchemeA ? 0: 6) .

[0045] In some embodiments, a video coder may have one or more context variables shared for entropy coding of splitting decisions adaptively using different syntax schemes or codeword sets. For example, a video coder may derive a selected context variable for entropy coding of split_cu_flag dependent on the selected syntax scheme for a current block with some shared context variables, as follows: ctxInc = ( (widthC > widthA ) ? 1: 0) + ( (heightC > height ) ? 1: 0) + 3 * ( (Asum < 3) ? 0: (Asum < 5) ? 1 : isSchemeA? 2: 3) .

[0046] In this example, when Asum is 5, Syntax Schemes A and B are assigned separate sets of context variables for entropy coding split_cu_flag. Otherwise, Syntax Schemes A and B are assigned shared context variables (ctxInc from 0 to 5 ) for entropy coding of split_cu_flag independent on the selected syntax scheme. In this way, some context variables can be shared by syntax schemes to reduce memory cost.

[0047] For another example, a video coder may derive a selected context variable for entropy coding of split_qt_flag dependent on the selected syntax scheme for a current block with some shared context variables, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0) + 3 *  ( (qtDepthC < 2) ? (isSchemeA? 0: 2) : 1) .

[0048] In this example, when qtDepthC is less than 2, Syntax Schemes A and B are assigned separate sets of context variables for entropy coding of split_qt_flag. Otherwise, shared context variables are assigned for entropy coding of split_qt_flag.

[0049] For another example, a video coder may derive a selected context variable for entropy coding of split_qt_flag dependent on the selected syntax scheme for a current block with some shared context variables, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0) + 3 *  ( (qtDepthC < 2) ? 0: (isSchemeA? 1: 2) ) .

[0050] In this example, when qtDepthC is greater than or equal to 2, Syntax Schemes A and B are assigned separate sets of context variables for entropy coding of split_qt_flag. Otherwise, shared context variables are assigned for entropy coding of split_qt_flag.

[0051] For another example, a video coder may derive a selected context variable for entropy coding of split_qt_flag dependent on the selected syntax scheme for a current block, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0 ) + 3 *  ( (qtDepthC < 2 | | isSchemeA = = false) ? 0: 1 ) .

[0052] For another example, a video coder may derive a selected context variable for entropy coding of split_qt_flag dependent on the selected syntax scheme for a current block, as follows: ctxInc = ( (qtDepthA > qtDepthC) ? 1: 0) + ( (qtDepthL > qtDepthC) ? 1: 0) + 3 *  ( (qtDepthC >= 2 | | (isAdaptiveSplitFlag &&isSchemeA) ) ? 1: 0) , where the variable isAdaptiveSplitFlag is “true” when the proposed adaptive syntax scheme  is enabled for entropy coding of the current block and is “false” , otherwise.

[0053] The proposed method may further comprise signalling one or more syntax elements in one or more high-level syntax sets to indicate whether the proposed methods are enabled or disable in a current video data unit, wherein the high-level syntax sets may comprise SPS, PPS, PH, SH, or a combination thereof.

[0054] Any of the foregoing proposed methods of adaptive entropy coding of block partitioning information can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in a CU partitioning module of an encoder, and / or a CU partitioning module of a decoder. Alternatively, any of the proposed methods can be implemented as electronic circuits integrated to the CU partitioning module of the encoder and / or the CU partitioning module of the decoder. The proposed aspects, methods and related embodiments can be implemented individually or jointly in an image and video coding system.

[0055] With reference to the exemplary encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed methods of adaptive entropy coding of block partitioning information can be implemented in an Intra / Inter / Entropy coding module (e.g. Intra Pred. 150 / MC 150 / Entropy Decoder 140 in Fig. 1B) in a decoder or an Intra / Inter / Entropy coding module (e.g. Intra Pred. 110 / Inter Pred. 112 / Entropy Encoder 122 in Fig. 1A) in an encoder. 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 processing. While the proposed methods can be implanted using various processing modules as shown in Fig. 1A and Fig. 1B, the proposed methods 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) ) .

[0056] Fig. 8 illustrates a flowchart of an exemplary video coding system that uses adaptive entropy coding of block partitioning information 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 this method, input data associated with a current block is received in step 810, wherein the input data comprises one or more splitting decisions for partitioning the current block at an encoder side, or one or more entropy-coded splitting decisions to be decoded at a decoder side. Two or more syntax schemes or two or more codeword sets are determined for entropy coding of said one or more splitting decisions of the current block in step 820. A target syntax scheme or a target codeword set is selected from said two or more syntax schemes or said two or more codeword sets for a target splitting decision of the current block in step 830. One or more context variables are determined for entropy coding the target splitting decision of the current block in step 840, wherein said one or more context variables are determined depending on the target syntax scheme or the target codeword set selected for said entropy coding the splitting decision of the current block. Entropy encoding is applied to the target splitting decision at the encoder side to derive a target entropy-coded splitting decision or entropy decoding is applied to the target entropy-coded splitting decision corresponding to the target splitting decision at the decoder side to derive a target decoded splitting decision corresponding to the target splitting decision, according to the target syntax scheme or the target codeword using said one or more context variables in step 850. The target entropy-coded splitting decision at the encoder side or the target decoded splitting decision at the decoder side is provided in step 860.

[0057] The flowchart shown is 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.

[0058] 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.

[0059] 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.

[0060] 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 block, wherein the input data comprises one or more splitting decisions for partitioning the current block at an encoder side, or one or more entropy-coded splitting decisions to be decoded at a decoder side;determining two or more syntax schemes or two or more codeword sets for entropy coding of said one or more splitting decisions of the current block;selecting a target syntax scheme or a target codeword set from said two or more syntax schemes or said two or more codeword sets for a target splitting decision of the current block;determining one or more context variables for entropy coding the target splitting decision of the current block, wherein said one or more context variables are determined depending on the target syntax scheme or the target codeword set selected for said entropy coding the splitting decision of the current block;applying entropy encoding to the target splitting decision at the encoder side to derive a target entropy-coded splitting decision or applying entropy decoding to the target entropy-coded splitting decision corresponding to the target splitting decision at the decoder side to derive a target decoded splitting decision corresponding to the target splitting decision, according to the target syntax scheme or the target codeword using said one or more context variables; andproviding the target entropy-coded splitting decision at the encoder side or the target decoded splitting decision at the decoder side.2.The method of Claim 1, wherein the target syntax scheme is determined depending on QT (quadtree) depth of the current block, block size of the current block, partitioning information on spatial and temporal neighbouring blocks, or a combination thereof.3.The method of Claim 2, wherein the target syntax scheme is determined depending on whether the QT depth of the current block is less than an average temporal QT depth in a specified temporal reference area.4.The method of Claim 2, wherein a target context variable for said entropy coding the target splitting decision of the current block is dependent on the target syntax scheme for the current block, and wherein the target splitting decision of the current block corresponds to whether to split the current block.5.The method of Claim 2, wherein the target syntax scheme is determined by comparing the QT depth of the current block with a minimum, maximum and / or average of QT depth derived from a collocated temporal reference CTU or a certain specified temporal reference region.6.The method of Claim 2, wherein the target syntax scheme is determined by comparing the QT depth of the current block with an average temporal QT depth in a specified temporal reference area in a coded previous picture.7.The method of Claim 1, wherein different codeword sets for entropy coding of said one or more splitting decisions of the current block correspond to different coding statistics under respective coding conditions.8.The method of Claim 7, wherein the respective coding conditions comprise whether the current block is less likely to be further split or likely to be further split by a QT split.9.The method of Claim 1, wherein context selection for entropy coding of said one or more splitting decisions of the current block is dependent on which codeword set is selected for entropy coding of said one or more splitting decisions of the current block.10.The method of Claim 1, wherein one or more syntax elements in one or more high-level syntax sets are signalled or parsed to indicate whether to enable or disable said selecting the target syntax scheme or the target codeword set from said two or more syntax schemes or said two or more codeword sets, said determining said one or more context variables for entropy coding the target splitting decision of the current block, and said applying the entropy encoding to the target splitting decision at the encoder side or said applying the entropy decoding to the target entropy-coded splitting decision.11.The method of Claim 10, wherein said one or more high-level syntax sets comprise SPS (Sequence Parameter Sets) , PPS (Picture Parameter Sets) , PH (Picture Header) , SH (Slice Header) , or a combination thereof.12.An apparatus for video coding, the apparatus comprising one or more electronics or processors arranged to:receive input data associated with a current block, wherein the input data comprises one or more splitting decisions for partitioning the current block at an encoder side, or one or more entropy-coded splitting decisions to be decoded at a decoder side;determine two or more syntax schemes or two or more codeword sets for entropy coding of said one or more splitting decisions of the current block;select a target syntax scheme or a target codeword set from said two or more syntax schemes or said two or more codeword sets for a target splitting decision of the current block;determine one or more context variables for entropy coding the target splitting decision of the current block, wherein said one or more context variables are determined depending on the target syntax scheme or the target codeword set selected for said entropy coding the splitting decision of the current block;apply entropy encoding to the target splitting decision at the encoder side to derive a target entropy-coded splitting decision or applying entropy decoding to the target entropy-coded splitting decision corresponding to the target splitting decision at the decoder side to derive a target decoded splitting decision corresponding to the target splitting decision, according to the target syntax scheme or the target codeword using said one or more context variables; andprovide the target entropy-coded splitting decision at the encoder side or the target decoded splitting decision at the decoder side.