Обнаружение отклонения тактирования в сетевых устройствах посредством контроля заполнения клиентского буфера

Иллюстрации

Показать все

Изобретение относится к цифровым мультимедийным воспроизводящим системам. Техническим результатом является снижение прерываний при воспроизведении мультимедийного содержания потоковой передачи. Цифровая мультимедийная система использует отчеты о заполнении клиентского буфера для обнаружения отклонения тактирования между тактированием на главном устройстве-источнике, которое доставляет мультимедийное содержание потоковой передачи, и тактированием на клиентском воспроизводящем устройстве, которое принимает мультимедийное содержание потоковой передачи. 3 н. и 15 з.п. ф-лы, 8 ил.

Реферат

Область техники

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

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

Цифровая мультимедийная потоковая передача, такая как потоковая передача аудио, видео и/или текстового мультимедийного содержания, становится все более популярной. Термин «потоковая передача» обычно используется для указания того, что данные, представляющие мультимедийный поток, передаются главным компьютером по сети на клиентское устройство (т.е. мультимедийное воспроизводящее устройство, выполненное как любой из множества обычных компьютеров, таких как настольный ПК (РС), ноутбук или портативный компьютер, сотовый телефон или другие беспроводные устройства связи, персональный цифровой секретарь (ПЦС) (PDA), игровая консоль, IP-телеприставка, ручной ПК (PC) и т.п.). Клиентское устройство воспроизводит содержание потоковой передачи по мере того, как содержание принимается от главного компьютера, а не ожидает всего содержания или целого «файла», подлежащего доставке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное раскрытие

Введение

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

Примерная среда

Фиг. 1 показывает примерную среду 100, подходящую для обнаружения отклонения тактирования между тактированием на главном устройстве-источнике, которое доставляет мультимедийное содержание потоковой передачи, и тактированием на клиентском воспроизводящем устройстве, которое принимает мультимедийное содержание потоковой передачи. Сеть 106 предназначена для представления любого множества обычных сетевых топологий и типов (в том числе оптические, проводные и/или беспроводные сети), использующих любой из множества обычных сетевых протоколов (в том числе общие и/или уникальные протоколы). Сеть 106 может включать в себя, например, домашнюю сеть, корпоративную сеть или Интернет, а также возможны, по меньшей мере, части одной или более локальных сетей (ЛВС) (LAN) и/или глобальных сетей (ГС) (WAN).

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

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

Главное устройство 102 может обеспечивать доступность любых из множества данных для потоковой передачи на клиентское устройство 104, включая информационное содержание, такое как аудио, видео, текст, изображение и тому подобное. Однако, как используется здесь в приведенных для примера вариантах осуществления, описанных ниже, мультимедийное содержание 200 предназначается для представления аудио/видео (А/В) (A/V) содержания или только видеосодержания. Кроме того, ссылки на «мультимедийное содержание», «мультимедийную потоковую передачу», «потоковую передачу видео», «видеосодержание» и их любые вариации в общем случае предназначены для включения аудио/видео содержания. Термин «потоковая передача» используется для указания, что данные, представляющие мультимедийное содержание, передаются по сети 106 на клиентское воспроизводящее устройство 104 и что воспроизведение содержания может начинаться до того, как будет содержание передано полностью. Данные могут быть общедоступными или, альтернативно, ограниченными (например, предназначенными только для определенных пользователей; доступными только при внесении соответствующей платы, предназначенными для пользователей, имеющих доступ к конкретной сети, и т.п.). Дополнительно, данные могут быть данными типа «по запросу» (например, предварительно записанное, сохраненное содержание известного размера) или, альтернативно, данными прямой трансляции (например, не имеющими известного размера, такими как воспроизведение цифрового представления концерта, съемка которого производится во время исполнения концерта и которое делается доступным для потоковой передачи сразу после съемки).

Иллюстративные варианты осуществления

Фиг. 2 показывает приведенный для примера вариант осуществления цифровой мультимедийной системы, подходящей для обнаружения отклонения тактирования между тактированием на главном устройстве-источнике 102, которое доставляет мультимедийное содержание потоковой передачи, и тактированием на клиентском воспроизводящем устройстве 104, которое принимает мультимедийное содержание потоковой передачи. Главное устройство 102 в общем случае выполнено с возможностью кодирования мультимедийного/видео содержания 200 со скоростью, регулируемой тактированием 202 главного устройства 102. Главное устройство 102 может затем сохранять и/или осуществлять потоковую передачу кодированного мультимедийного/видео содержания 200 по сети 106 на клиентское устройство 104. Клиентское устройство 104 в общем случае выполнено с возможностью приема мультимедийного/видео содержания 200 потоковой передачи и воспроизведения содержания потоковой передачи со скоростью, регулируемой тактированием 204 клиентского устройства 104.

