RU2389145C2 - Method of controlling transmission of data packets for data with variable bitrate - Google Patents

Method of controlling transmission of data packets for data with variable bitrate Download PDF

Info

Publication number
RU2389145C2
RU2389145C2 RU2007141622/09A RU2007141622A RU2389145C2 RU 2389145 C2 RU2389145 C2 RU 2389145C2 RU 2007141622/09 A RU2007141622/09 A RU 2007141622/09A RU 2007141622 A RU2007141622 A RU 2007141622A RU 2389145 C2 RU2389145 C2 RU 2389145C2
Authority
RU
Russia
Prior art keywords
data
bit rate
bitrate
stream
variable
Prior art date
Application number
RU2007141622/09A
Other languages
Russian (ru)
Other versions
RU2007141622A (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 RU2007141622/09A priority Critical patent/RU2389145C2/en
Publication of RU2007141622A publication Critical patent/RU2007141622A/en
Application granted granted Critical
Publication of RU2389145C2 publication Critical patent/RU2389145C2/en

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: there is disclosed method of controlling transmission of data packets for data with variable bitrate from a server to a client having a client buffer, where the server switches between different versions of streams of transmitted data with variable bitrate based on status of the client buffer. The method works for selecting the initial version of a data stream with variable bitrate for transmission and tracking the value which represents the amount of data inside the client buffer. The bitrate for the next portion of data with variable bitrate to be transmitted is determined. The server then controls switch to other stream versions having different average bitrates, based on the value which represents amount of data in the client buffer, combined with the bitrate of the portion of data with variable bitrate still to be transmitted.
EFFECT: more stable connection.
17 cl, 7 dwg

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION

Изобретение, в целом, относится к передаче данных и, более конкретно, к способу управления передачами пакетов потоковых данных.The invention generally relates to data transmission and, more specifically, to a method for controlling the transmission of streaming data packets.

УРОВЕНЬ ТЕХНИКИBACKGROUND

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

Во многих случаях скорость передачи пакетов не может быть изменена, поскольку эта скорость зависит от полосы пропускания канала связи (или, по меньшей мере, изменение скорости передачи пакетов является неосуществимым). Однако скорость, с которой данные подаются на выходное устройство пользователя, часто должна быть изменена. Обычно, для потоковых приложений такие подстройки осуществляются с использованием "переключения потока". При переключении потока одно и то же мультимедийное содержимое, например конкретная видеопоследовательность, предварительно кодируется с различными битрейтами и сохраняется на сервере. Следовательно, являются доступными различные версии одного и того же потока. В течение передачи сервер выбирает конкретную версию, которая имеет наиболее подходящий битрейт данных, на основании текущей доступной полосы пропускания в сети и на основании состояния клиентского буфера. Используемая сервером переключательная логическая схема решает, переключать ли на другую версию потока и когда переключать на нее. В случае так называемого "переключения-вниз", поток переключается на версию с более низким кодированным битрейтом. В случае "переключения-вверх" переключение выполняется на версию с более высоким кодированным битрейтом. Во многих реализациях критерии для осуществления переключения используют заранее заданные пороговые величины, определенные по отношению к состоянию клиентского буфера. В одном примере пороговые величины основаны на уровне заполнения буфера, представляющем в байтах количество данных внутри клиентского буфера. В другом примере пороговые величины основаны на продолжительности воспроизведения (РТ) хранимых аудиовизуальных данных в клиентском буфере, которая представляет время в секундах, нужное для воспроизведения пользователем данных, уже находящихся внутри клиентского буфера. В данном документе описываются примеры, касающиеся продолжительности воспроизведения, хотя с тем же успехом может использоваться уровень заполнения буфера или другие надлежащие параметры.In many cases, the packet rate cannot be changed, since this rate depends on the bandwidth of the communication channel (or at least a change in the packet rate is not feasible). However, the speed at which data is supplied to the user's output device often needs to be changed. Typically, for streaming applications, such adjustments are made using “stream switching”. When switching a stream, the same multimedia content, for example, a specific video sequence, is pre-encoded with different bitrates and stored on the server. Therefore, different versions of the same stream are available. During the transfer, the server selects the specific version that has the most suitable data bitrate, based on the current available bandwidth in the network and based on the status of the client buffer. The switch logic used by the server decides whether to switch to another version of the stream and when to switch to it. In the case of the so-called "down-switch", the stream switches to the version with a lower encoded bit rate. In the case of "up-switch", the switch is performed to the version with a higher encoded bit rate. In many implementations, the criteria for performing the switch uses predetermined thresholds defined in relation to the state of the client buffer. In one example, the thresholds are based on a buffer fill level representing in bytes the amount of data within the client buffer. In another example, the thresholds are based on the playback duration (PT) of the stored audiovisual data in the client buffer, which represents the time in seconds needed for the user to play data already inside the client buffer. This document describes examples regarding the duration of playback, although buffer fill level or other appropriate parameters may equally well be used.

Некоторые традиционные способы для определения состояния клиентского буфера используют информацию в рамках сообщений (RR) приемника согласно транспортному протоколу (RTCP) управления передачей в реальном времени. Информация относительно следующего порядкового номера (NSN), или самого давнего буферизированного порядкового номера (OBSN) внутри клиентского буфера и последнего принятого порядкового номера (HRSN) внутри клиентского буфера содержится вместе с RR и используется, чтобы определять использованное пространство буфера, поскольку размер каждого пакета в пределах диапазона от HRSN до NSN/OBSN является известным. Если свободное пространство внутри клиентского буфера ниже предпочтительного уровня заполнения клиентского буфера, то выбирается другая версия потока. Например, если продолжительность (PT) воспроизведения буфера снижается ниже заранее установленной минимальной пороговой величины (PTDOWN), то возникает риск опустошения буфера, то есть клиентский буфер становится пустым, так как в нем нет данных для передачи потоком пользователю. Это приводит к остановке («замораживанию») воспроизведения, причем последнее отображенное на дисплее изображение является обычно остановленным, до тех пор, пока к клиентскому буферу не сможет быть добавлено достаточное количество дополнительных данных, чтобы повторно запустить поток на используемое пользователем выходное устройство, то есть требуется "повторная буферизация" клиентского буфера. Повторная буферизация может быть чрезвычайно раздражающей с точки зрения пользователя.Some traditional methods for determining the status of the client buffer use information within the receiver's message (RR) according to the transport control protocol (RTCP) of real-time transmission. Information regarding the next sequence number (NSN), or the oldest buffered sequence number (OBSN) inside the client buffer and the last received sequence number (HRSN) inside the client buffer is contained with the RR and is used to determine the buffer space used since the size of each packet in The range from HRSN to NSN / OBSN is well known. If the free space inside 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 duration (PT) of playing the buffer falls below a predetermined minimum threshold value (PT DOWN ), then there is a risk of buffer underruns, that is, the client buffer becomes empty, because it does not have data to transmit to the user. This causes the playback to stop (“freeze”), the last image displayed on the display is usually stopped until enough additional data can be added to the client buffer to restart the stream to the output device used by the user, i.e. requires "re-buffering" of the client buffer. Re-buffering can be extremely annoying for the user.

Чтобы избежать возможной повторной буферизации из-за опустошения клиентского буфера, сервер выявляет, когда продолжительность (PT) воспроизведения в пределах клиентского буфера снижается ниже пороговой величины PTDOWN, затем подстраивает битрейт (то есть выбирает версию потока, имеющую другой битрейт) в попытке предотвратить полное опустошение клиентского буфера. Более конкретно, сервер выполняет переключение-вниз, то есть переключение на поток с более низким битрейтом. Переключение-вниз предпочтительнее, чем переключение-вверх, поскольку наиболее вероятная причина, по которой клиентский буфер опустошается, состоит в том, что скорость передачи по каналу связи между сервером и клиентским буфером является меньше ожидаемой, то есть эффективная полоса пропускания меньше требуемой для используемого в текущее время битрейта. В результате, данные не принимаются клиентским буфером с той же скоростью, с которой клиентский буфер подает данные на выходное устройство пользователя. Следовательно, клиентский буфер, который должен оставаться довольно хорошо заполненным данными, становится опустошенным. Путем переключения на более низкий битрейт, клиентский буфер подает данные на устройство отображения с более низкой скоростью, таким образом, оставляя больше времени для приема данных от сервера, и таким образом препятствуя тому, чтобы клиентский буфер становился полностью опустошенным. С точки зрения пользователя, качество потока мультимедиа снижается из-за переключения-вниз, например, размер воспроизводимого изображения потока видеоданных становится меньше, разрешающая способность изображения становится ниже, или наблюдаются более сильные искажения в изображении. Все же, это является предпочтительным по отношению к вышеупомянутой остановке воспроизведения, которая возникает при повторной буферизации.To avoid possible re-buffering due to client buffer underruns, the server detects when playback duration (PT) within the client buffer drops below the threshold threshold PT DOWN , then adjusts the bit rate (i.e., selects a stream version with a different bit rate) in an attempt to prevent full empty client buffer. More specifically, the server performs a down-switch, that is, a switch to a stream with a lower bit rate. Down-switching is preferable than up-switching, since the most probable reason why the client buffer is emptied is that the transmission speed over the communication channel between the server and the client buffer is less than expected, i.e. the effective bandwidth is less than that required for used in current bitrate time. As a result, data is not received by the client buffer at the same rate as the client buffer sends data to the user's output device. Consequently, 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, thus leaving more time for receiving data from the server, and thus preventing the client buffer from becoming completely empty. From the user's point of view, the quality of the media stream is reduced due to switching-down, for example, the size of the reproduced image of the video stream becomes smaller, the resolution of the image becomes lower, or more severe distortion is observed in the image. However, this is preferable to the aforementioned stop of playback that occurs when re-buffering.

С другой стороны, если продолжительность (PT) воспроизведения буфера превышает заранее установленную максимальную пороговую величину (PTUP), то возникает риск переполнения буфера, то есть клиентский буфер становится полным настолько, что не остается места для дополнительных пакетов. Какие-либо пакеты, принятые клиентским буфером, но не сохраненные в нем, обычно повторно не посылаются сервером и, следовательно, данные этих пакетов просто не пересылаются на выходное устройство пользователя. Как только клиентский буфер снова способен сохранять пакеты, поток данных возобновляется с наличием новых пакетов. Таким образом, с точки зрения пользователя, имеется внезапная потеря содержимого, поскольку поток просто перескакивает вперед. В случае (передачи) кинофильма или видеофильма, может быть утерян диалог, таким образом, мешая пользователю отслеживать текст. В случае передачи музыки, песня просто перескакивает вперед. Понятно, это также может быть весьма раздражающим с точки зрения пользователя.On the other hand, if the duration (PT) of the playback of the buffer exceeds a predetermined maximum threshold value (PT UP ), then there is a risk of buffer overflow, that is, the client buffer becomes so full that there is no room for additional packets. Any packets received by the client buffer but not stored in it are usually not sent again by the server and, therefore, the data of these packets are simply not sent to the user's output device. As soon as the client buffer is able to save packets again, data flow resumes with the presence of new packets. Thus, from the user's point of view, there is a sudden loss of content because the stream simply jumps forward. In the case of (transferring) a movie or video, the dialogue may be lost, thus preventing the user from tracking the text. In the case of music transfer, the song just leaps forward. Understandably, this can also be quite annoying from the user's point of view.

Чтобы избежать прерывания потока из-за переполнения клиентского буфера, сервер выявляет, когда продолжительность (PT) воспроизведения внутри клиентского буфера превышает пороговую величину PTUP, и затем выполняет переключение-вверх, то есть переключение на поток с более высоким битрейтом. Переключение-вверх предпочтительнее, чем переключение-вниз, поскольку наиболее вероятная причина, по которой клиентский буфер становится полным, состоит в том, что скорость канала связи между сервером и клиентским буфером является больше ожидаемой, то есть эффективная полоса пропускания выше, чем необходима для используемого в текущее время битрейта. В результате, данные принимаются клиентским буфером со скоростью выше скорости, с которой клиентский буфер подает данные на выходное устройство пользователя. Следовательно, клиентский буфер переполняется. Путем переключения на более высокий битрейт, клиентский буфер подает данные на выходное устройство с более высокой скоростью, таким образом, предотвращая переполнение клиентского буфера. С точки зрения пользователя, качество потока аудиовизуальных данных повышается благодаря переключению-вверх, например размер воспроизводимого изображения потока видеоданных становится больше, или разрешающая способность изображения становится выше. Следовательно, переключение-вверх помогает препятствовать прерыванию потока, и улучшает качество аудиовизуальных данных, что вместе приносит выгоду пользователю.In order to avoid interruption of the stream due to the overflow of the client buffer, the server detects when the duration (PT) of playback within the client buffer exceeds the threshold value PT UP , and then performs a switching-up, i.e. switching to a stream with a higher bitrate. Up-switching is preferable than down-switching, since the most probable reason why the client buffer becomes full is that the communication channel speed between the server and the client buffer is higher than expected, i.e. the effective bandwidth is higher than necessary for the one used at the current bit rate. As a result, the data is received by the client buffer at a speed higher than the rate at which the client buffer feeds the data to the user's output device. Consequently, 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, thus preventing the client buffer from being overflowed. From the user's point of view, the quality of the stream of audio-visual data is improved by switching up, for example, the size of the reproduced image of the video stream becomes larger, or the resolution of the image becomes higher. Therefore, up-switching helps prevent interruption of the stream, and improves the quality of the audiovisual data, which together benefits the user.

Простая логика для выполнения переключений-вверх и переключений-вниз может быть представлена, как изложено ниже:Simple logic for performing up-switches and down-switches can be represented as follows:

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

выполнить переключение-вверхtoggle up

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

выполнить переключение-внизtoggle down

конец если.end if.

Соответствующая подборка этих пороговых величин является решающей для общего впечатления пользователя от аудиовизуальных данных. В случае переключения-вниз, которое выполняется слишком поздно, будет происходить событие повторной буферизации. В случае переключения-вверх, которое выполняется слишком поздно, пользователь принимает аудиовизуальные данные более низкого качества, чем необходимо в ином случае и, как отмечено, может возникать разрыв в потоке данных, как результат переполнения буфера. Также, если переключение-вниз выполняется раньше, чем необходимо, пользователь принимает аудиовизуальные данные более низкого качества, чем необходимо в ином случае. Если переключение-вверх выполняется раньше, чем необходимо, затем вскоре может потребоваться переключение-вниз, что приведет к раздражающей неустойчивости в качестве аудиовизуальных данных. Чтобы избежать эти проблемы, потенциально можно использовать множественные пороговые величины переключения-вниз и множественные пороговые величины переключения-вверх. Если продолжительность воспроизведения снижается в сторону опустошения буфера, ряд пороговых величин переключения-вниз пересекаются, каждое запускает переключение-вниз. Наоборот, если продолжительность воспроизведения увеличивается в сторону переполнения буфера, ряд пороговых величин переключения-вверх пересекается, каждое запускает переключение-вверх.An appropriate selection of these thresholds is critical to the overall user experience of the audiovisual data. In the case of a down-switch that runs too late, a re-buffering event will occur. In the case of an up-switch that is performed too late, the user receives audiovisual data of a lower quality than would otherwise be 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 lower quality audio-visual data than is necessary otherwise. If the up-switch is performed earlier than necessary, then a down-switch may soon be required, which will lead to annoying instability in the quality of the audiovisual data. To avoid these problems, multiple down-switch thresholds and multiple up-switch thresholds can potentially be used. If the playback time decreases towards the buffer underrun, a series of switch-down thresholds intersect, each trigger a switch-down. Conversely, if the playback duration is increased toward buffer overflow, a series of switching up-thresholds intersects, each triggering up-switching.

Однако, после того как произошло переключение, и поток с новым битрейтом был передан, потребуется некоторое время прежде, чем переключение будет иметь какое-либо воздействие на продолжительность воспроизведения клиентского буфера. Во-первых, имеется задержка передачи, пока первый пакет, содержащий кодированные с новой скоростью данные, не достигнет клиентского буфера. В течение этого промежутка времени продолжительность воспроизведения хранимых аудиовизуальных данных в клиентском буфере не находится под воздействием новой скорости. Следовательно, если продолжительность воспроизведения была увеличивающейся в сторону возможного переполнения буфера, она будет, вероятно, продолжать увеличиваться. Наоборот, если продолжительность воспроизведения была уменьшающейся в сторону возможного опустошения буфера, она, вероятно, продолжит уменьшаться. Также даже после поступления первого пакета с новым битрейтом, продолжительность воспроизведения может изменяться сначала только медленно. Например, могут все еще иметься некоторые посланные пакеты с данными с предыдущим битрейтом, которые еще не были приняты клиентским буфером. Следовательно, условия переключения зачастую все еще действительны, и за первым переключением затем последуют несколько переключений, которые являются зачастую ненужными. В случае первого переключения-вниз может быть выполнено несколько дальнейших переключений-вниз, приводя к битрейту потока, который будет намного ниже необходимого. Зачастую переключения-вниз не останавливаются, пока не будет выбран самый низкий битрейт для потока. Такое поведение приводит к излишне низкому качеству потока аудиовизуальных данных для пользователя. В случае переключения-вверх могут происходить несколько дальнейших переключений-вверх, приводя к битрейту для потока, который является слишком высоким, зачастую к максимально возможным скорости. Это приводит к тому, что битрейт потока становится слишком высоким по сравнению с текущей доступной полосой пропускания сети, запуская ряд переключений-вниз.However, after the switchover has occurred and the stream with the new bitrate has been transmitted, it will take some time before the switchover has any effect on the playing time of the client buffer. Firstly, there is a transmission delay until the first packet containing the data encoded at a new rate reaches the client buffer. During this period of time, the duration of the playback of the stored audiovisual data in the client buffer is not affected by the new speed. Therefore, if the playback time was increasing towards a possible buffer overflow, it will probably continue to increase. Conversely, if the playback time was decreasing towards a possible buffer underrun, it would probably continue to decrease. Also, even after the first packet arrives with a new bitrate, the playback duration can only change slowly at first. For example, there may still be some sent packets with data with a previous bitrate that have not yet been received by the client buffer. Therefore, the switching conditions are often still valid, and the first switching will then be followed by several switching, which are often unnecessary. In the case of the first switch-down, several further switch-downs can be performed, leading to a bitrate of the stream, which will be much lower than necessary. Often, down-switches do not stop until the lowest bitrate for the stream is selected. This behavior leads to an unnecessarily low quality of the stream of audiovisual data for the user. In the case of an up-switch, several further up-switches can occur, leading to a bitrate for a stream that is too high, often at the highest possible speed. This leads to the fact that the bitrate of the stream becomes too high compared to the current available network bandwidth, triggering a series of switching-down.

В результате пользователь наблюдает частые и раздражающие изменения в качестве потока. Кроме того, если был выбран битрейт, который является слишком высоким, последующие переключения-вниз зачастую не могут быть выполнены достаточно быстро, приводя к раздражающим событиям повторной буферизации и остановкам воспроизведения. Подобным образом, если был выбран битрейт, который является слишком низким, последующие переключения-вверх зачастую не могут быть выполнены достаточно быстро, приводя к раздражающему переполнению буфера, и связанному с потерей данных. Даже при единственной пороговой величине переключения-вверх и единственной пороговой величине переключения-вниз могут возникать проблемы такого рода, особенно если пороговые величины установлены слишком близкими друг к другу.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 has been selected, subsequent down-switchings often cannot be performed fast enough, leading to annoying re-buffering events and playback stops. Similarly, if a bit rate that is too low has been selected, subsequent up-switchings often cannot be performed fast enough, resulting in an annoying buffer overflow and data loss. Even with a single threshold switch-up and a single threshold switch-down, problems of this kind can occur, especially if the threshold values are set too close to each other.

Еще больше проблем может возникать при передаче мультимедийного содержимого, которое имеет переменный битрейт. Традиционно каждая предварительно кодированная версия мультимедийного потока имеет единственный битрейт, и, следовательно, битрейт для потока изменяется, только если сервер переключается на другой поток, имеющий более быструю или более медленную скорость, как уже описано. Однако, в некоторых случаях, нужно обеспечивать потоки с изменяющимся битрейтом, чтобы конкретно приспосабливать, особенно при упаковке больших файлов аудиовизуальных данных для хранения и передачи. Другими словами, каждая версия потока может иметь порции с одним битрейтом, а другие порции с другим. Предпочтительно, битрейт для отдельных частей конкретной версии потока выбирается на основании содержимого этой части. Например, одна порция потока может быть довольно статичной, допускающей низкий битрейт, чтобы адекватно вводить содержимое. После этого может быть необходимым более высокий битрейт, чтобы адекватно вводить более динамичное содержимое. При установке битрейта для каждой порции мультимедийного потока на основании динамичного содержимого этой порции потока полный размер файла может быть уменьшен, что не помешает адекватно передавать содержимое.Even more problems may arise when transmitting multimedia content that has a variable bit rate. Traditionally, each pre-encoded version of a multimedia stream has a single bit rate, and therefore, the bit rate for a stream changes only if the server switches to another stream having a faster or slower speed, as already described. However, in some cases, it is necessary to provide streams with a varying bit rate in order to specifically adapt, especially when packing large files of audio-visual data for storage and transmission. In other words, each version of a stream can have portions with one bitrate and other portions with a different one. Preferably, the bit rate for individual parts of a particular version of a stream is selected based on the contents of that part. For example, one portion of the stream can be quite static, allowing a low bit rate to adequately input content. After that, a higher bit rate may be necessary to adequately introduce more dynamic content. When setting the bitrate for each portion of the multimedia stream based on the dynamic contents of this portion of the stream, the total file size can be reduced, which does not prevent the content from being adequately transmitted.

При применении традиционных способов переключения потока на потоки с переменным битрейтом, могут возникать различные проблемы. В частности, изменяющиеся битрейты для потока могут объединять вышеупомянутые проблемы, имея результатом даже более частые и ненужные переключения, вызывая дополнительное раздражение пользователя и зачастую излишне расходуя полосу пропускания.When applying traditional methods of switching a stream to streams with a variable bit rate, various problems can arise. In particular, changing bitrates for a stream can combine the above problems, resulting in even more frequent and unnecessary switching, causing additional annoyance to the user and often consuming bandwidth unnecessarily.

Соответственно, имеется потребность в усовершенствованном способе управления переключением потоков для данных с переменным битрейтом, чтобы поставлять пользователю более устойчивое и надежное содержимое, и именно на это в основном направлено изобретение.Accordingly, there is a need for an improved method of controlling flow switching for variable bitrate data to provide the user with more stable and reliable content, and this is what the invention is mainly directed to.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Изобретение может быть осуществлено в виде способа управления передачами пакетов данных с переменным битрейтом от сервера клиенту, имеющему в составе клиентский буфер, причем сервер осуществляет переключение между различными версиями потока передаваемых данных с переменным битрейтом на основании состояния клиентского буфера. В соответствии со способом, для передачи выбирается начальная версия потока данных с переменным битрейтом, и отслеживается значение (PT), представляющее количество данных внутри клиентского буфера. Определяется битрейт (BR) для порции данных с переменным битрейтом, еще подлежащих передаче в рамках выбранной версии потока. Затем сервер управляет переключениями на другие версии потока, имеющие другие средние битрейты, на основании значения (PT), представляющего количество данных внутри клиентского буфера, в комбинации с битрейтом (BR) для порции данных с переменным битрейтом, еще подлежащих передаче.The invention can be implemented as a method of controlling the transmission of variable bitrate data packets from a server to a client that includes a client buffer, the server switching between different versions of the variable bitrate transmitted data stream based on the state of the client buffer. According to the method, an initial version of a variable bitrate data stream is selected for transmission, and a value (PT) representing the amount of data inside the client buffer is tracked. The bit rate (BR) is determined for a portion of data with a variable bit rate still to be transmitted within the selected stream version. The server then controls the switch to other versions of the stream having different average bitrates, based on a value (PT) representing the amount of data inside the client buffer, in combination with a bitrate (BR) for a portion of the variable bitrate data to be transferred.

В одном примере определяется битрейт (BRNEXT) для следующей последовательной порции подлежащих передаче данных. Если BRNEXT превышает средний битрейт (BRAVE), то выполняется этап управления переключением, чтобы задержать любое переключение на версию потока, имеющую в целом более высокий битрейт, то есть задерживаются переключения-вверх.In one example, a bit rate (BR NEXT ) is determined for the next consecutive portion of data to be transmitted. If the BR NEXT exceeds the average bit rate (BR AVE ), then a switching control step is performed to delay any switching to a stream version having a generally higher bit rate, i.e. up-switching is delayed.

В другом примере, если BRNEXT превышает средний битрейт (BRAVE), выполняется этап управления переключением, чтобы ускорить любое переключение на версию потока, имеющую в целом более низкий битрейт, то есть ускоряются переключения-вниз.In another example, if the BR NEXT exceeds the average bitrate (BR AVE ), a switching control step is performed to accelerate any switching to a stream version having a generally lower bit rate, i.e., down-switching is accelerated.

В следующем примере, если BRNEXT ниже среднего битрейта (BRAVE), выполняется этап управления переключением, чтобы ускорить какое-либо переключение на версию потока, имеющую в целом более высокий битрейт, то есть ускоряются переключения-вверх.In the following example, if the BR NEXT is lower than the average bitrate (BR AVE ), a switching control step is performed to speed up any switching to a version of the stream that has a generally higher bitrate, i.e., up-switches are accelerated.

В предпочтительном варианте осуществления сервер управляет переключением на различные версии потока на основании текущего состояния клиентского буфера, применяя одну или несколько пороговых величин к данным, уже находящимся в клиентском буфере. Этап управления переключением выполняется путем динамической подстройки одной или нескольких пороговых величин на основании битрейта (BR) для порции подлежащих передаче данных с переменным битрейтом, и последующего определения, осуществлять ли переключение на другую версию потока, применяя одну или несколько подстраиваемых пороговых величины к значению (PT), представляющему количество данных внутри клиентского буфера.In a preferred embodiment, the server controls the switch to different versions of the stream based on the current state of the client buffer, applying one or more thresholds to the data already in the client buffer. The switching control step is performed by dynamically adjusting one or more threshold values based on the bit rate (BR) for the portion of data to be transmitted with a variable bit rate, and then determining whether to switch to another version of the stream by applying one or more adjustable threshold values to the value (PT ) representing the amount of data inside the client buffer.

В примере предпочтительного варианта осуществления одна или несколько пороговых величин включают в состав пороговую величину «переключение-вверх» In an example of a preferred embodiment, one or more thresholds are included in the up-switch threshold

(PTUP) и пороговую величину «переключение-вниз» (PTDOWN). Этап динамической подстройки одной или нескольких пороговых величин выполняется посредством определения среднего битрейта (BRAVE) для данных с переменным битрейтом и затем выборочной подстройки пороговых величин переключения-вверх и переключения-вниз (PTUP и PTDOWN) на основании сравнения битрейта (BRNEXT) для следующей порции подлежащих передаче данных с переменным битрейтом со средним битрейтом (BRAVE) для данных с переменным битрейтом. Этап выборочной подстройки пороговых величин переключения-вверх и переключения-вниз включает в состав этап увеличения пороговых величин переключения-вверх и переключения-вниз (PTUP и PTDOWN), если битрейт (BRNEXT) для следующей порции данных с переменным битрейтом превышает средний битрейт (BRAVE). Этап выборочной подстройки пороговых величин переключения-вверх и переключения-вниз также включает в состав этап уменьшения пороговой величины переключения-вверх (PTUP), если битрейт (BRNEXT) для следующей порции данных с переменным битрейтом ниже среднего битрейта (BRAVE) и если пороговая величина переключения-вверх (PTUP) превышает пороговую величину переключения-вниз (PT UP ) and the threshold "switch-down" (PT DOWN ). The step of dynamically adjusting one or more threshold values is performed by determining the average bit rate (BR AVE ) for variable bitrate data and then selectively adjusting the up-switch and down-switch thresholds (PT UP and PT DOWN ) based on bitrate comparison (BR NEXT ) for the next portion of data to be transmitted with a variable bit rate with an average bit rate (BR AVE ) for data with a variable bit rate. The step of selectively adjusting the switching-up and switching-down thresholds includes the step of increasing the switching-up and switching-down thresholds (PT UP and PT DOWN ) if the bitrate (BR NEXT ) for the next portion of data with a variable bitrate exceeds the average bitrate (BR AVE ). The step of selectively adjusting the switching-up and switching-down thresholds also includes the step of decreasing the switching-up threshold (PT UP ) if the bitrate (BR NEXT ) for the next portion of data with a variable bitrate below the average bitrate (BR AVE ) and if up-switch threshold (PT UP ) exceeds a down-switch threshold

(PTDOWN). Другими словами, PTUP не подстраивается вниз, если бы затем она потом снизилась ниже PTDOWN.(PT DOWN ). In other words, PT UP does not adjust downward if it then later falls below PT DOWN .

В предпочтительном варианте осуществления этап увеличения пороговых величин переключения-вверх и переключения-вниз (PTUP и PTDOWN) выполняется, если битрейт (BR) для следующей порции данных с переменным битрейтом превышает средний битрейт (BRAVE), путем определения битрейта (BRNEXT) для следующей порции данных с переменным битрейтом, затем вычисления значения отношения (F) битрейта (BRNEXT) для следующей порции данных с переменным битрейтом к среднему битрейту (BRAVE). Пороговые величины переключения-вверх и переключения-вниз (PTUP и PTDOWN) затем умножают на значение отношение (F), чтобы таким образом увеличить пороговые величины. Этап уменьшения пороговой величины переключения-вверх (PTUP) также выполняется путем определения битрейта (BRNEXT) для следующей порции данных с переменным битрейтом и затем вычисления значения отношения (F) битрейта (BRNEXT) для следующей порции данных с переменным битрейтом к среднему битрейту (BRAVE). Пороговую величину переключения-вверх (PTUP) затем умножают на значение отношения (F), чтобы таким образом уменьшить пороговую величину. Затем выбирается наибольшее из уменьшенной пороговой величины переключения-вверх (PTUP*F) и пороговой величины переключения-вниз (PTDOWN) для использования в качестве новой пороговой величины переключения-вверх.In a preferred embodiment, the step of increasing the up-and-down and PT-down thresholds (PT UP and PT DOWN ) is performed if the bitrate (BR) for the next portion of the variable bitrate data exceeds the average bitrate (BR AVE ) by determining the bitrate (BR NEXT ) for the next batch of data with variable bitrate, then calculate the ratio (F) of the bitrate (BR NEXT ) for the next batch of data with variable bitrate to average bitrate (BR AVE ). The switch-up and switch-down thresholds (PT UP and PT DOWN ) are then multiplied by the ratio (F) to thereby increase the thresholds. The step of decreasing the up-switch threshold (PT UP ) is also performed by determining the bitrate (BR NEXT ) for the next portion of data with variable bitrate and then calculating the ratio (F) of the bitrate (BR NEXT ) for the next portion of data with variable bitrate to the average bitrate (BR AVE ). The up-switch threshold value (PT UP ) is then multiplied by the ratio value (F) to thereby reduce the threshold value. Then, the largest of the reduced up-threshold (PT UP * F) and the down-threshold (PT DOWN ) is selected to be used as the new up-threshold.

В различных вариантах осуществления значения, представляющие количество данных внутри клиентского буфера, представляют продолжительности (PT) воспроизведения данных, или уровень заполнения буфера. Средний битрейт (BRAVE) может представлять средний битрейт по полной версии передаваемого потока или может вместо этого представлять средний битрейт для данных, которые уже были переданы в рамках версии передаваемого потока.In various embodiments, values representing the amount of data within the client buffer represent the duration (PT) of data playback, or the buffer fill level. The average bitrate (BR AVE ) may represent the average bitrate of the full version of the transmitted stream, or may instead represent the average bitrate for data that has already been transmitted as part of the version of the transmitted stream.

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

Изобретение также может быть осуществлено в виде компьютерного программного продукта, который может храниться на машиночитаемом носителе записи, содержащем части кода программы для выполнения любого из этапов вышеупомянутых способов, когда компьютерный программный продукт исполняется на компьютерной системе.The invention may also be embodied as a computer program product, which may be stored on a computer-readable recording medium containing portions of 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, the storage device being encoded with one or more programs that can perform any of the steps of the above methods.

В еще одном варианте осуществления изобретение относится к устройству управления передачами пакетов данных с переменным битрейтом, выполняемых от сервера клиенту, имеющему в составе клиентский буфер, причем сервер осуществляет переключения между различными версиями потока для передаваемых данных с переменным битрейтом на основании состояния клиентского буфера. Устройство содержит: упреждающий контроллер передачи потока с переменным битрейтом, чтобы выбирать для передачи начальную версию потока данных с переменным битрейтом; блок контроля клиентского буфера, чтобы отслеживать значение, представляющее количество данных внутри клиентского буфера; блок определения переменного битрейта (BR) для порции данных с переменным битрейтом, еще подлежащих передаче в рамках выбранной версии потока; и причем упреждающий контроллер передачи потока с переменным битрейтом затем управляет переключениями на другие версии потока, имеющие другие средние битрейты, на основании значения (PT), представляющего количество данных внутри клиентского буфера, в комбинации с битрейтом (BR) для порции данных с переменным битрейтом, еще подлежащих передаче.In yet another embodiment, the invention relates to a device for controlling the transmission of variable bitrate data packets from a server to a client having a client buffer, the server switching between different versions of the stream for transmitted variable bitrate data based on the state of the client buffer. The device comprises: a forward controller of variable bitrate stream transfer to select an initial version of a variable bit rate data stream for transmission; a client buffer monitoring unit to track a value representing the amount of data within the client buffer; a variable bitrate determination unit (BR) for a portion of variable bitrate data still to be transmitted within the selected stream version; and wherein the forward variable bit rate stream transfer controller then controls switching to other versions of the stream having different average bit rates based on a value (PT) representing the amount of data inside the client buffer, in combination with a bit rate (BR) for a portion of the variable bit rate data, still subject to transfer.

Устройство может быть выполнено в виде стационарного или мобильного сетевого компонента, такого как сетевой сервер и/или терминал беспроводной связи. Кроме того, устройство может составлять посреднический сетевой узел, такой как прокси-сервер.The device may be in the form of a fixed or mobile network component, such as a network server and / or wireless terminal. In addition, the device may constitute a proxy network node, such as a proxy server.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

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

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

Фиг.2 - схема алгоритма, обеспечивающая общее представление об осуществлении способа согласно изобретению;Figure 2 - diagram of the algorithm, providing an overview of the implementation of the method according to the invention;

Фиг.3 - график, иллюстрирующий различные версии потока данных с переменным битрейтом, конкретно иллюстрирующий различные средние битрейты для различных версий потока;Figure 3 is a graph illustrating various versions of a variable bitrate data stream, specifically illustrating different average bitrates for different versions of the stream;

Фиг.4 - блок-схема отдельного потока данных с переменным битрейтом, конкретно иллюстрирующая битрейты для различных порций потока;4 is a block diagram of a separate data stream with a variable bit rate, specifically illustrating bit rates for different portions of the stream;

Фиг.5 - схема алгоритма, иллюстрирующая примерную реализацию логики переменного битрейта согласно изобретению;5 is a flowchart illustrating an exemplary implementation of variable bitrate logic according to the invention;

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

Фиг.7 - блок-схема, иллюстрирующая примерную реализацию устройства серверного компонента согласно изобретению.7 is a block diagram illustrating an example implementation of a server component device according to the invention.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

В нижеследующем описании, с целями пояснения, а не ограничения, сформулированы конкретные подробности, такие как конкретные последовательности этапов и различные конфигурации, чтобы обеспечить полное понимание изобретения. Специалисту в данной области техники будет очевидно, что изобретение на практике может быть исполнено в других вариантах осуществления, которые выходят за пределы этих конкретных подробностей. Кроме того, специалисты в данной области техники оценят, что функции, поясненные ниже в документе, могут быть осуществлены с использованием программного обеспечения, действующего вместе с запрограммированным микропроцессором или универсальным компьютером, и/или с использованием проблемно-ориентированной интегральной схемы (ASIC). Будет также оценено, что, хотя изобретение в основном описано в виде способа, оно также может быть осуществлено в виде компьютерного программного продукта, а также системы или устройства, содержащего процессор компьютера и запоминающее устройство, соединенное с процессором, причем запоминающее устройство является кодированным с одной или несколькими программами, которые могут выполнять способы, раскрытые в документе.In the following description, for purposes of explanation and not limitation, specific details are set forth, such as specific sequence of steps and various configurations, to provide a thorough understanding of the invention. It will be apparent to those skilled in the art that the invention may be practiced in other embodiments that go beyond these specific details. In addition, those skilled in the art will appreciate that the functions explained below in the document can be implemented using software that works with a programmed microprocessor or universal computer and / or using a problem-oriented integrated circuit (ASIC). It will also be appreciated that although the invention is mainly described as a method, it can also be implemented as a computer program product, as well as a system or device comprising a computer processor and a storage device connected to the processor, the storage device being encoded with one or several programs that can perform the methods disclosed in the document.

На Фиг.1 иллюстрируется примерная архитектура 100, которая может использоваться в связи с изобретением, включающая в состав сервер 105, который может быть соединен с клиентом 115 через магистраль связи, такую как IP-сеть 110. Сервер включает в состав блок 120 аудиовизуального содержимого, который осуществляет доступ и передает некоторое аудиовизуальное содержимое (например, файлы мультимедийных данных) через блок 125 RTP/UDP (транспортный протокол реального времени/протокол передачи дейтаграмм пользователя), использующий стандарт потоковой передачи, такой как RTP (транспортный протокол реального времени) поверх UDP или другого транспортного протокола передачи данных для управления передачей мультимедийных данных в реальном времени (с наличием протокола транспортного уровня, такого так UDP - протокол передачи дейтаграмм пользователя). Пакеты передаются на общедоступную сеть 130 (например, Интернет, однако, внешняя общедоступная сеть не требуется, когда сервер непосредственно соединен с сетью 135 оператора), которая доставляет пакеты на сеть 135 оператора, такую как "проводная" сеть оператора мобильной связи, соединенную с ней.1 illustrates an exemplary architecture 100 that can be used in connection with the invention, including a server 105 that can be connected to a client 115 via a communication trunk, such as an IP network 110. The server includes an audio-visual content unit 120, which accesses and transmits some audio-visual content (for example, multimedia data files) through an RTP / UDP unit 125 (real-time transport protocol / user datagram transmission protocol) using a streaming standard, such as RTP (real-time transport protocol) over UDP or another transport data transfer protocol for controlling real-time multimedia data transmission (with a transport layer protocol such as UDP is a user datagram transfer protocol). 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 an operator’s network 135), which delivers packets to an operator’s network 135, such as a “wired” network of a mobile operator, connected to it .

