Управление цифровыми данными с помощью пула совместно используемой памяти

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в эффективном динамическом выделении совместно используемой памяти при одновременной обработке данных. Система для рендеринга мультимедийного содержимого, скомпонованного во множество наборов упорядоченных мультимедийных выборок, содержащая: диспетчер мультимедийного содержимого, выполненный с возможностью осуществлять рендеринг первого набора мультимедийных выборок из первого источника мультимедиа и осуществлять рендеринг второго набора мультимедийных выборок из второго источника мультимедиа; диспетчер представления, выполненный с возможностью связи с диспетчером мультимедийного содержимого и возможностью идентифицировать, когда первая мультимедийная выборка из первого набора должна подготавливаться посредством рендеринга одновременно со второй мультимедийной выборкой из второго набора; и диспетчер распределения памяти, реагирующий на действия диспетчера мультимедийного содержимого и диспетчера представления, причем диспетчер распределения памяти управляет пулом совместно используемой памяти. 3 н. и 17 з.п. ф-лы, 7 ил.

Реферат

Уровень техники

Эффективная обработка цифровых данных зачастую зависит от эффективного использования ограниченных вычислительных ресурсов, таких как память. Термин "память" может охватывать любой тип машиночитаемого носителя хранения данных, хотя память, используемая посредством компьютеров при обработке цифровых данных, зачастую является оперативным запоминающим устройством. Зачастую, фиксированные объемы памяти для обработки цифровых данных выделяются заранее. Тем не менее, иногда такие фиксированные распределения памяти являются неэффективными. Один случай, когда может возникать неэффективность, заключается в том, что несколько наборов упорядоченных блоков цифровых данных должны обрабатываться одновременно.

Желательно повышать эффективность использования памяти для обработки упорядоченных цифровых данных, в общем, и для рендеринга цифрового мультимедийного содержимого, в частности. Цифровое мультимедийное содержимое состоит из упорядоченных выборок видео-, аудиоизображений, текста и/или графики. Когда проигрыватели мультимедийного содержимого представляют такие упорядоченные выборки пользователям, они упоминаются как потоки мультимедийного содержимого.

Современные проигрыватели мультимедийного содержимого выполнены с возможностью одновременно подготавливать посредством рендеринга несколько независимо управляемых потоков мультимедийного содержимого (например, основной фильм наряду с таким материалами, как комментарий режиссера, биографии актеров или реклама). Такие проигрыватели мультимедийного содержимого также могут допускать рендеринг выбираемых пользователем видимых или звуковых объектов (например, различные меню, игры, спецэффекты или другие варианты) одновременно с одним или более потоков мультимедийного содержимого. Рендеринг мультимедийного содержимого - в частности, одновременно воспроизводимых независимо управляемых потоков мультимедийного содержимого - может потреблять значительные объемы ограниченных ресурсов проигрывателя, в частности, памяти.

Сущность изобретения

Технологии управления памятью, поясненные в данном документе, заключают в себе установление пула памяти, имеющего объем совместно используемой памяти, и динамическое выделение совместно используемой памяти, чтобы одновременно управлять несколькими наборами упорядоченных блоков цифровых данных. В примерном сценарии, наборы упорядоченных блоков цифровых данных являются наборами упорядоченных по времени мультимедийных выборок, таких как биты, кадры, группы изображений, блоки видеообъектов и т.п. В контексте мультимедийного содержимого технологии, поясненные в данном документе, в общем, применяются, когда мультимедийные выборки из двух или более наборов одновременно представляются пользователю как независимо управляемые потоки мультимедийного содержимого. Тем не менее, следует принимать во внимание, что другие сценарии возможны, и что технологии, поясненные в данном документе, применимы к любым одновременно обрабатываемым упорядоченным блокам цифровых данных.

Конкретные технологии управления памятью заключают в себе выявление одного индикатора потребления ресурсов, ассоциированного с обработкой некоторых из блоков цифровых данных, в первом наборе упорядоченных блоков цифровых данных, и выявление другого индикатора потребления ресурсов, ассоциированного с обработкой некоторых из блоков цифровых данных, во втором наборе упорядоченных блоков цифровых данных. Потребление ресурсов может варьироваться на основе различных факторов, в том числе, но не только, факторов, ассоциированных с цифровыми данными, вычислительной системой, используемой для того, чтобы обрабатывать цифровые данные и пользовательский ввод. После выявления, индикаторы потребления ресурсов сравниваются, и совместно используемая память динамически выделяется на основе сравнения.