В настоящем варианте осуществления главное устройство 102 включает в себя модуль 206 обнаружения отклонения и восстановления тактирования, выполненный для определения наличия отклонения тактирования между тактированием 204 клиента и тактированием 202 главного устройства. Модуль 206 обнаружения и восстановления определяет отклонение тактирования на основе информации, которая принимается от клиентского устройства 104 относительно клиентского мультимедийного буфера(ов) 208. Клиентское устройство 104 передает буферную информацию на главный компьютер 102 в форме отчетов 210 о заполнении буфера. Отчеты 210 о заполнении буфера указывают уровень данных, присутствующих в клиентском мультимедийном буфере(ах) 208 на клиентском устройстве 104 во время потоковой передачи мультимедийного содержания 200 с главного устройства 102 на клиентское устройство 104. Уровень данных, указанный в отчетах 210 о заполнении буфера, может включать в себя уровень аудиоданных 212 в аудиобуфере 208(1) и/или уровень видеоданных 214 в видеобуфере 208(2). Модуль 206 обнаружения отклонения и восстановления тактирования на главном устройстве 102 определяет отклонение тактирования на основе отчетов 210(2) о заполнении буфера, которые он принимает от клиентского устройства 104, как описано более подробно ниже.

Главное устройство 102 сохраняет один или более файлов мультимедийного содержания 200, из которых может быть сделан выбор приложением 216 мультимедийного воспроизведения на клиентском устройстве 104 (например, в ответ на пользовательский ввод посредством приложения 216 мультимедийного воспроизведения). Кроме того, главное устройство 102 обеспечивает доступ к содержанию, передаваемому в реальном времени, такому как прямая трансляция кабельного ТВ или Интернет-трансляция, потоковая передача которого осуществляется на клиентское воспроизводящее устройство 104 по запросу. В настоящем варианте осуществления мультимедийное содержание 200 относится к видеосодержанию, которое обычно имеет аудиокомпоненту. Таким образом, как указано выше, ссылки на «мультимедийное содержание», «мультимедийную потоковую передачу», «потоковую передачу видео», «видеосодержание» и любые их вариации в общем предназначены для обозначения аудио/видео (А/В) и/или видеосодержания. Главное устройство 102 передает запрошенное мультимедийное содержание 200 в виде потока данных по сети 106 в приложение 216 мультимедийного воспроизведения на клиентском устройстве 104.

Клиентское устройство 104 поддерживает мультимедийный(ые) буфер(ы) 208 для сглаживания изменений в доставке данных по сети 106 (например, сетевые сбои, вызванные сетевым пересечением трафиков, взаимные помехи, низкокачественный беспроводной прием), с тем чтобы они были незаметными для пользователя во время воспроизведения содержания. При благоприятных сетевых условиях уровень заполнения буфера(ов) 208 будет относительно высок (например, >80% заполнения), и будет указан уровень работоспособного заполнения. Высокий уровень заполнения в буфере(ах) 208 в общем обеспечивает воспроизведение в реальном времени всего мультимедийного содержания в буфере(ах) 208, а также остающегося потокового мультимедийного содержания из главного устройства 102.

Устройство 218 контроля буфера на клиентском устройстве 104 выполнено с возможностью контроля уровня заполнения буфера(ов) 208 и для создания отчетов 210(1) о заполнении буфера, пока осуществляется потоковая передача мультимедийного содержания 200 из главного устройства 102. Отчеты 210 о заполнении буфера являются механизмом, посредством которого клиентское устройство 104 сообщает информацию о заполнении буфера главному устройству 102. В общем случае эта информация используется модулем 206 обнаружения отклонения и восстановления тактирования на главном устройстве 102 для определения того, имеется ли отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства.

