Method and equipment for determining division of video data, video decoding device and video coding device

By using a subset of the quad-tree and symmetric binary tree segmentation mode to divide the fractional boundary video blocks, the problems of low encoding efficiency and excessive video blocks in the prior art are solved, and more efficient video data processing is achieved.

CN119967171APending Publication Date: 2025-05-09SHARP KK +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510129977.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2018-02-14
Filing Date
2018-12-25
Publication Date
2025-05-09

AI Technical Summary

Technical Problem

When the existing video encoding technology processes score boundary video blocks, the division mode is limited, resulting in low encoding efficiency and a large number of relatively small video blocks appearing at the picture boundary, affecting the encoding performance.

Method used

The subset of quad-tree and symmetric binary tree segmentation modes are used to divide. According to the comparison of the height and width of the video block with the threshold, the applicable partition modes are determined, including symmetric binary tree segmentation and symmetric vertical and horizontal binary tree segmentation modes.

Benefits of technology

The encoding efficiency of video encoding is improved, the number of video blocks at the picture boundary is reduced, and the processing performance of video data is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119967171A_ABST
    Figure CN119967171A_ABST
Patent Text Reader

Abstract

The invention provides a method and equipment for determining division of video data for video coding, a video decoding device and a video coding device. The method comprises: determining a current video block in a boundary column and / or a boundary row of a picture as a fractional boundary video block, the current video block having only a portion of the current video block within a picture boundary of the picture; and determining an available direction for a symmetric vertical and horizontal BT partition mode for the current video block, where: when (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row, and (3) the bottom row of the current video block is not aligned with the boundary row; when a right column of the current video block is included in the picture and a right column of the current video block is included in the picture, (3) a direction of the symmetric vertical and horizontal BT partition mode of a mother video block of the current video block is a horizontal direction and (4) a height of the current video block is above a height threshold, the available direction is the horizontal direction.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The application number of the original application is 201880080555.8, and the original application date is December 25, 2018. The entire contents of the original application are incorporated into this application by reference. Technical Field

[0002] The present disclosure relates to a method, an apparatus, a video decoding device, and a video encoding device for determining division of video data, and more particularly to a technique for dividing a picture of video data. Background Art

[0003] Digital video capabilities can be incorporated into various devices, including digital televisions, laptop or desktop computers, tablet computers, digital recording devices, digital media players, video game devices, cellular phones (including so-called smart phones), medical imaging devices, etc. Digital video can be encoded according to a video coding standard. Video coding standards can be combined with video compression technology. Examples of video coding standards include ISO / IEC MPEG-4Visual and ITU-T H.264 (also known as ISO / IEC MPEG-4AVC) and High Efficiency Video Coding (HEVC). HEVC is described in High Efficiency Video Coding (HEVC) of the ITU-T H.265 Recommendation in December 2016, which is incorporated herein by reference and is referred to as ITU-TH.265 in this article. ITU-T H.265 is currently being considered for expansion and improvement to develop the next generation of video coding standards. For example, the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) (collectively referred to as the Joint Video Study Group (JVET)) are studying the potential need for standardization of future video coding technologies with compression capabilities significantly exceeding the current HEVC standard. The Joint Exploration Model 7 (JEM 7), Algorithmic Description of the Joint Exploration Test Model 7 (JEM 7), ISO / IEC JTC1 / SC29 / WG11 document: JVET-G1001 (July 2017, Torino, Italy), incorporated herein by reference, describes the coding features under investigation by JVET under the Joint Test Model, which is a potential enhanced video coding technology beyond the capabilities of ITU-T H.265. It should be noted that the coding features of JEM 7 are implemented in the JEM reference software. As used herein, the term JEM may refer collectively to the algorithms included in JEM 7 and to specific implementations of the JEM reference software.

[0004] Video compression techniques can reduce the data requirements for storing and transmitting video data. Video compression techniques can reduce data requirements by exploiting the redundancy inherent in video sequences. Video compression techniques can subdivide video sequences into successively smaller parts (i.e., groups of frames within a video sequence, frames within a group of frames, segments within a frame, coding tree units (e.g., macroblocks) within a segment, coding blocks within a coding tree unit, etc.). Intra-frame prediction coding techniques (e.g., within a picture (spatial)) and inter-frame prediction techniques (i.e., between pictures (temporal)) can be used to generate the difference between the video data unit to be encoded and the reference unit of the video data. The difference may be referred to as residual data. The residual data may be encoded as quantized transform coefficients. Syntax elements may involve residual data and reference coding units (e.g., intra-frame prediction mode indexes, motion vectors, and block vectors). The residual data and syntax elements may be entropy encoded. Entropy-encoded residual data and syntax elements may be included in a compatible bitstream. Summary of the invention

[0005] In one example, a method of partitioning video data for video encoding includes receiving a video block including sample values; determining whether the video block is a fractional boundary video block; and partitioning the sample values ​​using a subset of available partitioning patterns according to an inferred partition.

[0006] In one example, a method of reconstructing video data includes: receiving residual data corresponding to an encoded video block including sample values; determining whether the encoded video block is a fractional boundary video block; determining a partition for the encoded video block using a subset of available partitioning patterns according to an inferred partition; and reconstructing video data based on the residual data and the partition for the encoded video block.

[0007] In one example, a method for determining partitioning of video data for video encoding, the method comprising: determining a video block from a picture of the video data, wherein the picture includes a boundary; when the video block has a portion of the boundary, determining that the video block is a fractional boundary video block, wherein a subset of partitioning modes is applicable to partitioning the fractional boundary video block, the subset comprising quadtree and symmetric binary tree partitioning modes; when the video block is the fractional boundary video block, determining whether one of a block height and a block width of the video block is greater than a corresponding one of a height threshold and a width threshold; comparing both the block height and the block width to a parameter indicating a maximum size of a quadtree leaf node that is allowed to be partitioned by binary tree partitioning comparing; determining whether at least one of the block height and the block width is greater than the parameter; and determining the partition of the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold; wherein determining the partition of the fractional boundary video block comprises: determining whether all of at least one symmetric binary tree partitions are allowed based on whether the at least one of the block height and the block width is greater than the parameter, and determining that one of the at least one symmetric binary tree partitions is allowed for the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold.

[0008] In one example, a device for encoding video data includes one or more processors configured to perform: determining a video block from a picture of the video data, wherein the picture includes a boundary; when the video block has a portion of the boundary, determining that the video block is a fractional boundary video block, wherein a subset of partitioning modes is applicable to partitioning the fractional boundary video block, the subset including quadtree and symmetric binary tree partitioning modes; when the video block is the fractional boundary video block, determining whether one of a block height and a block width of the video block is greater than a corresponding one of a height threshold and a width threshold; comparing both the block height and the block width to a quadtree leaf node indicating that partitioning by binary tree partitioning is allowed the maximum size of the video block; determining whether at least one of the block height and the block width is greater than the parameter; and determining the partition of the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold; wherein determining the partition of the fractional boundary video block comprises: determining whether all of at least one symmetric binary tree partitions are allowed based on whether the at least one of the block height and the block width is greater than the parameter, and determining that one of the at least one symmetric binary tree partitions is allowed for the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold.

[0009] In one example, a non-transitory computer-readable storage medium includes instructions stored thereon, which, when executed, cause one or more processors of a device for encoding video data to perform: determining a video block from a picture of the video data, wherein the picture includes a boundary; when the video block has a portion of the boundary, determining that the video block is a fractional boundary video block, wherein a subset of partitioning modes is applicable to partitioning the fractional boundary video block, the subset including quadtree and symmetric binary tree partitioning modes; when the video block is the fractional boundary video block, determining whether one of a block height and a block width of the video block is greater than a corresponding one of a height threshold and a width threshold; comparing both the block height and the block width to an indication that binary partitioning is allowed The method comprises the steps of comparing the block height and the block width with a parameter of a maximum size of a quad tree leaf node to be divided by quad tree partitioning; determining whether at least one of the block height and the block width is greater than the parameter; and determining the partition of the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold; wherein determining the partition of the fractional boundary video block comprises: determining whether all of at least one symmetric binary tree partitioning is allowed based on whether the at least one of the block height and the block width is greater than the parameter, and determining that one of the at least one symmetric binary tree partitioning is allowed for the fractional boundary video block based on whether the one of the block height and the block width is greater than the corresponding one of the height threshold and the width threshold.

[0010] In one example, a method for determining partitioning of video data for video encoding includes: determining a current video block in a boundary column of a picture and / or a boundary row of the picture as a fractional boundary video block, the current video block as the fractional boundary video block having only a portion of the current video block within a picture boundary of the picture, wherein a quadtree QT partitioning mode and symmetrical vertical and horizontal binary tree BT partitioning modes can be used to partition the fractional boundary video block; and determining available directions of the symmetrical vertical and horizontal BT partitioning modes for the current video block, wherein: when (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row of the picture and the right column of the current video block is included in the picture, (3) the direction of the symmetrical vertical and horizontal BT partitioning mode for the mother video block of the current video block is the horizontal direction, and (4) the height of the current video block is higher than a height threshold, the available direction of the symmetrical vertical and horizontal BT partitioning mode for the current video block is the horizontal direction.

[0011] In one example, a device for determining the partitioning of video data for video encoding, the device comprising: at least one processor, and one or more non-transitory computer-readable media, the non-transitory computer-readable media coupled to the at least one processor and storing one or more computer-executable instructions, when the one or more computer-executable instructions are executed by the at least one processor, causing the device to perform: determining a current video block in a boundary column of a picture and / or a boundary row of the picture as a fractional boundary video block, the current video block as the fractional boundary video block having only a portion of the current video block within a picture boundary of the picture, wherein the quadtree QT partitioning mode and the symmetrical vertical Vertical and horizontal binary tree BT partitioning modes can be used to partition the fractional boundary video block; and determining available directions of the symmetrical vertical and horizontal BT partitioning modes for the current video block, wherein: when (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row of the picture, and the right column of the current video block is included in the picture, (3) the direction of the symmetrical vertical and horizontal BT partitioning mode of the mother video block of the current video block is the horizontal direction, and (4) the height of the current video block is higher than a height threshold, the available direction of the symmetrical vertical and horizontal BT partitioning mode for the current video block is the horizontal direction.

[0012] In one example, a video decoding device includes: at least one processor, and one or more non-transitory computer-readable media, the non-transitory computer-readable media is coupled to the at least one processor and stores one or more computer-executable instructions, when the one or more computer-executable instructions are executed by the at least one processor, the video decoding device performs: determining a current video block in a boundary column of a picture and / or a boundary row of the picture as a fractional boundary video block, the current video block as the fractional boundary video block is a current video block having only a portion of the current video block within a picture boundary of the picture, wherein the quadtree QT partitioning mode and the symmetrical vertical and A horizontal binary tree BT partitioning mode can be used to partition the fractional boundary video block; and determine the available directions of the symmetrical vertical and horizontal BT partitioning modes for the current video block, wherein: when (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row of the picture, and the right column of the current video block is included in the picture, (3) the direction of the symmetrical vertical and horizontal BT partitioning mode of the mother video block of the current video block is the horizontal direction, and (4) the height of the current video block is higher than a height threshold, the available direction of the symmetrical vertical and horizontal BT partitioning mode for the current video block is the horizontal direction.

[0013] In one example, a video encoding device includes: at least one processor, and one or more non-transitory computer-readable media, the non-transitory computer-readable media is coupled to the at least one processor and stores one or more computer-executable instructions, when the one or more computer-executable instructions are executed by the at least one processor, the video encoding device performs: determining a current video block in a boundary column of a picture and / or a boundary row of the picture as a fractional boundary video block, the current video block as the fractional boundary video block is a current video block having only a portion of the current video block within a picture boundary of the picture, wherein the quadtree QT partitioning mode and the symmetrical vertical and A horizontal binary tree BT partitioning mode can be used to partition the fractional boundary video block; and determine the available directions of the symmetrical vertical and horizontal BT partitioning modes for the current video block, wherein: when (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row of the picture, and the right column of the current video block is included in the picture, (3) the direction of the symmetrical vertical and horizontal BT partitioning mode of the mother video block of the current video block is the horizontal direction, and (4) the height of the current video block is higher than a height threshold, the available direction of the symmetrical vertical and horizontal BT partitioning mode for the current video block is the horizontal direction. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a conceptual diagram illustrating an example of a set of pictures encoded according to quadtree binary tree partitioning according to one or more techniques of this disclosure.

[0015] Figure 2 is a conceptual diagram illustrating an example of a quadtree binary tree in accordance with one or more techniques of this disclosure.

[0016] Figure 3 is a conceptual diagram illustrating a quadtree binary tree partitioning of video components in accordance with one or more techniques of this disclosure.

[0017] Figure 4 is a conceptual diagram illustrating an example of a video component sampling format in accordance with one or more techniques of this disclosure.

[0018] Figure 5 is a conceptual diagram illustrating a possible encoding structure for a block of video data in accordance with one or more techniques of this disclosure.

[0019] Fig. 6A is a conceptual diagram illustrating an example of encoding a block of video data in accordance with one or more techniques of this disclosure.

[0020] Figure 6B is a conceptual diagram illustrating an example of encoding a block of video data in accordance with one or more techniques of this disclosure.

[0021] Figure 7 is a conceptual diagram illustrating an example of a picture divided into coding units according to one or more techniques of this disclosure.

[0022] Figure 8 is a conceptual diagram illustrating an example of quadtree partitioning of coding units occurring at picture boundaries according to one or more techniques of this disclosure.

[0023] Fig. 9 is a conceptual diagram illustrating a partitioning pattern according to one or more techniques of the present disclosure.

[0024] Fig.10 is a conceptual diagram illustrating a partitioning pattern according to one or more techniques of the present disclosure.

[0025] Fig.11 is a conceptual diagram illustrating a partitioning pattern according to one or more techniques of the present disclosure.

[0026] Fig.12 is a block diagram illustrating an example of a system that may be configured to encode and decode video data in accordance with one or more techniques of this disclosure.

[0027] Fig.13 is a block diagram illustrating an example of a video encoder that may be configured to encode video data in accordance with one or more techniques of this disclosure.

[0028] Fig.14A is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0029] Fig. 14B is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0030] Fig. 14C is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0031] Fig.15A is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0032] Fig. 15B is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0033] Fig. 15C is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0034] Fig.16A is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0035] Fig. 16B is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0036] Fig. 16C is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0037] Fig.17A is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0038] Fig. 17B is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0039] Fig. 17C is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0040] Fig.18A is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0041] Fig.18B is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0042] Fig. 18C is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0043] Fig.18D is a conceptual diagram illustrating an example of splitting of coding units occurring at picture boundaries, according to one or more techniques of this disclosure.