Иногда, доступная совместно используемая память является недостаточной для непосредственной реализации требуемого распределения памяти. В таком случае доступная совместно используемая память может выделяться в соответствии со схемой приоритетов, чтобы не допускать сбоев обработки. В одном сценарии, более высокий приоритет предоставляется назначению совместно используемой памяти для действий, ассоциированных с обработкой набора(ов) блоков цифровых данных, имеющих наибольшее потребление ресурсов. Набор(ы) блоков цифровых данных, имеющих меньшее потребление ресурсов, могут требоваться для того, чтобы многократно повторно запрашивать ресурсы. Альтернативно, такие наборы могут быть назначенными ждущими запросами на выделение памяти, которым предоставляется приоритет по мере того, как ресурсы совместно используемой памяти становятся доступными. Таким образом, можно обеспечивать эффективное динамическое выделение совместно используемой памяти, когда несколько наборов упорядоченных блоков цифровых данных должны обрабатываться одновременно.

В случае потоков мультимедийного содержимого, индикаторы потребления ресурсов - это скорости передачи данных (например, средние скорости передачи данных), ассоциированные с рендерингом отдельных потоков мультимедийного содержимого. Ресурсы памяти, требуемые для того, чтобы обрабатывать потоки мультимедийного содержимого, имеющие определенные скорости передачи данных (и обрабатывать конкретные мультимедийные выборки в рамках таких потоков), могут варьироваться на основе различных факторов, в том числе, но не только, факторов, ассоциированных с самими мультимедийными выборками (например, источников/местоположений мультимедийных выборок, размеров мультимедийных выборок, параметров кодирования и/или декодирования и параметров шифрования, в числе других), проигрывателем мультимедийного содержимого (например, архитектурой проигрывателя или динамическими нагрузками по обработке, в числе других) или пользовательским вводом (например, выбираемыми пользователем форматами мультимедийного содержимого или выбираемыми пользователем скоростями воспроизведения, к примеру, ускоренная перемотка вперед, замедленное воспроизведение вперед, ускоренная перемотка назад или замедленное воспроизведение назад). Отношение скоростей передачи данных отдельных потоков мультимедийного содержимого вычисляется, и совместно используемая память динамически выделяется на основе сравнения. Когда доступная совместно используемая память является недостаточной для непосредственной реализации требуемого распределения памяти, одна возможная схема приоритетов обеспечивает, что совместно используемая память сначала назначается действиям, ассоциированным с обработкой потока мультимедийного содержимого, который в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти.

Эта сущность предоставляется для того, чтобы предоставлять выбор принципов в упрощенной форме. Принципы дополнительно описываются в разделе подробного описания. Возможны элементы или этапы, отличные от описанных в этой сущности, и нет обязательно требуемого элемента или этапа. Эта сущность не имеет намерение идентифицировать ключевые или важнейшие признаки заявляемого предмета изобретения, а также не имеет намерение использоваться в качестве помощи при определении объема заявляемого предмета изобретения. Кроме того, заявленный предмет изобретения не ограничен реализациями, которые разрешают какие-либо или все недостатки, отмеченные в любой части данного документа.

Краткое описание чертежей

Фиг. 1 является упрощенной функциональной блок-схемой примерного проигрывателя мультимедийного содержимого.

Фиг. 2 является упрощенной функциональной блок-схемой, подробнее иллюстрирующей аспекты блока диспетчера мультимедийного содержимого по фиг. 1.

Фиг. 3 является схематическим представлением, иллюстрирующим временную шкалу мультимедиа, ассоциированную с набором мультимедийных выборок, подходящих для использования в связи с определенными аспектами проигрывателя мультимедийного содержимого, показанного на фиг. 1, и/или способом, показанным в блок-схеме последовательности операций способа по фиг. 4.

Фиг. 4 является блок-схемой последовательности операций способа для параллельного управления некоторым числом наборов цифровых данных с применением совместно используемой памяти, такой как совместно используемая память, показанная на фиг. 2.

