Wedgelet-based coding concept
The use of a variable-length encoding syntax element with a prefix and suffix adapts to the size of the coding block, enhancing wedgelet-based coding efficiency by efficiently signaling the wedgelet separation line, especially in encoders with varying block sizes.
Patent Information
- Application Number
- JP2024064354
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2014-01-03
- Filing Date
- 2024-04-12
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2034-12-30
AI Technical Summary
Wedgelet-based coding efficiency decreases when applied to encoders that support coding blocks of varying sizes, as the position of the wedgelet separation line and information on filling the resulting wedges need to be shared between encoder and decoder, and the existing methods are inefficient in adapting to varying block sizes.
A variable-length encoding syntax element consisting of a prefix and a suffix is used to adapt the length of the encoding syntax element to the size of the current coding block, allowing for efficient bipartitioning of coding blocks of varying sizes without context adaptive entropy coding.
This approach enhances coding efficiency by adapting the length of the encoding syntax element to the actual needs of the coding block, reducing data transfer rate and improving precision in signaling the wedgelet separation line.
Smart Images

Figure 0007911024000014 
Figure 0007911024000015 
Figure 0007911024000016
Abstract
Description
[Technical Field]
[0001] This invention relates to a coding concept based on wedgelets. [Background technology]
[0002] In the field of video coding, particularly 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 divided into two halves called wedges along a wedgelet separation line, which is, for example, a straight line having a predetermined slope and a predetermined offset. Although various implementations have been described so far, there is an ongoing need to further reduce the sub-information required for wedgelet-based bipartitioning. In particular, the position of the wedgelet separation line needs to be shared between the encoder and decoder, along with information on how to fill the resulting wedges.
[0003] Aside from the use of wedgelet-based coding concepts, newer video and / or image encoders tend to encode images within units of coding blocks of varying sizes. For example, the subdivision of an image into coding blocks is transmitted in a signal within the data stream, and within the units of coding blocks, for example, the prediction mode and / or prediction parameters are encoded within the data stream.
[0004] The coding efficiency of wedgelet-based coding concepts appears to decrease when applied to encoders that support coding blocks of various sizes. [Overview of the project] [Problems that the invention aims to solve]
[0005] Therefore, an object of the present invention is to provide a wedgelet-based coding concept that increases coding efficiency when applied to coding blocks of varying sizes. This object is achieved by the subject matter of the independent claims.
Means for Solving the Problems
[0006] The wedgelet-based coding in association with the use of coding blocks of varying sizes is made even more efficient by the use of a variable-length encoding syntax element (variable-length coded syntax element) consisting of a prefix and a suffix. This is the basic discovery of the present invention. The size of the suffix depends on the prefix and the size of the current coding block. By this means, it is possible to efficiently adapt the length of the variable-length encoding syntax element that controls the bipartition of the current coding block to the actual needs (i.e., size) of the current coding block and to the variability of the bipartition by changing the wedgelet separation line. As the current coding block becomes larger, the variable-length encoding syntax element becomes longer. This length dependence is sufficiently effective for coding efficiency such that the variable-length encoding syntax element is coded without context adaptive entropy coding but directly or using fixed equivalent probability binary entropy coding.
[0007] Advantageous embodiments are the subject matter of the dependent claims, and preferred embodiments of the present invention will be described below with reference to the drawings.
Brief Description of the Drawings
[0008] [Figure 1] FIG. 1 shows an example for the bipartition based on wedgelets of coding blocks, where blocks of a depth map provided in addition to the text of an image are示例性. [Figure 2]Figure 2 shows a schematic diagram illustrating possible methods for dividing an encoded block into two based on a wedgelet delimiter line, illustrating encoded blocks of various sizes and examples for dividing a smaller encoded block into two based on a wedgelet delimiter line. [Figure 3] Figure 3 shows a schematic diagram illustrating the indexing plan related to the location of the wedgelet decoupling line, based on the input of a list pointed out by syntactic elements for signaling the location of the wedgelet decoupling line. [Figure 4] Figure 4 shows an example schematic diagram for syntactic elements used as sub-information for coding based on wedgelets of coding blocks, according to an embodiment of the present invention. [Figure 5] Figure 5 shows a schematic diagram illustrating the combinations of variable-length coding syntax elements in Figure 4 based on prefixes and suffixes, according to a more detailed embodiment. [Figure 6] Figure 6 shows a schematic diagram illustrating the reconstruction of an encoded coded block based on a wedgelet according to an embodiment. [Figure 7] Figure 7 shows a block diagram of a decoder according to one embodiment of the present invention. [Figure 8] Figure 8 shows a block diagram of an encoder according to one embodiment of the present invention. [Figure 9] Figure 9 shows the approximate possible directions / slope, assuming that encoding can be performed using a prefix according to one embodiment. [Modes for carrying out the invention]
[0009] As a well-known technique, depth maps exhibit certain features that introduce depth map-defined block coding modes, in addition to being known for their advantages in encoding text. A depth map associated with a given image, i.e., text, evolves such that the depth map sample values consist of a higher number of parameterizable areas using constant or linear functions. Often, such areas are adjacent to each other along a representative line, for example, the perimeter of a foreground object that separates the foreground from the background. Thus, to encode depth maps in blocks, the wedgelet separation concept is introduced such that a typically rectangular coding block is further subdivided into two wedges along a so-called wedgelet separation line that separates the corresponding coding block in half, i.e., into two wedges. The interiors of both wedges are then encoded separately. The division of the coding block into two wedges, and the additional bits used to switch the wedgelet separation mode on / off, are overcompensated by the advantages of encoding the contents of "wedgelet-like" coding blocks.
[0010] Figure 1 shows a depth map 100 associated with an image or text image 102. Although different sample resolutions are possible, such as a coarser sample resolution for the depth map 100 associated with the image 102, the sample resolution of the depth map 100 is equal to the sample resolution of the image 102. The depth map 100 is encoded in encoding blocks 104. That is, the depth map 100 is subdivided or divided into encoding blocks 104, which are, for example, rectangles or squares. Dividing the depth map 100 into encoding blocks 104 means that the encoding blocks 104 have varying sizes. Three different sizes are shown in Figure 1 for illustrative purposes. The number of available encoding block sizes is different from these. The encoding blocks 104 define the units that the encoder switches between different encoding modes. The encoding mode selected for each encoding block 104 is signaled in the data stream to a decoder that sequentially decodes the individual encoding blocks 104 using the signaled encoding mode. One of these encoding modes is the "wedgelet encoding mode," which follows the division of encoding block 104 into two wedgelets to allow the contents of individual wedgelets (i.e., sample values) to be encoded separately. Figure 1 illustrates this in an enlarged section 106 for a representative encoding block 104. As shown, encoding 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 encoding block 104 to which such a wedgelet-based encoding 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 outer perimeter of block 104 and the line 110, or the positions of two intersections of the outer perimeter of block 104 and the line 110.
[0011] As shown in Figure 2, the number of possible subdivisions of the encoded block 104 into two wedgelets strongly depends on the size of the block 104 measured in the sample. In Figure 2, the block 104 is shown, for example, as a 4x4 block on the left, compared to a wider 8x8 sample on the right. As is readily apparent, due to the smaller number of samples in the 4x4 block 104, the number of distinguishable subdivisions of the block 104 into two wedgelets is smaller compared to the larger encoded block shown on the right. For example, a wedgelet separation line 110 is shown exemplarily to divide the 4x4 block 104 into two wedgelets. The transformation of the bipartitionization defined by the wedgelet separation line 110 on the samples of the block 104 is performed as follows: A sample from block 104 on one side of the wedgelet separation line 110 is assigned, for example, to one wedgelet 108a, and conversely, a sample from block 104 on the other side of line 110 is assigned to the other wedgelet 108b. This is straightforward as far as samples that do not intersect line 110 are concerned. However, samples that do intersect line 110 are assigned to one of the wedgelets 108a and 108b, depending on which side has the larger half of its area. That is, each individual sample that intersects line 110 is divided into two parts, and the larger of these parts determines which part the individual sample is assigned to. That is, a sample with the larger part on one side is assigned to, for example, part 108a, and a sample with the larger part on the other side is assigned to part 108b. Alternatively, the center of each individual sample is observed to determine which of the wedgelets 108a and 108b each it should be assigned to. All samples whose centers lie on one side of line 110 are assigned to wedgelet 108a. Conversely, all samples whose centers lie on the other side of line 110 are assigned to wedgelet 108b. The shaded area in Figure 2 illustrates the wedgelet partitioning resulting from the 4x4 block 104.
[0012] From the above explanation, it is clear that the accuracy of transmitting the position of the wedgelet separation line 110 via signal depends, for example, on the size of the individual blocks 104 measured in the sample. The larger the block, the higher the accuracy, and vice versa.
[0013] table Primary of the possible wedgelet separation line positions Former Ri Street Fighter 112 The number of possible positions of the wedgelet separation line in coding block 104 is signaled using a single scalar index or one-dimensional index. thing too, Feasible .stomach INDEX is for example , 2 N Covers individual states vinegar the usual binary Using expressions binary It is being transformed In other words, N is binary The bit length of the representation ru2 N individual wedgelet separation line Distinguishing between possible locations It is possible . This Figure 3 shows Illustration So attitude It is shown. attitude ru through List 112 in Individual lists entry The inclination / direction 112 of the separation line 110 and the Crossing and This corresponds to a predetermined combination of the above. Regarding Overview death block size to To explain the dependency, coding block 104 About Datastream Signaled in Index 114 is, Bit length N Depends on the size of block 104 ru. Block 104 Signaled about Index 114 determines the size of list 112 via its bit length, In turn Representable wedgelet separation line positions number Determine the number of representable wedgelet separation line positions. N teeth, The larger block 104 is, Smaller blocks too big. In other wordsThe decoder is shown by arrow 116 in List 11 Go to 2 as an index te I Use index 114. Here, index Susa The specified list 112 entry teeth ,figure In section 3, as an example Illustration done thing It seems to be one of them Na , In block 104 Related to a predetermined wedgelet separation line position Attached ru.
[0014] The above concept in Figure 3 describes the different needs of variously sized blocks insofar as the number of representable wedgelet delimiter line positions or the precision of signaling them is relevant, but even if context-adaptive coding is used to encode the signaled bits of index 114 using a common context for all N bits of index 114, there is still room to make signaling the positions of the wedgelet delimiter line 110 more effective. Then, the embodiments described below achieve such an increase in coding efficiency even when entropy coding is not used to encode the signaled bits. For example, the need for N to adapt to the coding block size and for finding a reasonable number of available wedgelet delimiter line positions is such that some signalable values of the index remain unused, or the number is greater than a reasonable number of wedgelet delimiter line positions, which is 2 N This is achievable in two capabilities, which require either one of the following: consuming all individual signalable values; or being distinguished in such a way that all individual signalable values are consumed.
[0015] The idea behind the concepts described in the embodiments outlined below is a variable-length wedgelet separation line with a prefix that signals the inclination / direction of the wedgelet separation line. encodingThe syntax elements are used to signal the position of the wedgelet delimiter line for a given coding block (such as a coding block in which a wedgelet-based coding mode is signaled). The prefix is followed by a suffix that signals the slope / direction of the wedgelet delimiter line and the substitution or interference improvement of the wedgelet delimiter line. Figure 4 illustrates the concept. Figure 4 shows one coding block 104. Block 104 is a coding block in a depth map, for example, even though it is mentioned that the concept in Figure 4 is immediately transferred over coding of other two-dimensionally extracted data such as text or similar. The coding block 104 and the data stream 120 in the depth map containing the coding block 104 are, respectively, the encoded signals for the coding block 104 and, by means of the mode indicator 122, the wedgelet-based coding mode. Since the coding block 104 has a coding mode type based on wedgelets, the data stream 120 transmits the position of the wedgelet separation line 110, which divides the coding block 104 into two wedgelets 108a and 108b, via a variable-length signal. encoding It further includes syntactic element 124. As outlined in more detail below, it is variable in length. encoding Syntactic element 124 consists of a prefix 126 that signals the direction or inclination 112 of the wedgelet separation line 110, and a suffix 128 that signals the positioning and improvement of the replacement of the direction / inclination 112 of the wedgelet separation line 110. Variable length, as outlined below in more detail. encodingAll bits of syntactic element 124 are encoded without context adaptability, for example, without using entropy coding. That is, they are written directly to the data stream 120, or to the data stream 120 using binary entropy coding, such as binary computation coding, but using a fixed equal-probability mode known as bypass mode, as is well known from H.264. Also, as outlined in more detail below, prefix 126 has a fixed length. Its length is independent of the size of block 104, while the bit length of suffix 128 depends on both the approximate slope / direction of prefix 126, i.e., the wedgelet separation line 110, as well as the size of the encoded block 104. Then there are various possibilities for how the contents of encoded block 104 are actually encoded in the data stream 120 using two divisions into sections 108a and 108b. For example, according to one embodiment, the data stream 120 comprises a first syntactic element configuration 130 for a first wedgelet 108a and a second syntactic element configuration 132 for a second wedgelet 108b. For example, both syntactic element configurations 130 and 132 consist of syntactic elements that indicate a constant to which samples belonging to wedgelet 108a or 108b are equally set. The syntactic elements are predictively encoded. For example, the constant value assigned to a sample in wedgelet 108a is spatially predicted from the periphery portion of the block 104 adjacent to wedgelet 108a and adjacent already decoded / reconstructed neighboring samples. Syntactic element configuration 130 simply provides an offset (prediction residual) to this prediction. Similarly, the constant value assigned to a sample in wedgelet 108b is spatially predicted from the periphery portion of the block 104 adjacent to wedgelet 108b and adjacent already decoded / reconstructed neighboring samples. The syntactic element configuration 130 simply provides an offset to this prediction. Optionally, a sampled residual signal 134 is provided in the data stream 120.
[0016] The decoder is encoded according to Figure 4. Ta To decode coded block 104, the following It works like this First, the decoder enters encoding mode. indicator Check 122 . sign Encoding block 104 is a wedgelet-based encoding mode dea If so, the decoder reads prefix 126 from data stream 120, Therefore Obtain the approximate slope / direction 112 of the wedgelet separation line. Decoder haso of rear , It depends on the size of the coding block 104 and the value of the prefix 126. The number of bits From datastream 120 Reading That , suffix 128 obtain . The decoder is Using suffix 128 The approximate inclination / direction 112 of the wedgelet separation line 110 is improved to obtain the actual inclination / direction 136, and , Same Suffix 128 by exist 、 Wedgelet separation line 11 Translate 0 . In this way position Attached The wedgelet separation line 110 corresponds to the encoded block 104 of Wedgelets 108a and 108b to 2 categories Transform Decide . sign Size of block 104 corresponding Two divisions based on wedgelets of size blocks and , Each of the two categories is as described above. It seems that ni P This is shown using refix 126 and suffix 128. ru Location of the wedgelet separation line handle 2 compartments List of The decoder uses variable-length coding syntax element 124 directly Make sure to investigate. thing too , is feasible. As a result, the decoder can handle the actual incline / direction 136 and All translational movements Calculate the length without Rather , sign Block 104 each Place the sample in wedgelet 108a or wedgelet 108b binary Associate , size Block 104 Corresponding binary Direct sample sequence search for . or , Below Overview do Decoder is The approximate direction 112 is calculated from the refix 126. , Three dimensions: lock 104 size, approximate direction 112, and suffix 128. of set I made it Using an index, Each sample in block 104 Associate with one of the wedgelets 108a and 108b. Binary association array Search within a table containing binary associative arrays. .
[0017] After this, the decoder uses, for example, syntactic element construct 130 to obtain the sample value of the wedgelet 108a or a related sample, and syntactic element construct 132 to fill the sample value of the wedgelet 108b or a related sample. The thus filled state of the coded block 104 optionally represents a prediction that the decoder improves using the residual signal 134 by sample-like summation between the residual signal 134 and the filled wedgelets 108a and 108b. Depending on the choice, the residual signal 134 is lost. As a result, the thus filled state of the coded block 104 directly represents the reconstruction of the coded block 104.
[0018] A specific example of how to encode the contents of wedgelets 108a and 108b separately is described below with respect to Figure 6. Figure 6 shows a current encoding block 104. JPEG0007911024000001.jpg187169 The current coding block is determined in the sample column above the coding block, that is, in the sample row of the upper left and lower left samples of the current coding block, such as samples {F, I}. Alternatively, even if averaging is not used, or even if the argument is not used, the set of adjacent samples ultimately used to predict the sample of wedgelet 108a and the set of adjacent samples ultimately used to predict the sample of wedgelet 108b consist of simply one adjacent sample. The selection process, which relies on the dichotomy determined for the current coding block, selects one adjacent sample from the set of adjacent candidate samples such as {A, D} for one of wedgelets 108a and 108b. Similarly, the selection process, which relies on the dichotomy determined for the current coding block, selects one adjacent sample from the set of adjacent candidate samples such as {F, I} for the other one of wedgelets 108a and 108b. The samples of the wedgelets are then predicted by the adjacent samples that were selected, respectively. One of the wedgelets is separated from all adjacent candidate samples, and therefore, for example, the wedgelet may be located in the lower right corner of the coded block, so that at least one of the set of adjacent candidate samples contains the initial constant value. A mixture of averaging and one-selection processes is often used. For example, the selection process asks whether the upper left sample of the coded block is in the same wedgelet as the upper right sample, and whether the upper left sample of the coded 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 the bottom left to the top right. If the question reveals that all samples in the top left, top right, and bottom left fall within a single wedgelet, i.e., that a single wedgelet is not adjacent to any of {A, D, F, I}, then the predictive value for the wedgelet is determined by averaging {D, F} of one wedgelet and {A, I} of the other wedgelet, using a constant initial value instead of the average of {A, I}, so that the initial value is used as the predictor for the latter wedgelet. However, if the question were answered differently, it would be determined that the wedgelets would effectively move horizontally or vertically, and in the first case, adjacent sample A would be used for one wedgelet and an intermediate adjacent sample between F and I, such as G, would be used for the other wedgelet; and in the second case, adjacent sample I would be used for one wedgelet and an intermediate adjacent sample between A and D, such as C, would be used for the other wedgelet.
[0019] JPEG0007911024000002.jpg22170
[0020] The advantages of the concept in Figure 4 compared to the concept in Figure 3 are as follows: As the size of the coding block 104 increases, the length of the syntactic element 114 becomes increasingly larger. However, with each additional bit, the representable interval range, i.e., the size of list 112, increases exponentially. That is, quantizing the size of syntactic element 114 and adapting its length to the actual needs imposed by the size of the coding block 104 is difficult to achieve because list 112 tables all available combinations of slope 112 and cutoff. Variable length encodingBy using syntactic element 124, the data transfer rate used for all encoded blocks encoded using the wedgelet-based encoding mode is reduced because it is feasible to adapt the length of suffix 128 to the actual needs. One example outlined above is that the prefix indicates 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 encoded block. By this means, it is easy to adapt the length of suffix 128 to the approximate direction 112. Approximate directions near precise horizontal or vertical extensions require refinement, i.e., a lower number of suffix states. Thus, the length of the suffix changes between smaller values, where the "quantization" of the suffix length within the unit of bits is not negatively affected by the exponential relationship between the representable states of suffix 128 and the bit length. Consequently, the bit transfer rate used for syntactic element 124 is more closely adapted to the actual optimal conditions, as discussed with respect to Figure 2.
[0021] Figure 5 shows, for completeness, how prefix 126 is constructed using the syntactic elements described above in Section 3, resulting in a fixed-length 5-bit prefix 126. The same applies to suffix 128. As shown, prefix 126 consists of a flag 126a indicating whether the rough / approximate wedgelet separation line direction / slope 12 is effectively horizontal or effectively vertical, a signal bit 126b indicating the angular direction in which the wedgelet separation line 110's slope / direction 12 deviates from the horizontal or vertical direction, and a fixed-bit length value (absVal) 126c indicating the amount of angular deviation. Suffix 128 consists of the syntactic element idx, i.e., the bit length of idx, i.e., N idx As outlined above, this depends not only on the size of the coded block 104, but also on the prefix 126 which sequentially indicates the slope / direction 112 of the approximate wedgelet separation line. The table below shows the N suffix 128 for each individual exemplary block size. idxBy indicating the minimum and maximum values, the bit length of the suffix 128, i.e., N, is obtained from the indicated block size of the encoded block 104 on the one hand and the slope / direction 112 on the other hand. idx Here is an example of a dependency.
[0022] In certain embodiments, the above concepts are replaced by explicit examples as follows: in doing so, “flag” 126a is wedge_dir_flag, signal 126b is wedge_dir_sign_flag, absVal 126c matches wedge_dir_abs, and idx 128 matches wedge_dir_tab_idx.
[0023] In that case, the relevant syntactic construct included in the data stream for the encoded block 104 encoded based on a given wedgelet at x0, y0 (their positions 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 suffix of a variable-length syntactic element consisting of all listed syntactic elements, is wedgeDirTabIdxBits. This length is determined by the size of the coded block 104, log2PbSize, and the approximate direction of the wedgelet separation line, WedgeDir, as illustrated in the table below. The relationship between the value of WedgeDir and the actual slope / direction in this example is illustrated in Figure 9.
[0026] [Table 2]
[0027] Log2PbSize is the logarithmic scale of the height or width of the coded block measured in the sample. That is, in the outlined example, the decoder actually determines the approximate direction of the 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 extract 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 accepts values from 0 to 31, encompassing both, corresponding to the 32 exemplary directions / slope shown in Figure 9.
[0029] Of course, the exact formula will depend on the context 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 individual samples of the current coded block to one of two wedgelets is then represented by a binary array, wedgePattern. Specifically, wedgePattern is collected in a lookup table, WedgeDirPatternTable. The lookup table is three-dimensional and requires a three-dimensional index to place the correct bipartite array. The index consists of the coded block size Log2PbSize, the approximate wedgelet separation line direction WedgeDir, and the transmitted suffix, namely 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 exemplarily derived 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 is comprehensively applied. Depending on log2BlkSize (equal to log2PbSize described above), a variable resShift is derived as defined in the following table.
[0033]
Table 3
[0034] The variable wBlkSize is set equal to (1<<(log2BlkSize + resShift)). For wedgeOri ranging from 0 to 5, the following steps in order are comprehensively applied. Depending on wedgeOri, variables xPosS, yPosS, xPosE, yPosE, xIncS, yIncS, xIncE and yIncE are derived as defined in the following table.
[0035]
Table 4
[0036] For m in the range from 0 to wBlkSize - 1, the following applies inclusively. For n in the range from 0 to wBlkSize - 1, the following applies inclusively. The wedgelet pattern generation process defined below results in a patternSize equal to (1<<log2BlkSize), a variable resShift, a variable wedgeOri, an xS equal to (xPosS + m * xIncS), a yS equal to (yPosS + m * yIncS), an xE equal to (xPosE + n * xIncE), and a yE equal to (yPosE + n * yIncE), such that the input and output are the binary array curWedgePattern. A variable wDir that defines the direction of curWedgePattern is derived as defined below (i.e., assuming values from 0 to 31, the base / general direction wDir is determined here inclusively for each wedgelet pattern and is used below for wedgeDirPatternTable[log2BlkSize][dirIdx[]].
[0037] A variable deltaX is set equal to ((xPosE + n * xIncE)-(xPosS + m * xIncS)), and a variable deltaY is set equal to ((yPosE + n * yIncE)-(yPosS + m * yIncS)). If deltaX is equal to 0 and deltaY is equal to 0, the following applies. If (xPosS + m * xIncS) is equal to (yPosS + m * yIncS), wDir is set to 0, and otherwise ((xPosS + m * xIncS) is not equal to (yPosS + m * yIncS)), 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 defined below takes log2BlkSize, a variable wDir, and a binary partition pattern curWedgePattern as inputs.
[0039] Wedgelet pattern generation process The input to the wedgelet pattern generation process is: A variable patternSize that defines the binary partition pattern size, The resolution shift value reShift, which defines the precision of the start and end positions of the wedgelet divisions related to patternSize, The variable wedgeOri defines the orientation identifier of the wedgelet pattern, The variable xS defines the horizontal starting position of the division line, A variable yS defines the vertical starting position of the division line, The variable xE defines the horizontal position of the end of the division line, The variable yE defines the vertical position of the end of the division line.
[0040] The output of the wedgelet pattern generation process is: wedgePattern[x][y] is a binary array of size (patternSize) × (patternSize). The variable curSize, which defines 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 variable values of curPattern[x][y] are derived in the following order of steps: 1. For x and y = 0, curSize - 1, curPattern[x][y] is set to equal to 0. 2. The number of samples of the sequence curPattern that form the line between (xS, yS) and (xE, yE) is set to 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 belonging to smaller categories are set to equal 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. The binary partition pattern wedgePattern[x][y] with x and y = 0..patternSize-1 is derived as follows: If resShift is equal to 1, then the following applies: Depending on wedgeOri, the variables xOff and yOff are set as defined 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 (if resShift is not equal to 1), wedgePattern is set equal to curPattern.
[0048] Wedglet Pattern List Insertion Process The input to the wedglet pattern list insertion process is a variable log2BlkSize that defines the binary partition pattern size as (1 << log2BlkSize), a variable wDir that defines the direction of the wedglet 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 following steps in order.
[0049] 1. For x, y = 0..(1 << log2BlkSize) - 1, the following applies. If 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, the following applies comprehensively. 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] For all dir within the range from 2.0 to 31, 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] variable length encoding The above example of sending syntactic elements is extended in the following way to carry syntactic element constructs 130 and 132. In particular, the following syntax follows the four lines identified above, relating to wedge_dir_flag, wedge_dir_sign_flag, wedge_dir_abs, and wedge_dir_tab_idx.
[0052] [Table 7]
[0053] JPEG0007911024000010.jpg81170
[0054] JPEG0007911024000011.jpg38170
[0055] However, the way in which the samples belonging to each wedgelet are actually filled may be carried out in different ways.
[0056] It should be noted that in all of the embodiments described above, coding modes based on multiple wedgelets are available. One of these modes satisfies samples in one wedgelet with constant values transmitted via individual syntactic element constructs 130 / 132—exemplarily and predictively coded—with one constant value per wedgelet. Another mode, however, satisfies samples in individual wedgelets with a linear function, i.e., linear with respect to a two-dimensional array of samples. Beyond these, coding modes not based on one or more wedgelets are also available. For example, such a mode simply transmits a transformation coefficient array for a coded block that displays the spectral decomposition of the contents of the coded block.
[0057] Furthermore, it should be noted that in all of the above embodiments, the contents of the encoded block 104 actually display prediction residuals, such as the prediction residuals of the motion-corrected (temporal) and / or difference-corrected (mutual-view) predictions. As a result, the decoder adds the contents of the reconstructed encoded block to such motion-corrected (temporal) and / or difference-corrected (mutual-view) prediction signals in order to obtain a reconstruction of the contents of block 104.
[0058] Accordingly, several embodiments of the present invention for encoding based on wedgelets of encoding blocks have been described with respect to Figures 1 to 6. However, it should be noted that these embodiments, which include different details, are modified within the introductory section of the specifications of the present invention while still providing the advantages presented above. Embodiments of encoders and decoders are described below. They are implemented according to the embodiments, in accordance with the details described in the embodiments identified above. However, they are also implemented differently due to the generalization of the embodiments described above.
[0059] Figure 7 shows, for example, a decoder 200 according to an embodiment. The decoder 200 supports coding based on wedgelets of coding blocks. As described above, coding block 104 is all coding blocks or a subset of coding blocks to which the image or depth map 100 / 102 is partitioned for the decoder 200 to perform wedgelet-based decoding. That is, coding block 104 completely covers the image or depth map 100 / 102 in spatial or non-spatial terms, if combined. For example, the decoder 200 optionally includes a sub-partitioner and a coding block traverser 202, or means for sub-partitioning the image / depth map 100 / 102 into coding blocks 104 and traversing coding blocks 104, respectively. For example, block 202 derives the sub-partition of the image / depth map 100 / 102 into coding blocks 104 from sub-partitioning information obtained from the data stream 120. Furthermore, as described below, in addition to those coded blocks that are divided into wedgelet 2 sections, there are other coded blocks to which coding modes other than the wedgelet 2 section mode described below are assigned. For example, such other coded blocks are coded into the spectral domain through quantized transformation coefficients, such as the coefficients of the Discrete Cosine Transform (DCT). For coded 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 sectioner 210, and a reconstructor 212. Blocks 204 to 212 are operated by block 202, for example, for each current coded block 104 that is decoded based on wedgelets. As described above, the coded blocks 104 that are decoded based on wedgelets do not completely cover the image 100 or the depth map 102, respectively.
[0060] The prefix reader 204 reads the data stream 120 from a variable length encodingIt functions as a means for reading the prefix 126 (see above) of the syntactic element. As described above, the prefix reader 204 is configured to read the prefix 126 from the data stream using a fixed bit length independent of the size of the current coding block, and is configured to read the bits of the prefix from the data stream directly, i.e., without entropy decoding, or using fixed equivalent probability binary entropy decoding, i.e., for each possible value of the prefix or for each bit of the prefix with the same probability. For example, if the prefix 126 is the 2 that the prefix assumes n Assume it is an n-bit prefix with n possible values. doneYes. At that time, for example, the decoder can intermittently interrupt the re - subdivision of the internal arithmetic probability interval width in order to further arithmetically decode the syntax element (excluding the prefix). However, the decoder can also directly from the data stream 120, that is, without changing the internal arithmetic probability interval width, or by uniquely changing the internal arithmetic probability interval width independent of the prefix, participate in explaining the image / depth map from the data stream together with a prefix reader that reads the next n prefix bits of a column. Or, the prefix reader, for example, has an internal arithmetic probability interval width for every n bits, and by reading bits from the data stream to look at the binary values that the individual bits of the prefix have, continues to divide the internal arithmetic probability interval width of the decoder for every n bits of the prefix so that another syntax element is also arithmetically decoded from the data stream where the prefix is arithmetically decoded. This relaxes the reading task compared in fact to context - based entropy coding. Also as described 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 that separates two wedgelets that are first horizontal or first vertical, a signal 126b indicating the direction of the angular deviation of the approximate direction of the wedgelet separation line from an exactly horizontal or vertical extension, and an absolute value 126c indicating the magnitude of the angular deviation. That is, as described above, the flag 126a indicates whether the angle between the horizontal axis and the wedgelet separation line is smaller 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 signal indicates the direction of the angular deviation. The opposite is also true. However, the "structuring" (with m = n - 2) of the fixed - length n - bit prefix into a horizontal / vertical flag, a signal, and an m - bit absolute offset is arbitrary, and in fact 2 n is interpreted as an example for a specific association of the n - bit / digit representation of the n - bit prefix onto two approximate wedgelet separation line directions / slants. 2 nThe approximate wedgelet separation line direction / slope and the 2 assumed by the n-bit prefix. n Another association between the possible values is also used.
[0061] Therefore, as shown in Figure 7, the decoder 200 optionally includes means for determining the approximate direction of the wedgelet separation line based on a wedgelet separation line direction determiner 214 or a prefix read by a prefix reader 204.
[0062] The suffix length determiner 206 functions as a means for determining the suffix length, for example, measured in bits. Here, the determination is made based on the prefix read by the reader 204 and the size of the current coded block. Insofar as the suffix length determiner 206 is involved, it determines the suffix length based on an approximate direction, as determined by the determiner 214, thereby enabling variable length encoding It is clear that prefixes are used to directly or indirectly determine the length of the suffix 128 of syntactic element 124. Generally, the decisionator 206 is configured such that the length of the suffix 228 increases as the coding block size increases. Furthermore, the suffix length tends to be smaller for prefixes that match an approximate direction near an exact horizontal or vertical extension. For example, for individual coding block sizes, the suffix length determined by the decisionator 206 is smallest for directions parallel to or at least similar to the horizontal or vertical axis, compared to the suffix length determined by the decisionator 206 for individual coding block sizes, in directions close to the diagonal (45°) direction, i.e., another wedgelet separation line oblique to the horizontal and vertical axes, respectively. The advantages can be seen in Figure 9. Approximate directions / diagonals distinguishable by prefixes Corner MitsuThe degree changes angularly. In the example in Figure 9, density is highest in the horizontal and vertical directions, but this may differ in other embodiments. However, in such “high-density directions,” the number of reasonably distinguishable wedgelet separation line positions (inclined offsets) is distributable / related to a higher number of approximate inclines / directions. Thus, in order to distinguish between individual wedgelet separation line positions of similar inclines to an approximate incline of a given prefix value, the number of suffix states of a given prefix value that identify an approximate incline in or around such “high-density directions” is reduced compared to the prefix value that identifies an approximate incline further away from the high-density direction in terms of angles. This means that valuable bits of the data stream are saved.
[0063] The suffix reader 208 uses the length determined by the determinator 206 to obtain a variable length from the data stream 120. encoding It functions as a reader for reading the suffix of a syntactic element. That is, the suffix reader reads the number of bits determined by the suffix length determiner 206 from the data stream. As described above, even the suffix reader 208 reads the bits of the suffix from the data stream 120, either directly or using fixed equivalent probability binary entropy decoding. For example, the suffix is the number of bits assumed by the prefix. m It is assumed that it is an m-bit prefix with a possible value. done. At that time, for example, the decoder can intermittently interrupt subpartitioning the internal arithmetic probability interval width in order to arithmetically decode the syntactic elements (excluding the suffix). However, the decoder also participates in describing the image / depth map from the data stream, together with a suffix reader that reads the next m prefix bits in a row, either directly from the data stream 120, i.e., without changing the internal arithmetic probability interval width, or by changing only the internal arithmetic probability interval width independent of the suffix. Alternatively, the suffix reader continues to partition the decoder's internal arithmetic probability interval width for every m bits of the suffix, for example, by reading bits from the data stream to see the binary value that each individual bit of the suffix has, so that another syntactic element is arithmetically decoded from the data stream, which is similarly entropically decoded.
[0064] The wedgelet 2 compartmentalizer 210 has a variable length encodingSyntactic elements are used as a means to determine whether to divide the current coded block into two wedgelets. That is, the two-partitioner 210 associates individual samples of the coded block with one of the two wedgelets in such a way that a sample assigned to one of the two wedgelets is located on one side of the wedgelet separation line defined by the prefix and suffix, and a sample assigned to the other of the two wedgelets is located on the opposite side of the wedgelet separation line. For example, the wedgelet two-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 predetermined by the decisionator 214. As described above, the search table is performed by the two-partitioner 210 using the prefix and either directly or the approximate direction determined therefrom as an index, the suffix and the size of the current coded block. The table entries consist of a binary value map of the corresponding coded block size, and thus represent the bipartiteization of coded blocks of that size along the wedgelet separation lines corresponding to each prefix and suffix, which index the individual table entries along the coded block size. How such a table is assembled / structured is illustrated above. Similarly, it has already been shown above that the wedgelet bipartiter can immediately, i.e., computationally calculate the bipartiteization depending on the prefix, suffix and the size of the current coded block.
[0065] in short Figure 7 shows The description The decoder is as follows: The prefix reader 204 reads the size of the current coding block Z. Unrelated to Read prefix 126 from the data stream using a fixed bit length n. take The prefix is 2 n Individual index SFrom among the possible approximate directions, index the approximate direction of the wedgelet separation line. Susu Wedgelet 2 classification The current encoding block 104 is of variable length. encoding It is divided into two parts according to syntactic element 124. attitude The two wedgelets 108a and 108b are Slope Index by prefix Susa re attitude In the approximate direction Approximate slope , and offset Depends on the suffix A la with an offset Along the line te As if to be separated 、 The suffix length determination unit 206 is configured to have a variable length. encoding The length m of the suffix 128 of the syntax element 124 、 For each of the possible sizes of the current encoding block 104 Regarding , m but prefix Determine so that it is determined by the dependent. As a result, the prefix is index did 2 n Individual index S Of the approximate directions, the approximate direction is 2 n Individual index S The approximate direction of corner The density is at a local maximum. Matching the direction or If it's close to that ba, m ga minimum It will become. Also , prefix 2 n For each of the possible values Therefore ,m is It is determined depending on the current size of the coding block. If the size increases m It increases monotonically. ru. As mentioned above, 2 n Individual index S The approximate direction Angular density horizontal and vertical but local target maximum This may be the case. . To put it another way, , P of , 2 n Individual index S One of the approximate directions, or s[1] <s[2]<…<s[2 n ] That is Slope s[1]…s[2 n Index one of the ] vinegar ru 、 n bits of Let's assume it's a prefix. S is the bit length m. of Let m be a suffix. It is a function, both but changing 。 That is, m is m(P, Z), Here Z represents the coding block size Z. Furthermore, B P , S , Z teeth, Two compartments Prefix P, suffix S, and coding block size Z Uses Let's assume it's divided into two categories. That is, B P , S , Z teeth, binary coefficient Let 0 ≤ x, y ≤ Z B P , S , Z (x, y) It is an L(Z) × L(Z) binary coefficient matrix. , Here L() Strictly simple functions such as exponential or linear functions Adjustment This is a function that does Then The total number of possible encoding block sizes Z is Ω Z It can be summarized as follows: , Ω Z teeth Shows a set of possible coding block sizes. Sumono Let's assume that. Furthermore B P , S , Z teeth each , slope s P , S , Z and offset o P , S , Z That is Actual wedgelet separation line (compared to Figure 2, which shows an actual line 110 like this) Regarding Divide the L(Z)×L(Z) block into two wedgelets along the line. For example, the actual wedgelet separation line is: Each wedgelet directly adjacent to the otherAmong the wedgelet samples heart It fits. Then, i =2…2 n In the sequence of angular distances Δα[i]=s[i]-s[i-1], there exists a local minimum value P=i. That is to say All encoding block sizes Z e ∈Ω Z For m[i, Z e ]=min P ({P=1…2 n |m[P, Z e ]}) which is any p, q (This corresponds to wedgeDir=8 and wedgDir=24 in Figure 9) to Therefore, Δ α[i] = Δα[ip] As Δα[i]<Δα[i-1] and Δα[i]<Δα[i+1] or Δα[i]=Δα[i-1], …, Δα[i]=Δα[i-p+1 ] and Δα[i]=Δα[i +q ] as Δα[i]=Δα[i-1], …, Δα[i]=Δα[i+q-1] i is To exist is to be true. ( this is, The above wedgeDirTabIdxBits Examples Show vinegar wedDir=8 and wedgeDir=24 in the table both True for 、 In other words, wedgeDirTabIdxBits matches wedDir=8 and wedgeDir=24. and , each Forming the minimum in the line ) Furthermore, individual P e =1…2 n For m[P e , 1]≦m[P e ,2]≦…≦m[P e , max(Ω Z )] Tona ru ( This is wedgeDirTabIdxBits The value is one From top to bottom, strictly speaking, Adjustment do (In each column of the table wedgeDirTabIdxBits) . the above wedgeDirTabIdxBits table As can be seen in, m is ,stomachsome or one of Approximate direction P, i.e., height Corner Mitsu degree direction i In or around the law of nature For some or one coded block size, zero That is Sometimes .
[0066] To date, the only embodiment is one in which the wedgelet separation line is a straight line and is provided defined by inclination and offset. For example, inclination measures the angle between the straight wedgelet separation line and the horizontal axis. For example, offset measures the replacement of the wedgelet separation line along the horizontal and / or vertical axes related to the position of the wedgelet separation line across the lower left corner of the current coding block.
[0067] However, as already described above, embodiments of the present invention are not limited to straight wedgelet separation lines. For example, wedgelet separation lines transmitted by signal via prefixes and suffixes include curved wedgelet separation lines. In this case, for example, the prefix still indicates / transmits by signal the appropriate direction of the wedgelet separation line, i.e., the average slope of the wedgelet separation line within the current coding block. The suffix further defines the curvature of the wedgelet separation line and any substitutions within the current coding block. Here, the suffix length depends on the coding block size as well as the prefix, in order to account for the different variability of the dichotomy resulting from varying the curvature and substitutions with respect to individual approximate slopes. Alternatively, the prefix distinguishes some approximate curvatures of wedgelet separation lines that have suffixes that improve the wedgelet separation line position with respect to the average slope, curvature and substitutions. Furthermore, the suffix length is favorably selected, depending on both the coding block size and the prefix value, to account for the difference in the number of distinguishable bipartiteizations that can be conveyed in the signal by the latter improvement. Another option for the wedgelet delimiter line is similarly feasible, such as allowing the wedgelet delimiter line to have a curvature that changes along its extension.
[0068] The reconstructor 212 functions as a means for reconstructing the current coded block using the bipartitioning determined by the wedgelet 2-partitioner 210. That is, the bipartitioning obtained by the wedgelet 2-partitioner 210 associates each individual sample in the current coded block with one of the two wedges in the current coded block. As described above, the reconstructor 212 is configured to individually fill the sample values of the two wedges in the current coded block, determined by the bipartitioning from the 2-partitioner 210, with constant values encoded 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 wedges in the current coded block, and thus improves the predicted constant values using syntactic elements in the data stream 120 by filling the wedges with the improved constant values, respectively. Further details are explained above with reference to Figure 6. However, other possibilities exist, such as satisfying both wedgelets by temporal prediction or spatial extrapolation from adjacent, already reconstructed samples or similars. Figure 7 illustrates that decoder 200 is a hybrid decoder configured to use the reconstruction of the current coded block obtained by reconstructor 212 as the prediction residual of the prediction signal to complement the operation and / or imbalance. Thus, Figure 7 shows that decoder 200 consists of a prediction reconstructor 216 that switches between different prediction modes, such as operation-compensated, imbalanced, and / or internal prediction modes, to obtain a prediction signal for image 100 or depth map 102, i.e., to combine both to improve the prediction signal, using the reconstruction of the current coded block obtained by reconstructor 212 as the prediction residual of this prediction signal in units of prediction blocks that may or may not match the decoded block 104 at block boundaries.
[0069] Furthermore, as will become clear from the above discussion, decoder 200 is a depth decoder with motion video, in which case, for example, the encoding mode based on the wedgelet provided by blocks 204 to 212 discussed above is used only by decoder 200, insofar as decoding the depth map is related to excluding this mode in decoding the text of image 100.
[0070] The decoder 200 blocks shown in Figure 7 are, for example, various parts of a computer program that implements the decoder 200 when executed on a computer. A similar claim applies to Figure 8.
[0071] completeness To aim for Therefore 、 Figure 8 shows an encoder 300 that matches the decoder 200 in Figure 7. doing Used to indicate blocks / elements of encoder 300. attitude ru san light The sign is ,figure Assigned to the 7 decoder elements thing and same in The only difference is that 100 has been added. Therefore, the encoder 300 in Figure 8 is a sub-divider. and sign Block crossing device 30 2、 Prefix programmer 30 4、 Suffix Length Detergent 30 6、 Suffix writer 30 8、 Wedgelet 2-compartment divider 31 0、 Encoded block encoder 31 2. Overview Direction determiner 31 4, and Predictive Encoder 316 It is equipped with Block 302 is It works the same way as block 202, but , The difference is, As long as encoder 300 is involved In Subpartition some optimization scheme to To the image / depth map Selected depending on That is Similarly, block 304 ~ 31 2 essentially reflects the actions that blocks 204-212 perform on the current encoded block, , The difference is , TheIn relation to the current coding block Furthermore, as discussed above Syntax elements that control the coding mode based on wedgelets are some optimization scheme Selected by the encoder according to the following criteria. That is Therefore, prefix programmer 304 and suffix programmer 308 are , pieces Each prefix and suffix From datastream 120 Load Rather, DataStream 12 0 Write it down. Also The encoding block encoder 312 is , current Actual sample within the wedgelet of the current encoding block contents Encode it, and for this purpose, for example The individual syntactic elements, such as the constant value improvement mentioned above, To datastream 120 Write It is possible Predictive encoder 316 Similarly Predictive Reconstructor 216 It performs hybrid predictions that it emulates (imitates). , however , Depending on the optimization scheme , And if it exists , As stated above Block 304 ~ 31 2 Yo Te De DataStream 120 as predicted residuals Based on the written syntactic elements Te De Reconfigurable from Stream 120 Na Using the coding block version, Further select coding parameters for each of these prediction blocks. . In other words, , encoder 300 of analysis synthetic nature for teeth ,workman ncoda The picture Reconfigurable version of the image / depth map to benefit Make usable hand , for example Predictive Encoder 316 Further predictions execution do thing but Need Naru Therefore, encoder 300 is M With VD encoder It's fine to have it. To further implement the encoder 300 in Figure 8 Other uses of every Details FinelyRegarding teeth The above discussion regarding the decoder side Please refer to the following. .
[0072] The above embodiment is used to deform the DMM1 wedgelet mode of the HEVC extension HTM-9.0, prior to the priority date of the present invention, using mutual aliases (also known as cross-aliases). In this case, the deformed signal of the DMM1 wedgelet pattern is based on 32 directions of the angular internal modes. The fixed-length CABAC binary conversion plan of the wedgelet pattern list index is replaced by binary conversion using bypass coding. The resulting deformed plan signals the direction of the wedgelet separation line with improved indexing.
[0073] In particular, in HTM-9.0, the wedgelet pattern of DMM1 is signaled as an index in a list of wedgelet patterns that matches the block size. This index is binary-coded by fixed-length coding with one CABAC context. This solution does not benefit very well from CABAC context adaptation. However, the binaryization plan for signaling DMM1 wedgelet piecewise pattern information uses a bypass instead of CABAC context coding, based on the 32 directions of angular internal modes, so that the plan results from designing the pattern information according to the embodiment described above.
[0074] In a specific example, taking advantage of the above embodiment, the concept of DMM1 coding works as follows: In the first step, an internal direction, which coincides with the direction of the wedgelet separation line, is transmitted by signal. For this purpose, the slope of the wedgelet line is associated with one of 32 directions defined for the angular internal mode during the initial setup of the wedgelet pattern list. Given the direction of the DMM1 block, binarization works as follows: A flag is transmitted to specify whether the direction is in the horizontal or vertical region (H or V in Figure 9). The direction offset of the slope to either HOR_IDX(10) or VER_IDX(26) is transmitted by signal as a cue (+ or - in Figure 9) and an absolute value absVal (0 to 7 in Figure 9) using one and three bypass coding containers (bins), respectively. From these three elements, the direction dir (which coincides with wedgeDir-2 and has a range of values from 2 to 34) is calculated by the following formula: dir=((flag)?10:26)+((sign)?-1:1)*absVal-sign
[0075] In the second step, the improved index idx of the direction-dependent wedgelet list is transmitted signaled using N bypass coding containers. The number of containers N depends on a predetermined list length for each direction and block size. In the decoder, the wedgelet pattern used for reconstructing the DMM1 block is defined as a search in an array of direction-dependent wedgelet lists wDirLists, such 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 table below.
[0077] [Table 8]
[0078] [Table 9]
[0079] The modifications require amending the specifications in Appendix H of JCT3V-F1001 (Non-Patent Document 3). Possible modifications are derived from the above description and possible fragments in order to revise the specifications shown above.
[0080] The results in the latter table show that the modified binary conversion plan for DMM1 wedgelet partition pattern information yields an encoding gain of approximately 0.1%. The encoding performance is improved for all sequences with CTCs, as with all internal configurations. At the same time, the proposed method reduces the number of CABAC coding containers to zero, thus avoiding higher complexity.
[0081] Although several aspects are described in the context of the apparatus, it is clear that these aspects also represent a description of the corresponding method. Here, a block or apparatus corresponds to a method step or a feature of a method step. Similarly, an aspect described in the context of a method step also represents a description of the corresponding block, or an item or feature of the corresponding apparatus. Some or all of the method steps are performed by (or using) a hardware device, such as a microprocessor or a programmable computer or electronic circuit. In some embodiments, one or more of the most important method steps are performed by such a device.
[0082] Depending on the requirements of a particular implementation, embodiments of the invention may be implemented in hardware or software. Implementation may be carried out using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory, which has electronically readable control signals stored thereon, and which cooperates (or may cooperate) with a programmable computer system so that individual methods may be performed. Thus, the digital storage medium is a readable computer.
[0083] Several embodiments of the invention consist of a data carrier with electronically readable control signals, which may cooperate with a programmable computer system so that one of the methods described herein can be performed.
[0084] Generally, embodiments of the present invention are implemented as computer program products having program code. The program code works to execute one of the methods when the computer program product runs on a computer. For example, the program code is stored in a machine-readable carrier.
[0085] Another embodiment consists of a computer program for performing one of the methods described herein, which is stored in a machine-readable carrier.
[0086] In other words, an embodiment of the method of the invention is a computer program having program code for performing one of the methods described herein. The computer program then runs on a computer.
[0087] Accordingly, a further embodiment of the method of the invention is a data carrier (or digital storage medium or computer-readable medium) on which a computer program for performing one of the methods described herein is recorded and contained. The data carrier or digital storage medium or recorded medium is generally real and / or non-transient.
[0088] Accordingly, a further embodiment of the method of the invention is a data stream or a series of signals representing a computer program for performing one of the methods described herein. For example, the data stream or series of signals is configured to be transmitted over a data communication connection, such as over the Internet.
[0089] Further embodiments include process means, such as a computer or a programmable logic device, configured or adapted to perform one of the methods described herein.
[0090] A further embodiment comprises a computer on which a computer program for performing one of the methods described herein is installed.
[0091] Further embodiments of the invention comprise 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 mobile device or 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, the 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 device.
[0093] The apparatus described herein is implemented using hardware devices, computers, or a combination of hardware devices and computers.
[0094] The methods described herein are performed using hardware devices, computers, or a combination of hardware devices and computers.
[0095] The embodiments described above are described solely for the sake of the principles of the present invention. It will be understood that partial variations and changes in the arrangements and details described herein will be obvious to those skilled in the art. Accordingly, it is intended that the scope is limited only to the imminent claims and not to the specific details provided through the description and explanation 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 determiner is 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 according to claim 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 the wedgelet of the current coding block, wherein the method is 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 the wedgelet of the current coding block, wherein the method is: 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.