Фиг. 3 иллюстрирует четыре сценария, показывающих, каким образом могут выглядеть уровни заполнения клиентского мультимедийного буфера 208 во времени, когда главное устройство 102 осуществляет потоковую передачу мультимедийного содержания на клиентское устройство 104. В каждом сценарии буфер 208 запускается при относительно высоком уровне или заполнен на уровне работоспособного заполнения, примерно равного 80%. В первом сценарии, показанном линией 300, уровень заполнения буфера постепенно увеличивается во времени. Это указывает, что данные в буфере 208 пополняются быстрее, чем они потребляются. В этом сценарии буфер 208 будет, в конце концов, переполнен данными, что обычно приводит к переполнению данными (кадрами) или сбрасыванию/пропуску данных клиентом 104, которые не воспроизводятся или не сохраняются в главном буфере (не показан) на главном устройстве 102. Во втором сценарии, показанном линией 302, уровень заполнения буфера остается одинаковым во времени. Это указывает, что данные в буфере 208 наполняются с той же скоростью, с какой они потребляются. В третьем сценарии, показанном линией 304, уровень заполнения буфера постепенно понижается во времени. Это указывает, что данные в буфере 208 пополняются медленнее, чем они потребляются. В третьем сценарии буфер 208 будет, в конце концов, истощен, что приводит к паузе или прерыванию в мультимедийном воспроизведении на клиентском устройстве 104, пока буфер 208 восстанавливается (т.е. пополняется данными). В четвертом сценарии, показанном линией 306, заполнение буфера быстро снижается во времени, указывая, что данные в буфере 208 пополняются с гораздо меньшей скоростью, чем они потребляются.

Для определения, имеется ли отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства, модуль 206 обнаружения отклонения и восстановления тактирования на главном устройстве 102 принимает отчеты 210(2) о заполнении буфера, созданные устройством 218 контроля буфера на клиентском устройстве 104, и представляет графически уровни заполнения буфера во времени, как указано в отчетах 210(2) о заполнении буфера. Таким образом, модуль 206 обнаружения отклонения и восстановления тактирования может создавать графики, такие как показано и описано выше со ссылкой на фиг. 3. Модуль 206 обнаружения отклонения и восстановления тактирования контролирует наклоны линий на графиках для определения, имеется ли отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства. В общем случае, линия с постепенным наклоном, положительным или отрицательным, указывает, что имеется отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства. Как описано более подробно ниже, наклон усредняется во времени для сглаживания сетевого дрожания.

Согласно фиг. 3, например, пока строится график, соответствующий, например, линии 300, модуль 206 обнаружения отклонения и восстановления определяет, что линия 300 имеет постепенный наклон, указывая на присутствие отклонения тактирования между тактированием 204 клиента и тактированием 202 главного устройства. Кроме того, так как наклон линии 300 положительный, модуль 206 обнаружения отклонения и восстановления тактирования определяет, что тактирование 204 клиента выполняется со скоростью ниже, чем тактирование 202 главного устройства, т.к. данные в буфере 208 потребляются (т.е. воспроизводятся приложением 216 воспроизведения на клиентском устройстве 104) со скоростью, меньшей, чем скорость пополнения данных главным устройством 102 (управляемым тактированием 202). Подобно этому для других графиков, созданных из отчетов 210(2) о заполнении буфера, модуль 206 обнаружения и восстановления будет определять из представленных графически линий, имело ли место отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства. Например, для линии 302 фиг. 3 модуль 206 обнаружения и восстановления определит, что отклонение тактирования отсутствует, т.к. наклон линии 302 равен нулю. Для линии 304 модуль 206 обнаружения и восстановления определит согласно отрицательному наклону линии, что имело место отклонение тактирования и что тактирование 104 клиента выполнялось быстрее, чем тактирование 202 главного устройства, т.к. данные в буфере 208 потребляются быстрее, чем пополнение данных главным устройством 102. Для линии 306 модуль 206 обнаружения и восстановления определит в соответствии со значительным отрицательным наклоном линии 306, что имеет место чрезмерное отклонение тактирования, такое как сетевой отказ, который вызывает быстрое истощение клиентсткого буфера 208. Сетевой отказ может отличаться от отклонения тактирования, т.к. скорость входящего мультимедийного содержания из сети, в случае сетевого отказа, доходит до нуля, в то время как, вероятно, остается постоянной, в среднем, в отсутствие сетевого отказа. Кроме того, во время сетевой перегрузки поток мультимедийного содержания может замедлиться, но не полностью снизиться до нуля. Например, если сетевая пропускная способность ниже, чем битовая скорость потока (например, при попытке отправить поток скоростью 6 Мбит/с по сети со скоростью передачи 5,5 Мбит/с), заполнение буфера на клиентском устройстве может также истощаться во времени. Контролируя дополнительную статистику, такую как число повторных передач/потерь пакетов на сетевом уровне, изменение времени двусторонней передачи или другая статистика, можно идентифицировать такую сетевую перегрузку. Поэтому результаты истощения буфера, которые определяются как результат сетевых ограничений, могут отфильтровываться, когда определяется, имеется ли отклонение тактирования между тактированием главного устройства и тактированием клиента.