Фиг. 5 является упрощенной функциональной блок-схемой примерной конфигурации вычислительного модуля.

Фиг. 6 является блок-схемой примерной конфигурации операционного окружения, в котором все или часть из проигрывателя мультимедийного содержимого, показанного на фиг. 1, способа, показанного на фиг. 4, и/или вычислительного модуля, показанного на фиг. 5, может реализовываться или использоваться.

Фиг. 7 является упрощенной функциональной блок-схемой клиент-серверной архитектуры, в которой аспекты операционного окружения, показанного на фиг. 6, могут реализовываться или использоваться.

Подробное описание изобретения

Технологии управления памятью, поясненные в данном документе, динамически выделяют совместно используемую память из пула памяти для параллельной обработки нескольких наборов упорядоченных блоков цифровых данных. В целях примера, а не ограничения, конкретно поясняется параллельный рендеринг нескольких потоков мультимедийного содержимого, и следует принимать во внимание, что технологии, поясненные в данном документе, применимы к любым одновременно обрабатываемым упорядоченным блокам цифровых данных.

Определенные проигрыватели мультимедийного содержимого могут подготавливать посредством рендеринга два независимо управляемых потока мультимедийного содержимого сразу. DVD-проигрыватели высокой четкости, например, выполнены с возможностью одновременно подготавливать посредством рендеринга основной поток мультимедийного содержимого (такой как фильм) и вторичный поток мультимедийного содержимого (например, специальный материал, такой как комментарий режиссера, биография автора или реклама). Случайный пользовательский ввод определяет, должны ли предоставляться и/или в какой момент времени представляются отдельные потоки мультимедийного содержимого.

Чтобы не допускать воспринимаемых пользователем сбоев в представлении мультимедийного содержимого, рендеринг мультимедийного содержимого, в общем, заключает в себе идентификацию и подготовку к представлению одной или более последующих мультимедийных выборок, которые должны представляться пользователю, до диспетчеризованного времени воспроизведения мультимедийной выборки(ок). Ресурсы памяти, требуемые для того, чтобы подготавливать конкретную мультимедийную выборку к представлению, не всегда являются постоянными от выборки к выборке. Некоторые факторы, которые затрагивают требуемые ресурсы памяти, ассоциированы с самими мультимедийными выборками (в том числе, но не только, такие факторы, как размер мультимедийной выборки, источник/местоположение мультимедийной выборки, параметры кодирования или декодирования и параметры шифрования), но также могут быть ассоциированы с проигрывателем мультимедийного содержимого (например, архитектура проигрывателя или динамические нагрузки по обработке, в числе других) или пользовательским вводом (например, выбираемые пользователем форматы мультимедийного содержимого или выбираемые пользователем скорости воспроизведения).

В применении к рендерингу мультимедийного содержимого, конкретные технологии управления памятью, поясненные в данном документе, заключают в себе динамическое выделение переменных объемов совместно используемой памяти для подготовки конкретных последующих мультимедийных выборок для представления. Как только конкретные мультимедийные выборки представлены пользователю, выделенные объемы совместно используемой памяти могут высвобождаться и становиться доступными для повторного выделения.

Когда один поток мультимедийного содержимого представляется пользователю, вся доступная совместно используемая память может, в общем, выделяться рендерингу одного потока мультимедийного содержимого. Поскольку пользователь независимо запускает и останавливает другие потоки мультимедийного содержимого, тем не менее, доступная совместно используемая память выделяется нескольким потокам. В одном сценарии, динамическое выделение совместно используемой памяти для подготовки конкретных последующих мультимедийных выборок из каждого потока к представлению основано на относительных средних скоростях передачи данных отдельных потоков мультимедийного содержимого. В примерной реализации, вычисляется отношение скоростей передачи данных (например, скоростей передачи битов) отдельных потоков мультимедийного содержимого, и совместно используемая память разбивается на основе отношения скоростей передачи данных. Затем, совместно используемая память, выделенная отдельному потоку, резервируется по мере необходимости для того, чтобы подготавливать конкретные последующие мультимедийные выборки из этого потока.

