Способ и система оценки пропускной способности сети при транслировании видеосигнала

Авторы патента:


Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности определения пропускной способности сети при передаче видеопотока. Способ оценки пропускной способности сети при транслировании видеосигнала, в котором определяют стартовый максимальный битрейт, минимальный полезный битрейт, частоту кадров (FPS) для передачи видеосигнала на устройство пользователя и алгоритм прямой коррекции ошибок (FEC); определяют среднее количество пакетов в кадре и интервал передачи кадров видеосигнала на основании стартового битрейта и FPS; осуществляют передачу видеосигнала на устройство пользователя с определенными параметрами в заданный промежуток времени; определяют для каждого переданного кадра потери пакетов при их доставке до пользовательского устройства; определяют количество полностью собранных кадров видеосигнала на устройстве пользователя, при этом, если количество собранных кадров больше или равно минимального установленного количества собранных кадров, определяемого на основании стартового битрейта и FPS, то определяют пропускную способность сети, как достаточную для транслирования видеосигнала с заданными параметрами. 2 н. и 4 з.п. ф-лы, 9 ил.

 

ОБЛАСТЬ ТЕХНИКИ

[0001] Заявленное решение относится к области компьютерных технологий, в частности к решениям для оценки качества пропускной способности сетевого канала передачи данных при транслировании видеопотока.

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

[0002] Одним из ключевых аспектов технологии облачных игр является передача видеоданных через глобальную сеть Интернет от сервера с игрой к конечному пользователю. Таким образом, одной из важнейших задач при создании подобной технологии является оценка качества сети на маршруте от сервера до конечного пользователя. Существующие общедоступные методы оценки качества сети являются достаточно общими и не учитывают специфику, которую накладывает технология облачных игр при транслировании видеопотока.

[0003] Наиболее часто используемым решением для анализа пропускной способности сети является приложение Speedtest (https://www.speedtest.net/), которое может оценить такие параметры, как ping, скорость скачивания данных и скорость загрузки данных по отношению к определенному выбранному серверу. Интернет провайдеры также чаще всего в своих тарифах указывают достаточно скудную информацию о том, какого качества будет услуга у пользователя. Например, может быть указана максимальная скорость скачивания данных, максимальная скорость загрузки данных, возможный максимальный уровень потерь сетевых пакетов за достаточно большой промежуток времени (день или час). Все эти параметры дают слабое представление о том, достаточно ли хорошее качество сети будет на маршруте от сервера с игрой до пользователя для комфортной игры с должной частотой кадров. Решение Speedtest не дает представление о том, какие потери есть на маршруте при передаче видеоданных и какого они характера. Кроме того, подобного рода тесты также не учитывают характер самих данных, которые требуют передачи по сети, не учитывают способ их формирования, их смысловую нагрузку и характер отправки данных в сеть.

[0004] Еще одним недостатком данных тестов является их статичность. Нельзя одновременно проводить тест и оказывать услугу, так как тест зачастую требует занятие доступной полосы пропускания, хоть и на короткий промежуток времени. Также чаще всего данные тесты работают по HTTP протоколу, то есть поверх TCP, в то время как технология облачных игр требует передачи видеопотока по UDP. Это также стоит учитывать, так как протокол TCP более сложный и имеет собственные механизмы регулировки скорости посылки данных.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0005] Решаемой технической проблемой с помощью заявленного изобретения является создание нового принципа анализа пропускной способности сети для адаптивной подстройки скорости и качества передаваемого видеосигнала на пользовательское устройство.

[0006] Техническим результатом является повышение точности определения пропускной способности сети при передаче видеопотока за счет анализа количества потерь пакетов и кадров на пользовательской стороне и расчета избыточности для компенсации потерь пакетов и кадров при передаче потока данных.

[0007] Заявленный результат достигается за счет компьютерно-реализуемого способа оценки пропускной способности сети при транслировании видеосигнала, при этом способ выполняется с помощью процессора и содержит этапы, на которых:

a) определяют стартовый максимальный битрейт, минимальный полезный битрейт, частоту кадров (FPS) для передачи видеосигнала на устройство пользователя и алгоритм прямой коррекции ошибок (FEC);