Сеть 135 оператора включает в состав базовую сеть 140, которая обеспечивает каналы связи между сервером 105 и клиентом 115. Базовая сеть 140, которая может необязательно иметь буфер, обеспечивает принятые от блока RTP/UDP 125 пакеты для буферизации в буфере в рамках сети (RAN) 145 радиодоступа (таком как буфер в SGSN (обслуживающий узел поддержки пакетной радиосвязи) или в RNC (дистанционный сетевой контроллер)) прежде их передачи посредством передатчика 150 беспроводной связи. Буферы базовой сети 140 (если буферизация используется) и RAN 145 размещены последовательно и составляют сетевой буфер.The operator network 135 includes a core network 140, which provides communication channels between the server 105 and the client 115. A core network 140, which may optionally have a buffer, provides packets received from the RTP / UDP block 125 for buffering in the buffer within the network (RAN) 145 radio access (such as a buffer in the SGSN (serving packet radio support node) or in the RNC (remote network controller)) before being transmitted via the wireless transmitter 150. The buffers of the core network 140 (if buffering is used) and RAN 145 are sequentially located and make up the network buffer.

Клиент 115 принимает пакеты, переданные посредством передатчика 150 беспроводной связи в клиентский буфер 155. Пакеты передаются из клиентского буфера 155 на блок RTP/UDP 160 для доставки на модуль 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 transmitted from client buffer 155 to RTP / UDP block 160 for delivery to the multimedia application module (or multimedia player) 165 and their use. For the purposes of this application, the expression “packet rate” will refer to the packet rate from server 105 to IP network 110, the expression “communication channel speed” will refer to packet rate from IP network 110 to client 115, and the phrase “speed content transfer ”should refer to the speed at which data is transmitted from the client buffer 115 to the multimedia application module 165 for playback by the multimedia application module 165.