Когда доступная совместно используемая память является недостаточной для непосредственной реализации требуемого распределения памяти, и/или совместно используемая память, выделенная отдельному потоку, является недостаточной для того, чтобы подготавливать конкретные последующие мультимедийные выборки из этого потока, одна возможная схема приоритетов обеспечивает, что совместно используемая память сначала назначается действиям, ассоциированным с обработкой потока мультимедийного содержимого, обрабатываемого посредством конвейера обработки мультимедиа, который в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти, и запрос на выделение памяти необязательно назначается другому потоку мультимедийного содержимого. По мере того как совместно используемая память становится доступной, она может выделяться потоку данных со ждущим запросом на выделение памяти.

Обращаясь к чертежам, где аналогичные номера обозначают аналогичные компоненты, фиг. 1 является упрощенной функциональной блок-схемой примерного проигрывателя 100 мультимедийного содержимого, который подготавливает посредством рендеринга мультимедийное содержимое, которое состоит из последовательностей (в общем, упорядоченных по времени) выборок видео, аудио, изображений, текста и/или графики. Хотя проигрыватель 100 мультимедийного содержимого может быть любой системой, которая подготавливает посредством рендеринга мультимедийное содержимое, в том числе, но не только, оптическим мультимедийным проигрывателем, компьютером, аудиопроигрывателем, абонентской приставкой, устройством связи, персональным цифровым устройством, устройством записи изображений или видеозаписывающим устройством, как показано, проигрыватель 100 мультимедийного содержимого является интерактивной системой представления мультимедиа (далее называемой системой 100 представления).

Система 100 представления включает в себя диспетчер 102 мультимедийного содержимого, диспетчер 104 интерактивного содержимого (IC), диспетчер 106 представления, модуль 108 управления синхронизирующим сигналом и микшер/рендерер 110. В общем, проектные решения предписывают то, как реализуются конкретные функции системы 100 представления. Такие функции могут реализовываться с использованием аппаратных средств, программного обеспечения или микропрограммного обеспечения либо комбинации вышеозначенного.

При работе, система 100 представления обрабатывает интерактивное мультимедийное представляемое содержимое (представляемое содержимое) 120. Представляемое содержимое 120 включает в себя компонент 122 мультимедийного содержимого (мультимедийный компонент) и компонент 124 интерактивного содержимого (IC-компонент). Мультимедийный компонент 122 и IC-компонент 124, в общем, но не обязательно, обрабатываются как отдельные потоки данных посредством диспетчера 102 мультимедийного содержимого и IC-диспетчера 104, соответственно.

Система 100 представления также упрощает представление представляемого содержимого 120 пользователю (не показан) как воспроизводимого представления 127. Воспроизводимое представление 127 представляет видимую и/или звуковую информацию, ассоциированную с представляемым содержимым 120, которое формируется посредством микшера/рендерера 110 и принимается пользователем через такие устройства, как дисплеи или динамики (не показаны). В целях пояснения предполагается, что представляемое содержимое 120 и воспроизводимое представление 127 представляют аспекты содержимого фильма на DVD высокой четкости в любом формате. Тем не менее, следует принимать во внимание, что представляемое содержимое 120 и воспроизводимое представление 127 могут быть реализованы с возможностью представления любого типа представления мультимедийного содержимого, уже известного или разработанного в будущем.

Мультимедийный компонент 122 представляет одну или более последовательностей (в общем, упорядоченных по времени) выборок (например, выборок видео-, аудиоизображений, текста и/или графики) для представления пользователям как потоков мультимедийного содержимого (потоки 208 и 228 мультимедийного содержимого показываются и подробнее поясняются ниже в связи с фиг. 2). Несколько независимо управляемых потоков мультимедийного содержимого могут одновременно представляться (например, основной фильм наряду с такими материалами, как комментарий режиссера, биографии актеров или реклама). Хотя мультимедийный компонент 122 зачастую поясняется в контексте фильма, мультимедийный компонент 122 фактически может быть видео, аудио, данными или любой комбинацией вышеозначенного.

