Dynamic Memory Allocation for Concurrent Media Streams
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of energy
If dynamic memory allocation is implemented based on resource consumption indicators, then memory efficiency improves, but system complexity increases
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.
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.
3Productivity
If sharable memory is dynamically allocated to media streams, then concurrent processing efficiency improves, but risk of processing glitches increases without priority schemes
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.
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
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.