INTER PREDICTION IN EXPONENTIAL PARTITIONING
A decoder includes circuitry configured to receive a bitstream; partition a current block via an exponential partitioning mode into a first region and a second region; determine a motion vector associated with the first region or the second region, the determining including constructing a candidate list; and decode the current block using the determined motion vector. Related apparatus, systems, techniques and articles are also described.
1 . A decoder configured to:
receive a bit stream including a coded picture, the coded picture including a block of coded pixels and signaling information including a first partition index useful for determining the start point of a non-straight non-rectangular partition and a second partition index useful for determining the end point of the non-straight non-rectangular partition;
determine, using the first partition index, a start point of a non-straight non-rectangular partition in the block, the start point being located on a first side of the block a first offset distance from a first corner of the block;
determine, using the second partition index, an endpoint of the non-straight non-rectangular partition in the block, the end point being located on a second side of the block, a second offset distance from a second corner of the block;
generate first predictive pixel values in a first region on a first side of the non-straight, non-rectangular partition;
generate second predictive pixel values in a second region on a second side of the non-straight, non-rectangular partition; and
decode the block using the predictive pixel values.
2 . The decoder of claim 1 , wherein a first motion vector chosen from a first set of motion vector candidates is used to generate the first region of predictive pixel values and a second motion vector chosen from a second set of motion vector candidates is used to generate the second region of predictive pixel values.
3 . The decoder of claim 1 , wherein:
the decoder smooths the first predictive pixel values and second predictive pixel values across the non-straight, non-rectangular partition; and
decodes the coded block by adding residual pixel values to the smoothed first and second predictive pixel values.
4 . The decoder of claim 1 , wherein the block is a coding tree unit.
5 . The decoder of claim 1 , wherein the block is N×N and N is one of 128, 64, or 32.
6 . The decoder of claim 1 , wherein the non-straight non-rectangular partition is a curve.
7 . A decoder configured to:
receive a bit stream including a coded picture, the coded picture including a coding tree unit comprising multiple coding units and signaling information including a first partition index useful for determining the start point of a non-straight non-rectangular partition in the coding tree unit and a second partition index useful for determining the end point of the non-straight non-rectangular partition in the coding tree unit;
determine, using the first partition index and second partition index, the start point and end point of the non-straight, non-rectangular partition in the coding tree unit;
generate first predictive pixel values in a first region on a first side of the non-straight, non-rectangular partition using a first motion vector from a first set of motion vector candidates;
generate second predictive pixel values in a second region on a second side of the non-straight, non-rectangular partition using a second motion vector from a second set of motion vector candidates;
smooth the first predictive pixel values and second predictive pixel values across the non-straight, non-rectangular partition; and
decode the coding tree unit by adding residual pixel values to the smoothed first and second predictive pixel values.
8 . The decoder of claim 7 , wherein the bit stream includes a first motion vector candidate index used to identify the first motion vector from the first set of motion vector candidates and a second motion vector candidate index used to identify the second motion vector from the second set of motion vector candidates.
9 . An encoder configured to generate an encoded bitstream for decoding by a compliant decoder, the bitstream including a coded picture including a block of coded pixels and signaling information including a first partition index useful for determining the start point of a non-straight non-rectangular partition and a second partition index useful for determining the end point of the non-straight non-rectangular partition, the decoder receiving the bitstream and being configured to:
determine, using the first partition index, a start point of a non-straight non-rectangular partition in the block, the start point being located on a first side of the block a first offset distance from a first corner of the block;
determine, using the second partition index, an endpoint of the non-straight non-rectangular partition in the block, the end point being located on a second side of the block, a second offset distance from a second corner of the block;
generate first predictive pixel values in a first region on a first side of the non-straight, non-rectangular partition;
generate second predictive pixel values in a second region on a second side of the non-straight, non-rectangular partition; and
decode the block using the predictive pixel values.
10 . The encoder of claim 9 , wherein a first motion vector chosen from a first set of motion vector candidates is used to generate the first region of predictive pixel values and a second motion vector chosen from a second set of motion vector candidates is used to generate the second region of predictive pixel values.
11 . The encoder of claim 9 , wherein:
the decoder smooths the first predictive pixel values and second predictive pixel values across the non-straight, non-rectangular partition; and
decodes the coded block by adding residual pixel values to the smoothed first and second predictive pixel values.
12 . The encoder of claim 9 , wherein the block is a coding tree unit.
13 . The encoder of claim 9 , wherein the block is N×N and N is one of 128, 64, or 32.
14 . The encoder of claim 9 , wherein the non-straight non-rectangular partition is a curve.
15 . An encoder configured to generate an encoded bitstream for decoding by a compliant decoder, the bitstream including a coded picture including a coding tree unit comprising multiple coding units and signaling information including a first partition index useful for determining the start point of a non-straight non-rectangular partition in the coding tree unit and a second partition index useful for determining the end point of the non-straight non-rectangular partition in the coding tree unit, the decoder receiving the bitstream and being configured to:
determine, using the first partition index and second partition index, the start point and end point of the non-straight, non-rectangular partition in the coding tree unit;
generate first predictive pixel values in a first region on a first side of the non-straight, non-rectangular partition using a first motion vector from a first set of motion vector candidates;
generate second predictive pixel values in a second region on a second side of the non-straight, non-rectangular partition using a second motion vector from a second set of motion vector candidates;
smooth the first predictive pixel values and second predictive pixel values across the non-straight, non-rectangular partition; and
decode the coding tree unit by adding residual pixel values to the smoothed first and second predictive pixel values.
16 . The encoder of claim 15 , wherein the bit stream includes a first motion vector candidate index used to identify the first motion vector from the first set of motion vector candidates and a second motion vector candidate index used to identify the second motion vector from the second set of motion vector candidates.
17 . A non-transitory computer readable medium encoded with a bitstream for decoding by a compliant decoder, the bitstream including a coded picture including a block of coded pixels and signaling information including a first partition index useful for determining the start point of a non-straight non-rectangular partition and a second partition index useful for determining the end point of the non-straight non-rectangular partition, the decoder receiving the bitstream and being configured to:
determine, using the first partition index, a start point of a non-straight non-rectangular partition in the block, the start point being located on a first side of the block a first offset distance from a first corner of the block;
determine, using the second partition index, an endpoint of the non-straight non-rectangular partition in the block, the end point being located on a second side of the block, a second offset distance from a second corner of the block;
generate first predictive pixel values in a first region on a first side of the non-straight, non-rectangular partition;
generate second predictive pixel values in a second region on a second side of the non-straight, non-rectangular partition; and
decode the block using the predictive pixel values.