Wedgelet-based coding concept

JP2024099596A5Pending Publication Date: 2026-03-24GE VIDEO COMPRESSION LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-12
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Wedgelet-based coding concepts face inefficiencies when applied to coding blocks of varying sizes, particularly due to the need for sharing side information such as the location of the wedgelet separation line and how to fill resulting wedgelets between encoder and decoder.

Method used

The use of variable length code syntax elements with prefixes and suffixes that adapt to the size of the current coding block, allowing efficient bipartitioning without context-adaptive entropy encoding, using fixed-equal-probability binary entropy encoding.

Benefits of technology

This approach enhances coding efficiency by adapting the length of the variable length code syntax elements to the actual needs of the coding block, reducing data rate and improving coding performance for blocks of varying sizes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide an encoder and a decoder that increase the efficiency of Wedgelet-based coding.SOLUTION: In an encoder with coding based on two Wedgelets 108a, 108b in conjunction with the use of coding blocks 104 of varying size, by using a variable length code syntax element 124 consisting of a prefix 126 of a data stream 120 and a suffix 128 depending on the prefix and the size of the current coding block, the length of the variable length code syntax element that controls the bipartitioning of the current coding block is sized to the actual needs of the current coding block and the Wedgelet separation line 110 to efficiently accommodate the variability of the bipartitioning.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a coding concept based on Wedgelets. [Background technology]

[0002] In the field of video coding, and in particular in the field of depth map coding, one well-known type of block coding is Wedgelet-based coding. According to Wedgelet-based coding, a given coding block is partitioned into two halves called Wedgelets along a Wedgelet separation line, which is, for example, a straight line with a given slope and a given offset. Although various implementations have been described so far, there is an ongoing need to further reduce the side information required for Wedgelet-based bipartitioning. In particular, the location of the Wedgelet separation line needs to be shared between the encoder and the decoder, along with information on how to fill the resulting Wedgelets, if desired.

[0003] Besides the use of Wedgelet-based coding concepts, newer video and / or image coders tend to code images in units of coding blocks of various sizes, for example, subdivision of an image into coding blocks is signaled in the data stream, and within the units of coding blocks, for example prediction modes and / or prediction parameters are coded in the data stream.

[0004] The coding efficiency of Wedgelet-based coding concepts appears to degrade when applied to coders that support coding blocks of various sizes. Summary of the Invention [Problem to be solved by the invention]

[0005] It is therefore an object of the present invention to provide a Wedgelet-based coding concept which, when applied to coding blocks of varying size, results in increased coding efficiency. This object is achieved by the subject matter of the independent claims. [Means for solving the problem]

[0006] It is a fundamental discovery of the present invention that the Wedgelet-based coding in conjunction with the use of coding blocks of varying size is made even more efficient by the use of variable length code syntax elements consisting of a prefix and a suffix. The size of the suffix depends on the prefix and the size of the current coding block. By this means it is feasible to efficiently adapt the length of the variable length code syntax element controlling the bipartitioning of the current coding block to the actual needs (i.e. size) of the current coding block and to the variability of the bipartitioning by changing the Wedgelet separation line, respectively. The larger the current coding block is, the longer the variable length code syntax element becomes. This length dependency is sufficiently effective for coding efficiency that the variable length code syntax element is coded without context-adaptive entropy coding, but directly or with fixed equal probability binary entropy coding.

[0007] Advantageous embodiments are the subject matter of the dependent claims and preferred embodiments of the invention are described below with reference to the drawings. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 shows an example for a Wedgelet-based bipartitioning of coding blocks, exemplarily with blocks of a depth map provided in addition to image text. [Diagram 2] FIG. 2 shows a schematic diagram illustrating examples for bipartitioning of coding blocks of various sizes and smaller coding blocks of coding blocks based on Wedgelet separation lines, to illustrate possible methods for bipartitioning coding blocks based on Wedgelet separation lines. [Diagram 3] FIG. 3 shows a schematic diagram illustrating an indexing scheme relating the location of the wedgelet separation-lines to the entries in the list pointed to by syntax elements for signaling the location of the wedgelet separation-lines. [Figure 4] FIG. 4 shows an example schematic diagram for syntax elements used as side information for Wedgelet-based coding of a coding block according to an embodiment of the present invention. [Diagram 5] FIG. 5 shows a schematic diagram illustrating the combination of the variable length code syntax elements of FIG. 4 based on prefixes and suffixes according to a more detailed embodiment. [Figure 6] FIG. 6 shows a schematic diagram illustrating the reconstruction of a Wedgelet-based coded coding block according to an embodiment. [Figure 7] FIG. 7 shows a block diagram of a decoder according to one embodiment of the invention. [Figure 8] FIG. 8 shows a block diagram of an encoder according to one embodiment of the present invention. [Figure 9] FIG. 9 shows the possible approximate directions / tilts that can be encoded by prefixes according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] As known in the art, depth maps, in addition to being known from the advantages of coding text, exhibit certain characteristics that make the introduction of a depth map defined block coding mode. A depth map associated with a given image, i.e. text, develops in such a way that it consists of a higher number of areas where the depth map sample values ​​are parameterizable using a constant or a linear function. Often such areas are adjacent to each other along a representative line, e.g. the perimeter of a foreground object that separates the foreground from the background. Therefore, in order to code depth maps block-wise, the Wedgelet separation concept has been introduced according to which a usually rectangular coding block is further subdivided into two Wedgelets along a so-called Wedgelet separation line that separates the corresponding coding block in half, i.e. into two Wedgelets. The interiors of both Wedgelets are then coded separately. The additional bits used for bipartitioning a coding block into two Wedgelets and for switching on / off the Wedgelet separation mode are overcompensated by the advantages for coding the contents of the "Wedgelet-like" coding block.

[0010] FIG. 1 shows a depth map 100 associated with a picture or text image 102. The sample resolution of the depth map 100 is equal to the sample resolution of the image 102, although a different sample resolution is possible, such as a coarser sample resolution of the depth map 100 associated with the image 102. The depth map 100 is coded in coding blocks 104. That is, the depth map 100 is subdivided or partitioned into coding blocks 104, which are for example rectangular or square. The partitioning of the depth map 100 into coding blocks 104 means that the coding blocks 104 have varying sizes. Three different sizes are shown in FIG. 1 for illustrative purposes. The number of available coding block sizes may vary. The coding blocks 104 define the units at which the encoder switches between different coding modes. The coding mode selected for each coding block 104 is signaled in the data stream to a decoder, which in turn decodes each coding block 104 using the signaled coding mode. One of these coding modes is a "Wedgelet coding mode" according to which a coding block 104 is divided into two Wedgelets to allow the contents (i.e., sample values) of the individual Wedgelets to be coded separately. FIG. 1 illustrates this in an enlarged portion 106 for a representative coding block 104. As shown, the coding block 104 is divided into two Wedgelets 108a and 108b along a Wedgelet separation line 110, which is, for example, a straight line. The encoder signals the position of the Wedgelet separation line 110 to the decoder for the coding block 104 to which such a Wedgelet-based coding mode is assigned. There are various possibilities for signaling the position of the Wedgelet separation line 110: the slope or direction 112 of the Wedgelet separation line 110 along one cutoff value, such as the position of one intersection of the perimeter of the block 104 with the line 110, or the positions of two intersections of the perimeter of the block 104 with the line 110.

