Shared memory pool allocation during media rendering
First Claim
1. A computer-readable storage medium encoded with computer-executable instructions which, when executed by a processor, perform a method for managing digital data using a memory pool having an amount of sharable memory, the digital data comprising a plurality of sets of sequenced units of digital data, the method comprising:
- identifying a first set of units of digital data having a first sequence;
identifying a second set of units of digital data having a second sequence;
when a portion of the first set is to be processed contemporaneously with a portion of the second set,ascertaining a first resource consumption indicator associated with processing some of the units of digital data in the first sequence;
ascertaining a second resource consumption indicator associated with processing some of the units of digital data in the second sequence;
calculating a ratio of the first resource consumption indicator with respect to the second resource consumption indicator; and
in accordance with the ratio, dynamically allocating the amount of sharable memory in the memory pool between both acts associated with processing the first set and acts associated with processing the second set.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
14 Citations
20 Claims
-
1. A computer-readable storage medium encoded with computer-executable instructions which, when executed by a processor, perform a method for managing digital data using a memory pool having an amount of sharable memory, the digital data comprising a plurality of sets of sequenced units of digital data, the method comprising:
-
identifying a first set of units of digital data having a first sequence; identifying a second set of units of digital data having a second sequence; when a portion of the first set is to be processed contemporaneously with a portion of the second set, ascertaining a first resource consumption indicator associated with processing some of the units of digital data in the first sequence; ascertaining a second resource consumption indicator associated with processing some of the units of digital data in the second sequence; calculating a ratio of the first resource consumption indicator with respect to the second resource consumption indicator; and in accordance with the ratio, dynamically allocating the amount of sharable memory in the memory pool between both acts associated with processing the first set and acts associated with processing the second set. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium encoded with computer-executable instructions which, when executed by a processor, perform a method for rendering media content using a sharable memory pool, the media content arranged into a plurality of sets of sequenced media samples, the method comprising:
-
identifying a first set of media samples receivable from a first media source; identifying a second set of media samples receivable from a second media source; calculating a first data rate associated with rendering the first set of media samples; calculating a second data rate associated with rendering the second set of media samples; comparing the first data rate to the second data rate; and based on the step of comparing, dynamically allocating a first amount of memory from the sharable memory pool for rendering the first set of media samples, and a second amount of memory from the sharable memory pool for contemporaneously rendering the second set of media samples. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for rendering media content arranged into a plurality of sets of sequenced media samples, the system comprising:
-
a media content manager operable to arrange for rendering of a first set of media samples from a first media source and to arrange for rendering of a second set of media samples from a second media source; a presentation manager configured for communication with the media content manager, the presentation manager operable to identify when a first media sample from the first set is to be rendered contemporaneously with a second media sample from the second set; and a memory allocation manager responsive to the media content manager and the presentation manager, the memory allocation manager managing a sharable memory pool and operable to ascertain a first data rate associated with rendering the first set of media samples; ascertain a second data rate associated with rendering the second set of media samples; compare the first data rate to the second data rate; and based on the comparison, dynamically allocate a first amount of memory from the sharable memory pool for rendering the first media sample from the first set of media samples and a second amount of memory from the sharable memory pool for contemporaneously rendering the second media sample from the second set of media samples. - View Dependent Claims (19, 20)
-
Specification