Motion Vector Data Storage for Video Decoding Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvemotion vector data precisionVSAvoiddata overhead
Core Design Contradiction:
Measurement precisionVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvedata accessibilityVSAvoidreading speed
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If full precision motion vector data is processed during decoding, then decoding accuracy is maintained, but hardware complexity increases

Engineering Contradiction:
Improvedecoding accuracyVSAvoidhardware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveinter-frame correlationVSAvoidcomputation time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3285488B1Video decoding data storage method and motion vector data computation method
Publication Date: 2021.03.03 ALLWINNER TECH CO LTD
  • EP3285488B1 patent drawingFigure 1~3
  • EP3285488B1 patent drawingFigure 4~5
  • EP3285488B1 patent drawingFigure 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.