[0011] As shown in Fig. 2, the number of possible subdivisions of the coding block 104 into two Wedgelets strongly depends on the size of the block 104 measured in samples. The block 104 in Fig. 2 is shown, for example, as a 4x4 block on the left, whereas on the right, a wide 8x8 sample is shown. As can be seen, due to the smaller number of samples of the 4x4 block 104, the number of distinct subdivisions of the block 104 into two Wedgelets is smaller compared to the larger coding block shown on the right. For example, a Wedgelet separation line 110 is exemplarily shown for bipartitioning the 4x4 block 104 into two Wedgelets. The transformation of the bipartition defined by the Wedgelet separation line 110 on the samples of the block 104 is performed as follows: Samples of the block 104 on one side of the wedgelet separation line 110 are assigned, for example, to one wedgelet 108a, whereas samples of the block 104 on the other side of the line 110 are assigned to the other wedgelet 108b. This is easy as long as the samples that do not cross the line 110 are concerned. However, samples that are crossed by the line 110 are assigned to one of the wedgelets 108a and 108b depending on which side the larger half of their area lies on. That is, each sample that is crossed by the line 110 is bisected into two parts, and the larger of these parts determines the part to which the individual sample is assigned. That is, samples with a larger part on one side are assigned, for example, to the part 108a, and samples with a larger part on the other side are assigned to the part 108b. Instead, the centers of each individual sample are looked at to determine the assignment of each sample to either the wedgelet 108a or 108b. All samples having their centers on one side of the line 110 are assigned to wedgelet 108a, while all samples having their centers on the other side of the line 110 are assigned to wedgelet 108b. The diagonal lines in FIG. 2 illustrate the resulting Wedgelet partitioning of the 4×4 block 104.

[0012] From the above discussion, it can be seen that the accuracy of signaling the position of the Wedgelet separation line 110 depends on the size of the individual blocks 104 measured, for example, in a sample: the larger the blocks, the higher the accuracy and vice versa.

[0013] It is feasible to use a single scalar or one-dimensional index to signal the number of possible positions of the Wedgelet split-line in the coding block 104 to a one-dimensional list 112 of representable Wedgelet split-line positions. For example, the index may be 2 N The indices are binarized using the usual binary representation covering 2 states. That is, the indices are the 2 states of the Wedgelet separation line with N being the bit length of the binary representation. N 100 possible positions. This is illustrated in FIG. 3. As shown, each list entry in the list 112 corresponds to a given combination of the slope / direction 112 of the separation line 110 and its tolerance. To account for the block size dependency outlined above with respect to FIG. 2, the index 114 signaled in the data stream for the coding block 104 has a bit length N that depends on the size of the block 104. The index 114 signaled for the block 104 determines, via its bit length, the size of the list 112, which in turn determines the number of representable Wedgelet separation line positions. The number of representable Wedgelet separation line positions 2 N is larger for larger blocks 104 than for smaller blocks. That is, the decoder uses index 114 as an index into list 112, as indicated by arrow 116, where a given entry in indexed list 112 is associated with a given Wedgelet separation line position, such as one of those illustratively illustrated in FIG. 3 within block 104.

[0014] Although the above concept of FIG. 3 illustrates the different needs of variously sized blocks as far as the number of representable Wedgelet isolation line positions or the accuracy of signaling it is concerned, even if a context-adaptive coding is used to code the bits of the signaled index 114 using a common context for all N bits of the index 114, there is still room to make the signaling of the positions of the Wedgelet isolation line 110 more effective. Then, the embodiment described below achieves such an increase in coding efficiency even when not using entropy coding to code the signaling bits. For example, the need for N to adapt to the coding block size and to find a reasonable number of available Wedgelet isolation line positions may be such that some signalable values ​​of the index remain unused or a number greater than a reasonable number of Wedgelet isolation line positions is reached when the index is doubled. N This is possible in two capacities, one requiring either one or the other to consume all of the signallable values.

[0015] The idea behind the concept described in the embodiment outlined below is to signal the location of the Wedgelet separation line for a given coding block (such as a coding block for which a Wedgelet-based coding mode is signaled) using a variable length code syntax element with a prefix that signals the slope / direction of the Wedgelet separation line. The prefix is ​​followed by a suffix that signals the slope / direction of the Wedgelet separation line and a replacement or modification of the Wedgelet separation line's replacement. Figure 4 illustrates the concept. Figure 4 shows one coding block 104. For example, the block 104 is a coding block of a depth map, although it is noted that the concept of Figure 4 can be readily transferred onto the coding of other two-dimensionally extracted data such as text and the like. The data stream 120 in the coding block 104 and the depth map containing the coding block 104 are respectively coded signals for the coding block 104 and the Wedgelet-based coding mode by means of a mode indicator 122. Because the coding block 104 has a coding mode type based on Wedgelets, the data stream 120 further includes a variable length code syntax element 124 that signals the location of the Wedgelet separation line 110, which partitions the coding block 104 into two Wedgelets 108a and 108b. As will be outlined in more detail below, the variable length code syntax element 124 consists of a prefix 126 that signals the direction or slope 112 of the Wedgelet separation line 110, and a suffix 128 that signals the location and refinement of the displacement of the direction / slope 112 of the Wedgelet separation line 110. As will be outlined in more detail below, all bits of the variable length code syntax element 124 are coded without context adaptability, e.g., without entropy coding. That is, they are written directly into the data stream 120 or written into the data stream 120 using binary entropy computation coding, such as binary computation coding, but using a fixed equal-probability mode, also called bypass mode, as known for example from H.264.Also, as outlined in more detail below, the prefix 126 has a fixed length. Its length is independent of the size of the block 104, whereas the bit length of the suffix 128 depends on both the value of the prefix 126, i.e. the approximate slope / direction of the Wedgelet separation line 110, as well as the size of the coding block 104. There are then various possibilities of how the content of the coding block 104 is actually coded in the data stream 120, using a two-partitioning into partitions 108a, 108b. For example, according to one embodiment, the data stream 120 consists of a first syntax element configuration 130 for the first Wedgelet 108a and a second syntax element configuration 132 for the second Wedgelet 108b. For example, both syntax element configurations 130 and 132 consist of syntax elements indicating a constant value where the samples belonging to the Wedgelet 108a or 108b, respectively, are set equal. The syntax elements are predictively coded. For example, the constant values ​​assigned to the samples of the wedgelet 108a are spatially predicted from already decoded / reconstructed neighboring samples adjacent to the perimeter of the block 104 to which the wedgelet 108a is adjacent. The syntax element configuration 130 simply provides an offset (prediction residual) to this prediction. Similarly, the constant values ​​assigned to the samples of the wedgelet 108b are spatially predicted from already decoded / reconstructed neighboring samples adjacent to the perimeter of the block 104 to which the wedgelet 108b is adjacent. The syntax element configuration 130 simply provides an offset to this prediction. Optionally, a sample-like residual signal 134 is provided in the data stream 120.

[0016] The decoder operates as follows to decode the coding block 104 coded according to FIG. 4. First, the decoder checks the coding mode indicator 122. If the coding block 104 has a coding mode based on Wedgelets, the decoder reads the prefix 126 from the data stream 120, and thus obtains the approximate Wedgelet separation line slope / direction 112. The decoder then reads a number of bits from the data stream 120, which depends on the size of the coding block 104 and the value of the prefix 126, to obtain a suffix 128. Using the suffix 128, the decoder refines the slope / direction 112 of the approximate Wedgelet separation line 110 to obtain the actual slope / direction 136, replacing the position of the Wedgelet separation line 110, which also depends on the suffix 128. Thus, the located Wedgelet separation line 110 determines the bipartitioning of the coding block 104 into Wedgelets 108a and 108b. It is feasible for the decoder to use the variable length code syntax element 124 to directly find, among a list of Wedgelet-based binary partitions of a block of a size corresponding to the size of the coding block 104, each binary partition that corresponds to the position of the Wedgelet separation line indicated using the prefix 126 and suffix 128 as outlined above. As a result, the decoder does not actually calculate the actual slope / direction 136 and permutation length of the bit permutation, but rather directly finds a binary sample array of a size corresponding to the block 104 that associates, in a binary way, each sample of the coding block 104 with a wedgelet 108a or wedgelet 108b. Instead, as outlined below, the decoder calculates the approximate direction 112 from the prefix 126 and finds a binary association array that associates each sample of the block 104 with one of the Wedgelets 108a and 108b in a table of associated binary association arrays using an index that is a triplet of the size of the block 104, the approximate direction 112 and the suffix 128.

