УПРАВЛЕНИЕ ЦИФРОВЫМИ ДАННЫМИ С ПОМОЩЬЮ ПУЛА СОВМЕСТНО ИСПОЛЬЗУЕМОЙ ПАМЯТИ
DIGITAL DATA CONTROL BY MEANS OF JOINTLY USED MEMORY POOL

Уровень техники
Эффективная обработка цифровых данных зачастую зависит от эффективного использования ограниченных вычислительных ресурсов, таких как память. Термин "память" может охватывать любой тип машиночитаемого носителя хранения данных, хотя память, используемая посредством компьютеров при обработке цифровых данных, зачастую является оперативным запоминающим устройством. Зачастую, фиксированные объемы памяти для обработки цифровых данных выделяются заранее. Тем не менее, иногда такие фиксированные распределения памяти являются неэффективными. Один случай, когда может возникать неэффективность, заключается в том, что несколько наборов упорядоченных блоков цифровых данных должны обрабатываться одновременно.
Желательно повышать эффективность использования памяти для обработки упорядоченных цифровых данных, в общем, и для рендеринга цифрового мультимедийного содержимого, в частности. Цифровое мультимедийное содержимое состоит из упорядоченных выборок видео-, аудиоизображений, текста и/или графики. Когда проигрыватели мультимедийного содержимого представляют такие упорядоченные выборки пользователям, они упоминаются как потоки мультимедийного содержимого.
Современные проигрыватели мультимедийного содержимого выполнены с возможностью одновременно подготавливать посредством рендеринга несколько независимо управляемых потоков мультимедийного содержимого (например, основной фильм наряду с таким материалами, как комментарий режиссера, биографии актеров или реклама). Такие проигрыватели мультимедийного содержимого также могут допускать рендеринг выбираемых пользователем видимых или звуковых объектов (например, различные меню, игры, спецэффекты или другие варианты) одновременно с одним или более потоков мультимедийного содержимого. Рендеринг мультимедийного содержимого - в частности, одновременно воспроизводимых независимо управляемых потоков мультимедийного содержимого - может потреблять значительные объемы ограниченных ресурсов проигрывателя, в частности, памяти.
Сущность изобретения
Технологии управления памятью, поясненные в данном документе, заключают в себе установление пула памяти, имеющего объем совместно используемой памяти, и динамическое выделение совместно используемой памяти, чтобы одновременно управлять несколькими наборами упорядоченных блоков цифровых данных. В примерном сценарии, наборы упорядоченных блоков цифровых данных являются наборами упорядоченных по времени мультимедийных выборок, таких как биты, кадры, группы изображений, блоки видеообъектов и т.п. В контексте мультимедийного содержимого технологии, поясненные в данном документе, в общем, применяются, когда мультимедийные выборки из двух или более наборов одновременно представляются пользователю как независимо управляемые потоки мультимедийного содержимого. Тем не менее, следует принимать во внимание, что другие сценарии возможны, и что технологии, поясненные в данном документе, применимы к любым одновременно обрабатываемым упорядоченным блокам цифровых данных.
Конкретные технологии управления памятью заключают в себе выявление одного индикатора потребления ресурсов, ассоциированного с обработкой некоторых из блоков цифровых данных, в первом наборе упорядоченных блоков цифровых данных, и выявление другого индикатора потребления ресурсов, ассоциированного с обработкой некоторых из блоков цифровых данных, во втором наборе упорядоченных блоков цифровых данных. Потребление ресурсов может варьироваться на основе различных факторов, в том числе, но не только, факторов, ассоциированных с цифровыми данными, вычислительной системой, используемой для того, чтобы обрабатывать цифровые данные и пользовательский ввод. После выявления, индикаторы потребления ресурсов сравниваются, и совместно используемая память динамически выделяется на основе сравнения.
Иногда, доступная совместно используемая память является недостаточной для непосредственной реализации требуемого распределения памяти. В таком случае доступная совместно используемая память может выделяться в соответствии со схемой приоритетов, чтобы не допускать сбоев обработки. В одном сценарии, более высокий приоритет предоставляется назначению совместно используемой памяти для действий, ассоциированных с обработкой набора(ов) блоков цифровых данных, имеющих наибольшее потребление ресурсов. Набор(ы) блоков цифровых данных, имеющих меньшее потребление ресурсов, могут требоваться для того, чтобы многократно повторно запрашивать ресурсы. Альтернативно, такие наборы могут быть назначенными ждущими запросами на выделение памяти, которым предоставляется приоритет по мере того, как ресурсы совместно используемой памяти становятся доступными. Таким образом, можно обеспечивать эффективное динамическое выделение совместно используемой памяти, когда несколько наборов упорядоченных блоков цифровых данных должны обрабатываться одновременно.
В случае потоков мультимедийного содержимого, индикаторы потребления ресурсов - это скорости передачи данных (например, средние скорости передачи данных), ассоциированные с рендерингом отдельных потоков мультимедийного содержимого. Ресурсы памяти, требуемые для того, чтобы обрабатывать потоки мультимедийного содержимого, имеющие определенные скорости передачи данных (и обрабатывать конкретные мультимедийные выборки в рамках таких потоков), могут варьироваться на основе различных факторов, в том числе, но не только, факторов, ассоциированных с самими мультимедийными выборками (например, источников/местоположений мультимедийных выборок, размеров мультимедийных выборок, параметров кодирования и/или декодирования и параметров шифрования, в числе других), проигрывателем мультимедийного содержимого (например, архитектурой проигрывателя или динамическими нагрузками по обработке, в числе других) или пользовательским вводом (например, выбираемыми пользователем форматами мультимедийного содержимого или выбираемыми пользователем скоростями воспроизведения, к примеру, ускоренная перемотка вперед, замедленное воспроизведение вперед, ускоренная перемотка назад или замедленное воспроизведение назад). Отношение скоростей передачи данных отдельных потоков мультимедийного содержимого вычисляется, и совместно используемая память динамически выделяется на основе сравнения. Когда доступная совместно используемая память является недостаточной для непосредственной реализации требуемого распределения памяти, одна возможная схема приоритетов обеспечивает, что совместно используемая память сначала назначается действиям, ассоциированным с обработкой потока мультимедийного содержимого, который в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти.
Эта сущность предоставляется для того, чтобы предоставлять выбор принципов в упрощенной форме. Принципы дополнительно описываются в разделе подробного описания. Возможны элементы или этапы, отличные от описанных в этой сущности, и нет обязательно требуемого элемента или этапа. Эта сущность не имеет намерение идентифицировать ключевые или важнейшие признаки заявляемого предмета изобретения, а также не имеет намерение использоваться в качестве помощи при определении объема заявляемого предмета изобретения. Кроме того, заявленный предмет изобретения не ограничен реализациями, которые разрешают какие-либо или все недостатки, отмеченные в любой части данного документа.
Краткое описание чертежей
Фиг. 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 обработки мультимедиа, либо и тем, и другим (или другими конвейерами обработки мультимедиа при необходимости). В иллюстративном примере, пул 240 памяти составляет 40 МБ RAM, совместно используемая память 244 составляет 30 МБ, а не используемая совместно память 241 составляет 10 МБ, причем 5 МБ не используемой совместно памяти ограничено для использования только посредством конвейера обработки мультимедиа 1 202 и 5 МБ не используемой совместно памяти ограничено для использования посредством конвейера 2 220 обработки мультимедиа.
Динамическое выделение 1 246 совместно используемой памяти представляет общий объем совместно используемой памяти 244, который выделен (в соответствии с такими индикаторами потребления ресурсов, как скорости передачи данных, подробнее поясненные ниже в связи с фиг. 4) для использования посредством конвейера 1 202 обработки мультимедиа, и динамическое выделение 2 248 совместно используемой памяти представляет общий объем совместно используемой памяти 244, который выделен для использования посредством конвейера 2 220 обработки мультимедиа. В общем, переменные объемы выделения 1 246 совместно используемой памяти запрашиваются и резервируются посредством конвейера 1 202 обработки мультимедиа, чтобы подготавливать последующие мультимедийные выборки к представлению, и по мере того как мультимедийные выборки воспроизводятся пользователю, запрошенные/зарезервированные объемы выделения 1 246 совместно используемой памяти высвобождаются. Аналогично, переменные объемы выделения 1 248 совместно используемой памяти запрашиваются и резервируются посредством конвейера 2 220 обработки мультимедиа для того, чтобы подготавливать последующие мультимедийные выборки к представлению, и по мере того как мультимедийные выборки воспроизводятся пользователю, запрошенные/зарезервированные объемы выделения 2 248 совместно используемой памяти высвобождаются.
С дальнейшей ссылкой на фиг. 1-3, фиг. 4 является блок-схемой последовательности операций способа для параллельного управления с применением совместно используемой памяти числом наборов цифровых данных, таких как мультимедийное содержимое, компонуемое в определенное число наборов (таких как клипы 123) упорядоченных мультимедийных выборок, которые управляются с применением совместно используемой памяти 244.
Процесс(ы), проиллюстрированный на фиг. 4, может реализовываться в одном или более общих, многоцелевых или специализированных процессоров, таких как процессор 502, поясненный ниже в связи с фиг. 5. Если прямо не указано, способы, описанные в данном документе, не ограничены конкретным порядком или последовательностью. Помимо этого, часть описанного способа или элементов этого может осуществляться или выполняться одновременно.
Способ начинается на этапе 400 и продолжается на этапе 402, где объем совместно используемой памяти для обработки первого набора цифровых блоков резервируется. В контексте системы 100 представления, первый набор цифровых блоков может рассматриваться как конкретный клип 123 фильма, подготавливаемого посредством рендеринга (как поток 1 208 мультимедийного содержимого) через конвейер 202 обработки мультимедиа. Когда поток 1 208 мультимедийного содержимого является единственным потоком мультимедийного содержимого, представляемым пользователю, вся доступная совместно используемая память 244 может, в общем, выделяться, посредством MAM 202, рендерингу потока 1 208 мультимедийного содержимого.
Затем, в ромбе 404 определяется то, должен или нет второй набор цифровых блоков обрабатываться одновременно с первым набором цифровых блоков. В контексте системы 100 представления, второй набор цифровых блоков может рассматриваться как выбираемый пользователем вторичный поток мультимедийного содержимого (подготавливаемый посредством рендеринга как поток 2 228 мультимедийного содержимого), такой как комментарий режиссера "картинка-в-картинке", реклама или часть фильма, подготавливаемого посредством рендеринга с высокой четкостью, помимо прочего. Когда поток 1 208 мультимедийного содержимого и поток 2 228 мультимедийного содержимого должны одновременно подготавливаться посредством рендеринга, совместно используемая память 244 должна, в общем, разделяться, посредством MAM 205, между использованием посредством конвейера 1 202 обработки мультимедиа (для идентификации и декодирования последующих мультимедийных выборок из потока 1 208 мультимедийного содержимого) и использованием посредством конвейера 2 220 обработки мультимедиа (для идентификации и декодирования последующих мультимедийных выборок из потока 2 228 мультимедийного содержимого). Хотя совместно используемая память 244 подробно поясняется, следует отметить, что конвейеры обработки мультимедиа также, в общем, имеют доступ к объемам не используемой совместно памяти 241, которая, в общем, используется для того, чтобы начинать рендеринг мультимедийных выборок (которые могут быть или не быть первыми последовательными мультимедийными выборками) из конкретного клипа/потока мультимедийного содержимого и осуществлять доступ к совместно используемой памяти 244 в дополнение к доступу не совместно используемой памяти.
Как указано на этапе 406, один способ разделять использование совместно используемой памяти между действиями, ассоциированными с одновременной обработкой двух наборов цифровых блоков, заключается в том, чтобы выделять совместно используемую память на основе относительных скоростей потребления ресурсов, ассоциированных с обработкой наборов цифровых блоков. В контексте системы 100 представления, примерная скорость потребления ресурсов - это средняя скорость передачи данных конкретного потока мультимедийного содержимого, а примерное выделение - это выделение на основе отношения средних скоростей передачи данных.
Средняя скорость передачи данных конкретного потока мультимедийного содержимого, такого как поток 1 208 мультимедийного содержимого и поток 2 228 мультимедийного содержимого, может вычисляться посредством деления общего числа выборок, в настоящий момент подготавливаемых посредством рендеринга из конкретного клипа (например, размера выборок, декодируемых либо декодированных и буферизованных, но еще не воспроизводимых пользователю) на общее время воспроизведения (например, определяемое из временной шкалы 142 мультимедиа) общего числа выборок, в настоящий момент подготавливаемых посредством рендеринга. По мере того последующие мультимедийные выборки идентифицируются (например, с помощью временной шкалы 142 мультимедиа), и совместно используемая память успешно резервируется для того, чтобы подготавливать посредством рендеринга идентифицированные последующие мультимедийные выборки, и также по мере того как подготавливаемые посредством рендеринга мультимедийные выборки воспроизводятся пользователю, и память успешно высвобождается, средняя скорость передачи данных может обновляться. Например, при условии, как пояснено выше, что совместно используемая память 244 составляет 30 МБ, поток 1 208 мультимедийного содержимого имеет среднюю скорость передачи данных 40 МБ/с, и поток 2 228 мультимедийного содержимого имеет среднюю скорость передачи данных 20 МБ/с, тогда отношение скоростей передачи данных между потоком 1 208 мультимедийного содержимого и потоком 2 228 мультимедийного содержимого должно составлять 2:1, и выделение совместно используемой памяти 244 на основе отношения должно составлять 20 МБ для конвейера 1 202 обработки мультимедиа для рендеринга потока 1 208 мультимедийного содержимого и 10 МБ для конвейера 2 220 обработки мультимедиа для рендеринга потока 1 228 мультимедийного содержимого.
Иногда, как указано в ромбе 407, может быть невозможным сразу выделять совместно используемую память 244 в требуемых объемах на основе вычисленного отношения (например, один или оба конвейера обработки мультимедиа, возможно, ранее зарезервировали память на этапе 412, как пояснено ниже, которая еще не высвобождена). Если требуемое выделение в настоящий момент невозможно, то одно решение состоит в том, чтобы назначать доступную совместно используемую память на основе схемы приоритетов, как указано на этапе 418. Если приоритет запроса на выделение памяти должен быть назначен, как указано в ромбе 420, то по мере того как дискретные объемы совместно используемой памяти высвобождаются (см. ромб 424) на этапе 416, и эти объемы совместно используемой памяти превышают требуемое выделение (на основе отношения средних скоростей передачи данных) для конвейера обработки мультимедиа, высвобождающего их, то они могут быть сразу повторно выделены в соответствии с приоритетом ждущего запроса на выделение памяти.
При условии, что возможно в ромбе 407 сразу выделять совместно используемую память 244 в требуемых объемах на основе отношения, вычисленного на этапе 406, тогда, на этапе 408, этапы запрашивания и/или резервирования конкретных объемов выделенной совместно используемой памяти для модулей обработки наборов цифровых блоков выполняются. В контексте системы 100 представления, как конвейер 1 202 обработки мультимедиа, так и конвейер 2 220 обработки мультимедиа запрашивают (например, от MAM 205) резервирование дискретных объемов ранее выделенной совместно используемой памяти 244, которые требуются для того, чтобы подготавливать посредством рендеринга идентифицированные последующие мультимедийные выборки (например, идентифицированные на основе временной шкалы 142 мультимедиа). Ресурсы памяти, требуемые для того, чтобы подготавливать отдельные мультимедийные выборки, не всегда являются постоянными от выборки к выборке или от клипа к клипу, будучи затрагиваемыми такими факторами, как размер мультимедийной выборки, местоположение источника мультимедиа или идентификационные данные, параметры кодирования или декодирования, формат представления мультимедийной выборки, параметры сжатия, параметры шифрования, скорость воспроизведения, динамические нагрузки по обработке проигрывателя мультимедийного содержимого и другие факторы.
Если в ромбе 410 определено то, что имеется достаточная незарезервированная совместно используемая память 244 (выделенная на этапе 206), чтобы выполнять запрос на дискретный объем памяти, требуемый для того, чтобы подготавливать посредством рендеринга конкретную последующую мультимедийную выборку конкретного клипа/потока мультимедийного содержимого, то объем запрошенной памяти резервируется (например, посредством MAM 205) от имени запрашивающего конвейера обработки мультимедиа, как указано на этапе 412. В общем, резервирование уменьшает объем совместно используемой памяти 244 (выделенный на этапе 206), доступный для запрашивающего конвейера обработки мультимедиа. Следует отметить, что такое резервирование также может независимо затрагивать вычисление на этапе 406 средней скорости передачи данных соответствующего потока мультимедийного содержимого.
Как указано на этапе 416, когда обработка (например, представление пользователю мультимедийных данных 132) выполнена, дискретные объемы памяти, зарезервированные на этапе 412, высвобождаются посредством MAM 205. В общем, высвобождение увеличивает объем совместно используемой памяти 244 (выделенный на этапе 206), доступный для высвобождаемого конвейера мультимедийной обработки. В случае если, на этапе 406, требуемое выделение совместно используемой памяти 244 не может быть сразу реализовано, и объемы высвобожденной памяти превышают требуемое выделение для высвобождаемого конвейера мультимедийного содержимого, то высвобожденная память может сразу повторно выделяться в соответствии с требуемым выделением, вычисленным на этапе 406. Аналогично, если имеются приоритеты ждущего запроса на выделение памяти, как указано в ромбе 414 (подробнее поясняется ниже), приоритеты ждущего запроса на выделение памяти выполняются.
Возвращаясь снова к ромбу 410, при условии, что требуемое выделение реализовано, но определено (для одного или более конвейеров обработки мультимедиа) то, что имеется недостаточная незарезервированная совместно используемая память 244 (выделенная на этапе 206), для того чтобы выполнять запрос на дискретный объем памяти, требуемый для того, чтобы подготавливать посредством рендеринга конкретную последующую мультимедийную выборку, то доступная совместно используемая память назначается на основе схемы приоритетов, как указано на этапе 418. В одной возможной схеме приоритетов, более высокий приоритет предоставляется назначению совместно используемой памяти для конвейера обработки мультимедиа, который в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти. Возможны альтернативные схемы, например, предоставление более высокого приоритета назначению совместно используемой памяти для конвейера обработки мультимедиа, имеющего поток мультимедийного содержимого с более высокой средней скоростью передачи данных. Например, допустим, что оба конвейера обработки мультимедиа запросили совместно используемую память, превышающую их распределения, вычисленные на этапе 406. Если на этапе 420, приоритет запроса на выделение памяти назначается конвейеру обработки мультимедиа, который в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти, другой конвейер обработки мультимедиа может принимать более низкий приоритет запроса на выделение памяти или отсутствие приоритета запроса на выделение памяти. После приема приоритета запроса на выделение памяти, конвейер обработки мультимедиа ожидает, как указано на этапе 422, до тех пор пока достаточная память не высвобождается на этапе 416 (посредством ожидающего конвейера мультимедийной обработки или любого конвейера обработки мультимедиа), и высвобожденная память сразу резервируется в соответствии с приоритетом(ами) запроса на выделение памяти.
В другом примере, допустим, что один конвейер обработки мультимедиа запросил совместно используемую память, превышающую его распределение, вычисленное на этапе 406. Одно решение должно состоять в том, чтобы назначать приоритет запроса на выделение памяти, если конвейер обработки мультимедиа в настоящий момент имеет не всю свою выделенную часть совместно используемой памяти, и не назначать приоритет запроса на выделение памяти, если запрашивающий конвейер обработки мультимедиа фактически имеет свою выделенную часть совместно используемой памяти. Когда приоритет запроса на выделение памяти назначен, то конвейер обработки мультимедиа ожидает, как указано на этапе 422, до тех пор, пока достаточная память не высвобождается на этапе 416 посредством одного из конвейеров обработки мультимедиа, и высвобожденная память сразу резервируется в соответствии с приоритетом(ами) запроса на выделение памяти.
Как указано в ромбе 420, когда приоритеты запроса на выделение памяти не назначены, одно решение состоит в том, чтобы для требуемого конвейера обработки мультимедиа многократно повторно запрашивать дискретные объемы памяти до тех пор, пока требуемая память не станет доступной (например, или выделение, вычисленное на этапе 406, изменяется, и/или другой конвейер обработки мультимедиа высвобождает память сверх своего текущего выделения).
Как указано в ромбе 414, приоритеты ждущего запроса на выделение памяти обслуживаются, в общем, в порядке времени или приоритета. Может быть желательным сбрасывать приоритеты запроса на выделение памяти в то время, когда совместно используемая память 244 повторно выделяется на этапе 206. Такое повторное выделение может осуществляться неоднократно независимо от времен представления мультимедийных выборок, проиллюстрированных во временной шкале 142 мультимедиа. Если нет приоритетов ждущих запросов на выделение памяти, и поток мультимедийных данных остановлен, способ возвращается к этапу 402, где вся доступная совместно используемая память 244 доступна для другого подготавливаемого посредством рендеринга потока(ов) мультимедийных данных.
Фиг. 5 является блок-схемой вычислительного модуля 500 общего назначения, иллюстрирующей определенные функциональные компоненты, которые могут использоваться для того, чтобы реализовывать, к ним может осуществляться доступ или они могут быть включены в различные функциональные компоненты системы 100 представления. Один или более компонентов вычислительного модуля 500 могут использоваться для того, чтобы реализовывать, быть доступными или быть включенными в, IC-диспетчер 104, диспетчер 106 представления и диспетчер 102 мультимедийного содержимого. Например, один или более компонентов по фиг. 5 могут быть объединены вместе или отдельно, чтобы реализовывать функции системы 100 представления (полностью или частично) множеством способов.
Один или более процессоров 502 реагируют на действия машиночитаемых носителей 504 и компьютерных программ 506. Процессор(ы) 502, который может быть физическим или виртуальным процессором, управляет функциями электронного устройства посредством выполнения машиноисполняемых инструкций. Процессор(ы) 502 может выполнять инструкции при ассемблировании, компиляции или на машинном уровне, чтобы осуществлять конкретный процесс. Такие инструкции могут быть созданы с использованием исходного кода или любого другого известного средства создания компьютерной программы.
Машиночитаемые носители 504 представляют любое число и комбинацию локальных или удаленных устройств в любой форме, уже известной или разработанной в будущем, допускающей запись, хранение или передачу машиночитаемых данных, таких как инструкции, выполняемые посредством процессора 502. В частности, машиночитаемые носители 504 могут быть или могут включать в себя полупроводниковую память (такую как, например, постоянное запоминающее устройство (ROM), любой тип программируемого ROM (PROM), оперативное запоминающее устройство (RAM) или флэш-память); магнитное устройство хранения данных (такое как накопитель на гибких магнитных дисках, жесткий диск, магнитный барабан, магнитная лента или магнитооптический диск); оптическое устройство хранения данных (такое как любой тип компакт-диска или цифрового универсального диска); память на цилиндрических магнитных доменах; кэш-память; запоминающее устройство на магнитных сердечниках; голографическая память; карта памяти; перфолента; перфокарта; или любая комбинация вышеозначенного. Машиночитаемые носители 504 также могут включать в себя среды передачи и данные, ассоциированные с ними. Примеры сред передачи/данные включают в себя, но не только, данные, осуществленные в любой форме проводной линии связи или беспроводной передачи, такие как пакетированные или непакетированные данные, переносимые посредством модулированного несущего сигнала.
Компьютерные программы 506 представляют любые способы обработки сигналов или сохраненные инструкции, которые электронно управляют заранее определенными операциями для данных. В общем, компьютерные программы 506 являются машиноисполняемыми инструкциями, реализованными как программные компоненты согласно широко распространенной практике для компонентно-ориентированной разработки программного обеспечения и закодированными в машиночитаемых носителях (таких как машиночитаемые носители 504). Компьютерные программы могут быть комбинированы или распределены различными способами.
Функции/компоненты, описанные в контексте системы 100 представления, не ограничены реализацией посредством каких-либо конкретных вариантов осуществления компьютерных программ. Вместо этого, функции - это процессы, которые передают или преобразуют данные, и они могут, в общем, реализовываться или выполняться в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного, распложенной в или к которой осуществляется доступ посредством любой комбинации функциональных элементов системы 100 представления.
Продолжая ссылку на фиг. 5, фиг. 6 является блок-схемой примерной конфигурации операционного окружения 600, в котором все или часть вычислительного модуля 500 или система 100 представления могут реализовываться или использоваться. Операционное окружение 600, в общем, указывает широкий спектр вычислительных окружений специального назначения или общего назначения. Операционное окружение 600 является только одним примером подходящего операционного окружения и не имеет намерение предоставлять какое-либо ограничение в отношении объема использования или функциональности систем(ы) и способов, описанных в данном документе. Например, операционное окружение 600 может быть типом компьютера, такого как персональный компьютер, рабочая станция, сервер, портативное устройство, дорожный компьютер, планшетный компьютер, или любым другим типом электронного устройства, таким как оптический мультимедийный проигрыватель или другой тип мультимедийного проигрывателя, уже известный или разработанный в будущем, либо любым аспектом вышеозначенного. Операционное окружение 600 также может быть, например, распределенной вычислительной сетью или веб-службой. Конкретным примером операционного окружения 600 является такое окружение, как DVD-проигрыватель или операционная система, ассоциированная с ним, которая упрощает воспроизведение фильмов на DVD высокой четкости.
Как показано, операционное окружение 600 включает в себя или осуществляет доступ к компонентам вычислительного модуля 500, в том числе процессору 502, машиночитаемым носителям 504 и компьютерным программам 506. Одна или более внутренних шин 620, которые являются известными и общедоступными элементами, могут использоваться для того, чтобы переносить данные, адреса, управляющие сигналы и другую информацию в рамках, в или из вычислительного окружения 600 или его элементов.
Интерфейс(ы) ввода 608 предоставляют ввод в вычислительное окружение 600. Ввод может собираться с использованием любого типа уже известного или разработанного в будущем интерфейса, такого как пользовательский интерфейс. Пользовательскими интерфейсами могут быть сенсорные устройства ввода, такие как пульты дистанционного управления, дисплеи, мыши, перья, стилусы, шаровые манипуляторы, клавиатуры, микрофоны, сканирующие устройства и все типы устройств, которые используются для того, чтобы вводить данные.
Интерфейс(ы) вывода 610 предоставляют вывод из операционного окружения 600. Примеры интерфейса(ов) вывода 610 включают в себя дисплеи, принтеры, динамики, накопители (такие как накопители на оптических дисках и дисковые накопители) и т.п.
Внешний интерфейс(ы) связи 612 доступен для того, чтобы повышать способность операционного окружения 600 принимать информацию от или передавать информацию в, другой объект через среду связи, такую как сигнал канала, сигнал данных или машиночитаемый носитель. Внешний интерфейс(ы) связи 612 может быть или может включать в себя такие элементы, как кабельные модемы, терминальное оборудование пользователя, мультимедийные проигрыватели, устройства хранения данных, персональные цифровые устройства или любое другое устройство или их компоненты/комбинация, наряду с ассоциированными устройствами и/или программным обеспечением или интерфейсами поддержки сети. Специализированные аппаратные средства 615 представляют любые аппаратные средства или микропрограммное обеспечение, которые реализуют функции операционного окружения 600, такие как приемо-передающие устройства, кодеки, специализированные схемы, дисковые накопители и т.п.
Фиг. 7 является упрощенной функциональной схемой клиент-серверной архитектуры 700, в связи с которой может использоваться система 100 представления, вычислительный модуль 500 или операционное окружение 600. Один или более аспектов системы 100 представления, вычислительного модуля 500 и/или операционного окружения 600 могут представляться на стороне 702 клиента архитектуры 700 или на стороне 704 сервера архитектуры 700. Как показано, инфраструктура 703 связи (которой может быть любая общедоступная или частная сеть любого типа, например, проводная или беспроводная) упрощает связь между стороной 702 клиента и стороной 704 сервера.
На стороне 702 клиента, один или более клиентов 706, которые быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного, реагируют на действия клиентских хранилищ 708 данных. Клиентские хранилища 708 данных могут быть машиночитаемыми носителями 504, используемыми для того, чтобы хранить информацию, локальную для клиентов 706. На стороне 704 сервера, один или более серверов 710 реагируют на действия серверных хранилищ 712 данных. Аналогично клиентским хранилищам 708 данных, серверные хранилища 712 данных могут включать в себя один или более машиночитаемых носителей 504, используемых для того, чтобы хранить информацию, локальную для серверов 710.
Описаны различные аспекты системы представления, которая используется для того, чтобы представлять интерактивное содержимое пользователю синхронно с мультимедийным содержимым. Тем не менее, следует понимать, что все из описанных компонентов системы представления не обязательно должны использоваться, а также, при использовании, компоненты не обязательно должны представляться одновременно. Функции/компоненты, описанные в контексте системы 100 представления как являющиеся компьютерными программами, не ограничены реализацией посредством каких-либо конкретных вариантов осуществления компьютерных программ. Вместо этого, функции - это процессы, которые передают или преобразуют данные и могут, в общем, реализовываться или выполняться в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного.
Хотя предмет изобретения в данном документе описан на языке, характерном для структурных признаков и/или технологических действий, также следует понимать, что предмет изобретения, заданный в прилагаемой формуле изобретения, не обязательно ограничен характерными признаками или действиями, описанными выше. Вместо этого, характерные признаки и действия, описанные выше, раскрываются как примерные формы реализации формулы изобретения.
Дополнительно следует понимать, что когда один элемент указывается как реагирующий на другой элемент, элементы могут быть прямо или косвенно связаны. Соединения, проиллюстрированные в данном документе, на практике могут быть логическими или физическими, чтобы достигать связанности или интерфейса связи между элементами. Соединения быть реализованы, помимо других способов, как межпроцессное взаимодействие между программными процессами или межмашинный обмен данными между сетевыми компьютерами.
Слово "примерный" используется в данном документе для того, чтобы обозначать "служащий в качестве примера, отдельного случая или иллюстрации". Любая реализация или ее аспект, описанный в данном документе как "примерный", не обязательно должны истолковываться как предпочтительные или преимущественные по сравнению с другими реализациями или их аспектами.
Следует понимать, что варианты осуществления, отличные от конкретных вариантов осуществления, описанных выше, могут быть разработаны без отступления от сущности и объема прилагаемой формулы изобретения, и объем предмета изобретения в данном документе должен обусловливаться посредством прилагаемой формулы изобретения.