b) определяют среднее количество пакетов в кадре и интервал передачи кадров видеосигнала на основании стартового битрейта и FPS;

c) осуществляют передачу видеосигнала на устройство пользователя с определенными параметрами на этапах a) и b) в заданный промежуток времени;

d) определяют для каждого переданного кадра потери пакетов при их доставке до пользовательского устройства;

e) определяют количество полностью собранных кадров видеосигнала на устройстве пользователя, при этом,

f) если количество собранных кадров больше или равно минимального установленного количества собранных кадров, определяемого на основании стартового битрейта и FPS, то определяют пропускную способность сети, как достаточную для транслирования видеосигнала с параметрами, определенными на этапе a), в противном случае выполняют следующие этапы:

g) ранжируют переданные кадры на устройство пользователя по потерям пакетов и определяют по меньшей мере один кадр, для которого не выполняется условие полной его сборки на устройстве пользователя;

h) определяют уровень избыточности необходимый для компенсации потерь пакетов для упомянутого кадра, определенного на этапе g), на основании количества потерянных пакетов и алгоритма FEC;

i) определяют величину полезного битрейта на основании уровня избыточности и осуществляют сравнение с минимальным полезным битрейтом, при этом если величина полезного битрейта выше величины минимально полезного битрейта, то определяют пропускную способность сети, как достаточную для транслирования видеосигнала с параметрами, определенными на этапе a) и определенным уровнем избыточности на этапе h), в противном случае

j) осуществляют корректировку стартового битрейта и итеративно выполняют шаги a) – f).

[0008] В одном из частных вариантов осуществления способа первичный битрейт определяют на основании по меньшей мере одно из: видеоматериал, кодек, параметры кодирования, параметры тарифного плана.

[0009] В другом частном варианте осуществления способа видеосигнал представляет собой интерактивную игровую трансляцию.

[0010] В другом частном варианте осуществления способа алгоритм FEC применяется для компенсации потерь пакетов при сборке кадров на устройстве пользователя.

[0011] В другом частном варианте осуществления способа величина корректировки битрейта представляет собой заранее заданное значение.

[0012] Заявленный результат также достигается с помощью системы оценки пропускной способности сети при транслировании видеосигнала, содержащей по меньшей мере один процессор и по меньшей мере одно запоминающее устройство, хранящее

машиночитаемые инструкции, которое при их исполнении процессором выполняет вышеуказанный способ.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0013] Фиг. 1А – 1Б иллюстрируют блок-схему выполнения заявленного способа анализа пропускной способности сети.

[0014] Фиг. 2А иллюстрирует общую схему передачи видеопотока.

[0015] Фиг. 2Б иллюстрирует пример состава кадра.

[0016] Фиг. 2В иллюстрирует схему передачи видеопотока с потерей пакетов в кадрах видеопотока.

[0017] Фиг. 2Г иллюстрирует анализ потерь пакетов в кадрах на пользовательской стороне.

[0018] Фиг. 2Д иллюстрирует определение пакета для расчета уровня избыточности для корректировки битрейта.

[0019] Фиг. 2Е иллюстрирует пример определения уровня избыточности для компенсации потерь пакетов в кадрах видеопотока.

[0020] Фиг. 3 иллюстрирует схему вычислительного устройства.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0021] Настоящее изобретение осуществляется с помощью выполнения этапов способа (100) оценки пропускной способности сети при передаче видеопотока на клиентское устройство от сервера. Видеопоток может представлять собой различный набор данных, например, трансляцию компьютерной игры для взаимодействия с ней со стороны пользователя, видеотрансляции и т.п.

[0022] На первом этапе (101) выполняется определение параметров сети пользователя для передачи видеоданных. Для трансляции видеопотока необходимо определить стартовый максимальный битрейт Bstart, FPS и алгоритм FEC (от англ. Forward error correction). Алгоритм FEC используется для упреждения ошибок передачи данных, путем добавления избыточных данных. Различные вариации FEC часто используются при передачи видеоданных по сети. Применительно к сетевым пакетам, существующие методы FEC позволяют восстанавливать до K% потерянных пакетов: K = M/(N + M) * 100%, где N

- количество исходных пакетов данных, M - количество дополнительных/избыточных пакетов данных.

