Image coding with block merging and skip mode support

JP7791149B2Active Publication Date: 2025-12-23DOLBY VIDEO COMPRESSION LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023188257
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2010-11-04
Filing Date
2023-11-02
Publication Date
2025-12-23
Estimated Expiration
2031-11-04

Smart Images

  • Figure 0007791149000003
    Figure 0007791149000003
  • Figure 0007791149000004
    Figure 0007791149000004
  • Figure 0007791149000005
    Figure 0007791149000005
Patent Text Reader

Abstract

To provide an apparatus for increasing the coding efficiency by using common signalization within a bitstream with regard to both activation of merging and activation of a skip mode.SOLUTION: In an encoder 10, a common flag signalizes whether coding parameters associated with a current sample set 40 are to be set according to a merge candidate or to be retrieved from a bitstream 30, and whether the current sample set of a picture 20 is to be reconstructed based only on a prediction signal depending on the coding parameters associated with the current sample set without any residual data, or to be reconstructed by refining the prediction signal depending on the coding parameters associated with the current sample set by means of residual data within the bitstream 30.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application relates to image and / or video coding, and in particular to codecs that support block partitioning and skip mode. [Background technology]

[0002] Many image and / or video codecs process images on a block-by-block basis. For example, predictive codecs use block granularity to achieve a good compromise between setting the prediction parameters very precisely with high spatial resolution, which would result in using too much side information for the prediction parameters, and setting the prediction parameters very coarsely, which would increase the amount of bits needed to encode the prediction residual due to the low spatial resolution of the prediction parameters. In short, the optimal setting for the prediction parameters lies somewhere between these two extremes.

[0003] Several attempts have been made to obtain an optimal solution to the above-mentioned problem. For example, instead of using a regular subdivision of an image into blocks regularly arranged in rows and columns, multi-tree partitioning subdivision attempts to increase the flexibility of subdividing an image into blocks with appropriate requirements for subdivision information. However, even multi-tree subdivision requires the signaling of a significant amount of data, and the flexibility in subdividing an image is quite limited even when using such multi-tree subdivision.

[0004] To allow a better trade-off between the amount of auxiliary information needed to signal the image subdivision and the degrees of freedom in subdividing the image, block aggregation can be used to increase the number of possible image subdivisions, with a reasonable amount of additional data needed to signal the aggregation information. For aggregated blocks, the coding parameters also need to be transmitted in their entirety only once in the bitstream, just as if the resulting aggregated group of blocks were a directly subdivided part of the image.

[0005] To further increase efficiency in encoding image content, skip mode has been introduced into some block-based image codecs, allowing the encoder to avoid transmitting residual data for specific blocks to the decoder. That is, skip mode can suppress the transmission of residual data for specific blocks. The ability to suppress the transmission of residual data for specific blocks results in a wider granularity interval for encoding the coding / prediction parameters, where an optimal tradeoff between encoding quality and overall bit rate can be expected. Naturally, this reduces the residual portion, thereby lowering the rate required to encode the residual data, but on the other hand, increasing the spatial resolution of the encoding of the coding / prediction parameters results in an increase in the side information rate. However, with the availability of skip mode, it can be advantageous to obtain rapid encoding rate savings by only modestly further increasing the granularity at which the coding / prediction parameters are transmitted, such that the residual portion is so small that separate transmission of the residual portion can also be omitted.

[0006] However, due to the residual redundancy introduced by the combination of block merging and skip mode usage, there is still a need to achieve better coding efficiency. Summary of the Invention [Problem to be solved by the invention]

[0007] It is thus an object of the present invention to provide a coding scheme with increased coding efficiency. This object is achieved by the independent claims of the application. [Means for solving the problem]

[0008] The idea underlying the present invention is that further coding efficiency gains can be achieved if a common signaling is used in the bitstream for both activating merging and activating skip mode. That is, one of the possible states of one or more syntax elements in the bitstream may signal that, with respect to the current sample set of an image, each sample set is to be merged and no prediction residual is to be coded and inserted into the bitstream. In other words, a common flag may commonly signal whether coding parameters associated with the current sample set are to be set according to the merging candidate or to be extracted from the bitstream, and whether the current sample set of an image is to be reconstructed without any residual data, based only on a prediction signal according to the coding parameters associated with the current sample set, or by reconstructing the prediction signal according to the coding parameters associated with the current sample set by residual data in the bitstream.

[0009] The inventors of the present invention have discovered that the introduction of this common signaling for integration activation and skip mode activation saves bitrate, such that the additional overhead of signaling integration activation and / or skip mode activation separately from each other can be reduced, or only need be expended if integration and skip mode are not activated simultaneously.

[0010] Advantageous embodiments of the invention are the subject of the accompanying dependent claims.

[0011] The preferred embodiments of the present application are described in more detail below with reference to the figures. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 shows a block diagram of an apparatus for encoding according to an embodiment. [Figure 2] FIG. 2 shows a block diagram of an apparatus for encoding according to a more detailed embodiment. [Figure 3] FIG. 3 shows a block diagram of an apparatus for decoding according to an embodiment. [Figure 4] FIG. 4 shows a block diagram of an apparatus for decoding according to a more detailed embodiment. [Figure 5] FIG. 5 shows a block diagram of a possible internal structure of the encoder of FIG. 1 or FIG. [Figure 6] FIG. 6 shows a block diagram of a possible internal structure of the decoder of FIG. 3 or FIG. [Figure 7a] FIG. 7a shows schematically a possible subdivision of an image into tree root blocks, coding units (blocks) and prediction units (partitions). [Figure 7b] FIG. 7b shows a subdivision tree of the tree root block shown in FIG. 7a down to the level of the partition according to the illustrated example. [Figure 8] FIG. 8 shows an embodiment for a set of possible supported splitting patterns according to an embodiment. [Figure 9] FIG. 9 shows possible partitioning patterns that result efficiently from combining block consolidation and block partitioning when using block partitioning according to FIG. [Figure 10] FIG. 10 illustrates schematically candidate blocks for skip / direct mode according to an embodiment. [Figure 11] FIG. 11 illustrates a syntax portion of a syntax according to an embodiment. [Figure 12] FIG. 12 illustrates a syntax portion of a syntax according to an embodiment. [Figure 13a] FIG. 13a shows a syntax portion of a syntax according to an embodiment. [Figure 13b] FIG. 13b shows a syntax portion of a syntax according to an embodiment. [Figure 14]FIG. 14 illustrates a schematic diagram of a definition of adjacent partitions for a partition according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0013] With respect to the following description, it should be noted that whenever the same reference numerals are used in relation to different figures, the description associated with each element presented with respect to one of those figures applies to the other figure as well, provided that moving the description from one figure to the other does not contradict the remaining description of that other figure.

[0014] 1 shows an apparatus 10 for encoding an image 20 into a bitstream 30. Of course, the image 20 can be part of a video if the encoder 10 is a video encoder.

[0015] Although not explicitly shown in FIG. 1 , image 20 is shown as an array of samples. The sample array of image 20 is divided into sample sets 40, which can be any set of samples, such as a sample set covering a single, non-overlapping, connected region of image 20. For ease of understanding, sample sets 40 are shown as blocks 40 and will hereinafter be referred to as blocks, although the following description should not be considered as limited to any particular type of sample set 40. According to a specific embodiment, sample sets 40 are rectangular and / or square blocks.

[0016] For example, the image 20 may be subdivided into a regular arrangement of blocks 40, such that the blocks 40 are arranged in rows and columns, as shown by way of example in FIG. 1 . However, any other subdivision of the image 20 into blocks 40 may be possible. In particular, the subdivision of the image 20 into blocks 40 may be fixed, i.e., known to the decoder by default, or may be signaled within the bitstream 30 to the decoder. In particular, the blocks 40 of the image 20 may vary in size. For example, a multi-tree subdivision, such as a quad-tree subdivision, may be applied to the image 20, or a regular pre-subdivision of the image 20 into regularly arranged tree root blocks, in this case to obtain blocks 40 that form leaf blocks of a multi-tree subdivision of the tree root blocks.

[0017] In any case, the encoder 10 is configured to code into the bitstream 30 a flag that commonly signals, with respect to the current sample set 40, whether the coding parameters associated with the current sample set 40 will be set according to the merging candidate or will be taken out of the bitstream 30, and whether the current sample set of the image 20 will be reconstructed without any residual data, based only on the prediction signal according to the coding parameters associated with the current sample set, or whether it will be reconstructed by using residual data from the bitstream 30 to refine the prediction signal according to the coding parameters associated with the current sample set 40. For example, the encoder 10 is configured to code, with respect to the current sample set 40, a flag in the bitstream 30 that commonly signals that, in a first state, the coding parameters associated with the current sample set 40 will not be taken from the bitstream 30 but will be set according to the merging candidate, and that the current sample set of the image 20 will be reconstructed based only on the prediction signal according to the coding parameters associated with the current sample set, without any residual data, and that, in another state, the coding parameters associated with the current sample set 40 will be taken from the bitstream 30 or the current sample set of the image 20 will be reconstructed by refining the prediction signal according to the coding parameters associated with the current sample set 40 by means of the residual data in the bitstream 30. This means that: the encoder 10 supports merging of blocks 40; the merging is conditional, i.e., not all blocks 40 are amenable to merging. For some blocks 40, it may be advantageous, eg in terms of rate-distortion optimization, to merge the current block 40 with the merging candidate, while for others the opposite is true.To determine whether a particular block 40 should be considered for merging, the encoder 10 determines a set or list of merging candidates and, for each of these merging candidates, checks whether merging the current block 40 with that merging candidate forms the most favorable coding option, e.g., in terms of rate-distortion optimization. The encoder 10 is configured to determine the set or list of merging candidates for the current block 40 based on previously coded portions of the bitstream 30. For example, the encoder 10 derives at least a portion of the set or list of merging candidates by employing coding parameters associated with positionally and / or temporally adjacent blocks 40 previously coded according to the coding order applied by the encoder 10. Temporal neighbors refer, for example, to blocks of previously coded images of the video to which the image 20 belongs, where the temporally adjacent blocks are spatially positioned so as to spatially overlap the current block 40 of the current image 20. Thus, for this portion of the set or list of merging candidates, there is a one-to-one relationship between each merging candidate and its spatially and / or temporally adjacent blocks. Each merging candidate has coding parameters associated with it. If the current block 40 is to be merged with one of the merge candidates, the encoder 10 sets the coding parameters of the current block 40 according to the merge candidate. For example, the encoder 10 can set the coding parameters of the current block 40 to be equal to each merge candidate. That is, the encoder 10 can duplicate the coding parameters of the current block 40 from each merge candidate. Thus, for this portion of the set or list of merge candidates, the coding parameters of the merge candidates are directly adopted from the spatially and / or temporally adjacent blocks, or the coding parameters of each merge candidate are obtained from the coded data of such spatially and / or temporally adjacent blocks by adopting them, i.e., by setting the merge candidate equal to them. However, on the other hand, the region change can be taken into account, for example, by scaling the adopted coding parameters according to the region change.For example, at least some of the coding parameters subject to merging may include motion parameters, but the motion parameters may relate to different reference image indices. More precisely, the motion parameters to be employed may relate to a particular time interval between the current image and the reference image, and when merging the current block with each merging candidate with the respective motion parameters, the encoder 10 may be configured to scale the motion parameters of each merging candidate to apply that time interval to the time interval selected for the current block.

[0018] In any case, the combination candidates described thus far have in common that they all have coding parameters associated with them, and there is a one-to-one relationship between these combination candidates and adjacent blocks. Therefore, combining a block 40 with any of these combination candidates can be thought of as combining these blocks into one or more groups of blocks 40, such that coding parameters, except for scaling adaptations, do not vary across the image 20 within these groups of blocks 40. In effect, combining any of these combination candidates reduces the granularity with which coding parameters vary across the image 20. Moreover, combining any of these combination candidates results in additional degrees of freedom in subdividing the image 20 into blocks 40 and groups of blocks 40, respectively. In this regard, combining blocks 40 into such groups of blocks can therefore be thought of as causing the encoder 10 to encode the image 20 using coding parameters that vary across the image 20 in units of these groups of blocks 40.

[0019] In addition to the merging candidates mentioned above, the encoder 10 may also add merging candidates to the set / list of merging candidates that are the result of combining the coding parameters of two or more adjacent blocks, such as their arithmetic mean, geometric mean or median of the coding parameters of the adjacent blocks.

[0020] In this way, the encoder 10 effectively reduces the granularity at which coding parameters are explicitly transmitted within the bitstream 30 compared to the granularity defined by the subdivision of the image 20 into blocks 40. Some of these blocks 40 use identical coding parameters, forming groups of blocks using the aggregation options outlined above. Some blocks are connected to each other by aggregation, but use different coding parameters that are correlated to each other by a function of their respective scaling adaptation and / or combination. Some blocks 40 are not subject to aggregation, and therefore the encoder 10 directly encodes their coding parameters into the bitstream 30.

[0021] The encoder 10 uses the coding parameters of the blocks 40 thus defined to determine a prediction signal for the image 20. The encoder 10 performs this determination of the prediction signal block by block, in that the prediction signal depends on the coding parameters associated with each block 40.

[0022] Another decision performed by the encoder 10 is whether the residual portion, i.e., the difference between the prediction signal and the original image content at each local portion of the current block 40, is to be transmitted in the bitstream 30. That is, the encoder 10 determines whether skip mode is to be applied to each block with respect to the block 40. If skip mode is applied, the encoder 10 will simply code the image 20 in the current portion 40 in the form of a prediction signal obtained from or according to the coding parameters associated with each block 40; if skip mode is not selected, the encoder 10 will code the image 20 into the bitstream 30 in the block 40 using both the prediction signal and the residual data.

[0023] To save bitrate for signaling decisions regarding integration and skip mode, encoder 10 commonly signals both decisions using one flag for block 40. More precisely, the common signaling can be implemented such that activation of both integration and skip mode is commonly indicated by a flag for each block 40 in bitstream 30 assuming a first possible flag state, while another flag state of that flag merely indicates to the decoder that neither integration nor skip mode is activated. For example, encoder 10 can decide to activate integration but deactivate skip mode for a particular block 40. In that case, encoder 10 uses a different flag state to signal deactivation of at least one of integration and skip mode within bitstream 30, while subsequently signaling activation of integration within bitstream 30 using, for example, a different flag. Therefore, encoder 10 only needs to transmit this additional flag for blocks 40 where integration and skip mode are not simultaneously activated. In the embodiments described further below, the first flag is referred to as mrg_cbf or skip_flag, while the supplemental integration indicator flag is referred to as mrg or merge_flag. It has been discovered by the present inventors that this common use of one signaling state to jointly signal integration and skip mode activation reduces the overall bit rate of bitstream 30.

