Low-Resolution Motion Estimation Pipeline for Video Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video encoding systems face inefficiencies in motion vector estimation, leading to inaccurate encoding of image data, particularly when using only the luma component, which can result in increased computational complexity and resource usage.
Innovation Solution
A low-resolution pipeline is introduced in parallel with the main encoding pipeline, utilizing low-resolution motion estimation to determine inter prediction modes and global motion statistics, which are then used to improve the accuracy and efficiency of motion vector estimation in the main pipeline, reducing the amount of data searched and enhancing operational efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If motion estimation is performed using full-resolution image data, then measurement precision of motion vectors is improved, but computational complexity and resource usage increase significantly
Solution Approach 1:
The patent divides the motion estimation process into two segments: low-resolution motion estimation performed on downsampled image data to obtain initial motion vector candidates, followed by refined motion estimation on full-resolution data using only those candidates. This segmentation reduces the search space and computational complexity while maintaining motion vector accuracy.
Solution Approach 2:
The patent performs preliminary motion estimation on low-resolution image data before conducting full-resolution motion estimation. This preliminary action generates a reduced set of candidate motion vectors that are then used to guide the more computationally intensive full-resolution search, significantly reducing overall computational complexity.
2Speed
If motion estimation is performed using only the luma component, then processing speed is improved, but measurement precision of motion vectors deteriorates
Solution Approach 1:
The patent applies different processing qualities to different components: luma component data is used for low-resolution motion estimation to maintain processing speed, while chroma component data is incorporated in the refined full-resolution motion estimation stage to improve motion vector accuracy when needed.
3Measurement precision
If multiple motion estimation searches are performed, then measurement precision of motion vectors is improved, but loss of time increases
Solution Approach 1:
The patent performs preliminary motion estimation on low-resolution image data to generate candidate motion vectors before conducting full-resolution motion estimation. This preliminary action reduces the number of searches needed in the computationally intensive full-resolution stage, thereby reducing total encoding time while maintaining accuracy.
Solution Approach 2:
The patent performs motion estimation on a subset of candidate vectors rather than exhaustively searching all possible motion vectors. By using low-resolution estimation to identify promising candidates and then refining only those candidates at full resolution, the system achieves good accuracy with partial searching, significantly reducing encoding time.
Data Source
AI summary
A video encoding system may include a low resolution pipeline configured to receive source image data corresponding with a luma coding block and a chroma coding block of a coding unit in an image. The low resolution pipeline includes a low resolution motion estimation block configured to generate a downscaled luma block and a downscaled chroma prediction block respectively corresponding to a luma prediction block in the luma coding block and a chroma prediction block in the chroma coding block. The low resolution motion estimation block also performs motion estimation searches based on the luma prediction block and the chroma prediction block to determine downscaled reference samples and motion vector candidates. The video encoding system also includes a main encoding pipeline configured to receive the source image data and to determine encoding parameters to be used to encode coding blocks based on the determined motion vector candidates.


