US2009167775A1PendingUtilityA1
Motion estimation compatible with multiple standards
Est. expiryDec 30, 2027(~1.5 yrs left)· nominal 20-yr term from priority
H04N 19/557H04N 19/109H04N 19/577H04N 19/43H04N 19/132H04N 19/12G09G 2320/106H04N 19/523G09G 2340/02H04N 19/176G06F 3/14H04N 19/112H04N 19/61H04N 19/436
55
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A motion estimation engine may be implemented to support multiple video encoding standards. The motion estimation engine may be designed to support two macroblock partitioning modes: one for frame type video signals and the other for mixed frame-field type video signals. Additionally, the motion estimation engine provides the mixing unidirectional option (forward/backward) and the mixing bidirectional option. Furthermore, the motion estimation engine may use a unified 4-tap interpolation filter for fractional macroblock search during motion estimation.
Claims
exact text as granted — not AI-modified1 . An apparatus for performing motion estimation for multiple video encoding standards, comprising:
an integer search module to search a reference frame for the macroblock at integer pixel locations (“integer search”), the integer search module calculating distortion between each 4×4 pixel subblock unit in the macroblock and its corresponding 4×4 subblock in the reference frame; and a macroblock partitioning module to determine a macroblock partition based on the distortions of 4×4 subblock units from the integer search module, the macroblock partitioning module deriving distortions for other dimension subblocks in the macroblock from the 4×4 subblock distortions, and the determined macroblock partition having the least overall distortion among all potential macroblock partitions.
2 . The apparatus of claim 1 , further comprising a skip checking module to determine whether a macroblock in the current frame may use a default predicted motion vector specified by an individual video encoding standard.
3 . The apparatus of claim 1 , further comprising a fractional search module to fine-tune the results form the integer search module by searching the macroblock in the reference frame at fractional pixel positions (“fractional search”), the fractional search being performed by using a unified interpolation formula for multiple video encoding standards.
4 . The apparatus of claim 1 , further comprising a bidirectional motion estimation refinement module to refine prediction directions for the macroblock based on the macroblock partition, the bidirectional motion estimation allowing subblocks in the macroblock to have unified or mixing unidirectional predictions and to have unified or mixing bidirectional predictions, as specified by an individual video encoding standard.
5 . The apparatus of claim 1 , further comprising an intra search module to conduct intra-frame search for the macroblock.
6 . The apparatus of claim 1 , further comprising a controller to control operations of modules in the apparatus, to coordinate among the modules in the apparatus, and to turn on or off options of each module in the apparatus for different video encoding standards, and to output motion estimation results to a video encoder.
7 . The apparatus of claim 1 , wherein a 4×4 pixel subblock unit is formed from consecutive pixel rows for frame type video signals or from alternated pixel rows for field type video signals.
8 . A computing system, comprising:
a memory to store information associated with a reference frame; and a motion estimation engine to perform motion estimation for a current frame and to produce a motion vector for the current frame based on the reference frame for various video encoding standards, the motion estimation engine including: an integer search module to search a reference frame for the macroblock at integer pixel locations (“integer search”), the integer search module calculating distortion between each 4×4 pixel subblock unit in the macroblock and its corresponding 4×4 subblock in the reference frame; and a macroblock partitioning module to determine a macroblock partition based on the distortions of 4×4 subblock units from the integer search module, the macroblock partitioning module deriving distortions for other dimension subblocks in the macroblock from the 4×4 subblock distortions, and the determined macroblock partition having the least overall distortion among all potential macroblock partitions.
9 . The computing system of claim 8 , wherein the motion estimation engine further comprises a skip checking module to determine whether a macroblock in the current frame may use a default predicted motion vector specified by an individual video encoding standard.
10 . The computing system of claim 8 , the motion estimation engine further comprises a fractional search module to fine-tune the results form the integer search module by searching the macroblock in the reference frame at fractional pixel positions (“fractional search”), the fractional search being performed by using a unified interpolation formula for multiple video encoding standards.
11 . The computing system of claim 8 , the motion estimation engine further comprises a bidirectional motion estimation refinement module to refine prediction directions for the macroblock based on the macroblock partition, the bidirectional motion estimation allowing subblocks in the macroblock to have unified or mixing unidirectional predictions and to have unified or mixing bidirectional predictions, as specified by an individual video encoding standard.
12 . The computing system of claim 8 , the motion estimation engine further comprises an intra search module to conduct intra-frame search for the macroblock.
13 . The computing system of claim 8 , the motion estimation engine further comprises a controller to control operations of modules in the apparatus, to coordinate among the modules in the apparatus, and to turn on or off options of each module in the apparatus for different video encoding standards, and to output motion estimation results to a video encoder.
14 . The computing system of claim 12 , wherein functions of the controller are performed by a graphics processing unit (“GPU”).
15 . The computing system of claim 8 , wherein a 4×4 pixel subblock unit is formed from consecutive pixel rows for frame type video signals or from alternated pixel rows for field type video signals.
16 . The computing system of claim 8 , wherein the motion estimation engine supports frame type, field type, and field-frame type based video encoding standards.
17 . A method for performing motion estimation for multiple video encoding standards, comprising:
receiving a macroblock from a current frame; checking whether an integer search is set to be performed for the macroblock; if the integer search is set to be performed, performing search for a macroblock in a reference frame at integer pixel locations (“integer search”); calculating distortion between each 4×4 pixel subblock unit in the macroblock and its corresponding 4×4 subblock in the reference frame; deriving distortions for other dimension subblocks in the macroblock from the 4×4 subblock distortions; and determining a macroblock partition based on the 4×4 subblock distortions and the distortions of other dimension subblocks, the determined macroblock partition having the least overall distortion among all potential macroblock partitions.
18 . The method of claim 17 , further comprising:
if the integer search is not to be performed, checking whether an intra search is set to be performed for the macroblock; and if the intra search is set to be performed, performing intra-frame search for the macroblock.
19 . The method of claim 17 , wherein subblocks in the macroblock include 16×8 subblocks, 2 8×16 subblocks, 4 8×8 subblocks, 8 8×4 subblocks, 8 4×8 subblocks, and 16 4×4 subblocks for frame or field type video signals; and 2 16×8 subblocks, 2 8×16 subblocks, 4 8×8 subblocks, 2 field 16×8 subblocks, and 4 field 8×8 subblocks for field-frame type video signals.
20 . The method of claim 17 , further comprising fine-tuning results from the integer search by searching the macroblock in the reference frame at fractional pixel positions (“fractional search”) if a fractional search is set to be performed, the fractional search being performed by using a unified interpolation formula for multiple video encoding standards.
21 . The method of claim 17 , further comprising refining prediction directions for the macroblock based on the macroblock partition if a bidirectional refinement is set to be performed, subblocks in the macroblock being allowed to have unified or mixing unidirectional predictions and to have unified or mixing bidirectional predictions to support various video encoding standards.
22 . An article comprising a machine-readable medium that contains instructions, which when executed by a processing platform, cause said processing platform to perform operations including:
receiving a macroblock from a current frame; checking whether an integer search is set to be performed for the macroblock; if the integer search is set to be performed, performing search for a macroblock in a reference frame at integer pixel locations (“integer search”); calculating distortion between each 4×4 pixel subblock unit in the macroblock and its corresponding 4×4 subblock in the reference frame; deriving distortions for other dimension subblocks in the macroblock from the 4×4 subblock distortions; and determining a macroblock partition based on the 4×4 subblock distortions and the distortions of other dimension subblocks, the determined macroblock partition having the least overall distortion among all potential macroblock partitions.
23 . The article of claim 22 , wherein the operations further comprise:
if the integer search is not to be performed, checking whether an intra search is set to be performed for the macroblock; and if the intra search is set to be performed, performing intra-frame search for the macroblock.
24 . The article of claim 22 , wherein subblocks in the macroblock include 2 16×8 subblocks, 2 8×16 subblocks, 4 8×8 subblocks, 8 8×4 subblocks, 8 4×8 subblocks, and 16 4×4 subblocks for frame or field type video signals; and 2 16×8 subblocks, 2 8×16 subblocks, 4 8×8 subblocks, 2 field 16×8 subblocks, and 4 field 8×8 subblocks for field-frame type video signals.
25 . The article of claim 22 , wherein the operations further comprise fine-tuning results from the integer search by searching the macroblock in the reference frame at fractional pixel positions (“fractional search”) if a fractional search is set to be performed, the fractional search being performed by using a unified interpolation formula for multiple video encoding standards.
26 . The article of claim 22 , wherein the operations further comprise refining prediction directions for the macroblock based on the macroblock partition if a bidirectional refinement is set to be performed, subblocks in the macroblock being allowed to have unified or mixing unidirectional predictions and to have unified or mixing bidirectional predictions to support various video encoding standards.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.