[0017] After doing this, the decoder uses, for example, syntax element configuration 130 to obtain sample values ​​of the samples of Wedgelet 108a or related samples, and syntax element configuration 132 to fill sample values ​​of the samples of Wedgelet 108b or related samples. Such filled states of coding block 104 represent a prediction that the decoder optionally improves using residual signal 134 by sample-wise addition between the residual signal 134 and the filled Wedgelets 108a and 108b. Depending on the option, the residual signal 134 is lost. As a result, such filled states of coding block 104 directly represent a reconstruction of coding block 104.

[0018] A specific example of how to separately code the contents of the wedgelets 108a and 108b is described below with reference to FIG. 6. FIG. 6 shows a block diagram of a current coding block 104. The sample rows of the upper sample column of the JPEG2024099596000002.jpg187169 coding block, i.e., the sample rows of the upper left sample and the lower left sample of the current coding block, such as sample {F, I}, are determined for the current coding block. Even if averaging is not used or averaging is not used, the set of neighboring samples finally used to predict the sample of the wedgelet 108a and the set of neighboring samples finally used to predict the sample of the wedgelet 108b consist of only one neighboring sample. The selection process depending on the two partitions determined for the current coding block selects one neighboring sample for one of the wedgelets 108a and 108b from the set of neighboring candidate samples, such as {A, D}. Similarly, the selection process depending on the two partitions determined for the current coding block selects one neighboring sample for another of the wedgelets 108a and 108b from the set of neighboring candidate samples, such as {F, I}. The samples of the wedgelets are then predicted by the neighboring samples selected, respectively. One of the wedgelets is set apart from all neighboring candidate samples, so that at least one of the set of neighboring candidate samples contains an initialization constant value, for example because the wedgelet may be located in the lower right corner of the coding block. A mixture of averaging and one-selection processes is commonly used. For example, the selection process asks whether the upper left sample of the coding block is in the same wedgelet as the upper right sample, and whether the upper left sample of the coding block is in the same wedgelet as the lower left sample.If both questions are answered "yes", it is determined that the wedgelet effectively moves diagonally from bottom left to top right, and if the questions reveal that all of the samples in the top left, top right and bottom left are within one wedgelet, i.e., one wedgelet is not adjacent to any of {A, D, F, I}, then a predicted value for the wedgelet is determined by averaging {D, F} of one wedgelet and {A, I} of the other wedgelet, using a constant initialization value instead of the average of {A, I}, such that the initialization value is used as the predictor for the latter wedgelet. But if the question were answered differently, it would be determined that the wedgelets actually move horizontally or vertically, and in the first case, adjacent sample A is used for one wedgelet and the intermediate adjacent sample between F and I, such as G, is used for the other wedgelet, and in the second case, adjacent sample I is used for one wedgelet and the intermediate adjacent sample between A and D, such as C, is used for the other wedgelet.

[0019] JPEG2024099596000003.jpg22170

[0020] The advantages of the concept of FIG. 4 over that of FIG. 3 are as follows: by increasing the size of the coding block 104, the length of the syntax element 114 becomes larger and larger. However, with each additional bit, the expressible interval range, i.e. the size of the list 112, increases exponentially. That is, quantization of the size of the syntax element 114 and adaptation of its length to the actual needs imposed by the size of the coding block 104 is difficult to achieve, since the list 112 lists all available combinations of slopes 112 and interruptions. By using the variable length code syntax element 124, the data rate used for all of the coding blocks coded using a coding mode based on Wedgelets is reduced, since it is feasible to adapt the length of the suffix 128 to the actual needs. One example outlined above makes the prefix indicate the approximate direction of the Wedgelet separation line and the length of the suffix depends on this direction as well as the size of the coding block. By this means, it is easy to adapt the length of the suffix 128 to the approximate direction 112. Approximate directions near exact horizontal or vertical expansion require refinement, i.e., a lower number of suffix states. Thus, the length of the suffix varies between smaller values, and the "quantization" of the suffix length in units of bits is not negatively affected by the exponential relationship between the representable states and bit length of the suffix 128. Thus, the bit rate used for the syntax element 124 more closely matches the actual optimum, as discussed with respect to FIG. 2.

[0021] For completeness, Fig. 5 shows how the prefix 126 is constructed using the syntax elements mentioned above in section 3, resulting in a fixed length 5-bit prefix 126. The same is true for the suffix 128. As shown, the prefix 126 is composed of a flag 126a indicating whether the direction / slope 12 of the coarse / approximate Wedgelet separation line is effectively horizontal or effectively vertical, a signal bit 126b indicating the angular direction that the slope / direction 12 of the Wedgelet separation line 110 deviates from the horizontal or vertical direction, and a fixed bit length value (absVal) 126c indicating the amount of angular deviation. The suffix 128 is composed of the syntax element idx. The bit length of idx, i.e. N idx depends not only on the size of the coding block 104, as outlined above, but also on the prefix 126, which in turn indicates the approximate slope / direction 112 of the Wedgelet separation line. The table below shows the N of the suffix 128 for each exemplary block size. idx From the indicated block size of the coding block 104 on the one hand and the gradient / direction 112 on the other hand, the bit length of the suffix 128, i.e. N idx Here is an example for the dependency:

[0022] In a particular embodiment, the above concepts are translated into explicit examples as follows: In doing so, "flag" 126a is wedge_dir_flag, sign 126b is wedge_dir_sign_flag, absVal 126c corresponds to wedge_dir_abs, and idx 128 corresponds to wedge_dir_tab_idx.

[0023] In that case, the relevant syntax construct contained in the data stream for a coding block 104 coded based on a given Wedgelet at x0, y0 (its location in the depth map or image) is written as follows:

[0024] [Table 1]

[0025] The length of wedge_dir_tab_idx measured in bits, i.e. the length of the variable length syntax element suffix consisting of all listed syntax elements, is wedgeDirTabIdxBits. This length is determined depending on the size of the coding block 104 log2PbSize and the direction of the approximate wedgelet separation line WedgeDir, as illustrated in the table below. The relationship of the value of WedgeDir to the actual slope / direction according to this example is illustrated in FIG. 9.

[0026] [Table 2]

[0027] Log2PbSize is the logarithm of the height or width of the coding block measured in samples, i.e., in the example outlined, the decoder actually determines the direction of the approximate Wedgelet separation line as follows: wedge_dir_flag[x0][y0], wedge_dir_sign_flag[x0][y0], and wedge_dir_abs[x0][y0] are used to derive WedgeDir[x0][y0] as follows: WedgeDir[x0][y0]=(3-2*wedge_dir_flag[x0][y0])<<3-wedge_dir_sign_flag[x0][y0]+(1-2*wedge_dir_sign_flag[x0][y0])*wedge_dir_abs[x0][y0]

[0028] wedgeDir can assume values ​​from 0 to 31, inclusive, corresponding to the 32 exemplary directions / tilts shown in FIG.

[0029] Of course, the exact formula depends on the situation and may look different. However, generally, the formula interprets the meanings of wedge_dir_flag, wedge_dir_sign_flag, and wedge_dir_abs as outlined above for Figure 4.

