Motion Refinement Engine Preprocessing Neighbor Data for Video Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveencoding accuracyVSAvoidprocessing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveencoding flexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple partition types and adaptive coding modes are supported, then encoding accuracy is improved, but neighbor data derivation complexity increases

Engineering Contradiction:
Improveencoding accuracyVSAvoidneighbor data derivation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If conventional encoding processing is performed sequentially, then processing simplicity is maintained, but encoding time increases

Engineering Contradiction:
Improveprocessing simplicityVSAvoidencoding time
Core Design Contradiction:
Device complexityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8218636B2Motion refinement engine with a plurality of cost calculation methods for use in video encoding and methods for use therewith
Publication Date: 2012.07.10 VIXS SYSTEMS INC
  • US8218636B2 patent drawing
  • US8218636B2 patent drawing
  • US8218636B2 patent drawing

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.