Со ссылкой на Фиг.2 проиллюстрирован вариант 200 осуществления способа согласно изобретению, который может быть выполнен, например, посредством системы по Фиг.1. Способ предпочтительно осуществляется посредством сервера, такого как сервер 105 по Фиг.1, но может быть осуществлен посредством любого другого надлежащего сетевого компонента. В нижеследующих описаниях будет полагаться, что сервер осуществляет этапы способа. Начиная на этапе 202, сервер выбирает для передачи начальную версию потока данных с переменным битрейтом. Начальная версия потока выбирается, в соответствии с иными традиционными способами, из группы различных версий потока, имеющих в целом различные предварительно кодированные скорости передачи. Например, первый поток может начать с битрейтом в 1 мегабит (Мбит)/секунду, тогда как второй поток может начать с битрейтом в 2 Мбит/секунду. Поскольку сам поток имеет переменный битрейт, каждая версия потока подобным образом имеет переменный битрейт. Следовательно, какая бы версия потока ни была выбрана, битрейт для данных, закодированных внутри потока, будет изменяться. Например, первая версия потока может переключаться на битрейт в 2 Мбит/секунду после десяти секунд, тогда как вторая версия потока может переключаться на битрейт в 3 Мбит/секунду после десяти секунд, то есть после десяти секунд обе версии потока имеют предварительно кодированные битрейты, которые увеличиваются на 1 Мбит/секунду.With reference to FIG. 2, an embodiment 200 of a method according to the invention is illustrated, which may be performed, for example, by the system of FIG. 1. The method is preferably carried out by means of a server, such as 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 server implements the steps of the method. Starting at step 202, the server selects for transmission the initial version of the data stream with a variable bit rate. The initial version of the stream is selected, in accordance with other conventional methods, from a group of different versions of the stream having generally different precoded bit rates. For example, the first stream can start with a bitrate of 1 megabits (Mbps) / second, while the second stream can start with a bitrate of 2 Mbps. Since the stream itself has a variable bitrate, each version of the stream likewise has a variable bitrate. Therefore, no matter which version of the stream is selected, the bit rate for the data encoded within the stream will change. For example, the first version of a stream can switch to a bitrate of 2 Mbit / second after ten seconds, while the second version of a stream can switch to a bitrate of 3 Mbit / second after ten seconds, that is, after ten seconds, both versions of a stream have precoded bitrates that increase by 1 Mbps.

