Motion Vector Encoding via Sub-Block Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video compression schemes face challenges in minimizing the bit rate for transmitting motion vectors while maintaining efficient encoding of video data, as motion vectors contribute significantly to the compressed data and increasing the bit rate for pixel coefficients is undesirable.

Innovation Solution

The method involves determining motion vectors and flags for sub-blocks of a macroblock through Sum of Absolute Differences (SAD) calculations, generating merged motion vectors, and encoding these merged vectors to reduce the overall bit rate, allowing for efficient encoding without significantly increasing the bit rate for pixel coefficients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If motion vectors are encoded for each sub-block of a macroblock, then encoding precision is improved, but bit rate increases significantly

Engineering Contradiction:
Improveencoding precisionVSAvoidbit rate
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent merges motion vectors of multiple sub-blocks within a macroblock by calculating the sum of absolute differences (SAD) for each sub-block and selecting a representative motion vector that best represents the group. This combining approach reduces the number of motion vectors that need to be transmitted, thereby reducing bit rate while maintaining acceptable encoding precision for the entire macroblock.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the macroblock into sub-blocks and processes them in groups rather than individually. By organizing sub-blocks into larger units for motion vector encoding, the system reduces the total number of motion vectors required while still capturing local motion variations within each segment, thus balancing precision and bit rate efficiency.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If motion estimation is performed for each block, then encoding accuracy is improved, but computational complexity increases

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

Solution Approach 1:

The patent combines motion estimation operations for multiple sub-blocks by using SAD calculations across grouped sub-blocks to determine representative motion vectors. This merging of computational operations reduces the total number of separate motion estimation processes required, thereby reducing computational complexity while maintaining encoding accuracy through the use of flags to indicate when full precision estimation is necessary.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies partial motion estimation by using simplified SAD-based motion vector determination for sub-blocks where full motion estimation would be computationally expensive. Flags are used to indicate when partial estimation is sufficient versus when full motion estimation is required, allowing the system to perform only the necessary level of computation for each case, thus reducing overall computational complexity while maintaining accuracy where needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9300977B2Methods for encoding motion vectors
Publication Date: 2016.03.29 AMLOGIC
  • US9300977B2 patent drawing
  • US9300977B2 patent drawing
  • US9300977B2 patent drawing

AI summary

A method for encoding motion vectors, comprises the steps of: determining motion vectors and flags for sub-blocks of a macroblock (“MB”) as a function of SAD calculations for the MB; generating one or more merged motion vectors for the sub-blocks of the MB as a function of the determined motion vectors and the determined flags; generating a merged macroblock motion vector for the MB as a function of the generated merged motion vectors and of the determined flags; and encoding the determined motion vectors as a function of the generated merged motion vectors and the generated merged macroblock motion vector.