Motion Refinement Engine Shared Memory Video Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video encoding methods, such as those based on the H.264 standard, face challenges in efficiently processing macroblocks due to complex neighbor data derivation requirements, leading to increased processing time and reduced encoding speed.
Innovation Solution
The proposed solution involves preprocessing and storing neighbor data for each macroblock, allowing for streamlined processing by re-allocating the burden of pinpointing neighbors to preceding macroblocks, enabling faster motion compensation and encoding by utilizing retrieved neighbor data for motion search, refinement, and intra-prediction modules.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If neighbor data is derived in real-time during macroblock processing, then processing accuracy is maintained, but processing time increases and encoding speed decreases
Solution Approach 1:
The patent applies preliminary action by pre-calculating and storing neighbor data for each macroblock before the actual motion compensation processing. The neighbor management module derives and stores neighbor macroblock addresses and motion vectors in advance, so that when motion search and refinement modules need this data, it is already available in memory, eliminating real-time derivation delays and improving encoding speed without sacrificing accuracy
Solution Approach 2:
The patent segments the encoding process into distinct functional modules: a neighbor management module that handles data preparation, and motion compensation modules that handle processing. This segmentation allows the neighbor data derivation to be performed once and reused across multiple macroblocks, reducing redundant computations and improving overall encoding efficiency
2Productivity
If neighbor data is pre-stored for all macroblocks, then encoding speed improves, but memory requirements increase
Solution Approach 1:
The patent applies local quality by storing neighbor data with the specific granularity and scope needed for each macroblock's processing requirements. Rather than storing all possible neighbor data for all macroblocks uniformly, the system stores only the relevant neighbor macroblock addresses and motion vectors that are actually needed for motion compensation, optimizing memory usage while maintaining encoding speed benefits
Solution Approach 2:
The patent uses copying by storing references (addresses) to neighbor macroblocks rather than duplicating entire macroblock data. The neighbor management module stores compact neighbor data structures containing only the necessary pointer information and motion vectors, allowing fast retrieval without proportionally increasing memory consumption
Data Source
AI summary
A motion compensation module can be used in a video encoder for encoding a video input signal that includes a sequence of images that are segmented into a plurality of macroblocks. The motion compensation module includes a shared memory and a motion search module that generates a motion search motion vector for a plurality of subblocks for a plurality of partitionings of a macroblock of a plurality of macroblocks and generates a selected group of the plurality of partitionings and stores the selected group of partitionings and the corresponding motion search motion vectors in the shared memory. A motion refinement module retrieves the selected group of partitionings and the corresponding motion search motion vectors from the shared memory, that generates a refined motion vector for the plurality of subblocks for the selected group of the plurality of partitionings of the macroblock of the plurality of macroblocks, based on the motion search motion vector for each of the plurality of subblocks of the macroblock of the plurality of macroblocks.


