Motion Refinement Engine Preprocessing Neighbor Data for Video Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video encoding methods, such as those adhering to the H.264 standard, face challenges in achieving accurate motion compensation and efficient encoding due to complexities in neighbor data derivation and processing, particularly with multiple partition types and adaptive frame and field coding, which hinders streamlined processing and increased speed.
Innovation Solution
The implementation of a motion refinement engine with shared memory that preprocesses and stores neighbor data for each macroblock, allowing for efficient retrieval and use during encoding, enabling simultaneous motion search and refinement operations across macroblocks, and supporting various compression standards like H.264, MPEG-4, and VC-1.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional video encoding methods are used with multiple partition types and adaptive frame and field coding, then encoding accuracy and adaptability are improved, but processing complexity and speed are reduced
Solution Approach 1:
The patent pre-calculates and stores neighbor data for all macroblocks in a reference frame before the actual encoding process. This preliminary action eliminates the need for complex real-time neighbor derivation during encoding, reducing processing complexity while maintaining encoding accuracy across multiple partition types and adaptive coding modes.
Solution Approach 2:
The patent divides the video frame into macroblocks and processes them independently, with each macroblock having its neighbor data pre-calculated and stored separately. This segmentation allows the encoding system to handle multiple partition types (8x8, 16x16, 4x4) and adaptive frame/field coding without increasing overall processing complexity, as each segment can be processed using the same pre-stored neighbor data.
2Adaptability or versatility
If neighbor data is derived and processed in real-time during encoding, then encoding flexibility is maintained, but processing speed is reduced
Solution Approach 1:
The patent performs neighbor data derivation as a preliminary action before encoding. By pre-calculating and storing neighbor data for all macroblocks in the reference frame, the system maintains encoding flexibility for various partition types while significantly improving processing speed during the actual encoding phase, as the pre-stored data eliminates real-time calculation requirements.
3Adaptability or versatility
If multiple partition types and adaptive coding modes are supported, then encoding accuracy is improved, but neighbor data derivation complexity increases
Solution Approach 1:
The patent segments the video frame into macroblocks and pre-calculates neighbor data for each segment independently. This segmentation approach allows the system to support multiple partition types (8x8, 16x16, 4x4) and adaptive frame/field coding modes without increasing neighbor data derivation complexity, as each segment uses the same pre-established derivation methodology.
Solution Approach 2:
The patent performs neighbor data derivation as a preliminary action that is independent of the specific partition type or coding mode. By pre-calculating neighbor data for all macroblocks before encoding, the system maintains encoding accuracy across multiple partition types and adaptive modes while avoiding the complexity of mode-dependent neighbor derivation during encoding.
4Device complexity
If conventional encoding processing is performed sequentially, then processing simplicity is maintained, but encoding time increases
Solution Approach 1:
The patent performs neighbor data derivation as a preliminary action that can be executed in parallel with other encoding operations. By pre-calculating and storing neighbor data before the main encoding loop, the system maintains processing simplicity while significantly reducing encoding time, as the pre-stored data eliminates time-consuming real-time calculations during encoding.
Solution Approach 2:
The patent enables continuous encoding processing by having pre-stored neighbor data available throughout the encoding process. This continuity allows the encoding system to operate at full speed without interruption for neighbor data derivation, maintaining processing simplicity while reducing overall encoding time through the continuous availability of required data.
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 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 based on a sum of accumulated differences (SAD) cost. A motion refinement module, when enabled, generates a refined motion vector for the plurality of subblocks for 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 and based on a sum of accumulated transform differences (SATD) cost. A mode decision module operates on either SAD costs or SATD costs, based on whether the refinement module is enabled or disabled.