[0023] Видеопоток представляет из себя сжатое видео с помощью одного из выбранных видеокодеков, например: h264, h265, VP8, VP9 и др. Одним из ключевых параметров кодирования/сжатия видео является битрейт. Чем выше битрейт, тем выше качество. Битрейт (от англ. bitrate) — количество бит, используемых для передачи/обработки данных в единицу времени. С помощью данного показателя измеряется эффективность скорости передачи потока данных по сетевому каналу, то есть минимального размера канала, который сможет пропустить этот поток без задержек.

[0024] Начальный битрейт Bstart может быть определен на основе данных о тарифе провайдера или выбран исходя из используемого кодека, видеоматериала и параметров кодирования.

[0025] Всегда можно оценить (объективно - PSNR, MSE, SSIM или субъективно) достаточен ли данный битрейт для получения “качественной картинки” по исходному, не сжатому видео в условиях неизменности других параметров кодирования. Другими словами с помощью такого рода оценок можно понять, что для определенного рода видеоматериала и определенных параметров кодирования подходит выбранный показатель битрейта или нет для получения “качественной картинки”. Для этого необходимо определить минимальный битрейт Bmin, который дает данную “качественную картинку”. [0026] Поскольку в указанном примере видеопоток может представлять собой компьютерную игру, выполняемую на удалённой облачной платформе и транслируемой на устройство пользователя для выполнения с его стороны игрового процесса, то кадры видео формируются не сразу, а с течением времени. Также, учитывая что задержка при игре должна быть сведена к минимуму, сформированные кадры кодируются “на лету” и сразу отправляются пользователю.

[0027] Таким образом, при транслировании игрового видеопотока данные отправляются в определенные моменты времени, через примерно равные промежутки времени, исходя из выбранного режима FPS. На этапе (102) на основании данных, определенных на этапе (101), осуществляется выбор интервала отправки данных в сеть MSavg = 1000 / FPS (интервал в миллисекундах). При этом количество пакетов в каждой такой отправке можно оценить по среднему размеру закодированного кадра. Разбиение кадра на пакеты происходит с учетом PathMTU (определение максимального размера полезного блока данных одного пакета (англ. payload), который может быть передан протоколом без фрагментации). Значение PathMTU необходимо, чтобы избежать фрагментирования пакетов при транспортировке по сети (лишняя задержка и нагрузка). Также на этапе (102) определяется среднее количество пакетов в кадре (в каждой отдельной отправке) для определенного битрейта и FPS - Navg.

[0028] Видеопоток транслируется на этапе (103) на устройство пользователя с параметрами, определенными на этапах (101) – (102). Передача данных осуществляется в течение S секунд с выбранными параметрами Navg и MSavg.

[0029] По приемке кадра на стороне пользователя всегда можно оценить сколько пакетов в кадре отсутствовало. Без использования FEC потеря даже одного пакета ведет к полной несборке кадра, в общем случае, и искажениям в видеопотоке, который видит пользователь. Для получения “качественной картинки” все или почти все кадры должны быть собраны и декодированы на стороне пользователя (зависит от используемого видеокодека, параметров кодирования и типа используемого декодера). Процент потерь пакетов в кадре можно обозначить как - Lкадр%. При этом для получения “качественной картинки” необходимо задать пороговое значение минимального количества кадров - Rmin%, которые должны быть полностью собраны на стороне пользователя от общего числа переданных кадров.

[0030] На этапе (104) для каждого передаваемого кадра на устройство пользователя вычисляются потери пакетов. Определяется сколько процентов кадров были полностью собрано - R%. Если R% >= Rmin% (этап 105), то сеть можно считать “качественной” при использовании битрейта Bstart для облачных игр (этап 106), что позволяет продолжить транслирование потока с установленными изначально параметрами.

[0031] Если на этапе (105) происходит определение того, что R% < Rmin%, т.е. количество собранных кадров менее минимального установленного порогового значения, то переходят к этапу (107), на котором выполняется расчет уровня избыточности для дальнейшего транслирования видеопотока с компенсацией потерь кадров (108) или выполненяется корректировка битрейта передаваемого видеопотока.