Три примерных версии отдельного потока битов показаны на Фиг.3. Каждая версия потока имеет битрейт, который изменяется в зависимости от времени. Версии синхронизированы между собой, то есть битрейты все увеличиваются в одинаковое время или все уменьшаются за одинаковое время. Однако средние скорости передачи битов для различных версий потока отличаются друг от друга. Сервер выполняет переключения-вверх и переключения-вниз путем переключения между различными версиями потока. В примере на Фиг.3 показываются только три версии потока. Обычно, большее количество версий являются предварительно сохраненными. Также, в примере, самый низкий битрейт для версии 205 потока с самым высоким битрейтом находится на более высокой скорости, чем самый высокий битрейт для следующей версии 207 потока. Подобным образом, самый низкий битрейт для версии 205 потока находится на более высокой скорости, чем самый высокий битрейт для версии 209. Это, однако, не должно быть требованием. Зачастую имеется, по меньшей мере, некоторое перекрытие в битрейтах. Также, в примере, изменения скорости показаны плавными, то есть скорость увеличивается плавно до максимума, затем плавно уменьшается. Это также не должно быть требованием. Во многих примерах, битрейты изменяются прерывисто, то есть, скорость изменяется скачком от одного уровня (такого как 1 Мбит/секунду) к другому уровню (такому как 2 Мбит/секунду).Three exemplary versions of a single bitstream are shown in FIG. 3. Each version of the stream has a bit rate that varies with time. Versions are synchronized with each other, that is, bitrates all increase at the same time or all decrease at the same time. However, the average bit rates for different versions of the stream differ from each other. The server performs switching-up and switching-down by switching between different versions of the stream. In the example of FIG. 3, only three stream versions are shown. Typically, more versions are pre-saved. Also, in the example, the lowest bitrate for stream version 205 with the highest bitrate is at a higher speed than the highest bitrate for the next stream version 207. Similarly, the lowest bitrate for stream version 205 is at a higher speed than the highest bitrate for version 209. This, however, should not be a requirement. Often there is at least some overlap in bit rates. Also, in the example, the speed changes are shown to be smooth, that is, the speed increases smoothly to a maximum, then gradually decreases. This also should not be a requirement. In many examples, bit rates change intermittently, that is, the speed changes abruptly from one level (such as 1 Mbit / second) to another level (such as 2 Mbit / second).

Возвращаясь к Фиг.2, на этапе 202 выбранная версия потока передается от сервера клиенту путем взятия предварительно кодированных данных из версии потока и помещения этих предварительно кодированных данных в пакеты данных, которые передаются клиенту с заранее установленной скоростью передачи пакетов. Обратите внимание, что любое изменение в битрейте для данных с переменным битрейтом в рамках передаваемого потока обычно не требует изменения в скорости передачи пакетов, которая определена базовой после рассмотрения полосы пропускания. Подобным образом, выбор одной версии потока поверх другой версии обычно не влечет за собой каких-либо изменений в скорости передачи пакетов.Returning to FIG. 2, in step 202, the selected stream version is transmitted from the server to the client by taking precoded data from the stream version and placing these precoded data in data packets that are transmitted to the client at a predetermined packet rate. Note that any change in bitrate for variable bitrate data within the transmitted stream usually does not require a change in the packet rate, which is determined by the base after considering the bandwidth. Similarly, selecting one version of a stream on top of another version usually does not entail any change in packet rate.

На этапе 204 сервер отслеживает значение, представляющее количество данных внутри клиентского буфера в текущий момент. Это также может быть выполнено в соответствии с иными традиционными способами. В одном примере, если клиентский буфер реализован в соответствии с протоколами RTCP, сервер принимает от клиентского буфера обратную связь, которая включает в состав поля данных NSN/OBSN и HRSN, на основании которых определяется количество данных в клиентском буфере. Как отмечено, количество данных в клиентском буфере может быть представлено, например, в терминах продолжительности (PT) воспроизведения, уровня заполнения клиентского буфера, или другого подходящего значения. В нижеследующих описаниях будут описаны примеры с использованием продолжительности (PT) воспроизведения.At step 204, the server monitors a value representing the amount of data currently within the client buffer. This can also be done in accordance with other traditional methods. In one example, if the client buffer is implemented in accordance with RTCP protocols, the server receives feedback from the client buffer, which includes the NSN / OBSN and HRSN data fields, based on which the amount of data in the client buffer is determined. As noted, the amount of data in the client buffer can be represented, for example, in terms of the duration (PT) of the playback, the fill level of the client buffer, or other suitable value. In the following descriptions, examples using the duration (PT) of playback will be described.