[0024] With regard to the signaling states described above, it should be noted that such a signaling state can be determined by the state of one bit in bitstream 30. However, encoder 10 may be configured to entropy code bitstream 30, and thus the correspondence between the flag and the signaling state of bitstream 30 may be more complex. In that case, the state may correspond to one bit in bitstream 30 in the entropy-decoded domain. Furthermore, the signaling state may correspond to one of two states of a flag to which a coded word is assigned according to a variable-length coding scheme. In the case of arithmetic coding, the signaling state that commonly signals the activation of merge and skip modes may correspond to one of the symbols of the symbol alphabet underlying the arithmetic coding scheme.

[0025] As outlined above, encoder 10 signals simultaneous activation of integration and skip mode using a flag within bitstream 30. As outlined in more detail below, this flag may be transmitted within a syntax element having two or more possible states. This syntax element may, for example, signal other coding options as well, as explained in more detail below. However, in that case, one of the possible states of one or more syntax elements signals simultaneous activation. That is, whenever the just-mentioned syntax element of current block 40 assumes this predetermined possible state, encoder 10 thereby signals activation of both integration and skip mode. A decoder thus does not require further signaling regarding activation of integration and activation of skip mode, respectively.

[0026] With respect to the description outlined above, it should be noted that the division of image 20 into blocks 40 may not indicate the finest resolution at which coding parameters are determined for image 20. Rather, encoder 10 may accompany each block 40 with further partitioning information to signal within bitstream 30 one of the supported partitioning patterns for dividing current block 40 into sub-blocks 50 and 60, i.e., into sample subsets, respectively. In that case, simultaneous merge / skip decisions are performed by encoder 10 on a block-by-block basis, but coding parameters accompanying, for example, separate auxiliary merge and / or skip mode decisions are defined for image 20 on a block-by-block basis, i.e., sub-blocks 50 and 60, for block 40 shown as an example in FIG. 1 . Naturally, the non-partitioning mode may indicate one of the supported partitioning patterns, thereby resulting in encoder 10 simply determining one set of coding parameters for block 40. Regardless of the number of sub-blocks 50 and 60 of each partitioning pattern, the merging decision may apply to all sub-blocks, i.e., to one or more of them. That is, if merging is activated for block 40, this activation may be valid for all sub-blocks. According to an embodiment outlined further below, the above-mentioned common state jointly signaling activation of merging and skip mode may additionally simultaneously signal a non-splitting pattern among the supported partitioning patterns for the current block 40, such that if a flag or syntax element assumes this state, no further transmission of partitioning information for the current block is necessary. Of course, alternatively, any other partitioning pattern among the supported partitioning patterns may be indicated simultaneously in addition to activation of merging and skip mode.

[0027] According to some embodiments of the present application, the encoder 10 avoids the bit efficiency penalty resulting from the common use of block partitioning of the block 40 and the consolidation of the sub-blocks 50 and 60. More precisely, the encoder 10 may determine whether further partitioning the block 40 is better, e.g., in terms of rate-distortion optimization, and which of the supported partitioning patterns should be used for the current block 40 in order to apply the granularity to which specific coding parameters are set or defined within the current block 40 of the image 20. As outlined in more detail below, the coding parameters may indicate prediction parameters, such as inter-prediction parameters. Such inter-prediction parameters may include, e.g., reference image indices, motion vectors, etc. Supported partitioning patterns may include, for example, a non-partitioning mode, i.e., an option in which the current block 40 is not further subdivided; a horizontally partitioning mode, i.e., an option in which the current block 40 is subdivided into an upper or top portion and a lower or bottom portion along a horizontally extending line; and a vertically partitioning mode, i.e., an option in which the current block 40 is vertically subdivided into a left portion and a right portion along a vertically extending line. In addition, supported partitioning patterns may also include an option in which the current block 40 is further regularly subdivided into four additional blocks, each considered to be one-quarter of the current block 40. Furthermore, the partitioning may concern all blocks 40 of the image 20, or only a suitable subset thereof, such as those having a particular coding mode associated therewith, such as an inter-prediction mode. It should be noted that integration, by itself, may only be available for certain blocks, e.g., those coded in an inter-prediction mode. According to an embodiment outlined further below, the commonly interpreted state described above also simultaneously signals that each block is in inter prediction mode rather than intra prediction mode.Thus, one state of the flag described above for block 40 may signal that this block is an inter-predictive coded block that is not further divided and for which both merging and skip mode are activated. However, as an auxiliary decision when the flag assumes another state, each partition or sample subset 50 and 60 may be simultaneously signaled individually by a further flag within bitstream 30 to signal whether merging is applied to each partition 50 and 60. Furthermore, different subsets of supported partition modes may be available for block 40, depending, for example, on the block size, the subdivision level of block 40 if it is a multi-tree subdivision leaf block, either in combination or individually.

[0028] That is, the subdivision of image 20 into blocks, in particular to obtain blocks 40, can be fixed or signaled within the bitstream. Similarly, the partitioning pattern used to further divide current blocks 40 can be signaled within bitstream 30 in the form of partitioning information. The partitioning information can thus be considered as a kind of extension of the subdivision of image 20 into blocks 40. On the other hand, the further relevance of the original granularity of the subdivision of image 20 into blocks 40 can still be maintained. For example, encoder 10 can be configured to signal within bitstream 30 the coding mode used for each portion or block 40 of image 20 at the granularity determined by the blocks 40, while encoder 10 can be configured to vary the coding parameters of each coding mode within each block 40 at an increased (finer) granularity determined by the respective partitioning pattern selected for each block 40. For example, coding modes signaled at the granularity of blocks 40 may distinguish between temporal inter-prediction modes, intra-prediction modes such as inter-view prediction modes, inter-prediction modes, etc. The types of coding parameters associated with one or more sub-blocks (partitions) resulting from the division of each block 40 depend on the coding mode assigned to each block 40. For example, for intra-coded blocks 40, the coding parameters may include spatial directions regarding which image content from a previously decoded portion of image 20 is used to fill each block 40. For inter-coded blocks 40, the coding parameters may include, among other things, motion vectors for motion-compensated prediction.

[0029] 1 illustrates, by way of example, the current block 40 as being subdivided into two sub-blocks 50 and 60. In particular, vertical partitioning mode is illustrated as an example. The smaller blocks 50 and 60 may also be referred to as sub-blocks 50 and 60, or partitions 50 and 60, or prediction units 50 and 60. In particular, when a signaled one of the supported partitioning patterns specifies a subdivision of the current block 40 into two or more further blocks 50 and 60, the encoder 10 may be configured to, for all further blocks other than the first sub-blocks 50 and 60 in coding order, exclude from the set of coding parameter candidates for each sub-block any coding parameter candidate that, when combined into each sub-block, is the same as a coding parameter associated with any of the sub-blocks in the supported partitioning patterns. More precisely, for each supported partitioning pattern, a coding order is defined among the resulting one or more partitions 50 and 60. 1, the coding order is indicated by arrow 70, which exemplarily defines that left partition 50 is coded before right partition 60. In the case of horizontal partitioning mode, it may be defined that the upper partition is coded before the lower partition. In any case, encoder 10 is configured, for the second partition 60 in coding order 70, to exclude from the set of coding parameter candidates for each second partition 60 those coding parameter candidates having coding parameters that are the same as the coding parameters associated with the first partition 50, in order to avoid the result of this merging, i.e., that both partitions 50 and 60 would in fact have the same coding parameters associated with them, which could equally well result from selecting a non-split mode for current block 40 at a lower coding rate.

[0030] More precisely, the encoder 10 may be configured to use block merging in an efficient manner in conjunction with block partitioning. As far as block merging is concerned, the encoder 10 may determine a respective set of coding parameter candidates for each partition 50 and partition 60. The encoder may be configured to determine the set of coding parameter candidates for each partition 50 and partition 60 based on coding parameters associated with previously decoded blocks. In particular, at least some of the coding parameter candidates in the set of coding parameter candidates may be equal to the coding parameters of a previously decoded partition, i.e., may be adopted from the coding parameters of a previously decoded partition. Additionally or alternatively, at least some of the coding parameter candidates may be obtained from the coding parameter candidates associated with two or more previously coded partitions by a suitable combination, such as median, average, etc. However, since encoder 10 is configured to perform the determination of a reduced set of coding parameter candidates and, if one or more such coding parameter candidates remain after the elimination, the selection of one of the remaining non-eliminated coding parameter candidates for each partition 60 other than the first, to set the coding parameters associated with each partition depending on the one non-eliminated or selected coding parameter candidate, encoder 10 is configured to perform the elimination in such a way that coding parameter candidates that would effectively lead to the recombination of partition 50 and partition 60 are eliminated, thereby effectively avoiding a collection of syntaxes that make an efficient partitioning situation more complex to code than if this partitioning were directly signaled using only partition information.

[0031] Furthermore, as the set of coding parameter candidates becomes smaller, the amount of side information required to encode the integration information into bitstream 30 may decrease due to the smaller number of elements in these candidate sets. In particular, because a decoder can determine and then reduce the set of coding parameter candidates in the same way as the encoder of FIG. 1 does, encoder 10 of FIG. 1 can utilize a reduced set of coding parameter candidates, for example, using fewer bits to insert syntax elements into bitstream 30 to identify which of the remaining coding parameters are to be used for integration. Naturally, the introduction of syntax elements into bitstream 30 can be suppressed entirely if the number of remaining coding parameter candidates for each partition is simply one. In any case, by virtue of the integration, i.e., by setting the coding parameters associated with each partition depending on a remaining, or selected, one of the remaining coding parameter candidates, encoder 10 can suppress the entirely new insertion of coding parameters for each partition into bitstream 30, thereby similarly reducing the side information. According to some embodiments of the present application, the encoder 10 may be configured to signal within the bitstream 30 refinement information for refining one of the remaining or selected coding parameter candidates for each partition.

[0032] Due to the above-mentioned possibility of reducing the list of merging candidates, the encoder 10 can be configured to determine merging candidates to be eliminated by comparing their coding parameters with the coding parameters of the partitions, whereby merging results in another supported partitioning pattern. For example, if the coding parameters of the left partition 50 form one element of the set of coding parameter candidates for the right partition 60, this method of processing coding parameter candidates effectively eliminates at least one coding parameter candidate in the case shown in FIG. 1. However, further coding parameter candidates may also be eliminated if they are equal to the coding parameters of the left partition 50. However, according to another embodiment of the present invention, the encoder 10 can be configured to determine a set of candidate blocks for each partition after the first one in coding order by removing that or those candidate blocks from this set of candidate blocks that, when merged into the respective partition, would result in one of the supported partitioning patterns. In a sense, this means that: Encoder 10 may be configured to determine combined candidates for each partition 50 or partition 60 (i.e., the first or next in coding order) such that each element of the candidate set has exactly one partition of either the current block 40 or a previously coded block 40 associated with it in that the candidate employs each coding parameter of its associated partition. For example, each element of the candidate set may be equal to, i.e., may be adopted from, one of such coding parameters of a previously coded partition, or at least may be derived from the coding parameters of exactly one such previously coded partition, such as by additional scaling or refinement using additionally transmitted refinement information.However, the encoder 10 may also be configured to add further elements or candidates to this type of candidate set, i.e., to add coding parameter candidates obtained from a combination of coding parameters of one or more previously coded partitions, or obtained by modification from the coding parameters of one previously coded partition, such as by taking only the coding parameters of one motion parameter list. For "combined" elements, there is no 1:1 association between the coding parameters of each candidate element and each partition. According to a first variant of the illustration of FIG. 1, the encoder 10 may be configured to remove all candidates from the entire candidate set, whose coding parameters are equal to the coding parameters of partition 50. According to a second variant of the illustration of FIG. 1, the encoder 10 may be configured to remove only elements of the candidate set associated with partition 50. Consistent with both views, the encoder 10 may be configured to remove candidates from a portion of the candidate set that exhibit a 1:1 association with some (e.g., adjacent) previously coded partition, without extending the removal (and the search for candidates with equal coding parameters) to the remaining portion of the candidate set with coding parameters obtained by the combination. But of course, if one combination also leads to a redundant representation, this can be resolved by removing the redundant coding parameters from the list or by performing a redundancy check on the combined candidates as well.

[0033] Before describing an embodiment of a decoder that fits the above embodiment of Figure 1, a more detailed embodiment of an apparatus for encoding, i.e., an encoder, according to Figure 1 will be outlined in more detail below with reference to Figure 2. Figure 2 shows a subdivider 72 configured to subdivide an image 20 into blocks 40 and aggregate the blocks 40 into groups of one or more sample sets, as outlined above. (merge)2 illustrates an encoder including a merger 74 configured to merge the image 20 into a subdivision group, an encoder or encoding stage 76 configured to encode the image 20 using encoding parameters that vary across the image 20 in units of groups of sample sets, and a stream generator 78. The encoder 76 is configured to encode the image 20 by predicting the image 20 and encoding the prediction residual for certain blocks. That is, the encoder 76 encodes the prediction residual for not all blocks 40, as described above; rather, some of them activate skip mode. The stream generator 78 is configured to insert the prediction residual and the encoding parameters into the bitstream 30, along with one or more syntax elements for at least a subset of the blocks 40, signaling whether each block 40 is merged into one of the groups with other blocks and whether each block uses skip mode. As described above, subdivision information underlying the subdivision of the subdivider 72 can be encoded into the bitstream 30 by the stream generator 78 for the image 20. This is indicated by the dashed lines in FIG. 2. The merger 74's merger decision and the encoder 76's skip mode decision are commonly coded into the bitstream 30 by the stream generator 78, as outlined above, such that one of the possible states of one or more syntax elements of the current block 40 signals that the block, together with another block of the image 20, is to be merged into one of the groups of blocks and has no prediction residual coded and inserted into the bitstream 30. The stream generator 78 may, for example, use entropy coding to perform the insertion. The subdivider 72 may be responsible for the subdivision of the image 20 into blocks 40, as well as any further division into partitions 50 and 60, respectively. The merger 74 is responsible for the merger decision outlined above, while the encoder 76 may, for example, determine the skip mode for the block 40.Naturally, all of these decisions affect the rate / distortion measure in combination, and therefore the apparatus 10 may be configured to try several decision options to see which option is preferable.

[0034] After describing an encoder according to an embodiment of the present invention with reference to Figures 1 and 2, an apparatus for decoding according to an embodiment, namely a decoder 80, will be described with reference to Figure 3. The decoder 80 of Figure 3 is configured to decode a bitstream 30 comprising an image 20 coded as described above. In particular, the decoder 80 is configured to respond in common to the above-mentioned flags in the bitstream 30 relating to a first decision, with respect to a current sample set or block 40, whether the coding parameters associated with the current block 40 will be set by a merging candidate or will be taken from the bitstream 30, and a second decision, with respect to whether the current block 40 of the image 20 will be reconstructed without residual data, based solely on a prediction signal according to the coding parameters associated with the current block 40, or whether it will be reconstructed within the bitstream 30 by refining the prediction signal according to the coding parameters associated with the current block 40 with residual data.