[0044] Fig.19 is a block diagram illustrating an example of a video decoder that may be configured to decode video data in accordance with one or more techniques of this disclosure.

[0045] Fig. 20Included are conceptual diagrams showing examples of splitting of coding units occurring at picture boundaries in accordance with one or more techniques of this disclosure.

[0046] Fig.21 Included are conceptual diagrams showing examples of splitting of coding units occurring at picture boundaries in accordance with one or more techniques of this disclosure.

[0047] Fig. 22 Included are conceptual diagrams showing examples of splitting of coding units occurring at picture boundaries in accordance with one or more techniques of this disclosure. DETAILED DESCRIPTION

[0048] In general, the present disclosure describes various techniques for encoding video data. Specifically, the present disclosure describes techniques for dividing pictures of video data. It should be noted that although the techniques of the present disclosure are described with respect to ITU-T H.264, ITU-T H.265, and JEM, the techniques of the present disclosure are generally applicable to video coding. For example, in addition to those techniques included in ITU-T H.265 and JEM, the coding techniques described herein may be incorporated into video coding systems (including video coding systems based on future video coding standards), including block structures, intra-frame prediction techniques, inter-frame prediction techniques, transform techniques, filtering techniques, and / or other entropy coding techniques. Therefore, references to ITU-T H.264, ITU-T H.265, and / or JEM are for descriptive purposes and should not be interpreted as limiting the scope of the techniques described herein. In addition, it should be noted that the references are incorporated herein for descriptive purposes and should not be interpreted as limiting or creating ambiguity about the terms used herein. For example, where an incorporated reference provides a definition for a term that differs from that of another incorporated reference and / or as used herein, the term should be interpreted in a manner that broadly includes each respective definition and / or in a manner that includes each specific definition in alternatives.

[0049] In one example, an apparatus for partitioning video data for video encoding includes one or more processors configured to receive a video block including sample values; determine whether the video block is a fractional boundary video block; and partition the sample values ​​using a subset of available partitioning patterns according to an inferred partition.

[0050] In one example, a non-transitory computer-readable storage medium includes instructions stored thereon that, when executed, cause one or more processors of a device to receive a video block including sample values; determine whether the video block is a fractional boundary video block; and partition the sample values ​​using a subset of available partitioning patterns according to an inferred partition.

[0051] In one example, an apparatus includes means for receiving a video block including sample values; means for determining whether the video block is a fractional boundary video block; and means for partitioning the sample values ​​using a subset of available partitioning patterns according to an inferred partition.

[0052] In one example, an apparatus for reconstructing video data includes one or more processors configured to receive residual data corresponding to an encoded video block including sample values; determine whether the encoded video block is a fractional boundary video block; determine a partition for the encoded video block using a subset of available partitioning patterns according to an inferred partition; and reconstruct video data based on the residual data and the partition for the encoded video block.

[0053] In one example, a non-transitory computer-readable storage medium includes instructions stored thereon that, when executed, cause one or more processors of a device to receive residual data corresponding to an encoded video block including sample values; determine whether the encoded video block is a fractional boundary video block; determine a partition for the encoded video block using a subset of available partitioning patterns based on an inferred partition; and reconstruct video data based on the residual data and the partition for the encoded video block.

[0054] In one example, an apparatus includes: means for receiving residual data corresponding to an encoded video block including sample values; means for determining whether the encoded video block is a fractional boundary video block; means for determining a partition for the encoded video block using a subset of available partition modes according to an inferred partition; and means for reconstructing video data based on the residual data and the partition for the encoded video block.

[0055] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

[0056] Video content generally includes a video sequence consisting of a series of frames (or pictures). A series of frames may also be referred to as a group of pictures (GOP). Each video frame or picture may include multiple segments or tiles, wherein the segments or tiles include multiple video blocks. As used herein, the term "video block" may generally refer to an area of ​​a picture, or may more specifically refer to a maximum array of sample values ​​that can be predictively encoded, its sub-partitions and / or corresponding structures. In addition, the term "current video block" may refer to an area of ​​a picture being encoded or decoded. A video block may be defined as an array of sample values ​​that can be predictively encoded. It should be noted that in some cases, a pixel value may be described as a sample value comprising a corresponding component of video data, which may also be referred to as a color component (e.g., brightness (Y) and chrominance (Cb and Cr) components or red, green and blue components). It should be noted that in some cases, the terms "pixel value" and "sample value" may be used interchangeably. Video blocks may be sorted within a picture according to a scanning mode (e.g., raster scanning). A video encoder may perform predictive coding on a video block and its sub-partitions. A video block and its sub-partitions may be referred to as a node.

[0057] ITU-T H.264 specifies a macroblock including 16×16 luma samples. That is, in ITU-T H.264, a picture is partitioned into macroblocks. ITU-T H.265 specifies a similar coding tree unit (CTU) structure, which is also referred to as a maximum coding unit (LCU). In ITU-T H.265, a picture is partitioned into CTUs. In ITU-T H.265, for a picture, the CTU size can be set to include one of 16×16, 32×32, or 64×64 luma samples. In ITU-T H.265, a CTU consists of a corresponding coding tree block (CTB) for each component of video data, such as luma (Y) and chroma (Cb and Cr). In addition, in ITU-TH.265, a CTU can be partitioned according to a quadtree (QT) partitioning structure, which causes the CTB of a CTU to be partitioned into coding blocks (CBs). That is, in ITU-T H.265, a CTU can be partitioned into quadtree leaf nodes. According to ITU-T H.265, a luma CB together with two corresponding chroma CBs and associated syntax elements is called a coding unit (CU). In ITU-T H.265, the minimum allowed size of a CB can be signaled. In ITU-T H.265, the minimum allowed minimum size of a luma CB is 8×8 luma samples. In ITU-T H.265, the decision to encode a picture area using intra prediction or inter prediction is made at the CU level.

[0058] In ITU-T H.265, a CU is associated with a prediction unit (PU) structure having its root at the CU. In ITU-T H.265, the PU structure allows the partitioning of luma CB and chroma CB to generate corresponding reference samples. That is, in ITU-T H.265, the luma CB and chroma CB can be partitioned into corresponding luma and chroma prediction blocks (PBs), where the PBs include blocks of sample values ​​to which the same prediction is applied. In ITU-T H.265, the CB can be divided into 1, 2, or 4 PBs. ITU-T H.265 supports PB sizes from 64×64 samples down to 4×4 samples. In ITU-T H.265, square PBs are supported for intra prediction, where the CBs can form a PB, or the CBs can be partitioned into four square PBs (i.e., the intra prediction PB types include M×M or M / 2×M / 2, where M is the height and width of the square CB). In ITU-T H.265, in addition to square PBs, rectangular PBs are also supported for inter prediction, where the CB can be halved vertically or horizontally to form a PB (i.e., inter prediction PB types include M×M, M / 2×M / 2, M / 2×M, or M×M / 2). In addition, it should be noted that in ITU-T H.265, for inter prediction, four asymmetric PB partitions are supported, where the CB is divided into two PBs at one quarter of the height (top or bottom) or width (left or right) of the CB (i.e., asymmetric partitions include M / 4×M left, M / 4×M right, M×M / 4 top, and M×M / 4 bottom). Intra prediction data (e.g., intra prediction mode syntax elements) or inter prediction data (e.g., motion data syntax elements) corresponding to the PB are used to generate reference and / or prediction sample values ​​for the PB.

[0059] JEM specifies a CTU with a maximum size of 256×256 luma samples. JEM specifies a quadtree plus binary tree (QTBT) block structure. In JEM, the QTBT structure allows the quadtree leaf nodes to be further divided by the binary tree (BT) structure. That is, in JEM, the binary tree structure allows the quadtree leaf nodes to be recursively divided vertically or horizontally. Figure 1 An example is shown in which a CTU (e.g., a CTU having a size of 256×256 luma samples) is divided into quad leaf nodes and the quad leaf nodes are further divided according to a binary tree. That is, in Figure 1 In FIG. 1 , the dashed lines indicate additional binary tree partitions in the quadtree. Therefore, the binary tree structure in JEM implements square and rectangular leaf nodes, where each leaf node includes a CB. Figure 1 As shown, a picture included in a GOP may include slices, wherein each slice includes a CTU sequence, and each CTU may be divided according to a QTBT structure. Figure 1An example of QTBT partitioning of one CTU included in a segment is shown. Figure 2 is shown corresponding to Figure 1 Conceptual diagram of an example of a QTBT with an exemplary QTBT partition shown. In JEM, QTBT is signaled by signaling a QT partition flag and a BT partition mode syntax element. When the value of the QT partition flag is 1, QT partitioning is indicated. When the value of the QT partition flag is 0, the BT partition mode syntax element is signaled. When the value of the BT partition mode syntax element is 0 (i.e., BT partition mode coding tree = 0), binary partitioning is not indicated. When the value of the BT partition mode syntax element is 1, vertical partitioning mode is indicated. When the value of the BT partition mode syntax element is 2, horizontal partitioning mode is indicated. In addition, BT partitioning can be performed until the maximum BT depth is reached.

[0060] exist Figure 2 In , Q indicates quadtree partitioning, H indicates horizontal binary partitioning, V indicates vertical binary partitioning, and CU indicates the resulting CU leaf. Figure 2 As shown, the partition indicator (e.g., QT partition flag syntax element and BT partition mode syntax element) is associated with a depth, where a depth of zero corresponds to the root of the QTBT, and higher depth values ​​correspond to subsequent depths other than the root. Figure 2 , the tree corresponds to a left-to-right z-scan. That is, for QT segmentation, the tree nodes from left to right in the figure correspond to the z-scan of the QT parts; for horizontal segmentation, the tree nodes from left to right correspond to the top-to-bottom scan of the parts; and for vertical segmentation, the tree nodes from left to right correspond to the left-to-right scan of the parts. Other exemplary trees described herein may also utilize a left-to-right z-scan.

[0061] Furthermore, it should be noted that the luma component and the chroma component may have separate QTBT partitions in JEM. That is, in JEM, the luma component and the chroma component may be partitioned independently by signaling the corresponding QTBT. Figure 3 An example of dividing a CTU according to a QTBT for luma components and independent QTBTs for chroma components is shown. Figure 3 As shown in , when independent QTBT is used to divide CTU, the CB of the luma component does not need to and is not necessarily aligned with the CB of the chroma component. Currently, in JEM, an independent QTBT structure is enabled for fragments using intra-frame prediction technology. It should be noted that in some cases, it may be necessary to derive the value of the chroma variable from the associated luma variable value. In these cases, the sample position in the chroma and the chroma format can be used to determine the corresponding sample position in the luma, thereby determining the associated luma variable value.

