CN110944174A - Transform selection for small-sized blocks - Google Patents

Transform selection for small-sized blocks Download PDF

Info

Publication number
CN110944174A
CN110944174A CN201910900765.3A CN201910900765A CN110944174A CN 110944174 A CN110944174 A CN 110944174A CN 201910900765 A CN201910900765 A CN 201910900765A CN 110944174 A CN110944174 A CN 110944174A
Authority
CN
China
Prior art keywords
preset value
equal
message
determining
width
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.)
Granted
Application number
CN201910900765.3A
Other languages
Chinese (zh)
Other versions
CN110944174B (en
Inventor
安基程
孙域晨
楼剑
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
Publication of CN110944174A publication Critical patent/CN110944174A/en
Application granted granted Critical
Publication of CN110944174B publication Critical patent/CN110944174B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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

The application discloses a method and a device for selecting the conversion of small-size blocks, wherein the method comprises the steps of determining whether the width of a CB is equal to a first preset value; upon determining that the width of the CB is equal to the first preset value, determining a discrete sine transform of type VII (DST-VII) for transforming the CB in the horizontal direction; determining whether the height of the CB is equal to a first preset value; and determining DST-VII for transforming the CB in a vertical direction upon determining that the height of the CB is equal to the first preset value.

Description

Transform selection for small-sized blocks
Technical Field
The present disclosure relates generally to the field of image processing, and more particularly to transform selection of small-sized blocks.
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 encoding divides video data into video blocks, which are then encoded using block-based compression techniques. Video blocks are encoded using one or more encoding techniques as well as data compression techniques. Video coding typically involves intra prediction, inter prediction, motion information (including inter prediction direction, reference index, and motion vector, etc.), transforms, quantization, coefficient coding, and the like.
In the developed h.266/general video coding (VVC) standard, the minimum allowed luma (luma) Coding Block (CB) size is 4 × 4 (in samples). That is, the minimum allowable width and height of the luminance CB are 4 luminance samples. However, in some video content full of detail textures (e.g., screen content video), a smaller block partition size may be required. In this case, the current minimum allowable luminance CB size (i.e., 4 × 4) is not sufficiently effective. Further, for 4: 2: 0 sample format, minimum chroma CB size is 2 × 2 chroma samples. However, 2 × 2 chroma CB is difficult to use for hardware implementation. In addition, the minimum chroma CB size may not be independently adjustable in the P-slice and the B-slice.
Further, for a P slice and a B slice, an intra or inter prediction mode, an intra prediction direction, motion information (including an inter prediction direction, a reference index, a motion vector, and the like), and CU level information may be signaled for each luminance CB and each chrominance CB, respectively. However, encoding motion information of luma CB and chroma CB that share the same region independently may be inefficient.
Disclosure of Invention
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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and, upon determining that the height of the CB is equal to the first preset value, transforming the CB in a vertical direction using DST-VII.
An apparatus, comprising: one or more processors; a memory connected to the one or more processors, the memory having stored 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 the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and, upon determining that the height of the CB is equal to the first preset value, transforming the CB in a vertical direction using DST-VII.
A computer-readable storage medium storing computer-readable instructions executable by one or more processors, the computer-readable instructions, when executed by the one or more processors, causing the one or more processors to perform acts comprising: determining whether the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and, upon determining that the height of the CB is equal to the first preset value, transforming the CB in a vertical direction using DST-VII.
Drawings
The detailed description is set forth with reference to the accompanying drawings. In the drawings, 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 shows an exemplary diagram of a picture divided into a plurality of Coding Tree Units (CTUs).
FIG. 2 illustrates an exemplary diagram of four partition types in a multi-type tree structure.
Fig. 3 shows an example diagram of a Coding Unit (CU).
Fig. 4 shows an exemplary diagram of a signaling mechanism of partition information of a quad-tree (quadtree) having a nested multi-type tree coding tree structure.
Fig. 5 shows an exemplary diagram illustrating CTUs divided into CUs by a quadtree having a nested multi-type tree coding tree structure.
Fig. 6 shows an example block diagram showing how a luminance block is divided into several luminances CB.
Fig. 7A and 7B show an example flowchart of a process of dividing a luminance block into several luminances CB using a quad/binary/ternary tree.
Fig. 8 shows an exemplary diagram of a process of multi-transform selection (MTS).
Fig. 9 shows an exemplary diagram of where a position-dependent intra prediction combining (PDPC) is applied.
Fig. 10A shows an exemplary diagram of a four-sample long vertical block boundary formed by two adjacent CBs.
Fig. 10B shows an exemplary diagram of a dual-sample long vertical block boundary formed by two adjacent CBs.
Fig. 11A, 11B, 11C, and 11D show exemplary flowcharts of the deblocking filtering process.
Fig. 12A shows an example diagram illustrating the correlation between the threshold β (beta) and the Quantization Parameter (QP).
Fig. 12B shows an example graph illustrating the correlation between the threshold parameter tc and QP.
Fig. 13 illustrates an example flow diagram of a process for applying separate block partition trees to luma CB and chroma CB.
Fig. 14 shows an exemplary diagram illustrating how separate block division trees are applied to a luminance CB and a chrominance CB under separate nodes.
Fig. 15 shows an exemplary diagram of how motion information prediction of chrominance CBs is performed by copying motion information of collocated luminance CBs.
Fig. 16 shows an example flowchart of a process of performing motion information prediction of chroma CB by copying motion information of collocated luminance blocks.
Fig. 17 shows an exemplary diagram of how motion information prediction of a chrominance CB is performed by selecting one of motion information candidates of a collocated luminance CB.
Fig. 18 shows an example flowchart of a process of performing motion information prediction of a chroma CB by selecting one of motion information candidates of a collocated luma CB.
Fig. 19 shows an example graph of the intra luminance CB.
Fig. 20 shows an example flow diagram of the signaling/parsing mechanism for the transformation of the intra luminance CB in fig. 19.
Fig. 21 shows an example graph of the intra luminance CB.
Fig. 22 shows an example flow diagram of the signaling/parsing mechanism for the transformation of the intra luminance CB in fig. 21.
Fig. 23A illustrates an example system for implementing the processes and mechanisms described with reference to fig. 1-12.
Fig. 23B illustrates an exemplary diagram of the deblocking filtering decision making module in fig. 23A.
Fig. 23C illustrates an exemplary diagram of a deblocking filtering performing block in fig. 23A.
Fig. 23D shows an exemplary 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 fig. 13-18.
Fig. 25 illustrates an example system for implementing the processes and mechanisms described with reference to fig. 19-22.
Detailed Description
The apparatus and methods discussed herein relate to image processing and, more particularly, to small-sized block coding, block partition tree splitting under nodes, and transform selection of small-sized blocks.
The apparatus and methods discussed herein may be used for small-sized block coding. It can be determined whether the luminance block has a width equal to 8. If the luma block has a width equal to 8, a first syntax element may be provided to indicate that the luma block is vertically partitioned. It can be determined whether the luminance block has a height equal to 8. If the luma block has a height equal to 8, a second syntax element may be provided to indicate that the luma block is horizontally partitioned. It can be determined whether the luminance block has a width equal to 4. If the luma block has a width equal to 4, a third syntax element may be provided to indicate that the luma block is vertically partitioned. It can be determined whether the luminance block has a height equal to 4. If the luma block has a height equal to 4, a fourth syntax element may be provided to indicate that the luma block is horizontally partitioned.
The apparatus and methods discussed herein may also be used for block partitioning tree splitting under a node. It may be checked whether the node satisfies a condition that (a) both the width and the height of the luminance CB of the node are not smaller than the separation size; and (b) the width or height of the luminance CB of at least one of the sub-nodes of the node is less than the separation dimension. If the node satisfies both conditions (a) and (b), the node may be determined to be a split node. If the node is determined to be a split node, the first block division tree may be applied to a luma CB of the node, and the second block division tree may be applied to a chroma CB of the node.
The apparatus and methods discussed herein may also be used for transform selection of small-sized blocks. It may be checked whether the encoded block fulfils a predetermined condition. Upon determining that the CB satisfies the predetermined condition, the first message may be parsed from the bitstream. It may be determined whether the first message satisfies a first preset condition. If the first message satisfies the first preset condition, the width and height of the CB may be checked. DST-VII may be used for a transformation of the CB in the horizontal direction if the width of the CB is equal to the first value. DST-VII is used for the transformation of the CB in the vertical direction if the height of the CB is equal to the first value.
Fig. 1 shows an example diagram illustrating a picture 100 divided into a plurality of CTUs. Refer to fig. 1. Picture 100 may be divided into a series of CTUs, e.g., CTUs 102 and 104. Although fig. 1 indicates two CTUs 102 and 104, other numbers of CTUs may be present. For a picture with three sample arrays, each CTU may consist of N × N blocks of luma samples and two corresponding blocks of chroma samples. In the developed h.266/VVC standard, the maximum allowable size of luminance blocks in the CTU may be specified as 128 × 128. Dimensions such as length, width, and height discussed herein may be in units of sample numbers.
In HEVC, CTUs may be divided into CUs by using quadtrees as coding trees to accommodate various local characteristics. The decision whether to encode a picture region using inter-picture (temporal) or intra-picture (spatial) prediction can be made at the CU level. Each CU may be further divided into one, two, or four Prediction Units (PUs) according to PU partition types. Within one PU, the same prediction process may be applied and the relevant information may be sent to the decoder on a PU basis. After the residual block is obtained by applying the prediction process based on the PU partition type, the leaf-node CU may be divided into Transform Units (TUs) according to another quadtree similar to the coding tree of the CU. One feature of the HEVC structure may be multiple partitioning concepts including CU, PU and TU.
In VVC/H.266 development, quadtrees with nested multi-type tree structures using binary and ternary segmented structures replace the concept of multiple partition unit types. That is, the separation of CU, PU, and TU concepts is removed, except for the need for a CU with a size that is too large for the maximum transform length. Furthermore, VVC/H.266 development supports greater flexibility in CU partition shapes. In the coding tree, a CU may have a square or rectangular shape. The CTUs may be first divided by a quadtree. The quadtree leaf nodes may then be further divided by the multi-type tree.
Fig. 2 shows an example diagram of four partition types in a multi-type tree, namely, vertical binary partition (SPLIT _ BT _ Ver 202), horizontal binary partition (SPLIT _ BT _ Hor 204), vertical ternary partition (SPLIT _ TT _ Ver 206), and horizontal ternary partition (SPLIT _ TT _ Hor 208). A multi-type leaf node may be referred to as a CU. Unless the CU is too large for the maximum transform length, the segmentation can be used for prediction and transform processing without any further partitioning. In other words, in most cases, a CU, a PU, and a TU have the same block size in a quadtree with nested multi-type tree coding trees. An exception may occur when the maximum transform length supported is less than the width or height of the color components of the CU.
FIG. 3 shows an example diagram of a CU 300. For example, CU 300 may include one luma Coding Block (CB)302 and two chroma CBs, CB 304 and Cr CB 306. CU 300 may include different color components (unless the video is monochrome-i.e., only one color component).
The parameters of a quadtree with a nested multi-type tree coding tree structure may be defined and specified by a Sequence Parameter Set (SPS) syntax element. In the example of a quadtree with nested multi-type tree coding trees, the root node size (CTU size) of the quadtree may be set to have two corresponding 64 × 64 4: 2: 128 x 128 luma samples of a 0 chroma sample block. The minimum allowed quad leaf node size (MinQTSize) may be set to 16 × 16. The maximum allowed binary tree root node size (MaxBtSize) may be set to 128 × 128. The allowed maximum trifurcated tree root node size (MaxTtSize) may be set to 64 × 64. The allowed minimum binary tree leaf node size (MinBtSize) and the allowed minimum ternary tree leaf node size (MinTtSize) may be set to 4 × 4 for both width and height. The maximum allowed hierarchical depth of a multi-type tree partitioned from a quadtree leaf (MaxMttDepth) may be set to 4. Quadtree partitioning may first be applied to CTUs to generate quadtree leaf nodes. The quad tree leaf nodes may have sizes from 16 × 16 (i.e., MinQTSize) to 128 × 128 (i.e., CTU size). If the leaf QT node is 128 × 128, the leaf QT node may not be further partitioned by the ternary tree because the size exceeds MaxTtSize (i.e., 64 × 64). Otherwise, the leaf quadtree nodes may be further partitioned by a multi-type tree. Accordingly, the leaf nodes of the quadtree may also be root nodes of the multi-type tree and may have a multi-type tree depth (MTTDepth) of 0. When the multi-type tree depth reaches MaxMttDepth (i.e., 4), further segmentation may not be considered. When the width of the multi-type tree node is equal to MinBtSize and less than or equal to 2 × MinTtSize, further horizontal partitioning may not be considered. Similarly, when the height of the multi-type tree node is equal to MinBtSize and less than or equal to 2 × MinTtSize, further vertical partitioning may not be considered.
Fig. 4 illustrates an exemplary diagram of a signaling mechanism 400 for partitioning information in a quadtree with a nested multi-type tree coding tree structure.
As shown in fig. 4, a CTU or Quadtree (QT) node may be considered a root node, namely CTU/QT _ node 402. The CTU/QT _ node 402 may be partitioned by a quadtree. The QT _ split _ flag 404 may be signaled to indicate whether the CTU/QT _ node 402 needs to be partitioned through a quadtree. If QT _ split _ flag 404 is 1, the CTU/QT _ node 402 may be considered a QT _ node 406. If QT _ split _ flag 404 is 0, the CTU/QT _ node 402 may be considered a QT _ leaf _ node/polytype tree (MTT) _ node 408 to be partitioned through the multi-type tree.
At QT _ node 406, the process may return to root node 402 in a recursive manner.
At QT _ leaf _ node/MTT _ node 408, MTT _ split _ flag410 may be signaled to indicate whether QT _ leaf _ node/MTT _ node 408 needs to be further partitioned through a multi-class tree. If MTT _ split _ flag410 is 1, then QT _ leaf _ node/MTT _ node 408 can be considered as MTT _ node412 to be further partitioned. If MTT _ split _ flag410 is 0, then QT _ leaf _ node/MTT _ node 408 can be treated as MTT _ leaf _ node 414, which may not be further partitioned.
At MTT _ node412, MTT _ split _ Vertical _ flag416 may be signaled to indicate the split direction. If MTT _ split _ Vertical _ flag416 is 1, then MTT _ node412 can be considered as MTT _ node 418 for Vertical splitting. If MTT _ split _ Vertical _ flag416 is 0, then MTT _ node412 can be considered as MTT _ node 420 for horizontal segmentation.
At the MTT _ node 418, the MTT _ split _ binary _ flag422 may be signaled to indicate whether the partition is a binary partition or a ternary partition. If the MTT _ split _ binary _ flag422 is 1, the MTT _ node 418 can be considered to be the MTT _ node with the BT _ Ver split 426 for the binary tree vertical split. If the MTT _ split _ binary _ flag422 is 0, the MTT _ node 418 can be considered to be the MTT _ node with the TT _ Ver split 428 for the ternary tree vertical split.
At the MTT _ leaf _ node 420, MTT _ split _ binary _ flag 424 may be signaled to indicate whether the partition is a binary partition or a ternary partition. If the MTT _ split _ binary _ flag 424 is 1, the MTT _ leaf _ node 420 can be considered as the MTT _ node with the BT _ Hor split 430 for binary tree horizontal splitting. If the MTT _ split _ binary _ flag 424 is 0, the MTT _ leaf _ node 420 can be considered as the MTT _ node with the TT _ Hor split 432 for the horizontal split of the ternary tree.
Based on the value of MTT _ split _ Vertical _ flag416 and the values of MTT _ split _ binary _ flags 422 and 424, the MTT split mode of the CU may be derived as shown in table 1.
TABLE 1 MTT partitioning pattern derivation based on multi-type 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 shows an exemplary diagram of CTUs 500 partitioned into CUs by a quadtree with a nested multi-type tree coding tree structure. Referring to FIG. 5, bold block edges may represent quadtree partitions, while other light edges may represent multi-type tree partitions. A quadtree with a nested multi-type tree coding tree structure provides a content adaptive coding tree structure that includes CUs. The size of a CU may be as large as a CTU or as small as 4 × 4 in units of luma samples. For 4: 2: in case of 0 chroma format, the maximum chroma CB size may be 64 × 64, and the minimum chroma CB size may be 2 × 2.
In the developed h.266/VVC standard, the allowed minimum luma coding block size may be 4 × 4, as an example. In the block division process, when the luminance division block has a width equal to 4, it may be implicit that there is no vertical division. That is, the vertical (including quad/binary/ternary tree) split flag may not be signaled. When the width of the luma partition block is equal to 8, it may be implicit that there is no vertical tri-partition. When the height of the luma partition block is equal to 4, it may be implicit that there is no horizontal segmentation. When the width of the luma partition block is equal to 8, it may be implicit that there is no horizontal tri-partition.
For another example, the allowable minimum luminance CB width and height may be 2. That is, 2 × N and N × 2 luma CB sizes may be supported, where N may be a power of 2, e.g., 2, 4, 8, 16, 32, 64, 128, … may define small-sized blocks, e.g., 2 × N or N × 2 blocks, as desired.
Fig. 6 shows an exemplary block diagram 600 of how a luminance block 602 is divided into several luminances CB.
Referring to fig. 6, an 8 × 4 luma block 602 may be divided into 3 luma blocks, i.e., two 2 × 4 luma blocks 604 and 606 and one 4 × 4 luma block 608, by a vertical ternary tree (ver. The first 2 × 4 luma block 604 may not be further partitioned and may be 2 × 4 CB. The 4 x 4 luma block 608 may be further partitioned into two 2 x 4 CBs 610 and 612 by a horizontal binary tree (hor. The second 2 x 4 luma block 606 may be further split into two 2 x 2 CBs 614 and 616 by horizontal binary tree splitting (hor. bt splitting).
Fig. 7A and 7B illustrate an example flow diagram of a process 700 for dividing a luma block into luma CBs using a quad/binary/tri-tree.
At block 702, it may be determined whether the luma block has a width equal to 8, and, at block 704, if the luma block has a width equal to 8, a first syntax element may be provided to indicate whether the luma block needs to be vertically partitioned. At block 706, it may be determined whether the luma block has a height equal to 8, and at block 708, if the luma block has a height equal to 8, a second syntax element may be provided to indicate whether the luma block needs to be split horizontally (e.g., through a ternary tree).
At block 710, it may be determined whether the luma block has a width equal to 4, and at block 712, if the luma block has a width equal to 4, a third syntax element may be provided to indicate whether the luma block needs to be vertically partitioned. At block 714, it may be determined whether the luma block has a height equal to 4, and at block 716, if the luma block has a height equal to 4, a fourth syntax element may be provided to indicate whether the luma block needs to be split horizontally (e.g., via a binary tree). At block 718, the luma block may be divided based on the first, second, third, and fourth syntax elements to obtain 2 × N or N × 2 luma CBs. The 2 × N or N × 2 luminances CB may be formed of a quad/binary/ternary tree division structure.
In the mechanisms and processes discussed herein, small luminance CBs (e.g., 2 × N or N × 2 luminance CBs) may be supported. Accordingly, the encoding efficiency of a video full of detailed content, such as a screen content video, can be significantly improved. The coding performance can also be improved.
To support 2 × N or N × 2 luma CB, the prediction, transform, coefficient coding, and deblocking filters may be modified accordingly.
With respect to the transform, after intra-picture or inter-picture prediction, the difference between the original block and its prediction may be transformed by a linear spatial transform. In the H.266/VVC development, MTS can be used. For luminance CB, the transform type may be explicitly selected among type II discrete cosine transform (DCT-II), type VII discrete sine transform (DST-VII), and type VIII discrete cosine transform (DCT-VIII). Table 2 shows the basis functions of DCT-II, DCT-VIII and DST-VII for N-point input.
TABLE 2 transformation basis functions for N-point input DCT-II, DCT-VIII and DST-VII
Figure BDA0002211748380000101
To maintain the orthogonality of the transform matrices, the transform matrices may be quantized more accurately than in HEVC. In order to keep the median value of the transform coefficients in the 16-bit range after the horizontal and vertical transforms, all coefficients may be 10 bits.
Fig. 8 shows an exemplary diagram of a process 800 of the MTS.
At block 802, it may be determined whether CB has non-zero coefficients. If the CB has non-zero coefficients, it may be determined at block 804 whether the first flag is a 1 or a 0. If the CB does not have non-zero coefficients, the process 800 may proceed to end at block 806.
If the first flag is 0, then DCT-II may be used for both the vertical and horizontal directions at block 808.
If the first flag is 1, it may be determined at block 810 whether the CB is an intra CB or an inter CB. If the CB is an intra CB, a determination may be made at block 812 whether the number of non-zero coefficients of the CB is greater than 2.
At block 814, if the CB is an inter CB, process 800 may proceed to block 816 regardless of the number of non-zero coefficients.
At block 818, if the number of non-zero coefficients of the CB is equal to or less than 2 (i.e., intra CB with only 1 or 2 non-zero coefficients), then no flag is signaled and DST-VII may be used horizontally and vertically.
At block 816, if it is determined at block 812 that the number of non-zero coefficients of the CB is greater than 2, or if process 800 proceeds at block 814, a second flag and a third flag may be provided. The second flag may indicate that either DST-VII or DCT-VIII may be used in the horizontal direction. The third flag may indicate that either DST-VII or DCT-VIII may be used for the vertical direction.
After blocks 816 and 818, processing may proceed to end at block 806.
The number of luminance transform candidates for 4, 8, 16, and 32-point transforms may be three (i.e., DCT-II, DST-VII, and DST-VIII). However, for a 2-point transform of 2 × N or N × 2CB, it may not be necessary to have multiple transform candidates. For example, the number of transform candidates for 2 × N or N × 2CB 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 can be used for 2 x N or N x 2CB 2-point transforms in both horizontal and vertical directions; and only DST-VII can be used for 2-point transforms of 2 xn or N × 2 CB. There is no flag to indicate whether DCT-II, DST-VII or DCT-VII is used. Further, the transform skip mode may be supported by the 2-point side of 2 × N or N × 2 CB.
With respect to coefficient coding, transform coefficients may be scaled, quantized, and entropy encoded. In entropy coding of coefficients, the position of the last non-zero transform coefficient, significance map, sign bit, and level of the transform coefficient may be transmitted.
In HEVC and the development h.266/VVC, significance maps can be derived for significance groups related to fixed-size 4 × 4 sub-blocks. For all groups that have at least one coefficient before the last coefficient position, a significant-group flag specifying a non-zero coefficient group may be sent, followed by a coefficient significant flag for each coefficient before the indicated position of the last significant coefficient. The context model of the significant-coefficient flags depends on the coefficient positions and the values of the right and bottom significant-group flags. The effective group size in residual coding of 2 × N or N × 2CB is smaller than that in residual coding of other CBs. Other CBs may have the same effective group size.
Since the active set may involve a fixed size of 4 × 4 sub-blocks, the active set may only work for CB sizes larger than 4 × 4, but not for 2 × N or N × 2 CBs. For 2 × N or N × 2CB, a subblock size of 2 × 2 may be used as an active group. That is, a significant-group flag specifying a non-zero coefficient group may be sent for all groups having at least one coefficient before the last coefficient position. For a 2 x 2 sub-block, tool symbol concealment may be disabled.
Regarding the intra mode direction, in the developed h.266/VVC, the number of intra prediction angles may be 85 for luma CB. However, for small CB sizes such as width or height equal to 2, the number of predicted angles on the 2-point side may be smaller, e.g., 40-70.
Fig. 9 shows an example diagram 900 of applying position dependent intra prediction combining (PDPC). PDPC is a tool used in H.266/VVC. When a decoder (not shown) applies PDPC, the decoder may perform intra prediction and then use neighboring pixels to improve predictor pixels. Referring to fig. 9, pred (x, y)902 may be an original pixel generated by intra prediction. With PDPC, the decoder can pass pred (x, y)902 and the neighboring pixel R -1,-1904、R x,-1906 and R-1,y908, a weighted average of the values results in a new prediction pred' (x, y). However, if one side of CB is equal to 2, PDPC may be disabled or simplified. An example of PDPC simplification may be that if the horizontal side of the block is equal to 2, the decoder may pass pred (x, y)902 and only two neighboring pixels (e.g., (R)x,-1906 and R-1,y908) Or (R)-1,-1904 and R-1,y908) ) to derive a new predicted value pred "(x, y).
Fig. 10A shows an exemplary diagram of a four-sample long vertical block boundary formed by two adjacent coding blocks P1002 and Q1004.
Referring to fig. 10A, the coding block P1002 may include rows 0, 1, 2, and 3. Line 0 of coding block P1002 may include sample P30、p20、p10And p00. Line 1 of coding block P1002 may include sample P31、p21、p11And p01. Line 2 of coding block P1002 may include sample P32、p22、p12And p02. Line 3 of coding block P1002 may include sample P33、p23、p13And p03
Referring to fig. 10A, the encoding block Q1004 may include rows 0, 1, 2, and 3. Line 0 of the encoded block Q1004May include sample q00、q10、q20And q30. Row 1 of encoded block Q1004 may include sample Q01、q11、q21And q31. Row 2 of encoded block Q1004 may include sample Q02、q12、q22And q32. The 3 rows of encoded block Q1004 may include sample Q03、q13、q23And q33
Fig. 10B shows an exemplary diagram of a double-sample long vertical block boundary formed by two adjacent coding blocks P1006 and Q1008.
Referring to fig. 10B, the coding block P1006 may include a line 0 and a line 1. Row 0 of coding block P1006 may include P30、p20、p10And p00. Row 1 of coding block P1006 may include P31、p21、p11And p01
Referring to fig. 10B, the coding block Q1008 may include row 0 and row 1. Row 0 of encoded block Q1008 may include sample Q00、q10、q20And q30. Row 1 of coding block Q1008 may include sample Q01、q11、q21And q31
Fig. 11A-11D illustrate an example flow diagram 1100 of a deblocking filtering (DBF) process. DBF can be used to reduce blocking artifacts due to block-based coding. The DBF may be applied to all samples adjacent to the boundary except for the case where the boundary is a picture boundary. The DBF in the developed H.266/VVC can be similar to the DBF of H.265/HEVC. For example, the edge of the 4 × 4, 2 × N, or N × 2 luminance CB may be filtered by the deblocking process.
Referring to fig. 11A, the deblocking filtering process may include the following steps.
At block 1102, a deblock filtering on/off decision may be made for each boundary, and a deblock filtering operation may be performed at block 1104.
Referring to FIG. 11B, block 1102 may also include the following.
At block 1106, a Boundary Strength (BS) of the boundary may be derived as 0, 1, or 2, and a determination may be made at block 1108 whether the BS is greater than 0. If the BS is greater than 0, the conditions defined by the expression may be checked at block 1110 to determine if deblock filtering needs to be applied.
For the boundary of four sample length as shown in fig. 10A, the condition may be defined by the following expression (1). The first and fourth rows in a block boundary of length 4 may be evaluated. For example, lines 0 and 3 of the coding block P1002 and the coding block Q1004 marked with dotted lines in fig. 10A may be used to define the condition:
|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 a correlation between QP. threshold β for adjusting a quantization step for quantizing a prediction error coefficient and a QP may be shown in fig. 12A described later.
For the boundary of the double sample length as shown in fig. 10B, the condition may be defined by the following expression (2). For example, row 0 of coding block P1006 and row 0 of coding block Q1008 marked with dashed lines in fig. 10B may be evaluated and used to define the condition:
2*|p2,0-2p1,0+p0,0|
+2*|q2,0-2q1,0+q0,0|>β (2)
in expression (2) above, β may be a threshold value, which may be the same value as in expression (1).
At block 1112, a deblock filtering decision may be made for block boundaries having an associated BS greater than zero and satisfying the condition in expression (1) or (2).
Referring to fig. 11C, block 1104 may also include the following.
At block 1114, conditions may be checked for normal or strong filtering decisions. In the h.266/VVC, there may be two deblocking filter modes, i.e., a normal filter mode and a strong filter mode. The DBF may switch between a normal filtering mode and a strong filtering mode based on local signal characteristics. Whether to apply the strong filtering mode or the normal filtering mode may be determined based on a row that crosses a block boundary of four samples. The following expressions (3), (4), and (5) using information from row 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 a line number, and tc may be a threshold parameter. The threshold parameter tc depends on QP. the correlation between tc and QP can be shown in fig. 12B described later.
At block 1116, strong filtering may be applied to the block boundary if the conditions defined by expressions (3), (4), and (5) above are satisfied. For a block boundary of four samples in length, for example, a boundary formed by the encoding blocks P1002 and Q1004 as shown in fig. 10A, if expressions (3), (4), and (5) are true for both of the rows 0 and 3(i ═ 0 and i ═ 3) of the encoding blocks P1002 and Q1004 shown in fig. 10A indicated by broken lines, strong filtering may be applied to the block boundary. For a block boundary of two samples in length, for example, a boundary formed by the encoding blocks P1006 and Q1008 as shown in fig. 10B, if expressions (3), (4), and (5) are true for line 0(i ═ 0) of the encoding blocks P1006 and Q1008 as indicated by the broken line in fig. 10B. Strong filtering may be applied to block boundaries.
At block 1118, otherwise, if any of the conditions defined by expressions (3), (4), and (5) are not satisfied, then normal filtering may be applied to the block boundaries.
Referring to fig. 11D, block 1118 may also include the following to make the normal filtering mode decision. Normal filtering has two modes that differ in the number of pixels modified on each side of the block boundary. One of these two modes may be selected for each boundary.
At block 1120, a condition may be checked in order to make a normal filtering mode decision with respect to the coding block P.
For a block boundary of four samples in length, for example, a boundary formed by the encoding blocks P1002 and Q1004 as shown in fig. 10A, the condition may be defined by the following expression (6):
|p2,0-2p1,0+p0,0|+|p2,3-2p1,3+p0,3|<3/16β (6)
for a block boundary of two samples in length, for example, a boundary formed by the encoding blocks P1006 and Q1008 as shown in fig. 10B, the condition may be defined by the following expression (7):
2*|p2,0-2p1,0+p0,0|<3/16β (7)
in expressions (6) and (7) above, β may be a threshold value, which may be the same value as in expression (1).
At block 1122, if the conditions of expressions (6) or (7) are satisfied, the two nearest pixel rows to the block boundary may be modified in the encoded block P. For a block boundary of four samples in length, for example, the boundary formed by the encoded blocks P1002 and Q1004 as shown in fig. 10A, if expression (6) is true, the two nearest pixel rows to the block boundary in the encoded block P1002, for example, rows P0i and P1i, where i is the row number, may be modified. For a block boundary of two samples in length, for example, the boundary formed by the encoded blocks P1006 and Q1008 as shown in fig. 10B, if expression (7) is true, the two nearest pixel rows to the block boundary, for example, rows P0i and P1i, where i is the row number, may be modified in the encoded block P1006.
At block 1124, otherwise, if the condition is not satisfied, only the nearest pixel row in the encoded block P may be modified. For a block boundary of four samples in length, for example, the boundary formed by coding blocks P1002 and Q1004 as shown in fig. 10A, if expression (6) is not true, only the nearest pixel row in coding block P1002, for example, row P0i, where i is the row number, may be modified.
For a block boundary of two samples in length, e.g., the boundary formed by encoding blocks P1006 and Q1008 shown in fig. 10B, if expression (7) is not true, only the nearest pixel in encoding block P1006, e.g., line P0i, may be modified, where i is the line number.
At block 1126, a condition may be checked for a normal filtering mode decision regarding the coding block Q.
For a block boundary of four samples in length, for example, a boundary formed by the encoding blocks P1002 and Q1004 shown in fig. 10A, the condition may be defined by the following expression (8):
|q2,0-2q1,0+q0,0|+|q2,3-2q1,3+q0,3|<3/16β (8)
for a block boundary of two samples in length, for example, a boundary formed by the encoding blocks P1006 and Q1008 shown in fig. 10B, the condition may be defined by the following expression (9):
2*|q2,0-2q1,0+q0,0|<3/16β (9)
at block 1128, if the conditions of expression (8) or (9) are satisfied, the two nearest pixel rows to the block boundary may be modified in the encoded block Q. For a block boundary of four samples in length, for example, a boundary formed by the encoding blocks P1002 and Q1004 as shown in fig. 10A, if expression (8) holds, the two nearest pixel lines to the block boundary, for example, Q0i and Q1i, where i is the line number, can be modified in the encoding block Q1004. For a block boundary of two samples in length, for example, a boundary formed by the encoding blocks P1006 and Q1008 as shown in fig. 10B, if expression (9) holds, the two nearest pixel lines to the block boundary, for example, Q0i and Q1i, where i is the line number, may be modified in the encoding block Q1008.
At block 1130, otherwise, if the condition is not satisfied, only the nearest pixel row may be modified in the encoding block Q. For a block boundary of four samples in length, for example, the boundary formed by the encoding blocks P1002 and Q1004 as shown in fig. 10A, if expression (8) is not true, only the nearest pixel row, for example Q0i, where i is the row number, may be modified in the encoding block Q1004. For a block boundary of two samples in length, e.g., the boundary formed by encoding blocks P1006 and Q1008 as shown in fig. 10B, if expression (9) is not true, only the nearest pixel row, e.g., Q0i, may be modified in encoding block Q1008, where i is the row number.
In the above description with reference to fig. 10A, 10B, and 11A to 11D, an example is set for the vertical block boundary. However, the deblocking filtering process 1100 is not limited thereto. The deblocking filtering process 1100 may be extended to process horizontal block boundaries by rotating the encoded blocks P and Q90 ° in the clockwise/counterclockwise direction and transposing the row index and column index indices of the samples in the blocks P and Q.
Fig. 12A shows an example graph 1200 illustrating the correlation between the threshold β and the QP referring to fig. 12A, β may depend on the QP used to adjust the quantization step used to quantize the prediction error coefficients.
Fig. 12B shows an example graph 1202 showing the correlation between the threshold parameter tc and QP. Referring to fig. 12B, tc may depend on QP.
In the above-described mechanism and process, deblocking filtering of small luminance CBs (e.g., 2 × N or N × 2 luminance CBs) can be supported, and coding performance can be improved.
In h.266/VVC, the coding tree supports the ability for luma and chroma blocks to have separate coding trees. For example, for a P slice and a B slice, luma CTB and chroma CTB in the same CTU may share the same coding tree. However, for an I slice, luma CTB and chroma CTB in the same CTU may have separate coding trees. If a separate coding tree mode is applied, the luminance CTB may be divided into the luminance CBs through one coding tree, and the chrominance CTB may be divided into the chrominance CBs through another coding tree. In other words, a CU in an I slice may consist of luma CB or two chroma CBs, while a CU in a P slice or B slice may always consist of CBs of all three color components, unless the video is monochrome.
For example, when a block division tree for dividing a CTU into CUs or CBs reaches deeper to a separation node, the block division tree may be divided into two block division trees for luma CB and chroma CB, respectively. Otherwise, if the split node is not reached, both luma CB and chroma CB may share the block division tree.
Fig. 13 illustrates an example flow diagram of a process 1300 for applying separate block partition trees to luma CB and chroma CB.
At block 1302, two conditions may be checked for a node that are (1) both the width and height of the luminance CB of the node are not less than the separation size (SepSize); and (2) the width or height of the luminance CB of at least one child node of the node is less than SepSize. If the node satisfies both conditions, the node may be determined to be a split node at block 1304. If the node is determined to be a split node, the split block partition tree may be applied to luma CB and 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 higher. For example, the minimum luminance CB side length may be set to 4 luminance samples, and the minimum chrominance CB side length may be set to 4 chrominance samples, so that there are no 2 × N or N × 2 chrominance CBs. Therefore, hardware implementation complexity can be reduced. Furthermore, the block partition trees for intra (I) and inter (P and B) slices may be consistent in terms of luma CB and chroma CB separation.
Fig. 14 shows an example diagram 1400 showing how separate block partition trees are applied to luma CB and chroma CB under separate nodes.
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 the 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 divided into four 16 × 16 CBs 1404, 1406, 1408, and 1410 by a quadtree (QT split). Although the CTU 1402 is partitioned by a quadtree in this example, the CTU 1402 may be partitioned into other numbers of CBs by other block partition trees (e.g., a BT block partition tree and a TT block partition tree).
The 16 × 16CB 1404 may be split into two 8 × 16 CBs 1412 and 1414 by a vertical binary tree (ver. bt split).
The 16 × 16CB 1406 may be divided into four 8 × 8 CBs 1416, 1418, 1420, and 1422 by quadtree (QT split).
The luminance CB of the 16 × 16CB 1410 can be divided into two 4 × 16 luminance CBs 1424 and 1426 and one 8 × 16 luminance CB 1428 by a vertical ternary tree (ver. The chroma CB of the 16 × 16CB 1410 may be divided into four 4 × 4 chroma CBs 1430, 1432, 1434, and 1436 by a quadtree (QT split).
The luminance CB of the 8 × 16CB 1412 can be divided into two 4 × 16 luminance CB 1438 and luminance 1440 by a vertical binary tree (ver. bt division). The chroma CB of the 8 × 16CB 1412 may be split into two 4 × 4 chroma CBs 1442 and 1444 by a horizontal binary tree (hor. bt splitting).
The 8 × 16CB 1414 can be split into two 8 × 8CB 1446 and 1448 by a horizontal binary tree (hor. bt splitting).
The luminance CB of the 8 × 8CB 1420 can be divided into two 4 × 8 luminance CBs 1450 and 1452 by a vertical binary tree (ver. bt division). Since the chroma CB 1454 is already at the minimum chroma CB size, the chroma CB 1454 of the 8 × 8CB 1420 may not be divided.
The 4 × 16 luminance CB 1440 may be divided into two 4 × 4 luminance CBs 1456 and 1458 and one 4 × 8 luminance CB 1460 by horizontal ternary tree (hor.
As shown in fig. 14, there may be three separate nodes in this example, nodes A, B and C. Blocks indicated by dotted and dashed lines illustrate the separation of the block partition tree for luma CB and chroma CB. For example, a dashed line may indicate that a block division tree is applied to luma CB, while a dotted line may indicate that another block division tree is applied to chroma CB. For other blocks not represented by dashed or dotted lines, the partition tree is shared by luma CB and chroma CB. The block partition tree may be split as one progresses deeper under the split node, i.e., as the CB becomes smaller.
With respect to node a, i.e., 8 × 16CB 1412, both luminance width 8 and luminance height 16 exceed SepSize. Further, each of the two sub-nodes 1438 and 1440 may have a luminance width 4 smaller than SepSize 8. Thus, node a may be determined to be a split node. Therefore, the luminance CB and the chrominance CB of the node a may be divided by a separate block division tree. In one aspect, as represented by dashed line 1432, the luminance CB of 16 × 16CB 1410 may be divided into two 4 × 16 luminance CBs 1424 and 1426 and one 8 × 16 luminance CB 1428 by a vertical ternary tree (ver. On the other hand, as indicated by dotted line 1464, the chroma CB of the 16 × 16CB 1410 may be divided into four 4 × 4 chroma CBs 1430, 1432, 1434, and 1436 by a quadtree (QT split).
With respect to node B, i.e., 8 × 8CB 1420, the luminance width 8 is equal to the luminance height 8, which is equal to SepSize 8. Further, each of the two child nodes 1450 and 1452 of node B has a luminance width of 4, which is smaller than SepSize 8. Therefore, the node B may be determined as a separate node. Therefore, the luminance CB and the chrominance CB of the node B may be divided by a separate block division tree. In one aspect, the luma CB of 8 × 8CB 1420 may be split into two 4 × 8 luma CBs 1450 and 1452 by a vertical binary tree (ver. bt splitting), as represented by dashed line 1466. On the other hand, as represented by dotted lines 1468, the chroma CB 1454 of the 8 × 8CB 1420 may not be split because the chroma CB 1454 is already at the minimum chroma CB size.
With respect to node C, i.e., 16 × 16CB 1410, both the luminance width 16 and the luminance height 16 are greater than SepSize 8. Further, each of the two sub-nodes 1424 and 1428 of node C has a luminance width 4 smaller than SepSize 8. Thus, node C may be determined to be a split node. Therefore, the luminance CB and the chrominance CB of the node C may be divided by a separate block division tree. On the one hand, the luminance CB of the 8 × 16CB 1412 can be divided into two 4 × 16 luminance CB 1438 and luminance 1440 by a vertical binary tree (ver. bt splitting), as indicated by the dashed line 1470. As indicated by the dotted line, the chroma CB of the 8 × 16CB 1412 may be split into two 4 × 4 chroma CBs 1442 and 1444 by a horizontal binary tree (hor. bt splitting). In this example, the 4 × 16 luminance CB 1440 may be divided into two 4 × 4 luminance CBs 1456 and 1458 and one 4 × 8 luminance CB 1460 by a horizontal ternary tree (hor.
For example, the workflow of the pseudo code for the block partition tree for encoding and decoding may be as follows.
Figure BDA0002211748380000201
Figure BDA0002211748380000211
Figure BDA0002211748380000221
Figure BDA0002211748380000231
Figure BDA0002211748380000241
The developed H.266/VVC draft text is recorded in JFET-K1001. For example, the coding tree syntax may be as shown in tables 3 to 5 below. The pseudo code shown above may have the same meaning as the syntax shown in tables 3 to 5 shown below. In tables 3 to 5 shown below, the quad tree and the multi-type tree may use two functions, but in the pseudo code, one coding _ tree () function may be used for ease of understanding. In tables 3 to 5 shown below, SINGLE _ TREE may refer to the shared block division TREE as described above, DUAL _ TREE _ LUMA may refer to a separate block division TREE for a luminance block, and DUAL _ TREE _ CHROMA may refer to a separate block division TREE for a chrominance block.
TABLE 3 coding tree unit syntax
Figure BDA0002211748380000242
TABLE 4 encoding quadtree syntax
Figure BDA0002211748380000251
Figure BDA0002211748380000261
TABLE 5 Multi-type Tree grammar
Figure BDA0002211748380000271
Figure BDA0002211748380000281
SepSize, pseudocode, table 2 to table 4 and their description may have the same meaning in fig. 14. The SepSize can be set as desired. If the SepSize is set to CTU 1402 side length, for example, 32 as shown in fig. 14, the block division tree can be completely separated from the starting point (i.e., at CTU level) for the luminance CB and the chrominance CB. If the SepSize is set to the minimum luminance CB size, for example, 4 as shown in fig. 14, the block division tree can be completely shared for the luminance CB and the chrominance CB in the entire division process.
For an I-slice, the texture properties of luma CB are typically different from those of chroma CB. Accordingly, the block division tree may be separated for the luminance CB and the chrominance CB. For example, assuming CTU size equal to 128 × 128, for I slices, SepSize may be set to 64.
The motion information of luma CB and chroma CB is typically similar for P slices and B slices. Thus, a shared block partition tree may be used. However, in order to independently control the minimum CB sizes of the luminance CB and the chrominance CB, separate block division trees may be used as the shared block division tree progresses deeper (i.e., as the divided blocks become smaller).
When separate block partition trees are used for P-slices and B-slices, cross-component motion information prediction may be used. In other words, since the luminance CB and the chrominance CB sharing the same region generally have similar motion information, the chrominance motion information can be predicted from the collocated luminance motion information.
Fig. 15 shows an example diagram 1500 of how motion information prediction of chroma CBs is performed by copying motion information of collocated luma CBs.
Referring to fig. 15, an example 8 × 8 chrominance CB 1502 may be divided into four chrominance sub-CBs 1504, 1506, 1508, and 1510. Although the chrominance CB 1502 is divided into four chrominance sub-CBs in this example, the chrominance CB 1502 may be divided into other numbers of chrominance sub-CBs. The chroma sub-CB size may be set at a slice level or higher. For example, the chroma sub-CB size may be set to 4 × 4 chroma samples. If the chroma sub-CB size set at the slice level is greater than the current chroma CB size, the current chroma CB may not be further divided.
In the juxtaposed region of the chrominance CB 1502, the 16 × 16 luminance CB1512 may be divided into four luminance sub-CBs 1514, 1516, 1518, and 1520. Although the luminance CB1512 is divided into four luminances in the present example, the luminance CB1512 may be divided into other numbers of luminance sub-CBs. Each luminance sub-CB may have motion information. For example, the luminance sub-CB 1514 may have first motion information. The luminance sub-CB 1516 may have second motion information. The luminance sub-CB 1518 may have third motion information. The luminance sub-CB 1520 may have fourth motion information.
Each luminance sub CB may correspond to one chrominance sub CB. For example, the chrominance sub-CB 1504 may correspond to the luminance sub-CB 1514. The chrominance sub-CB 1606 may correspond to the luminance sub-CB 1516. The chroma sub-CB 1508 may correspond to the luma sub-CB 1518. The chrominance sub-CB 1510 may correspond to the luminance 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 luminance sub-CB 1516 may be copied for the chrominance 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 shows an example flow diagram 1600 of a process for motion information prediction for chroma CB by copying motion information for collocated luma blocks.
At block 1602, the chroma CB may be divided into a plurality of chroma sub-CBs. At block 1604, the luma CB in the collocated region of chroma CBs may be divided into a plurality of luma sub-CBs. The number of luminance CBs may be the same as the number of chrominance sub-CBs. Each luminance sub-CB may have motion information. Each luminance sub CB may correspond to one chrominance sub CB.
At block 1606, motion information for the luma sub-CB may be copied for each corresponding chroma sub-CB. The process 1600 may also be signaled as a first merge candidate at the chroma CB level (i.e., merge index 0). The first merge candidate and merge index 0 are defined in a video coding standard, such as the HEVC standard.
Fig. 17 shows an example diagram 1700 of how motion information prediction of chroma CBs is performed by selecting one of the motion information candidates of the collocated luma CBs.
Fig. 17 shows an example chroma CB1702 that may have a size of 8 × 8 chroma samples. The chroma sub-CB size may be set at a slice level or higher. For example, the chroma sub-CB size may be set to 8 × 8 chroma samples. If the chroma sub-CB size set at the slice level is greater than the current chroma CB size, the current chroma CB may not be divided. In this example, the chroma CB1702 may not be divided. Although in this example, the chroma CB1702 is not divided, in other examples, the chroma CB1702 may be divided into a plurality of chroma sub-CBs.
The luminance CB 1704 in the collocated luminance region of the chrominance CB may have a luminance of 4: 2: 16 x 16 luma samples in 0 chroma sampling format. The luminance CB 1704 may be divided into four luminance sub-CBs 1706, 1708, 1710, and 1712. Although the luminance CB is divided into four luminance sub-CBs, the luminance CB may be divided into other numbers of luminance sub-CBs in other examples. In this example, each luminance sub-CB 1706, 1708, 1710, or 1712 may have motion information. For example, the luminance sub-CB 1706 may have fifth motion information. The luminance sub-CB 1708 may have sixth motion information. The luminance sub-CB 1710 may have seventh motion information. The luminance sub CB 1712 may have eighth motion information.
The fifth motion information, the sixth motion information, the seventh motion information, and the eighth motion information of the luminance sub-CBs 1706, 1708, 1710, and 1712 within the collocated area of the chrominance CB1702 may be used as motion information candidates of the chrominance CB 1702. The fifth, sixth, seventh, and eighth motion information may be assigned as upper left motion information, upper right motion information, lower left motion information, and lower right motion information according to the relative positions of the luminance sub-CBs 1706, 1708, 1710, and 1712 within the collocated area. For example, the fifth motion information of the luma sub-CB 1706 may be assigned as the top-left motion information. The sixth motion information of the luminance sub-CB 1708 may be assigned as the upper right motion information. The seventh motion information of the luminance sub-CB 1710 may be assigned as the lower left motion information. The eighth motion information of the luma sub-CB 1712 may be assigned as the lower right motion information. The number of motion information candidates within the collocated luminance region may be set at the slice level or higher.
At the chroma CB level, there may be a syntax element indicating which of the motion information candidates within the collocated luma region is selected as the motion information of chroma CB 1702. In addition, the Motion Vector (MV) of the selected motion information candidate may be used as a Motion Vector Prediction (MVP) of the chroma CB 1702. The Motion Vector Difference (MVD) may be signaled such that the final MV of chroma CB1702 is defined as MV ═ MVP + MVD.
Fig. 18 shows an example flow diagram of a process 1800 for motion information prediction of chroma CBs by selecting one of the motion information candidates for collocated luma CBs.
At block 1802, chroma CB may be considered as a whole. At block 1804, the luma CB in the collocated region of the chroma CB may be divided into a plurality of luma sub-CBs. Each luminance sub-CB may have motion information. The motion information of the plurality of luminance sub-CBs may become a plurality of motion information candidates. At block 1806, one of a plurality of 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 a plurality of 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 chroma CB, there may be a syntax element indicating the use of the process 1600 or 1800. If the process 1600 is signaled, chroma CB may directly reuse the motion information of the collocated luma regions at sub-CB granularity. If the process 1800 is signaled, the chroma CB may select one of a plurality of motion information candidates from the collocated luma region.
Although in the above-described processing, the luminance CB in the collocated region is used for motion information prediction of the chrominance CB, in other examples, other luminance CBs in the nearby region may be used for motion information prediction of the chrominance CB.
Chroma motion information may be predicted from luma motion information using the processes and mechanisms discussed herein. Accordingly, coding efficiency can be improved.
In the developed h.266/VVC, the MTS scheme may be used for residual coding of both inter-coded blocks and intra-coded blocks, in addition to the DCT-II already adopted in HEVC. To control the MTS scheme, a plurality of enable flags may be respectively assigned for intra and inter picture prediction at the SPS level. For example, when MTS is enabled at SPS level, a CU level flag (MTS _ CU _ flag) may be signaled to indicate whether MTS is applied. MTS may be applied only to the luminance CB. MTS _ CU _ flag may be signaled when the following conditions are met: (1) both the width and the height of the intra luminance CB are less than or equal to 32; and (2) a Coded Block Flag (CBF) of intra luma CB equals 1.
If MTS _ CU _ flag is equal to zero, DCT-II can be applied in both the vertical and horizontal directions. However, if the MTS _ CU _ flag is equal to 1, two other flags may be additionally signaled to indicate the transform types in the horizontal and vertical directions, respectively. For an intra CU, when the number of non-zero coefficients is greater than 2, two flags, MTS _ Hor _ flag and MTS _ Ver _ flag, may be signaled. However, for inter-frame CUs, regardless of the number of non-zero coefficients, two flags, namely MTS _ Hor _ flag and MTS _ Ver _ flag, may be signaled. For example, for an intra CU with only 1 or 2 non-zero coefficients, DST-VII may be used in both the horizontal and vertical directions, while the other two flags are not signaled when MTS _ CU _ flag is equal to 1. The transformation and signal mapping table is shown in table 6.
Table 6 transform and signal mapping table
Figure BDA0002211748380000321
Figure BDA0002211748380000331
As in HEVC, the residual of a block may be encoded with a transform skip mode. To avoid redundancy of syntax coding, the transform skip flag may not be signaled when the MTS _ CU _ flag of the CU level is not equal to zero. For inter prediction residuals, the signaling of DST-VII and DCT-VIII may be applied in reverse, as shown in table 6.
The MTS can adapt to different residual distributions so that the encoder can select the transform with the best energy compression characteristics for one residual block to facilitate 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 increase the bit rate cost of the encoder. The overhead information cost of small-sized blocks may be greater than the overhead information cost of large-sized blocks. For small sized CBs, the residual distribution may be more regular. That is, the residual energy increases from the upper left corner to the lower right corner due to the longer prediction distance, which happens to be suitable for DST-VII.
For intra luminance CB, if the side length (width or height) of the intra luminance CB is equal to 4 samples, the transformation of the side (width or height) may always be DST-VII, i.e., DCT-II and DCT-VIII may not be suitable for this case. For example, for an intra luminance CB of width equal to 4, the horizontal transform may be fixed to DST-VII (no DCT-II or DCT-VIII). For an internal luminance CB of height equal to 4, the vertical transform can be fixed to DST-VII (no DCT-II or DCT-VIII). Small-sized blocks, e.g., 4 × N or N × 4 blocks, may be defined as desired.
Fig. 19 shows an exemplary diagram of the intra luminance CB 1900. The intra luminance CB 1900 may have a size of 16 × 4. The horizontal transform of the intra luminance CB 1900 may use MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII. The vertical transform of the intra luminance CB 1900 may always use DST-VII.
Fig. 20 illustrates an example flow diagram 2000 of the signaling/parsing mechanism for the transformation of the intra luminance CB in fig. 19.
At block 2002, it may be determined whether the following preset conditions are met: (1) both the width and the height of the intra luminance CB are less than or equal to 32; (2) the width or height of the intra-frame luminance CB is greater than 4; and (3) CBF equals 1. If the preset condition is met, the first message may be signaled/parsed at block 2004. The first message may be a MTS _ CU _ flag.
At block 2006, it may be determined whether the first message satisfies a first preset condition. For example, if the MTS _ CU _ flag is 1, the first message satisfies a first preset condition. If the MTS _ CU _ flag is 0, the first message does not satisfy the first preset condition.
If the first message satisfies the first preset condition, it may be determined at block 2008 whether the width of the luminance CB within the frame is equal to 4. If the width of the intra luminance CB is equal to 4, the MTS _ Hor _ flag may not be signaled/parsed and may be derived as 0 to indicate that DST-VII is used at block 2010.
Further, if the first message satisfies the first preset condition, it may be determined at block 2012 whether the height of the intra luminance CB is equal to 4, and if the height of the intra luminance CB is equal to 4, the MTS _ Ver _ flag may not be signaled/parsed and may be derived as 0 to indicate that DST-VII is used at block 2014.
If the first message does not satisfy the first preset condition, it may be determined at block 2016 whether a side length of the luminance CB within the frame is equal to 4. If the side length of the intra luminance CB is equal to 4, the transform may use DST-VII at block 2018. If the side length of the intra luminance CB is not equal to 4, the transform may use DCT-II at block 2020.
In the above-described process 2000, the MTS _ Ver _ flag and the MTS _ Hor _ flag may not always be signaled/resolved. Furthermore, for CBs with widths or heights greater than 4, the signaling/resolution mechanism may be the same as in the h.266/VVC developed. The transformation mapping table may be shown in table 7.
Table 7 transformation mapping table
Figure BDA0002211748380000341
Figure BDA0002211748380000351
Fig. 21 shows an exemplary diagram of the intra luminance CB 2100. The intra luminance CB 2100 may have a size of 16 × 4. For the 16 × 4 intra luminance CB 2100, the MTS scheme, i.e., DCT-II, DST-VII, or DCT-VIII, may be used as the horizontal transform of the 16-point transform, and DCT-II or DST-VII may be used as the vertical transform of the 4-point transform.
Fig. 22 illustrates an example flow diagram 2200 for a signaling/parsing mechanism for the transformation of the intra luminance CB 2100 in fig. 21.
At block 2202, it may be determined whether the following preset conditions are met: (1) both the width and the height of the intra luminance CB are less than or equal to 32; and (2) CBF equals 1.
If preset conditions (1) and (2) are met, the first message may be signaled/parsed at block 2204.
It may be determined at block 2206 whether the first message satisfies a first preset condition. For example, if the MTS _ CU _ flag is 1, the first message satisfies a first preset condition. If the MTS _ CU _ flag is 0, the first message does not satisfy the first preset condition.
If the first message satisfies the first preset condition, it may be determined at block 2208 whether the width of the intra luminance CB is equal to 4, and if the width of the intra luminance CB is equal to 4, the MTS _ Hor _ flag may not be signaled/parsed and may be derived as 0 to indicate that DST-VII is used at block 2210.
Further, if the first message satisfies the first preset condition, it may be determined at block 2212 whether the height of the intra luminance CB is equal to 4, and if the height of the intra luminance CB is equal to 4, the MTS _ Ver _ flag may not be signaled/parsed and may be derived as 0 to indicate that DST-VII is used at block 2214.
If the first message does not satisfy the first preset condition, the transform may use DCT-II at block 2216.
In the above-described process 2200, the MTS _ Ver _ flag and the MTS _ Hor _ flag may not always be signaled/resolved. Furthermore, for CBs with widths or heights greater than 4, the signaling/resolution mechanism may be the same as in the developed h.266/VVC, and the transformation mapping table may be the same as table 6.
With the processes and mechanisms discussed herein, transformation efficiency may be improved.
Fig. 23A illustrates an example system 2300 for implementing the processes and mechanisms described with reference to fig. 1-12.
The techniques and mechanisms described herein may be implemented by multiple instances of system 2300 and any other computing devices, systems, and/or environments. 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 for performing the processes and/or programs discussed herein. Other well known computing devices, systems, environments, and/or configurations that may be suitable for use with an embodiment 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"), application specific integrated circuits ("ASICs"), and/or the like.
The system 2300 may include one or more processors 2302 and a system memory 2304 communicatively connected to the processors 2302. The processor 2302 may execute instructions to cause the processor 2302 to perform various functions. In some embodiments, processor 2302 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), both a CPU and a GPU, or other processing units or components known in the art. In addition, each processor 2302 may have its own local memory, which may also store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of system 2300, the system memory 2304 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, a miniature hard drive, a memory card, etc.) or some combination thereof.
The system 2300 may additionally include an input/output (I/O) interface 2306 for receiving/outputting data. The system 2300 can also include a communication module 2308 that enables 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 connection, 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 2302. The modules may include the following.
A first luma block width determination module 2310, said first luma block width determination module 2310 may be used to determine whether a luma block has a width equal to 8.
A first syntax element providing module 2312, the first syntax element providing module 2312 operable to provide a first syntax element to indicate that a luma block is vertically partitioned when it is determined that the luma block has a width equal to 8.
First luma block height determination module 2314, first luma block height determination module 2314 may be used to determine whether a luma block has a height equal to 8.
A second syntax element providing module 2316, the second syntax element providing module 2316 operable to provide a second syntax element to indicate that a luma block is horizontally partitioned when it is determined that the luma block has a height equal to 8.
A second luma block width determination module 2318, said second luma block width determination module 2318 may be used to determine whether a luma block has a width equal to 4.
A third syntax element providing module 2320, which is operable to provide a third syntax element to indicate that the luma block is vertically partitioned when it is determined that the luma block has a width equal to 4.
A second luma block height determination module 2322, the second luma block height determination module 2322 may be used to determine whether a luma block has a height equal to 4.
A fourth syntax element providing module 2324, which is operable to provide the fourth syntax element to indicate that the luma block is horizontally partitioned when it is determined that the luma block has a height equal to 4.
A partitioning module 2326, the partitioning module 2326 operable to partition the luma block based on the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element to obtain a plurality of 2 × n or n × 2 luma Coding Blocks (CBs).
A DCT-II application module 2328, the DCT-II application module 2328 operable to apply DCT-II in both a horizontal direction and a vertical direction of a transform of a CB of the plurality of 2 xn or nx 2 luma CBs.
A deblocking filtering decision-making module 2330, which deblocking filtering decision-making module 2330 may be used to make deblocking filtering decisions.
A deblocking filtering execution module 2332, which deblocking filtering execution module 2332 is operable to perform deblocking filtering operations.
Fig. 23B illustrates an exemplary 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) derivation module 2344, the Boundary Strength (BS) derivation module 2344 may be configured to derive a BS of a boundary formed by the coding block P and the coding block Q.
A BS determination module 2346, which BS determination module 2346 may be used to determine whether the BS is greater than 0.
A first checking module 2348, the first checking module 2348 operable to check whether expression (a) is true upon determining BS is greater than 0,
2*|p2,0-2p1,0+p0,0|
+2*|q2,0-2q1,0+q0,0|>β (a)
where β is a threshold depending on the quantization parameter, P2,0, P1,0, P0,0 are samples in the coded block P.
The first check module 2348 may also be used to make deblocking filtering decisions for boundaries if expression (a) is true.
Fig. 23C illustrates an exemplary diagram of the deblocking filtering performing module 2342 in fig. 23A. Referring to fig. 23C, the deblocking filtering performing module 2342 may include the following.
A second checking module 2350, the second checking module 2350 may be operable to check 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)
where i is the row number, tc is the threshold parameter, P2, i, P1, i, P0, i, P3, i and P0, i are samples in coded block P, and Q2, i, Q1, i, Q0, i, Q0, i, Q3, i and Q0, i are samples in coded block Q.
A strong filtering module 2352, the strong filtering module 2352 may be configured to apply strong filtering if expressions (b), (c), and (d) are true for i ═ 0.
A normal filtering module 2354, the normal filtering module 2354 operable to apply normal filtering if any of expressions (b), (c) and (d) is not true for i ═ 0.
Fig. 23D illustrates an example diagram of the normal filtration module 2354 of fig. 23C. Referring to fig. 23D, the normal filtering module 2354 may include the following.
A third checking module 2356, the third checking module 2356 may be used to check if expression (e) is true.
2*|p2,0-2p1,0+p0,0|<3/16β (e)
A first pixel modification module 2358, the first pixel modification module 2358 is configured to modify the two nearest pixel rows to a boundary in the coding block P if expression (e) is true.
A second pixel modification module 2360, the second pixel modification module 2360 may be operable to modify a nearest pixel row in the encoded block P if expression (e) is not true.
A fourth checking module 2362, the fourth checking module 2362 may be used to check whether expression (f) is true,
2*|q2,0-2q1,0+q0,0|<3/16β (f)
a third pixel modification module 2364, the third pixel modification module 2364 to modify the two nearest rows of pixels to a boundary in the coding block Q if expression (f) is true.
A fourth pixel modification module 2366, which fourth pixel modification module 2366 may be used to modify a nearest pixel row in the coding block Q if expression (f) is not true.
Fig. 24 illustrates an example system 2400 for implementing the processes and mechanisms described with reference to fig. 13-18.
The techniques and mechanisms described herein can be implemented by multiple instances of system 2400 as well as any other computing devices, systems, and/or environments. 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 for performing the processes and/or programs discussed herein. Other well known computing devices, systems, environments, and/or configurations that may be suitable for use with an embodiment 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"), application specific integrated circuits ("ASICs"), and/or the like.
System 2400 may include one or more processors 2402 and a system memory 2404 communicatively connected to the processors 2402. The processor 2402 may execute instructions to cause the processor 2402 to perform various functions. In some embodiments, processor 2402 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), both a CPU and a GPU, or other processing units or components known in the art. In addition, each processor 2402 may have its own local memory which may also store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of system 2400, the system memory 2404 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, a miniature hard drive, a memory card, etc.) or some combination thereof.
System 2400 can additionally include input/output (I/O) interfaces 2406 for receiving/outputting data. System 2400 can also include a communications module 2408 that enables 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 connection, 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 may be executed by the processor 2402. The modules may include the following.
A condition determination module 2410, which may be configured to determine whether a node satisfies a condition. The conditions may include: (1) neither the width nor the height of the luminance CB of the node is smaller than the separation size, and (2) the width or the height of the luminance CB of at least one of the child nodes of the node is smaller than the separation size.
A detached node determination module 2412, which can be configured to determine that a node is a detached node when it is determined that the node satisfies both conditions (1) and (2).
A tree application module 2414, the tree application module 2414 operable to apply the first block division tree to the luma CB of the node and the second block division tree to the chroma CB of the node.
A chroma CB partitioning module 2416, the chroma CB partitioning module 2416 may be configured to partition chroma CBs into a plurality of chroma sub-CBs.
A first luminance CB division module 2418, the first luminance CB division module 2418 may be configured to divide the luminance CB into a plurality of luminance sub-CBs. Each of the plurality of luminance sub-CBs may correspond to a respective one of the plurality of chrominance sub-CBs. Each of the plurality of luminance sub-CBs may have motion information.
A motion information copying module 2420, the motion information copying module 2420 may be configured to copy motion information of one of the plurality of luminance sub-CBs for a corresponding one of the plurality of chrominance sub-CBs.
A chrominance CB processing block 2422, the chrominance CB processing block 2422 being configured to process chrominance CBs as a whole.
A second luminance CB dividing module 2424, the second luminance CB dividing module 2424 being operable to divide the luminance CB into a plurality of luminance sub-CBs. Each of the plurality of luminance sub-CBs may have motion information. The motion information of the plurality of luminance sub-CBs may be a plurality of motion information candidates.
A motion information selection module 2426, the motion information selection module 2426 may be configured to select one of a plurality of motion information candidates for chroma CB.
Fig. 25 illustrates an example system 2500 for implementing the processes and mechanisms described with reference to fig. 19-22.
The techniques and mechanisms described herein may be implemented by multiple instances of the system 2500, as well as any other computing devices, systems, and/or environments. 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 for performing the processes and/or programs discussed herein. Other well known computing devices, systems, environments, and/or configurations that may be suitable for use with an embodiment 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"), application specific integrated circuits ("ASICs"), and/or the like.
The system 2500 may include one or more processors 2502 and a system memory 2504 communicatively connected to the processors 2502. The processor 2502 may execute instructions to cause the processor 2502 to perform various functions. In some embodiments, the processor 2502 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), both a CPU and a GPU, or other processing units or components known in the art. In addition, each processor 2502 may have its own local memory which may store program modules, program data, and/or one or more operating systems.
Depending on the exact configuration and type of system 2500, the system memory 2504 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, a miniature hard drive, a memory card, etc.) 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 communications module 2508 that enables 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 connection, and wireless media such as acoustic, Radio Frequency (RF), infrared, and other wireless media.
The system memory 2504 may have stored thereon computer-readable instructions that, when executed by the one or more processors 2502, cause the one or more processors 2502 to perform the mechanisms and processes described with reference to fig. 19-22.
The signaling mechanisms and processes discussed herein may also be used for the parsing process of the bitstream.
Some or all of the operations of the above-described methods may be performed by executing computer readable instructions stored on a computer readable storage medium, as defined below. The term "computer readable instructions" as used in the specification and claims includes 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 medium may include volatile memory (such as Random Access Memory (RAM)) and/or nonvolatile memory (such as Read Only Memory (ROM), flash memory, etc.). Computer-readable storage media may also include additional removable and/or non-removable storage, including, but not limited to, flash memory, magnetic storage, optical storage, and/or tape storage, which may provide non-volatile storage of computer-readable instructions, data structures, program modules, and the like.
Non-transitory computer-readable storage media are examples of computer-readable media. Computer-readable media includes at least two types of computer-readable media, namely computer-readable storage media and communication media. Computer-readable storage media include volatile and nonvolatile, 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 include, but are 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 disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic tape cassettes, 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 transport mechanism. As defined herein, computer-readable storage media does not include communication media.
When executed by one or more processors, the computer-readable instructions stored on one or more non-transitory computer-readable storage media may perform operations as described above with reference to fig. 1-25. Generally, computer readable instructions include routines, programs, objects, components, data structures, etc. 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 a process.
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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and transforming the CB in a vertical direction using DST-VII upon determining that the height of the CB is equal to the first preset value.
Clause 2, the method of clause 1, wherein prior to determining whether the width of the CB is equal to the first preset value, the method further comprises: parsing the first message from the bitstream; and determining whether the first message satisfies 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 satisfies the first preset condition.
Clause 3, the method of clause 2, wherein prior to parsing the first message from the bitstream, the method further comprises determining whether a Coding Block (CB) satisfies a second preset condition; and wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
Clause 4, the method of clause 2, wherein the first message is MTS _ CU _ flag.
Clause 5, the method of clause 4, wherein determining whether the first message satisfies the first preset condition comprises: determining whether MTS _ CU _ flag is 1 or 0; if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and if the MTS _ CU _ flag is 0, determining that the first message does not satisfy the first preset condition.
Clause 6, the method of clause 1, further comprising: upon determining that the width of the CB is equal to the first preset value, the MTS _ Hor _ flag is not parsed from the bitstream and is derived as 0.
Clause 7, the method of clause 1, further comprising: upon determining that the height of the CB is equal to the first preset value, the MTS _ Ver _ flag is not parsed from the bitstream and is derived as 0.
Clause 8, the method of clause 1, wherein the first preset value is 4.
Clause 9, the method of clause 3, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; (b) the width or height of the CB is greater than a first preset value; and (c) the coded block flag of CB equals a third preset value.
Clause 10, the method of clause 9, wherein the second preset value is 32 and the third preset value is 1.
Clause 11, the method of clause 3, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; and (b) the coded block flag of CB equals a third preset value.
Clause 12, the method of clause 11, wherein the second preset value is 32 and the third preset value is 1.
Clause 13, the method of clause 5, further comprising: when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to a first preset value; when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and when the side length of the CB is determined not to be equal to the first preset value, performing transform of the CB by using type II discrete cosine transform (DCT-II).
Clause 14, the method of clause 5, further comprising: upon determining that the first message does not satisfy the first preset condition, the CB is transformed in both a horizontal direction and a vertical direction using DCT-II.
Clause 15, the method of clause 2, wherein the first message is parsed at a Coding Unit (CU) level.
Clause 16, the method of clause 1, wherein the CB is an intra luminance CB.
Clause 17, an apparatus, comprising: one or more processors; a memory connected to the one or more processors, the memory having stored 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 the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and transforming the CB in a vertical direction using DST-VII upon determining that the height of the CB is equal to the first preset value.
Clause 18, the apparatus of clause 17, wherein prior to determining whether the width of the CB is equal to the first preset value, the acts further comprise: parsing the first message from the bitstream; and determining whether the first message satisfies 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 satisfies the first preset condition.
Clause 19, the apparatus of clause 18, wherein prior to parsing the first message from the bitstream, the actions further comprise determining whether a Coding Block (CB) satisfies a second preset condition; and wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
Clause 20, the apparatus of clause 18, wherein the first message is MTS _ CU _ flag.
Clause 21, the apparatus of clause 20, wherein determining whether the first message satisfies a first preset condition comprises: determining whether the MTS _ CU _ flag is 1 or 0; if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and if the MTS _ CU _ flag is 0, determining that the first message does not satisfy the first preset condition.
Clause 22, the apparatus of clause 17, wherein the actions further comprise: upon determining that the width of the CB is equal to the first preset value, not parsing a MTS _ Hor _ flag from the bitstream and deriving the MTS _ Hor _ flag to 0.
Clause 23, the apparatus of clause 17, wherein the actions further comprise: upon determining that the height of the CB is equal to the first preset value, not parsing the MTS _ Ver _ flag from the bitstream and deriving the MTS _ Ver _ flag to 0.
Clause 24, the apparatus of clause 17, wherein the first preset value is 4.
Clause 25, the apparatus of clause 19, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; (b) the width or height of the CB is greater than a first preset value; and (c) the coded block flag of CB equals a third preset value.
Clause 26, the apparatus of clause 25, wherein the second preset value is 32 and the third preset value is 1.
Clause 27, the apparatus of clause 19, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; and (b) the coded block flag of CB equals a third preset value.
Clause 28, the apparatus of clause 27, wherein the second preset value is 32 and the third preset value is 1.
Clause 29, the apparatus of clause 21, wherein the actions further comprise: when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to the first preset value; when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and when the side length of the CB is determined not to be equal to the first preset value, performing transform of the CB by using type II discrete cosine transform (DCT-II).
Clause 30, the apparatus of clause 21, wherein the actions further comprise: upon determining that the first message does not satisfy the first preset condition, transform the CB in both the horizontal direction and the vertical direction using DCT-II.
Clause 31, the apparatus of clause 18, wherein the first message is parsed at a Coding Unit (CU) level.
Clause 32, the apparatus of clause 17, wherein the CB is an intra luminance CB.
Clause 33, a computer-readable storage medium storing computer-readable instructions executable by one or more processors, which, when executed by the one or more processors, cause the one or more processors to perform acts comprising: determining whether the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII); determining whether the height of the CB is equal to a first preset value; and transforming the CB in a vertical direction using DST-VII upon determining that the height of the CB is equal to the first preset value.
Clause 34, the computer-readable storage medium of clause 33,
wherein, prior to determining whether the width of the CB is equal to the first preset value, the acts further comprise: parsing a first message from a bitstream; and determining whether the first message satisfies 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 satisfies the first preset condition.
Clause 35, the computer-readable storage medium of clause 34, wherein prior to parsing the first message from the bitstream, the action comprises determining whether a Coding Block (CB) satisfies a second preset condition; and wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
Clause 36, the computer-readable storage medium of clause 34, wherein the first message is a MTS _ CU _ flag.
Clause 37, the computer-readable storage medium of clause 36, wherein determining whether the first message satisfies a first preset condition comprises: determining whether the MTS _ CU _ flag is 1 or 0; if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and if the MTS _ CU _ flag is 0, determining that the first message does not satisfy the first preset condition.
Clause 38, the computer-readable storage medium of clause 33, wherein the acts further comprise: upon determining that the width of the CB is equal to the first preset value, the MTS _ Hor _ flag is not parsed from the bitstream and is derived as 0.
Clause 39, the computer-readable storage medium of clause 33, wherein the acts further comprise: upon determining that the height of the CB is equal to the first preset value, the MTS _ Ver _ flag is not parsed from the bitstream and is derived as 0.
Clause 40, the computer-readable storage medium of clause 33, wherein the first preset value is 4.
Clause 41, the computer-readable storage medium of clause 35, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; (b) the width or height of the CB is greater than a first preset value; and (c) the coded block flag of CB equals a third preset value.
Clause 42, the computer-readable storage medium of clause 31, wherein the second preset value is 32 and the third preset value is 1.
Clause 43, the computer-readable storage medium of clause 35, wherein the second preset condition comprises: (a) both the width and the height of the CB are less than or equal to a second preset value; and (b) the coded block flag of CB equals a third preset value.
Clause 44, the computer-readable storage medium of clause 33, wherein the second preset value is 32 and the third preset value is 1.
Clause 45, the computer-readable storage medium of clause 37, wherein the acts further comprise: when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to a first preset value; when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and when the side length of the CB is determined not to be equal to the first preset value, performing transform of the CB by using type II discrete cosine transform (DCT-II).
Clause 46, the computer-readable storage medium of clause 37, wherein the acts further comprise: upon determining that the first message does not satisfy the first preset condition, transforming the CB using DCT-II in both a horizontal direction and a vertical direction.
Clause 47, the computer-readable storage medium of clause 34, wherein the first message is parsed at a Coding Unit (CU) level.
Clause 48, the computer-readable storage medium of clause 33, wherein the CB is an intra luminance 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 example 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII);
determining whether the height of the CB is equal to a first preset value; and
upon determining that the height of the CB is equal to the first preset value, the CB is transformed in the vertical direction using DST-VII.
2. The method of claim 1, wherein the first and second light sources are selected from the group consisting of a red light source, a green light source, and a blue light source,
wherein, before determining whether the width of the CB is equal to the first preset value, the method further comprises:
parsing the first message from the bitstream; and
determining whether the first message meets a first preset condition; and is
Wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message satisfies the first preset condition.
3. The method of claim 2, wherein the first and second light sources are selected from the group consisting of a red light source, a green light source, and a blue light source,
wherein, prior to parsing the first message from the bitstream, the method further comprises determining whether a Coding Block (CB) satisfies a second preset condition; and is
Wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
4. The method of claim 2, wherein the first message is a MTS _ CU _ flag.
5. The method of claim 4, wherein determining whether the first message satisfies a first preset condition comprises:
determining whether MTS _ CU _ flag is 1 or 0;
if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and
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, the MTS _ Hor _ flag is not parsed from the bitstream and is derived as 0.
7. The method of claim 1, further comprising:
upon determining that the height of the CB is equal to the first preset value, the MTS _ Ver _ flag is not parsed from the bitstream and is derived as 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 comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value;
(b) the width or height of the CB is greater than a first preset value; and
(c) the coded block flag of CB equals the 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 preset condition comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value; and
(b) the coded block flag of CB equals the 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:
when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to a first preset value;
when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and
and when the side length of the CB is determined not to be equal to the first preset value, performing the transform of the CB by using a discrete cosine transform (DCT-II) of type II.
14. The method of claim 5, further comprising:
upon determining that the first message does not satisfy the first preset condition, the CB is transformed in both a horizontal direction and a vertical direction using DCT-II.
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 luminance CB.
17. An apparatus, comprising:
one or more processors;
a memory connected to the one or more processors, the memory having stored 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 the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII);
determining whether the height of the CB is equal to a first preset value; and
upon determining that the height of the CB is equal to the first preset value, the CB is transformed in the vertical direction using DST-VII.
18. The apparatus as set forth in claim 17, wherein,
wherein, prior to determining whether the width of the CB is equal to the first preset value, the acts further comprise:
parsing the first message from the bitstream; and
determining whether the first message meets a first preset condition; and is
Wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message satisfies the first preset condition.
19. The apparatus as set forth in claim 18, wherein,
wherein, prior to parsing the first message from the bitstream, the actions further comprise determining whether a Coding Block (CB) satisfies a second preset condition; and is
Wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
20. The apparatus of claim 18, wherein the first message is a MTS _ CU _ flag.
21. The apparatus of claim 20, wherein determining whether the first message satisfies a first preset condition comprises:
determining whether MTS _ CU _ flag is 1 or 0;
if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and
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 actions further comprise:
upon determining that the width of the CB is equal to the first preset value, the MTS _ Hor _ flag is not parsed from the bitstream and is derived as 0.
23. The apparatus of claim 17, wherein the actions further comprise:
upon determining that the height of the CB is equal to the first preset value, the MTS _ Ver _ flag is not parsed from the bitstream and is derived as 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 comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value;
(b) the width or height of the CB is greater than a first preset value; and
(c) the coded block flag of CB equals the 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 preset condition comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value; and
(b) the coded block flag of CB equals the 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 actions further comprise:
when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to a first preset value;
when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and
and when the side length of the CB is determined not to be equal to the first preset value, performing the transform of the CB by using a discrete cosine transform (DCT-II) of type II.
30. The apparatus of claim 21, wherein the actions further comprise:
upon determining that the first message does not satisfy the first preset condition, the CB is transformed in both a horizontal direction and a vertical direction using DCT-II.
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 luminance CB.
33. A computer-readable storage medium storing computer-readable instructions executable by one or more processors, the computer-readable instructions, when executed by the one or more processors, causing the one or more processors to perform acts comprising:
determining whether the 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, transforming the CB in a horizontal direction using a discrete sine transform of type VII (DST-VII);
determining whether the height of the CB is equal to a first preset value; and
upon determining that the height of the CB is equal to the first preset value, the CB is transformed in the vertical direction using DST-VII.
34. The computer-readable storage medium of claim 33,
wherein, prior to determining whether the width of the CB is equal to the first preset value, the acts further comprise:
parsing a first message from a bitstream; and
determining whether the first message meets a first preset condition; and is
Wherein determining whether the width of the CB is equal to the first preset value occurs upon determining that the first message satisfies the first preset condition.
35. The computer-readable storage medium of claim 34,
wherein, prior to parsing the first message from the bitstream, the actions further comprise determining whether a Coding Block (CB) satisfies a second preset condition; and is
Wherein parsing the first message from the bitstream occurs upon determining that the CB satisfies a second preset condition.
36. The computer-readable storage medium of claim 34, wherein the first message is a MTS _ CU _ flag.
37. The computer-readable storage medium of claim 36, wherein determining whether the first message satisfies a first preset condition comprises:
determining whether MTS _ CU _ flag is 1 or 0;
if the MTS _ CU _ flag is 1, determining that the first message meets a first preset condition; and
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, the MTS _ Hor _ flag is not parsed from the bitstream and is derived as 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, the MTS _ Ver _ flag is not parsed from the bitstream and is derived as 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 comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value;
(b) the width or height of the CB is greater than a first preset value; and
(c) the coded block flag of CB equals the 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 preset condition comprises:
(a) both the width and the height of the CB are less than or equal to a second preset value; and
(b) the coded block flag of CB equals the 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:
when the first message is determined not to meet the first preset condition, determining whether the side length of the CB is equal to a first preset value;
when the side length of the CB is determined to be equal to a first preset value, using DST-VII to transform the CB; and
and when the side length of the CB is determined not to be equal to the first preset value, performing the transform of the CB by using a discrete cosine transform (DCT-II) of type II.
46. The computer-readable storage medium of claim 37, wherein the acts further comprise:
upon determining that the first message does not satisfy the first preset condition, the CB is transformed in both a horizontal direction and a vertical direction using DCT-II.
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 luminance CB.
CN201910900765.3A 2018-09-21 2019-09-23 Method and device for selecting conversion of small-size blocks Active CN110944174B (en)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN110944174A true CN110944174A (en) 2020-03-31
CN110944174B CN110944174B (en) 2023-03-31

