IP Library Granted Patent US 7,023,921
Granted Patent B2
US 7,023,921 · App. 10/213,652 · Granted Apr 4, 2006

Method and apparatus for determining block match quality

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,023,921
App. No.
10/213,652
Granted
Apr 4, 2006
Kind
B2
Abstract

A method and apparatus for determining the quality of a block match for a candidate motion vector in a video encoder system using motion vectors representing the difference in coordinates of a macroblock of data in a current frame of video data and coordinates of a related macroblock of data in a reference frame of video data. The method can include defining a search pattern, searching a region based on the search pattern for a candidate motion vector for evaluation, calculating a difference metric, calculating a bias based on the difference between a predictor motion vector and a candidate motion vector, determining a modified difference metric by adding the difference metric to the bias, and defining a final motion vector based on the modified difference metric.

Claims (94)

1. A method for determining the quality of a block match for a candidate motion vector in a video encoder system comprising:

calculating a difference metric;

calculating a bias based on

a predictor motion vector and

a candidate motion vector; and

determining a modified difference metric based on

the difference metric and

the bias.

2. The method according to claim 1 , wherein the step of determining a modified difference metric based on the difference metric and the bias comprises adding the difference metric to the bias.

3. The method according to claim 1 , wherein the step of calculating a bias based on a predictor motion vector and a candidate motion vector further comprises

determining a motion vector difference metric between

the predictor motion vector and

the candidate motion vector, and

calculating the bias based on the motion vector difference metric between the predictor motion vector and the candidate motion vector.

4. The method according to claim 3 , wherein the step of calculating a bias based on a predictor motion vector and a candidate motion vector further comprises

multiplying the motion vector difference metric between

the predictor motion vector and

the candidate motion vector

by a constant.

5. The method according to claim 4 , wherein the constant is equal to about five.

6. The method according to claim 1 , wherein the step of calculating a bias based on a predictor motion vector and a candidate motion vector further comprises

adding

an absolute value of the difference between horizontal coordinates of the predictor motion vector and the candidate motion vector

to

an absolute value of the difference between vertical coordinates of the predictor motion vector and the candidate motion vector.

7. The method according to claim 1 , wherein the step of calculating a bias based on a predictor motion vector and a candidate motion vector further comprises

adding

a square of the difference between horizontal coordinates of the predictor motion vector and the candidate motion vector

to

a square of the difference between vertical coordinates of the predictor motion vector and the candidate motion vector.

8. The method according to claim 1 ,

wherein the candidate motion vector is one of a plurality of candidate motion vectors being evaluated for a macroblock, and

wherein the predictor motion vector stays fixed for each candidate motion vector in a macroblock.

9. The method according to claim 1 , wherein the difference metric is a sum of absolute differences metric.

10. The method according to claim 1 , wherein the difference metric is a sum of squares of differences metric.

11. The method according to claim 1 , further comprising:

defining a final motion vector based on the candidate motion vector; and

outputting the final motion vector.

12. A method for determining the quality of a block match for a candidate motion vector in a video encoder system using motion vectors representing the difference in coordinates of a macroblock of data in a current frame of video data and coordinates of a related macroblock of data in a reference frame of video data comprising:

defining a search pattern;

searching a region based on the search pattern for a candidate motion vector for evaluation;

calculating a difference metric;

calculating a bias based on the difference metric between a predictor motion vector and a candidate motion vector;

determining a modified difference metric by adding the difference metric to the bias; and

defining a final motion vector based on the modified difference metric.

13. The method according to claim 12 , wherein the final motion vector is defined for use in a second stage of the video encoder system.

14. The method according to claim 12 , wherein the difference metric is at least one of a sum of absolute differences metric and a sum of squares of differences metric.

15. The method according to claim 12 ,

wherein the step of searching a region further comprises:

searching around a plurality of motion vector predictors using the search pattern, and

wherein the step of defining a final motion vector further comprises

defining a final motion vector having a modified difference metric higher than a predetermined threshold,

performing a second search pattern around a new plurality of motion vector predictors based on the final motion vector, and

determining a new final motion vector based on the results of the step of performing a second search pattern.

16. The method according to claim 12 , wherein the step of defining a search pattern further comprises defining a search pattern that is more extensive in a horizontal direction than in a vertical direction.

17. The method according to claim 12 , further comprising outputting a motion vector based on the final motion vector.

18. An apparatus for determining the quality of a block match for a candidate motion vector in a video encoder system using motion vectors representing the difference in coordinates of a macroblock of data in a current frame of video data and coordinates of a related macroblock of data in a reference frame of video data comprising:

a current image macroblock input;

a modified sum of absolute differences motion estimation circuit including

a difference metric calculator,

a bias calculator,

a modified sum of absolute differences calculator, and

a motion vector determination circuit; and

a motion vector output.

19. The apparatus according to claim 18 , wherein the difference metric calculator is at least one of a sum of absolute differences calculator and a sum of squares of differences calculator.

20. The apparatus according to claim 18 , wherein the bias calculator calculates a bias by determining the motion vector difference metric between

a predictor motion vector and

a candidate motion vector.

21. The apparatus according to claim 20 , where the bias calculator further calculates a bias by

multiplying the motion vector difference metric between

the predictor motion vector and

the candidate motion vector

by a constant.

22. The apparatus according to claim 20 , where the bias calculator further determines the motion vector difference metric between a predictor motion vector and a candidate motion vector by

adding

an absolute value of the difference between horizontal coordinates of the predictor motion vector and the candidate motion vector

to

an absolute value of the difference between vertical coordinates of the predictor motion vector and the candidate motion vector.

23. The apparatus according to claim 22 ,

wherein the candidate motion vector is one of a plurality of candidate motion vectors being evaluated for a macroblock, and

wherein the predictor motion vector stays fixed for each candidate motion vector in the macroblock.

24. The apparatus according to claim 20 , where the bias calculator further determines the motion vector difference metric between a predictor motion vector and a candidate motion vector by

adding

a square of the difference between horizontal coordinates of the predictor motion vector and the candidate motion vector

to

a square of the difference between vertical coordinates of the predictor motion vector and the candidate motion vector.

25. The apparatus according to claim 18 , further comprising a motion compensation circuit coupled to the modified sum of absolute differences motion estimation circuit.

26. The apparatus according to claim 25 , further comprising an adder coupled to the current image macroblock input and coupled to the motion compensation circuit.

27. The apparatus according to claim 26 , further comprising:

a discrete cosine transform circuit coupled to the adder; and

a quantizer coupled to the discrete cosine transform circuit.

28. The apparatus according to claim 27 , further comprising:

an inverse quantizer coupled to the quantizer; and

an inverse discrete cosine transform circuit coupled to the inverse quantizer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034453/0001 →
CHANGE OF NAME Recorded Oct 2, 2012
From: MOTOROLA MOBILITY, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 029216/0282 →