WO2019016287A1 - Apparatus and method of coding of pictures - Google Patents

Apparatus and method of coding of pictures Download PDF

Info

Publication number
WO2019016287A1
WO2019016287A1 PCT/EP2018/069556 EP2018069556W WO2019016287A1 WO 2019016287 A1 WO2019016287 A1 WO 2019016287A1 EP 2018069556 W EP2018069556 W EP 2018069556W WO 2019016287 A1 WO2019016287 A1 WO 2019016287A1
Authority
WO
WIPO (PCT)
Prior art keywords
split
block
sub
picture
blocks
Prior art date
Application number
PCT/EP2018/069556
Other languages
French (fr)
Inventor
Adam WIECKOWSKI
Valeri GEORGE
Tobias Hinz
Jackie MA
Jens Brandenburg
Santiago DE LUXÁN HERNÁNDEZ
Heiko Schwarz
Detlev Marpe
Thomas Wiegand
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority to EP18739569.4A priority Critical patent/EP3656127A1/en
Publication of WO2019016287A1 publication Critical patent/WO2019016287A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • Embodiments of the present invention refer to a decoder and a method for decoding as well as to an encoder and the corresponding method for encoding pictures.
  • the decoding and encoding is performed using partitioning.
  • a so-called bi-partitioning is applied to split a block into sub-blocks.
  • a partitioning information is used to perform the bi-partitioning for sub- blocks.
  • the partitioning of sub-blocks is performed based on syntax elements decoded by context-adaptively entropy coding.
  • the partitioning is performed by an apparatus or method supporting at least two modes.
  • the partitioning is performed based on a reduced list of split ratios, wherein this fifth aspect especially refers to the reduction process.
  • the pictures of a video sequence are coded in a certain order, which is referred to as coding order.
  • the coding order of pictures can differ from the capture and display order.
  • each video picture is partitioned into blocks.
  • a block comprises the samples of a rectangular area of a particular color component.
  • the entity of the blocks of all color components that correspond to the same rectangular picture area, together with the associated syntax, is often referred to as unit.
  • CTUs coding tree units
  • CUs coding units
  • PUs prediction units
  • TUs transform units
  • the associated sample blocks are referred to as coding tree blocks (CTBs), coding blocks (CBs), prediction blocks (PBs), and transform blocks (TBs), respectively.
  • a video picture is initially partitioned into fixed sized units (i.e., aligned fixed sized blocks for all color components).
  • these units are referred to as coding tree units (CTUs).
  • Their size (in luma samples) is transmitted in the sequence parameter set (SPS), which contains high-level syntax elements that are valid for an entire coding video sequence (which consists of an instantaneous decoding refresh (IDR) picture and all following pictures up to (but excluding) the next IDR picture).
  • SPS sequence parameter set
  • the CTU size can be chosen between 64x64, 32x32, and 16x16 luma samples.
  • CTUs coding tree blocks
  • the fixed sized CTUs can be adaptively split into smaller units and blocks.
  • a picture can be comprised of one or multiple slices.
  • a slice represents a collection of CTUs.
  • a slice is associated with a slice type (e.g., I, P, or B slice) which determines the set of supported coding modes.
  • a slice type e.g., I, P, or B slice
  • several types of prediction such as motion vector prediction and intra-picture prediction are only supported between blocks inside a slice.
  • the partitioning into coding unit and transform units can be performed in a plurality of ways. For example, within the prior art the following partitioning approaches are described.
  • the quadtree splitting is very simple, it has the disadvantage that often an object or motion boundary can only be reasonably approximated by splitting a large block into many smaller blocks. This potentially increases the bit rate for signaling the prediction parameters (such as motion parameters) as well as the bit rate for the transform coding of the prediction error signals.
  • the Joint Exploration Test Model [3] specifies a combined quadtree/binary tree (QTBT) approach.
  • QTBT quadtree/binary tree
  • prediction units PUs
  • TUs transform units
  • a CTU is first split using the conventional quadtree approach.
  • the quadtree leaf nodes can be further partitioned by a binary tree (BT) structure.
  • a horizontal split which horizontally splits a NxM block into two Nx(M/2) blocks
  • a vertical split which vertically splits a NxN block into two (N/2)xM blocks.
  • the binary splitting can be continued until a minimum block width/block height is reached or a maximum number of (binary) splits were executed.
  • the resulting blocks are used for coding mode signaling, intra-picture prediction, inter-picture prediction, and transform coding.
  • a further extension of the QTBT concept is suggested in [4], where two further splitting modes were introduced for the binary tree part: A horizontal triple split and a vertical triple split.
  • an NxM block is split into three blocks: an Nx(M/4), an Nx( /2), and an Nx(M/4) block (from top to bottom).
  • the vertical triple split vertically partitions an NxM block into an (N/4)xM, an (N/2)xM, and an (N/4)xM block (from left to right / from first to second).
  • picture partitioning into blocks is rendered more efficient in terms of signaling overhead from encoder to decoder, by using multi-level binary split partitioning and signaling this multi-level split partitioning in a manner so that a split direction of a binary split of a certain split level for a certain current block is set in a manner dependent on the split direction used for the parent block of the preceding split level the current block has been derived from by a binary split of the preceding split level.
  • the setting may be dependent on both, the partitioning information and the parent block's split direction.
  • the partition information may signal the split direction relative to the parent block's split direction which, in turn, might also have been signaled by the partitioning information - relative to the split direction of the grandfather block or absolutely (independent therefrom).
  • Embodiments of this aspect provide a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, set a first split line direction of a first split line (e.g. line between CUl and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig.
  • a first split line e.g. line between CUl and CU2 in top left quarter of Fig.
  • a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term “grandfather sub-biock shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub-block (lower left quarter).
  • the block-based decoder may be configured to support a plurality of coding modes (e.g. inter (e.g. temporal) or intra (e.g. spatial) prediction) and derive from the data stream, in units of the coding blocks, a coding mode to be used for decoding the picture from the data stream (cp. mode selector in Fig. 15).
  • a coding mode e.g. inter (e.g. temporal) or intra (e.g. spatial) prediction
  • the block-based decoder may be configured to support a plurality of coding modes, wherein each coding mode has associated therewith a coding-mode-specific set of one or more coding parameters (e.g. motion vector and, optionally, reference picture index for inter prediction and intra prediction mode, e.g.
  • coding parameters e.g. motion vector and, optionally, reference picture index for inter prediction and intra prediction mode, e.g.
  • the block- based decoder is configured to derive from the data stream, in units of the coding blocks, the coding mode specific set of one or more coding parameters for decoding the picture from the data stream by deriving from the data stream for each decoding unit the coding-mode-specific set of one or more coding parameters associated with the coding mode signaled to be used for the respective coding block 16 in the data stream (cp. predictors in Fig. 15).
  • the block-based decoder may be a predictive decoder and configured to derive from the data stream a prediction residual of the picture in a spectral domain (cp. transform blocks in Fig. 15) in form of spectral transforms representing a piece-wise spectral transform of the prediction residual in units of the coding blocks 16 (e.g. for each coding block 16 the prediction residual would be spectrally decomposed separately at encoder side so as to obtain one transform, e.g. DCT, for one coding unit, and the inverse transform would be used to correct the prediction signal at the area corresponding to the coding block).
  • a spectral domain e.g. transform blocks in Fig. 15
  • spectral transforms representing a piece-wise spectral transform of the prediction residual in units of the coding blocks 16
  • the block-based decoder may be configured to pre-partition the picture 12 into an array of tree root blocks 18 and perform the partitioning of the picture block 18 with respect to each of the array of tree root blocks 18 (as exemplarily depicted in Fig.
  • the picture 12 into an array of tree root blocks 18, subject, depending on the partition information, the tree root blocks to a separate partitioning (such as quad-partitioning separately signallable for each tree root block 18, possibly but not exclusively recursively) so as to subdivide the array of the tree root blocks into pre-partition leaf blocks (of possibly different size within the same tree root block 18) and perform the partitioning of the picture block with respect to each of the pre-partition leaf blocks (this alternative is not depicted in Fig. 14; here, each block 18 in Fig.
  • the block-based decoder may be configured to set the first split line direction depending on the second split line direction and the partition information (e.g. perpend_split_flag or parallel_split_flag) by modifying (e.g. selecting between adopting the same, or taking the perpendicular direction) the first split line direction according to the partition information to obtain a modified split line direction and setting the second split line direction to be equal to the modified split line direction.
  • the partition information e.g. perpend_split_flag or parallel_split_flag
  • the block-based decoder may be configured to control the recursive bi- partitioning depending on a binary decision tree (e.g. 20 in Fig. 13; here each node of the tree 20 includes exemplarily more than just a decision of split or no-split, but also indicates split line direction plus split ratio) signaled by the partition information (e.g. perpend_split_flag or parallei_split_flag, and split_ratio_...
  • a binary decision tree e.g. 20 in Fig. 13; here each node of the tree 20 includes exemplarily more than just a decision of split or no-split, but also indicates split line direction plus split ratio
  • the partition information e.g. perpend_split_flag or parallei_split_flag, and split_ratio_...
  • the block-based decoder may be configured to control the recursive bi- partitioning for each sub-block of the picture block belonging to a first predetermined set of split levels (e.g. maybe all split levels, or maybe just for a subset thereof) depending on the partition information (e.g. by split_ratio_%) with respect to a location of a split line along which the respective sub-block is split by the recursive bi-partitioning, transversely to a split line direction of the split line (... in other words, with respect to the split ratio measured transversely to the split line direction).
  • a first predetermined set of split levels e.g. maybe all split levels, or maybe just for a subset thereof
  • the block-based decoder may be configured to control the recursive bi- partitioning for each sub-block of the picture block belonging to a first predetermined set of split levels (e.g. maybe all split levels, or maybe just for a subset thereof) depending on the partition information (e.g. perpend_split_flag or parallel_split_flag, and split_ratio_... flags) with respect to a split line direction of a split line along which the respective sub-block is split by the recursive bi-partitioning depending on the partition information and a split line direction of a split line along which a parent block of the respective intermediate block is split.
  • a first predetermined set of split levels e.g. maybe all split levels, or maybe just for a subset thereof
  • the partition information e.g. perpend_split_flag or parallel_split_flag, and split_ratio_... flags
  • the second split line direction is horizontal or vertical, and the block-based decoder is configured to set the first split line direction depending on the partition information to be perpendicular or parallel to the second split line direction.
  • the block-based decoder may be configured to, in partitioning the picture block, depending on the partition information, decide to split the picture block into a pair of first-split- level sub-blocks, or leave the picture block unsplit, and if the picture block of the picture is split into the pair of first-split-level sub-blocks, depending on the partition information, split a first first-split- level sub-block of the pair of first-split-level sub-blocks into a pair of second-split-level sub-blocks, or leave the first first-split-level sub-block unsplit, and to perform the splitting of the picture block along a third split line having a third split line direction, and setting a fourth split line direction of a fourth split line along which the first first-split-level sub-block is split depending on the third split iine direction.
  • the block-based decoder may be configured to, if the picture block of the picture is split into the pair of first-split-level sub-blocks, set the third split direction depending on the partition information (i.e. for the first split the direction is signallable), to derive from the data stream a first split flag obtained by the partition information, and if the first split flag has a first flag state, to split the first first-split-level sub-block into the pair of second-split-level sub-blocks along the second split line with setting the second split direction to be perpendicular to the first split direction, and if the first split flag has a second flag state, leaving the first first-split-level sub-block unsplit (e.g.
  • the block-based decoder may, if the picture block of the picture is split into the pair of first-split-level sub-blocks, derive from the data stream a first split flag (e.g. perpend_split_flag) contained by the partition information, and if the first split flag has a first flag state, split the first first- split-level sub-block into the pair of second-split-level sub-blocks along the fourth split line with setting the fourth split direction to be perpendicular to the third split direction, and if the first split flag has a second flag state, derive from the data stream a second split flag (e.g.
  • a first split flag e.g. perpend_split_flag
  • the block-based decoder may be configured to, in partitioning the picture block, depending on the partition information, decide to split the grandfather sub-block into a pair of sub-blocks including the predetermined sub-block, or to leave the grandfather sub-block unsplit, and if the grandfather sub-block is split into the pair of sub-blocks, depending on the partition information, to split the predetermined sub-block of the pair of sub-blocks into a pair of child sub-blocks, or to leave the predetermined sub-block unsplit, and to perform the splitting of the grandfather sub-block along the second split line having the second split line direction, and setting the first split line direction of the first split line along which the predetermined sub-block is split depending on the second split line direction.
  • the block-based decoder may be configured to derive from the data stream a first split flag (e.g. perpend_split_flag) contained by the partition information, and if the first split flag has a first flag state, split the predetermined sub-block (upper left quarter of Fig. 1) into the pair of child sub-blocks (CU1 and CU2) along the first split line with setting the first split line direction to be perpendicular to the second split line direction (separating upper left and lower left quarters in Fig 18), and if the first split flag has a second flag state, to derive from the data stream a second split flag (e.g.
  • a first split flag e.g. perpend_split_flag
  • the block-based decoder may derive from the data stream a third split flag (e.g. perpend_spiit_flag) contained by the partition information, and if the third split flag has the first flag state, split the other sub-block (lower left quarter of Fig.
  • the block-based decoder may be configured to, if the predetermined sub- block is split into the pair of child sub-blocks, derive from the data stream a sixth split flag (e.g. perpend_split_flag) contained by the partition information, and if the sixth split flag has the first flag state, split a first child sub-block (e.g. CUl) of the pair of child sub-blocks into a pair of grandchild sub- blocks (not depicted in Fig. 1) along a seventh split line with setting a seventh split line direction of the seventh split line to be perpendicular to the first split line direction, and if the sixth split flag has the second flag state, derive from the data stream a seventh split flag (e.g.
  • the block-based decoder may be configured to, if the predetermined sub- block is split into the pair of child sub-blocks (perpendicularly or in parallel to second split line direction), derive a split ratio (split_ratio_%) from the partition information, indicating at which ratio the predetermined sub-block's width perpendicular to the first split line direction is split.
  • the block-based decoder may support a set (e.g.
  • the block-based decoder may support a further set of supported split ratios for splitting the predetermined sub-block along the first split line being parallel the second split line direction and be configured to exclude supported split ratios from the further set of supported split ratios according to one or more rules to obtain a further reduced set of supported split ratios, and to infer that the second split flag has the second flag state and skip its derivation if a cardinality of the further reduced set is zero.
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line.
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the width into two child cub-blocks' widths not being, (measured) in samples, an integer multiple of a predetermined integer (which may be 4, 8 or any other).
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is too small to fully enclose (differently speaking not inscribable without crossing the child sub-block's borders, whereas loose inscription would be allowed) at least one of a set of at least one predetermined minimum size blocks (e.g. for example, two such as 8x4 and 4x8).
  • a set of at least one predetermined minimum size blocks e.g. for example, two such as 8x4 and 4x8.
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is of an aspect ratio (e.g. horizontal width to vertical width, shorter to longer width, vertical to horizontal width) outside an admissible aspect ratio range (e.g. aspect ratio are excluded which themselves or its reciprocal value exceeds a certain threshold).
  • an aspect ratio e.g. horizontal width to vertical width, shorter to longer width, vertical to horizontal width
  • an admissible aspect ratio range e.g. aspect ratio are excluded which themselves or its reciprocal value exceeds a certain threshold.
  • the one of the one or more rules may excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi- partitioning the predetermined sub-block belongs to (in other words, set A may be pre-reduced according to split-level of current sub-block).
  • the one of the one or more rules excludes supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks (e.g. block corresponding to node A in Fig.
  • Another embodiment provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14,
  • a first split line direction of a first split line e.g. line between CU1 and CU2 in top left quarter of Fig. 1 along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig.
  • Another embodiment provides a block-based encoder for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling (e.g. selecting the partition information in a manner taking rate/distortion optimization into account) the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, to set a first split line direction of a first split line (e.g. line between CU1 and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig.
  • a first split line direction of a first split line e.g. line between CU1 and CU2 in top left quarter of Fig. 1
  • a predetermined sub-block top-left quarter in Fig.
  • a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term “grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub-block (lower left quarter).
  • a further embodiment provides the respective method for encoding a picture 12 into a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling (e.g. selecting the partition information in a manner taking rate/distortion optimization into account) the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14,
  • a first split line direction of a first split line e.g. line between CU1 and CU2 in top left quarter of Fig. 1 along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig.
  • picture partitioning into blocks is rendered more efficient by allowing for an election out of a set of supported split ratios.
  • the supported set may be reduced to a reduced set according to one or more rules in order to remove supported split ratios not being allowed or reasonable according to thoughts, thereby reducing the amount of partitioning information necessary.
  • Embodiments of this aspect 2 provide a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, which is configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, wherein the controlling the recursive bi- partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit,
  • a predetermined sub-block e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits
  • split line direction e.g. horizontal or vertical
  • the block-based decoder supports a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, wherein the block-based decoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
  • set A e.g. set A
  • the decoder may be configured to reduce a fraction of the partition information, used for controlling the recursive bi-partitioning with respect to the predetermined sub- block of the picture biock, depending on a cardinality of the reduced set (e.g. in terms of number of syntax elements contained by, i.e. read from, the partition information for the respective sub-block, or in terms of mean number of bits in bitstream domain such as after entropy coding; see also next paragraph for examples).
  • the decoder may be configured to skip, in parsing the fraction of the partition information, a flag (e.g.
  • perpend_split_flag or parallel_split_fiag or ver_split_flag or hor_split_flag indicating whether the predetermined sub-block is to be split or to be left unsplit, or a flag (e.g. perpend_split_flag or parailel_split_flag or ver_split_flag or hor_split_flag) indicating the split direction of the split line if the reduced set is empty, and/or to skip, in parsing the fraction of the partition information, an index (e.g.
  • split_ratio_ a set of flags such as split_ratio_(8) indicating the split ratio of the split line if the cardinality of the reduced set is one, and/or to change, in entropy decoding the index, a domain of possible values of the index to refer to the reduced set exclusively, or spend shorter codeword lengths for supported split ratios of the reduced set compared to the set of supported split ratios.
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction (e.g. 128 in case of block 18 of Fig. 1 with the width being measured vertically or 24 in case of the block corresponding to node F which is split CU 3 and CU 4 with the width being measured horizontally).
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths not being, in samples, an integer multiple of a predetermined integer (cp. above).
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths being in samples, an integer multiple to each other.
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub- block into two child sub-blocks of which at least one is too small to fully enclose at least one of a set of at least one predetermined minimum size blocks (cp. above).
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub- block into two child sub-blocks of which at least one exceeds a predetermined aspect ratio (cp. above).
  • the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi-partitioning the predetermined sub-block belongs to (cp. above).
  • the one of the one or more rules may exclude supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks of the picture block from which the predetermined sub-block is obtained by the recursive bi-partitioning by splitting the one or more further sub-blocks along the further split line (cp. above).
  • the decoder may be configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios by restricting the supported split ratios signallable by the partition information to the reduced set, and one of the one or more rules excludes supported spiit ratios as to reduce a number of redundant settings of the partition information (i.e. the number of setting leading to the same partitioning of the picture block like the ones depicted in Fig. 13 for instance).
  • the set of supported split ratios may a set of irreducible fractions
  • A AI A'Z X A2' 2 A' AY Qni UN2 ⁇ ill
  • the width of the predetermined sub-block both measured perpendicular to the split direction, if the predetermined split direction is vertical, and one of a upper and lower child sub-block resulting from splitting the predetermined sub-block along a split line having the predetermined split direction at the split ratio relative to the width of the predetermined sub-block, both measured perpendicular to the split direction, if the predetermined split direction is horizontal.
  • the one of the one or more rules may exclude, if the predetermined split direction is parallel to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and if the predetermined sub-block has a width s 0 times the parent sub-block's width, with s 0 being the split ratio of the parent block (e.g. the predetermined sub-block is the one which the nominator relates to), supported split ratios s 1 for which there are a split ratio s of the other block the parent block (e.g.
  • the decoder according to this aspect can additionally perform the partitioning according to aspect one, i.e.
  • a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term “grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub- block (lower left quarter).
  • An embodiment provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction (e.g.
  • a split line at which the predetermined sub- block of the picture block is to be split by the recursive bi-partitioning, and/or a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the split line, is crossed by the split line; supporting a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios,
  • a set e.g. set A
  • this method may be performed using a computer or CPU.
  • a computer or CPU may be performed using a computer or CPU.
  • an embodiment provides a corresponding computer program.
  • An embodiment provides a block-based encoder for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig.
  • the block-based encoder supports a set (e.g.
  • set A) of supported split ratios for splitting the predetermined sub-biock is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios.
  • the block- based encoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
  • This block-based encoder may be configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios in a manner so that the partition information in the data stream depends on the reduced set of supported split ratios.
  • Another embodiment provides a method for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig.
  • a set e.g. set A
  • supporting a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios
  • this method may be performed using a computer or CPU.
  • a computer or CPU may be performed using a computer or CPU.
  • an embodiment provides a corresponding computer program.
  • exclusion rules might be done on the side of the encoder which are not checked or emulated on the side of the decoder as long as the partition information based control of the bi- partitioning remains the same, uses the same set of exclusion rules.
  • picture partitioning into blocks - may it be recursive bi-partitioning or any other recursive multi-partitioning - is rendered more efficient by context-adaptively entropy decoding one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size of one or more neighboring coding blocks into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
  • An embodiments of this aspect 3 provides a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream, and to context- adaptively entropy decode from the partition information one or more syntax elements (e.g. split_ratio_%) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
  • a syntax elements e.g. split_ratio_
  • the block-based decoder may be configured to pre-partition the picture into an array of picture blocks, and wherein the coding order traverses the picture blocks in a raster scan order.
  • the coding order follows a depth-first or breadth first traversal order.
  • the one or more syntax elements control the recursive bi- partitioning with respect to a predetermined sub-block in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split direction of a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the width, is crossed by the split line.
  • the one of the one or more syntax elements controls the recursive bi- partitioning with respect to a predetermined sub-block in terms of a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the width, is crossed by a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning and wherein the context for the one syntax element depends on the size of neighboring coding blocks into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
  • the decoder may additionally comprise a decoder according to aspect 1 and/or aspect 2.
  • Another embodiments provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream,
  • context-adaptively entropy decoding from the partition information one or more syntax elements (e.g. split_ratio_%) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
  • syntax elements e.g. split_ratio_
  • This method may be performed using a computer program having a program code for performing it.
  • Another embodiments provides a block-based encoder for encoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and to context-adaptively entropy encode into the partition information one or more syntax elements (e.g. split_ratio_%) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g.
  • Another embodiments provides a corresponding method for encoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and to context-adaptively entropy encoding into the partition information one or more syntax elements (e.g.
  • split_ratio_ controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
  • a size cp. "area”
  • neighboring coding blocks e.g. Al, A2, Bl, and B2
  • this method may be performed using a computer or CPU.
  • a computer or CPU may be performed using a computer or CPU.
  • an embodiment provides a corresponding computer program.
  • picture partitioning into blocks - may it be recursive bi-partitioning or any other recursive multi-partitioning - is rendered more efficient by supporting at least two modes between which a switchable is feasible, and which differ in terms of degree of freedom of performing the partitioning.
  • Profile and levels may be associated with different modes which, in turn, may be defined by the above-mentioned "adaptation sets", "adaptation sets may be selected in units of whole videos, picture sequences, pictures, slices, or even in units of individual picture blocks.
  • the (or some) adaptation sets may be "learned" by collecting big data, and distributed to the decoders and encoders.
  • An embodiment according to this aspect 4 provides a block-based decoder for decoding a picture from a data stream in units of coding blocks, configured to partition one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream.
  • the block-based decoder supports at least two modes between which the block-based decoder is switchable, and which differ in terms of degree of freedom of performing the partitioning
  • the block-based decoder is configured such that the at least two modes differ in one or more of the following: a minimum block size which has to fit into each coding block, a maximum partition tree depth, a maximum partition tree depth following a split of a current sub-block of a current picture block along a split line perpendicular to a split line of a parent block, the current sub-subblock is child of, a maximum block size for sub-blocks of a current picture for which non-symmetric splits are allowed, a maximum aspect ratio for child sub-blocks resulting from a split of a current sub-block of a current picture block, a minimum aspect ratio for child sub-blocks resulting from a split of a current sub-block of a current picture block, preset splits of a current picture block (e.g.
  • a set e.g. set A
  • supported split ratios for splitting a current sub-block of a current picture block
  • one or more rules for excluding, for a split of a current sub-block along a split line having a predetermined split direction, supported split ratios from the set of supported split ratios.
  • the block-based decoder may be configured to switch between the at least two modes according to one or more of signaling in the data stream, a history of modes used so far, (e.g. forming a statistics of used modes during decoding) a spatial predictor, (e.g. coding modes, prediction parameters and/or partition information used for neighboring coding/prediction blocks) a degree of extension of a current picture block beyond an outer or internal picture boundary.
  • the block-based decoder may be configured to switch between the at least two modes in units of a picture sequence, tree-root blocks of a picture, picture blocks (which might be tree-root blocks).
  • the decoder of this aspect 4 may additionally comprise a decoder according to aspect 1,2 and/or 3.
  • Another embodiment provides a method for decoding a picture from a data stream in units of coding blocks, comprising: partitioning one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream, and supporting at least two modes or switching between at least two modes (which differ in terms of degree of freedom of performing the partitioning).
  • this method may be performed using a computer or CPU.
  • an embodiment provides a corresponding computer program.
  • Block-based encoder for encoding a picture from a data stream in units of coding blocks, configured to partition one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, wherein the block-based encoder supports at least two modes between which the block-based encoder is switchable, and which differ in terms of degree of freedom of performing the partitioning.
  • Another embodiment provides Method for encoding a picture from a data stream in units of coding blocks, comprising: partitioning one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and supporting at least two modes which differ in terms of degree of freedom of performing the partitioning.
  • this method may be performed using a computer or CPU.
  • the coding of a split ratio is rendered more effective by using a set of split ratios including, for instance, equal splitting and pairs of asymmetric splits (of mutually reciprocal ratios), reducing this set and using a correspondingly reduced (or pruned) binary tree as binarization scheme for binarizing /and debinarizing) an index into the reduced list.
  • An embodiment of aspect 5 provides a decoder (e.g. a module possibly within the extractor of Fig. 15) for decoding an index pointing to a split ratio from a data stream, configured to reduce a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42, 37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leafs 42, 37 to main root node 44, each node 40, 38 of the binary tree 34 the child nodes of which do not belong to the reduced list 32, and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of, wherein left (first) branches (
  • each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio, entropy decode a bin string (e.g. formed by split_ratio_... flags) corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_...
  • the base list 30 is a list of irreducible fractions 1 ⁇ ⁇ 12 ⁇ 21 ⁇ 22 ⁇ 31 32 «m « ⁇ 2
  • V fc , a kl + a k2 - b k so that each pair of split ratios kl /b k and k2 /b k , with a k2 b k - a kl and a kl /b k > a k2 /b
  • V fc , a kl + a k2 - b k so that each pair of split ratios kl /b k and k2 /b k , with a k2 b k - a kl and a kl /b k > a k2 /b
  • the binary tree 34 is composed of a partial tree 36 having 2n leafs 37 all of which are connected to a tree root 38 of the partial tree 36 via n-1 intermediary nodes 40 of the partial tree 36, and correspond, from left to right, to the second to (2n+l)
  • the decoder may be configured to perform the entropy decoding context- adaptively for at least a bin subset of the sequence of one or more bins, and to determine a context for the entropy decoding in a manner so that the determination of the context differs among the bins of the bin subset.
  • the decoder may be configured to perform the entropy decoding context-adaptively for at least one predetermined bin of the bin string and configured to determine a context for the entropy decoding the predetermined bin depending on a position (e.g. split level) in the binary tree 34 where the node of the reduced binary tree 52 which corresponds to the predetermined bin, originates in the reduction of the binary tree 34 (frankly speaking, e.g. it's occidentalle split level in the binary tree 34 counts, rather than the spit level in the reduced tree 50).
  • a position e.g. split level
  • the split ratio pointed to by the index is for a recursive bi-partitioning split.
  • the decoder is configured to perform the entropy decoding context-adaptively for at least a bin subset of the sequence of one or more bins, and determine, for each bin of the bin subset, a context for the entropy decoding by selecting the context for the respective bin out of a set of contexts depending on coding parameters associated with (e.g. coding modes, prediction parameters and/or partition information used to code/decode block in the...) a spatial neighborhood of a block (18) which the recursive bi-partitioning split relates to.
  • the set of contexts out of which the selection takes place differs for at least two bin sub-subsets of the bin subset (e.g. mutually distinct sets of contexts are used for the bins).
  • the decoder may be configured to determine, for at least one of the bin subset, the context for the entropy decoding by selecting the context for the at least one bin out of the set of contexts depending on a size (e.g. area) of bi-partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi-partitioning split relates to.
  • a size e.g. area
  • the decoder may be configured to locate bi-partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi-partitioning split relates to, depending on a split line direction of block which the recursive bi-partitioning split relates to in a manner so that the blocks in the spatial neighborhood neighbor the block which the recursive bi-partitioning split relates to along the split line direction and neighbor each other transversely with respect to the split line direction (e.g. Al and A2 in case of vertical split, and Bl and B2 and case of horizontal split).
  • a split line direction of block which the recursive bi-partitioning split relates to in a manner so that the blocks in the spatial neighborhood neighbor the block which the recursive bi-partitioning split relates to along the split line direction and neighbor each other transversely with respect to the split line direction (e.g. Al and A2 in case of vertical split, and Bl and B2 and case of horizontal split).
  • the decoder may be is additionally a decoder according to aspect 1, 2, 3 and/or 4.
  • An embodiment provides a method for decoding an index pointing to a split ratio from a data stream, comprising:
  • reducing a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by
  • each node 40,38 of the binary tree 34 the child nodes of which do not belong to the reduced list 32 , and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of,
  • left branches exemplarily assigned “0” in Fig. 5 and Fig. 6
  • right branches exemplarily assigned “1” in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio
  • entropy decoding a bin string (e.g. formed by split_ratio_... flags) corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main root node 52 of the reduced binary tree 50, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins;
  • a bin string e.g. formed by split_ratio_... flags
  • a sequence of one or more bins e.g. formed by the individual split_ratio_... flags
  • this method may be performed using a computer or CPU.
  • Another embodiments provides a encoder for encoding an index pointing to a split ratio into a data stream, configured to reduce a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leafs 42,37 to main root node 44, each node 40,38 of the binary tree 34 the child nodes of which are both removed, and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of.
  • left branches (exemplarily assigned “0” in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a first bin value
  • right branches (exemplarily assigned "1” in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio.
  • the decoder is configured to binarize the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main tree root, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins; and to entropy encode the bin string (e.g. formed by split_ratio_... flags).
  • the bin string corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main tree root, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins.
  • Another embodiments provides a method for encoding an index pointing to a split ratio into a data stream, comprising:
  • reducing a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by
  • each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio, binarizing the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_...
  • this method may be performed using a computer or CPU.
  • an embodiment provides a corresponding computer program.
  • Fig. 1. shows an exemplary partitioning of 128x128 CTU according to embodiments of the present application.
  • Fig. 2 shows the partitioning tree describing the topology in fig. 1 according to embodiments.
  • Fig. 3 shows a description of non-leaf nodes of the partitioning tree in fig. 2 (including block sizes and the splits used to subdivide a particular node described by the split direction and the split ratio) according to embodiments.
  • Fig. 4 shows Signaling of split direction according to embodiments.
  • Fig. 5 shows exemplary signaling of the split ratio for a particular block size according to embodiments.
  • Fig. 6 shows reduced signaling from fig. 5 (for cases where not all split ratios are available) according to embodiments.
  • Fig. 7 shows three template layouts used to define prohibited partitioning tree patterns according to embodiments.
  • Fig. 8 shows exemplary context modeling for a simple binary decision tree for signaling the split ratio according to embodiments.
  • Fig. 9 shows exemplary context modeling for another binary decision tree for signaling the split ratio according to embodiments.
  • Fig. 10 illustrates location of neighboring blocks according to embodiments.
  • Fig. 11 shows an example for redundant parallel splits according to embodiments.
  • Fig. 12 shows an example for redundant perpendicular splits according to embodiments.
  • Fig. 13 shows an example for higher-order redundancies according to embodiments.
  • Fig. 14 shows exemplarily an decoder according to a basic embodiment.
  • Fig. 15 shows exemplarily an decoder according to an enhanced embodiment.
  • Fig. 16 shows a block diagram of an apparatus for predictively coding a video as an example for a video decoder where a composed prediction concept.
  • Fig. 17 shows a block diagram of an apparatus for predictively decoding a video as an example for a video decoder.
  • Fig. 18 shows a schematic diagram illustrating an example for a relationship between a prediction residual signal, a prediction signal and a reconstructed signal.
  • Fig. 19 shows a schematic illustration an example for limiting the average number of prediction hypotheses over a given area.
  • Fig. 20 shows a schematic example for defining the number of prediction hypotheses depending on the block size or geometry.
  • a CTU can be split into multiple coding units (CUs).
  • a coding unit is the entity for which a coding mode (e.g., intra- or inter-picture coding) is selected.
  • the decomposition of a CTU into one or more CUs is specified by a quadtree (QT) and transmitted as part of the bitstream.
  • QT quadtree
  • a first binary decision (bin) called split_cu_flag is transmitted, which signals whether the entire CTU forms one single CU (i.e., the CTU is not decomposed into multiple CUs) or whether the CTU is partitioned into four equally sized square units.
  • a further split_cu_flag is transmitted, which indicates whether the corresponding unit is further partitioned into four equally sized square units. This multi-level splitting is continued until for each of the units it is either signaled that the unit is not further split or a minimum CU size is reached. If a unit has the minimum CU size, no split_.cu_.flag is transmitted, but it is inferred that the unit is not further split.
  • the minimum allowed CU size is signaled in the sequence parameter set; it can range from the size of the CTU to 8x8 luma samples (and always presents a square with an integer power of two for both the width and height).
  • the resulting units of the described splitting are the coding units (CUs), for which a coding mode and associated parameters are selected and transmitted. Note that the partitioning represents a quadtree (QT) structure.
  • Each of the resulting CUs is associated with a coding mode, which is selected at the encoder side and transmitted as part of the bitstream.
  • the binary decisions split_cu_flag which specify the partitioning of a CTU into one or multiple CUs are coded using context-based adaptive binary arithmetic coding (CABAC).
  • CABAC context-based adaptive binary arithmetic coding
  • the CUs of a CTU are processed in the so-called z-scan order. That means, the four blocks that result from a split are processed in raster-scan order; and if any of the blocks is further partitioned, the corresponding four blocks (including the included smaller blocks) are processed before the next block of the higher splitting level is processed.
  • a CU is coded in an intra-coding mode, an intra prediction mode for the luma signal and, if the video signal includes chroma components, another intra prediction mode for the chroma signals is transmitted.
  • ITU-T H.265 M PEG-H H EVC
  • the luma coding block can also be split into four equally sized blocks, in which case, for each of these blocks, a separate luma intra prediction mode is transmitted. This splitting is indicated by a binary syntax element partjnode.
  • the actual intra prediction and coding is done on the basis of transform blocks.
  • a CU can be partitioned into multiple transform blocks.
  • the subdivision into transform blocks is transmitted using a quadtree syntax.
  • the root of the quadtree is formed by the coding unit.
  • the syntax of the coding unit includes a binary decision called split_transform_flag, which specifies whether the luma component of the CU consists of a single luma transform block or whether it is split into four equally sized square blocks. In the latter case, for each of the resulting luma blocks, another split_transform_flag is transmitted specifying whether the corresponding block is further split.
  • This quadtree splitting is continued until for each of the resulting luma blocks, it is signaled that the block is not further split or the block reaches a minimum transform block size (indicated in the sequence parameter set).
  • the first split_transform_flag (at the CU level) is not transmitted, but it is inferred that the luma coding block is split into four luma blocks.
  • the splitting of the chroma blocks basically follows the splitting of the co-located luma block, i.e., for each luma block the associated chroma blocks cover the same picture area.
  • the luma block and the associated chroma blocks that cover the same picture area form a tra nsform unit. There is, however, one exception in the ITU-T H.265 I MPEG-H HEVC standard : If the resulting chroma blocks would be smaller than the minimum transform block size (as specified in the sequence parameter set), only the luma block is split.
  • M PEG-H HEVC the binary syntax elements split_transform_flag are coded using CABAC.
  • a transform block (TB) is the entity to which a single 2d transform is applied for coding the prediction residual signal. Note that all transform blocks in ITU-T H.265
  • the TUs of an intra-coded CU are processed in z-scan order (see above). For each transform block (luma or chroma), first a prediction signal is generated using already reconstructed neighboring samples of the same color component. The algorithm that is used for generating the prediction signal is determined by the intra prediction mode. The resulting prediction error / residual signal is transmitted using tra nsform coding. A two-dimensional transform is applied to the corresponding block of residual samples, the resulting transform coefficients are quantized (typically using uniform reconstruction q ua ntizers), and the resulting quantization indexes, which are a lso referred to as transform coefficient levels, are entropy-coded.
  • M PEG-H HEVC uses the concept of context-based adaptive binary arithmetic coding (CABAC).
  • CABAC context-based adaptive binary arithmetic coding
  • Inter-picture coded CUs can be split into multiple prediction units.
  • a prediction unit is the entity of a luma and, for color video, two associated chroma blocks (covering the same picture area), for which a single set of prediction parameters is used.
  • a CU can be coded as a single prediction unit, or it can be split into two non-square or four square prediction units. The latter (four square PUs) is only supported if the CU has the minimum CU size specified in the sequence parameter set. The chosen splitting is indicated by the syntax element part_mode.
  • MPEG-H HEVC supports in total 8 modes for partitioning a CU into PUs.
  • An NxN CU can be pa rtitioned into:
  • Each set of motion parameters includes the number of motion hypotheses (one or two in ITU-T H.265
  • a merge_flag is transmitted, which indicates whether the motion parameters are completely derived based on already coded motion parameters or whether the motion parameters are transmitted. If the merge_fiag is equal to 1, a list of motion parameter set candidates is derived, which typically includes motion parameters sets of already coded spatially neighboring blocks as well as one or more motion parameter sets that are derived from temporally co- located blocks.
  • the used motion parameter set is indicated by a syntax element mergejdx, which specifies an index into the candidate list of motion parameter sets. If merge_flag is equal to 0, the motion parameters are transmitted as part of the bitstream.
  • a first syntax element (inter_pred_idc in ITU-T H.265 I MPEG-H HEVC) specifies the number of motion hypotheses. In ITU-T H.265
  • the reference picture lists are constructed based on slice header syntax elements.
  • Each reference picture list contains one or more already coded pictures (which are stored in a decoded picture buffer) in a specified order.
  • the syntax element inter_pred_idc does not only indicate single-hypothesis prediction or bi- prediction, but for single-hypothesis prediction it additionally indicates whether list 0 or list 1 is used.
  • the first motion hypothesis refers to list 0 and the second motion hypothesis refers to list 1.
  • an associated motion vector is transmitted as part of the bitstream.
  • the motion vectors are differentially coded.
  • a list of motion vector predictor candidates is derived. It can include (potentially scaled) motion vectors of neighboring PUs as well as scaled motion vectors of temporally preceeding (in terms of coding order), spatially co-located blocks.
  • the actually chosen motion vector predictor is signaled via an index into the motion vector predictor iist. Finally the difference between the actual motion vector for the PU and the selected motion vector predictor is transmitted.
  • the prediction signal for a PU is formed by a displaced block in the selected reconstructed reference picture, where the displacement relative to the current PU is specified by the motion vector.
  • the displacement is typically specified with sub-sample accuracy (in ITU-T H.265
  • the prediction signal is generated by interpolating the reconstructed reference picture (typically, using separable FIR filters).
  • the final prediction signal of PUs with multi-hypothesis prediction is formed by a weighted sum of the prediction signals for the individual motion hypothesis. Note that luma and chroma blocks of a PU share the same set of motion parameters.
  • the prediction signal for an inter-picture coded CU is composed of the prediction signals for the contained PUs.
  • the prediction error signal (also called residual signal) for the luma and chroma blocks of a coding unit is transmitted via transform coding.
  • the block of luma residual samples of a CU as well as the blocks of chroma residual samples (if present) are partitioned into transform blocks.
  • the partitioning into transform blocks is the same as for intra-picture coded CUs described above.
  • the partitioning of a CU into transform block is indicated by a quadtree syntax, which is also referred to as residual quadtree (RQT).
  • the resulting transform blocks are coded using transform coding: A 2d transform is applied to the block of residual samples, the resulting transform coefficients are quantized, and the resulting transform coefficient levels (quantization indexes) are entropy coded.
  • a skip_flag is transmitted. If this flag is equal to 1, it indicates that the corresponding CU consists of a single prediction unit coded in merge mode (i.e., merge_flag is inferred to be equal to 1) and that all transform coefficients are equal to zero (i.e., the reconstruction signal is equal to the prediction signal). In that case, only the mergejdx is transmitted in addition to the skip_flag. If skip_flag is equal to 0, the prediction mode (inter or intra) is signaled, followed by the syntax features described above.
  • CABAC context-based adaptive binary arithmetic coding
  • Non-binary syntax elements are first binarized, i.e., they are mapped onto a series of binary decisions, which are also referred to as bins. Then, each bin (including binary syntax elements) is coded using a binary arithmetic coder.
  • the so-called regular mode one adaptive binary probability model is chosen per bin; after coding the corresponding bin, the binary probability model is updated using the actual value of the bin.
  • the entropy coder maintains a certain number of binary probability models.
  • the selected probability model depends on the syntax element and the bin number (for non-binary syntax elements). It can additionally depend on already coded syntax elements or bins.
  • the selection of binary probability models is also referred to as context modelling.
  • MPEG-H HEVC provides a multitude of possibilities for coding a block of samples (such as a coding tree unit).
  • the encoder has to select the partitionings (into CUs, PUs, and TUs), the coding modes and associated parameters (such as intra prediction modes and motion parameters), and the transform coefficient levels (quantization indexes).
  • the selected coding parameters determine both the reconstruction quality as well as the number of bits required for representing the coding parameter inside the bitstream.
  • Modern encoding algorithms are typically based on Lagrangian bit allocation.
  • the maximum achievable coding efficiency of a codec is determined by the supported syntax features, such as the set of coding modes, the partitioning options, the supported intra prediction modes, etc.
  • partitioning options One of the most important syntax features are the supported partitioning options.
  • a flexible partitioning allows an adaptation of the block sizes used for prediction and transform coding to the video signal.
  • the partitioning has to be transmitted as part of the bitstream.
  • the gain in prediction and transform coding for providing additional partitioning options has to outweigh the additional signaling overhead. Due to that reason, state-of-the-art video coding standards support only very simple partitioning concepts, such as quadtree partitionings.
  • a partitioning concept based on generalized binary trees is described, it provides more flexibility than conventional partitioning concepts (such as the quadtree approach) for adapting the blocks used for prediction and transform coding to the video signal to be coded. And since the syntax fortransmitting the selected partitioning is still very simple, the gain in prediction and transform coding typically outweighs the additional signaling overhead. Hence, the generalized partitioning concept is capable of increasing the achievable coding efficiency of a video codec.
  • the described partitioning concept can be used for partitioning a block for coding mode signaling, intra-picture prediction, inter-picture prediction, transform coding, or any combination thereof. It can completely replace conventional partitioning concepts, or it can be combined with other partitioning concepts, such as a quadtree partitioning.
  • the generalized binary splitting that is presented in this invention represents a superset of all mentioned splitting approaches QT, QTBT, QTBT with additional triple splits, and QTBT with additional asymmetric splits into subblocks of sizes 1/4 and 3/4. It is characterized by a simple syntax and is capable of better adapting the block sizes to object and motion boundaries, which results in an improved coding efficiency.
  • a method of video coding using generalized binary trees is presented.
  • the presented generalized binary splitting can be applied for all block partitionings required in video coding. In particular, it can be applied for partitioning a block into coding units (for signaling the coding mode), prediction units (for signaling prediction parameters such as motion parameters), or transform units (for transform coding of the residual signal).
  • the signaling of the coding mode, the signaling of prediction parameters and the transform coding is applied to the same blocks (i.e., such a block represents a CU, PU, and TU) and the generalized binary splitting is used for specifying the corresponding partitioning of a fixed sized block into coding units (which also represent PUs and TUs). It is, however, also possible to use the generalized binary splitting for specifying the partitioning into CUs, while the resulting CUs can be further partitioned into PUs and/or TUs (either using the generalized binary splitting or any other partitioning concept).
  • the generalized binary splitting can be applied individually to color components and auxiliary components, such as alpha channel or depth masks, respectively.
  • generalized binary splitting can be applied to groups of those components.
  • two different splitting trees can be used: one for partitioning the luma component and other for partitioning the chroma components.
  • the generalized binary splitting can be combined with any other splitting.
  • the quadtree splitting (or any other splitting concept) can be used on a first level and the resulting blocks can be further partitioned using the generalized binary splitting.
  • blocks obtained by the generalized binary splitting can be further partitioned using any other splitting concept.
  • the splitting structure can be represented as a binary splitting tree (also referred to as "partitioning tree” in the following).
  • Each node represents a binary split with a split direction (horizontal or vertical) and a split ratio (which is the ratio of the width (or height) of the first resulting block and the width (or height) of the original block).
  • the split direction is coded relative to the previous split direction (i.e., the corresponding split on the next higher (previous) level) (cp. A6).
  • a split is coded as “parallel” or as “perpendicular” split, which always translates to either a “vertical” (splitting the width) or a “horizontal” split (splitting the height). If we assume that the current block was obtained by a horizontal split (at the last (previous) split level), then, if a "parallel split” is signaled, the current block is again horizontally split into two subblocks, and if a "perpendicular split” is signaled, the current block is vertically split into two subblocks (cp. A7) . If the last level split was a vertical split, the "parallel split” specifies a vertical split and the "perpendicular split” specified a horizontal split. Since on the highest level (i.e., for the root level block) no previous split was signaled, it has to be defined by convention whether the last split level is inferred to represent a horizontal or a vertical split.
  • a binary split is characterized by the split ratio (cp. A8).
  • the split ratio specifies the ratio of the sizes (in number of samples) of the first resulting subblock (from top/left) and the block being split. Note that, since a block is always split into two subblocks, the split ratio also specifies ratio of the block widths (for vertical splits) or the ratio of the block heights (for horizontal blocks).
  • the leaf nodes of the partitioning tree represent the actual units (consisting of a luma sample block and, for non-monochrome video, the co-located chroma sample blocks) being coded.
  • Coding units which shall be referred to as coding units in the following, are characterized by their positions and sizes, which can be inferred from the partitioning tree.
  • Coding cp. A2
  • prediction cp. A3
  • transform coding cp. A4
  • a perpendicular split with a split ratio of 1/2 is the split that can be signaled using the minimum number of bits (or bins) in most configurations and will referred to as "default split" in the following.
  • the partitioning is signaled as follows. Without loss of generality, we define that the last split for the root block (which did not result from an actual split) is considered as vertical split. But note that it could also be defined as horizontal split. First a binary decision perpend_split_flag is coded, which indicates whether a perpendicular split applied. If perpend_split_flag is equal to 1 and the last split (i.e., the split from which is current block resulted) was a horizontal split, a vertical split is applied to the current block. If perpend_split_fiag is equal to 1 and the last split was a vertical split (with our above defined convention this includes the case that our current block is the root blocks), this indicates that a horizontal split is applied.
  • perpend_split_fiag is equal to 0
  • another binary decision parallel_split_flag is transmitted. If parallel_split_flag is equal to 1 and the last split was a horizontal split, the current block is again horizontally split. If parallel_split_flag is equal to 1 and the last split was a vertical split (or was inferred as vertical split by our convention), the current block is vertically split. If parallel_split_flag is equal to 0, the current block is not further split, i.e. it is left unsplit, but represents a leaf block (equivalent to a "no-split" signaling) and becomes a coding block.
  • the corresponding binary decisions are not transmitted, but can be inferred at the decoder side. For example, if the last split was a vertical split and the width of the current block is equal to the minimum supported block width, the binary decision parallel_split_flag (which indicates whether the current block is again vertically split) is not transmitted, but inferred to be equal to 0.
  • Either or both of the binary decisions perpend_split_flag and parallel_split_flag can be inferred if this is indicated by high level parameters, which may be signaled in the PPS (picture parameter set), SPS (sequence parameter set) or slice header (cp. A19 and A20).
  • PPS picture parameter set
  • SPS sequence parameter set
  • slice header cp. A19 and A20.
  • a binary decision tree for signaling the split direction is shown in fig. 4. If a horizontal split is to be applied, the split size is defined as the length of the vertical edge of the block to be split (as the split will introduce a new horizontal edge). For a vertical split, the split size M is the length of the horizontal edge of the block to be split.
  • the split pattern consists of alternating horizontal and vertical splits.
  • the block is either not further split or it is split using a split direction that is perpendicular to the previous split direction (at the higher level).
  • An exception could be made for the root block (where no previous split exists); for the root block it could be explicitly signaled whether a horizontal or a vertical split is applied (or whether the block is not split at all) (cp. A12+A5).
  • the split direction is coded using binary decisions hor_spiit_fiag (indicating whether or not the block is horizontally split) and ver_split_flag (indicating whether or not the block is vertically split). These flags could be coded in any order; the second flag is only transmitted if the first flag indicates no splitting in the corresponding direction.
  • the split and the split direction are coded using a split_flag and a split_direction_flag, where the split_flag indicates whether the current block is split at all and the split_direction_flag indicates whether the split is applied in horizontal or vertical direction.
  • the split_direction_flag indicates whether the split is applied in perpendicular direction to the last split or in the same direction as the last split.
  • the split flags are coded using context-based adaptive arithmetic coding (as CABAC in H.265
  • a split ratio is coded in addition to the split direction (cp. 18a).
  • the set of possible split ratios can be arbitrarily chosen for every block size provided the resulting subblocks can be encoded using the video encoding framework (e.g., an appropriate transformation size has to be available).
  • the split ratio may be encoded as an element of a set as well as by binarization of the nominator and the denominator (in the former case, the set has to be predefined).
  • the split ratio is coded based on a binary decision tree (with adaptive tree pruning according to the available split ratios) as will be described below in more detail.
  • the split ratio can be coded as an index into an ordered list of available split ratios. The index can be mapped onto a series of binary decisions using any binarization scheme.
  • the overall set of split ratios is defined as: ⁇ 1/2, 1/4, 3/4, 3/8, 5/8, 1/3, 2/3, 1/5, 2/5, 3/5, 4/5 ⁇ .
  • the available set of split ratios represents a subset of this overall set.
  • the subset for a particular block and a particular splitdirection can be determined by the size of the current block and/or the series of previous splits. If some of the ratios are not available for a particular split size (e.g., because restrictions on transform or prediction sizes or minimum block sizes prevent these split ratios or because the splits would result in redundant partitionings), the corresponding signaling flags are not transmitted in order to reduce the bit rate.
  • all bins of the ratio signaling can be inferred and are not transmitted (e.g., for block sizes larger than the maximum block size for a non-default split). If, for a split direction, none of the split ratios can be applied (e.g., due to prohibitions enforced by high level parameters), the signaling of this split direction can be inferred as false.
  • the binary splitting will be applied recursively until no further splitting is inferred or signaled. I.e., if a block is split into two subblocks, for each of the resulting subblocks another split consisting of a split direction and a split ratio is coded (where some or all of the corresponding binary decisions can be inferred based on syntax constraints). This process is continued until it is signaled (or inferred) that no block is further split.
  • the generalized binary splitting concept is applied for partitioning fixed sized blocks (such as CTUs) into coding units, which also represent prediction units and transform units. For each of the resulting blocks, a coding mode and associated prediction parameters (such as intra prediction modes or motion parameters) are transmitted and the blocks are also used for transform coding of the residual signal.
  • the resulting blocks are used as coding blocks (i.e., for signaling the coding mode), but the coding blocks can be further partitioned into prediction and/or transform blocks (either using the generalized binary splitting concept or any other splitting method).
  • the high-level parameters controlling the behavior of generalized binary splitting can include a minimum block size (e.g., specified by a minimum block width and a minimum block height, or specified by a minimum number of samples), a maximum partition tree depth , a maximum partition tree depth following a first non-default split, a maximum block size for a non-default split, maximum and minimum allowed aspect ratios for the resulting blocks as well as constraints regarding the applicable split ratios.
  • the high-level parameters may be signaled in a picture parameter set (PPS), sequence parameter set (SPS), slice header or any other high-level syntax structure. To reduce the number of bits required for transmitting the high-level parameters, boundaries and specific domains may be defined for the high-level parameters.
  • the maximum aspect ratio may be defined as a power-of-2 bigger than 4, thus significantly reducing the number of possible options.
  • the minimum aspect ratio may be defined as the reciprocal of the maximum aspect ratio or vice versa, in which case only the minimum or maximum aspect ratio needs to be transmitted.
  • both the split direction and the split ratio are coded using context-based adaptive arithmetic coding (CABAC).
  • CABAC context-based adaptive arithmetic coding
  • these parameters are coded as a series of binary decisions with adaptive binary probability models (a subset of the bins can also be coded with non-adaptive probability models).
  • the used binary probability models for the split decision may be selected based on the size of neighboring blocks.
  • the underlying assumption is that small blocks often occur in the neighborhood of other small blocks (i.e., in finely partitioned areas of a video picture). This or a similar assumption may also be used to model the contexts for the split ratio coding. Note that non-symmetric splits results in a smaller and a larger block and smaller blocks may tend to be located in the neighborhood of other small blocks.
  • some final partitioning patterns could be generated using more than one partitioning tree.
  • some combinations of splits are prohibited by the syntax. This can be achieved by prohibiting some tree patterns from being introduced into the partitioning tree.
  • a tree pattern is defined using either the actual "vertical”/"horizontal” or the directional "parallel'Vperpendicular" split direction semantics, possibly mixed.
  • a tree pattern also includes split ratios.
  • FIG. 1 A specific partial partitioning of a 128x128 block (e.g., a CTU of size 128x128) using the means described in this embodiment is shown in fig. 1.
  • the partitioning tree describing the shown topology is shown in fig. 2.
  • Fig. 3 explains which splits directions and ratios were used at specific nodes.
  • the overall set of split ratios is given by
  • split ratios a/b are given as irreducible fractions (numerator and denominator are coprime).
  • symmetric split with split ratio 1/2 several non-symmetric split ratios are included in the overall set of split ratios.
  • the split ratio (b-a)/b is also included. Both splits yield the same subblock sizes, but for one of the splits, the larger subblock represents the left/top part, and for the other split, the larger subblock represents the right/bottom part of the block to be split.
  • the symmetric split is included in the overall set of split ratios, in which case we have
  • Criterion 1 Granularity of block_sizes
  • the set of available splits can be constraint by a minimum block size. That means, if a split would results in a block size that is smaller than a minimum block size, it is prohibited and removed from the list of available splits.
  • the minimum and maximum aspect ratio Another possible constraint is the minimum and maximum aspect ratio. If a split would result in any subblock with an aspect ratio (block width)/(block height) greater than a maximum aspect ratio or less than a minimum aspect ratio, the corresponding split is removed from the set of available splits.
  • the minimum aspect ratio could be set equal to the reciprocal of the maximum aspect ratio.
  • the maximum aspect ratio could be set equal to 8.
  • the split depth represents the depth of the binary split tree structure. Or in other words, for a particular block, the split depth represents the number of splits required to reach the current block from the root block. If the split depth of a current block is already equal to the maximum split depth, no further split is allowed. As an example, the maximum split depth could be set equal to 3.
  • Parameters which control the minimum block size, the minimum and maximum aspect ratio, the maximum split depth, and/or values restricting the use of non-symmetric splits are preferably transmitted in a high-level syntax structure, similar to the sequence parameter set, the picture parameter set, or the slice header of H.265
  • the first part of Table 1 specifies an example for prohibited parallel splits.
  • the parallel splits that are prohibited for the first subblock are labeled by "layout a)" and the parallel splits that are prohibited for the second subblock are labeled by "layout b)".
  • the redundancy for consecutive parallel splits could also be removed by only prohibiting splits for the first subblock, or only prohibiting splits for the second subblock, or by using another combination of prohibiting splits for the first and second subblock.
  • the coding order of the subblocks is defined in a way that for each split, the first subblock (top or left subblock) or all blocks contained in the first subblock is/are coded before the second subblock (bottom or right subblock) or all block contained in the second subblock.
  • the four resulting blocks would be transmitted in the following order: top-left, bottom-left, top-right, bottom-right (see Fig. 12b).
  • the described redundant perpendicular splits are typically still very similar, so that prohibiting these splits could actually improve coding efficiency.
  • the loss in coding efficiency due to not considering both of the described coding options may be outweighed by the bit rate savings obtained by using shorter codewords for signaling the partitioning.
  • a potential gain by considering both ways of splitting is only achievable if the encoder evaluates both options, which would increase the encoding complexity. So, in summary, it depends on the actual coding options and the application whether it is preferable to allow both options in the syntax.
  • the described redundant perpendicular splits are prohibited.
  • the potential redundancy is supported in the syntax.
  • the bitstream contains a syntax element, which indicates whether redundant perpendicular splits are allowed or prohibited by the syntax, in the latter case, the actually used split ratio syntax is depending on the value of a corresponding syntax element.
  • the syntax element that indicates whether redundant perpendicular splits are allowed or prohibited could be transmitted as part of any high-level syntax structure, such as the SPS, PPS, or slice header. It is also possible that this syntax element is transmitted as part of the low-level syntax, as for example, the CTU syntax or the CU syntax.
  • redundant perpendicular splits are prohibited (either by convention or indicated by a high-level syntax element), it has to be defined which of the two variants is prohibited and which of the variants is supported. This decision could depend on which variant requires less binary decisions for coding or which variant most likely provides better intra-prediction signals or motion vector predictors, etc.
  • Table 1 gives an example for specifying prohibited redundant splits. The prohibited perpendicular splits are marked with "layout c)". They have to be interpreted in the following way.
  • split ratio A A- atio
  • split ratio B B-Ratio
  • Figure 7 shows three different partitioning tree patterns that are prohibited if specific split directions and ratios for the nodes A, B, and C are met.
  • Table 1 all configurations prohibited in the described embodiment are listed. The local topology produced by those patterns can be exactly replicated using a different partitioning tree pattern.
  • the prohibitions are chosen in correspondence to the least expensive splits.
  • Layout a) with A-Ratio 3/4 and B-Ratio 2/3 yields the same pattern as Layout b) with A-Ratio 1/2 and B-Ratio 1/2.
  • the former is prohibited whereas the latter is allowed due to the fact that 1/2 is less expensive in signaling (when using the signaling scheme described below).
  • Method A (1) Vertical split with ratio 1/4 applied to 16x16 block at location (0,0)
  • Method B (1) Vertical split with ratio 3/4 applied to 16x16 block at location (0,0)
  • both methods yield the following partitioning into 5 subblocks: 4x8 block at location (0,0), 8x8 block at location (4,0), 4x8 block at location (0,8), 8x8 block at location (4,8), and 4x16 block at location (12,0).
  • the coding order for both methods is usually different (in Fig. 13, the coding order is indicated by the numbers inside the resulting blocks), so that both ways of splitting actually represent different coding modes. Such higher-order redundancies could be prohibited, or they could be allowed by the syntax.
  • the reduction of the set of asymmetric splits has the goal the enable that the areas asymmetrically split before should not be split asymmetrically again.
  • This principle may be explained by other words as concept for avoiding one- dimensional / punctual redundancy.
  • This split options are prohibited in syntax.
  • the result can be that the set of possible splits comprises splits "positioned" in an alternating manner (e.g. left and right) so that the second split is approximated to the mirrored version of the previous split.
  • a tree adaption set could define a specific set of leaf nodes or branches, or a set of rules to select leaf nodes or branches added and/or removed from the default tree.
  • the aspect of an explicitly signaled tree adaption set might include the signaling of the use of a tree adaption set and/or the signaling of an index, selecting a tree adaption set out of a predefined record of tree adaption sets, using variable or fixed length codes embedded in any high level syntax structure.
  • Implicit signaling might range from deriving the use of additional tree adaption sets as well as selecting a tree adaption set out of a record by evaluation of syntax elements coded in any high level syntax structure and/or on CTU-level or below.
  • One aspect could link specific profile and level syntax elements to specific tree adaption sets, in order to limit complexity or eliminate unsupported block width, block height or block aspect ratios, which might not be compatible with certain profile- level combinations.
  • a tree adaption set might be derived from syntax elements of the temporal or spatial neighborhood, restricting or expanding the default tree, according to assumed local requirements.
  • an implicit tree adaption set could be activated by the extraordinary shape of a block at a picture, tile or shape boundary.
  • a coding tree unit often has a different block size. For example, assume an HD picture of 1920x1080 luma samples and a CTU size of 128x128 luma samples. Then, the CTUs at the bottom of the picture only have a size of 128x56 luma samples. Here, while the CTUs are initially still considered to consist of 128x128 luma samples, an implicit splitting could be inferred.
  • a horizontal split with split ration 1/2 and a following horizontal split with split ratio 7/8 for the first subblock could be inferred, which results in a 128x56 block; the remaining blocks that only include samples outside the picture are not coded.
  • the binary decision tree for transmitting the split ratio could also be adapted on a picture or tile boundary. For example, splits that would introduce a block border outside the picture could be eliminated for the blocks at a boundary. This concept could also be used in connection with implicit splits.
  • the block is vertically (at right boundary) or horizontally (at bottom boundary) split, but for transmitting the split ratio, all splits that would introduce a block border outside the picture/tile region are eliminated from the corresponding binary decision tree (i.e., the corresponding binary decision in the tree used for signaling the split ratio are inferred to be equal to 0 or 1).
  • the high-level syntax includes syntax elements by which the encoder tells the decoder the actual configuration for the binary splitting tree.
  • the encoder complexity only allows to evaluate a subset of the splitting options that are supported by the syntax.
  • the encoder signals the decoder, which subset of the splitting options are used.
  • the high-ievei syntax elements are transmitted in one or more high-level syntax structures, such as the sequence parameter set (SPS: valid for all pictures inside a coded video sequence), the picture parameter set (PPS: valid for one or more pictures), the slice header (valid for a slice), etc.
  • the high-level syntax elements that restrict the available splitting option can include one or more of the following parameters:
  • a minimum block sizes e.g., specified by a minimum block width and a minimum block height, or specified by a minimum number of samples
  • a maximum partition tree depth following a first non-default split i.e., the tree depth after the first split with a split ration not equal to 34 is limited
  • a maximum block size for a non-default split i.e., splits with a ratio not equal to 1/2 are only supported if the block size is greater than or equal to a given size
  • a minimum block size for a non-default split i.e., splits with a ratio not equal to 1/2 are only supported if the block size is less than or equal to a given size
  • the parameters can be included in more than one high-level syntax structures. For example, global parameters specified in the SPS can be overridden by parameters specified in the PPS.
  • Fig. 5 depicts signaling diagrams for an exemplary split size of 64 (assuming no further restrictions).
  • a special algorithm for pruning the binary decision tree can be employed.
  • a particular embodiment of the invention uses a special algorithm to prune the signaling tree (an example for a full decision tree is shown in fig. 5).
  • the concept uses basically the same tree of binary decisions for signaling all split ratios, but before any binary decision (bin) is actually coded, the tree is pruned based on the availability of the split ratios. Or in other words, binary decisions that can be inferred to be equal to 0 or 1 based on the availability of the split ratios are not transmitted, but inferred at the decoder side.
  • the outputs of the signaling tree (leaf nodes of the tree) are marked according to their availability, where the availability can be derived according to any combination of the rules described above (including, minimum block size, block granularity, minimum and maximum aspect ratio, redundant parallel splits, redundant perpendicular splits, etc.).
  • Each node contains an information about the context model that is used to encode the specific bin using the CAB AC engine.
  • the reduction (or pruning) algorithm reduces the decision tree as follows. Initially, it is assumed that all nodes of the binary decision tree for signaling the split ratio are available. Then, the leaf nodes of the tree are marked as available or unavailable according to the availability of the corresponding split ratios (which is derived according to any rules, for example, the rules or a subset of the rules specified above). Afterwards, the decision tree is pruned from the bottom to the top according to the following two rules: (1) If a node has no available child node (i.e., both child nodes are marked as unavailable), the node is marked as unavailable (i.e., it is finally removed from the decision tree).
  • FIG 6 three examples of reduced signaling decision trees are shown (for the full decision tree of fig. 5).
  • fig. 6a an example of a reduced tree without possible outcomes ⁇ 3/8, 5/8 ⁇ is presented.
  • figures 6b the outcome ⁇ 1/4 ⁇ is not available.
  • figure 6c the ratios ⁇ 1/2, 3/8, 1/4 ⁇ are not available.
  • binary decision tree for coding the split ratio for different split sizes are presented.
  • the binary decisions are arithmetically coded using adaptive binary probability models.
  • the selection of the probability model could depend on any of the following (or a combination thereof):
  • the assignment of probability model sets (also referred to as context model sets) to binary decision nodes is not modified for reduced decision trees. That means, for each binary decision, the same context model set (among which a probability model is selected based on additional parameters) is used, regardless of whether the binary decision is coded as part of the full decision tree or any form of a reduced decision tree.
  • the depth of a tree following a non-default split is restricted.
  • a first non-default split would mean that scarce partitioning is done and the last few available depths will be used to fine-adjust the block edges.
  • the probability model is selected based on the current depth of the splitting tree and the sizes of the neighboring blocks, if a subdivided block has small neighboring blocks on one end and large neighboring block on the other, it is assumed that the smaller of the blocks resulting from current subdivision will be placed at the side neighboring with other small blocks.
  • the probability model for the binary decision labelled with "ctx6" is selected based on how much do the sizes of neighboring blocks vary (if they vary much, it is assumed that the 1/5 or 4/5 ratio could be more probable as they result in subdivisions with higher difference of areas).
  • a specific embodiment could define the context models as follows. A split area is shown in fig. 10.
  • the anchors for neighbor access are named Al, A2, Bl, and B2.
  • the area is assumed to a special representation of a specific node in a split tree with a specific depth d. On the path to this node, first n ⁇ d splits were default splits, thus simulating a quad-tree of depth q - For coding of decision
  • the neighboring blocks have a specific areas areaf/V-J and area(/V 2 ] ,
  • the context offset ctx 0 ff is defined as 1 if area(NjJ equals area( 2 ) . If areafNJ is greater than area(/V 2 ) the ctx o; -f is defined as 0. In all other cases it is defined as 2.
  • the selection of the binary probability models used for coding the binary decision is based on the assumption that a partition tree of a specific CTU in a picture is similar structured compared to a corresponding partition tree of a so called collocated CTU in an already decoded picture.
  • a collocated CTU might be defined as CTU that is obtained when accessing a CTU in a given reference picture using the coordinates derived from the current CTU's position and size, for example the CTU's center position.
  • From the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element of the collocated CU might be used to select probability models for signaling split decisions (in fig.4).
  • syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element from the obtained collocated CU might be used to select probability models for signaling split ratio decisions (in fig.5-fig.9).
  • syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element might be used to infer one or all binary split decisions (in fig.4) without additional signaling.
  • syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element from the obtained collocated CU might be used to infer one, any or all split ratio decisions (in fig.5-fig.9).
  • split decisions depend on the availability of splits.
  • a split can be unavailable for several state dependent reasons. For example, in the particular embodiment defined in (1) for all blocks with widths and heights smaller than 32 a vertical 3/8 split can be available for the sizes
  • split_mode xO, yO, cbSizeX, cbSizeY )
  • split ratio div4_flag[ xO ][ yO ] 1 ae(v) else
  • split decision variables such as SplitRatioDiv4Available, SplitRatioDiv8Available, lsSplitRatioDiv40ffsetCoded, lsSplitRatioDiv80ffsetCoded are subject to the availability constraints exemplified before and in particular the other high level syntax elements such as minimal block sizes and maximal tree depths, given in the description brought forward herein.
  • This Lagrangian approach can also be used for deciding between different split modes. For obtaining optimal decisions, it is important to proceed the encoding using a depth-first approach.
  • the best rate distortion cost for each of the subblocks has to be considered. This can be ensured by using a depth-first approach.
  • the cost for a certain split mode is calculated as follows. First the cost of the first subblock is determined. At this point, the best coding mode (in rate-distortion sense) for the first subblock including all possible split modes is determined. Given the best coding mode for the first subblock, the best coding mode for the second subblock is determined (again, potential splits have to be taken into account).
  • the rate- distortion cost / for a split mode is the sum of the rate-distortion costs for the subblocks. This concept can be implemented using a recursive function, similar to the following (simplified) pseudo-code: function rd_cost ( block )
  • min _cost distortion ( block ) + lambda * rate ( block ) for ( split_mode ) // loop o er all split modes
  • an encoder does not need to evaluate all coding options supported in the syntax. For decreasing the encoder complexity, it is typically beneficial to only test the most likely splitting modes and skip the evaluation of unlikely modes. Most notably, the maximum depth of a tree after the first non-default split is a very important parameter to balance the expected rd-performance and runtime. The maximum block size at which a non-default split is allowed can be used to restrict the testing of partitionings with large blocks, when much smaller blocks are more probable (e.g. for intra slices). Furthermore, the maximum aspect ratio tested in an encoder may be smaller than that supported by the syntax (correspondingly, the minimum aspect ratio tested may be larger than the minimum aspect ratio supported by the syntax).
  • heuristic rules that do not change signaling may be incorporated to speed up the split decision process. For instance, during the rd-search a complete set of splits along one direction may be excluded if the corresponding symmetric split gives no improvement compared to the symmetric split in perpendicular direction. This, in particular, implies that a block will not be further divided after the two symmetric splits have been tried and did not result in an rd-cost smaller than that for coding the block without any split. The more asymmetric splits are supported by the syntax, the more such heuristic rules speed-up the encoding process. Another constraint may be set on the aspect ratio of the resulting splitting scheme (if one implements it as encoder only optimization, this would have no impact on signaling).
  • the decoder 10 (cf. Fig. 14) is configured to partition the picture 12 of the data stream 14 into blocks 18.
  • a recursive bi-partitioning is performed. This partitioning is controlled using partition information.
  • a first split line direction of a first split line 16s is set.
  • a predetermined sub-block 16a here the top left quarter of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks CU1 and CU2.
  • These sub-blocks CU1 and CU2 form the succeeding split level 3, while the sub-block 16a is formed by split level 1 and 2, assuming that level 0 is assigned to block 16 / 18.
  • the setting of the split line 16s is performed in dependency on a second split line direction of a second split line 16s2 along which a grandfather sub-block of the preceding split level 1 of the picture block 16 is split into the predetermined sub-block and in the other sub-block.
  • the grandfather sub-block refers to a left half the picture block 16 / 18.
  • the grandfather sub-block can also be understood as being the entire picture block 16 or 18 itself, since the relationship to the preceding or succeeding split level (cf. Fig. 2 ) has to be taken into account.
  • Another embodiment according to a second aspect provides a decoder for decoding the picture 12 from the data stream 14 which is configured to perform the partitioning of the picture block 18 (cf. Fig. 1) of picture 12 in decoding blocks 16 by recursive bi-partitioning. This is controlled by use of a partition information in the data stream 14, such that a predetermined sub-block, e.g., 16a or another block corresponding to any node in Fig. 2 (i.e., block 18 itself or a fraction) is partitioned taking into account:
  • predetermined sub-block e.g., 16a
  • split line direction e.g., a horizontal or vertical split line direction
  • split line e.g., a horizontal or vertical split line direction
  • the decoder 10 performs the picture partitioning by context-adaptively entropy decoding of one or more syntax elements controlling the splitting.
  • a context of the data stream 14 is used. It should be noted that the context may, for example, depend on a size of the one or more neighboring coding blocks.
  • the decoder 10 may be configured to perform the partitioning in at least two different modes between which the decoder 10 can switch. These two modes differ from each other and may, for example, have the aim:
  • maximum partitioning tree depth maximum partitioning tree depth following a split of a current sub-block of a current picture block along a split line perpendicular to a split line of a parent block
  • maximum block size for a sub-block of a current picture for which non-symmetrical splits are allowed maximum/minimum aspect ratio of a child sub-block resulting from a split of a current sub- block of a current picture block, etc.
  • the decoder 10 may perform the splitting.
  • the decoder 10 is configured to reduce a base list (cf. reference numeral 30 of Figs. 5 and 6) of split ratios by removing split ratio according to one or more rules so as to obtain a reduced list 32 of split ratio.
  • the base list 30 corresponds to a binary tree 34 leaves 42, 37 of bridge are associated with respect to one of the split ratios of the base list 30.
  • the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leaves 42, 37 to main root node 44.
  • Each node 40, 38 of the binary tree 34 has child nodes which do belong to the reduced list 32. After that, an attaching, in place of each node of the binary tree 34 having merely one non-removed child node is performed, so that the non-removed child node is directly attached to the node of the binary three 34 which their respective intermediary node is a child of.
  • the left, e.g., the first, branches (exemplarily assigned “0" in Figs. 5 and 6) of the reduced binary tree 50 are associated with a first bin value, while the right (second) branches (exemplarily assigned "1" in Figs. 5 and 6) are associated with a second bin value.
  • Each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of a bin vaiue associated with the braches which lead, in reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 associated with the respective split ratio. After that, an entropy coding of a bin string corresponding to a sequence of one or more bins is performed.
  • the generalized binary splitting framework for partitioning blocks into coding units, prediction units, transform units, etc. may affect other parts of a video codec.
  • Another aspect is related to a coding of the last non-zero transform coefficient in a transform block.
  • the position of the last non-zero transform coefficient is indicated by transmitting the x-coordinate and the y-coordinate of the last non-zero transform coefficient.
  • the corresponding entropy codes were designed for blocks for which both the width and height represent integer powers of two.
  • Iast_sig_coeff_ _suffix FL cMax (1 « ( ( last_sig_coeff_y_prefix »
  • the binarization for the syntax elements last_sig_coeff_x_prefix, lctst_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix is modified as follows:
  • TR cMaxPrefixX floor( ( log2( TrafoSizeX ) * 2 ) - 0.5 ), last_sig_coeff_x_prefix
  • the binarization codes for TrafoSize equal to an integer power of 2 are not changed. Note that version 1 includes redundancies (unnecessary bins for certain codewordes), while the codeword tables for version 2 do not include redundant bins.
  • the new partition structure requires various new transforms among them Hadamard transform matrices for prediction residuals.
  • the Hadamard transform is used as a very simple approximation of a DCT.
  • the sum of absolute Hadamard coefficients is, for example, used as rate-distortion measure in the sub-sample motion search or the pre-selection of intra prediction modes.
  • the new luma block dimensions 96, 80, 48, 40, 24, 20, and 12 appear if the maximal CTU size is 128.
  • the corresponding Hadamard matrices are not all explicitly constructed. In fact it is sufficient to construct Hadamard matrices of size 20 and 12 using Paley's construction via finite fields. The other sizes are then constructed by Kronecker products since Kronecker products of Hadamard matrices are Hadamard matrices again. The construction of the other matrices via Kronecker products have the advantage that a full large sized Hadamard matrix never has to be constructed entirely.
  • the number and topology of neighbors of a particular block may vary. Coding parameters of neighboring block are, for example, used for deriving merge candidates, motion vector prediction candidates, or most probable intra prediction modes.
  • an adaption of the state-of-the-art strategy for selecting candidates among the neighboring blocks could led to an improved coding efficiency.
  • the state-of-the-art strategies often implicitly assume that blocks have a square shape. But with the generalized splitting concept, the block width can be much larger than the block height or vice versa.
  • the long block edge it can be preferable to consider more candidate block along the long block edge than along the short block edge.
  • This may include but is not limited to: Scanning for all neighbors along the edges of a block (e.g. to find an extremum or a mean of a measure derived from the neighboring blocks); defining additional neighbor anchor points (e.g. in the case of scanning for merge candidates, adding anchors in the middle of the left and upper edge of a block).
  • Fig. 16 shows an apparatus for predictively coding a video 110 composed of a sequence of pictures 120 into a data stream 140. Block-wise predictive coding is used to this end. Further, transform-based residual coding is exemplarily used.
  • the apparatus, or encoder, is indicated using reference sign 100.
  • Fig. 16 shows a corresponding decoder 200, i.e.
  • an apparatus 200 configured to predictively decode the video 110' composed of pictures 120' in picture blocks from the data stream 140, also here exemplarily using transform-based residual decoding, wherein the apostrophe has been used to indicate that the pictures 120' and video 110', respectively, as reconstructed by decoder 200 deviate from pictures 120 originally encoded by apparatus 100 in terms of coding loss introduced by a quantization of the prediction residual signal.
  • Fig. 16 and Fig. 17 exemplarily use transform based prediction residual coding, although embodiments of the present application are not restricted to this kind of prediction residual coding. This is true for other details described with respect to Fig. 16 and 17, too, as will be outlined hereinafter.
  • the encoder 100 is configured to subject the prediction residual signal to spatial-to-spectral transformation and to encode the prediction residual signal, thus obtained, into the data stream 140.
  • the decoder 200 is configured to decode the prediction residual signal from the data stream 14 and subject the prediction residual signal thus obtained to spectral-to-spatial transformation.
  • the encoder 100 may comprise a prediction residual signal former 220 which generates a prediction residual 240 so as to measure a deviation of a prediction signal 260 from the original signal, i.e. video 110 or a current picture 120.
  • the prediction residual signal former 220 may, for instance, be a subtractor which subtracts the prediction signal from the original signal, i.e. current picture 120.
  • the encoder 100 then further comprises a transformer 280 which subjects the prediction residual signal 240 to a spatial-to-spectral transformation to obtain a spectral-domain prediction residual signal 240' which is then subject to quantization by a quantizer 320, also comprised by encoder 100.
  • the thus quantized prediction residual signal 240" is coded into bitstream 140.
  • encoder 100 may optionally comprise an entropy coder 340 which entropy codes the prediction residual signal as transformed and quantized into data stream 140.
  • the prediction residual 260 is generated by a prediction stage 360 of encoder 100 on the basis of the prediction residual signal 240" decoded into, and decodable from, data stream 140.
  • the prediction stage 360 may internally, as is shown in Fig. 16, comprise a dequantizer 380 which dequantizes prediction residual signal 240" so as to gain spectral-domain prediction residual signal 240"', which corresponds to signal 240' except for quantization loss, followed by an inverse transformer 400 which subjects the latter prediction residual signal 240"' to an inverse transformation, i.e.
  • prediction residual signal 240" which corresponds to the original prediction residual signal 240 except for quantization loss.
  • a combiner 420 of the prediction stage 360 then recombines, such as by addition, the prediction signal 260 and the prediction residual signal 240"" so as to obtain a reconstructed signal 460, i.e. a reconstruction of the original signal 120.
  • Reconstructed signal 46 may correspond to signal 120'.
  • a prediction module 440 of prediction stage 360 then generates the prediction signal 260 on the basis of signal 460 by using, for instance, spatial prediction, i.e. intra prediction, and/or temporal prediction, i.e. inter prediction. Details in this regard are described in the following.
  • decoder 200 may be internally composed of components corresponding to, and interconnected in a manner corresponding to, prediction stage 360.
  • entropy decoder 500 of decoder 200 may entropy decode the quantized spectral-domain prediction residual signal 240" from the data stream, whereupon dequantizer 520, inverse transformer 540, combiner 560 and prediction module 580, interconnected and cooperating in the manner described above with respect to the modules of prediction stage 360, recover the reconstructed signal on the basis of prediction residual signal 240" so that, as shown in Fig. 17, the output of combiner 560 results in the reconstructed signal, namely the video 110'or a current picture 120' thereof.
  • the encoder 100 may set some coding parameters including, for instance, prediction modes, motion parameters and the like, according to some optimization scheme such as, for instance, in a manner optimizing some rate and distortion related criterion, i.e. coding cost, and/or using some rate control.
  • encoder 100 and decoder 200 and the corresponding modules 440, 580 respectively, support different prediction modes such as intra-coding modes and inter-coding modes which form a kind of set or pool of primitive prediction modes based on which the predictions of picture blocks are composed in a manner described in more detail below.
  • the granularity at which encoder and decoder switch between these prediction compositions may correspond to a subdivision of the pictures 120 and 120', respectively, into blocks. Note that some of these blocks may be blocks being solely intra-coded and some blocks may be blocks solely being inter-coded and, optionally, even further blocks may be blocks obtained using both intra-coding and inter-coding, but details are set-out hereinafter.
  • intra-coding mode a prediction signal for a block is obtained on the basis of a spatial, already coded/decoded neighborhood of the respective block.
  • intra-coding sub-modes may exist the selection among which, quasi, represents a kind of intra prediction parameter.
  • intra-coding sub-modes There may be directional or angular intra-coding sub-modes according to which the prediction signal for the respective block is filled by extrapolating the sample values of the neighborhood along a certain direction which is specific for the respective directional intra-coding sub-mode, into the respective block.
  • the intra-coding sub-modes may, for instance, also comprise one or more further sub-modes such as a DC coding mode, according to which the prediction signal for the respective block assigns a DC value to all samples within the respective block, and/or a planar intra-coding mode according to which the prediction signal of the respective block is approximated or determined to be a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of the respective block with deriving tilt and offset of the plane defined by the two-dimensional linear function on the basis of the neighboring samples.
  • DC coding mode a DC coding mode
  • planar intra-coding mode according to which the prediction signal of the respective block is approximated or determined to be a spatial distribution of sample values described by
  • a prediction signal for a block may be obtained, for instance, by temporally predicting the block inner.
  • motion vectors may be signaled within the data stream, the motion vectors indicating the spatial displacement of the portion of a previously coded picture of the video 110 at which the previously coded/decoded picture is sampled in order to obtain the prediction signal for the respective block.
  • data stream 140 may have encoded thereinto prediction related parameters for assigning to the blocks prediction modes, prediction parameters for the assigned prediction modes, such as motion parameters for inter- prediction modes, and, optionally, further parameters which control a composition of the final prediction signal for the blocks using the assigned prediction modes and prediction parameters as will be outlined in more detail below.
  • the data stream may comprise parameters controlling and signaling the subdivision of picture 120 and 120', respectively, into the blocks. The decoder 200 uses these parameters to subdivide the picture in the same manner as the encoder did, to assign the same prediction modes and parameters to the blocks, and to perform the same prediction to result in the same prediction signal.
  • Fig. 18 illustrates the relationship between the reconstructed signal, i.e. the reconstructed picture 120', on the one hand, and the combination of the prediction residual signal 240"" as signaled in the data stream, and the prediction signal 260, on the other hand.
  • the prediction signal 260 is illustrated in Fig. 18 as a subdivision of the picture area into blocks 800 of varying size, although this is merely an example.
  • the subdivision may be any subdivision, such as a regular subdivision of the picture area into rows and columns of blocks, or a multi-tree subdivision of picture 120 into leaf blocks of varying size, such as a quadtree subdivision or the like, wherein a mixture thereof is illustrated in Fig. 18 where the picture area is firstly subdivided into rows and columns of tree-root blocks which are then further subdivided in accordance with a recursive multi-tree subdivisioning to result into blocks 800.
  • the prediction residual signal 240"" in Fig. 18 is also illustrated as a subdivision of the picture area into blocks 840. These blocks might be called transform blocks in order to distinguish same from the coding blocks 800.
  • Fig. 18 illustrates that encoder 100 and decoder 200 may use two different subdivisions of picture 120 and picture 120', respectively, into blocks, namely one subdivisioning into coding blocks 800 and another subdivision into blocks 840. Both subdivisions might be the same, i.e. each block 80, may concurrently form a transform block 840 and vice versa, but Fig.
  • a subdivision into transform blocks 840 forms an extension of the subdivision into blocks 800 so that any border between two blocks 800 overlays a border between two blocks 840, or alternatively speaking each block 800 either coincides with one of the transform blocks 840 or coincides with a cluster of transform blocks 840.
  • the subdivisions may also be determined or selected independent from each other so that transform blocks 840 could alternatively cross block borders between blocks 800.
  • similar statements are thus true as those brought forward with respect to the subdivision into blocks 800, i.e.
  • the blocks 840 may be the result of a regular subdivision of picture area into blocks, arranged in rows and columns, the result of a recursive multi-tree subdivisioning of the picture area, or a combination thereof or any other sort of segmentation.
  • blocks 800 and 840 are not restricted to being quadratic, rectangular or any other shape.
  • the subdivision of a current picture 120 into blocks 800 at which the prediction signal is formed, and the subdivision of a current picture 120 into blocks 840 at which the prediction residual is coded may not the only subdivision used for coding/decoding. These subdivision from a granularity at which prediction signal determination and residua!
  • encoder and decoder may set certain coding parameters which might include some of the aforementioned parameters such as prediction parameters, prediction signal composition control signals and the like.
  • Fig. 18 illustrates that the combination of the prediction signal 260 and the prediction residual signal 240"" directly results in the reconstructed signal 120'.
  • more than one prediction signal 260 may be combined with the prediction residual signal 240"" to result into picture 120' in accordance with alternative embodiments such as prediction signals obtained from other views or from other coding layers which are coded/decoded in a separate prediction loop with separate DPB, for instance.
  • the transform blocks 840 shall have the following significance.
  • Transformer 280 and inverse transformer 540 perform their transformations in units of these transform blocks 840.
  • many codecs use some sort of DST or DCT for all transform blocks 840.
  • Some codecs allow for skipping the transformation so that, for some of the transform blocks 840, the prediction residual signal is coded in in the spatial domain directly.
  • encoder 100 and decoder 200 are configured in such a manner that they support several transforms.
  • the transforms supported by encoder 100 and decoder 200 could comprise: o DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform o DST- IV, where DST stands for Discrete Sine Transform o DCT- IV o DST-VII o Identity Transformation (IT)
  • transformer 280 would support all of the forward transform versions of these transforms, the decoder 200 or inverse transformer 540 would support the corresponding backward or inverse versions thereof: o Inverse DCT-II (or inverse DCT-III) o Inverse DST- IV o Inverse DCT-IV 0 Inverse DST-VII 0 Identity Transformation (IT)
  • the set of supported transforms may comprise merely one transform such as one spectral-to-spatial or spatial-to-spectral transform.
  • Figs. 16 - 18 have been presented as an example where the composed- prediction concept described further below may be implemented in order to form specific examples for video encoders and decoders according to the present application.
  • the video encoder and decoder of Figs. 16 and 18, respectively represent possible implementations of the video encoders and decoders described herein below.
  • the video encoder of Fig. 16 and the video decoder of Fig. when having the subsequently explained embodiments for composed prediction according to the present application built into the video encoder and decoder of Fig. 16 and 17, the video encoder of Fig. 16 and the video decoder of Fig.
  • FIG. 17 support, at least as one option, to process a block 800 in the manner outlined in more detail below, or even all blocks a current picture 120 is composed of.
  • the embodiments described hereinafter, inter alias refer to a video encoder which equais the encoder 100 of Fig. 16 which treats blocks 800 in the manner outlined in more detail below and the same applies with respect to the decoder of Fig. 18 which, thus, represents an example for a video decoder according to an embodiment where blocks 800 are treated in the manner outlined in more detail below.
  • Fig 16 and 17 are, however, only specific examples.
  • a video encoder according to embodiments of the present application may, however, perform block-based encoding using the concept outlined in more detail below and being different from the encoder of Fig.
  • video decoders may perform decoding from data stream 140 using the composed-prediction coding concept further outlined below, but may differ, for instance, from the decoder 200 of Fig. 17 in that sub-divides picture 120' into blocks in a manner different than described with respect to Fig. 180 and/or in that same does not derive the prediction residual from the data stream 140 in transform domain, but in spatial domain, for instance.
  • one subdivision such as the subdivision into transform blocks, may form an extension of the other subdivision as described above, or both subdivisions may form separate extensions of a common primary subdivision such as, for instance, the subdivision of the picture into an array of tree root blocks as described with respect to Fig. 18. And such possibilities also apply for other sub-picture granularities which will be mentioned below such as with respect to the definition of certain prediction parameters, prediction modes, contribution weights or the like. Different subdivisions may be used for different ones of these entities and same may be defined independent from each other, partially independent or as extensions from one another.
  • the following description concentrates on predicting blocks 800 at encoder and decoder.
  • the aim is to improve the coding efficiency of video using mu!ti-hypotheses with limited memory access bandwidth.
  • the average number of prediction hypotheses over a given area is limited.
  • the area could be, e.g., a fixed number of (neighboring) blocks, a slice, a picture, a group of pictures, or a whole video sequence.
  • this limit would be equal to three and the area would be a picture, it would be possible to have half of the picture using four prediction hypotheses and the other half using two prediction hypotheses. That is, as shown in Fig. 19, for the prediction block 800, i.e., inter predicted block within a predetermined portion of the video, four blocks 840, i.e., four prediction hypotheses are used.
  • the number, i.e., the average number, of prediction hypotheses for each inter predicted block may be inserted into the data stream information or on the number of prediction hypotheses for a currently processed inter predicted block dependent on a number of prediction hypotheses of previously processed inter predicted blocks within the predetermined portion and the predetermined criterion.
  • the information is coded into the data stream based on the number of prediction hypotheses of the previously processed inter predicted blocks within the predetermined portion and the predetermined criterion, determine an allowed number interval, and, using a binarization of the allowed number interval, code the information into the data stream.
  • a maximum of the allowed number interval is the lower, the larger the number of prediction hypotheses of the previously processed inter predicted blocks within the predetermined portion is, and the binarization of the allowed number interval has a mean codeword length which is the lower, the lower the maximum of the allowed number interval is.
  • the number of prediction hypotheses is limited depending on the block size or geometry. It is known that the relative prediction memory access overhead of each prediction hypothesis is higher for smaller blocks. Therefore, by allowing a smaller number of hypotheses for smaller blocks, and a larger number of hypotheses for bigger blocks, thus the overall worst-case memory access bandwidth can be kept constant. That is, the Number of hypotheses is determined by comparing an upper limit for the number N of hypotheses depending on the size or geometry of the predetermined inter predicted block. As an example, as shown in Fig.
  • the Number N determined by using the above formula indicates a maximum number of prediction hypotheses for the predetermined inter prediction blocks within the predetermined portion, i.e., the number an upper bound with respect to the number of hypotheses signalable for the predetermined inter predicted block.
  • the number of prediction hypotheses for each inter predicted block may be inserted into the data stream information, or based on the size or the geometry of the predetermined inter predicted block, determine an allowed number interval, and, using a binarization of the allowed number interval, code the information into the data stream.
  • the information regarding the number of the prediction hypotheses may indicate a maximum of the allowed number interval is the lower, the smaller the size of the predetermined inter predicted block is, and the binarization of the allowed number interval has a mean codeword length which is the lower, the lower the maximum of the allowed number interval is.
  • the information may indicate that the number of hypotheses is the larger, the larger the predetermined inter predicted block is.
  • different interpolation filters are used for different subsets of the prediction hypotheses. For example, for the first and second (uni/bi-predictive) prediction hypotheses, a longer interpolation filter than for the subsequent hypotheses could be used. By doing so, the relative prediction memory access overhead for the subsequent hypotheses would be reduced. In case that a longer interpolation filter is used for a smaller number of the prediction hypotheses, then, a shorter interpolation filter is used for a larger number of the prediction hypotheses. In other words, dependency between the number of the prediction hypotheses and the size of the interpolation filter is monotonic.
  • different motion vector accuracies are used for different subsets of the prediction hypotheses.
  • the first and second (uni/bi-predictive) prediction hypotheses could use quarter-pel motion vector accuracy, whereas the subsequent hypotheses use full-pel accuracy. Consequently, the relative prediction memory access overhead for the subsequent hypotheses would be equal to one per hypothesis.
  • the coarser the motion vector accuracy is used, i.e., the relationship between the number of the prediction hypotheses and the motion vector accuracy is monotonic.
  • aspects described in the context of an apparatus it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.
  • Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some one or more of the most important method steps may be executed by such an apparatus.
  • the inventive encoded signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
  • embodiments of the invention can be implemented in hardware or in software.
  • the implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
  • Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
  • embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer.
  • the program code may for example be stored on a machine readable carrier.
  • inventions comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
  • an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
  • a further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein.
  • the data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitionary.
  • a further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein.
  • the data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
  • a further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
  • a processing means for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
  • a further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
  • a further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver.
  • the receiver may, for example, be a computer, a mobile device, a memory device or the like.
  • the apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
  • a programmable logic device for example a field programmable gate array
  • a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein.
  • the methods are preferably performed by any hardware apparatus.

Abstract

A block-based decoder for decoding a picture from a data stream in units of coding is configured to partition a picture block of the picture into the coding blocks by recursive bi-partitioning with controlling the recursive bi-partitioning according to partition information in the data stream set a first split line direction of a first split line along which a predetermined sub-block of a predetermined split level of the picture is split by the recursive bi-partitioning in the pair of child sub-blocks of a succeeding split level dependent on a second split line direction of a second split line along which a grandfather sub-block of a preceding split level of the picture block is split into the predetermined sub-block and another sub-block.

Description

Apparatus and Method of coding of pictures
Embodiments of the present invention refer to a decoder and a method for decoding as well as to an encoder and the corresponding method for encoding pictures. The decoding and encoding is performed using partitioning.
According to a first aspect, a so-called bi-partitioning is applied to split a block into sub-blocks. According to a second aspect, a partitioning information is used to perform the bi-partitioning for sub- blocks. According to a third aspect, the partitioning of sub-blocks is performed based on syntax elements decoded by context-adaptively entropy coding. According to a fourth aspect, the partitioning is performed by an apparatus or method supporting at least two modes. According to a fifth aspect, the partitioning is performed based on a reduced list of split ratios, wherein this fifth aspect especially refers to the reduction process.
Background
In state-of-the-art video coding, such as the ITU-T H.265 | MPEG-H HEVC video coding standard [1], the pictures of a video sequence are coded in a certain order, which is referred to as coding order. The coding order of pictures can differ from the capture and display order.
For the actual coding, each video picture is partitioned into blocks. A block comprises the samples of a rectangular area of a particular color component. The entity of the blocks of all color components that correspond to the same rectangular picture area, together with the associated syntax, is often referred to as unit. Depending on the purpose of the block partitioning, in ITU-T H.265 | MPEG-H HEVC, it is differentiated between coding tree units (CTUs), coding units (CUs), prediction units (PUs), and transform units (TUs). The associated sample blocks are referred to as coding tree blocks (CTBs), coding blocks (CBs), prediction blocks (PBs), and transform blocks (TBs), respectively.
Typically, a video picture is initially partitioned into fixed sized units (i.e., aligned fixed sized blocks for all color components). In ITU-T H.265 | MPEG-H HEVC, these units are referred to as coding tree units (CTUs). Their size (in luma samples) is transmitted in the sequence parameter set (SPS), which contains high-level syntax elements that are valid for an entire coding video sequence (which consists of an instantaneous decoding refresh (IDR) picture and all following pictures up to (but excluding) the next IDR picture). In ITU-T H.265 j MPEG-H HEVC, the CTU size can be chosen between 64x64, 32x32, and 16x16 luma samples. Note that both the width and height of a CTU represent an integer power of two. The luma and chroma blocks of samples that are contained in a CTU are called coding tree blocks (CTBs). For the purpose of coding mode selection, prediction, and transform coding of the prediction residue, the fixed sized CTUs can be adaptively split into smaller units and blocks.
A picture can be comprised of one or multiple slices. A slice represents a collection of CTUs. A slice is associated with a slice type (e.g., I, P, or B slice) which determines the set of supported coding modes. Moreover, several types of prediction such as motion vector prediction and intra-picture prediction are only supported between blocks inside a slice.
The partitioning into coding unit and transform units can be performed in a plurality of ways. For example, within the prior art the following partitioning approaches are described.
In the state-of-the-art video coding standard ITU-T H.265 | MPEG-H HEVC [1], the partitioning into coding units and transform units / transform blocks follows a simple quadtree (QT) concept. A square block can be split into four square blocks of the same size, the resulting blocks can be further split into four square blocks of the same size, etc. For prediction units, the standard also supports the splitting of a square block into two non-square blocks (either of the same size or of different sizes). However, the resulting non-square blocks cannot be further split. A similar one-level splitting of a square blocks into two non-square blocks was already supported in ITU-T H.264 | MPEG-4 AVC [2],
While the quadtree splitting is very simple, it has the disadvantage that often an object or motion boundary can only be reasonably approximated by splitting a large block into many smaller blocks. This potentially increases the bit rate for signaling the prediction parameters (such as motion parameters) as well as the bit rate for the transform coding of the prediction error signals. With the goal of increasing the coding efficiency, the Joint Exploration Test Model [3] specifies a combined quadtree/binary tree (QTBT) approach. In this approach, prediction units (PUs) and transform units (TUs) are always aligned with coding units (CUs); hence, there is basically only one block type. A CTU is first split using the conventional quadtree approach. Then, the quadtree leaf nodes can be further partitioned by a binary tree (BT) structure. For the binary splitting, two splitting types are supported: A horizontal split, which horizontally splits a NxM block into two Nx(M/2) blocks, and a vertical split, which vertically splits a NxN block into two (N/2)xM blocks. The binary splitting can be continued until a minimum block width/block height is reached or a maximum number of (binary) splits were executed. The resulting blocks are used for coding mode signaling, intra-picture prediction, inter-picture prediction, and transform coding. A further extension of the QTBT concept is suggested in [4], where two further splitting modes were introduced for the binary tree part: A horizontal triple split and a vertical triple split. In the horizontal triple split, an NxM block is split into three blocks: an Nx(M/4), an Nx( /2), and an Nx(M/4) block (from top to bottom). The vertical triple split, vertically partitions an NxM block into an (N/4)xM, an (N/2)xM, and an (N/4)xM block (from left to right / from first to second).
Another enhancement of QTBT was proposed in [5]. In this proposal, asymmetric binary splits that split an NxM block into two subblocks of size Nx(M/4) and Nx(3M/4), as well as (N/4)xM and (3N/4)xM, were introduced in addition to the symmetric binary splits.
Starting from the prior art, it is an object to improve the partitioning with regard to efficiency especially in view of the subsequent coding.
This objective is solved by the subject-matter of the independent claims. Here, five aspects having in common to improve the efficiency by use of a dynamic approach will be discussed.
First Aspect
In accordance with a first aspect of the present application, picture partitioning into blocks is rendered more efficient in terms of signaling overhead from encoder to decoder, by using multi-level binary split partitioning and signaling this multi-level split partitioning in a manner so that a split direction of a binary split of a certain split level for a certain current block is set in a manner dependent on the split direction used for the parent block of the preceding split level the current block has been derived from by a binary split of the preceding split level. The setting may be dependent on both, the partitioning information and the parent block's split direction. In other words, the partition information may signal the split direction relative to the parent block's split direction which, in turn, might also have been signaled by the partitioning information - relative to the split direction of the grandfather block or absolutely (independent therefrom).
Embodiments of this aspect provide a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, set a first split line direction of a first split line (e.g. line between CUl and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term "grandfather sub-biock shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub-block (lower left quarter).
According to an embodiment the block-based decoder may be configured to support a plurality of coding modes (e.g. inter (e.g. temporal) or intra (e.g. spatial) prediction) and derive from the data stream, in units of the coding blocks, a coding mode to be used for decoding the picture from the data stream (cp. mode selector in Fig. 15).
According to an embodiment the block-based decoder may be configured to support a plurality of coding modes, wherein each coding mode has associated therewith a coding-mode-specific set of one or more coding parameters (e.g. motion vector and, optionally, reference picture index for inter prediction and intra prediction mode, e.g. directional extrapolation, DC and/or the like, for intra prediction) which control a decoding of the picture using the respective coding mode, and the block- based decoder is configured to derive from the data stream, in units of the coding blocks, the coding mode specific set of one or more coding parameters for decoding the picture from the data stream by deriving from the data stream for each decoding unit the coding-mode-specific set of one or more coding parameters associated with the coding mode signaled to be used for the respective coding block 16 in the data stream (cp. predictors in Fig. 15).
According to an embodiment the block-based decoder may be a predictive decoder and configured to derive from the data stream a prediction residual of the picture in a spectral domain (cp. transform blocks in Fig. 15) in form of spectral transforms representing a piece-wise spectral transform of the prediction residual in units of the coding blocks 16 (e.g. for each coding block 16 the prediction residual would be spectrally decomposed separately at encoder side so as to obtain one transform, e.g. DCT, for one coding unit, and the inverse transform would be used to correct the prediction signal at the area corresponding to the coding block).
According to an embodiment the block-based decoder may be configured to pre-partition the picture 12 into an array of tree root blocks 18 and perform the partitioning of the picture block 18 with respect to each of the array of tree root blocks 18 (as exemplarily depicted in Fig. 14), or to pre-partition the picture 12 into an array of tree root blocks 18, subject, depending on the partition information, the tree root blocks to a separate partitioning (such as quad-partitioning separately signallable for each tree root block 18, possibly but not exclusively recursively) so as to subdivide the array of the tree root blocks into pre-partition leaf blocks (of possibly different size within the same tree root block 18) and perform the partitioning of the picture block with respect to each of the pre-partition leaf blocks (this alternative is not depicted in Fig. 14; here, each block 18 in Fig. 14 could possibly separately p re- subdivided into pre-partitioning leaf blocks which would then from blocks 18 subject to the recursive bi-partitioning; as a side note it should be noted that even the coding blocks 16 could be derived from the leaf blocks of the recursive bi-partitioning by some other type of partitioning).
According to an embodiment the block-based decoder may be configured to set the first split line direction depending on the second split line direction and the partition information (e.g. perpend_split_flag or parallel_split_flag) by modifying (e.g. selecting between adopting the same, or taking the perpendicular direction) the first split line direction according to the partition information to obtain a modified split line direction and setting the second split line direction to be equal to the modified split line direction.
According to an embodiment the block-based decoder may be configured to control the recursive bi- partitioning depending on a binary decision tree (e.g. 20 in Fig. 13; here each node of the tree 20 includes exemplarily more than just a decision of split or no-split, but also indicates split line direction plus split ratio) signaled by the partition information (e.g. perpend_split_flag or parallei_split_flag, and split_ratio_... flags) which indicates (not necessarily explicitly for each node separately, because some decision may be signaled by general rules such as laid out in the adaptation sets..) a split or no-split (or more than that as just said) for the picture block, all intermediate sub-blocks of the parent block into which the parent blocks is split by the recursive bi-partitioning and all leaf blocks not split by the recursive bi-partitioning.
According to an embodiment the block-based decoder may be configured to control the recursive bi- partitioning for each sub-block of the picture block belonging to a first predetermined set of split levels (e.g. maybe all split levels, or maybe just for a subset thereof) depending on the partition information (e.g. by split_ratio_...) with respect to a location of a split line along which the respective sub-block is split by the recursive bi-partitioning, transversely to a split line direction of the split line (... in other words, with respect to the split ratio measured transversely to the split line direction).
According to an embodiment the block-based decoder may be configured to control the recursive bi- partitioning for each sub-block of the picture block belonging to a first predetermined set of split levels (e.g. maybe all split levels, or maybe just for a subset thereof) depending on the partition information (e.g. perpend_split_flag or parallel_split_flag, and split_ratio_... flags) with respect to a split line direction of a split line along which the respective sub-block is split by the recursive bi-partitioning depending on the partition information and a split line direction of a split line along which a parent block of the respective intermediate block is split.
According to an embodiment of the block-based decoder the second split line direction is horizontal or vertical, and the block-based decoder is configured to set the first split line direction depending on the partition information to be perpendicular or parallel to the second split line direction.
According to an embodiment the block-based decoder may configured to, in partitioning the picture block, depending on the partition information, decide to split the picture block into a pair of first-split- level sub-blocks, or leave the picture block unsplit, and if the picture block of the picture is split into the pair of first-split-level sub-blocks, depending on the partition information, split a first first-split- level sub-block of the pair of first-split-level sub-blocks into a pair of second-split-level sub-blocks, or leave the first first-split-level sub-block unsplit, and to perform the splitting of the picture block along a third split line having a third split line direction, and setting a fourth split line direction of a fourth split line along which the first first-split-level sub-block is split depending on the third split iine direction. According to an embodiment the block-based decoder may be configured to, if the picture block of the picture is split into the pair of first-split-level sub-blocks, set the third split direction depending on the partition information (i.e. for the first split the direction is signallable), to derive from the data stream a first split flag obtained by the partition information, and if the first split flag has a first flag state, to split the first first-split-level sub-block into the pair of second-split-level sub-blocks along the second split line with setting the second split direction to be perpendicular to the first split direction, and if the first split flag has a second flag state, leaving the first first-split-level sub-block unsplit (e.g. for the splits of subsequent levels, the direction is merely perpendicular to the previous split level parent block). Here, the block-based decoder may, if the picture block of the picture is split into the pair of first-split-level sub-blocks, derive from the data stream a first split flag (e.g. perpend_split_flag) contained by the partition information, and if the first split flag has a first flag state, split the first first- split-level sub-block into the pair of second-split-level sub-blocks along the fourth split line with setting the fourth split direction to be perpendicular to the third split direction, and if the first split flag has a second flag state, derive from the data stream a second split flag (e.g. parallel_split_flag) contained by the partition information, and if the second split flag has a first flag state, split the first first-split-level sub-block into the pair of second-split-level sub-blocks along the fourth split line with setting the fourth split direction to be parallel to the third split direction, and if the second split flag has a second flag state, leaving the first first-split-level sub-block unsplit.
According to an embodiment the block-based decoder may be configured to, in partitioning the picture block, depending on the partition information, decide to split the grandfather sub-block into a pair of sub-blocks including the predetermined sub-block, or to leave the grandfather sub-block unsplit, and if the grandfather sub-block is split into the pair of sub-blocks, depending on the partition information, to split the predetermined sub-block of the pair of sub-blocks into a pair of child sub-blocks, or to leave the predetermined sub-block unsplit, and to perform the splitting of the grandfather sub-block along the second split line having the second split line direction, and setting the first split line direction of the first split line along which the predetermined sub-block is split depending on the second split line direction.
According to an embodiment the block-based decoder may be configured to derive from the data stream a first split flag (e.g. perpend_split_flag) contained by the partition information, and if the first split flag has a first flag state, split the predetermined sub-block (upper left quarter of Fig. 1) into the pair of child sub-blocks (CU1 and CU2) along the first split line with setting the first split line direction to be perpendicular to the second split line direction (separating upper left and lower left quarters in Fig 18), and if the first split flag has a second flag state, to derive from the data stream a second split flag (e.g. parallel_split_flag) contained by the partition information, and if the second split flag has a first flag state, split the predetermined sub-block into the pair of child sub-blocks (CUl and CU2) along the first split line with setting the first split line direction to be parallel to the second split line direction, and if the second split flag has a second flag state, leaving the predetermined sub-block unsplit (e.g. so as to become one of the coding units). Here, the block-based decoder may derive from the data stream a third split flag (e.g. perpend_spiit_flag) contained by the partition information, and if the third split flag has the first flag state, split the other sub-block (lower left quarter of Fig. 1) of the pair of sub- blocks into a further pair of child sub-blocks along a fifth split line (not shown in Fig. 1) with setting a fifth split line direction of the fifth split line to be perpendicular to the second split line direction, and if the third split flag has the second flag state, derive from the data stream a fourth split flag (e.g. parallel_split_flag) contained by the partition information, and if the fourth split flag has the first flag state, split the other sub-block into the further pair of child sub-blocks along the fifth split line with setting the fifth split line direction to be parallel to the second split line direction, and if the second split flag has the second flag state, leaving the other sub-block unsplit.
Alternatively or additionally the block-based decoder may be configured to, if the predetermined sub- block is split into the pair of child sub-blocks, derive from the data stream a sixth split flag (e.g. perpend_split_flag) contained by the partition information, and if the sixth split flag has the first flag state, split a first child sub-block (e.g. CUl) of the pair of child sub-blocks into a pair of grandchild sub- blocks (not depicted in Fig. 1) along a seventh split line with setting a seventh split line direction of the seventh split line to be perpendicular to the first split line direction, and if the sixth split flag has the second flag state, derive from the data stream a seventh split flag (e.g. parallel_split_flag) contained by the partition information, and if the seventh split flag has the first flag state, split the first child sub- block into the pair of grandchild sub-blocks along the seventh split line with setting the seventh split line direction to be parallel to the first split line direction, and if the seventh split flag has the second flag state, leaving the first child sub-block unsplit.
Alternatively or additionally the block-based decoder may be configured to, if the predetermined sub- block is split into the pair of child sub-blocks (perpendicularly or in parallel to second split line direction), derive a split ratio (split_ratio_...) from the partition information, indicating at which ratio the predetermined sub-block's width perpendicular to the first split line direction is split. According to an embodiment, the block-based decoder may support a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block along the first split line being perpendicular the second split line direction and be configured to exclude supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, and to infer that the first split flag has the second flag state and skip its derivation if a cardinality of the reduced set is zero (differently speaking, reduced set A is empty or, differently speaking, all members of set A are not available).
According to an embodiment, the block-based decoder may support a further set of supported split ratios for splitting the predetermined sub-block along the first split line being parallel the second split line direction and be configured to exclude supported split ratios from the further set of supported split ratios according to one or more rules to obtain a further reduced set of supported split ratios, and to infer that the second split flag has the second flag state and skip its derivation if a cardinality of the further reduced set is zero.
Here, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line. Alternatively or additionally the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the width into two child cub-blocks' widths not being, (measured) in samples, an integer multiple of a predetermined integer (which may be 4, 8 or any other). Alternatively or additionally the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is too small to fully enclose (differently speaking not inscribable without crossing the child sub-block's borders, whereas loose inscription would be allowed) at least one of a set of at least one predetermined minimum size blocks (e.g. for example, two such as 8x4 and 4x8). Alternatively or additionally, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is of an aspect ratio (e.g. horizontal width to vertical width, shorter to longer width, vertical to horizontal width) outside an admissible aspect ratio range (e.g. aspect ratio are excluded which themselves or its reciprocal value exceeds a certain threshold). Alternatively or additionally, the one of the one or more rules may excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi- partitioning the predetermined sub-block belongs to (in other words, set A may be pre-reduced according to split-level of current sub-block). Alternatively or additionally, the one of the one or more rules excludes supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks (e.g. block corresponding to node A in Fig. 7a and 7b and 7c) of the picture block from which the predetermined sub-block (e.g. block corresponding to node B in Fig. 7a and 7b and block corresponding to node C in Fig. 7c) is obtained by the recursive bi- partitioning by splitting the one or more further sub-blocks along the further split line and/or an even further split direction and an even further spiit ratio of a further split line of one or more even further sub-blocks (e.g. block corresponding to node B in Fig. 7c) of the picture block obtained by the recursive bi-partitioning from any of one or more further sub-blocks from which the predetermined sub-block is obtained by the recursive bi-partitioning, too.
Another embodiment provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14,
setting a first split line direction of a first split line (e.g. line between CU1 and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term "grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub- block (lower left quarter). This method may be computer-implemented. Thus, an embodiment provides a respective computer program.
Another embodiment provides a block-based encoder for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling (e.g. selecting the partition information in a manner taking rate/distortion optimization into account) the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, to set a first split line direction of a first split line (e.g. line between CU1 and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term "grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub-block (lower left quarter).
A further embodiment provides the respective method for encoding a picture 12 into a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling (e.g. selecting the partition information in a manner taking rate/distortion optimization into account) the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14,
setting a first split line direction of a first split line (e.g. line between CU1 and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term "grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub- block (lower left quarter). This method may be computer-implemented as well.
Second Aspect
In accordance with a second aspect of the present application, picture partitioning into blocks is rendered more efficient by allowing for an election out of a set of supported split ratios. The supported set may be reduced to a reduced set according to one or more rules in order to remove supported split ratios not being allowed or reasonable according to thoughts, thereby reducing the amount of partitioning information necessary.
Embodiments of this aspect 2 provide a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, which is configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, wherein the controlling the recursive bi- partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit,
a split line direction (e.g. horizontal or vertical) of a split line at which the predetermined sub- block of the picture block is to be split by the recursive bi-partitioning, and/or
a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the split line, is crossed by the split line; wherein the block-based decoder supports a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, wherein the block-based decoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
According to an embodiment, the decoder may be configured to reduce a fraction of the partition information, used for controlling the recursive bi-partitioning with respect to the predetermined sub- block of the picture biock, depending on a cardinality of the reduced set (e.g. in terms of number of syntax elements contained by, i.e. read from, the partition information for the respective sub-block, or in terms of mean number of bits in bitstream domain such as after entropy coding; see also next paragraph for examples). According to an embodiment, the decoder may be configured to skip, in parsing the fraction of the partition information, a flag (e.g. perpend_split_flag or parallel_split_fiag or ver_split_flag or hor_split_flag) indicating whether the predetermined sub-block is to be split or to be left unsplit, or a flag (e.g. perpend_split_flag or parailel_split_flag or ver_split_flag or hor_split_flag) indicating the split direction of the split line if the reduced set is empty, and/or to skip, in parsing the fraction of the partition information, an index (e.g. a set of flags such as split_ratio_...) indicating the split ratio of the split line if the cardinality of the reduced set is one, and/or to change, in entropy decoding the index, a domain of possible values of the index to refer to the reduced set exclusively, or spend shorter codeword lengths for supported split ratios of the reduced set compared to the set of supported split ratios.
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction (e.g. 128 in case of block 18 of Fig. 1 with the width being measured vertically or 24 in case of the block corresponding to node F which is split CU 3 and CU 4 with the width being measured horizontally).
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths not being, in samples, an integer multiple of a predetermined integer (cp. above).
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths being in samples, an integer multiple to each other.
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub- block into two child sub-blocks of which at least one is too small to fully enclose at least one of a set of at least one predetermined minimum size blocks (cp. above). According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub- block into two child sub-blocks of which at least one exceeds a predetermined aspect ratio (cp. above).
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi-partitioning the predetermined sub-block belongs to (cp. above).
According to an embodiment, the one of the one or more rules may exclude supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks of the picture block from which the predetermined sub-block is obtained by the recursive bi-partitioning by splitting the one or more further sub-blocks along the further split line (cp. above).
According to an embodiment, the decoder may be configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios by restricting the supported split ratios signallable by the partition information to the reduced set, and one of the one or more rules excludes supported spiit ratios as to reduce a number of redundant settings of the partition information (i.e. the number of setting leading to the same partitioning of the picture block like the ones depicted in Fig. 13 for instance).
According to an embodiment, the set of supported split ratios may a set of irreducible fractions
A = AI A'Z X A2' 2 A' AY Qni UN2} ill wherein Vfc, akl + ak2 = bk so that each pair of split ratios kl/bk and ak2/bkl with ak2 = bk - akl represents complementary non-symmetric splits and wherein, if bk = bj for k≠ j, akl≠ aj1 and akl≠ dj2 l and wherein aeach supported split ratio indicates a ratio of a width of one of a left and right child sub-block resulting from splitting the predetermined sub-block along a split line having the predetermined split direction at the split ratio relative to (e.g. divided by) the width of the predetermined sub-block, both measured perpendicular to the split direction, if the predetermined split direction is vertical, and one of a upper and lower child sub-block resulting from splitting the predetermined sub-block along a split line having the predetermined split direction at the split ratio relative to the width of the predetermined sub-block, both measured perpendicular to the split direction, if the predetermined split direction is horizontal.
According to an embodiment, the one of the one or more rules may exclude, if the predetermined split direction is parallel to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and if the predetermined sub-block has a width s0 times the parent sub-block's width, with s0 being the split ratio of the parent block (e.g. the predetermined sub-block is the one which the nominator relates to), supported split ratios s1 for which there are a split ratio s of the other block the parent block (e.g. the sub-block which is actually of width (l-s0) times the parent sub-block's width) is split into and a split ratio s'0 for the parent sub-block in the set of supported split ratios (so that the predetermined sub-block would be of width s'0 times the parent sub-block's width and the other sub-block would be of width (l-s'0) times the parent sub-block's width), for which s'0 = s0Si and 1 - s0 = (1 - -»Ίχΐ - s'0), and/or if the predetermined split direction is parallel to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and if the predetermined sub-block has a width 1 - s'0 times the parent sub-block's width, with s'0 being the split ratio of the parent block, supported split ratios s for which there are a split ratio s1 of the other block the parent block is split into and a split ratio s0 for the parent sub-block in the set of supported split ratios, for which s'0 = s0s1 and 1 - s0 = (1 - s'-J fl - s'0) .
According to an embodiment, the one of one or more rules excludes a supported split ratio, if the predetermined split direction is perpendicular to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and parallel to the other sub-block the parent sub-block is split into, with s0 being the split ratio of the other block, namely one sl for which sl = s0. According to an embodiment, the decoder according to this aspect can additionally perform the partitioning according to aspect one, i.e. partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, setting a first split line direction of a first split line (e.g. line between CU1 and CU2 in top left quarter of Fig. 1) along which a predetermined sub-block (top-left quarter in Fig. 1) of a predetermined split level (level 2 with level 0 assigned to block 16) of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1 and CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line (line separating upper left and lower left quarter of Fig. 1) along which a grandfather sub-block (left hand half of Fig. 1; note that the term "grandfather sub-block shall be understood as being broad enough to also cover the picture block 18 itself) of a preceding split level (level 1) of the picture block 16 is split into the predetermined sub-block (upper left quarter) and another sub- block (lower left quarter).
An embodiment provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction (e.g. horizontal or vertical) of a split line at which the predetermined sub- block of the picture block is to be split by the recursive bi-partitioning, and/or a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the split line, is crossed by the split line; supporting a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios,
controlling the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
According to an embodiment, this method may be performed using a computer or CPU. Thus an embodiment provides a corresponding computer program.
An embodiment provides a block-based encoder for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partition a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi-partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction (e.g. horizontal or vertical) of a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the split line, is crossed by the split line. Here, the block-based encoder supports a set (e.g. set A) of supported split ratios for splitting the predetermined sub-biock and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios. Further the block- based encoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
This block-based encoder may be configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios in a manner so that the partition information in the data stream depends on the reduced set of supported split ratios. Another embodiment provides a method for encoding a picture 12 into a data stream 14 in units of coding blocks 16, configured to partitioning a picture block 18 of the picture 12 into the coding blocks 16 by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream 14, wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block (e.g. any of the blocks in Fig. 1 corresponding to any node in Fig. 2, thus including block 18 itself, but also fraction thereof obtained by splits) of the picture block 18 in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction (e.g. horizontal or vertical) of a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the split line, is crossed by the split line;
supporting a set (e.g. set A) of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios,
controlling the bi-partitioning with respect to the predetermined sub-block of the picture block depending on the reduced set of supported split ratios.
According to an embodiment, this method may be performed using a computer or CPU. Thus an embodiment provides a corresponding computer program.
Note that some "exclusion rules" might be done on the side of the encoder which are not checked or emulated on the side of the decoder as long as the partition information based control of the bi- partitioning remains the same, uses the same set of exclusion rules.
Third Aspect
In accordance with a third aspect of the present application, picture partitioning into blocks - may it be recursive bi-partitioning or any other recursive multi-partitioning - is rendered more efficient by context-adaptively entropy decoding one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size of one or more neighboring coding blocks into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
An embodiments of this aspect 3 provides a block-based decoder 10 for decoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream, and to context- adaptively entropy decode from the partition information one or more syntax elements (e.g. split_ratio_...) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
According to an embodiment the block-based decoder may be configured to pre-partition the picture into an array of picture blocks, and wherein the coding order traverses the picture blocks in a raster scan order.
According to an embodiment, within each picture block, the coding order follows a depth-first or breadth first traversal order.
According to an embodiment, wherein the one or more syntax elements control the recursive bi- partitioning with respect to a predetermined sub-block in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split direction of a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the width, is crossed by the split line.
According to an embodiment, the one of the one or more syntax elements controls the recursive bi- partitioning with respect to a predetermined sub-block in terms of a split ratio at which a width of the predetermined sub-block of the picture block, perpendicular to the width, is crossed by a split line at which the predetermined sub-block of the picture block is to be split by the recursive bi-partitioning and wherein the context for the one syntax element depends on the size of neighboring coding blocks into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
According to an embodiment, the decoder may additionally comprise a decoder according to aspect 1 and/or aspect 2.
Another embodiments provides a method for decoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream,
context-adaptively entropy decoding from the partition information one or more syntax elements (e.g. split_ratio_...) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
This method may be performed using a computer program having a program code for performing it.
Another embodiments provides a block-based encoder for encoding a picture 12 from a data stream 14 in units of coding blocks 16, configured to partition one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and to context-adaptively entropy encode into the partition information one or more syntax elements (e.g. split_ratio_...) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block. Another embodiments provides a corresponding method for encoding a picture 12 from a data stream 14 in units of coding blocks 16, comprising: partitioning one or more picture blocks 18 of the picture 12 into the coding blocks 16 along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and to context-adaptively entropy encoding into the partition information one or more syntax elements (e.g. split_ratio_...) controlling a splitting of a predetermined sub-block of a predetermined picture block using a context which depends on a size (cp. "area") of one or more neighboring coding blocks (e.g. Al, A2, Bl, and B2) into which the picture is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
According to an embodiment, this method may be performed using a computer or CPU. Thus an embodiment provides a corresponding computer program.
Fourth Aspect
In accordance with a fourth aspect of the present application, picture partitioning into blocks - may it be recursive bi-partitioning or any other recursive multi-partitioning - is rendered more efficient by supporting at least two modes between which a switchable is feasible, and which differ in terms of degree of freedom of performing the partitioning. Profile and levels may be associated with different modes which, in turn, may be defined by the above-mentioned "adaptation sets", "adaptation sets may be selected in units of whole videos, picture sequences, pictures, slices, or even in units of individual picture blocks. The (or some) adaptation sets may be "learned" by collecting big data, and distributed to the decoders and encoders.
An embodiment according to this aspect 4 provides a block-based decoder for decoding a picture from a data stream in units of coding blocks, configured to partition one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream. The block-based decoder supports at least two modes between which the block-based decoder is switchable, and which differ in terms of degree of freedom of performing the partitioning According to an embodiment, the block-based decoder is configured such that the at least two modes differ in one or more of the following: a minimum block size which has to fit into each coding block, a maximum partition tree depth, a maximum partition tree depth following a split of a current sub-block of a current picture block along a split line perpendicular to a split line of a parent block, the current sub-subblock is child of, a maximum block size for sub-blocks of a current picture for which non-symmetric splits are allowed, a maximum aspect ratio for child sub-blocks resulting from a split of a current sub-block of a current picture block, a minimum aspect ratio for child sub-blocks resulting from a split of a current sub-block of a current picture block, preset splits of a current picture block (e.g. those extending beyond a certain picture boundary) to from an onset for the recursive bi-partitioning according to the partition information, a set (e.g. set A) of supported split ratios for splitting a current sub-block of a current picture block; one or more rules for excluding, for a split of a current sub-block along a split line having a predetermined split direction, supported split ratios from the set of supported split ratios.
According to an embodiment, the block-based decoder may be configured to switch between the at least two modes according to one or more of signaling in the data stream, a history of modes used so far, (e.g. forming a statistics of used modes during decoding) a spatial predictor, (e.g. coding modes, prediction parameters and/or partition information used for neighboring coding/prediction blocks) a degree of extension of a current picture block beyond an outer or internal picture boundary. According to an embodiment, the block-based decoder may be configured to switch between the at least two modes in units of a picture sequence, tree-root blocks of a picture, picture blocks (which might be tree-root blocks).
According to embodiments the decoder of this aspect 4 may additionally comprise a decoder according to aspect 1,2 and/or 3.
Another embodiment provides a method for decoding a picture from a data stream in units of coding blocks, comprising: partitioning one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream, and supporting at least two modes or switching between at least two modes (which differ in terms of degree of freedom of performing the partitioning).
According to an embodiment, this method may be performed using a computer or CPU. Thus, an embodiment provides a corresponding computer program.
Another embodiment provides Block-based encoder for encoding a picture from a data stream in units of coding blocks, configured to partition one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, wherein the block-based encoder supports at least two modes between which the block-based encoder is switchable, and which differ in terms of degree of freedom of performing the partitioning.
Another embodiment provides Method for encoding a picture from a data stream in units of coding blocks, comprising: partitioning one or more picture blocks of the picture into the coding blocks along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream, and supporting at least two modes which differ in terms of degree of freedom of performing the partitioning. According to an embodiment, this method may be performed using a computer or CPU.
Fifth Aspect
In accordance with a fifth aspect of the present application, the coding of a split ratio is rendered more effective by using a set of split ratios including, for instance, equal splitting and pairs of asymmetric splits (of mutually reciprocal ratios), reducing this set and using a correspondingly reduced (or pruned) binary tree as binarization scheme for binarizing /and debinarizing) an index into the reduced list.
An embodiment of aspect 5 provides a decoder (e.g. a module possibly within the extractor of Fig. 15) for decoding an index pointing to a split ratio from a data stream, configured to reduce a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42, 37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leafs 42, 37 to main root node 44, each node 40, 38 of the binary tree 34 the child nodes of which do not belong to the reduced list 32, and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of, wherein left (first) branches (exemplarily assigned "0" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a first bin value, and right (second) branches (exemplarily assigned "1" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio, entropy decode a bin string (e.g. formed by split_ratio_... flags) corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main root node 52 of the reduced binary tree 50, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins; debinarize the bin string using the reduced binary tree as a binarization scheme so as to obtain the index.
According to embodiments, the base list 30 is a list of irreducible fractions 1 αη 12 α21 α22 α31 32 «m «η2
2 ' &ι ' &ι ' b2 ' b2 ' b3 ' b3 ' ' bn ' bn ' where Vfc, akl + ak2 - bk so that each pair of split ratios kl/bk and k2/bk, with ak2 = bk - akl and akl/bk > ak2/b Represents complementary non-symmetric splits and wherein, if bk = bj for k≠ j, a l≠ Qj1 and aklj2l and the binary tree 34 is composed of a partial tree 36 having 2n leafs 37 all of which are connected to a tree root 38 of the partial tree 36 via n-1 intermediary nodes 40 of the partial tree 36, and correspond, from left to right, to the second to (2n+l)th member of the base list 30, a separate leaf 42 corresponding to the split ratio and a main root node 44 to which the separate leaf 42 is connected via a first branch 46 and the root node of the partial tree via another branch 48.
According to an embodiment, the decoder may be configured to perform the entropy decoding context- adaptively for at least a bin subset of the sequence of one or more bins, and to determine a context for the entropy decoding in a manner so that the determination of the context differs among the bins of the bin subset.
According to an embodiment, the decoder may be configured to perform the entropy decoding context-adaptively for at least one predetermined bin of the bin string and configured to determine a context for the entropy decoding the predetermined bin depending on a position (e.g. split level) in the binary tree 34 where the node of the reduced binary tree 52 which corresponds to the predetermined bin, originates in the reduction of the binary tree 34 (frankly speaking, e.g. it's erstwhile split level in the binary tree 34 counts, rather than the spit level in the reduced tree 50).
According to an embodiment, the split ratio pointed to by the index, is for a recursive bi-partitioning split. Here, the decoder is configured to perform the entropy decoding context-adaptively for at least a bin subset of the sequence of one or more bins, and determine, for each bin of the bin subset, a context for the entropy decoding by selecting the context for the respective bin out of a set of contexts depending on coding parameters associated with (e.g. coding modes, prediction parameters and/or partition information used to code/decode block in the...) a spatial neighborhood of a block (18) which the recursive bi-partitioning split relates to. According to an embodiment, the set of contexts out of which the selection takes place, differs for at least two bin sub-subsets of the bin subset (e.g. mutually distinct sets of contexts are used for the bins).
According to an embodiment, the decoder may be configured to determine, for at least one of the bin subset, the context for the entropy decoding by selecting the context for the at least one bin out of the set of contexts depending on a size (e.g. area) of bi-partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi-partitioning split relates to.
According to an embodiment, the decoder may be configured to locate bi-partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi-partitioning split relates to, depending on a split line direction of block which the recursive bi-partitioning split relates to in a manner so that the blocks in the spatial neighborhood neighbor the block which the recursive bi-partitioning split relates to along the split line direction and neighbor each other transversely with respect to the split line direction (e.g. Al and A2 in case of vertical split, and Bl and B2 and case of horizontal split).
According to embodiments, the decoder may be is additionally a decoder according to aspect 1, 2, 3 and/or 4.
An embodiment provides a method for decoding an index pointing to a split ratio from a data stream, comprising:
reducing a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by
removing, from leafs 42,37 to main root node 44, each node 40,38 of the binary tree 34 the child nodes of which do not belong to the reduced list 32 , and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of,
wherein left branches (exemplarily assigned "0" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a first bin value, and right branches (exemplarily assigned "1" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio,
entropy decoding a bin string (e.g. formed by split_ratio_... flags) corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main root node 52 of the reduced binary tree 50, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins;
debinarizing the bin string using the reduced binary tree as a binarization scheme so as to obtain the index.
According to an embodiment, this method may be performed using a computer or CPU.
Another embodiments provides a encoder for encoding an index pointing to a split ratio into a data stream, configured to reduce a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leafs 42,37 to main root node 44, each node 40,38 of the binary tree 34 the child nodes of which are both removed, and attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of. Here, left branches (exemplarily assigned "0" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a first bin value, and right branches (exemplarily assigned "1" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio. Further the decoder is configured to binarize the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main tree root, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins; and to entropy encode the bin string (e.g. formed by split_ratio_... flags).
Another embodiments provides a method for encoding an index pointing to a split ratio into a data stream, comprising:
reducing a base list 30 of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list 32 of split ratios, wherein the base list 30 corresponds to a binary tree 34 leafs 42,37 of which are associated with respective ones of the split ratios of the base list 30, and the reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by
o removing, from leafs 42,37 to main root node 44, each node 40,38 of the binary tree
34 the child nodes of which are both removed, and
o attaching, in place of each node of the binary tree 34 having merely one non-removed child node, the non-removed child node directly to the node of the binary tree 34 which the respective intermediary node is child of, wherein left branches (exemplarily assigned "0" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a first bin value, and right branches (exemplarily assigned "1" in Fig. 5 and Fig. 6) of the reduced binary tree 50 are associated with a second bin value and each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 of the reduced binary tree 50 associated with the respective split ratio, binarizing the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins (e.g. formed by the individual split_ratio_... flags) traversing, starting from the main tree root, the reduced binary tree 50 to one of the reduced binary tree's leafs 54 with each bin of the bin string corresponding to one of the nodes of the reduced binary tree 50 traversed by the sequence of one or more bins; entropy encoding the bin string (e.g. formed by split_ratio_... flags).
According to an embodiment, this method may be performed using a computer or CPU. Thus, an embodiment provides a corresponding computer program.
Brief description of the drawings
Advantageous aspects of the present application are the subject of dependent claims. Preferred embodiments of the present application are described below with respect to the figures, among which:
Fig. 1. shows an exemplary partitioning of 128x128 CTU according to embodiments of the present application.
Fig. 2 shows the partitioning tree describing the topology in fig. 1 according to embodiments.
Fig. 3 shows a description of non-leaf nodes of the partitioning tree in fig. 2 (including block sizes and the splits used to subdivide a particular node described by the split direction and the split ratio) according to embodiments.
Fig. 4 shows Signaling of split direction according to embodiments.
Fig. 5 shows exemplary signaling of the split ratio for a particular block size according to embodiments.
Fig. 6 shows reduced signaling from fig. 5 (for cases where not all split ratios are available) according to embodiments.
Fig. 7 shows three template layouts used to define prohibited partitioning tree patterns according to embodiments.
Fig. 8 shows exemplary context modeling for a simple binary decision tree for signaling the split ratio according to embodiments.
Fig. 9 shows exemplary context modeling for another binary decision tree for signaling the split ratio according to embodiments.
Fig. 10 illustrates location of neighboring blocks according to embodiments. f Fig. 11 shows an example for redundant parallel splits according to embodiments. Fig. 12 shows an example for redundant perpendicular splits according to embodiments. Fig. 13 shows an example for higher-order redundancies according to embodiments. Fig. 14 shows exemplarily an decoder according to a basic embodiment. Fig. 15 shows exemplarily an decoder according to an enhanced embodiment.
Fig. 16 shows a block diagram of an apparatus for predictively coding a video as an example for a video decoder where a composed prediction concept.
Fig. 17 shows a block diagram of an apparatus for predictively decoding a video as an example for a video decoder.
Fig. 18 shows a schematic diagram illustrating an example for a relationship between a prediction residual signal, a prediction signal and a reconstructed signal.
Fig. 19 shows a schematic illustration an example for limiting the average number of prediction hypotheses over a given area.
Fig. 20 shows a schematic example for defining the number of prediction hypotheses depending on the block size or geometry.
Detailed description
Before discussion embodiments of the invention, some technical background of the invention will be discussed:
A CTU can be split into multiple coding units (CUs). A coding unit is the entity for which a coding mode (e.g., intra- or inter-picture coding) is selected. The decomposition of a CTU into one or more CUs is specified by a quadtree (QT) and transmitted as part of the bitstream. In the CTU syntax, a first binary decision (bin) called split_cu_flag is transmitted, which signals whether the entire CTU forms one single CU (i.e., the CTU is not decomposed into multiple CUs) or whether the CTU is partitioned into four equally sized square units. If the CTU is split, then for each of the resulting units, a further split_cu_flag is transmitted, which indicates whether the corresponding unit is further partitioned into four equally sized square units. This multi-level splitting is continued until for each of the units it is either signaled that the unit is not further split or a minimum CU size is reached. If a unit has the minimum CU size, no split_.cu_.flag is transmitted, but it is inferred that the unit is not further split. In ITU-T H.265 | MPEG-H HEVC, the minimum allowed CU size is signaled in the sequence parameter set; it can range from the size of the CTU to 8x8 luma samples (and always presents a square with an integer power of two for both the width and height). The resulting units of the described splitting are the coding units (CUs), for which a coding mode and associated parameters are selected and transmitted. Note that the partitioning represents a quadtree (QT) structure.
Each of the resulting CUs is associated with a coding mode, which is selected at the encoder side and transmitted as part of the bitstream. in ITU-T H.265 | M PEG-H HEVC, the binary decisions split_cu_flag, which specify the partitioning of a CTU into one or multiple CUs are coded using context-based adaptive binary arithmetic coding (CABAC). The CUs of a CTU are processed in the so-called z-scan order. That means, the four blocks that result from a split are processed in raster-scan order; and if any of the blocks is further partitioned, the corresponding four blocks (including the included smaller blocks) are processed before the next block of the higher splitting level is processed.
If a CU is coded in an intra-coding mode, an intra prediction mode for the luma signal and, if the video signal includes chroma components, another intra prediction mode for the chroma signals is transmitted. In ITU-T H.265 | M PEG-H H EVC, if the CU size if equal to the minimum CU size (as signaled in the sequence parameter set), the luma coding block can also be split into four equally sized blocks, in which case, for each of these blocks, a separate luma intra prediction mode is transmitted. This splitting is indicated by a binary syntax element partjnode. The actual intra prediction and coding is done on the basis of transform blocks.
For the purpose of transform coding, a CU can be partitioned into multiple transform blocks. Similarly to the splitting of a CTU into CUs, the subdivision into transform blocks is transmitted using a quadtree syntax. The root of the quadtree is formed by the coding unit. The syntax of the coding unit includes a binary decision called split_transform_flag, which specifies whether the luma component of the CU consists of a single luma transform block or whether it is split into four equally sized square blocks. In the latter case, for each of the resulting luma blocks, another split_transform_flag is transmitted specifying whether the corresponding block is further split. This quadtree splitting is continued until for each of the resulting luma blocks, it is signaled that the block is not further split or the block reaches a minimum transform block size (indicated in the sequence parameter set). For intra-coded CUs for which four luma intra prediction modes are coded, the first split_transform_flag (at the CU level) is not transmitted, but it is inferred that the luma coding block is split into four luma blocks. The splitting of the chroma blocks basically follows the splitting of the co-located luma block, i.e., for each luma block the associated chroma blocks cover the same picture area. The luma block and the associated chroma blocks that cover the same picture area form a tra nsform unit. There is, however, one exception in the ITU-T H.265 I MPEG-H HEVC standard : If the resulting chroma blocks would be smaller than the minimum transform block size (as specified in the sequence parameter set), only the luma block is split. In ITU-T H.265 | M PEG-H HEVC, the binary syntax elements split_transform_flag are coded using CABAC. A transform block (TB) is the entity to which a single 2d transform is applied for coding the prediction residual signal. Note that all transform blocks in ITU-T H.265 | MPEG-H HEVC are square blocks a nd the width and height of the blocks represent integer powers of two.
The TUs of an intra-coded CU are processed in z-scan order (see above). For each transform block (luma or chroma), first a prediction signal is generated using already reconstructed neighboring samples of the same color component. The algorithm that is used for generating the prediction signal is determined by the intra prediction mode. The resulting prediction error / residual signal is transmitted using tra nsform coding. A two-dimensional transform is applied to the corresponding block of residual samples, the resulting transform coefficients are quantized (typically using uniform reconstruction q ua ntizers), and the resulting quantization indexes, which are a lso referred to as transform coefficient levels, are entropy-coded. The entropy coding in ITU-T H.265 | M PEG-H HEVC uses the concept of context-based adaptive binary arithmetic coding (CABAC).
Inter-picture coded CUs can be split into multiple prediction units. A prediction unit is the entity of a luma and, for color video, two associated chroma blocks (covering the same picture area), for which a single set of prediction parameters is used. A CU can be coded as a single prediction unit, or it can be split into two non-square or four square prediction units. The latter (four square PUs) is only supported if the CU has the minimum CU size specified in the sequence parameter set. The chosen splitting is indicated by the syntax element part_mode. ITU-T H .265 | MPEG-H HEVC supports in total 8 modes for partitioning a CU into PUs. An NxN CU can be pa rtitioned into:
• a single NxN PU;
• two (N/2)xN PUs;
• two Nx(N/2) PUs;
• a (3N/4)xN PU (left) and a (N/4)xN PU (right);
• a (N/4)xN PU (left) and a (3N/4)xN PU ( right);
• a Nx(3N/4) PU (top) and a Nx(N/4) PU (bottom);
• a Nx(N/4) PU (top) and a Nx(3N/4) PU (bottom);
• four ( N/2)x(N/2) PUs. The asymmetric splittings are only supported for CUs larger than or equal to 16x16 luma samples. The smallest supported PU sizes in ITU-T H.265 | MPEG-H HEVC are 8x4 and 4x8.
For each PU, an individual set of motion parameters is transmitted. Each set of motion parameters includes the number of motion hypotheses (one or two in ITU-T H.265 | MPEG-H HEVC) and, for each motion hypothesis, the reference picture (indicated via a reference picture index into a list of reference pictures) and the associated motion vector. First a merge_flag is transmitted, which indicates whether the motion parameters are completely derived based on already coded motion parameters or whether the motion parameters are transmitted. If the merge_fiag is equal to 1, a list of motion parameter set candidates is derived, which typically includes motion parameters sets of already coded spatially neighboring blocks as well as one or more motion parameter sets that are derived from temporally co- located blocks. The used motion parameter set is indicated by a syntax element mergejdx, which specifies an index into the candidate list of motion parameter sets. If merge_flag is equal to 0, the motion parameters are transmitted as part of the bitstream. A first syntax element (inter_pred_idc in ITU-T H.265 I MPEG-H HEVC) specifies the number of motion hypotheses. In ITU-T H.265 | MPEG-H HEVC, one or two motion hypothesis are supported. For each motion hypothesis, the used reference picture is indicated via a reference picture index, which represents an index into a reference picture list. In ITU-T H.265 | MPEG-H HEVC, there is one reference picture list for P slices and two reference picture lists for B slices, which are referred to as list 0 and list 1. For each slice, the reference picture lists are constructed based on slice header syntax elements. Each reference picture list contains one or more already coded pictures (which are stored in a decoded picture buffer) in a specified order. In B slices, the syntax element inter_pred_idc does not only indicate single-hypothesis prediction or bi- prediction, but for single-hypothesis prediction it additionally indicates whether list 0 or list 1 is used. For bi-prediction, the first motion hypothesis refers to list 0 and the second motion hypothesis refers to list 1. For each motion hypothesis, in addition to the reference picture index, an associated motion vector is transmitted as part of the bitstream. The motion vectors are differentially coded. Given the already coded reference picture index, a list of motion vector predictor candidates is derived. It can include (potentially scaled) motion vectors of neighboring PUs as well as scaled motion vectors of temporally preceeding (in terms of coding order), spatially co-located blocks. The actually chosen motion vector predictor is signaled via an index into the motion vector predictor iist. Finally the difference between the actual motion vector for the PU and the selected motion vector predictor is transmitted. In single hypothesis prediction, the prediction signal for a PU is formed by a displaced block in the selected reconstructed reference picture, where the displacement relative to the current PU is specified by the motion vector. Note that the displacement is typically specified with sub-sample accuracy (in ITU-T H.265 | MPEG-H HEVC, the motion vectors have a precision of a quarter luma sample). For non-integer motion vectors, the prediction signal is generated by interpolating the reconstructed reference picture (typically, using separable FIR filters). The final prediction signal of PUs with multi-hypothesis prediction is formed by a weighted sum of the prediction signals for the individual motion hypothesis. Note that luma and chroma blocks of a PU share the same set of motion parameters.
The prediction signal for an inter-picture coded CU is composed of the prediction signals for the contained PUs. The prediction error signal (also called residual signal) for the luma and chroma blocks of a coding unit is transmitted via transform coding. For that purpose, the block of luma residual samples of a CU as well as the blocks of chroma residual samples (if present) are partitioned into transform blocks. The partitioning into transform blocks is the same as for intra-picture coded CUs described above. The partitioning of a CU into transform block is indicated by a quadtree syntax, which is also referred to as residual quadtree (RQT). The resulting transform blocks are coded using transform coding: A 2d transform is applied to the block of residual samples, the resulting transform coefficients are quantized, and the resulting transform coefficient levels (quantization indexes) are entropy coded. In P and B slices, at the beginning of the CU syntax, a skip_flag is transmitted. If this flag is equal to 1, it indicates that the corresponding CU consists of a single prediction unit coded in merge mode (i.e., merge_flag is inferred to be equal to 1) and that all transform coefficients are equal to zero (i.e., the reconstruction signal is equal to the prediction signal). In that case, only the mergejdx is transmitted in addition to the skip_flag. If skip_flag is equal to 0, the prediction mode (inter or intra) is signaled, followed by the syntax features described above.
In ITU-T H.265 | MPEG-H HEVC, all low-level syntax elements are coded using context-based adaptive binary arithmetic coding (CABAC). Non-binary syntax elements are first binarized, i.e., they are mapped onto a series of binary decisions, which are also referred to as bins. Then, each bin (including binary syntax elements) is coded using a binary arithmetic coder. There are two modes of the arithmetic coding engine. In one mode, the so-called bypass mode, the bins are coded with a non-adaptive binary probability model with p0 = p1 = 0.5. In the other mode, the so-called regular mode, one adaptive binary probability model is chosen per bin; after coding the corresponding bin, the binary probability model is updated using the actual value of the bin. The entropy coder maintains a certain number of binary probability models. The selected probability model depends on the syntax element and the bin number (for non-binary syntax elements). It can additionally depend on already coded syntax elements or bins. The selection of binary probability models is also referred to as context modelling.
The syntax of ITU-T H.265 | MPEG-H HEVC provides a multitude of possibilities for coding a block of samples (such as a coding tree unit). The encoder has to select the partitionings (into CUs, PUs, and TUs), the coding modes and associated parameters (such as intra prediction modes and motion parameters), and the transform coefficient levels (quantization indexes). The selected coding parameters determine both the reconstruction quality as well as the number of bits required for representing the coding parameter inside the bitstream. Modern encoding algorithms are typically based on Lagrangian bit allocation.
While the employed encoding algorithm determines the rate-distortion efficiency for the generated bitstream, the maximum achievable coding efficiency of a codec is determined by the supported syntax features, such as the set of coding modes, the partitioning options, the supported intra prediction modes, etc.
One of the most important syntax features are the supported partitioning options. On one hand, a flexible partitioning allows an adaptation of the block sizes used for prediction and transform coding to the video signal. But on the other hand, the partitioning has to be transmitted as part of the bitstream. Hence, the gain in prediction and transform coding for providing additional partitioning options has to outweigh the additional signaling overhead. Due to that reason, state-of-the-art video coding standards support only very simple partitioning concepts, such as quadtree partitionings.
In this invention, a partitioning concept based on generalized binary trees is described, it provides more flexibility than conventional partitioning concepts (such as the quadtree approach) for adapting the blocks used for prediction and transform coding to the video signal to be coded. And since the syntax fortransmitting the selected partitioning is still very simple, the gain in prediction and transform coding typically outweighs the additional signaling overhead. Hence, the generalized partitioning concept is capable of increasing the achievable coding efficiency of a video codec.
The described partitioning concept can be used for partitioning a block for coding mode signaling, intra-picture prediction, inter-picture prediction, transform coding, or any combination thereof. It can completely replace conventional partitioning concepts, or it can be combined with other partitioning concepts, such as a quadtree partitioning.
The generalized binary splitting that is presented in this invention represents a superset of all mentioned splitting approaches QT, QTBT, QTBT with additional triple splits, and QTBT with additional asymmetric splits into subblocks of sizes 1/4 and 3/4. It is characterized by a simple syntax and is capable of better adapting the block sizes to object and motion boundaries, which results in an improved coding efficiency.
Entities which can be used in combination with the invention, especially for the coding (encoding and decoding) will be discussed referring to Fig. 16 to 20. Bellow, the portioning / binary splitting staying in focus of ail aspects of the invention will be discussed. Generalized Binary Splitting
Methods of video coding using generalized binary trees are described hereinafter. A method of video coding using generalized binary splitting is presented. The presented generalized binary splitting can be applied for all block partitionings required in video coding. In particular, it can be applied for partitioning a block into coding units (for signaling the coding mode), prediction units (for signaling prediction parameters such as motion parameters), or transform units (for transform coding of the residual signal). In a preferred embodiment of the invention, the signaling of the coding mode, the signaling of prediction parameters and the transform coding is applied to the same blocks (i.e., such a block represents a CU, PU, and TU) and the generalized binary splitting is used for specifying the corresponding partitioning of a fixed sized block into coding units (which also represent PUs and TUs). It is, however, also possible to use the generalized binary splitting for specifying the partitioning into CUs, while the resulting CUs can be further partitioned into PUs and/or TUs (either using the generalized binary splitting or any other partitioning concept).
In another aspect, the generalized binary splitting can be applied individually to color components and auxiliary components, such as alpha channel or depth masks, respectively. Alternatively, generalized binary splitting can be applied to groups of those components. For example, in combination with subsampled chrominance components as used in common frame formats like YUV420 or YUV422, two different splitting trees can be used: one for partitioning the luma component and other for partitioning the chroma components. In another example, it might be useful to apply a different partitioning (different from the partitioning of luma and chroma components) to auxiliary components (such as alpha blending data or depth maps).
Furthermore, the generalized binary splitting can be combined with any other splitting. For example, the quadtree splitting (or any other splitting concept) can be used on a first level and the resulting blocks can be further partitioned using the generalized binary splitting. Or, blocks obtained by the generalized binary splitting can be further partitioned using any other splitting concept.
Without loss of generality, for the following description, we assume that fixed-sized blocks (such as CTUs) are partitioned using the concept of generalized binary splitting. The splitting structure can be represented as a binary splitting tree (also referred to as "partitioning tree" in the following). Each node represents a binary split with a split direction (horizontal or vertical) and a split ratio (which is the ratio of the width (or height) of the first resulting block and the width (or height) of the original block). In a preferred embodiment of the invention (cp. Al), the split direction is coded relative to the previous split direction (i.e., the corresponding split on the next higher (previous) level) (cp. A6). That means a split is coded as "parallel" or as "perpendicular" split, which always translates to either a "vertical" (splitting the width) or a "horizontal" split (splitting the height). If we assume that the current block was obtained by a horizontal split (at the last (previous) split level), then, if a "parallel split" is signaled, the current block is again horizontally split into two subblocks, and if a "perpendicular split" is signaled, the current block is vertically split into two subblocks (cp. A7) . If the last level split was a vertical split, the "parallel split" specifies a vertical split and the "perpendicular split" specified a horizontal split. Since on the highest level (i.e., for the root level block) no previous split was signaled, it has to be defined by convention whether the last split level is inferred to represent a horizontal or a vertical split.
In addition to the split direction, a binary split is characterized by the split ratio (cp. A8). The split ratio specifies the ratio of the sizes (in number of samples) of the first resulting subblock (from top/left) and the block being split. Note that, since a block is always split into two subblocks, the split ratio also specifies ratio of the block widths (for vertical splits) or the ratio of the block heights (for horizontal blocks). The leaf nodes of the partitioning tree represent the actual units (consisting of a luma sample block and, for non-monochrome video, the co-located chroma sample blocks) being coded. These units, which shall be referred to as coding units in the following, are characterized by their positions and sizes, which can be inferred from the partitioning tree. Coding (cp. A2), prediction (cp. A3) and transform coding (cp. A4) can be applied at the leaf level of the splitting structure . It is also possible to apply the generalized binary splitting to a single color component or a subset of color components (e.g., both chroma components). A perpendicular split with a split ratio of 1/2 is the split that can be signaled using the minimum number of bits (or bins) in most configurations and will referred to as "default split" in the following.
In a particular embodiment of the invention, starting at the root blocks of the partitioning tree (which may be a CTU), the partitioning is signaled as follows. Without loss of generality, we define that the last split for the root block (which did not result from an actual split) is considered as vertical split. But note that it could also be defined as horizontal split. First a binary decision perpend_split_flag is coded, which indicates whether a perpendicular split applied. If perpend_split_flag is equal to 1 and the last split (i.e., the split from which is current block resulted) was a horizontal split, a vertical split is applied to the current block. If perpend_split_fiag is equal to 1 and the last split was a vertical split (with our above defined convention this includes the case that our current block is the root blocks), this indicates that a horizontal split is applied.
If perpend_split_fiag is equal to 0, another binary decision parallel_split_flag is transmitted. If parallel_split_flag is equal to 1 and the last split was a horizontal split, the current block is again horizontally split. If parallel_split_flag is equal to 1 and the last split was a vertical split (or was inferred as vertical split by our convention), the current block is vertically split. If parallel_split_flag is equal to 0, the current block is not further split, i.e. it is left unsplit, but represents a leaf block (equivalent to a "no-split" signaling) and becomes a coding block. If high level syntax restriction (e.g., restrictions on the minimum block width or block height or restrictions on the maximum split level) prevent a horizontal or vertical split, the corresponding binary decisions are not transmitted, but can be inferred at the decoder side. For example, if the last split was a vertical split and the width of the current block is equal to the minimum supported block width, the binary decision parallel_split_flag (which indicates whether the current block is again vertically split) is not transmitted, but inferred to be equal to 0.
Either or both of the binary decisions perpend_split_flag and parallel_split_flag can be inferred if this is indicated by high level parameters, which may be signaled in the PPS (picture parameter set), SPS (sequence parameter set) or slice header (cp. A19 and A20). A binary decision tree for signaling the split direction is shown in fig. 4. If a horizontal split is to be applied, the split size is defined as the length of the vertical edge of the block to be split (as the split will introduce a new horizontal edge). For a vertical split, the split size M is the length of the horizontal edge of the block to be split.
In a particular embodiment of the invention, only the perpend_split_flag is coded. Consequently, the split pattern consists of alternating horizontal and vertical splits. Given a particular block, the block is either not further split or it is split using a split direction that is perpendicular to the previous split direction (at the higher level). An exception could be made for the root block (where no previous split exists); for the root block it could be explicitly signaled whether a horizontal or a vertical split is applied (or whether the block is not split at all) (cp. A12+A5).
In another embodiment of the invention, the split direction is coded using binary decisions hor_spiit_fiag (indicating whether or not the block is horizontally split) and ver_split_flag (indicating whether or not the block is vertically split). These flags could be coded in any order; the second flag is only transmitted if the first flag indicates no splitting in the corresponding direction. In a further embodiment of the invention, the split and the split direction are coded using a split_flag and a split_direction_flag, where the split_flag indicates whether the current block is split at all and the split_direction_flag indicates whether the split is applied in horizontal or vertical direction. In a variation, the split_direction_flag indicates whether the split is applied in perpendicular direction to the last split or in the same direction as the last split.
Note that the following description (regarding the signaling of the split ratio) focusses on the preferred embodiment using the perpend_split_flag and parallel_split_flag, but it can also be used in connection with any other signaling of the split direction, e.g., (hor_split_flag and ver_split_flag) or (spiit_flag and split_direction_flag). In a preferred embodiment of the invention, the split flags are coded using context-based adaptive arithmetic coding (as CABAC in H.265 | MPEG-H HEVC).
If the signaling of the split direction (using any of the above described approaches) indicates that the current block is split (for the preferred embodiment this means either perpend_split_flag or parallel_split_flag is equal to 1 or inferred to be equal to 1), a split ratio is coded in addition to the split direction (cp. 18a). The set of possible split ratios can be arbitrarily chosen for every block size provided the resulting subblocks can be encoded using the video encoding framework (e.g., an appropriate transformation size has to be available). The split ratio may be encoded as an element of a set as well as by binarization of the nominator and the denominator (in the former case, the set has to be predefined). In a preferred embodiment of the invention, the split ratio is coded based on a binary decision tree (with adaptive tree pruning according to the available split ratios) as will be described below in more detail. In another embodiment of the invention, the split ratio can be coded as an index into an ordered list of available split ratios. The index can be mapped onto a series of binary decisions using any binarization scheme.
In a preferred embodiment of the invention, the overall set of split ratios is defined as: {1/2, 1/4, 3/4, 3/8, 5/8, 1/3, 2/3, 1/5, 2/5, 3/5, 4/5}. For each actual split, the available set of split ratios represents a subset of this overall set. The subset for a particular block and a particular splitdirection can be determined by the size of the current block and/or the series of previous splits. If some of the ratios are not available for a particular split size (e.g., because restrictions on transform or prediction sizes or minimum block sizes prevent these split ratios or because the splits would result in redundant partitionings), the corresponding signaling flags are not transmitted in order to reduce the bit rate. Especially, if only one split ratio is available, all bins of the ratio signaling can be inferred and are not transmitted (e.g., for block sizes larger than the maximum block size for a non-default split). If, for a split direction, none of the split ratios can be applied (e.g., due to prohibitions enforced by high level parameters), the signaling of this split direction can be inferred as false.
The binary splitting will be applied recursively until no further splitting is inferred or signaled. I.e., if a block is split into two subblocks, for each of the resulting subblocks another split consisting of a split direction and a split ratio is coded (where some or all of the corresponding binary decisions can be inferred based on syntax constraints). This process is continued until it is signaled (or inferred) that no block is further split.
In a preferred embodiment of the invention, the generalized binary splitting concept is applied for partitioning fixed sized blocks (such as CTUs) into coding units, which also represent prediction units and transform units. For each of the resulting blocks, a coding mode and associated prediction parameters (such as intra prediction modes or motion parameters) are transmitted and the blocks are also used for transform coding of the residual signal. In another embodiment, the resulting blocks are used as coding blocks (i.e., for signaling the coding mode), but the coding blocks can be further partitioned into prediction and/or transform blocks (either using the generalized binary splitting concept or any other splitting method).
The high-level parameters controlling the behavior of generalized binary splitting can include a minimum block size (e.g., specified by a minimum block width and a minimum block height, or specified by a minimum number of samples), a maximum partition tree depth , a maximum partition tree depth following a first non-default split, a maximum block size for a non-default split, maximum and minimum allowed aspect ratios for the resulting blocks as weil as constraints regarding the applicable split ratios. The high-level parameters may be signaled in a picture parameter set (PPS), sequence parameter set (SPS), slice header or any other high-level syntax structure. To reduce the number of bits required for transmitting the high-level parameters, boundaries and specific domains may be defined for the high-level parameters. For example, the maximum aspect ratio may be defined as a power-of-2 bigger than 4, thus significantly reducing the number of possible options. Or the minimum aspect ratio may be defined as the reciprocal of the maximum aspect ratio or vice versa, in which case only the minimum or maximum aspect ratio needs to be transmitted.
In a preferred embodiment of the invention, both the split direction and the split ratio are coded using context-based adaptive arithmetic coding (CABAC). I.e., these parameters are coded as a series of binary decisions with adaptive binary probability models (a subset of the bins can also be coded with non-adaptive probability models). The used binary probability models for the split decision may be selected based on the size of neighboring blocks. The underlying assumption is that small blocks often occur in the neighborhood of other small blocks (i.e., in finely partitioned areas of a video picture). This or a similar assumption may also be used to model the contexts for the split ratio coding. Note that non-symmetric splits results in a smaller and a larger block and smaller blocks may tend to be located in the neighborhood of other small blocks.
Due to the complex patterns that can be generated using a generalized binary splitting framework, some final partitioning patterns could be generated using more than one partitioning tree. In order to reduce this phenomenon (and to minimize the number of bits required for signaling a particular block partitioning), in a preferred embodiment of the invention, some combinations of splits are prohibited by the syntax. This can be achieved by prohibiting some tree patterns from being introduced into the partitioning tree. A tree pattern is defined using either the actual "vertical"/"horizontal" or the directional "parallel'Vperpendicular" split direction semantics, possibly mixed. A tree pattern also includes split ratios. If a split direction, split ratio, or a combination of split direction and split ratio would cause a prohibited pattern to occur, it will be inferred as false and the corresponding binary decisions are not transmitted, but inferred at the decoder side. Note that both the encoder and decoder have to know the prohibited tree patterns (or prohibited split combinations).
To prevent redundant split representations, simple rules can be used to identify such partitionings as will be exemplarily described in the following.
Constraints on available split ratios
A preferred embodiment of the invention for preventing redundant split representations and constraining the allowed split directions and split ratios is presented in the following. It should illustrate possible implementations of the discussed invention and is to be understood in an exemplary, but not limiting, way.
A specific partial partitioning of a 128x128 block (e.g., a CTU of size 128x128) using the means described in this embodiment is shown in fig. 1. The partitioning tree describing the shown topology is shown in fig. 2. Fig. 3 explains which splits directions and ratios were used at specific nodes.
In the following description, we focus (without loss of generality) on restricting the set of split ratios for a given split direction. In principle, for a given block size (width and height), and a given series of splits that led to the current block, an allowed set of split ratios is derived by removing prohibited splits from an overall set of available split ratios. In case the resulting set of split ratios is empty, the corresponding split direction is completely prohibited and the corresponding split direction flag (i.e., perpend_split_flag or parallel_spiit_flag or any other corresponding binary decision is not coded, but inferred to be equal to 0).
As an example, in a preferred embodiment of the invention, the overall set of split ratios is given by
Figure imgf000043_0001
For the general case we can assume that all split ratios a/b are given as irreducible fractions (numerator and denominator are coprime). In addition to the symmetric split with split ratio 1/2, several non- symmetric split ratios are included in the overall set of split ratios. In a preferred embodiment of the invention, if a non-symmetric split with split ratio a/b is included, the split ratio (b-a)/b is also included. Both splits yield the same subblock sizes, but for one of the splits, the larger subblock represents the left/top part, and for the other split, the larger subblock represents the right/bottom part of the block to be split.
The set Ansym of non-symmetric splits can be represented by Δ - f" ' 1 £'.21 « 31 «32 £rsi_ "n2 ~j l with the constraint Vfc, fel + ak2 = bk.
Each pair of split ratios akl/bk and ak2/bk, with ak2 = bk - α; , represents two complementary non- symmetric splits, which result in two subblocks of the same sizes but in different order. Note that it is possible to have bk = bj for k≠ j, as long as akl≠ aJ1 and akl≠ aj2 (see the set in eq. (1), where we have bn^1 = bn = 5). If no symmetric split (with ratio 1/2) is supported, the overall set of split ratios is equal to the overall set of non-symmetric splits, A = Ansym. In a preferred embodiment of the invention, the symmetric split is included in the overall set of split ratios, in which case we have
A A nsym (3)
Criterion 1: Granularity of block_sizes
A first criterion for reducing the set of potential split ratios is related to the resulting block widths or heights. It is rather obvious that the block width (and block height) must be integer numbers, since one cannot code blocks with a fractional number of samples. Typically, it is advantageous that the width/height of each subblock represents an integer multiple of a certain granularity g E 0, where 0 = {1,2, ··· } represents the set of natural numbers. In a preferred embodiment of the invention, we set g = 4. Even though it is reasonable to have the same granularity for block width and block heights, it is also possible to use different granularities for the horizontal and vertical block dimensions.
Consequently, a split with split ratio a/b is only supported if the split size M (i.e., the width (for vertical splits) or height (for horizontal splits) of the block to be split) satisfies the following equations · M = m1 · g, m1 6 0, (4)
™ · Μ = m2 g, m2 G 21. (5)
As an example, we consider the overall set of split ratios given in eq. (1) and assume a granularity of g = 4. For the split size of M = 32, the set of available splits is reduced to the set {j' ^' ^- }- For a split size of M = 20, the set of available splits is reduced to the set {-, -, -, - . And, as last example, for a split size of M = 24, the set of available splits is reduced to the set
Figure imgf000044_0001
Criterion 21 Block sizes, split depth and aspect ratios In addition to the granularity, the set of available splits can be constraint by a minimum block size. That means, if a split would results in a block size that is smaller than a minimum block size, it is prohibited and removed from the list of available splits. The minimum block size can be specified by a minimum block width and a minimum block height, or it can be specified by a minimum number of samples. For example, with a granularity of g = 4 and a minimum block size of 32 samples, the smallest supported block sizes would be 8x4 and 4x8, such a configuration could not be achieved by separately specifying a minimum block width and minimum block height.
Another possible constraint is the minimum and maximum aspect ratio. If a split would result in any subblock with an aspect ratio (block width)/(block height) greater than a maximum aspect ratio or less than a minimum aspect ratio, the corresponding split is removed from the set of available splits. As noted earlier, the minimum aspect ratio could be set equal to the reciprocal of the maximum aspect ratio. As an example, the maximum aspect ratio could be set equal to 8.
A further constraint could restrict the maximum split depth. The split depth represents the depth of the binary split tree structure. Or in other words, for a particular block, the split depth represents the number of splits required to reach the current block from the root block. If the split depth of a current block is already equal to the maximum split depth, no further split is allowed. As an example, the maximum split depth could be set equal to 3.
It is also possible to introduce constraints so that for the first split levels (up to a certain depth) or, alternatively, for all split levels greater than a particular value, only symmetric splits are allowed. In this case, no split ratio is transmitted for the corresponding splits (but the ratio is inferred to be equal to 1/2).
Parameters which control the minimum block size, the minimum and maximum aspect ratio, the maximum split depth, and/or values restricting the use of non-symmetric splits are preferably transmitted in a high-level syntax structure, similar to the sequence parameter set, the picture parameter set, or the slice header of H.265 | PEG-H HEVC.
Criterion 3: Redundant parallel splits
Without further restrictions, the generalized binary splitting typically results in redundant representations for certain partitionings. In order to avoid such redundancies, additional restrictions need to be introduced. Note that redundancies in the syntax make the code for specifying the partitioning less efficient and should be avoided. Additionally, if redundant partitionings are tested in the encoding algorithm, the complexity is unnecessarily increased. An exemplary set of restrictions for the overall set of split ratios given in eq. (1) is summarized in Table 1. Each restriction corresponds to one of three layouts (a, b, c), i.e., subsets of a binary splitting tree; these layouts are depicted in fig. 7.
As a first aspect, we concentrate on redundancies in consecutive parallel splits. As an example, we consider a 16x16 block, as illustrated in Fig. 11. If the block is first split using a split ratio of 3/4 in horizontal direction and the first of the resulting subblocks is further split with a split ratio of 1/3 in the same direction (see "tree A" in Fig. 11), we obtain a 16x4, a 16x8, and a 16x4 block (in that order). Exactly the same partitioning is obtained if the first split uses a split ratio of 1/4 in horizontal direction and the second of the resulting blocks is split (in the same direction) with a split ratio of 2/3 (see "tree B" in Fig. 11).
Consider the case that a first split s0 = is applied to a block and then a split s1 is applied to the first
"a
subblock. As a consequence, we obtain three blocks with block dimensions d1 = s0s1; d2 = Ms0 (l - sj, and d3 = M(l - s0), where M is the split size, i.e., the block dimension of the original block. Now, if we apply a first split s'0 and then split the second subblock with a split s in the same direction, we yield three blocks with dimensions d = Ms'0, d'2 = Ms [l - s'0), d'3 = M(l - - s'o). Whenever it is possible to yield the same block dimensions d1 = d'1, d2 = d'2, and d3 = d'3 with two parallel splits s0 and s1 {s1 is applied to the first subblock) and two parallel splits s'0 and s (s is applied to the second subblock), one of the combinations or (s'oi S'i) should be prohibited. This is always the case whenever s'Q = s0s1 and 1 - s0 = (1 - s' J fl - 's()). The decision which combination is prohibit could depend (for example) on which of the redundant combinations requires a smaller number of binary decisions for signaling the partitioning.
For the overall set of split ratios given in eq. (1), the first part of Table 1 specifies an example for prohibited parallel splits. The parallel splits that are prohibited for the first subblock are labeled by "layout a)" and the parallel splits that are prohibited for the second subblock are labeled by "layout b)". Note that the redundancy for consecutive parallel splits could also be removed by only prohibiting splits for the first subblock, or only prohibiting splits for the second subblock, or by using another combination of prohibiting splits for the first and second subblock.
Criterion 4: Redundant perpendicular splits
In addition to redundant parallel splits, there are also redundant perpendicular splits. Assume we have a block that is first split using a split ratio s0 in horizontal direction and then both of the resulting subblocks are split in vertical direction using the split ratio s1 (see Fig. 12a). The same partitioning is obtained if the original block is first split in vertical direction using the split ratio ¾ and then both of the resulting subblocks are split in horizontal direction using the split ratio sQ (see Fig. 12b).
Note, however, that although the resulting partitionings of both discussed options are the same, the corresponding coding options can be different. The reason is the different coding order of the subblocks. Typically, the coding order is defined in a way that for each split, the first subblock (top or left subblock) or all blocks contained in the first subblock is/are coded before the second subblock (bottom or right subblock) or all block contained in the second subblock. Hence, if we first apply a vertical split and then a horizontal split for each of the subblocks, the four resulting blocks would be transmitted in the following order: top-left, bottom-left, top-right, bottom-right (see Fig. 12b). In contrast to that, if we first apply the horizontal split and then the vertical split to both subblocks, we obtain the coding order; top-left, top-right, bottom-left, bottom-right (see Fig. 12a). Due to the different coding order of the resulting subblocks, the methods for intra-picture prediction, motion vector prediction, derivation of merge candidates, etc. could yield different results and, hence, the different split could result in different representations of the original block.
Nonetheless, the described redundant perpendicular splits are typically still very similar, so that prohibiting these splits could actually improve coding efficiency. Depending on the actual codec and the employed encoding algorithm, the loss in coding efficiency due to not considering both of the described coding options may be outweighed by the bit rate savings obtained by using shorter codewords for signaling the partitioning. Furthermore, a potential gain by considering both ways of splitting is only achievable if the encoder evaluates both options, which would increase the encoding complexity. So, in summary, it depends on the actual coding options and the application whether it is preferable to allow both options in the syntax. In a preferred embodiment of the invention, the described redundant perpendicular splits are prohibited. In another embodiment of the invention, the potential redundancy is supported in the syntax. And in another embodiment, the bitstream contains a syntax element, which indicates whether redundant perpendicular splits are allowed or prohibited by the syntax, in the latter case, the actually used split ratio syntax is depending on the value of a corresponding syntax element. The syntax element that indicates whether redundant perpendicular splits are allowed or prohibited could be transmitted as part of any high-level syntax structure, such as the SPS, PPS, or slice header. It is also possible that this syntax element is transmitted as part of the low-level syntax, as for example, the CTU syntax or the CU syntax.
If redundant perpendicular splits are prohibited (either by convention or indicated by a high-level syntax element), it has to be defined which of the two variants is prohibited and which of the variants is supported. This decision could depend on which variant requires less binary decisions for coding or which variant most likely provides better intra-prediction signals or motion vector predictors, etc. For the example of the overall set of split ratios given in eq. (1), Table 1 gives an example for specifying prohibited redundant splits. The prohibited perpendicular splits are marked with "layout c)". They have to be interpreted in the following way. If a given block is split in a particular direction with split ratio A ("A- atio" in the table) and the first of the resulting subblocks is split in perpendicular direction with split ratio B ("B-Ratio" in the table), then the second subblock (i.e. the second subblock of the original block) cannot be split in perpendicular direction (perpendicular to the split of the original block) with split ratio C ("C-Ratio" in the table). Note that the split ratio B is always identical to the split ratio C. Hence, in other words, if a block was split in direction da with split ratio a and the first resulting subblock was split in perpendicular direction (perpendicular to da) with split ratio b, then the perpendicular split (perpendicular to da) with split ratio c = b is removed from the set of available splits for the second subblock (of the split with direction da and ratio a) if indicated in the table. As noted above, the convention specified in Table 1 has to be considered as a particular example. There are other possibilities to achieve a very similar prohibition of redundant splits.
Figure 7 shows three different partitioning tree patterns that are prohibited if specific split directions and ratios for the nodes A, B, and C are met. In the table 1, all configurations prohibited in the described embodiment are listed. The local topology produced by those patterns can be exactly replicated using a different partitioning tree pattern. Note that the prohibitions are chosen in correspondence to the least expensive splits. In this particular case, Layout a) with A-Ratio 3/4 and B-Ratio 2/3 yields the same pattern as Layout b) with A-Ratio 1/2 and B-Ratio 1/2. However, the former is prohibited whereas the latter is allowed due to the fact that 1/2 is less expensive in signaling (when using the signaling scheme described below).
Table 1 - Example for prohibited splits
Layout A-Dir A-Ratio B-Dir B-Ratio C-Dir C-Ratio a) * 2/3 parallel % - - a) * ¾ parallel 1/3 - - a) * ¼ parallel 2/3 - - a) * 3/5 parallel 1/3 - - a) 3/5 parallel 2/3 - - a) * 2/5 parallel ½ - a) * 4/5 parallel ¼ - - a) * 5/8 parallel 4/5 - - a) * 5/8 parallel 3/5 - - b) * ¼ parallel 1/3 - - b) * 3/5 parallel 1/2
b) * 3/8 parallel 1/5 - - c) * ¾ perpendicular ½ perpendicular ¼ c) * ¾ perpendicular % perpendicular c) * 1/3 perpendicular % perpendicular
* 2/3 perpendicular ¼ perpendicular ¾ c) * 1/5 perpendicular ½ perpendicular ¾ c) * 2/5 perpendicular ½ perpendicular ½ c) * 3/5 perpendicular perpendicular c) * 4/5 perpendicular perpendicular c) * ¾ perpendicular perpendicular ¾ c) * 1/3 perpendicular ¾ perpendicular ¾ c) * 2/3 perpendicular perpendicular ¾
€) * 1/5 perpendicular ¾ perpendicular ¼ c) * 2/5 perpendicular perpendicular ¾
€) * 3/5 perpendicular perpendicular ¾ c) * 4/5 perpendicular ¾ perpendicular ¾ c) * 1/3 perpendicular ¾ perpendicular
*
c) 2/3 perpendicular ¾ perpendicular ¾ c) * 1/5 perpendicular % perpendicular ¾ c) 2/5 perpendicular ¾ perpendicular ¾ c) * 3/5 perpendicular ¾ perpendicular % c) * 4/5 perpendicular % perpendicular ¾ c) * 2/3 perpendicular 1/3 perpendicular 1/3
*
c) 1/5 perpendicular 1/3 perpendicular 1/3 c) * 2/5 perpendicular 1/3 perpendicular 1/3 c) * 3/5 perpendicular 1/3 perpendicular 1/3 c) * 4/5 perpendicular 1/3 perpendicular 1/3 c) * 1/5 perpendicular 2/3 perpendicular 2/3 * 2/5 perpendicular 2/3 perpendicular 2/3 c) * 3/5 perpendicular 2/3 perpendicular 2/3 c) * 4/5 perpendicular 2/3 perpendicular 2/3 c) * 2/5 perpendicular 1/5 perpendicular 1/5 c) * 3/5 perpendicular 1/5 perpendicular 1/5 c) * 4/5 perpendicular 1/5 perpendicular 1/5 c) * 3/5 perpendicular 2/5 perpendicular 2/5 c) * 4/5 perpendicular 2/5 perpendicular 2/5 c) 4/5 perpendicular 3/5 Perpendicular 3/5
Pote nt ia 1 additional constraints
It is possible to further constrain the available splits for a current block, either in order to prevent additional redundancies or in order to obtain a more restricted concept for partitioning. Some important examples are listed below:
1- Higher-order redundancies
Beyond the above described redundancies in consecutive parallel and consecutive perpendicular splits, there might be more redundancies when considering more splitting orders. As an example, consider a 16x16 block at location (0,0) and the following two ways of splitting (which are both not prohibited according to the rules in Table 1).
Method A: (1) Vertical split with ratio 1/4 applied to 16x16 block at location (0,0)
(2) Horizontal split with ratio 1/2 applied to 4x16 block at location (0,0)
(3) Vertical split with ratio 2/3 applied to 12x16 block at location (4,0)
(4) Horizontal split with ratio 1/2 applied to 8x16 block at location (4,0)
Method B: (1) Vertical split with ratio 3/4 applied to 16x16 block at location (0,0)
(2) Horizontal split with ratio 1/2 applied to 12x16 block at location (0,0)
(3) Vertical split with ratio 1/3 applied to 12x8 block at location (0,0)
(4) Vertical split with ratio 1/3 applied to 12x8 block at location (0,8)
As illustrated in Fig. 13, both methods yield the following partitioning into 5 subblocks: 4x8 block at location (0,0), 8x8 block at location (4,0), 4x8 block at location (0,8), 8x8 block at location (4,8), and 4x16 block at location (12,0). Similar as for the redundant perpendicular splits discussed above, the coding order for both methods is usually different (in Fig. 13, the coding order is indicated by the numbers inside the resulting blocks), so that both ways of splitting actually represent different coding modes. Such higher-order redundancies could be prohibited, or they could be allowed by the syntax.
2. Restrictions for split chains
For restricting the partitioning to selected split patterns, it can be beneficial to constrain series of splits.
As a simple example, consider the overall set of splits ^j. An example for restricted split series is the following: The symmetric split 1/2 is always allowed, as long as other conditions (e.g., a minimum block size) are not violated. But the split 3/4 is only allowed if it is followed by a 1/3 split in the same direction for the first subblock. The split 1/3 is only allowed if the current block represents the first subblock of a previous 3/4 split in the same direction. Such a configuration/syntax would actually lead to the same partitioning scheme as Q.TBT with additional triple splits (triple split are splits that partition a block into three subblocks with sizes 1/4, 1/2, 1/4, see state-of-the-art [4]).
There are, however, many more possibilities for introducing constraints in order to achieve a certain restriction of the available partitionings.
In a particular embodiment of the invention, only such chains of splits are allowed that result in partitionings for which all resulting blocks have a width w and a height 0 that represent an integer power of 2 (i.e., w = 2n, n E Ξ and 0 = 2m, m G 0 ). In order to keep the signaling efficient, corresponding constraints can be directly included into the syntax. They can be specified using tables or any other means.
3. Balanced restrictions
In the design of split restrictions one aspect that can be beneficial is the geometrical balancing of prohibited splits, in a preferred embodiment of this invention the set of splits is given by
If, for example the restriction of splits is aimed to design blocks with
Figure imgf000051_0001
heights and widths being integer powers of 2, then either % or ¾ can be removed from the partitioning set and subsequentially 2/3 or 1/3, as a forced sequence of ¾ followed by 2/3 gives the same partitioning as ¾ followed by 1/3. Suppose ¾ and 1/3 are removed and 2/3 must follow a ¾ split (as exemplified in the previous section). Then in order to keep a geometrical balance 3/8 is removed instead of 5/8. Further, since 1/3 is removed the second part must be split by 2/3 leading to a split at
{1 3 1
On the other hand if ¾ and 2/3 are removed, then 5/8 is removed next. Note that 3/8 will be split using 1/3 on the first part which leads
{1 3 1 21
This balancing of restrictions reduces the number of split modes but keeps the variety of splits. The reduction of the set of asymmetric splits has the goal the enable that the areas asymmetrically split before should not be split asymmetrically again. This principle may be explained by other words as concept for avoiding one- dimensional / punctual redundancy. This split options are prohibited in syntax. The result can be that the set of possible splits comprises splits "positioned" in an alternating manner (e.g. left and right) so that the second split is approximated to the mirrored version of the previous split.
4. Tree adaptation sets
Beside the tree modification due to the elimination of redundant branches and constraints introduced by aspect ratio limitation, further modification of the default generalized binary split tree might be summed up in a tree adaption set, that can be activated implicitly or explicitly by transmitting corresponding syntax elements. A tree adaption set could define a specific set of leaf nodes or branches, or a set of rules to select leaf nodes or branches added and/or removed from the default tree. The aspect of an explicitly signaled tree adaption set might include the signaling of the use of a tree adaption set and/or the signaling of an index, selecting a tree adaption set out of a predefined record of tree adaption sets, using variable or fixed length codes embedded in any high level syntax structure. Implicit signaling might range from deriving the use of additional tree adaption sets as well as selecting a tree adaption set out of a record by evaluation of syntax elements coded in any high level syntax structure and/or on CTU-level or below. One aspect could link specific profile and level syntax elements to specific tree adaption sets, in order to limit complexity or eliminate unsupported block width, block height or block aspect ratios, which might not be compatible with certain profile- level combinations. Furthermore, a tree adaption set might be derived from syntax elements of the temporal or spatial neighborhood, restricting or expanding the default tree, according to assumed local requirements. in a preferred embodiment of the invention, an implicit tree adaption set could be activated by the extraordinary shape of a block at a picture, tile or shape boundary. This might also include the overriding of generally applied restrictions like aspect-ratio restrictions. Note that at picture or tile boundaries, a coding tree unit often has a different block size. For example, assume an HD picture of 1920x1080 luma samples and a CTU size of 128x128 luma samples. Then, the CTUs at the bottom of the picture only have a size of 128x56 luma samples. Here, while the CTUs are initially still considered to consist of 128x128 luma samples, an implicit splitting could be inferred. As an example, a horizontal split with split ration 1/2 and a following horizontal split with split ratio 7/8 for the first subblock could be inferred, which results in a 128x56 block; the remaining blocks that only include samples outside the picture are not coded. Instead of inferring implicit splits, the binary decision tree for transmitting the split ratio could also be adapted on a picture or tile boundary. For example, splits that would introduce a block border outside the picture could be eliminated for the blocks at a boundary. This concept could also be used in connection with implicit splits. For example, while a block does not completely lie inside the picture/tile region, it is inferred that the block is vertically (at right boundary) or horizontally (at bottom boundary) split, but for transmitting the split ratio, all splits that would introduce a block border outside the picture/tile region are eliminated from the corresponding binary decision tree (i.e., the corresponding binary decision in the tree used for signaling the split ratio are inferred to be equal to 0 or 1).
High-level syntax elements constraining the binary split syntax
In a preferred embodiment of the invention, the high-level syntax includes syntax elements by which the encoder tells the decoder the actual configuration for the binary splitting tree. In certain applications, the encoder complexity only allows to evaluate a subset of the splitting options that are supported by the syntax. In order to not transmit binary decisions that will always have the same values, the encoder signals the decoder, which subset of the splitting options are used. The high-ievei syntax elements are transmitted in one or more high-level syntax structures, such as the sequence parameter set (SPS: valid for all pictures inside a coded video sequence), the picture parameter set (PPS: valid for one or more pictures), the slice header (valid for a slice), etc.
The high-level syntax elements that restrict the available splitting option can include one or more of the following parameters:
• a minimum block sizes (e.g., specified by a minimum block width and a minimum block height, or specified by a minimum number of samples);
• a maximum partition tree depth;
• a maximum partition tree depth following a first non-default split (i.e., the tree depth after the first split with a split ration not equal to 34 is limited);
• a maximum block size for a non-default split (i.e., splits with a ratio not equal to 1/2 are only supported if the block size is greater than or equal to a given size);
• a minimum block size for a non-default split (i.e., splits with a ratio not equal to 1/2 are only supported if the block size is less than or equal to a given size);
• maximum and minimum allowed aspect ratios;
• a parameter indicating a subset of the split ratios (i.e., only split ratios included in the specified subset are supported);
• a parameter indicating that only perpendicular splits are supported, possibly for a restricted set of block sizes (i.e., with exception of the first split or the first N splits); • a parameter constraining series of splits (see above);
• a parameter specifying whether redundant perpendicular splits (or generally, splits that result in the same partitioning, but with different coding orders for the resulting subblocks) are allowed.
The parameters can be included in more than one high-level syntax structures. For example, global parameters specified in the SPS can be overridden by parameters specified in the PPS.
Coding of the split ratio
Fig. 5 depicts signaling diagrams for an exemplary split size of 64 (assuming no further restrictions). In order to avoid the transmission of obsolete binary decisions, a special algorithm for pruning the binary decision tree can be employed. A particular embodiment of the invention uses a special algorithm to prune the signaling tree (an example for a full decision tree is shown in fig. 5). The concept uses basically the same tree of binary decisions for signaling all split ratios, but before any binary decision (bin) is actually coded, the tree is pruned based on the availability of the split ratios. Or in other words, binary decisions that can be inferred to be equal to 0 or 1 based on the availability of the split ratios are not transmitted, but inferred at the decoder side.
Hence, starting with the full binary decision tree, the outputs of the signaling tree (leaf nodes of the tree) are marked according to their availability, where the availability can be derived according to any combination of the rules described above (including, minimum block size, block granularity, minimum and maximum aspect ratio, redundant parallel splits, redundant perpendicular splits, etc.). Each node contains an information about the context model that is used to encode the specific bin using the CAB AC engine.
The reduction (or pruning) algorithm reduces the decision tree as follows. Initially, it is assumed that all nodes of the binary decision tree for signaling the split ratio are available. Then, the leaf nodes of the tree are marked as available or unavailable according to the availability of the corresponding split ratios (which is derived according to any rules, for example, the rules or a subset of the rules specified above). Afterwards, the decision tree is pruned from the bottom to the top according to the following two rules: (1) If a node has no available child node (i.e., both child nodes are marked as unavailable), the node is marked as unavailable (i.e., it is finally removed from the decision tree). (2) If a node has only one available child, it is replaced with that child (the child is moved up by one level in the decision tree). As outcome of the described tree pruning algorithm, a new binary decision tree is obtained. Each non-leaf node of the tree has two available child nodes and each leaf node represents one available split ratio. Note that the obtained binary tree can represent the original full decision tree or a smaller binary decision tree.
In figure 6, three examples of reduced signaling decision trees are shown (for the full decision tree of fig. 5). In fig. 6a), an example of a reduced tree without possible outcomes {3/8, 5/8} is presented. In figures 6b) the outcome {1/4} is not available. In figure 6c), the ratios {1/2, 3/8, 1/4} are not available. By comparing the trees in fig. 6 with the full tree in fig. 5, it can be observed which nodes are eliminated and which nodes are retained (the nodes are labelled by a context model id, which could be used to code the particular decision).
In figures 5, 8 and 9, binary decision tree for coding the split ratio for different split sizes are presented. In a preferred embodiment of the invention, the binary decisions are arithmetically coded using adaptive binary probability models. The selection of the probability model could depend on any of the following (or a combination thereof):
• Node in decision tree;
• Current depth of binary split tree;
• Split direction;
• Split direction in spatial neighboring blocks;
• Block sizes in spatial neighboring blocks;
• Split direction in temporal neighboring blocks;
• Block sizes in temporal neighboring blocks.
In a preferred embodiment of the invention, the assignment of probability model sets (also referred to as context model sets) to binary decision nodes is not modified for reduced decision trees. That means, for each binary decision, the same context model set (among which a probability model is selected based on additional parameters) is used, regardless of whether the binary decision is coded as part of the full decision tree or any form of a reduced decision tree.
In a particular embodiment, the depth of a tree following a non-default split is restricted. Thus, a first non-default split would mean that scarce partitioning is done and the last few available depths will be used to fine-adjust the block edges. Translating this reasoning into the invention, selection of probability models for the binary decisions labelled with "ctxO" and "ctxl" (in figs. 5 and 6) is based on the current depth of the split tree, but different sets of probability models are used for "ctxO" and "ctxl". The binary decisions labeled with "ctx2", "ctx3", "ctx5", "ctx7" and "ctx8" (in figs. 5, 8, 9) are all coded using the same probability model; for each decision tree, the probability model is selected based on the current depth of the splitting tree and the sizes of the neighboring blocks, if a subdivided block has small neighboring blocks on one end and large neighboring block on the other, it is assumed that the smaller of the blocks resulting from current subdivision will be placed at the side neighboring with other small blocks. The probability model for the binary decision labelled with "ctx6" is selected based on how much do the sizes of neighboring blocks vary (if they vary much, it is assumed that the 1/5 or 4/5 ratio could be more probable as they result in subdivisions with higher difference of areas). A specific embodiment could define the context models as follows. A split area is shown in fig. 10. The anchors for neighbor access are named Al, A2, Bl, and B2. The area is assumed to a special representation of a specific node in a split tree with a specific depth d. On the path to this node, first n≤ d splits were default splits, thus simulating a quad-tree of depth q - For coding of decision
"ctxO" and "ctxl" probabilities P(ctx0 = 1) = P0 (ctx0 = 1 | q), P(ctxl = 1) = Pt(ctxl = 1 | q) are selected. For coding of decision "ctx2", "ctx3", "ctx5", "ctx6", "ctx7" and "ctx8", the neighbors are inspected (the neighbors are defined as the units anchoring at the split block according to fig. 10). If the split direction is horizontal, Nx is the neighbor at anchor Bl and N2 is the neighbor at anchor B2. If the split direction is vertical Nt is the neighbor at anchor Al and N2 is the neighbor at anchor A2. The neighboring blocks have a specific areas areaf/V-J and area(/V2] , The context offset ctx0ff is defined as 1 if area(NjJ equals area( 2) . If areafNJ is greater than area(/V2) the ctxo;-f is defined as 0. In all other cases it is defined as 2. Probability of contexts "ctx6" is defined as P(ctx6 = 1) = P2 (ctx6 = 1 I ctxoff) . It is also defined that P2 (ctx6 = 1 | 0) = P2 (ctx6 = 1 \ 2) . For the other contexts the probability is defined as follows P(ctx2 = 1) = P(ctx3 = 1 ) = P(ctx5 = 1) = P{ctxl = 1) = P(ctx8 = 1) = P3 [ · I 3min {2, [-]} + ctxoff) .
In another embodiment, the selection of the binary probability models used for coding the binary decision is based on the assumption that a partition tree of a specific CTU in a picture is similar structured compared to a corresponding partition tree of a so called collocated CTU in an already decoded picture. Without loss of generality, a collocated CTU might be defined as CTU that is obtained when accessing a CTU in a given reference picture using the coordinates derived from the current CTU's position and size, for example the CTU's center position. From the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element of the collocated CU might be used to select probability models for signaling split decisions (in fig.4). Independently, syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element from the obtained collocated CU might be used to select probability models for signaling split ratio decisions (in fig.5-fig.9).
In another embodiment, syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element might be used to infer one or all binary split decisions (in fig.4) without additional signaling. Independently, syntax elements from the obtained collocated CTU, split depth or CTU dimension, or both, or any other syntax element from the obtained collocated CU might be used to infer one, any or all split ratio decisions (in fig.5-fig.9).
In general, the split decisions depend on the availability of splits. A split can be unavailable for several state dependent reasons. For example, in the particular embodiment defined in (1) for all blocks with widths and heights smaller than 32 a vertical 3/8 split can be available for the sizes
Figure imgf000057_0001
where F denotes false, i.e. not available and T denotes true, i.e. available, respectively. Heights are denoted columnwise and widths rowise. The va lues of this table, however, can change, depending on other factors such as depth sizes. For instance, the entire split availability for width size 32 can be prohibited in the following scenario, if the maximal depth for asymmetric splits is set to 3 and the CTU Size is 128, then a series of asymmetric splits leading to the subblock split sizes
128x128 -> 96x128 -> 96x96 -> 24x96 -> 24x32 obtained by 3/4 -> 3/4 -> 3/4 -> 3/4 on the particular subblocks, prevents another asymmetric split by 3/8 along the width 32.
Another split example for the same particular embodiment is the table
8 12 16 20 24 28 32
8 F F F F F F F
12 F F F F F F F
16 T T T T T T F
20 F F F F F F F
24 F F F F F F F 28 F F F F F F F
32 T T T T T T T
for 1/4 splits along the vertical direction. The prohibition of a quarter split could be, for instance, the case, if a constraint on the aspect ratio is set to 8.
Coding tree syntax coding_tree( xO, yO, cbSizeX, cbSizeY, ctDepth ) { Descriptor if( xO + cbSizeX <= pic_widthjn_luma_samples &&
yO + cbSizeY <= pic_height_injuma_samples &&
(cbSizeX > MinCbSizeX && cbSizeY > MinCbSizeY )
split_mode( xO, yO, cbSizeX, cbSizeY )
iff cu_qp_delta_enabled_flag && floor( log2[cbSizeX] ) >= Log2MinCuQpDeltaSize &&
floor( log2[cbSizeY] ) >= Log2MinCuQpDeltaSize && ) {
IsCuQpDeltaCoded = 0
CuQpDeltaVal = 0
}
if( SplitFlag[ xO ][ yO ] ) {
xl = xO + SplitOffsetX
yl = yO + SplitOffsetY
coding_tree( xO, yO, SplitOffsetX, SplitOffsetY, ctDepth + 1 )
coding_tree( xl, yl, cbSizeX - SplitOffsetX, cbSizeY - SplitOffsetY, ctDepth + 1 )
} else
coding_unit( xO, yO, cbSizeX, cbSizeY )
} Split mode syntax split_mode( xO, yO, cbSizeX, cbSizeY ) { Descriptor if( PerpendicularSplitAvailablef cbSizeX ][ cbSizeY ] )
split_perpendicular_fiag[ xO ][ yO ] ae(v) if( !sp!it_perpendicularjlagl xO JL yO j && Para!lelSplitAvailabIe[ cbSizeX ][ cbSizeY
] )
split_parallel_flag[ xO ][ yO ] ae(v) if( split perpendicular f!agf xO ][ yO ] jj split_parallel_flag[ xO ][ yO ] ) {
split_symmetrical_flag[ xO ][ yO ] ae(v)
SplitFlag[ xO ][ yO ] = 1 if( !split_symmetrical_flag[ xO ][ yO ] ) {
if( SplitRatioDiv4Available[ cbSizeX ][ cbSizeY ] &&
SplitRatioDiv8Available[ cbSizeX ][ cbSizeY ] ) {
sp!it_ratio_div4_flag[ xO ][ yO ] ae(v)
}
else if( SplitRatioDiv4Available[ cbSizeX ][ cbSizeY ] )
split ratio div4_flag[ xO ][ yO ] = 1 ae(v) else
split ratio div4 flagf xO ][ yO ] ~ 0 if( split ratio div4_flag[ xO ][ yO ] ) {
if( IsSplitRatioDiv40ffsetCoded )
split_ratio_div4_offset[ xO ][ yO ] ae(v)
}
else {
if( lsSplitRatioDivSOffsetCoded )
split_ratio_div8_offsetf xO ][ yO ] ae(v)
}
}
1
} The value of the split decision variables such as SplitRatioDiv4Available, SplitRatioDiv8Available, lsSplitRatioDiv40ffsetCoded, lsSplitRatioDiv80ffsetCoded are subject to the availability constraints exemplified before and in particular the other high level syntax elements such as minimal block sizes and maximal tree depths, given in the description brought forward herein.
Encoder operation
In a typical modern video encoder, the decision between multiple coding modes is based on a minimization of a Lagrange function / = D + λ R, where D is a distortion measure between the original and reconstructed block (for example, the sum of squared differences (SSD)) for a given mode and R represents the number of bits (or an estimate thereof) that are required for transmitting the block in the given mode (including the bits for partitioning, side information such as intra prediction modes or motion parameters, and quantization indexes for the transform coefficients). This Lagrangian approach can also be used for deciding between different split modes. For obtaining optimal decisions, it is important to proceed the encoding using a depth-first approach. That means for calculating the rate-distortion cost / for a certain split mode, the best rate distortion cost for each of the subblocks (including further splits) has to be considered. This can be ensured by using a depth-first approach. The cost for a certain split mode is calculated as follows. First the cost of the first subblock is determined. At this point, the best coding mode (in rate-distortion sense) for the first subblock including all possible split modes is determined. Given the best coding mode for the first subblock, the best coding mode for the second subblock is determined (again, potential splits have to be taken into account). The rate- distortion cost / for a split mode is the sum of the rate-distortion costs for the subblocks. This concept can be implemented using a recursive function, similar to the following (simplified) pseudo-code: function rd_cost ( block )
{
best_mode = "no split"
min _cost = distortion ( block ) + lambda * rate ( block ) for ( split_mode ) // loop o er all split modes
{
cost = rd_cost ( first_subblock ( split_mode ) )
+ rd_cost ( second_subblock ( split_mode ) )
if ( cost < min cost )
{
best_mode = split_mode min__cost = cos t
}
}
return min cos t
Note that an encoder does not need to evaluate all coding options supported in the syntax. For decreasing the encoder complexity, it is typically beneficial to only test the most likely splitting modes and skip the evaluation of unlikely modes. Most notably, the maximum depth of a tree after the first non-default split is a very important parameter to balance the expected rd-performance and runtime. The maximum block size at which a non-default split is allowed can be used to restrict the testing of partitionings with large blocks, when much smaller blocks are more probable (e.g. for intra slices). Furthermore, the maximum aspect ratio tested in an encoder may be smaller than that supported by the syntax (correspondingly, the minimum aspect ratio tested may be larger than the minimum aspect ratio supported by the syntax).
Beyond the reduction of redundancies additional heuristic rules that do not change signaling may be incorporated to speed up the split decision process. For instance, during the rd-search a complete set of splits along one direction may be excluded if the corresponding symmetric split gives no improvement compared to the symmetric split in perpendicular direction. This, in particular, implies that a block will not be further divided after the two symmetric splits have been tried and did not result in an rd-cost smaller than that for coding the block without any split. The more asymmetric splits are supported by the syntax, the more such heuristic rules speed-up the encoding process. Another constraint may be set on the aspect ratio of the resulting splitting scheme (if one implements it as encoder only optimization, this would have no impact on signaling).
Main aspects
Starting from the above-described principles, there are five main aspects of the invention.
According to a first aspect, the decoder 10 (cf. Fig. 14) is configured to partition the picture 12 of the data stream 14 into blocks 18. Here, a recursive bi-partitioning is performed. This partitioning is controlled using partition information. For the partitioning a first split line direction of a first split line 16s is set. Along this first split line 16sl a predetermined sub-block 16a, here the top left quarter of the picture block 16 is split by the recursive bi-partitioning into a pair of child sub-blocks CU1 and CU2. These sub-blocks CU1 and CU2 form the succeeding split level 3, while the sub-block 16a is formed by split level 1 and 2, assuming that level 0 is assigned to block 16 / 18.
The setting of the split line 16s is performed in dependency on a second split line direction of a second split line 16s2 along which a grandfather sub-block of the preceding split level 1 of the picture block 16 is split into the predetermined sub-block and in the other sub-block.
Here, the grandfather sub-block refers to a left half the picture block 16 / 18. However, in case the level 0 is set differently, the grandfather sub-block can also be understood as being the entire picture block 16 or 18 itself, since the relationship to the preceding or succeeding split level (cf. Fig. 2 ) has to be taken into account.
Another embodiment according to a second aspect provides a decoder for decoding the picture 12 from the data stream 14 which is configured to perform the partitioning of the picture block 18 (cf. Fig. 1) of picture 12 in decoding blocks 16 by recursive bi-partitioning. This is controlled by use of a partition information in the data stream 14, such that a predetermined sub-block, e.g., 16a or another block corresponding to any node in Fig. 2 (i.e., block 18 itself or a fraction) is partitioned taking into account:
whether the predetermined sub-block (e.g., 16a) is to be split or to be left un-split, and/or
a split line direction (e.g., a horizontal or vertical split line direction) of a split line, and/or
a split ratio.
According to a third aspect, the decoder 10 performs the picture partitioning by context-adaptively entropy decoding of one or more syntax elements controlling the splitting. Here, a context of the data stream 14 is used. It should be noted that the context may, for example, depend on a size of the one or more neighboring coding blocks. According to a fourth aspect, the decoder 10 may be configured to perform the partitioning in at least two different modes between which the decoder 10 can switch. These two modes differ from each other and may, for example, have the aim:
minimum block size which has to fit into each coding block, maximum partitioning tree depth, maximum partitioning tree depth following a split of a current sub-block of a current picture block along a split line perpendicular to a split line of a parent block, a maximum block size for a sub-block of a current picture for which non-symmetrical splits are allowed, maximum/minimum aspect ratio of a child sub-block resulting from a split of a current sub- block of a current picture block, etc.
According to a fifth aspect, the decoder 10 may perform the splitting. Here, the decoder 10 is configured to reduce a base list (cf. reference numeral 30 of Figs. 5 and 6) of split ratios by removing split ratio according to one or more rules so as to obtain a reduced list 32 of split ratio.
The base list 30 corresponds to a binary tree 34 leaves 42, 37 of bridge are associated with respect to one of the split ratios of the base list 30. The reduced list 32 corresponds to a reduced binary tree 50 resulting from the binary tree 34 by removing, from leaves 42, 37 to main root node 44. Each node 40, 38 of the binary tree 34 has child nodes which do belong to the reduced list 32. After that, an attaching, in place of each node of the binary tree 34 having merely one non-removed child node is performed, so that the non-removed child node is directly attached to the node of the binary three 34 which their respective intermediary node is a child of.
The left, e.g., the first, branches (exemplarily assigned "0" in Figs. 5 and 6) of the reduced binary tree 50 are associated with a first bin value, while the right (second) branches (exemplarily assigned "1" in Figs. 5 and 6) are associated with a second bin value. Each split ratio of the reduced list 32 has associated therewith a bin value sequence corresponding to a sequence of a bin vaiue associated with the braches which lead, in reduced binary tree 50, from a main root node 52 of the reduced binary tree 50 to a leaf 54 associated with the respective split ratio. After that, an entropy coding of a bin string corresponding to a sequence of one or more bins is performed.
Although within above aspects the approach has been mainly discussed in context of a decoder or a method for decoding, it should be noted that this principle is also valid for an encoder and a method for encoding.
.Additional aspects
The generalized binary splitting framework for partitioning blocks into coding units, prediction units, transform units, etc., may affect other parts of a video codec. Some of these aspects are described in the following.
1. Adaptation of transform coding
The described partitioning with generalized binary splits typically results in block width and block heights that do not represent integer powers of 2. In state-of-the-art video codecs (HEVC [1] or JEM [3]), such transform sizes are not supported. Hence, some modifications of the transform coding are required. Both the transforms as well as the entropy coding of the transform coefficient levels (quantization indexes) need to be modified/extended.
While state-of-the-art video codecs typically only specify power-of-two transform sizes, the generalized framework requires that additional transform sizes are specified.
Another aspect is related to a coding of the last non-zero transform coefficient in a transform block. In HEVC, the position of the last non-zero transform coefficient is indicated by transmitting the x-coordinate and the y-coordinate of the last non-zero transform coefficient. The corresponding entropy codes were designed for blocks for which both the width and height represent integer powers of two. The following table is taken from Recommendation ITU-T H.265 | ISO/IEC 23008-2; the bold marked part specifies the binarization process for the syntax elements last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff__x_suffix, last_sig_coeff_y_suffix, which specify the location of the last non-zero transform coefficient in a transform block. residua!_coding( transform skip flag[ j[ ][ ] FL cMax = 1
)
Iast_sig_coeff_x_prefix TR cMax = ( log2TrafoSize « 1 ) - 1, cRiceParam = 0 last_sig_coeff_y_prefix TR cMax = ( log2TrafoSize « 1 ) - 1, cRiceParam = 0 last sig coeff x su ffix FL cMax = (1 « ( ( last sig coeff x prefix »
1 ) - 1 ) - 1 )
Iast_sig_coeff_ _suffix FL cMax = (1 « ( ( last_sig_coeff_y_prefix »
D-D-i) coded_sub_block_flag[ ][ ] FL cMax = 1 sig__coeff_flag[ ][ ] FL cMax = 1 coeff abs level greater l_f FL cMax = 1
lag[] coeff_abs_leveI_greater2_f FL cMax = 1
lagf] coeff_abs_level_remaining 9.3.3.9 current subbiock scan index i, baseLevel
[] coeff_sign_flag[ ] FL cMax = 1
In a particular embodiment of the invention, the binarization for the syntax elements last_sig_coeff_x_prefix, lctst_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix is modified as follows:
Version 1.
Figure imgf000066_0001
Version 2: Note the correction of the suffix cMax-value is only done for the TrafoSize 10, 20, 40, etc.
(3/8-5/8 splits). residual codi transform_skip_flag[ ][ ] FL
cMax = 1
ng( ) [ ]
TR cMaxPrefixX = floor( ( log2( TrafoSizeX ) * 2 ) - 0.5 ), last_sig_coeff_x_prefix
cRiceParam = 0
TR cMaxPrefixY - floor( ( Jog2( TrafoSizeY ) * 2 ) - 0.5 ), last sig coeff y prefix
cRiceParam = 0
FL cMaxX = ( 1 « ( ( last_sig_coeff_x_prefix » 1 ) - 1 ) - 1 )
last_sig_coeff_x_suffix cMax = cMax - ( ( ( floor( log2( TrafoSize ) ) » 2 )
& TrafoSizeX ) && ( Jast_sig_coeff_x_prefix == cMaxPrefixX ) ) ? 1 : 0
FL cMaxY = ( 1 « ( ( ]ast_sig_coeff_v_prefix » 1 ) - 1 ) - 1 )
last_sig_coeff_y_suffix cMax = cMax - ( ( ( floor( log2( TrafoSizeY ) ) » 2 )
& TrafoSizeY ) && ( last_sig_coeff_y_prefix == cMaxPrefixY ) ) ? 1 : 0 coded_sub_block flag[ ] FL
cMax = 1
[ ] sig_coeff_flag[ ][ ] FL cMax = 1 coeff_abs_Ievel_greater FL
cMax = 1
IJlagf ] coeff_abs_level_greater FL
cMax = 1
2_flag[ ] coeff abs level remaini 9.3.3
current siibblock scan index i, baseLevel
ng[ ] .9 coeff_sign_flag[ ] FL cMa = 1 This results in the following binarization tables.
Code-tables for version 1 (for selected values of Trafosize):
Coordinate value TrafoSize=6 TrafoSize=10 TrafoSize=12 TrafoSize=20 TrafoSize=24
0 0 0 0 0 0
1 10 10 10 10 10
2 110 110 110 110 110
3 1110 1110 1110 1110 1110
4 11110 0 11110 0 11110 0 11110 0 11110 0
5 11110 1 11110 1 11110 1 11110 1 11110 1
6 111110 0 111110 0 111110 0 111110 0
7 111110 1 111110 1 111110 1 111110 1
8 1111110 00 1111110 00 1111110 00 1111110 00
9 1111110 01 1111110 01 1111110 01 1111110 01
10 1111110 10 1111110 10 1111110 10
11 1111110 11 1111110 11 1111110 11
12 11111110 00 11111110 00
13 11111110 01 11111110 01
14 11111110 10 11111110 10
15 11111110 11 11111110 11
16 111111110 000 111111110 00(
17 111111110 001 liiiiiiio oo:
18 111111110 010 111111110 OK
19 111111110 011 liiiiiiio oi:
20 111111110 10(
21 liiiiiiio IO:
22 111111110 IK
Figure imgf000069_0001
Code-table for version 2 (for selected values of Trafosize)
Coordinate value TrafoSize=6 TrafoSize=10 TrafoSize=12 TrafoSize=20 TrafoSize=24
0 0 0 0 0 0
1 10 10 10 10 10
2 110 110 110 110 110
3 1110 1110 1110 1110 1110
4 1111 0 11110 0 11110 0 11110 0 11110 0
5 1111 1 11110 1 11110 1 11110 1 11110 1
6 1111100 1111100 111110 0 111110 0
7 111110 1 111110 1 111110 1 111110 1
8 111111 0 111111 00 1111110 00 1111110 00
9 linn l 111111 01 1111110 01 1111110 01
10 Him 10 1111110 10 1111110 10
11 mm ii 1111110 11 1 1111110 11
12 11111110 00 11111110 00
13 11111110 01 11111110 01
14 11111110 10 11111110 10
15 11111110 11 11111110 11
16 11111111 00 11111111 000
17 11111111 01 11111111 001
18 11111111 10 11111111 010
19 11111111 11 11111111 011
20 11111111 100
21 11111111 101
Figure imgf000070_0001
The binarization codes for TrafoSize equal to an integer power of 2 are not changed. Note that version 1 includes redundancies (unnecessary bins for certain codewordes), while the codeword tables for version 2 do not include redundant bins.
2. Hadamard transforms for motion search / evaluation of intra prediction modes
In consensus with the previous section the new partition structure requires various new transforms among them Hadamard transform matrices for prediction residuals. Often the Hadamard transform is used as a very simple approximation of a DCT. in typical encoding algorithms, the sum of absolute Hadamard coefficients is, for example, used as rate-distortion measure in the sub-sample motion search or the pre-selection of intra prediction modes.
For the particular embodiment with available split ratios {1/2, 1/4, 3/4, 3/8, 5/8, 1/3, 2/3, 1/5, 4/5, 2/5, 3/5 }, the new luma block dimensions 96, 80, 48, 40, 24, 20, and 12 appear if the maximal CTU size is 128. The corresponding Hadamard matrices are not all explicitly constructed. In fact it is sufficient to construct Hadamard matrices of size 20 and 12 using Paley's construction via finite fields. The other sizes are then constructed by Kronecker products since Kronecker products of Hadamard matrices are Hadamard matrices again. The construction of the other matrices via Kronecker products have the advantage that a full large sized Hadamard matrix never has to be constructed entirely. For example, instead of applying an 80x80 Hadamard matrix it is sufficient to use a known 4x4 Hadamard matrix for the respective subblocks. For the final part, the summation of subblocks is done with respect to the correct signs given in the 20x20 Hadamard matrix. All other sizes can be constructed in the same manner using either the new 20x20 or 12x12 Hadamard transform.
3. Derivation of merge candidates
Due to more complex block partitioning (compared to state-of-the-art partitioning methods), the number and topology of neighbors of a particular block (leaf of a partitioning tree) may vary. Coding parameters of neighboring block are, for example, used for deriving merge candidates, motion vector prediction candidates, or most probable intra prediction modes. In connection with the generalized splitting framework, an adaption of the state-of-the-art strategy for selecting candidates among the neighboring blocks (see HEVC) could led to an improved coding efficiency. The state-of-the-art strategies often implicitly assume that blocks have a square shape. But with the generalized splitting concept, the block width can be much larger than the block height or vice versa. In that case, it can be preferable to consider more candidate block along the long block edge than along the short block edge. This may include but is not limited to: Scanning for all neighbors along the edges of a block (e.g. to find an extremum or a mean of a measure derived from the neighboring blocks); defining additional neighbor anchor points (e.g. in the case of scanning for merge candidates, adding anchors in the middle of the left and upper edge of a block).
Fig. 16 shows an apparatus for predictively coding a video 110 composed of a sequence of pictures 120 into a data stream 140. Block-wise predictive coding is used to this end. Further, transform-based residual coding is exemplarily used. The apparatus, or encoder, is indicated using reference sign 100. Fig. 16 shows a corresponding decoder 200, i.e. an apparatus 200 configured to predictively decode the video 110' composed of pictures 120' in picture blocks from the data stream 140, also here exemplarily using transform-based residual decoding, wherein the apostrophe has been used to indicate that the pictures 120' and video 110', respectively, as reconstructed by decoder 200 deviate from pictures 120 originally encoded by apparatus 100 in terms of coding loss introduced by a quantization of the prediction residual signal. Fig. 16 and Fig. 17 exemplarily use transform based prediction residual coding, although embodiments of the present application are not restricted to this kind of prediction residual coding. This is true for other details described with respect to Fig. 16 and 17, too, as will be outlined hereinafter.
The encoder 100 is configured to subject the prediction residual signal to spatial-to-spectral transformation and to encode the prediction residual signal, thus obtained, into the data stream 140. Likewise, the decoder 200 is configured to decode the prediction residual signal from the data stream 14 and subject the prediction residual signal thus obtained to spectral-to-spatial transformation.
Internally, the encoder 100 may comprise a prediction residual signal former 220 which generates a prediction residual 240 so as to measure a deviation of a prediction signal 260 from the original signal, i.e. video 110 or a current picture 120. The prediction residual signal former 220 may, for instance, be a subtractor which subtracts the prediction signal from the original signal, i.e. current picture 120. The encoder 100 then further comprises a transformer 280 which subjects the prediction residual signal 240 to a spatial-to-spectral transformation to obtain a spectral-domain prediction residual signal 240' which is then subject to quantization by a quantizer 320, also comprised by encoder 100. The thus quantized prediction residual signal 240" is coded into bitstream 140. To this end, encoder 100 may optionally comprise an entropy coder 340 which entropy codes the prediction residual signal as transformed and quantized into data stream 140. The prediction residual 260 is generated by a prediction stage 360 of encoder 100 on the basis of the prediction residual signal 240" decoded into, and decodable from, data stream 140. To this end, the prediction stage 360 may internally, as is shown in Fig. 16, comprise a dequantizer 380 which dequantizes prediction residual signal 240" so as to gain spectral-domain prediction residual signal 240"', which corresponds to signal 240' except for quantization loss, followed by an inverse transformer 400 which subjects the latter prediction residual signal 240"' to an inverse transformation, i.e. a spectral-to-spatial transformation, to obtain prediction residual signal 240"", which corresponds to the original prediction residual signal 240 except for quantization loss. A combiner 420 of the prediction stage 360 then recombines, such as by addition, the prediction signal 260 and the prediction residual signal 240"" so as to obtain a reconstructed signal 460, i.e. a reconstruction of the original signal 120. Reconstructed signal 46 may correspond to signal 120'.
A prediction module 440 of prediction stage 360 then generates the prediction signal 260 on the basis of signal 460 by using, for instance, spatial prediction, i.e. intra prediction, and/or temporal prediction, i.e. inter prediction. Details in this regard are described in the following.
Likewise, decoder 200 may be internally composed of components corresponding to, and interconnected in a manner corresponding to, prediction stage 360. In particular, entropy decoder 500 of decoder 200 may entropy decode the quantized spectral-domain prediction residual signal 240" from the data stream, whereupon dequantizer 520, inverse transformer 540, combiner 560 and prediction module 580, interconnected and cooperating in the manner described above with respect to the modules of prediction stage 360, recover the reconstructed signal on the basis of prediction residual signal 240" so that, as shown in Fig. 17, the output of combiner 560 results in the reconstructed signal, namely the video 110'or a current picture 120' thereof.
Although not specifically described above, it is readily clear that the encoder 100 may set some coding parameters including, for instance, prediction modes, motion parameters and the like, according to some optimization scheme such as, for instance, in a manner optimizing some rate and distortion related criterion, i.e. coding cost, and/or using some rate control. As described in more details below, encoder 100 and decoder 200 and the corresponding modules 440, 580, respectively, support different prediction modes such as intra-coding modes and inter-coding modes which form a kind of set or pool of primitive prediction modes based on which the predictions of picture blocks are composed in a manner described in more detail below. The granularity at which encoder and decoder switch between these prediction compositions may correspond to a subdivision of the pictures 120 and 120', respectively, into blocks. Note that some of these blocks may be blocks being solely intra-coded and some blocks may be blocks solely being inter-coded and, optionally, even further blocks may be blocks obtained using both intra-coding and inter-coding, but details are set-out hereinafter. According to intra-coding mode, a prediction signal for a block is obtained on the basis of a spatial, already coded/decoded neighborhood of the respective block. Several intra-coding sub-modes may exist the selection among which, quasi, represents a kind of intra prediction parameter. There may be directional or angular intra-coding sub-modes according to which the prediction signal for the respective block is filled by extrapolating the sample values of the neighborhood along a certain direction which is specific for the respective directional intra-coding sub-mode, into the respective block. The intra-coding sub-modes may, for instance, also comprise one or more further sub-modes such as a DC coding mode, according to which the prediction signal for the respective block assigns a DC value to all samples within the respective block, and/or a planar intra-coding mode according to which the prediction signal of the respective block is approximated or determined to be a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of the respective block with deriving tilt and offset of the plane defined by the two-dimensional linear function on the basis of the neighboring samples. Compared thereto, according to inter-prediction mode, a prediction signal for a block may be obtained, for instance, by temporally predicting the block inner. For parametrization of an inter-prediction mode, motion vectors may be signaled within the data stream, the motion vectors indicating the spatial displacement of the portion of a previously coded picture of the video 110 at which the previously coded/decoded picture is sampled in order to obtain the prediction signal for the respective block. This means, in addition to the residual signal coding comprised by data stream 140, such as the entropy-coded transform coefficient levels representing the quantized spectral-domain prediction residual signal 240", data stream 140 may have encoded thereinto prediction related parameters for assigning to the blocks prediction modes, prediction parameters for the assigned prediction modes, such as motion parameters for inter- prediction modes, and, optionally, further parameters which control a composition of the final prediction signal for the blocks using the assigned prediction modes and prediction parameters as will be outlined in more detail below. Additionally, the data stream may comprise parameters controlling and signaling the subdivision of picture 120 and 120', respectively, into the blocks. The decoder 200 uses these parameters to subdivide the picture in the same manner as the encoder did, to assign the same prediction modes and parameters to the blocks, and to perform the same prediction to result in the same prediction signal.
Fig. 18 illustrates the relationship between the reconstructed signal, i.e. the reconstructed picture 120', on the one hand, and the combination of the prediction residual signal 240"" as signaled in the data stream, and the prediction signal 260, on the other hand. As already denoted above, the combination may be an addition. The prediction signal 260 is illustrated in Fig. 18 as a subdivision of the picture area into blocks 800 of varying size, although this is merely an example. The subdivision may be any subdivision, such as a regular subdivision of the picture area into rows and columns of blocks, or a multi-tree subdivision of picture 120 into leaf blocks of varying size, such as a quadtree subdivision or the like, wherein a mixture thereof is illustrated in Fig. 18 where the picture area is firstly subdivided into rows and columns of tree-root blocks which are then further subdivided in accordance with a recursive multi-tree subdivisioning to result into blocks 800.
The prediction residual signal 240"" in Fig. 18 is also illustrated as a subdivision of the picture area into blocks 840. These blocks might be called transform blocks in order to distinguish same from the coding blocks 800. In effect, Fig. 18 illustrates that encoder 100 and decoder 200 may use two different subdivisions of picture 120 and picture 120', respectively, into blocks, namely one subdivisioning into coding blocks 800 and another subdivision into blocks 840. Both subdivisions might be the same, i.e. each block 80, may concurrently form a transform block 840 and vice versa, but Fig. 18 illustrates the case where, for instance, a subdivision into transform blocks 840 forms an extension of the subdivision into blocks 800 so that any border between two blocks 800 overlays a border between two blocks 840, or alternatively speaking each block 800 either coincides with one of the transform blocks 840 or coincides with a cluster of transform blocks 840. However, the subdivisions may also be determined or selected independent from each other so that transform blocks 840 could alternatively cross block borders between blocks 800. As far as the subdivision into transform blocks 840 is concerned, similar statements are thus true as those brought forward with respect to the subdivision into blocks 800, i.e. the blocks 840 may be the result of a regular subdivision of picture area into blocks, arranged in rows and columns, the result of a recursive multi-tree subdivisioning of the picture area, or a combination thereof or any other sort of segmentation. Just as an aside, it is noted that blocks 800 and 840 are not restricted to being quadratic, rectangular or any other shape. Further, the subdivision of a current picture 120 into blocks 800 at which the prediction signal is formed, and the subdivision of a current picture 120 into blocks 840 at which the prediction residual is coded, may not the only subdivision used for coding/decoding. These subdivision from a granularity at which prediction signal determination and residua! coding is performed, but firstly, the residual coding may alternatively be done without subdivisioning, and secondly, at other granularities than these subdivisions, encoder and decoder may set certain coding parameters which might include some of the aforementioned parameters such as prediction parameters, prediction signal composition control signals and the like.
Fig. 18 illustrates that the combination of the prediction signal 260 and the prediction residual signal 240"" directly results in the reconstructed signal 120'. However, it should be noted that more than one prediction signal 260 may be combined with the prediction residual signal 240"" to result into picture 120' in accordance with alternative embodiments such as prediction signals obtained from other views or from other coding layers which are coded/decoded in a separate prediction loop with separate DPB, for instance.
In Fig. 4, the transform blocks 840 shall have the following significance. Transformer 280 and inverse transformer 540 perform their transformations in units of these transform blocks 840. For instance, many codecs use some sort of DST or DCT for all transform blocks 840. Some codecs allow for skipping the transformation so that, for some of the transform blocks 840, the prediction residual signal is coded in in the spatial domain directly. However, in accordance with embodiments described below, encoder 100 and decoder 200 are configured in such a manner that they support several transforms. For example, the transforms supported by encoder 100 and decoder 200 could comprise: o DCT-II (or DCT-III), where DCT stands for Discrete Cosine Transform o DST- IV, where DST stands for Discrete Sine Transform o DCT- IV o DST-VII o Identity Transformation (IT)
Naturally, while transformer 280 would support all of the forward transform versions of these transforms, the decoder 200 or inverse transformer 540 would support the corresponding backward or inverse versions thereof: o Inverse DCT-II (or inverse DCT-III) o Inverse DST- IV o Inverse DCT-IV 0 Inverse DST-VII 0 Identity Transformation (IT)
In any case, it should be noted that the set of supported transforms may comprise merely one transform such as one spectral-to-spatial or spatial-to-spectral transform.
As already outlined above, Figs. 16 - 18 have been presented as an example where the composed- prediction concept described further below may be implemented in order to form specific examples for video encoders and decoders according to the present application. Insofar, the video encoder and decoder of Figs. 16 and 18, respectively, represent possible implementations of the video encoders and decoders described herein below. As will be outlined in more detail below, when having the subsequently explained embodiments for composed prediction according to the present application built into the video encoder and decoder of Fig. 16 and 17, the video encoder of Fig. 16 and the video decoder of Fig. 17 support, at least as one option, to process a block 800 in the manner outlined in more detail below, or even all blocks a current picture 120 is composed of. Thus, the embodiments described hereinafter, inter alias, refer to a video encoder which equais the encoder 100 of Fig. 16 which treats blocks 800 in the manner outlined in more detail below and the same applies with respect to the decoder of Fig. 18 which, thus, represents an example for a video decoder according to an embodiment where blocks 800 are treated in the manner outlined in more detail below. Fig 16 and 17 are, however, only specific examples. A video encoder according to embodiments of the present application may, however, perform block-based encoding using the concept outlined in more detail below and being different from the encoder of Fig. 16 such as, for instance, in that the sub-division into blocks 800 is performed in a manner different than exemplified in Fig. 18, or in that this encoder does not use transform prediction residual coding with coding the prediction residual, for instance, in spatial domain directly instead. Likewise, video decoders according to embodiments of the present application may perform decoding from data stream 140 using the composed-prediction coding concept further outlined below, but may differ, for instance, from the decoder 200 of Fig. 17 in that sub-divides picture 120' into blocks in a manner different than described with respect to Fig. 180 and/or in that same does not derive the prediction residual from the data stream 140 in transform domain, but in spatial domain, for instance.
In particular, with respect to the block-subdivisioning into blocks 800, it is noted that same may be done in the manner outlined with respect to Fig. 18 or in a different manner. A subdivisioning into transform blocks, if present, may also be done as described with respect to Fig. 18 or in a different manner. In particular, the subdivisioning into blocks on the one hand and into other blocks on the other hand, such as transform blocks, may be done independent from each other by separately subdividing picture 120 into these blocks, respectively, or in a dependent manner. For instance, one subdivision such as the subdivision into transform blocks, may form an extension of the other subdivision as described above, or both subdivisions may form separate extensions of a common primary subdivision such as, for instance, the subdivision of the picture into an array of tree root blocks as described with respect to Fig. 18. And such possibilities also apply for other sub-picture granularities which will be mentioned below such as with respect to the definition of certain prediction parameters, prediction modes, contribution weights or the like. Different subdivisions may be used for different ones of these entities and same may be defined independent from each other, partially independent or as extensions from one another.
Having said this, the following description concentrates on predicting blocks 800 at encoder and decoder. The aim is to improve the coding efficiency of video using mu!ti-hypotheses with limited memory access bandwidth.
In a particular embodiment, the average number of prediction hypotheses over a given area is limited. The area could be, e.g., a fixed number of (neighboring) blocks, a slice, a picture, a group of pictures, or a whole video sequence. For example, if this limit would be equal to three and the area would be a picture, it would be possible to have half of the picture using four prediction hypotheses and the other half using two prediction hypotheses. That is, as shown in Fig. 19, for the prediction block 800, i.e., inter predicted block within a predetermined portion of the video, four blocks 840, i.e., four prediction hypotheses are used. Then, to keep the determined average number of prediction hypotheses three, it is required to use two prediction hypotheses for other prediction block. In this case, a maximum on the number of prediction hypotheses might also be given, e.g., four prediction hypotheses is the maximum.
The number, i.e., the average number, of prediction hypotheses for each inter predicted block may be inserted into the data stream information or on the number of prediction hypotheses for a currently processed inter predicted block dependent on a number of prediction hypotheses of previously processed inter predicted blocks within the predetermined portion and the predetermined criterion. The information is coded into the data stream based on the number of prediction hypotheses of the previously processed inter predicted blocks within the predetermined portion and the predetermined criterion, determine an allowed number interval, and, using a binarization of the allowed number interval, code the information into the data stream. Furthermore, a maximum of the allowed number interval is the lower, the larger the number of prediction hypotheses of the previously processed inter predicted blocks within the predetermined portion is, and the binarization of the allowed number interval has a mean codeword length which is the lower, the lower the maximum of the allowed number interval is. By doing as mentioned above, it is possible to improve the efficiency of the decoding.
In a further particular embodiment, the number of prediction hypotheses is limited depending on the block size or geometry. It is known that the relative prediction memory access overhead of each prediction hypothesis is higher for smaller blocks. Therefore, by allowing a smaller number of hypotheses for smaller blocks, and a larger number of hypotheses for bigger blocks, thus the overall worst-case memory access bandwidth can be kept constant. That is, the Number of hypotheses is determined by comparing an upper limit for the number N of hypotheses depending on the size or geometry of the predetermined inter predicted block. As an example, as shown in Fig. 20, considering only a single color channel (e.g., luma), in case of a (k+l)-tap interpolation filter, a desired maximum relative prediction memory access overhead m, a block width w and height h, the number of hypotheses N must fulfill following formula:
N <(m*w*h)/((w+kx)*(h+ky))
The Number N determined by using the above formula indicates a maximum number of prediction hypotheses for the predetermined inter prediction blocks within the predetermined portion, i.e., the number an upper bound with respect to the number of hypotheses signalable for the predetermined inter predicted block.
The number of prediction hypotheses for each inter predicted block may be inserted into the data stream information, or based on the size or the geometry of the predetermined inter predicted block, determine an allowed number interval, and, using a binarization of the allowed number interval, code the information into the data stream. The information regarding the number of the prediction hypotheses may indicate a maximum of the allowed number interval is the lower, the smaller the size of the predetermined inter predicted block is, and the binarization of the allowed number interval has a mean codeword length which is the lower, the lower the maximum of the allowed number interval is. In addition, the information may indicate that the number of hypotheses is the larger, the larger the predetermined inter predicted block is. By doing as mentioned above, it is improved decoding efficiency at a decoder.
In a further particular embodiment, different interpolation filters are used for different subsets of the prediction hypotheses. For example, for the first and second (uni/bi-predictive) prediction hypotheses, a longer interpolation filter than for the subsequent hypotheses could be used. By doing so, the relative prediction memory access overhead for the subsequent hypotheses would be reduced. In case that a longer interpolation filter is used for a smaller number of the prediction hypotheses, then, a shorter interpolation filter is used for a larger number of the prediction hypotheses. In other words, dependency between the number of the prediction hypotheses and the size of the interpolation filter is monotonic.
In a further particular embodiment, different motion vector accuracies are used for different subsets of the prediction hypotheses. For example, the first and second (uni/bi-predictive) prediction hypotheses could use quarter-pel motion vector accuracy, whereas the subsequent hypotheses use full-pel accuracy. Consequently, the relative prediction memory access overhead for the subsequent hypotheses would be equal to one per hypothesis. In this case, larger number of the prediction hypothesis, the coarser the motion vector accuracy is used, i.e., the relationship between the number of the prediction hypotheses and the motion vector accuracy is monotonic.
Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some one or more of the most important method steps may be executed by such an apparatus. The inventive encoded signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitionary. A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware apparatus.
The above described embodiments are merely illustrative for the principles of the present invention. It is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending patent claims and not by the specific details presented by way of description and explanation of the embodiments herein. References
[1] ITU-T and ISO/IEC. High efficiency video coding. ITU-T Recommendation H.265 I ISO/IEC 23008-10
(HEVC), edition 1, 2013; edition 2, 2014.
[2] ITU-T and ISO/IEC. Advanced video coding for audiovisual services. ITU-T Recommendation H.264
I ISO/IEC 14406-10 (AVC), edition 1, 2003.
[3) J. Chen, E. Alshina, G.J. Sullivan, J.-R. Ohm, J. Boyce, Algorithm Description of Joint Exploration
Test Model 6 (JEM 6), JVET, doc. JVET-F1001, April 2017.
[4] X. Li, H.-C. Chuang, J. Chen, M. Karczewicz, L. Zhang, X. Zhao, A. Said, Multi-Type-Tree, JVET, doc.
JVET-D0117, Oct. 2016.
[5] F. Le Leannec, T. Poirier, F. Urban, Asymmetric Coding Units in QTBT, JVET, doc. JVET-D0064, Oct.
2016.

Claims

Claims
1. Block-based decoder (10) for decoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream (14), set a first split line direction of a first split line along which a predetermined sub-block of a predetermined split level (level 2) of the picture block (18) is split by the recursive bi- partitioning into a pair of child sub-blocks (CU1, CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line along which a grandfather sub- block of a preceding split level (level 1) of the picture block (18) is split into the predetermined sub-block and another sub-block.
2. Block-based decoder (10) of claim 1, further configured to support a plurality of coding modes and derive from the data stream (14), in units of the coding blocks (16), a coding mode to be used for decoding the picture (12) from the data stream (14).
3. Block-based decoder (10) of claim 1 or 2, further configured to support a plurality of coding modes, wherein each coding mode has associated therewith a coding-mode-specific set of one or more coding parameters which control a decoding of the picture (12) using the respective coding mode, and the Block-based decoder (10) is configured to derive from the data stream (14), in units of the coding blocks (16), the coding mode specific set of one or more coding parameters for decoding the picture (12) from the data stream (14) by deriving from the data stream (14) for each decoding unit the coding-mode-specific set of one or more coding parameters associated with the coding mode signaled to be used for the respective coding block (16) in the data stream (14).
4. Block-based decoder (10) of any of claims 1 to 3, being a predictive decoder and configured to derive from the data stream (14) a prediction residual of the picture (12) in a spectral domain in form of spectral transforms representing a piece-wise spectral transform of the prediction residual in units of the coding blocks (16).
5. Block-based decoder (10) of any of claims 1 to 4, being configured to pre-partition the picture (12) into an array of tree root blocks (18) and perform the partitioning of the picture block (18) with respect to each of the array of tree root blocks (18), or pre-partition the picture (12) into an array of tree root blocks (18), subject, depending on the partition information, the tree root blocks to a separate partitioning so as to subdivide the array of the tree root blocks into pre-partition leaf blocks and to perform the partitioning of the picture block (18) with respect to each of the pre-partition leaf blocks.
6. Block-based decoder (10) of any of claims 1 to 5, being configured to set the first split line direction depending on the second split line direction and the partition information by modifying the first split line direction according to the partition information to obtain a modified split line direction and setting the second split line direction to be equal to the modified split line direction.
7. Block-based decoder (10) of any of claims 1 to 6, being configured to controi the recursive bi- partitioning depending on a binary decision tree signaled by the partition information which indicates a split or no-split for the picture block (18), all intermediate sub-blocks of the parent block into which the parent blocks is split by the recursive bi-partitioning and all leaf blocks not split by the recursive bi-partitioning.
8. Block-based decoder (10) of any of claims 1 to 7, being configured to control the recursive bi- partitioning for each sub-block of the picture block (18) belonging to a first predetermined set of split levels with respect to a location of a split line along which the respective sub-block is split by the recursive bi-partitioning, transversely to a split line direction of the split line.
9. Block-based decoder (10) of any of claims 1 to 8, being configured to control the recursive bi- partitioning for each sub-block of the picture block (18) belonging to a first predetermined set of split levels depending on the partition information with respect to a split line direction of a split line along which the respective sub-block is split by the recursive bi-partitioning depending on the partition information and a split line direction of a split line along which a parent block of the respective intermediate block is split.
10. Block-based decoder (10) of any of claims 1 to 9, wherein the second split line direction is horizontal or vertical, and the Block-based decoder (10) is configured to set the first split line direction depending on the partition information to be perpendicular or parallel to the second split line direction.
11. Block-based decoder (10) of any of claims 1 to 10, being configured to, in partitioning the picture block (18), depending on the partition information, decide to split the picture block (18) into a pair of first-split-level sub-blocks, or leave the picture block (18) unsplit, and if the picture block (18) of the picture (12) is split into the pair of first-split-level sub-blocks, depending on the partition information, split a first first-split-level sub-block of the pair of first-split-level sub-blocks into a pair of second-split-level sub-blocks, or leave the first first-split-level sub-block unsplit, perform the splitting of the picture block (18) along a third split line having a third split line direction, and setting a fourth split line direction of a fourth split line along which the first first- split-level sub-block is split depending on the third split line direction.
12. Block-based decoder (10) of claim 11, being configured to, if the picture block (18) of the picture (12) is split into the pair of first-split-level sub-blocks, set the third split direction depending on the partition information, derive from the data stream (14) a first split flag obtained by the partition information, and if the first split flag has a first flag state, split the first first-split-level sub-block into the pair of second-split-level sub-blocks along the second split line with setting the second split direction to be perpendicular to the first split direction, and if the first split flag has a second flag state, leaving the first first-split-level sub-block unsplit.
Block-based decoder (10) of claim 11, being configured to, if the picture block (18) of the picture (12) is split into the pair of first-split-level sub-blocks, derive from the data stream (14) a first split flag contained by the partition information, and if the first split flag has a first flag state, split the first first-split-level sub-block into the pair of second-split-level sub-blocks along the fourth split line with setting the fourth split direction to be perpendicular to the third split direction, and if the first split flag has a second flag state, derive from the data stream (14) a second split flag contained by the partition information, and if the second split flag has a first flag state, split the first first-split-level sub- block into the pair of second-split-level sub-blocks along the fourth split line with setting the fourth split direction to be parallel to the third split direction, and if the second split flag has a second flag state, leaving the first first-split-level sub-block unsplit.
14. Block-based decoder (10) of any of claims 1 to 13, being configured to, in partitioning the
picture block (18),
depending on the partition information, decide to spiit the grandfather sub-block into a pair of sub-blocks including the predetermined sub-block, or
c leave the grandfather sub-block unsplit, and if the grandfather sub-block is split into the pair of sub-blocks, depending on the partition information, split the predetermined sub-block of the pair of sub-blocks into a pair of child sub- blocks, or leave the predetermined sub-block unsplit, perform the splitting of the grandfather sub-block along the second split line having the second split line direction, and setting the first split line direction of the first split line along which the predetermined sub-block is split depending on the second split line direction.
16. Block-based decoder (10) of any of claims 1 to 15, being configured to derive from the data stream (14) a first split flag contained by the partition information, and if the first split flag has a first flag state, split the predetermined sub-block into the pair of child sub-blocks (CU1, CU2) along the first split line with setting the first split line direction to be perpendicular to the second split line direction, and if the first split flag has a second flag state, derive from the data stream (14) a second split flag contained by the partition information, and if the second split flag has a first flag state, split the predetermined sub-block into the pair of child sub-blocks (CU1, CU2) along the first split line with setting the first split line direction to be parallel to the second split line direction, and if the second split flag has a second flag state, leaving the predetermined sub- block unsplit.
17. Block-based decoder (10) of claim 16, being configured to derive from the data stream (14) a third split flag contained by the partition information, and if the third split flag has the first flag state, split the other sub-block of the pair of sub- blocks into a further pair of child sub-blocks along a fifth split line with setting a fifth split tine direction of the fifth split line to be perpendicular to the second split line direction, and if the third split flag has the second flag state, derive from the data stream (14) a fourth split flag contained by the partition information, and if the fourth split flag has the first flag state, split the other sub-block into the further pair of child sub-blocks along the fifth split line with setting the fifth split line direction to be parallel to the second split line direction, and if the second split flag has the second flag state, leaving the other sub-block unsplit.
Block-based decoder (10) of claim 16 or 17, being configured to if the predetermined sub-block is split into the pair of child sub-blocks, derive from the data stream (14) a sixth split flag contained by the partition information, and if the sixth split flag has the first flag state, split a first child sub-block (CU1) of the pair of child sub-blocks into a pair of grandchild sub-blocks along a seventh split line with setting a seventh split line direction of the seventh split line to be perpendicular to the first split line direction, and if the sixth split flag has the second flag state, derive from the data stream (14) a seventh split flag contained by the partition information, and if the seventh split flag has the first flag state, split the first child sub-block into the pair of grandchild sub-blocks along the seventh split line with setting the seventh split line direction to be parallel to the first split line direction, and if the seventh split flag has the second flag state, leaving the first child sub- block unsplit.
19. Block-based decoder (10) of any of claims 16 to 18, being configured to if the predetermined sub-block is split into the pair of child sub-blocks, derive a split ratio from the partition information, indicating at which ratio the predetermined sub-block's width perpendicular to the first split line direction is split.
20. Block-based decoder (10) of any of claims 1 to 19, wherein the Block-based decoder (10) supports a set of supported split ratios for splitting the predetermined sub-block along the first split line being perpendicular the second split line direction and is configured to exclude supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, and to infer that the first split flag has the second flag state and skip its derivation if a cardinality of the reduced set is zero.
21. Block-based decoder (10) of any of claims 1 to 20, wherein the Block-based decoder (10) supports a further set of supported split ratios for splitting the predetermined sub-block along the first split line being parallel the second split line direction and is configured to exclude supported split ratios from the further set of supported split ratios according to one or more rules to obtain a further reduced set of supported split ratios, and to infer that the second split flag has the second flag state and skip its derivation if a cardinality of the further reduced set is zero.
22. Block-based decoder (10) according to any of claims 20 to 21, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line.
23. Block-based decoder (10) according to any of claims 20 to 22, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the width into two child cub-blocks' widths not being, in samples, an integer multiple of a predetermined integer.
24. Block-based decoder (10) according to any of claims 20 to 23, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is too small to fully enclose at least one of a set of at least one predetermined minimum size blocks.
25. Block-based decoder (10) according to any of claims 20 to 24, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is of an aspect ratio outside an admissible aspect ratio range.
26. Block-based decoder (10) according to any of claims 20 to 25, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the first split line in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi-partitioning the predetermined sub-block belongs to.
27. Block-based decoder (10) according to any of claims 20 to 26, wherein one of the one or more rules excludes supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks of the picture biock (18) from which the predetermined sub-block is obtained by the recursive bi-partitioning by splitting the one or more further sub-blocks along the further split line and/or an even further split direction and an even further split ratio of a further split line of one or more even further sub- blocks of the picture block (18) obtained by the recursive bi-partitioning from any of one or more further sub-blocks from which the predetermined sub-block is obtained by the recursive bi-partitioning.
28. Method for decoding a picture (12) from a data stream (14) in units of coding blocks (16), comprising: partitioning a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream (14), setting a first split line direction of a first split line along which a predetermined sub-block of a predetermined split level (level 2) of the picture block (18) is split by the recursive bi- partitioning into a pair of child sub-blocks (CU1, CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line along which a grandfather sub- block of a preceding split level (level 1) of the picture block (18) is split into the predetermined sub-block and another sub-block.
29. Computer program having a program code for performing, when running on a computer, a method according to claim 28.
30. Block-based encoder for encoding a picture (12) into a data stream (14) in units of coding blocks (16), configured to partition a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream (14), set a first split line direction of a first split line along which a predetermined sub-block of a predetermined split level of the picture block (18) is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1, CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line along which a grandfather sub-block of a preceding split level (level 1) of the picture block (18) is split into the predetermined sub-block and another sub-block.
31. Method for encoding a picture (12) into a data stream (14) in units of coding blocks (16), comprising: partitioning a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream (14), setting a first split line direction of a first split line along which a predetermined sub-block of a predetermined split level of the picture block (18) is split by the recursive bi-partitioning into a pair of child sub-blocks (CU1, CU2) of a succeeding split level (level 3), depending on a second split line direction of a second split line along which a grandfather sub-block of a preceding split level (level 1) of the picture block (18) is split into the predetermined sub-block and another sub-block.
32. Computer program having a program code for performing, when running on a computer, a method according to claim 31
33. Block-based decoder (10) for decoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream (14), wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block of the picture block (18) in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction of a split line at which the predetermined sub-block of the picture block (18) is to be split by the recursive bi-partitioning, and/or a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the split line, is crossed by the split line; wherein the Block-based decoder (10) supports a set of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub- block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, wherein the Block-based decoder (10) is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios.
34. Block-based decoder (10) according to claim 33, configured to reduce a fraction of the partition information, used for controlling the recursive bi-partitioning with respect to the predetermined sub-block of the picture block (18), depending on a cardinality of the reduced set.
35. Block-based decoder (10) according to claim 33 or 34, configured to skip, in parsing the fraction of the partition information, a flag indicating whether the predetermined sub-block is to be split or to be left unsplit, or a flag indicating the split direction of the split line if the reduced set is empty, and/or skip, in parsing the fraction of the partition information, an index indicating the split ratio of the split line if the cardinality of the reduced set is one, and/or change, in entropy decoding the index, a domain of possible values of the index to refer to the reduced set exclusively, or spend shorter codeword lengths for supported split ratios of the reduced set compared to the set of supported split ratios.
36. Block-based decoder (10) according to any of claims 33 to 35, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction.
37. Block-based decoder (10) according to any of claims 33 to 36, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths not being, in samples, an integer multiple of a predetermined integer.
38. Block-based decoder (10) according to any of claims 33 to 37, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the width into two child sub-blocks' widths being in samples, an integer multiple to each other.
39. Block-based decoder (10) according to any of claims 33 to 38, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one is too small to fully enclose at least one of a set of at least one predetermined minimum size blocks .
40. Block-based decoder (10) according to any of claims 33 to 39, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that supported split ratios are excluded which divide the predetermined sub-block into two child sub-blocks of which at least one exceeds a predetermined aspect ratio.
41. Block-based decoder (10) according to any of claims 33 to 40, wherein one of the one or more rules excludes supported split ratios depending on the width of the predetermined sub-block perpendicular to the predetermined split direction in a manner so that a predetermined subset of supported split ratios is excluded which depends on the split level of the recursive bi- partitioning the predetermined sub-block belongs to.
42. Block-based decoder (10) according to any of claims 33 to 41, wherein one of the one or more rules excludes supported split ratios depending on a further split direction and a further split ratio of a further split line of one or more further sub-blocks of the picture block (18) from which the predetermined sub-block is obtained by the recursive bi-partitioning by splitting the one or more further sub-blocks along the further split line.
43. Block-based decoder (10) according to any of claims 33 to 42, configured to control the bi- partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios by restricting the supported split ratios signallable by the partition information to the reduced set, and one of the one or more rules excludes supported split ratios as to reduce a number of redundant settings of the partition information.
44. Block-based decoder (10) according to any of claims 33 to 43, wherein the set of supported split ratios is a set of irreducible fractions
A = i ii i-H -L2-I a'i a^ ani ατι2) ί
= l ¾ ' 6l ' ¾ ' -½ ' ¾ ''63 ' " " ' &n ' 6j 12]' wherein Vfc, afcl + ak2 = ¾ so that each pair of split ratios akl/bk and ak2/bk, with ¾2 ~ - akl represents complementary non-symmetric splits and wherein, if bk = for /c≠ j, akl≠ a; 1 and a¾1;-2, and wherein each supported split ratio indicates a ratio of a width of one of a first and second child sub-block resulting from splitting the predetermined sub-block along a split line having the predetermined split direction at the split ratio relative to the width of the predetermined sub-block, both measured perpendicular to the split direction, if the predetermined split direction is vertical, and one of a upper and lower child sub-block resulting from splitting the predetermined sub-block along a split line having the predetermined split direction at the split ratio relative to the width of the predetermined sub-block, both measured perpendicular to the split direction, if the predetermined split direction is horizontal.
45. Block-based decoder (10) according to claim 44, wherein one of the one or more rules excludes if the predetermined split direction is parallel to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and if the predetermined sub- block has a width s0 times the parent sub-block's width, with s0 being the split ratio of the parent block, supported split ratios sx for which there are a split ratio s of the other block the parent block is split into and a split ratio s'Q for the parent sub-block in the set of supported split ratios, for which s'0 = sQs1 and 1 - sQ = (1 - s )(l - s'0), and/or if the predetermined split direction is parallel to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and if the predetermined sub- block has a width 1 - s'0 times the parent sub-block's width, with s'Q being the split ratio of the parent block, supported split ratios s for which there are a split ratio s1 of the other block the parent block is split into and a split ratio s0 for the parent sub-block in the set of supported split ratios, for which s'0 = s(js1 and 1 - s0 = (1 - s'xHl - s'0) .
46. Block-based decoder (10) according to claim 44 or 45, wherein one of one or more rules excludes a supported split ratio if the predetermined split direction is perpendicular to the split direction of a split line along which the parent sub-block of the predetermined sub-block is split, and parallel to the other sub-block the parent sub-block is split into, with s0 being the split ratio of the other block, namely one sx for which sx = s0.
47. Block-based decoder (10) according to any of claims 33 to 46, wherein the decoder is additionally according to any of claims 1 to 27.
48. Method for decoding a picture (12) from a data stream (14) in units of coding blocks (16), comprising: partitioning a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information in the data stream (14), wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block of the picture block (18) in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction of a split line at which the predetermined sub-biock of the picture block (18) is to be split by the recursive bi-partitioning, and/or a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the split line, is crossed by the split line; supporting a set of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, controlling the bi-partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios.
49. Computer program having a program code for performing, when running on a computer, a method according to claim 48.
50. Block-based encoder for encoding a picture (12) into a data stream (14) in units of coding blocks (16), configured to partition a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream (14), wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block of the picture block (18) in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction of a split line at which the predetermined sub-block of the picture block (18) is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the split line, is crossed by the split line; wherein the block-based encoder supports a set of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub- block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios; wherein the block-based encoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios.
51. Block-based encoder according to claim 50, wherein the block-based encoder is configured to control the bi-partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios in a manner so that the partition information in the data stream (14) depends on the reduced set of supported split ratios.
52. Method for encoding a picture (12) into a data stream (14) in units of coding blocks (16), configured to partitioning a picture block (18) of the picture (12) into the coding blocks (16) by recursive bi- partitioning with controlling the recursive bi-partitioning according to partition information and inserting the partition information into the data stream (14), wherein the controlling the recursive bi-partitioning includes controlling the bi-partitioning with respect to a predetermined sub-block of the picture block (18) in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split line direction of a split line at which the predetermined sub-block of the picture block (18) is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the split line, is crossed by the split line; supporting a set of supported split ratios for splitting the predetermined sub-block and is configured to exclude, for a split of the predetermined sub-block along a split line having a predetermined split line direction, supported split ratios from the set of supported split ratios according to one or more rules to obtain a reduced set of supported split ratios, controlling the bi-partitioning with respect to the predetermined sub-block of the picture block (18) depending on the reduced set of supported split ratios.
53. Computer program having a program code for performing, when running on a computer, a method according to claim 52.
54. Block-based decoder (10) for decoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream (14), context-adaptively entropy decode from the partition information one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block (18) using a context which depends on a size of one or more neighboring coding blocks (16) into which the picture (12) is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
55. Block-based decoder (10) of claim 54, configured to pre-partition the picture (12) into an array of picture blocks (18), and wherein the coding order traverses the picture blocks (18) in a raster scan order.
56. Block-based decoder (10) of claim 55, wherein, within each picture block (18), the coding order follows a depth-first or breadth first traversal order.
57. Block-based decoder (10) of any of claims 54 to 56, wherein the one or more syntax elements control the recursive bi-partitioning with respect to a predetermined sub-block in terms of whether the predetermined sub-block is to be split or to be left unsplit, a split direction of a split line at which the predetermined sub-block of the picture block (18) is to be split by the recursive bi-partitioning, and a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the width, is crossed by the split line.
58. Block-based decoder (10) of any of claims 54 to 56, wherein one of the one or more syntax elements controls the recursive bi-partitioning with respect to a predetermined sub-block in terms of a split ratio at which a width of the predetermined sub-block of the picture block (18), perpendicular to the width, is crossed by a split line at which the predetermined sub-block of the picture block (18) is to be split by the recursive bi-partitioning and wherein the context for the one syntax element depends on the size of neighboring coding blocks (16) into which the picture (12) is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
59. Block-based decoder according to any of claims 54 to 58, wherein the decoder is additionally according to any of claims 1 to 27.
60. Block-based decoder according to any of claims 54 to 58, wherein the decoder is additionally according to any of claims 33 to 47.
61. Method for decoding a picture (12) from a data stream (14) in units of coding blocks (16), comprising: partitioning one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream (14), and context-adaptively entropy decoding from the partition information one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block (18) using a context which depends on a size of one or more neighboring coding blocks (16) into which the picture (12) is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
62. Computer program having a program code for performing, when running on a computer, a method according to claim 61.
63. Block-based encoder for encoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream (14), context-adaptively entropy encode into the partition information one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block (18) using a context which depends on a size of one or more neighboring coding blocks (16) into which the picture (12) is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
64. Method for encoding a picture (12) from a data stream (14) in units of coding blocks (16), comprising: partitioning one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream (14), context-adaptively entropy encoding into the partition information one or more syntax elements controlling a splitting of a predetermined sub-block of a predetermined picture block (18) using a context which depends on a size of one or more neighboring coding blocks (16) into which the picture (12) is partitioned up to the predetermined sub-block in the coding order, in a neighborhood of the predetermined sub-block.
65. Computer program having a program code for performing, when running on a computer, a method according to claim 64.
66. Block-based decoder (10) for decoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream (14), wherein the Block-based decoder (10) supports at least two modes between which the Block- based decoder (10) is switchable, and which differ in terms of degree of freedom of performing the partitioning.
67. Block-based decoder (10) according to claim 66, wherein the Block-based decoder (10) is configured such that the at least two modes differ in one or more of the following a minimum block size which has to fit into each coding block, a maximum partition tree depth, a maximum partition tree depth following a split of a current sub-block of a current picture block (18) along a split line perpendicular to a split line of a parent block the current sub-subblock is child of, a maximum block size for sub-blocks of a current picture (12) for which non-symmetric splits are allowed, a maximum aspect ratio for child sub-blocks resulting from a split of a current sub- block of a current picture block (18), a minimum aspect ratio for child sub-blocks resulting from a split of a current sub- block of a current picture block (18), preset splits of a current picture block (18) to from an onset for the recursive bi- partitioning according to the partition information, a set of supported split ratios for splitting a current sub-block of a current picture block (18); one or more rules for excluding, for a split of a current sub-block along a split line having a predetermined split direction, supported split ratios from the set of supported split ratios.
68. Block-based decoder (10) according to claim 66 or 67, wherein the Block-based decoder (10) is configured to switch between the at least two modes according to one or more of signaling in the data stream (14), a history of modes used so far, a spatial predictor, a degree of extension of a current picture block (18) beyond an outer or internal picture boundary.
69. Block-based decoder (10) according to any of claims 66 to 68, wherein the Block-based decoder (10) is configured to switch between the at least two modes in units of a picture sequence, tree-root blocks of a picture (12), picture blocks (18).
70. Block-based decoder according to any of claims 66 to 69, wherein the decoder is additionally according to any of claims 1 to 27.
71. Block-based decoder according to any of claims 66 to 70, wherein the decoder is additionally according to any of claims 33 to 47.
72. Block-based decoder according to any of claims 66 to 71, wherein the decoder is additionally according to any of claims 54 to 60.
73. Method for decoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information in the data stream (14), wherein the Block-based decoder (10) supports at least two modes between which the Block- based decoder (10) is switchable, and which differ in terms of degree of freedom of performing the partitioning.
74. Computer program having a program code for performing, when running on a computer, a method according to claim 73.
75. Block-based encoder for encoding a picture (12) from a data stream (14) in units of coding blocks (16), configured to partition one or more picture blocks (18) of the picture into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream (14), wherein the block-based encoder supports at least two modes between which the block-based encoder is switchable, and which differ in terms of degree of freedom of performing the partitioning.
76. Method fo encoding a picture (12) from a data stream (14) in units of coding blocks (16), comprising: partitioning one or more picture blocks (18) of the picture (12) into the coding blocks (16) along a coding order by recursive partitioning with controlling the recursive partitioning according to partition information and inserting the partition information into the data stream (14), supporting at least two modes which differ in terms of degree of freedom of performing the partitioning.
77. Computer program having a program code for performing, when running on a computer, a method according to claim 76.
78. Decoder for decoding an index pointing to a split ratio from a data stream (14), configured to reduce a base list (30) of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list (32) of split ratios, wherein the base list (30) corresponds to a binary tree (34) leafs (42,37) of which are associated with respective ones of the split ratios of the base list (30), and the reduced list (32) corresponds to a reduced binary tree (50) resulting from the binary tree (34) by removing, from leafs (42,37) to main root node (44), each node (40,38) of the binary tree (34) the child nodes of which do not belong to the reduced list (32) , and attaching, in place of each node of the binary tree (34) having merely one non- removed child node, the non-removed child node directly to the node of the binary tree (34) which the respective intermediary node is child of, wherein first branches of the reduced binary tree (50) are associated with a first bin value, and second branches of the reduced binary tree (50) are associated with a second bin value and each split ratio of the reduced list (32) has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree (50), from a main root node (52) of the reduced binary tree (50) to a leaf (54) of the reduced binary tree (50) associated with the respective split ratio, entropy decode a bin string corresponding to a sequence of one or more bins traversing, starting from the main root node (52) of the reduced binary tree (50), the reduced binary tree (50) to one of the reduced binary tree's leafs (54) with each bin of the bin string corresponding to one of the nodes of the reduced binary tree (50) traversed by the sequence of one or more bins; debinarize the bin string using the reduced binary tree as a binarization scheme so as to obtain the index.
79. Decoder according to claim 78, wherein the base list (30) is a list of irreducible fractions
1 a a12 a2\ 22 i "32 am «n2
2 ' b-i ' bx ' b2 ' b2 ' b3 ' b3 ' ' bn ' bn ' where V¾, akl + ak2 = bk so that each pair of split ratios akl/bk and k2/bkl with ak2 = bk - akl and akl/bk > ak2/bkrepresents complementary non-symmetric splits and wherein, if bk = bj for k≠ j, akl≠ and akl≠ aj2, and the binary tree (34) is composed of a partial tree (36) having 2n leafs (37) all of which are connected to a tree root (38) of the partial tree (36) via n-1 intermediary nodes (40) of the partial tree (36), and correspond, from first to second, to the second to (2n+l)th member of the base list (30), a separate leaf (42) corresponding to the split ratio and a main root node (44) to which the separate leaf (42) is connected via a first branch (46) and the root node of the partial tree via another branch (48).
80. Decoder according to claim 78 or 79, configured to perform the entropy decoding context- adaptively for at least a bin subset of the sequence of one or more bins, and determine a context for the entropy decoding in a manner so that the determination of the context differs among the bins of the bin subset.
81. Decoder according to claim 78 or 79 or 80, configured to perform the entropy decoding context-adaptively for at least one predetermined bin of the bin string and configured to determine a context for the entropy decoding the predetermined bin depending on a position in the binary tree 34 where the node of the reduced binary tree 52 which corresponds to the predetermined bin, originates in the reduction of the binary tree 34.
82. Decoder according to any of claims 78 to 81, wherein the split ratio pointed to by the index, is for a recursive bi-partitioning split and the decoder is configured to perform the entropy decoding context-adaptively for at least a bin subset of the sequence of one or more bins, and determine, for each bin of the bin subset, a context for the entropy decoding by selecting the context for the respective bin out of a set of contexts depending on coding parameters associated with a spatial neighborhood of a block (18) which the recursive bi-partitioning split relates to.
83. Decoder according to claim 82, wherein the set of contexts out of which the selection takes place, differs for at least two bin sub-subsets of the bin subset.
84. Decoder according to claim 82 or 83, configured to determine, for at least one of the bin subset, the context for the entropy decoding by selecting the context for the at least one bin out of the set of contexts depending on a size of bi- partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi- partitioning spiit relates to.
85. Decoder according to ciaim 84, configured to locate bi-partitioning leaf blocks in the spatial neighborhood of the block which the recursive bi-partitioning split relates to, depending on a split line direction of block which the recursive bi-partitioning split relates to in a manner so that the blocks in the spatial neighborhood neighbor the block which the recursive bi-partitioning split relates to along the split line direction and neighbor each other transversely with respect to the split line direction.
86. Decoder according to any of claims 78 to 85, wherein the decoder is additionally according to any of claims 1 to 27.
87. Decoder according to any of claims 78 to 86, wherein the decoder is additionally according to any of claims 33 to 47.
88. Decoder according to any of claims 78 to 87, wherein the decoder is additionally according to any of claims 54 to 60.
89. Decoder according to any of claims 78 to 88, wherein the decoder is additionally according to any of claims 66 to 72.
90. Method for decoding an index pointing to a split ratio from a data stream (14), configured to
reducing a base list (30) of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list (32) of split ratios, wherein the base list (30) corresponds to a binary tree (34) Ieafs (42,37) of which are associated with respective ones of the split ratios of the base list (30), and the reduced list (32) corresponds to a reduced binary tree (50) resulting from the binary tree (34) by removing, from Ieafs (42,37) to main root node (44), each node (40,38) of the binary tree (34) the child nodes of which do not belong to the reduced list (32), and attaching, in place of each node of the binary tree (34) having merely one non- removed child node, the non-removed child node directly to the node of the binary tree (34) which the respective intermediary node is child of, wherein first branches of the reduced binary tree (50) are associated with a first bin value, and second branches of the reduced binary tree (50) are associated with a second bin value and each split ratio of the reduced list (32) has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree (50), from a main root node (52) of the reduced binary tree (50) to a leaf (54) of the reduced binary tree (50) associated with the respective split ratio, entropy decoding a bin string corresponding to a sequence of one or more bins traversing, starting from the main root node (52) of the reduced binary tree (50), the reduced binary tree (50) to one of the reduced binary tree's leafs (54) with each bin of the bin string corresponding to one of the nodes of the reduced binary tree (50) traversed by the sequence of one or more bins; debinarizing the bin string using the reduced binary tree as a binarization scheme so as to obtain the index.
91. Computer program having a program code for performing, when running on a computer, a method according to claim 90.
92. Encoder for encoding an index pointing to a split ratio into a data stream (14), configured to
reduce a base list (30) of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list (32) of split ratios, wherein the base list (30) corresponds to a binary tree (34) leafs (42,37) of which are associated with respective ones of the split ratios of the base list (30), and the reduced list (32) corresponds to a reduced binary tree (50) resulting from the binary tree (34) by removing, from leafs (42,37) to main root node (44), each node (40,38) of the binary tree (34) the child nodes of which are both removed, and attaching, in place of each node of the binary tree (34) having merely one non- removed child node, the non-removed child node directly to the node of the binary tree (34) which the respective intermediary node is child of, wherein first branches of the reduced binary tree (50) are associated with a first bin value, and second branches of the reduced binary tree (50) are associated with a second bin value and each split ratio of the reduced list (32) has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree (50), from a main root node (52) of the reduced binary tree (50) to a leaf (54) of the reduced binary tree (50) associated with the respective split ratio, binarize the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins traversing, starting from the main tree root, the reduced binary tree (50) to one of the reduced binary tree's leafs (54) with each bin of the bin string corresponding to one of the nodes of the reduced binary tree (50) traversed by the sequence of one or more bins; entropy encode the bin string.
Method for encoding an index pointing to a split ratio into a data stream (14), comprising:
reduceing a base list (30) of split ratios by removing split ratios according to one or more rules so as to obtain a reduced list (32) of split ratios, wherein the base list (30) corresponds to a binary tree (34) leafs (42,37) of which are associated with respective ones of the split ratios of the base list (30), and the reduced list (32) corresponds to a reduced binary tree (50) resulting from the binary tree (34) by removing, from leafs (42,37) to main root node (44), each node (40,38) of the binary tree (34) the child nodes of which are both removed, and attaching, in place of each node of the binary tree (34) having merely one non- removed child node, the non-removed child node directly to the node of the binary tree (34) which the respective intermediary node is child of, wherein first branches of the reduced binary tree (50) are associated with a first bin value, and second branches of the reduced binary tree (50) are associated with a second bin value and each split ratio of the reduced list (32) has associated therewith a bin value sequence corresponding to a sequence of bin values associated with the branches which lead, in the reduced binary tree (50), from a main root node (52) of the reduced binary tree (50) to a leaf (54) of the reduced binary tree (50) associated with the respective split ratio, binarizing the index into a bin string using the reduced binary tree as a binarization scheme, the bin string corresponding to a sequence of one or more bins traversing, starting from the main tree root, the reduced binary tree (50) to one of the reduced binary tree's leafs (54) with each bin of the bin string corresponding to one of the nodes of the reduced binary tree (50) traversed by the sequence of one or more bins; entropy encoding the bin string. Computer program having a program code for performing, when running on a computer, a method according to claim 93.
PCT/EP2018/069556 2017-07-19 2018-07-18 Apparatus and method of coding of pictures WO2019016287A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP18739569.4A EP3656127A1 (en) 2017-07-19 2018-07-18 Apparatus and method of coding of pictures

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17182209.1 2017-07-19
EP17182209 2017-07-19

Publications (1)

Publication Number Publication Date
WO2019016287A1 true WO2019016287A1 (en) 2019-01-24

Family

ID=59631540

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/069556 WO2019016287A1 (en) 2017-07-19 2018-07-18 Apparatus and method of coding of pictures

Country Status (3)

Country Link
EP (1) EP3656127A1 (en)
TW (2) TWI830012B (en)
WO (1) WO2019016287A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2585017A (en) * 2019-06-24 2020-12-30 Canon Kk Video coding and decoding
US20210360243A1 (en) * 2019-02-03 2021-11-18 Beijing Bytedance Network Technology Co., Ltd. Condition-dependent unsymmetrical quad-tree partitioning
CN113711593A (en) * 2019-03-12 2021-11-26 弗劳恩霍夫应用研究促进协会 Partition-based intra coding concept for achieving high efficiency
WO2022174701A1 (en) * 2021-02-21 2022-08-25 腾讯科技(深圳)有限公司 Video coding method and apparatus, video decoding method and apparatus, and computer-readable medium and electronic device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4044592A3 (en) * 2019-08-23 2022-12-21 HFI Innovation Inc. Method and apparatus of partitioning small size coding units with partition constraints
CN111757108B (en) * 2020-07-01 2023-03-24 格兰菲智能科技有限公司 Integrated circuit and method for recursively dividing decoding blocks
CN114885164B (en) * 2022-07-12 2022-09-30 深圳比特微电子科技有限公司 Method and device for determining intra-frame prediction mode, electronic equipment and storage medium

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
"ITU-T Recommendation H.264 | ISO/IEC 14406-10 (AVC", 2003, article "ITU-T and ISO/IEC. Advanced video coding for audiovisual services"
"ITU-T Recommendation H.265 ! ISO/IEC 23008-10 (HEVC", 2013, article "ITU-T and ISO/IEC. High efficiency video coding"
ALBRECHT M ET AL: "Description of SDR, HDR and 360° video coding technology proposal by Fraunhofer HHI", 10. JVET MEETING; 10-4-2018 - 20-4-2018; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-J0014-v4, 12 April 2018 (2018-04-12), XP030151173 *
CHEN J ET AL: "Algorithm description of Joint Exploration Test Model 3 (JEM3)", 3. JVET MEETING; 26-5-2016 - 1-6-2016; GENEVA; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-C1001, 2 July 2016 (2016-07-02), XP030150223 *
F. LE LEANNEC; T. POIRIER; F. URBAN, ASYMMETRIC CODING UNITS IN QTBT, JVET, DOC. JVET-D0064, October 2016 (2016-10-01)
J. CHEN; E. ALSHINA; G.J. SULLIVAN; J.-R. OHM; J. BOYCE, ALGORITHM DESCRIPTION OF JOINT EXPLORATION TEST MODEL 6 (JEM 6), JVET, DOC. JVET-F1001, April 2017 (2017-04-01)
JICHENG AN ET AL: "Block partitioning structure for next generation video coding", 113. MPEG MEETING; 19-10-2015 - 23-10-2015; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. m37524, 26 October 2015 (2015-10-26), XP030065891 *
LE LÉANNEC F ET AL: "Asymmetric Coding Units in QTBT", 4. JVET MEETING; 15-10-2016 - 21-10-2016; CHENGDU; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-D0064, 5 October 2016 (2016-10-05), XP030150297 *
MA J ET AL: "Quadtree plus binary tree with shifting (including software)", 10. JVET MEETING; 10-4-2018 - 20-4-2018; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-J0035-v5, 14 April 2018 (2018-04-14), XP030151208 *
X. LI; H.-C. CHUANG; J. CHEN; M. KARCZEWICZ; L. ZHANG; X. ZHAO; A. SAID, MULTI-TYPE-TREE, JVET, DOC. JVET-D0117, October 2016 (2016-10-01)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210360243A1 (en) * 2019-02-03 2021-11-18 Beijing Bytedance Network Technology Co., Ltd. Condition-dependent unsymmetrical quad-tree partitioning
CN113711593A (en) * 2019-03-12 2021-11-26 弗劳恩霍夫应用研究促进协会 Partition-based intra coding concept for achieving high efficiency
GB2585017A (en) * 2019-06-24 2020-12-30 Canon Kk Video coding and decoding
GB2591721A (en) * 2019-06-24 2021-08-11 Canon Kk Video coding and decoding
WO2022174701A1 (en) * 2021-02-21 2022-08-25 腾讯科技(深圳)有限公司 Video coding method and apparatus, video decoding method and apparatus, and computer-readable medium and electronic device

Also Published As

Publication number Publication date
TWI830012B (en) 2024-01-21
TW201919397A (en) 2019-05-16
TW202127872A (en) 2021-07-16
EP3656127A1 (en) 2020-05-27
TWI725328B (en) 2021-04-21

Similar Documents

Publication Publication Date Title
KR102551731B1 (en) Method for encoding/decoing video using intra prediction and apparatus for the same
US10812811B2 (en) Picture coding supporting block partitioning and block merging
WO2019016287A1 (en) Apparatus and method of coding of pictures
KR20170031643A (en) Method and apparatus for processing a video signal
US11146789B2 (en) Apparatus and method for encoding and decoding a picture using picture boundary handling
US20220124372A1 (en) Decoder, encoder and methods comprising a coding for intra subpartitions
WO2019185815A1 (en) Partitioning concepts for block-based picture coding
US20230388496A1 (en) Encoding and decoding a picture
TWI789649B (en) Coding concepts for a transformed representation of a sample block

Legal Events

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

Ref document number: 18739569

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018739569

Country of ref document: EP

Effective date: 20200219