Быстрый запуск для потоковой среды

Иллюстрации

Показать все

Изобретение относится к передаче потоковой среды. Изобретение позволяет уменьшить время задержки между запросом воспроизведения потоковой среды и началом воспроизведения потоковой среды. Быстрый запуск для потоковой среды включает в себя один или оба из следующих способов: способ, предназначенный для запуска с предсказанием, и способ, предназначенный для переключения канала (каналов) доставки во время поточной передачи. Запуск с предсказанием дает возможность источнику информации среды предсказывать, какой разноформатный поток (потоки) требуется запрашивающим клиентским устройством, и начинать поточную передачу этого предсказанного разноформатного потока (потоков) в клиентское устройство. Способ переключения канала доставки дает возможность источнику информации среды начинать поточную передачу предсказанного разноформатного потока (потоков) с использованием одного канала доставки (например, с использованием протокола управления передачей (ПУП)), а затем проверять, будет ли работать другой канал доставки (например, с использованием протокола дейтаграммы пользователя (ПДП)), и переключаться в этот другой канал доставки, если он будет работать. 7 н. и 36 з.п. ф-лы, 2 табл., 8 ил.

Реферат

Область техники, к которой относится изобретение

Это изобретение относится к передачам потоковой среды и данных, в частности к быстрому запуску для потоковой среды.

Предшествующий уровень техники

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

Широко распространенная доступность потоковой мультимедийной информации дает возможность передачи множества информационного содержания, которое ранее было недоступно, через Internet или другие компьютерные сети. Актуальная информация является одним существенным примером такого содержания. С использованием потоковой мультисреды, аудио, видео или аудио/визуальное освещение событий может быть передано широковещательным способом через Internet, когда события развиваются. Таким же образом, телевизионные и радиостанции могут передавать свою актуальную информацию через Internet.

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

Раскрытие изобретения

Быстрый запуск для потоковой среды описан в настоящей заявке. Быстрый запуск для потоковой среды включает в себя один или оба из следующих способов: способ, предназначенный, для запуска с предсказанием, и способ, предназначенный для переключения канала (каналов) доставки во время поточной передачи.

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

В соответствии с определенными аспектами способ, предназначенный для переключения канала (каналов) доставки во время поточной передачи, включает в себя посылку клиентским устройством запроса в серверное устройство о том, чтобы один или более разноформатных потоков были переданы потоком в клиентское устройство. Серверное устройство принимает запрос и начинает поточную передачу одного или более разноформатных потоков в клиентское устройство с использованием ТСР, ПУП (протокол управления передачей). Во время поточной передачи одного или более разноформатных потоков из серверного устройства в клиентское устройство с использованием ПУП выполняют зондирование, чтобы определить, могут ли данные быть переданы потоком из серверного устройства в клиентское устройство с использованием UDP, ПДП (протокол дейтаграммы пользователя). Если зондирование указывает, что данные могут быть переданы потоком из серверного устройства в клиентское устройство с использованием ПДП, тогда поточную передачу одного или более разноформатных потоков переключают из использования ПУП на использование ПДП. Однако, если зондирование указывает, что данные не могут быть переданы потоком из серверного устройства в клиентское устройство с использованием ПДП, тогда поточная передача одного или более разноформатных потоков продолжается с использованием ПУП.

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

Одинаковые позиции используются по всему описанию для ссылки на одинаковые компоненты и/или признаки.

Фиг.1 иллюстрирует примерную сетевую структуру, которая поддерживает быстрый запуск для потоковой среды, описанный в настоящей заявке.

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

Фиг.3 представляет блок-схему, иллюстрирующую примерные клиентские и серверные устройства и способ запуска с предсказанием более подробно.

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

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

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

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

Фиг.8 иллюстрирует общую компьютерную структуру, которая может быть использована, чтобы реализовать способы, описанные в настоящей заявке.

Осуществление изобретения

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