На этапе 206 сервер определяет битрейт (BR) для порции данных с переменным битрейтом, еще подлежащих передаче. Предпочтительно, она является следующей последовательной порцией подлежащих передаче данных, которую сервер исследует, то есть, сервер определяет значение (BRNEXT), представляющее битрейт для следующей порции данных, подлежащей передаче. Следующая порция данных может быть определена, например, в терминах заранее установленного количества секунд, соответствующих подлежащих передаче данным, или может быть определена в виде порции данных, начиная от передаваемых в текущее время данных, до следующего заданного изменения в данных. Например, если предварительно кодированный поток данных с переменным битрейтом должен поддерживать свой текущий битрейт в течение последующих 12 секунд прежде переключения на другую скорость передачи битов, то следующая порция данных содержит данные, соответствующие длительности в следующие 12 секунд.At step 206, the server determines a bit rate (BR) for a portion of the variable bit rate data still to be transmitted. Preferably, it is the next consecutive chunk of data to be transmitted that the server examines, that is, the server determines a value (BR NEXT ) representing the bit rate for the next chunk of data to be transmitted. The next piece of data can be determined, for example, in terms of a predetermined number of seconds corresponding to the data to be transmitted, or can be determined as a piece of data, starting from the data currently being transmitted, to the next specified change in the data. For example, if a pre-encoded data stream with a variable bit rate must maintain its current bit rate for the next 12 seconds before switching to another bit rate, then the next piece of data contains data corresponding to the duration of the next 12 seconds.

На Фиг.4 иллюстрируется примерная версия 208 потока передаваемых данных с переменным битрейтом. Поток включает в состав порции с разными битрейтами, обозначенными BR#1, BR#2, BR#3, BR#4 и т.д. BR#1 и BR#3 могут обе быть, например, 1 Мбит/секунду, тогда как BR#2 и BR#4 могут обе быть, например, 2 Мбита/секунду. Как может быть видно, порции могут быть различной продолжительности, то есть длительности. В примере, стрелка 210 обозначает точку внутри потока, соответствующую данным, передаваемым в текущее время. Следующей порцией данных, следовательно, являются данные, начинающиеся в точке 210. Битрейтом является BR#2. Если следующая порция данных определяется в терминах порции данных, начиная от данных, передаваемых в текущее время, до следующего заданного изменения в данных, то BRNEXT является просто BR#2. Если вместо этого, следующая порция данных определяется в терминах заранее установленного количества секунд, соответствующих подлежащих передаче данным, то следующая порция данных может охватывать два или больше различных битрейта. В этом случае, сервер может быть выполнен с возможностью просто выбирать первого из этих битрейтов для использования в качестве BRNEXT или вместо этого быть может выполнен с возможностью вычислять средний битрейт BRAVE в течение этого заранее установленного промежутка времени для использования в качестве BRNEXT. В любом случае, значение, представляющее битрейт для некоторой порции данных, еще подлежащих передаче, определяется на этапе 206 по Фиг.2.4 illustrates an exemplary version 208 of a variable bitrate transmitted data stream. The stream includes portions with different bitrates indicated by BR # 1 , BR # 2 , BR # 3 , BR # 4 , etc. BR # 1 and BR # 3 can both be, for example, 1 Mbps, while BR # 2 and BR # 4 can both be, for example, 2 Mbps. As can be seen, the servings can be of varying durations, i.e. durations. In the example, arrow 210 denotes a point within the stream corresponding to data currently being transmitted. The next piece of data, therefore, is data starting at point 210. The bitrate is BR # 2 . If the next chunk of data is defined in terms of a chunk of data, ranging from the data being transmitted at the current time to the next specified change in the data, then BR NEXT is simply BR # 2 . If instead, the next chunk of data is defined in terms of a predetermined number of seconds corresponding to the data to be transmitted, then the next chunk of data may span two or more different bitrates. In this case, the server may be configured to simply select the first of these bitrates for use as BR NEXT, or instead, may be configured to calculate the average bitrate of BR AVE during this predetermined period of time for use as BR NEXT . In any case, a value representing the bit rate for a portion of the data still to be transmitted is determined at step 206 of FIG. 2.

На этапе 212 по Фиг.2, сервер затем управляет переключениями на различные версии потока, имеющие различные средние битрейты, на основании значения, представляющего (PT) количество данных в текущее время внутри клиентского буфера, и на основании битрейта (BR) для порции данных с переменным битрейтом, еще подлежащих передаче, например, сервер управляет переключениями-вверх и переключениями-вниз на основании и PT, и BRNEXT. Принимая во внимание битрейт для еще подлежащих передаче данных, в дополнение к PT, сервер способен избегать многих ненужных переключений скорости передачи, которые происходят в традиционных системах, применяющих только фиксированные пороговые величины переключаемых скоростей.In step 212 of FIG. 2, the server then controls the switches to different versions of the stream having different average bitrates, based on a value representing (PT) the amount of data currently inside the client buffer, and based on the bitrate (BR) for the data portion with variable bit rate still to be transmitted, for example, the server controls up-and-down and down-switching based on both PT and BR NEXT . Taking into account the bit rate for the data still to be transmitted, in addition to PT, the server is able to avoid the many unnecessary switching of the transmission rate that occurs in traditional systems that use only fixed threshold switching speed values.

Предпочтительно, если BRNEXT превышает BRAVE, то задерживают любое переключение-вверх вследствие изменения в состоянии клиентского буфера. Другими словами, если какое-либо увеличение продолжительности воспроизведения внутри клиентского буфера запустило бы иначе переключение на другую версию потока, имеющую в целом более высокую скорость передачи, это переключение задерживают. Если вместо этого переключение-вверх было выполнено сервером до точки в потоке, где переменный битрейт был обязан увеличиться в любом случае, переключение-вверх будет вероятно неэффективным и может потребовать компенсирующее переключение-вниз. В этом отношении, при выполнении переключения-вверх до точки в потоке, где битрейт для потока с переменным битрейтом увеличивается, происходит два увеличения битрейтом, один за другим. В результате, битрейт является затем вероятно более высоким, чем необходимо, и, вероятно, запустит компенсирующее переключение-вниз, чтобы предотвратить возможное опустошение буфера. Вместо этого путем задержки переключения-вверх в условиях, где битрейт для данных с переменным битрейтом должен увеличиться в любом случае, сервер, вероятно, избегает и ненужного переключение-вверх, и последующего компенсирующего переключения-вниз, посредством этого обеспечивая конечному пользователю более однородный уровень качества аудиовизуальных данных.Preferably, if the BR NEXT exceeds BR AVE , then any up-switching is delayed due to a change in the state of the client buffer. In other words, if any increase in the duration of the playback inside the client buffer would otherwise trigger a switch to another version of the stream having a generally higher transfer rate, this switch is delayed. If instead the up-switch was performed by the server to a point in the stream where the variable bit rate was required to increase in any case, the up-switch would probably be ineffective and might require a compensating down-switch. In this regard, when switching up to a point in the stream, where the bit rate for a stream with a variable bit rate increases, two increases in bit rate occur, one after the other. As a result, the bitrate is then probably higher than necessary, and is likely to trigger a compensating down-switch to prevent possible buffer underruns. Instead, by delaying the up-switch in conditions where the bitrate for variable bit-rate data should increase anyway, the server probably avoids the unnecessary up-switch and the subsequent compensating-down switch, thereby providing the end user with a more uniform level of quality audiovisual data.

Также предпочтительно, если BRNEXT превышает BRAVE, ускоряется переключение-вниз из-за изменения в состоянии клиентского буфера. Другими словами, если бы уменьшение в продолжительности воспроизведения внутри клиентского буфера, иначе вызвало бы переключения на другую версию потока, имеющую в целом более низкую скорость передачи, это переключение ускоряется, если переменный битрейт должен увеличиться. Путем ускорения переключения-вниз в условиях, где битрейт для передаваемых данных должен увеличиться, сервер посредством этого помогает предотвращать возможное событие повторной буферизации. Если, с другой стороны, сервер не ожидает увеличения битрейта внутри данных с переменным битрейтом, переключение-вниз, запускаемое согласно снижению продолжительности воспроизведения ниже обычной фиксированной пороговой величины переключения-вниз (PTDOWN), может быть слишком поздним, чтобы предотвратить повторную буферизацию, вызванную тем, что увеличивающийся битрейт потока сам будет ускорять опустошение буфера.It is also preferred that if the BR NEXT exceeds BR AVE , the down-switch is accelerated due to a change in the state of the client buffer. In other words, if a decrease in the duration of playback inside the client buffer would otherwise cause a switch to another version of the stream, which has a generally lower transfer rate, this switch is accelerated if the variable bit rate is to increase. By accelerating the down-switch in conditions where the bit rate for the transmitted data should increase, the server thereby helps to prevent a possible re-buffering event. If, on the other hand, the server does not expect an increase in bitrate inside the variable bitrate data, a down-switch triggered by a decrease in playback time below the usual fixed threshold down-switch threshold (PT DOWN ) may be too late to prevent re-buffering caused by in that the increasing bitrate of the stream itself will accelerate the buffer underrun.

Предпочтительно, если вместо этого BRNEXT ниже BRAVE, ускоряется любое переключение-вверх из-за изменения в состоянии клиентского буфера. Другими словами, если увеличение в продолжительности воспроизведения внутри клиентского буфера вызвало бы иначе переключение на другую версию потока, имеющую в целом более высокую скорость передачи, это переключение ускоряется, если переменный битрейт должен уменьшиться. Путем ускорения переключения-вверх в условиях, где битрейт для передаваемых данных должен уменьшиться, сервер посредством этого помогает предотвращать возможное событие переполнения. Если, с другой стороны, сервер не ожидает уменьшения в битрейте внутри данных с переменным битрейтом, переключение-вверх, запускаемое из-за превышения продолжительности воспроизведения обычной фиксированной пороговой величины переключения-вверх (PTUP), может быть слишком поздним, чтобы предотвратить переполнение буфера, заданное тем, что уменьшающийся битрейт для потока сам ускорит переполнение буфера. Кроме того, ускоренное переключение-вверх более быстро обеспечивает пользователю повышенное качество аудиовизуальных данных.Preferably, if instead BR NEXT is lower than BR AVE , any up-switching is accelerated due to a change in the state of the client buffer. In other words, if an increase in the playback duration inside the client buffer would otherwise cause a switch to another version of the stream, which has a generally higher transfer rate, this switch is accelerated if the variable bit rate is to decrease. By accelerating the up-switch in conditions where the bit rate for the transmitted data should decrease, the server thereby helps prevent a possible overflow event. If, on the other hand, the server does not expect a decrease in bitrate inside the variable bitrate data, the up-switch triggered due to exceeding the playing time of the regular fixed up-switch threshold (PT UP ) may be too late to prevent buffer overflows defined by the fact that the decreasing bitrate for the stream will itself accelerate the buffer overflow. In addition, accelerated up-switching more quickly provides the user with enhanced audio-visual data quality.

Однако обратите внимание, что когда BRNEXT ниже BRAVE, любое переключение-вниз вследствие изменения в состоянии клиентского буфера предпочтительно не задерживается (не ускоряется). Скорее, в этом случае, переключения-вниз предпочтительно запускаются на основании обычного фиксированного порога переключения-вниз (PTDOWN). Хотя переключение-вниз может быть потенциально задержано ввиду факта, что битрейт для данных с переменным битрейтом должен вскоре уменьшиться в любом случае, таковое не выполняется в предпочтительном осуществлении изобретения, чтобы избежать риска опустошения буфера.However, note that when BR NEXT is lower than BR AVE , any down-switch due to a change in the state of the client buffer is preferably not delayed (not accelerated). Rather, in this case, the down-switches are preferably triggered based on a conventional fixed down-switch threshold (PT DOWN ). Although the down-switch may be potentially delayed due to the fact that the bitrate for variable bitrate data should soon decrease anyway, this is not done in the preferred embodiment of the invention to avoid the risk of buffer underruns.