[0030] The binary relationship of the individual samples of the current coded block for one of the two wavelets is then indicated by the binary array wedgePattern. In particular, wedgePattern is collected in one search table WedgeDirPatternTable. The search table is three-dimensional and requires three-dimensional indexes to arrange the correct binary partition arrays. The indexes are composed of the block size Log2PbSize of the coded block, the approximate wavelet separation line direction WedgeDir, and the transmitted suffix, i.e., wedge_dir_tab_idx.

[0031] That is, the wedge pattern is searched as follows. wedgePattern = WedgeDirPatternTable[Log2PbSize][WedgeDir][wedge_dir_tab_idx]

[0032] The search table is exemplified as follows. An array WedgeDirPatternTable[log2BlkSize][dirIdx] of binary partition patterns of size (1 << log2BlkSize) × (1 << log2BlkSize), and a variable NumWedgeDirPattern[log2BlkSize][dirIdx] that defines the number of binary partition patterns in the list WedgeDirPatternTable[log2BlkSize][dirIdx] are derived as defined as follows. For log2BlkSize ranging from 2 to the maximum size, the following applies comprehensively. Depending on log2BlkSize (equal to log2PbSize as described above), the variable resShift is derived as specified in the following table.

[0033]

Table 3

[0034] The variable wBlkSize is set equal to (1<<(log2BlkSize + resShift)). For wedgeOri in the range from 0 to 5, the following steps in order are comprehensively applied. Depending on wedgeOri, the variables xPosS, yPosS, xPosE, yPosE, xIncS, yIncS, xIncE, and yIncE are derived as specified in the following table.

[0035]

Table 4

[0036] For m in the range from 0 to wBlkSize - 1, the following is comprehensively applied. For n in the range from 0 to wBlkSize - 1, the following is comprehensively applied. The following specified wedgelet pattern generation process results in a patternSize equal to (1<<log2BlkSize), a variable resShift, a variable wedgeOri, xS equal to (xPosS + m * xIncS), yS equal to (yPosS + m * yIncS), xE equal to (xPosE + n * xIncE), and yE equal to (yPosE + n * yIncE) such that the input and output are the binary array curWedgePattern. The variable wDir that specifies the direction of curWedgePattern is derived as specified below (i.e., the base / general direction wDir, which assumes values ​​from 0 to 31, both inclusive, is determined here for each Wedgelet pattern and is used below for wedgeDirPatternTable[log2BlkSize][dirIdx[]]).

[0037] The variable deltaX is set equal to ((xPosE+n*xIncE)-(xPosS+m*xIncS)) and the variable deltaY is set equal to ((yPosE+n*yIncE)-(yPosS+m*yIncS)). If deltaX is equal to 0 and deltaY is equal to 0 then the following applies: If (xPosS+m*xIncS) is equal to (yPosS+m*yIncS), then wDir is set to 0, else ((xPosS+m*xIncS) is not equal to (yPosS+m*yIncS)), then wDir is set to 16. Otherwise (deltaX is not equal to 0 or deltaY is not equal to 0), the following applies: verFlag=(abs(deltaY)>abs(deltaX))?1:0 if(verFlag==1) { (deltaX,deltaY)=Swap(deltaX,deltaY) } if(deltaY==0)&&(wedgeOri<4){ deltaY=1 deltaX = deltaX << 1 } lS=(deltaY<<7) / deltaX angOff=(lS<4)?0:((lS<14)?1:((lS<28)?2:((lS<44)?3:((lS<60)?4:((lS<76)?5:((lS<94)?6:((lS<115)?7:8))))))) sign=((lS<0)?-1:1)*(verFlag?1:-1) wDir=((1+2*verFlag)<<3+sign*angOff)%32

[0038] The Wedgelet pattern list insertion process as defined below takes as inputs log2BlkSize, a variable wDir, and a binary partition pattern curWedgePattern.

[0039] Wedgelet Pattern Generation Process The inputs to the Wedgelet pattern generation process are: A variable patternSize that defines the size of the binary division pattern; a resolution shift value resShift that specifies the accuracy of the location of the start and end of the Wedgelet partition relative to the patternSize; A variable wedgeOri defining an orientation identifier for the wedgelet pattern; a variable xS defining the segment line start horizontal position; a variable yS defining the segment line start vertical position; a variable xE defining the horizontal position of the segment line end; and a variable yE that defines the vertical position of the segment line end.

[0040] The output of the Wedgelet pattern generation process is It is a binary array wedgePattern[x][y] of size (patternSize) × (patternSize). The variable curSize, which specifies the size of the current partition pattern, is derived as follows: curSize=(resShift==1)? (patternSize<<1):patternSize When resShift is equal to -1, the variables xS, yS, xE and yE are modified as specified in the following table.

[0041] [Table 5]

[0042] The values ​​of the variable curPattern[x][y] are derived as specified by the following ordered steps. For 1.x, y = 0..curSize-1, curPattern[x][y] is set equal to 0. 2. The samples of the array curPattern that form the line between (xS, yS) and (xE, yE) are set equal to 1, as defined below.

[0043] x0=xS y0=yS x1=xE y1=yE if(abs(yE-yS)>abs(xE-xS)) (x0, y0) = Swap(x0, y0) (x1, y1) = Swap(x1, y1) } if(x0>x1) { (x0,x1)=Swap(x0,x1) (y0,y1)=Swap(y0,y1) } sumErr=0 posY=y0 for(posX=x0;posX<=x1;posX++) { if(abs(yE-yS)>abs(xE-xS)) curPattern[posY][posX]=1 else curPattern[posX][posY]=1 sumErr +=(abs(y1-y0)<<1) if(sumErr>=(x1-x0)) { posY+=(y0 <y1)?1:-1 sumErr - = (x1 - x0) << 1 } }

[0044] 3. Samples of curPattern that belong to the smaller partition are set equal to 1, as defined below. if(wedgeOri==0) for(iX=0;iX <xS;iX++) for(iY=0;curPattern[iX][iY]==0;iY++) curPattern[iX][iY]=1 else if(wedgeOri==1) for(iY=0;iY <yS;iY++) for(iX=curSize-1;curPattern[iX][iY]==0;iX--) curPattern[iX][iY]=1 else if(wedgeOri==2) for(iX=curSize-1;iX>xS;iX--) for(iY=curSize-1;curPattern[iX][iY]==0;iY--) curPattern[iX][iY]=1 else if(wedgeOri==3) for(iY=curSize-1;iY>yS;iY--) for(iX=0;curPattern[iX][iY]==0;iX++) curPattern[iX][iY]=1 else if(wedgeOri==4)&&((xS+xE) <curSize)) for(iY=0;iY <curSize;iY++) for(iX=0;curPattern[iX][iY]==0;iX+) curPattern[iX][iY]=1 else if(wedgeOri==4) for(iY=0;iY <curSize;iY++) for(iX=curSize-1;curPattern[iX][iY]==0;iX--) curPattern[iX][iY]=1 else if(wedgeOri==5)&&((yS+yE) <curSize)) for(iX=0;iX <curSize;iX++) for(iY=0;curPattern[iX][iY]==0;iY++) curPattern[iX][iY]=1 else if(wedgeOri==5) for(iX=0;iX <curSize;iX++) for(iY=curSize-1;curPattern[iX][iY]==0;iY--) curPattern[iX][iY]=1

[0045] 4. A binary wedge pattern wedgePattern[x][y], with x, y = 0..patternSize-1, is derived as specified below. If resShift is equal to 1, the following applies: Depending on the wedgeOri, the variables xOff and yOff are set as specified in the following table.

[0046] [Table 6]

[0047] For x, y = 0..patternSize-1, the following applies: wedgePattern[x][y]=curPattern[(x<<1)+xOff][(y<<1)+yOff] Otherwise (resShift is not equal to 1), wedgePattern is set equal to curPattern.