Фиг.1 иллюстрирует примерную сетевую структуру 100, которая поддерживает быстрый запуск для потоковой среды, описанный в настоящей заявке. В структуре 100 множество (а) клиентских вычислительных устройств 102(1), 102(2),…,102(а) соединено с множеством (b) серверных вычислительных устройств 104(1), 104(2),…,104(b) через сеть 106. Сеть 106 предназначена для того, чтобы представлять любую из множества традиционных сетевых топологий и типов (включая проводные и/или беспроводные сети), использующих любой из множества традиционных сетевых протоколов (включая общие и/или специфические протоколы). Сеть 106 может включать в себя, например, Internet, а также, возможно, по меньшей мере, части одной или более локальных сетей (LAN, ЛС).

Каждое из вычислительных устройств 102 и 104 может быть любым из множества традиционных вычислительных устройств, включая настольные ПК, рабочие станции, универсальные компьютеры, устройства Internet, игровые консоли, карманные ПК, сотовые телефоны, персональные цифровые ассистенты (PDA, ПЦС) и т.д. Одно или более из устройств 102 и 104 могут быть одинаковыми типами устройств или, в качестве альтернативного варианта, разными типами устройств.

Серверные устройства (серверы) 104 могут делать любые из множества данных доступными для поточной передачи в клиентские устройства 102. Понятие “поточная передача” используется, чтобы указать, что данные, представляющие среду, подаются через сеть в клиентское устройство и, что воспроизведение информации может начинаться до того, как информация будет полностью доставлена (например, подавая данные на основе принципа “когда необходимо”, а не предварительно доставляя данные полностью перед воспроизведением). Данные могут быть доступны для общего пользования или, в качестве альтернативного варианта, ограничены (например, ограничены только определенными пользователями, доступны только, если заплачен соответствующий взнос, и т.д.). Данные могут быть любыми из множества из одного или более типов информации, таких как аудио, видео, текст, анимация и т.д. Кроме того, данные могут быть предварительно записаны или, в качестве альтернативного варианта, “живыми” (например, выполняют цифровое представление концерта, снятого, как концерт, и делают доступным для поточной передачи непосредственно после съемки).

Клиентское устройство 102 может принимать потоковую среду из сервера 104, который хранит информацию потоковой среды как файл, или, в качестве альтернативного варианта, из сервера 104, который принимает потоковую среду из некоторого другого источника. Например, сервер 104 может принимать потоковую среду из другого сервера, который хранит информацию потоковой среды как файл, или может принимать потоковую среду из некоторого другого источника (например, кодера, который кодирует “живое” событие).

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

Фиг.2 иллюстрирует примерные клиентские и серверные устройства, которые могут передавать потоком информацию среды с использованием быстрого запуска для потоковой среды, описанного в настоящей заявке. Обычно как в клиентском устройстве 102, так и в сервере 104, следуют множеству разных протоколов, для того чтобы передавать потоком информацию среды из сервера 104 в клиентское устройство 102. Эти разные протоколы могут отвечать за разные аспекты процесса поточной передачи. Несмотря на то, что не изображены на фиг.2, одно или более дополнительных устройств (например, брандмауэры, маршрутизаторы, межсетевые шлюзы, шлюзы и т.д.) могут быть расположены между клиентским устройством 102 и серверным устройством 104.

В примере фиг.2 протокол 150 уровня приложений, транспортный протокол 152 и протоколы 154 одного или более каналов доставки используются как часть процесса поточной передачи. Дополнительные протоколы, не изображенные на фиг.2, также могут использоваться (например, может быть дополнительный протокол (протоколы) между протоколом 150 уровня приложений и транспортным протоколом 152). Протокол 150 уровня приложений является протоколом на уровне приложения, предназначенным для управления доставкой данных с характеристиками реального времени. Протокол 150 уровня приложений предоставляет структуру, выборочно расширяемую, чтобы дать возможность управляемой доставки по требованию данных реального времени, таких как информация потокового аудио или видео. Протокол 150 уровня приложений является протоколом управления, предназначенным для инициализации и направления доставки потокового мультимедиа из серверов среды. Примеры протокола 150 уровня приложений включают в себя протокол поточной передачи реального времени (RTSP, ПППРВ), как описано в запросе на комментарий Рабочей группы по сетям (RFC) 2326, апрель 1998 г., и транспортный протокол передачи гипертекста (HTTP, ТППГ), как описано в запросе на комментарий Рабочей группы по сетям (RFC) 1945, май 1996 г., или в запросе на комментарий Рабочей группы по сетям (RFC) 2068, январь 1997 г.