Обращаясь теперь к Фиг.5, будет описано предпочтительное осуществление логики переменного битрейта для использования на этапе два 212 по Фиг.2. Начиная на этапе 300, сервер определяет значения для PTUP и PTDOWN. PTUP и PTDOWN могут быть заранее определенными, фиксированными пороговыми величинами переключения-вверх и переключения-вниз и могут быть установлены в соответствии с иными традиционными способами. На этапе 302 сервер определяет значения для Turning now to FIG. 5, a preferred embodiment of variable bit rate logic for use in step two 212 of FIG. 2 will be described. Starting at step 300, the server determines the values for PT UP and PT DOWN . PT UP and PT DOWN can be predetermined, fixed thresholds for switching up and switching up and down and can be set in accordance with other traditional methods. At block 302, the server determines the values for

BRNEXT и BRAVE. BRNEXT может быть определено посредством исследования кодированных битрейтов, связанных с подлежащими передаче данными, которые хранятся в пределах сервера или иного доступного серверу устройства. В одном примере BRAVE вычисляют, исследуя запись кодированных битрейтов для уже переданных данных (по длительностям времени, в течение которого были переданы пакеты, содержащие данные, кодированные с различными битрейтами.) В ином случае могут использоваться типовые арифметические действия, чтобы вычислить фактическое среднее значение. Во втором примере, значение BRAVE для полного потока может быть вычислено и сохранено заранее (поскольку отдельные потоки кодируются прежде начала сеанса потоковой передачи, отдельные значения BRAVE могут быть определены для отдельных потоков прежде воспроизведения). Другими словами, в этом втором примере, BRAVE не является средним битрейтом только для одной порции данных, которая уже была передана, но вместо этого представляет среднее значение по полному потоку, то есть BRAVE является средним битрейтом, проиллюстрированным, например, на Фиг.3.BR NEXT and BR AVE . BR NEXT can be determined by examining the coded bit rates associated with the data to be transmitted, which are stored within the server or other device accessible to the server. In one example, BR AVEs are computed by examining a record of coded bitrates for data already transmitted (by the length of time that packets containing data encoded with different bitrates were transmitted.) Otherwise, typical arithmetic operations can be used to calculate the actual average . In the second example, the BR AVE value for the full stream can be calculated and stored in advance (since individual streams are encoded before the start of the streaming session, individual BR AVE values can be determined for the individual streams before playback). In other words, in this second example, BR AVE is not the average bitrate for only one piece of data that has already been transmitted, but instead represents the average value over the full stream, that is, BR AVE is the average bitrate illustrated, for example, in FIG. 3.

На этапе 304 сервер вычисляет значение F, которое представляет отношение BRNEXT к BRAVE, то есть F=BRNEXT/BRAVE. Следовательно, если BRNEXT превышает BRAVE, то F больше 1,0. At step 304, the server calculates an F value that represents the ratio of BR NEXT to BR AVE , that is, F = BR NEXT / BR AVE . Therefore, if BR NEXT exceeds BR AVE , then F is greater than 1.0.

Если BRNEXT превышает BRAVE, тогда F меньше 1,0. If BR NEXT exceeds BR AVE , then F is less than 1.0.

В случаях, где BRNEXT равно BRAVE, тогда F равно 1,0. In cases where BR NEXT is BR AVE , then F is 1.0.

Если никакие данные еще не были переданы (так, что нет никакого текущего значения BRAVE), тогда F просто установлено в 1,0. Если нет остатков данных, подлежащих передаче в рамках текущего потока данных, так что нет текущего значения для BRNEXT, тогда F также предпочтительно сбрасывается в 1,0 для использования в связи со следующим потоком подлежащих передаче данных.If no data has yet been transmitted (so that there is no current BR AVE value), then F is simply set to 1.0. If there are no data residues to be transmitted within the current data stream, so that there is no current value for BR NEXT , then F is also preferably reset to 1.0 for use in connection with the next data stream to be transmitted.

На этапе 306 сервер устанавливает подстраиваемую пороговую величину переключения-вверх (PTUP-ADJ), равной PTUP, умноженной на F, то есть PTUP*F, и также устанавливает подстраиваемую пороговую величину переключения-вниз (PTDOWN-ADJ), равной PTDOWN, умноженному на F, то есть PTDOWN*F.At step 306, the server sets the adjustable up-switch threshold (PT UP-ADJ ) to PT UP times F, that is, PT UP * F, and also sets the adjustable down-switch threshold (PT DOWN-ADJ ) to PT DOWN times F, i.e. PT DOWN * F.

Следовательно, если BRNEXT превышает BRAVE, то PTUP-ADJ больше PTUP и PTDOWN-ADJ также больше PTDOWN. Наоборот, если BRNEXT ниже BRAVE, то PTUP-ADJ меньше PTUP и PTDOWN-ADJ также меньше PTDOWN.Therefore, if BR NEXT exceeds BR AVE , then PT UP-ADJ is greater than PT UP and PT DOWN-ADJ is also greater than PT DOWN . Conversely, if BR NEXT is lower than BR AVE , then PT UP-ADJ is less than PT UP and PT DOWN-ADJ is also less than PT DOWN .

Пороговые величины проиллюстрированы на Фиг.6, которая предоставляет блочное представление клиентского буфера 115 по Фиг.1. В примере по Фиг.6, подстраиваемые пороговые величины больше соответствующих фиксированных пороговых величин. Обратите внимание, что потенциально могут возникать обстоятельства, где величина PTUP-ADJ, которая может быть вычислена, будет больше максимального значения для клиентского буфера (MAX). Это может случаться, если BRNEXT немного больше BRAVE, выдавая высокое значение для F. Если это так, PTUP-ADJ просто устанавливается равным MAX или некоторому другому меньшему, заданному по умолчанию значению. В крайне маловероятном случае, когда вычисленная PTDOWN-ADJ будет больше MAX вследствие крайне высокого значения для F, тогда PTDOWN-ADJ предпочтительно также устанавливается в некоторое заданное по умолчанию значение, которое меньше заданного по умолчанию значения, в которое установлено PTUP-ADJ, гарантируя таким образом, что PTDOWN-ADJ остается меньше PTUP-ADJ.The threshold values are illustrated in FIG. 6, which provides a block representation of the client buffer 115 of FIG. 1. In the example of FIG. 6, the adjustable thresholds are larger than the corresponding fixed thresholds. Note that there may potentially be circumstances where the PT UP-ADJ value that can be calculated will be greater than the maximum value for the client buffer (MAX). This can happen if BR NEXT is slightly larger than BR AVE , yielding a high value for F. If so, the PT UP-ADJ is simply set to MAX or some other smaller default value. In the extremely unlikely event that the calculated PT DOWN-ADJ is greater than MAX due to the extremely high value for F, then PT DOWN-ADJ is preferably also set to some default value that is less than the default value to which PT UP-ADJ is set , thus guaranteeing that the PT DOWN-ADJ remains smaller than the PT UP-ADJ .

Возвращаясь на Фиг.5, на этапе 308, сервер начинает определять значения для PT, то есть текущую продолжительность воспроизведения для уже содержащихся внутри клиентского буфера данных, которое отслежено на этапе 204 по Фиг.2. Если, на этапе 310 принятия решения, PT больше PTDOWN, и PT также больше PTUP-ADJ, то на этапе 312 запускается переключение-вверх. Если не больше, то выполняется этап 314 принятия решения, причем если PT меньше PTDOWN или PT меньше PTDOWN-ADJ, то на этапе 316 запускается переключение-вниз.Returning to FIG. 5, at step 308, the server begins to determine the values for PT, that is, the current playing time for the data already contained within the client buffer, which is tracked at step 204 of FIG. 2. If, at decision block 310, PT is greater than PT DOWN , and PT is also larger than PT UP-ADJ , then at step 312, up-switching is triggered. If not more, then decision block 314 is performed, and if PT is less than PT DOWN or PT is less than PT DOWN-ADJ , then a down-shift is triggered at step 316.

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

Если PT>PTDOWN И PT>PTUP-ADJ тоIf PT> PT DOWN AND PT> PT UP-ADJ then

выполнить переключение-вверхtoggle up

иначеotherwise

если PT<PTDOWN ИЛИ PT<PTDOWN-ADJ if PT <PT DOWN OR PT <PT DOWN-ADJ

выполнить переключение-внизtoggle down

конец если,end if

причем, как отмечено,and, as noted,

PTUP-ADJ=PTUP*F иPT UP-ADJ = PT UP * F and

PTDOWN-ADJ=PTDOWN*FPT DOWN-ADJ = PT DOWN * F

Следовательно, переключение-вверх запускается, если текущая продолжительность (PT) воспроизведения для клиентского буфера превышает подстраиваемую пороговую величину (PTUP-ADJ) переключения-вверх, если PT также превышает PTDOWN. Это последнее условие предотвращает неподходящие переключения-вверх в условиях, где переключение-вниз может быть более подходящим. Посредством запуска переключений-вверх на основании подстраиваемой пороговой величины переключения-вверх, предпочтительнее чем на основании фиксированной пороговой величины переключения, сервер, таким образом, учитывает текущее состояние клиентского буфера (как представлено посредством PT), при этом также упреждая изменения в битрейте внутри потока данных с переменным битрейтом (посредством подстройки пороговой величины переключения-вверх). Это помогает предотвращать другие неподходящие переключения-вверх.Therefore, the up-switch is triggered if the current playback duration (PT) for the client buffer exceeds the adjustable threshold (PT UP-ADJ ) of the up-switch if PT also exceeds the PT DOWN . This last condition prevents inappropriate up-switches in conditions where a down-switch may be more suitable. By triggering up-switches based on an adjustable switching-up threshold, more preferably than based on a fixed switching threshold, the server thus takes into account the current state of the client buffer (as represented by PT), while also anticipating changes in bitrate within the data stream with a variable bitrate (by adjusting the switching threshold-up). This helps prevent other inappropriate up-switches.

Можно рассмотреть пример, в котором подстраиваемая пороговая величина переключения-вверх первоначально точно равна фиксированной пороговой величине переключения-вверх. Следовательно, если продолжительность воспроизведения для клиентского буфера превышает этот пороговый уровень, выполняется переключение-вверх. Если битрейт для данных с переменным битрейтом затем должен увеличиться, подстраиваемая пороговая величина переключения-вверх будет увеличена с тем, чтобы была больше фиксированной пороговой величины. В этом случае последующее переключение-вверх будет выполнено, только если продолжительность воспроизведения превышает новое, более высокое пороговое значение. Другими словами, становится более трудным, чтобы запускалось переключение-вверх, поскольку должно быть превышено более высокое пороговое значение, задерживая, таким образом, последующее переключение-вверх в условиях, где такая задержка гарантирована, как обсуждено выше в связи с Фиг.1. Теперь можно рассмотреть пример, в котором подстраиваемая пороговая величина переключения-вверх снова первоначально установлена равной фиксированной пороговой величине переключения-вверх, но в котором взамен должен уменьшиться битрейт для данных с переменным битрейтом. В этом случае подстраиваемая пороговая величина переключения-вверх тогда будет более низкой, чем фиксированная пороговая величина. В этом случае становится легче, чтобы запускалось переключение-вверх, ускоряя, таким образом, последующее переключение-вверх в условиях, где оно гарантировано, как также обсуждено выше.An example may be considered in which the adjustable up-switch threshold is initially exactly equal to the fixed up-switch threshold. Therefore, if the playback duration for the client buffer exceeds this threshold level, up-switching is performed. If the bit rate for variable bit rate data then needs to increase, the adjustable up-switch threshold value will be increased so that it is greater than the fixed threshold value. In this case, the subsequent up-switching will be performed only if the playback time exceeds a new, higher threshold value. In other words, it becomes more difficult for the up-switch to be triggered since a higher threshold value must be exceeded, thus delaying the subsequent up-switch in conditions where such a delay is guaranteed, as discussed above in connection with FIG. Now we can consider an example in which the adjustable switching-up threshold value is again initially set equal to a fixed switching-up threshold value, but in which the bitrate for data with a variable bitrate should decrease in exchange. In this case, the adjustable up-switch threshold will then be lower than the fixed threshold. In this case, it becomes easier for the up-shift to be triggered, thereby speeding up the subsequent up-shift under conditions where it is guaranteed, as also discussed above.

