Dynamic Memory Allocation for Concurrent Media Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management techniques are inefficient when processing multiple sets of sequenced digital data concurrently, particularly in media content rendering, as they often lead to resource glitches due to fixed memory allocations and varying resource consumption rates.

Innovation Solution

Dynamic memory allocation from a shared memory pool based on resource consumption indicators, prioritizing memory allocation to streams with higher resource demands and releasing resources as needed to ensure efficient concurrent processing of multiple media content streams.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If fixed memory allocations are used for processing multiple sets of sequenced digital data concurrently, then memory management is simple, but memory efficiency deteriorates due to varying resource consumption rates

Engineering Contradiction:
Improvememory management complexityVSAvoidmemory efficiency
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent implements dynamic memory allocation where the memory manager continuously monitors resource consumption indicators of active media streams and adjusts memory allocation in real-time. This allows the system to adapt memory distribution to actual needs rather than using static pre-allocation, resolving the contradiction between management simplicity and efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring resource consumption indicators and using this information to adjust memory allocation decisions. The memory manager receives feedback about actual memory usage patterns and modifies allocation accordingly, improving efficiency while maintaining manageable complexity through automated control loops.

Inventive Principle:
Principle #23Feedback

2Loss of energy

If dynamic memory allocation is implemented based on resource consumption indicators, then memory efficiency improves, but system complexity increases

Engineering Contradiction:
Improvememory efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The memory management system operates autonomously by automatically monitoring resource consumption indicators and performing allocation decisions without requiring manual intervention or complex external control mechanisms. This self-service approach improves efficiency while containing complexity within the automated management layer.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes memory allocation parameters dynamically based on monitored resource consumption indicators. By adjusting allocation parameters in response to actual usage patterns rather than maintaining fixed parameters, the system achieves improved efficiency with manageable complexity through parameter-based adaptation.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If sharable memory is dynamically allocated to media streams, then concurrent processing efficiency improves, but risk of processing glitches increases without priority schemes

Engineering Contradiction:
Improveconcurrent processing efficiencyVSAvoidprocessing stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements priority schemes that preemptively allocate memory to critical media streams before resource shortages occur. By establishing priority-based allocation rules in advance, the system ensures that high-priority streams receive necessary memory resources first, preventing processing glitches while maintaining efficient concurrent processing through structured resource distribution.

Inventive Principle:
Principle #10Preliminary action

4Quantity of substance

If available sharable memory is insufficient for immediate allocation, then resource constraints are respected, but processing delays occur without priority-based allocation

Engineering Contradiction:
Improvememory availabilityVSAvoidprocessing delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary priority assessment when memory requests are received, determining allocation order before actual allocation occurs. This preliminary action based on priority schemes ensures that when memory is insufficient, high-priority streams are allocated first, minimizing processing delays for critical operations while respecting overall resource constraints.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory manager continuously monitors and dynamically adjusts allocations to maintain uninterrupted processing of high-priority streams. By keeping the allocation process continuous and responsive rather than batch-based, the system reduces processing delays while adhering to available memory constraints through ongoing optimization.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentEP2160685B1Digital data management using shared memory pool
Publication Date: 2016.12.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2160685B1 patent drawingFigure 1
  • EP2160685B1 patent drawingFigure 2
  • EP2160685B1 patent drawingFigure 3

AI summary

Memory management techniques involve establishing a memory pool having an amount of sharable memory, and dynamically allocating the sharable memory to concurrently manage multiple sets of sequenced units of digital data. In an exemplary scenario, the sets of sequenced units of digital data are sets of time-ordered media samples forming clips of media content, and the techniques are applied when media samples from two or more clips are simultaneously presentable to a user as independently-controlled streams. Variable amounts of sharable memory are dynamically allocated for preparing upcoming media samples for presentation to the user. In one possible implementation, a ratio of average data rates of individual streams is calculated, and amounts of sharable memory are allocated to rendering each stream based on the ratio. Then, the sharable memory allocated to rendering individual streams is reserved as needed to prepare particular upcoming media samples for presentation to the user.