[0062] Additionally, it should be noted that the JEM includes the following parameters for signaling the QTBT tree:

[0063] CTU size: the size of the root node of the quadtree (e.g., 256×256, 128×128, 64×64, 32×32, 16×16 luma samples);

[0064] MinQTSlze: minimum allowed quadtree leaf node size (e.g., 16×16, 8×8 luminance samples);

[0065] MaxBTSize: Maximum allowed binary tree root node size, i.e., the maximum size of a quadtree leaf node that can be partitioned by binary splitting (e.g., 64×64 brightness samples);

[0066] MaxBTDepth: maximum allowed binary tree depth, i.e., the lowest level at which binary splitting can occur, with a quadtree leaf node as the root (e.g., 3);

[0067] MinBTSize: Minimum allowed binary leaf node size; that is, the minimum width or height of a binary leaf node (e.g., 4 luma samples).

[0068] It should be noted that in some examples, MinQTSize, MaxBTSize, MaxBTDepth and / or MinBTSize may be different for different components of a video.

[0069] In JEM, CB is used for prediction without any further partitioning. That is, in JEM, CB can be a block of sample values ​​to which the same prediction is applied. Therefore, JEM QTBT leaf node can be similar to PB in ITU-T H.265.

[0070] The video sampling format (which may also be referred to as the chroma format) may define the number of chroma samples included in a CU relative to the number of luma samples included in the CU. For example, for a 4:2:0 sampling format, the sampling rate of the luma component is twice the sampling rate of the chroma components in both horizontal and vertical directions. Therefore, for a CU formatted according to the 4:2:0 format, the width and height of the sample array for the luma component are twice the width and height of each sample array for the chroma components. Figure 4 is a conceptual diagram illustrating an example of coding units formatted according to a 4:2:0 sample format. Figure 4 shows the relative position of chroma samples relative to luma samples within a CU. As mentioned above, a CU is usually defined based on the number of horizontal and vertical luma samples. Figure 4As shown, a 16×16 CU formatted according to the 4:2:0 sample format includes 16×16 samples of the luma component and 8×8 samples for each chroma component. Figure 4 In the example shown, the relative positions of chroma samples of adjacent video blocks of a 16×16 CU with respect to luma samples are shown. For a CU formatted according to the 4:2:2 format, the width of the sample array of the luma component is twice the width of the sample array of each chroma component, but the height of the sample array of the luma component is equal to the height of the sample array of each chroma component. In addition, for a CU formatted according to the 4:4:4 format, the sample array of the luma component has the same width and height as the sample array of each chroma component.

[0071] As described above, intra prediction data or inter prediction data is used to generate reference sample values ​​for a block of sample values. The difference between the sample values ​​included in the current PB or another type of picture region structure and the associated reference samples (e.g., those generated using prediction) may be referred to as residual data. The residual data may include a corresponding difference array corresponding to each component of the video data. The residual data may be in the pixel domain. A transform such as a discrete cosine transform (DCT), a discrete sine transform (DST), an integer transform, a wavelet transform, or a conceptually similar transform may be applied to the difference array to generate transform coefficients. It should be noted that in ITU-T H.265, a CU is associated with a transform unit (TU) structure having its root at the CU level. That is, in ITU-T H.265, in order to generate transform coefficients, the array of difference values ​​may be subdivided (e.g., four 8×8 transforms may be applied to a 16×16 residual value array). For each component of the video data, such subdivision of the difference values ​​may be referred to as a transform block (TB). It should be noted that in ITU-T H.265, TBs are not necessarily aligned with PBs. Figure 5 Examples of alternative PB and TB combinations that can be used to encode a particular CB are shown. Furthermore, it should be noted that in ITU-T H.265, TBs can have the following sizes: 4×4, 8×8, 16×16, and 32×32.

[0072] It should be noted that in JEM, the residual values ​​corresponding to CB are used to generate transform coefficients without further partitioning. That is, in JEM, the QTBT leaf node can be similar to both PB and TB in ITU-T H.265. It should be noted that in JEM, a core transform and a subsequent secondary transform can be applied (in a video encoder) to generate transform coefficients. For a video decoder, the order of transforms is reversed. In addition, in JEM, whether a secondary transform is applied to generate transform coefficients may depend on the prediction mode.

[0073] A quantization process may be performed on the transform coefficients. Quantization essentially scales the transform coefficients in order to change the amount of data required to represent a set of transform coefficients. Quantization may typically include dividing the transform coefficients by a quantization scaling factor and any associated rounding function (e.g., rounding to the nearest integer). The quantized transform coefficients may be referred to as coefficient level values. Inverse quantization (or "dequantization") may include multiplying the coefficient level values ​​by the quantization scaling factor. It should be noted that, as used herein, the term quantization process may in some cases refer to dividing by a scaling factor to generate a level value, and in some cases may refer to multiplying by a scaling factor to recover the transform coefficients. That is, the quantization process may in some cases refer to quantization, and in some cases may refer to inverse quantization.

[0074] FIG. 6A to FIG. 6B is a conceptual diagram showing an example of encoding a video data block. Fig. 6A As shown, a current block of video data (e.g., corresponding to a CB of a video component) is encoded by subtracting a set of prediction values ​​from the current block of video data to generate a residual, performing a transform on the residual, and quantizing the transform coefficients to generate a level value. Figure 6B As shown in , the current video data block is decoded by performing inverse quantization on the level value, performing an inverse transform, and adding a set of prediction values ​​to the resulting residual. It should be noted that in FIG. 6A to FIG. 6B In the example of , the sample values ​​of the reconstructed block are different from the sample values ​​of the current video block being encoded. In this way, the encoding can be considered lossy. However, for a viewer of the reconstructed video, the difference in sample values ​​can be considered acceptable or imperceptible. In addition, FIG. 6A to FIG. 6B As shown, scaling is performed using an array of scaling factors.

[0075] like Fig. 6AAs shown, the quantized transform coefficients are encoded into a bitstream. The quantized transform coefficients and syntax elements (e.g., syntax elements indicating the coding structure of the video block) may be entropy encoded according to an entropy coding technique. Examples of entropy coding techniques include content adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), probability interval partitioning entropy coding (PIPE), etc. The entropy-coded quantized transform coefficients and the corresponding entropy-coded syntax elements may form a compatible bitstream that can be used to reproduce video data at a video decoder. The entropy coding process may include binarizing the syntax elements. Binarization refers to the process of converting the value of a syntax value into a sequence of one or more bits. These bits may be referred to as "binary bits". Binarization is a lossless process and may include one or a combination of the following coding techniques: fixed length coding, unary coding, truncated unary coding, truncated Rice coding, Golomb coding, k-order exponential Golomb coding, and Golomb-Rice coding. For example, binarization may include representing the integer value 5 of the syntax element as 00000101 using an 8-bit fixed-length binarization technique, or representing the integer value 5 as 11110 using a unary coding binarization technique. As used herein, each of the terms fixed-length coding, unary coding, truncated unary coding, truncated Rice coding, Golomb coding, k-order exponential Golomb coding, and Golomb-Rice coding may refer to general implementations of these techniques and / or more specific implementations of these coding techniques. For example, a Golomb-Rice coding implementation may be specifically defined according to a video coding standard (e.g., ITU-T H.265). The entropy coding process also includes encoding the bin value using a lossless data compression algorithm. In the example of CABAC, for a particular bin, a context model may be selected from a set of available context models associated with the bin. In some examples, a context model may be selected based on a previous bin and / or a value of a previous syntax element. A context model may identify the probability that a bin has a particular value. For example, the context model may indicate that the probability of encoding a box with a value of 0 is 0.7, and the probability of encoding a box with a value of 1 is 0.3. It should be noted that in some cases, the sum of the probability of encoding a box with a value of 0 and the probability of encoding a box with a value of 1 may not be equal to 1. After selecting an available context model, the CABAC entropy encoder may arithmetically encode the box based on the identified context model. The context model may be updated based on the value of the encoded box. The context model may be updated based on associated variables stored with the context, such as the adaptation window size, the number of encoded boxes using the context. It should be noted that according to ITU-T H.265, the CABAC entropy encoder may be implemented so that some syntax elements may be entropy encoded using arithmetic coding without using an explicitly specified context model, and such encoding may be referred to as bypass coding.

[0076] As described above, intra prediction data or inter prediction data may associate an area of ​​a picture (e.g., PB or CB) with a corresponding reference sample. For intra prediction coding, an intra prediction mode may specify the position of a reference sample within a picture. In ITU-T H.265, possible intra prediction modes defined include a plane (i.e., surface fitting) prediction mode (predMode:0), a DC (i.e., flat overall average) prediction mode (predMode:1), and 33 angle prediction modes (predMode:2-34). In JEM, possible intra prediction modes defined include a plane prediction mode (predMode:0), a DC prediction mode (predMode:1), and 65 angle prediction modes (predMode:2-66). It should be noted that the plane prediction mode and the DC prediction mode may be referred to as a non-directional prediction mode, and the angle prediction mode may be referred to as a directional prediction mode. It should be noted that the techniques described herein may be generally applicable regardless of the number of possible prediction modes defined.

[0077] For inter-frame prediction coding, a motion vector (MV) identifies a reference sample in a picture other than the picture of the video block to be encoded, thereby exploiting temporal redundancy in the video. For example, the current video block can be predicted from one or more reference blocks located in one or more previously encoded frames, and a motion vector can be used to indicate the location of the reference block. The motion vector and associated data may describe, for example, the horizontal component of the motion vector, the vertical component of the motion vector, the resolution of the motion vector (e.g., quarter-pixel precision, half-pixel precision, one-pixel precision, two-pixel precision, four-pixel precision), the prediction direction, and / or the reference picture index value. In addition, coding standards such as ITU-T H.265 may support motion vector prediction. Motion vector prediction allows the motion vector to be specified to use the motion vectors of neighboring blocks. Examples of motion vector prediction include advanced motion vector prediction (AMVP), temporal motion vector prediction (TMVP), so-called "merge" mode, and "skip" and "direct" motion inference. In addition, JEM supports advanced temporal motion vector prediction (ATMVP) and spatial-temporal motion vector prediction (STMVP).

[0078] As described above, during video encoding, a picture may be segmented or divided into basic coding units, such as 16×16 macroblocks in ITU-TH.264; 16×16, 32×32, or 64×64 CTUs in H.265; and 16×16, 32×32, 64×64, 128×128, or 256×256 CTUs in JEM. A video sequence may have various video attributes, including, for example, frame rate and picture resolution. For example, a so-called high-definition (HD) video sequence may include a picture having a resolution of 1980×1080 pixels or 1280×720 pixels. In addition, an exemplary so-called ultra-high-definition (UHD) video sequence may include a picture having a resolution of 3840×2160 pixels or 7680×4320 pixels. In addition, a video sequence includes pictures having various other resolutions. Therefore, in some cases, depending on the size of the picture and the size of the basic coding unit (e.g., CTU size), the width and / or height of the picture may not be divisible into an integer number of basic coding units. Figure 7 An example of a 1280×720 picture divided into 64×64 CTUs is shown. Figure 7 As shown, the bottom row of the CTU is not aligned with the bottom picture boundary. That is, only 16 rows of samples in the bottom row CTU fit within the picture boundary (720 divided by 64 is 11, with a remainder of 16). As used herein, the terms fractional boundary video block, fractional boundary CTU, fractional boundary LCU, or fractional boundary coding unit may be used to refer to video blocks in boundary columns and / or boundary rows of a picture having only a portion thereof within a picture boundary. It should be noted that boundary columns and boundary rows may include fragments, tiles, and / or picture boundaries. Furthermore, it should be noted that in some cases (e.g., omnidirectional video or so-called surround video), the boundary column may include a left boundary, and the boundary row may include a top row.

[0079] Typically, for example, in ITU-T H.265, fractional boundary video blocks are partitioned in a predefined manner, that is, inferred partitions occur without signaling a partition indicator. Typically, inferred partitions are partitions that occur at a depth that forms a CU that is aligned with a picture boundary. For example, referring to Figure 7 , the inferred partitioning of the bottom row of CTUs may include an inferred QT partitioning, resulting in a row of four 16×16 CUs at the top of the CTU, where the row of four 16×16 CUs is included within the picture boundary. Figure 8 is a conceptual diagram showing an example of inferred QT partitioning of, for example, fractional boundary video blocks. Figure 8 In , X corresponds to nodes resulting from partitions outside the image boundary. Figure 8 Example shown, CTU 1 The division can correspond to Figure 7It should be noted that in some examples, the CUs within the picture boundaries resulting from the inferred partitioning can be further partitioned. For example, refer to Figure 8 CTU 0 , in some examples, the six CUs of the CTU within the vertical picture boundary can be further divided.