Фильм, как правило, имеет одну или более версий (например, версию для взрослых и версию подростков); один или более тайтлов 131 с одной или более глав (не показаны), ассоциированных с каждым тайтлом (тайтлы подробнее поясняются ниже в связи с диспетчером 106 представления); одну или более аудиозаписей (например, фильм может воспроизводиться на одном или более языках, с субтитрами или без субтитров); и дополнительные материалы, такие как комментарий режиссера, не вошедший в фильм отснятый материал, биографии актеров, реклама, анонсы и т.п. Следует принимать во внимание, что различия между тайтлами и главами являются просто логическими различиями. Например, один воспринимаемый мультимедийный сегмент может быть частью одного тайтла/главы или может состоять из нескольких тайтлов/глав. Именно источник авторской разработки содержимого должен определять соответствующие логические различия.

Наборы мультимедийных выборок (например, наборы видео, аудио или выборок данных), которые формируют аспекты мультимедийного компонента 122, обычно упоминаются как клипы 123 (клипы 123 показаны в рамках мультимедийного компонента 122 и списка 128 воспроизведения и также упоминаются на фиг. 2 и подробнее поясняются ниже). Тем не менее, следует принимать во внимание, что наборы мультимедийных выборок могут группироваться и/или ссылаться любым желательным способом. Мультимедийные выборки могут представляться посредством любого требуемого блока, например, посредством битов, кадров, пакетов данных, групп изображений, улучшенных блоков видеообъектов и т.д. Цифровое содержимое конкретной мультимедийной выборки (и также размер конкретной мультимедийной выборки) может быть основано на нескольких факторах, таких как характеристики видео-, аудиосодержимого или содержимого данных, содержащего выборку, или один или более параметров, ассоциированных с источником мультимедиа, из которого выборка извлекается (например, идентификационные данные и/или местоположение источника мультимедиа, параметры или настройки кодера/декодера либо параметры или настройки шифрования). Источники мультимедиа подробнее поясняются ниже в связи с фиг. 2.

Мультимедийные данные 132 являются данными, ассоциированными с мультимедийным компонентом 122, которые подготовлены к рендерингу посредством диспетчера 102 мультимедийного содержимого и переданы в микшер/рендерер 110. Мультимедийные данные 132, в общем, включают в себя, для каждого активного клипа 123, рендеринг части клипа.

Ссылаясь снова на представляемое содержимое 120, IC-компонент 124 включает в себя интерактивные объекты 125, которые являются выбираемыми пользователем видимыми или звуковыми объектами, необязательно представляемыми одновременно с мультимедийным компонентом 122, наряду с любыми инструкциями (показанными как приложения 155) для представления видимых или звуковых объектов. Примеры интерактивных объектов включают в себя, помимо прочего, видеовыборки или клипы, аудиовыборки или клипы, изображения, графику, текст и комбинации вышеозначенного.

Приложения 155 предоставляют механизм, посредством которого система 100 представления представляет интерактивные объекты 125 пользователю. Приложения 155 представляют любой способ обработки сигналов или сохраненную инструкцию(и), которые электронно управляют заранее определенными операциями для данных.

IC-диспетчер 104 включает в себя один или более механизмов 181 обработки инструкций, которые принимают, интерпретируют и осуществляют выполнение команд, ассоциированных с приложениями 155. По мере того как выполнение приложений 155 продолжается и пользовательский ввод 150 принимается, может быть инициирован режим изменения в рамках воспроизводимого представления 127. Выполнение определенных инструкций приложения 155, помечаемого как "ввод из ICM" 190, может упрощать связь или функциональную совместимость с другой функциональностью или компонентами в рамках системы 100 представления. Как показано, ввод 190 принимается посредством диспетчера 102 мультимедийного содержимого (подробнее поясняется ниже в связи с фиг. 2), но другие компоненты или функции в рамках системы 100 представления также могут реагировать на ввод 190.

Данные 134 интерактивного содержимого (IC-данные) являются данными, ассоциированными с IC-компонентом 124, которые подготовлены для рендеринга посредством IC-диспетчера 104 и переданы в микшер/рендерер 110.