Фиг. 4 показывает дополнительный сценарий, в котором уровень заполнения буфера флуктуирует во времени вследствие флуктуаций сетевой ширины полосы, как показано на графике линией 400. В этом сценарии заполнение буфера может не проявляться в чистом увеличении или уменьшении во времени. Однако флуктуации сетевой ширины полосы могут отфильтровываться посредством усреднения заполнения буфера за большой временной промежуток и графического представления результата (например, линия 402). Модуль 206 обнаружения и восстановления может затем вычислять наклоны линии 402 и определять, что заполнение фактически уменьшается при постоянной скорости. Поэтому, как указано выше, модуль 206 обнаружения и восстановления определяет по постепенному отрицательному наклону линии 402, что имеется отклонение тактирования и что тактирование 104 клиента выполняется быстрее, чем тактирование 202 главного устройства.

В дополнение к определению, имеется ли отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства, модуль 206 обнаружения и восстановления вычисляет разницу в скорости тактирования между тактированием 202 главного устройства и тактированием 204 клиента. Различные математические модели (например, математическая низкочастотная фильтрация, статический анализ и т.д.) могут использоваться при вычислении разницы в скорости тактирования между тактированием 202 главного устройства и тактированием 204 клиента на основе данных о заполнении буфера из клиентского буфера 208. В одном воплощении разница в скорости тактирования между тактированием 202 главного устройства и тактированием 204 клиента определяется следующими определениями и выражениями (1), (2) и (3):

rh-rc=dpc·(ch-cc) (1),

ch - действительная скорость тактирования 202 главного устройства в Гц.

cc - действительная скорость тактирования 204 клиента в Гц.

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

rh - действительная скорость генерации данных на главном устройстве 102, которая равна определенной скорости данных (бит/с)· ch /определенная скорость тактирования главного устройства в Гц. Таким образом:

rh=ch·dpc ,

rc - действительная скорость потребления данных клиентским устройством 104, которая равна определенной скорости данных (бит/с)· cc /определенная скорость тактирования клиента в Гц. Таким образом:

rc=cc·dpc .

Соответственно выражение (1) получается вычитанием rc из rh . Выражение (1) может альтернативно выражаться относительно заполнения буфера и времени следующими определениями и выражениями (2):

rh-rc=(ft-f0)/t (2),

f0 - заполнение буфера (в битах данных) в нулевое время, которое является процентом заполнения буфера в нулевое время, умноженное на размер буфера 208 (в битах).

ft - заполнение буфера (в битах данных) в момент t , которое является процентом заполнения буфера в момент t , умноженное на размер буфера 208 (в битах).

Приравнивая указанные выше выражения (1) и (2), решение для различных скоростей тактирования (т.е. величина отклонения тактирования) между тактированием 202 главного устройства и тактированием 204 клиента определяется следующим выражением(3):

dpc·(ch-cc)=(ft-f0)/t,

Значения для ft, f0 и t могут определяться по данным, используемым для создания графика (т.е. по данным в отчетах 210(2) о заполнении буфера). Величина (ft-f0)/t определяется по наклону линии, построенной графически на основе отчетов 210(2) о заполнении буфера. Таким образом, модуль 206 обнаружения отклонения и восстановления тактирования может просто вычислять значение отклонения тактирования между тактированием 204 клиента и тактированием 202 главного устройства на основе выражения (3) (т.е. разницу в скорости тактирования, указанную величиной ch-cc ).

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