[0035] That is, the functionality of the decoder largely corresponds to that of the encoder described with reference to FIGS. 1 and 2. For example, the decoder 80 may be configured to perform a subdivision of the image 40 into blocks 40. This subdivision may be known to the decoder 80 by default, or the decoder 80 may be configured to extract each subdivision information from the bitstream 30. Whenever a block 40 is aggregated, the decoder 80 may be configured to obtain the coding parameters associated with that block 40 by setting its coding parameters according to the aggregation candidate. To determine the aggregation candidate, the decoder 80 may perform the above-outlined determination of a set or list of aggregation candidates in exactly the same way as the encoder did. This may even include reducing the prior set / list of aggregation candidates to avoid the above-outlined redundancy between block division and block aggregation, according to some embodiments of the present application. Whenever aggregation is activated, the decoder 80 may select from among the determined set or list of aggregation candidates by extracting each aggregation index from the bitstream 30. The merge index indicates the merge candidate to be used from the (reduced) set or list of merge candidates determined as described above. Furthermore, as also explained above, the decoder 80 can also be configured to subject the block 40 to a split according to one of the supported split patterns. Of course, one of these split patterns may include a non-split mode in which the block 40 is not further split. In the case of a well-defined flag indicating activation of the merge and skip mode for a particular block 40, the decoder 80 can be configured to reconstruct the current block 40 based solely on the prediction signal rather than in combination with any residual signal. In other words, the decoder 80 then suppresses residual data extraction for the current block 40 and only reconstructs the image 20 within the current block 40 by using the prediction signal extracted from the coding parameters of the current block.As already explained above, the decoder 80 may also interpret the common state of the flag as signaling for the current block 40 that this block is an inter-predicted block and / or a block that has not been further divided. That is, if the flag in question of the current block 40 in the bitstream 30 signals that the coding parameters associated with the current block 40 are to be set using merging, the decoder 80 may be configured to obtain the coding parameters associated with the current block 40 by setting these coding parameters according to the merging candidate and to reconstruct the current block 40 of the image 20 based solely on the prediction signal depending on the coding parameters of the current block 40 without any residual data. However, if the flag in question signals that the current block 40 is not subject to integration or that skip mode is not used, the decoder 80 may respond to another flag in the bitstream 30, so that the decoder 80 relies on this other flag to obtain the coding parameters associated with the current block by setting it with each integration candidate, obtain residual data for the current block from the bitstream 30, and reconstruct the current block 40 of the image 20 based on the prediction signal and the residual data, or extracts the coding parameters related to the current block 40 from the bitstream 30, obtains residual data for the current block 40 from the bitstream 30, and reconstructs the current block 40 of the image 20 based on the prediction signal and the residual data. As outlined above, the decoder 80 may be configured to predict the presence of another flag in the bitstream 30 only if the first flag does not assume a commonly signaling state that simultaneously signals the activation of integration and skip mode. Only then does decoder 80 extract another flag from the bitstream to see if consolidation occurs without skip mode.Of course, alternatively, decoder 80 can be configured to use this third flag to signal whether skip mode is active or inactive, and to wait for another third flag within bitstream 30 for current block 40 if the second flag signals inactive integration.

[0036] Similar to Fig. 2, Fig. 4 shows a possible implementation of an apparatus for decoding of Fig. 3. Accordingly, Fig. 4 shows an apparatus for decoding, i.e., a decoder 80, which includes a subdivider 82 configured to subdivide the image 20 encoded in the bitstream 30 into blocks 40, a merger 84 configured to combine the blocks 40 into groups of one or more blocks, a decoder 86 configured to decode or reconstruct the image 20 using coding parameters that vary across the image 20 in units of groups of sample sets, and an extractor 88. The decoder 86 is also configured to predict the image 20 with respect to a given block 40, i.e., one for which skip mode is switched off, decode the prediction residual for the given block 40, and decode the image 20 by combining the prediction residual with the prediction resulting from predicting the image 20. Extractor 88 is configured to extract prediction residuals and coding parameters from bitstream 30, along with one or more syntax elements for each of at least a subset of blocks 40, signaling whether each block 40 is to be merged into one of the groups with other blocks 40, where merger 84 is configured to perform the merging in response to one or more syntax elements, one of the possible states of which signals that each block 40 is to be merged into one of the groups of blocks with other blocks 40 and does not have prediction residuals coded and inserted into bitstream 30.

[0037] Thus, comparing Figure 4 with Figure 2, the subdivider 82 acts like the subdivider 72, undoing the subdivision generated by the subdivider 72. The subdivider 82 either knows about the subdivision of the image 20 by default or extracts the subdivision information from the bitstream 30 via the extractor 88. Similarly, the merger 84 forms a merger of the block 40 and is activated for the block 40 and block portions within the bitstream 30 via the signaling outlined above. The decoder 86 performs the generation of a prediction signal for the image 20 using the coding parameters within the bitstream 30. In case of merger, the decoder 86 either replicates the coding parameters of the current block 40 or the current block partition from the adjacent block / partition or otherwise sets its coding parameters according to the merger candidate.

[0038] As already outlined above, extractor 88 is configured to interpret one of the possible states of a flag or syntax element for the current block as a signal simultaneously signaling the activation of merge and skip modes. At the same time, extractor 88 can also interpret that state to signal a predefined one of the supported partitioning patterns for current block 40. For example, the predefined partitioning pattern can be a non-partitioning mode in which block 40 remains unpartitioned, thus forming a single partition itself. Therefore, extractor 88 expects that if the respective flags or syntax elements do not simultaneously assume the signaling states, bitstream 30 will simply include partitioning information signaling the partitioning of block 40. As outlined in more detail below, partitioning information can be conveyed within bitstream 30 via a syntax element that controls the coding mode of current block 40, i.e., splitting block 40 into inter-coded and intra-coded blocks in parallel. In that case, the common signaling state of the first flag / syntax element can also be interpreted as signaling an inter-prediction coding mode. For each partition resulting from the signaled partition information, the extractor 88 can extract a separate integration flag from the bitstream if the first flag / syntax element for the block 40 does not have a common signaling state that simultaneously signals activation of integration and skip mode. In that case, the skip mode can be necessarily interpreted by the extractor 88 as being switched off, and the residual signal is extracted from the bitstream 30 for this current block 40, although integration can be activated by the bitstream 30 for the partition individually.

[0039] 3 or 4 is configured to decode bitstream 30. As mentioned above, bitstream 30 may signal one of the supported partitioning patterns for current block 40 of image 20. If the signaled one of the supported partitioning patterns specifies a subdivision of current block 40 into two or more partitions 50 and 60, decoder 80 may be configured to, for all partitions other than the first one of the partitions in coding order 70, i.e., for partition 60 in the examples shown in FIGS. 1 and 3, exclude from the set of coding parameter candidates for each partition, coding parameter candidates that, when combined with the respective partition, have coding parameters that are the same as or equal to coding parameters associated with any of the partitions that are one of the supported partitioning patterns, i.e., one of the supported partitioning patterns that was not signaled in bitstream 30.

[0040] For example, the decoder 80 may be configured to set the coding parameters associated with each partition 60 depending on one of the non-removed coding parameter candidates if the number of non-removed coding parameter candidates is non-zero. For example, the decoder 80 may set the coding parameters of each partition 60 to be equal to one of the non-removed coding parameter candidates, with or without additional refinement and / or scaling by the temporal distance to which the coding parameters are associated. For example, a coding parameter candidate to be combined among the non-removed candidates may have a reference image index associated with it that is different from the reference image index explicitly signaled in the bitstream 30 for the partition 60. In that case, the coding parameters of the coding parameter candidates may define a motion vector associated with each reference image index, and the decoder 80 may be configured to scale the motion vector of the last-selected non-removed coding parameter candidate according to the ratio between both reference image indexes. Thus, according to the above-mentioned variant, the coding parameters following the combination include the motion parameters, while the reference image index is separated therefrom. However, as mentioned above, according to another embodiment, the reference image index can also be part of the coding parameters following the aggregation.

[0041] The fact that the merge behavior may be restricted to inter-predicted blocks 40 applies equally to the encoders of Figures 1 and 2 and the decoders of Figures 3 and 4. Thus, the decoder 80 and the encoder 10 may be configured to support intra- and inter-prediction modes for the current block 40 and to perform merging only if the current block 40 is coded in an inter-prediction mode. Therefore, only the coding / prediction parameters of such inter-predicted previously coded partitions can be used to determine / construct the candidate list.

[0042] As already mentioned above, the coding parameters may be prediction parameters, and decoder 80 may be configured to use the prediction parameters of partitions 50 and 60 to obtain a prediction signal for each partition. Of course, encoder 10 also performs the extraction of the prediction signal in the same way. However, encoder 10 additionally sets the prediction parameters together with all other syntax within bitstream 30 in order to obtain some optimization in the sense of appropriate optimization.

[0043] Furthermore, as already explained above, the encoder can be configured to insert an index into the (non-removed) coding parameter candidates only if the number of (non-removed) coding parameter candidates for each partition is greater than one. Thus, the decoder 80 can be configured to simply expect the bitstream 30 to include a syntax element specifying which of the (non-removed) coding parameter candidates will be used for the integration if the number of (non-removed) coding parameter candidates is greater than one, e.g., depending on the number of (non-removed) coding parameter candidates for partition 60. However, if the candidate set totals less than two, then combined coding parameters, i.e., those resulting from expanding the list / set of candidates using parameters obtained by combining coding parameters of one or more or more previously coded partitions, can generally be excluded by limiting the candidate set reduction to those candidates obtained by employing or extracting from coding parameters of only one previously coded partition, as described above. Similarly, the reverse is also possible, i.e., generally, to exclude all coding parameter candidates having the same value as that of a partition resulting in another supported partitioning pattern.

[0044] In terms of determination, the decoder 80 operates as the encoder 10 does. That is, the decoder 80 can be configured to determine a set of merging candidates for a partition or partitions of a block 40 based on coding parameters associated with previously decoded partitions. That is, the coding order is determined not only within the partitions 50 and 60 of each block 40, but also within the block 40 of the image 20 itself. All partitions coded before partition 60 thus serve as a basis for determining a set of merging candidates for any of the subsequent partitions, such as partition 60 in the case of FIG. 3. As also explained above, the encoder and decoder can limit the determination of the set of merging candidates to partitions in a particular spatial and / or temporal neighborhood. For example, the decoder 80 can be configured to determine a set of merging candidates based on coding parameters associated with previously decoded partitions that are adjacent to the current partition; such partitions can be located both outside and inside the current block 40. Of course, the determination of merging candidates can also be performed for the first partition in the coding order. Simply removing partitions may not be performed.

[0045] Consistent with the description of Figure 1, the decoder 80 can be configured to determine a set of candidate coding parameters for each non-first partition 60 from the initial set of previously decoded partitions, excluding those coded in intra-prediction mode.

[0046] Furthermore, if the encoder introduces segmentation information into the bitstream to segment the image 20 into blocks 40, the decoder 80 can be configured to restore this segmentation of the image 20 into such coded blocks 40 according to the segmentation information in the bitstream 30.

[0047] 1-4, it should be noted that the residual signal for the current block 40 can be transmitted via the bitstream 30 at a granularity that may differ from the granularity determined by the partitions with respect to the coding parameters. For example, for blocks for which skip mode is not activated, the encoder 10 of FIG. 1 can be configured to subdivide the block 40 into one or more transform blocks in a manner parallel to or independent of the division into partitions 50 and 60. The encoder can signal each transform block subdivision for the block 40 via further subdivision information. The decoder 80 can then be configured to undo this further subdivision of the block 40 into one or more transform blocks via the further subdivision information in the bitstream and extract the residual signal for the current block 40 from the bitstream in units of these transform blocks. The significance of the transform block division can be that a transform, such as a DCT in the encoder, and a corresponding inverse transform, such as an IDCT in the decoder, are performed individually within each transform block of the block 40. To reconstruct image 20 within block 40, encoder 10 combines, e.g., adds, the prediction and residual signals obtained by applying the coding parameters in each partition 50 and partition 60, respectively. Note, however, that residual coding does not involve a transform and an inverse transform, respectively, and the prediction residual is instead coded, e.g., in the spatial domain.

[0048] Before describing further possible details of further embodiments below, possible internal structures of the encoder and decoder of FIGS. 1-4 will be described with reference to FIGS. 5 and 6. However, mergers and subdividers are not shown in these figures to focus on the hybrid coding nature. FIG. 5 shows, by way of example, how encoder 10 may be internally constructed. As shown, encoder 10 may include a subtractor 108, a transformer 100, and a bitstream generator 102, which may perform entropy coding, as shown in FIG. 5. Elements 108, 100, and 102 are connected in series between an input 112 that receives image 20 and an output 114 that outputs the aforementioned bitstream 30. In particular, subtractor 108 has its non-inverting input connected to input 112, and transformer 100 is connected between the output of subtractor 108 and a first input of bitstream generator 102, which in turn has an output connected to output 114. 5 further includes an inverse transformer 104 and an adder 110, which are serially connected, in the order listed, to the output of the transformer 100. The encoder 10 further includes a predictor 106 connected between the output of the adder 110, a further input of the adder 110, and an inverting input of the subtractor 108.

[0049] The elements of FIG. 5 interact as follows: The predictor 106 predicts portions of the image 20 using the result of the prediction, i.e., the prediction signal, applied to the inverse input of the subtractor 108. The output of the subtractor 108 then indicates the difference between the prediction signal and each portion of the image 20, i.e., the residual signal. The residual signal is subjected to transform coding by the transformer 100. That is, the transformer 100 may perform a transform, such as a DCT, to obtain transform coefficient levels, and subsequent quantization on the transformed residual signal, i.e., the transform coefficients. The inverse transformer 104 reconstructs the final residual signal output by the transformer 100 to obtain a reconstructed residual signal that corresponds to the residual signal input to the transformer 100 except for information loss due to the quantization of the transformer 100. The addition of the reconstructed residual signal and the prediction signal as output by the predictor 106 results in a reconstruction of each portion of the image 20, which is sent from the output of the adder 110 to the input of the predictor 106. The predictor 106 operates in various modes as mentioned above, such as intra-prediction mode, inter-prediction mode, etc. The prediction mode and corresponding coding or prediction parameters applied by the predictor 106 to obtain a prediction signal are sent by the predictor 106 to the entropy coder 102 for insertion into the bitstream.

[0050] A possible implementation of the internal structure of the decoder 80 of Figures 3 and 4, corresponding to the possibilities shown in Figure 5 for the encoder, is shown in Figure 6. As shown, the decoder 80 may include a bitstream extractor 150, which may be implemented as an entropy decoder as shown in Figure 6, an inverse transformer 152, and an adder 154, which are connected, in that order, between an input 158 ​​and an output 160 of the decoder. The decoder of Figure 6 further includes a predictor 156 connected between the output of the adder 154 and its further input. The entropy decoder 150 is connected to a parameter input of the predictor 156.

[0051] Briefly, the function of the decoder in FIG. 6 is as follows: the entropy decoder 150 extracts all information contained in the bitstream 30. The entropy coding scheme used may be variable-length coding or arithmetic coding. The entropy decoder 150 thereby restores the residual signal from the bitstream representing the transform coefficient levels and sends it to the inverse transformer 152. Furthermore, the entropy decoder 150 functions as the extractor 88 described above, restoring all coding modes and associated coding parameters from the bitstream and sending them to the predictor 156. Additionally, segmentation and integration information are extracted from the bitstream by the extractor 150. The inverse transformed, i.e., reconstructed, residual signal and the prediction signal, as obtained from the predictor 156, are combined, e.g., summed, by the adder 154, and then the restored reconstructed signal is output at the output 160 and sent to the predictor 156.