Модуль 108 управления синхронизирующим сигналом формирует различные синхронизирующие сигналы 158, которые используются для того, чтобы управлять синхронизацией для подготовки и создания мультимедийных данных 132 и IC-данных 134 посредством диспетчера 102 мультимедийного содержимого и IC-диспетчера 104, соответственно. Например, модуль 108 управления синхронизирующим сигналом, в общем, отвечает за определение скоростей, на которых мультимедийные данные 132 (скорость 307 представления мультимедийных данных, показанная и поясненная в связи с фиг. 3) и IC-данные 134 представляются пользователю. В другом примере, синхронизирующие сигналы 158 используются для того, чтобы достигать приблизительной синхронизации мультимедийных данных 132 и IC-данных 134 (например, синхронизация на покадровой основе или на другой временной основе).

Микшер/рендерер подготавливает посредством рендеринга мультимедийные данные 132 в видеоплоскости (не показана) и подготавливает посредством рендеринга IC-данные 134 в графической плоскости (не показана). Графическая плоскость, в общем, но не обязательно, накладывается на видеоплоскость, чтобы формировать воспроизводимое представление 127 для пользователя.

Диспетчер 106 представления, который выполнен с возможностью связи с диспетчером 102 мультимедийного содержимого, IC-диспетчером 104, микшером/рендерером 110 и модулем 108 управления синхронизирующим сигналом, упрощает обработку представляемого содержимого 120 и представление воспроизводимого представления 127 пользователю. Диспетчер 106 представления имеет доступ к списку 128 воспроизведения. Список 128 воспроизведения включает в себя, помимо прочего, упорядоченную по времени последовательность клипов 123 и приложений 155 (включающих в себя интерактивные объекты 125), которые служат для представления пользователю. Клипы 123 и приложения 155/интерактивные объекты 125 могут быть выполнены с возможностью формировать один или более тайтлов 131. Как пояснено выше, можно одновременно воспроизводить несколько независимых управляемых потоков тайтлов/мультимедийного содержимого пользователю.

Диспетчер 106 представления использует список 128 воспроизведения для того, чтобы выявлять временную шкалу 130 представления для конкретного тайтла 131. Концептуально, временная шкала 130 представления указывает времена в рамках тайтла 131, когда конкретные клипы 123 и приложения 155 представляются пользователю. При определенных обстоятельствах, также полезно использовать список 128 воспроизведения и/или временную шкалу 130 представления для того, чтобы выявлять одну или более временных шкал 142 мультимедийного содержимого (временную шкалу(ы) мультимедиа) (примерная временная шкала 142 мультимедиа показывается и подробнее поясняется ниже в связи с фиг. 3).

При работе, диспетчер 106 представления предоставляет информацию, в том числе, но не только, информацию о временной шкале 130 представления и/или временной шкале 142 мультимедиа, в диспетчер 102 мультимедийного содержимого и IC-диспетчер 104. На основе ввода из диспетчера 106 представления, диспетчер 102 мультимедийного содержимого подготавливает мультимедийные данные 132 к рендерингу, а IC-диспетчер 104 подготавливает IC-данные 134 к рендерингу.

Фиг. 2 является упрощенной функциональной блок-схемой, подробнее иллюстрирующей аспекты диспетчера 102 мультимедийного содержимого. Диспетчер 102 мультимедийного содержимого включает в себя один или более конвейеров обработки мультимедиа (два конвейера обработки мультимедиа показаны, конвейер 1 202 обработки мультимедиа и конвейер 2 220 обработки мультимедиа, хотя любое число конвейеров обработки мультимедиа возможно). В общем, конвейер 1 202 обработки мультимедиа и конвейер 2 220 обработки мультимедиа используются для того, чтобы подготавливать независимо управляемые потоки 208 и 228 мультимедийного содержимого, соответственно, к представлению пользователю. Один конвейер обработки мультимедиа обычно отвечает за подготовку основного потока мультимедийного содержимого, такого как фильм, а другие конвейеры обработки мультимедиа отвечают за подготовку одного или более вторичных потоков мультимедийного содержимого, таких как комментарий режиссера, биографии актеров, реклама и т.д. Следует принимать во внимание, что диспетчер 102 мультимедийного содержимого может иметь динамическую нагрузку по обработке на основе идентификационных данных и диспетчеризации (заранее определенной или на основе случайного пользовательского ввода 150) различных клипов 123, содержащих мультимедийный компонент 122 и/или IC-компонент 124.