Если обратиться теперь к переключениям-вниз, переключение-вниз запускается, если текущая продолжительность (PT) воспроизведения для клиентского буфера снижается ниже либо фиксированной пороговой величины PTDOWN, либо подстраиваемой пороговой величины переключения-вниз (PTDOWN-ADJ). Другими словами, переключение-вниз запускается, если PT снижается ниже наибольшей величины из двух пороговых величин переключения-вниз. Фиксированная пороговая величина еще используется, чтобы запускать переключение-вниз для предотвращения задержки переключение-вниз с тем, чтобы помогать предотвращению событий повторной буферизации. Однако может быть ускорено переключение-вниз, которое возникает, если PT снижается ниже подстраиваемой пороговой величины переключения-вниз. Как отмечено выше, может оказаться, что подстраиваемая пороговая величина переключения-вниз будет либо выше, либо ниже фиксированной пороговой величины переключения-вниз. Если она ниже фиксированной пороговой величины, это излишне, поскольку фиксированная пороговая величина используется для немедленного запуска переключения-вниз в любом случае. Однако если подстраиваемая пороговая величина переключения-вниз превышает фиксированную пороговую величину переключения-вниз, подстраиваемая пороговая величина переключения-вниз тогда может запустить ускоренное переключение-вниз, то есть становится легче, чтобы запускалось переключение-вниз, ускоряя, таким образом, последующие переключения-вниз в условиях, где оно гарантировано, как также обсуждено выше.If we now turn to the down-switch, the down-switch is started if the current playback duration (PT) for the client buffer drops below either the fixed threshold value PT DOWN or the adjustable threshold switch-down (PT DOWN-ADJ ). In other words, a down-switch is triggered if the PT falls below the highest of the two down-switch thresholds. A fixed threshold is still used to trigger a down-switch to prevent a switch-down delay in order to help prevent re-buffering events. However, the down-switch can be accelerated, which occurs if the PT decreases below the adjustable down-switch threshold. As noted above, it may turn out that the adjustable down-switch threshold is either higher or lower than the fixed down-switch threshold. If it is below a fixed threshold, this is unnecessary, since a fixed threshold is used to immediately trigger a down-switch in any case. However, if the adjustable down-switch threshold exceeds a fixed down-switch threshold, the adjustable down-switch threshold can then trigger an accelerated down-switch, that is, it becomes easier for a down-switch to be triggered, thereby speeding up subsequent down-switches. in conditions where it is guaranteed, as also discussed above.

Если ни одно из условий этапов 310 и 314 принятия решения не выполняется, то обработка возвращается на этап 302, в котором обновляются значения BRNEXT и BRAVE, чтобы отразить в них любые изменения, подстраиваемые пороговые величины подстраиваются, и самое последнее значение PT является входным для применения к различным пороговым значениям.If none of the conditions of decision steps 310 and 314 is satisfied, the processing returns to step 302, in which BR NEXT and BR AVE values are updated to reflect any changes in them, adjustable threshold values are adjusted, and the most recent PT value is input to apply to different thresholds.

Таким образом, было описано примерное осуществление способа по методике подстройки общей скорости передачи данных в системе на основе передачи пакетов путем переключения между различными версиями предварительно кодированного потока. Скорость передачи пакетов обычно не изменяется, поскольку она зависит от полосы пропускания канала связи. Однако в других вариантах осуществления скорость передачи пакетов также может изменяться с использованием, например, адаптивных способов.Thus, an example implementation of the method has been described by the method of adjusting the overall data rate in the system based on packet transmission by switching between different versions of the precoded stream. The packet rate usually does not change, since it depends on the bandwidth of the communication channel. However, in other embodiments, the packet rate may also be varied using, for example, adaptive methods.

Хотя изобретение было в основном описано со ссылкой на реализации способа, аппаратные реализации также являются частью изобретения. На Фиг.7 иллюстрируется, на общем уровне, примерная аппаратная реализация. Вкратце, сетевой компонент 400, который может быть частью сервера 105 по Фиг.1, включает в состав упреждающий контроллер (402) передачи потока с переменным битрейтом, чтобы выбирать (202) для передачи начальную версию потока данных с переменным битрейтом. Блок (404) контроля клиентского буфера отслеживает значение, представляющее количество данных внутри клиентского буфера. Блок (406) определения переменного битрейта определяет битрейт (BR) для порции данных с переменным битрейтом, еще подлежащих передаче в рамках выбранной версии потока. Упреждающий контроллер (402) передачи потока с переменным битрейтом затем управляет переключением на различные версии потока, имеющие разные средние битрейты, на основании значения, представляющего (PT) количество данных внутри клиентского буфера, в комбинации с битрейтом (BR) для порции данных с переменным битрейтом, еще подлежащих передаче, то есть контроллер 402 упреждает изменения в битрейте для потока с переменным битрейтом и соответственно управляет переключением-вверх и переключением-вниз.Although the invention has been mainly described with reference to implementations of the method, hardware implementations are also part of the invention. 7 illustrates, at a general level, an exemplary hardware implementation. Briefly, the network component 400, which may be part of the server 105 of FIG. 1, includes a variable bit rate feedforward controller (402) to select (202) for transmission the initial version of the variable bitrate data stream. The client buffer control unit (404) monitors a value representing the amount of data within the client buffer. Variable bitrate determination unit (406) determines the bitrate (BR) for a portion of variable bitrate data still to be transmitted within the selected stream version. The variable bit rate forward controller (402) then controls the switch to different versions of the stream having different average bit rates based on a value representing (PT) the amount of data inside the client buffer, in combination with the bit rate (BR) for the variable bit rate data portion still to be transmitted, that is, the controller 402 anticipates changes in bitrate for a stream with a variable bitrate and accordingly controls the switch-up and switch-down.

Как может быть оценено специалистом в данной области техники настоящее изобретение и методики, связанные с ним, обеспечивают усовершенствованное воспринимаемое впечатление конечного пользователя для приложений, таких как потоковая передача мультимедиа, так как избегается переполнение клиентского буфера. Кроме того, специалист в данной области техники также оценит, что имеются много различных способов, которые могут использоваться, чтобы определять уровень заполнения клиентского буфера, включая оценки, основанные на данных в рамках сообщений RR (сообщение приемника) и сообщений отправителя (Sender Reports) и, что настоящее изобретение может быть осуществлено параллельно со множеством потоков пакетов данных, одновременно буферизуемых для передачи одному или нескольким клиентам.As can be appreciated by one of ordinary skill in the art, the present invention and related techniques provide an enhanced perceived end-user experience for applications such as multimedia streaming, as the overflow of the client buffer is avoided. In addition, one of ordinary skill in the art will also appreciate that there are many different methods that can be used to determine the fill level of the client buffer, including estimates based on data from RR messages (receiver message) and sender messages (Sender Reports) and that the present invention can be implemented in parallel with multiple data packet streams simultaneously buffered for transmission to one or more clients.

Специалист в данной области техники дополнительно оценит, что изобретение может быть осуществлено в сетевых компонентах различных типов и посредством таких компонентов, как сетевые терминалы, сетевые узлы, и т.п. В частности изобретение может быть осуществлено на практике посредством терминалов мобильной связи, прокси-серверов (что может разделять тракт передачи), и стационарных терминалов.One skilled in the art will further appreciate that the invention can be implemented in various types of network components and through components such as network terminals, network nodes, and the like. In particular, the invention can be practiced by means of mobile communication terminals, proxy servers (which can share the transmission path), and fixed terminals.

Тогда как изобретение было описано по отношению к конкретным вариантам осуществления, специалисты в данной области техники признают, что изобретение не ограничивается конкретными вариантами осуществления, описанными и проиллюстрированными в документе. Следовательно, тогда как изобретение было описано относительно его предпочтительных вариантов осуществления, должно быть понятно, что данное раскрытие является лишь иллюстративным. Соответственно, подразумевается, что изобретение ограничивается только в соответствии с объемом прилагаемой к документу формулы изобретения.While 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 specific embodiments described and illustrated in the document. Therefore, while the invention has been described with respect to its preferred embodiments, it should be understood that this disclosure is illustrative only. Accordingly, it is understood that the invention is limited only in accordance with the scope of the claims appended to the document.

Claims (17)