[0052] As will be apparent from a comparison of FIGS. 5 and 6, elements 152, 154 and 156 correspond functionally to elements 104, 110 and 106 of FIG.

[0053] In the above description of Figures 1-6, several different possibilities were presented regarding possible subdivisions of image 20 and the corresponding granularity in varying some of the parameters related to encoding image 20. Such possibilities are also described with reference to Figures 7a and 7b. Figure 7a shows a portion of image 20. According to the embodiment of Figure 7a, the encoder and decoder are configured to first subdivide image 20 into tree root blocks 200. Such tree root blocks are shown in Figure 7a. The subdivision of image 20 into tree root blocks is regular, with rows and columns, as indicated by the dotted lines. The size of the tree root blocks 200 can be selected by the encoder and signaled to the decoder by the bitstream 30. Alternatively, the size of these tree root blocks 200 can be fixed by default. The tree root blocks 200 are then subdivided using a quadtree partition to yield the aforementioned differentiated blocks 40, sometimes referred to as coding blocks or coding units. These coding blocks or coding units are depicted by thin solid lines in Figure 7a. Thus, the encoder adds subdivision information to each tree root block 200 and inserts the subdivision information into the bitstream. This subdivision information indicates how the tree root block 200 is to be subdivided into blocks 40. It is at the granularity of these blocks 40, and in that unit, that the prediction mode changes within the image 20. As mentioned above, each block 40, or each block having a particular prediction mode, such as an inter prediction mode, is accompanied by partition information about which supported partition pattern is used for each block 40. However, in this regard, it should be recalled that, when adopting a common signaling state, the flags / syntax elements mentioned above can simultaneously signal one of the supported partition modes for each block 40, so that explicit transmission of separate partition information for each block 40 can be suppressed at the encoder side and therefore cannot be anticipated at the decoder side.In the case shown in FIG. 7a, the non-partition mode is selected for many of the coding blocks 40 so that the coding blocks 40 spatially correspond to the corresponding partitions. In other words, the coding blocks 40 are simultaneously partitions with their respective sets of prediction parameters associated therewith. The type of prediction parameters, in turn, depends on the mode associated with each coding block 40. However, other coding blocks are shown as being further divided, for example. The coding block 40 at the top right corner of the tree root block 200 is shown divided into, for example, four partitions, while the coding block at the bottom right corner of the tree root block 200 is shown vertically subdivided into two partitions, for example. The subdivision into partitions is indicated by dotted lines. FIG. 7a also shows the coding order within the partitions thus defined. As shown, a depth-first traversal order is used. Across tree root block boundaries, the coding order may proceed in a scan order in which the rows of the tree root block 200 are scanned row by row from top to bottom of the image 20. This method maximizes the likelihood that a particular partition has a previously coded partition adjacent to its upper and left boundaries. Each block 40, or each block with a particular prediction mode, such as an inter-prediction mode, can have a merge switch indicator in the bitstream indicating whether merge is enabled for the corresponding partition therein. It should be noted that the division of a block into partitions / prediction units can be limited to a division of at most two partitions, with the sole exception that this rule is only made with respect to the smallest possible block size of the block 40. This can avoid redundancy between the subdivision information for subdividing the image 20 into blocks 40 and the segmentation information for subdividing the block 40 into partitions when using quadtree subdivision to obtain the block 40. Alternatively, a division into only one or two partitions, with or without asymmetry, can be allowed.

[0054] Figure 7b shows a subdivision tree: the solid lines indicate the subdivision of the tree root block 200, while the dotted lines represent the division of the leaf blocks of the quad-tree subdivision, which are the coding blocks 40. That is, the division of the coding blocks represents a kind of extension of the quad-tree subdivision.

[0055] As already mentioned above, each coding block 40 may be subdivided in parallel into transform blocks, such that the transform blocks may represent different subdivisions of each coding block 40. The transformation for converting the residual signal of the coding block into each of these transform blocks, which are not shown in Figures 7a and 7b, may be performed separately.

[0056] Further embodiments of the present invention are described below. While the above embodiments have focused on the relationship between block merging and block division, the following description also includes aspects of the present invention related to other coding principles known in current codecs, such as skip / direct mode. Nevertheless, the following description should not be considered as merely describing another embodiment, i.e., an embodiment separate from the above. Rather, the following description also clarifies details of possible implementations related to the above embodiment. Therefore, the following description uses the reference numerals of the figures already shown above, so that each possible implementation described below also defines possible variations of the above embodiment. Most of these variations can be individually transferred to the above embodiment.

[0057] In other words, embodiments of the present application describe a method for reducing the rate of side information in image and video coding applications by combined signaling of integration and absence of residual data for a set of samples. In other words, the side information rate of image and video coding applications is reduced by combining syntax elements indicating the use of an integration scheme and syntax elements indicating the absence of residual data.

[0058] Furthermore, before describing these variations and further details, an overview regarding image and video codecs is given.

[0059] In image and video coding applications, a sample array associated with an image is typically partitioned into specific sets of samples (or sample sets), which may represent rectangular or square blocks or other collections of samples, including arbitrarily shaped regions, triangles, or other shapes. The subdivision of the sample array may be fixed by syntax, or the subdivision may be signaled (at least partially) within the bitstream. To keep the auxiliary information rate for signaling the subdivision information small, the syntax typically allows only a limited number of simple subdivision choices, such as subdivision of a block into smaller blocks. Commonly used partitioning schemes are the partitioning of a square block into four smaller square blocks, or into two rectangular blocks of the same size, or into two rectangular blocks of different sizes. Here, the actual partitioning used is signaled within the bitstream. Sample sets are associated with specific coding parameters, which may specify prediction information or a residual coding mode, etc. In video coding applications, partitioning is often done for motion representation. All samples of a block (within the partitioning pattern) are associated with the same set of motion parameters, which may include parameters specifying the type of prediction (e.g., List 0, List 1, or bidirectional prediction; and / or translational or affine prediction or prediction using a different motion model), parameters specifying the reference image to be used, parameters specifying the motion relative to the reference image that is typically transmitted as a difference to the predictor (e.g., a displacement vector, an affine motion parameter vector, or a motion parameter vector for another motion model), precision of the motion parameters (e.g., half-sample or quarter-sample precision), parameters specifying the weighting of the reference sample signals (e.g., for illumination compensation), or parameters specifying the interpolation filters used to obtain the motion-compensated prediction signal for the current block. It is assumed that individual coding parameters are transmitted for each sample set (e.g., to specify the prediction and / or residual coding).To obtain improved coding efficiency, the present invention presents a method and specific embodiments for combining two or more sample sets into so-called groups of sample sets. All sample sets in such a group share the same coding parameters, which can be transmitted together with one of the sample sets in the group. By doing this, the coding parameters do not have to be transmitted individually for each sample set in a group of sample sets; instead, the coding parameters are transmitted only once for the entire group of sample sets.

[0060] As a result, the auxiliary information rate for transmitting the coding parameters is reduced and the overall coding efficiency is improved. As an alternative approach, an additional refinement for one or more of the coding parameters can be transmitted for one or more of the sample sets of a group of sample sets. The refinement may be applied to all sample sets of the group or only to the sample set for which it is transmitted.

[0061] Some embodiments of the present invention combine the division of blocks into various sub-blocks 50, 60 (as described above) with the consolidation process. Typically, image or video coding systems support various partitioning patterns for blocks 40. As an example, a square block can be undivided, divided into four square blocks of the same size, divided into two rectangular blocks of the same size (the square block is divided vertically or horizontally), or divided into rectangular blocks of different sizes (vertically or horizontally). A typical partitioning pattern described is shown in FIG. 8. In addition to the above description, the partitioning can involve even more than one level of division. For example, a square sub-block can also optionally be further divided using the same partitioning pattern. A problem that arises when this type of partitioning process is combined with a consolidation process that allows a (square or rectangular) block to be consolidated with, for example, one of its neighboring blocks is that the resulting division can be obtained by different combinations of partitioning pattern and consolidation signal. Therefore, the same information can be transmitted in the bitstream using different codewords, which is clearly suboptimal in terms of coding efficiency. As a simple example, consider a square block that will not be further divided (as shown in the upper left corner of Figure 8). This division can be signaled directly by sending a syntax element that states that this block 40 will not be subdivided. However, the same pattern can also be signaled by sending a syntax element that specifies that this block will be subdivided, for example, into two vertically (or horizontally) arranged rectangular blocks 50, 60. We can then send merge information that specifies that the second of these rectangular blocks will be merged with the first, resulting in exactly the same division as when signaling that the block will not be further divided. The same can be achieved by first specifying that the block will be subdivided into four square sub-blocks, and then sending merge information that effectively merges all four of these blocks. This concept is clearly suboptimal (because we have different code words to signal the same thing).

[0062] Some embodiments of the present invention reduce the auxiliary information rate and thus increase coding efficiency due to the combination of the concept of providing different partitioning patterns for blocks and the concept of merging. Considering the example partitioning patterns in Figure 8, the "simulation" of blocks that have not been further divided by either of the partitioning patterns using two rectangular blocks can be avoided by prohibiting (i.e., excluding from the bitstream syntax specification) the case where a rectangular block is merged with the first rectangular block. Looking at the problem more deeply, it is possible to "simulate" a pattern that has not been subdivided by merging the second rectangular block with any other neighboring (i.e., rectangular block other than the first) rectangular block that is associated with the same parameters (e.g., information for specifying prediction) as the first rectangular block. When these merge parameters result in a pattern that can also be obtained by signaling one of the supported partitioning patterns, redundancy can be avoided by conditioning the transmission of merge information in such a way that the transmission of specific merge parameters is excluded from the bitstream syntax. For example, if the current division pattern specifies a subdivision into two rectangular blocks as shown in Figures 1 and 3, before sending the integration information for the second block, i.e., block 60 in the case of Figures 1 and 3, it can be checked which of the possible integration candidates has the same parameters (e.g., parameters for specifying a prediction signal) as the first rectangular block, i.e., block 50 in the case of Figures 1 and 3. Then, all candidates with the same motion parameters (including the first rectangular block itself) are removed from the set of integration candidates. The codeword or flag sent to signal the integration information is adapted to the resulting candidate set. If the candidate set is empty after the parameter check, the integration information cannot be sent. If the candidate set consists of just one entry, only whether the block is to be integrated is signaled, and the candidate does not need to be signaled, since it can be obtained on the decoder side, etc.As for the above example, the same concept is also used for a division pattern that divides a square block into four smaller square blocks. Here, the transmission of the integration flag is adapted in such a way that neither a division pattern that specifies no subdivision, nor two division patterns that specify subdivision into two rectangular blocks of the same size, can be achieved by combining the integration flags. Although the most common concept is described in the above example using a specific division pattern, it is clear that the same concept (which avoids the specification of a specific division pattern by combining other division patterns with corresponding integration information) can be used for other sets of division patterns.

[0063] Another aspect that needs to be considered is that the integrated concept is similar in some sense to the skip or direct mode found in video coding design. In skip / direct mode, essentially, motion parameters are not transmitted for the current block but are estimated from spatial and / or temporal neighbors. In a specific efficient concept of skip / direct mode, a list of motion parameter candidates (reference frame indexes, displacement vectors, etc.) is generated from spatial and / or temporal neighbors, and an index into this list specifying which of the candidate parameters will be selected is transmitted. For bidirectionally predicted blocks (or multiple hypothesis frames), separate candidates can be signaled for each reference list. Possible candidates include the block above the current block, the block to the left of the current block, the block to the upper left of the current block, the block to the upper right of the current block, the median predictor of various of these candidates, and the co-located block in one or more previous reference frames (or other already-coded blocks, or a combination obtained from already-coded blocks).

[0064] Combining Skip / Direct with the integration scheme means that a block can be coded using either Skip / Direct or Integration mode. Although the Skip / Direct and Integration schemes are similar, there are differences between the two schemes that are explained in more detail in Section 1. The main difference between Skip and Direct is that Skip mode also signals that no residual signal is transmitted. When the integration scheme is used, a flag is usually transmitted that signals whether the block contains transform coefficient levels other than 0.

[0065] To obtain improved coding efficiency, the embodiments described above and below combine the signaling of whether a sample set uses the coding parameters of another sample set with the signaling of whether no residual data is transmitted for the block. A combined flag indicates that the sample set uses the coding parameters of the other sample set and that no residual data is transmitted. For this case, only one flag needs to be transmitted instead of two.

[0066] As mentioned above, some embodiments of the present invention also provide the encoder with greater freedom to generate bitstreams, since the merging approach significantly increases the number of possibilities for selecting a partition for the image's sample array without introducing redundancy into the bitstream. Since the encoder can choose from more options, for example, to minimize a specific rate-distortion metric, coding efficiency can be improved. For example, some of the additional patterns (e.g., the patterns in FIG. 9) that may be exhibited by a combination of subdivision and merging can be additionally tested (using the corresponding block sizes for motion estimation and mode decision), and the best pattern provided by purely partitioning (FIG. 8) and by partitioning and merging (FIG. 9) can be selected based on a specific rate-distortion metric. In addition, for each block, merging with any of the already coded candidate sets can be tested for whether it results in a reduction in a specific rate-distortion metric, and the corresponding merging flag is set during the encoding process. In summary, there are several possibilities for operating the encoder. In a simple approach, the encoder can first determine the maximum subdivision of the sample array (as the highest-level coding scheme). It can then check, for each sample set, whether merging with another sample set or another group of sample sets reduces the particular rate-distortion cost measure. Here, the prediction parameters associated with the merged group of sample sets can be re-estimated (e.g., by performing a new motion search). Alternatively, the prediction parameters already determined for the current sample set and candidate sample sets (or groups of sample sets) for merging can be evaluated for the considered group of sample sets. In a more comprehensive approach, the particular rate-distortion cost measure can be evaluated for additional candidate groups of sample sets.As a special case, when testing various possible division patterns (see, for example, FIG. 8), some or all of the patterns that can be represented by a combination of division and merging (see, for example, FIG. 9) can be additionally tested. That is, for all of the patterns, a specific motion estimation and mode decision process is performed, and the pattern that obtains the smallest rate-distortion measure is selected. This process can also be combined with the low-complexity process described above. As a result, for the resulting block, it is additionally tested whether merging with already coded blocks (e.g., outside the patterns of FIG. 8 and FIG. 9) results in a reduction in the rate-distortion measure.

