Affine Motion Vector Control in Video Encoders for Lower Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video coding technologies face challenges in efficiently processing the increasing amount of digital video data, particularly in managing motion vectors to optimize encoding and decoding processes.

Innovation Solution

The encoder and decoder systems utilize an affine mode to derive and adjust motion vectors by determining a base motion vector and a first motion vector difference, modifying the first motion vector when the difference exceeds a threshold, to ensure the variation of motion vectors falls within a predetermined range, thereby reducing memory access and improving coding efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If motion vector variations within video blocks are allowed to vary freely, then encoding flexibility is maintained, but memory access size increases and coding efficiency deteriorates

Engineering Contradiction:
Improvecoding efficiencyVSAvoidmemory access size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies parameter changes by modifying motion vectors based on gradient information. Specifically, motion vectors are adjusted according to the gradient magnitude and direction calculated from pixel differences, which changes the motion vector parameters to better match actual motion patterns. This reduces the variation range of motion vectors within blocks, thereby reducing memory access size while maintaining coding efficiency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamics by adaptively adjusting motion vectors based on local gradient characteristics. The motion compensation process dynamically modifies motion vectors according to the calculated gradients, allowing the system to adapt to varying motion patterns within different regions of the video block. This dynamic adjustment optimizes both memory access requirements and coding efficiency.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If motion vectors are modified based on gradient calculations, then prediction accuracy improves, but computational complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the video block into smaller regions and calculating gradients separately for each region. This allows the complex gradient-based motion vector modification to be applied locally rather than globally, reducing overall computational complexity while maintaining prediction accuracy in each segmented region.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial action by applying gradient-based motion vector modification selectively rather than to all motion vectors uniformly. The modification is applied based on gradient thresholds and local characteristics, performing the computationally intensive operation only where necessary to improve prediction accuracy, thus balancing accuracy gains with computational cost.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12634507B2Encoder, decoder, encoding method, and decoding method
Publication Date: 2026.05.19 PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
  • US12634507B2 patent drawing
  • US12634507B2 patent drawing
  • US12634507B2 patent drawing

AI summary

Provided is an encoder including circuitry and memory coupled to the circuitry. A prediction mode for a current block is an affine mode, and in operation, the circuitry: derives a base motion vector which is a motion vector to be used in a prediction process for the current block, and is a motion vector at an affine-mode control point in the current block; derives a first motion vector different from the base motion vector; derives a motion vector difference based on a difference between the base motion vector and the first motion vector; determines whether the motion vector difference is greater than a threshold; if so, modifies a second motion vector different from the base motion vector and the first motion vector, and if not, does not modify the second motion vector; and encodes the current block using the second motion vector modified or the second motion vector not modified.