Motion Vector Difference Entropy Coding With Shared 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 affecting coding complexity and accuracy, leading to suboptimal probability estimation and increased data transmission.
Innovation Solution
Implementing a decoder and encoder that use context-adaptive binary entropy coding with a truncated unary code and exponential Golomb code for motion vector differences, reducing the cutoff value to two bin positions and using a single context for both horizontal and vertical components, along with advanced motion vector prediction and merging concepts to reduce the number of motion vector differences.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a high number of contexts is provided for entropy coding of motion vector differences, then coding flexibility and adaptability are improved, but coding complexity increases and probability estimation accuracy deteriorates
Solution Approach 1:
The patent segments the motion vector difference domain into two intervals: a first interval for small differences (−3 to 3) coded with truncated unary code, and a second interval for larger differences coded with exponential Golomb code. This segmentation allows different coding strategies to be applied to different ranges, improving overall efficiency while maintaining manageable complexity.
Solution Approach 2:
The patent applies different coding methods to different parts of the motion vector difference range. The truncated unary code with one shared context is used for small differences where high probability adaptation is needed, while exponential Golomb code is used for larger differences. This local optimization resolves the contradiction by providing adaptability where needed without uniformly increasing complexity.
2Measurement precision
If a high number of contexts is provided for entropy coding, then probability estimation accuracy may improve, but the adaptation process becomes less effective when contexts are visited too rarely
Solution Approach 1:
The patent merges the context modeling for horizontal and vertical motion vector difference components into a single shared context for the truncated unary code. This merging ensures sufficient visit frequency to the context for effective probability adaptation, while still providing accurate estimation by combining statistics from both components. This resolves the contradiction by ensuring adequate sample size for adaptation while maintaining estimation accuracy.
3Productivity
If the cutoff value for binarization is set high, then more motion vector differences can be coded with exponential Golomb code, but the truncated unary code portion becomes less effective
Solution Approach 1:
The patent optimizes the cutoff value parameter to 3, dividing the motion vector difference range into two intervals: (−3 to 3) for truncated unary code and values beyond this range for exponential Golomb code. This parameter optimization balances the effectiveness of both coding methods, ensuring the truncated unary code handles small differences with high precision while exponential Golomb code efficiently handles larger values, resolving the contradiction between precision and throughput.
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.