[0080] It should be pointed out that if Figure 8 As shown, partitioning fractional boundary video blocks in a predefined manner may result in a relatively large number of relatively small video blocks (e.g., CUs) appearing at or near picture boundaries. Since each video block requires transmission / parsing of syntax elements associated with the video block coding structure, having a relatively large number of relatively small video blocks appearing at or near picture boundaries may have an adverse effect on coding efficiency. For example, as described above, in ITU-T H.265, CUs form the root of PUs and TUs, and thus each CU is associated with a PU and TU coding structure (i.e., semantic and syntax elements).

[0081] Furthermore, it should be noted that, with respect to JEM, techniques for partitioning a CU according to an asymmetric binary tree partitioning have been proposed. F. Le Leannc et al., in "Asymmetric Coding Units in QTBT" (document JVET-D0064) presented at the 4th conference in Chengdu, China, October 15-21, 2016 (hereinafter referred to as "Le Leannec"), described that in addition to the symmetric vertical and horizontal BT partitioning modes, four additional asymmetric BT partitioning modes are defined. In Le Leannec, the four additional defined BT partitioning modes for a CU include: horizontal partitioning at one quarter of the height (one mode at the top, or one mode at the bottom) or vertical partitioning at one quarter of the width (one mode at the left, or one mode at the right). The four additional defined BT partitioning modes in Le Leannec are: Fig. 9 It is shown as Hor_Up, Hor_Down, Ver_Left and Ver_Right.

[0082] In addition, Li et al. described an example in "Multi-Type-Tree" (document JVET-D0117r1) (hereinafter referred to as "Li") presented at the 4th conference in Chengdu, China, October 15-21, 2016, in which two additional triple difference tree (TT) partitioning modes are defined in addition to the symmetric vertical and horizontal BT partitioning modes. It should be noted that partitioning a node into three blocks with respect to one direction may be referred to as a ternary tree (TT) partitioning. Therefore, the partitioning types may include horizontal binary partitioning and vertical binary partitioning as well as horizontal TT partitioning and vertical TT partitioning. In Li, the two additional defined TT partitioning modes for a node include: (1) a horizontal TT partitioning at one quarter of the height of the node from the top edge to the bottom edge; and (2) a vertical TT partitioning at one quarter of the width of the node from the left edge to the right edge. In Li, the two additional defined TT partitioning modes are defined in Fig. 9 Shown in FIG. 1 are vertical TT and horizontal TT.

[0083] It should be noted that the exemplary partitioning patterns described in Le Leannec and Li can generally be described as predefined partitioning patterns. More generally, according to the techniques described herein, partitioning nodes according to BT and TT partitioning patterns can include arbitrary BT and TT partitioning. For example, referring to Fig.10 , corresponding to BT segmentation (Offset 1 ) and TT split (Offset 1 and Offset 2 ) can be arbitrary, rather than occurring at predefined locations in Le Leannec and Li. Various techniques can be used to infer and / or signal an arbitrary offset. For example, for nodes with a size less than or equal to a threshold, a predefined offset can be inferred, and for nodes with a size greater than a threshold, an arbitrary offset can be signaled.

[0084] In addition to the BT and TT segmentation types, a T-shaped segmentation type can also be defined. Fig.11 An example of T-shaped partitioning is shown. Fig.11 As shown, the T-shaped partitioning includes first partitioning the block according to the BT partitioning, and further partitioning one of the resulting blocks according to the BT partitioning with a vertical orientation. As shown in the figure, the T-shaped partitioning results in three blocks. Fig.11 In the example shown, the T-shaped partition is described as 2X T-shaped, where the 2X T-shaped partition may refer to the case where the T-shaped partition is generated using two symmetric BT partitions. Fig.11 In , the T-shaped partition is defined based on which of the resulting blocks after the first partition are further partitioned (e.g., the top or bottom for a horizontal T-shape, the left or right for a vertical T-shape). Fig.11 The exemplary T-shaped partition types in can be described as being predefined. In a manner similar to that described above, with respect to the BT and TT partition types, according to the techniques described herein, partitioning a node according to a T-shaped partition pattern may include any T-shaped partition. It should be noted that in other examples, other partitioning patterns may be defined, such as quadrilateral partitioning with respect to a single vertical or horizontal direction (e.g., partitioning a square into four parallel rectangles of equal size). As described above, automatically partitioning fractional boundary video blocks may have an adverse effect on coding efficiency. In addition, when various partitioning patterns are available for partitioning nodes, current techniques for partitioning fractional boundary video blocks may be less than ideal.

[0085] Fig.12 1 is a block diagram illustrating an example of a system that may be configured to encode (e.g., encode and / or decode) video data in accordance with one or more techniques of this disclosure. System 100 represents an example of a system that may perform video encoding using the partitioning techniques described in accordance with one or more techniques of this disclosure. Fig.12 As shown, system 100 includes source device 102, communication medium 110, and target device 120. Fig.12 In the example shown, source device 102 may include any device configured to encode video data and transmit the encoded video data to communication medium 110. Target device 120 may include any device configured to receive the encoded video data via communication medium 110 and decode the encoded video data. Source device 102 and / or target device 120 may include computing devices equipped for wired and / or wireless communication, and may include set-top boxes, digital video recorders, televisions, desktop, laptop or tablet computers, game consoles, mobile devices including, for example, "smart" phones, cellular phones, personal gaming devices, and medical imaging devices.

[0086] The communication medium 110 may include any combination of wireless and wired communication media and / or storage devices. The communication medium 110 may include coaxial cables, fiber optic cables, twisted pair cables, wireless transmitters and receivers, routers, switches, repeaters, base stations, or any other device that can be used to facilitate communication between various devices and sites. The communication medium 110 may include one or more networks. For example, the communication medium 110 may include a network configured to allow access to the World Wide Web, such as the Internet. The network may operate according to a combination of one or more telecommunication protocols. The telecommunication protocol may include proprietary aspects and / or may include standardized telecommunication protocols. Examples of standardized telecommunication protocols include digital video broadcasting (DVB) standards, advanced television system committee (ATSC) standards, integrated service digital broadcasting (ISDB) standards, cable data service interface specifications (DOCSIS) standards, global mobile communication systems (GSM) standards, code division multiple access (CDMA) standards, 3rd generation partnership project (3GPP) standards, European Telecommunications Standards Institute (ETSI) standards, Internet Protocol (IP) standards, wireless application protocol (WAP) standards, and Institute of Electrical and Electronics Engineers (IEEE) standards.

[0087] A storage device may include any type of device or storage medium capable of storing data. The storage medium may include a tangible or non-transitory computer-readable medium. The computer-readable medium may include an optical disk, a flash memory, a magnetic memory, or any other suitable digital storage medium. In some examples, a memory device or a portion thereof may be described as a non-volatile memory, and in other examples, a portion of a memory device may be described as a volatile memory. Examples of volatile memory may include random access memory (RAM), dynamic random access memory (DRAM), and static random access memory (SRAM). Examples of non-volatile memory may include a magnetic hard disk, an optical disk, a floppy disk, a flash memory, or an electrically programmable memory (EPROM) or an electrically erasable and programmable (EEPROM) memory. One or more storage devices may include a memory card (e.g., a secure digital (SD) memory card), an internal / external hard drive, and / or an internal / external solid-state drive. Data may be stored on a storage device according to a defined file format.

[0088] Reference again Fig.12, source device 102 includes video source 104, video encoder 106 and interface 108. Video source 104 may include any device configured to capture and / or store video data. For example, video source 104 may include a camera and a storage device operably coupled thereto. Video encoder 106 may include any device configured to receive video data and generate a compatible bitstream representing video data. A compatible bitstream may refer to a bitstream from which a video decoder can receive and reproduce video data. Various aspects of a compatible bitstream may be defined according to a video coding standard. When generating a compatible bitstream, video encoder 106 may compress video data. Compression may be lossy (perceptible or imperceptible) or lossless. Interface 108 may include any device configured to receive a compatible video bitstream and transmit and / or store the compatible video bitstream to a communication medium. Interface 108 may include a network interface card such as an Ethernet card, and may include an optical transceiver, a radio frequency transceiver, or any other type of device that can send and / or receive information. In addition, interface 108 may include a computer system interface that may allow a compatible video bitstream to be stored on a storage device. For example, interface 108 may include a computer system interface that supports peripheral component interconnect (PCI) and peripheral component interconnect express (PCIe) bus protocols, proprietary bus protocols, universal serial bus (USB) protocols, I 2 C's chipset or any other logical and physical structure that can be used to interconnect peer devices.

[0089] Reference again Fig.12 , target device 120 includes interface 122, video decoder 124, and display 126. Interface 122 may include any device configured to receive a compatible video bitstream from a communication medium. Interface 108 may include a network interface card such as an Ethernet card, and may include an optical transceiver, a radio frequency transceiver, or any other type of device that can receive and / or send information. In addition, interface 122 may include a computer system interface that allows a compatible video bitstream to be retrieved from a storage device. For example, interface 122 may include a computer system interface that supports PCI and PCIe bus protocols, proprietary bus protocols, USB protocols, I 2 C chipset, or any other logical and physical structure that can be used to interconnect peer devices. Video decoder 124 may include any device configured to receive a compatible bitstream and / or an acceptable variant thereof, and reproduce video data therefrom. Display 126 may include any device configured to display video data. Display 126 may include one of a variety of display devices such as a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display. Display 126 may include a high definition display or an ultra high definition display. It should be noted that although in Fig.12In the example shown, the video decoder 124 is described as outputting data to a display 126, but the video decoder 124 can be configured to output video data to various types of devices and / or subcomponents thereof. For example, the video decoder 124 can be configured to output video data to any communication medium, as described herein.

[0090] Fig.13 is a block diagram illustrating an example of a video encoder 200 that may implement the techniques described herein for encoding video data. It should be noted that although the exemplary video encoder 200 is illustrated as having different functional blocks, such illustration is intended for descriptive purposes and does not limit the video encoder 200 and / or its subcomponents to a particular hardware or software architecture. The functionality of the video encoder 200 may be implemented using any combination of hardware, firmware, and / or software implementations. In one example, the video encoder 200 may be configured to encode video data in accordance with the techniques described herein. The video encoder 200 may perform intra-frame prediction encoding and inter-frame prediction encoding of picture regions, and therefore may be referred to as a hybrid video encoder. In Fig.13 In the example shown, the video encoder 200 receives a source video block. In some examples, the source video block may include a picture area that has been divided according to a coding structure. For example, the source video data may include macroblocks, CTUs, CBs, sub-partitions thereof, and / or additional equivalent coding units. In some examples, the video encoder 200 may be configured to perform additional subdivision of the source video block. It should be noted that some of the techniques described herein may be generally applicable to video coding, regardless of how the source video data is divided before and / or during encoding. Fig.13 In the example shown, the video encoder 200 includes a summer 202, a transform coefficient generator 204, a coefficient quantization unit 206, an inverse quantization / transform processing unit 208, a summer 210, an intra-frame prediction processing unit 212, an inter-frame prediction processing unit 214, a filter unit 216 and an entropy coding unit 218.

[0091] like Fig.13 As shown, video encoder 200 receives source video blocks and outputs a bitstream. As described above, current techniques for partitioning fractional boundary video blocks may be less than ideal. According to the techniques described herein, video encoder 200 may be configured to apply predefined partitions to fractional boundary video blocks that minimize the impact on coding efficiency.

[0092] In one example, according to the techniques described herein, the video encoder 200 can be configured to apply a predefined partition to a fractional boundary video block, wherein the predefined partition uses a combination of a symmetric vertical BT partitioning mode and a horizontal BT partitioning mode to generate a CU within a picture boundary. That is, in one example, the fractional boundary video block is partitioned using only a symmetric vertical BT partitioning mode and a horizontal BT partitioning mode, regardless of those partitioning modes that may be used to partition the video block. Fig.14A is a conceptual diagram illustrating an example of predefined symmetric vertical BT partitioning mode and horizontal BT partitioning mode partitioning for an exemplary fractional boundary video block. Fig. 14B is shown corresponding to Fig.14A Conceptual diagram of an example of an inferred partition tree for a predefined partition shown. It should be noted that alternative inferred partition trees may be used to generate CTUs. 2 The resulting predefined partitioning of . Fig. 14C An example of an alternative inferred partition tree is shown. It should be noted that in some examples, the Fig.14A CUs within the picture boundaries resulting from the inferred partitioning are shown, and in some examples, may not be further partitioned Fig.14A CUs within the picture boundaries resulting from the inferred partitioning are shown. It should be noted that Fig.14A The exemplary predefined partition ratios shown Figure 8 The exemplary predefined partitioning shown results in fewer and larger corresponding CUs within the picture boundaries.

