ОБНАРУЖЕНИЕ ОТКЛОНЕНИЯ ТАКТИРОВАНИЯ В СЕТЕВЫХ УСТРОЙСТВАХ ПОСРЕДСТВОМ КОНТРОЛЯ ЗАПОЛНЕНИЯ КЛИЕНТСКОГО БУФЕРА
DETECTING CLOCK SWITCH OFF IN NETWORK DEVICES BY CONTROLLING CLIENT BUFFER POPULATION

Область техники
Настоящее изобретение относится к цифровым мультимедийным воспроизводящим системам и, более конкретно, к воспроизведению мультимедийных потоков в таких системах.
Уровень техники
Цифровая мультимедийная потоковая передача, такая как потоковая передача аудио, видео и/или текстового мультимедийного содержания, становится все более популярной. Термин «потоковая передача» обычно используется для указания того, что данные, представляющие мультимедийный поток, передаются главным компьютером по сети на клиентское устройство (т.е. мультимедийное воспроизводящее устройство, выполненное как любой из множества обычных компьютеров, таких как настольный ПК (РС), ноутбук или портативный компьютер, сотовый телефон или другие беспроводные устройства связи, персональный цифровой секретарь (ПЦС) (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
ch
действительная
-  скорость генерации данных на главном устройстве 102, которая равна определенной скорости данных (бит/с)·/определенная скорость тактирования главного устройства в Гц. Таким образом:
rh=ch·dpc
,
rc
cc
действительная
-  скорость потребления данных клиентским устройством 104, которая равна определенной скорости данных (бит/с)·/определенная скорость тактирования клиента в Гц. Таким образом:
rc=cc·dpc
.
rc
rh
Соответственно выражение (1) получается вычитанием  из . Выражение (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
(ft-f0)/t
ch-cc
Значения для и  могут определяться по данным, используемым для создания графика (т.е. по данным в отчетах 210(2) о заполнении буфера). Величина  определяется по наклону линии, построенной графически на основе отчетов 210(2) о заполнении буфера. Таким образом, модуль 206 обнаружения отклонения и восстановления тактирования может просто вычислять значение отклонения тактирования между тактированием 204 клиента и тактированием 202 главного устройства на основе выражения (3) (т.е. разницу в скорости тактирования, указанную величиной ).
В указанных выше вычислениях сделано предположение, что во времени средняя сетевая пропускная способность больше, чем битовая скорость мультимедийного потока, передаваемого главным устройством 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) или Флэш память), оптическое волокно (оптическое), перезаписываемый компакт-диск (CD-RW) (оптический) и портативный компакт-диск постоянной памяти (CDROM) (оптический).
В блоке 602 способа 600 клиентское воспроизводящее устройство 104 принимает мультимедийное содержание потоковой передачи по сети 106 из главного устройства 102. Мультимедийное содержание включает в себя, например, аудио/видео и/или видеосодержание. В блоке 604 клиентское устройство 104 сохраняет данные из мультимедийного содержания в клиентском буфере 208. Во время воспроизведения мультимедийного содержания потоковой передачи буфер используется для сглаживания изменений в доставке данных, обусловленных флуктуациями сетевой ширины полосы (например, вследствие сетевых сбоев, вызванных сетевым пересечением трафиков, взаимных помех, низкокачественного беспроводного приема и т.п.), чтобы они не были заметными для пользователя при воспроизведении содержания. В блоке 606 устройство 218 контроля буфера контролирует уровень заполнения данными в буфере 208, и в блоке 608 создаются отчеты 210(1) о заполнении буфера на основе контроля буфера. Таким образом, по мере того как мультимедийное содержание передается посредством потоковой передачи в буфер и потребляется клиентским воспроизводящим устройством 104, устройством контроля буфера генерируются отчеты о заполнении буфера, которые указывают объем данных, присутствующих в буфере в различные моменты времени в процессе потоковой передачи содержания.
В блоке 610 способа 600 модуль (206, 502) обнаружения отклонения и восстановления тактирования определяет, имеется ли отклонение тактирования между тактированием на главном устройстве 102, которое регулирует потоковую передачу мультимедийного содержания, и тактированием на клиентском устройстве 104, которое регулирует воспроизведение мультимедийного содержания. Способ 700, иллюстрируемый на фиг. 7 и описанный ниже, раскрывает далее, как определяется отклонение тактирования.
dpc
ft, f0
t
В блоке 612 способа 600 вычисляется величина отклонения тактирования. Как описано выше, величина отклонения тактирования вычисляется в соответствии со следующим выражением, где  является постоянной и и  могут определяться из данных, используемых для построения графика (т.е. данных в отчетах 210(2) о заполнении буфера):
В блоке 614 способа 600 модуль (206, 502) обнаружения отклонения и восстановления тактирования или модуль 500 восстановления тактирования выполняют способ восстановления тактирования для синхронизации тактирования 204 клиента с тактированием 202 главного устройства. Способ восстановления может включать в себя, например, регулирование тактирования главного устройства, изменение содержания потоковой передачи из главного устройства (например, отбрасывание кадров) и т.п.
Как указано выше, способ 700 на фиг. 7 дополнительно описывает, каким образом модуль (206, 502) обнаружения отклонения и восстановления тактирования определяет, имеется ли отклонение тактирования между тактированием главного устройства и тактированием клиента. В блоке 702 способа 700 модуль (206, 502) определения и восстановления графически представляет уровни заполнений буфера за временной интервал во время потоковой передачи мультимедийного содержания на клиентское устройство 104. В блоке 704 вычисляется средний наклон линии, сформированной на графике. Вычисление среднего наклона может включать в себя усреднение заполнения буфера за большой временной интервал и графическое представление результата для фильтрации флуктуаций сетевой ширины полосы, что может иным образом указывать на изменения в уровнях заполнения буфера.
В блоке 706 модуль (206, 502) обнаружения отклонения и восстановления тактирования определяет, имеются ли другие факторы, иные, чем отклонение тактирования, такие как сетевое ограничение, которые могут вызвать истощение клиентского буфера(ов) 208. Например, если сетевая пропускная способность ниже, чем битовая скорость потока, заполнение буфера на клиентском устройстве 104 может также уменьшаться во времени. Контролируя дополнительную статистику, такую как число повторно переданных/потерянных пакетов на сетевом уровне, изменение времени двусторонней передачи или другая статистика, можно выявить сетевую перегрузку. Результаты истощения буфера, которые определяются как следствие сетевых ограничений, могут поэтому отфильтровываться при определении, имеется ли отклонение тактирования между тактированием главного устройства и тактированием клиента.
В блоке 708 модуль (206, 502) определения и восстановления контролирует средний наклон линии для определения, имеется ли отклонение тактирования между тактированием главного устройства и тактированием клиента. Если средний наклон линии равен нулю, то модуль (206, 502) определения и восстановления определяет, что отклонение тактирования отсутствует, как показано в блоке 710. Если средний наклон линии отрицательный, то модуль (206, 502) определения и восстановления определяет, что тактирование клиента быстрее, чем тактирование главного устройства, как показано в блоке 712. Если средний наклон линии положительный, то модуль (206, 502) определения и восстановления определяет, что тактирование клиента медленнее, чем тактирование главного устройства, как показано в блоке 714.
Иллюстративная вычислительная среда
Фиг. 8 показывает приведенную для примера вычислительную среду, подходящую для реализации компьютерных устройств, таких как главное устройство 102 и клиентское воспроизводящее устройство 104, как описано выше со ссылкой на фиг. 1-7. Хотя на фиг. 8 показана одна конкретная конфигурация, такие компьютерные устройства могут быть реализованы в других компьютерных конфигурациях.
Вычислительная среда 800 включает в себя компьютерную систему общего назначения в виде компьютера 802. Компоненты компьютера 802 могут включать в себя, без ограничения указанным, один или более процессоров или процессорных блоков 804, системную память 806 и системную шину 808, которая соединяет множество системных компонентов, включая соединение процессора 804 с системной памятью 806.
Системная шина 808 представляет один или более любых из множества типов структур шин, включая шину памяти или контроллер памяти, периферийную шину, скоростной графический порт и процессорную или локальную шину, использующую любую из множества шинных архитектур. Примером системной шины 808 может быть шина внутреннего соединения периферийных компонентов (PCI), также известная как шина расширения.
Компьютер 802 включает в себя множество машиночитаемых носителей. Такими носителями могут быть любые доступные носители, к которым может обращаться компьютер 802, и включают в себя энергозависимые и энергонезависимые носители, съемные и несъемные носители. Системная память 806 включает в себя машиночитаемый носитель в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) (RAM) 810, и/или энергонезависимую память, такую как постоянное запоминающее устройство (ПЗУ) (ROM) 812. Базовая система ввода/вывода (BIOS) 814, содержащая основные подпрограммы, которые способствуют передаче информации между элементами в компьютере 802, например, при запуске, сохраняется в ПЗУ 812. ОЗУ 810 содержит данные и/или программные модули, которые непосредственно доступны для процессорного блока 804 и/или обрабатываются в текущий момент процессорным блоком 804.
Компьютер 802 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители для хранения данных. В качестве примера, фиг. 8 показывает накопитель 816 на жестком диске для считывания с несъемного энергонезависимого магнитного носителя и записи на него (не показан), накопитель 818 на магнитном диске для считывания со съемного энергонезависимого магнитного диска 820 и записи на него (например, «гибкий диск») и накопитель 822 на оптическом диске для считывания со съемного энергонезависимого оптического диска 824 и записи на диск, такой как CD-ROM, DVD-ROM или другие оптические носители. Накопитель 816 на жестком диске, накопитель 818 на магнитном диске и накопитель 822 на оптическом диске соединены с системной шиной 808 посредством одного или более интерфейсов 825 носителей данных. Альтернативно, накопитель 816 на жестком диске, накопитель 818 на магнитном диске и накопитель 822 на оптическом диске могут соединяться с системной шиной 808 посредством интерфейса SCSI (не показан).
Накопители на дисках и связанные с ними машиночитаемые носители обеспечивают энергонезависимое сохранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 802. Хотя в примере показан жесткий диск 816, съемный магнитный диск 820 и съемный оптический диск 824, понятно, что для реализации иллюстративной вычислительной системы и среды могут использоваться и другие типы машиночитаемых носителей, которые могут сохранять данные, доступные для компьютера, например магнитные кассеты или другие магнитные запоминающие устройства, карты флэш-памяти, CD-ROM, DVD или другие оптические запоминающие устройства, ОЗУ, ПЗУ, ЭСППП.
Любое число программных модулей может сохраняться на жестком диске 816, магнитном диске 820, оптическом диске 824, ПЗУ 812 и/или ОЗУ 810, включая, в качестве примера, операционную систему 826, одну или более прикладных программ 828, другие программные модули 830 и программные данные 832. Каждая из таких операционной системы 826, одной или более прикладных программ 828, других программных модулей 830 и программных данных 832 (или некоторая их комбинация) может включать в себя вариант осуществления схемы кэширования для информации доступа пользователя к сети.
Компьютер 802 может включать в себя множество машиночитаемых носителей, определяемых как среда передачи. Такая среда передачи воплощает машиночитаемые команды, структуры данных, программные модули или другие данные в модулированных сигналах данных, таких как несущее колебание или другой передающий механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, в котором одна или более характеристик установлены или изменяются для кодирования информации в сигнале. В качестве примера, но не ограничения, среда передачи включает в себя проводную среду, например проводную сеть или прямое проводное соединение, и беспроводную среду, например акустическую, РЧ, инфракрасную и другую беспроводную среду. Комбинация любых из указанных выше сред передачи также включается в объем машиночитаемого носителя.
Пользователь может вводить команды и информацию в компьютерную систему 802 через устройства ввода, такие как клавиатура 834 и графическое устройство 836 (например, «мышь»). Другие устройства 838 ввода (не показаны конкретно) могут включать в себя микрофон, джойстик, игровую приставку, спутниковую антенну, последовательный порт, сканер и/или тому подобное. Эти и другие устройства ввода соединяются с процессорным блоком 804 через интерфейс 840 ввода/вывода, который соединяется с системной шиной 808, но может соединяться с другими интерфейсами и шинными структурами, такими как параллельный порт, игровой порт или универсальный последовательный порт (USB).
Монитор 842 или другой тип устройства отображения может также соединяться с системной шиной 808 через интерфейс, такой как видеоадаптер 844. В дополнение к монитору 842, другие периферийные устройства вывода могут включать в себя, например, динамики (не показаны) и принтер 846, которые могут соединяться с компьютером 802 через интерфейс 840 ввода/вывода.
Компьютер 802 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленное вычислительное устройство 848. Удаленное компьютерное устройство 848 может представлять собой персональный компьютер, портативный компьютер, сервер, маршрутизатор, сетевой компьютер, одноранговое устройство или другой общий сетевой узел и тому подобное. Удаленное компьютерное устройство 848 показано как портативный компьютер, который может включать в себя множество или все из элементов и признаков, описанных для компьютерной системы 802.
Логические соединения между компьютером 802 и удаленным компьютером 848 изображены в виде локальной сети (LAN) 850 и общей глобальной сети (WAN) 852. Такие сетевые среды являются обычными в офисах, компьютерных сетях предприятия, интранете и Интернете. В случае выполнения в сетевой среде LAN, компьютер 802 соединяется с локальной сетью 850 через интерфейс или адаптер 854. В случае выполнения в сетевой среде WAN, компьютер 802 включает в себя модем 856 или другое средство для установления связи с другой проводной сетью 852. Модем 856, который может быть внутренним или внешним для компьютера 802, может соединяться с системной шиной 808 через интерфейс 840 ввода/вывода или другие соответствующие механизмы. Понятно, что показанные сетевые соединения приведены для примера и что могут использоваться другие средства установления линии(й) связи между компьютерами 802 и 848.
В сетевой среде, такой как вычислительная среда 800, программные модули, изображенные относящимися к компьютеру 802, или их части могут сохраняться на удаленном запоминающем устройстве. В качестве примера, удаленные прикладные программы 858 находятся на запоминающем устройстве удаленного компьютера 848. Для иллюстрации, прикладные программы и другие исполняемые программные компоненты, такие как операционная система, показаны как отдельные блоки, хотя понятно, что такие программы и компоненты находятся в разное время в разных запоминающих компонентах компьютерной системы 802 и выполняются процессором(ами) данных компьютера.
Заключение
Хотя изобретение описано в терминах структурных признаков и/или действий способа, подразумевается, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничивается конкретными описанными признаками или действиями. Напротив, эти конкретные признаки и действия раскрыты в качестве приведенных для примера форм воплощения заявленного изобретения.