[0067] In the following, several possible detailed implementations for the above-outlined embodiments are described, such as with respect to the encoders of FIGS. 1, 2, and 5 and the decoders of FIGS. 3, 4, and 6. As already mentioned above, it can be used in image and video coding. As mentioned above, an image or a specific set of sample arrays for an image can be decomposed into blocks, which are associated with specific coding parameters. An image typically consists of multiple sample arrays. In addition, an image may be associated with additional auxiliary sample arrays, which can specify, for example, transparency information or a depth map. The sample arrays of an image (including auxiliary sample arrays) can be classified into one or more so-called plane groups, where each plane group consists of one or more sample arrays. The plane groups of an image can be coded independently or, if an image is associated with multiple plane groups, by prediction from other plane groups of the same image. Each plane group is typically decomposed into blocks. The blocks (or corresponding blocks of sample arrays) are predicted by inter-image prediction or intra-image prediction. The blocks can have different sizes and can be square or rectangular. The division of an image into blocks can be fixed by syntax, or it can be signaled (at least in part) within the bitstream. Often, syntax elements are transmitted that signal the subdivision of blocks of a given size. This type of syntax element can specify whether and how to subdivide into smaller blocks and is associated with coding parameters, e.g., for prediction purposes. An example of a possible division pattern is shown in FIG. 8. For all samples of a block (or the corresponding block of a sample array), the decoding of the associated coding parameters is specified in a specific way. In an example, all samples of a block are predicted using the same set of prediction parameters, such as a reference index (identifying a reference image in a set of already coded images), motion parameters (specifying a measure of the block's motion between the reference image and the current image), parameters for specifying an interpolation filter, an intra-prediction mode, etc.Motion parameters can be represented by a displacement vector with horizontal and vertical components, or by higher-order motion parameters, such as affine motion parameters consisting of six components. Multiple sets of specific prediction parameters (e.g., reference indices and motion parameters) can be associated with a block. For each set of these specific prediction parameters, an intermediate prediction signal for the block (or the corresponding block in the sample array) is generated, and the final prediction signal is constructed by combining the intermediate prediction signals, including superposing them. Corresponding weighting parameters and possibly a constant offset (added to the weighted sum) can be fixed with respect to the image, reference image, or set of reference images, or they can be included in the set of prediction parameters for the corresponding block. The difference between the original block (or the corresponding block in the sample array) and its prediction signal (also called the residual signal) is usually transformed and quantized. Often, a two-dimensional transform is applied to the residual signal (or the corresponding sample array for the residual block). For transform coding, the block (or the corresponding block in the sample array) for which a specific set of prediction parameters was used can be further divided before applying the transform. A transform block can be equal to or smaller than the block used for prediction. It is also possible for a transform block to contain two or more of the blocks used for prediction. Different transform blocks can have different sizes, and a transform block can represent a square or rectangular block. In the above example with reference to FIGS. 1 to 7, it was noted that the leaf node of the first subdivision, i.e., the coding block 40, can be further divided in parallel into partitions, which define the granularity of the coding parameters, on the one hand, and into transform blocks, to which a two-dimensional transform is individually applied, on the other hand. After transformation, the resulting transform coefficients are quantized, and so-called transform coefficient levels are obtained. The transform coefficient levels as well as the prediction parameters and, if present, the subdivision information, are entropy coded. In particular, the coding parameters for a transform block are called residual parameters.The residual parameters as well as the prediction parameters and, if present, the segmentation information may be entropy coded. In state-of-the-art video coding standards such as H.264, a flag called the coded block flag (CBF) may signal that all transform coefficient levels are 0 and therefore the residual parameters are not coded. According to the present invention, this signaling is combined with the joint activation signaling.

[0068] In state-of-the-art image and video coding standards, the possibilities for subdividing an image (or a group of planes) into blocks provided by the syntax are very limited. Usually, it can only be specified whether (and sometimes how) a block of a predetermined size can be subdivided into smaller blocks. For example, the maximum block size in H.264 is 16x16. 16x16 blocks are also called macroblocks, and each image is divided into macroblocks in the first step. For each 16x16 macroblock, it can be signaled whether it is coded as a 16x16 block, as two 16x8 blocks, as two 8x16 blocks, or as four 8x8 blocks. If a 16x16 block is subdivided into four 8x8 blocks, each of these 8x8 blocks can be coded as one 8x8 block, as two 8x4 blocks, as two 4x8 blocks, or as four 4x4 blocks. The small set of possibilities for specifying block partitions in state-of-the-art image and video coding standards has the advantage that the auxiliary information rate for signaling subdivision information can be kept small, but the disadvantage is that the bit rate required to transmit prediction parameters for a block can become significant, as explained below. The auxiliary information rate for signaling prediction information usually accounts for a significant amount of the overall bit rate for a block. When this auxiliary information is reduced, coding efficiency can be increased, which can be achieved, for example, by using larger block sizes. It is also possible to increase the set of supported partitioning patterns compared to H.264. For example, the partitioning patterns shown in FIG. 8 can be provided for square blocks of all sizes (or a selected size). Real images or pictures of video sequences consist of arbitrarily shaped objects with specific properties. For example, such objects or parts of objects can be characterized by unique textures or unique motion.Typically, the same set of prediction parameters can be used for this type of object or part of an object. However, object boundaries usually do not coincide with the possible block boundaries for larger prediction blocks (e.g., 16x16 macroblocks in H.264). The encoder typically determines the subdivision (among a limited set of possibilities) that minimizes a particular rate-distortion cost metric. For arbitrarily shaped objects, this results in a large number of small blocks. This statement also holds when more partitioning patterns are provided (as described above). It should be noted that the number of partitioning patterns should not be too large, since a lot of side information and / or encoder / decoder computational overhead would be required to transmit and process these patterns. Thus, arbitrarily shaped objects can often result in a large number of small blocks due to partitioning. And because each of these small blocks is associated with a set of prediction parameters that needs to be transmitted, the side information rate can become a significant portion of the overall bitrate. However, because some of the small blocks still represent the same object region or part of the object, the prediction parameters for the multiple resulting blocks are the same or very similar. Intuitively, coding efficiency can be increased when the syntax is extended in a way that not only allows subdividing a block but also allows merging two or more blocks obtained after subdivision. As a result, a group of blocks is obtained that are coded with the same prediction parameters. The prediction parameters for such a group of blocks need only be coded once. In the above example of FIGS. 1-7, for example, when merging occurs, the coding parameters for the current block 40 are not transmitted. That is, the encoder does not transmit the coding parameters associated with the current block, and the decoder does not expect the bitstream 30 to include coding parameters for the current block 40. Rather, according to that particular embodiment, only refinement information may be conveyed for the merged current block 40.The determination of candidate sets and their reduction and merging etc. is performed for other coding blocks 40 of the image 20. The coding blocks somehow form groups of coding blocks along the coding chain, where the coding parameters for these groups are transmitted in their entirety only once in the bitstream.

[0069] The described merging results in increased coding efficiency if the bitrate saved by reducing the number of coding prediction parameters is greater than the bitrate additionally spent on encoding the merging information. It should be further noted that the described syntax extension (for merging) provides the encoder with additional freedom in selecting the division of an image or a group of planes into blocks without introducing redundancy. The encoder is not restricted to first performing subdivision and then checking whether some of the resulting blocks have the same set of prediction parameters. As a simple variant, the encoder can first determine the subdivision as a state-of-the-art coding technique. Then, for each block, it can check whether merging with one of its neighboring blocks (or associated already-determined groups of blocks) reduces the rate-distortion cost metric. In this case, the prediction parameters associated with the new group of blocks can be re-estimated (e.g., by performing a new motion search), or the prediction parameters already determined for the current block and neighboring blocks or groups of blocks can be evaluated for the new group of blocks. The encoder can also directly check (a subset of) the patterns provided by the combination of partitioning and merging. That is, motion estimation and mode decision can be made on the resulting shape as already described above. The integration information can be signaled on a block basis. In fact, the integration can also be interpreted as the result of estimating prediction parameters for the current block, where the estimated prediction parameters are set equal to the prediction parameters of one of the neighboring blocks.

[0070] For modes other than skip, an additional flag such as CBF is needed to signal that no residual signal is transmitted. The H.264 state-of-the-art video coding standard has two variants of the skip / direct mode: temporal direct mode and spatial direct mode, which are selected at the picture level. Both direct modes are only applicable to B pictures. In temporal direct mode, the reference index for reference picture list 0 is set equal to 0, and the reference index for reference picture list 1 as well as the motion vectors for both reference lists are obtained based on the motion data of the co-located macroblock of the first reference picture in reference picture list 1. The temporal direct mode uses the motion vector from the temporal collocated block and scales the motion vector according to the temporal distance between the current block and its co-located block. In spatial direct mode, the reference index and motion vector for both reference picture lists are essentially estimated based on the motion data in the spatial neighborhood. The reference index is selected as the minimum value of corresponding reference indexes in the spatial neighborhood, and each motion vector component is set equal to the median value of corresponding motion vector components in the spatial neighborhood. Skip mode can only be used to encode 16x16 macroblocks in H.264 (in P and B pictures), while direct mode can be used to encode 16x16 macroblocks or 8x8 sub-macroblocks. In contrast to direct mode, when merging is applied to the current block, all prediction parameters can be duplicated from the block to which the current block is merged. Merging can also be applied to any block size, resulting in the more flexible partitioning pattern described above, where all samples of one pattern are predicted using the same prediction parameters.

[0071] The underlying concept of the embodiments outlined above and below is to reduce the bit rate required to transmit the CBF flag by combining the aggregation and CBF flags: if a sample set uses aggregation and no residual data is transmitted, one flag is transmitted signaling both.

[0072] To reduce the supplemental information rate in image and video coding applications, a specific set of samples (which may represent a rectangular or square block, an arbitrarily shaped region, or other collection of samples) is usually associated with a specific set of coding parameters. For each of these sample sets, coding parameters are included in the bitstream. The coding parameters may indicate prediction parameters, which specify how the corresponding set of samples is predicted using already coded samples. The division of the image's sample array into sample sets may be fixed by syntax or signaled by corresponding subdivision information in the bitstream. Multiple division patterns for one block may be allowed. The coding parameters for a sample set are transmitted in a predetermined order given by the syntax. For the current set of samples, it may be signaled that it is to be merged with one or more other sample sets (e.g., for prediction purposes) into a group of sample sets. The possible set of values ​​for the corresponding merge information may apply to the adopted division pattern in a way that a specific division pattern cannot be indicated by the combination of other division patterns and corresponding merge data. The coding parameters for a group of sample sets need only be transmitted once. In addition to prediction parameters, residual parameters (e.g., transform and quantization auxiliary information and transform coefficient levels) can be transmitted. If the current sample set is to be merged, auxiliary information indicating the merge process is transmitted. This auxiliary information is further referred to as merge information. The embodiments described above and below describe a concept in which the signaling of merge information is combined with the signaling of coded block flags (specifying whether residual data is present for a block).

[0073] In a special embodiment, the integration information includes a combined, so-called mrg_cbf flag, which is equal to 1 if the current sample set is integrated and no residual data is transmitted. In this case, no further coding or residual parameters are transmitted. If the combined mrg_cbf flag is equal to 0, another flag is coded indicating whether integration is applied. Additionally, a flag indicating that no residual parameters are transmitted is coded. In CABAC and context-adaptive VLC, the context for derivation of probabilities (and VLC table switching) for syntax elements associated with the integration information can be selected as a function of already transmitted syntax elements and / or decoding parameters (e.g., the combined mrg_cbf flag).

[0074] In a preferred embodiment, the integration information, including the combined mrg_cbf flags, is coded before the coding parameters (eg, prediction information and segmentation information).

[0075] In a preferred embodiment, the integration information, including the combined mrg_cbf flag, is coded after a subset of the coding parameters (e.g., prediction information and refinement information). For all sample sets resulting from the refinement information, the integration information can be coded.

[0076] In the embodiment described further below with respect to Figures 11 to 13, mrg_cbf is called skip_flag. Typically, mrg_cbf can be called merge_skip to indicate that it is another version of skip associated with block merging.

[0077] The following preferred embodiment is described with respect to sets of samples representing rectangular and square blocks, but it can be extended in a straightforward manner to arbitrarily shaped regions or other collections of samples. The preferred embodiment shows a combination of syntax elements associated with a merging scheme and syntax elements indicating the absence of residual data. The residual data can include residual auxiliary information as well as transform coefficient levels. For the preferred embodiment, the absence of residual data is also specified by a coded block flag (CBF), but it can be expressed by other means or flags as well. A CBF equal to 0 relates to the case where no residual data is transmitted.

[0078] 1. Combination of Integration Flag and CBF Flag Below, the flag that activates the auxiliary merge is called mrg, but later with respect to Figures 11 to 13, it will be called merge_flag. Similarly, the merge index is currently called mrg_idx, but later merge_idx will be used.

[0079] The possible combinations of integration and CBF flags using one syntax element are described in this section. The description of the possible combinations outlined below can be translated into any of the descriptions shown in Figures 1-6 and described above.

[0080] In a preferred embodiment, up to three syntax elements are transmitted to specify the integration information and the CBF.

[0081] The first syntax element (hereafter referred to as mrg_cbf) specifies whether the current set of samples is to be merged with other sample sets and whether all corresponding CBFs are equal to 0. The mrg_cbf syntax element can only be coded if the extracted set of candidate sample sets is non-empty (after possible elimination of candidates that would result in a split that could be signaled by a different splitting pattern without merging). However, it can be guaranteed by default that the list of merge candidates never disappears, i.e., there is at least one or at least two available merge candidates. In a preferred embodiment of the present invention, if the extracted set of candidate sample sets is non-empty, the mrg_cbf syntax element is coded as follows:

[0082] If the current block is aggregated and the CBF is equal to 0 for all components (e.g., luminance and two chrominance components), the mrg_cbf syntax element is set to 1 and coded. Otherwise, the mrg_cbf syntax element is set equal to 0 and coded.

[0083] The values ​​0 and 1 for the mrg_cbf syntax element can also be toggled.

[0084] A second syntax element, also called mrg, specifies whether the current set of samples is to be merged with another set of samples. If the mrg_cbf syntax element is equal to 1, the mrg syntax element is not coded and is instead presumed to be equal to 1. If the mrg_cbf syntax element is absent (because the extracted set of candidate samples is empty), the mrg syntax element is also absent and is presumed to be equal to 0. However, it can be guaranteed by default that the list of merging candidates never runs out, i.e., there is at least one or at least two available merging candidates.

[0085] A third syntax element, also called mrg_idx, which is encoded only if the mrg syntax element is equal to 1 (or presumed to be equal to 1), identifies which of the set of candidate sample sets is to be employed for merging. In a preferred embodiment, the mrg_idx syntax element is only encoded if the extracted set of candidate sample sets includes one or more candidate sample sets. In another preferred embodiment, the mrg_idx syntax element is only encoded if at least two sample sets of the extracted set of candidate sample sets are associated with different coding parameters.

[0086] It should be noted that the combined candidate list can even be fixed to separate parsing and reconstruction, improving parsing performance and making it more robust with respect to information loss. More precisely, this separation can be ensured by using a fixed allocation of list entries and coded words. This does not require fixing the list length. However, simultaneously fixing the list length by adding additional candidates makes it possible to compensate for the coding efficiency loss of fixed (longer) coded words. Thus, as mentioned above, the combined index syntax element can only be transmitted if the list of candidates contains one or more candidates. However, this would require extracting the list before parsing the combined index, which would prevent these two processes from being performed simultaneously. To enable increased parsing throughput and make the parsing process more robust with respect to transmission errors, it is possible to remove this dependency by using a constant coded word per index value and a fixed number of candidates. If this number cannot be reached by candidate selection, it is possible to extract auxiliary candidates to complete the list. These additional candidates can include so-called combined candidates, which are constructed from the motion parameters of possibly different candidates already in the list, and zero motion vectors.

[0087] In a preferred embodiment, the joint information for a set of samples is encoded after a subset of prediction parameters (or, more generally, specific coding parameters associated with the sample set) has been transmitted. The subset of prediction parameters may consist of one or more reference image indices, or one or more components of a motion parameter vector or reference image indices and one or more components of a motion parameter vector, etc.

[0088] In a preferred embodiment, the mrg_cbf syntax element of the integration information is coded only for a reduced set of partition modes. The possible set of partition modes is shown in Figure 8. In a preferred embodiment, this reduced set of partition modes is limited to one and corresponds to the first partition mode (top left of the list in Figure 8). For example, mrg_cbf is coded only if the block is not further divided. As a further example, mrg_cfb can be coded only for square blocks.

[0089] In another preferred embodiment, the mrg_cbf syntax element of the integration information is coded only for one block of a partition where this partition is one of the possible partition modes shown in Figure 8, for example, the partition mode using the bottom left four blocks. In a preferred embodiment, if there are more than one block combined in one of these partition modes, the integration information of the first combined block (in decoding order) includes the mrg_cbf syntax element for the entire partition. For all other blocks of the same partition mode that are subsequently decoded, the integration information only includes an mrg syntax element specifying whether the current set of samples is combined with another sample set. Information on whether residual data is present is inferred from the mrg_cbf syntax element coded in the first block.

[0090] In a further preferred embodiment of the present invention, the integration information for a set of samples is coded before the prediction parameters (or, more generally, the specific coding parameters associated with the sample set). The integration information, including the mrg_cbf, mrg, and mrg_idx syntax elements, is coded in the same manner as described in the first preferred embodiment above. The prediction or coding parameters and residual parameters are only transmitted if the integration information signals that the current set of samples is not integrated with other sets of samples and that, for at least one of the components, the CBF is equal to 1. In a preferred embodiment, if the mrg_cbf syntax element specifies that the current block is integrated and that the CBF for all components is equal to zero, no signaling is needed after the integration information for this current block.

[0091] In another preferred embodiment of the present invention, the syntax elements mrg_cbf, mrg, and mrg_idx are combined and coded as one or two syntax elements. In a preferred embodiment, mrg_cbf and mrg are combined into one syntax element, which specifies one of the following cases: (a) the blocks are combined and do not contain residual data, (b) the blocks are combined and contain (or may contain) residual data, or (c) the blocks are not combined. In another preferred embodiment, the syntax elements mrg and mrg_idx are combined into one syntax element. If N is the number of combination candidates, the combined syntax element specifies one of the following cases: the blocks are not combined, the blocks are combined into candidate 1, the blocks are combined into candidate 2, ..., the blocks are combined into candidate N. In a further preferred embodiment of the present invention, the syntax elements mrg_cfb, mrg, and mrg_idx are combined into one syntax element, which specifies one of the following cases (with N being the number of candidates): the block is not merged, the block is merged into candidate 1 and does not contain residual data, the block is merged into candidate 2 and does not contain residual data, ..., the block is merged into candidate N and does not contain residual data, the block is merged into candidate 1 and does (or may) contain residual data, the block is merged into candidate 2 and does (or may) contain residual data, ..., the block is merged into candidate N and does (or may) contain residual data. The combined syntax element can be transmitted by variable length coding, or by arithmetic coding, or by binary arithmetic coding using any specific binarization scheme.

[0092] 2. Combination of Integrated Flag and CBF Flag and Skip / Direct Mode SKIP / DIRECT mode may be supported for all or only specific block sizes and / or block shapes. In an extension of SKIP / DIRECT mode as specified in the state-of-the-art video coding standard H.264, a set of candidate blocks is used for SKIP / DIRECT mode. The difference between SKIP and DIRECT is whether residual parameters are sent. SKIP and DIRECT parameters (e.g., related to prediction) can be estimated from any of the corresponding candidates. A candidate index signaling which candidate is used to estimate the coding parameters is coded. When multiple predictions are combined to form the final prediction signal for the current block (such as bidirectionally predictive blocks used in H.264 B-frames), every prediction can relate to a different candidate. Thus, for every prediction, a candidate index can be coded.

[0093] In a preferred embodiment of the present invention, the candidate list for Skip / Direct may contain different candidate blocks than the candidate list for Integrated mode. An example is shown in Figure 10. The candidate list may contain the following blocks (the current block is denoted by Xi): ●Motion Vector (0,0) ●Median (between Left, Above, and Corner) ●Left block(Li) ●Above block (Ai) Corner blocks (in order: Above Right (Ci1), Below Left (Ci2), Above Left (Ci3)) Collocated blocks of different but already coded images

[0094] The following symbols are used to describe the following embodiments: set_mvp_ori is the set of candidates used for skip / direct mode. This set consists of {Median, Left, Above, Corner, Collocated}. Median is the median (the middle value of the ordered set of Left, Above, Corner), and collocated is given by the nearest reference frame (or the first reference image in one of the reference image lists), with the corresponding motion vector scaled according to the temporal distance. For example, if there are no Left, Above, or Corner blocks, a motion vector with both components equal to 0 can be additionally inserted into the list of candidates. ●set_mvp_comb is a subset of set_mvp_ori.

[0095] In a preferred embodiment, both skip / direct and block merge modes are supported. Skip / direct mode uses the original set of candidates, set_mvp_ori. The merge information associated with block merge mode may include the combined mrg_cbf syntax element.

[0096] In another embodiment, both Skip / Direct and Block Merging modes are supported, but Skip / Direct mode uses a modified set of candidates, set_mvp_comb. This modified set of candidates can be a specific subset of the original set, set_mvp_ori. In a preferred embodiment, the modified set of candidates consists of corner blocks and collocated blocks. In another embodiment, the revised set of candidates consists only of collocated blocks. Further subsets are possible.

[0097] In another embodiment, integration information containing the mrg_cbf syntax element is encoded before the parameters associated with the skip mode.

[0098] In another embodiment, the parameters associated with the skip mode are coded before the integration information containing the mrg_cbf syntax element.

[0099] According to another embodiment, direct mode may not be activated (exist) and block consolidation has an expanded set of candidates with skip mode replaced with mrg_cbf.

[0100] In a preferred embodiment, the candidate list for block consolidation can include different candidate blocks. An example is shown in Figure 10. The candidate list can include the following blocks (current blocks are denoted by Xi): ●Motion Vector (0,0) ●Left block(Li) ●Above block (Ai) Collocated blocks of different but already coded images Corner blocks (in order: Above Right (Ci1), Below Left (Ci2), Above Left (Ci3)) Combined bidirectional predictive candidates Unscaled bidirectional predictive candidates

[0101] It should be mentioned that the candidate locations for block consolidation can be the same as the list of MVPs for inter prediction to save memory access.

[0102] Additionally, the list can be "fixed" in the manner outlined above to separate parsing and reconstruction to improve parsing throughput and make it more robust with respect to information loss.

[0103] 3. CBF Encoding In a preferred embodiment, when the mrg_cfb syntax element is equal to 0 (which signals that the block is not aggregated or that it contains non-zero residual data), a flag is sent signaling whether all components of the residual data (e.g., luma and two chroma components) are zero. When mrg_cfb is equal to 1, this flag is not sent. In a specific configuration, when mrg_cfb is equal to 0, this flag is not sent and the syntax element mrg specifies that the block is aggregated.

[0104] In another preferred embodiment, when the mrg_cfb syntax element is equal to 0 (which signals that the block is not aggregated or that it contains non-zero residual data), several syntax elements for each component are sent that signal whether the residual data for the component is zero or not.

[0105] Different context models can be used for mrg_cbf.

[0106] Thus, the above embodiment, in particular, a subdivider configured to subdivide the image into a sample set of samples; a merger configured to merge the sample sets into one or more independent sets of sample sets, respectively; an encoder configured to encode an image using coding parameters that vary across the image in units of independent sets of sample sets, the encoder configured to encode the image by predicting the image and encoding a prediction residual for a given sample set; and a stream generator configured to insert prediction residuals and coding parameters into a bitstream, as well as one or more syntax elements for each of at least a subset of the sample sets that signal whether each sample set is aggregated with other sample sets into one of the independent sets.

[0107] Further described is an apparatus for decoding a bitstream having an image encoded therein, comprising: a subdivider configured to subdivide the image into a sample set; mergers each configured to merge the sample sets into one or more independent sets of sample sets; a decoder configured to decode an image using coding parameters that vary across the image in units of independent sets of sample sets, said decoder configured to decode the image by predicting the image with respect to a predetermined sample set, decoding a prediction residual for the predetermined sample set, and combining the prediction residual with a prediction resulting from predicting the image; an extractor configured to extract prediction residuals and coding parameters from the bitstream, together with one or more syntax elements for each of at least a subset of the sample sets signaling whether each sample set is to be merged with other sample sets into one of the independent sets, the extractor configured to perform the merging in response to the syntax elements.

[0108] One of the possible states of one or more syntax elements signals that each sample set is to be combined with another sample set into one of the independent sets and has no prediction residual coded and inserted into the bitstream.

[0109] The extractor may also be configured to extract the delineation information from the bitstream, and the subdivider may be configured to subdivide the image into sample sets in response to the delineation information.

[0110] The extractor and merger may, for example, proceed sequentially through the sample sets according to the sample set traversal order, and for the current sample set: Extracting a first binary syntax element (mrg_cbf) from the bitstream; If the first binary syntax element assumes a first binary state, consolidate the current sample set by estimating that the current sample set is one of the independent sets and that the coding parameters for the current sample set are equal to the coding parameters associated with this independent set, skip extracting a prediction residual for the current sample set, and proceed to the next sample set in the sample set scanning order; extracting a second syntax element (mrg, mrg_idx) from the bitstream if the first binary syntax element assumes a second binary state; The method may be configured to extract at least one further syntax element related to a prediction residual for the current sample set in response to the second syntax element and to integrate the current sample set into one of the independent sets or to perform extraction of coding parameters for the current sample set by estimating that the coding parameters for the current sample set are equal to the coding parameters associated with this independent set.

[0111] The one or more syntax elements for each of at least a subset of the sample sets may also signal which of the predefined candidate sample sets adjacent to each sample set will be combined with each sample set if the sample set is to be combined with another sample set into one of the independent sets.

[0112] The extractor shall, unless one or more syntax elements signal that each sample set is to be combined with another sample set into one of the independent sets. It may be configured to extract from the bitstream one or more further syntax elements (skip / direct mode) signaling whether at least some of the coding parameters for each sample set are to be predicted and from which of a further set of predefined candidate sample sets adjacent to each sample set.

[0113] In that case, the set of predefined candidate sample sets and the further set of predefined candidate sample sets may be independent of or intersect with each other with respect to a small number of predefined candidate sample sets among the set of predefined candidate sample sets and the further set of predefined candidate sample sets, respectively.

[0114] The extractor may also be configured to extract subdivision information from the bitstream, and the subdivider may be configured to hierarchically subdivide the image into sample sets in response to the subdivision information, the extractor proceeding sequentially through child sample sets of a parent sample set constituted by the sample sets into which the image is subdivided, and for a current child sample set: Extracting a first binary syntax element (mrg_cbf) from the bitstream; If the first binary syntax element assumes a first binary state, integrate the current child sample set into one of the sets of independence by inferring that the coding parameters for the current child sample set are equal to the coding parameters associated with this set of independence, skip extracting a prediction residual for the current child sample set, and proceed to the next child sample set; If the first binary syntax element has a second binary state, extract the second syntax element (mrg, mrg_idx) from the bitstream; and extracting at least one further syntax element related to a prediction residual for the current child sample set in response to the second syntax element, and proceeding to the next child sample set and integrating the current child sample set into one of the independent sets by estimating that the coding parameters for the current child sample set are equal to the coding parameters associated with this independent set, or performing extraction of coding parameters for the current child sample set; For the next child sample set, if the first binary syntax element of the current child sample set takes the first binary state, skip extracting the first binary syntax element and start by extracting the second syntax element instead, and if the first binary syntax element of the current child sample set takes the second binary state, extract the first binary syntax element.

[0115] For example, assume that a parent sample set (CU) is split into two child sample sets (PUs). For the first PU, if the first binary syntax element (merge_cbf) has a first binary state, then 1) the first PU uses merge, and the first and second PUs (the entire CU) have no residual data in the bitstream; and 2) for the second PU, the second binary syntax element (merge_flag, merge_idx) is signaled. However, if the first binary syntax element for the first PU has a second binary state, then 1) for the first PU, the second binary syntax element (merge_flag, merge_idx) is signaled, and similarly, residual data is in the bitstream; while 2) for the second PU, the first binary syntax element (merge_cbf) is signaled. Thus, merge_cbf can be signaled at the PU level, i.e., for consecutive child samples, when merge_cbf is in the second binary state for all previous child sample sets. When merge_cbf is in the first binary state for consecutive child sample sets, not all child sample sets following this child sample set have residual data in the bitstream. For example, for a CU divided into four PUs, merge_cbf can be in the first binary state for the second PU, which means that the third and fourth PUs in coding order do not have residual data in the bitstream, but the first PU does or may have it.