[0093] In one example, according to the techniques described herein, the video encoder 200 may be configured to apply a predefined partition to a fractional boundary video block, wherein the predefined partition uses a combination of an asymmetric vertical BT partitioning mode and a horizontal BT partitioning mode to generate a CU within a picture boundary. That is, in one example, only an asymmetric vertical BT partitioning mode and a horizontal BT partitioning mode are used to partition the fractional boundary video block, regardless of those partitioning modes that may be used to partition the video block. In one example, the asymmetric vertical BT partitioning mode and the horizontal BT partitioning mode may include: horizontal partitioning at one quarter of the height (one mode at the top, or one mode at the bottom) or vertical partitioning at one quarter of the width (one mode on the left, or one mode on the right). Fig.15A is a conceptual diagram illustrating an example of predefined asymmetric vertical BT partitioning mode and horizontal BT partitioning mode partitioning for an exemplary fractional boundary video block. Fig. 15B is shown corresponding to Fig.15A Conceptual diagram of an example of an inferred partition tree for a predefined partition shown. It should be noted that alternative inferred partition trees may be used to generate CTUs. 2 The resulting predefined partitioning of . Fig. 15CAn example of an alternative inferred partition tree is shown. It should be noted that in some examples, the Fig.15A CUs within the picture boundaries resulting from the inferred partitioning are shown, and in some examples, may not be further partitioned Fig.15A CUs within the picture boundaries resulting from the inferred partitioning are shown. It should be noted that Fig.15A The exemplary predefined partition ratios shown Figure 8 The exemplary predefined partitioning shown results in fewer and larger corresponding CUs within the picture boundaries.

[0094] In one example, according to the techniques described herein, the video encoder 200 may be configured to apply a predefined partition to a fractional boundary video block, wherein the predefined partition uses a combination of a vertical TT partition mode and a horizontal TT partition mode to generate a CU within a picture boundary. That is, in one example, the fractional boundary video block is partitioned using only an asymmetric vertical TT partition mode and a horizontal TT partition mode, regardless of those partition modes that may be used to partition the video block. In one example, the vertical TT partition mode and the horizontal TT partition mode may include: a horizontal TT partition at one quarter of the height of a node from a top edge to a bottom edge; and a vertical TT partition at one quarter of the width of a node from a left edge to a right edge. Fig.16A is a conceptual diagram illustrating an example of predefined asymmetric vertical BT partitioning mode and horizontal BT partitioning mode partitioning for an exemplary fractional boundary video block. Fig. 16B is shown corresponding to Fig.16A Conceptual diagram of an example of an inferred partition tree for a predefined partition shown. It should be noted that alternative inferred partition trees may be used to generate CTUs. 2 The resulting predefined partitioning of . Fig. 16C An example of an alternative inferred partition tree is shown. It should be noted that in some examples, the Fig.16A CUs within the picture boundaries resulting from the inferred partitioning are shown, and in some examples, may not be further partitioned Fig.16A CUs within the picture boundaries resulting from the inferred partitioning are shown. It should be noted that Fig.16A The exemplary predefined partition ratios shown Figure 8 The exemplary predefined partitioning shown results in fewer and larger corresponding CUs within the picture boundaries.

[0095] As described above, in some cases, the alternative inferred partitioning tree may correspond to a predefined partitioning, such as the CTU in the above example. 2In some cases, one or more inferred partitioning trees may obtain the same predefined partitioning. In one example, a set of rules may be defined so that one of the inferred partitioning trees is selected. It should be noted that in some cases, there may be practical applications for selecting a specific inferred partitioning tree among the inferred partitioning trees that obtain the same partitioning. For example, there may be practical applications for selecting a specific inferred partitioning tree in the following cases: certain coding tools may only be available for certain partitioning types; the scanning order of the encoding of the partitions will be different, so the availability of samples and the grammatical information of previous / neighboring blocks will be different, thereby affecting the coding efficiency. In addition, an inferred partitioning tree may be selected as a partitioning tree with better expected coding efficiency.

[0096] It should be noted that the above FIG. 14A to FIG. 16C Each of the examples described above can generally be described as partitioning the fractional boundary video block using a subset of the available partitioning modes. FIG. 14A to FIG. 14C The examples described, in one example, the following partitioning modes may be available: QT, and symmetrical vertical BT partitioning mode and horizontal BT partitioning mode; FIG. 15A to FIG. 15C The examples described, in one example, the following partitioning modes may be available: QT, symmetric vertical BT partitioning mode and horizontal BT partitioning mode and four additional asymmetric BT partitioning modes; and with respect to FIG. 16A to FIG. 16C In the example described, in one example, the following partitioning modes may be available: QT, symmetrical vertical BT partitioning mode and horizontal BT partitioning mode, and vertical TT partitioning mode and horizontal TT partitioning mode. Therefore, in one example, according to the techniques described herein, a subset of available partitioning modes and / or a partitioning mode that can only be used to partition fractional boundary video blocks may be used to partition fractional boundary video blocks (e.g., a video block of a non-fractional boundary video block may be partitioned using QTBT partitioning, and a fractional boundary video block may be partitioned using TT partitioning).

[0097] In one example, a subset of available partitioning modes and / or partitioning modes that are available only for partitioning fractional boundary video blocks may be based on one or more of: a distance of an upper left sample of a fractional boundary CTU from a right picture boundary (e.g., a distance in terms of a number of luma samples); a distance of an upper left sample of a fractional boundary CTU from a bottom picture boundary; a resulting partitioning tree of spatially neighboring CTUs (and / or partitioning types used therein); a resulting partitioning tree of temporally neighboring CTUs (and / or partitioning types used therein), where temporally neighboring CTUs are co-located or offset by motion vectors; and allowed partitioning types for CTUs in a picture.

[0098] As described above, in some examples, CUs within picture boundaries resulting from inferred partitioning may be further partitioned. In one example, according to the techniques described herein, a subset of available partitioning modes and / or partitioning modes that can only be used to partition CUs within picture boundaries resulting from inferred partitioning may be used to further partition CUs within picture boundaries resulting from inferred partitioning. In one example, a subset of available partitioning modes and / or partitioning modes that can only be used to partition CUs within picture boundaries resulting from inferred partitioning may be based on one or more of the following: the distance of the upper left sample of the CU from the right picture boundary; the distance of the upper left sample of the CU from the bottom picture boundary; the distance of the upper left sample of the CU from the right CTU boundary; the distance of the upper left sample of the CU from the bottom CTU boundary; the resulting partition tree (and / or the partition types used therein) of spatially adjacent CUs; ​​the resulting partition tree (and / or the partition types used therein) of temporally adjacent CUs, where temporally adjacent CUs are co-located or offset by motion vectors; and the allowed partition types for CUs in a picture. In addition, in one example, a subset of available partitioning modes and / or a partitioning mode that can be used only to partition CUs that cross picture boundaries can be based on one or more of the following: the distance of the upper left sample of the CU from the right picture boundary; the distance of the upper left sample of the CU from the bottom picture boundary; the distance of the upper left sample of the CU from the right CTU boundary; the distance of the upper left sample of the CU from the bottom CTU boundary; the resulting partitioning tree of spatially adjacent CUs (and / or the partitioning types used therein); the resulting partitioning tree of temporally adjacent CUs (and / or the partitioning types used therein), where the temporally adjacent CUs are co-located or offset by motion vectors; and the allowed partitioning types for the CU in the picture. In one example, inferred partitioning can be used when the block size exceeds the maximum TU size. In addition, in one example, inferred partitioning can be used when tile and / or fragment boundaries are not aligned with CTU boundaries.

[0099] As described above, in some cases, the CTU size may be 128×128 and the picture resolution may be 1920×1080. In this case, the bottom row of the CTU will include a fractional boundary CTU with 56 rows of samples with a picture boundary. In a similar manner, for a CTU of size 128×128 and a picture resolution of 3840×2160, the bottom row of the CTU will include a fractional boundary CTU with 112 rows of samples with a picture boundary. Each of these cases may occur relatively frequently, and therefore in some cases, according to the techniques described herein, a default partition may be defined for the bottom row CTU. It should be noted that in these cases, there may be several ways to partition the CTU so that one or more CUs are parallel to and included in the picture boundary. In one example, according to the techniques herein, the resulting inferred partitions for these cases are limited to block sizes that are powers of 2. In one case, the block size that is a power of 2 decreases monotonically for blocks closer to the edge of the picture. In one example, the coding order of the blocks will be to encode the blocks farther from the edge first.

[0100] In one example, for a CTU size of 128×128 and a picture resolution of 1920×1080, the bottom row CTU may be divided such that the 56 rows of samples included in the picture boundary are divided into an upper CU of 128×48 and a lower CU of 128×8. Fig.17A The inferred tree shown generates the partitioning.

[0101] In one example, for a CTU size of 128×128 and a picture resolution of 1920×1080, the bottom row CTU may be divided such that the 56 rows of samples included in the picture boundary are divided into an upper CU of 128×32, a middle CU of 128×16, and a lower CU of 128×8. Fig. 17B The inference tree shown generates partitions. In one example, for a CTU size of 128×128 and a picture resolution of 1920×1080, the bottom row CTU can be partitioned so that the 56 rows of samples included in the picture boundary are partitioned into an upper CU of 128×32, a middle CU of 128×8, and a lower CU of 128×16. In one example, the Fig. 17C The inference tree shown generates the partition. It should be noted that in one example, it can be applied without allowing asymmetric BT partitioning. Fig. 17B and Fig. 17C Each of the examples shown in .

[0102] In one example, for a CTU size of 128×128 and a picture resolution of 3840×2160, the bottom row CTU may be divided such that 112 rows of samples included in the picture boundary are divided into an upper CU of 128×64 and a lower CU of 128×48. Fig.18A The inference tree shown generates the partition. In one example, for a CTU size of 128×128 and a picture resolution of 3840×2160, the bottom row CTU can be partitioned so that the 112 rows of samples included in the picture boundary are partitioned into an upper CU of 128×96 and a lower CU of 128×16. In one example, the Fig.18B The inferred tree shown generates the partitioning.

[0103] In one example, for a CTU size of 128×128 and a picture resolution of 3840×2160, the bottom row CTU may be divided such that 112 rows of samples included within the picture boundary are divided into an upper CU of 128×32, a middle CU of 128×64, and a lower CU of 128×16. Fig. 18C The inference tree shown generates partitions. In one example, for a CTU size of 128×128 and a picture resolution of 3840×2160, the bottom row CTU can be partitioned so that the 112 rows of samples included in the picture boundary are partitioned into an upper CU of 128×64, a middle CU of 128×32, and a lower CU of 128×16. In one example, the Fig.18D The inference tree shown generates the partition. It should be noted that in one example, it can be applied without allowing asymmetric BT partitioning. Fig. 18C and Fig.18D Each of the examples shown in .

[0104] It should be noted that in some cases, a tile or slice may include only fractional boundary CTUs. In this case, the above techniques may be used to partition the fractional boundary CTUs included in the tile or slice.

