МЕТОДИКА ДЛЯ ДИНАМИЧЕСКОГО УПРАВЛЕНИЯ ПАКЕТНЫМИ ПЕРЕДАЧАМИ ДАННЫХ
METHOD FOR DYNAMIC CONTROL OF PACKET DATA TRANSMISSION

Область техники, к которой относится изобретение
Изобретение относится к передаче данных, а конкретнее к методике для управления потоковыми пакетными передачами данных.
Уровень техники изобретения
Увеличивающиеся объемы данных передаются от серверов к клиентам посредством инфраструктур связи, например сетей Интернет-протокола (IP) на основе пакетов. Одним частным применением, которое набирает популярность, является потоковая передача мультимедийных данных. Тем не менее, должны быть сделаны улучшения в предоставлении надежных потоков данных перед распространенным внедрением таких услуг. Например, скорости линии передачи данных между IP-сетью и клиентским устройством пользователя имеют склонность быть неустойчивыми, любые нарушения в доставке данных пользователю могут приводить к серьезному ухудшению воспроизведения для конечного пользователя, т.е. ухудшению качества информации, наблюдаемой пользователем. В частности, важно, чтобы имелась достаточная поставка пакетов данных на клиентское устройство, которые нужно получать мультимедийному приложению, так как идет воспроизведение (т.е. отображение мультимедийного файла мультимедийным приложением или проигрывателем).
Во многих случаях скорость пакетной передачи не может меняться, так как эта скорость зависит от пропускной способности линии связи (либо изменить скорость пакетной передачи, по меньшей мере, неосуществимо). Тем не менее, скорость, на которой данные подаются в устройство вывода пользователя, часто должна быть изменена. Обычно для потоковых приложений такие регулировки достигаются с использованием «переключения потока». С помощью переключения потока тот же самый мультимедийный контент, например определенный видеоряд, кодируется заранее на разных скоростях передачи битов и хранится на сервере. Поэтому доступны разные версии одного и того же потока. Во время передачи сервер выбирает конкретную версию, которая имеет наиболее подходящую скорость передачи битов, исходя из текущей доступной пропускной способности сети и исходя из состояния буфера клиента. Логика переключения, применяемая сервером, принимает решение, когда и где переключаться на другую версию потока. В случае так называемого «понижающего переключения» поток переключается на версию с более низкой кодированной скоростью передачи битов. В случае так называемого «повышающего переключения» поток формируется на версию с более высокой кодированной скоростью передачи битов. Во многих реализациях критерии для переключения используют предопределенные пороговые величины, заданные по отношению к состоянию буфера клиента. В одном примере пороговые величины основываются на уровне заполнения буфера, который представляет количество данных в буфере клиента в байтах. В другом примере пороговые величины основываются на длительности воспроизведения (РТ) сохраненной информации в буфере клиента, которая представляет количество времени в секундах, которое займет воспроизведение данных, уже находящихся в буфере клиента, для пользователя. В этом документе описываются примеры, касающиеся длительности воспроизведения, хотя вместо этого могут использоваться уровень заполнения буфера или другие подходящие параметры.
DOWN
Некоторые общепринятые методики для определения состояния буфера клиента используют информацию в отчетах приемника (RR) по протоколу управления передачей в реальном времени (RTCP). Информация относительно следующего порядкового номера (NSN) или самого раннего буферизованного порядкового номера (OBSN) в буфере клиента и самого большого принятого порядкового номера (HRSN) в буфере клиента содержится в RR и используется для определения израсходованного пространства буфера, так как размер каждого пакета в диапазоне от HRSN до NSN/OBSN известен. Если свободное пространство в буфере клиента ниже предпочтительного уровня заполнения буфера клиента, то выбирается другая версия потока. Например, если длительность воспроизведения РТ буфера снижается ниже заранее установленной минимальной пороговой величины (PT), то возникает риск опустошения буфера, т.е. буфер клиента становится пустым, так что отсутствуют данные для потоковой передачи пользователю. Это приводит к блокированию воспроизведения, где последнее показанное пользователю изображение обычно «замораживается» до тех пор, пока смогут добавить достаточный объем дополнительных данных в буфер клиента для возобновления потока на устройство вывода, используемое пользователем, т.е. требуется «повторная буферизация» буфера клиента. Повторная буферизация может быть очень раздражающей с точки зрения пользователя.
DOWN
Чтобы избежать возможной повторной буферизации вследствие опустошения буфера клиента, сервер обнаруживает, когда длительность воспроизведения РТ в буфере клиента снижается ниже пороговой величины PT, и тогда регулирует скорость передачи битов (т.е. выбирает версию потока, имеющую другую скорость передачи битов) в попытке предотвратить буфер клиента от полного опустошения. Конкретнее сервер выполняет понижающее переключение, т.е. переключение на поток с более низкой скоростью передачи битов. Причиной того, что выполняется понижающее переключение вместо повышающего переключения, является то, что наиболее вероятной причиной того, что буфер клиента опустошается, является то, что скорость линии между севером и буфером клиента меньше, чем ожидается, т.е. эффективная пропускная способность меньше необходимой для используемой на данный момент скорости передачи битов. Как результат, данные не принимаются буфером клиента на той же скорости, на которой буфер клиента подает данные на устройство вывода пользователя. Поэтому буфер клиента, который должен оставаться довольно хорошо заполненным данными, становится опустошенным. Путем переключения на более низкую скорость передачи битов буфер клиента подает данные на устройство отображения на меньшей скорости, тем самым предоставляя больше времени для приема данных с сервера и тем самым предотвращая полное опустошение буфера клиента. С точки зрения пользователя, качество потока информации понижается из-за понижающего переключения, например, размер показанного изображения видеопотока становится меньше, разрешение изображения становится меньше, либо в изображении наблюдаются большие искажения. Еще это предпочтительно для вышеупомянутого блокирования воспроизведения, которое возникает во время повторной буферизации.
UP
С другой стороны, если длительность воспроизведения РТ буфера превышает заранее установленную максимальную пороговую величину (PT), то возникает риск переполнения буфера, т.е. буфер клиента становится таким полным, что нет места для дополнительных пакетов. Любые пакеты, принятые буфером клиента, но не сохраненные в нем, обычно не отправляются повторно сервером, и поэтому данные тех пакетов просто не перенаправляются на устройство вывода пользователя. Как только буфер клиента снова допускает хранение пакетов, поток данных возобновляется с новыми пакетами. Таким образом, с точки зрения пользователя, имеется внезапная потеря контента, так как поток просто «перепрыгивает» вперед. В случае фильма или кино может теряться диалог, соответственно влияя на возможность пользователя следить за сюжетом. В случае музыки песня просто перепрыгивает вперед. Ясно, что это также может быть довольно раздражающим с точки зрения пользователя.
UP
Чтобы избежать разрыва потока из-за переполнения буфера клиента и в то же время улучшить качество информации, сервер обнаруживает, когда длительность воспроизведения РТ в буфере клиента превышает пороговую величину PT, и тогда выполняет повышающее переключение, т.е. переключение на поток с более высокой скоростью передачи битов. Причиной того, что выполняется повышающее переключение вместо понижающего переключения, является то, что наиболее вероятной причиной того, что буфер клиента начинает заполняться, является то, скорость линии между севером и буфером клиента больше, чем ожидается, т.е. эффективная пропускная способность больше необходимой для используемой на данный момент скорости передачи битов. Как результат, данные принимаются буфером клиента на скорости большей, чем скорость, на которой буфер клиента подает данные на устройство вывода пользователя. Поэтому буфер клиента переполняется. Путем переключения на более высокую скорость передачи битов буфер клиента подает данные на устройство вывода на более высокой скорости, тем самым предотвращая переполнение буфера клиента. С точки зрения пользователя качество потока информации улучшается из-за повышающего переключения, например, размер показанного изображения видеопотока становится больше или разрешение изображения становится больше. Поэтому повышающее переключение предотвращает прерывание потока и улучшает качество информации, и к тому же с преимуществом для пользователя.
Простая логика для выполнения повышающих переключений и понижающих переключений может быть представлена следующим образом:
UP,
Если PT > PT тогда
выполнить повышающее переключение
DOWN
иначе, если PT < PT.
выполнить понижающее переключение
(конец условия).
Подходящий выбор этих пороговых величин является решающим для общего впечатления от информации у пользователя. В случае понижающего переключения, которое выполняется слишком поздно, произойдет повторная буферизация. В случае повышающего переключения, которое выполняется слишком поздно, пользователь принимает информацию более низкого качества, чем она необходима в ином случае, и, как отмечалось, может возникнуть разрыв в потоке данных как результат переполнения буфера. Также, если понижающее переключение выполняется раньше, чем это необходимо, пользователь принимает информацию более низкого качества, чем она необходима в ином случае. Если повышающее переключение выполняется раньше, чем это необходимо, тогда скоро может потребоваться понижающее переключение, что приводит к раздражающим колебаниям в качестве информации. Чтобы избежать этих проблем, теоретически могут использоваться множество пороговых величин понижающего переключения и множество пороговых величин повышающего переключения. Так как длительность воспроизведения уменьшается к моменту опустошения буфера, последовательности пороговых величин понижающего переключения пересекаются, причем каждая запускает понижающее переключение. С другой стороны, так как длительность воспроизведения увеличивается к моменту переполнения буфера, последовательности пороговых величин повышающего переключения пересекаются, причем каждая запускает повышающее переключение.
Тем не менее, после того как произойдет переключение и передастся поток с новой скоростью передачи битов, нужно время до того, как переключение как-нибудь подействует на длительность воспроизведения буфера клиента. Во-первых, имеется задержка передачи, пока первый пакет, содержащий закодированные на новой скорости данные, достигает буфера клиента. В течение этого периода времени длительность воспроизведения сохраненной информации в буфере клиента не подвергается влиянию новой скорости. Поэтому, если длительность воспроизведения увеличивалась по направлению к возможному переполнению буфера, она, вероятно, продолжит увеличиваться. С другой стороны, если длительность воспроизведения была уменьшающейся по направлению к возможному опустошению буфера, она, вероятно, продолжит уменьшаться. Также, даже после поступления первого пакета на новой скорости передачи битов длительность воспроизведения может вначале меняться только медленно. Например, могут быть еще некоторые пакеты, отправленные с данными на предыдущей скорости передачи битов, которые еще не были приняты буфером клиента. Поэтому условия переключения часто еще действительны, и несколько переключений следуют затем за первым переключением, которые часто не нужны. В случае первого понижающего переключения могут быть выполнены несколько дополнительных понижающих переключений, что приводит к скорости передачи битов потока, которая гораздо более низкая, чем необходимо. Часто понижающие переключения не останавливаются, пока не будет выбрана наименьшая скорость передачи битов потока. Такое поведение приводит к излишне низкому качеству потока информации для пользователя. В случае повышающего переключения могут происходить несколько дополнительных повышающих переключений, приводя к скорости передачи битов потока, которая слишком высока, часто к максимально возможной скорости. Это приводит к скорости передачи битов потока, которая слишком высока по сравнению с текущей доступной пропускной способностью сети, инициируя серию понижающих переключений.
В результате пользователем наблюдаются частые и раздражающие изменения в качестве потока. Кроме того, если выбрана скорость передачи битов, которая слишком высока, последующие понижающие переключения часто не могут быть выполнены достаточно быстро, приводя к раздражающим повторным буферизациям и блокированию воспроизведения. Также, если выбрана скорость передачи битов, которая слишком низкая, последующие повышающие переключения часто не могут быть выполнены достаточно быстро, приводя к раздражающим переполнениям буфера и соответствующей потере данных. Даже только с единственной пороговой величиной повышающего переключения и единственной пороговой величиной понижающего переключения могут возникать такие типы проблем, особенно если пороговые величины установлены слишком близко друг к другу.
Следовательно, имеется потребность в улучшенной методике для управления переключением потока, чтобы предоставлять пользователю более стабильный и надежный контент, и это является целью, на которую, главным образом, ориентировано изобретение.
Сущность изобретения
CH)
CH
CH
Изобретение может быть реализовано в способе для управления пакетными передачами от сервера к клиенту, имеющему буфер клиента, где скорость передачи битов данных, которые необходимо передавать в пакетах, является выбираемой сервером, исходя из состояния буфера клиента. В соответствии со способом вначале передаются пакеты, содержащие данные, закодированные в зависимости от текущей скорости передачи битов. Буфер клиента отслеживается для обнаружения опорного значения (PT, представляющего количество данных в буфере клиента в следующем моменте времени. Величина, представляющая количество данных в буфере клиента на данный момент, также отслеживается РТ. Регулировки скорости передачи битов у передаваемых данных затем управляются в соответствии с динамическим режимом, исходя из величины РТ, представляющей количество данных в буфере клиента на данный момент, и исходя из опорного значения PT. Принимая во внимание опорное значение PT, а также величину РТ, при управлении регулировками скорости передачи битов можно большей частью избегать ненужных регулировок в скорости передачи битов.
CH
CH
CH
В одной реализации этап обнаружения опорного значения PT, представляющего количество данных в буфере клиента в следующем моменте времени, включает в себя этапы слежения за буфером клиента 115 для обнаружения, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, впервые достигают буфера клиента 202; и обнаружения опорного значения PT, представляющего количество данных в буфере клиента в момент времени, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента 204. В качестве альтернативы опорное значение РT могло бы обнаруживаться в момент времени непосредственно после запуска передачи пакетов, содержащих закодированные в зависимости от текущей (новой) скорости передачи битов данные, и/или в любое время между этими двумя моментами времени.
UP-ADJ
CH
UP-ADJ
CH
DOWN
В примере повышающего переключения динамического режима этап управления регулировками в скорости передачи битов выполняется путем переключения на более высокую скорость передачи битов, если количество данных РТ в буфере клиента на данный момент превышает регулируемую пороговую величину повышающего переключения (PT), установленную частично исходя из опорного значения PT. Регулируемая пороговая величина повышающего переключения PT может быть установлена равной заранее установленному безопасному пределу (S), умноженному на опорное значение PT. Заранее установленный безопасный предел обычно устанавливается больше либо равным 1,0, а в одном конкретном примере устанавливается в 1,2. Также в примере этап переключения на более высокую скорость передачи битов в динамическом режиме выполняется только, если количество данных РТ в буфере клиента на данный момент также превышает заранее установленную минимальную пороговую величину, которая может быть постоянной пороговой величиной понижающего переключения PT.
DOWN-ADJ
CH
DOWN-ADJ
DOWN
CH
DOWN
В примере понижающего переключения динамического режима этап управления регулировками в скорости передачи битов пакетов выполняется путем переключения на более низкую скорость передачи битов, если количество данных РТ в буфере клиента на данный момент снижается ниже регулируемой пороговой величины понижающего переключения (PT), установленной частично исходя из опорного значения PT. Регулируемая пороговая величина понижающего переключения PT может устанавливаться приблизительно посередине между заранее установленной минимальной пороговой величиной PT и опорным значением PT. Также в примере этап переключения на более низкую скорость передачи битов в динамическом режиме выполняется в качестве альтернативы, если количество данных РТ в буфере клиента на данный момент также снижается ниже заранее установленной минимальной пороговой величины, которая может быть постоянной пороговой величиной понижающего переключения PT.
DOWN
Предпочтительно, чтобы этап управления регулировками в скорости передачи битов пакетов в соответствии с динамическим режимом выполнялся только после того, как пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, достигнут буфера клиента. В течение периода времени после регулирования скорости, но до того как пакеты, содержащие закодированные в зависимости от отрегулированной скорости передачи битов данные, достигли буфера клиента, регулировки взамен этого управляются в соответствии со ждущим режимом. В ждущем режиме понижение скорости передачи битов выполняется, если количество данных РТ в буфере клиента на данный момент снижается ниже пороговой величины понижающего переключения PT. Однако увеличение скорости передачи битов в ждущем режиме запрещаются.
В различных реализациях значения, представляющие количество данных в буфере клиента, представляют длительности воспроизведения РТ данных или уровни заполнения буфера.
В зависимости от реализации клиент может быть терминалом мобильной связи, например мобильным телефоном, и в дополнение или в качестве альтернативы, сервер может быть интегрирован в терминал мобильной связи, так что канал между сервером и сетью может быть беспроводным. Кроме того, способ может выполняться одним или несколькими посредническими узлами сети (такими как прокси-серверы), расположенными между сервером и клиентом. Способ также может использоваться в архитектурах, имеющих множество потоков данных, буферизуемых буфером клиента (или множеством буферов клиента в зависимости от конфигурации клиента).
Изобретение также может быть реализовано в компьютерном программном продукте, который может храниться на машиночитаемом носителе записи, содержащем части кода программы для выполнения любых этапов вышеупомянутых способов, когда компьютерный программный продукт выполняется на вычислительной системе.
Изобретение может дополнительно содержать устройство, содержащее процессор вычислительной машины и запоминающее устройство, соединенное с процессором, где запоминающее устройство кодируется с помощью одной или нескольких программ, которые могут выполнять любые этапы вышеупомянутых способов.
В еще одном варианте осуществления изобретение относится к устройству для управления пакетными передачами от сервера к клиенту, имеющему буфер клиента, где скорость передачи битов пакетов от сервера к клиенту является регулируемой сервером, исходя из текущего состояния буфера клиента. Устройство содержит контроллер скорости передачи битов для запуска передачи данных в пакетах на текущей скорости передачи битов; контрольное устройство буфера клиента для отслеживания буфера клиента, чтобы обнаруживать опорное значение, представляющее количество данных в буфере клиента в следующий момент времени; устройство слежения для слежения за значением, представляющим количество данных в буфере клиента на данный момент; и контроллер динамического режима для управления регулировками в скорости передачи битов пакетов, исходя из значения, представляющего количество данных в буфере клиента на данный момент, и исходя из опорного значения.
В одной реализации устройство также включает в себя контроллер ждущего режима для управления регулировками в скорости передачи битов пакетов в соответствии со ждущим режимом.
Устройство может конфигурироваться как неподвижный или подвижный компонент сети, например, сетевой сервер и/или беспроводной терминал. Кроме того, устройство может быть представлено посредническим узлом сети, таким как прокси-сервер.
Краткое описание чертежей
В дальнейшем изобретение будет описываться со ссылкой на примерные варианты осуществления, проиллюстрированные на чертежах, на которых:
фиг.1 - схематическая диаграмма системы связи, полезная для понимания и реализации изобретения;
фиг.2 - схема технологического процесса, обеспечивающая общее представление о варианте осуществления изобретения со способом динамического режима;
фиг.3 - схема технологического процесса, обеспечивающая общее представление о варианте осуществления изобретения со способом ждущего режима;
фиг.4 - диаграмма состояний, обеспечивающая общее представление о взаимосвязи между динамическим режимом и ждущим режимом;
фиг.5 - схема технологического процесса, иллюстрирующая примерную реализацию логики динамического режима изобретения;
фиг.6 - блок-схема примерного буфера клиента, иллюстрирующая, в частности, различные пороговые величины, применяемые изобретением;
фиг.7 - схема технологического процесса, иллюстрирующая примерную реализацию логики ждущего режима изобретения; и
фиг.8 - блок-схема, иллюстрирующая примерную аппаратную реализацию серверного компонента изобретения.
Подробное описание предпочтительных вариантов осуществления
В последующем описании для целей объяснения, а не ограничения, излагаются определенные подробности, например, определенные последовательности этапов и различные конфигурации, чтобы обеспечить всестороннее понимание изобретения. Специалистам в данной области техники будет очевидно, что изобретение может применяться на практике в других вариантах осуществления, которые отступают от этих определенных подробностей. Кроме того, специалисты в данной области техники примут во внимание, что функции, объясненные ниже в этом документе, могут реализовываться с использованием работы программного обеспечения совместно с запрограммированным микропроцессором или компьютером общего назначения, и/или с использованием специализированной интегральной схемы (ASIC). Следует понимать, что хотя изобретение первоначально описывается как способ, оно также может осуществляться в компьютерном программном продукте, а также системе или устройстве, содержащих процессор вычислительной машины и запоминающее устройство, соединенное с процессором, где запоминающее устройство кодируется с помощью одной или нескольких программ, которые могут выполнять раскрытые в этом документе способы.
Фиг.1 иллюстрирует примерную архитектуру 100, которая может использоваться применительно к изобретению, включающую в себя сервер 105, который может быть соединен с клиентом 115 посредством канала связи, например IP-сети 110. Сервер включает в себя модуль 120 медиа-контента, который предоставляет доступ и передает некоторый медиаконтент (например, файлы данных мультимедиа) через модуль 125 RTP/UDP, используя стандарт потоковой передачи, например RTP (транспортный протокол реального времени) поверх UDP или другой протокол передачи данных для управления передачей в реальном времени мультимедийных данных (с протоколом транспортного уровня, например UDP-протокол дейтаграмм пользователя). Пакеты передаются в общедоступную сеть 130 (например, Интернет, однако внешняя общедоступная сеть не требуется, когда сервер непосредственно соединен с сетью 135 оператора), которая доставляет пакеты в сеть 135 оператора, например «проводную» сеть оператора мобильной связи, соединенную с ней.
Сеть 135 оператора включает в себя базовую сеть 140, которая предоставляет каналы связи между сервером 105 и клиентом 115. Базовая сеть 140, которая при желании может обладать буфером, предоставляет пакеты, принятые от модуля 125 RTP/UDP, для буферизации в буфере в сети 145 радиодоступа (RAN) (например, буфере в SGSN или в RNC) перед их передачей беспроводным передатчиком 150. Буферы базовой сети 140 (если используется буферизация) и RAN 145 организуются в группы и образуют буфер сети.
Клиент 115 принимает пакеты, переданные беспроводным передатчиком 150, в буфер 155 клиента. Пакеты передаются из буфера 155 клиента в модуль 160 RTP/UDP для доставки и использования модулем 165 медиаприложения (или мультимедийным проигрывателем). Для целей этой заявки фраза «скорость пакетной передачи» будет относиться к скорости передачи пакетов от сервера 105 к IP-сети 110, фраза «скорость канала» будет относиться к скорости передачи пакетов от IP-сети 110 к клиенту 115, и фраза «скорость передачи битов» будет относиться к скорости, на которой передаются данные из буфера клиента 115 к модулю 165 медиаприложения для воспроизведения модулем 165 медиаприложения. Она также иногда называется «скоростью контента».
CH
Со ссылкой на фиг.2 иллюстрируется вариант 200 осуществления способа изобретения, который может выполняться, например, системой из фиг.1. Способ из фиг.2 представляет динамический режим обработки в изобретении, который может быть реализован одиночным или в сочетании со ждущим режимом, проиллюстрированным на фиг.3. Способ предпочтительно реализуется посредством сервера, например сервера 105 из фиг.1, однако может быть реализован посредством любого другого подходящего компонента сети. В последующих описаниях будет допускаться, что этапы способа реализует сервер. Начиная с этапа 202, сервер начинает передачу пакетов мультимедийного потока, закодированного в зависимости от текущей скорости передачи битов, и следит за буфером 155 клиента (фиг.1). Текущая скорость передачи битов может быть установлена, например, путем выбора предварительно закодированной версии потока, имеющей определенную скорость передачи битов. На этапе 204 сервер затем сохраняет опорное значение, представляющее количество данных в буфере клиента в следующий момент времени, например, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента. Для обнаружения, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента, сервер обрабатывает сигналы, принятые от буфера клиента. В одном примере, если буфер клиента реализуется в соответствии с протоколами RTCP, сервер принимает обратную связь от буфера клиента, которая включает в себя поля данных NSN или HRSN. Используя информацию в этих полях данных, сервер может посредством этого обнаруживать, по меньшей мере, приблизительно, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента. Как отмечалось, количество данных в буфере клиента может быть представлено, например, в терминах длительности воспроизведения РТ, уровня заполнения буфера клиента или другим подходящим значением. В последующих описаниях примеры будут описываться с использованием длительности воспроизведения. При использовании длительности воспроизведения опорное значение, обнаруженное на этапе 204, называется PT.
На этапе 206 сервер следит за значением, представляющим количество данных в буфере клиента на данный момент, т.е. РТ. Это может выполняться в соответствии с другими общепринятыми методиками, например, используя информацию в полях NSN и HRSN данных.
CH
CH
CH
На этапе 208 сервер затем управляет регулировками в скорости передачи битов, исходя из значения, представляющего количество данных в буфере клиента на данный момент (обнаружено на этапе 206), и исходя из опорного значения (обнаружено на этапе 204). Другими словами, сервер управляет регулировками в скорости передачи битов, исходя из PT и PT одновременно. Принимая во внимание PT в дополнение к PT, сервер допускает уход от многих ненужных переключений скорости, которые возникают в традиционных системах, применяющих только постоянные пороговые величины переключенной скорости. Например, PT может использоваться для установки регулируемых пороговых величин повышающего переключения и понижающего переключения, которые минимизируют ненужное переключение скорости. Предпочтительно, чтобы регулируемые пороговые величины задавались так, чтобы после предыдущего повышающего переключения следующее повышающее переключение выполнялось, только если длительность воспроизведения буфера клиента все еще увеличивается. Поэтому отменяются любые дополнительные повышающие переключения, которые могли бы выполняться, даже если длительность воспроизведения буфера клиента уже уменьшалась. После предыдущего понижающего переключения дополнительное понижающее переключение выполняется, только если длительность воспроизведения буфера все еще уменьшается. Поэтому отменяются любые дополнительные понижающие переключения, которые могли бы выполняться, даже если длительность воспроизведения буфера клиента уже увеличивалась. Это более подробно описывается ниже со ссылкой на предпочтительную реализацию фиг.5.
В заключение, относительно фиг.2, на этапе 210 после любых регулировок в скорости передачи битов, сделанных на этапе 208, сервер переключается в ждущий режим 300, который будет сейчас обобщен со ссылкой на фиг.3. Как будет обсуждаться далее, ждущий режим может быть реализован отдельно, т.е. независимо от динамического режима, проиллюстрированного со ссылкой на фиг.2.
DOWN
DOWN
На этапе 304 в фиг.3 сервер снова следит за значением, представляющим количество данных в буфере клиента на данный момент, т.е. длительность воспроизведения РТ. На этапе 302 сервер наблюдает за буфером клиента для обнаружения, достигли ли буфера клиента пакеты, имеющие закодированные в зависимости от отрегулированной скорости передачи битов данные. Отрегулированная скорость, на которую ссылаются на этапе 302, является новой скоростью передачи битов, получающейся из регулировки скорости передачи битов, выполненной на этапе 208 фиг.2, которая инициировала переключение из динамического режима в ждущий режим. Определение, достигли ли уже буфера клиента пакеты, закодированные на определенной скорости передачи битов, может выполняться путем проверки данных в полях данных NSN или HRSN. На этапе 306, при условии, что пакеты с данными, закодированными на отрегулированной скорости передачи битов, еще не достигли буфера клиента, сервер управляет любыми дополнительными регулировками в скорости передачи битов путем выполнения понижений скорости, исходя из значения РТ, представляющего количество данных в буфере клиента на данный момент наряду с блокированием любых повышений скорости передачи битов. На этапе 308, после того как пакеты с данными, закодированными на последней отрегулированной скорости передачи битов, достигли буфера клиента, сервер переключается обратно в динамический режим фиг.2. Другими словами, этап 306 выполняется только в течение периода времени между предыдущей регулировкой скорости (т.е. повышающем переключении или понижающем переключении) и моментом времени, когда пакеты, содержащие данные, закодированные на отрегулированной скорости передачи битов, первый раз достигли буфера клиента. В течение этого периода времени блокируются повышения скорости. Поэтому не выполняется никаких повышающих переключений, независимо от состояния буфера клиента. Тем не менее, все еще могут выполняться понижающие переключения. Понижающие переключения могут выполняться в соответствии с другими общепринятыми методиками, в которых РТ сравнивается с постоянной пороговой величиной PT, и выполняется понижающее переключение, если РТ снижается ниже PT. После того как пакеты с данными, закодированными на отрегулированной скорости передачи битов, достигли буфера клиента, снова выполняется обработка динамического режима, в которой разрешены как повышающие переключения, так и понижающие.
Поэтому повышающие переключения блокируются, как только выполнена регулировка скорости передачи битов (либо вверх, либо вниз), до тех пор, пока буфером клиента принимаются пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов. Это предотвращает выполнение любых дополнительных повышающих переключений, исходя из промежуточных изменений в длительности воспроизведения буфера клиента, прежде чем предыдущая регулировка скорости получила возможность оказать влияние. Как объяснялось выше в разделе «Сущность изобретения», могут возникнуть обстоятельства, в которых длительность воспроизведения буфера клиента изменяется, прежде чем предыдущая регулировка скорости передачи битов получила возможность оказать влияние. Такие изменения иногда могут инициировать дополнительные повышающие переключения, которые часто излишни и приводят к обратным результатам. Действительно, скорость передачи битов часто увеличивается до точки, когда необходима серия понижающих переключений, которые часто не могут быть выполнены достаточно быстро, чтобы предотвратить переполнение буфера. С другой стороны, в ждущем режиме все еще могут выполняться понижающие переключения. Разрешаются дополнительные понижающие переключения для предотвращения вероятности повторной буферизации, так как повторных буферизаций следует избегать при всех обстоятельствах из-за высокого уровня раздражения, которое такие события обычно вызывают у конечного пользователя.
CH
CH
Отметим, что серии понижающих переключений могли выполняться на этапе 306 перед тем как пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов (т.е. скорости, установленной на этапе 208 в фиг.1) окончательно примутся буфером клиента, запуская переключение обратно в динамический режим. В одном примере, когда сервер переключается обратно в динамический режим, новая «текущая» скорость, используемая логикой динамического режима, является скоростью, ассоциативно связанной с самым последним, т.е. последним по времени, из понижающих переключений. В том примере, если серия понижающих переключений выполняется во время ждущего режима, сервер по этой причине не обновляет PT, пока пакеты, отправленные согласно последнему из понижающих переключений, не примутся окончательно буфером клиента. В другом примере, когда сервер переключается обратно в динамический режим, новая «текущая» скорость, используемая логикой динамического режима, является вместо этого скоростью, ассоциативно связанной с первым из понижающих переключений, сделанных в ждущем режиме. В этом втором примере, если серия понижающих переключений выполняется во время ждущего режима, сервер по этой причине обновляет PT, как только пакеты, отправленные согласно первому из понижающих переключений, окончательно примутся буфером клиента.
Таким образом, фиг.2 и 3 подводят итог динамическому и ждущему режимам изобретения. В предпочтительной реализации сервер допускает реализацию обоих режимов и переключается туда и обратно между режимами, как описано, исходя из того, когда выполняются регулировки скорости передачи битов и когда пакеты с данными, закодированными на текущей скорости передачи битов, достигают буфера клиента.
Фиг.4 предоставляет диаграмму состояний, обобщающую два режима работы. Сервер остается в динамическом режиме 200, пока выполняется регулировка 310 скорости (либо вверх, либо вниз), которая инициирует переход в ждущий режим. После этого сервер остается в ждущем режиме, пока пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, не достигнут буфера клиента 312, что инициирует переход обратно в динамический режим. Таким образом, сервер все время функционирует в оптимальном режиме, чтобы минимизировать ненужные переключения скорости, в то же время работая для предотвращения переполнений буфера и, самое главное, работая для предотвращения повторных буферизаций.
CH
В других реализациях, тем не менее, сервер может конфигурироваться для реализации либо только динамического режима, либо только ждущего режима. Если реализуется только динамический режим, то сервер предпочтительно конфигурируется, чтобы все время оставаться в динамическом режиме. Другими словами, регулировка в скорости передачи битов (инициированная, например, на этапе 208 фиг.2) не инициирует переход ни в какой другой режим. Наоборот, обработка просто продолжается в динамическом режиме с сервером, следящим за буфером клиента для обнаружения, когда пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов данные, достигают буфера клиента, обновляя тогда PT соответственно. Если реализуется только ждущий режим, тем не менее, сервер предпочтительно не остается в ждущем режиме все время (так как это предотвращает выполнение (когда-либо) любых повышающих переключений). Наоборот, предпочтительно, что сервер переключается туда и обратно между ждущим режимом и обычным режимом работы, где обычный режим может быть другим общепринятым режимом работы, в котором используются постоянные пороговые величины повышающего переключения и понижающего переключения в сочетании с длительностью воспроизведения или уровнями заполнения буфера клиента. Обычный режим может использовать механизмы оценки скорости, общеизвестные в данной области техники, в дополнение, либо в качестве альтернативы к пороговым механизмам фиг.5. Другими словами, система может быть реализована в соответствии с диаграммой состояний, похожей на фиг.4, но с заменой динамического режима на обычный режим.
CH
CH
UP
DOWN
CH
UP
DOWN
CH
UP-ADJ
CH
DOWN-ADJ
CH
DOWN
DOWN-ADJ
CH
DOWN
DOWN-ADJ
CH
DOWN
Обращаясь к фиг.5, сейчас будет описываться примерная реализация логики динамического режима для использования на этапе 208 фиг.2. В примерной реализации опорное значение PT представляет количество данных в буфере клиента в момент времени, когда отправленные на текущей скорости пакеты первый раз достигают буфера клиента. В других примерах вместо этого используются различные опорные точки во времени для обнаружения опорного значения PT, например опорные точки, определенные между переключением скорости и точкой, когда пакеты, отправленные на новой скорости, первый раз достигают буфера клиента, и опорные точки, определенные после того, как отправленные на новой скорости пакеты первый раз достигают буфера клиента. Начиная с этапа 400, сервер вводит значения для PT, PT, PT и значение S безопасного предела. PT и PT являются заранее установленными, постоянными пороговыми величинами повышающего переключения и понижающего переключения соответственно, которые могут быть установлены в соответствии с другими общепринятыми методиками. PT - значение, определенное на этапе 204 фиг.2, которое представляет количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента, S является значением безопасного предела, установленным больше 1,0 и в одном упомянутом примере в 1,2. На этапе 402 сервер устанавливает регулируемую пороговую величину повышающего переключения PT, равную PT, умноженной на значение S безопасного предела. На этапе 404 сервер устанавливает регулируемую пороговую величину понижающего переключения PT, равную PT плюс PT, деленное на два, т.е. PT устанавливается посередине между PT и PT. В общем, PT может устанавливаться в любую точку между PT и PT.
CH
UP
DOWN-ADJ
CH
DOWN
DOWN
CH
DOWN
DOWN-ADJ
DOWN
UP-ADJ
CH
UP
CH
UP
UP-ADJ
UP
CH
CH
UP
DOWN
CH
UP-ADJ
Пороговые величины иллюстрируются на фиг.6, которая обеспечивает представление буфера 155 клиента из фиг.1 в виде блок-схемы. В примере фиг.6 сервером обнаружилось, что PT больше чем PT. Соответственно, PT, которая установлена посередине между PT и PT, больше чем PT. Если вместо этого обнаружилось, что PT меньше PT, то PT также была бы меньше PT. Между тем, в примере фиг.6 PT, которая равна PT·S, больше чем PT. В других примерах, если вместо этого PT значительно меньше PT, то PT может быть меньше PT. Это зависит от точного значения PT, а также значения, используемого для коэффициента S безопасного предела. Отсюда, в зависимости от значения PT и других факторов, регулируемые версии PT и PT могут быть либо больше, либо меньше их постоянных эквивалентов. Отметим также, что могут возникнуть обстоятельства, когда PT·S может быть больше максимального значения буфера клиента (MAX). Если дело обстоит именно так, то PT просто устанавливается равным MAX или какому-нибудь другому меньшему значению по умолчанию.
DOWN
UP-ADJ
DOWN
DOWN-ADJ
Возвращаясь к фиг.5, на этапе 406 сервер начинает ввод значений для PT, т.е. текущей длительности воспроизведения данных, уже содержащихся в буфере клиента, отслеженных на этапе 206 фиг.2. Если на этапе 408 принятия решения PT больше PT и PT также больше PT, то на этапе 410 инициируется повышающее переключение. Если нет, то выполняется этап 412 принятия решения, на котором если PT меньше PT или PT меньше PT, то на этапе 414 инициируется понижающее переключение.
Логика этапов 408 и 412 принятия решения может быть представлена следующим образом:
DOWN
UP-ADJ
Если PT > PT и PT > PT, тогда
выполнить повышающее переключение
DOWN
DOWN-ADJ
иначе, если PT < PT либо PT < PT,
выполнить понижающее переключение
(конец условия)
где, как отмечалось,
UP-ADJ
CH
PT = PT ·S и
DOWN-ADJ
CH
DOWN
PT = (PT + PT)/2.
UP-ADJ
DOWN
Поэтому повышающее переключение инициируется, если текущая длительность воспроизведения РТ буфера клиента превышает отрегулированную пороговую величину повышающего переключения PT, допуская, что РТ также превышает PT. Это последнее условие предотвращает нецелесообразные повышающие переключения в обстоятельствах, где понижающее переключение может быть более уместным. Инициируя повышающие переключения, исходя из отрегулированной пороговой величины повышающего переключения, а не постоянной пороговой величины повышающего переключения, сервер, тем самым, учитывает текущее состояние буфера клиента (которое представлено посредством РТ), в то же время учитывая динамическое изменение состояния буфера клиента (посредством регулировки пороговой величины повышающего переключения). Это помогает предотвратить иные нецелесообразные повышающие переключения.
CH
Рассмотрим пример, в котором регулируемая пороговая величина повышающего переключения изначально устанавливается равной постоянной пороговой величине повышающего переключения. Отсюда, если длительность воспроизведения буфера клиента превышает этот пороговый уровень, выполняется повышающее переключение. Если затем длительность воспроизведения увеличивается до того, как первые пакеты, отправленные с большей скоростью передачи битов, достигают буфера клиента, то регулируемая пороговая величина повышающего переключения будет больше постоянной пороговой величины. В этом случае будет выполнено только дополнительное повышающее переключение, если длительность воспроизведения превышает новую, более высокую пороговую величину. Другими словами, становится труднее инициировать повышающее переключение, поскольку должна быть превышена более высокая пороговая величина, соответственно задерживая дополнительные повышающие переключения в обстоятельствах, где такая задержка оправдана. Если вместо этого снова использовалась постоянная пороговая величина повышающего переключения, увеличение длительности воспроизведения буфера клиента привело бы к новому значению для РТ, которое снова превысило бы постоянную пороговую величину, соответственно инициируя другое повышающее переключение. Путем установки пороговой величины в исходное значение, исходя из длительности воспроизведения в момент, когда пакеты принимаются первый раз, только еще большее увеличение длительности воспроизведения может инициировать другое повышающее переключение. Вышеупомянутый безопасный предел предоставляется для гарантии, что нетривиальное увеличение длительности воспроизведения относительно PT обязано происходить до того, как инициируется другое повышающее переключение. Соответственно, после первого повышающего переключения будет выполняться дополнительное повышающее переключение, если длительность воспроизведения буфера все еще увеличивается, тем самым избегая ненужных повышающих переключений.
DOWN
Теперь рассмотрим пример, в котором регулируемая пороговая величина повышающего переключения опять изначально устанавливается равной постоянной пороговой величине повышающего переключения, но где длительность воспроизведения буфера клиента затем значительно снижается до того, как первые пакеты, отправленные с большей скоростью передачи битов, достигают буфера клиента. В этом случае регулируемая пороговая величина повышающего переключения будет меньше, чем постоянная пороговая величина. В том случае будет выполняться дополнительное повышающее переключение, если длительность воспроизведения превышает новую, более низкую пороговую величину (допуская, что она также превышает постоянную пороговую величину PT). Другими словами, становится проще инициировать повышающее переключение, соответственно ускоряя дополнительные повышающие переключения в обстоятельствах, где они оправданы.
DOWN
DOWN-ADJ
Обращаясь теперь к понижающим переключениям, понижающее переключение инициируется, если текущая длительность воспроизведения PT буфера клиента снижается ниже либо постоянной пороговой величины PT, либо отрегулированной пороговой величины понижающего переключения PT. Другими словами, понижающее переключение инициируется, если РТ снижается ниже большей из двух пороговых величин понижающего переключения. Постоянная пороговая величина все еще используется для инициирования понижающего переключения, чтобы предотвратить задержку понижающего переключения с тем, чтобы помочь предотвратить повторные буферизации. Тем не менее, понижающее переключение может быть ускорено, что происходит, если РТ снижается ниже отрегулированной пороговой величины понижающего переключения. Как отмечено выше, отрегулированная пороговая величина понижающего переключения может оказаться либо выше, либо ниже постоянной пороговой величины понижающего переключения. Если она ниже постоянной пороговой величины, это является излишним, так как постоянная пороговая величина в любом случае используется для немедленного запуска понижающего переключения. Однако если регулируемая пороговая величина понижающего переключения превышает постоянную пороговую величину понижающего переключения, то регулируемая пороговая величина понижающего переключения может тогда инициировать срочное понижающее переключение, т.е. понижающее переключение, которое происходит в обстоятельствах, где понижающее переключение не произошло бы при использовании общепринятой логики переключения. Срочное понижающее переключение происходит, как отмечено, если длительность воспроизведения снижается ниже регулируемой пороговой величины понижающего переключения.
Если никакое из условий этапов 408 и 412 принятия решения не является истинным, то обработка возвращается к этапу 406, где вводится последнее значение для РТ для применения к различным пороговым величинам. Допуская, однако, что инициируется либо повышающее переключение, либо понижающее переключение, затем выполняется этап 416, на котором сервер переключается в ждущий режим, логика которого будет описываться далее со ссылкой на фиг.7.
Для краткого подведения итога, логика принятия решения динамического режима из фиг.5 предоставляет средство для управления регулировками в скорости передачи битов пакетов, чтобы переключаться на увеличенную скорость передачи битов, если количество данных в буфере клиента в данный момент превышает отрегулированную пороговую величину повышающего переключения, установленную исходя из значения, представляющего количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента. Тем не менее, переключение на более высокую скорость передачи битов выполняется, только если количество данных в буфере клиента в данный момент также превышает минимальную пороговую величину. Логика принятия решения динамического режима также предоставляет средство для управления регулировками в скорости передачи битов, чтобы переключаться на более низкую скорость передачи битов, если количество данных в буфере клиента в данный момент снижается ниже отрегулированной пороговой величины понижающего переключения, установленной исходя из значения, представляющего количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента.
UP
DOWN
DOWN
Обращаясь теперь к фиг.7, сейчас будет описываться предпочтительная реализация логики ждущего режима для использования на этапе 306 фиг.3. Начиная с этапа 500, сервер вводит значения для PT и PT, которые являются теми же постоянными пороговыми величинами, использованными применительно к фиг.6. На этапе 502 сервер начинает ввод значений для PT, т.е. текущей длительности воспроизведения данных, уже содержащихся в буфере клиента, отслеженных на этапе 206 фиг.2. На этапе 504 принятия решения, если длительность воспроизведения РТ снижается ниже PT, инициируется понижающее переключение, этап 506. Если нет, то на этапе 508 принятия решения сервер определяет, достигли ли буфера клиента пакеты, отправленные на последней отрегулированной скорости передачи битов. Если это имеет место, то обработка незамедлительно возвращается в динамический режим, этап 510. В противном случае обработка возвращается к этапу 502, на котором вводится обновленное значение для длительности воспроизведения для сравнения на этапе 504 с постоянной пороговой величиной понижающего переключения. Что особенно примечательно касаемо логики фиг.7, не делается никаких сравнений относительно пороговых величин, повышающих переключений, и не выполняется никаких повышающих переключений. Как уже объяснялось, повышающие переключения запрещены во время ждущего режима для предотвращения любых необоснованных повышающих переключений. Понижающие переключения инициируются постоянной пороговой величиной понижающего переключения, чтобы гарантировать, что понижающие переключения выполняются, чтобы избегать возможных повторных буферизаций. В ждущем режиме не используются регулируемые пороговые величины.
Таким образом, описана примерная реализация способа для методики регулирования общей скорости передачи данных в системе на основе пакетов путем увеличения или уменьшения скорости передачи битов у данных, закодированных внутри пакетов. Скорость пакетной передачи обычно не меняется, так как зависит от пропускной способности линии связи. Однако в других реализациях скорость пакетной передачи также может регулироваться, используя, например, адаптивные методики.
Хотя изобретение описано, в основном, со ссылкой на реализации способа, реализации устройства также являются частью изобретения. Фиг.8 иллюстрирует на высоком уровне примерную реализацию устройства. Коротко, компонент 600 сети, который может быть частью сервера 105 фиг.1, включает в себя контроллер 602 скорости передачи битов для запуска передачи данных в пакетах на текущей скорости передачи битов и контрольное устройство 604 буфера клиента для отслеживания буфера клиента, чтобы обнаруживать опорное значение, представляющее количество данных в буфере клиента в следующий момент времени, например, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента. Устройство 606 слежения следит за значением, представляющим количество данных в буфере клиента в данный момент. Контроллер 608 динамического режима предоставляется для управления регулировками в скорости передачи битов у пакетов, исходя из значения, представляющего количество данных в буфере клиента в данный момент, и исходя из опорного значения. Устройство также может включать в себя контроллер 610 ждущего режима для управления регулировками в скорости передачи битов пакетов в соответствии со ждущим режимом. В одном примере контроллер 608 динамического режима реализует логику динамического режима фиг.5, тогда как контроллер 610 ждущего режима реализует логику ждущего режима фиг.7. Могут предоставляться другие реализации, которые не включают в себя контроллер 608 динамического режима или которые не включают в себя контроллер 610 ждущего режима.
Обычному специалисту в данной области техники может быть понятно, что настоящее изобретение и ассоциативно связанные с ним методики обеспечивают расширенный постигнутый опыт конечного пользователя для приложений, таких как потоковая передача мультимедиа, путем обхода переполнений и опустошения буфера клиента.
Кроме того, опытный специалист также примет во внимание, что имеются множество различных методик, которые могут использоваться для определения уровней заполнения буфера клиента, включая оценки на основе данных в RR и Отчетах Отправителя, и что настоящее изобретение может реализовываться параллельно с множеством потоков пакетов данных, одновременно буферизуемых в одном или нескольких буферах сети для передачи одному или нескольким клиентам. Также механизмы управления скоростью передачи могут использоваться в дополнение к повышающему переключению, описанному выше, чтобы избегать переполнений буфера. Обычный специалист в данной области техники примет еще во внимание, что изобретение может быть реализовано различными типами компонентов сети, например сетевыми терминалами, узлами сети и т.п. В частности, изобретение может быть применено на практике подвижными терминалами, прокси-серверами (которые могли бы разделить канал передачи) и стационарными терминалами.
Несмотря на то что изобретение описано относительно конкретных вариантов осуществления, специалисты в данной области техники признают, что изобретение не ограничивается отдельными вариантами осуществления, описанными и проиллюстрированными в данном документе. Поэтому, хотя изобретение описано относительно его предпочтительных вариантов осуществления, нужно понимать, что данное раскрытие изобретения является только пояснительным. Соответственно подразумевается, что изобретение ограничивается только объемом прилагаемой к нему формулы изобретения.