Одновременная подготовка последующих мультимедийных выборок из двух или более клипов может потреблять большие объемы вычислительных ресурсов, таких как память (используемая, например, для буферизации информации) таким образом, который не является легко прогнозируемым. Кроме того, ресурсы памяти, требуемые для того, чтобы подготавливать конкретную мультимедийную выборку к представлению, не всегда являются постоянными от выборки к выборке или от клипа к клипу. Некоторые факторы, которые затрагивают требуемые ресурсы памяти, ассоциированы с самими мультимедийными выборками (в том числе, но не только, такие факторы, как размер мультимедийной выборки, источник/местоположение мультимедийной выборки, параметры кодирования или декодирования и параметры шифрования). Другие факторы, которые затрагивают требуемые ресурсы памяти, ассоциированы с проигрывателем мультимедийного содержимого (например, архитектура проигрывателя или динамические нагрузки по обработке, в числе других), тогда как еще другие факторы, которые затрагивают требуемые ресурсы памяти, ассоциированы с пользовательским вводом (например, выбираемое пользователем мультимедийное содержимое, форматы содержимого или скорости воспроизведения).

Чтобы не допускать воспринимаемых пользователем сбоев в представлении мультимедийного содержимого, рендеринг мультимедийного содержимого, в общем, заключает в себе идентификацию и подготовку к представлению одной или более последующих мультимедийных выборок, которые должны представляться пользователю, до диспетчеризованного времени воспроизведения мультимедийной выборки(ок). Подготовка конкретной последующей мультимедийной выборки к представлению пользователю заключает в себе несколько этапов, в том числе, но не только, идентификацию следующей воспроизводимой мультимедийной выборки и считывание следующей воспроизводимой мультимедийной выборки из конкретного источника мультимедиа (подробнее поясняется ниже). Поскольку мультимедийное содержимое, в общем, кодируется, шифруется и/или сжимается, следующая воспроизводимая мультимедийная выборка может быть демультиплексирована, декодирована и/или дешифрована с тем, чтобы получать содержимое для рендеринга из информации, считываемой из источника мультимедиа.

Этап идентификации следующей воспроизводимой мультимедийной выборки поясняется в отношении примерной временной шкалы 142 мультимедиа, показанной на фиг. 3. Различные времена 302 представления мультимедийных выборок указываются на временной шкале 142 мультимедиа. Времена 302 представления мультимедийных выборок представляют времена в пределах длительности воспроизведения конкретного клипа, в которой одна или более мультимедийные выборки представляются как мультимедийные данные 132. Как показано, времена 302 представления мультимедийных выборок предоставляются на скорости, основанной на заранее определенной скорости 307 представления мультимедийных данных, которая может варьироваться от клипа к клипу. Следует отметить, что необязательно, чтобы скорость 307 представления мультимедийных данных была идентичной скорости, на которой кодирован конкретный клип 123, хотя скорость представления мультимедийных данных может изменяться на основе скорости кодирования для конкретного клипа. Определенный пользовательский ввод 150 также может затрагивать скорость извлечения мультимедийной выборки из источников мультимедиа и таким образом затрагивать скорость, на которой возникают времена 302 представления мультимедийных выборок. Например, воспроизводимое представление 127 может продолжаться в прямом направлении на нормальной скорости, а также может продолжиться и прямом и обратном направлениях на скоростях, больших или меньших нормальной скорости. Следует принимать во внимание, что нормальная скорость - это относительный термин, и что нормальная скорость может варьироваться от представления к представлению и от клипа к клипу. Во время операций ускоренной перемотки назад и ускоренной перемотки вперед зачастую пропускается воспроизведение определенного мультимедийного содержимого. Другой пользовательский ввод может приводить к пропуску воспроизведения определенного содержимого, например, когда пользователь переходит с одной части фильма к другой.

Текущее истекшее время 309 воспроизведения (длительности воспроизведения) показывается на временной шкале 142 мультимедиа. Время 314 представления следующей для представления мультимедийной выборки также показывается. Время 314 представления следующей для представления мультимедийной выборки представляет время 302 представления мультимедийной выборки, ассоциированное со следующей мультимедийной выборкой(ками) (после текущей мультимедийной выборки, ассоциированной с текущим истекшим временем 309 воспроизведения), которая представляется пользователю. Следует принимать во внимание, что следующая для представления мультимедийная выборка может быть следующей последовательной мультимедийной выборкой на основе списка 128 воспроизведения или может быть мультимедийной выборкой, отстоящей на одно или более времен 302 представления мультимедийных выборок от мультимедийной выборки, ассоциированной с текущим истекшим временем 309 воспроизведения.

