RU2378781C2 - Method for dynamic control of packet data transmission - Google Patents

Method for dynamic control of packet data transmission Download PDF

Info

Publication number
RU2378781C2
RU2378781C2 RU2007141651/09A RU2007141651A RU2378781C2 RU 2378781 C2 RU2378781 C2 RU 2378781C2 RU 2007141651/09 A RU2007141651/09 A RU 2007141651/09A RU 2007141651 A RU2007141651 A RU 2007141651A RU 2378781 C2 RU2378781 C2 RU 2378781C2
Authority
RU
Russia
Prior art keywords
bit rate
data
client
buffer
client buffer
Prior art date
Application number
RU2007141651/09A
Other languages
Russian (ru)
Other versions
RU2007141651A (en
Inventor
Маркус КАМПМАНН (DE)
Маркус КАМПМАНН
Кристоф ПЛУМ (DE)
Кристоф ПЛУМ
Original Assignee
Телефонактиеболагет Лм Эрикссон (Пабл)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Телефонактиеболагет Лм Эрикссон (Пабл) filed Critical Телефонактиеболагет Лм Эрикссон (Пабл)
Priority to RU2007141651/09A priority Critical patent/RU2378781C2/en
Publication of RU2007141651A publication Critical patent/RU2007141651A/en
Application granted granted Critical
Publication of RU2378781C2 publication Critical patent/RU2378781C2/en

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

FIELD: physics; communications.
SUBSTANCE: method is disclosed for controlling packet data transmission from a server to a client which has client buffer in accordance with a standby mode and a dynamic mode. The standby mode is maintained until packets, which contain data encoded depending on the current bit transfer rate, reach the client buffer; otherwise the dynamic mode is executed. The standby mode allows step-down switching to lower bit transfer rates, but does not allow step-up switching to higher bit transfer rates. The dynamic mode allows step-up and step-down switching with regulation of bit transfer rate of packets, partially controlled based on amount of data contained in the client buffer when packets which contain data encoded depending on the current bit transfer rate reach the client buffer for the first time. Two modes help avoid unnecessary speed switching.
EFFECT: improved method of controlling stream switching to provide the user with more reliable and stable content.
18 cl, 8 dwg

Description

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

Изобретение относится к передаче данных, а конкретнее к методике для управления потоковыми пакетными передачами данных.The invention relates to data transmission, and more particularly to a technique for controlling streaming packet data transmissions.

Уровень техники изобретенияBACKGROUND OF THE INVENTION

Увеличивающиеся объемы данных передаются от серверов к клиентам посредством инфраструктур связи, например сетей Интернет-протокола (IP) на основе пакетов. Одним частным применением, которое набирает популярность, является потоковая передача мультимедийных данных. Тем не менее, должны быть сделаны улучшения в предоставлении надежных потоков данных перед распространенным внедрением таких услуг. Например, скорости линии передачи данных между IP-сетью и клиентским устройством пользователя имеют склонность быть неустойчивыми, любые нарушения в доставке данных пользователю могут приводить к серьезному ухудшению воспроизведения для конечного пользователя, т.е. ухудшению качества информации, наблюдаемой пользователем. В частности, важно, чтобы имелась достаточная поставка пакетов данных на клиентское устройство, которые нужно получать мультимедийному приложению, так как идет воспроизведение (т.е. отображение мультимедийного файла мультимедийным приложением или проигрывателем).Increasing amounts of data are transferred from servers to clients through communication infrastructures, such as packet-based Internet Protocol (IP) networks. One particular application that is gaining in popularity is multimedia streaming. However, improvements must be made in providing reliable data flows before the widespread adoption of such services. For example, the data line speeds between the IP network and the user's client device tend to be unstable, any irregularities in the delivery of data to the user can lead to serious impairment of playback for the end user, i.e. deterioration in the quality of information observed by the user. In particular, it is important that there is a sufficient supply of data packets to the client device that need to be received by the multimedia application, since playback is in progress (i.e. displaying the multimedia file by the multimedia application or player).

Во многих случаях скорость пакетной передачи не может меняться, так как эта скорость зависит от пропускной способности линии связи (либо изменить скорость пакетной передачи, по меньшей мере, неосуществимо). Тем не менее, скорость, на которой данные подаются в устройство вывода пользователя, часто должна быть изменена. Обычно для потоковых приложений такие регулировки достигаются с использованием «переключения потока». С помощью переключения потока тот же самый мультимедийный контент, например определенный видеоряд, кодируется заранее на разных скоростях передачи битов и хранится на сервере. Поэтому доступны разные версии одного и того же потока. Во время передачи сервер выбирает конкретную версию, которая имеет наиболее подходящую скорость передачи битов, исходя из текущей доступной пропускной способности сети и исходя из состояния буфера клиента. Логика переключения, применяемая сервером, принимает решение, когда и где переключаться на другую версию потока. В случае так называемого «понижающего переключения» поток переключается на версию с более низкой кодированной скоростью передачи битов. В случае так называемого «повышающего переключения» поток формируется на версию с более высокой кодированной скоростью передачи битов. Во многих реализациях критерии для переключения используют предопределенные пороговые величины, заданные по отношению к состоянию буфера клиента. В одном примере пороговые величины основываются на уровне заполнения буфера, который представляет количество данных в буфере клиента в байтах. В другом примере пороговые величины основываются на длительности воспроизведения (РТ) сохраненной информации в буфере клиента, которая представляет количество времени в секундах, которое займет воспроизведение данных, уже находящихся в буфере клиента, для пользователя. В этом документе описываются примеры, касающиеся длительности воспроизведения, хотя вместо этого могут использоваться уровень заполнения буфера или другие подходящие параметры.In many cases, the packet rate cannot change, since this speed depends on the bandwidth of the communication line (or at least it is not feasible to change the packet rate). However, the speed at which data is supplied to the user output device often needs to be changed. Typically for streaming applications, such adjustments are achieved using “stream switching”. By switching the stream, the same multimedia content, for example, a specific video sequence, is encoded in advance at different bit rates and stored on the server. Therefore, different versions of the same stream are available. During transmission, the server selects a specific version that has the most suitable bit rate, based on the current available network bandwidth and based on the status of the client buffer. The switching logic used by the server decides when and where to switch to another version of the stream. In the case of the so-called “down-switch”, the stream switches to a version with a lower encoded bit rate. In the case of the so-called “up-switch”, the stream is formed into a version with a higher encoded bit rate. In many implementations, the criteria for switching uses predetermined thresholds defined with respect to the state of the client buffer. In one example, the thresholds are based on a buffer fill level that represents the amount of data in the client buffer in bytes. In another example, the thresholds are based on the duration (PT) of the stored information in the client buffer that represents the amount of time in seconds that the data already in the client buffer will take to reproduce for the user. This document describes examples regarding playback duration, although a buffer fill level or other suitable parameters may be used instead.

Некоторые общепринятые методики для определения состояния буфера клиента используют информацию в отчетах приемника (RR) по протоколу управления передачей в реальном времени (RTCP). Информация относительно следующего порядкового номера (NSN) или самого раннего буферизованного порядкового номера (OBSN) в буфере клиента и самого большого принятого порядкового номера (HRSN) в буфере клиента содержится в RR и используется для определения израсходованного пространства буфера, так как размер каждого пакета в диапазоне от HRSN до NSN/OBSN известен. Если свободное пространство в буфере клиента ниже предпочтительного уровня заполнения буфера клиента, то выбирается другая версия потока. Например, если длительность воспроизведения РТ буфера снижается ниже заранее установленной минимальной пороговой величины (PTDOWN), то возникает риск опустошения буфера, т.е. буфер клиента становится пустым, так что отсутствуют данные для потоковой передачи пользователю. Это приводит к блокированию воспроизведения, где последнее показанное пользователю изображение обычно «замораживается» до тех пор, пока смогут добавить достаточный объем дополнительных данных в буфер клиента для возобновления потока на устройство вывода, используемое пользователем, т.е. требуется «повторная буферизация» буфера клиента. Повторная буферизация может быть очень раздражающей с точки зрения пользователя.Some common techniques for determining the status of a client buffer use information in receiver reports (RRs) using Real-Time Transmission Control Protocol (RTCP). Information regarding the next sequence number (NSN) or the earliest buffered sequence number (OBSN) in the client buffer and the largest received sequence number (HRSN) in the client buffer is contained in the RR and is used to determine the amount of buffer space consumed since the size of each packet in the range HRSN to NSN / OBSN is known. If the free space in the client buffer is below the preferred level of the client buffer, then a different version of the stream is selected. For example, if the playback time of the RT buffer decreases below a predetermined minimum threshold value (PT DOWN ), then there is a risk of buffer underruns, i.e. the client buffer becomes empty, so there is no data to stream to the user. This leads to blocking playback, where the last image shown to the user is usually “frozen” until they can add a sufficient amount of additional data to the client buffer to resume the flow to the output device used by the user, i.e. requires "re-buffering" of the client buffer. Re-buffering can be very annoying from the user's point of view.

Чтобы избежать возможной повторной буферизации вследствие опустошения буфера клиента, сервер обнаруживает, когда длительность воспроизведения РТ в буфере клиента снижается ниже пороговой величины PTDOWN, и тогда регулирует скорость передачи битов (т.е. выбирает версию потока, имеющую другую скорость передачи битов) в попытке предотвратить буфер клиента от полного опустошения. Конкретнее сервер выполняет понижающее переключение, т.е. переключение на поток с более низкой скоростью передачи битов. Причиной того, что выполняется понижающее переключение вместо повышающего переключения, является то, что наиболее вероятной причиной того, что буфер клиента опустошается, является то, что скорость линии между севером и буфером клиента меньше, чем ожидается, т.е. эффективная пропускная способность меньше необходимой для используемой на данный момент скорости передачи битов. Как результат, данные не принимаются буфером клиента на той же скорости, на которой буфер клиента подает данные на устройство вывода пользователя. Поэтому буфер клиента, который должен оставаться довольно хорошо заполненным данными, становится опустошенным. Путем переключения на более низкую скорость передачи битов буфер клиента подает данные на устройство отображения на меньшей скорости, тем самым предоставляя больше времени для приема данных с сервера и тем самым предотвращая полное опустошение буфера клиента. С точки зрения пользователя, качество потока информации понижается из-за понижающего переключения, например, размер показанного изображения видеопотока становится меньше, разрешение изображения становится меньше, либо в изображении наблюдаются большие искажения. Еще это предпочтительно для вышеупомянутого блокирования воспроизведения, которое возникает во время повторной буферизации.To avoid possible re-buffering due to a client buffer underrun, the server detects when the PT playing time in the client buffer decreases below the threshold PT DOWN and then adjusts the bit rate (i.e., selects a stream version with a different bit rate) in an attempt prevent the client buffer from being completely empty. More specifically, the server performs a down switch, i.e. Switching to a stream with a lower bit rate. The reason that a down switch is performed instead of an up switch is that the most likely reason that the client buffer is empty is because the line speed between the north and the client buffer is less than expected, i.e. the effective bandwidth is less than what is needed for the bit rate currently in use. As a result, data is not received by the client buffer at the same speed as the client buffer sends data to the user output device. Therefore, the client buffer, which should remain fairly well filled with data, becomes empty. By switching to a lower bit rate, the client buffer feeds data to the display device at a lower speed, thereby providing more time for receiving data from the server and thereby preventing the client buffer from completely emptying. From the point of view of the user, the quality of the information flow decreases due to down switching, for example, the size of the displayed image of the video stream becomes smaller, the image resolution becomes smaller, or large distortions are observed in the image. It is also preferable for the aforementioned blocking of playback that occurs during re-buffering.

С другой стороны, если длительность воспроизведения РТ буфера превышает заранее установленную максимальную пороговую величину (PTUP), то возникает риск переполнения буфера, т.е. буфер клиента становится таким полным, что нет места для дополнительных пакетов. Любые пакеты, принятые буфером клиента, но не сохраненные в нем, обычно не отправляются повторно сервером, и поэтому данные тех пакетов просто не перенаправляются на устройство вывода пользователя. Как только буфер клиента снова допускает хранение пакетов, поток данных возобновляется с новыми пакетами. Таким образом, с точки зрения пользователя, имеется внезапная потеря контента, так как поток просто «перепрыгивает» вперед. В случае фильма или кино может теряться диалог, соответственно влияя на возможность пользователя следить за сюжетом. В случае музыки песня просто перепрыгивает вперед. Ясно, что это также может быть довольно раздражающим с точки зрения пользователя.On the other hand, if the playback time of the PT buffer exceeds a predetermined maximum threshold value (PT UP ), then there is a risk of buffer overflow, i.e. the client buffer becomes so full that there is no room for additional packets. Any packets received by the client’s buffer but not stored in it are usually not sent repeatedly by the server, and therefore the data of those packets is simply not redirected to the user output device. As soon as the client buffer again allows the storage of packets, the data stream resumes with new packets. Thus, from the user's point of view, there is a sudden loss of content, as the stream simply “jumps” forward. In the case of a film or a movie, dialogue may be lost, accordingly affecting the ability of the user to follow the plot. In the case of music, the song just jumps forward. Clearly, this can also be quite annoying from the user's point of view.

Чтобы избежать разрыва потока из-за переполнения буфера клиента и в то же время улучшить качество информации, сервер обнаруживает, когда длительность воспроизведения РТ в буфере клиента превышает пороговую величину PTUP, и тогда выполняет повышающее переключение, т.е. переключение на поток с более высокой скоростью передачи битов. Причиной того, что выполняется повышающее переключение вместо понижающего переключения, является то, что наиболее вероятной причиной того, что буфер клиента начинает заполняться, является то, скорость линии между севером и буфером клиента больше, чем ожидается, т.е. эффективная пропускная способность больше необходимой для используемой на данный момент скорости передачи битов. Как результат, данные принимаются буфером клиента на скорости большей, чем скорость, на которой буфер клиента подает данные на устройство вывода пользователя. Поэтому буфер клиента переполняется. Путем переключения на более высокую скорость передачи битов буфер клиента подает данные на устройство вывода на более высокой скорости, тем самым предотвращая переполнение буфера клиента. С точки зрения пользователя качество потока информации улучшается из-за повышающего переключения, например, размер показанного изображения видеопотока становится больше или разрешение изображения становится больше. Поэтому повышающее переключение предотвращает прерывание потока и улучшает качество информации, и к тому же с преимуществом для пользователя.In order to avoid a flow break due to overflow of the client buffer and at the same time improve the quality of information, the server detects when the duration of the reproduction of the PT in the client buffer exceeds the threshold value PT UP , and then performs an upward switch, i.e. Switching to a stream with a higher bit rate. The reason that an up switch is performed instead of a down switch is that the most likely reason that the client buffer starts to fill up is because the line speed between the north and the client buffer is greater than expected, i.e. effective bandwidth is more than necessary for the current bit rate. As a result, the data is received by the client buffer at a speed greater than the speed at which the client buffer feeds data to the user output device. Therefore, the client buffer is full. By switching to a higher bit rate, the client buffer feeds data to the output device at a higher speed, thereby preventing the client buffer from overflowing. From the user's point of view, the quality of the information flow is improved due to up-switching, for example, the size of the displayed image of the video stream becomes larger or the resolution of the image becomes larger. Therefore, up-switching prevents the interruption of the flow and improves the quality of information, and also with a benefit to the user.

Простая логика для выполнения повышающих переключений и понижающих переключений может быть представлена следующим образом:Simple logic for performing upshifts and downshifts can be represented as follows:

Если PT > PTUP, тогдаIf PT> PT UP, then

выполнить повышающее переключениеperform up switch

иначе, если PT < PTDOWN.otherwise, if PT <PT DOWN .

выполнить понижающее переключениеperform downshift

(конец условия).(end of condition).

Подходящий выбор этих пороговых величин является решающим для общего впечатления от информации у пользователя. В случае понижающего переключения, которое выполняется слишком поздно, произойдет повторная буферизация. В случае повышающего переключения, которое выполняется слишком поздно, пользователь принимает информацию более низкого качества, чем она необходима в ином случае, и, как отмечалось, может возникнуть разрыв в потоке данных как результат переполнения буфера. Также, если понижающее переключение выполняется раньше, чем это необходимо, пользователь принимает информацию более низкого качества, чем она необходима в ином случае. Если повышающее переключение выполняется раньше, чем это необходимо, тогда скоро может потребоваться понижающее переключение, что приводит к раздражающим колебаниям в качестве информации. Чтобы избежать этих проблем, теоретически могут использоваться множество пороговых величин понижающего переключения и множество пороговых величин повышающего переключения. Так как длительность воспроизведения уменьшается к моменту опустошения буфера, последовательности пороговых величин понижающего переключения пересекаются, причем каждая запускает понижающее переключение. С другой стороны, так как длительность воспроизведения увеличивается к моменту переполнения буфера, последовательности пороговых величин повышающего переключения пересекаются, причем каждая запускает повышающее переключение.The appropriate choice of these thresholds is critical to the overall user experience of the information. In the case of a down switch that is performed too late, re-buffering will occur. In the case of up-switching, which is performed too late, the user receives information of lower quality than is otherwise necessary, and, as noted, there may be a gap in the data stream as a result of a buffer overflow. Also, if the down-switch is performed earlier than necessary, the user receives information of a lower quality than is otherwise necessary. If up-switching is performed earlier than necessary, then a down-switching may soon be required, which leads to annoying fluctuations in the quality of the information. To avoid these problems, theoretically, a plurality of down-switching thresholds and a plurality of up-switching thresholds can be used. Since the duration of the playback decreases by the time the buffer is empty, the sequence of threshold values of the down switch intersect, each triggering a down switch. On the other hand, since the duration of the reproduction increases at the time of buffer overflow, the sequences of threshold values of the upstream switching intersect, each triggering upstream switching.

Тем не менее, после того как произойдет переключение и передастся поток с новой скоростью передачи битов, нужно время до того, как переключение как-нибудь подействует на длительность воспроизведения буфера клиента. Во-первых, имеется задержка передачи, пока первый пакет, содержащий закодированные на новой скорости данные, достигает буфера клиента. В течение этого периода времени длительность воспроизведения сохраненной информации в буфере клиента не подвергается влиянию новой скорости. Поэтому, если длительность воспроизведения увеличивалась по направлению к возможному переполнению буфера, она, вероятно, продолжит увеличиваться. С другой стороны, если длительность воспроизведения была уменьшающейся по направлению к возможному опустошению буфера, она, вероятно, продолжит уменьшаться. Также, даже после поступления первого пакета на новой скорости передачи битов длительность воспроизведения может вначале меняться только медленно. Например, могут быть еще некоторые пакеты, отправленные с данными на предыдущей скорости передачи битов, которые еще не были приняты буфером клиента. Поэтому условия переключения часто еще действительны, и несколько переключений следуют затем за первым переключением, которые часто не нужны. В случае первого понижающего переключения могут быть выполнены несколько дополнительных понижающих переключений, что приводит к скорости передачи битов потока, которая гораздо более низкая, чем необходимо. Часто понижающие переключения не останавливаются, пока не будет выбрана наименьшая скорость передачи битов потока. Такое поведение приводит к излишне низкому качеству потока информации для пользователя. В случае повышающего переключения могут происходить несколько дополнительных повышающих переключений, приводя к скорости передачи битов потока, которая слишком высока, часто к максимально возможной скорости. Это приводит к скорости передачи битов потока, которая слишком высока по сравнению с текущей доступной пропускной способностью сети, инициируя серию понижающих переключений.Nevertheless, after the switching occurs and the stream is transmitted with a new bit rate, it takes time before the switching has any effect on the duration of the playback of the client buffer. Firstly, there is a transmission delay until the first packet containing the data encoded at the new speed reaches the client buffer. During this time period, the duration of the playback of the stored information in the client buffer is not affected by the new speed. Therefore, if the playback time increased in the direction of a possible buffer overflow, it is likely to continue to increase. On the other hand, if the playback duration was decreasing towards a possible buffer underrun, it would probably continue to decrease. Also, even after the first packet arrives at a new bit rate, the playback duration can initially only change slowly. For example, there may be some more packets sent with data at a previous bit rate that have not yet been received by the client buffer. Therefore, the switching conditions are often still valid, and several switching then follow the first switching, which are often not needed. In the case of the first down-switch, several additional down-switches can be performed, which leads to a bit rate of the stream, which is much lower than necessary. Often downshifts do not stop until the lowest bit rate of the stream is selected. This behavior leads to an unnecessarily poor quality of information flow for the user. In the case of up-switching, several additional up-switching can occur, resulting in a stream bit rate that is too high, often at the highest possible rate. This results in a stream bit rate that is too high compared to the current available network bandwidth, initiating a series of down-switches.

В результате пользователем наблюдаются частые и раздражающие изменения в качестве потока. Кроме того, если выбрана скорость передачи битов, которая слишком высока, последующие понижающие переключения часто не могут быть выполнены достаточно быстро, приводя к раздражающим повторным буферизациям и блокированию воспроизведения. Также, если выбрана скорость передачи битов, которая слишком низкая, последующие повышающие переключения часто не могут быть выполнены достаточно быстро, приводя к раздражающим переполнениям буфера и соответствующей потере данных. Даже только с единственной пороговой величиной повышающего переключения и единственной пороговой величиной понижающего переключения могут возникать такие типы проблем, особенно если пороговые величины установлены слишком близко друг к другу.As a result, the user observes frequent and annoying changes in the quality of the stream. In addition, if a bit rate that is too high is selected, subsequent down-switchings often cannot be performed fast enough, leading to annoying re-buffering and blocking playback. Also, if a bit rate that is too low is selected, subsequent up-switches can often not be performed fast enough, resulting in annoying buffer overflows and corresponding data loss. Even with only a single up-switching threshold and a single down-switching threshold, these types of problems can occur, especially if the thresholds are set too close to each other.

Следовательно, имеется потребность в улучшенной методике для управления переключением потока, чтобы предоставлять пользователю более стабильный и надежный контент, и это является целью, на которую, главным образом, ориентировано изобретение.Therefore, there is a need for an improved technique for controlling flow switching in order to provide the user with more stable and reliable content, and this is the goal that the invention is mainly oriented to.

Сущность изобретенияSUMMARY OF THE INVENTION

Изобретение может быть реализовано в способе для управления пакетными передачами от сервера к клиенту, имеющему буфер клиента, где скорость передачи битов данных, которые необходимо передавать в пакетах, является выбираемой сервером, исходя из состояния буфера клиента. В соответствии со способом вначале передаются пакеты, содержащие данные, закодированные в зависимости от текущей скорости передачи битов. Буфер клиента отслеживается для обнаружения опорного значения (PTCH), представляющего количество данных в буфере клиента в следующем моменте времени. Величина, представляющая количество данных в буфере клиента на данный момент, также отслеживается РТ. Регулировки скорости передачи битов у передаваемых данных затем управляются в соответствии с динамическим режимом, исходя из величины РТ, представляющей количество данных в буфере клиента на данный момент, и исходя из опорного значения PTCH. Принимая во внимание опорное значение PTCH, а также величину РТ, при управлении регулировками скорости передачи битов можно большей частью избегать ненужных регулировок в скорости передачи битов.The invention can be implemented in a method for controlling packet transmissions from a server to a client having a client buffer, where the bit rate of the data to be transmitted in packets is a server selectable based on the state of the client buffer. According to the method, packets containing data encoded depending on the current bit rate are first transmitted. The client buffer is monitored to detect a reference value (PT CH) representing the amount of data in the client buffer at the next point in time. A value representing the amount of data in the client’s buffer at the moment is also monitored by RT. The adjustment of the bit rate of the transmitted data is then controlled in accordance with the dynamic mode, based on the PT value representing the amount of data in the client's buffer at the moment, and based on the reference value PT CH . Taking into account the reference value of PT CH , as well as the value of PT, when controlling the settings of the bit rate, you can largely avoid unnecessary adjustments in the bit rate.

В одной реализации этап обнаружения опорного значения PTCH, представляющего количество данных в буфере клиента в следующем моменте времени, включает в себя этапы слежения за буфером клиента 115 для обнаружения, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, впервые достигают буфера клиента 202; и обнаружения опорного значения PTCH, представляющего количество данных в буфере клиента в момент времени, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента 204. В качестве альтернативы опорное значение РTCH могло бы обнаруживаться в момент времени непосредственно после запуска передачи пакетов, содержащих закодированные в зависимости от текущей (новой) скорости передачи битов данные, и/или в любое время между этими двумя моментами времени.In one implementation, the step of detecting a reference value PT CH representing the amount of data in the client buffer at the next point in time includes the steps of monitoring the client buffer 115 to detect when packets containing data encoded depending on the current bit rate reach the buffer for the first time customer 202; and detecting a reference value PT CH representing the amount of data in the client buffer at the point in time when packets containing data encoded depending on the current bit rate reached the client buffer 204 for the first time. Alternatively, the reference value PT CH could be detected at the time time immediately after starting the transmission of packets containing data encoded depending on the current (new) bit rate, and / or at any time between these two points in time.

В примере повышающего переключения динамического режима этап управления регулировками в скорости передачи битов выполняется путем переключения на более высокую скорость передачи битов, если количество данных РТ в буфере клиента на данный момент превышает регулируемую пороговую величину повышающего переключения (PTUP-ADJ), установленную частично исходя из опорного значения PTCH. Регулируемая пороговая величина повышающего переключения PTUP-ADJ может быть установлена равной заранее установленному безопасному пределу (S), умноженному на опорное значение PTCH. Заранее установленный безопасный предел обычно устанавливается больше либо равным 1,0, а в одном конкретном примере устанавливается в 1,2. Также в примере этап переключения на более высокую скорость передачи битов в динамическом режиме выполняется только, если количество данных РТ в буфере клиента на данный момент также превышает заранее установленную минимальную пороговую величину, которая может быть постоянной пороговой величиной понижающего переключения PTDOWN.In the example of dynamic mode up-switching, the control stage of adjustments in the bit rate is performed by switching to a higher bit rate if the amount of PT data in the client buffer currently exceeds the adjustable up-switching threshold (PT UP-ADJ ), partially set based on reference value PT CH . The adjustable up-switching threshold PT UP-ADJ can be set equal to a predetermined safety limit (S) times the reference value PT CH . A predefined safe limit is usually set to be greater than or equal to 1.0, and in one specific example is set to 1.2. Also in the example, the step of switching to a higher bit rate in dynamic mode is performed only if the amount of RT data in the client buffer at the moment also exceeds a predetermined minimum threshold value, which can be a constant threshold value of the down switch PT DOWN .

В примере понижающего переключения динамического режима этап управления регулировками в скорости передачи битов пакетов выполняется путем переключения на более низкую скорость передачи битов, если количество данных РТ в буфере клиента на данный момент снижается ниже регулируемой пороговой величины понижающего переключения (PTDOWN-ADJ), установленной частично исходя из опорного значения PTCH. Регулируемая пороговая величина понижающего переключения PTDOWN-ADJ может устанавливаться приблизительно посередине между заранее установленной минимальной пороговой величиной PTDOWN и опорным значением PTCH. Также в примере этап переключения на более низкую скорость передачи битов в динамическом режиме выполняется в качестве альтернативы, если количество данных РТ в буфере клиента на данный момент также снижается ниже заранее установленной минимальной пороговой величины, которая может быть постоянной пороговой величиной понижающего переключения PTDOWN.In the dynamic mode down-switching example, the step of controlling adjustments in the packet bit rate is performed by switching to a lower bit-rate if the amount of PT data in the client buffer is currently lower than the partially adjustable down-switching threshold (PT DOWN-ADJ ) based on the reference value PT CH . The adjustable lowering threshold PT DOWN-ADJ can be set approximately halfway between the predetermined minimum threshold threshold PT DOWN and the reference value PT CH . Also in the example, the step of switching to a lower bit rate in dynamic mode is performed as an alternative if the amount of RT data in the client buffer is also currently falling below a predetermined minimum threshold value, which may be a constant threshold value of the down switch PT DOWN .

Предпочтительно, чтобы этап управления регулировками в скорости передачи битов пакетов в соответствии с динамическим режимом выполнялся только после того, как пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, достигнут буфера клиента. В течение периода времени после регулирования скорости, но до того как пакеты, содержащие закодированные в зависимости от отрегулированной скорости передачи битов данные, достигли буфера клиента, регулировки взамен этого управляются в соответствии со ждущим режимом. В ждущем режиме понижение скорости передачи битов выполняется, если количество данных РТ в буфере клиента на данный момент снижается ниже пороговой величины понижающего переключения PTDOWN. Однако увеличение скорости передачи битов в ждущем режиме запрещаются.Preferably, the step of controlling the adjustments in the packet bit rate in accordance with the dynamic mode is carried out only after the packets containing the encoded data depending on the current bit rate have reached the client buffer. During the period of time after speed regulation, but before packets containing data encoded depending on the adjusted bit rate reach the client buffer, the adjustments instead are controlled in accordance with the standby mode. In standby mode, a decrease in the bit rate is performed if the amount of RT data in the client buffer is currently reduced below the threshold value of the down switch PT DOWN . However, increasing the bit rate in standby mode is prohibited.

В различных реализациях значения, представляющие количество данных в буфере клиента, представляют длительности воспроизведения РТ данных или уровни заполнения буфера.In various implementations, values representing the amount of data in the client buffer represent the duration of the reproduction of PT data or buffer fill levels.

В зависимости от реализации клиент может быть терминалом мобильной связи, например мобильным телефоном, и в дополнение или в качестве альтернативы, сервер может быть интегрирован в терминал мобильной связи, так что канал между сервером и сетью может быть беспроводным. Кроме того, способ может выполняться одним или несколькими посредническими узлами сети (такими как прокси-серверы), расположенными между сервером и клиентом. Способ также может использоваться в архитектурах, имеющих множество потоков данных, буферизуемых буфером клиента (или множеством буферов клиента в зависимости от конфигурации клиента).Depending on the implementation, the client may be a mobile communication terminal, for example a mobile phone, and in addition or alternatively, the server may be integrated into the mobile communication terminal, so that the channel between the server and the network can be wireless. In addition, the method may be performed by one or more intermediary network nodes (such as proxy servers) located between the server and the client. The method can also be used in architectures having multiple data streams buffered by the client buffer (or multiple client buffers depending on the client configuration).

Изобретение также может быть реализовано в компьютерном программном продукте, который может храниться на машиночитаемом носителе записи, содержащем части кода программы для выполнения любых этапов вышеупомянутых способов, когда компьютерный программный продукт выполняется на вычислительной системе.The invention can also be implemented in a computer program product that can be stored on a computer-readable recording medium containing parts of the program code for performing any of the steps of the above methods when the computer program product is executed on a computer system.

Изобретение может дополнительно содержать устройство, содержащее процессор вычислительной машины и запоминающее устройство, соединенное с процессором, где запоминающее устройство кодируется с помощью одной или нескольких программ, которые могут выполнять любые этапы вышеупомянутых способов.The invention may further comprise a device comprising a computer processor and a storage device connected to the processor, where the storage device is encoded using one or more programs that can perform any of the steps of the above methods.

В еще одном варианте осуществления изобретение относится к устройству для управления пакетными передачами от сервера к клиенту, имеющему буфер клиента, где скорость передачи битов пакетов от сервера к клиенту является регулируемой сервером, исходя из текущего состояния буфера клиента. Устройство содержит контроллер скорости передачи битов для запуска передачи данных в пакетах на текущей скорости передачи битов; контрольное устройство буфера клиента для отслеживания буфера клиента, чтобы обнаруживать опорное значение, представляющее количество данных в буфере клиента в следующий момент времени; устройство слежения для слежения за значением, представляющим количество данных в буфере клиента на данный момент; и контроллер динамического режима для управления регулировками в скорости передачи битов пакетов, исходя из значения, представляющего количество данных в буфере клиента на данный момент, и исходя из опорного значения.In yet another embodiment, the invention relates to a device for controlling packet transmissions from a server to a client having a client buffer, where the bit rate of packets from a server to a client is a server-controlled, based on the current state of the client buffer. The device comprises a bit rate controller for starting data transmission in packets at the current bit rate; a client buffer monitor to monitor the client buffer to detect a reference value representing the amount of data in the client buffer at the next point in time; a tracking device for tracking a value representing the amount of data currently in the client buffer; and a dynamic mode controller for controlling adjustments in the packet bit rate, based on a value representing the amount of data in the client buffer at the moment, and on the basis of the reference value.

В одной реализации устройство также включает в себя контроллер ждущего режима для управления регулировками в скорости передачи битов пакетов в соответствии со ждущим режимом.In one implementation, the device also includes a standby controller for controlling adjustments in packet bit rate in accordance with the standby mode.

Устройство может конфигурироваться как неподвижный или подвижный компонент сети, например, сетевой сервер и/или беспроводной терминал. Кроме того, устройство может быть представлено посредническим узлом сети, таким как прокси-сервер.The device can be configured as a fixed or mobile network component, for example, a network server and / or wireless terminal. In addition, the device may be represented by an intermediary network node, such as a proxy server.

Краткое описание чертежейBrief Description of the Drawings

В дальнейшем изобретение будет описываться со ссылкой на примерные варианты осуществления, проиллюстрированные на чертежах, на которых:The invention will be further described with reference to exemplary embodiments illustrated in the drawings, in which:

фиг.1 - схематическая диаграмма системы связи, полезная для понимания и реализации изобретения;figure 1 is a schematic diagram of a communication system useful for understanding and implementing the invention;

фиг.2 - схема технологического процесса, обеспечивающая общее представление о варианте осуществления изобретения со способом динамического режима;figure 2 is a process diagram providing a General idea of an embodiment of the invention with a dynamic mode method;

фиг.3 - схема технологического процесса, обеспечивающая общее представление о варианте осуществления изобретения со способом ждущего режима;FIG. 3 is a flow diagram providing an overview of an embodiment of the invention with a standby method; FIG.

фиг.4 - диаграмма состояний, обеспечивающая общее представление о взаимосвязи между динамическим режимом и ждущим режимом;4 is a state diagram providing an overview of the relationship between the dynamic mode and the standby mode;

фиг.5 - схема технологического процесса, иллюстрирующая примерную реализацию логики динамического режима изобретения;5 is a flowchart illustrating an exemplary implementation of the dynamic mode logic of the invention;

фиг.6 - блок-схема примерного буфера клиента, иллюстрирующая, в частности, различные пороговые величины, применяемые изобретением;6 is a block diagram of an exemplary client buffer illustrating, in particular, various threshold values used by the invention;

фиг.7 - схема технологического процесса, иллюстрирующая примерную реализацию логики ждущего режима изобретения; и7 is a process diagram illustrating an exemplary implementation of the standby logic of the invention; and

фиг.8 - блок-схема, иллюстрирующая примерную аппаратную реализацию серверного компонента изобретения.8 is a block diagram illustrating an exemplary hardware implementation of a server component of the invention.

Подробное описание предпочтительных вариантов осуществленияDetailed Description of Preferred Embodiments

В последующем описании для целей объяснения, а не ограничения, излагаются определенные подробности, например, определенные последовательности этапов и различные конфигурации, чтобы обеспечить всестороннее понимание изобретения. Специалистам в данной области техники будет очевидно, что изобретение может применяться на практике в других вариантах осуществления, которые отступают от этих определенных подробностей. Кроме того, специалисты в данной области техники примут во внимание, что функции, объясненные ниже в этом документе, могут реализовываться с использованием работы программного обеспечения совместно с запрограммированным микропроцессором или компьютером общего назначения, и/или с использованием специализированной интегральной схемы (ASIC). Следует понимать, что хотя изобретение первоначально описывается как способ, оно также может осуществляться в компьютерном программном продукте, а также системе или устройстве, содержащих процессор вычислительной машины и запоминающее устройство, соединенное с процессором, где запоминающее устройство кодируется с помощью одной или нескольких программ, которые могут выполнять раскрытые в этом документе способы.In the following description, for purposes of explanation and not limitation, certain details are set forth, for example, certain steps and various configurations to provide a comprehensive understanding of the invention. Those skilled in the art will appreciate that the invention may be practiced in other embodiments that depart from these specific details. In addition, those skilled in the art will appreciate that the functions explained later in this document can be implemented using software in conjunction with a programmed microprocessor or general purpose computer and / or using a specialized integrated circuit (ASIC). It should be understood that although the invention was originally described as a method, it can also be implemented in a computer program product, as well as in a system or device comprising a computer processor and a storage device connected to a processor, where the storage device is encoded using one or more programs that may perform the methods disclosed herein.

Фиг.1 иллюстрирует примерную архитектуру 100, которая может использоваться применительно к изобретению, включающую в себя сервер 105, который может быть соединен с клиентом 115 посредством канала связи, например IP-сети 110. Сервер включает в себя модуль 120 медиа-контента, который предоставляет доступ и передает некоторый медиаконтент (например, файлы данных мультимедиа) через модуль 125 RTP/UDP, используя стандарт потоковой передачи, например RTP (транспортный протокол реального времени) поверх UDP или другой протокол передачи данных для управления передачей в реальном времени мультимедийных данных (с протоколом транспортного уровня, например UDP-протокол дейтаграмм пользователя). Пакеты передаются в общедоступную сеть 130 (например, Интернет, однако внешняя общедоступная сеть не требуется, когда сервер непосредственно соединен с сетью 135 оператора), которая доставляет пакеты в сеть 135 оператора, например «проводную» сеть оператора мобильной связи, соединенную с ней.FIG. 1 illustrates an example architecture 100 that can be used with the invention, including a server 105 that can be connected to a client 115 via a communication channel, such as an IP network 110. The server includes a media content module 120 that provides access and transmit some media content (for example, multimedia data files) through the RTP / UDP module 125 using a streaming standard, for example RTP (real-time transport protocol) over UDP or another data transfer protocol for controlling real-time multimedia data driver (with transport layer protocol, for example, the UDP protocol of user datagrams). Packets are transmitted to a public network 130 (for example, the Internet, however, an external public network is not required when the server is directly connected to the operator’s network 135), which delivers the packets to the operator’s network 135, for example, a “wired” network of a mobile operator connected to it.

Сеть 135 оператора включает в себя базовую сеть 140, которая предоставляет каналы связи между сервером 105 и клиентом 115. Базовая сеть 140, которая при желании может обладать буфером, предоставляет пакеты, принятые от модуля 125 RTP/UDP, для буферизации в буфере в сети 145 радиодоступа (RAN) (например, буфере в SGSN или в RNC) перед их передачей беспроводным передатчиком 150. Буферы базовой сети 140 (если используется буферизация) и RAN 145 организуются в группы и образуют буфер сети.Operator network 135 includes a core network 140, which provides communication channels between server 105 and client 115. Core network 140, which may optionally have a buffer, provides packets received from RTP / UDP module 125 for buffering in a buffer in network 145 radio access (RAN) (for example, a buffer in the SGSN or in the RNC) before being transmitted by the wireless transmitter 150. The buffers of the core network 140 (if buffering is used) and RAN 145 are organized into groups and form a network buffer.

Клиент 115 принимает пакеты, переданные беспроводным передатчиком 150, в буфер 155 клиента. Пакеты передаются из буфера 155 клиента в модуль 160 RTP/UDP для доставки и использования модулем 165 медиаприложения (или мультимедийным проигрывателем). Для целей этой заявки фраза «скорость пакетной передачи» будет относиться к скорости передачи пакетов от сервера 105 к IP-сети 110, фраза «скорость канала» будет относиться к скорости передачи пакетов от IP-сети 110 к клиенту 115, и фраза «скорость передачи битов» будет относиться к скорости, на которой передаются данные из буфера клиента 115 к модулю 165 медиаприложения для воспроизведения модулем 165 медиаприложения. Она также иногда называется «скоростью контента».Client 115 receives packets transmitted by wireless transmitter 150 to client buffer 155. Packets are transferred from the client buffer 155 to the RTP / UDP module 160 for delivery and use by the media application module 165 (or multimedia player). For the purposes of this application, the phrase “packet rate” will refer to the packet rate from the server 105 to the IP network 110, the phrase “channel speed” will refer to the packet rate from the IP network 110 to the client 115, and the phrase “bit rate bits "will refer to the speed at which data is transmitted from the client buffer 115 to the media application module 165 for playback by the media application module 165. It is also sometimes called “content speed.”

Со ссылкой на фиг.2 иллюстрируется вариант 200 осуществления способа изобретения, который может выполняться, например, системой из фиг.1. Способ из фиг.2 представляет динамический режим обработки в изобретении, который может быть реализован одиночным или в сочетании со ждущим режимом, проиллюстрированным на фиг.3. Способ предпочтительно реализуется посредством сервера, например сервера 105 из фиг.1, однако может быть реализован посредством любого другого подходящего компонента сети. В последующих описаниях будет допускаться, что этапы способа реализует сервер. Начиная с этапа 202, сервер начинает передачу пакетов мультимедийного потока, закодированного в зависимости от текущей скорости передачи битов, и следит за буфером 155 клиента (фиг.1). Текущая скорость передачи битов может быть установлена, например, путем выбора предварительно закодированной версии потока, имеющей определенную скорость передачи битов. На этапе 204 сервер затем сохраняет опорное значение, представляющее количество данных в буфере клиента в следующий момент времени, например, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента. Для обнаружения, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента, сервер обрабатывает сигналы, принятые от буфера клиента. В одном примере, если буфер клиента реализуется в соответствии с протоколами RTCP, сервер принимает обратную связь от буфера клиента, которая включает в себя поля данных NSN или HRSN. Используя информацию в этих полях данных, сервер может посредством этого обнаруживать, по меньшей мере, приблизительно, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента. Как отмечалось, количество данных в буфере клиента может быть представлено, например, в терминах длительности воспроизведения РТ, уровня заполнения буфера клиента или другим подходящим значением. В последующих описаниях примеры будут описываться с использованием длительности воспроизведения. При использовании длительности воспроизведения опорное значение, обнаруженное на этапе 204, называется PTCH.With reference to FIG. 2, an embodiment 200 of a method of the invention is illustrated, which may be performed, for example, by the system of FIG. 1. The method of FIG. 2 represents a dynamic processing mode in the invention, which can be implemented singly or in combination with the standby mode illustrated in FIG. The method is preferably implemented by means of a server, for example, server 105 of FIG. 1, but may be implemented by any other suitable network component. In the following descriptions, it will be assumed that the steps of the method are implemented by the server. Starting at step 202, the server starts transmitting packets of a multimedia stream encoded depending on the current bit rate, and monitors the client buffer 155 (FIG. 1). The current bit rate can be set, for example, by selecting a pre-encoded version of the stream having a specific bit rate. At step 204, the server then stores a reference value representing the amount of data in the client buffer at the next point in time, for example, when packets containing data encoded depending on the current bit rate first reached the client buffer. To detect when packets containing data encoded depending on the current bit rate reach the client buffer for the first time, the server processes the signals received from the client buffer. In one example, if the client buffer is implemented in accordance with RTCP protocols, the server receives feedback from the client buffer, which includes NSN or HRSN data fields. Using the information in these data fields, the server can thereby detect, at least approximately, when packets containing data encoded depending on the current bit rate first reach the client buffer. As noted, the amount of data in the client buffer can be represented, for example, in terms of the duration of the reproduction of the PT, the level of the buffer of the client, or other suitable value. In the following descriptions, examples will be described using playback duration. When using the playback duration, the reference value detected in step 204 is called PT CH .

На этапе 206 сервер следит за значением, представляющим количество данных в буфере клиента на данный момент, т.е. РТ. Это может выполняться в соответствии с другими общепринятыми методиками, например, используя информацию в полях NSN и HRSN данных.At step 206, the server monitors a value representing the amount of data in the client’s buffer at the moment, i.e. RT. This can be done in accordance with other generally accepted techniques, for example, using information in the NSN and HRSN data fields.

На этапе 208 сервер затем управляет регулировками в скорости передачи битов, исходя из значения, представляющего количество данных в буфере клиента на данный момент (обнаружено на этапе 206), и исходя из опорного значения (обнаружено на этапе 204). Другими словами, сервер управляет регулировками в скорости передачи битов, исходя из PT и PTCH одновременно. Принимая во внимание PTCH в дополнение к PT, сервер допускает уход от многих ненужных переключений скорости, которые возникают в традиционных системах, применяющих только постоянные пороговые величины переключенной скорости. Например, PTCH может использоваться для установки регулируемых пороговых величин повышающего переключения и понижающего переключения, которые минимизируют ненужное переключение скорости. Предпочтительно, чтобы регулируемые пороговые величины задавались так, чтобы после предыдущего повышающего переключения следующее повышающее переключение выполнялось, только если длительность воспроизведения буфера клиента все еще увеличивается. Поэтому отменяются любые дополнительные повышающие переключения, которые могли бы выполняться, даже если длительность воспроизведения буфера клиента уже уменьшалась. После предыдущего понижающего переключения дополнительное понижающее переключение выполняется, только если длительность воспроизведения буфера все еще уменьшается. Поэтому отменяются любые дополнительные понижающие переключения, которые могли бы выполняться, даже если длительность воспроизведения буфера клиента уже увеличивалась. Это более подробно описывается ниже со ссылкой на предпочтительную реализацию фиг.5.At step 208, the server then controls the adjustments in the bit rate based on a value representing the amount of data in the client’s buffer at the moment (detected at step 206) and based on the reference value (found at step 204). In other words, the server controls the bit rate adjustments based on PT and PT CH simultaneously. Considering PT CH in addition to PT, the server avoids many of the unnecessary speed switching that occurs in traditional systems using only constant switching speed thresholds. For example, PT CH can be used to set adjustable upshift and downshift thresholds that minimize unnecessary speed switching. Preferably, the adjustable thresholds are set so that after the previous up-switch, the next up-switch is performed only if the playback time of the client buffer is still increasing. Therefore, any additional up-switches that could be performed are canceled, even if the playback time of the client buffer has already been reduced. After the previous down switch, an additional down switch is only performed if the buffer playback time is still decreasing. Therefore, any additional downshifts that could be performed are canceled, even if the duration of the client’s buffer playback has already increased. This is described in more detail below with reference to the preferred implementation of FIG.

В заключение, относительно фиг.2, на этапе 210 после любых регулировок в скорости передачи битов, сделанных на этапе 208, сервер переключается в ждущий режим 300, который будет сейчас обобщен со ссылкой на фиг.3. Как будет обсуждаться далее, ждущий режим может быть реализован отдельно, т.е. независимо от динамического режима, проиллюстрированного со ссылкой на фиг.2.In conclusion, with respect to FIG. 2, in step 210, after any adjustments to the bit rate made in step 208, the server switches to standby mode 300, which will now be summarized with reference to FIG. 3. As will be discussed below, the standby mode can be implemented separately, i.e. regardless of the dynamic mode illustrated with reference to figure 2.

На этапе 304 в фиг.3 сервер снова следит за значением, представляющим количество данных в буфере клиента на данный момент, т.е. длительность воспроизведения РТ. На этапе 302 сервер наблюдает за буфером клиента для обнаружения, достигли ли буфера клиента пакеты, имеющие закодированные в зависимости от отрегулированной скорости передачи битов данные. Отрегулированная скорость, на которую ссылаются на этапе 302, является новой скоростью передачи битов, получающейся из регулировки скорости передачи битов, выполненной на этапе 208 фиг.2, которая инициировала переключение из динамического режима в ждущий режим. Определение, достигли ли уже буфера клиента пакеты, закодированные на определенной скорости передачи битов, может выполняться путем проверки данных в полях данных NSN или HRSN. На этапе 306, при условии, что пакеты с данными, закодированными на отрегулированной скорости передачи битов, еще не достигли буфера клиента, сервер управляет любыми дополнительными регулировками в скорости передачи битов путем выполнения понижений скорости, исходя из значения РТ, представляющего количество данных в буфере клиента на данный момент наряду с блокированием любых повышений скорости передачи битов. На этапе 308, после того как пакеты с данными, закодированными на последней отрегулированной скорости передачи битов, достигли буфера клиента, сервер переключается обратно в динамический режим фиг.2. Другими словами, этап 306 выполняется только в течение периода времени между предыдущей регулировкой скорости (т.е. повышающем переключении или понижающем переключении) и моментом времени, когда пакеты, содержащие данные, закодированные на отрегулированной скорости передачи битов, первый раз достигли буфера клиента. В течение этого периода времени блокируются повышения скорости. Поэтому не выполняется никаких повышающих переключений, независимо от состояния буфера клиента. Тем не менее, все еще могут выполняться понижающие переключения. Понижающие переключения могут выполняться в соответствии с другими общепринятыми методиками, в которых РТ сравнивается с постоянной пороговой величиной PTDOWN, и выполняется понижающее переключение, если РТ снижается ниже PTDOWN. После того как пакеты с данными, закодированными на отрегулированной скорости передачи битов, достигли буфера клиента, снова выполняется обработка динамического режима, в которой разрешены как повышающие переключения, так и понижающие.At step 304 in FIG. 3, the server again monitors a value representing the amount of data in the client’s buffer at the moment, i.e. RT playback duration. At step 302, the server monitors the client buffer to determine if packets having encoded data depending on the adjusted bit rate have reached the client buffer. The adjusted rate referenced in step 302 is the new bit rate obtained from the bit rate adjustment performed in step 208 of FIG. 2, which triggered a switch from the dynamic mode to the standby mode. Determining whether packets encoded at a particular bit rate have already reached the client buffer can be done by checking the data in the NSN or HRSN data fields. At step 306, provided that the packets of data encoded at the adjusted bit rate have not yet reached the client buffer, the server manages any additional adjustments in the bit rate by performing speed reductions based on the PT value representing the amount of data in the client buffer at the moment, along with blocking any bit rate increases. At block 308, after packets of data encoded at the last adjusted bit rate have reached the client buffer, the server switches back to the dynamic mode of FIG. 2. In other words, step 306 is performed only during the time period between the previous rate adjustment (i.e., upstream or downstream) and the point in time when packets containing data encoded at the adjusted bit rate first reached the client buffer. During this time period, speed increases are blocked. Therefore, no up-switches are performed, regardless of the state of the client buffer. However, downshifts can still be performed. The downshifts can be performed in accordance with other conventional techniques in which the PT is compared with a constant threshold value PT DOWN , and a downshift is performed if the PT drops below PT DOWN . After the packets with data encoded at the adjusted bit rate reach the client buffer, dynamic mode processing is again performed in which both up-switching and down-switching are allowed.

Поэтому повышающие переключения блокируются, как только выполнена регулировка скорости передачи битов (либо вверх, либо вниз), до тех пор, пока буфером клиента принимаются пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов. Это предотвращает выполнение любых дополнительных повышающих переключений, исходя из промежуточных изменений в длительности воспроизведения буфера клиента, прежде чем предыдущая регулировка скорости получила возможность оказать влияние. Как объяснялось выше в разделе «Сущность изобретения», могут возникнуть обстоятельства, в которых длительность воспроизведения буфера клиента изменяется, прежде чем предыдущая регулировка скорости передачи битов получила возможность оказать влияние. Такие изменения иногда могут инициировать дополнительные повышающие переключения, которые часто излишни и приводят к обратным результатам. Действительно, скорость передачи битов часто увеличивается до точки, когда необходима серия понижающих переключений, которые часто не могут быть выполнены достаточно быстро, чтобы предотвратить переполнение буфера. С другой стороны, в ждущем режиме все еще могут выполняться понижающие переключения. Разрешаются дополнительные понижающие переключения для предотвращения вероятности повторной буферизации, так как повторных буферизаций следует избегать при всех обстоятельствах из-за высокого уровня раздражения, которое такие события обычно вызывают у конечного пользователя.Therefore, up-switches are blocked as soon as the bit rate is adjusted (either up or down), until packets containing data encoded depending on the adjusted bit rate are received by the client buffer. This prevents any additional up-switches from being made based on intermediate changes in the duration of the client’s buffer playback before the previous speed adjustment can have an effect. As explained above in the Summary of the Invention, circumstances may arise in which the duration of a client’s buffer reproduction is changed before the previous bit rate adjustment can be influenced. Such changes can sometimes trigger additional up-switches, which are often redundant and counterproductive. Indeed, the bit rate often increases to the point where a series of down-switches are needed, which often cannot be performed fast enough to prevent buffer overflows. On the other hand, in standby mode, downshifts can still be performed. Additional downshifts are allowed to prevent the likelihood of re-buffering, as re-buffering should be avoided under all circumstances due to the high level of irritation that such events usually cause to the end user.

Отметим, что серии понижающих переключений могли выполняться на этапе 306 перед тем как пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов (т.е. скорости, установленной на этапе 208 в фиг.1) окончательно примутся буфером клиента, запуская переключение обратно в динамический режим. В одном примере, когда сервер переключается обратно в динамический режим, новая «текущая» скорость, используемая логикой динамического режима, является скоростью, ассоциативно связанной с самым последним, т.е. последним по времени, из понижающих переключений. В том примере, если серия понижающих переключений выполняется во время ждущего режима, сервер по этой причине не обновляет PTCH, пока пакеты, отправленные согласно последнему из понижающих переключений, не примутся окончательно буфером клиента. В другом примере, когда сервер переключается обратно в динамический режим, новая «текущая» скорость, используемая логикой динамического режима, является вместо этого скоростью, ассоциативно связанной с первым из понижающих переключений, сделанных в ждущем режиме. В этом втором примере, если серия понижающих переключений выполняется во время ждущего режима, сервер по этой причине обновляет PTCH, как только пакеты, отправленные согласно первому из понижающих переключений, окончательно примутся буфером клиента.Note that a series of down-switches could be performed at step 306 before packets containing data encoded depending on the adjusted bit rate (i.e., the speed set at step 208 in FIG. 1) are finally received by the client buffer, triggering the switch back to dynamic mode. In one example, when the server switches back to dynamic mode, the new “current” speed used by the dynamic mode logic is the speed associated with the latter, i.e. last in time, from downshifts. In that example, if a series of down-switches are performed during standby, the server for this reason does not update PT CH until packets sent according to the last of the down-switches are finally received by the client buffer. In another example, when the server switches back to dynamic mode, the new “current” speed used by the dynamic mode logic is instead the speed associated with the first of the downshifts made in standby mode. In this second example, if a series of down-switches are performed during standby, the server for this reason updates PT CH as soon as packets sent according to the first of the down-switches are finally received by the client buffer.

Таким образом, фиг.2 и 3 подводят итог динамическому и ждущему режимам изобретения. В предпочтительной реализации сервер допускает реализацию обоих режимов и переключается туда и обратно между режимами, как описано, исходя из того, когда выполняются регулировки скорости передачи битов и когда пакеты с данными, закодированными на текущей скорости передачи битов, достигают буфера клиента.Thus, FIGS. 2 and 3 summarize the dynamic and standby modes of the invention. In a preferred implementation, the server allows both modes to be implemented and switches back and forth between the modes, as described based on when bit rate adjustments are made and when packets with data encoded at the current bit rate reach the client buffer.

Фиг.4 предоставляет диаграмму состояний, обобщающую два режима работы. Сервер остается в динамическом режиме 200, пока выполняется регулировка 310 скорости (либо вверх, либо вниз), которая инициирует переход в ждущий режим. После этого сервер остается в ждущем режиме, пока пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, не достигнут буфера клиента 312, что инициирует переход обратно в динамический режим. Таким образом, сервер все время функционирует в оптимальном режиме, чтобы минимизировать ненужные переключения скорости, в то же время работая для предотвращения переполнений буфера и, самое главное, работая для предотвращения повторных буферизаций.Figure 4 provides a state diagram summarizing two modes of operation. The server remains in dynamic mode 200 while adjusting the speed 310 (either up or down), which initiates a transition to standby mode. After that, the server remains in standby mode until packets containing data encoded depending on the current bit rate reach the client buffer 312, which initiates the transition back to dynamic mode. Thus, the server always operates in the optimal mode to minimize unnecessary speed switching, while at the same time working to prevent buffer overflows and, most importantly, working to prevent re-buffering.

В других реализациях, тем не менее, сервер может конфигурироваться для реализации либо только динамического режима, либо только ждущего режима. Если реализуется только динамический режим, то сервер предпочтительно конфигурируется, чтобы все время оставаться в динамическом режиме. Другими словами, регулировка в скорости передачи битов (инициированная, например, на этапе 208 фиг.2) не инициирует переход ни в какой другой режим. Наоборот, обработка просто продолжается в динамическом режиме с сервером, следящим за буфером клиента для обнаружения, когда пакеты, содержащие данные, закодированные в зависимости от отрегулированной скорости передачи битов данные, достигают буфера клиента, обновляя тогда PTCH соответственно. Если реализуется только ждущий режим, тем не менее, сервер предпочтительно не остается в ждущем режиме все время (так как это предотвращает выполнение (когда-либо) любых повышающих переключений). Наоборот, предпочтительно, что сервер переключается туда и обратно между ждущим режимом и обычным режимом работы, где обычный режим может быть другим общепринятым режимом работы, в котором используются постоянные пороговые величины повышающего переключения и понижающего переключения в сочетании с длительностью воспроизведения или уровнями заполнения буфера клиента. Обычный режим может использовать механизмы оценки скорости, общеизвестные в данной области техники, в дополнение, либо в качестве альтернативы к пороговым механизмам фиг.5. Другими словами, система может быть реализована в соответствии с диаграммой состояний, похожей на фиг.4, но с заменой динамического режима на обычный режим.In other implementations, however, the server can be configured to implement either only dynamic mode or only standby mode. If only dynamic mode is implemented, then the server is preferably configured to remain in dynamic mode all the time. In other words, the adjustment in the bit rate (initiated, for example, at step 208 of FIG. 2) does not initiate a transition to any other mode. Conversely, processing simply continues in dynamic mode with the server monitoring the client buffer to detect when packets containing data encoded depending on the adjusted bit rate of the data reach the client buffer, then updating PT CH accordingly. If only standby mode is implemented, however, the server preferably does not remain in standby mode all the time (since this prevents any (up-time) upshifts from being performed). On the contrary, it is preferable that the server switches back and forth between the standby mode and the normal operation mode, where the normal mode can be another generally accepted operation mode, in which constant up-switching and down-switching thresholds are used in combination with the playback duration or client buffer fill levels. Normal mode may use speed estimation mechanisms well known in the art, in addition to or as an alternative to the threshold mechanisms of FIG. 5. In other words, the system can be implemented in accordance with a state diagram similar to FIG. 4, but with the replacement of the dynamic mode to normal mode.

Обращаясь к фиг.5, сейчас будет описываться примерная реализация логики динамического режима для использования на этапе 208 фиг.2. В примерной реализации опорное значение PTCH представляет количество данных в буфере клиента в момент времени, когда отправленные на текущей скорости пакеты первый раз достигают буфера клиента. В других примерах вместо этого используются различные опорные точки во времени для обнаружения опорного значения PTCH, например опорные точки, определенные между переключением скорости и точкой, когда пакеты, отправленные на новой скорости, первый раз достигают буфера клиента, и опорные точки, определенные после того, как отправленные на новой скорости пакеты первый раз достигают буфера клиента. Начиная с этапа 400, сервер вводит значения для PTUP, PTDOWN, PTCH и значение S безопасного предела. PTUP и PTDOWN являются заранее установленными, постоянными пороговыми величинами повышающего переключения и понижающего переключения соответственно, которые могут быть установлены в соответствии с другими общепринятыми методиками. PTCH - значение, определенное на этапе 204 фиг.2, которое представляет количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента, S является значением безопасного предела, установленным больше 1,0 и в одном упомянутом примере в 1,2. На этапе 402 сервер устанавливает регулируемую пороговую величину повышающего переключения PTUP-ADJ, равную PTCH, умноженной на значение S безопасного предела. На этапе 404 сервер устанавливает регулируемую пороговую величину понижающего переключения PTDOWN-ADJ, равную PTCH плюс PTDOWN, деленное на два, т.е. PTDOWN-ADJ устанавливается посередине между PTCH и PTDOWN. В общем, PTDOWN-ADJ может устанавливаться в любую точку между PTCH и PTDOWN.Turning to FIG. 5, an example implementation of dynamic mode logic for use in step 208 of FIG. 2 will now be described. In an exemplary implementation, the reference value PT CH represents the amount of data in the client buffer at the point in time when packets sent at the current speed first reach the client buffer. Other examples instead use different reference points in time to detect the PT CH reference value, for example, reference points defined between a speed switch and a point when packets sent at a new speed reach the client buffer for the first time, and reference points determined thereafter how packets sent at a new speed reach the client buffer for the first time. Beginning at step 400, the server enters values for PT UP , PT DOWN , PT CH and a safety limit value S. PT UP and PT DOWN are pre-set, constant thresholds for up-switch and down-switch, respectively, which can be set in accordance with other generally accepted methods. PT CH is the value determined in step 204 of FIG. 2, which represents the amount of data in the client buffer, when packets containing data encoded depending on the current bit rate first reach the client buffer, S is the safe limit value set to more than 1 , 0 and in one mentioned example in 1,2. At step 402, the server sets the adjustable up-switching threshold PT UP-ADJ equal to PT CH times the safe limit value S. At step 404, the server sets the adjustable down-switching threshold PT DOWN-ADJ equal to PT CH plus PT DOWN divided by two, i.e. PT DOWN-ADJ is set midway between PT CH and PT DOWN . In general, PT DOWN-ADJ can be set anywhere between PT CH and PT DOWN .

Пороговые величины иллюстрируются на фиг.6, которая обеспечивает представление буфера 155 клиента из фиг.1 в виде блок-схемы. В примере фиг.6 сервером обнаружилось, что PTCH больше чем PTUP. Соответственно, PTDOWN-ADJ, которая установлена посередине между PTCH и PTDOWN, больше чем PTDOWN. Если вместо этого обнаружилось, что PTCH меньше PTDOWN, то PTDOWN-ADJ также была бы меньше PTDOWN. Между тем, в примере фиг.6 PTUP-ADJ, которая равна PTCH·S, больше чем PTUP. В других примерах, если вместо этого PTCH значительно меньше PTUP, то PTUP-ADJ может быть меньше PTUP. Это зависит от точного значения PTCH, а также значения, используемого для коэффициента S безопасного предела. Отсюда, в зависимости от значения PTCH и других факторов, регулируемые версии PTUP и PTDOWN могут быть либо больше, либо меньше их постоянных эквивалентов. Отметим также, что могут возникнуть обстоятельства, когда PTCH·S может быть больше максимального значения буфера клиента (MAX). Если дело обстоит именно так, то PTUP-ADJ просто устанавливается равным MAX или какому-нибудь другому меньшему значению по умолчанию.Thresholds are illustrated in FIG. 6, which provides a representation of the client buffer 155 of FIG. 1 in a block diagram. In the example of FIG. 6, the server found that PT CH is greater than PT UP . Accordingly, the PT DOWN-ADJ , which is set midway between PT CH and PT DOWN , is larger than PT DOWN . If instead it was found that PT CH is less than PT DOWN , then PT DOWN-ADJ would also be less than PT DOWN . Meanwhile, in the example of FIG. 6, the PT UP-ADJ , which is equal to PT CH · S, is greater than PT UP . In other examples, if, instead, PT CH is significantly less than PT UP , then PT UP-ADJ may be less than PT UP . This depends on the exact value of PT CH , as well as the value used for the safety factor coefficient S. Hence, depending on the value of PT CH and other factors, the adjustable versions of PT UP and PT DOWN can be either more or less than their constant equivalents. Note also that circumstances may arise where PT CH · S may be greater than the maximum client buffer value (MAX). If this is the case, then the PT UP-ADJ is simply set to MAX or some other lower default value.

Возвращаясь к фиг.5, на этапе 406 сервер начинает ввод значений для PT, т.е. текущей длительности воспроизведения данных, уже содержащихся в буфере клиента, отслеженных на этапе 206 фиг.2. Если на этапе 408 принятия решения PT больше PTDOWN и PT также больше PTUP-ADJ, то на этапе 410 инициируется повышающее переключение. Если нет, то выполняется этап 412 принятия решения, на котором если PT меньше PTDOWN или PT меньше PTDOWN-ADJ, то на этапе 414 инициируется понижающее переключение.Returning to FIG. 5, at step 406, the server starts entering values for the PT, i.e. the current playback duration of the data already contained in the client buffer, tracked at step 206 of FIG. 2. If, at decision block 408, PT is greater than PT DOWN and PT is also greater than PT UP-ADJ , then up-step is triggered at step 410. If not, then decision block 412 is performed, in which if PT is less than PT DOWN or PT is less than PT DOWN-ADJ , then step 414 triggers a down switch.

Логика этапов 408 и 412 принятия решения может быть представлена следующим образом:The logic of decision steps 408 and 412 can be represented as follows:

Если PT > PTDOWN и PT > PTUP-ADJ, тогдаIf PT> PT DOWN and PT> PT UP-ADJ , then

выполнить повышающее переключениеperform up switch

иначе, если PT < PTDOWN либо PT < PTDOWN-ADJ,otherwise, if PT <PT DOWN or PT <PT DOWN-ADJ ,

выполнить понижающее переключениеperform downshift

(конец условия)(end of condition)

где, как отмечалось,where, as noted,

PTUP-ADJ = PTCH ·S иPT UP-ADJ = PT CH · S and

PTDOWN-ADJ = (PTCH + PTDOWN)/2.PT DOWN-ADJ = (PT CH + PT DOWN ) / 2.

Поэтому повышающее переключение инициируется, если текущая длительность воспроизведения РТ буфера клиента превышает отрегулированную пороговую величину повышающего переключения PTUP-ADJ, допуская, что РТ также превышает PTDOWN. Это последнее условие предотвращает нецелесообразные повышающие переключения в обстоятельствах, где понижающее переключение может быть более уместным. Инициируя повышающие переключения, исходя из отрегулированной пороговой величины повышающего переключения, а не постоянной пороговой величины повышающего переключения, сервер, тем самым, учитывает текущее состояние буфера клиента (которое представлено посредством РТ), в то же время учитывая динамическое изменение состояния буфера клиента (посредством регулировки пороговой величины повышающего переключения). Это помогает предотвратить иные нецелесообразные повышающие переключения.Therefore, up-switching is initiated if the current playing time of the client’s PT buffer exceeds the adjusted up-switching threshold PT UP-ADJ , assuming that the PT also exceeds PT DOWN . This latter condition prevents inappropriate up-switches in circumstances where down-switching may be more appropriate. When initiating up-switches, based on the adjusted up-switch threshold and not a constant up-switch threshold, the server takes into account the current state of the client buffer (which is represented by RT), while taking into account the dynamic change in the client buffer state (by adjusting threshold value of up-switching). This helps to prevent other inappropriate up-switches.

Рассмотрим пример, в котором регулируемая пороговая величина повышающего переключения изначально устанавливается равной постоянной пороговой величине повышающего переключения. Отсюда, если длительность воспроизведения буфера клиента превышает этот пороговый уровень, выполняется повышающее переключение. Если затем длительность воспроизведения увеличивается до того, как первые пакеты, отправленные с большей скоростью передачи битов, достигают буфера клиента, то регулируемая пороговая величина повышающего переключения будет больше постоянной пороговой величины. В этом случае будет выполнено только дополнительное повышающее переключение, если длительность воспроизведения превышает новую, более высокую пороговую величину. Другими словами, становится труднее инициировать повышающее переключение, поскольку должна быть превышена более высокая пороговая величина, соответственно задерживая дополнительные повышающие переключения в обстоятельствах, где такая задержка оправдана. Если вместо этого снова использовалась постоянная пороговая величина повышающего переключения, увеличение длительности воспроизведения буфера клиента привело бы к новому значению для РТ, которое снова превысило бы постоянную пороговую величину, соответственно инициируя другое повышающее переключение. Путем установки пороговой величины в исходное значение, исходя из длительности воспроизведения в момент, когда пакеты принимаются первый раз, только еще большее увеличение длительности воспроизведения может инициировать другое повышающее переключение. Вышеупомянутый безопасный предел предоставляется для гарантии, что нетривиальное увеличение длительности воспроизведения относительно PTCH обязано происходить до того, как инициируется другое повышающее переключение. Соответственно, после первого повышающего переключения будет выполняться дополнительное повышающее переключение, если длительность воспроизведения буфера все еще увеличивается, тем самым избегая ненужных повышающих переключений.Consider an example in which an adjustable up-shift threshold is initially set equal to a constant up-switch threshold. From here, if the playback time of the client buffer exceeds this threshold level, up-switching is performed. If then the playback time is increased before the first packets sent with a higher bit rate reach the client buffer, then the adjustable up-switch threshold will be greater than the constant threshold. In this case, only an additional up-switch will be performed if the playback duration exceeds a new, higher threshold value. In other words, it becomes more difficult to initiate up-switching because a higher threshold value must be exceeded, accordingly delaying additional up-switching in circumstances where such a delay is justified. If instead a constant up-switching threshold was used again, an increase in the client buffer playback duration would lead to a new value for PT, which would again exceed the constant up-threshold, accordingly initiating another up-switching. By setting the threshold value to the initial value, based on the playback duration at the moment when packets are received for the first time, only an even larger increase in the playback duration can initiate another up-switch. The aforementioned safe limit is provided to ensure that a non-trivial increase in playback duration with respect to PT CH must occur before another up-switch is initiated. Accordingly, after the first up-switch, an additional up-switch will be performed if the playback time of the buffer is still increasing, thereby avoiding unnecessary up-switches.

Теперь рассмотрим пример, в котором регулируемая пороговая величина повышающего переключения опять изначально устанавливается равной постоянной пороговой величине повышающего переключения, но где длительность воспроизведения буфера клиента затем значительно снижается до того, как первые пакеты, отправленные с большей скоростью передачи битов, достигают буфера клиента. В этом случае регулируемая пороговая величина повышающего переключения будет меньше, чем постоянная пороговая величина. В том случае будет выполняться дополнительное повышающее переключение, если длительность воспроизведения превышает новую, более низкую пороговую величину (допуская, что она также превышает постоянную пороговую величину PTDOWN). Другими словами, становится проще инициировать повышающее переключение, соответственно ускоряя дополнительные повышающие переключения в обстоятельствах, где они оправданы.Now consider an example in which the adjustable up-switch threshold is again initially set equal to the constant up-switch threshold, but where the playing time of the client buffer is then significantly reduced before the first packets sent with a higher bit rate reach the client buffer. In this case, the adjustable threshold value of the up-switch will be less than the constant threshold value. In that case, an additional up-switching will be performed if the playback duration exceeds a new, lower threshold value (assuming that it also exceeds a constant threshold value PT DOWN ). In other words, it becomes easier to initiate up-switches, correspondingly accelerating additional up-switches in circumstances where they are justified.

Обращаясь теперь к понижающим переключениям, понижающее переключение инициируется, если текущая длительность воспроизведения PT буфера клиента снижается ниже либо постоянной пороговой величины PTDOWN, либо отрегулированной пороговой величины понижающего переключения PTDOWN-ADJ. Другими словами, понижающее переключение инициируется, если РТ снижается ниже большей из двух пороговых величин понижающего переключения. Постоянная пороговая величина все еще используется для инициирования понижающего переключения, чтобы предотвратить задержку понижающего переключения с тем, чтобы помочь предотвратить повторные буферизации. Тем не менее, понижающее переключение может быть ускорено, что происходит, если РТ снижается ниже отрегулированной пороговой величины понижающего переключения. Как отмечено выше, отрегулированная пороговая величина понижающего переключения может оказаться либо выше, либо ниже постоянной пороговой величины понижающего переключения. Если она ниже постоянной пороговой величины, это является излишним, так как постоянная пороговая величина в любом случае используется для немедленного запуска понижающего переключения. Однако если регулируемая пороговая величина понижающего переключения превышает постоянную пороговую величину понижающего переключения, то регулируемая пороговая величина понижающего переключения может тогда инициировать срочное понижающее переключение, т.е. понижающее переключение, которое происходит в обстоятельствах, где понижающее переключение не произошло бы при использовании общепринятой логики переключения. Срочное понижающее переключение происходит, как отмечено, если длительность воспроизведения снижается ниже регулируемой пороговой величины понижающего переключения.Turning now to down switches, a down switch is triggered if the current playing time of the PT client buffer falls below either a constant threshold threshold PT DOWN or an adjusted threshold down switch PT DOWN-ADJ . In other words, a down switch is triggered if the PT drops below the larger of the two down switch thresholds. A constant threshold value is still used to initiate down-switching to prevent a down-switching delay, in order to help prevent repeated buffering. However, the downshift can be accelerated, which occurs if the PT drops below the adjusted downshift threshold. As noted above, the adjusted down-switching threshold may be either higher or lower than the constant down-switching threshold. If it is below a constant threshold value, this is redundant, since a constant threshold value is in any case used to immediately initiate a down switch. However, if the adjustable down-switching threshold exceeds a constant down-switching threshold, then the adjustable down-switching threshold can then trigger an urgent down-switching, i.e. step-down switching, which occurs in circumstances where step-down switching would not occur when using conventional switching logic. An urgent down-switch occurs as noted if the playback duration decreases below an adjustable down-switch threshold.

Если никакое из условий этапов 408 и 412 принятия решения не является истинным, то обработка возвращается к этапу 406, где вводится последнее значение для РТ для применения к различным пороговым величинам. Допуская, однако, что инициируется либо повышающее переключение, либо понижающее переключение, затем выполняется этап 416, на котором сервер переключается в ждущий режим, логика которого будет описываться далее со ссылкой на фиг.7.If none of the conditions of decision steps 408 and 412 is true, then the processing returns to step 406, where the last value for PT is entered for application to various threshold values. Assuming, however, that either up-switch or down-switch is initiated, then step 416 is performed, at which the server switches to standby mode, the logic of which will be described later with reference to FIG. 7.

Для краткого подведения итога, логика принятия решения динамического режима из фиг.5 предоставляет средство для управления регулировками в скорости передачи битов пакетов, чтобы переключаться на увеличенную скорость передачи битов, если количество данных в буфере клиента в данный момент превышает отрегулированную пороговую величину повышающего переключения, установленную исходя из значения, представляющего количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента. Тем не менее, переключение на более высокую скорость передачи битов выполняется, только если количество данных в буфере клиента в данный момент также превышает минимальную пороговую величину. Логика принятия решения динамического режима также предоставляет средство для управления регулировками в скорости передачи битов, чтобы переключаться на более низкую скорость передачи битов, если количество данных в буфере клиента в данный момент снижается ниже отрегулированной пороговой величины понижающего переключения, установленной исходя из значения, представляющего количество данных в буфере клиента, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента.To summarize briefly, the dynamic mode decision logic of FIG. 5 provides a means for controlling the adjustments in packet bit rate to switch to an increased bit rate if the amount of data in the client buffer currently exceeds the adjusted up-switch threshold set by based on a value representing the amount of data in the client buffer when packets containing encoded depending on the current bit rate d nnye, first reach the client buffer. However, switching to a higher bit rate is only performed if the amount of data in the client buffer at the moment also exceeds the minimum threshold value. The dynamic mode decision logic also provides a means for controlling adjustments in the bit rate to switch to a lower bit rate if the amount of data in the client buffer is currently falling below the adjusted down-switch threshold set based on a value representing the amount of data in the client’s buffer, when packets containing data encoded depending on the current bit rate reach the buffer for the first time tape.

Обращаясь теперь к фиг.7, сейчас будет описываться предпочтительная реализация логики ждущего режима для использования на этапе 306 фиг.3. Начиная с этапа 500, сервер вводит значения для PTUP и PTDOWN, которые являются теми же постоянными пороговыми величинами, использованными применительно к фиг.6. На этапе 502 сервер начинает ввод значений для PT, т.е. текущей длительности воспроизведения данных, уже содержащихся в буфере клиента, отслеженных на этапе 206 фиг.2. На этапе 504 принятия решения, если длительность воспроизведения РТ снижается ниже PTDOWN, инициируется понижающее переключение, этап 506. Если нет, то на этапе 508 принятия решения сервер определяет, достигли ли буфера клиента пакеты, отправленные на последней отрегулированной скорости передачи битов. Если это имеет место, то обработка незамедлительно возвращается в динамический режим, этап 510. В противном случае обработка возвращается к этапу 502, на котором вводится обновленное значение для длительности воспроизведения для сравнения на этапе 504 с постоянной пороговой величиной понижающего переключения. Что особенно примечательно касаемо логики фиг.7, не делается никаких сравнений относительно пороговых величин, повышающих переключений, и не выполняется никаких повышающих переключений. Как уже объяснялось, повышающие переключения запрещены во время ждущего режима для предотвращения любых необоснованных повышающих переключений. Понижающие переключения инициируются постоянной пороговой величиной понижающего переключения, чтобы гарантировать, что понижающие переключения выполняются, чтобы избегать возможных повторных буферизаций. В ждущем режиме не используются регулируемые пороговые величины.Turning now to FIG. 7, a preferred implementation of the standby logic for use in step 306 of FIG. 3 will now be described. Starting at step 500, the server enters values for PT UP and PT DOWN , which are the same constant threshold values used in relation to FIG. 6. At step 502, the server starts entering values for the PT, i.e. the current playback duration of the data already contained in the client buffer, tracked at step 206 of FIG. 2. In decision block 504, if the playback time of the PT decreases below PT DOWN , a down switch is initiated, step 506. If not, then in decision block 508, the server determines whether packets sent at the last adjusted bit rate have reached the client buffer. If this is the case, the processing immediately returns to dynamic mode, step 510. Otherwise, the processing returns to step 502, where an updated value for the playback duration is entered for comparison in step 504 with a constant down-switching threshold. What is particularly noteworthy with respect to the logic of FIG. 7, no comparisons are made with respect to thresholds up-switching, and no up-switching is performed. As already explained, up-switches are prohibited during standby to prevent any unreasonable up-switches. Down switches are triggered by a constant down switch threshold to ensure that down switches are performed to avoid possible re-buffering. In standby mode, no adjustable thresholds are used.

Таким образом, описана примерная реализация способа для методики регулирования общей скорости передачи данных в системе на основе пакетов путем увеличения или уменьшения скорости передачи битов у данных, закодированных внутри пакетов. Скорость пакетной передачи обычно не меняется, так как зависит от пропускной способности линии связи. Однако в других реализациях скорость пакетной передачи также может регулироваться, используя, например, адаптивные методики.Thus, an exemplary implementation of a method is described for a methodology for controlling the overall data rate in a packet-based system by increasing or decreasing the bit rate of data encoded within the packets. The packet transmission speed usually does not change, since it depends on the bandwidth of the communication line. However, in other implementations, the packet rate may also be adjusted using, for example, adaptive techniques.

Хотя изобретение описано, в основном, со ссылкой на реализации способа, реализации устройства также являются частью изобретения. Фиг.8 иллюстрирует на высоком уровне примерную реализацию устройства. Коротко, компонент 600 сети, который может быть частью сервера 105 фиг.1, включает в себя контроллер 602 скорости передачи битов для запуска передачи данных в пакетах на текущей скорости передачи битов и контрольное устройство 604 буфера клиента для отслеживания буфера клиента, чтобы обнаруживать опорное значение, представляющее количество данных в буфере клиента в следующий момент времени, например, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента. Устройство 606 слежения следит за значением, представляющим количество данных в буфере клиента в данный момент. Контроллер 608 динамического режима предоставляется для управления регулировками в скорости передачи битов у пакетов, исходя из значения, представляющего количество данных в буфере клиента в данный момент, и исходя из опорного значения. Устройство также может включать в себя контроллер 610 ждущего режима для управления регулировками в скорости передачи битов пакетов в соответствии со ждущим режимом. В одном примере контроллер 608 динамического режима реализует логику динамического режима фиг.5, тогда как контроллер 610 ждущего режима реализует логику ждущего режима фиг.7. Могут предоставляться другие реализации, которые не включают в себя контроллер 608 динамического режима или которые не включают в себя контроллер 610 ждущего режима.Although the invention has been described mainly with reference to method implementations, device implementations are also part of the invention. Fig. 8 illustrates at a high level an exemplary implementation of the device. Briefly, the network component 600, which may be part of the server 105 of FIG. 1, includes a bit rate controller 602 for triggering packet data at the current bit rate and a client buffer monitor 604 for monitoring the client buffer to detect a reference value representing the amount of data in the client buffer at the next point in time, for example, when packets containing data encoded depending on the current bit rate reached the client buffer for the first time. Tracking device 606 monitors a value representing the amount of data in the client’s buffer at the moment. A dynamic mode controller 608 is provided to control the adjustments in the bit rate of the packets based on a value representing the amount of data in the client's buffer at the moment and on the basis of the reference value. The device may also include a standby controller 610 for controlling adjustments in packet bit rate in accordance with the standby mode. In one example, the dynamic mode controller 608 implements the dynamic mode logic of FIG. 5, while the standby controller 610 implements the sleep mode logic of FIG. 7. Other implementations may be provided that do not include a dynamic mode controller 608 or that do not include a standby controller 610.

Обычному специалисту в данной области техники может быть понятно, что настоящее изобретение и ассоциативно связанные с ним методики обеспечивают расширенный постигнутый опыт конечного пользователя для приложений, таких как потоковая передача мультимедиа, путем обхода переполнений и опустошения буфера клиента.One of ordinary skill in the art may understand that the present invention and associated techniques provide enhanced end-user experience for applications such as streaming media by bypassing overflows and emptying the client buffer.

Кроме того, опытный специалист также примет во внимание, что имеются множество различных методик, которые могут использоваться для определения уровней заполнения буфера клиента, включая оценки на основе данных в RR и Отчетах Отправителя, и что настоящее изобретение может реализовываться параллельно с множеством потоков пакетов данных, одновременно буферизуемых в одном или нескольких буферах сети для передачи одному или нескольким клиентам. Также механизмы управления скоростью передачи могут использоваться в дополнение к повышающему переключению, описанному выше, чтобы избегать переполнений буфера. Обычный специалист в данной области техники примет еще во внимание, что изобретение может быть реализовано различными типами компонентов сети, например сетевыми терминалами, узлами сети и т.п. В частности, изобретение может быть применено на практике подвижными терминалами, прокси-серверами (которые могли бы разделить канал передачи) и стационарными терминалами.In addition, an experienced person will also appreciate that there are many different techniques that can be used to determine client buffer fill levels, including estimates based on data in RR and Sender Reports, and that the present invention can be implemented in parallel with multiple data packet streams, simultaneously buffered in one or more network buffers for transmission to one or more clients. Also, rate control mechanisms can be used in addition to the up-switch described above to avoid buffer overflows. A person of ordinary skill in the art will also appreciate that the invention can be implemented by various types of network components, such as network terminals, network nodes, and the like. In particular, the invention can be practiced by mobile terminals, proxy servers (which could share the transmission channel) and fixed terminals.

Несмотря на то что изобретение описано относительно конкретных вариантов осуществления, специалисты в данной области техники признают, что изобретение не ограничивается отдельными вариантами осуществления, описанными и проиллюстрированными в данном документе. Поэтому, хотя изобретение описано относительно его предпочтительных вариантов осуществления, нужно понимать, что данное раскрытие изобретения является только пояснительным. Соответственно подразумевается, что изобретение ограничивается только объемом прилагаемой к нему формулы изобретения.Although the invention has been described with respect to specific embodiments, those skilled in the art will recognize that the invention is not limited to the individual embodiments described and illustrated herein. Therefore, although the invention has been described with respect to its preferred embodiments, it should be understood that this disclosure is only illustrative. Accordingly, it is intended that the invention be limited only by the scope of the appended claims.

Claims (18)

1. Способ управления пакетными передачами от сервера (105) к клиенту (115), имеющему буфер (155) клиента, причем скорость передачи битов данных, которые необходимо передавать в пакетах, выбирается сервером, исходя из состояния буфера клиента, причем способ содержит этапы, на которых
начинают передавать пакеты, содержащие данные, закодированные в зависимости от текущей скорости передачи битов (202);
следят за буфером клиента (115) для обнаружения, когда пакеты, содержащие данные, закодированные в зависимости от текущей скорости передачи битов, первый раз достигнут буфера клиента (202);
обнаруживают опорное значение (РТсн), представляющее количество данных в буфере клиента (115), когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента (204);
следят за значением (РТ), представляющим количество данных в буфере клиента на данный момент (206); и
управляют регулировками (208) скорости передачи битов у передаваемых данных в соответствии с динамическим режимом (200), исходя из значения (РТ), представляющего количество данных в буфере клиента (115) на данный момент, и исходя из опорного значения (РТсн)
1. A method for controlling packet transmissions from a server (105) to a client (115) having a client buffer (155), the bit rate of the data to be transmitted in packets being selected by the server based on the state of the client buffer, the method comprising the steps where
start transmitting packets containing data encoded depending on the current bit rate (202);
monitor the client buffer (115) to detect when packets containing data encoded depending on the current bit rate first reached the client buffer (202);
detecting a reference value (PTc) representing the amount of data in the client buffer (115) when packets containing encoded data depending on the current bit rate first reached the client buffer (204);
monitor the value (RT) representing the amount of data in the client’s buffer at the moment (206); and
control the adjustments (208) of the bit rate of the transmitted data in accordance with the dynamic mode (200), based on the value (PT) representing the amount of data in the client buffer (115) at the moment, and based on the reference value (PTc)
2. Способ по п.1, в котором этап, на котором управляют регулировками (208) в соответствии с динамическим режимом, включает в себя этап, на котором
переключаются на более высокую скорость передачи битов (410), если количество данных в буфере (РТ) клиента на данный момент превышает регулируемую пороговую величину повышающего переключения (РТUP-ADJ), установленную исходя из опорного значения (РТсн).
2. The method according to claim 1, wherein the step of controlling the adjustments (208) in accordance with the dynamic mode includes a step of:
switch to a higher bit rate (410) if the amount of data in the client’s buffer (PT) currently exceeds the adjustable up-switch threshold (PT UP-ADJ ) set based on the reference value (PT sn ).
3. Способ по п.2, в котором регулируемая пороговая величина повышающего переключения (РТUP-ADJ) устанавливается равной заранее установленному безопасному пределу (S), умноженному на опорное значение (РТсн)3. The method of claim 2, wherein the adjustable up-switch threshold (PT UP-ADJ ) is set equal to a predetermined safety limit (S) times the reference value (PT sn ) 4. Способ по любому из пп.2 и 3, в котором этап, на котором переключаются на более высокую скорость передачи битов в динамическом режиме, выполняется, только если количество данных (РТ) в буфере клиента на данный момент также превышает минимальную пороговую величину (408).4. The method according to any one of claims 2 and 3, in which the step of switching to a higher bit rate in dynamic mode is performed only if the amount of data (RT) in the client buffer at the moment also exceeds the minimum threshold value ( 408). 5. Способ по любому из пп.2 или 3, в котором этап, на котором управляют регулировками (208) в соответствии с динамическим режимом (200), включает в себя этап, на котором
переключаются на более низкую скорость передачи битов (414), если количество данных в буфере (РТ) клиента на данный момент снижается ниже регулируемой пороговой величины понижающего переключения (PTADJ-DOWN) установленной исходя из опорного значения (РТсн).
5. The method according to any one of claims 2 or 3, wherein the step of controlling the adjustments (208) in accordance with the dynamic mode (200) includes a step of
switch to a lower bit rate (414) if the amount of data in the client’s buffer (PT) is currently lower than the adjustable threshold for lowering switching (PT ADJ-DOWN ) set based on the reference value (PT sn ).
6. Способ по п.5, в котором регулируемая пороговая величина понижающего переключения (PTADJ-DOWN) устанавливается (404) приблизительно посередине между заранее установленной минимальной пороговой величиной (PTDOWN) и опорным значением (РТсн).6. The method according to claim 5, in which the adjustable threshold down-switching threshold (PT ADJ-DOWN ) is set (404) approximately in the middle between a predetermined minimum threshold value (PT DOWN ) and the reference value (PT sn ). 7. Способ по п.5, в котором этап (414), на котором переключаются на более низкую скорость передачи битов в динамическом режиме (200), выполняется в качестве альтернативы, если количество данных (РТ) в буфере клиента на данный момент снижается ниже заранее установленной минимальной пороговой величины (PTDOWN).7. The method according to claim 5, in which step (414), which switches to a lower bit rate in dynamic mode (200), is performed as an alternative if the amount of data (RT) in the client buffer is currently reduced below preset minimum threshold (PT DOWN ). 8. Способ по любому из пп.6 и 7, в котором минимальная пороговая величина (PTDOWN) является постоянной пороговой величиной понижающего переключения (400).8. The method according to any of claims 6 and 7, in which the minimum threshold value (PT DOWN ) is a constant threshold value of the down switch (400). 9. Способ по любому из пп.1-3, в котором этап, на котором управляют регулировками (208) в скорости передачи битов пакетов в соответствии с динамическим режимом (200), выполняется только после того, как отправленные пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, достигнут буфера клиента (312).9. The method according to any one of claims 1 to 3, in which the step of controlling the adjustments (208) in the bit rate of the packets in accordance with the dynamic mode (200) is performed only after the sent packets containing the encoded depending from the current data bit rate, the client buffer has been reached (312). 10. Способ по п.9, дополнительно включающий в себя этап, на котором управляют дополнительными регулировками (306) в скорости передачи битов данных в соответствии со ждущим режимом (300).10. The method according to claim 9, further comprising the step of controlling additional adjustments (306) in the data bit rate in accordance with the standby mode (300). 11. Способ по п.10, в котором этап, на котором управляют дополнительными регулировками (306) в скорости передачи битов данных в соответствии со ждущим режимом (300), выполняется только после регулировки скорости и до того, как отправленные пакеты, содержащие закодированные в зависимости от вновь отрегулированной скорости передачи битов данные, достигнут буфера клиента (310).11. The method according to claim 10, in which the step of controlling additional adjustments (306) in the data bit rate in accordance with the standby mode (300) is performed only after adjusting the speed and before the sent packets containing encoded in Depending on the newly adjusted data bit rate, a client buffer has been reached (310). 12. Способ по п.11, в котором этап, на котором управляют дополнительными регулировками в скорости передачи битов пакетов (306) в соответствии со ждущим режимом (300), включает в себя этап, на котором
переключаются на более низкую скорость передачи битов (506), если количество данных (РТ) в буфере клиента на данный момент снижается ниже постоянной пороговой величины понижающего переключения (PTDOWN).
12. The method according to claim 11, in which the stage on which to control additional adjustments in the bit rate of the packets (306) in accordance with the standby mode (300), includes a stage on which
switch to a lower bit rate (506) if the amount of data (PT) in the client buffer is currently lower than the constant threshold of the down switch (PT DOWN ).
13. Способ по любому из п.11, в котором этап, на котором управляют дополнительными регулировками (306) в скорости передачи битов пакетов в соответствии со ждущим режимом (300), включает в себя этап, на котором
запрещают увеличения скорости передачи битов (306).
13. The method according to any one of claim 11, in which the step of controlling additional adjustments (306) in the packet bit rate in accordance with the standby mode (300) includes a step in which
prohibit bit rate increases (306).
14. Способ по любому из пп.1-3, 6-7 и 10-13, в котором значение, представляющее количество данных в буфере клиента, представляет длительность воспроизведения (РТ) данных или уровень заполнения буфера.14. The method according to any one of claims 1 to 3, 6-7 and 10-13, in which a value representing the amount of data in the client buffer represents the duration of reproduction (RT) of data or the level of filling of the buffer. 15. Машиночитаемый носитель записи, хранящий в себе компьютерный программный продукт, содержащий части кода программы, при обращении к которым вычислительная система выполняет этапы по любому из предшествующих пунктов формулы.15. A computer-readable recording medium containing a computer program product containing portions of program code, when accessed by which the computing system performs the steps according to any one of the preceding claims. 16. Носитель по п.15, в котором компьютерный программный продукт хранится на машиночитаемом носителе записи.16. The medium of claim 15, wherein the computer program product is stored on a computer-readable recording medium. 17. Устройство (600) для управления пакетными передачами от сервера к клиенту, содержащее процессор вычислительной машины и запоминающее устройство, соединенное с процессором, причем запоминающее устройство содержит одну или несколько программ, которые могут выполнять этапы любого из пп.1-16 формулы изобретения.17. A device (600) for controlling packet transmissions from a server to a client, comprising a computer processor and a storage device connected to the processor, the storage device comprising one or more programs that can perform the steps of any one of claims 1-16. 18. Устройство (600) для управления пакетными передачами от сервера (105) к клиенту (115), имеющему буфер (155) клиента, причем скорость передачи битов пакетов от сервера к клиенту регулируется сервером, исходя из текущего состояния буфера клиента, при этом устройство содержит
контроллер (602) скорости передачи битов для запуска передачи данных в пакетах на текущей скорости передачи битов;
контрольное устройство (604) буфера клиента для отслеживания буфера клиента (115), чтобы, обнаруживать, когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигают буфера клиента (202), и для обнаружения опорного значения (РТсн), представляющего количество данных в буфере клиента (115), когда пакеты, содержащие закодированные в зависимости от текущей скорости передачи битов данные, первый раз достигли буфера клиента(204);
устройство (606) слежения для слежения за значением, представляющим количество данных в буфере (155) клиента на данный момент; и
контроллер (608) динамического режима для управления регулировками в скорости передачи битов пакетов, исходя из значения, представляющего количество данных в буфере клиента на данный момент, и исходя из опорного значения.
18. A device (600) for controlling packet transmissions from a server (105) to a client (115) having a client buffer (155), and the bit rate of packets from the server to the client is controlled by the server based on the current state of the client buffer, and the device contains
a bit rate controller (602) for starting data transmission in packets at the current bit rate;
a client buffer monitoring device (604) for monitoring the client buffer (115), to detect when packets containing data encoded depending on the current bit rate reach the client buffer for the first time (202), and to find the reference value (PT sn ), representing the amount of data in the client buffer (115), when packets containing data encoded depending on the current bit rate reached the client buffer for the first time (204);
a tracking device (606) for tracking a value representing the amount of data in the client’s buffer (155) at the moment; and
a dynamic mode controller (608) for controlling adjustments in the packet bit rate, based on a value representing the amount of data in the client buffer at the moment, and on the basis of the reference value.
RU2007141651/09A 2005-04-11 2005-04-11 Method for dynamic control of packet data transmission RU2378781C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2007141651/09A RU2378781C2 (en) 2005-04-11 2005-04-11 Method for dynamic control of packet data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2007141651/09A RU2378781C2 (en) 2005-04-11 2005-04-11 Method for dynamic control of packet data transmission

Publications (2)

Publication Number Publication Date
RU2007141651A RU2007141651A (en) 2009-05-20
RU2378781C2 true RU2378781C2 (en) 2010-01-10

Family

ID=41021331

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007141651/09A RU2378781C2 (en) 2005-04-11 2005-04-11 Method for dynamic control of packet data transmission

Country Status (1)

Country Link
RU (1) RU2378781C2 (en)

Also Published As

Publication number Publication date
RU2007141651A (en) 2009-05-20

Similar Documents

Publication Publication Date Title
US9344476B2 (en) Technique for controlling data packet transmission of variable bit rate data
EP1872537B1 (en) Technique for dynamically controlling data packet transmissions
US8949452B2 (en) System and method for progressive download with minimal play latency
US8745260B2 (en) System and method for progressive download using surplus network capacity
US9001885B2 (en) System and method for dynamically determining multimedia transmission based on communication bandwidth
US7142508B2 (en) System and method for controlling data transfer rates on a network
US8346959B2 (en) Client-controlled adaptive streaming
US20030198184A1 (en) Method of dynamically determining real-time multimedia streaming rate over a communications networks
JP2005526422A (en) Communication system and communication technique for transmission from source to destination
Su et al. Smooth control of adaptive media playout for video streaming
US20110273985A1 (en) Method for controlling a flow in a packet switching network
CN113301392A (en) Code rate determining method, device, equipment and storage medium
Hung et al. Flexible HTTP-based Video Adaptive Streaming for good QoE during sudden bandwidth drops
WO2004039034A1 (en) System and method for reducing initial buffering time for a streaming application
RU2378781C2 (en) Method for dynamic control of packet data transmission
CN110381036A (en) A kind of TCP jamming control method for DASH Streaming Media
RU2389145C2 (en) Method of controlling transmission of data packets for data with variable bitrate
GB2398967A (en) A handover method in a GPRS system
Li et al. The minimal buffering requirements of congestion controlled interactive multimedia applications
Ye et al. Receiver-buffer-driven approach to adaptive Internet video streaming
WO2002052427A1 (en) System and method for controlling data transfer rates on a network
De Marco et al. Run-Time Adjusted Congestion Control for Multimedia: Experimentals Results
Sun et al. Predictive flow control for TCP-friendly end-to-end real-time video on the Internet
Ehtiba et al. Media Playout Techniques for Video Intra-Stream Synchronization: Review and Analysis

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20210412