Способ управления буферной памятью потокового видео
METHOD FOR  MANAGING STREAMING VIDEO BUFFER MEMORY

Изобретение относится к сфере управления телетрафиком.
Сегодня технология потокового вещания видео все более замещает общепринятую видеотрансляцию, основанную на протоколах RTP/UDP [1].
Технология передачи с использованием протокола TCP обладает высокой надежностью, поскольку, благодаря наличию обратной связи, восстанавливает поврежденные или утерянные во время передачи пакеты.
Алгоритм управления видео потоком предусматривает возможно более полную загрузку TCP-канала, а, в случае возникновения перегрузок и появления информации об увеличении числа теряемых пакетов, передатчик производит их повторное воспроизведение. Уменьшая размер «окна», в течение которого ведется передача, он уменьшает интенсивность поступления пакетов, снижая тем самым возможность возникновения перегрузки.
Одним из распространенных алгоритмов стабилизации ТСР–видео потоков является алгоритм TCP-«CUBIC» [2]. Управление потоком осуществляется передающей стороной. При детектировании наличия потерь пакетов, передатчик понижает скорость их отправки до исчезновения потерь, а затем, ступенчато повышает ее по кубической степенной зависимости, до появления информации о вновь возникающих потерях.
Пропускная способность TCP- канала регулируется размером «окна перегрузки». При наличии в канале TCP-видеотрафика, мы подразумеваем, что канал загружен до теоретического максимума, доступного с учетом наличия UDP – трафика.
При управлении ТСР-видеопотоком, в отличие от передачи трафика данных, возникают дополнительные трудности, связанные с тем, что потребление видеопакетов происходит с определенной постоянной скоростью, называемой «битрейтом». Битрейт определяет разрешающую способность передаваемого видео сообщения. Если пропускная способность канала окажется меньше битрейта, то передача с данным уровнем качества становится невозможной и значение битрейта необходимо уменьшить. Для этого существующие видеокодеки имеют ряд настроек, обеспечивающих ступенчатое изменение битрейта и, следовательно, качества воспроизведения.
Стандартом H.264 [3], например, предусмотрены «профили» кодека – набор различных функций и алгоритмов кодирования, которые абонентское устройство может уметь или не уметь выполнять. Основной список – 10 профилей. Каждый из профилей может работать с разным качеством кодирования под названием «уровень».  Всего предусмотрено 17 уровней. Таким образом, имеется 170 комбинаций профиль-уровень.
Одним из наиболее применимых способов управления видео трафиком является способ дискретного переключения уровня качества воспроизведения. Постоянно измеряя свою реальную пропускную способность, передатчик выбирает соответствующие значения битрейта для последующей передачи.
Весь поток разбивается на отдельные сегменты по τ секунд воспроизведения видео. Указанные сегменты могут рассматриваться как пачки пакетов.  Каждый сегмент был предварительно подвергнут кодированию в один из L различных битрейтов видео.  Пусть  - ряд доступных битрейтов видео ( ). Для каждого клиента процесс поделен на этапы загрузки сегментов .
Обозначим через  время от начала передачи передатчиком очередного i-го сегмента до получении подтверждения о его правильном приеме, а через  доступную для данного ТСР-соединения пропускную способность, в течение передачи i-го сегмента. Тогда
.
При выборе значения битрейта  очередного i-го сегмента  полагают, что он должен быть выбран с наибольшим из возможных битрейтов, не превосходящих доступную скорость передачи предыдущего сегмента.
.
Частое изменение значений битрейта, в процессе воспроизведения видео, может привести к нежелательному ухудшению восприятия передачи. Для уменьшения частоты переключений и исключения статистических выбросов, к  применяют функцию усреднения .
Для уменьшения возможности прерывания воспроизведения видео, на приемной стороне создается буфер, который демпфирует изменения скорости поступления видео сегментов. Здесь следует обратить внимание на то, что процесс управления трафиком осуществляет передающая сторона, получив соответствующую информацию о возникающих потерях пакетов, вследствие перегруженности канала.
Технология, основанная на использовании стека протоколов HTTP/TCP, имеет английское название HAS. Используя весьма надежный протокол ТСР, эта технология позволяет осуществлять параллельную передачу видеопрограмм и Internet-данных. Видеопрограммы предварительно преобразуются в цифровую форму и хранятся с различными битрейтами. Это обеспечивает их передачу с различным уровнем качества. Возможность оперативного переключения битрейта используется также для управления интенсивностью видеопотока, в зависимости от пропускной способности канала [4].
В настоящее время передача видео составляет почти 90% от общего объема, и HAS становится превалирующей формой передачи Internet-трафика. Видео поток HAS также разбивается на отдельные сегменты в несколько секунд времени воспроизведения. Указанные сегменты с различными битрейтами хранятся на сервере и передаются клиентам по их стандартным get-запросам. Здесь следует подчеркнуть, что управление трафиком уже осуществляется не передающей, а приемной стороной. Клиент оценивает пропускную способность ТСР-соединения и запрашивает загрузку следующего сегмента с соответствующим битрейтом.
Вследствие непостоянства пропускной способности канала, предоставляемого пользователю, поступление сегментов происходит не равномерно, в то время как их «потребление» при воспроизведении осуществляется с постоянно битовой скоростью, присущей данному качеству. С целью демпфирования влияния непостоянства пропускной способности, на стороне клиента создается некоторый объем пакетов, которые заносятся в буферную память до начала трансляции. Размер буферной памяти измеряется не в числе ячеек памяти, а в единицах времени воспроизведения видео и обычно имеет порядок, равный 10 секундам. В процессе трансляции, наполнение буфера постоянно меняется, в зависимости от текущего значения пропускной способности канала ТСР. При длительном уменьшении пропускной способности, размер буфера может уменьшиться до нуля, и возникнут перерывы в воспроизведении видео. При длительном увеличении пропускной способности число пакетов, накопленное в буфере, может превысить размер буферной памяти, и часть пакетов будет утеряно, что также приведет к искажению воспроизведения.
Основная задача всех применяемых способов управления потоками видеотрафика заключается в поддержании размера буфера на заданном уровне и недопущении его опустошения или переполнения.
Такие способы называют способами адаптации скорости.
Наиболее близкими по технической сущности являются способы, основанные на алгоритмах, связанных с измерением реальной пропускной способности канала управления буферной памятью. Для каждого клиента процесс потокового вещания поделен на последовательные этапы загрузки i = 1, 2… Этап начинается с момента отправки пользователем i-го запроса и заканчивается моментом отправления следующего запроса. Большинство известных алгоритмов определяет расчетную пропускную способность на i-м этапе, приравнивая к ее реальной пропускной способности на предыдущем этапе. Расчетные значения пропускной способности на соседних этапах могут значительно различаться, поэтому они усредняются на нескольких соседних этапах, что предотвращает влияние отдельных выбросов.
Перед началом каждого этапа загрузки клиент выбирает битрейт очередного сегмента и определяет расчетное время до начала следующей загрузки.
Если загрузка заканчивается раньше расчетного интервала, то алгоритм ожидает до окончания интервала. В противном случае последующая загрузка начинается сразу же, после завершения текущей загрузки.
Именно на основе задания указанной величины происходит управление размером буфера в большинстве способов.
Обозначим через  - размер буфера в конце i-го этапа, выраженный в единицах времени воспроизведения видео. В течение всего реального интервала времени i-го этапа  размер буфера уменьшается на  единиц и увеличивается на τ единиц времени за счет поступившего сегмента. При постоянном времени τ сегмента, время  до начала следующего запроса, по отношению к моменту возникновения предыдущего, является единственной величиной, с помощью которой можно управлять размером буфера. Система будет находиться в равновесном состоянии, если выполняется условии .
В большинстве систем параметр  зависит только от времени задержки сигнала в канале.
В некоторых системах управляющий сигнал  зависит от размера буфера  на i-м этапе, Так, например, время до начала следующего запроса иногда выбирается на основании соотношения
,
где – некоторое предельное значение буфера.
Имеются способы управления буферной памятью, например, основанные на алгоритме PANDA [5], в которых при формировании  учитываются как реальная пропускная способность канала, так и степень заполнения буфера, что увеличивает качество процесса регулирования. Указанный способ выбран за прототип.
Недостатком указанного способа является то, что управляющий сигнал  формируется в результате измерения двух разнородных величин: состояния буфера  и задержки в канале, причем, случайные задержки, от которых зависит управляющий сигнал, входят в цепь обратной связи, ухудшая качество процесса управления.
С целью устранения указанных недостатков предлагается для формирования сигнала управления  использовать информацию о состоянии буферной памяти на  соседних этапах управления.
Сущностью предлагаемого способа является то, что оба регулирующих параметра получаются непосредственно за счет обработки результатов измерений только одной управляемой величины.
Техническим результатом предлагаемого способа является то, что он обеспечивает поддержание размера буфер в заданных пределах, относительно номинального значения  и повышает качество процесса регулирования.
Реализация предлагаемого способа предусматривает размещение на сервере видеоинформации, которая в виде сегментов передается по запросам клиента и размещается в его буферной памяти. Интенсивность поступления запросов управляется регулирующим параметром.
Регулирующий параметр  является функцией двух переменных: это рассогласование размера буфера  и разность между размерами буфера на интервалах между соседними запросами . Указанная разность принимается за скорость изменения размера буфера на i-м этапе. Все значения параметров, входящих в функцию,  зависят только от состояния системы на предыдущих этапах.
Известно, что введение отрицательной обратной связи не только по регулируемой величине, но также и по скорости ее изменения, улучшает процесс управления. Поэтому предлагается использовать обе указанных величины.
Система будет находиться в устойчивом равновесном состоянии, если величины  и  равны нулю. Таким образом, управляющая информация получается исключительно за счет обработки размеров буферной памяти и не требует измерения пропускной способности канала. Информация о пропускной способности канала исключается из цепи обратной связи и используется лишь для определения требуемого значения битрейта.
Литература
[1] History of Move Networks. Available.  online:http://movenetworks.com/history.html
[2] Sangtae Ha, Injong Rhee, and Lisong Xu. 2008. CUBIC: a new TCP-friendly high-speed TCP variant. SIGOPS Oper. Syst. Rev. 42,5 (July 2008), 64-74
[3] Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264 // International Telecommunication Union, Женева, Швейцария, 2016 - 807c.
[4 ] Jae-Beom Lee, Hari Kalva The VC-1 and H.264 Video Compression Standards for Broadband Video Services // Springer Science+Business Media,
[5] Zhi Li. Xiaoqing, Member , IEEE, Joshua Gahm, Rong Pan, Hao Hu, Student Member IEEE, Ali C. Begen, Senior Member, IEEE, David Oran.   Adapt: Rate Adaptation for HTTP VIDEO Streaming At Scale.  IEEE Journal on selected Areas in Communications, Vol 32, No 4, April 2014.