Method and apparatus for video coding
First Claim
1. A method for obtaining an estimated motion vector for use in block-based video encoding, the method comprising:
- refining a predicted motion vector for a current block to obtain an estimated motion vector in a sequence comprising a plurality of steps; and
, before each of a plurality of the steps in the sequence, computing a similarity value between the block and another block indicated by the current estimated motion vector, comparing the similarity value to a threshold, and not performing subsequent steps in the sequence if the comparison indicates that the current estimated motion vector provides a match between the current block and the another block which is better than a match corresponding to the threshold.
4 Assignments
0 Petitions
Accused Products
Abstract
A video coding method progressively refines a predicted motion vector to obtain an estimated motion vector. Subsequent steps are omitted if the estimated motion vector matches a current macroblock. Variable matching thresholds can permit dynamic adjustment of image quality and computational cost to optimize encoding performance for available computational resources. The method permits control of desired encoding speed and bit rate by adjusting encoding parameters. Video coders according to the invention may comprise a motion estimator, transform computer and coder each of which operates according to one or more parameters. A speed rate control and/or a bit rate control may adjust the parameters to maintain a desired encoding speed and output bit rate. A coder according to the invention may be implemented in software running on a general purpose computer. The method may be used in block-based video encoders including MPEG-2 and H.263 encoders.
-
Citations
31 Claims
-
1. A method for obtaining an estimated motion vector for use in block-based video encoding, the method comprising:
-
refining a predicted motion vector for a current block to obtain an estimated motion vector in a sequence comprising a plurality of steps; and
,before each of a plurality of the steps in the sequence, computing a similarity value between the block and another block indicated by the current estimated motion vector, comparing the similarity value to a threshold, and not performing subsequent steps in the sequence if the comparison indicates that the current estimated motion vector provides a match between the current block and the another block which is better than a match corresponding to the threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20)
-
-
21. A video coding method comprising:
-
providing a video encoder comprising at least a motion vector estimator, a transformation computer and a coder, running on a computer platform, the video encoder operating in a manner determined by a plurality of parameters;
providing a plurality of sets of parameters, each set of parameters causing the video encoder to provide a different balance between output quality and computation;
configuring the video encoder with a first one of the sets of parameters;
measuring a time taken for the video encoder to encode a series of blocks;
if the time taken exceeds a predetermined time, configuring the video encoder with a second one of the sets of parameters;
wherein the video encoder encodes with less computation when configured with the second set of parameters than it does when configured with the first set of parameters. - View Dependent Claims (22, 23, 24, 25, 27, 28, 29, 30)
-
-
26. A video coding method comprising sequentially processing a plurality of blocks in an input video signal to produce an encoded output video signal, the processing for each of the blocks comprising obtaining an estimated motion vector for each block by taking each block, in turn, as a current block and:
-
a) for each current block determining an initial estimated motion vector, computing a first similarity measure between the current block and a block identified by the initial estimated motion vector and comparing the first similarity measure to a threshold;
b) if the comparison indicates that the match between the current block and a block identified by the initial estimated motion vector is better than the threshold, using the initial estimated motion vector as an estimated motion vector for the current block and proceeding to a transformation step; and
,c) if the comparison indicates that the match between the current block and a block identified by the initial estimated motion vector is worse than the threshold, performing one or more motion vector refinement steps on the initial estimated motion vector to produce an estimated motion vector for the current block before proceeding to the transformation step.
-
-
31. A video coder comprising
a motion vector estimator; -
a transformation computer;
a coder;
a memory holding a plurality of sets of parameters, a selected one of the sets of parameters causing the motion vector estimator, transformation computer and coder to encode an input video signal with a balance between output quality and computation; and
,a speed control comprising a timer connected to measure a time taken for the video encoder to encode a series of one or more blocks, the speed control adapted to select an alternative one of the sets of parameters which encodes with less computation than a currently selected one of the sets of parameters in response to detecting that the time taken is longer than a threshold time.
-
Specification