[0116] The first and second binary syntax elements may be coded using context-adaptive variable length coding or context-adaptive (binary) arithmetic coding, and the context for coding the syntax elements is obtained based on the values ​​for these syntax elements of already coded blocks.

[0117] As described in other preferred embodiments, the syntax element merge_idx can be sent only if the list of candidates contains one or more candidates. This requires obtaining the list before parsing the merged index, which prevents these two operations from running in parallel. To allow increased parsing throughput and make the parsing process more robust with respect to transmission errors, it is possible to remove this dependency by using a fixed codeword and a fixed number of candidates per index value. If this number is not reached by candidate selection, it is possible to obtain auxiliary candidates to complete the list. These additional candidates may include so-called combined candidates, which are constructed from the motion parameters and zero motion vectors of possibly different candidates already in the list.

[0118] In another preferred embodiment, the syntax for signaling which of the blocks in the candidate set are applied simultaneously at the encoder and decoder. For example, if three choices of blocks for integration are given, only those three choices are considered for entropy coding, as in the syntax. The probability for all other choices is considered to be 0, and the entropy codec is adapted simultaneously at the encoder and decoder.

[0119] The prediction parameters estimated as a result of the integration process may represent the entire set of prediction parameters associated with the block, or they may represent a subset of these prediction parameters (e.g., prediction parameters for one hypothesis of the block where multi-hypotheses prediction is used).

