Adaptive Sub-Pixel Interpolation Filter Support for Video Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video coding techniques face challenges in achieving accurate predictive data during fractional pixel interpolation, which affects coding gains and compression efficiency.

Innovation Solution

The implementation of advanced filtering techniques during the inter-prediction stage of video encoding and decoding, where interpolation filters are applied to various combinations of full-pixel positions to calculate sub-pixel values, and the selection of support for interpolation filters is based on previously encoded frames or current encoding frames.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional interpolation filters are applied to fixed support positions, then the device complexity is low, but the measurement precision of sub-pixel values deteriorates

Engineering Contradiction:
Improvesub-pixel value accuracyVSAvoidinterpolation filter complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic selection of filter support positions based on motion vector characteristics. Different sub-pixel positions (e.g., 1/4-pel, 1/8-pel, 1/16-pel) use different support configurations selected according to the motion vector precision requirements, making the interpolation system adaptive rather than static

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies different interpolation filter support configurations to different sub-pixel positions within the same block. Each sub-pixel position can use a locally optimized support set tailored to its specific interpolation requirements, rather than using a uniform approach across all positions

Inventive Principle:
Principle #3Local quality

2Measurement precision

If adaptive filter support selection is implemented, then the measurement precision of sub-pixel values improves, but the device complexity increases

Engineering Contradiction:
Improvepredictive data accuracyVSAvoidfilter support selection mechanism
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent changes the parameters of the interpolation filter by selecting different support positions and configurations based on motion vector precision requirements. The system adapts filter parameters (support size, position, shape) to match the required sub-pixel precision level

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent pre-defines multiple filter support configurations that can be selected based on motion vector characteristics. This preliminary preparation of support options allows the decoder to quickly select the appropriate configuration without complex real-time calculations

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If multiple different support sets are used for different sub-pixel positions, then the measurement precision improves, but the loss of information increases due to more complex encoding requirements

Engineering Contradiction:
Improveinterpolation accuracyVSAvoidcoding efficiency
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent uses motion vector precision requirements as feedback to determine the appropriate filter support configuration. The motion vector analysis provides information about the expected sub-pixel precision needs, which feeds back into the selection of interpolation support settings

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10045046B2Adaptive support for interpolating values of sub-pixels for video coding
Publication Date: 2018.08.07 QUALCOMM INC

AI summary

This disclosure describes techniques for calculating values of sub-integer pixels applied by an encoder and a decoder to encode blocks of video data. In one example, a video encoder is configured to receive values for a full integer pixel positions of a reference sample, apply an interpolation filter to a first set of the values for the full integer pixel positions to calculate a value for a first sub-integer pixel of one of the full integer pixel positions, apply the interpolation filter to a second, different set of the values for the full integer pixel positions to calculate a value for a second, different sub-integer pixel of the one of the full integer pixel positions, encode a current block of pixels using a motion vector that points to one of the first sub-integer pixel and the second sub-integer pixel.