Adaptive Motion Vector Resolution in Video Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video coding techniques, such as those in ITU-T H.264, face inefficiencies in coding motion vector difference values, particularly in achieving sub-pixel precision and reducing bitrate complexity, as they separately code x- and y-components of motion vectors.

Innovation Solution

The proposed solution involves jointly coding the x- and y-components of motion vector difference values, interleaving information about their magnitudes and signs, and signaling precision, allowing for adaptive sub-pixel precision (quarter-pixel or eighth-pixel) to reduce the complexity of the video coding bitstream.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If motion vector difference values are coded separately for x- and y-components, then the coding process is simple and straightforward, but the bitrate increases and coding efficiency decreases

Engineering Contradiction:
Improvecoding process complexityVSAvoidbitrate
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent merges the coding of x- and y-components of motion vector difference values into a single unified coding process. Instead of separately coding each component, the invention codes both components simultaneously using a single syntax element that indicates whether each component is zero, followed by joint coding of non-zero components. This merging reduces the total number of bits required while maintaining the ability to represent both components accurately.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of manufacture

If separate coding of motion vector components is used, then implementation is straightforward, but entropy coding throughput is reduced

Engineering Contradiction:
Improveimplementation easeVSAvoidentropy coding throughput
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The invention combines the entropy coding of x- and y-components into a single operation. The syntax element structure allows the entropy coder to process both components in one pass, improving throughput by eliminating the need for separate coding operations. This unified approach maintains implementation clarity while significantly improving coding speed and efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If sub-pixel precision is implemented, then motion compensation accuracy improves, but the complexity of the bitstream increases

Engineering Contradiction:
Improvemotion vector precisionVSAvoidbitstream complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by differentiating the coding approach based on whether motion vector components are zero or non-zero. The syntax element first indicates whether each component is zero, then only codes non-zero components with their precise values. This selective coding maintains sub-pixel precision for necessary components while avoiding unnecessary complexity for zero components, achieving precision where needed without overall bitstream bloat.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10536701B2Video coding using adaptive motion vector resolution
Publication Date: 2020.01.14 QUALCOMM INC
  • US10536701B2 patent drawing
  • US10536701B2 patent drawing
  • US10536701B2 patent drawing

AI summary

In one example, a device for coding video data includes a video coder configured to configured to code information representative of whether an absolute value of an x-component of a motion vector difference value for a current block of video data is greater than zero, code information representative of whether an absolute value of a y-component of the motion vector difference value is greater than zero, when the absolute value of the x-component is greater than zero, code information representative of the absolute value of the x-component, when the absolute value of the y-component is greater than zero, code information representative of the absolute value of the y-component, when the absolute value of the x-component is greater than zero, code a sign of the x-component, and when the absolute value of the y-component is greater than zero, code a sign of the y-component.