[0120] In a preferred embodiment, syntax elements associated with integration information are entropy coded using context modeling.

[0121] One way of translating the above-outlined embodiment into a specific syntax is described below with reference to the following figures. In particular, Figures 11-13 show different parts of a syntax utilizing the above-outlined embodiment. In particular, according to the embodiment outlined below, an image 20 is first divided into coding tree blocks whose image content is coded using the syntax coding_tree shown in Figure 11. As shown there, for example, for entropy_coding_mode_flag=1 for context-adaptive binary arithmetic coding or other specific entropy coding modes, the quad-tree subdivision of the current coding tree block is signaled within the syntax section coding_tree by a flag called split_coding_unit_flag at 400. As shown in Figure 11, according to the embodiment described below, the tree root block is subdivided as signaled by split_coding_unit_flag in a depth-first traversal order as shown in Figure 7a. Whenever a leaf node is reached, it indicates the coding unit to be immediately coded using the syntax function coding_unit. This can be seen in Figure 11 when noting the conditional clause in 402 which checks as to whether the current split_coding_unit_flag is set. If yes, the function coding_tree is called recursively, resulting in further transmission / extraction of further split_coding_unit_flag at the encoder and decoder, respectively. Otherwise, i.e., if split_coding_unit_flag=0, the current sub-block of the tree root block 200 in Figure 7a is a leaf block, and the function coding_unit in Figure 10 is called in 404 to code this coding unit.

[0122] In the currently described embodiment, the above mentioned options are used as to which merging is only available for images for which an inter prediction mode is available, i.e. intra-coded slices / images do not use merging anyway. This can be seen from Fig. 12, where the flag skip_flag is only transmitted in 406 for slice types different from intra image slice types, i.e. if the current slice to which the current coding unit belongs allows the partition to be inter-coded. According to this embodiment, merging only concerns prediction parameters associated with inter prediction. According to this embodiment, skip_flag is signaled for the entire coding unit 40, and if skip_flag is equal to 1, this flag value is 1) the partition mode for the current coding unit is a non-partition mode, in which it is not partitioned and only the partitions of that coding unit are shown; 2) the current coding unit / partition is inter-coded, i.e., assigned to an inter-coding mode; 3) The current coding unit / partition is affected by the consolidation; 4) Signal in parallel to the decoder that the current coding unit / partition is subject to skip mode, i.e., activates skip mode.

[0123] Thus, if skip_flag is set, the function prediction_unit is called at 408 to indicate the current coding unit as a prediction unit. However, this is not the only possibility for switching the integration option. Rather, if the skip_flag associated with the entire coding unit is not set at 406, the prediction type of the non-intra image slice coding unit is signaled by the syntax element pred_type at 410, and the function prediction_unit is called for any partition of the current coding unit, e.g., at 412, if the current coding unit is not further partitioned accordingly. Although only four different partition options are shown as available in FIG. 12, the other partition options shown in FIG. 8 may be available as well. Another possibility would be that the partition option PART_NxN is not available, but others are. The association between the partition options shown in FIG. 8 and the names of the partition modes used in FIG. 12 is indicated in FIG. 8 by the respective subscripts under the individual partition options. It should be noted that the prediction type syntax element pred_type not only signals the prediction mode, i.e., intra- or inter-coding, but also the partitioning in case of inter-coding mode. The case of inter-coding mode will be described further. The function prediction_unit is called for each partition, such as partitions 50 and 60, in the coding order mentioned above. The function prediction_unit starts by checking skip_flag at 414. If skip_flag is set, it is necessarily followed by merge_idx at 416. The check at step 414 consists in checking whether the skip_flag associated with the entire coding unit as signaled at 406 is set. If not, merge_flag is signaled again at 418, and if the latter is set, it is followed by merge_idx at 420, which indicates the merging candidate for the current partition.Furthermore, merge_flag is signaled for the current partition at 418 only if the current prediction mode of the current coding unit is inter prediction mode (see 422). That is, if skip_flag is not set, the prediction mode is signaled via pred_type at 410. Here, if, for each prediction unit, pred_type signals that the inter coding mode is active (see 422), then a merge-specific flag, i.e., merge_flag, is sent individually for each subsequent partition when merging is activated for each partition by merge index merge_idx.

[0124] As can be seen from Figure 13, according to this embodiment, the transmission of prediction parameters used for the current prediction unit 424 is performed only if merging is not used for the current prediction unit, i.e., merging is not activated by skip_flag or by each merge_flag of each partition.

[0125] As already indicated above, skip_flag=1 simultaneously signals that residual data will not be transmitted. This follows from the fact that the transmission of residual data at 426 in Figure 12 for the current coding unit occurs only if skip_flag is equal to 0, as follows from the residual data transmission among other options in conditional clause 428, which checks the state of skip_flag immediately after its transmission.

[0126] Up until now, the embodiments of Figures 11-13 have been described only under the assumption that entropy_coding_mode_flag is equal to 1. However, the embodiments of Figures 11-13 include an embodiment of the above-outlined embodiments when entropy_coding_mode_flag=0, in which case other entropy coding modes are used to entropy code the syntax elements, such as variable-length coding, or, for more accuracy, context-adaptive variable-length coding. In particular, the possibility of simultaneously signaling the activation of merge and skip mode follows the variant outlined above, in which the common signaling state is only one state out of two or more states for each syntax element. This will now be explained in more detail. However, it is emphasized that the possibility of switching between both entropy coding modes is optional, and therefore other embodiments can easily be obtained from Figures 11-13 by only enabling one of the two entropy coding modes.

[0127] For example, see Figure 11. If entropy_coding_mode_flag is equal to 0 and the slice_type syntax element signals that the current tree root block belongs to an inter-coded slice, i.e., an inter-coding mode is available, then the syntax element cu_split_pred_part_mode is sent at 430, which, as indicated by its name, signals information about further subdivision of the current coding unit, activation or deactivation of skip mode, activation or deactivation of integration and prediction mode, along with each split information. See Table 1.

[0128] [Table 1]

[0129] Table 1 identifies the meaning of the possible states of the syntax element cu_split_pred_part_mode when the current coding unit has a size that is not the smallest in the quadtree subdivision within the current tree root block. The possible states are listed in the leftmost column of Table 1. Since Table 1 pertains to the case when the current coding unit does not have the smallest size, there is a state of cu_split_pred_part_mode, i.e., state 0, which signals that the current coding unit is not an actual coding unit and needs to be subdivided into four further coding units, which are then traversed in depth-first traversal order as outlined by calling the function coding_tree 432. That is, cu_split_pred_part_mode=0 signals that the current quadtree subdivision unit of the current tree root block will be subdivided into four further smaller units, i.e., split_coding_unit_flag=1. However, if cu_split_pred_part_mode assumes any other possible state, split_coding_unit_flag = 0 and the current unit forms a leaf block, i.e., a coding unit, of the current tree root block. In that case, one of the remaining possible states of cu_split_pred_part_mode indicates the common signaling state described above, which simultaneously signals that the current coding unit is subject to merging and that skip mode, indicated by skip_flag equal to 1 in the third column of Table 1, is activated. On the other hand, it simultaneously signals that no further partitioning of the current coding unit occurs, i.e., PART_2Nx2N is selected as the split mode. cu_split_pred_part_mode also has a possible state signaling the activation of merge with skip mode deactivation. This is possible state 2, which corresponds to skip_flag = 0 and merge_flag = 1, where no split mode is active, i.e., PART_2Nx2N.That is, in that case, merge_flag is signaled in advance, rather than in the prediction_unit syntax. In the remaining possible states of cu_split_pred_part_mode, for those partition modes that split the current coding unit into one or more partitions, inter prediction modes with respect to other partition modes are signaled.

[0130] [Table 2]

[0131] Table 2 shows the significance or semantics of the possible states of cu_split_pred_part_mode when the current coding unit has the smallest possible size according to the quadtree subdivision of the current tree root block. In that case, all possible states of cu_split_pred_part_mode do not correspond to further subdivision by split_coding_unit_flag=0. However, possible state 0 signals that skip_flag=1, i.e., consolidation is activated and skip mode is activated simultaneously. Furthermore, it signals that no splitting occurs, i.e., split mode PART_2Nx2N. Possible state 1 corresponds to possible state 2 in Table 1, which corresponds to possible state 3 in Table 2.

[0132] Although the above description of the embodiment of Figures 11-13 has already explained most of the functionality and meaning, some further information is provided below.

[0133] skip_flag[x0][y0] equal to 1 specifies that no syntax elements other than the motion vector predictor index (merge_idx) will be parsed after skip_flag[x0][y0] when decoding a P or B slice for the current coding unit (see 40 in Figure 1). skip_flag[x0][y0] equal to 0 specifies that the coding unit will not be skipped. The array index x0,y0 specifies the position (x0,y0) of the top-left luma sample of the considered coding unit relative to the top-left luma sample of the image (see 20 in Figure 1).

[0134] When skip_flag[x0][y0] is absent, it is inferred to be equal to 0.

[0135] As above, if skip_flag[x0][y0] is equal to 1, - PredMode is assumed to be equal to MODE_SKIP - PartMode is assumed to be equal to PART_2Nx2N

[0136] cu_split_pred_part_mode[x0][y0] specifies the split_coding_unit_flag, and when the coding unit is not split, the skip_flag[x0][y0], merge_flag[x0][y0], PredMode, and PartMode of the coding unit. The array indices x0 and y0 specify the position (x0, y0) of the top-left luma sample of the coding unit relative to the top-left luma sample of the image.

[0137] merge_flag[x0][y0] specifies whether the inter prediction parameters for the current prediction unit (50 and 60 in the figure, i.e., partitions within coding unit 40) are estimated from adjacent inter predicted partitions. The array index x0,y0 specifies the position (x0,y0) of the top left luma sample of the considered prediction block relative to the top left luma sample of the image.

[0138] merge_idx[x0][y0] specifies the merge candidate index in the merge candidate list, where x0,y0 specifies the position (x0,y0) of the top left luma sample of the considered prediction block relative to the top left luma sample of the image.

[0139] Although not specifically shown in the above description of Figures 11 to 13, in this embodiment, the merging candidate or list of merging candidates is not determined using only the coding or prediction parameters of spatially adjacent prediction units / partitions, but rather the list of candidates is also formed by using the prediction parameters of temporally adjacent partitions of temporally adjacent and previously coded images. Furthermore, a combination of prediction parameters of spatially and / or temporally adjacent prediction units / partitions is used and included in the list of merging candidates. Of course, only a subset thereof can be used. In particular, Figure 14 shows one possibility for determining spatial proximity, i.e., spatially adjacent partitions or prediction units. 14 shows, by way of example, a prediction unit or partition 60 and pixels B0-B2 and A0-A1 positioned immediately adjacent to a boundary 500 of partition 60, i.e., B2 is diagonally adjacent to the top left pixel of partition 60, B1 is vertically adjacent to the top right-most pixel of partition 60, B0 is diagonally located to the top right-most pixel of partition 60, A1 is horizontally to the left of the bottom left-most pixel of partition 60, and A0 is diagonally located to the bottom left-most pixel of partition 60. A partition containing pixels B0-B2 and at least one of A0 and A1 form a spatial contiguity, and their prediction parameters form a combined candidate.

[0140] To perform the above-mentioned optional elimination of those candidates that lead to other partitioning modes that were available, the following function can be used:

[0141] In particular, candidate N, i.e., the coding / prediction parameters resulting from the prediction unit / partition covering pixel N=(B0, B1, B2, A0, A1), i.e., position (xN, yN), is removed from the candidate list if any of the following conditions is true (see Figure 8 for the partition mode PartMode and the corresponding partition index PartIdx indicating each partition within the coding unit):

[0142] - The PartMode of the current prediction unit is PART_2NxN, PartIdx is equal to 1, and the prediction units covering the luminance position (xN, yN-1) (PartIdx=0) and the luminance position (xP, yP-1) (Cand.N) have identical motion parameters. mvLX[xP,yP-1]==mvLX[xN,yN] refIdxLX[xP,yP-1]==refIdxLX[xN,yN] predFlagLX[xP,yP-1]==predFlagLX[xN,yN]

[0143] - The PartMode of the current prediction unit is PART_Nx2N, PartIdx is equal to 1, and the prediction units covering the luminance position (xP-1, yP) (PartIdx=0) and the luminance position (xN, yN) (Cand.N) have identical motion parameters. mvLX[xP-1,yP]==mvLX[xN,yN] refIdxLX[xP-1,yP]==refIdxLX[xN,yN] predFlagLX[xP-1,yP]==predFlagLX[xN,yN]

[0144] - The PartMode of the current prediction unit is PART_NxN, PartIdx is equal to 3, and the prediction units covering the luminance position (xP-1, yP) (PartIdx=2) and the luminance position (xP-1, yP-1) (PartIdx=0) have identical motion parameters. mvLX[xP-1,yP]==mvLX[xP-1,yP-1] refIdxLX[xP-1,yP]==refIdxLX[xP-1,yP-1] predFlagLX[xP-1,yP]==predFlagLX[xP-1,yP-1] Then, the prediction units covering the luminance position (xP, yP-1) (PartIdx=1) and the luminance position (xN, yN) (Cand.N) have the same motion parameters. mvLX[xP,yP-1]==mvLX[xN,yN] refIdxLX[xP,yP-1]==refIdxLX[xN,yN] predFlagLX[xP,yP-1]==predFlagLX[xN,yN]

[0145] - The PartMode of the current prediction unit is PART_NxN, PartIdx is equal to 3, and the prediction units covering the luminance position (xP, yP-1) (PartIdx=1) and the luminance position (xP-1, yP-1) (PartIdx=0) have identical motion parameters. mvLX[xP,yP-1]==mvLX[xP-1,yP-1] refIdxLX[xP,yP-1]==refIdxLX[xP-1,yP-1] predFlagLX[xP,yP-1]==predFlagLX[xP-1,yP-1] Then, the prediction units covering the luminance position (xP-1, yP) (PartIdx=2) and the luminance position (xN, yN) (Cand.N) have the same motion parameters. mvLX[xP-1,yP]==mvLX[xN,yN] refIdxLX[xP-1,yP]==refIdxLX[xN,yN]

[0146] In this regard, it should be noted that the position or location (xP, yP) indicates the largest pixel of the current partition / prediction unit. That is, according to the first item, all coding parameter candidates obtained by directly adopting the respective coding parameters of the neighboring prediction unit, i.e., prediction unit N, are checked. However, other additional coding parameter candidates can be checked in the same way for whether they are equal to the coding parameters of each occurring prediction unit that would result in other partitioning patterns supported by the syntax. According to the embodiment just described, the identity of the coding parameters includes checking the identity of the motion vector, i.e., mvLX, the reference index, i.e., refIxLX, and the prediction flag predFlagLX associated with the reference list X, where X is 0 or 1, indicating that the parameters, i.e., the motion vector and the reference index, are used in inter prediction.