После определения того, что имеется отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства, и вычисления значения отклонения тактирования модуль 206 обнаружения и восстановления может выполнять способ восстановления для синхронизации тактирований. Например, главное устройство 102 может послать запрос на изменение тактирования клиенту, указывая клиенту на увеличение или уменьшение скорости тактирования 204 клиента. Если тактирование 204 клиента отстает от тактирования 202 главного устройства, главное устройство 102 может пропускать некоторые видеокадры из потоковой передачи мультимедийного содержания 200 для клиента 104 для перезахвата тактирования 204 клиента тактированием 202 главного устройства. Главное устройство 102 может также регулировать свое собственное тактирование для синхронизации тактирований. Синхронизация тактирования 204 клиента и тактирования 202 главного устройства помогает снизить прерывания в воспроизведении, которые могут случаться, когда клиентский буфер 208 истощается в результате того, что тактирование 202 клиента выполняется быстрее, чем тактирование 202 главного устройства. Кроме того, синхронизация тактирования 204 клиента и тактирования 202 главного устройства способствует тому, что содержание прямой трансляции, кодированное главным устройством 102 при скорости тактирования главного устройства, может восприниматься или воспроизводиться на клиентском устройстве 104 как исправление в реальном времени содержания при той же скорости, с которой оно кодируется на главном устройстве 102.

Фиг. 5 показывает один или более дополнительных примерных вариантов осуществления цифровой мультимедийной системы, подходящей для обнаружения отклонения между тактированием на главном устройстве 102, которое доставляет мультимедийное содержание потоковой передачи, и тактированием на клиентском воспроизводящем устройстве 104, которое принимает мультимедийное содержание потоковой передачи. Главное устройство 102 и клиентское устройство 104 в основном конфигурированы, как описано выше для варианта осуществления, представленного на фиг. 2. Однако в одном варианте осуществления по фиг. 5 клиентское устройство 104 может дополнительно конфигурироваться с модулем 502 обнаружения отклонения и восстановления тактирования для определения, имеется ли отклонение тактирования между тактированием 204 клиента и тактированием 202 главного устройства, и вычисления разницы в скорости тактирования между тактированием 102 главного устройства и тактированием 204 клиента, как описано выше. Кроме того, при определении отклонения тактирования и вычисления разности скорости тактирования между тактированием 102 главного устройства и тактированием 204 клиента, модуль 502 определения и восстановления на клиентском устройстве 104 может выполнять способ восстановления тактирования (например, путем настройки скорости тактирования 204 клиента согласно определенному процентному отношению) для синхронизации тактирования 204 клиента с тактированием 202 главного устройства. В другом варианте осуществления главное устройство 102 может включать в себя модуль 500 восстановления тактирования, выполненный с возможностью приема запроса и/или информации восстановления тактирования из модуля 502 обнаружения отклонения и восстановления тактирования на клиентском устройстве 104. При приеме такого запроса и/или информации модуль 500 восстановления тактирования может выполнять способ восстановления тактирования, такой как описано выше для варианта осуществления по фиг. 2.

Иллюстративные способы

Приведенные для примера способы обнаружения отклонения тактирования в цифровой мультимедийной системе между тактированием на главном устройстве-источнике 102, которое доставляет мультимедийное содержание потоковой передачи, и тактированием на клиентском воспроизводящем устройстве 104, которое принимает мультимедийное содержание потоковой передачи, описано ниже со ссылкой на блок-схемы алгоритмов, показанные на фиг. 6 и 7. Способы применимы к вариантам осуществления, описанным со ссылкой на фиг. 1-5. Хотя один или более способов описываются посредством блок-схем и текста, связанного с блоками блок-схем, понятно, что элементы описанных способов не обязательно должны осуществляться в том порядке, в котором они представлены, и что альтернативные порядки могут обеспечивать сходные преимущества. Кроме того, способы не являются исключительными и могут выполняться отдельно или в комбинации с другими. Элементы описанных способов могут осуществляться любым соответствующим средством, в том числе, например, аппаратными логическими блоками на СИС (ASIC) или машиночитаемыми командами, определенными на машиночитаемом носителе.

Термин «машиночитаемый носитель», как используется здесь, может относиться к любому средству, которое содержит, сохраняет, осуществляет информационный обмен, распространяет или передает команды для использования или выполнения процессором. Машиночитаемый носитель может быть, без ограничения, электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой, устройством, элементом или средой распространения. Более конкретные примеры машиночитаемого носителя включают в себя, среди прочего, электрические (электронные) соединения, имеющие одно или более из следующего: проводники, портативная компьютерная дискета (магнитная), оперативное запоминающее устройство (ОЗУ) (RAM) (магнитное), постоянное запоминающее устройство (ПЗУ) (ROM) (магнитное), стираемое программируемое постоянное запоминающее устройство ((СППЗУ) (EPROM) или Флэ