SYSTEM AND METHOD FOR MOTION ESTIMATION AND MODE DECISION FOR LOW-COMPLEXITY H.264 DECODER
First Claim
1. A method for optimizing the selection of motion vectors and motion compensation block modules in a video encoder comprising:
- receiving an input video data sequence comprising at least one macroblock;
identifying a target complexity level for the video data sequence;
determining a Lagrange multiplier for the video data sequence;
for each at least one macroblock, calculating at least one motion vector for one or more block modes based on the determined Lagrange multiplier;
for each at least one macroblock, selecting one of the one or more block modes based on the determined Lagrange multiplier;
encoding the received input video data sequence in accordance with the identified target complexity level to produce an encoded bitstream that may be decoded with consistent complexity.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention relates to systems and methods for motion estimation and mode decision for low-complexity H.264 standard decoders. The present invention includes a method for optimizing the selection of motion vectors and motion compensation block modules in a video encoder in order to decrease the complexity of the video upon decoding. The novel method of the present invention may include novel steps for selecting motion vectors, block modes, and for applying a complexity-control algorithm to encode the received input video data sequence in accordance with the identified target complexity level. The present invention may be implemented in accordance with current and future video decoding standards to optimize decoding by reducing decoding complexity and thereby reducing required resources and power consumption.
-
Citations
20 Claims
-
1. A method for optimizing the selection of motion vectors and motion compensation block modules in a video encoder comprising:
-
receiving an input video data sequence comprising at least one macroblock; identifying a target complexity level for the video data sequence; determining a Lagrange multiplier for the video data sequence; for each at least one macroblock, calculating at least one motion vector for one or more block modes based on the determined Lagrange multiplier; for each at least one macroblock, selecting one of the one or more block modes based on the determined Lagrange multiplier; encoding the received input video data sequence in accordance with the identified target complexity level to produce an encoded bitstream that may be decoded with consistent complexity. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for selecting motion vectors for optimized video encoding comprising:
-
receiving an input video data sequence comprising one or more macroblocks; for each macroblock, enumerating at least one inter-predictive block mode whose one or more motion vectors are to be calculated based on motion estimation; for each block of each enumerated block mode, selecting the one or more motion vectors that yield minimum rate-distortion-complexity; storing the selected one or more motion vectors for each block of each enumerated block mode. - View Dependent Claims (7, 8, 9)
-
-
10. A method for selecting a block mode for optimized video encoding comprising:
-
receiving an input video data sequence comprising one or more macroblocks; identifying one or more possible block modes for each macroblock; retrieving one or more selected motion vectors for each block mode; using the selected motion vectors, calculating the rate-distortion-complexity cost for each block mode; selecting, for each macroblock, a block mode that yields a minimum rate-distortion-complexity cost function; storing at least one of the selected block modes for further processing. - View Dependent Claims (11, 12, 13)
-
-
14. An optimized video encoding system comprising:
-
at least one processor; a memory coupled to the at least one processor and containing instructions which, when executed by the processor, cause the processor to perform the steps of; receiving an input video data sequence comprising at least one macroblock; identifying a target complexity level for the video data sequence; determining a Lagrange multiplier for the video data sequence; for each at least one macroblock, calculating at least one motion vector for one or more block modes based on the determined Lagrange multiplier; for each at least one macroblock, selecting one of the one or more block modes based on the determined Lagrange multiplier; encoding the received input video data sequence in accordance with the identified target complexity level to produce an encoded bitstream that may be decoded with consistent complexity. - View Dependent Claims (15, 16, 17, 18)
-
-
19. An optimized video encoding system comprising:
-
at least one processor; a memory coupled to the at least one processor and containing instructions which, when executed by the processor, cause the processor to perform the steps of; receiving an input video data sequence comprising one or more macroblocks; identifying one or more possible block modes for each macroblock; retrieving one or more selected motion vectors for each block mode; using the selected motion vectors, calculating the rate-distortion-complexity cost for each block mode; selecting, for each macroblock, a block mode that yields a minimum rate-distortion-complexity cost function; storing at least one of the selected block modes for further processing.
-
-
20. An optimized video encoding system comprising:
-
at least one processor; a memory coupled to the at least one processor and containing instructions which, when executed by the processor, cause the processor to perform the steps of; receiving an input video data sequence comprising one or more macroblocks; for each macroblock, enumerating at least one inter-predictive block mode whose one or more motion vectors are to be calculated based on motion estimation; for each block of each enumerated block mode, selecting the one or more motion vectors that yield minimum rate-distortion-complexity; storing the selected one or more motion vectors for each block of each enumerated block mode.
-
Specification