[0105] As described above, JEM includes parameters MinQTSize, MaxBTSize, MaxBTDepth, and MinBTSize for signaling the QTBT tree. It should be noted that with respect to MinQTSize and MaxBTSize, there may be various ways in which the size may be specified. In one example, the size may be specified according to a threshold size value, and in the case of MaxBTSize, if the height or width exceeds the size value, then the block is not allowed to be partitioned according to the BT partitioning mode. In some cases, the predefined partitioning for fractional boundary video blocks may not be consistent with the values ​​of MinQTSize, MaxBTSize, MaxBTDepth, and MinBTSize. For example, the reference block CTU 2 ,exist Fig.14A In the example shown, Fig. 14B As shown, the vertical BT partitioning that occurs at BT depth 3 is used to generate the rightmost CU included in the picture boundary. In this case, when the fractional boundary video block is divided using only symmetrical vertical BT partitioning mode and horizontal BT partitioning mode, Fig.14A CTU shown 2 The division will be inconsistent with MaxBTDepth less than 3. In addition, in the case of CTU of 128×128, in order to be consistent with MaxBTSize, Fig.14A CTU shown 2 The partitioning will need to be greater than or equal to 128 (e.g., when MaxBTSize is expressed as the size threshold). In one example, to ensure compatibility with the values ​​of MinQTSize, MaxBTSize, MaxBTDepth, and / or MinBTSize, the video encoder 200 can be configured to apply exceptions to the predefined partitioning of fractional boundary video blocks. For example, in one example, the video encoder 200 can be configured to allow additional available partitioning modes in addition to the types used according to the predefined partitioning. For example, with respect to Fig.14A CTU shown 2 For example, video encoder 200 may be configured to enable QT splitting when MaxBTDepth is set to a value less than 3. Fig. 20 Shows enabling QT partitioning for partitioning CTU 2 In one example, QT partitioning can be enabled for partitioning CTUs. 2 , until the constraints corresponding to the set values ​​of MaxBTSize, MaxBTDepth and / or MinBTSize can be satisfied. In one example, QT partitioning can be enabled for unlimited partitioning of CTUs 2. In a similar manner, asymmetric BT partitioning may be used to partition fractional boundary video blocks even if asymmetric BT partitioning is not allowed for other CTUs. It should be noted that in some cases, the use of asymmetric BT partitioning for partitioning fractional boundary video blocks may be restricted until constraints corresponding to set values ​​of MaxBTSize, MaxBTDepth, and / or MinBTSize may be satisfied. It should be noted that in some examples, exceptions may include enabling partitioning types for fractional video blocks that were disabled based on video layer properties (e.g., allowing an exception relative to disabling asymmetric BT partitioning for higher temporal layers).

[0106] In addition, in some examples, the values ​​of MinQTSize, MaxBTSize, MaxBTDepth, and / or MinBTSize of the fractional boundary video block may be set differently, not applied, or changed (i.e., the set values ​​may be overwritten). For example, one or more of the following may be applied to the fractional boundary video block: increasing the value of MaxBTSize of the fractional boundary video block; and / or increasing the value of MaxBTDepth of the fractional boundary video block. In one example, the MaxBTSize of the fractional boundary video block may be set based on one or more of the following: the segment type; the value of MaxBTSize of the non-fractional boundary video block; and / or the maximum, average, median, and / or minimum size of the BT node resulting from the partitioning of the CTU subset in one or more previously encoded pictures. For example, for a non-border CTU in a previously encoded picture, the size of the minimum resulting BT node may be 32×64. Based on this value, the MaxBTSize of the fractional boundary video block may be set to, for example, 128. In one example, when MaxBTSize is set to a threshold size that applies to both the height and width dimensions, MaxBTSize may be set so that its value is greater than or equal to the maximum value of the smallest resulting BT node (e.g., MaxBTSize≥max(height, width), where max(x, y) returns x if x is greater than or equal to y, otherwise returns y). In one example, when MaxBTSize is set to a threshold size set for each of the height and width dimensions separately (e.g., MaxBTSizeH for height and MaxBTSizeW for width), MaxBTSize may be set so that each corresponding value is greater than or equal to the corresponding value of the smallest resulting BT node (e.g., MaxBTSizeH≥height and MaxBTSizeW≥width). In some examples, the values ​​of MinQTSize, MaxBTSize, MaxBTDepth, and / or MinBTSize for fractional boundary video blocks may be set differently, not applied, or changed by signaling the values ​​in a bitstream (e.g., in a parameter set, a slice header, video block signaling, etc.).

[0107] In addition, in some examples, for inter-frame segments, MaxBTSize can be set to a predetermined value (e.g., CTU size) for the fractional boundary video block. In one example, MaxBTDepth for the fractional boundary video block can be set based on one or more of the following: the segment type; and / or the type of boundary edge with which the fractional boundary video block intersects (i.e., right, bottom, or bottom right). In one example, MaxBTDepth can be increased based on a predefined value and / or a value that achieves the desired partition. In addition, in some examples, MaxBTDepth can be further increased based on a safety margin value. In one example, MaxBTDepth can be increased based on the depth at which the final BT partition occurs to generate a particular partition, where the final BT partition is the lowest-level BT partition in the BT partition hierarchy for the particular partition. For example, the reference block CTU 2 ,exist Fig.14A In the example shown, the depth at which the final BT partition occurs to generate the rightmost CU included within the picture boundary (i.e., 3) can be added to the current value of MaxBTDepth to increase the MaxBTDepth of the fractional boundary video block. Examples of techniques for determining the depth required to generate a particular partition are described in more detail below. It should be noted that the current value of MaxBTDepth can be derived from spatial-temporal neighboring blocks (e.g., CU, CTU, PU, ​​TU, etc.) and / or from higher-level signaling (e.g., parameter sets and / or slice headers). In addition, in some examples, MaxBTDepth can be increased based on the number of BT partitions required (or used) to generate a particular partition (i.e., the BT partition count value). For example, the reference block CTU 2 ,exist Fig.14A and Fig. 14B In the example shown, the BT partition count value required to generate the rightmost CU included in the picture boundary is 4. This value can be added to the current value of MaxBTDepth to increase MaxBTDepth for fractional boundary video blocks. In one example, the BT partition count value can correspond to the maximum number of BT partitions that need to be traversed from the root (i.e., CTU level) in the partition tree to reach a CU in a particular partition.

[0108] As mentioned above, relative to Fig.17A , for a CTU size of 128×128 and a picture resolution of 1920×1080, the bottom row CTU can be divided so that the 56 rows of samples included in the picture boundary are divided into an upper CU of 128×48 and a lower CU of 128×8. Fig.17A As shown, the BT partition count value for generating the 128×8 lower CU included in the picture boundary is 3, and the depth at which the final BT partition occurs is 2. As described above, with respect to Fig.18B, for a CTU size of 128×128 and a picture resolution of 3840×2160, the bottom row CTU may be divided so that 112 rows of samples included in the picture boundary are divided into an upper CU of 128×96 and a lower CU of 128×16 included in the picture boundary. Fig.18B As shown, the BT partition count value for generating the lower CU of 128×16 included within the picture boundary is 3, and the depth at which the final BT partition occurs is 2. In one example, in these cases, a new MaxBTDepth value for the fractional boundary video block can be determined by using one or more of the following techniques: adding a predefined value to MaxBTDepth, adding a predefined value to MaxBTDepth and adding a safety margin value to MaxBTDepth, and / or setting MaxBTDepth, where the technique and / or predefined value used are determined based on the CTU size and / or the picture size. More generally, a specific combination of CTU size and picture size can be associated with a specific predefined partition of the fractional boundary video block, where the predefined partition is associated with a BT partition count value and a depth value at which the final BT partition occurs. The BT partition count value and / or the depth value at which the final BT partition occurs for the predefined partition can be used to modify MaxBTDepth.

[0109] As mentioned above, having a relatively large number of relatively small video blocks occurring at or near picture boundaries may have an adverse effect on coding efficiency. More generally, how fractional video blocks are divided affects coding efficiency. For example, referring to Fig.21, there may be several ways to partition a fractional video block having a height curH and a width curW such that the height blkH and the width blkW are included within the picture boundary. It should be noted that in such a general case, curH and curW may be less than or equal to the CTU size. That is, the fractional video block may be a video block of a CTU or smaller. In addition, as described above, the MaxBTDepth of the fractional video block may be increased. As MaxBTDepth increases, a larger set of possible partitions becomes available for partitioning the CTU. In some cases, increasing the set of possible partitions available for partitioning the CTU may slow down the video encoder (i.e., reduce the performance of the video encoder). For example, when selecting a particular partition of the CTU, it can be seen that as MaxBTDepth increases, the performance of a specific implementation of a video encoder that evaluates all (or a large portion) of the possible partitions decreases because there are more possible partitions to evaluate. According to the techniques described herein, the video encoder 200 may be configured to partition fractional video blocks based on curH, curW, blkH, and blkW and available BT partitioning modes in a manner that improves coding efficiency. Furthermore, the video encoder 200 may be configured to increase the MaxBTDepth of the fractional video blocks in a manner that mitigates potential degradation in video encoder performance.

[0110] In one example, the video encoder 200 may be configured to determine a value (e.g., a BT partition count value, N_BT_Part) indicating a desired number of BT partitions or splits so that the portion of the fractional video block corresponding to blkH and blkW is included within the picture boundary. In some examples, the desired number of BT partitions may be used to partition the video block and / or increase MaxBTDepth. It should be noted that while the desired number of partitions is inherently based on curH, curW, blkH and blkW and the available BT partition modes, the desired number of partitions may also be based on the segment type. In addition, it should be noted that there may be various processes for determining the desired number of partitions based on curH, curW, blkH and blkW and the available BT partition modes, some of which are more efficient than other processes. According to the techniques described herein, the video encoder 200 and the video decoder 300 may be configured to determine the desired number of partitions based on the algorithm described below. It should be noted that with respect to the algorithm described below, the available BT partition modes for fractional video blocks include symmetrical vertical BT partition modes and horizontal BT partition modes, as well as the above-mentioned four additional asymmetric BT partition modes.

[0111] The video encoder 200 and the video decoder 300 may be configured to determine the required number of partitions based on the following algorithm:

[0112] Determine the values ​​of multsSCountH and mults3CountW, where mults3CountH indicates the number of 3 in the prime factorization of blkH. N N, multsSCountW indicates the prime factorization of blkW in 3 N N;

[0113] Set the variable neededBTPartitions to 0.

[0114] Until the horizontal divisions align with the picture boundaries:

[0115] · Select the horizontal BT partitioning mode according to a set of partitioning rules, where Hor_Down can only be selected if mults3CountH>0.

[0116] For each selection of Hor_Down, reduce mults3CountH by 1;

[0117] For each selected horizontal BT partition mode, increase neededBTPartitions by 1;

[0118] For each selected horizontal BT partitioning mode, update curH, blkH, and multsSCountH of the current video block that crosses (or touches) the horizontal picture boundary;

[0119] Until the vertical division is aligned with the picture boundary:

[0120] • Select the vertical BT partitioning mode according to a set of segmentation rules, where only Ver_Right may be selected if multsSCountV>0.

[0121] For each selection of Ver_Right, decrement multsSCountV by 1; For each selected vertical BT partitioning mode, increment neededBTPartitions by 1;

[0122] For each selected vertical BT partitioning mode, update curW, blkW, and mults3CountW for the current video block that crosses (or touches) a vertical picture boundary;

[0123] Output neededBTPartitions.

[0124] It should be noted that in the exemplary algorithm described above, the order in which the horizontal and vertical partitions are performed is interchangeable. In addition, the individual horizontal and vertical partitioning steps may be performed according to a defined order. For example, the horizontal and vertical partitions may be performed by alternating the horizontal and vertical partitions. In one example, the horizontal and vertical partitions may be performed by alternating a set number of horizontal and vertical partitions (e.g., performing two horizontal partitions, then performing two vertical partitions, then performing two horizontal partitions, etc.). In one example, a selection preference may be given to one of the horizontal BT partitioning mode or the vertical BT partitioning mode. For example, before performing any vertical BT partitioning mode, the horizontal BT partitioning mode may be performed until one of the partitioning edges is aligned with the horizontal picture boundary. As provided in the exemplary algorithm described above, the BT partitioning mode is selected according to a set of partitioning rules. That is, a set of partitioning rules includes a rule for selecting one of the following: a symmetric BT mode, a quarter asymmetric BT partitioning mode (i.e., Hor_Up and Ver_Left), or a three-quarter asymmetric BT partitioning mode (i.e., Hor_Down and Ver_Right). In one example, the predefined rules may include selecting one of a symmetric BT mode, a quarter asymmetric BT split mode, or a three quarter asymmetric BT split mode that provides the largest reduction in curH (or curV) and / or blkH (or blkW) when updating. For example, if curH is equal to 128 and blkH is equal to 112, then after a symmetric BT split, curH will be equal to 64 and blkH will be equal to 48; after a Hor_Up split, curH will be equal to 96 and blkH will be equal to 80; and after a Hor_Down split, curH will be equal to 32 and blkH will be equal to 16. In this case, the Hor_Down split provides the largest reduction in curH and blkH. However, in this case, mults3CountH is not greater than 0. Therefore, in this case, in one example, a symmetric BT split may be selected because it provides a greater reduction in curH and blkH than Hor_Up. In one example, the predefined rule may include selecting one of the symmetric BT mode, the quarter asymmetric BT partition mode, or the three quarter asymmetric BT partition mode based on which partition mode results in a partition boundary closest to the picture boundary. Fig. 22 Examples of corresponding possible horizontal boundaries relative to horizontal picture boundaries resulting from each of the symmetric BT mode, the quarter asymmetric BT partitioning mode, or the three quarter asymmetric BT partitioning mode are shown. Fig. 22 As shown in , the boundary generated by the symmetric BT pattern is closest to the picture boundary. The proximity of the boundary to the picture boundary can be quantified according to the absolute distance value. Fig. 22In the example shown, when curH is 128 and blkH is 56, for the symmetric BT mode, the resulting partition corresponds to curH equal to 64, blkH equal to 56, and the distance between the partition boundary and the picture boundary is 8; for the quarter asymmetric BT partition mode, the resulting partition corresponds to curH equal to 32, blkH equal to 24, and the distance between the partition boundary and the picture boundary is 24; and for the three-quarter asymmetric BT partition mode, the resulting partition corresponds to curH equal to 96, blkH equal to 54, and the distance between the partition boundary and the picture boundary is 40.