Предусмотрены различные способы выявлять следующую мультимедийную выборку для представления/времени представления 314 мультимедийной выборки, которые не поясняются подробно в данном документе. В общем, прогнозное истекшее время 320 воспроизведения и соответствующая следующая для представления мультимедийная выборка выявляются. Прогнозное истекшее время 320 воспроизведения представляет величину длительности воспроизведения (в дополнение к текущему истекшему времени 309 воспроизведения), которая прошла, на основе скорости воспроизведения и частоты кадров 307 мультимедиа. Прогнозное истекшее время воспроизведения используется для того, чтобы находить время 302 представления конкретной мультимедийной выборки, которое должно быть временем 314 представления следующей для представления мультимедийной выборки, и следующая для представления мультимедийная выборка может быть идентифицирована.

Снова ссылаясь на фиг. 2, когда мультимедийные выборки двух клипов одновременно представляются пользователю, то в рамках конвейера 1 202 обработки мультимедиа, последующие мультимедийные выборки, ассоциированные с конкретным клипом 123, идентифицируются и извлекаются из источника 1 204 мультимедиа и демультиплексируются, декодируются и/или дешифруются в декодере 1 206. Аналогично, в рамках конвейера 2 220 обработки мультимедиа, последующие мультимедийные выборки, ассоциированные с другим конкретным клипом 123, идентифицируются как извлеченные из источника 2 224 мультимедиа и демультиплексируются, декодируются и/или дешифруются в декодере 2 226. Источники мультимедиа - это любые устройства, местоположения или данные, из которых мультимедийные выборки извлекаются или получаются. Декодеры - это любые устройства, технологии или этапы, используемые для того, извлекать мультимедийные выборки для рендеринга из информации, принятой из источников мультимедиа. Хотя взаимосвязь "один к одному" между декодерами и источниками мультимедиа показана, следует принимать во внимание, что один декодер может обслуживать несколько источников мультимедиа и наоборот.

Чтобы эффективно управлять использованием ресурсов памяти системы 100 представления, диспетчер 102 мультимедийного содержимого включает в себя диспетчер 205 распределения памяти (MAM), который реагирует на действия конвейеров 202 и 220 обработки мультимедиа. MAM 205 отвечает за динамическое выделение переменных объемов совместно используемой памяти для подготовки конкретных последующих мультимедийных выборок для представления. В одной возможной реализации, MAM 205 является набором машиноисполняемых инструкций, закодированных на машиночитаемом носителе хранения данных, которые, когда выполняются, осуществляют аспекты способа, показанного и дополнительно поясненного ниже в связи с фиг. 4. Может быть желательным для MAM 205 быть реализацией одной или более API-функций (например, возвращающей местоположения памяти пула 240 памяти, подробнее поясненного ниже), к которым осуществляют доступ авторы инструкций для конвейеров 202 и 220 обработки мультимедиа. В других реализациях, MAM 205 может находиться в других физических или логических компонентах системы 100 представления.

Пул 240 памяти является абстрактным представлением объема или области (любого размера или конфигурации) конкретного машиночитаемого носителя хранения данных, который может рассматриваться как имеющий блоки, которые могут отдельно выделяться, через MAM 205, для использования посредством конвейеров 202 и 220 обработки мультимедиа в соответствии с определенными алгоритмами (примерный алгоритм показывается и поясняется ниже в связи с фиг. 4). Одна часть пула 240 памяти упоминается как не используемая совместно память 241, которая представляет блоки памяти, которые ограничены для использования либо посредством конвейера 1 202 обработки мультимедиа, либо посредством конвейера 2 обработки мультимедиа, но не обоими. Другая часть пула 240 памяти упоминается как совместно используемая память 244, которая представляет блоки памяти, которые могут выделяться для использования либо посредством конвейера 1 202 обработки мультимедиа, либо посредством конвейера 2 220 обработки мультимед