Протокол 150 уровня приложений использует транспортный протокол 152 для доставки данных реального времени, таких как потоковые аудио или видео. Транспортный протокол 152 определяет формат пакета для разноформатных потоков. Транспортный протокол 152 обеспечивает сквозные сетевые транспортные функции, которые подходят для приложений, передающих данные реального времени, такие как аудио, видео или данные моделирования, через многоадресные или одноадресные сетевые службы. Примеры транспортного протокола включают в себя транспортный протокол реального времени (RTP, ТПРВ) и протокол управления реального времени (RTCP, ПУРВ), как описано в запросе на комментарий Рабочей группы по сетям (RFC), июль 2003 г. ТПРВ не адресован резервированию ресурсов и не гарантирует качество обслуживания служб реального времени. Транспортировка данных расширена с помощью протокола (ПУРВ), чтобы дать возможность мониторинга доставки данных способом, масштабируемым для больших многоадресных сетей, и чтобы обеспечить некоторые функциональные возможности управления и идентификации.

Транспортный протокол 152 использует протокол (протоколы) 154 канала доставки для транспортных соединений. Протокол (протоколы) 154 канала доставки включает в себя один или более каналов для транспортировки пакетов данных из сервера 104 в клиентское устройство 102. Каждый канал обычно используется, чтобы посылать пакетные данные для одного разноформатного потока, хотя в альтернативных вариантах осуществления один канал может использоваться, чтобы посылать пакеты данных для множества разноформатных потоков. Примеры протоколов 154 канала доставки включают в себя пакеты протокола управления передачей (ПУП) и пакеты протокола дейтаграммы пользователя (ПДП). ПУП гарантирует доставку пакетов данных, в то время как ПДП не гарантирует доставку пакетов данных. Обычно доставка пакета данных с использованием ПУП является более надежной, но также более продолжительной, чем доставка пакетов данных с использованием ПДП.

Фиг.3 представляет блок-схему, иллюстрирующую примерные клиентские и серверные устройства и способ запуска с предсказанием более подробно. В определенных вариантах осуществления протоколы 150, 152 и 154 фиг.2 включены в клиентские и серверные устройства фиг.3, но не проиллюстрированы. Кроме того, несмотря на то, что не изображены на фиг.3, одно или более дополнительных устройств (брандмауэры, маршрутизаторы, межсетевые шлюзы, шлюзы и т.д.) могут быть расположены между клиентским устройством 102 и сервером 104.

Клиентское устройство 102 инициирует процесс запуска с предсказанием с помощью посылки запроса 182 воспроизведения с предсказанием в сервер 104. Запрос 182 воспроизведения с предсказанием может включать в себя различную информацию, чтобы помочь серверному устройству 104 в предсказании, какие потоки среды требует клиентское устройство. Эта информация может включать в себя, например, информацию о клиентском устройстве 102, информацию о пользователе (пользователях) клиентского устройства 102 и информацию о соединении между серверным устройством 104 и клиентским устройством 102. Серверное устройство 104 принимает запрос воспроизведения с предсказанием и предсказывает, какие потоки среды требует клиентское устройство 102. Это предсказание обычно основано, по меньшей мере, частично на информации, включенной в запрос воспроизведения с предсказанием.

Затем серверное устройство 104 начинает передавать потоком 184 поток (потоки) среды, который оно предсказало, какой требует клиентское устройство 102, в клиентское устройство 102. Следовательно, в проиллюстрированном примере фиг.3 поточная передача информации среды из серверного устройства 104 в клиентское устройство 102 начинается в ответ на первый запрос из клиентского устройства 102, принятый в серверном устройстве 104. В качестве части поточной передачи предсказанного потока (потоков) 184 серверное устройство 104 включает в себя описание различных разноформатных потоков, которые являются доступными для клиентского устройства 102. Эти различные разноформатные потоки обычно будут включать в себя потоки, предсказанные с помощью серверного устройства 104, а также один или более дополнительных потоков.