[0125] It should be noted that in the case where the maximum reduction based on one of currH (or currV), blkH (or blkW), and / or the distance value is selected, and two partitioning modes provide the same reduction and / or distance value, the partitioning mode that provides the least number of partitions within the picture is selected, and / or the default order of the partitioning modes can be used to break the deadlock. In one example, a selection preference can be given to a symmetric BT partitioning mode. For example, a horizontally symmetric BT partitioning can be performed until one of the partition edges is aligned with a horizontal picture boundary. In general, a selection preference can be given to the BT partitioning that introduces the least number of partitions within the picture.

[0126] As described above, there may be a common case where fractional video blocks are generated based on a combination of CTU size and picture size (e.g., CTU size is 128×128 and picture size is 1920×1080 or CTU size is 128×128 and picture size is 3840×2160). In some examples, a set of partitioning rules may be defined for a combination of CTU size and picture size. That is, in general, a specific combination of CTU size and picture size may be associated with a specific predefined partition of a fractional boundary CTU. For example, for a case where the CTU size is 128×128 and the picture size is 1920×1080 or 3840×2160, a set of partitioning rules may include the following:

[0127]

[0128] and

[0129]

[0130] in,

[0131] = is the equality relational operator;

[0132] x&&y is the Boolean logical "AND" of x and y;

[0133] x 11y is the Boolean logical OR of x and y.

[0134] It should be noted that in some examples, the above exemplary partitioning rules may be applied independently of the picture size.In addition, it should be noted that a set of partitioning rules may include a combination of rules, wherein, for example, the combination of rules is based on video and / or encoding properties.

[0135] It should be noted that in the exemplary algorithm described above, the three-quarter asymmetric BT partitioning mode is not allowed to be selected unless the corresponding values ​​of mults3CountH and mults3CountV are greater than 0. If this constraint does not exist, there may be a situation where the three-quarter asymmetric BT partitioning results in a block size that is not a power of 2. For example, if a 32×32 block is partitioned using Vert_Right, the resulting blocks are 24×32 and 8×32 (24 is not a power of 2). Blocks that are not powers of 2 may affect subsequent steps of creating partitions and may result in partitions with an excessive number of partitions. Therefore, in some cases, if there are multiples of 3 in the prime factorization of the block size / size under consideration, only the three-quarter asymmetric BT partitioning mode is allowed to be selected. In addition, it should be noted that in some examples, the luminance and chrominance channels of the fractional video block may share partitions (e.g., according to the partitions provided by the above algorithm). In some examples, the luminance and chrominance channels of the fractional video block may use different partitions (e.g., for I fragments, the above algorithm may be applied to each channel independently).

[0136] As described above, as MaxBTDepth increases, the corresponding increase in the set of possible partitions can degrade the performance of the video encoder. In one example, to mitigate the performance degradation of the video encoder, when the partition tree is created using only QT partitioning, the height threshold can be determined as the minimum height block within the picture, and when the partition is created using only QT partitioning, the width threshold can be determined as the minimum height block within the picture. For example, see Figure 8 If CTU 2is 128×128, then the height threshold will be 32 and the width threshold will be 32. Based on the height threshold and the width threshold, the partitioning of the fractional video block can be performed according to a subset of the available partitioning modes (e.g., symmetric BT and asymmetric BT) until the condition based on the height threshold and / or the width threshold is met. For example, in one example, during the horizontal partitioning of the video block, if the current height of the block exceeds the height threshold, only horizontal symmetric BT partitioning is allowed. It should be noted that this condition does not restrict the vertical partitioning type. In addition, in one example, during the vertical partitioning of the video block, if the current width of the block exceeds the width threshold, only vertical symmetric BT partitioning is allowed. It should be noted that this condition does not restrict the horizontal partitioning type. It should be noted that in some examples, a common threshold (e.g., the maximum size of the block) can be defined. In addition, it should be noted that a partitioning mode that does not partition the block may be available. It should be noted that limiting the partitioning types that can be selected based on the threshold can be used to modify the signaling so that the signaling only indicates the selectable partitioning types (e.g., the partitioning type index can be simplified based on the reduced number of partitioning types that can be selected). Such signaling modifications can result in improved coding efficiency. It should be noted that in some examples, instead of a height threshold and a width threshold, a threshold can be defined as the number of samples of a video block (e.g., 1024). Furthermore, it should be noted that the threshold can also be based on other video and video encoding attributes. For example, the threshold can be increased or decreased from the determined value based on the segment type. Furthermore, in one example, different thresholds can be set for different areas of a CTU. For example, the upper portion of a CTU can have an increased threshold.

[0137] It should be noted that in some cases, the partitioning mode may result in a block size that is not supported (e.g., not supported by a subsequent video encoding process). In one example, a partitioning type that results in an unsupported block size may not be allowed. In one example, there may be an exception for fractional video blocks, and this partitioning type may be used even though it would otherwise result in an unsupported block size. It should be noted that in this case, in some examples, the subsequent video encoding process may be modified to handle such an exception.

[0138] As described above, the video encoder may evaluate possible partitions from a possible partition set. In one example, according to the techniques herein, the video encoder 200 may be configured to identify all valid partitions of the fractional video block according to the above constraints (e.g., allowed partition types, BT depth constraints, etc.), wherein a valid partition may be defined as a partition that does not allow the leaves of the partition tree to cross the picture boundary without further partitioning once the condition is met. It should be noted that subsequent further partitioning of valid partitions may be allowed. The video encoder 200 may mark each valid partition with an index value. It should be noted that the index may correspond to a defined order for generating valid partitions. For example, the above algorithm may determine the valid partitions based on a defined preference order for partition type selection. Then, the video encoder 200 may select one of the valid partitions (e.g., based on a rate-distortion optimization algorithm). The video encoder 200 may use the index value to send a signal to notify the selected partition. In this way, the video decoder may perform the same process as the video encoder to identify and index the valid partitions, and determine the selected partition by parsing the index value from the bitstream. It should be noted that the process of identifying and indexing valid partitions may be shared or performed independently for the luminance and chrominance channels.

[0139] As above relative to Fig.10 In some examples, the offset corresponding to the BT segmentation 1 ) can be arbitrary, rather than occurring at predefined locations. In one example, according to the techniques herein, the video encoder 200 can be configured to use arbitrary offset partitioning of fractional video blocks. For example, non-fractional video blocks can be partitioned with corresponding syntax and semantics according to a basic partitioning technique (e.g., QTBT partitioning), and fractional video blocks can be partitioned with corresponding syntax and semantics according to an arbitrary offset partitioning technique. For example, for fractional video blocks, offset values ​​such as 56 and 112 can be signaled for partitioning. It should be noted that the arbitrary offset partitioning technique can include signaling horizontal offset values ​​and vertical offset values. For example, referring to Fig.21, corresponding offset values ​​may be signaled for blkH and blkW. In addition, it should be noted that in some examples, the offset values ​​may be inferred. For example, for a specific combination of CTU size and picture size, the offset value used to partition the fractional boundary CTU may be inferred. For example, in the case where the CTU size is 128×128 and the picture size is 1920×1080, in one example, if a quarter asymmetric horizontal BT partition mode (or a symmetric horizontal BT partition mode or a three-quarter asymmetric horizontal BT partition mode) is signaled at the root of the fractional boundary CTU (according to the syntax and semantics for partitioning non-fractional CTUs), the signaled partition may be inferred to correspond to an asymmetric horizontal BT partition mode with an offset of 56. It should be noted that in some examples, further partitioning may be allowed for blocks resulting from arbitrary offset partitioning.

[0140] As such, video encoder 200 represents an example of a device configured to receive a video block including sample values; determine whether the video block is a fractional boundary video block; and partition the sample values ​​using a subset of available partitioning patterns according to an inferred partition.

[0141] Reference again Fig.13, the video encoder 200 can generate residual data by subtracting the predicted video block from the source video block. The summer 202 represents a component configured to perform the subtraction operation. In one example, the subtracted video block occurs in the pixel domain. The transform coefficient generator 204 applies a transform such as a discrete cosine transform (DCT), a discrete sine transform (DST), or a conceptually similar transform (for example, four 8×8 transforms can be applied to a 16×16 residual value array) to the residual block or its sub-partition to produce a set of residual transform coefficients. The transform coefficient generator 204 can be configured to perform any and all combinations of transforms included in the discrete triangular transform series. As described above, in ITU-TH.265, TB is limited to the following sizes 4×4, 8×8, 16×16 and 32×32. In one example, the transform coefficient generator 204 can be configured to perform transforms according to arrays of sizes 4×4, 8×8, 16×16 and 32×32. In one example, the transform coefficient generator 204 may be further configured to perform transforms according to arrays of other sizes. Specifically, in some cases, it may be useful to perform transforms on rectangular arrays of different values. In one example, the transform coefficient generator 204 may be configured to perform transforms according to the following array sizes: 2×2, 2×4N, 4M×2 and / or 4M×4N. In one example, a two-dimensional (2D) M×N inverse transform may be implemented as a one-dimensional (1D) M-point inverse transform followed by a 1D N-point inverse transform. In one example, a 2D inverse transform may be implemented as a 1D N-point vertical transform followed by a 1D N-point horizontal transform. In one example, a 2D inverse transform may be implemented as a 1D N-point horizontal transform followed by a 1D N-point vertical transform. The transform coefficient generator 204 may output the transform coefficients to the coefficient quantization unit 206.

[0142] The coefficient quantization unit 206 may be configured to perform quantization of the transform coefficients. As described above, the degree of quantization may be modified by adjusting a quantization parameter. The coefficient quantization unit 206 may be further configured to determine the quantization parameter and output QP data (e.g., data for determining a quantization group size and / or an incremental QP value), which a video decoder may use to reconstruct the quantization parameter to perform inverse quantization during video decoding. It should be noted that in other examples, one or more additional or alternative parameters may be used to determine the quantization scale (e.g., a scaling factor). The techniques described herein may generally be applied to determine the quantization scale of a transform coefficient corresponding to a component of video data based on the quantization scale of a transform coefficient corresponding to another component of video data.

[0143] like Fig.13 As shown, the quantized transform coefficients are output to the inverse quantization / transform processing unit 208. The inverse quantization / transform processing unit 208 may be configured to apply inverse quantization and inverse transformation to generate reconstructed residual data. Fig.13As shown, at the summer 210, the reconstructed residual data can be added to the predicted video block. In this way, the encoded video block can be reconstructed, and the resulting reconstructed video block can be used to evaluate the coding quality of a given prediction, transformation and / or quantization. The video encoder 200 can be configured to perform multiple encoding rounds (e.g., performing encoding while changing one or more of the prediction, transformation parameters and quantization parameters). The rate distortion or other system parameters of the bitstream can be optimized based on the evaluation of the reconstructed video block. In addition, the reconstructed video block can be stored and used as a reference for predicting subsequent blocks.