Family

ID=69888117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910900765.3A Active CN110944174B (en) 2018-09-21 2019-09-23 Method and device for selecting conversion of small-size blocks

Country Status (2)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030108099A1 (en) * 1998-06-26 2003-06-12 Takefumi Nagumo Picture encoding method and apparatus, picture decoding method and apparatus and furnishing medium
CN102986216A (en) * 2010-07-09 2013-03-20 高通股份有限公司 Signaling selected directional transform for video coding
CN107211144A (en) * 2015-01-26 2017-09-26 高通股份有限公司 Enhanced multiple transform for prediction residual
CN108293109A (en) * 2015-11-23 2018-07-17 联发科技(新加坡)私人有限公司 Block dividing method with minimum block size in coding and decoding video and device

Family Cites Families (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
CN105847800B (en) * 2016-05-18 2018-10-09 山东大学(威海) Method for compressing image and system based on all phase discrete sine biorthogonal conversion
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
KR20180092774A (en) * 2017-02-10 2018-08-20 삼성전자주식회사 Image Processing Device and Image Processing Method Performing Sample Adaptive Offset Processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030108099A1 (en) * 1998-06-26 2003-06-12 Takefumi Nagumo Picture encoding method and apparatus, picture decoding method and apparatus and furnishing medium
CN102986216A (en) * 2010-07-09 2013-03-20 高通股份有限公司 Signaling selected directional transform for video coding
CN107211144A (en) * 2015-01-26 2017-09-26 高通股份有限公司 Enhanced multiple transform for prediction residual
CN108293109A (en) * 2015-11-23 2018-07-17 联发科技(新加坡)私人有限公司 Block dividing method with minimum block size in coding and decoding video and device

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110249629B (en) Method for determining segmentation of video data for video code processing
US11057627B2 (en) In-loop filtering method according to adaptive pixel classification standard
US11044473B2 (en) Adaptive loop filtering classification in video coding
CN113873241B (en) Method for decoding video and method for encoding video
CN113812155B (en) Interaction between multiple inter-frame coding and decoding methods
JP2020533822A (en) Image decoding method, image coding method, and recording medium
CN110720217B (en) Apparatus and method for supporting image encoding or decoding of various block sizes
CN117041559A (en) Method for decoding or encoding video and apparatus for storing video data
CN116684592A (en) Video decoding method, video signal encoding method, and medium thereof
CN109716762B (en) Method for processing video signal
CN117201821A (en) Apparatus for encoding or decoding video data and method of storing bit stream
CN112106364B (en) Video signal processing method and apparatus using reference samples
CN114391255B (en) System and method for reducing reconstruction errors in video coding based on cross-component correlation
CN118200610A (en) Boundary forced partition improvement
WO2020056757A1 (en) Method, apparatus, and computer-readable storage medium for block partitioning tree separation under separation node
US20240214585A1 (en) Bypass alignment in video coding
CN110944174B (en) Method and device for selecting conversion of small-size blocks
CN113994679B (en) Restriction on the number of context-sensitive codec bits
CN115315944A (en) Implicit multiple transform set signaling in video coding and decoding
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

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant