БЫСТРЫЙ ЗАПУСК ДЛЯ ПОТОКОВОЙ СРЕДЫ
QUICK START FOR STREAM ENVIRONMENT

Область техники, к которой относится изобретение
Это изобретение относится к передачам потоковой среды и данных, в частности к быстрому запуску для потоковой среды.
Предшествующий уровень техники
Поточная передача информации, такая как поточная передача аудио, видео и/или текста, становится чрезвычайно популярной. Понятие “поточная передача” обычно используется, чтобы указать, что данные, представляющие среду, подаются через сеть в клиентский компьютер на основе принципа “когда требуется”, а не будучи полностью предварительно доставленными перед воспроизведением. Следовательно, клиентский компьютер выполняет рендеринг потоковой информации, когда ее получают из сервера сети, а не ожидая всего доставляемого “файла”.
Широко распространенная доступность потоковой мультимедийной информации дает возможность передачи множества информационного содержания, которое ранее было недоступно, через 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
Идентификатор сеанса поточной передачи среды. Дает возможность клиентскому устройству указать, что запрос Выбрать связан с конкретным сеансом поточной передачи среды.
Pragma: stream-switch-entry
Идентификация разноформатных потоков, выбранных с помощью клиентского устройства. Отдельным разноформатным потокам, которые являются доступными для запрошенного ресурса (например, как идентифицированные с помощью серверного устройства в сообщении описания сеанса), назначены идентификаторы (которые обычно включены в сообщение описания сеанса). Список из одного или более таких идентификаторов включен в качестве параметров этого заголовка stream-switch-entry.
Информация, описывающая выбранные разноформатные потоки, может описывать выбранные разноформатные потоки различными способами. В качестве части описания выбранных разноформатных потоков может быть включен “слой прореживания”, который указывает, сколько данных разноформатного потока должно быть передано потоком в клиентское устройство 102 (например, все кадры, только ключевые кадры и т.д.). В качестве примера, описание может быть списком разноформатного потока (потоков), требуемого клиентским устройством 102, независимо от того, какие потоки были предсказаны с помощью серверного устройства 104. В качестве другого примера, описание может быть списком разноформатного потока (потоков), требуемого клиентским устройством 102, который является дополнительным к потокам, которые предсказаны с помощью серверного устройства 104. В качестве еще одного примера, описание может включать в себя одну или более величин пар потоков, причем каждая пара идентифицирует предсказанный поток и выбранный поток, который должен заменить предсказанный поток. В качестве еще одного примера описание может быть списком всех разноформатных потоков (потока), и идентификация того, что выбран ли разноформатный поток для поточной передачи в клиентское устройство 102. В качестве еще одного примера, описание может быть “отрицательным” описанием (например, перечисляющее все разноформатные потоки (поток), которые не требует клиентское устройство 102, и, следовательно, по существу, идентифицирующее разноформатные потоки (поток), которые не требует клиентское устройство 102).
Серверное устройство 104 принимает запрос Выбрать и начинает поточную передачу выбранных потоков в клиентское устройство 102. Серверное устройство 104 прекращает поточную передачу в клиентское устройство 102 любых предсказанных потоков (потока), которые были заменены выбранным потоком, но продолжает передачу потоком любых предсказанных потоков (потока), которые не были заменены выбранным потоком.
Ресурс, идентифицированный с помощью запроса воспроизведения с предсказанием, может быть связан с одной презентацией среды или мультимедиа, или, в качестве альтернативного варианта, с множеством таких презентаций. Например, ресурс может идентифицировать фильм, который является одной презентацией мультимедиа, даже если он может иметь множество потоков видео, аудио и/или подтитров. В качестве другого примера, ресурс может идентифицировать фильм, а также коммерческий знак и конечную метку для разных фильмов. В этом примере фильм был бы одной презентацией мультимедиа, коммерческий знак - второй презентацией мультимедиа и конечная метка - третьей презентацией мультимедиа.
Когда ресурс связан с множеством презентаций мультимедиа, серверное устройство 104 может предсказать, какие презентации требуются клиентским устройством 102, а также предсказать, какие разноформатные потоки в этих презентациях требуются клиентским устройством 102. Например, заявитель допускает, что имеются два разных коммерческих знака, связанных с ресурсом, причем один коммерческий знак адресован испанской аудитории, а другой адресован китайской аудитории. Если запрос воспроизведения с предсказанием указывает, что язык по умолчанию является испанским языком, тогда серверное устройство 104 может предсказать, что клиентским устройством 104 требуется коммерческий знак, адресованный испанской аудитории, а не коммерческий знак, адресованный китайской аудитории.
Следует заметить, что в некоторых ситуациях серверное устройство 104 может выбрать не выполнять предсказания. Такие ситуации могут возникать, например, когда вероятность выполнения неправильного предсказания является слишком большой. В таких ситуациях серверное устройство 104 посылает идентификацию того, что, какие разноформатные потоки являются доступными для запрошенного ресурса, но не начинает поточную передачу никаких предсказанных разноформатных потоков (потока). Вместо этого серверное устройство 104 ждет до тех пор, пока клиентское устройство не сделает выбор одного или более из доступных разноформатных потоков, и начинает поточную передачу выбранных разноформатных потоков (потока), когда получен запрос, чтобы воспроизвести выбранные разноформатные потоки (поток).
Фиг.4 представляет блок-схему последовательности операций способа, иллюстрирующую примерный процесс 200 запуска с предсказанием. Фиг.4 изображает действия, выполняемые как клиентским устройством 102 (например, фиг.1, 2 и 3), так и серверным устройством 104 (например, фиг.1, 2 и 3). Действия, выполняемые клиентским устройством 102, изображены на левой стороне фиг.4, в то время как действия, выполняемые серверным устройством 104, изображены на правой стороне фиг.4.
Сначала клиентское устройство 102 генерирует запрос воспроизведения с предсказанием (этап 202). Запрос воспроизведения с предсказанием идентифицирует одну или более презентаций среды или мультимедиа, представленных как ресурс серверного устройства 104, которые требуется передать потоком в клиентское устройство 102. Клиентское устройство 102 посылает запрос воспроизведения с предсказанием в серверное устройство 104 (этап 204), которое принимает запрос воспроизведения с предсказанием (этап 206).
В ответ на запрос воспроизведения с предсказанием серверное устройство 104 предсказывает один или более разноформатных потоков (поток), требуемых клиентским устройством 102 (этап 208). Как обсуждено выше, это предсказание может быть основано на разных факторах, таких как информация, включенная в запрос воспроизведения с предсказанием, установки по умолчанию в серверном устройстве 104, информация, связанная с запрошенным ресурсом, предыдущие запросы потоковой среды и т.д. Затем предсказанные разноформатные потоки (поток) передают потоком в клиентское устройство 102 (этап 210). В качестве части этой поточной передачи на этапе 210 идентификацию предсказанных разноформатных потоков (потока), а также доступные разноформатные потоки (поток) для запрошенного ресурса также посылают в клиентское устройство 102. В качестве альтернативного варианта, как обсуждено выше, идентификация предсказанных разноформатных потоков (потока), а также доступные разноформатные потоки (поток) для запрошенного ресурса могут быть переданы в клиентское устройство 102 другими способами, включая способы непоточной передачи.
Клиентское устройство 102 принимает предсказанные разноформатные потоки (поток) и анализирует принятую идентификацию предсказанных разноформатных потоков (потока), а также доступные разноформатные потоки (поток) для запрошенного ресурса. Затем процесс 200 продолжается на основании того, что требует ли клиентское устройство 102, чтобы в него были переданы потоком один или более разноформатных потоков (поток), отличных от предсказанных разноформатных потоков (потока). Как обсуждено выше, выбор таких других разноформатных потоков (потока) может быть сделан разными способами, такими как с помощью прикладной программы в клиентском устройстве 102 или с помощью пользовательского ввода в клиентском устройстве 102. Если другие разноформатные потоки (поток) не выбраны (этап 214), тогда клиентское устройство 102 не требует разноформатные потоки (поток), которые предсказало серверное устройство 104, и обработка этих принятых разноформатных потоков (потока) продолжается (этап 216). Эта обработка может включать в себя, например, буферизацию принятых разноформатных потоков (потока) и/или презентацию (например, воспроизведение) принятых разноформатных потоков (потока) в клиентском устройстве 102.
Однако, если разные разноформатные потоки (поток) выбраны, тогда клиентское устройство 102 посылает указание этих выбранных разноформатных потоков (потока) в серверное устройство 104 (этап 218). Серверное устройство 104 принимает указание выбранных разноформатных потоков (потока) (этап 220) и идентифицирует разноформатные потоки (поток), чтобы послать в клиентское устройство 102 (этап 222). Как обсуждено выше, потоки (поток), выбранные с помощью клиентского устройства 102, могут быть дополнительно к разноформатным потокам (потоку) или вместо одного или более предсказанных разноформатных потоков (потока). Разноформатные потоки (поток), идентифицированные с помощью серверного устройства (104) на этапе 222, включают в себя потоки, указанные как выбранные с помощью клиентского устройства 102 (принятые на этапе 222), а также могут включать в себя один или более потоков (поток), выбранных с помощью серверного устройства на этапе 208.
Затем серверное устройство 104 передает потоком идентифицированные разноформатные потоки (поток), переданные потоком в клиентское устройство 102 (этап 224). Обычно идентифицированные разноформатные потоки (поток) передают потоком с текущей позиции воспроизведения (например, когда принимают запрос выбора, идентифицируют временное местонахождение разноформатных потоков (потока), передаваемых потоком в текущий момент, а затем определяют соответствующее временное местонахождение идентифицированных разноформатных потоков (потока), и поточная передача идентифицированных разноформатных потоков (потока) начинается в этом местоположении). В качестве альтернативного варианта, могут быть использованы другие точки запуска, такие как начало идентифицированных разноформатных потоков (потока). Клиентское устройство 102 принимает идентифицированные разноформатные потоки (поток) из серверного устройства 104 (этап 226) и обрабатывает принятые разноформатные потоки (поток) (этап 216). Эта обработка может включать в себя, например, буферизацию принятых разноформатных потоков (потока) и/или презентацию (например, воспроизведение) принятых разноформатных потоков (потока) в клиентском устройстве 102.
Ссылаясь на фиг.2, быстрый запуск, обсужденный в настоящем описании, также включает в себя процесс для переключения канала (каналов) доставки во время поточной передачи. Транспортный протокол 152 может использовать множество разных каналов доставки. Обычно каждый разноформатный поток посылают из серверного устройства 104 в клиентское устройство 102 с использованием разного канала доставки. Эти каналы доставки для разных разноформатных потоков обычно являются одного и того же типа, хотя, в качестве альтернативного варианта, они могут быть разных типов. Двумя общими типами каналов доставки являются каналы ПУП и каналы ПДП. Каналы ПУП передают данные в пакетах, упомянутых как пакеты ПУП, в то время как каналы ПДП передают данные в пакетах, упомянутых как пакеты ПДП. Обычно доставка пакетов данных с использованием ПУП является более надежной, но также более продолжительной, чем доставка пакетов данных с использованием ПДП. Кроме того, могут возникать ситуации, такие как, когда брандмауэр расположен между клиентским устройством 102 и серверным устройством 104, в которых пакеты ПДП не могут приниматься с помощью клиентского устройства 102, а пакеты ПУП могут приниматься с помощью клиентского устройства 102.
Фиг.5 представляет блок-схему, иллюстрирующую клиентские и серверные устройства и процесс переключения канала доставки более подробно. В определенных вариантах осуществления протоколы 150, 152 и 154 фиг.2 включены в клиентские и серверные устройства фиг.5, но не проиллюстрированы. Кроме того, несмотря на то, что не изображено на фиг.5, одно или более дополнительных устройств (например, брандмауэры, маршрутизаторы, межсетевые шлюзы, шлюзы и т.д.) могут быть расположены между клиентским устройством 102 и серверным устройством 104. Переключение канала доставки, обсужденное в настоящем описании, дает возможность источнику информации среды начинать поточную передачу разноформатных потоков (потока) с использованием одного канала доставки (например, ПУП), а затем проверять, будет ли работать другой канал доставки (например, ПДП), и переключаться в этот другой канал доставки, если он будет работать.
Сначала клиентское устройство 102 посылает запрос 252 воспроизведения в серверное устройство 104, запрашивая, чтобы один или более разноформатных потоков были переданы потоком в клиентское устройство 102. Этот запрос 252 воспроизведения может быть запросом воспроизведения с предсказанием, как обсуждено выше, или, в качестве альтернативного варианта, другим запросом (или комбинацией множества запросов), который запрашивает, чтобы один или более разноформатных потоков были переданы потоком в клиентское устройство 102. Например, этот запрос 252 воспроизведения мог бы быть командой Отправить ТППГ с запросом Выбрать, который идентифицирует требуемые разноформатные потоки. В ответ на запрос воспроизведения серверное устройство 104 передает потоком 254 запрошенные разноформатные потоки (поток) в клиентское устройство 102 с использованием ПУП. Этот ответ включает в себя данные для 254 запрошенных разноформатных потоков (потока) во множестве пакетов ПУП.
Во время поточной передачи среды из серверного устройства 104 в клиентское устройство 102 с использованием ПУП клиентское устройство 102 посылает пакет 256 зондирования ПДП в серверное устройство 104. В определенных вариантах осуществления это выполняют с помощью серверного устройства 104, открывающего порт ПДП и посылающего идентификацию открытого порта ПДП в клиентское устройство 102 вместе с потоковой средой, с использованием ПУП 254. Клиентское устройство 102 принимает идентификацию порта ПДП, а затем может послать пакет ПДП в этот порт серверного устройства 104. В качестве альтернативного варианта, серверное устройство 104 может иметь хорошо известный порт ПДП, чтобы использовать для пакетов зондирования ПДП, и клиентское устройство 102 может послать пакет зондирования ПДП 256 в этот хорошо известный порт ПДП без того, чтобы серверное устройство 104 сначала посылало идентификацию открытого порта ПДП в клиентское устройство 102. Клиентское устройство 102 также открывает порт ПДП, которое оно может идентифицировать в серверное устройство 104, как часть пакета 256 зондирования ПДП, как порт ПДП, в котором оно может принимать пакеты ПДП.
Серверное устройство 104 принимает пакет 256 зондирования ПДП и генерирует и посылает ответный пакет 258 зондирования ПДП в клиентское устройство 102. Ответный пакет 258 зондирования ПДП является указанием в клиентское устройство 104, что пакет 256 зондирования ПДП был принят серверным устройством 104. Ответный пакет 258 зондирования ПДП выборочно включает в себя некоторый тип идентификатора пакета 256 зондирования ПДП, такой как идентификатор, включенный в пакет 256 зондирования ПДП. В качестве альтернативного варианта, простое наличие ответа в течение одного и того же соединения само может связать ответный пакет 258 с пакетом 256 зондирования ПДП. Например, если один запрос и связанный ответ являются только двумя сообщениями, посланными во время соединения, тогда ответ 258 будет рассмотрен как ответ на пакет 256 зондирования.
Следует заметить, что в то время как в некоторых вариантах осуществления один пакет 256 зондирования ПДП посылают с помощью клиентского устройства 102, в других вариантах осуществления множество пакетов 256 зондирования ПДП посылают с помощью клиентского устройства 102, и ответный пакет 258 зондирования ПДП возвращают с помощью серверного устройства 104 для каждого пакета 256 зондирования ПДП. Множество пакетов 256 зондирования ПДП может быть послано с помощью клиентского устройства 102 одновременно или, в качестве альтернативного варианта, в разные моменты времени (например, клиентское устройство 102 может ждать ответный пакет 258 зондирования ПДП, возвращаемый для пакета 256 зондирования ПДП, перед посылкой другого пакета 256 зондирования ПДП). Например, в вариантах осуществления, в которых транспортный протокол 152 включает в себя ТПРВ и ПУРВ, данные ТПРВ посылают с использованием одного канала доставки или потока, а данные ПУРВ посылают с использованием другого канала доставки или потока. Пакет 256 зондирования ПДП может быть послан для каждого из этих двух каналов или потоков. В качестве другого примера, другой пакет 256 зондирования ПДП может быть послан с помощью клиентского устройства 102 для каждого из множества разноформатных потоков (например, для каждого разноформатного потока, которое клиентское устройство 102 хотело бы переключить в поточную передачу с использованием ПДП, для каждого разноформатного потока, передаваемого потоком в текущий момент в клиентское устройство 102 с использованием ПУП, и т.д.). Эти два примера также могут быть объединены (например, два пакета 256 зондирования ПДП (один для потока ТПРВ, а другой для потока ПУРВ) могут быть посланы с помощью клиентского устройства 102 для каждого из множества разноформатных потоков).
Когда клиентское устройство 102 принимает ответный пакет 258 зондирования ПДП, клиентское устройство 102 знает, что пакеты ПДП могут быть посланы из серверного устройства 104 в клиентское устройство 102. Таким образом, клиентское устройство 102 посылает запрос в серверное устройство 104, чтобы переключиться в поточную передачу разноформатных потоков (потока) из серверного устройства 104 в клиентское устройство 102 с использованием ПДП. Обычно клиентское устройство 102 посылает запрос в серверное устройство 104 о том, чтобы все разноформатные потоки (поток) были переключены, чтобы быть передаваемыми потоком с использованием ПДП, хотя, в качестве альтернативного варианта, клиентское устройство 102 может идентифицировать в запросе только конкретные разноформатные потоки (поток), которые должны быть переключены, чтобы быть передаваемыми потоком с использованием ПДП (причем остальные разноформатные потоки (поток) по-прежнему передают потоком с использованием ПУП). В качестве альтернативного варианта, множество запросов может быть послано из клиентского устройства 102 в серверное устройство 104, причем каждый запрос идентифицирует конкретный один или более разноформатных потоков, которые должны быть переданы потоком в клиентское устройство 102 с использованием ПДП.
В ответ на этот запрос серверное устройство 104 начинает поточную передачу разноформатных потоков (потока), запрошенных в запросе 252 воспроизведения, в клиентское устройство 102 с использованием ПДП 262. В определенных вариантах осуществления, так как поточная передача разноформатных потоков (потока) с использованием ПУП уже началась, серверное устройство 104 не начинает поточную передачу с использованием ПДП в начале разноформатных потоков (потока). Вместо этого серверное устройство 104 прекращает поточную передачу данных с использованием ПУП и начинает поточную передачу с использованием ПДП в любой точке, в которой была прекращена поточная передача с использованием ПУП. В качестве альтернативного варианта, может быть некоторое перекрытие между пакетами (например, в точке, в которой происходит переключение в ПДП, некоторые пакеты, уже посланные с использованием ПУП, могут быть повторно посланы с использованием ПДП).
Запрос, чтобы переключиться в поточную передачу разноформатных потоков (потока) из серверного устройства 104 в клиентское устройство 102 с использованием ПДП 260, может быть в любом из множества разных форматов. В определенных вариантах осуществления запрос является запросом Выбрать, который может быть послан как команда Отправить ТППГ в серверное устройство 104. В качестве альтернативного варианта, запрос может быть доставлен другими способами, таким как с использованием команды ПППРВ. Запрос Выбрать включает в себя идентификатор, который идентифицирует запрос как запрос Выбрать, ноль или более заголовков, и выборочно тело сообщения. В определенных вариантах осуществления информация, запрашивающая, чтобы серверное устройство переключить в поточную передачу разноформатных потоков (потока) с использованием ПДП, включена в один или более заголовков запроса Выбрать, хотя информация, запрашивающая, чтобы серверное устройство переключить в поточную передачу разноформатных потоков (потока) с использованием ПДП, в качестве альтернативного варианта могла бы быть включена в тело сообщения, или в качестве альтернативного варианта, запрос, чтобы переключиться в поточную передачу разноформатных потоков (потока) с использованием ПДП может быть неотъемлемым в запросе. В определенных реализациях наличие заголовка Pragma: stream-switch-entry (обсужденного со ссылкой на таблицу I) и/или заголовка X-Transport (обсужденного со ссылкой на таблицу II) служит в качестве идентификатора, который идентифицирует запрос как запрос Выбрать. Таблица II иллюстрирует пример заголовков, которые могут быть включены в запрос Выбрать.
Таблица II
Имя заголовка
Описание
Pragma: client-id
Идентификатор сеанса поточной передачи среды. Дает возможность клиентскому устройству указать, что запрос Выбрать связан с конкретным сеансом поточной передачи среды.
X-Transport
Используется, чтобы указать, что разноформатные потоки (поток) должны быть переключены, чтобы передаваться потоком с использованием ПДП. Параметр “ПУП/ПДП transport” используется в определенных реализациях, чтобы указать, что разноформатные потоки (поток) должны быть переключены, чтобы передаваться потоком с использованием ПДП. Этот заголовок также обычно включает в себя параметр, который идентифицирует, какие порты (порт) ПДП, которые использует клиентское устройство для приема пакетов ТПРВ и ПУРВ.
В определенных вариантах осуществления информацию управления (например, пакеты ПУРВ) посылают из серверного устройства 104 в клиентское устройство 102 с использованием пакетов ПУП, даже если данные, представляющие фактическое содержание разноформатных потоков (потока) (например, данные, представляющие видео или аудио, которое воспроизводят в клиентском устройстве 102) посылают из серверного устройства 104 в клиентское устройство 102 с использованием пакетов ПДП. В других вариантах осуществления все данные, включая информацию управления (например, пакеты ПУРВ) посылают из серверного устройства 104 в клиентское устройство 102 с использованием пакетов ПДП.
Следует заметить, что, если пакеты ПДП не могут быть использованы, чтобы передавать потоком данные из серверного устройства 104 в клиентское устройство 102, пакет 256 зондирования ПДП не поступит в серверное устройство 104 (серверное устройство 104 никогда не пошлет ответный пакет 258 зондирования ПДП), или ответный пакет 258 зондирования ПДП не поступит в клиентское устройство 102. Таким образом, если клиентское устройство 102 не принимает ответ на пакет 256 зондирования ПДП, клиентское устройство 102 знает, что пакеты ПДП не могут быть использованы, чтобы передавать потоком данные из серверного устройства 104 в клиентское устройство 102. В качестве варианта, если клиентское устройство 102 не принимает ответ на пакет 256 зондирования ПДП, клиентское устройство 102 может повторно послать пакет (пакеты) зондирования ПДП один или более раз, чтобы проверить, что пакеты ПДП не могут быть использованы, чтобы передавать потоком данные из серверного устройства 104 в клиентское устройство 102.
Кроме того, следует заметить, что в ситуациях, в которых посылают множество пакетов 256 зондирования ПДП (например, для множества разноформатных потоков или множества потоков), ответные пакеты 258 зондирования ПДП могут быть приняты в ответ на некоторые из пакетов 256 зондирования ПДП, но не другие, указывая, что пакеты ПДП могут быть переданы потоком из серверного устройства 104 в клиентское устройство 102 для некоторых потоков или потоков (тех, для которых был принят ответный пакет 258 зондирования ПДП), но не для других потоков или потоков (тех, для которых не был принят ответный пакет 258 зондирования ПДП).
Также следует заметить, что зондирование того, что, могут ли быть использованы пакеты ПДП, чтоб передавать данные из серверного устройства 104 в клиентское устройство 102, происходит в то время как запрошенные разноформатные потоки (поток) передают потоком в клиентское устройство 102 с использованием ПУП 254. Следовательно, клиентское устройство 102 начинает принимать запрошенные разноформатные потоки (поток), без необходимости ждать определения того, что могут ли данные быть переданы потоком в клиентское устройство 102 с использованием пакетов ПДП.
Дополнительно следует заметить, что пакет 256 зондирования ПДП и ответный пакет 258 зондирования ПДП могут включать в себя любую из множества информации. Информацию о разноформатных потоках (потоке) не требуется посылать между клиентским устройством 102 и серверным устройством 104 с использованием пакета 256 зондирования ПДП и ответного пакета 258 зондирования ПДП. Важность пакета зондирования ПДП и ответного пакета зондирования ПДП заключается просто в том, что поступают ли пакеты в свои предназначенные адреса, а не в любой конкретной информации о разноформатном потоке (потоках), который включен в пакеты.
Фиг.6 представляет блок-схему последовательности операций способа, иллюстрирующую примерный процесс 300 переключения канала доставки. Фиг.6 изображает действия, выполняемые как клиентским устройством 102 (например, фиг.1, 2 и 5), так и серверным устройством 104 (например, фиг.1, 2 и 5).
Сначала клиентское устройство 102 посылает запрос потоковой среды в серверное устройство 104 (этап 302). Серверное устройство 104 принимает запрос и начинает потоковую передачу запрошенных разноформатных потоков (потока) в клиентское устройство 102 с использованием ПУП (этап 304). Серверное устройство 104 продолжает передавать потоком запрошенные разноформатные потоки (поток) с использованием ПУП, и клиентское устройство 102 принимает и обрабатывает разноформатные потоки (поток) (этап 306). Эта обработка может включать в себя, например, буферизацию и/или представление (например, воспроизведение) разноформатных потоков (потока) в клиентском устройстве 102.
Одновременно с поточной передачей запрошенных разноформатных потоков (потока) с использованием ПУП на этапе 306 зондируют линию связи между клиентским устройством 102 и серверным устройством 104, чтобы определить, могут ли данные быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП (этап 308). Как обсуждено выше, это зондирование может включать информацию и пакеты, посылаемые между клиентским устройством 102 и серверным устройством 104.
Затем процесс 300 продолжается на основании того, что указывает ли зондирование, что данные могут быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП (этап 310). Если данные не могут быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП, серверное устройство продолжает передавать потоком запрошенные разноформатные потоки (поток) с использованием ПУП, а клиентское устройство 102 принимает и обрабатывает разноформатные потоки (поток), принятые с использованием ПУП (этап 306). Однако, если данные могут быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП, тогда серверное устройство 104 переключается в поточную передачу запрошенных разноформатных потоков (потока) с использованием ПДП, вместо ПУП, и клиентское устройство 102 принимает и обрабатывает разноформатные потоки (поток), принятые с использованием ПДП (этап 312). Обычно серверное устройство 104 переключается в поточную передачу запрошенных разноформатных потоков (потока) с использованием ПДП, вместо ПУП в ответ на запрос (например, запрос Выбрать), посланный из клиентского устройства 102, запрашивающего переключение в ПДП. Кроме того, следует заметить, что не все потоки необходимо переключать в поточную передачу с использованием ПДП. Скорее клиентское устройство 102 может запросить, чтобы только конкретный один или более разноформатных потоков были переключены в поточную передачу с использованием ПДП, и, чтобы один или более остальных разноформатных потоков оставались передаваемыми потоком с использованием ПУП.
Быстрый запуск, описанный в настоящей заявке, может включать в себя способ запуска с предсказанием и/или способ переключения канала доставки. Фиг.3 и 4 выше обсуждают примерные варианты осуществления способа запуска с предсказанием. Фиг.5 и 6 выше обсуждают примерные варианты осуществления способа переключения канала доставки.
Фиг.7 представляет блок-схему последовательности операций способа, иллюстрирующую примерный процесс 350 быстрого запуска, включающий в себя как запуск с предсказанием, так и переключения канала доставки. Фиг.7 изображает действия, выполняемые как клиентским устройством 102 (например, фиг.1, 2 и 5), так и серверным устройством 104 (например, фиг.1, 2 и 5).
Сначала клиентское устройство 102 посылает запрос воспроизведения с предсказанием в серверное устройство 104 (этап 352). Серверное устройство 104 принимает запрос воспроизведения с предсказанием и предсказывает разноформатные потоки (поток), требуемые клиентским устройством 102 (этап 354). Затем серверное устройство 104 начинает поточную передачу предсказанных разноформатных потоков (потока) в клиентское устройство 102 с использованием ПУП (этап 356).
Линию связи между клиентским устройством 102 и серверным устройством 104 затем зондируют, чтобы определить, могут ли данные быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП (этап 358). Если зондирование указывает, что данные могут быть переданы потоком из серверного устройства 104 в клиентское устройство 102 с использованием ПДП, тогда серверное устройство 104 переключается в поточную передачу разноформатных потоков (потока) с использованием ПДП, вместо ПУП (этап 360); иначе серверное устройство 104 продолжает поточную передачу разноформатных потоков (потока) с использованием ПУП. Обычно серверное устройство 104 переключается в поточную передачу запрошенных разноформатных потоков (потока) с использованием ПДП, вместо ПУП в ответ на запрос (например, запрос Выбрать), посланный из клиентского устройства 102, запрашивающего переключение в ПДП. Кроме того, следует заметить, что не все потоки необходимо переключать в поточную передачу с использованием ПДП. Скорее клиентское устройство 102 может запросить, чтобы только конкретный один или более разноформатных потоков были переключены в поточную передачу с использованием ПДП, и, чтобы один или более остальных разноформатных потоков оставались передаваемыми потоком с использованием ПУП.
Кроме того, после того, как начата поточная передача запрошенных разноформатных потоков (потока) с использованием ПУП на этапе 356, клиентское устройство 102 определяет, желает ли оно разноформатные потоки (поток), отличные от предсказанных разноформатных потоков (потока) (этап 362). Если желает, тогда выбирают один или более разноформатных потоков (потока), отличных от предсказанных разноформатных потоков (потока) (дополнительно и/или вместо предсказанных разноформатных потоков), и клиентское устройство 102 посылает серверному устройству 104 указание о выбранных разноформатных потоках (потоке) (этап 364). Серверное устройство 104 принимает это указание из клиентского устройства 102 и передает потоком выбранные разноформатные потоки (поток) в клиентское устройство (этап 366).
Следует заметить, что разноформатные потоки (поток), передаваемые потоком на этапе 360, могут включать в себя разноформатные потоки (поток), предсказанные на этапе 354, и/или разноформатные потоки (поток), выбранные на этапе 364. Являются ли разноформатные потоки (поток), передаваемые потоком на этапе 360, разноформатными потоками (потоком), предсказанными на этапе 354 и/или разноформатными потоками (потоком), выбранными на этапе 364, будет зависеть от того, что выбраны ли любые разноформатные потоки (поток) на этапе 364, а также, начинает ли серверное устройство 104 поточную передачу любых выбранных разноформатных потоков (потока) на этапе 366 до или после переключения этапа 360.
В определенных вариантах осуществления переключение канала доставки этапов 358 и 360 выполняют одновременно с выбором разноформатного потока этапов 362, 364 и 366. В других вариантах осуществления переключение канала доставки этапов 358 и 360 может быть выполнено после выбора разноформатного потока этапов 362, 364 и 366 или, в качестве альтернативного варианта, перед выбором разноформатного потока этапов 362, 364 и 366.
Фиг.8 иллюстрирует общую компьютерную среду 400, которая может быть использована, чтобы реализовать способы, описанные в настоящей заявке. Компьютерная среда 400 является только одним примером вычислительной среды, и не предназначается для того, чтобы предлагать любое ограничение относительно рамок использования функциональных возможностей компьютерной и сетевой архитектуры. Компьютерная среда 400 не должна быть интерпретирована как имеющая любую зависимость или требование, относящееся к любому компоненту или комбинации компонентов, проиллюстрированных в примерной компьютерной среде 400.
Компьютерная среда включает в себя вычислительное устройство общего назначения в виде компьютера 402. Компьютер 402 может быть, например, клиентским устройством 102 или серверным устройством 104 фиг.1, 2, 3 и 5. Компьютер 402 также может быть устройством кодера, то есть источником презентации мультимедиа. Компоненты компьютера 402 могут включать в себя один или более процессоров или обрабатывающих устройств 404, системную память 406 и системную шину 408, которая соединяет различные системные компоненты, включая процессор 404, с системной памятью 406, но не ограничены перечисленными компонентами.
Системная шина 408 представляет один или более из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину, использующую множество архитектур шин. В качестве примера, такие архитектуры могут включать в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (МСА), шину расширенной промышленной стандартной архитектуры (EISA), локальную шину Ассоциации по стандартам видеооборудования (VESA) и шину межсоединения периферийных компонентов (PCI), также известную как шина второго уровня.
Компьютер 402 обычно включает в себя множество доступных для чтения с помощью компьютера носителей. Такие носители могут быть любыми имеющимися носителями, которые являются доступными с помощью компьютера 402, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и постоянные носители.
Системная память 406 включает в себя доступный для чтения с помощью компьютера носитель в виде энергозависимой памяти, такой как память с произвольным доступом (RAM) 410, и/или в виде энергонезависимой памяти, такой как память, доступная только для чтения (ROM) 412. Базовая система ввода/вывода (BIOS) 414, содержащая базовые подпрограммы, которые помогают передавать информацию между элементами в компьютере 402, например, во время запуска, хранятся в ROM 412. RAM 410 обычно содержит данные и/или программные модули, которые являются оперативно доступными обрабатывающему устройству 404, и/или в текущий момент обрабатываются в нем.
Компьютер 402 также может включать в себя сменные/постоянные, энергозависимые/энергонезависимые компьютерные запоминающие носители. В качестве примера фиг.8 иллюстрирует накопитель 416 на жестком диске, предназначенный для чтения с постоянного энергонезависимого магнитного носителя (не изображен) и записи на него, накопитель 418 на магнитном диске, предназначенный для чтения со сменного энергонезависимого магнитного диска 420 (например, “гибкого диска”) и записи на него, и накопитель 422 на оптическом диске, предназначенный для чтения со сменного энергонезависимого оптического диска 242, такого как CD-ROM, DVD-ROM или другие оптические носители, и записи на него. Каждый из накопителей: накопитель 416 на жестком диске, накопитель 418 на магнитном диске и накопитель 422 на оптическом диске, соединен с системной шиной 408 с помощью одного или более интерфейсов 426 носителя данных. В качестве альтернативного варианта, накопитель 416 на жестком диске, накопитель 418 на магнитном диске и накопитель 422 на оптическом диске могут быть соединены с системной шиной 408 с помощью одного или более интерфейсов (не изображены).
Накопители на дисках и их связанные доступные для чтения с помощью компьютера носители обеспечивают энергонезависимое хранилище доступных для чтения с помощью компьютера команд, структур данных, программных модулей и других данных для компьютера 402. Несмотря на то, что пример иллюстрирует жесткий диск 416, сменный магнитный диск 420 и сменный оптический диск 424, следует понимать, что другие типы доступных для чтения с помощью компьютера носителей, которые могут запоминать данные, являются доступными с помощью компьютера, такие как магнитные кассеты или другие магнитные запоминающие устройства, карты флэш-памяти, CD-ROM, цифровые универсальные диски (DVD) или другая оптическая память, памяти с произвольным доступом (RAM), памяти, доступные только для чтения (ROM), электрически стираемая программируемая память, доступная только для чтения (EEPROM) и тому подобные, также могут быть использованы, чтобы реализовать примерную вычислительную систему и среду.
Любое число программных модулей может быть запомнено на жестком диске 416, магнитном диске 420, оптическом диске 424, ROM 412 и/или RAM 410, включая, в качестве примера, операционную систему 426, одну или более прикладных программ 428, другие программные модули и программные данные 432. Каждый из компонентов: операционная система 426, одна или более прикладных программ 428, другие программные модули и программные данные 432 (или некоторые их комбинации) могут реализовать все или части резидентных компонентов, которые поддерживают распределенную файловую систему.
Пользователь может вводить команды и информацию в компьютер 402 через устройства ввода, такие как клавиатура 434 и устройство указывания 436 (например, “мышь”). Другие устройства 438 ввода (не изображенные специально) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, последовательный порт, сканер и/или тому подобные. Эти и другие устройства ввода соединены с обрабатывающим устройством 404 через интерфейсы 440 ввода/вывода, которые соединены с системной шиной 408, но могут быть соединены с помощью других структур интерфейса и шины, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 442 или другой тип устройства отображения также может быть соединен с системной шиной 408 через интерфейс, такой как видеоадаптер 444. Кроме монитора 442 другие периферийные устройства вывода могут включать в себя компоненты, такие как громкоговорители (не изображены) и принтер 446, которые могут быть соединены с компьютером 402 через интерфейсы 440 ввода/вывода.
Компьютер 402 может работать в сетевой среде с использованием логических соединений с одним или более дистанционных компьютеров, таких как дистанционное вычислительное устройство 448. В качестве примера, дистанционное вычислительное устройство 448 может быть персональным компьютером, портативным компьютером, сервером, маршрутизатором, сетевым компьютером, устройством однорангового узла сети или другим обычным узлом сети и тому подобным. Дистанционное вычислительное устройство 448 проиллюстрировано как портативный компьютер, который может включать в себя многие или все из элементов и признаков, описанных в настоящей заявке относительно компьютера 402.
Логические соединения между компьютером 402 и дистанционным компьютером 448 изображены как локальная сеть (LAN, ЛС) 450 и общая глобальная сеть (WAN, ГС) 452. Такие сетевые среды являются обычными в офисах, компьютерных сетях предприятий, интрасетях и Internet.
При реализации в сетевой среде ЛС компьютер 402 соединен с локальной сетью 450 через сетевой интерфейс или адаптер 454. При реализации в сетевой среде ГС компьютер 402 обычно включает в себя модем 456 или другое средство, предназначенное для установления соединений через глобальную сеть 452. Модем 456, который может быть внутренним или внешним по отношению к компьютеру 402, может быть соединен с системной шиной 408 через интерфейсы 440 ввода/вывода или другие подходящие механизмы. Следует понимать, что проиллюстрированные сетевые соединения являются примерными, и могут быть использованы другие средства установления линии (линий) связи между компьютерами 402 и 448.
В сетевой среде, такой как проиллюстрирована с помощью вычислительной среды 400, программные модули, изображенные относительно компьютера 402 или его частей, могут храниться в запоминающих устройствах дистанционной памяти. В качестве примера, дистанционные прикладные программы 458 находятся в устройстве памяти дистанционного компьютера 448. С целью иллюстрации прикладные программы и другие выполняемые программные компоненты, такие как операционная система, проиллюстрированы на фигуре как дискретные блоки, несмотря на то, что понятно, что такие программы и компоненты находятся в разное время на различных запоминающих компонентах вычислительного устройства 402, и выполняются с помощью процессора (процессоров) данных компьютера.
Различные модули и способы могут быть описаны в настоящей заявке в общем контексте выполняемых с помощью компьютера команд, таких как программные модули, выполняемые с помощью одного или более компьютеров или других устройств. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Обычно, выполняемые функции программных модулей могут быть объединены или распределены, как требуется в различных вариантах осуществления.
Реализация этих модулей и способов может храниться в некотором виде доступной для чтения с помощью компьютера среды и передаваться через эту среду. Доступная для чтения с помощью компьютера среда может быть любой доступной средой, к которой можно осуществлять доступ с помощью компьютера. В качестве примера, а не ограничения, доступная для чтения с помощью компьютера среда может содержать “компьютерную запоминающую среду” и “среду передачи данных”.
“Компьютерная запоминающая среда” включает в себя энергозависимые и энергонезависимые, сменные и постоянные носители, реализованные любым способом или с помощью любой технологии, для запоминания информации, такой как доступные для чтения с помощью компьютера команды, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя RAM, ROM, EEPROM, флэш-память или другие технологии памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, или любые другие носители, которые могут быть использованы, чтобы запоминать необходимую информацию, и доступ к которым можно осуществить с помощью компьютера, но не ограничена этими устройствами.
“Среда передачи данных” обычно осуществляет доступные для чтения с помощью компьютера команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей частоты или другой транспортный механизм. Среда передачи данных также включает в себя любую среду доставки информации. Понятие “модулированный сигнал данных” означает сигнал, который имеет один или более своих параметров, устанавливаемых или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямые проводные соединения, и беспроводную среду, такую как акустическая, РЧ, инфракрасная и другие беспроводные среды. Комбинации любого из вышеперечисленного также включены в рамки доступной для чтения с помощью компьютера среды.
Несмотря на то, что вышеприведенное описание использует язык, который является специфичным для структурных признаков и/или методологических этапов, следует понимать, что изобретение, определенное в прилагаемой формуле изобретения, не ограничено описанными специфичными признаками или этапами. Вместо этого специфичные признаки или этапы раскрыты как примерные виды реализации изобретения.