[0048] Wedgelet Pattern List Insertion Process The input to the Wedgelet pattern list insertion process is: A variable log2BlkSize that defines the binary partition pattern size as (1<<log2BlkSize), and a variable wDir that defines the direction of the wedgelet pattern, and a binary partition pattern wedgePattern[x][y] with x, y = 0..(1<<log2BlkSize)-1. A variable isValidFlag that defines whether the binary partition pattern wedgePattern is added to the list WedgeDirPatternTable[log2BlkSize][wDir] is set equal to 0. The value of isValidFlag is derived as defined by the steps in the following order.

[0049] 1. For x, y = 0..(1<<log2BlkSize)-1, the following applies. When wedgePattern[x][y] is not equal to wedgePattern[0][0], the flag isValidFlag is set to 1. For dir in the range from 0 to 31, inclusively, the following applies. For k = 0..NumWedgeDirPattern[log2BlkSize][dir]-1, the following applies. The flag patIdenticalFlag is set equal to 1. For x, y = 0..(1<<log2BlkSize)-1, the following applies. When wedgePattern[x][y] is not equal to WedgeDirPatternTable[log2BlkSize][dir][k][x][y], patIdenticalFlag is set to 0. When patIdenticalFlag is equal to 1, isValidFlag is set to 0.

[0050] 2. For dir in the range from 0 to 31, inclusively, the following applies. For k = 0..NumWedgeDirPattern[log2BlkSize][dir] - 1, the following applies. The flag patInvIdenticalFlag is set to 1. For x, y = 0..(1 << log2BlkSize) - 1, the following applies. When wedgePattern[x][y] is equal to WedgeDirPatternTable[log2BlkSize][dir][k][x][y], patInvIdenticalFlag is set to 0. When patIdenticalFlag is equal to 1, isValidFlag is set to 0. When isValidFlag is equal to 1, the following applies. The pattern WedgeDirPatternTable[log2BlkSize][wDir][NumWedgeDirPattern[log2BlkSize][wDir]] is set equal to wedgePattern. The value of NumWedgeDirPattern[log2BlkSize][wDir] is incremented by 1.

[0051] The above example of transmitting variable - length code syntax elements is extended in the following way to carry syntax elements configurations 130 and 132. In particular, the following syntax follows the four lines identified above related to wedge_dir_flag, wedge_dir_sign_flag, wedge_dir_abs, and wedge_dir_tab_idx.

[0052]

Table 7

[0053] JPEG2024099596000011.jpg81170

[0054] JPEG2024099596000012.jpg38170

[0055] However, the way in which the samples belonging to the individual Wedgelets are actually filled may be implemented in different ways.

[0056] It should be noted that in all of the above embodiments, multiple Wedgelet-based coding modes are available. One of the modes fills the samples in a Wedgelet with a constant value transmitted - exemplarily predictively encoded - via the individual syntax element configurations 130 / 132, one constant value per Wedgelet. However, another mode fills the samples of the individual Wedgelets with a linear function, i.e. linear for a two-dimensional array of samples. Besides this, one or more non-Wedgelet-based coding modes are also available. For example, such a mode simply transmits a transform coefficient array for a coding block that represents a spectral decomposition of the coding block's contents.

[0057] Furthermore, it should be noted that in all the above embodiments, the content of the coding block 104 actually represents a prediction residual, such as a prediction residual of a motion-compensated (temporal) and / or disparity-compensated (inter-view) prediction. As a result, the decoder adds the reconstructed content of the coding block to such a motion-compensated (temporal) and / or disparity-compensated (inter-view) prediction signal in order to obtain a reconstruction of the content of the block 104.

[0058] Thus, with respect to Fig. 1 to Fig. 6, several embodiments of the invention for Wedgelet-based coding of coding blocks have been described. However, it should be mentioned that these embodiments containing different details can be modified while still providing the advantages disclosed above in the introductory part of the specification of the invention. In the following, embodiments of the encoder and decoder are described, which, according to the embodiments, are implemented in accordance with the details described in the above identified embodiments. However, they are also implemented differently due to generalizations of the above embodiments.

[0059] FIG. 7 illustrates, for example, a decoder 200 according to an embodiment. The decoder 200 supports Wedgelet-based coding of coding blocks. As mentioned above, the coding blocks 104 are all coding blocks or a subset of coding blocks into which the image or depth map 100 / 102 is partitioned for which the decoder 200 performs Wedgelet-based decoding. That is, the coding blocks 104, if taken together, completely cover the image or depth map 100 / 102 in spatial or other terms. For example, the decoder 200 optionally comprises a subdivision and coding block traversal 202 or means for subdividing the image / depth map 100 / 102 into coding blocks 104 and traversing the coding blocks 104, respectively. For example, the block 202 derives the subdivision of the image / depth map 100 / 102 into coding blocks 104 from subdivision information obtained from the data stream 120. As will be further described below, in addition to those coding blocks that are Wedgelet 2 partitioned, there are other coding blocks that are assigned coding modes other than the Wedgelet 2 partition mode described next. For example, such other coding blocks are coded in the spectral domain via quantized transform coefficients, such as DCT (Discrete Cosine Transform) coefficients. For coding blocks that are decoded based on Wedgelets, the decoder 200 comprises, for example, a prefix reader 204, a suffix length determiner 206, a suffix reader 208, a Wedgelet 2 partitioner 210, and a reconstructor 212. Blocks 204 to 212 operate, for example, by block 202 for each current coding block 104 that is decoded based on Wedgelets. As mentioned above, coding blocks 104 that are decoded based on Wedgelets may not completely cover the image 100 or the depth map 102, respectively.

[0060] The prefix reader 204 serves as a means for reading the variable length code syntax element prefix 126 (see above) from the data stream 120. As mentioned above, the prefix reader 204 is configured to read the prefix 126 from the data stream using a fixed bit length that is independent of the size of the current coding block, and is configured to read the prefix bits from the data stream either directly, i.e., without entropy decoding, or using a fixed equal probability binary entropy decoding, i.e., with the same probability for each possible value of the prefix or for each bit of the prefix. For example, if the prefix 126 is a 2-bit number that the prefix assumes, the prefix reader 204 may be configured to read the prefix bits from the data stream either directly, i.e., without entropy decoding, or using a fixed equal probability binary entropy decoding, i.e., with the same probability for each possible value of the prefix or for each bit of the prefix. nSuppose that the n-bit prefix has n possible values. Then, for example, the decoder can intermittently stop subdividing the internal arithmetic probability interval width to arithmetically decode further syntax elements (except the prefix). However, the decoder also participates in describing the image / depth map from the data stream with a prefix reader that reads the next n prefix bits in a row directly from the data stream 120, i.e., without changing the internal arithmetic probability interval width, or only changing the internal arithmetic probability interval width independent of the prefix. Alternatively, the prefix reader continues to divide the decoder's internal arithmetic probability interval width by n bits of the prefix, such that another syntax element is arithmetically decoded in the same way, for example by reading bits from the data stream to see the binary values ​​that the individual bits of the prefix have, with the internal arithmetic probability interval width for every n bits. This effectively eases the reading task compared to context-based entropy coding. Also as mentioned above, the prefix reader 204 reads the prefix as a combination of a flag 126a indicating the approximate direction 112 of the wedgelet separation line 110 separating the two wedgelets, which is primarily horizontal or primarily vertical, a cue 126b indicating the direction of the angular deviation of the approximate direction of the wedgelet separation line from a precisely horizontal or vertical extension, and an absolute value 126c indicating the magnitude of the angular deviation. That is, as mentioned above, the flag 126a indicates whether the angle between the horizontal axis and the wedgelet separation line is less than the angle between the wedgelet separation line and the vertical axis, or vice versa. For example, the angular deviation is measured clockwise, and thus the cue indicates the direction of the angular deviation. The opposite is equally true. However, the "structuring" of the fixed length n-bit prefix into horizontal / vertical flags, cues and m-bit absolute offsets (with m=n-2) is arbitrary and may in fact be as small as 2 n This is interpreted as an example for a specific binding of n-bit / digit representations of n-bit prefixes onto the approximate Wedgelet separation line directions / slope. nApproximate wedgelet separation line directions / slope and the 2 n Other bindings between the possible values ​​may also be used.