Клиентское устройство 102 принимает потоковую среду из серверного устройства 104 и обрабатывает потоковую среду. Эта обработка может включать в себя, например, буферизацию потоковой среды для презентации пользователю в клиентском устройстве 102. Кроме того, клиентское устройство 102 проверяет описание, принятое из серверного устройства 104, различных разноформатных потоков, которые являются доступными для клиентского устройства 102, и определяет, являются ли предсказанные потоки, переданные потоком в текущий момент в клиентское устройство 102, действительно потоками, требуемыми клиентским устройством 102. Если они являются требуемыми потоками, тогда клиентскому устройству 102 не нужно предпринимать дополнительное действие. Однако, если они не являются требуемыми потоками, тогда клиентское устройство 102 посылает выбор 186 потока в серверное устройство 104. Выбор 186 потока идентифицирует потоки, требуемые клиентским устройством 102.

Серверное устройство 104 принимает выбор 186 потока и передает потоком выбранный поток (потоки) 188 в клиентское устройство 102. Выбор 186 потока может идентифицировать один или более потоков и может идентифицировать поток, который должен заменить предсказанный поток, или, который должен быть дополнительно передан потоком в предсказанный поток. Если идентифицированный поток должен заменить предсказанный поток, тогда поточную передачу этого потока останавливают с помощью серверного устройства 104. Однако, если идентифицированный поток должен быть дополнительным к предсказанному потоку, тогда поточную передачу этого потока не останавливают с помощью серверного устройства 104.

Примерные варианты осуществления запроса 182 воспроизведения с предсказанием, ответа с помощью предсказанного потока (потоков) 184 данных, выбора 186 потока и ответа с помощью выбранного потока (потоков) 188 данных обсуждено более подробно в следующем разделе.

Запрос 182 воспроизведения с предсказанием включает в себя указатель ресурса, такой как унифицированный адрес ресурса (URL, УАР). Этот указатель ресурса идентифицирует информацию среды, которая требуется клиентским устройством 102. Однако могут быть различные варианты для этой информации среды. Например, информация среды может иметь множество видеопотоков, закодированных с различными скоростями передачи бит (для клиентских устройств, имеющих разные скорости соединения), множество видеопотоков для разных языков, множество аудиопотоков для разных языков, множество разноформатных потоков подтитров на разных языках и т.д. Однако так как клиентское устройство 102 еще не знает, что это за различные варианты, клиентское устройство 102 еще не может выбрать конкретные варианты разных доступных вариантов для информации среды.

Запрос 182 воспроизведения с предсказанием также может включать в себя одну или более пар имя-величина, которые включают в себя информацию, используемую в серверном устройстве 104 в предсказании, какой разноформатный поток (потоки) требуется клиентским устройством 102. Эти пары имя-величина включают часть имени, которая указывает тип идентифицируемой информации, и часть величины, которая указывает конкретную идентифицируемую информацию. В качестве альтернативного варианта, информация может быть идентифицирована способами, отличными от пар имя-величина, таким как последовательность величин, которые появляются в заранее определенном порядке (снимая необходимость части имени). Кроме того, в некоторых ситуациях запрос 182 воспроизведения с предсказанием может не включать в себя никакую такую информацию в парах имя-величина или иным способом.

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

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

Запрос 182 воспроизведения с предсказанием может принимать множество разных форм. В определенных вариантах осуществления запрос 182 воспроизведения с предсказанием является командой получить ТППГ. В качестве альтернативного варианта, могут использоваться другие форматы (например, другой синтаксис, команда отправить ТППГ, команда ПППРВ и т.д.). Запрос воспроизведения с предсказанием включает в себя идентификатор, который идентифицирует запрос как запрос воспроизведения с предсказанием. В определенных вариантах осуществления один или несколько заголовков используются, чтобы идентифицировать запрос как запрос воспроизведения с предсказанием, хотя информация, идентифицирующая запрос как запрос воспроизведения с предсказанием, в качестве альтернативного варианта, могла бы быть включена в тело сообщения. Кроме того, в определенных реализациях наличие одного или более таких заголовков в запросе идентифицирует запрос как запрос воспроизведения с предсказанием. Примером начального заголовка с предсказанием, который может быть использован, чтобы идентифицировать запрос как запрос воспроизведения с предсказанием, является “Pragma: PredStart=1”, причем величина “1” используется в качестве параметра, чтобы указать, что запрашивается воспроизведение с предсказанием.

