Motion Vector Bank for Video Encoding Candidate Expansion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video compression techniques face inefficiencies in encoding motion vectors, particularly at lower data rates or higher compression ratios, due to limitations in utilizing distant blocks as candidate motion vectors, which restricts the number of available reference motion vector candidates.
Innovation Solution
The implementation of motion vector banks associated with different reference frame types allows for the storage and retrieval of motion vectors from coded blocks, enabling the identification of additional candidate motion vectors beyond the conventional scanning range, thereby expanding the candidate list when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If conventional video compression techniques are used with limited scanning range for motion vectors, then device complexity is reduced, but the number of available reference motion vector candidates is insufficient
Solution Approach 1:
The motion vector buffer is divided into multiple banks, where each bank stores motion vectors for a specific reference frame type. This segmentation allows the system to efficiently manage and retrieve motion vector candidates without increasing overall complexity, as each bank can be independently accessed based on the reference frame type being used.
Solution Approach 2:
Motion vectors are pre-stored in the appropriate banks during the encoding of previous frames. When encoding the current frame, the system can directly retrieve pre-stored motion vectors from the banks without performing additional complex searches, thereby increasing the number of available candidates without proportionally increasing computational complexity.
2Quantity of substance
If the scanning range for motion vectors is expanded to include distant blocks, then the number of candidate motion vectors increases, but the computational resources and processing time increase
Solution Approach 1:
Motion vectors from distant blocks are pre-computed and stored in the motion vector banks during previous frame encodings. This allows the current frame encoding to directly access these pre-computed vectors without performing additional motion estimation computations, thereby increasing candidate availability while maintaining encoding speed.
Solution Approach 2:
Instead of recomputing motion vectors for distant blocks, the system copies previously computed motion vectors from the motion vector banks into the candidate list. This copying operation is computationally inexpensive compared to motion estimation, allowing the system to expand the candidate pool without significant productivity loss.
3Productivity
If motion vectors from all reference frame types are utilized, then encoding efficiency is improved, but the complexity of managing multiple reference frame types increases
Solution Approach 1:
The system segments the motion vector storage by creating separate banks for each reference frame type. This segmentation simplifies management by allowing the encoder to select and access only the relevant bank based on the current reference frame type being used, reducing the complexity of managing all reference frame types simultaneously while still utilizing motion vectors from all types for improved encoding efficiency.
Data Source
AI summary
A method for inter-prediction includes coding a first block of a current frame using a first motion vector (MV) and a reference frame type; storing, in at least one MV buffer, the first MV and the reference frame type; identifying MV candidates for coding a current block using the reference frame type; responsive to a determination that a cardinality of the MV candidates is less than a maximum number of MV candidates identifying the first motion vector in the at least one MV buffer, and responsive to a determination that the first MV is not included in the MV candidates, adding the first MV as an MV candidate; and selecting one of the MV candidates for coding the current block.