[0061] Thus, as shown in FIG. 7, the decoder 200 optionally comprises a wedgelet separation line direction determiner 214, or means for determining the approximate direction of the wedgelet separation line based on the prefixes read by the prefix reader 204.

[0062] The suffix length determiner 206 serves as a means for determining the suffix length, for example measured in bits, where the determination is performed based on the prefix read by the reader 204 and the size of the current coding block. As far as the suffix length determiner 206 is concerned, it is clear that it uses the prefix to directly or indirectly determine the length of the suffix 128 of the variable length code syntax element 124, such as by determining the suffix length based on an approximate direction, as determined by the determiner 214. In general, the determiner 206 is configured such that the length of the suffix 228 increases with increasing coding block size. Furthermore, the length of the suffix tends to be smaller for prefixes that match an approximate direction near the exact horizontal or vertical extension. For example, the suffix length determined by the determiner 206 for each coding block size is smallest for approximate directions parallel to or at least similar to the horizontal or vertical axis compared to the suffix length determined by the determiner 206 for each coding block size for approximate directions of another Wedgelet separation line diagonal to the horizontal and vertical axes, i.e., directions close to the diagonal (45°) direction. The advantage can be seen from FIG. 9. The angular density of approximate directions / tilts distinguishable by the prefix varies with angle. In the example of FIG. 9, the density is highest in the horizontal and vertical directions, but this is different in other embodiments. However, in such "high density directions", the number of reasonably distinguishable Wedgelet separation line positions (tilted offsets) can be distributed / related over a higher number of approximate tilts / directions. Thus, to distinguish between the approximate slope of a given prefix value and individual Wedgelet separation line positions of similar slope, the number of suffix states of a given prefix value identifying an approximate slope at or around such a "high density direction" is reduced compared to prefix values ​​identifying approximate slopes further away from the high density direction in terms of angles. By this means, valuable bits of the data stream are saved.

[0063] The suffix reader 208 functions as a reader for reading the suffix of the variable length code syntax element from the data stream 120 using the length determined by the determiner 206. That is, the suffix reader reads a number of bits from the data stream determined by the suffix length determiner 206. As mentioned above, the suffix reader 208 also reads the suffix bits from the data stream 120 directly or using fixed equal probability binary entropy decoding. For example, the suffix may be a suffix that is two bits longer than the prefix assumes. m Suppose that the m-bit prefix has m possible values. Then, for example, the decoder can intermittently stop subdividing the internal arithmetic probability interval width to arithmetically decode further syntax elements (except the suffix). However, the decoder also participates in describing the image / depth map from the data stream with a suffix reader that reads the next m prefix bits in a row directly from the data stream 120, i.e., without changing the internal arithmetic probability interval width, or only changing the internal arithmetic probability interval width independent of the suffix. Alternatively, the suffix reader continues to divide the decoder's internal arithmetic probability interval width by m bits of the suffix, so that another syntax element is arithmetically decoded in the same way, for example by reading bits from the data stream with an internal arithmetic probability interval width for every m bits, and arithmetically decodes the suffix from the data stream, which is entropy decoded in the same way, by reading bits from the data stream to see the binary values ​​that the individual bits of the suffix have.

[0064] The Wedgelet 2 partitioner 210 functions as a means for determining the bipartitioning of the current coding block into two Wedgelets using the variable length code syntax element. That is, the bipartitioner 210 associates each sample of the coding block with one of two Wedgelets in such a way that the samples assigned to one of the two Wedgelets are located on one side of the Wedgelet separation line whose position is defined by the prefix and the suffix, and the samples assigned to the other of the two Wedgelets are located on the other side of the Wedgelet separation line. For example, the Wedgelet 2 partitioner 210 is controlled by the suffix obtained by the suffix reader 208 and the prefix read by the prefix reader 204, i.e. directly or by the approximate direction of the Wedgelet separation line, as previously determined by the determiner 214. As mentioned above, the search table is performed by the bipartitioner 210 using as indexes the prefix, either directly or the approximate direction determined therefrom, the suffix, and the size of the current coding block. The table entries consist of a binary value map of the corresponding coding block size, and thus indicate the bipartitioning of coding blocks of that size along the Wedgelet separation lines corresponding to the respective prefixes and suffixes, which index the individual table entries along the coding block size. How such a table is constructed / constructed is illustrated above. Similarly, it has already been shown above that the Wedgelet bipartitioner computes the bipartitioning immediately, i.e. computationally, depending on the prefix, suffix and size of the current coding block.