[0144] As described above, intra-frame prediction may be used to encode a video block. The intra-frame prediction processing unit 212 may be configured to select an intra-frame prediction mode for a video block to be encoded. The intra-frame prediction processing unit 212 may be configured to evaluate a frame and / or a region thereof and determine an intra-frame prediction mode to be used to encode a current block. Fig.13 As shown, the intra prediction processing unit 212 outputs intra prediction data (e.g., syntax elements) to the entropy coding unit 218 and the transform coefficient generator 204. As described above, the transformation performed on the residual data may depend on the mode. As described above, possible intra prediction modes may include a plane prediction mode, a DC prediction mode, and an angle prediction mode. In addition, in some examples, the prediction of the chrominance component may be inferred from the intra prediction for the luma prediction mode. The inter prediction processing unit 214 may be configured to perform inter prediction coding for the current video block. The inter prediction processing unit 214 may be configured to receive a source video block and calculate a motion vector of a PU of the video block. The motion vector may indicate the displacement of a PU (or a similar coding structure) of a video block within the current video frame relative to a prediction block within a reference frame. Inter prediction coding may use one or more reference pictures. In addition, motion prediction may be unidirectional prediction (using one motion vector) or bidirectional prediction (using two motion vectors). The inter-frame prediction processing unit 214 may be configured to select a prediction block by calculating pixel differences determined by, for example, sum of absolute differences (SAD), sum of squared differences (SSD), or other difference metrics. As described above, the motion vector may be determined and assigned based on motion vector prediction. As described above, the inter-frame prediction processing unit 214 may be configured to perform motion vector prediction. The inter-frame prediction processing unit 214 may be configured to generate a prediction block using motion prediction data. For example, the inter-frame prediction processing unit 214 may locate a prediction video block within a frame buffer ( Fig.13 (not shown). Note that the inter-frame prediction processing unit 214 may be further configured to apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values ​​for motion estimation. The inter-frame prediction processing unit 214 may output the motion prediction data of the calculated motion vector to the entropy coding unit 218. Fig.13As shown, the inter-frame prediction processing unit 214 may receive the reconstructed video block via the filter unit 216. The filter unit 216 may be configured to perform deblocking and / or sample adaptive offset (SAO) filtering. Deblocking refers to the process of smoothing the boundaries of the reconstructed video blocks (e.g., making the boundaries less noticeable to the viewer). SAO filtering is a non-linear amplitude mapping that can be used to improve reconstruction by adding an offset to the reconstructed video data.

[0145] Reference again Fig.13 , the entropy coding unit 218 receives the quantized transform coefficients and prediction syntax data (i.e., intra-frame prediction data, motion prediction data, QP data, etc.). It should be noted that in some examples, the coefficient quantization unit 206 may perform a scan of the matrix including the quantized transform coefficients before outputting the coefficients to the entropy coding unit 218. In other examples, the entropy coding unit 218 may perform the scan. The entropy coding unit 218 may be configured to perform entropy coding according to one or more of the techniques described herein. The entropy coding unit 218 may be configured to output a compatible bitstream (i.e., a bitstream from which a video decoder can receive and reproduce video data).

[0146] Fig.19 300 is a block diagram illustrating an example of a video decoder that may be configured to decode video data in accordance with one or more techniques of the present disclosure. In one example, the video decoder 300 may be configured to reconstruct the video data based on one or more of the techniques described above. That is, the video decoder 300 may operate in a manner reciprocal to the video encoder 200 described above. The video decoder 300 may be configured to perform intra-frame prediction decoding and inter-frame prediction decoding, and may therefore be referred to as a hybrid decoder. Fig.19 In the example shown, the video decoder 300 includes an entropy decoding unit 302, an inverse quantization unit 304, an inverse transform processing unit 306, an intra-frame prediction processing unit 308, an inter-frame prediction processing unit 310, a summer 312, a filter unit 314, and a reference buffer 316. The video decoder 300 can be configured to decode video data in a manner consistent with a video encoding system that can implement one or more aspects of a video coding standard. It should be noted that although the exemplary video decoder 300 is shown with different functional blocks, such illustrations are intended for descriptive purposes and do not limit the video decoder 300 and / or its subcomponents to a particular hardware or software architecture. The functionality of the video decoder 300 can be implemented using any combination of hardware, firmware, and / or software implementations.

[0147] like Fig.19As shown, the entropy decoding unit 302 receives an entropy-coded bitstream. The entropy decoding unit 302 may be configured to decode quantized syntax elements and quantized coefficients from the bitstream according to a process that is inverse to the entropy coding process. The entropy decoding unit 302 may be configured to perform entropy decoding according to any of the entropy coding techniques described above. The entropy decoding unit 302 may parse the coded bitstream in a manner consistent with the video coding standard. The video decoder 300 may be configured to parse the coded bitstream, wherein the coded bitstream is generated based on the above-mentioned techniques. That is, for example, the video decoder 300 may be configured to determine the inferred partitioning for the fractional boundary video block based on one or more of the above-mentioned techniques for reconstructing the video data. For example, the video decoder 300 may be configured to parse syntax elements and / or evaluate the properties of the video data in order to determine the inferred partitioning for the fractional boundary video block.

[0148] Reference again Fig.19 , the inverse quantization unit 304 receives the quantized transform coefficients (i.e., the scale values) and the quantization parameter data from the entropy decoding unit 302. The quantization parameter data may include any and all combinations of the above-mentioned incremental QP values ​​and / or quantization group size values, etc. The video decoder 300 and / or the inverse quantization unit 304 may be configured to determine the QP value for inverse quantization based on the value signaled by the video encoder and / or through video attributes and / or coding parameters. That is, the inverse quantization unit 304 may operate in an inverse manner to the coefficient quantization unit 206 described above. For example, the inverse quantization unit 304 may be configured to infer a predefined value (e.g., the sum of the QT depth and the BT depth determined based on the coding parameters), the allowed quantization group size, etc. according to the above-mentioned techniques. The inverse quantization unit 304 may be configured to apply inverse quantization. The inverse transform processing unit 306 may be configured to perform an inverse transform to generate reconstructed residual data. The techniques performed by the inverse quantization unit 304 and the inverse transform processing unit 306, respectively, may be similar to the techniques performed by the above-mentioned inverse quantization / transform processing unit 208. The inverse transform processing unit 306 may be configured to apply an inverse DCT, an inverse DST, an inverse integer transform, a non-separable quadratic transform (NSST), or a conceptually similar inverse transform process to transform the coefficients so as to produce a residual block in the pixel domain. In addition, as described above, whether a particular transform (or a particular transform type) is performed may depend on the intra prediction mode. Fig.19 As shown, the reconstructed residual data may be provided to the summer 312. The summer 312 may add the reconstructed residual data to the predicted video block and generate the reconstructed video data. The predicted video block may be determined according to a predictive video technique (i.e., intra prediction and inter prediction). In one example, the video decoder 300 and the filter unit 314 may be configured to determine the QP value and use it for post filtering (e.g., deblocking). In one example, other functional blocks of the video decoder 300 that utilize the QP may determine the QP based on the received signaling and use it for decoding.

[0149] The intra prediction processing unit 308 may be configured to receive an intra prediction syntax element and retrieve a predicted video block from a reference buffer 316. The reference buffer 316 may include a memory device configured to store one or more frames of video data. The intra prediction syntax element may identify an intra prediction mode, such as the intra prediction mode described above. In one example, the intra prediction processing unit 308 may reconstruct the video block using one or more of the intra prediction encoding techniques described herein. The inter prediction processing unit 310 may receive the inter prediction syntax element and generate a motion vector to identify a predicted block in one or more reference frames stored in the reference buffer 316. The inter prediction processing unit 310 may generate a motion compensation block, possibly performing interpolation based on an interpolation filter. An identifier of an interpolation filter for motion estimation with sub-pixel precision may be included in the syntax element. The inter prediction processing unit 310 may use an interpolation filter to calculate interpolated values ​​of sub-integer pixels of a reference block. The filter unit 314 may be configured to perform filtering on the reconstructed video data. For example, filter unit 314 may be configured to perform deblocking and / or SAO filtering, as described above with respect to filter unit 216. Furthermore, it should be noted that in some examples, filter unit 314 may be configured to perform dedicated arbitrary filtering (e.g., visual enhancement). Fig.19 As shown, the video decoder 300 can output a reconstructed video block. As such, the video decoder 300 can be configured to generate reconstructed video data according to one or more techniques described herein. As such, the video decoder 300 represents an example of a device configured to receive residual data corresponding to an encoded video block including sample values; determine whether the encoded video block is a fractional boundary video block; determine a partition for the encoded video block using a subset of available partitioning modes according to the inferred partition; and reconstruct video data based on the residual data and the partition for the encoded video block.

[0150] In one or more examples, the functions may be implemented by hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or codes on or transmitted via a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media corresponding to tangible media such as data storage media, or propagation media including any medium that facilitates the transmission of a computer program from one place to another, for example, according to a communication protocol. Thus, computer-readable media may generally correspond to: (1) a non-transitory tangible computer-readable storage medium, or (2) a communication medium such as a signal or carrier wave. The data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, codes, and / or data structures for implementing the techniques described in the present disclosure. A computer program product may include a computer-readable medium.

[0151] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage devices, disk storage devices or other magnetic storage devices, flash memory, or any other medium that can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, if a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology such as infrared, radio and microwave is used to transmit instructions from a website, server or other remote source, then the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technology such as infrared, radio and microwave are included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals or other transient media, but are directed to non-transient tangible storage media. As used herein, disks and optical disks include compact disks (CDs), laser disks, optical optical disks, digital versatile disks (DVDs), floppy disks and Blu-ray disks, wherein disks usually copy data magnetically, while optical disks use lasers to copy data optically. The above combination should also be included in the scope of computer-readable media.

[0152] Instructions may be executed by one or more processors such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used herein may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functions described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. Moreover, these techniques may be implemented entirely in one or more circuits or logic elements.

[0153] The techniques of the present disclosure may be implemented in a variety of devices or apparatuses including wireless handsets, integrated circuits (ICs), or a set of ICs (e.g., chipsets). Various components, modules, or units are described in the present disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily need to be implemented by different hardware units. Instead, as described above, the various units may be combined in a codec hardware unit, or provided by a collection of interoperable hardware units including one or more processors as described above, in combination with appropriate software and / or firmware.

[0154] In addition, each functional block or various features of the base station equipment and terminal equipment used in each of the above-mentioned embodiments can be implemented or executed by a circuit (usually an integrated circuit or multiple integrated circuits). The circuit designed to perform the functions described in this specification may include a general-purpose processor, a digital signal processor (DSP), a dedicated or general-purpose integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gates or transistor logic devices, or discrete hardware components, or a combination thereof. The general-purpose processor may be a microprocessor, or alternatively, the processor may be a conventional processor, a controller, a microcontroller or a state machine. The general-purpose processor or each of the above-mentioned circuits may be configured by a digital circuit, or may be configured by an analog circuit. In addition, when the technology of the integrated circuit that replaces the current integrated circuit appears due to the progress of semiconductor technology, the integrated circuit produced by the technology can also be used.

[0155] Various examples have been described. These and other examples are within the scope of the following claims.

[0156] <Cross Reference>

[0157] This non-provisional patent application claims priority under 35 U.S.C. §119 to provisional application 62 / 612,073 filed on December 29, 2017 and provisional application 62 / 630,699 filed on February 14, 2018, the entire contents of which are hereby incorporated by reference.

Claims

1. A method for determining a partition of video data for video encoding, characterized in that The method comprises: Determine a current video block in a boundary column of a picture and / or a boundary row of the picture as a fractional boundary video block, the current video block being the fractional boundary video block having only a portion of the current video block within a picture boundary of the picture, wherein a quadtree QT partitioning mode and symmetrical vertical and horizontal binary tree BT partitioning modes may be used to partition the fractional boundary video block; and Determining available directions of the symmetric vertical and horizontal BT partitioning modes for the current video block, wherein: When (1) the current video block is the fractional boundary video block, (2) the bottom row of the current video block is not aligned with the boundary row of the picture and the right column of the current video block is included in the picture, (3) the direction of the symmetrical vertical and horizontal BT partitioning pattern of the mother video block of the current video block is the horizontal direction, and (4) the height of the current video block is higher than a height threshold, the available direction of the symmetrical vertical and horizontal BT partitioning pattern for the current video block is the horizontal direction.

2. The method according to claim 1, characterized in that Except for the available direction of the symmetric vertical and horizontal BT partitioning mode for the current video block being the horizontal direction, other outputs of determining the available directions of the symmetric vertical and horizontal BT partitioning mode for the current video block are unavailable.

3. A device for determining a partition of video data for video encoding, characterized in that The device comprises: at least one processor, and One or more non-transitory computer-readable media, wherein the one or more non-transitory computer-readable media are coupled to the at least one processor and store one or more computer-executable instructions, which, when executed by the at least one processor, cause the device to perform a combination of all steps or any combination of steps of any one of claims 1 to 2 above.

4. A video decoding device, characterized in that: The video decoding device comprises: at least one processor, and One or more non-transitory computer-readable media, which are coupled to the at least one processor and store one or more computer-executable instructions, which, when executed by the at least one processor, cause the video decoding device to perform a combination of all steps or any combination of steps of any one of claims 1 to 2 above.

5. A video encoding device, characterized in that: The video encoding device comprises: at least one processor, and One or more non-transitory computer-readable media, which are coupled to the at least one processor and store one or more computer-executable instructions, which, when executed by the at least one processor, cause the video encoding device to perform a combination of all steps or any combination of steps of any one of claims 1 to 2 above.