Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
First Claim
1. A method, comprising:
- specifying, at a video decoder, a search window in a first forward reference frame;
specifying a search path in the search window of the first forward reference frame;
for each motion vector MV0 in the search path, where each MV0 points from a current block to a reference block in the search window, determining a corresponding second motion vector MV1 that points to a reference block in a second reference frame, where the corresponding second motion vector MV1 is a function of MV0;
calculating a metric for each pair of MV0 and MV1 that is found in the search path wherein the metric consists of a sum of absolute differences (SAD) between the reference block in the search window and the reference block in the second reference frame;
selecting the MV0 whose corresponding value for the SAD is closest to zero, where the selected MV0 is used as a motion vector for the current block;
determining a predicted motion for the current block, where the predicted motion is one ofan average, anda weighted average,of predicted motion for MV0 and MV1.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems to apply motion estimation (ME) based on reconstructed reference pictures in a B frame or in a P frame at a video decoder. For a P frame, projective ME may be performed to obtain a motion vector (MV) for a current input block. In a B frame, both projective ME and mirror ME may be performed to obtain an MV for the current input block. The ME process can be performed on sub-partitions of the input block, which may reduce the prediction error without increasing the amount of MV information in the bitstream. Decoder-side ME can be applied for the prediction of existing inter frame coding modes, and traditional ME or the decoder-side ME can be adaptively selected to predict a coding mode based on a rate distribution optimization (RDO) criterion.
84 Citations
14 Claims
-
1. A method, comprising:
-
specifying, at a video decoder, a search window in a first forward reference frame; specifying a search path in the search window of the first forward reference frame; for each motion vector MV0 in the search path, where each MV0 points from a current block to a reference block in the search window, determining a corresponding second motion vector MV1 that points to a reference block in a second reference frame, where the corresponding second motion vector MV1 is a function of MV0; calculating a metric for each pair of MV0 and MV1 that is found in the search path wherein the metric consists of a sum of absolute differences (SAD) between the reference block in the search window and the reference block in the second reference frame; selecting the MV0 whose corresponding value for the SAD is closest to zero, where the selected MV0 is used as a motion vector for the current block; determining a predicted motion for the current block, where the predicted motion is one of an average, and a weighted average, of predicted motion for MV0 and MV1. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer program product including a computer readable medium having computer program logic stored therein, the computer program logic including:
-
motion estimation logic to cause a processor to determine a motion vector MV1 for each motion vector MV0 that is found in a search path in a search window of a first forward reference frame, where each MV0 points from a current block to a reference block in the search window, and where the MV1 is a function of the MV0; further cause the processor to calculate a metric for each pair of MV0 and MV1 wherein the metric consists of a sum of absolute differences (SAD) between the reference block in the search window and the reference block in the second reference frame; and further cause the processor to select the MV0 whose corresponding value for the metric is closest to zero, where the selected MV0 is used as a motion vector for the current block; and further cause the processor to determine a predicted motion for the current block, where the predicted motion is one of an average, and a weighted average, of predicted motion for MV0 and MV1. - View Dependent Claims (9, 10, 11)
-
-
12. A system, comprising:
-
a processor; and a memory in communication with said processor, said memory for storing a plurality of processing instructions for directing said processor to specify, at a video decoder, a search window in a first forward reference frame; specify a search path in a search window of the first forward reference frame; for each motion vector MV0 in the search path, where each MV0 points from a current block to a reference block in the search window, determine a corresponding second motion vector MV1 that points to a reference block in a second reference frame, where the corresponding second motion vector MV1 is a function of MV0; calculate a metric for each pair of MV0 and MV1 that is found in the search path wherein said metric consists of a sum of absolute differences (SAD) between the reference block in the search window and the reference block in the second reference frame; select the MV0 whose corresponding value for the SAD is closest to zero, where the selected MV0 is used as a motion vector for the current block; determine a predicted motion for the current block, where the predicted motion is one of an average, and a weighted average, of predicted motion for MV0 and MV1. - View Dependent Claims (13, 14)
-
Specification