Когда серверное устройство 104 принимает запрос 182 воспроизведения с предсказанием, серверное устройство 104 идентифицирует разноформатные потоки, связанные с запросом 182. Запрос 182 идентифицирует источник, который может быть одним или более файлов, каждый из которых включает в себя один или более разноформатных потоков, которые могут быть переданы потоком в клиентское устройство 102. С ресурсом связана идентификация этого разноформатного потока (потоков), и обычно информация, описывающая, что из себя представляют эти разноформатные потоки (например, скорость бит, с которой они закодированы; являются ли они аудио, видео, текстом и т.д.; на каком они языке; и т.д.). Эта идентификация может быть частью ресурса (например, она может быть в файле заголовка ресурса, таком как заголовок ASF, УФПП (усовершенствованный формат поточной передачи или усовершенствованный формат систем в файле УФПП) или, в качестве альтернативного варианта, может поддерживаться отдельно.

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

В качестве примера, заявитель допускает, что клиентское устройство 102 посылает запрос воспроизведения с предсказанием фильма, передаваемого потоком в клиентское устройство 102. Клиентское устройство 102 не знает, какой разноформатный поток (потоки) имеется для этого фильма, такой как, с какими разными скоростями бит закодирована видеоинформация, на каком языке имеется аудиоинформация, на каком языке имеются подтитры и т.д. Однако заявитель допускает, что клиентское устройство 102 точно знает, что его язык по умолчанию является английским языком и, что он имеет скорость соединения 500 килобит в секунду (Кбит/с). Таким образом, клиентское устройство посылает запрос воспроизведения с предсказанием фильма в серверное устройство 104 и включает в запрос воспроизведения с предсказанием указание, что его язык по умолчанию является английским языком и, что его скорость соединения по умолчанию равна 500 Кбит/с.

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

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

При условии, что аудио поток на английском языке закодирован со скоростью 100 Кбит/с, и скорость соединения по умолчанию для клиентского устройства равна 500 Кбит/с, серверное устройство 104 предсказывает, что клиентское устройство требует видеопоток, закодированный со скоростью 300 Кбит/с (так как аудиопоток закодирован со скоростью 100 Кбит/с, серверное устройство 104 предсказывает, что имеется недостаточная ширина полосы частот, чтобы передать потоком поток 500 Кбит/с).

Запрос воспроизведения с предсказанием не включает в себя никакую информацию о потоке подтитров, таким образом, серверное устройство 104 ищет в других местах, чтобы определить, предсказать ли, что требуется поток подтитров. Так как имеется остаток ширины полосы частот (использовано только 400 Кбит/с из 500 Кбит/с), серверное устройство 104 может предсказать, что требуется один из потоков подтитров. Если один из потоков подтитров идентифицирован в информации, связанной с фильмом, как имеющий приоритет над другим, тогда этот поток подтитров предсказывают, как являющимся потоком подтитров, требуемым клиентским устройством 102. Иначе один из потоков подтитров предсказывают как являющимся потоком подтитров, требуемым клиентским устройством 102 некоторым другим способом (например, произвольно, в порядке, в котором они указаны в информации, связанной с фильмом, и т.д.)

В качестве альтернативного варианта, серверное устройство 104 может поддерживать запись того, как часто различные разноформатные потоки требуются клиентскими устройствами. Если эта запись указывает, поток подтитров не часто требуются клиентскими устройствами (например, менее 50% времени), тогда серверное устройство 104 может предсказать, что поток подтитров не требуется клиентским устройством 102, и не передает потоком поток подтитров в клиентское устройство 102.

Следует заметить, что разноформатный поток (потоки), предсказанный с помощью серверного устройства 104, как требуемый клиентским устройством 102, является только предсказанием. Нет гарантии, что этот разноформатный поток (потоки), действительно является разноформатным потоком (потоками), требуемым клиентским устройством 102. Однако с помощью выполнения предсказания серверное устройство 104 может немедленно начать поточную передачу разноформатного потока (потоков) в клиентское устройство 102, без необходимости ждать, чтобы клиентское устройство 102 сделало выбор, какие разноформатные потоки оно требует.

Затем серверное устройство 104 передает потоком предсказанный разноформатный поток (потоки) в клиентское устройство 102. Серверное устройство 104 также передает информацию, включающую в себя идентификацию того, что, какие разноформатные потоки доступны для запрошенного ресурса, а также, какие потоки были предсказаны, как являющиеся требуемыми клиентским устройством 102. Эта информация может быть включена в предсказанный разноформатный поток (потоки) и, следовательно, передана потоком в клиентское устройство 102, или, в качестве альтернативного варианта, может быть передана некоторым другим способом, таким как способ не поточной передачи (например, через протокол управления на основе ТППГ). В определенных вариантах осуществления эта информация включена в сообщение описания сеанса в соответствии с протоколом описания сеанса (SDP, ПОС), запрос на комментарий Рабочей группы по сетям (RFC) 2327, апрель 1998 г.

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

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

Выбор в клиентском устройстве 102 может быть выполнен разными способами. Например, приложение (например, приложения устройства воспроизведения среды) может быть запрограммировано, чтобы делать выбор. В качестве другого примера, различные имеющиеся разноформатные потоки могут быть представлены пользователю клиентского устройства, и пользователю может быть разрешено выбрать, какой разноформатный поток (потоки) он или она желает. Любой выбор, сделанный с помощью клиентского устройства 192, затем посылают в серверное устройство 104.

В определенных вариантах осуществления, таких как при использовании ТППГ для поточной передачи данных, используется идентификатор сеанса поточной передачи. Идентификатор дает возможность разным запросам быть связанными друг с другом. Например, запрос воспроизведения с предсказанием может быть послан через одно соединение между клиентским устройством 102 и серверным устройством 104, в то время как запрос, который идентифицирует выбранные разноформатные потоки, посылают через другое соединение между клиентским устройством 102 и серверным устройством 104. Для того чтобы серверное устройство 104 знало, что два запроса связаны друг с другом, используется идентификатор сеанса поточной передачи. В определенных вариантах осуществления серверное устройство 104 в ответ на запрос воспроизведения с предсказанием возвращает идентификатор. Затем идентификатор может быть использован клиентским устройством 102 при посылке запроса, который идентифицирует выбранные разноформатные потоки, в серверное устройство 104, для того чтобы информировать серверное устройство 104, что запрос, идентифицирующий выбранные разноформатные потоки, связан с запросом воспроизведения с предсказанием.

Запрос, который идентифицирует выбранные разноформатные потоки, может быть в любом из множества разных форматов. В определенных вариантах осуществления запрос является запросом Выбрать, который может быть послан, например, как команда Отправить ТППГ или команда Получить ТППГ, в серверное устройство 104. В качестве альтернативного варианта, запрос может быть доставлен другими способами, такими как с использованием команды ПППРВ. Запрос Выбрать включает в себя идентификатор, который идентифицирует запрос как запрос Выбрать, ноль или более заголовков и, необязательно, тело запроса. В определенных вариантах осуществления информация, идентифицирующая выбранные разноформатные потоки, включена в один или более заголовков запроса Выбрать, хотя информация, идентифицирующая выбранные разноформатные потоки, в качестве альтернативного варианта, могла бы быть включена в тело сообщения. Кроме того, в определенных вариантах осуществления наличие одного или более таких заголовков в запросе идентифицирует запрос как запрос Выбрать. Таблица I иллюстрирует пример заголовков, которые могут быть включены в запрос Выбрать.

Таблица I
Имя заголовка Описание
Pragma: client-id Идентификатор сеанса поточной п