Motion Vector Difference Entropy Coding With Fewer Contexts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video codecs face inefficiencies in entropy coding of motion vector differences due to high context numbers, which lead to ineffective probability adaptation and increased coding complexity, while low context numbers fail to accurately encode bins with varying symbol statistics.
Innovation Solution
Implementing a decoder and encoder that use context-adaptive binary entropy coding with a truncated unary code and Exp-Golomb code for motion vector differences, reducing the cutoff value to two bin positions, using a single context for both horizontal and vertical components, and employing advanced motion vector prediction methods to reduce the number of motion vector differences.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a high number of contexts is provided for entropy coding of motion vector differences, then the coding can accommodate varying symbol statistics, but the coding complexity increases and probability adaptation becomes ineffective
Solution Approach 1:
The patent segments the domain of motion vector differences into two intervals: a first interval below a cutoff value where truncated unary code is used, and a second interval at and above the cutoff value where exponential Golomb code is used. This segmentation allows different coding strategies to be applied to different ranges, reducing the need for excessive contexts while maintaining adaptability to varying symbol statistics.
Solution Approach 2:
The patent changes the parameter of cutoff value to a specific low value (two) and uses exactly one context per bin position for the truncated unary code portion. This parameter change reduces the number of contexts from potentially many to just one for the unary portion, while the exponential Golomb portion uses a constant equi-probability model, effectively resolving the contradiction between adaptation accuracy and complexity.
2Device complexity
If a low number of contexts is used for entropy coding, then the coding complexity is reduced, but bins with highly varying symbol statistics cannot be accurately encoded
Solution Approach 1:
The patent divides the coding approach into two segments: truncated unary code for small values (below cutoff) with one context, and exponential Golomb code for larger values (at and above cutoff) with constant equi-probability modeling. This segmentation ensures that complexity is reduced while still capturing the varying statistics through the combination of methods.
Solution Approach 2:
The patent uses the same single context for both horizontal and vertical components of motion vector differences. This copying of the context model across components reduces complexity while maintaining sufficient accuracy, as both components benefit from the same adaptive probability estimation.
3Measurement precision
If multiple contexts are provided for a certain bin, then symbol statistics can be better captured, but the selection among contexts necessitates inspection of neighboring bins increasing decoding complexity
Solution Approach 1:
The patent extracts the context selection complexity by using exactly one context per bin position for the truncated unary code. This eliminates the need for complex context selection logic that would require inspecting neighboring bins, while the exponential Golomb portion uses a simple constant equi-probability model that also requires no context selection.
Data Source
AI summary
An entropy decoder is configured to, for horizontal and vertical components of motion vector differences, derive a truncated unary code from the data stream using context-adaptive binary entropy decoding with exactly one context per bin position of the truncated unary code, which is common for horizontal and vertical components of the motion vector differences, and an Exp-Golomb code using a constant equi-probability bypass mode to obtain the binarizations of the motion vector differences. A desymbolizer is configured to debinarize the binarizations of the motion vector difference syntax elements to obtain integer values of the horizontal and vertical components of the motion vector differences. A reconstructor is configured to reconstruct a video based on the integer values of the horizontal and vertical components of the motion vector differences.


