Back to results
US 12,003,736 B2Granted
Method and apparatus for estimating optical flow for motion compensation
AssigneeSK Telecom Co., Ltd.
InventorsJeong-yeon Lim, Hyo Song Kim, Se-hoon Son, Jae-seob Shin, Sun-young Lee
Life of this patent
Estimating the term…
Abstract
Disclosed herein is a method for adaptive bidirectional optical flow estimation for inter prediction compensation during video encoding. The method aims to reduce complexity and/or cost of bidirectional optical flow (BIO) at a pixel level or a subblock level.
Claims6
A method for encoding video data, comprising:
- determining a first motion vector indicating a first region corresponding to a current block in a first reference picture, and a second motion vector indicating a second region corresponding to the current block in a second reference picture;
- generating a prediction block for the current block by applying a bidirectional optical flow (BIO) process in a subblock basis;
- determining a residual block for the current block using the prediction block;
- and
- encoding the first motion vector, the second motion vector and the residual block for the current block in a bitstream,
- wherein the generating of the prediction block comprises:
- determining a BIO motion vector for each subblock constituting the current block;
- and
- generating a prediction value for each of pixels constituting a corresponding subblock based on the determined BIO motion vector,
- wherein the BIO motion vector is determined based on flow differences obtained for pixels within a square block surrounding the corresponding subblock,
- wherein the flow difference for a given pixel within the square block is calculated between a first point on the first reference picture and a second point on the second reference picture which correspond to the given pixel within the square block,
- wherein the prediction value for each of pixels is generated based on (1) an original prediction value derived by using the first motion vector and the second motion vector and (2) an offset value derived by using the BIO motion vector,
- wherein the BIO motion vector is determined as a vector that minimizes a weighted sum of squares of flow differences obtained for respective pixels within the square block surrounding the corresponding subblock, and
- wherein a higher weight is assigned to a flow difference obtained for a pixel located further inside the square block surrounding the corresponding subblock.
11 more elements
A method for decoding video data, comprising:
- determining a first motion vector indicating a first region corresponding to a current block in a first reference picture, and a second motion vector indicating a second region corresponding to the current block in a second reference picture;
- generating a prediction block for the current block by applying a bidirectional optical flow (BIO) process in a subblock basis;
- and
- reconstructing the current block using the prediction block,
- wherein the reconstructing of the current block includes:
- decoding a residual block for the current block from a bitstream;
- and
- adding the residual block to the prediction block to reconstruct the current block, and
- wherein the generating of the prediction block comprises:
- determining a BIO motion vector for each subblock constituting the current block;
- and
- generating a prediction value for each of pixels constituting a corresponding subblock based on the determined BIO motion vector,
- wherein the BIO motion vector is determined based on flow differences obtained for pixels within a square block surrounding the corresponding subblock,
- wherein the flow difference for a given pixel within the square block is calculated between a first point on the first reference picture and a second point on the second reference picture which correspond to the given pixel within the square block,
- wherein the prediction value for each of pixels is generated based on (1) an original prediction value derived by using the first motion vector and the second motion vector and (2) an offset value derived by using the BIO motion vector,
- wherein the BIO motion vector is determined as a vector that minimizes a weighted sum of squares of flow differences obtained for respective pixels within the square block surrounding the corresponding subblock, and
- wherein a higher weight is assigned to a flow difference obtained for a pixel located further inside the square block surrounding the corresponding subblock.
14 more elements
A non-transitory computer readable medium storing a bitstream containing encoded data for video data, the bitstream generated by processes of:
- determining a first motion vector indicating a first region corresponding to a current block in a first reference picture, and a second motion vector indicating a second region corresponding to the current block in a second reference picture;
- generating a prediction block for the current block by applying a bidirectional optical flow (BIO) process in a subblock basis;
- determining a residual block for the current block using the prediction block;
- and
- encoding the first motion vector, the second motion vector and the residual block for the current block in the bitstream,
- wherein the generating of the prediction block comprises:
- determining a BIO motion vector for each subblock constituting the current block;
- and
- generating a prediction value for each of pixels constituting a corresponding subblock based on the determined BIO motion vector,
- wherein the BIO motion vector is determined based on flow differences obtained for pixels within a square block surrounding the corresponding subblock,
- wherein the flow difference for a given pixel within the square block is calculated between a first point on the first reference picture and a second point on the second reference picture which correspond to the given pixel within the square block,
- wherein the prediction value for each of pixels is generated based on (1) an original prediction value derived by using the first motion vector and the second motion vector and (2) an offset value derived by using the BIO motion vector,
- wherein the BIO motion vector is determined as a vector that minimizes a weighted sum of squares of flow differences obtained for respective pixels within the square block surrounding the corresponding subblock, and
- wherein a higher weight is assigned to a flow difference obtained for a pixel located further inside the square block surrounding the corresponding subblock.
11 more elements
Dependencies are inferred from the claim text.