1. Способ управления передачами пакетов данных с переменным битрейтом от сервера (105) клиенту (115), имеющему в составе клиентский буфер (155), причем сервер осуществляет переключение между различными версиями потока передаваемых данных с переменным битрейтом на основании состояния клиентского буфера, способ содержит этапы, на которых:
выбирают (202) для передачи начальную версию потока данных с переменным битрейтом;
отслеживают (204) значение (РТ), представляющее количество данных внутри клиентского буфера;
определяют (206) битрейт (BR) для порции данных с переменным битрейтом, еще подлежащих передаче в рамках выбранной версии потока; и
управляют переключениями (212) на другие версии потока, имеющие различные средние битрейты, на основании значения (РТ), представляющего количество данных внутри клиентского буфера, в комбинации с битрейтом (BR) для порции данных с переменным битрейтом, еще подлежащих передаче.
1. The method of controlling the transmission of data packets with a variable bit rate from the server (105) to the client (115), comprising a client buffer (155), the server switching between different versions of the stream of transmitted data with a variable bit rate based on the state of the client buffer, the method comprises stages in which:
select (202) to transmit the initial version of the data stream with a variable bit rate;
tracking (204) a value (PT) representing the amount of data inside the client buffer;
determining (206) a bit rate (BR) for a portion of data with a variable bit rate still to be transmitted within the selected stream version; and
control switching (212) to other stream versions having different average bitrates based on a value (PT) representing the amount of data inside the client buffer, in combination with a bit rate (BR) for a portion of variable bit rate data still to be transmitted.
2. Способ по п.1, в котором этап управления переключениями (212) включает в состав этап, на котором:
если битрейт (BRNEXT) для следующей порции подлежащих передаче данных с переменным битрейтом превышает средний битрейт (BRAVE), то задерживают (310) переключение на версию потока, имеющую в целом более высокий битрейт.
2. The method according to claim 1, in which the step of switching control (212) includes a step in which:
if the bitrate (BR NEXT ) for the next portion of data to be transmitted with a variable bitrate exceeds the average bitrate (BR AVE ), then delay (310) switching to the version of the stream, which generally has a higher bitrate.
3. Способ по п.1, в котором этап управления переключением (212) включает в состав этап, на котором:
если битрейт (BRNEXT) для следующей порции подлежащих передаче данных с переменным битрейтом превышает средний битрейт (BRAVE), то ускоряют (314) переключение на версию потока, имеющую в целом низкий битрейт.
3. The method according to claim 1, in which the step of switching control (212) includes a step in which:
if the bitrate (BR NEXT ) for the next portion of data to be transmitted with variable bitrate exceeds the average bitrate (BR AVE ), then the switch to a stream version with a generally low bitrate is accelerated (314).
4. Способ по п.1, в котором этап управления переключением (212) включает в состав этап, на котором:
если битрейт (BRNEXT) для следующей порции подлежащих передаче данных с переменным битрейтом ниже среднего битрейта (BRAVE), то ускоряют переключение (310) на версию потока, имеющую в целом более высокий битрейт.
4. The method according to claim 1, in which the step of switching control (212) includes a step in which:
if the bitrate (BR NEXT ) for the next batch of data to be transmitted with a variable bitrate below the average bitrate (BR AVE ), then the switch (310) to the stream version with a generally higher bitrate is accelerated.
5. Способ по п.1, в котором сервер (105) управляет переключением на различные версии потока на основании текущего состояния клиентского буфера (155), применяя одну или несколько пороговых величин к данным, уже находящимся в клиентском буфере, и при этом этап управления переключением (212) содержит этапы, на которых:
динамически подстраивают (306) одну или несколько пороговых величин на основании битрейта (BR) для порции подлежащих передаче данных с переменным битрейтом и
определяют, переключать ли на другую версию потока, на основании текущего состояния клиентского буфера (155), применяя одну или несколько подстраиваемых пороговых величин к значению (РТ), представляющему количество данных внутри клиентского буфера (115).
5. The method according to claim 1, in which the server (105) controls the switch to different versions of the stream based on the current state of the client buffer (155), applying one or more threshold values to the data already in the client buffer, and the control step switching (212) contains the steps in which:
dynamically adjust (306) one or more threshold values based on the bit rate (BR) for the portion of data to be transmitted with a variable bit rate and
determining whether to switch to another version of the stream based on the current state of the client buffer (155), applying one or more adjustable threshold values to the value (PT) representing the amount of data inside the client buffer (115).
6. Способ по п.5, в котором одна или несколько пороговых величин включает в себя, по меньшей мере, одну из пороговой величины (PTUP) переключения-вверх и пороговой величины (PTDOWN) переключения-вниз.6. The method according to claim 5, in which one or more threshold values includes at least one of a threshold value (PT UP ) switch-up and a threshold value (PT DOWN ) switch-down. 7. Способ по п.6, в котором этап динамической подстройки (306) одной или нескольких пороговых величин включает в состав этапы, на которых: определяют средний битрейт (BRAVE) для данных с переменным битрейтом и
выборочно подстраивают (306) пороговые величины переключения-вверх и переключения-вниз (PTUP, PTDOWN) на основании сравнения битрейта (BRNEXT) для следующей порции подлежащих передаче данных с переменным битрейтом со средним битрейтом (BRAVE) для данных с переменным битрейтом.
7. The method according to claim 6, in which the step of dynamically adjusting (306) one or more threshold values includes the steps of: determining an average bit rate (BR AVE ) for data with a variable bit rate and
selectively adjust (306) the thresholds for switching up and switching down (PT UP , PT DOWN ) based on a comparison of the bit rate (BR NEXT ) for the next portion of data to be transmitted with a variable bit rate with an average bit rate (BR AVE ) for data with a variable bit rate .
8. Способ по п.7, в котором этап выборочной подстройки (306) пороговых величин переключения-вверх и переключения-вниз (PTUP, PTDOWN) включает в состав этапы, на которых:
увеличивают (306) пороговые величины переключения-вверх и переключения-вниз, если битрейт (BRNEXT) для следующей порции данных с переменным битрейтом превышает средний битрейт (BRAVE); и уменьшают (306) пороговую величину переключения-вверх, если битрейт (BRNEXT) для следующей порции данных с переменным битрейтом ниже среднего битрейта (BRAVE) и если пороговая величина переключения-вверх превышает пороговую величину переключения-вниз.
8. The method according to claim 7, in which the step of selective adjustment (306) of the threshold values of the switch-up and switch-down (PT UP , PT DOWN ) includes the steps in which:
increase (306) the threshold values of switching-up and switching-down if the bitrate (BR NEXT ) for the next portion of data with a variable bitrate exceeds the average bitrate (BR AVE ); and reduce (306) the up-switch threshold if the bitrate (BR NEXT ) for the next portion of data with a variable bitrate is below the average bitrate (BR AVE ) and if the up-switch threshold exceeds the down-switch threshold.
9. Способ по п.8, в котором этап увеличения пороговых величин переключения-вверх и переключения-вниз (PTUP, PTDOWN), если битрейт для следующей порции данных с переменным битрейтом превышает средний битрейт, включает в состав этапы, на которых:
определяют (302) битрейт для следующей порции данных с переменным битрейтом;
вычисляют (304) значение отношения (F) битрейта для следующей порции данных с переменным битрейтом к среднему битрейту и
умножают (306) пороговые величины переключения-вверх и переключения-вниз
(PTUP, PTDOWN) на значение отношения, чтобы таким образом увеличить пороговые величины.
9. The method according to claim 8, in which the step of increasing the thresholds for switching up and switching down (PT UP , PT DOWN ), if the bit rate for the next piece of data with a variable bit rate exceeds the average bit rate, includes the steps in which:
determining (302) a bit rate for the next portion of data with a variable bit rate;
calculate (304) the value of the ratio (F) of the bit rate for the next portion of data with a variable bit rate to the average bit rate and
multiply (306) switching-up and switching-down thresholds
(PT UP , PT DOWN ) by the ratio value, so as to increase the threshold values.
10. Способ по п.8, в котором этап уменьшения пороговой величины переключения-вверх (PTUP) включает в состав этапы, на которых:
определяют (302) битрейт для следующей порции данных с переменным битрейтом;
вычисляют (304) значение отношения (F) битрейта для следующей порции данных с переменным битрейтом к среднему битрейту;
умножают (306) пороговую величину переключения-вверх на значение отношения, чтобы таким образом уменьшить пороговую величину; и выбирают (310) наибольшую из уменьшенной пороговой величины переключения-вверх и пороговой величины переключения-вниз для использования в качестве новой пороговой величины переключения-вверх.
10. The method according to claim 8, in which the step of reducing the threshold value of the switch-up (PT UP ) includes the steps in which:
determining (302) a bit rate for the next portion of data with a variable bit rate;
calculating (304) the value of the ratio (F) of the bit rate for the next portion of data with a variable bit rate to the average bit rate;
multiplying (306) the up-switching threshold by a ratio value so as to reduce the threshold; and selecting (310) the largest of the reduced up-switch threshold and the down-switch threshold for use as the new up-switch threshold.
11. Способ по любому из пп.2-10, в котором средний битрейт (BRAVE) представляет средний битрейт по полной версии передаваемого потока.11. The method according to any one of claims 2 to 10, in which the average bit rate (BR AVE ) represents the average bit rate of the full version of the transmitted stream. 12. Способ по любому из пп.2-10, в котором средний битрейт (BRAVE) представляет средний битрейт для данных, которые были уже переданы в рамках версии передаваемого потока.12. The method according to any one of claims 2 to 10, wherein the average bit rate (BR AVE ) represents the average bit rate for data that has already been transmitted as part of the version of the transmitted stream. 13. Способ по любому из пп.2-10, в котором значение, связанное с данными в клиентском буфере, представляет продолжительность (РТ) воспроизведения данных.13. The method according to any one of claims 2 to 10, in which the value associated with the data in the client buffer represents the duration (PT) of the data playback. 14. Способ по любому из пп.2-10, в котором значение, связанное с данными в клиентском буфере, представляет уровень заполнения буфера данными.14. The method according to any one of claims 2-10, wherein the value associated with the data in the client buffer represents the level of filling the buffer with data. 15. Машиночитаемый носитель, на котором сохранен компьютерный программный продукт, причем компьютерный программный продукт содержит части программного кода, предназначенные для выполнения этапов способа управления передачами пакетов данных с переменным битрейтом от сервера клиенту в компьютерной системе в соответствии с любым из предшествующих пунктов, когда компьютерный программный продукт исполняется на компьютерной системе.15. A computer-readable medium on which a computer program product is stored, the computer program product comprising portions of program code for performing steps of a method for controlling the transmission of data packets with a variable bit rate from a server to a client in a computer system in accordance with any of the preceding paragraphs, when the computer program the product runs on a computer system. 16. Устройство, содержащее процессор компьютера и запоминающее устройство, соединенное с процессором, причем запоминающее устройство является кодированным с одной или несколькими программами, которые могут выполнять этапы по любому из пп.1-14.16. A device comprising a computer processor and a storage device connected to a processor, the storage device being encoded with one or more programs that can perform the steps of any one of claims 1-14. 17. Устройство (400) для управления передачами пакетов данных с переменным битрейтом от сервера (105) клиенту (115), имеющему в составе клиентский буфер (155), причем сервер осуществляет переключения между различными версиями потока передаваемых данных с переменным битрейтом на основании состояния клиентского буфера, устройство содержит:
упреждающий контроллер (402) передачи потока с переменным битрейтом, чтобы выбирать (202) для передачи начальную версию потока данных с переменным битрейтом;
блок (404) контроля клиентского буфера для отслеживания значения, представляющего количество данных внутри клиентского буфера; блок (406) определения переменного битрейта для определения битрейта (BR) для порции данных с переменным битрейтом, еще подлежащих передаче в рамках выбранной версии потока; и
при этом упреждающий контроллер (402) передачи потока с переменным битрейтом затем управляет переключениями на различные версии потока, имеющие различные средние битрейты, на основании значения (РТ), представляющего количество данных внутри клиентского буфера, в комбинации с битрейтом (BR) для порции данных с переменным битрейтом, еще подлежащих передаче.
17. A device (400) for controlling the transmission of data packets with a variable bit rate from the server (105) to the client (115), which includes a client buffer (155), and the server switches between different versions of the data stream with variable bit rate based on the state of the client buffers, the device contains:
variable bit rate forward controller (402) to select (202) for transmitting an initial variable bit rate data stream;
a client buffer monitoring unit (404) for tracking a value representing the amount of data within the client buffer; a variable bitrate determination unit (406) for determining a bitrate (BR) for a portion of variable bitrate data still to be transmitted within the selected stream version; and
wherein the forward controller (402) for transmitting the stream with a variable bitrate then controls the switching to different versions of the stream having different average bitrates, based on the value (PT) representing the amount of data inside the client buffer, in combination with the bitrate (BR) for the data portion with variable bitrate still to be transmitted.
RU2007141622/09A 2005-04-11 2005-04-11 Method of controlling transmission of data packets for data with variable bitrate RU2389145C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2007141622/09A RU2389145C2 (en) 2005-04-11 2005-04-11 Method of controlling transmission of data packets for data with variable bitrate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2007141622/09A RU2389145C2 (en) 2005-04-11 2005-04-11 Method of controlling transmission of data packets for data with variable bitrate

Publications (2)

Publication Number Publication Date
RU2007141622A RU2007141622A (en) 2009-05-20
RU2389145C2 true RU2389145C2 (en) 2010-05-10

Family

ID=41021328

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007141622/09A RU2389145C2 (en) 2005-04-11 2005-04-11 Method of controlling transmission of data packets for data with variable bitrate

Country Status (1)

Country Link
RU (1) RU2389145C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462032B2 (en) 2013-07-24 2016-10-04 Google Inc. Streaming media content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9462032B2 (en) 2013-07-24 2016-10-04 Google Inc. Streaming media content

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4819873B2 (en) Technology to control data packet transmission of variable bit rate data
JP4681044B2 (en) Technology for dynamically controlling the transmission of data packets
US9191664B2 (en) Adaptive bitrate management for streaming media over packet networks
US8255551B2 (en) Adaptive bitrate management for streaming media over packet networks
EP2719144B1 (en) On-demand adaptive bitrate management for streaming media over packet networks
US20030198184A1 (en) Method of dynamically determining real-time multimedia streaming rate over a communications networks
US20080133766A1 (en) Method and apparatus for streaming media to a plurality of adaptive client devices
Su et al. Smooth control of adaptive media playout for video streaming
Rahman et al. A client side buffer management algorithm to improve QoE
US10382155B2 (en) Data processing
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
RU2389145C2 (en) Method of controlling transmission of data packets for data with variable bitrate
KR100631516B1 (en) Streaming system and adaptive band allocation method
RU2378781C2 (en) Method for dynamic control of packet data transmission
Kim et al. Context-aware prefetching scheme for interactive multimedia services based on HTTP adaptive streaming
Deshpande Underflow prevention for AV streaming media under varying channel conditions
De Marco et al. Run-Time Adjusted Congestion Control for Multimedia: Experimentals Results
Viet et al. Flexible QoE optimized Video Adaptive Streaming over HTTP for sudden bandwidth drops

Legal Events

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

Effective date: 20210412