Method and apparatus to encode a moving image with fixed computational complexity
First Claim
Patent Images
1. A method to encode a moving image to estimate motion vectors of the moving image, the method comprising:
- comparing a sum of absolute difference (SAD) of candidate motion vectors with a threshold value that is set based on a number of search points per macro block of a previous frame;
ending searching of the motion vectors of macro blocks when the SAD of each candidate motion vector is smaller than the threshold value;
determining one of the candidate motion vectors having a minimum SAD to be a motion vector; and
updating the threshold value with respect to a next frame according to the number of search points per macro block of a current frame when searching for the motion vector ends.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, a computer readable storage, and an apparatus estimate a motion of a moving image and comprising a process of adjusting a number of search points per frame by adaptively updating a threshold value per frame to regularly maintain fixed a computational complexity of a video encoder irrespective of characteristics of the moving image.
62 Citations
21 Claims
-
1. A method to encode a moving image to estimate motion vectors of the moving image, the method comprising:
-
comparing a sum of absolute difference (SAD) of candidate motion vectors with a threshold value that is set based on a number of search points per macro block of a previous frame;
ending searching of the motion vectors of macro blocks when the SAD of each candidate motion vector is smaller than the threshold value;
determining one of the candidate motion vectors having a minimum SAD to be a motion vector; and
updating the threshold value with respect to a next frame according to the number of search points per macro block of a current frame when searching for the motion vector ends. - View Dependent Claims (2, 3, 4)
-
-
5. A method to encode a moving image, comprising:
-
comparing a threshold value, which is set according to a number of search points per macro block of a previous frame, with a sum of absolute difference (SAD) of a motion vector of the previous frame and outputting a compared result;
determining whether searching of a macro block ends according to the compared result and outputting a determination result;
estimating a motion estimation (ME) of the moving image based on the determination result;
calculating a computational complexity of the motion estimation (ME) to obtain a difference between the ME computational complexity and a target;
updating a target discrete cosine transform (DCT) complexity based on a difference between the ME computational complexity and the target,;
setting the threshold value based on the updated target DCT complexity, in order to determine whether to skip performing the DCT on video data; and
determining whether to perform a DCT process on the video data of a current frame according to the set threshold value. - View Dependent Claims (6, 7, 8)
-
-
9. An apparatus to encode a moving image, comprising:
-
a discrete cosine transform (DCT) unit performing DCT on input video data on a block-by-block basis;
a quantizer quantizing the video data on which the DCT is performed and generating a quantization parameter;
a motion estimation (ME) unit updating a threshold value TH according to an average number of search points per macro block of a previous frame, comparing the threshold value TH with a sum of absolute difference (SAD) per macro block, and estimating a motion vector of a current frame;
a DCT computational complexity calculator calculating computational complexity according to the average number of search points per macro block according to the threshold value TH per frame updated, estimating a difference between the calculated computational complexity and a target ME computational complexity, and updating a target DCT computational complexity based on the estimated ME computational complexity; and
a DCT skipping unit setting a threshold value to determine whether to skip performing DCT on the video data based on the updated target DCT computational complexity, comparing the SAD per macro block generated by the ME unit and the quantization parameter with the threshold value, and determining whether to allow the DCT unit to perform the DCT on the video data.
-
-
10. An apparatus to encode video data, comprising:
-
a discrete cosine transform (DCT) skipping unit generating a DCT skipping control signal;
a DCT unit performing a DCT process on the video data in an 8×
8 block-by-block unit or processing the video data not to be coded in response to the DCT skipping control signal;
a quantizer quantizing the video data on which the DCT process is performed;
a variable length coding (VLC) unit removing statistical redundancy from the quantized video data;
an inverse quantizer (IQ) inversely quantizing the quantized video data;
an inverse DCT (IDCT) unit performing an IDCT on the inversely quantized video data;
a motion estimation (ME) unit estimating a motion vector (MV) and a sum of absolute difference (SAD) per macro block using the video data of a current frame and the video data of a previous frame, wherein during the estimation of the MV and the SAD, the ME unit updates a threshold value TH according to an average number of search points of the previous frame per macro block, compares the updated threshold value TH and the SAD with respect to the current frame, and determines whether searching for the motion vector is terminated. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer readable storage controlling a computer to estimate a motion of a moving image and comprising a process of:
-
comparing a sum of absolute difference (SAD) of candidate motion vectors with a threshold value that is set based on a number of search points per macro block of a previous frame;
ending searching of the motion vectors of macro blocks when the SAD of each candidate motion vector is smaller than the threshold value;
determining one of the candidate motion vectors having a minimum SAD to be a motion vector; and
updating the threshold value with respect to a next frame according to the number of search points per macro block of a current frame when searching for the motion vector ends.
-
- 16. A computer readable storage controlling a computer to estimate a motion of a moving image and comprising a process of adjusting a number of search points per frame by adaptively updating a threshold value TH per frame to regularly maintain fixed a computational complexity of a video encoder irrespective of characteristics of the moving image.
-
21. A computer readable storage controlling a computer to estimate a motion of a moving image and comprising a process of:
-
comparing a threshold value, which is set according to a number of search points per macro block of a previous frame, with a sum of absolute difference (SAD) of a motion vector of the previous frame and outputting a compared result;
determining whether searching of a macro block ends according to the compared result and outputting a determination result;
estimating a motion estimation (ME) of the moving image based on the determination result;
calculating a computational complexity of the motion estimation (ME) to obtain a difference between the ME computational complexity and a target;
updating a target discrete cosine transform (DCT) complexity based on a difference between the ME computational complexity and the target;
setting the threshold value based on the updated target DCT complexity, in order to determine whether to skip performing the DCT on video data; and
determining whether to perform a DCT process on the video data of a current frame according to the set threshold value.
-
Specification