Decoding method, encoding method, decoder, and, encoder
A decoding method is a decoding method of decoding a current block of a video from a bitstream. The decoding method includes: decoding, from the bitstream, a prediction mode indicator indicating whether bi/uni mixed prediction is to be performed for the current block; decoding, from the bitstream, two instances of motion information for the current block; and when the prediction mode indicator indicates that the bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performing first prediction using one of the two instances, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performing second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction.
1 . A decoding method of decoding a current block of a video from a bitstream, the decoding method comprising:
decoding, from the bitstream, a prediction mode indicator indicating whether bi/uni mixed prediction is to be performed for the current block;
decoding, from the bitstream, two instances of motion information for the current block; and
when the prediction mode indicator indicates that the bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performing first prediction using one of the two instances, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performing second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction, wherein
two partitions in the current block, namely the first partition and the second partition, are determined according to a geometric partitioning mode,
the current block is partitioned into the two partitions along a boundary, and
the boundary is a line separating the two partitions.
2 . The decoding method according to claim 1 , further comprising:
decoding, from the bitstream, a partition indicator indicating at least one of (i) which of the two partitions is the first partition or (ii) which of the two partitions is the second partition.
3 . The decoding method according to claim 1 , further comprising:
decoding, from the bitstream, a partition indicator indicating: (i) a position and a direction of the boundary; and (ii) which of the two instances is to be used for prediction for the first partition.
4 . The decoding method according to claim 3 , wherein
the partition indicator further indicates at least one of (i) which of the two partitions is the first partition or (ii) which of the two partitions is the second partition.
5 . The decoding method according to claim 1 , further comprising:
setting each of the two partitions as the first partition or the second partition based on at least one of a size or a shape of at least one of the two partitions.
6 . The decoding method according to claim 1 , wherein
in the first prediction and in the second prediction,
the first prediction for the current block is performed using one of the two instances,
third prediction for the current block is performed using the other of the two instances, the third prediction being uni-prediction, and
a weighted linear combination of the first prediction and the third prediction is performed,
for at least part of the first partition, a weight ratio of the first prediction is set to 1, and a weight ratio of the third prediction is set to 0, and
for at least part of the second partition, the weight ratio of the third prediction is set to a maximum ratio less than 1 in the current block, and the weight ratio of the first prediction is set to a difference between 1 and the weight ratio of the third prediction.
7 . The decoding method according to claim 6 , wherein
for the at least part of the second partition, the weight ratio of the third prediction is set to 0.5, and the weight ratio of the first prediction is set to 0.5.
8 . The decoding method according to claim 6 , wherein
for a boundary region between the at least part of the first partition and the at least part of the second partition and including the boundary, each of the weight ratio of the first prediction and the weight ratio of the third prediction is set to gradually change from a ratio set for the at least part of the first partition to a ratio set for the at least part of the second partition.
9 . The decoding method according to claim 1 , further comprising:
for a first sub-block, storing one of the two instances that is to be used for prediction for the first partition, the first sub-block belonging to at least part of the first partition; and
for a second sub-block, storing both of the two instances, the second sub-block belonging to at least one of: a boundary region between the at least part of the first partition and at least part of the second partition and including the boundary or the at least part of the second partition.
10 . The decoding method according to claim 1 , wherein
when at least one of the first partition or the second partition is of a predetermined shape, the bi/uni mixed prediction is not performed.
11 . The decoding method according to claim 10 , wherein
the predetermined shape is a shape implementable by normal block splitting different from partition splitting in the bi/uni mixed prediction.
12 . An encoding method of encoding a current block of a video into a bitstream, the encoding method comprising:
when bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performing first prediction using one of two instances of motion information for the current block, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performing second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction;
encoding, into the bitstream, a prediction mode indicator indicating whether the bi/uni mixed prediction is to be performed for the current block; and
encoding the two instances into the bitstream, wherein
two partitions in the current block, namely the first partition and the second partition, are determined according to a geometric partitioning mode,
the current block is partitioned into the two partitions along a boundary, and
the boundary is a line separating the two partitions.
13 . The encoding method according to claim 12 , further comprising:
encoding, into the bitstream, a partition indicator indicating at least one of (i) which of the two partitions is the first partition or (ii) which of the two partitions is the second partition.
14 . The encoding method according to claim 12 , further comprising:
encoding, into the bitstream, a partition indicator indicating: (i) a position and a direction of the boundary; and (ii) which of the two instances is to be used for prediction for the first partition.
15 . The encoding method according to claim 14 , wherein
the partition indicator further indicates at least one of (i) which of the two partitions is the first partition or (ii) which of the two partitions is the second partition.
16 . The encoding method according to claim 12 , further comprising:
setting each of the two partitions as the first partition or the second partition based on at least one of a size or a shape of at least one of the two partitions.
17 . The encoding method according to claim 12 , wherein
in the first prediction and in the second prediction,
the first prediction for the current block is performed using one of the two instances,
third prediction for the current block is performed using the other of the two instances, the third prediction being uni-prediction, and
a weighted linear combination of the first prediction and the third prediction is performed,
for at least part of the first partition, a weight ratio of the first prediction is set to 1, and a weight ratio of the third prediction is set to 0, and
for at least part of the second partition, the weight ratio of the third prediction is set to a maximum ratio less than 1 in the current block, and the weight ratio of the first prediction is set to a difference between 1 and the weight ratio of the third prediction.
18 . The encoding method according to claim 17 , wherein
for the at least part of the second partition, the weight ratio of the third prediction is set to 0.5, and the weight ratio of the first prediction is set to 0.5.
19 . The encoding method according to claim 17 , wherein
for a boundary region between the at least part of the first partition and the at least part of the second partition and including the boundary, each of the weight ratio of the first prediction and the weight ratio of the third prediction is set to gradually change from a ratio set for the at least part of the first partition to a ratio set for the at least part of the second partition.
20 . The encoding method according to claim 12 , further comprising:
for a first sub-block, storing one of the two instances that is to be used for prediction for the first partition, the first sub-block belonging to at least part of the first partition; and
for a second sub-block, storing both of the two instances, the second sub-block belonging to at least one of: a boundary region between the at least part of the first partition and at least part of the second partition and including the boundary; or the at least part of the second partition.
21 . The encoding method according to claim 12 , wherein
when at least one of the first partition or the second partition is of a predetermined shape, the bi/uni mixed prediction is not performed.
22 . The encoding method according to claim 21 , wherein
the predetermined shape is a shape implementable by normal block splitting different from partition splitting in the bi/uni mixed prediction.
23 . A non-transitory computer readable medium for a computer, storing a bitstream and a computer program having instructions for transmission of the bitstream, the bitstream including information that causes the computer to execute a decoding process of decoding a current block using a motion vector, wherein
the decoding process includes:
decoding, from the bitstream, a prediction mode indicator indicating whether bi/uni mixed prediction is to be performed for the current block;
decoding, from the bitstream, two instances of motion information for the current block; and
when the prediction mode indicator indicates that the bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performing first prediction using one of the two instances, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performing second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction,
two partitions in the current block, namely the first partition and the second partition, are determined according to a geometric partitioning mode,
the current block is partitioned into the two partitions along a boundary, and
the boundary is a line separating the two partitions.
24 . A decoder that decodes a current block of a video from a bitstream, the decoder comprising:
circuitry; and
memory coupled to the circuitry, wherein
in operation, the circuitry:
decodes, from the bitstream, a prediction mode indicator indicating whether bi/uni mixed prediction is to be performed for the current block;
decodes, from the bitstream, two instances of motion information for the current block; and
when the prediction mode indicator indicates that the bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performs first prediction using one of the two instances, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performs second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction,
two partitions in the current block, namely the first partition and the second partition, are determined according to a geometric partitioning mode,
the current block is partitioned into the two partitions along a boundary, and
the boundary is a line separating the two partitions.
25 . An encoder that encodes a current block of a video into a bitstream, the encoder comprising:
circuitry; and
memory coupled to the circuitry, wherein
in operation, the circuitry:
when bi/uni mixed prediction is to be performed for the current block, (i) for a first partition, performs first prediction using one of two instances of motion information for the current block, the first partition being part of the current block, the first prediction being uni-prediction, and (ii) for a second partition, performs second prediction using both of the two instances, the second partition being part of the current block, the second prediction being bi-prediction;
encodes, into the bitstream, a prediction mode indicator indicating whether the bi/uni mixed prediction is to be performed for the current block; and
encodes the two instances into the bitstream,
two partitions in the current block, namely the first partition and the second partition, are determined according to a geometric partitioning mode,
the current block is partitioned into the two partitions along a boundary, and
the boundary is a line separating the two partitions.