WO2020056760A1 - Transform selection for small size block - Google Patents

Transform selection for small size block Download PDF

Info

Publication number
WO2020056760A1
WO2020056760A1 PCT/CN2018/107089 CN2018107089W WO2020056760A1 WO 2020056760 A1 WO2020056760 A1 WO 2020056760A1 CN 2018107089 W CN2018107089 W CN 2018107089W WO 2020056760 A1 WO2020056760 A1 WO 2020056760A1
Authority
WO
WIPO (PCT)
Prior art keywords
preset value
equal
determining
message
luma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2018/107089
Other languages
French (fr)
Inventor
Jicheng An
Yuchen SUN
Jian Lou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to PCT/CN2018/107089 priority Critical patent/WO2020056760A1/en
Priority to CN201910900765.3A priority patent/CN110944174B/en
Publication of WO2020056760A1 publication Critical patent/WO2020056760A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • Block-based video coding divides the video data into video blocks and then encode the video blocks using block-based compression techniques.
  • the video blocks are encoded using one or more encoding techniques as well as data compression techniques.
  • Video encoding usually involves intra-prediction, inter-prediction, motion information (including inter prediction direction, reference index, and motion vectors, etc. ) , transform, quantization, coefficient coding, etc.
  • the minimum allowed luminance (luma) Coding Block (CB) size is 4 ⁇ 4 (in unit of samples) . That is, the minimum allowed width and height of the luma CB are 4 luma samples. However, in some video content full of detailed texture such as the screen content video, a smaller block partitioning size may be required. In such a scenario, the current minimum allowed luma CB size, i.e., 4 ⁇ 4, is not efficient enough. Moreover, the minimum chroma CB size is 2 ⁇ 2 chroma samples for the 4: 2: 0 sample format. However, the 2 ⁇ 2 chroma CB is difficult for hardware implementation. In addition, the minimum chroma CB size may not be adjusted independently in P and B slices.
  • the intra or inter prediction mode, intra prediction direction, motion information (including inter prediction direction, reference index, and motion vectors, etc. ) , and CU level information may be all signaled for each luma CB and each chroma CB respectively.
  • coding the motion information of the luma CB and the chroma CB that share the same region independently may be inefficient.
  • FIG. 1 illustrates an example diagram showing a picture divided into multiple coding tree units (CTUs) .
  • CTUs coding tree units
  • FIG. 2 illustrates example diagrams of four splitting types in a multitype tree structure.
  • FIG. 3 illustrates an example diagram of a coding unit (CU) .
  • FIG. 4 illustrates an example diagram of signaling mechanism of partition information of a quaternary tree (quadtree) with nested multitype tree coding tree structure.
  • FIG. 5 illustrates an example diagram showing a CTU divided into multiple CUs by the quadtree with nested multitype tree coding tree structure.
  • FIG. 6 illustrates an example block diagram showing how a luma block is partitioned into several luma CBs.
  • FIGs. 7A and 7B illustrate an example flowchart of a process for partitioning a luma block into several luma CBs using a quaternary/binary/ternary tree.
  • FIG. 8 illustrates an example diagram of a process of multiple transform selection (MTS) .
  • FIG. 9 illustrates an example diagram where Position Dependent intra Prediction Combination (PDPC) is applied.
  • PDPC Position Dependent intra Prediction Combination
  • FIG 10A illustrates an example diagram of a four-sample long vertical block boundary formed by two adjacent CBs.
  • FIG. 10B illustrates an example diagram of a two-sample long vertical block boundary formed by two adjacent CBs.
  • FIGs. 11A, 11B, 11C, and 11D illustrate an example flowchart of a deblocking filtering process.
  • FIG. 12A illustrates an example diagram showing the dependence between the threshold ⁇ (beta) and the quantuzation parameter (QP) .
  • FIG. 12B illustrates an example diagram showing the dependence between the threshold parameter tc and QP.
  • FIG. 13 illustrates an example flowchart of a process for applying separate block partitioning trees to the luma CB and the chroma CB.
  • FIG. 14 illustrates an example diagram showing how to apply separate block partitioning trees to the luma CB and the chroma CB under the separation node.
  • FIG. 15 illustrates an example diagram of how to conduct the motion information prediction of the chroma CB by copying the motion information of the collocated luma CB.
  • FIG. 16 illustrates an example flowchart of a process for conducting the motion information prediction of the chroma CB by copying the motion information of the collocated luma block.
  • FIG. 17. illustrates an example diagram of how to conduct the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
  • FIG. 18 illustrates an example flowchart of a process for conducting the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
  • FIG. 19 illustrates an example diagram of an intra luma CB.
  • FIG. 20 illustrates an example flowchart of the signaling/parsing mechanism of the transform of the intra luma CB in FIG. 19.
  • FIG. 21 illustrates an example diagram of an intra luma CB.
  • FIG. 22 illustrates an example flowchart of the signaling/parsing mechanism of the transform of the intra luma CB in FIG. 21.
  • FIG. 23A illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 1-12.
  • FIG. 23B illustrates an example diagram of the deblocking filtering decision making module in FIG. 23A.
  • FIG. 23C illustrates an example diagram of the deblocking filtering performing module in FIG. 23A.
  • FIG. 23D illustrates an example diagram of the normal filtering module in FIG. 23C.
  • FIG. 24 illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 13-18.
  • FIG. 25 illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 19-22.
  • Apparatuses and methods discussed herein are directed to image processing, and more specifically to small size block coding, block partitioning tree separation under a node, and transform selection for the small size block.
  • a luma block has width equal to 8 may be determined. If the luma block has the width equal to 8, a first syntax element may be provided to indicate that the luma block is vertically split. Whether the luma block has height equal to 8 may be determined. If the luma block has the height equal to 8, a second syntax element may be provided to indicate that the luma block is horizontally split. Whether the luma block has the width equal to 4 may be determined. If the luma block has the width equal to 4, a third syntax element may be provided to indicate that the luma block is vertically split. Whether the luma block has the height equal to 4 may be determined. If the luma block has the height equal to 4, a fourth syntax element may be provided to indicate that the luma block is horizontally split.
  • the apparatuses and methods discussed herein may also be usable for block partitioning tree separation under a node. Whether the following conditions are met for a node may be checked, i.e., (a) both width and height of a luma CB of the node is not smaller than a separation size; and (b) width or height of the luma CB of at least one child node of the node is smaller than the separation size. If the conditions (a) and (b) are both met for the node, the node may be determined as a separation node. If the node is determined as the separation node, a first block partitioning tree may be applied to the luma CB of the node while a second block partitioning tree may be applied to a chroma CB of the node.
  • the apparatuses and methods discussed herein may additionally be usable for transform selection for the small size block. Whether predetermined conditions are met for a coding block may be checked. Upon determining that the predetermined conditions are met for the CB, a first message may be parsed from bitstream. Whether the first message meet a first preset condition may be determined. If the first message meets the first preset condition, the width and the height of the CB may be checked. If the width of the CB is equal to a first value, DST-VII may be used for the transform of the CB in a horizontal direction. If the height of the CB is equal to the first value, DST-VII is used for the transform of the CB in a vertical direction.
  • FIG. 1 illustrates an example diagram showing a picture 100 divided into multiple CTUs.
  • the picture 100 may be divided into a sequence of CTUs, for example, CTUs 102 and 104.
  • FIG. 1 denotes two CTUs 102 and 104, there may be other numbers of CTUs.
  • each CTU may consist of an N ⁇ N block of luma samples together with two corresponding blocks of chroma samples.
  • the maximum allowed size of the luma block in CTU may be specified to be 128 ⁇ 128 in the developing H. 266/VVC standard.
  • the sizes such as length, width, and height discussed herein may be in unit of the number of samples.
  • a CTU may be split into CUs by using a quadtree as the 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 may be made at the CU level.
  • Each CU can be further split into one, two, or four prediction units (PUs) according to the PU splitting type. Inside one PU, the same prediction process may be applied and the relevant information may be transmitted to the decoder on a PU basis.
  • a leaf node CU may be partitioned into transform units (TUs) according to another quadtree similar to the coding tree for the CU.
  • One feature of the HEVC structure may be the multiple partition conceptions including CU, PU, and TU.
  • VVC/H. 266 development a quadtree with nested multitype tree structure using binary and ternary splitting segmentation structure replaces the concepts of multiple partition unit types. That is, the separation of the CU, PU and TU concepts are removed except as needed for CUs that have a size too large for the maximum transform length. Also, VVC/H. 266 development supports more flexibility for CU partition shapes. In the coding tree, the CU may have either a square or rectangular shape. The CTU may be first partitioned by the quadtree. Then, the quadtree leaf nodes may be further partitioned by a multitype tree.
  • FIG. 2 illustrates example diagrams of four splitting types in a multitype tree, i.e., vertical binary splitting (SPLIT_BT_Ver 202) , horizontal binary splitting (SPLIT_BT_Hor 204) , vertical ternary splitting (SPLIT_TT_Ver 206) , and horizontal ternary splitting (SPLIT_TT_Hor 208) .
  • the multitype tree leaf node may be referred as CU.
  • the segmentation may be used for prediction and transform process without any further partition.
  • the CU, PU, and TU have the same block size in the quadtree with nested multitype tree coding tree. The exception may occur when maximum supported transform length is smaller than the width or height of the color component of the CU.
  • FIG. 3 illustrates an example diagram of a CU 300.
  • the CU 300 may include one luma coding block (CB) 302 and two chroma CBs, i.e., Cb CB 304 and Cr CB 306.
  • the CU 300 may include different color components (unless the video is monochrome –i.e., having only one color component) .
  • the parameters of the quadtree with nested multitype tree coding tree structure may be defined and specified by Sequence Parameter Set (SPS) syntax elements.
  • SPS Sequence Parameter Set
  • the root node size of the quaternary tree (CTU size) may be set as 128 ⁇ 128 luma samples with two corresponding 64 ⁇ 64 blocks of 4: 2: 0 chroma samples.
  • the minimum allowed quaternary tree leaf node size (MinQTSize) may be set as 16 ⁇ 16.
  • the maximum allowed binary tree root node size (MaxBtSize) may be set as 128 ⁇ 128.
  • the maximum allowed ternary tree root node size (MaxTtSize) may be set as 64 ⁇ 64.
  • the minimum allowed binary tree leaf node size (MinBtSize) and the minimum allowed ternary tree leaf node size (MinTtSize) , for both width and height, may be set as 4 ⁇ 4.
  • the maximum allowed hierarchy depth of multitype tree splitting from a quadtree leaf (MaxMttDepth) may be set as 4.
  • the quadtree partitioning may be applied to the CTU first to generate quadtree leaf nodes.
  • the quadtree leaf nodes may have a size from 16 ⁇ 16 (i.e., the MinQTSize) to 128 ⁇ 128 (i.e., the CTU size) .
  • the leaf QT node may not be further split by the ternary tree because the size exceeds the MaxTtSize (i.e., 64 ⁇ 64) . Otherwise, the leaf quadtree node may be further partitioned by the multitype tree. Therefore, the leaf node of the quadtree may also be the root node of the multitype tree and may have multitype tree depth (MTTDepth) as 0. When the multitype tree depth reaches MaxMttDepth (i.e., 4) , no further splitting may be considered. When the multitype tree node has width equal to MinBtSize and smaller or equal to 2 *MinTtSize, no further horizontal splitting may be considered. Similarly, when the multitype tree node has height equal to MinBtSize and smaller or equal to 2 *MinTtSize, no further vertical splitting may be considered.
  • MTTDepth multitype tree depth
  • FIG. 4 illustrates an example diagram of signaling mechanism 400 of partition information in a quadtree with nested multitype tree coding tree structure.
  • a CTU or a quadtree (QT) node may be treated as a root node, i.e., CTU/QT_node 402.
  • the CTU/QT_node 402 may be partitioned by the quadtree.
  • a QT_split_flag 404 may be signaled to indicate whether the CTU/QT_node 402 needs to be split by the quadtree. If the QT_split_flag 404 is 1, the CTU/QT_node 402 may be treated as a QT_node 406.
  • the CTU/QT_node 402 may be treated as a QT_leaf_node/multitype tree (MTT) _node 408 to be split by the multitype tree.
  • MTT multitype tree
  • the process may go back to the root node 402 in a recursive manner.
  • an MTT_split_flag 410 may be signaled to indicate whether the QT_leaf_node/MTT_node 408 needs to be further partitioned by multitype tree. If the MTT_split_flag 410 is 1, the QT_leaf_node/MTT_node 408 may be treated as an MTT_node 412 to be further partitioned. If the MTT_split_flag 410 is 0, the QT_leaf_node/MTT_node 408 may be treated as an MTT_leaf_node 414, which may not be further partitioned.
  • an MTT_split_Vertical_flag 416 may be signaled to indicate the splitting direction. If the MTT_split_Vertical_flag 416 is 1, the MTT_node 412 may be treated as an MTT_node 418 for vertical splitting. If the MTT_split_Vertical_flag 416 is 0, the MTT_node 412 may be treated as an MTT_node 420 for horizontal splitting.
  • an MTT_split_binary_flag 422 may be signaled to indicate whether the split is a binary split or a ternary split. If the MTT_split_binary_flag 422 is 1, the MTT_node 418 may be treated as an MTT_node with BT_Ver split 426 for binary tree vertical splitting. If the MTT_split_binary_flag 422 is 0, the MTT_node 418 may be treated as an MTT_node with TT_Ver split 428 for ternary tree vertical splitting.
  • an MTT_split_binary_flag 424 may be signaled to indicate whether the split may be a binary split or a ternary split. If the MTT_split_binary_flag 424 is 1, the MTT_leaf_node 420 may be treated as an MTT_node with BT_Hor split 430 for binary tree horizontal splitting. If the MTT_split_binary_flag 424 is 0, the MTT_leaf_node 420 may be treated as an MTT_node with TT_Hor split 432 for ternary tree horizontal splitting.
  • the MTT slitting mode of a CU may be derived as shown in Table 1.
  • FIG. 5 illustrates an example diagram showing a CTU 500 divided into multiple CUs by the quadtree with nested multitype tree coding tree structure.
  • bold block edges may represent quadtree partitioning, while other light edges may represent multitype tree partitioning.
  • the quadtree with nested multitype tree coding tree structure provides a content-adaptive coding tree structure comprised of CUs.
  • the size of the CU may be as large as the CTU or as small as 4 ⁇ 4 in unit of luma samples.
  • the maximum chroma CB size may be 64 ⁇ 64 and the minimum chroma CB size may be 2 ⁇ 2.
  • the minimum allowed luma coding block size may be 4 ⁇ 4.
  • no vertical splitting may be implicit. That is, the vertical (including quaternary/binary/ternary tree) split flag may not be signaled.
  • no vertical ternary splitting may be implicit.
  • no horizontal splitting may be implicit.
  • no horizontal ternary splitting may be implicit.
  • the minimum allowed luma CB width and height may be 2. That is, the 2 ⁇ N and N ⁇ 2 luma CB size may be supported, where N may be power of 2, for example, 2, 4, 8, 16, 32, 64, 128, . . . Small size block may be defined as necessary, for example, 2 ⁇ N or N ⁇ 2 block.
  • FIG. 6 illustrates an example block diagram 600 showing how a luma block 602 is partitioned into several luma CBs.
  • the 8 ⁇ 4 luma block 602 may be split by the vertical ternary tree (Ver. TT split) into 3 luma blocks, i.e., two 2 ⁇ 4 luma blocks 604 and 606, and one 4 ⁇ 4 luma block 608.
  • the first 2 ⁇ 4 luma block 604 may not be further split and may be a 2 ⁇ 4 CB.
  • the 4 ⁇ 4 luma block 608 may be further split by the horizontal binary tree (Hor. BT split) into two 2 ⁇ 4 CBs 610 and 612.
  • the second 2 ⁇ 4 luma block 606 may be further split by the horizontal binary tree (Hor. BT split) into two 2 ⁇ 2 CBs 614 and 616.
  • FIGs. 7A and 7B illustrate an example flowchart of a process 700 for partitioning a luma block into several luma CBs using a quaternary/binary/ternary tree.
  • whether the luma block has width equal to 8 may be determined, and if the luma block has the width equal to 8, a first syntax element may be provided to indicate whether the luma block needs to be vertically split at block 704.
  • a second syntax element may be provided to indicate whether the luma block needs to be horizontally split, for example, by the ternary tree at block 708.
  • a third syntax element may be provided to indicate whether the luma block needs to be vertically split at block 712.
  • a fourth syntax element may be provided at block 716 to indicate whether the luma block needs to be horizontally split, for example, by the binary tree.
  • the luma block may be split based on the first, second, third, and fourth syntax element to obtain 2 ⁇ N or N ⁇ 2 luma CBs.
  • the 2 ⁇ N or N ⁇ 2 luma CBs may be formed by the quaternary/binary/ternary tree partitioning structure.
  • the small luma CBs (for example, 2 ⁇ N or N ⁇ 2 luma CB) may be supported.
  • the coding efficiency of the video full of detailed content such as the screen content video may be significantly improved.
  • the coding performance may also be improved.
  • the prediction, transform, coefficients coding, and deblocking filter may be modified accordingly.
  • the difference between the original block and the prediction thereof may be transformed by a linear spatial transform.
  • MTS may be used.
  • the transform type may be explicitly selected among Discrete Cosine Transform of Type II (DCT-II) , Discrete Sine Transform of type VII (DST-VII) , and Discrete Cosine Transform of type VIII (DCT-VIII) .
  • Table 2 shows the basis functions of DCT-II, DCT-VIII and DST-VII for N-point Input.
  • the transform matrices may be quantized more accurately than the transform matrices in the HEVC.
  • all the coefficients may be 10-bit.
  • FIG. 8 illustrates an example diagram of a process 800 of MTS.
  • whether the CB has a non-zero coefficient may be determined. If the CB has the non-zero coefficient, whether a first flag is 1 or 0 may be determined at block 804. If the CB does not have non-zero coefficient, the process 800 may proceed to an end at block 806
  • DCT-II may be used for both vertical and horizontal directions at block 808.
  • the first flag is 1, whether the CB is an intra CB or an inter CB may be determined at block 810. If the CB is the intra CB, whether the number of non-zero coefficients of the CB is greater than two may be determined at block 812.
  • the process 800 may proceed to block 816.
  • DST-VII may be used horizontally and vertically.
  • a second flag and a third flag may be provided.
  • the second flag may indicate that any of DST-VII or DCT-VIII may be used for the horizontal direction.
  • the third flag may indicate that any of DST-VII or DCT-VIII may be used for the vertical direction.
  • the number of luma transform candidates for 4, 8, 16, and 32-point transforms may be three (i.e., DCT-II, DST-VII, and DST-VIII) .
  • DCT-II DCT-II
  • DST-VII DST-VIII
  • 2 ⁇ N or N ⁇ 2 CB it may not be necessary to have many transform candidates.
  • the number of transform candidates for 2 ⁇ N or N ⁇ 2 CB may be reduced to only one or two transform candidates; only one transform candidate DCT-II may be used for 2 ⁇ N or N ⁇ 2 CB; only DCT-II may be used for the 2-point transform of the 2 ⁇ N or N ⁇ 2 CB in both horizontal and vertical directions; and only DST-VII may be used for the 2-point transform of the 2 ⁇ N or N ⁇ 2 CB. There is no flag to indicate whether the DCT-II, DST-VII, or DCT-VII is used. Also, a transform skip mode may be supported by the 2-point side of 2 ⁇ N or N ⁇ 2 CB.
  • the transform coefficients may be scaled, quantized, and entropy coded.
  • the position of the last non-zero transform coefficient, a significance map, sign bits and levels for the transform coefficients may be transmitted.
  • the significance map may be derived for significance groups relating to the fixed size 4 ⁇ 4 sub-blocks. For all groups having at least one coefficient preceding the last coefficient position, a significant group flag specifying a non-zero coefficient group may be transmitted, followed by coefficient significance flags for each coefficient prior to the indicated position of the last significant coefficient.
  • the context models for the significant coefficient flags are dependent on the coefficient position as well as the values of the right and the bottom significant group flags.
  • the significance group size in residual coding of the 2 ⁇ N or N ⁇ 2 CB is smaller than that of other CBs. The other CBs may have the same significance group size.
  • the significant group may relate to the fixed size of 4 ⁇ 4 sub-block, the significant group may work only for the CB size larger than 4 ⁇ 4, but not for 2 ⁇ N or N ⁇ 2 CB.
  • the sub-block size 2 ⁇ 2 may be used as the significance group. That is, for all groups having at least one coefficient preceding the last coefficient position, a significant group flag specifying a non-zero coefficient group may be transmitted.
  • the tool sign hiding may be disabled.
  • the number of intra prediction angles may be 85 for the luma CB.
  • the number of prediction angles in the 2-point side may be less, for example, 40-70.
  • FIG. 9 illustrates an example diagram 900 where a Position Dependent intra Prediction Combination (PDPC) is applied.
  • the PDPC is a tool used in the H. 266/VVC.
  • the decoder may perform intra-prediction and then use neighboring pixels to refine the predictor pixels.
  • pred (x, y) 902 may be the original pixel generated by intra-prediction.
  • the decoder may derive a new prediction value, pred’ (x, y) , by the weighted average of pred (x, y) 902 and the neighboring pixels, R -1, -1 904, R x, -1 906, and R -1, y 908.
  • the PDPC may be disabled or simplified.
  • An example of a PDPC simplification may be that, if the horizontal side of the block is equal to 2, the decoder may derive a new prediction value, pred” (x, y) , by the weighted average of pred (x, y) 902 and the two neighboring pixels only, for example, (R x, -1 906 and R -1, y 908) or (R -1, -1 904 and R -1, y 908) .
  • FIG 10A illustrates an example diagram of a four-sample long vertical block boundary formed by two adjacent coding blocks P 1002 and Q 1004.
  • the coding block P 1002 may include lines 0, 1, 2, and 3.
  • Line 0 of the coding block P 1002 may include samples p3 0 , p2 0 , p1 0 , and p0 0 .
  • Line 1 of the coding block P 1002 may include samples p3 1 , p2 1 , p1 1 , and p0 1 .
  • Line 2 of the coding block P 1002 may include samples p3 2 , p2 2 , p1 2 , and p0 2 .
  • Line 3 of the coding block P 1002 may include samples p3 3 , p2 3 , p1 3 , and p0 3 .
  • the coding block Q 1004 may include lines 0, 1, 2, and 3.
  • Line 0 of the coding block Q 1004 may include samples q0 0 , q1 0 , q2 0 , and q3 0 .
  • Line 1 of the coding block Q 1004 may include samples q0 1 , q1 1 , q2 1 , and q3 1 .
  • Line 2 of the coding block Q 1004 may include samples q0 2 , q1 2 , q2 2 , and q3 2 .
  • Line 3 of the coding block Q 1004 may include samples q0 3 , q1 3 , q2 3 , and q3 3 .
  • FIG. 10B illustrates an example diagram of a two-sample long vertical block boundary formed by two adjacent coding block P 1006 and Q 1008.
  • the coding block P 1006 may include line 0 and line 1.
  • Line 0 of the coding block P 1006 may include p3 0 , p2 0 , p1 0 , and p0 0 .
  • Line 1 of the coding block P 1006 may include p3 1 , p2 1 , p1 1 , and p0 1 .
  • the coding block Q 1008 may include line 0 and line 1.
  • Line 0 of the coding block Q 1008 may include samples q0 0 , q1 0 , q2 0 , and q3 0 .
  • Line 1 of the coding block Q 1008 may include samples q0 1 , q1 1 , q2 1 , and q3 1 .
  • FIGs. 11A-11D illustrate an example flowchart 1100 of a deblocking filtering (DBF) process.
  • the DBF may be used to reduce the blocking artifacts due to block-based coding.
  • the DBF may be applied to all samples adjacent to a boundary except for the case where the boundary is the picture boundary.
  • the DBF in the developing H. 266/VVC may be similar to that of the H. 265/HEVC. For example, edges of the 4 ⁇ 4, 2 ⁇ N, or N ⁇ 2 luma CB may be filtered by the deblocking process.
  • the deblocking filtering process may include the following.
  • a deblocking filtering on/off decision for each boundary may be made, and the deblocking filtering operation may be performed at block 1104.
  • the block 1102 may further include the following.
  • the boundary strength (BS) of the boundary may be derived as 0, 1, or 2, and whether the BS is greater than 0 may be determined at block 1108. If the BS is greater than 0, conditions defined by the expression may be checked at block 1110 so as to decide whether the deblocking filtering need to be applied or not.
  • the conditions may be defined by expression (1) below.
  • the first and fourth lines in a block boundary of length 4 may be evaluated.
  • line 0 and line 3 of the coding block P 1002 and the coding block Q 1004 marked by dashed lines in FIG. 10A may be used to define the conditions:
  • may be a threshold and may depend on the QP which is used to adjust the quantization step for quantizing the prediction error coefficients.
  • the dependence between the threshold ⁇ and the QP may be shown in FIG. 12A as described later.
  • the conditions may be defined by expression (2) below.
  • line 0 of the coding block P 1006 and line 0 of the coding block Q 1008 marked by dashed lines in FIG. 10B may be evaluated and used to define the conditions:
  • may be a threshold, whose value may be the same as that in expression (1) .
  • the deblocking filtering decision may be made.
  • the block 1104 may further include the following.
  • conditions may be checked so as to make a normal or strong filtering decision.
  • the normal filtering mode there may be two deblocking filtering modes, namely, the normal filtering mode and the strong filtering mode.
  • the DBF may switch between the normal and the strong filtering modes based on the local signal characteristics. Whether to apply strong or normal filtering mode may be determined based on the lines across the block boundary of four samples.
  • the expressions (3) , (4) , and (5) below using information from line i may be used to define the conditions:
  • i may be the line number
  • tc may be the threshold parameter.
  • the threshold parameter tc depends on a QP. The dependence between the tc and the QP may be shown in FIG. 12B as described later.
  • the strong filtering may be applied to the block boundary if the conditions defined by the above expressions (3) , (4) and (5) are met.
  • the strong filtering may be applied to the block boundary.
  • the block 1118 may further include the following to make the normal filtering mode decision.
  • the normal filtering has two modes differing in the number of pixels being modified on each side of the block boundary. One of the two modes may be selected for each boundary.
  • conditions may be checked so as to make a normal filtering mode decision regarding coding block P.
  • the conditions may be defined by the expression (6) below:
  • the conditions may be defined by the expression (7) below:
  • may be a threshold, whose value may be the same as that in expression (1) .
  • the two nearest rows of pixels to the block boundary may be modified in the coding block P.
  • the two nearest rows of pixels to the block boundary may be modified in the coding block P 1002 if the expression (6) is true, for example, rows p0i and p1i, where i is the line number.
  • the two nearest rows of pixels to the block boundary may be modified in coding block P 1006 if the expression (7) is true, for example, rows p0i and p1i, where i is the line number.
  • only the nearest row of pixels in coding block P may be modified.
  • the expression (6) for example, rows p0i, where i is the line number.
  • the boundary formed by coding blocks P 1006 and Q 1008 as shown in FIG. 10B only the nearest pixel in coding block P 1006 may be modified if the expression (7) is not true, for example, rows p0i, where i is the line number.
  • conditions may be checked so as to make a normal filtering mode decision regarding coding block Q.
  • the conditions may be defined by the expression (8) below:
  • the conditions may be defined by the expression (9) below:
  • the two nearest rows of pixels to the block boundary may be modified in the coding block Q.
  • the expression (8) holds, for example, q0i and q1i, where i is the line number.
  • the two nearest rows of pixels to the block boundary may be modified in coding block Q 1008 if expression (9) holds, for example, q0i and q1i, where i is the line number.
  • only the nearest row of pixels may be modified in coding block Q.
  • the nearest row of pixels may be modified in the coding block Q 1004 if expression (8) is not true, for example, q0i, where i is the line number.
  • expression (9) is not true, for example, q0i, where i is the line number.
  • deblocking filtering process 1100 is not limited thereto.
  • the deblocking filtering process 1100 may be extended to handle horizontal block boundaries by rotating coding blocks P and Q by 90° in the clockwise/anti-clockwise direction and transposing row and column subscript indices of the samples in blocks P and Q.
  • FIG. 12A illustrates an example diagram 1200 showing the dependence between the threshold ⁇ and QP.
  • may depend on QP which is used to adjust the quantization step for quantizing the prediction error coefficients.
  • FIG. 12B illustrates an example diagram 1202 showing the dependence between the threshold parameter tc and QP. Referring to FIG. 12B, tc may depend on QP.
  • the deblocking filtering of small luma CBs may be supported, and the coding performance may be improved.
  • the coding tree supports the ability for the luma block and the chroma block to have separate coding trees.
  • the luma CTB and the chroma CTB in the same CTU may share the same coding tree.
  • the luma CTB and the chroma CTB in the same CTU may have separate coding trees. If a separate coding tree mode is applied, the luma CTB may be partitioned into luma CBs by one coding tree, while the chroma CTB may be partitioned into chroma CBs by another coding tree.
  • a CU in the I slice may consist of a luma CB or two chroma CBs
  • the CU in the P or B slice may always consist of CBs of all three color components unless the video is monochrome.
  • the block partitioning tree which is used to partition the CTU into CUs or CBs, goes deeper to reach a separation node, the block partitioning tree may be separated into two block partitioning trees for the luma CB and the chroma CB respectively. Otherwise, if the separation node is not reached, the block partitioning tree may be shared for both the luma CB and the chroma CB.
  • FIG. 13 illustrates an example flowchart of a process 1300 for applying separate block partitioning trees to the luma CB and the chroma CB.
  • the following two conditions may be checked for a node, i.e., (1) both width and height of the luma CB of the node is not smaller than a separation size (SepSize) ; and (2) width or height of the luma CB of at least one child node of the node is smaller than the SepSize. If both conditions are met for the node, the node may be determined as the separation node at block 1304. If the node is determined as the separation node, separate block partitioning trees may be applied to the luma CB and the chroma CB at block 1306.
  • the SepSize may be a high-level parameter and may be set at the slice level or a higher level.
  • the minimum luma CB side length may be set to 4 luma samples
  • the minimum chroma CB side length may be set to 4 chroma samples, such that there is no 2 ⁇ N or N ⁇ 2 chroma CBs.
  • the hardware implementation complexity may be reduced.
  • the block partitioning tree for intra (I) and inter (P and B) slices may be uniform in terms of luma CB and chroma CB separation.
  • FIG. 14 illustrates an example diagram 1400 showing how to apply separate block partitioning trees for the luma CB and the chroma CB under the separation node.
  • the size of the CTU 1402 may be 32 ⁇ 32, meaning that the CTU 1402 may have one 32 ⁇ 32 luma CB and two corresponding chroma CBs (two 16 ⁇ 16 chroma CBs for 4: 2: 0 format) .
  • the SepSize may be set to 8
  • the minimum luma CB side length may be set to 4 luma samples
  • the minimum chroma CB side length may be set to 4 chroma samples.
  • the CTU 1402 may be split by quadtree (QT split) into four 16 ⁇ 16 CBs 1404, 1406, 1408, and 1410. Though the CTU 1402 is split by the quadtree in this example, the CTU 1402 may be split by other block partitioning trees such as BT and TT block partitioning trees into other numbers ofCBs.
  • quadtree quadtree
  • other block partitioning trees such as BT and TT block partitioning trees into other numbers ofCBs.
  • the 16 ⁇ 16 CB 1404 may be split by the vertical binary tree (Ver. BT split) into two 8 ⁇ 16 CBs 1412 and 1414.
  • the 16 ⁇ 16 CB 1406 may be split by the quadtree (QT split) into four 8 ⁇ 8 CBs 1416, 1418, 1420, and 1422.
  • the luma CB of the 16 ⁇ 16 CB 1410 may be split by the vertical ternary tree (Ver. TT split) into two 4 ⁇ 16 luma CBs 1424 and 1426, and one 8 ⁇ 16 luma CBs 1428.
  • the chroma CB of the 16 ⁇ 16 CB 1410 may be split by the quadtree (QT split) into four 4 ⁇ 4 chroma CBs 1430, 1432, 1434, and 1436.
  • the luma CB of the 8 ⁇ 16 CB 1412 may be split by the vertical binary tree (Ver. BT split) into two 4 ⁇ 16 luma CBs 1438 and luma 1440.
  • the chroma CB of the 8 ⁇ 16 CB 1412 may be split by the horizontal binary tree (Hor. BT split) into two 4 ⁇ 4 chroma CBs 1442 and 1444.
  • the 8 ⁇ 16 CB 1414 may be split by the horizontal binary tree (Hor. BT split) into two 8 ⁇ 8 CBs 1446 and 1448.
  • the luma CB of the 8 ⁇ 8 CB 1420 may be split by the vertical binary tree (Ver. BT split) into two 4 ⁇ 8 luma CBs 1450 and 1452.
  • the chroma CB 1454 of the 8 ⁇ 8 CB 1420 may not be split because the chroma CB 1454 is already at the minimum chroma CB size.
  • the 4 ⁇ 16 luma CB 1440 may be split by the horizontal ternary tree (Hor. TT split) into two 4 ⁇ 4 luma CBs 1456 and 1458 and one 4 ⁇ 8 luma CB 1460.
  • FIG. 14 there may be three separation nodes in this example, i.e., nodes A, B, and C.
  • the blocks denoted by dashed lines and dotted lines illustrate that block partitioning trees are separated for the luma CB and the chroma CB.
  • dashed lines may indicate that a block partitioning tree is applied to the luma CB
  • dotted lines may indicate that another block partitioning tree is applied to the chroma CB.
  • the portioning tree is shared by the luma CB and the chroma CB.
  • the block partitioning tree may be separated when going deeper under the separation node, i.e., when the CB becomes smaller.
  • both the luma width 8 and the luma height 16 are over the SepSize 8.
  • each of two child nodes 1438 and 1440 may have luma width 4 which is smaller than the SepSize 8.Thus, node A may be determined as the separation node. Therefore, the luma CB and the chroma CB of node A may be split by separate block partitioning trees.
  • the luma CB of the 16 ⁇ 16 CB 1410 may be split by the vertical ternary tree (Ver.
  • the chroma CB of the 16 ⁇ 16 CB 1410 may be split by the quadtree (QT split) into four 4 ⁇ 4 chroma CBs 1430, 1432, 1434, and 1436.
  • the luma width 8 equals to the luma height 8 which equals to the SepSize 8.
  • each of two child nodes 1450 and 1452 of node B has luma width 4, which is smaller than the SepSize 8.
  • node B may be determined as the separation node. Therefore, the luma CB and the chroma CB of node B may be split by separate block partitioning trees.
  • the luma CB of the 8 ⁇ 8 CB 1420 may be split by the vertical binary tree (Ver. BT split) into two 4 ⁇ 8 luma CBs 1450 and 1452.
  • the chroma CB 1454 of the 8 ⁇ 8 CB 1420 may not be split because the chroma CB 1454 is already at the minimum chroma CB size.
  • the luma width 16 and the luma height 16 are both larger than the SepSize 8.
  • each of two child nodes 1424 and 1428 of node C has luma width 4 which is smaller than the SepSize 8.
  • node C may be determined as the separation node. Therefore, the luma CB and the chroma CB of node C may be split by separate block partitioning trees.
  • the luma CB of the 8 ⁇ 16 CB 1412 may be split by the vertical binary tree (Ver. BT split) into two 4 ⁇ 16 luma CBs 1438 and luma 1440.
  • the chroma CB of the 8 ⁇ 16 CB 1412 may be split by the horizontal binary tree (Hor. BT split) into two 4 ⁇ 4 chroma CBs 1442 and 1444.
  • the 4 ⁇ 16 luma CB 1440 may be split by the horizontal ternary tree (Hor. TT split) into two 4 ⁇ 4 luma CBs 1456 and 1458 and one 4 ⁇ 8 luma CB 1460.
  • the workflow of pseudo code of the block partitioning tree for encoding and decoding may be as follows.
  • the developing H. 266/VVC draft text is documented in JVET-K1001.
  • the coding tree syntax may be shown in Tables 3 -5 as below.
  • the pseudo code shown above may have the same meaning as the syntax shown in Tables 3 -5 as shown below.
  • the quadtree and multitype tree may use two functions, but in the pseudo code, one coding_tree () function may be used for easy understanding.
  • the SINGLE_TREE may refer to the shared block partitioning tree as described above
  • the DUAL_TREE_LUMA may refer to the separate block partitioning tree for the luma block
  • the DUAL_TREE_CHROMA may refer to the separate block partitioning tree for the chroma block.
  • the SepSize may have the same meaning in FIG. 14, the pseudo code, Tables 2 -4, and descriptions thereof.
  • the SepSize may be set as necessary. If the SepSize is set to the CTU 1402 side length, for example, 32 as shown in FIG. 14, the block partitioning tree may be completely separated for the luma CB and the chroma CB from the starting point, i.e., at the CTU level. If the SepSize is set to the minimum luma CB size, for example, 4 as shown in FIG. 14, the block partitioning tree may be completely shared for the luma CB and the chroma CB throughout the partitioning process.
  • the texture properties of the luma CB are usually different from the texture properties of the chroma CB.
  • the block partitioning tree may be separated for the luma CB and the chroma CB.
  • the SepSize may be set to 64 for I slice, given the CTU size equal to 128 ⁇ 128.
  • the motion information of the luma CB and the chroma CB are usually similar.
  • the shared block partitioning tree may be used.
  • separate block partitioning trees may be used when the shared block partitioning tree goes deeper (i.e., when the partition block becomes smaller) .
  • cross-component motion information prediction may be used.
  • the chroma motion information may be predicted from the collocated luma motion information.
  • FIG. 15 illustrates an example diagram 1500 of how to conduct the motion information prediction of the chroma CB by copying the motion information of the collocated luma CB.
  • an example 8 ⁇ 8 chroma CB 1502 may be divided into four chroma sub-CBs 1504, 1506, 1508, and 1510. Though the chroma CB 1502 is divided into four chroma sub-CBs in this example, the chroma CB 1502 may be divided into other numbers of chroma sub-CBs.
  • the chroma sub-CB size may be set at the slice level or a higher level. For example, the chroma sub-CB size may be set as 4 ⁇ 4 chroma samples. If the chroma sub-CB size set at the slice level is larger than a current chroma CB size, the current chroma CB may not be further partitioned.
  • the 16 ⁇ 16 luma CB 1512 in the collocated region of the chroma CB 1502, may be divided into four luma sub-CBs, 1514, 1516, 1518, and 1520. Though the luma CB 1512 is divided into four luma sub-CBs in this example, the luma CB 1512 may be divided into other numbers of luma sub-CBs.
  • Each luma sub-CB may have motion information.
  • the luma sub-CB 1514 may have the first motion information.
  • the luma sub-CB 1516 may have the second motion information.
  • the luma sub-CB 1518 may have the third motion information.
  • the luma sub-CB 1520 may have the fourth motion information.
  • Each luma sub-CB may correspond to one chroma sub-CB.
  • the chroma sub-CB 1504 may correspond to the luma sub-CB 1514.
  • the chroma sub-CB 1506 may correspond to the luma sub-CB 1516.
  • the chroma sub-CB 1508 may correspond to the luma sub-CB 1518.
  • the chroma sub-CB 1510 may correspond to the luma sub-CB 1520.
  • the motion information of the corresponding luma sub-CB may be directly copied.
  • the first motion information of the luma sub-CB 1514 may be copied for the chroma sub-CB 1504.
  • the second motion information of the luma sub-CB 1516 may be copied for the chroma sub-CB 1506.
  • the third motion information of the luma sub-CB 1518 may be copied for the chroma sub-CB 1508.
  • the fourth motion information of the luma sub-CB 1520 may be copied for the chroma sub-CB 1510.
  • FIG. 16 illustrates an example flowchart 1600 of a process for conducting the motion information prediction of the chroma CB by copying the motion information of the collocated luma block.
  • the chroma CB may be divided into multiple chroma sub-CBs.
  • the luma CB which is in the collocated region of the chroma CB may be divided into multiple luma sub-CBs.
  • the number of the luma CB may be the same as the number of the chroma sub-CBs.
  • Each luma sub-CB may have motion information.
  • Each luma sub-CB may correspond to one chroma sub-CB.
  • the motion information of the luma sub-CB may be copied for each corresponding chroma sub-CB.
  • the process 1600 may also be signaled as the first merge candidate at the chroma CB level, i.e., the merge index 0.
  • the first merge candidate and the merge index 0 are defined in video coding standards such as the HEVC standard.
  • FIG. 17. illustrates an example diagram 1700 of how to conduct the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
  • FIG. 17 shows an example chroma CB 1702 which may have the size of 8 ⁇ 8 chroma samples.
  • the chroma sub-CB size may be set at the slice level or a higher level. for example, the chroma sub-CB size may be set as 8 ⁇ 8 chroma samples. If the chroma sub-CB size set at the slice level is larger than a current chroma CB size, the current chroma CB may not be partitioned. In this example, the chroma CB 1702 may not be divided. Though in this example, the chroma CB 1702 is not divided, the chroma CB 1702 may be divided into several chroma sub-CBs in other examples.
  • the luma CB 1704 in the collocated luma region of the chroma CB may have 16 ⁇ 16 luma samples in the 4: 2: 0 chroma sampling format.
  • the luma CB 1704 may be divided into four luma sub-CBs 1706, 1708, 1710, and 1712. Though the luma CB is divided into four luma sub-CBs, the luma CB may be divided into other numbers of luma sub-CBs in other examples.
  • each luma sub-CB 1706, 1708, 1710, or 1712 may have motion information.
  • the luma sub-CB 1706 may have the fifth motion information.
  • the luma sub-CB 1708 may have the sixth motion information.
  • the luma sub-CB 1710 may have the seventh motion information.
  • the luma sub-CB 1712 may have the eighth motion information.
  • the fifth, the sixth, the seventh, and the eighth motion information of the luma sub-CBs 1706, 1708, 1710, and 1712 within the collocated region of the chroma CB 1702 may be used as motion information candidates for the chroma CB 1702.
  • the fifth, the sixth, the seventh, and the eighth motion information may be assigned to be left-top, right-top, left-bottom, and right- bottom motion information according to the relative location of the luma sub-CBs 1706, 1708, 1710, and 1712 within the collocated region.
  • the fifth motion information of the luma sub-CB 1706 may be assigned to be the left-top motion information.
  • the sixth motion information of the luma sub-CB 1708 may be assigned to be the right-top motion information.
  • the seventh motion information of the luma sub-CB 1710 may be assigned to be the left-bottom motion information.
  • the eighth motion information of the luma sub-CB 1712 may be assigned to be the right-bottom motion information.
  • the number of motion information candidates within the collocated luma region may be set at the slice level or a higher level.
  • MV motion vector
  • MVP motion vector prediction
  • FIG. 18 illustrates an example flowchart of a process 1800 for conducting the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
  • the chroma CB may be treated as a whole.
  • the luma CB which is in the collocated region of the chroma CB, may be divided into multiple luma sub-CBs. Each luma sub-CB may have motion information. The motion information of multiple luma sub-CBs may become multiple motion information candidates.
  • one of the multiple motion information candidates may be selected as the motion information of the chroma CB.
  • the above processes 1600 and 1800 may be signaled at the chroma CB level. That is, for the chroma CB, there may be a syntax element indicating the usage of the process 1600 or 1800. If the process 1600 is signaled, the chroma CB may directly re-use the motion information of the collocated luma region at the sub-CB granularity. If the process 1800 is signaled, the chroma CB may select one of multiple motion information candidates from the collocated luma region.
  • the luma CB in the collocated region is used for the motion information prediction of the chroma CB
  • other luma CBs in nearby regions may be used for the motion information prediction of the chroma CB in other examples.
  • the chroma motion information may be predicted from the luma motion information.
  • the coding efficiency may be improved.
  • the MTS scheme may be used for residual coding both inter and intra coded blocks.
  • a plurality of enabling flags may be specified at the SPS level for intra and inter picture prediction, respectively.
  • a CU level flag (MTS_CU_flag) may be signaled to indicate whether MTS is applied or not.
  • the MTS may be applied only to the luma CB.
  • the MTS_CU_flag may be signaled when the following conditions are satisfied: (1) both width and height of the intra luma CB are smaller than or equal to 32; and (2) the coded block flag (CBF) of the intra luma CB is equal to one.
  • DCT-II may be applied in both vertical and horizontal directions.
  • two other flags may be additionally signaled to indicate the transform type for the horizontal and vertical directions, respectively.
  • two flags i.e., MTS_Hor_flag and MTS_Ver_flag may be signaled when the number of non-zero coefficients is greater than two.
  • two flags i.e., MTS_Hor_flag and MTS_Ver_flag may be signaled.
  • DST-VII may be used both horizontally and vertically without signaling the additional two flags when the MTS_CU_flag is equal to one.
  • Transform and signaling mapping table is shown in Table 6.
  • the residual of a block can be coded with transform skip mode.
  • the transform skip flag may not be signaled when the MTS_CU_flag at the CU level is not equal to zero.
  • the signaling of DST-VII and DCT-VIII may be applied reversely as shown in Table 6.
  • the MTS may adapt with different residual distribution, so that the encoder can select the transform which has the best energy compaction property for one residual block to promote the compression performance.
  • side information MTS_CU_flag, MTS_Hor/Ver_flag
  • the side information may raise the bit-rate cost of the encoder.
  • the side information cost may be larger for small size block than that for big size block.
  • the residual distribution may be more regular. That is, the residual energy increases from top-left corner to right-bottom corner, because of the longer prediction distance, which fits properly for the DST-VII.
  • the transform for this side may always be DST-VII, i.e., the DCT-II and DCT-VIII may not be used for this case.
  • the horizontal transform may be fixed to DST-VII (no DCT-II or DCT-VIII) .
  • the vertical transform may be fixed to DST-VII (no DCT-II or DCT-VIII) .
  • the small size block may be defined as necessary, for example, 4 ⁇ N or N ⁇ 4 block.
  • FIG. 19 illustrates an example diagram of an intra luma CB 1900.
  • the intra luma CB 1900 may have the size of 16 ⁇ 4.
  • the horizontal transform of the intra luma CB 1900 may use the MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII.
  • the vertical transform of the intra luma CB 1900 may always use DST-VII.
  • FIG. 20 illustrates an example flowchart 2000 of a signaling/parsing mechanism of the transform of the intra luma CB in FIG. 19.
  • a first message may be signaled/parsed at block 2004.
  • the first message may be an MTS_CU_flag.
  • whether the first message meets a first preset condition may be determined. For example, if the MTS_CU_flag is 1, the first message meets the first preset condition. If the MTS_CU_flag is 0, the first message does not meet the first preset condition.
  • the width of the intra luma CB is equal to 4 may be determined at block 2008. If the width of the intra luma CB is equal to 4, an MTS_Hor_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2010.
  • whether the height of the intra luma CB is equal to 4 may be determined at block 2012, and if the height of the intra luma CB is equal to 4, an MTS_Ver_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2014.
  • the transform may use DST-VII at block 2018. If the length of the side of the intra luma CB is not equal to 4, the transform may use DCT-II at block 2020.
  • the MTS_Ver_flag and MTS_Hor_flag may not be always signaled/parsed.
  • the signaling/parsing mechanism may be the same as that in developing H. 266/VVC.
  • a transform mapping table may be shown in Table 7.
  • FIG. 21 illustrates an example diagram of an intra luma CB 2100.
  • the intra luma CB 2100 may have a size of 16 ⁇ 4.
  • the horizontal transform which is the 16-point transform, may use the MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII
  • the vertical transform which is the 4-point transform, may use DCT-II or DST-VII.
  • FIG. 22 illustrates an example flowchart 2200 of the signaling/parsing mechanism of the transform of the intra luma CB 2100 in FIG. 21.
  • a first message may be signaled/parsed at block 2204.
  • Whether the first message meets a first preset condition may be determined at block 2206. For example, if the MTS_CU_flag is 1, the first message meets the first preset condition. If the MTS_CU_flag is 0, the first message does not meet the first preset condition.
  • the width of the intra luma CB is equal to 4 may be determined at block 2208, and if the width of the intra luma CB is equal to 4, the MTS_Hor_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2210.
  • the MTS_Ver_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2214.
  • the transform may use DCT-II At block 2216 at block 2216.
  • the MTS_Ver_flag and MTS_Hor_flag may not be always signaled/parsed.
  • the signaling/parsing mechanism may be the same as that in the developing H. 266/VVC, and the transform mapping table may be the same as Table 6.
  • FIG. 23A illustrates an example system 2300 for implementing the processes and mechanisms described with reference to FIGs 1-12.
  • system 2300 may be implemented by multiple instances of the system 2300 as well as by any other computing device, system, and/or environment.
  • the system 2300 shown in FIG. 23 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein.
  • the system 2300 may include one or more processors 2302 and system memory 2304 communicatively coupled to the processor (s) 2302.
  • the processor (s) 2302 may execute instructions to cause the processor (s) 2302 to perform a variety of functions.
  • the processor (s) 2302 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2302 may possess its own local memory, which also may store program modules, program data, and/or one or more operating systems.
  • system memory 2304 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
  • the system 2300 may additionally include an input/output (I/O) interface 2306 for receiving/outputting data.
  • the system 2300 may also include a communication module 2308 allowing the system 2300 to communicate with other devices (not shown) over a network (not shown) .
  • the network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
  • RF radio frequency
  • the system memory 2304 may include one or more computer-executable modules (modules) that are executable by the processor (s) 2302.
  • the modules may include the following.
  • a first luma block width determination module 2310 may be used for determining whether a luma block has width equal to 8.
  • a first syntax element providing module 2312 may be used for providing a first syntax element to indicate that the luma block is vertically split, upon determining that the luma block has the width equal to 8.
  • a first luma block height determination module 2314 may be used for determining whether the luma block has height equal to 8.
  • a second syntax element providing module 2316 may be used for providing a second syntax element to indicate that the luma block is horizontally split, upon determining that the luma block has the height equal to 8.
  • a second luma block width determination module 2318 may be used for determining whether the luma block has the width equal to 4.
  • a third syntax element providing module 2320 may be used for providing a third syntax element to indicate that the luma block is vertically split, upon determining that the luma block has the width equal to 4.
  • a second luma block height determination module 2322 may be used for determining whether the luma block has the height equal to 4.
  • a fourth syntax element providing module 2324 may be used for providing a fourth syntax element to indicate that the luma block is horizontally split, upon determining that the luma block has the height equal to 4.
  • a splitting module 2326 may be used for splitting the luma block based on the first, second, third, and fourth syntax element to obtain a plurality of 2 ⁇ n or n ⁇ 2 luma coding blocks (CBs) .
  • a DCT-II applying module 2328 may be used for applying DCT-II in both horizontal and vertical directions of transform of a CB of the plurality of 2 ⁇ N or N ⁇ 2 luma CBs.
  • a deblocking filtering decision making module 2330 may be used for making a deblocking filtering decision.
  • a deblocking filtering performing module 2332 may be used for performing a deblocking filtering operation.
  • FIG. 23B illustrates an example diagram of the deblocking filtering decision making module 2340 in FIG. 23A.
  • the deblocking filtering decision making module 2340 may include the following.
  • a boundary strength (BS) deriving module 2344 may be used for deriving the BS of a boundary formed by a coding block P and a coding block Q.
  • a BS determination module 2346 may be used for determining whether the BS is greater than 0.
  • a first checking module 2348 may be used for checking whether an expression (a) is true upon determining that the BS is greater than 0,
  • is a threshold depending on a quantization parameter
  • p2, 0, p1, 0, p0, 0 are samples in the coding block P.
  • the first checking module 2348 may also be used for making the deblocking filtering decision for the boundary if the expression (a) is true.
  • FIG. 23C illustrates an example diagram of the deblocking filtering performing module 2342 in FIG. 23A.
  • the deblocking filtering performing module 2342 may include the following.
  • i is a line number
  • tc is a threshold parameter
  • p2, i, p1, i, p0, i, p3, i, and p0, i are samples in the coding block P
  • q2, i, q1, i, q0, i, q0, i, q3, i, and q0, i are samples in the coding block Q.
  • FIG. 23D illustrates an example diagram of the normal filtering module 2354 in FIG. 23C.
  • the normal filtering module 2354 may include the following.
  • a third checking module 2356 may be used for checking whether an expression (e) is true.
  • a second pixel modifying module 2360 may be used for modifying one nearest row of pixels in the coding block P if the expression (e) is not true.
  • a fourth checking module 2362 may be used for checking whether an expression (f) is true
  • a third pixel modifying module 2364 for modifying two nearest rows of pixels to the boundary in the coding block Q if the expression (f) is true.
  • a fourth pixel modifying module 2366 may be used for modifying one nearest row of pixels in the coding block Q if the expression (f) is not true.
  • FIG. 24 illustrates an example system 2400 for implementing the processes and mechanisms described with reference to FIGs 13-18.
  • system 2400 may be implemented by multiple instances of the system 2400 as well as by any other computing device, system, and/or environment.
  • the system 2400 shown in FIG. 24 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein.
  • the system 2400 may include one or more processors 2402 and system memory 2404 communicatively coupled to the processor (s) 2402.
  • the processor (s) 2402 may execute instructions to cause the processor (s) 2402 to perform a variety of functions.
  • the processor (s) 2402 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2402 may possess its own local memory, which also may store program modules, program data, and/or one or more operating systems.
  • system memory 2404 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
  • the system 2400 may additionally include an input/output (I/O) interface 2406 for receiving/outputting data.
  • the system 2400 may also include a communication module 2408 allowing the system 2400 to communicate with other devices (not shown) over a network (not shown) .
  • the network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
  • RF radio frequency
  • the system memory 2404 may include one or more computer-executable modules (modules) that are executable by the processor (s) 2402.
  • the modules may include the following.
  • a condition determination module 2410 may be used for determining whether conditions are met for a node.
  • the conditions may include: (1) both width and height of a luma CB of the node being not smaller than a separation size, and (2) width or height of the luma CB of at least one child node of the node being smaller than the separation size.
  • a separation node determination module 2412 may be used for determining that the node is a separation node upon determining that the conditions (1) and (2) are both met for the node.
  • a tree applying module 2414 may be used for applying a first block partitioning tree to the luma CB of the node and applying a second block partitioning tree to a chroma CB of the node.
  • a chroma CB dividing module 2416 may be used for dividing the chroma CB into multiple chroma sub CBs.
  • a first luma CB dividing module 2418 may be used for dividing the luma CB into multiple luma sub CBs.
  • Each of the multiple luma sub CBs may correspond to respective one of the multiple chroma sub CBs.
  • Each of the multiple luma sub CBs may have motion information.
  • a motion information copying module 2420 may be used for copying the motion information of one of the multiple luma sub CBs for a corresponding one of the multiple chroma sub CBs.
  • a second luma CB dividing module 2424 may be used for dividing the luma CB into multiple luma sub CBs.
  • Each of the multiple luma sub CBs may have motion information.
  • the motion information of multiple luma sub CBs may be multiple motion information candidates.
  • a motion information selecting module 2426 may be used for selecting one of the multiple motion information candidates for the chroma CB.
  • FIG. 25 illustrates an example system 2500 for implementing the processes and mechanisms described with reference to FIGs 19-22.
  • system 2500 may be implemented by multiple instances of the system 2500 as well as by any other computing device, system, and/or environment.
  • the system 2500 shown in FIG. 25 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein.
  • the system 2500 may include one or more processors 2502 and system memory 2504 communicatively coupled to the processor (s) 2502.
  • the processor (s) 2502 may execute instructions to cause the processor (s) 2502 to perform a variety of functions.
  • the processor (s) 2502 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2502 may possess its own local memory, which also may store program modules, program data, and/or one or more operating systems.
  • system memory 2504 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
  • the system 2500 may additionally include an input/output (I/O) interface 2506 for receiving/outputting data.
  • the system 2500 may also include a communication module 2508 allowing the system 2500 to communicate with other devices (not shown) over a network (not shown) .
  • the network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
  • RF radio frequency
  • the system memory 2504 may store thereon computer-readable instructions that, when executed by the one or more processors 2502, cause the one or more processors 2502 to perform mechanisms and processes described with reference to 19-22.
  • Computer-readable instructions include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like.
  • Computer-readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like.
  • the computer-readable storage media may include volatile memory (such as random access memory (RAM) ) and/or non-volatile memory (such as read-only memory (ROM) , flash memory, etc. ) .
  • volatile memory such as random access memory (RAM)
  • non-volatile memory such as read-only memory (ROM) , flash memory, etc.
  • the computer-readable storage media may also include additional removable storage and/or non-removable storage including, but not limited to, flash memory, magnetic storage, optical storage, and/or tape storage that may provide non-volatile storage of computer-readable instructions, data structures, program modules, and the like.
  • a non-transient computer-readable storage medium is an example of computer-readable media.
  • Computer-readable media includes at least two types of computer-readable media, namely computer-readable storage media and communications media.
  • Computer-readable storage media includes volatile and non-volatile, removable and non-removable media implemented in any process or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.
  • Computer-readable storage media includes, but is not limited to, phase change memory (PRAM) , static random-access memory (SRAM) , dynamic random-access memory (DRAM) , other types of random-access memory (RAM) , read-only memory (ROM) , electrically erasable programmable read-only memory (EEPROM) , flash memory or other memory technology, compact disk read-only memory (CD-ROM) , digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device.
  • communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer-readable storage media do not include communication media.
  • the computer-readable instructions stored on one or more non-transitory computer-readable storage media that, when executed by one or more processors, may perform operations described above with reference to FIGs. 1-25.
  • computer-readable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types.
  • the order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes.
  • a method comprising: determining whether a width of a coding block (CB) is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
  • DST-VII Discrete Sine Transform of type VII
  • Clause 2 The method of claim 1, wherein before determining whether the width of the CB is equal to the first preset value the method further comprises: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
  • Clause 3 The method of claim 2, wherein before parsing the first message from bitstream, the method further comprises determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
  • CB coding block
  • determining whether the first message meet a first preset condition includes: determining whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  • the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
  • Clause 11 The method of claim 3, wherein the second present condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
  • Clause 13 The method of claim 5, further comprising: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  • DCT-II Discrete Cosine Transform of type II
  • Clause 14 The method of claim 5, further comprising: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  • Clause 15 The method of claim 2, wherein the first message is parsed at a coding unit (CU) level.
  • CU coding unit
  • Clause 16 The method of claim 1, wherein the CB is an intra luma CB.
  • An apparatus comprising: one or more processors; memory, coupled to the one or more processors, the memory storing thereon computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising: determining whether a width of the CB is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
  • DST-VII Discrete Sine Transform of type VII
  • Clause 18 The apparatus of claim 17, wherein before determining whether the width of the CB is equal to the first preset value the acts further comprise: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
  • the acts before parsing the first message from bitstream, the acts further comprise determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
  • CB coding block
  • determining whether the first message meet a first preset condition includes: determining whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  • the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
  • Clause 27 The apparatus of claim 19, wherein the second present condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
  • the acts further comprise: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  • DCT-II Discrete Cosine Transform of type II
  • Clause 30 The apparatus of claim 21, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  • Clause 31 The apparatus of claim 18, wherein the first message is parsed at a coding unit (CU) level.
  • CU coding unit
  • a computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform acts comprising: determining whether a width of the CB is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using DST-VII for the transform of the CB in a vertical direction.
  • DST-VII Discrete Sine Transform of type VII
  • the acts further comprise: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition
  • the acts comprise determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the preset second conditions is met for the CB.
  • CB coding block
  • determining whether the first message meet a first preset condition includes: determining whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  • the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
  • Clause 43 The computer-readable storage medium of claim 35, wherein the second present condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
  • Clause 45 The computer-readable storage medium of claim 37, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  • DCT-II Discrete Cosine Transform of type II
  • Clause 46 The computer-readable storage medium of claim 37, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  • Clause 47 The computer-readable storage medium of claim 34, wherein the first message is parsed at a coding unit (CU) level.
  • CU coding unit
  • Clause 48 The computer-readable storage medium of claim 33, wherein the CB is an intra luma CB.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Apparatuses and methods include determining whether a width of the CB is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, determining that Discrete Sine Transform of type VII (DST-VII) is used for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, determining that the DST-VII is used for the transform of the CB in a vertical direction.

Description

TRANSFORM SELECTION FOR SMALL SIZE BLOCK BACKGROUND
Many video coding standards such as H. 264/AVC (Advanced Video Coding) and H. 265/HEVC (High Efficiency Video Coding) use block-based video coding. Block-based video coding divides the video data into video blocks and then encode the video blocks using block-based compression techniques. The video blocks are encoded using one or more encoding techniques as well as data compression techniques. Video encoding usually involves intra-prediction, inter-prediction, motion information (including inter prediction direction, reference index, and motion vectors, etc. ) , transform, quantization, coefficient coding, etc.
In the developing H. 266/Versatile Video Coding (VVC) standard, the minimum allowed luminance (luma) Coding Block (CB) size is 4 × 4 (in unit of samples) . That is, the minimum allowed width and height of the luma CB are 4 luma samples. However, in some video content full of detailed texture such as the screen content video, a smaller block partitioning size may be required. In such a scenario, the current minimum allowed luma CB size, i.e., 4 × 4, is not efficient enough. Moreover, the minimum chroma CB size is 2 × 2 chroma samples for the 4: 2: 0 sample format. However, the 2 × 2 chroma CB is  difficult for hardware implementation. In addition, the minimum chroma CB size may not be adjusted independently in P and B slices.
Moreover, for the P and B slices, the intra or inter prediction mode, intra prediction direction, motion information (including inter prediction direction, reference index, and motion vectors, etc. ) , and CU level information may be all signaled for each luma CB and each chroma CB respectively. However, coding the motion information of the luma CB and the chroma CB that share the same region independently may be inefficient.
BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit (s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
FIG. 1 illustrates an example diagram showing a picture divided into multiple coding tree units (CTUs) .
FIG. 2 illustrates example diagrams of four splitting types in a multitype tree structure.
FIG. 3 illustrates an example diagram of a coding unit (CU) .
FIG. 4 illustrates an example diagram of signaling mechanism of partition information of a quaternary tree (quadtree) with nested multitype tree coding tree structure.
FIG. 5 illustrates an example diagram showing a CTU divided into multiple CUs by the quadtree with nested multitype tree coding tree structure.
FIG. 6 illustrates an example block diagram showing how a luma block is partitioned into several luma CBs.
FIGs. 7A and 7B illustrate an example flowchart of a process for partitioning a luma block into several luma CBs using a quaternary/binary/ternary tree.
FIG. 8 illustrates an example diagram of a process of multiple transform selection (MTS) .
FIG. 9 illustrates an example diagram where Position Dependent intra Prediction Combination (PDPC) is applied.
FIG 10A illustrates an example diagram of a four-sample long vertical block boundary formed by two adjacent CBs.
FIG. 10B illustrates an example diagram of a two-sample long vertical block boundary formed by two adjacent CBs.
FIGs. 11A, 11B, 11C, and 11D illustrate an example flowchart of a deblocking filtering process.
FIG. 12A illustrates an example diagram showing the dependence between the threshold β (beta) and the quantuzation parameter (QP) .
FIG. 12B illustrates an example diagram showing the dependence between the threshold parameter tc and QP.
FIG. 13 illustrates an example flowchart of a process for applying separate block partitioning trees to the luma CB and the chroma CB.
FIG. 14 illustrates an example diagram showing how to apply separate block partitioning trees to the luma CB and the chroma CB under the separation node.
FIG. 15 illustrates an example diagram of how to conduct the motion information prediction of the chroma CB by copying the motion information of the collocated luma CB.
FIG. 16 illustrates an example flowchart of a process for conducting the motion information prediction of the chroma CB by copying the motion information of the collocated luma block.
FIG. 17. illustrates an example diagram of how to conduct the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
FIG. 18 illustrates an example flowchart of a process for conducting the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
FIG. 19 illustrates an example diagram of an intra luma CB.
FIG. 20 illustrates an example flowchart of the signaling/parsing mechanism of the transform of the intra luma CB in FIG. 19.
FIG. 21 illustrates an example diagram of an intra luma CB.
FIG. 22 illustrates an example flowchart of the signaling/parsing mechanism of the transform of the intra luma CB in FIG. 21.
FIG. 23A illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 1-12.
FIG. 23B illustrates an example diagram of the deblocking filtering decision making module in FIG. 23A.
FIG. 23C illustrates an example diagram of the deblocking filtering performing module in FIG. 23A.
FIG. 23D illustrates an example diagram of the normal filtering module in FIG. 23C.
FIG. 24 illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 13-18.
FIG. 25 illustrates an example system for implementing the processes and mechanisms described with reference to FIGs 19-22.
DETAILED DESCRIPTION
Apparatuses and methods discussed herein are directed to image processing, and more specifically to small size block coding, block partitioning tree separation under a node, and transform selection for the small size block.
The apparatuses and methods discussed herein may be usable for small size block coding. Whether a luma block has width equal to 8 may be determined. If the luma block has the width equal to 8, a first syntax element may be provided to indicate that the luma block is vertically split. Whether the luma block has height equal to 8 may be determined. If the luma block has the height equal to 8, a second syntax element may be provided to indicate that the luma block is horizontally split. Whether the luma block has the width equal to 4 may be determined. If the luma block has the width equal to 4, a third syntax  element may be provided to indicate that the luma block is vertically split. Whether the luma block has the height equal to 4 may be determined. If the luma block has the height equal to 4, a fourth syntax element may be provided to indicate that the luma block is horizontally split.
The apparatuses and methods discussed herein may also be usable for block partitioning tree separation under a node. Whether the following conditions are met for a node may be checked, i.e., (a) both width and height of a luma CB of the node is not smaller than a separation size; and (b) width or height of the luma CB of at least one child node of the node is smaller than the separation size. If the conditions (a) and (b) are both met for the node, the node may be determined as a separation node. If the node is determined as the separation node, a first block partitioning tree may be applied to the luma CB of the node while a second block partitioning tree may be applied to a chroma CB of the node.
The apparatuses and methods discussed herein may additionally be usable for transform selection for the small size block. Whether predetermined conditions are met for a coding block may be checked. Upon determining that the predetermined conditions are met for the CB, a first message may be parsed from bitstream. Whether the first message meet a first preset condition may be determined. If the first message meets the first preset condition, the width and the height of the CB may be checked. If the width of the CB is equal to a first value, DST-VII may be used for the transform of the CB in a horizontal  direction. If the height of the CB is equal to the first value, DST-VII is used for the transform of the CB in a vertical direction.
FIG. 1 illustrates an example diagram showing a picture 100 divided into multiple CTUs. Referring to FIG. 1, the picture 100 may be divided into a sequence of CTUs, for example,  CTUs  102 and 104. Though FIG. 1 denotes two  CTUs  102 and 104, there may be other numbers of CTUs. For a picture which has three sample arrays, each CTU may consist of an N × N block of luma samples together with two corresponding blocks of chroma samples. The maximum allowed size of the luma block in CTU may be specified to be 128×128 in the developing H. 266/VVC standard. The sizes such as length, width, and height discussed herein may be in unit of the number of samples.
In HEVC, a CTU may be split into CUs by using a quadtree as the 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 may be made at the CU level. Each CU can be further split into one, two, or four prediction units (PUs) according to the PU splitting type. Inside one PU, the same prediction process may be applied and the relevant information may be 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 node CU may be partitioned into transform units (TUs) according to another quadtree similar to the coding tree for the CU. One feature of the HEVC structure may be the multiple partition conceptions including CU, PU, and TU.
In VVC/H. 266 development, a quadtree with nested multitype tree structure using binary and ternary splitting segmentation structure replaces the concepts of multiple partition unit types. That is, the separation of the CU, PU and TU concepts are removed except as needed for CUs that have a size too large for the maximum transform length. Also, VVC/H. 266 development supports more flexibility for CU partition shapes. In the coding tree, the CU may have either a square or rectangular shape. The CTU may be first partitioned by the quadtree. Then, the quadtree leaf nodes may be further partitioned by a multitype tree.
FIG. 2 illustrates example diagrams of four splitting types in a multitype tree, i.e., vertical binary splitting (SPLIT_BT_Ver 202) , horizontal binary splitting (SPLIT_BT_Hor 204) , vertical ternary splitting (SPLIT_TT_Ver 206) , and horizontal ternary splitting (SPLIT_TT_Hor 208) . The multitype tree leaf node may be referred as CU. Unless the CU is too large for the maximum transform length, the segmentation may be used for prediction and transform process without any further partition. In other words, in most cases, the CU, PU, and TU have the same block size in the quadtree with nested multitype tree coding tree. The exception may occur when maximum supported transform length is smaller than the width or height of the color component of the CU.
FIG. 3 illustrates an example diagram of a CU 300. For example, the CU 300 may include one luma coding block (CB) 302 and two chroma CBs, i.e., Cb CB 304 and Cr CB 306. The CU 300 may include different color  components (unless the video is monochrome –i.e., having only one color component) .
The parameters of the quadtree with nested multitype tree coding tree structure may be defined and specified by Sequence Parameter Set (SPS) syntax elements. In an example of the quadtree with nested multitype tree coding tree, the root node size of the quaternary tree (CTU size) may be set as 128×128 luma samples with two corresponding 64×64 blocks of 4: 2: 0 chroma samples. The minimum allowed quaternary tree leaf node size (MinQTSize) may be set as 16×16. The maximum allowed binary tree root node size (MaxBtSize) may be set as 128×128. The maximum allowed ternary tree root node size (MaxTtSize) may be set as 64×64. The minimum allowed binary tree leaf node size (MinBtSize) and the minimum allowed ternary tree leaf node size (MinTtSize) , for both width and height, may be set as 4×4. The maximum allowed hierarchy depth of multitype tree splitting from a quadtree leaf (MaxMttDepth) may be set as 4. The quadtree partitioning may be applied to the CTU first to generate quadtree leaf nodes. The quadtree leaf nodes may have a size from 16×16 (i.e., the MinQTSize) to 128×128 (i.e., the CTU size) . If the leaf QT node is 128×128, the leaf QT node may not be further split by the ternary tree because the size exceeds the MaxTtSize (i.e., 64×64) . Otherwise, the leaf quadtree node may be further partitioned by the multitype tree. Therefore, the leaf node of the quadtree may also be the root node of the multitype tree and may have multitype tree depth (MTTDepth) as 0. When the multitype tree depth reaches MaxMttDepth (i.e., 4) , no further splitting may be  considered. When the multitype tree node has width equal to MinBtSize and smaller or equal to 2 *MinTtSize, no further horizontal splitting may be considered. Similarly, when the multitype tree node has height equal to MinBtSize and smaller or equal to 2 *MinTtSize, no further vertical splitting may be considered.
FIG. 4 illustrates an example diagram of signaling mechanism 400 of partition information in a quadtree with nested multitype tree coding tree structure.
Referring to FIG. 4, a CTU or a quadtree (QT) node may be treated as a root node, i.e., CTU/QT_node 402. The CTU/QT_node 402 may be partitioned by the quadtree. A QT_split_flag 404 may be signaled to indicate whether the CTU/QT_node 402 needs to be split by the quadtree. If the QT_split_flag 404 is 1, the CTU/QT_node 402 may be treated as a QT_node 406. If the QT_split_flag 404 is 0, the CTU/QT_node 402 may be treated as a QT_leaf_node/multitype tree (MTT) _node 408 to be split by the multitype tree.
At the QT_node 406, the process may go back to the root node 402 in a recursive manner.
At the QT_leaf_node/MTT_node 408, an MTT_split_flag 410 may be signaled to indicate whether the QT_leaf_node/MTT_node 408 needs to be further partitioned by multitype tree. If the MTT_split_flag 410 is 1, the QT_leaf_node/MTT_node 408 may be treated as an MTT_node 412 to be further partitioned. If the MTT_split_flag 410 is 0, the  QT_leaf_node/MTT_node 408 may be treated as an MTT_leaf_node 414, which may not be further partitioned.
At the MTT_node 412, an MTT_split_Vertical_flag 416 may be signaled to indicate the splitting direction. If the MTT_split_Vertical_flag 416 is 1, the MTT_node 412 may be treated as an MTT_node 418 for vertical splitting. If the MTT_split_Vertical_flag 416 is 0, the MTT_node 412 may be treated as an MTT_node 420 for horizontal splitting.
At the MTT_node 418, an MTT_split_binary_flag 422 may be signaled to indicate whether the split is a binary split or a ternary split. If the MTT_split_binary_flag 422 is 1, the MTT_node 418 may be treated as an MTT_node with BT_Ver split 426 for binary tree vertical splitting. If the MTT_split_binary_flag 422 is 0, the MTT_node 418 may be treated as an MTT_node with TT_Ver split 428 for ternary tree vertical splitting.
At the MTT_leaf_node 420, an MTT_split_binary_flag 424 may be signaled to indicate whether the split may be a binary split or a ternary split. If the MTT_split_binary_flag 424 is 1, the MTT_leaf_node 420 may be treated as an MTT_node with BT_Hor split 430 for binary tree horizontal splitting. If the MTT_split_binary_flag 424 is 0, the MTT_leaf_node 420 may be treated as an MTT_node with TT_Hor split 432 for ternary tree horizontal splitting.
Based on the values of the MTT_split_Vertical_flag 416 and MTT_split_binary_flags 422 and 424, the MTT slitting mode of a CU may be derived as shown in Table 1.
Table 1 MTT Split Mode Derivation Based on Multitype Tree Syntax Elements
MTT Split Mode MTT_split_Ver_flag MTT_split_binary_flag
SPLIT_TT_Hor
0 0
SPLIT_BT_Hor 0 1
SPLIT_TT_Ver 1 0
SPLIT_BT_Ver 1 1
FIG. 5 illustrates an example diagram showing a CTU 500 divided into multiple CUs by the quadtree with nested multitype tree coding tree structure. Referring to FIG. 5, bold block edges may represent quadtree partitioning, while other light edges may represent multitype tree partitioning. The quadtree with nested multitype tree coding tree structure provides a content-adaptive coding tree structure comprised of CUs. The size of the CU may be as large as the CTU or as small as 4 × 4 in unit of luma samples. For the case of the 4: 2: 0 chroma format, the maximum chroma CB size may be 64 × 64 and the minimum chroma CB size may be 2 × 2.
In the developing H. 266/VVC standard, for an example, the minimum allowed luma coding block size may be 4 × 4. In the block partitioning process, when the luma partitioning block has width equal to 4, no vertical splitting may be implicit. That is, the vertical (including quaternary/binary/ternary tree) split flag may not be signaled. When a luma partitioning block has width equal to 8, no vertical ternary splitting may be implicit. When a luma partitioning block has height equal to 4, no horizontal  splitting may be implicit. When a luma partitioning block has width equal to 8, no horizontal ternary splitting may be implicit.
For another example, the minimum allowed luma CB width and height may be 2. That is, the 2 × N and N × 2 luma CB size may be supported, where N may be power of 2, for example, 2, 4, 8, 16, 32, 64, 128, . . . Small size block may be defined as necessary, for example, 2 × N or N × 2 block.
FIG. 6 illustrates an example block diagram 600 showing how a luma block 602 is partitioned into several luma CBs.
Referring to FIG. 6, the 8 × 4 luma block 602 may be split by the vertical ternary tree (Ver. TT split) into 3 luma blocks, i.e., two 2 × 4 luma blocks 604 and 606, and one 4 × 4 luma block 608. The first 2 × 4 luma block 604 may not be further split and may be a 2 × 4 CB. The 4 × 4 luma block 608 may be further split by the horizontal binary tree (Hor. BT split) into two 2 × 4  CBs  610 and 612. The second 2 × 4 luma block 606 may be further split by the horizontal binary tree (Hor. BT split) into two 2 × 2 CBs 614 and 616.
FIGs. 7A and 7B illustrate an example flowchart of a process 700 for partitioning a luma block into several luma CBs using a quaternary/binary/ternary tree.
At block 702, whether the luma block has width equal to 8 may be determined, and if the luma block has the width equal to 8, a first syntax element may be provided to indicate whether the luma block needs to be vertically split at block 704. At block 706, whether the luma block has height equal to 8 may be determined, and if the luma block has the height equal to 8, a  second syntax element may be provided to indicate whether the luma block needs to be horizontally split, for example, by the ternary tree at block 708.
At block 710, whether the luma block has width equal to 4 may be determined, and if the luma block has the width equal to 4, a third syntax element may be provided to indicate whether the luma block needs to be vertically split at block 712. At block 714, whether the luma block has height equal to 4 may be determined, and ifthe luma block has the height equal to 4, a fourth syntax element may be provided at block 716 to indicate whether the luma block needs to be horizontally split, for example, by the binary tree. At block 718, the luma block may be split based on the first, second, third, and fourth syntax element to obtain 2 × N or N × 2 luma CBs. The 2 × N or N × 2 luma CBs may be formed by the quaternary/binary/ternary tree partitioning structure.
In the mechanisms and processes discussed herein, the small luma CBs(for example, 2 × N or N × 2 luma CB) may be supported. Thus, the coding efficiency of the video full of detailed content such as the screen content video may be significantly improved. The coding performance may also be improved.
To support the 2 × N or N × 2 luma CB, the prediction, transform, coefficients coding, and deblocking filter may be modified accordingly.
Regarding the transform, after the intra-picture or inter-picture prediction, the difference between the original block and the prediction thereof may be transformed by a linear spatial transform. In the H. 266/VVC  development, MTS may be used. For the luma CB, the transform type may be explicitly selected among Discrete Cosine Transform of Type II (DCT-II) , Discrete Sine Transform of type VII (DST-VII) , and Discrete Cosine Transform of type VIII (DCT-VIII) . Table 2 shows the basis functions of DCT-II, DCT-VIII and DST-VII for N-point Input.
Table 2 Transform Basis functions of DCT-II, DCT-VIII and DST-VII for N-point Input
Figure PCTCN2018107089-appb-000001
In order to keep the orthogonality of the transform matrix, the transform matrices may be quantized more accurately than the transform matrices in the HEVC. To keep the intermediate values of the transformed coefficients within the 16-bit range after horizontal and vertical transform, all the coefficients may be 10-bit.
FIG. 8 illustrates an example diagram of a process 800 of MTS.
At block 802, whether the CB has a non-zero coefficient may be determined. If the CB has the non-zero coefficient, whether a first flag is 1 or 0 may be determined at block 804. If the CB does not have non-zero coefficient, the process 800 may proceed to an end at block 806
If the first flag is 0, DCT-II may be used for both vertical and horizontal directions at block 808.
If the first flag is 1, whether the CB is an intra CB or an inter CB may be determined at block 810. If the CB is the intra CB, whether the number of non-zero coefficients of the CB is greater than two may be determined at block 812.
At block 814, if the CB is the inter CB, regardless of the number of non-zero coefficients, the process 800 may proceed to block 816.
At block 818, if the number of non-zero coefficients of the CB is equal or less than two (that is, the intra CB with only 1 or 2 non-zero coefficients) , no flag is signaled, and DST-VII may be used horizontally and vertically.
At block 816, if it is determined in the block 812 that the number of non-zero coefficients of the CB is greater than two, or if the process 800 proceeds from the block 814, a second flag and a third flag may be provided. The second flag may indicate that any of DST-VII or DCT-VIII may be used for the horizontal direction. The third flag may indicate that any of DST-VII or DCT-VIII may be used for the vertical direction.
After blocks 816 and 818, the process may proceed to the end at block 806.
The number of luma transform candidates for 4, 8, 16, and 32-point transforms may be three (i.e., DCT-II, DST-VII, and DST-VIII) . However, for the 2-point transform of 2 × N or N × 2 CB, it may not be necessary to have many transform candidates. For example, the number of transform candidates for 2 × N or N × 2 CB may be reduced to only one or two transform candidates; only one transform candidate DCT-II may be used for 2 × N or N × 2 CB; only DCT-II may be used for the 2-point transform of the 2 × N or N × 2 CB in both horizontal and vertical directions; and only DST-VII may be used for the 2-point transform of the 2 × N or N × 2 CB. There is no flag to indicate whether the DCT-II, DST-VII, or DCT-VII is used. Also, a transform skip mode may be supported by the 2-point side of 2 × N or N × 2 CB.
Regarding the coefficients coding, the transform coefficients may be scaled, quantized, and entropy coded. In the entropy coding of the coefficients, the position of the last non-zero transform coefficient, a significance map, sign bits and levels for the transform coefficients may be transmitted.
In the HEVC and developing H. 266/VVC, the significance map may be derived for significance groups relating to the fixed size 4×4 sub-blocks. For all groups having at least one coefficient preceding the last coefficient position, a significant group flag specifying a non-zero coefficient group may be transmitted, followed by coefficient significance flags for each coefficient prior to the indicated position of the last significant coefficient. The context models  for the significant coefficient flags are dependent on the coefficient position as well as the values of the right and the bottom significant group flags. The significance group size in residual coding of the 2 × N or N × 2 CB is smaller than that of other CBs. The other CBs may have the same significance group size.
Because the significant group may relate to the fixed size of 4 × 4 sub-block, the significant group may work only for the CB size larger than 4 × 4, but not for 2 × N or N × 2 CB. For the 2 × N or N × 2 CB, the sub-block size 2 × 2 may be used as the significance group. That is, for all groups having at least one coefficient preceding the last coefficient position, a significant group flag specifying a non-zero coefficient group may be transmitted. For the 2 × 2 sub-block, the tool sign hiding may be disabled.
Regarding the intra mode directions, in the developing H. 266/VVC, the number of intra prediction angles may be 85 for the luma CB. However, for the small CB size such as width or height equal to 2, the number of prediction angles in the 2-point side may be less, for example, 40-70.
FIG. 9 illustrates an example diagram 900 where a Position Dependent intra Prediction Combination (PDPC) is applied. The PDPC is a tool used in the H. 266/VVC. When the decoder (not shown) applies the PDPC, the decoder may perform intra-prediction and then use neighboring pixels to refine the predictor pixels. Referring to FIG. 9, pred (x, y) 902 may be the original pixel generated by intra-prediction. By PDPC, the decoder may derive a new prediction value, pred’ (x, y) , by the weighted average of pred (x, y) 902  and the neighboring pixels, R -1, -1 904, R x, -1 906, and R -1, y 908. However, if a side of the CB is equal to 2, the PDPC may be disabled or simplified. An example of a PDPC simplification may be that, if the horizontal side of the block is equal to 2, the decoder may derive a new prediction value, pred” (x, y) , by the weighted average of pred (x, y) 902 and the two neighboring pixels only, for example, (R x, -1 906 and R -1, y 908) or (R -1, -1 904 and R -1, y 908) .
FIG 10A illustrates an example diagram of a four-sample long vertical block boundary formed by two adjacent coding blocks P 1002 and Q 1004.
Referring to FIG. 10A, the coding block P 1002 may include  lines  0, 1, 2, and 3. Line 0 of the coding block P 1002 may include samples p3 0, p2 0, p1 0, and p0 0Line 1 of the coding block P 1002 may include samples p3 1, p2 1, p1 1, and p0 1Line 2 of the coding block P 1002 may include samples p3 2, p2 2, p1 2, and p0 2. Line 3 of the coding block P 1002 may include samples p3 3, p2 3, p1 3, and p0 3.
Referring to FIG. 10A, the coding block Q 1004 may include  lines  0, 1, 2, and 3. Line 0 of the coding block Q 1004 may include samples q0 0, q1 0, q2 0, and q3 0Line 1 of the coding block Q 1004 may include samples q0 1, q1 1, q2 1, and q3 1Line 2 of the coding block Q 1004 may include samples q0 2, q1 2, q2 2, and q3 2. Line 3 of the coding block Q 1004 may include samples q0 3, q1 3, q2 3, and q3 3.
FIG. 10B illustrates an example diagram of a two-sample long vertical block boundary formed by two adjacent coding block P 1006 and Q 1008.
Referring to FIG. 10B, the coding block P 1006 may include line 0 and line 1. Line 0 of the coding block P 1006 may include p3 0, p2 0, p1 0, and p0 0Line 1 of the coding block P 1006 may include p3 1, p2 1, p1 1, and p0 1.
Referring to FIG. 10B, the coding block Q 1008 may include line 0 and line 1. Line 0 of the coding block Q 1008 may include samples q0 0, q1 0, q2 0, and q3 0Line 1 of the coding block Q 1008 may include samples q0 1, q1 1, q2 1, and q3 1.
FIGs. 11A-11D illustrate an example flowchart 1100 of a deblocking filtering (DBF) process. The DBF may be used to reduce the blocking artifacts due to block-based coding. The DBF may be applied to all samples adjacent to a boundary except for the case where the boundary is the picture boundary. The DBF in the developing H. 266/VVC may be similar to that of the H. 265/HEVC. For example, edges of the 4 × 4, 2 × N, or N × 2 luma CB may be filtered by the deblocking process.
Referring to FIG. 11A, the deblocking filtering process may include the following.
At block 1102, a deblocking filtering on/off decision for each boundary may be made, and the deblocking filtering operation may be performed at block 1104.
Referring to FIG. 11B, the block 1102 may further include the following.
At block 1106, the boundary strength (BS) of the boundary may be derived as 0, 1, or 2, and whether the BS is greater than 0 may be determined at block 1108. If the BS is greater than 0, conditions defined by the expression may be checked at block 1110 so as to decide whether the deblocking filtering need to be applied or not.
For the boundary of four-sample length as shown in FIG. 10A, the conditions may be defined by expression (1) below. The first and fourth lines in a block boundary of length 4 may be evaluated. For example, line 0 and line 3 of the coding block P 1002 and the coding block Q 1004 marked by dashed lines in FIG. 10A may be used to define the conditions:
|p2, 0-2p1, 0+p0, 0|+|p2, 3-2p1, 3+p0, 3|
+|q2, 0-2q1, 0+q0, 0|+|q2, 3-2q1, 3+q0, 3|>β  (1)
In the above expression (1) , β may be a threshold and may depend on the QP which is used to adjust the quantization step for quantizing the prediction error coefficients. The dependence between the threshold β and the QP may be shown in FIG. 12A as described later.
For the boundary of two-sample length as shown in FIG. 10B, the conditions may be defined by expression (2) below. For example, line 0 of the coding block P 1006 and line 0 of the coding block Q 1008 marked by dashed lines in FIG. 10B may be evaluated and used to define the conditions:
2*|p2, 0-2p1, 0+p0, 0|
+2*|q2, 0-2q1, 0+q0, 0|>β  (2)
In the above expression (2) , β may be a threshold, whose value may be the same as that in expression (1) .
At block 1112, for the block boundary with an associate BS greater than zero, and meeting conditions in expression (1) or (2) , the deblocking filtering decision may be made.
Referring to FIG. 11C, the block 1104 may further include the following.
At block 1114, conditions may be checked so as to make a normal or strong filtering decision. In the H. 266/VVC, there may be two deblocking filtering modes, namely, the normal filtering mode and the strong filtering mode. The DBF may switch between the normal and the strong filtering modes based on the local signal characteristics. Whether to apply strong or normal filtering mode may be determined based on the lines across the block boundary of four samples. The expressions (3) , (4) , and (5) below using information from line i may be used to define the conditions:
|p2, i-2p1, i+p0, i|+|q2, i-2q1, i+q0, i|<β/8   (3)
|p3, i-p0, i|+|q0, i-q3, i|<β/8   (4)
|p0, i-q0, i|<2.5tc   (5)
In the above expressions (3) , (4) and (5) , i may be the line number, and tc may be the threshold parameter. The threshold parameter tc depends on a QP. The dependence between the tc and the QP may be shown in FIG. 12B as described later.
At block 1116, the strong filtering may be applied to the block boundary if the conditions defined by the above expressions (3) , (4) and (5) are met. For the block boundary of four samples in length, for example, the boundary formed by the coding blocks P 1002 and Q 1004 as shown in FIG. 10A, if expressions (3) , (4) and (5) hold for both lines 0 and 3 (i =0 and i = 3) of the coding blocks P 1002 and Q 1004 denoted by dashed lines as shown in FIG. 10A, the strong filtering may be applied to the block boundary. For the block boundary of two samples in length, for example, the boundary formed by the coding blocks P 1006 and Q 1008 as shown in FIG. 10B, if expressions (3) , (4), and (5) hold for lines 0 (i=0) of the coding blocks P 1006 and Q 1008 as denoted by dashed lines as shown in FIG. 10B, the strong filtering may be applied to the block boundary.
At block 1118, otherwise, if any of the conditions defined by expressions (3) , (4) , and (5) is not met, normal filtering may be applied to the block boundary.
Referring to FIG. 11D, the block 1118 may further include the following to make the normal filtering mode decision. The normal filtering has two modes differing in the number of pixels being modified on each side of the block boundary. One of the two modes may be selected for each boundary.
At block 1120, conditions may be checked so as to make a normal filtering mode decision regarding coding block P.
For the block boundary of four samples in length, for example, the boundary formed by coding blocks P 1002 and Q 1004 as shown in FIG. 10A, the conditions may be defined by the expression (6) below:
|p2, 0-2p1, 0+p0, 0|+|p2, 3-2p1, 3+p0, 3|<3/16β   (6)
For the block boundary of two samples in length, for example, the boundary formed by the coding blocks P 1006 and Q 1008 as shown in FIG. 10B, the conditions may be defined by the expression (7) below:
2*|p2, 0-2p1, 0+p0, 0|<3/16β    (7)
In the expressions (6) and (7) above, β may be a threshold, whose value may be the same as that in expression (1) .
At block 1122, if the conditions of the expressions (6) or (7) are met, the two nearest rows of pixels to the block boundary may be modified in the coding block P. For the block boundary of four samples in length, for example, the boundary formed by the coding blocks P 1002 and Q 1004 as shown in FIG. 10A, the two nearest rows of pixels to the block boundary may be modified in the coding block P 1002 if the expression (6) is true, for example, rows p0i and p1i, where i is the line number. For the block boundary of two samples in length, for example, the boundary formed by coding blocks P 1006 and Q 1008 as shown in FIG. 10B, the two nearest rows of pixels to the block boundary may be modified in coding block P 1006 if the expression (7) is true, for example, rows p0i and p1i, where i is the line number.
At block 1124, otherwise, if the conditions are not met, only the nearest row of pixels in coding block P may be modified. For the block  boundary of four samples in length, for example, the boundary formed by coding blocks P 1002 and Q 1004 as shown in FIG. 10A, is not true, only the nearest row of pixels in coding block P 1002 may be modified if the expression (6) , for example, rows p0i, where i is the line number.
For the block boundary of two samples in length, for example, the boundary formed by coding blocks P 1006 and Q 1008 as shown in FIG. 10Bonly the nearest pixel in coding block P 1006 may be modified if the expression (7) is not true, for example, rows p0i, where i is the line number.
At block 1126, conditions may be checked so as to make a normal filtering mode decision regarding coding block Q.
For the block boundary of four samples in length, for example, the boundary formed by the coding blocks P 1002 and Q 1004 as shown in FIG. 10A, the conditions may be defined by the expression (8) below:
|q2, 0-2q1, 0+q0, 0|+|q2, 3-2q1, 3+q0, 3|<3/16β   (8)
For the block boundary of two samples in length, for example, the boundary formed by the coding blocks P 1006 and Q 1008 as shown in FIG. 10B, the conditions may be defined by the expression (9) below:
2*|q2, 0-2q1, 0+q0, 0|<3/16β   (9)
At block 1128, if the conditions of the expressions (8) or (9) are met, the two nearest rows of pixels to the block boundary may be modified in the coding block Q. For the block boundary of four samples in length, for example, the boundary formed by the coding blocks P 1002 and Q 1004 as shown in FIG. 10A, he two nearest rows of pixels to the block boundary may be modified in  coding block Q 1004 if the expression (8) holds, for example, q0i and q1i, where i is the line number. For the block boundary of two samples in length, for example, the boundary formed by the coding blocks P 1006 and Q 1008 as shown in FIG. 10B, the two nearest rows of pixels to the block boundary may be modified in coding block Q 1008 if expression (9) holds, for example, q0i and q1i, where i is the line number.
At block 1130, otherwise, if the conditions are not met, only the nearest row of pixels may be modified in coding block Q. For the block boundary of four samples in length, for example, the boundary formed by the coding blocks P 1002 and Q 1004 as shown in FIG. 10A, only the nearest row of pixels may be modified in the coding block Q 1004 if expression (8) is not true, for example, q0i, where i is the line number. For the block boundary of two samples in length, for example, the boundary formed by the coding blocks P 1006 and Q 1008 as shown in FIG. 10B, only the nearest row of pixels may be modified in the coding block Q 1008 if expression (9) is not true, for example, q0i, where i is the line number.
In the above descriptions with reference to FIGs. 10A, 10B, and 11A-11D, examples are set for vertical block boundaries. However, the deblocking filtering process 1100 is not limited thereto. The deblocking filtering process 1100 may be extended to handle horizontal block boundaries by rotating coding blocks P and Q by 90° in the clockwise/anti-clockwise direction and transposing row and column subscript indices of the samples in blocks P and Q.
FIG. 12A illustrates an example diagram 1200 showing the dependence between the threshold β and QP. Referring to FIG. 12A, β may depend on QP which is used to adjust the quantization step for quantizing the prediction error coefficients.
FIG. 12B illustrates an example diagram 1202 showing the dependence between the threshold parameter tc and QP. Referring to FIG. 12B, tc may depend on QP.
In the above mechanisms and processes, the deblocking filtering of small luma CBs (for example, 2 × N or N × 2 luma CB) may be supported, and the coding performance may be improved.
In the H. 266/VVC, the coding tree supports the ability for the luma block and the chroma block to have separate coding trees. For example, for P and B slices, the luma CTB and the chroma CTB in the same CTU may share the same coding tree. However, for an I slice, the luma CTB and the chroma CTB in the same CTU may have separate coding trees. If a separate coding tree mode is applied, the luma CTB may be partitioned into luma CBs by one coding tree, while the chroma CTB may be partitioned into chroma CBs by another coding tree. In other words, a CU in the I slice may consist of a luma CB or two chroma CBs, while the CU in the P or B slice may always consist of CBs of all three color components unless the video is monochrome.
For example, when the block partitioning tree, which is used to partition the CTU into CUs or CBs, goes deeper to reach a separation node, the block partitioning tree may be separated into two block partitioning trees for  the luma CB and the chroma CB respectively. Otherwise, if the separation node is not reached, the block partitioning tree may be shared for both the luma CB and the chroma CB.
FIG. 13 illustrates an example flowchart of a process 1300 for applying separate block partitioning trees to the luma CB and the chroma CB.
At block 1302, the following two conditions may be checked for a node, i.e., (1) both width and height of the luma CB of the node is not smaller than a separation size (SepSize) ; and (2) width or height of the luma CB of at least one child node of the node is smaller than the SepSize. If both conditions are met for the node, the node may be determined as the separation node at block 1304. If the node is determined as the separation node, separate block partitioning trees may be applied to the luma CB and the chroma CB at block 1306.
In the above process 1300, the SepSize may be a high-level parameter and may be set at the slice level or a higher level. For example, the minimum luma CB side length may be set to 4 luma samples, and the minimum chroma CB side length may be set to 4 chroma samples, such that there is no 2 ×N or N × 2 chroma CBs. Thus, the hardware implementation complexity may be reduced. Moreover, the block partitioning tree for intra (I) and inter (P and B) slices may be uniform in terms of luma CB and chroma CB separation.
FIG. 14 illustrates an example diagram 1400 showing how to apply separate block partitioning trees for the luma CB and the chroma CB under the separation node.
The size of the CTU 1402 may be 32 × 32, meaning that the CTU 1402 may have one 32 × 32 luma CB and two corresponding chroma CBs (two 16 × 16 chroma CBs for 4: 2: 0 format) . The SepSize may be set to 8, the minimum luma CB side length may be set to 4 luma samples, and the minimum chroma CB side length may be set to 4 chroma samples.
The CTU 1402 may be split by quadtree (QT split) into four 16 × 16  CBs  1404, 1406, 1408, and 1410. Though the CTU 1402 is split by the quadtree in this example, the CTU 1402 may be split by other block partitioning trees such as BT and TT block partitioning trees into other numbers ofCBs.
The 16 × 16 CB 1404 may be split by the vertical binary tree (Ver. BT split) into two 8 × 16  CBs  1412 and 1414.
The 16 × 16 CB 1406 may be split by the quadtree (QT split) into four 8 × 8  CBs  1416, 1418, 1420, and 1422.
The luma CB of the 16 × 16 CB 1410 may be split by the vertical ternary tree (Ver. TT split) into two 4 × 16  luma CBs  1424 and 1426, and one 8 × 16 luma CBs 1428. The chroma CB of the 16 × 16 CB 1410 may be split by the quadtree (QT split) into four 4× 4  chroma CBs  1430, 1432, 1434, and 1436.
The luma CB of the 8 × 16 CB 1412 may be split by the vertical binary tree (Ver. BT split) into two 4 × 16 luma CBs 1438 and luma 1440. The chroma CB of the 8 × 16 CB 1412 may be split by the horizontal binary tree (Hor. BT split) into two 4× 4  chroma CBs  1442 and 1444.
The 8× 16 CB 1414 may be split by the horizontal binary tree (Hor. BT split) into two 8 × 8  CBs  1446 and 1448.
The luma CB of the 8 × 8 CB 1420 may be split by the vertical binary tree (Ver. BT split) into two 4 × 8 luma  CBs  1450 and 1452. The chroma CB 1454 of the 8 × 8 CB 1420 may not be split because the chroma CB 1454 is already at the minimum chroma CB size.
The 4 × 16 luma CB 1440 may be split by the horizontal ternary tree (Hor. TT split) into two 4 × 4 luma  CBs  1456 and 1458 and one 4 × 8 luma CB 1460.
As shown in FIG. 14, there may be three separation nodes in this example, i.e., nodes A, B, and C. The blocks denoted by dashed lines and dotted lines illustrate that block partitioning trees are separated for the luma CB and the chroma CB. For example, dashed lines may indicate that a block partitioning tree is applied to the luma CB, while dotted lines may indicate that another block partitioning tree is applied to the chroma CB. For other blocks that are not denoted by dashed lines or dotted lines, the portioning tree is shared by the luma CB and the chroma CB. The block partitioning tree may be separated when going deeper under the separation node, i.e., when the CB becomes smaller.
Regarding the node A, i.e., the 8 × 16 CB 1412, both the luma width 8 and the luma height 16 are over the SepSize 8. Moreover, each of two  child nodes  1438 and 1440 may have luma width 4 which is smaller than the SepSize 8.Thus, node A may be determined as the separation node. Therefore, the luma  CB and the chroma CB of node A may be split by separate block partitioning trees. On one hand, as denoted by dashed lines 1432, the luma CB of the 16 ×16 CB 1410 may be split by the vertical ternary tree (Ver. TT split) into two 4 × 16  luma CBs  1424 and 1426, and one 8 × 16 luma CBs 1428. On the other hand, as denoted by dotted lines 1464, the chroma CB of the 16 × 16 CB 1410 may be split by the quadtree (QT split) into four 4× 4  chroma CBs  1430, 1432, 1434, and 1436.
Regarding the node B, i.e., the 8 × 8 CB 1420, the luma width 8 equals to the luma height 8 which equals to the SepSize 8. Moreover, each of two  child nodes  1450 and 1452 of node B has luma width 4, which is smaller than the SepSize 8. Thus, node B may be determined as the separation node. Therefore, the luma CB and the chroma CB of node B may be split by separate block partitioning trees. On one hand, as denoted by dashed lines 1466, the luma CB of the 8 × 8 CB 1420 may be split by the vertical binary tree (Ver. BT split) into two 4 × 8 luma  CBs  1450 and 1452. On the other hand, as denoted by dotted lines 1468, the chroma CB 1454 of the 8 × 8 CB 1420 may not be split because the chroma CB 1454 is already at the minimum chroma CB size.
Regarding the node C, i.e., the 16 × 16 CB 1410, the luma width 16 and the luma height 16 are both larger than the SepSize 8. Moreover, each of two  child nodes  1424 and 1428 of node C has luma width 4 which is smaller than the SepSize 8. Thus, node C may be determined as the separation node. Therefore, the luma CB and the chroma CB of node C may be split by separate block partitioning trees. On one hand, as denoted by dashed lines 1470, the  luma CB of the 8 × 16 CB 1412 may be split by the vertical binary tree (Ver. BT split) into two 4 × 16 luma CBs 1438 and luma 1440. On the other hand, as denoted by dotted lines, the chroma CB of the 8 × 16 CB 1412 may be split by the horizontal binary tree (Hor. BT split) into two 4× 4  chroma CBs  1442 and 1444. In this example, as denoted by dashed lines 1474, the 4 × 16 luma CB 1440 may be split by the horizontal ternary tree (Hor. TT split) into two 4 × 4 luma  CBs  1456 and 1458 and one 4 × 8 luma CB 1460.
For example, the workflow of pseudo code of the block partitioning tree for encoding and decoding may be as follows.
Figure PCTCN2018107089-appb-000002
Figure PCTCN2018107089-appb-000003
Figure PCTCN2018107089-appb-000004
Figure PCTCN2018107089-appb-000005
Figure PCTCN2018107089-appb-000006
The developing H. 266/VVC draft text is documented in JVET-K1001. For example, the coding tree syntax may be shown in Tables 3 -5 as below. The pseudo code shown above may have the same meaning as the syntax shown in Tables 3 -5 as shown below. In Tables 3 -5 as shown below, the quadtree and multitype tree may use two functions, but in the pseudo code, one coding_tree () function may be used for easy understanding. In Tables 3-5 as shown below, the SINGLE_TREE may refer to the shared block partitioning tree as described above, the DUAL_TREE_LUMA may refer to the separate block partitioning tree for the luma block, and the DUAL_TREE_CHROMA may refer to the separate block partitioning tree for the chroma block.
Table 3 Coding Tree Unit Syntax
coding_tree_unit () { Descriptor
xCtb= (CtbAddrInRs %PicWidthInCtbsY)  <<  CtbLog2SizeY  
yCtb= (CtbAddrInRs /PicWidthInCtbsY)  <<  CtbLog2SizeY  
coding_quadtree (xCtb, yCtb, CtbLog2SizeY, 0, SINGLE_TREE)   
}  
Table 4 Coding Quadtree Syntax
Figure PCTCN2018107089-appb-000007
Table 5 Multitype Tree Syntax
Figure PCTCN2018107089-appb-000008
Figure PCTCN2018107089-appb-000009
The SepSize may have the same meaning in FIG. 14, the pseudo code, Tables 2 -4, and descriptions thereof. The SepSize may be set as necessary. If the SepSize is set to the CTU 1402 side length, for example, 32 as shown in FIG. 14, the block partitioning tree may be completely separated for the luma CB and the chroma CB from the starting point, i.e., at the CTU level. If the SepSize is set to the minimum luma CB size, for example, 4 as shown in  FIG. 14, the block partitioning tree may be completely shared for the luma CB and the chroma CB throughout the partitioning process.
For the I slice, the texture properties of the luma CB are usually different from the texture properties of the chroma CB. Thus, the block partitioning tree may be separated for the luma CB and the chroma CB. For example, the SepSize may be set to 64 for I slice, given the CTU size equal to 128 × 128.
For P and B slices, the motion information of the luma CB and the chroma CB are usually similar. Thus, the shared block partitioning tree may be used. However, in order to control the minimum CB size for the luma CB and the chroma CB independently, separate block partitioning trees may be used when the shared block partitioning tree goes deeper (i.e., when the partition block becomes smaller) .
When separate block partitioning trees are used for P and B slices, cross-component motion information prediction may be used. In other words, because the luma CB and the chroma CB that share the same region usually have similar motion information, the chroma motion information may be predicted from the collocated luma motion information.
FIG. 15 illustrates an example diagram 1500 of how to conduct the motion information prediction of the chroma CB by copying the motion information of the collocated luma CB.
Referring to FIG. 15, an example 8 × 8 chroma CB 1502 may be divided into four  chroma sub-CBs  1504, 1506, 1508, and 1510. Though the  chroma CB 1502 is divided into four chroma sub-CBs in this example, the chroma CB 1502 may be divided into other numbers of chroma sub-CBs. The chroma sub-CB size may be set at the slice level or a higher level. For example, the chroma sub-CB size may be set as 4 × 4 chroma samples. If the chroma sub-CB size set at the slice level is larger than a current chroma CB size, the current chroma CB may not be further partitioned.
The 16 × 16 luma CB 1512, in the collocated region of the chroma CB 1502, may be divided into four luma sub-CBs, 1514, 1516, 1518, and 1520. Though the luma CB 1512 is divided into four luma sub-CBs in this example, the luma CB 1512 may be divided into other numbers of luma sub-CBs. Each luma sub-CB may have motion information. For example, the luma sub-CB 1514 may have the first motion information. The luma sub-CB 1516 may have the second motion information. The luma sub-CB 1518 may have the third motion information. The luma sub-CB 1520 may have the fourth motion information.
Each luma sub-CB may correspond to one chroma sub-CB. For example, the chroma sub-CB 1504 may correspond to the luma sub-CB 1514. The chroma sub-CB 1506 may correspond to the luma sub-CB 1516. The chroma sub-CB 1508 may correspond to the luma sub-CB 1518. The chroma sub-CB 1510 may correspond to the luma sub-CB 1520.
For each chroma sub-CB, 1504, 1506, 1508, or 1510, the motion information of the corresponding luma sub-CB may be directly copied. For example, the first motion information of the luma sub-CB 1514 may be copied  for the chroma sub-CB 1504. The second motion information of the luma sub-CB 1516 may be copied for the chroma sub-CB 1506. The third motion information of the luma sub-CB 1518 may be copied for the chroma sub-CB 1508. The fourth motion information of the luma sub-CB 1520 may be copied for the chroma sub-CB 1510.
FIG. 16 illustrates an example flowchart 1600 of a process for conducting the motion information prediction of the chroma CB by copying the motion information of the collocated luma block.
At block 1602, the chroma CB may be divided into multiple chroma sub-CBs. At block 1604, the luma CB which is in the collocated region of the chroma CB may be divided into multiple luma sub-CBs. The number of the luma CB may be the same as the number of the chroma sub-CBs. Each luma sub-CB may have motion information. Each luma sub-CB may correspond to one chroma sub-CB.
At block 1606, the motion information of the luma sub-CB may be copied for each corresponding chroma sub-CB. The process 1600 may also be signaled as the first merge candidate at the chroma CB level, i.e., the merge index 0. The first merge candidate and the merge index 0 are defined in video coding standards such as the HEVC standard.
FIG. 17. illustrates an example diagram 1700 of how to conduct the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
FIG. 17 shows an example chroma CB 1702 which may have the size of 8 × 8 chroma samples. The chroma sub-CB size may be set at the slice level or a higher level. for example, the chroma sub-CB size may be set as 8 ×8 chroma samples. If the chroma sub-CB size set at the slice level is larger than a current chroma CB size, the current chroma CB may not be partitioned. In this example, the chroma CB 1702 may not be divided. Though in this example, the chroma CB 1702 is not divided, the chroma CB 1702 may be divided into several chroma sub-CBs in other examples.
The luma CB 1704 in the collocated luma region of the chroma CB, may have 16 × 16 luma samples in the 4: 2: 0 chroma sampling format. The luma CB 1704 may be divided into four  luma sub-CBs  1706, 1708, 1710, and 1712. Though the luma CB is divided into four luma sub-CBs, the luma CB may be divided into other numbers of luma sub-CBs in other examples. In this example, each  luma sub-CB  1706, 1708, 1710, or 1712 may have motion information. For example, the luma sub-CB 1706 may have the fifth motion information. The luma sub-CB 1708 may have the sixth motion information. The luma sub-CB 1710 may have the seventh motion information. The luma sub-CB 1712 may have the eighth motion information.
The fifth, the sixth, the seventh, and the eighth motion information of the luma sub-CBs 1706, 1708, 1710, and 1712 within the collocated region of the chroma CB 1702 may be used as motion information candidates for the chroma CB 1702. The fifth, the sixth, the seventh, and the eighth motion information may be assigned to be left-top, right-top, left-bottom, and right- bottom motion information according to the relative location of the luma sub-CBs 1706, 1708, 1710, and 1712 within the collocated region. For example, the fifth motion information of the luma sub-CB 1706 may be assigned to be the left-top motion information. The sixth motion information of the luma sub-CB 1708 may be assigned to be the right-top motion information. The seventh motion information of the luma sub-CB 1710 may be assigned to be the left-bottom motion information. The eighth motion information of the luma sub-CB 1712 may be assigned to be the right-bottom motion information. The number of motion information candidates within the collocated luma region may be set at the slice level or a higher level.
At the chroma CB level, there may be a syntax element indicating which one of the motion information candidates within the collocated luma region is selected as the motion information of the chroma CB 1702. Furthermore, a motion vector (MV) of the selected motion information candidate may be used as the motion vector prediction (MVP) for the chroma CB 1702. Motion vector difference (mvd) may be signaled so that a final MV of the chroma CB 1702 is defined as MV = MVP + MVD.
FIG. 18 illustrates an example flowchart of a process 1800 for conducting the motion information prediction of the chroma CB by selecting one of the motion information candidates of the collocated luma CB.
At block 1802, the chroma CB may be treated as a whole. At block 1804, the luma CB, which is in the collocated region of the chroma CB, may be divided into multiple luma sub-CBs. Each luma sub-CB may have motion  information. The motion information of multiple luma sub-CBs may become multiple motion information candidates. At block 1806, one of the multiple motion information candidates may be selected as the motion information of the chroma CB. At the chroma CB level, there may be a syntax element indicating which one of the multiple motion information candidates is selected as the motion information of the chroma CB.
The  above processes  1600 and 1800 may be signaled at the chroma CB level. That is, for the chroma CB, there may be a syntax element indicating the usage of the  process  1600 or 1800. If the process 1600 is signaled, the chroma CB may directly re-use the motion information of the collocated luma region at the sub-CB granularity. If the process 1800 is signaled, the chroma CB may select one of multiple motion information candidates from the collocated luma region.
Though in the above processes, the luma CB in the collocated region is used for the motion information prediction of the chroma CB, other luma CBs in nearby regions may be used for the motion information prediction of the chroma CB in other examples.
With processes and mechanisms discussed herein, the chroma motion information may be predicted from the luma motion information. Thus, the coding efficiency may be improved.
In the developing H. 266/VVC, in addition to DCT-II which has been employed in the HEVC, the MTS scheme may be used for residual coding both inter and intra coded blocks. In order to control the MTS scheme, a plurality of  enabling flags may be specified at the SPS level for intra and inter picture prediction, respectively. For example, when MTS is enabled at the SPS level, a CU level flag (MTS_CU_flag) may be signaled to indicate whether MTS is applied or not. The MTS may be applied only to the luma CB. The MTS_CU_flag may be signaled when the following conditions are satisfied: (1) both width and height of the intra luma CB are smaller than or equal to 32; and (2) the coded block flag (CBF) of the intra luma CB is equal to one.
If the MTS_CU_flag is equal to zero, DCT-II may be applied in both vertical and horizontal directions. However, if the MTS_CU_flag is equal to one, two other flags may be additionally signaled to indicate the transform type for the horizontal and vertical directions, respectively. For intra CU, two flags, i.e., MTS_Hor_flag and MTS_Ver_flag may be signaled when the number of non-zero coefficients is greater than two. However, for inter CU, regardless of the number of non-zero coefficients, two flags i.e., MTS_Hor_flag and MTS_Ver_flag may be signaled. For example, for intra CU with only 1 or 2 non-zero coefficients, DST-VII may be used both horizontally and vertically without signaling the additional two flags when the MTS_CU_flag is equal to one. Transform and signaling mapping table is shown in Table 6.
Table 6 Transform and Signaling Mapping Table
Figure PCTCN2018107089-appb-000010
Figure PCTCN2018107089-appb-000011
As in the HEVC, the residual of a block can be coded with transform skip mode. To avoid the redundancy of syntax coding, the transform skip flag may not be signaled when the MTS_CU_flag at the CU level is not equal to zero. For inter prediction residual, the signaling of DST-VII and DCT-VIII may be applied reversely as shown in Table 6.
The MTS may adapt with different residual distribution, so that the encoder can select the transform which has the best energy compaction property for one residual block to promote the compression performance. However, there may also be side information (MTS_CU_flag, MTS_Hor/Ver_flag) to be signaled to indicate which transform may be used. The side information may raise the bit-rate cost of the encoder. The side information cost may be larger for small size block than that for big size block. For small size intra CB, the residual distribution may be more regular. That is, the residual energy increases from top-left corner to right-bottom corner, because of the longer prediction distance, which fits properly for the DST-VII.
For an intra luma CB, if the side length (width or height) of the intra luma CB is equal to 4 samples, the transform for this side (width or height)  may always be DST-VII, i.e., the DCT-II and DCT-VIII may not be used for this case. For example, for an intra luma CB with width equal to 4, the horizontal transform may be fixed to DST-VII (no DCT-II or DCT-VIII) . For an intra luma CB with height equal to 4, the vertical transform may be fixed to DST-VII (no DCT-II or DCT-VIII) . The small size block may be defined as necessary, for example, 4 × N or N × 4 block.
FIG. 19 illustrates an example diagram of an intra luma CB 1900. The intra luma CB 1900 may have the size of 16 × 4. The horizontal transform of the intra luma CB 1900 may use the MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII. The vertical transform of the intra luma CB 1900 may always use DST-VII.
FIG. 20 illustrates an example flowchart 2000 of a signaling/parsing mechanism of the transform of the intra luma CB in FIG. 19.
At block 2002, whether the following preset conditions are satisfied may be determined: (1) both width and height of the intra luma CB are smaller than or equal to 32; and (2) either width or height of the intra luma CB is larger than 4; and (3) the CBF is equal to one. If the preset conditions are satisfied, a first message may be signaled/parsed at block 2004. The first message may be an MTS_CU_flag.
At block 2006, whether the first message meets a first preset condition may be determined. For example, if the MTS_CU_flag is 1, the first message meets the first preset condition. If the MTS_CU_flag is 0, the first message does not meet the first preset condition.
If the first message meets the first preset condition, whether the width of the intra luma CB is equal to 4 may be determined at block 2008. If the width of the intra luma CB is equal to 4, an MTS_Hor_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2010.
Moreover, if the first message meets the first preset condition, whether the height of the intra luma CB is equal to 4 may be determined at block 2012, and if the height of the intra luma CB is equal to 4, an MTS_Ver_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2014.
If the first message does not meet the first preset condition, whether the length of a side of the intra luma CB is equal to 4 may be determined at block 2016. If the length of the side of the intra luma CB is equal to 4, the transform may use DST-VII at block 2018. If the length of the side of the intra luma CB is not equal to 4, the transform may use DCT-II at block 2020.
In the above process 2000, the MTS_Ver_flag and MTS_Hor_flag may not be always signaled/parsed. Moreover, for the CB which has width or height larger than 4, the signaling/parsing mechanism may be the same as that in developing H. 266/VVC. A transform mapping table may be shown in Table 7.
Table 7 Transform Mapping Table
Figure PCTCN2018107089-appb-000012
Figure PCTCN2018107089-appb-000013
FIG. 21 illustrates an example diagram of an intra luma CB 2100. The intra luma CB 2100 may have a size of 16 × 4. For the 16 × 4 intra luma CB 2100. The horizontal transform, which is the 16-point transform, may use the MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII, and the vertical transform, which is the 4-point transform, may use DCT-II or DST-VII.
FIG. 22 illustrates an example flowchart 2200 of the signaling/parsing mechanism of the transform of the intra luma CB 2100 in FIG. 21.
At block 2202, whether the following preset conditions are satisfied may be determined: (1) both width and height of the intra luma CB are smaller than or equal to 32; and (2) the CBF is equal to one.
If the preset conditions (1) , and (2) are satisfied, a first message may be signaled/parsed at block 2204.
Whether the first message meets a first preset condition may be determined at block 2206. For example, if the MTS_CU_flag is 1, the first  message meets the first preset condition. If the MTS_CU_flag is 0, the first message does not meet the first preset condition.
If the first message meets the first preset condition, whether the width of the intra luma CB is equal to 4 may be determined at block 2208, and if the width of the intra luma CB is equal to 4, the MTS_Hor_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2210.
Moreover, if the first message meets the first preset condition, whether the height of the intra luma CB is equal to 4 may be determined at block 2212, and if the height of the intra luma CB is equal to 4, the MTS_Ver_flag may not be signaled/parsed and may be derived to be 0 indicating that DST-VII is used at block 2214.
If the first message does not meet the first preset condition, the transform may use DCT-II At block 2216 at block 2216.
In the above process 2200, the MTS_Ver_flag and MTS_Hor_flag may not be always signaled/parsed. Moreover, for the CB which has width or height larger than 4, the signaling/parsing mechanism may be the same as that in the developing H. 266/VVC, and the transform mapping table may be the same as Table 6.
With the processes and mechanisms discussed herein, the efficiency of transform may be improved.
FIG. 23A illustrates an example system 2300 for implementing the processes and mechanisms described with reference to FIGs 1-12.
The techniques and mechanisms described herein may be implemented by multiple instances of the system 2300 as well as by any other computing device, system, and/or environment. The system 2300 shown in FIG. 23 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein. Other well-known computing devices, systems, environments and/or configurations that may be suitable for use with the embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, implementations using field programmable gate arrays ( “FPGAs” ) and application specific integrated circuits ( “ASICs” ) , and/or the like.
The system 2300 may include one or more processors 2302 and system memory 2304 communicatively coupled to the processor (s) 2302. The processor (s) 2302 may execute instructions to cause the processor (s) 2302 to perform a variety of functions. In some embodiments, the processor (s) 2302 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2302 may possess its own local memory,  which also may store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of the system 2300, the system memory 2304 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
The system 2300 may additionally include an input/output (I/O) interface 2306 for receiving/outputting data. The system 2300 may also include a communication module 2308 allowing the system 2300 to communicate with other devices (not shown) over a network (not shown) . The network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
The system memory 2304 may include one or more computer-executable modules (modules) that are executable by the processor (s) 2302. The modules may include the following.
A first luma block width determination module 2310 may be used for determining whether a luma block has width equal to 8.
A first syntax element providing module 2312 may be used for providing a first syntax element to indicate that the luma block is vertically split, upon determining that the luma block has the width equal to 8.
A first luma block height determination module 2314 may be used for determining whether the luma block has height equal to 8.
A second syntax element providing module 2316 may be used for providing a second syntax element to indicate that the luma block is horizontally split, upon determining that the luma block has the height equal to 8.
A second luma block width determination module 2318 may be used for determining whether the luma block has the width equal to 4.
A third syntax element providing module 2320 may be used for providing a third syntax element to indicate that the luma block is vertically split, upon determining that the luma block has the width equal to 4.
A second luma block height determination module 2322 may be used for determining whether the luma block has the height equal to 4. And
A fourth syntax element providing module 2324 may be used for providing a fourth syntax element to indicate that the luma block is horizontally split, upon determining that the luma block has the height equal to 4.
splitting module 2326 may be used for splitting the luma block based on the first, second, third, and fourth syntax element to obtain a plurality of 2 × n or n × 2 luma coding blocks (CBs) .
A DCT-II applying module 2328 may be used for applying DCT-II in both horizontal and vertical directions of transform of a CB of the plurality of 2 × N or N × 2 luma CBs.
A deblocking filtering decision making module 2330 may be used for making a deblocking filtering decision.
A deblocking filtering performing module 2332 may be used for performing a deblocking filtering operation.
FIG. 23B illustrates an example diagram of the deblocking filtering decision making module 2340 in FIG. 23A. Referring to FIG. 23B, the deblocking filtering decision making module 2340 may include the following.
A boundary strength (BS) deriving module 2344 may be used for deriving the BS of a boundary formed by a coding block P and a coding block Q.
BS determination module 2346 may be used for determining whether the BS is greater than 0.
first checking module 2348 may be used for checking whether an expression (a) is true upon determining that the BS is greater than 0,
2*|p2, 0-2p1, 0+p0, 0|
+2*|q2, 0-2q1, 0+q0, 0|>β  (a)
wherein β is a threshold depending on a quantization parameter, p2, 0, p1, 0, p0, 0 are samples in the coding block P.
The first checking module 2348 may also be used for making the deblocking filtering decision for the boundary if the expression (a) is true.
FIG. 23C illustrates an example diagram of the deblocking filtering performing module 2342 in FIG. 23A. Referring to FIG. 23C, wherein the deblocking filtering performing module 2342 may include the following.
A second checking module 2350 may be used for checking whether expressions (b) , (c) , and (d) are true for i = 0,
|p2, i-2p1, i+p0, i|+|q2, i-2q1, i+q0, i|<β/8   (b)
|p3, i-p0, i|+|q0, i-q3, i|<β/8    (c)
|p0, i-q0, i|<2.5tc   (d)
wherein i is a line number, tc is a threshold parameter, p2, i, p1, i, p0, i, p3, i, and p0, i are samples in the coding block P, and q2, i, q1, i, q0, i, q0, i, q3, i, and q0, i are samples in the coding block Q.
strong filtering module 2352 may be used for applying strong filtering if the expressions (b) , (c) , and (d) are true for i = 0.
normal filtering module 2354 may be used for applying normal filtering if any of the expressions (b) , (c) , and (d) is not true for i = 0.
FIG. 23D illustrates an example diagram of the normal filtering module 2354 in FIG. 23C. Referring to FIG. 23D, the normal filtering module 2354, may include the following.
third checking module 2356 may be used for checking whether an expression (e) is true.
2*|p2, 0-2p1, 0+p0, 0|<3/16β   (e)
A first pixel modifying module 2358 for modifying two nearest rows of pixels to the boundary in the coding block P if the expression (e) is true.
A second pixel modifying module 2360 may be used for modifying one nearest row of pixels in the coding block P if the expression (e) is not true.
fourth checking module 2362 may be used for checking whether an expression (f) is true,
2*|q2, 0-2q1, 0+q0, 0|<3/16β   (f)
A third pixel modifying module 2364 for modifying two nearest rows of pixels to the boundary in the coding block Q if the expression (f) is true.
A fourth pixel modifying module 2366 may be used for modifying one nearest row of pixels in the coding block Q if the expression (f) is not true.
FIG. 24 illustrates an example system 2400 for implementing the processes and mechanisms described with reference to FIGs 13-18.
The techniques and mechanisms described herein may be implemented by multiple instances of the system 2400 as well as by any other computing device, system, and/or environment. The system 2400 shown in FIG. 24 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein. Other well-known computing devices, systems, environments and/or configurations that may be suitable for use with the embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, implementations using field programmable gate arrays ( “FPGAs” ) and application specific integrated circuits ( “ASICs” ) , and/or the like.
The system 2400 may include one or more processors 2402 and system memory 2404 communicatively coupled to the processor (s) 2402. The  processor (s) 2402 may execute instructions to cause the processor (s) 2402 to perform a variety of functions. In some embodiments, the processor (s) 2402 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2402 may possess its own local memory, which also may store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of the system 2400, the system memory 2404 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
The system 2400 may additionally include an input/output (I/O) interface 2406 for receiving/outputting data. The system 2400 may also include a communication module 2408 allowing the system 2400 to communicate with other devices (not shown) over a network (not shown) . The network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
The system memory 2404 may include one or more computer-executable modules (modules) that are executable by the processor (s) 2402. The modules may include the following.
A condition determination module 2410 may be used for determining whether conditions are met for a node. The conditions may include:  (1) both width and height of a luma CB of the node being not smaller than a separation size, and (2) width or height of the luma CB of at least one child node of the node being smaller than the separation size.
A separation node determination module 2412 may be used for determining that the node is a separation node upon determining that the conditions (1) and (2) are both met for the node.
A tree applying module 2414 may be used for applying a first block partitioning tree to the luma CB of the node and applying a second block partitioning tree to a chroma CB of the node.
A chroma CB dividing module 2416 may be used for dividing the chroma CB into multiple chroma sub CBs.
A first luma CB dividing module 2418 may be used for dividing the luma CB into multiple luma sub CBs. Each of the multiple luma sub CBs may correspond to respective one of the multiple chroma sub CBs. Each of the multiple luma sub CBs may have motion information.
A motion information copying module 2420 may be used for copying the motion information of one of the multiple luma sub CBs for a corresponding one of the multiple chroma sub CBs.
A chroma CB treating module 2422 for treating the chroma CB as a whole.
A second luma CB dividing module 2424 may be used for dividing the luma CB into multiple luma sub CBs. Each of the multiple luma sub CBs  may have motion information. The motion information of multiple luma sub CBs may be multiple motion information candidates.
A motion information selecting module 2426 may be used for selecting one of the multiple motion information candidates for the chroma CB.
FIG. 25 illustrates an example system 2500 for implementing the processes and mechanisms described with reference to FIGs 19-22.
The techniques and mechanisms described herein may be implemented by multiple instances of the system 2500 as well as by any other computing device, system, and/or environment. The system 2500 shown in FIG. 25 is only one example of a system and is not intended to suggest any limitation as to the scope of use or functionality of any computing device utilized to perform the processes and/or procedures discussed herein. Other well-known computing devices, systems, environments and/or configurations that may be suitable for use with the embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, implementations using field programmable gate arrays ( “FPGAs” ) and application specific integrated circuits ( “ASICs” ) , and/or the like.
The system 2500 may include one or more processors 2502 and system memory 2504 communicatively coupled to the processor (s) 2502. The  processor (s) 2502 may execute instructions to cause the processor (s) 2502 to perform a variety of functions. In some embodiments, the processor (s) 2502 may include a central processing unit (CPU) , a graphics processing unit (GPU) , both CPU and GPU, or other processing units or components known in the art. Additionally, each of the processor (s) 2502 may possess its own local memory, which also may store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of the system 2500, the system memory 2504 may be volatile, such as RAM, non-volatile, such as ROM, flash memory, miniature hard drive, memory card, and the like, or some combination thereof.
The system 2500 may additionally include an input/output (I/O) interface 2506 for receiving/outputting data. The system 2500 may also include a communication module 2508 allowing the system 2500 to communicate with other devices (not shown) over a network (not shown) . The network may include the Internet, wired media such as a wired network or direct-wired connections, and wireless media such as acoustic, radio frequency (RF) , infrared, and other wireless media.
The system memory 2504 may store thereon computer-readable instructions that, when executed by the one or more processors 2502, cause the one or more processors 2502 to perform mechanisms and processes described with reference to 19-22.
The signaling mechanisms and processes discussed herein may also be used for the parsing process of bitstream.
Some or all operations of the methods described above can be performed by execution of computer-readable instructions stored on a computer-readable storage medium, as defined below. The term “computer-readable instructions” as used in the description and claims, include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like.
The computer-readable storage media may include volatile memory (such as random access memory (RAM) ) and/or non-volatile memory (such as read-only memory (ROM) , flash memory, etc. ) . The computer-readable storage media may also include additional removable storage and/or non-removable storage including, but not limited to, flash memory, magnetic storage, optical storage, and/or tape storage that may provide non-volatile storage of computer-readable instructions, data structures, program modules, and the like.
A non-transient computer-readable storage medium is an example of computer-readable media. Computer-readable media includes at least two types of computer-readable media, namely computer-readable storage media  and communications media. Computer-readable storage media includes volatile and non-volatile, removable and non-removable media implemented in any process or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media includes, but is not limited to, phase change memory (PRAM) , static random-access memory (SRAM) , dynamic random-access memory (DRAM) , other types of random-access memory (RAM) , read-only memory (ROM) , electrically erasable programmable read-only memory (EEPROM) , flash memory or other memory technology, compact disk read-only memory (CD-ROM) , digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer-readable storage media do not include communication media.
The computer-readable instructions stored on one or more non-transitory computer-readable storage media that, when executed by one or more processors, may perform operations described above with reference to FIGs. 1-25. Generally, computer-readable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in  which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes.
EXAMPLE CLAUSES
Clause 1. A method, comprising: determining whether a width of a coding block (CB) is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
Clause 2. The method of claim 1, wherein before determining whether the width of the CB is equal to the first preset value the method further comprises: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
Clause 3. The method of claim 2, wherein before parsing the first message from bitstream, the method further comprises determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
Clause 4. The method of claim 2, wherein the first message is an MTS_CU_flag.
Clause 5. The method of claim 4, wherein determining whether the first message meet a first preset condition includes: determining whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
Clause 6. The method of claim 1, further comprising: upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
Clause 7. The method of claim 1, further comprising: upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
Clause 8. The method of claim 1, wherein the first preset value is 4.
Clause 9. The method of claim 3, wherein the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
Clause 10. The method of claim 9, wherein the second preset value is 32, and the third preset value is 1.
Clause 11. The method of claim 3, wherein the second present condition includes: (a) both the width and the height of the CB being smaller  than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
Clause 12. The method of claim 11, wherein the second preset value is 32, and the third preset value is 1.
Clause 13. The method of claim 5, further comprising: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
Clause 14. The method of claim 5, further comprising: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
Clause 15. The method of claim 2, wherein the first message is parsed at a coding unit (CU) level.
Clause 16. The method of claim 1, wherein the CB is an intra luma CB.
Clause 17. An apparatus, comprising: one or more processors; memory, coupled to the one or more processors, the memory storing thereon computer-readable instructions that, when executed by the one or more  processors, cause the one or more processors to perform acts comprising: determining whether a width of the CB is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
Clause 18. The apparatus of claim 17, wherein before determining whether the width of the CB is equal to the first preset value the acts further comprise: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
19. The apparatus of claim 18, wherein before parsing the first message from bitstream, the acts further comprise determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
Clause 20. The apparatus of claim 18, wherein the first message is an MTS_CU_flag.
Clause 21. The apparatus of claim 20, wherein determining whether the first message meet a first preset condition includes: determining  whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
Clause 22. The apparatus of claim 17, wherein the acts further comprise: upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
Clause 23. The apparatus of claim 17, wherein the acts further comprise: upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
Clause 24. The apparatus of claim 17, wherein the first preset value is 4.
Clause 25. The apparatus of claim 19, wherein the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
Clause 26. The apparatus of claim 25, wherein the second preset value is 32, and the third preset value is 1.
Clause 27. The apparatus of claim 19, wherein the second present condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
Clause 28. The apparatus of claim 27, wherein the second preset value is 32, and the third preset value is 1.
Clause 29. The apparatus of claim 21, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
Clause 30. The apparatus of claim 21, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
Clause 31. The apparatus of claim 18, wherein the first message is parsed at a coding unit (CU) level.
Clause 32. The apparatus of claim 17, wherein the CB is an intra luma CB.
Clause 33. A computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform acts comprising: determining whether a width of the CB is equal to a first preset value; upon determining that the width of the CB is  equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction; determining whether a height of the CB is equal to the first preset value; and upon determining that the height of the CB is equal to the first preset value, using DST-VII for the transform of the CB in a vertical direction.
Clause 34. The computer-readable storage medium of claim 33,
wherein before determining whether the width of the CB is equal to the first preset value the acts further comprise: parsing a first message from bitstream; and determining whether the first message meets a first preset condition; and wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition
35. The computer-readable storage medium of claim 34, wherein before parsing the first message from bitstream, the acts comprise determining whether a second preset condition is met for a coding block (CB) ; and wherein parsing the first message from bitstream occurs upon determining that the preset second conditions is met for the CB.
Clause 36. The computer-readable storage medium of claim 34, wherein the first message is an MTS_CU_flag.
Clause 37. The computer-readable storage medium of claim 36, wherein determining whether the first message meet a first preset condition includes: determining whether the MTS_CU_flag is 1 or 0; if the MTS_CU_flag is 1, determining that the first message meets the first preset  condition; and if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
Clause 38. The computer-readable storage medium of claim 33, wherein the acts further comprise: upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
Clause 39. The computer-readable storage medium of claim 33, wherein the acts further comprise: upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
Clause 40. The computer-readable storage medium of claim 33, wherein the first preset value is 4.
Clause 41. The computer-readable storage medium of claim 35, wherein the second preset condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; (b) either the width or the height of the CB being larger than the first preset value; and (c) a coded block flag of the CB being equal to a third preset value.
Clause 42. The computer-readable storage medium of claim 31, wherein the second preset value is 32, and the third preset value is 1.
Clause 43. The computer-readable storage medium of claim 35, wherein the second present condition includes: (a) both the width and the height of the CB being smaller than or equal to a second preset value; and (b) a coded block flag of the CB being equal to a third preset value.
Clause 44. The computer-readable storage medium of claim 33, wherein the second preset value is 32, and the third preset value is 1.
Clause 45. The computer-readable storage medium of claim 37, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value; upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
Clause 46. The computer-readable storage medium of claim 37, wherein the acts further comprise: upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
Clause 47. The computer-readable storage medium of claim 34, wherein the first message is parsed at a coding unit (CU) level.
Clause 48. The computer-readable storage medium of claim 33, wherein the CB is an intra luma CB.
CONCLUSION
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the  specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.

Claims (48)

  1. A method, comprising:
    determining whether a width of a coding block (CB) is equal to a first preset value;
    upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction;
    determining whether a height of the CB is equal to the first preset value; and
    upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
  2. The method of claim 1,
    wherein before determining whether the width of the CB is equal to the first preset value the method further comprises:
    parsing a first message from bitstream; and
    determining whether the first message meets a first preset condition; and
    wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
  3. The method of claim 2,
    wherein before parsing the first message from bitstream, the method further comprises determining whether a second preset condition is met for a coding block (CB) ; and
    wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
  4. The method of claim 2, wherein the first message is an MTS_CU_flag.
  5. The method of claim 4, wherein determining whether the first message meet a first preset condition includes:
    determining whether the MTS_CU_flag is 1 or 0;
    if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and
    if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  6. The method of claim 1, further comprising:
    upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
  7. The method of claim 1, further comprising:
    upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
  8. The method of claim 1, wherein the first preset value is 4.
  9. The method of claim 3, wherein the second preset condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a second preset value;
    (b) either the width or the height of the CB being larger than the first preset value; and
    (c) a coded block flag of the CB being equal to a third preset value.
  10. The method of claim 9, wherein the second preset value is 32, and the third preset value is 1.
  11. The method of claim 3, wherein the second present condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a second preset value; and
    (b) a coded block flag of the CB being equal to a third preset value.
  12. The method of claim 11, wherein the second preset value is 32, and the third preset value is 1.
  13. The method of claim 5, further comprising:
    upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value;
    upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and
    upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  14. The method of claim 5, further comprising:
    upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  15. The method of claim 2, wherein the first message is parsed at a coding unit (CU) level.
  16. The method of claim 1, wherein the CB is an intra luma CB.
  17. An apparatus, comprising:
    one or more processors;
    memory, coupled to the one or more processors, the memory storing thereon computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts comprising:
    determining whether a width of the CB is equal to a first preset value;
    upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction;
    determining whether a height of the CB is equal to the first preset value; and
    upon determining that the height of the CB is equal to the first preset value, using the DST-VII for the transform of the CB in a vertical direction.
  18. The apparatus of claim 17,
    wherein before determining whether the width of the CB is equal to the first preset value the acts further comprise:
    parsing a first message from bitstream; and
    determining whether the first message meets a first preset condition; and
    wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
  19. The apparatus of claim 18,
    wherein before parsing the first message from bitstream, the acts further comprise determining whether a second preset condition is met for a coding block (CB) ; and
    wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
  20. The apparatus of claim 18, wherein the first message is an MTS_CU_flag.
  21. The apparatus of claim 20, wherein determining whether the first message meet a first preset condition includes:
    determining whether the MTS_CU_flag is 1 or 0;
    if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and
    if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  22. The apparatus of claim 17, wherein the acts further comprise:
    upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
  23. The apparatus of claim 17, wherein the acts further comprise:
    upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
  24. The apparatus of claim 17, wherein the first preset value is 4.
  25. The apparatus of claim 19, wherein the second preset condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a second preset value;
    (b) either the width or the height of the CB being larger than the first preset value; and
    (c) a coded block flag of the CB being equal to a third preset value.
  26. The apparatus of claim 25, wherein the second preset value is 32, and the third preset value is 1.
  27. The apparatus of claim 19, wherein the second present condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a secondpreset value; and
    (b) a coded block flag of the CB being equal to a third preset value.
  28. The apparatus of claim 27, wherein the second preset value is 32, and the third preset value is 1.
  29. The apparatus of claim 21, wherein the acts further comprise:
    upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value;
    upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and
    upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  30. The apparatus of claim 21, wherein the acts further comprise:
    upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  31. The apparatus of claim 18, wherein the first message is parsed at a coding unit (CU) level.
  32. The apparatus of claim 17, wherein the CB is an intra luma CB.
  33. A computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform acts comprising:
    determining whether a width of the CB is equal to a first preset value;
    upon determining that the width of the CB is equal to the first preset value, using Discrete Sine Transform of type VII (DST-VII) for transform of the CB in a horizontal direction;
    determining whether a height of the CB is equal to the first preset value; and
    upon determining that the height of the CB is equal to the first preset value, using DST-VII for the transform of the CB in a vertical direction.
  34. The computer-readable storage medium of claim 33,
    wherein before determining whether the width of the CB is equal to the first preset value the acts further comprise:
    parsing a first message from bitstream; and
    determining whether the first message meets a first preset condition; and
    wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message meet the first preset condition.
  35. The computer-readable storage medium of claim 34,
    wherein before parsing the first message from bitstream, the acts further comprise determining whether a second preset condition is met for a coding block (CB) ; and
    wherein parsing the first message from bitstream occurs upon determining that the second preset condition is met for the CB.
  36. The computer-readable storage medium of claim 34, wherein the first message is an MTS_CU_flag.
  37. The computer-readable storage medium of claim 36, wherein determining whether the first message meet a first preset condition includes:
    determining whether the MTS_CU_flag is 1 or 0;
    if the MTS_CU_flag is 1, determining that the first message meets the first preset condition; and
    if the MTS_CU_flag is 0, determining that the first message does not meet the first preset condition.
  38. The computer-readable storage medium of claim 33, wherein the acts further comprise:
    upon determining that the width of the CB is equal to the first preset value, an MTS_Hor_flag is not parsed from the bitstream and is derived to be 0.
  39. The computer-readable storage medium of claim 33, wherein the acts further comprise:
    upon determining that the height of the CB is equal to the first preset value, an MTS_Ver_flag is not parsed from the bitstream and is derived to be 0.
  40. The computer-readable storage medium of claim 33, wherein the first preset value is 4.
  41. The computer-readable storage medium of claim 35, wherein the second preset condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a second preset value;
    (b) either the width or the height of the CB being larger than the first preset value; and
    (c) a coded block flag of the CB being equal to a third preset value.
  42. The computer-readable storage medium of claim 31, wherein the second preset value is 32, and the third preset value is 1.
  43. The computer-readable storage medium of claim 35, wherein the second present condition includes:
    (a) both the width and the height of the CB being smaller than or equal to a second preset value; and
    (b) a coded block flag of the CB being equal to a third preset value.
  44. The computer-readable storage medium of claim 33, wherein the second preset value is 32, and the third preset value is 1.
  45. The computer-readable storage medium of claim 37, wherein the acts further comprise:
    upon determining that the first message does not meet the first preset condition, determining whether a length of a side of the CB is equal to the first preset value;
    upon determining that the length of the side of the CB is equal to the first preset value, using the DST-VII for the transform of the CB; and
    upon determining that the length of the side of the CB is not equal to the first value, using Discrete Cosine Transform of type II (DCT-II) for the transform of the CB.
  46. The computer-readable storage medium of claim 37, wherein the acts further comprise:
    upon determining that the first message does not meet the first preset condition, using DCT-II for the transform of the CB in both the horizontal and the vertical directions.
  47. The computer-readable storage medium of claim 34, wherein the first message is parsed at a coding unit (CU) level.
  48. The computer-readable storage medium of claim 33, wherein the CB is an intra luma CB.
PCT/CN2018/107089 2018-09-21 2018-09-21 Transform selection for small size block Ceased WO2020056760A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2018/107089 WO2020056760A1 (en) 2018-09-21 2018-09-21 Transform selection for small size block
CN201910900765.3A CN110944174B (en) 2018-09-21 2019-09-23 Method and device for selecting conversion of small-size blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/107089 WO2020056760A1 (en) 2018-09-21 2018-09-21 Transform selection for small size block

Publications (1)

Publication Number Publication Date
WO2020056760A1 true WO2020056760A1 (en) 2020-03-26

Family

ID=69888117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/107089 Ceased WO2020056760A1 (en) 2018-09-21 2018-09-21 Transform selection for small size block

Country Status (2)

Country Link
CN (1) CN110944174B (en)
WO (1) WO2020056760A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119420938A (en) * 2024-10-31 2025-02-11 湖南国科微电子股份有限公司 Image encoding method, device, terminal equipment and decoding method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015054813A1 (en) * 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
CN105847800A (en) * 2016-05-18 2016-08-10 山东大学(威海) Image compression method based on all phase discrete sine double orthogonal transformation and system
US20180098081A1 (en) * 2016-10-01 2018-04-05 Qualcomm Incorporated Transform selection for video coding
CN108419077A (en) * 2017-02-10 2018-08-17 三星电子株式会社 Image processing method and equipment for executing the adaptive migration processing of sample

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413720B2 (en) * 1998-06-26 2003-06-09 ソニー株式会社 Image encoding method and apparatus, and image decoding method and apparatus
US9215470B2 (en) * 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015054813A1 (en) * 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
CN105847800A (en) * 2016-05-18 2016-08-10 山东大学(威海) Image compression method based on all phase discrete sine double orthogonal transformation and system
US20180098081A1 (en) * 2016-10-01 2018-04-05 Qualcomm Incorporated Transform selection for video coding
CN108419077A (en) * 2017-02-10 2018-08-17 三星电子株式会社 Image processing method and equipment for executing the adaptive migration processing of sample

Also Published As

Publication number Publication date
CN110944174A (en) 2020-03-31
CN110944174B (en) 2023-03-31

Similar Documents

Publication Publication Date Title
US11044473B2 (en) Adaptive loop filtering classification in video coding
US10778974B2 (en) Adaptive loop filter with enhanced classification methods
US20230164332A1 (en) Image coding method on basis of secondary transform and device therefor
US10638126B2 (en) Intra reference filter for video coding
EP3718303B1 (en) Line buffer reduction for adaptive loop filtering in video coding
EP3639518B1 (en) Intra filtering applied together with transform processing in video coding
EP3381186B1 (en) Video coding with coding units including both inter- and intra-predicted prediction units
US20180091825A1 (en) Interpolation filters for intra prediction in video coding
US11539952B2 (en) Implicit transform selection in video coding
CN114391255B (en) System and method for reducing reconstruction errors in video coding based on cross-component correlation
CN113170129B (en) Tree-based Transform Unit (TU) Partitioning for Video Codecs
CN113812155A (en) Interaction between multiple interframe coding and decoding methods
US20240214585A1 (en) Bypass alignment in video coding
WO2020177545A1 (en) Palette size constraint in palette mode for video compression system
WO2020056757A1 (en) Method, apparatus, and computer-readable storage medium for block partitioning tree separation under separation node
WO2020056760A1 (en) Transform selection for small size block
US10708625B2 (en) Adaptive deblocking filter
WO2020056759A1 (en) Method, apparatus, and computer-readable storage medium for small size block coding
WO2022191947A1 (en) State based dependent quantization and residual coding in video coding
WO2020243881A1 (en) Simplified intra block copy
US20250294185A1 (en) System and method for chromaticity intra prediction
JP2026508708A (en) Video encoding/decoding method, device, equipment, system and storage medium
HK40118858A (en) Method and device of decoding video data and method and device of encoding video data
HK40051989B (en) Tree-based transform unit (tu) partition for video coding
HK40051989A (en) Tree-based transform unit (tu) partition for video coding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18934009

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18934009

Country of ref document: EP

Kind code of ref document: A1