[0147] It should be noted that the aforementioned possibilities for removing coding parameter candidates of adjacent prediction units / partitions are also applicable in case of supporting asymmetric partitioning modes shown in the right half of Figure 8. In that case, the mode PART_2NxN may indicate all horizontally subdivided modes, and PART_Nx2N may correspond to all vertically subdivided modes. Furthermore, the mode PART_NxN may be excluded from the supported partitioning modes or partitioning patterns, in which case only the first two removal checks have to be performed.

[0148] With regard to the embodiments of Figures 11 to 14, it should also be noted that it is possible to exclude intra-predicted partitions from the list of candidates, i.e. their coding parameters are not naturally included in the list of candidates.

[0149] Furthermore, note that three contexts can be used for skip_flag, merge_flag and merge_idx, respectively.

[0150] Although some aspects have been described in relation to an apparatus, it is clear that these aspects also refer to a description of a corresponding method, where a block or device corresponds to a method step or a function of a method step. Similarly, aspects described in relation to a method step also refer to a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps can be performed by (or using) a hardware apparatus, such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps can be performed by such an apparatus.

[0151] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or software. The embodiments can be implemented using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory, having electronically readable control signals stored thereon, which cooperates (or can cooperate) with a programmable computer system so that the methods are executed. Thus, the digital storage medium can be computer-readable.

[0152] Some embodiments of the present invention include a data carrier having electronically readable control signals that can cooperate with a programmable computer system to perform one of the methods described herein.

[0153] Typically, embodiments of the present invention can be implemented as a computer program product having program code which, when run on a computer, is operable to perform one of the methods, and which can for example be stored on a machine-readable carrier.

[0154] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.

[0155] In other words, a method embodiment of the present invention 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.

[0156] A further embodiment of the inventive method is, therefore, a data carrier (or digital storage medium or computer readable medium) comprising, recorded on it, the computer program for performing one of the methods described herein. The data carrier, digital storage medium or recorded medium is generally tangible and / or non-transitory.

[0157] 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 can for example be arranged to be transmitted via a data communication connection, for example via the Internet.

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

[0159] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

[0160] Further embodiments according to the present invention include an apparatus or system configured to transfer (e.g., electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver can be, for example, a computer, a mobile device, a storage device, etc. The apparatus or system can, for example, include a file server for transferring the computer program to the receiver.

[0161] In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array can cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware apparatus.

[0162] 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 details described herein will be apparent to others skilled in the art. It is therefore the intention to be limited only by the scope of the impending claims, and not by the specific details shown by way of description and illustration of the embodiments herein.

Claims

1. 1. An apparatus for decoding a bitstream in which an image (20) has been encoded, comprising: a subdivider (82) configured to subdivide the image (20) into a sample set (40) of samples; a merger (84) configured to merge each of the sample sets (40) into one or more groups of sample sets; a decoder (86) configured to decode the image (20) using coding parameters transmitted in the bitstream in units of groups of the sample sets, the decoder (86) being configured to decode the image (20) by predicting the image (20), decoding a prediction residual for a predefined sample set, and combining the prediction residual with a prediction resulting from predicting the image (20) for the predefined sample set; an extractor (88) configured to extract from the bitstream (30) the prediction residuals and the coding parameters, as well as one or more syntax elements for at least each subset of the sample sets (40), the syntax elements indicating whether each of the sample sets (40) is to be merged with another sample set (40) into one of the groups, the merger (84) being configured to perform the merging in response to the one or more syntax elements; Equipped with The extractor and the merger are configured to step through the sample sets sequentially according to a sample set scan order, and for a current sample set: extracting a first binary syntax element of the one or more syntax elements from the bitstream; if the first binary syntax element assumes a first binary state, merge the current sample set with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, skip extracting the prediction residual for the current sample set, and proceed to the next sample set in sample set scanning order; extracting a second syntax element of the one or more syntax elements from the bitstream if the first binary syntax element assumes a second binary state; In response to the second syntax element: extracting a third syntax element of the one or more syntax elements from the bitstream and merging the current sample set with one of the groups by inferring that the coding parameters for the current sample set are equal to coding parameters associated with one of a set of predefined candidate sample sets neighboring the respective sample set, as signaled by the third syntax element, and extracting at least one further syntax element related to the prediction residual for the current sample set; or performing extraction of the coding parameters for the current sample set; and extracting at least one further syntax element related to the prediction residual for the current sample set. It is configured as follows: The subdivider is configured to subdivide the image (20) using multi-tree subdivision, the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on values ​​of the first and second syntax elements in a previously coded sample set. An apparatus characterized in that

2. 2. The apparatus of claim 1, wherein the extractor is also configured to extract subdivision information from the bitstream, and the subdivider is configured to subdivide the image into sample sets in response to the subdivision information.

3. The apparatus of claim 1 , wherein the bitstream further includes a depth map with which the image is associated.

4. The device described in claim 1, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

5. 1. An apparatus for encoding an image, comprising: a subdivider (72) configured to subdivide the image into a sample set of samples; a merger (74) configured to merge each of the sample sets into one or more groups of sample sets; an encoder (76) configured to encode the image using coding parameters transmitted in a bitstream in units of groups of the sample sets, the encoder (76) being configured to encode the image by predicting the image and encoding a prediction residual for a predefined sample set; a stream generator (78) configured to insert into the bitstream the prediction residuals and the coding parameters, and one or more syntax elements for at least each subset of the sample sets, the syntax elements indicating whether each of the sample sets is to be merged with another sample set into one of the groups; Equipped with The stream generator (78) is configured to step through the sample sets in accordance with a sample set scan order, and for a current sample set: configured to insert a first binary syntax element of the one or more syntax elements into the bitstream; wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual is to be skipped for the current sample set and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, inserting a second syntax element of the one or more syntax elements into the bitstream; and configured to insert at least one further syntax element related to a prediction residual for the current sample set; wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the extraction of the coding parameters is to be performed on the current sample set, and if the second syntax element indicates that the current sample set is to be merged, the inserter is configured to merge the current sample set by inferring that the coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, and to insert into the bitstream a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets; The subdivider is configured to subdivide the image (20) using multi-tree subdivision, the sample sets (40) are rectangular blocks, the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on the values ​​of the first and second syntax elements in previously coded sample sets. An apparatus characterized in that

6. The apparatus of claim 5 , wherein the bitstream further includes a depth map with which the image is associated.

7. The device described in claim 5, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

8. 1. A method for decoding a bitstream in which an image (20) has been encoded, said method comprising: Segmenting the image (20) into a sample set (40) of samples; merging said sample sets (40) into groups of one or more sample sets each; decoding the image (20) using coding parameters transmitted in the bitstream in units of groups of the sample sets, wherein a decoder (86) is configured to decode the image (20) by predicting the image (20), decoding a prediction residual for a predefined sample set, and combining the prediction residual with a prediction resulting from predicting the image (20) for the predefined sample set; extracting from the bitstream (30) the prediction residuals and the coding parameters, as well as one or more syntax elements for at least each subset of the sample sets, the syntax elements indicating whether each of the sample sets (40) is to be merged with another sample set (40) into one of the groups, wherein a merger (84) is configured to perform the merging in response to the one or more syntax elements; Including, The method includes the steps of sequentially stepping through the sample sets according to a sample set scan order, and for a current sample set: extracting a first binary syntax element of the one or more syntax elements from the bitstream; if the first binary syntax element assumes a first binary state, merging the current sample set with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, skipping extraction of the prediction residual for the current sample set, and proceeding to the next sample set in sample set scanning order; extracting a second syntax element of the one or more syntax elements from the bitstream if the first binary syntax element assumes a second binary state; In response to the second syntax element: extracting a third syntax element of the one or more syntax elements from the bitstream and inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of predefined candidate sample sets neighboring the respective sample set signaled by the third syntax element, thereby merging the current sample set into one of the groups and extracting at least one further syntax element related to the prediction residual for the current sample set; or performing said extraction of said coding parameters for said current sample set; and extracting at least one further syntax element related to the prediction residual for the current sample set; Including, The image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, and the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on values ​​of the first and second syntax elements in previously coded sample sets. A method characterized by:

9. 9. The method of claim 8, wherein the bitstream further includes a depth map with which the image is associated.

10. The method described in claim 8, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

11. 1. A method for encoding an image, comprising: segmenting the image into a sample set of samples; merging the sample sets into groups of one or more sample sets each; encoding the image using coding parameters transmitted in a bitstream in units of groups of the sample sets, wherein an encoder (76) is configured to encode the image by predicting the image and encoding a prediction residual for a predefined sample set; inserting into a bitstream the prediction residuals and the coding parameters, and one or more syntax elements for at least each subset of the sample sets, the syntax elements indicating whether the respective sample set is to be merged with another sample set into one of the groups; Including, The method includes the steps of sequentially stepping through the sample sets according to a sample set scan order, and for a current sample set: inserting a first binary syntax element of the one or more syntax elements into the bitstream, wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual for the current sample set is to be skipped and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, inserting a second syntax element of the one or more syntax elements into the bitstream; inserting at least one further syntax element related to a prediction residual for the current sample set, wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the coding parameter extraction is performed for the current sample set, and the inserter is configured to merge the current sample set by inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, if the second syntax element indicates that the current sample set is to be merged, and to insert a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets into the bitstream; Including, The image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, and the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on values ​​of the first and second syntax elements in previously coded sample sets. A method characterized by:

12. 12. The method of claim 11, wherein the bitstream further includes a depth map with which the image is associated.

13. The method described in claim 11, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

14. 1. A method for decoding a bitstream, the method comprising receiving and decoding a bitstream, the bitstream comprising: Prediction residuals and - coding parameters transmitted in the bitstream in units of groups of sample sets of said image resulting from subdividing an image into sample sets of samples and merging said sample sets into groups of sample sets; one or more syntax elements for at least each subset of the sample sets, each indicating whether the sample set is to be merged with another sample set into one of the groups; Including, a current sample set in the sequence of sample sets is decodable according to a sample set scanning order; the bitstream includes a first binary syntax element of the one or more syntax elements; wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual for the current sample set is to be skipped and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, the bitstream includes a second syntax element of the one or more syntax elements; the bitstream includes at least one further syntax element related to a prediction residual for the current sample set; wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the coding parameter extraction is to be performed on the current sample set, and if the second syntax element indicates that the current sample set is to be merged, the current sample set can be merged by inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, and the bitstream includes a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets; The image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, and the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on values ​​of the first and second syntax elements in previously coded sample sets. A method characterized by:

15. 15. The method of claim 14, wherein the bitstream further includes a depth map with which the image is associated.

16. The method described in claim 14, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

17. A digital storage medium for storing data associated with video, said data comprising a bitstream, said bitstream comprising: prediction residuals and coding parameters, the coding parameters being transmitted in the bitstream in units of groups of sample sets of the image resulting from subdividing the image into sample sets and merging the sample sets into groups of sample sets; one or more syntax elements for at least each subset of the sample sets, the syntax element indicating whether the respective sample set is to be merged with another sample set into one of the groups; Including, The bitstream may, for the current sample set: instructions for a decoder to sequentially step through the sample sets according to a sample set scan order to decode the image by extracting a first binary syntax element from the bitstream; wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual for the current sample set is to be skipped and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, the instructions to the decoder: extracting a second syntax element of the one or more syntax elements from the bitstream; extracting at least one further syntax element related to a prediction residual for the current sample set; wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the coding parameter extraction is performed on the current sample set, and the instructions instruct the decoder, if the second syntax element indicates that the current sample set is to be merged, to merge the current sample set by inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, and to insert a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets from the bitstream; The image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, and the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on the values ​​of the first and second syntax elements in previously coded sample sets. A digital storage medium comprising:

18. 20. The digital storage medium of claim 17, wherein the bitstream further includes a depth map with which the image is associated.

19. The digital storage medium of claim 17, wherein the sample set of samples is one of sample arrays associated with different aspects of the image that are coded independently of each other.

20. 1. A method for storing an image, the method comprising: storing the bitstream on a digital storage medium, said bitstream comprising: prediction residuals and coding parameters transmitted in the bitstream in units of groups of sample sets of the image, the coding parameters resulting from subdividing the image into sample sets and merging the sample sets into groups of sample sets; one or more syntax elements for at least each subset of the sample sets, each indicating whether the sample set is to be merged with another sample set into one of the groups; Including, The method includes the steps of sequentially stepping through the sample sets according to a sample set scan order, and for a current sample set: inserting a first binary syntax element of the one or more syntax elements into the bitstream, wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual for the current sample set is to be skipped and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, inserting a second syntax element of the one or more syntax elements into the bitstream; inserting at least one further syntax element related to a prediction residual for the current sample set, wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the coding parameter extraction is performed on the current sample set, and the inserter is configured to merge the current sample set by inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, if the second syntax element indicates that the current sample set is to be merged, and to insert into the bitstream a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets, 1. The method of claim 1, wherein the image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and a context for coding the first and second syntax elements is derived based on values ​​of the first and second syntax elements in a sample set that has already been coded.

21. 21. The method of claim 20, wherein the bitstream further includes a depth map with which the image is associated.

22. The method described in claim 20, characterized in that the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.

23. A method for transmitting an image, comprising transmitting a bitstream over a transmission medium, said bitstream comprising: prediction residuals and coding parameters transmitted in the bitstream in units of groups of sample sets of the image, the coding parameters resulting from subdividing the image into sample sets and merging the sample sets into groups of sample sets; one or more syntax elements for at least each subset of the sample sets, the syntax elements indicating whether the respective sample sets are to be merged with another sample set into one of the groups; Including, The method includes the steps of sequentially stepping through the sample sets according to a sample set scan order, and for a current sample set: inserting a first binary syntax element of the one or more syntax elements into the bitstream, wherein the first binary syntax element, when in a first binary state, indicates that the current sample set is to be merged with one of the groups by inferring that the coding parameters for the current sample set are equal to the coding parameters associated with that group, and that extraction of the prediction residual for the current sample set is to be skipped and proceed to the next sample set in sample set scanning order; If the first binary syntax element has a second binary state, inserting a second syntax element of the one or more syntax elements into the bitstream; inserting at least one further syntax element related to a prediction residual for the current sample set, wherein the second syntax element indicates whether the current sample set is to be merged with one of the groups or whether the coding parameter extraction is performed for the current sample set, and the inserter is configured to merge the current sample set by inferring that coding parameters for the current sample set are equal to coding parameters associated with one of a set of pre-defined candidate sample sets adjacent to each sample set, if the second syntax element indicates that the current sample set is to be merged, and to insert a third syntax element of the one or more syntax elements signaling one of the pre-defined set of candidate sample sets into the bitstream; Including, The image (20) is subdivided into a sample set (40) of samples using multi-tree subdivision, the first and second syntax elements are binary syntax elements and are coded using context-adaptive variable length coding or context-adaptive arithmetic coding, and contexts for coding the first and second syntax elements are derived based on values ​​of the first and second syntax elements in previously coded sample sets. A method characterized by:

24. 24. The method of claim 23, wherein the bitstream further includes a depth map with which the image is associated.

25. The method of claim 23, wherein the sample set of samples is one of sample arrays associated with different faces of the image that are coded independently of each other.