Video Codec Partition Storage Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video codec storage structures allocate space based on the worst-case scenario, leading to inefficient decoding due to interspersed used and unused partition entries, resulting in higher cache misses and slower data retrieval.
Innovation Solution
Organizing partition data in a storage structure by separating used and unused entries into distinct sections, with used entries packed into one section and unused entries in another, and utilizing locator lists for efficient data retrieval, as well as integrating header data and canonical reference frame indexes into unused bytes of partition entries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If storage space is allocated based on worst-case scenario (maximum partitions per macroblock), then storage capacity is sufficient for all cases, but storage efficiency deteriorates due to interspersed unused partition entries
Solution Approach 1:
The storage structure is segmented into two distinct sections: a first section for used partition entries and a second section for unused partition entries. This segmentation allows the system to maintain worst-case allocation capacity while improving access efficiency by grouping used entries contiguously, reducing cache misses during decoding operations.
Solution Approach 2:
Unused partition entries are extracted from the interspersed pattern and moved to a dedicated second section. This extraction eliminates the problem of cache pollution caused by unused entries mixed with used entries, allowing the decoding process to access only meaningful data in the first section without retrieving unnecessary unused entries.
2Device complexity
If used and unused partition entries are interspersed in storage, then storage allocation is simplified, but data retrieval speed deteriorates due to increased cache misses
Solution Approach 1:
The storage is segmented into used and unused sections, maintaining simple allocation rules (first section for used, second section for unused) while dramatically improving retrieval speed by ensuring that cache operations only fetch meaningful data from the first section, eliminating cache pollution from interspersed unused entries.
3Adaptability or versatility
If partition entries are allocated for maximum partitions (16 per macroblock), then all partition configurations can be accommodated, but storage waste increases due to unused entries
Solution Approach 1:
By segmenting storage into used and unused sections, the system maintains the ability to accommodate any partition configuration (adaptability) while preventing storage waste. The used section only contains active partition entries, and the unused section contains inactive entries, allowing the system to handle variable partition counts without allocating space for maximum partitions in every macroblock.
Solution Approach 2:
Unused partition entries are discarded from the active data stream and moved to a separate unused section. This allows the system to recover storage space by not retrieving or processing unused entries during decoding, while still maintaining the capacity to handle any partition configuration when needed.
Data Source
AI summary
Some embodiments facilitate encoding/decoding of a frame by organizing frame data in a storage structure in a novel manner. Specifically, in a portion of the storage structure allocated for a frame slice, used partition entries are stored in a first section of the allocated portion and unused partition entries are stored in a second section of the allocated portion, the first and second sections each comprising a continuous area of storage in the storage structure so that used partition entries are not interspersed with nonused partition entries. In some embodiments, additional data useful in the encoding or decoding of video data is determined and stored into the unused bytes of used partition entries (such as macroblock header data or canonical reference frame index data). In some embodiments, two or more identical partitions of a macroblock are coalesced into a single partition.


