Video coding and decoding
AssigneeCanon Kabushiki Kaisha
InventorsGuillaume Laroche, Christophe Gisquet, Patrice Onno, Jonathan Taquet
Life of this patent
Estimating the term…
Abstract
The invention relates to signalling affine mode in an encoded video stream; in particular determining a list of merge candidates corresponding to blocks neighbouring a current block; and signalling affine mode for said current block; wherein signalling said affine mode comprises decoding a context encoded flag from the data stream, and wherein the context variable for said flag is determined based on whether or not said neighbouring blocks use affine mode. Related encoding and decoding methods and devices are also disclosed.
Claims20
A method of decoding an image from a bitstream encoded using motion prediction, the method comprising:
- decoding, from the bitstream, a first flag being capable of indicating that a current block in the image is not skipped;
- decoding, from the bitstream, prediction mode information used to determine whether a prediction mode for the current block is an intra mode or an inter mode, when the first flag indicates that the current block is not skipped;
- determining, from a plurality of prediction modes including the intra mode and the inter mode, the prediction mode used to decode the current block of the image, based on the prediction mode information;
- and
- generating a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block, wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
A method of encoding an image into a bitstream using motion prediction, the method comprising:
- determining, from a plurality of prediction modes including an intra mode and an inter mode, a prediction mode used to encode a current block of the image;
- including in the bitstream a first flag being capable of indicating that the current block is not skipped;
- including in the bitstream prediction mode information used to determine whether a prediction mode for the current block is the intra mode or the inter mode, when the first flag indicates that the current block is not skipped;
- and
- generating a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and
- wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
An encoder for encoding an image into a bitstream using motion prediction, the encoder comprising at least one processor configured to function as:
- a unit configured to determine, from a plurality of prediction modes including an intra mode and an inter mode, a prediction mode used to encode a current block of the image;
- a unit configured to include in the bitstream a first flag being capable of indicating that the current block is not skipped;
- a unit configured to include in the bitstream prediction mode information used to determine whether a prediction mode for the current block is the intra mode or the inter mode, when the first flag indicates that the current block is not skipped;
- and
- a unit configured to generate a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block, wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and
- wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
A decoder for decoding an image from a bitstream encoded using motion prediction, the decoder comprising at least one processor configured to function as:
- a unit configured to decode, from the bitstream, a first flag being capable of indicating that a current block in the image is not skipped;
- a unit configured to decode, from the bitstream, prediction mode information used to determine whether a prediction mode for the current block is an intra mode or an inter mode, when the first flag indicates that the current block is not skipped;
- a unit configured to determine, from a plurality of prediction modes including the intra mode and the inter mode, the prediction mode used to decode the current block of the image, based on the prediction mode information;
- and
- a unit configured to generate a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block, wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and
- wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
A non-transitory computer-readable storage medium storing a program for causing a computer to execute a method of decoding an image from a bitstream encoded using motion prediction, the method comprising:
- decoding, from the bitstream, a first flag being capable of indicating that a current block in the image is not skipped;
- decoding, from the bitstream, prediction mode information used to determine whether a prediction mode for the current block is an intra mode or an inter mode, when the first flag indicates that the current block is not skipped;
- determining, from a plurality of prediction modes including the intra mode and the inter mode, the prediction mode used to decode the current block of the image, based on the prediction mode information;
- and
- generating a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block, wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and
- wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
A non-transitory computer-readable storage medium storing a program for causing a computer to execute a method of encoding an image into a bitstream using motion prediction, the method comprising:
- determining, from a plurality of prediction modes including an intra mode and an inter mode, a prediction mode used to encode a current block of the image;
- including in the bitstream a first flag being capable of indicating that the current block is not skipped;
- including in the bitstream prediction mode information used to determine whether a prediction mode for the current block is the intra mode or the inter mode, when the first flag indicates that the current block is not skipped;
- and
- generating a list of candidate motion predictors including a candidate for subblock affine prediction in the case where the inter mode is determined for the current block, wherein the candidate for subblock affine prediction is placed as a merge candidate lower in said list than a temporal motion vector candidate;
- wherein the subblock affine prediction derives at least one motion vector per subblock in the current block by using two or three motion vectors from a block which is of the same frame as the current block and which is a neighboring block of said current block at one of positions A1, B1, B0, A0 and B2, where A1 is the position to the left of the bottom of the current block, B1 is the position above the top right of the current block, B0 is the position diagonally up and to the right of the current block, A0 is the position diagonally down and to the left of the current block, and B2 is the position diagonally up and to the left of the current block, and
- wherein the temporal motion vector candidate is included in said list based on a second flag in a sequence parameter set.
Dependencies are inferred from the claim text.