Motion Vector Data Storage for Video Decoding Bandwidth Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing video coding and decoding techniques, such as the HEVC standard, face challenges in efficiently reading and processing motion vector data due to large data overhead, leading to bandwidth waste and increased hardware complexity, especially in high-resolution videos like 4K.
Innovation Solution
Storing decoded video data in a method that arranges motion vector data by column and utilizing a reference frame queue table in Static Random Access Memory (SRAM) to reduce data read from Dynamic Random Access Memory (DRAM), allowing only relevant motion vector data to be accessed, thereby improving reading speed and reducing bandwidth occupation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If motion vector data is stored in traditional formats with full precision coordinates, then measurement precision is maintained, but data overhead increases tremendously
Solution Approach 1:
The motion vector data is segmented into two parts: a base coordinate value and an offset value. The base value contains the most significant bits (MSBs) representing the general position, while the offset contains the least significant bits (LSBs) representing the precise adjustment. This segmentation allows selective storage of precision information only where needed, reducing overall data overhead while maintaining measurement precision.
Solution Approach 2:
Different parts of the motion vector data are stored with different precision levels. The base coordinate values are stored with lower precision (fewer bits), while the offset values are stored with higher precision (more bits) to compensate. This local quality approach ensures that the combined representation maintains the required measurement precision while minimizing total data quantity through differential precision storage.
2Ease of operation
If all motion vector data is read from DRAM for decoding, then data accessibility is improved, but bandwidth occupation increases and reading speed decreases
Solution Approach 1:
The base coordinate values, which contain the most significant information about motion vector positions, are extracted and stored in a buffer memory (SRAM or register) separate from the main DRAM storage. Only the offset values, which contain the less significant adjustment information, remain in DRAM. This extraction reduces the amount of data that must be read from DRAM, thereby increasing reading speed and reducing bandwidth occupation while maintaining data accessibility through the buffer memory.
Solution Approach 2:
The base coordinate values are preliminarily loaded into buffer memory before the actual decoding process begins. This preliminary action ensures that the most frequently accessed and most significant data is already in fast memory, ready for immediate use during decoding operations, thereby improving reading speed and reducing the burden on DRAM bandwidth without compromising data accessibility.
3Measurement precision
If full precision motion vector data is processed during decoding, then decoding accuracy is maintained, but hardware complexity increases
Solution Approach 1:
The processing architecture is segmented into two stages: first, the base coordinate values are retrieved from buffer memory and used to establish the general motion vector position; second, the offset values are retrieved from DRAM and applied to adjust the base position to the final precise value. This segmentation of processing steps mirrors the data structure segmentation, allowing the hardware to process data in a more manageable and less complex manner while maintaining decoding accuracy through the combination of both parts.
4Stability of the object's composition
If reference frame queues are resequenced for each decoded frame, then inter-frame correlation is maintained, but computation time increases
Solution Approach 1:
The reference frame queues are resequenced in advance, before the actual decoding of each frame begins. This preliminary resequencing ensures that the reference frames are already in the correct order and position when needed for decoding operations. By performing this computation-intensive task beforehand, the system maintains the necessary inter-frame correlation for accurate decoding while minimizing the computation time required during the actual real-time decoding process.
Data Source
Figure 1~3
Figure 4~5
Figure 6
AI summary
The present invention provides a method of storing decoded video data and a method of computing a motion vector. The method of storing decoded video data comprises: setting a reference frame queue table in a static random access memory and storing basic information of a plurality of reference frames in the reference frame queue table, wherein each unit of the reference frame queue table stores corresponding index information of one reference frame in a decoding buffer; storing a plurality of groups of frame buffering information corresponding to the index information in the decoding buffer, wherein each group of frame buffering information includes frame display order data and motion vector storage address information; and storing motion vector data of each reference frame in a dynamic random access memory, wherein the motion vector storage address information is address information of motion vector data of a coding tree unit of a corresponding block of the reference frame stored in the dynamic random access memory.