| CPC G06T 3/4007 (2013.01) [G06T 7/238 (2017.01); H04N 19/43 (2014.11); H04N 19/523 (2014.11); G06T 2207/10016 (2013.01); G06T 2207/20021 (2013.01)] | 20 Claims |

|
1. A device comprising:
a vector engine;
a sub-pixel engine; and
a predictor engine configured to:
during a first processing cycle, perform a first global search based on a first macroblock of a first frame to identify a first set of candidate macroblocks of a first reference frame that correspond to the first macroblock; and
during a second processing cycle, perform a second global search based on the first macroblock to identify a second set of candidate macroblocks of a second reference frame that correspond to the first macroblock, wherein the vector engine is configured to:
during the second processing cycle, perform a first local integer search in a first direction based on the first set of candidate macroblocks in parallel with the second global search; and
during a third processing cycle, perform a second local integer search in a second direction based on the second set of candidate macroblocks, wherein the sub-pixel engine is configured to:
during the third processing cycle, perform a first local fractional search in the first direction based on the first set of candidate macroblocks in parallel with the second local integer search; and
during a fourth processing cycle, perform a second local fractional search in the second direction based on the second set of candidate macroblocks, and
wherein the device is configured to determine a motion vector for the first macroblock relative to the first set of candidate macroblocks or the second set of candidate macroblocks based on the first and second global searches, further based on the first and second local integer searches, and further based on the first and second local fraction searches,
Specifically, Chou, Schaub, or Murali do not teach the amended claims where the specific limitations of parallel four processing cycles, reciting inter alia; wherein the device is configured to determine a motion vector for the first macroblock relative to the first set of candidate macroblocks or the second set of candidate macroblocks based on the first and second global searches, further based on the first and second local integer searches, and further based on the first and second local fraction searches.
|