[0032] На Фиг. 1Б представлена последовательность шагов этапа (107). На первом шаге (1071) осуществляется ранжирование переданных кадров на устройство пользователя по потерям пакетов и определяют по меньшей мере один кадр (шаг 1072), для которого не выполняется условие полной его сборки на устройстве пользователя. Кадры упорядочиваются по проценту потерь пакетов Lкадр% в порядке возрастания для определения границы, левее которой находится Rmin% кадров, вследствие чего определяется граничащий кадр и процент потерь пакетов в нем - Lкадр.гр%.

[0033] Если Lкадр.гр% = 100%, то мы не можем обеспечить “качественную картинку” и необходимо скорректировать Bstart на заданную величину. .

[0034] На шаге (1073) для граничащего кадра определяется уровень избыточности FEC% на основании количества потерянных пакетов и алгоритма FEC, как % необходимого

заполнения с помощью FEC, который был бы необходим для компенсации потерь Lкадр.гр%. Данный расчет выполняется по формуле:

FEC% = (100 / (100 - Lкадр.гр%) - 1) * 100% (1).

[0035] Затем определяется сколько бы заняла избыточность FEC% от начального битрейта Bstart, если бы она использовалась, по формуле:

Bfec = Bstart * FEC% / 100% (2).

Исходя из значения Bfec на этапе (1074) осуществляется расчет реального полезного битрейта Buseful по формуле:

Buseful = Bstart – Bfec (3).

[0036] Если показатель Buseful >= Bmin, то возможно обеспечить “качественную картинку” при транслировании видеопотока с параметрами, определенными на этапе (101), при условии компенсации потерь пакетов в кадрах видеопотока определенным уровнем избыточности (108). В случае, когда Buseful < Bmin на этапе (1076) выполняется корректировка начального битрейта Bstart на заданную величину корректировки Bstep с дальнейшим итеративным повторением цикла способа с этапа (101). Величина Bstep выбирается произвольно и может представлять собой несколько сотен Кбит или несколько Мбит. Размер величины Bstep выбирается исходя из необходимости точности корректировки скорости передачи видеопотока.

[0037] Таким образом, с помощью адаптивной коррекции битрейта осуществляется возможность трансляции видеопотока с оптимальным качеством, исходя из возможности пропускной способности канала передачи данных пользователя. Корректировка стартового битрейта осуществляется по формуле: Bstart = Bstart – Bstep.

[0038] Если по итогу расчетов Bstart < Bmin, то трансляция видеопотока с обеспечением должного качества изображения невозможна, ввиду плохой пропускной способности сети.

[0039] На Фиг. 2А представлен пример совокупности элементов в рамках осуществления заявленного изобретения. Трансляция потока осуществляется по запросу клиентского (пользовательского) устройства (220), который направляется на сервер (210) для осуществления процесса проверки пропускной способности сети с помощью выполнения способа (100) и передачи видеопотока с заданными параметрами. Видеопоток транслируется в виде группы кадров (211) – (214) в заданный временной промежуток, что позволяет оценить возможность пропускной способности канала передачи данных (230) для передачи видеоданных с наилучшими параметрами для клиентского устройства (220), в частности, при передаче данных по глобальной сети Интернет.

[0040] Как показано на Фиг. 2Б, кадр (211) состоит из пакетов (2111), которые формируют его изображение. Как показано на Фиг. 2В, кадры, передаваемые от сервера

(211) – (214) проверяются на их целостность при получении клиентским устройством (220). Соответствующие кадры (221) – (224) анализируются на предмет потери пакетов в их составе. Как показано на примере, кадры (223) – (224) имеют потери пакетов при установленных начальных настройках транслирования видеопотока.

[0041] Как видно на Фиг. 2Г анализ кадров (223) – (224), полученных клиентским устройством (220) фиксирует потерю пакетов в каждом из них. По итогу ранжирования потерь пакетов (2231) – (2241) на Фиг. 2Д показан пример выявления граничащего кадра на основании Rmin% для последующего расчета уровня избыточности.

[0042] На основании потери пакетов, как показано на Фиг. 2Е, для граничащего кадра вычисляется уровень избыточности FEC для компенсации потерь и последующей корректировки установленного первично битрейта.