[0065] In summary, a decoder according to Fig. 7 is as follows: A prefix reader 204 reads a prefix 126 from the data stream with a fixed bit length n that is independent of the size Z of the current coding block. nThe Wedgelet 2 splitter 206 indexes the approximate direction of the Wedgelet separation line from among the approximate directions tentatively indexed by the prefix. The Wedgelet 2 splitter is configured such that the two Wedgelets 108a, 108b into which the current coding block 104 is bisected according to the variable length code syntax element 124 are separated along a line with a slope approaching the approximate direction indexed by the prefix and with an offset that depends on the suffix. The suffix length determiner 206 determines the length m of the suffix 128 of the variable length code syntax element 124. For each possible size of the current coding block 104, m is the approximate direction tentatively indexed by the prefix. n The approximate direction of the indexable approximate directions is 2 n Depending on the prefix, m is determined to be maximum if the indexable approximate directions coincide with or are adjacent to the direction with the local maximum concentration of the angle. Then, n For each of the possible values ​​of m, m is determined depending on the size of the current coding block, so that m increases monotonically as the size increases. n The approximate indexable directions have local maximum angular concentration in the horizontal and vertical directions. In other words, P is 2 n One of the indexable approximate directions, or s[1] <s[2]<…<s[2 n ] slope s[1]…s[2 n Let S denote a prefix with n bits that indexes one of P and Z. Let S denote a suffix with bit length m, where m varies over both P and Z, i.e., m is m(P,Z), and Z denotes the coding block size Z. Furthermore, B P , S , Z Let be the bipartition used in the bipartitioner for prefix P, suffix S and coding block size Z. That is, B P , S , Z is the binary coefficient BP , S , Z Let (x, y) be an L(Z) × L(Z) binary coefficient matrix with 0≦x,y≦Z and L() being a strictly monotonically increasing function such as an exponential or linear function. Let Z be the set of all possible coding block sizes, denoted by Ω Z Omega with Z Then, each B P , S , Z is the slope s P , S , Z and offset o P , S , Z 2. Split the L(Z)×L(Z) block into two wedgelets along an actual wedgelet separation line (compare FIG. 2, which shows such an actual line 110) with i=2…2. For example, the actual wedgelet separation line passes through the center of each wedgelet sample and fits into another wedgelet that is immediately adjacent to it. And it n , i.e., for p, q, Δα[i]<Δα[i-1], Δα[i]<Δα[i+1] with Δα[i]=Δα[ip] or Δα[i]=Δα[i-1], ..., Δα[i]=Δα[i-p+1], and Δα[i]=Δα[i-1], ..., Δα[i]=Δα[i+q-1] with Δα[i]=Δα[ip], it holds true that there exists a local minimum P=i in the set of angular distances Δα[i]=s[i]-s[i-1]. This is wedgeDir=8 and wedgDir=24 in Fig. 9. For all coding block sizes Z e ∈Ω Z For m[i, Z e ]=min P ({P=1…2 n |m[P,Z e]}). This is true for both wedDir=8 and wedgeDir=24 in the above example table of wedgeDirTabIdxBits. That is, the wedgeDirTabIdxBits corresponding to wedDir=8 and wedgeDir=24 form a minimum on each line. Furthermore, each P e =1…2 n For m[P e , 1]≦m[P e , 2]≦…≦m[P e , max(Ω Z )]. This means that for each row in the table of wedgeDirTabIdxBits, the values ​​of wedgeDirTabIdxBits increase strictly monotonically from top to bottom. As seen in the above table of wedgeDirTabIdxBits, m is 0 for some or one coding block sizes, and is approximately in the direction P, i.e., height angle density direction i or around that direction, for some or one coding block sizes.

[0066] So far, only one embodiment is provided in which the wedgelet separation line is straight and defined by a slope and an offset. For example, the slope measures the angle between the straight wedgelet separation line and a horizontal axis. For example, the offset measures the displacement of the wedgelet separation line along the horizontal and / or vertical axis relative to the position of the wedgelet separation line across the lower left hand corner of the current coding block.

[0067] However, as already described above, embodiments of the present invention are not limited to straight Wedgelet split-lines. For example, the Wedgelet split-lines signaled via the prefix and suffix include curved Wedgelet split-lines. In that case, for example, the prefix still indicates / signals the appropriate direction of the Wedgelet split-line, i.e., the average slope of the Wedgelet split-line within the current coding block. The suffix further defines the curvature of the Wedgelet split-line and any displacement within the current coding block. Here, the suffix length depends on the coding block size as well as the prefix to account for the different variability of the two partitions resulting from changing the curvature and displacement with the respective approximate slope. Instead, the prefix already distinguishes several approximate curvatures of the Wedgelet split-line with the suffix refining the Wedgelet split-line position with respect to the average slope, curvature and displacement. Also, the suffix length is advantageously selected depending on both coding block sizes as well as the prefix value, to account for the difference in the number of distinguishable bipartitions that can be signaled by the latter refinement. Alternative options for the Wedgelet separation line are possible as well, such as allowing the Wedgelet separation line to have a curvature that varies along its extension.

[0068] The reconstructor 212 serves as a means for reconstructing the current coding block using the bipartitioning determined by the Wedgelet bipartitioner 210. That is, the bipartitioning obtained by the Wedgelet bipartitioner 210 associates each sample in the current coding block with one of the two Wedgelets in the current coding block. As described above, the reconstructor 212 is configured to individually fill the sample values ​​of the two Wedgelets of the current coding block determined by the bipartitioning from the bipartitioner 210 with constant values ​​coded in the data stream. For example, predictive coding is used. That is, for example, the reconstructor 212 spatially predicts a constant value for each of the two Wedgelets of the current coding block, and thus improves the predicted constant value thus obtained using syntax elements in the data stream 120 by filling the Wedgelets with the improved constant value, respectively. Further details have been described above with respect to FIG. 6. However, other possibilities exist as well, for example filling both Wedgelets by temporal prediction or spatial extrapolation from neighboring already reconstructed samples or the like. Fig. 7 illustrates that the decoder 200 is a hybrid decoder configured to use the reconstruction of the current coding block obtained by the reconstructor 212 as a prediction residual of a motion and / or imbalance compensated prediction signal. Fig. 7 thus shows that the decoder 200 comprises a prediction reconstructor 216 which switches between different prediction modes, such as motion compensated, imbalance and / or intra prediction modes, to obtain a prediction signal for the image 100 or the depth map 102, i.e. to combine both to improve the prediction signal, optionally using the reconstruction of the current coding block obtained by the reconstructor 212 as a prediction residual of this prediction signal, within units of the prediction block which may or may not coincide with the decoding block 104 at the block boundary.

[0069] Furthermore, as will become clear from the above discussion, the decoder 200 is a depth decoder with motion video, in which case, for example, the Wedgelet-based coding mode provided by blocks 204 to 212 discussed above is only used by the decoder 200 insofar as the decoding of the depth map is relevant to excluding this mode in the decoding of the text in the image 100.

[0070] The blocks of the decoder 200 shown in Figure 7 are various portions of a computer program that, for example, executes on a computer to implement the decoder 200. Similar statements apply to Figure 8.

[0071] For completeness, Fig. 8 shows an encoder 300 that corresponds to the decoder 200 of Fig. 7. The reference numbers used to indicate the blocks / elements of the encoder 300 are similar to those assigned to the elements of the decoder of Fig. 7, only deviated by the addition of 100. The encoder 300 of Fig. 8 thus comprises a subdivision, a coding block traversal 302, a prefix writer 304, a suffix length determiner 306, a suffix writer 308, a Wedgelet 2 partitioner 310, a coding block coder 312, an approximate direction determiner 314 and a predictive coder 316. The block 302 functions as the block 202, with the difference that, as far as the encoder 300 is concerned, the subdivision is selected depending on the image / depth map optimization scheme. Similarly, blocks 304 through 312 effectively mirror the functions performed by blocks 204 through 212 for the current coding block with the difference that the syntax elements associated with that current coding block and controlling the Wedgelet-based coding mode are selected at the encoder side according to an optimization scheme, as discussed above. Thus, prefix writer 304 and suffix writer 308 write the individual prefixes and suffixes into data stream 120, rather than reading them from data stream 120. Coding block encoder 312 then encodes the actual fill of samples, for example within the Wedgelets of the current coding block, and for this purpose writes individual syntax elements, such as the constant value refinements discussed above, into data stream 120. The predictive coder 316 similarly performs an emulated hybrid prediction using versions of the coding blocks as reconstructable from the data stream 120 based on syntax elements written into the data stream 120 by blocks 304 to 312 as prediction residuals, as previously described, if provided by the predictive reconstructor 216, but additionally by selecting individual coding parameters for these prediction blocks by individual optimization plans.In other words, the analysis-by-synthesis nature of the encoder 300 requires, for example, that the encoder make a reconstructable version of the image / depth map available for further prediction, to be performed by the predictive encoder 316. Thus, the encoder 300 is an MVD encoder, and reference is made to the above discussion on the decoder side for all further details used to further implement the encoder 300 of FIG.

[0072] The above embodiment is used to modify the mutual aliasing (aliasing) DMM1 Wedgelet mode of HTM-9.0 of the HEVC extension at the time prior to the priority date of the present invention. In that case, the modified signal of the DMM1 Wedgelet pattern is based on the 32 directions of the angle interior mode. The fixed length CABAC binarization scheme of the Wedgelet pattern list index is replaced by a binarization using bypass coding. The resulting modified scheme signals the direction of the Wedgelet separation line plus the refinement index.

[0073] In particular, in HTM-9.0, the Wedgelet pattern of DMM1 is signaled as an index in a Wedgelet pattern list that is consistent with the block size. This index is binarized by a fixed-length coding with one CABAC context. This solution cannot benefit very well from CABAC context adaptation. However, the binarization scheme for signaling DMM1 Wedgelet partition pattern information uses a bypass instead of CABAC context coding based on the 32 directions of the angle interior mode, as the scheme results by designing the pattern information according to the above embodiment.

[0074] In a concrete example, taking advantage of the above embodiment, for example, the DMM1 coding concept works as follows: In a first step, the interior direction, which corresponds to the direction of the wedgelet separation line, is signaled. For this purpose, the slope of the wedgelet line is tied to one of the 32 directions defined for the angle interior mode during the wedgelet pattern list initialization. Given the direction of the DMM1 block, the binarization works as follows: A flag is sent to define whether the direction is in the horizontal or vertical domain (H or V in FIG. 9). The direction offset of the slope to either HOR_IDX (10) or VER_IDX (26) is signaled as a signal (+ or - in FIG. 9) and an absolute value absVal (0 to 7 in FIG. 9) using 1 and 3 bypass coding bins, respectively. From these three elements, the direction dir (corresponding to wedgeDir-2 and having a value range of 2...34) is calculated with the following formula: dir=((flag)?10:26)+((sign)?-1:1)*absVal-sign

[0075] In a second step, the refinement index idx of the direction-dependent Wedgelet list is signaled using N bypass coding bins. The number of bins N depends on the length of the predefined list for each direction and block size. At the decoder, the Wedgelet pattern used for the reconstruction of the DMM1 block is consequently defined as a search in the array of direction-dependent Wedgelet lists wDirLists as pattern=wDirLists[dir-2][idx].

[0076] According to the description of CE5 in JCT3V-F1105 (Non-Patent Document 1) and the common test conditions in JCT3V-F1100 (Non-Patent Document 2), this modified DMM1 plan is evaluated for all internal configurations with random access (CTC) and HTM9.0r1. The results are summarized in the following table.

[0077] [Table 8]

[0078] [Table 9]

[0079] The modification requires modification of the specifications in Appendix H of JCT3V-F1001 (Non-Patent Document 3). Possible modifications are derived from the above description and possible fragments to amend the specifications also shown above.

[0080] The results in the latter table show that the binarization scheme modified for DMM1 Wedgelet partition pattern information results in a coding gain of about 0.1%. The coding performance is improved for all sequences with CTC as well as for all internal configurations. At the same time, the proposed method reduces the number of CABAC coding containers to 0 and does not result in higher complexity.

[0081] Although some aspects are described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or apparatus corresponds to a method step or a feature of a method step. Analogously, an aspect described in the context of a method step also represents a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware apparatus, such as, for example, a microprocessor or a programmable computer or electronic circuitry. In some embodiments, one or more of the most important method steps are performed by such an apparatus.

[0082] Depending on the requirements of a particular implementation, the embodiments of the invention may be implemented in hardware or software. The implementation may be implemented using a digital storage medium, such as a floppy disk or DVD or Blu-ray or CD or ROM or PROM or EPROM or EEPROM or flash memory, having electronically readable control signals stored thereon, which cooperates (or may cooperate) with a programmable computer system such that the particular method is performed. The digital storage medium is thus computer readable.

[0083] Some embodiments according to the invention comprise a data carrier having electronically readable control signals that may cooperate with a programmable computer system to perform one of the methods described herein.

[0084] Typically, embodiments of the invention are implemented as a computer program product having program code which operates to perform one of the methods when the computer program product runs on a computer, for example the program code being stored on a machine readable carrier.

[0085] A further embodiment comprises the computer program for performing one of the methods described herein, stored on a machine readable carrier.

[0086] In other words, an embodiment of the inventive method is therefore a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.

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

[0088] 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 being adapted to be transmitted over a data communication connection, e.g. via the Internet.

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

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

[0091] A further embodiment according to the invention comprises 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. For example, the receiver is a computer or a mobile device or a memory device or the like. For example, the apparatus or system comprises a file server for transferring the computer program to the receiver.

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

[0093] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

[0094] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

[0095] The above described embodiments are described merely 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 those skilled in the art. It is the intention, therefore, to be limited only by the scope of the appended claims and not by the specific details provided through the description and illustration of the embodiments herein.

[0096] References [1] H. Liu, "Description of Core Experiment 5 (CE5) on Depth Intra Modes," JCT3V-F1105, Geneva, Switzerland, November 2013. [2] D. Rusanovskyy, K. Mueller, A. Vetro, "Common Test Conditions of 3DV CoreExperiments," JCT3V-F1100, Geneva, Switzerland, November 2013. [3] G. Tech, K. Wegner, Y. Chen, S. Yea, "3D-HEVC Draft Text 2," JCT3V-F1001, Geneva, Switzerland, November 2013.

Claims

1. A decoder that supports decoding based on the wedgelet of the current coding block, A reader configured to read a variable-length coded syntax element from a data stream using entropy decoding, wherein the size of the variable-length coded syntax element and the current coded block indicates a wedgelet two-partitioner for determining the two-partitioning of the current coded block into two wedgelets, the variable-length coded syntax element indexes one entry in a lookup table, each entry corresponding to a wedgelet separation line separating the two wedgelets, the separation line comprising a slope of the wedgelet separation line from a plurality of slopes and an offset of the separation line, wherein the slope measures the angle between the straight wedgelet separation line and the horizontal axis, and the offset measures the translation of the wedgelet separation line along the horizontal and / or vertical axes. Reader and A reconfigurator configured to reconstruct the current coded block according to the two-partitioning instructed by the wedgelet two-partitioner, A decoder that includes this.

2. The decoder according to claim 1, wherein the length of the variable-length coding syntax element increases as the size of the current coding block increases.

3. A length determination device configured to determine the length of the variable-length coding syntax element associated with the current coding block based on the size of the current coding block, The reader is configured to read the variable-length coded syntax elements from the data stream directly or using fixed equiprobability binary entropy decoding, using the determined length. The decoder described in item 1.

4. An encoder that supports coding based on the wedgelet of the current coding block, A programmer configured to write a variable-length coded syntax element to a data stream using entropy coding, wherein the size of the variable-length coded syntax element and the current coded block indicates a wedgelet two-partitioner for determining the two-partitioning of the current coded block into two wedgelets, the variable-length coded syntax element indexes one entry in a lookup table, each entry corresponding to a wedgelet separation line separating the two wedgelets, the separation line comprising a slope of the wedgelet separation line from a plurality of slopes and an offset of the separation line, where the slope measures the angle between the straight wedgelet separation line and the horizontal axis, and the offset measures the translation of the wedgelet separation line along the horizontal and / or vertical axes, A coder configured to encode the current coded block according to the two-partitioning instructed by the wedgelet two-partitioner, An encoder that includes this.

5. The encoder according to claim 4, wherein the length of the variable-length coding syntax element increases as the size of the current coding block increases.

6. A method for supporting decoding based on a wedgelet of the current coding block, the method comprising: A step of reading a variable-length coded syntax element from a data stream using entropy decoding, wherein the size of the variable-length coded syntax element and the current coded block indicates a wedgelet dipartitioner for determining the dipartition of the current coded block into two wedgelets, the variable-length coded syntax element indexes one entry in a lookup table, each entry corresponding to a wedgelet decoupling line separating the two wedgelets, the decoupling line comprising a slope of a plurality of slopes and an offset of the decoupling line, where the slope measures the angle between the straight wedgelet decoupling line and the horizontal axis, and the offset measures the translation of the wedgelet decoupling line along the horizontal and / or vertical axes. The steps include: reconstructing the current coded block according to the two-partitioning instructed by the wedgelet two-partitioner; A method that includes this.

7. A method for supporting coding based on a wedgelet of the current coding block, the method being: A step of writing a variable-length coding syntax element to a data stream using entropy coding, wherein the size of the variable-length coding syntax element and the current coding block indicates a wedgelet dipartitioner for determining the dipartition of the current coding block into two wedgelets, the variable-length coding syntax element indexes one entry in a lookup table, each entry corresponding to a wedgelet decoupling line separating the two wedgelets, the decoupling line comprising a slope of a plurality of slopes and an offset of the decoupling line, where the slope measures the angle between the straight wedgelet decoupling line and the horizontal axis, and the offset measures the translation of the wedgelet decoupling line along the horizontal and / or vertical axes, The steps include encoding the current encoding block according to the two-partitioning instructed by the wedgelet two-partitioner, A method that includes this.

8. A computer program for causing a computer to perform the method described in Claim 6.

9. A computer program for causing a computer to perform the method described in Claim 7.