Effective wedgelet partition coding
Wedgelet separation lines of neighboring blocks are predicted from each other by aligning the wedgelet separation lines of such neighboring blocks to each other, thereby reducing the side information coding rate that may be used.
1 . A decoder for reconstructing a sample array of a video from a data stream, the decoder configured to:
select a set of wedgelet patterns to decode a block of the sample array of the video from at least one lookup array of wedgelet patterns based on a size of the block, wherein each wedgelet pattern of the set includes a two-dimensional array having values that represent a division of the block into two wedgelet portions separated by a line corresponding to the wedgelet pattern;
extract, from the data stream, an index value indicating a position of a block wedgelet pattern in the set of wedgelet patterns, wherein the index value is entropy coded using arithmetic coding;
obtain the block wedgelet pattern from the set of wedgelet patterns based on the index value; and
decode the block based on the two wedgelet portions yielded by the line corresponding to the block wedgelet pattern.
2 . The decoder of claim 1 , wherein each wedgelet pattern indicates an orientation of the line corresponding to the wedgelet pattern.
3 . The decoder of claim 1 , wherein a number of wedgelet patterns in the set is based on the size of the block.
4 . The decoder of claim 1 , wherein:
the decoder is configured to determine a plurality of sets of wedgelet patterns; and
each set of the plurality of sets corresponds to one of a plurality of block sizes of the sample array of the video.
5 . The decoder of claim 1 , wherein each wedgelet pattern of the set is a two-dimensional array including binary-valued elements.
6 . The decoder of claim 1 , wherein the index value is represented in a fixed number of bits in the data stream.
7 . The decoder of claim 1 , wherein the decoder is configured to:
extract, from the data stream, a mode syntax element; and
decode the mode syntax element to determine whether the index value is used to decode the block.
8 . The decoder of claim 1 , wherein, to determine a first wedgelet pattern of the set of wedgelet patterns, the first wedgelet pattern being an array having elements all with a first binary value, the decoder is configured to:
update first elements of the array from the first binary value to a second binary value, wherein the first elements form a line joining start and end positions of the first wedgelet pattern;
determine whether an existing wedgelet pattern in the set of wedgelet patterns is identical to, or is an inverse of, the first wedgelet pattern based on a comparison of the elements of the existing wedgelet pattern and the first wedgelet pattern; and
responsive to a determination that the existing wedgelet pattern is not identical to and is not an inverse of the first wedgelet pattern, add the first wedgelet pattern to the set of wedgelet patterns.
9 . The decoder of claim 1 , wherein:
each wedgelet pattern of the set is associated with a resolution of start and end positions of the corresponding wedgelet pattern; and
the resolution is based on the size of the block.
10 . The decoder of claim 1 , wherein the decoder is configured to, in decoding the block, predict the block by assigning a first constant partition value to samples of the sample array positioned within a first of the two wedgelet portions and assigning a second constant partition value to samples of the sample array positioned within a second of the two wedgelet portions.
11 . The decoder of claim 10 , wherein:
the sample array is a depth map; and
the decoder is configured to use a reference quantization step size to reconstruct a texture sample array from the data stream, with which the depth map is associated.
12 . The decoder of claim 1 , wherein the decoder is further configured to use the block as a reference in a prediction loop of the decoder.
13 . A method for reconstructing a sample array of a video from a data stream, the method comprising:
selecting a set of wedgelet patterns to decode a block of the sample array of the video from at least one lookup array of wedgelet patterns based on a size of the block, wherein each wedgelet pattern of the set includes a two-dimensional array having values that represent a division of the block into two wedgelet portions separated by a line corresponding to the wedgelet pattern;
extracting, from the data stream, an index value indicating a position of a block wedgelet pattern in the set of wedgelet patterns, wherein the index value is entropy coded using arithmetic coding;
obtaining the block wedgelet pattern from the set of wedgelet patterns based on the index value; and
decoding the block based on the two wedgelet portions yielded by the line corresponding to the block wedgelet pattern.
14 . The method of claim 13 , wherein each wedgelet pattern indicates an orientation of the line corresponding to the wedgelet pattern.
15 . The method of claim 13 , wherein a number of wedgelet patterns in the set is based on the size of the block.
16 . The method of claim 13 , further comprising determining a plurality of sets of wedgelet patterns, wherein each set of the plurality of sets corresponds to one of a plurality of block sizes of the sample array of the video.
17 . The method of claim 13 , wherein each wedgelet pattern of the set is a two-dimensional array including binary-valued elements.
18 . The method of claim 13 , wherein the index value is represented in a fixed number of bits in the data stream.
19 . The method of claim 13 , further comprising:
extracting, from the data stream, a mode syntax element; and
decoding the mode syntax element to determine whether the index value is used to decode the block.
20 . The method of claim 13 , wherein, to determine a first wedgelet pattern of the set of wedgelet patterns, the first wedgelet pattern being an array having elements all with a first binary value, the method further comprises:
updating first elements of the array from the first binary value to a second binary value, wherein the first elements form a line joining the start and end positions of the first wedgelet pattern;
determining whether an existing wedgelet pattern in the set of wedgelet patterns is identical to, or is an inverse of, the first wedgelet pattern based on a comparison of the elements of the existing wedgelet pattern and the first wedgelet pattern; and
responsive to a determination that the existing wedgelet pattern is not identical to and is not an inverse of the first wedgelet pattern, adding the first wedgelet pattern to the set of wedgelet patterns.
21 . An encoder for encoding a sample array of a video into a data stream, the encoder configured to:
select a set of wedgelet patterns to code a block of the sample array of the video from at least one lookup array of wedgelet patterns based on a size of the block, wherein each wedgelet pattern of the set includes a two-dimensional array having values that represent division of the block into two wedgelet portions separated by a line corresponding to the wedgelet pattern;
select, for the block of the sample array of the video, a block wedgelet pattern from the set of wedgelet patterns;
encode the block based at least on the two wedgelet portions yielded by the line corresponding to the block wedgelet pattern; and
entropy encode, into the data stream, an index value indicating a position of the block wedgelet pattern in the set of wedgelet patterns, wherein the index value is entropy-encoded using arithmetic coding.
22 . A method for storing data associated with a video, comprising:
storing, on a digital storage medium, a data stream from which a sample array of a video is reconstructed by a method according to claim 13 .