Buffer Queue Manager for Interleaved Media Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Inefficient memory access techniques in multimedia rendering applications lead to significant impairments, particularly due to the large size of multimedia files and bottlenecks caused by separate reading of media tracks, which can slow down processing and increase redundant data access.

Innovation Solution

Implementing a consumption-driven pipeline process that groups reads of multiple media tracks together, utilizing additional intermediate buffer queues to identify interleaved media data for simultaneous retrieval, thereby optimizing memory access and reducing redundant data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If separate reading of media tracks is performed, then individual track processing is simplified, but processing time increases and redundant data access occurs

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple separate memory read operations for different media tracks into a single unified read operation. The buffer queue manager identifies interleaved data from multiple tracks that are stored contiguously in memory and groups them into one read request, thereby reducing the total number of read operations and eliminating redundant data access while maintaining efficient processing of individual tracks

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If separate reading of media tracks is performed, then track-specific processing is optimized, but memory access bottlenecks increase

Engineering Contradiction:
Improverendering performanceVSAvoidmemory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a buffer queue manager as an intermediary component between the media file and the processing elements. This manager coordinates memory access by identifying interleaved data patterns and batching read operations, thereby simplifying the memory access interface while maintaining optimized track-specific processing through the buffer queue mechanism

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If multiple read operations are performed for different tracks, then data accuracy is ensured, but redundant data access occurs

Engineering Contradiction:
Improvedata accuracyVSAvoidredundant data access
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent performs preliminary analysis of the media file structure to identify interleaved data patterns before executing read operations. The buffer queue manager pre-processes the data layout information to determine which data from multiple tracks can be read together in a single operation, ensuring that no data is missed while eliminating redundant access to the same memory locations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11055217B2Using additional intermediate buffer queues to identify interleaved media data to be read together
Publication Date: 2021.07.06 APPLE INC
  • US11055217B2 patent drawing
  • US11055217B2 patent drawing
  • US11055217B2 patent drawing

AI summary

Techniques are disclosed for identifying multiple sections from one or more tracks of a media file and reading them together in a consumption-driven pipeline process. A render pipeline may comprise a sample generator, a sample buffer, and a destination buffer. Multiple render pipelines may be used for parsing multiple tracks of the media file. An I/O manager may determine that a destination buffer requires new data. The I/O manager may schedule a memory read for a data element from the sample buffer corresponding to the destination buffer and may determine if any of the sample buffers have data elements with memory locations close to the scheduled read. If so, the I/O manager may also schedule those memory locations to be read. After reading, the filled data elements corresponding to the read memory may then be sent to their corresponding destination buffers to be consumed and added to their corresponding tracks.