Efficient multi-block motion estimation for video compression
First Claim
1. In a data compressing scheme for matching between frames of images in which each frame is divided into a predetermined number of macroblocks, a method of choosing the best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation, said method comprising:
- defining a motion vector for a search point in a research region within the candidate macroblock;
constructing a hierarchy of modes for subdividing the candidate macroblock into one or more subblocks wherein the modes are enumerated such that a mode M comprises subblocks with smaller area than or equal to sublocks of a mode N if M>
N;
selecting a lowest mode L and performing an elaborate search with respect to a mismatch measure for the mode L;
choosing the mode M for dividing the candidate macroblock if the mismatch measure is smaller than a threshold; and
performing a relatively simple search for higher modes if the mismatch is not smaller than a threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
A novel method, system, and apparatus for efficient multi-block motion estimation in a digital signal compression and coding scheme. This invention selects only a few representative block sizes for motion estimation when certain favourable conditions occur, rather than using all available block sizes. This invention produces significantly reduced computational costs with virtually no sacrifice in visual quality and in bit-rate.
-
Citations
44 Claims
-
1. In a data compressing scheme for matching between frames of images in which each frame is divided into a predetermined number of macroblocks, a method of choosing the best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation, said method comprising:
-
defining a motion vector for a search point in a research region within the candidate macroblock;
constructing a hierarchy of modes for subdividing the candidate macroblock into one or more subblocks wherein the modes are enumerated such that a mode M comprises subblocks with smaller area than or equal to sublocks of a mode N if M>
N;
selecting a lowest mode L and performing an elaborate search with respect to a mismatch measure for the mode L;
choosing the mode M for dividing the candidate macroblock if the mismatch measure is smaller than a threshold; and
performing a relatively simple search for higher modes if the mismatch is not smaller than a threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. In a data compressing scheme for matching between frames of images in which each frame is divided into a predetermined number of macroblocks, a method of choosing the best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation, said method comprising:
-
defining a motion vector for a search point in a research region within the candidate macroblock;
constructing a hierarchy of modes for subdividing the candidate macroblock into one or more subblocks wherein the modes are enumerated such that a mode M comprises subblocks with smaller area than or equal to sublocks of a level N if M>
N;
selecting a highest mode H and performing an elaborate search with respect to a mismatch measure for the mode H; and
performing a relatively simple search for modes lower than H. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for fast multi-block motion estimation, comprising:
-
a. selecting a macroblock in a current frame and obtaining a motion vector;
b. constructing a hierarchy of levels for subdividing the macroblock into one or more smaller non-overlapping sub-blocks wherein the levels are enumerated such that a level M has sub-blocks with smaller area than or equal to those of a level N for M>
N;
c. performing a relatively elaborate search with respect to a mismatch measure for a level L around a middle in the hierarchy of levels for subdivision of the macroblock; and
d. performing a relatively simple search for levels higher and lower than the level in the hierarchy of levels.
-
-
23. A method for fast mult-block motion estimation, comprising:
-
a. performing a full search with respect to a candidate block;
b. performing a complicated motion estimation on the candidate block; and
c. performing a simplified search on blocks larger than the candidate block using motion vectors from the candidate block as a predictor - View Dependent Claims (24, 25)
-
-
26. A computer-readable storage medium tangibly embodying computer-executable instructions for choosing a best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation in matching between frames of images, the program instructions including instructions operable for causing a computer to:
-
define a motion vector for a search point in a research region within the candidate macroblock;
construct a hierarchy of modes for subdividing the candidate macroblock into one or more subblocks wherein the modes are enumerated such that a mode M comprises subblocks with smaller area than or equal to sublocks of a mode N if M>
N;
select a lowest mode L and perform an elaborate search with respect to a mismatch measure for the mode L;
choose the mode M for dividing the candidate macroblock if the mismatch measure is smaller than a threshold; and
perform a relatively simple search for higher modes if the mismatch is not smaller than a threshold. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer-readable storage medium tangibly embodying computer-executable instructions for choosing a best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation in matching between frames of images, the program instructions including instructions operable for causing a computer to:
-
define a motion vector for a search point in a research region within the candidate macroblock;
construct a hierarchy of modes for subdividing the candidate macroblock into one or more subblocks wherein the modes are enumerated such that a mode M comprises subblocks with smaller area than or equal to sublocks of a level N if M>
N;
select a highest mode H and perform an elaborate search with respect to a mismatch measure for the mode H; and
perform a relatively simple search for modes lower than H. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A computer-readable storage medium tangibly embodying computer-executable instructions for choosing a best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation in matching between frames of images, the program instructions including instructions operable for causing a computer to:
-
a. construct a hierarchy of levels for subdividing the macroblock into one or more smaller non-overlapping sub-blocks wherein the levels are enumerated such that a level M has sub-blocks with smaller area than or equal to those of a level N for M>
N;
b. perform a relatively elaborate search with respect to a mismatch measure for a level L around a middle in the hierarchy of levels for subdivision of the macroblock; and
c. perform a relatively simple search for levels higher and lower than the level in the hierarchy of levels.
-
-
44. A computer-readable storage medium tangibly embodying computer-executable instructions for choosing a best mode for dividing a candidate macroblock from among the predetermined number of macroblocks for motion estimation in matching between frames of images, the program instructions including instructions operable for causing a computer to:
-
a. perform a full search with respect to the candidate block;
b. perform a complicated motion estimation on the candidate block;
c. perform a simplified search on blocks larger than the candidate block using motion vectors from the candidate block as a predictor.
-
Specification