Video Codec Partition Storage Segmentation

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

VSEngineering 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

Engineering Contradiction:
Improvestorage capacity sufficiencyVSAvoiddecoding efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improvestorage allocation simplicityVSAvoiddata retrieval speed
Core Design Contradiction:
Device complexityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvepartition configuration coverageVSAvoidstorage waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS7852916B2Efficient use of storage in encoding and decoding video data streams
Publication Date: 2010.12.14 APPLE INC
  • US7852916B2 patent drawing
  • US7852916B2 patent drawing
  • US7852916B2 patent drawing

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.