[0043] На Фиг. 3 представлен общий пример вычислительного компьютерного устройства (300), которое может применяться для реализации вычислительных устройств, входящих в настоящее изобретение. На базе устройства (300) может выполняться устройство пользователя (220) и сервер (210). Компоненты устройства (300), как правило, сопряжены посредством общей шины передачи данных.

[0044] В общем случае устройство (300) содержит такие компоненты, как: один или более процессоров (301), по меньшей мере одну оперативную память (302), средство постоянного хранения данных (303), интерфейсы ввода/вывода (304), средство В/В (305), средства сетевого взаимодействия (306).

[0045] Процессор (301) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (300) или функционала одного или более его компонентов. Процессор (301) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (302).

[0046] Память (302), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал. Средство хранения данных (303) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (303) позволяет выполнять долгосрочное хранение различного вида информации, например, истории обработки запросов (логов), идентификаторов пользователей, звуковые файлы и т.п.

[0047] Интерфейсы (304) представляют собой стандартные средства для подключения и работы различного вида устройств (300), например, USB, RS232, RJ45, LPT, COM, HDMI,

PS/2, Lightning, FireWire и т.п. Выбор интерфейсов (304) зависит от конкретного исполнения устройства (300), которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.

[0048] В качестве средств В/В данных (305) может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.

[0049] Средства сетевого взаимодействия (306) выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi- Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средства (306) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.

[0050] В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.

1. Компьютерно-реализуемый способ оценки пропускной способности сети при транслировании видеосигнала, выполняемый с помощью процессора и содержащий этапы, на которых:

a) определяют стартовый максимальный битрейт, минимальный полезный битрейт, частоту кадров (FPS) для передачи видеосигнала на устройство пользователя и алгоритм прямой коррекции ошибок (FEC);

b) определяют среднее количество пакетов в кадре и интервал передачи кадров видеосигнала на основании стартового битрейта и FPS;

c) осуществляют передачу видеосигнала на устройство пользователя с определенными параметрами на этапах a) и b) в заданный промежуток времени;

d) определяют для каждого переданного кадра потери пакетов при их доставке до пользовательского устройства;

e) определяют количество полностью собранных кадров видеосигнала на устройстве пользователя, при этом,

f) если количество собранных кадров больше или равно минимального установленного количества собранных кадров, определяемого на основании стартового битрейта и FPS, то определяют пропускную способность сети, как достаточную для транслирования видеосигнала с параметрами, определенными на этапе a), в противном случае выполняют следующие этапы:

g) ранжируют переданные кадры на устройство пользователя по потерям пакетов и определяют по меньшей мере один кадр, для которого не выполняется условие полной его сборки на устройстве пользователя;

h) определяют уровень избыточности, необходимый для компенсации потерь пакетов для упомянутого кадра, определенного на этапе g), на основании количества потерянных пакетов и алгоритма FEC;

i) определяют величину полезного битрейта на основании уровня избыточности и осуществляют сравнение с минимальным полезным битрейтом, при этом если величина полезного битрейта выше величины минимально полезного битрейта, то определяют пропускную способность сети, как достаточную для транслирования видеосигнала с параметрами, определенными на этапе a) и определенным уровнем избыточности на этапе h), в противном случае

j) осуществляют корректировку стартового битрейта и итеративно выполняют шаги a)–f).

2. Способ по п.1, характеризующийся тем, что первичный битрейт определяют на основании по меньшей мере одно из: видеоматериал, кодек, параметры кодирования, параметры тарифного плана.

3. Способ по п.1, характеризующийся тем, что видеосигнал представляет собой интерактивную игровую трансляцию.

4. Способ по п.1, характеризующийся тем, что алгоритм FEC применяется для компенсации потерь пакетов при сборке кадров на устройстве пользователя.

5. Способ по п.1, характеризующийся тем, что величина корректировки битрейта представляет собой заранее заданное значение.

6. Система транслирования видеосигнала по сети, содержащая по меньшей мере один процессор и по меньшей мере одно запоминающее устройство, хранящее машиночитаемые инструкции, которые при их исполнении процессором выполняют способ по любому из пп. 1-5.



 

Похожие патенты:
Наверх