Алгоритм согласования видеопотока для платформы облачных игр Loudplay Российский патент 2021 года по МПК H04N21/238 H04N21/274 H04N21/462 H04N21/65 A63F13/355 

Описание патента на изобретение RU2758985C1

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

В настоящее время большое количество людей сталкиваются с проблемой низкой производительности персонального компьютера при запуске новых компьютерных игр или ресурсоемких графических приложений, например для дизайна/СAD систем. Стоимость современного мощного компьютера составляет около 1000-1500$, и на многих развивающихся рынках является предметом роскоши. Апгрейд компьютера технически не всегда возможен и требует специальных знаний и наличия свободного времени.

Практически во всех сферах потребительской электроники борьба за производительность аппаратного обеспечения заканчивается. Это уже случилось в игровых приставках, происходит в смартфонах и в домашних компьютерах. Развитие сетей передачи данных ведет к смене модели потребления (от покупки локальной мощности на подписку на облачные ресурсы). Например, доступность передачи данных привела к активному развитию и удешевлению сервисов облачного хранения данных. Уже сейчас для потребителей не так важен большой внутренний объем памяти смартфона, так как есть облачные хранилища, куда можно загрузить свои видеозаписи и фотографии.

Главная аппаратная проблема пользовательских устройств на сегодняшний день - это работа с графическими вычислениями. Раньше переносу этого процесса в облако мешали ограничения в сети передачи данных. Сегодня эти проблемы решены в фиксированных широкополосных сетях передачи данных и мобильных сетях 5G.

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

В настоящее время известны различные способы и системы для реализации компьютерных игр для компьютеров различной мощности. Наиболее близкими аналогами являются сервисы Playgiga (см. https://www.playgiga.com/), GeForce Now (см. https://gfn.ru/). Недостатками которых являются ограничения по количеству поддерживаемых игр и приложений.

Задачей представленной группы изобретений является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники с достижением технического результата в виде обеспечения возможности одновременного уменьшения времени задержки обработки графического изображения и увеличения производительности системы, то есть осуществление удаленной обработки и визуализации изображения с низкой задержкой, в повышении эффективности распределения задач между серверами центров обработки данных, в обеспечении снижения вероятности потери пакетов на сети до 30% и увеличения битрейта (bitrate) видеопотока на 13-15%, в снижении внутренних задержек платформы и повышении качества картинки, разрешения (вплоть до 4К) и увеличении частоты кадров (FPS) до 120, в обеспечении исключения взаимовлияния клиентских сессий, что позволяет существенно увеличить количество одновременных пользователей, использующих один сервер, и позволяет гибко настраивать конфигурацию виртуального ПК для каждого пользователя, в обеспечении возможности пользователей, подключенным к сети интернет запускать любые ресурсоемкие игры или приложения на слабых персональных компьютерах, смартфонах и планшетах или других устройствах и таким образом не покупать новый или не усовершенствовать устаревший компьютер, а также в сокращении энергопотребления батареи смартфона до 30-40% по сравнению с энергопотреблением при использовании нативных приложений Андроид-смартфона.

Для достижения вышеуказанного технического результата заявлена группа изобретений, включающая:

платформу виртуализации и стриминга приложений и компьютерных игр, включающую:

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

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

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

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

при этом клиент принимает управляющие команды от устройства ввода и передает их на сервер,

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

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

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

при этом при автоматической настройке параметров видеопотока и параметров пользовательского устройства, изменение битрейта (bitrate) или частоты кадров видеопотока (FPS) происходит на серверной стороне без прерывания видеопотока, причем при определенном нижнем пороге битрейта (bitrate) и частоты кадров видеопотока (FPS), происходит автоматическое изменение разрешения изображения на сервере, что соответственно изменяет масштаб изображения на клиенте,

при этом автоматическая настройка параметров видеопотока и параметров пользовательского устройства включает алгоритм согласования видеопотока, основывающийся на расчете кругового времени передачи видеокадра (RTTV) и замеров битрейта видеопотока передаваемого сервером (L) и получаемого клиентом (М).

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

при этом на основании измерения RTTV производится адаптация параметров энкодера (bitrate, FPS) и разрешения картинки видеопотока, позволяющая на ранних стадиях выявлять перегруженность канала передачи данных или клиентского устройства и не допускать увеличения значений RTTV во время игровой сессии, при снижении или увеличении пропускной способности канала передачи данных или изменениях в производительности клиентского устройства алгоритм позволяет быстро найти значение битрейта видеопотока, которое будет равно или немного ниже значения оптимального значения пропускной способности канала передачи данных в текущих условиях. Это обеспечивает максимально возможное качество картинки при низких задержках отклика. Оптимальное значение пропускной способности канала передачи данных (OOP) обеспечивается тогда, когда значение битрейта видеопотока, транслируемого сервером является максимально возможным в текущих условиях и равно значению битрейта видеопотока, принимаемого клиентом. Причем замеры значений битрейта видопотока, передаваемого сервером и принимаемого клиентом должны производиться в один интервал времени (Схема роста значений видеопотока и 3 фазы роста).

При этом в случае возникновения перегрузки на сети передачи данных, когда значение параметра битрейта видеопотока (L), передаваемого сервером выше, чем значение битрейта видеопотока (М), получаемого клиентом, производится расчет разницы значений видеопотоков (S),

алгоритм согласования видеопотока переходит в режим перегрузки при выполнении одновременно двух условий:

1) S>0;

2) Значение RTTV за последний измеренный интервал времени больше предыдущего рассчитанного значения RTTV,

в режиме перегрузки значение битрейта, передаваемого с сервера на клиент начинает снижаться, причем во-избежание излишней чувствительности алгоритма при принятии решения о снижении значения битрейта видеопотока, передаваемого сервером, принимается во внимание история поведения видеопотока за предыдущие интервалы измерений,

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

1) S=0

2) Значение RTTV за последний измеренный интервал времени меньше или равно значению произведенного замера RTTV за предыдущий интервал времени.

В течение нескольких интервалов времени происходит плавное повышение битрейта видеопотока, транслируемого сервером вплоть до достижения (OOP), при достижении значения OOP принимается во внимание история поведения канала передачи данных за прошедшее время, что позволяет ускорить процесс достижения OOP,

где

OOP - Optimal Operating Point;

OOP = inflight = L*RTTV;

Inflight - нативный параметр стека протоколов tcp/ip, показывающий количество отправленных в сеть неподтвержденных клиентом пакетов данных;

причем декодирование изображения на клиенте производится с использованием центрального процесса или с использованием графической карты или аппаратного декодера устройства пользователя,

- географически распределенную систему управления серверами, модулем хранения и управления пользовательских данных, мониторингом серверов и пользовательских клиентов, статистическими данными, оплатой, администрированием, модулем интеграции с внешними партнерами, при этом географически распределенная система управления реализована посредством зарезервированной микросервисной архитектуры.

при этом для минимизации вклада задержки видеопотока при его трансляции от сервера до клиента определяется понятие кругового времени передачи видеофрейма (RTTV);

машинореализуемый способ виртуализации и стриминга (ресурсоемких) приложений и компьютерных игр посредством платформы виртуализации и стриминга приложений и компьютерных игр, содержащий этапы:

- по меньшей мере один пользователь запускает на своем пользовательском устройстве клиентское приложение, клиентское приложение формирует изображение, которое производится на сервере виртуализации,

клиентское приложение проводит предварительный анализ состояния канала передачи данных от клиента до сервера, анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства, при проведении анализа мощности пользовательского устройства и состояния канала передача данных от клиента до сервера,

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

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

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

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

причем прием, декодирование и отображение видеопотока для пользователя производится на клиентском приложении;

автоматическая настройка параметров видеопотока - битрейта (bitrate) и частоты кадров (FPS) на протяжении всего времени стриминга видео от сервера на клиентское устройство,

причем при определенном нижнем пороге битрейта (bitrate) и частоты кадров (FPS) видеопотока, происходит автоматическое изменение разрешения изображения на сервере, что соответственно изменяет масштаб изображения на клиенте, прием управляющих команд на клиенте от устройств ввода и их передача на сервер через сеть передачи данных,

причем способ содержит алгоритм согласования видеопотока, при котором отсчет кругового времени передачи видеокадра (RTTV) отсчитывается с момента передачи видеокадра в энкодер на серверной стороне до момента отрисовки видеокадра на клиентской стороне и включает в себя все процессы связанные с энкодированием видеокадра, передачей видеокадра через сеть передачи данных, декодированием видеокадра на клиентской стороне и его отрисовкой, причем на основании измерения RTTV производится адаптация параметров энкодера (bitrate, FPS) и разрешения картинки видеопотока,

при этом в случае возникновения перегрузки на сети передачи данных, когда значение параметра битрейта видеопотока, передаваемого сервером (L) выше, чем значение битрейта видеопотока, получаемого клиентом (М), производится расчет разницы значений видеопотоков (S),

алгоритм согласования видеопотока переходит в режим перегрузки при выполнении одновременно двух условий:

1) S>0;

2) Значение RTTV за последний измеренный интервал времени больше предыдущего рассчитанного значения RTTV,

в режиме перегрузки значение битрейта, передаваемого с сервера на клиент начинает снижаться, причем во избежание излишней чувствительности алгоритма при принятии решения о снижении значения битрейта видеопотока передаваемого сервером принимается во внимание история поведения видеопотока за предыдущие интервалы измерений.

Алгоритм согласования видеопотока переходит в режим проактивного исследования и нахождения более высоких значений битрейта передаваемого с сервера видеопотока в случае стабильного состояния канала передачи данных и стабильной производительности клиентского устройства, то есть выполнения следующих условий:

1) S=0

2) Значение RTTV за последний измеренный интервал времени меньше или равно значению произведенного замера RTTV за предыдущий интервал времени.

В течение нескольких интервалов времени происходит плавное повышение битрейта видеопотока, транслируемого сервером вплоть до достижения (OOP), при достижении значения OOP принимается во внимание история поведения канала передачи данных за прошедшее время, что позволяет ускорить процесс достижения OOP,

где

OOP - Optimal Operating Point;

OOP = inflight = L*RTTV;

Inflight - нативный параметр стека протоколов tcp/ip, показывающий количество отправленных в сеть неподтвержденных клиентом пакетов данных.

Разработанный алгоритм согласования видеопотока для платформы облачных игр Loudplay, основывающегося на протоколе пользовательских датаграмм (UDP) обеспечивает максимально возможное качество картинки при низких задержках отклика.

При этом пользовательское устройство представляет собой телефон, планшет, пк, телевизионную приставку с различными операционными системами. При этом устройство ввода представляет собой клавиатуру, мышку, игровые джойстики, манипуляторы, сенсорный экран. При этом захват и кодирование изображения видеоигры или приложения в транспортный видеопоток Н.264 или Н.265 производится с использованием графической карты, установленной в сервере, захват производится в памяти графической карты, кодирование производится с использованием чипа графической карты, функционалом которого является захват и упаковка изображения в транспортный видеопоток h.264 и h.265. При этом канал передачи данных от сервера к клиенту использует технологию мобильной передачи данных 4G или 5G. При этом запрос ключевого кадра (I-frame) в транспортном видеопотоке h.246 и h.265 клиентом на сервере производится только при первоначальном подключении или при возникновении больших потерь на канале передачи данных (40-60%). При этом по меньшей мере один сервер, на котором запускается компьютерная игра или приложение, принимающий управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняющий программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения, при этом приложение или игра запускаются на сервере в среде виртуализации, которая позволяет разделить друг от друга пользовательские приложения и игры, исключив их взаимовлияние, кроме того, каждому пользователю среда виртуализации выделяет отдельный виртуальный компьютер, на котором пользователь работает с приложением или играет в игру, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере, при этом по меньшей мере один сервер использован в архитектуре multi-access edge computing, при этом в архитектуре multi-access edge computing (МЕС) два или более серверов могут быть объединены с использованием системы software-defined storage (sds). При этом запускаемые приложения представляют собой ресурсоемкие приложения. При этом изменение параметров видеопотока (bitrate, fps и разрешение экрана) выполняются на основе прогноза нейросети. причем обучение нейросети производится на основе собираемых данных пользовательских сессий (производительность сервера, производительность сети передачи данных, производительность пользовательского устройства, тип игры) и субъективной оценки качества игрового процесса.

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

- регистрация новых пользователей, авторизация существующих пользователей;

- проверка соединения с несколькими игровыми серверами и выбор ближайшего игрового сервера;

- реализация демо-режима (доступ абонентов к игровой демо-сессии с ограничением по времени без предварительной оплаты);

- возможность выбора различных конфигураций сервера и выбора соответствующего тарифа. Оплата аренды облачного сервера.

- проверка качества соединения пользователя на всем интервале игровой сессии и, в случае минимально допустимого значения, уведомления об этом пользователя:

- поддержка функции адаптивного изменения параметров видеопотока, меняющего параметры видеопотока - битрейт (bitrate) и частоту кадров (FPS) трансляции в зависимости от возможностей интернет-подключения пользователя;

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

- поддержка статистики и анализа времени, проведенного пользователям в различных приложениях и играх;

- возможность гибкой модификации пользовательского интерфейса;

- обеспечение защиты от перехвата команд с пользовательского устройства;

- хранение данных пользователя (приложения, файлы, игры);

- обеспечение круглосуточного мониторинга технического состояния компонентов платформы;

- заявленная технология обеспечивает минимальную задержку, незаметную для конечного игрока;

- функционирование системы в режиме 24×7 и доступности не менее 99.97%.

На фиг. 1 под следующими обозначениями представлено описание модулей платформы:

поз. 1 - Серверная часть платформы;

поз. 2 - Система виртуализации серверной части платформы;

поз. 3 - Гостевая операционная система/виртуальная машина;

поз. 4 - Дисковое пространство для хранения данных гостевой операционной системы;

поз. 5 - Модуль, отвечающий за сбор и агрегацию статистических данных по работе платформы и продукта, а также отвечающий за мониторинг работоспособности технической части платформы и бизнес показателей продукта;

поз.6 - Модуль биллинга и управления виртуальной инфраструктурой. Хранилище профилей клиентов и аутентификационных данных;

поз. 7 - Игровая витрина сервиса. Содержит описание сервиса для пользователей и вход в личный кабинет;

поз. 8 - Модуль, отвечающий за прием платежей от пользователей;

поз. 9 - Модуль, обеспечивающий разделение инфраструктуры от сети интернет;

поз. 10 - Игра или приложение, запущенное на гостевой виртуальной машине;

поз. 11 - Модуль захвата, энкодирования и стриминга изображения;

поз. 12 - Модуль перехвата сигналов управления, передающихся от клиентской части платформы;

поз. 13 - Клиентская часть платформы;

поз. 14 - Пользовательское устройство (ПК, планшет, смартфон, телевизионная приставка);

поз. 15 - Программное обеспечение, установленное на пользовательском устройстве, обеспечивающее авторизацию и аутентификацию клиента;

поз. 16 - Программное обеспечение, установленное на пользовательском устройстве, обеспечивающее прием видеопотока со стороны платформы, а также передачу сигналов управления на серверную часть;

поз. 17 - Регистрация и авторизация пользователей;

поз. 18 - Проверка параметров канала передачи данных;

поз. 19 - Передача видеопотока;

поз. 20 - Передача сигналов управления.

Дополнительные возможности платформы виртуализации и стриминга приложений и компьютерных игр:

- платформа позволяет быстро развернуть публичное или частное облако для организации виртуальных рабочих мест для предприятий;

- заявленная технология позволяет реализовать рекламную модель повышения конверсии в скачивание/покупку приложений и игр, используя технологию стриминга ресурсоемких игр и приложений в WEB-браузер ПК или смартфон;

- платформа позволяет транслировать 3D (стереоскопическое) изображение для просмотра на телевизоре или мониторе, поддерживающем функцию 3DTV, а также на 3D-очках;

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

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

Используемая терминология.

Стриминг (англ. streaming) - передача изображения через сеть передачи данных.

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

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

(от англ. bitrate) - количество бит, используемых для передачи/обработки данных в единицу времени. Битрейт принято использовать при измерении эффективной скорости передачи потока данных по каналу, то есть минимального размера канала, который сможет пропустить этот поток без задержек.

Похожие патенты RU2758985C1

название год авторы номер документа
Алгоритм применения избыточности данных для платформы облачных игр Loudplay 2021
  • Панферов Сергей Алексеевич
  • Стародубов Виталий Юрьевич
  • Магафуров Игорь Геннадьевич
RU2785897C1
СПОСОБ И СИСТЕМА ОЦЕНКИ ПРОПУСКНОЙ СПОСОБНОСТИ СЕТИ ПРИ ТРАНСЛИРОВАНИИ ВИДЕОСИГНАЛА 2020
  • Черников Кирилл Викторович
  • Соловьев Александр Сергеевич
  • Варанкин Иван Владимирович
RU2732786C1
МЕХАНИЗМЫ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ НА ОСНОВЕ КАМЕРЫ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ УСТАНОВЛЕННЫХ НА ГОЛОВЕ ДИСПЛЕЕВ 2014
  • Стэффорд Джеффри Роджер
RU2661857C2
СИСТЕМЫ И СПОСОБЫ ОБЛАЧНОЙ ОБРАБОТКИ И НАЛОЖЕНИЯ СОДЕРЖИМОГО НА ПОТОКОВЫЕ ВИДЕОКАДРЫ УДАЛЕННО ОБРАБАТЫВАЕМЫХ ПРИЛОЖЕНИЙ 2013
  • Перри Дэвид
  • Перейра Руй Филипе Андраде
  • Раймон Ноам
RU2617914C2
СИСТЕМА И СПОСОБ СЖАТИЯ МУЛЬТИТИПОТОКОВОГО ВИДЕО С ИСПОЛЬЗОВАНИЕМ МНОЖЕСТВА ФОРМАТОВ КОДИРОВАНИЯ 2010
  • Перлман Стефен Г.
  • Ван Дер Лан Роджер
  • Коттер Тимоти
  • Ферман Скотт
  • Маккул Роберт
  • Бакли Ян
RU2524845C2
СИСТЕМА И СПОСОБ СЖАТИЯ МУЛЬТИПОТОКОВОГО ВИДЕО 2010
  • Перлман Стефен Г.
  • Ван Дер Лан Роджер
  • Коттер Тимоти
  • Ферман Скотт
  • Маккул Роберт
  • Бакли Ян
RU2528152C2
СИСТЕМА ДЛЯ ПРОВЕДЕНИЯ СОВМЕСТНЫХ КОНФЕРЕНЦИЙ С ИСПОЛЬЗОВАНИЕМ ИНТЕРАКТИВНОГО ПОТОКОВОГО ВИДЕО 2008
  • Перлман Стефен Г.
  • Ван Дер Лан Роджер
RU2504908C2
СИСТЕМА И СПОСОБ УСКОРЕННОГО ПЕРЕКЛЮЧЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ МАШИНЫ 2010
  • Бакли Ян
  • Маккул Роберт
  • Ферман Скотт
  • Коттер Тимоти
  • Ван Дер Лан Роджер
  • Перлман Стефен Г.
RU2524850C2
СПОСОБ И УСТРОЙСТВО ВРЕМЕННОГО ДЕКОДЕРА 2010
  • Перлман Стефен Г.
  • Ван Дер Лан Роджер
  • Коттер Тимоти
  • Ферман Скотт
  • Маккул Роберт
  • Бакли Ян
RU2525441C2
СИСТЕМА СЖАТИЯ ВИДЕО И СПОСОБ КОМПЕНСАЦИИ ДЛЯ ОГРАНИЧЕНИЯ ПОЛОСЫ ПРОПУСКАНИЯ КАНАЛА СВЯЗИ 2008
  • Перлман Стефен Г.
  • Ван Дер Лан Роджер
RU2501180C2

Иллюстрации к изобретению RU 2 758 985 C1

Реферат патента 2021 года Алгоритм согласования видеопотока для платформы облачных игр Loudplay

Группа изобретений относится к области компьютерной техники и сетевых технологий, в частности к обработке задач в облачном сервисе. Техническим результатом является уменьшение времени задержки обработки графических изображений на клиентском устройстве. Предложена платформа виртуализации и стриминга приложений и компьютерных игр. Платформа содержит по меньшей мере один сервер, по меньшей мере одного клиента, географически распределенную систему управления серверами, модулем хранения и управления пользовательских данных, мониторингом серверов и пользовательских клиентов, статистическими данными, оплатой, администрированием, модулем интеграции с внешними партнерами, при этом географически распределенная система управления реализована посредством зарезервированной микросервисной архитектуры. На сервере запускается компьютерная игра или приложение, принимающем управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняющем программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения. При этом происходит непрерывная передача транспортного видеопотока в режиме реального времени на клиентское устройство. 2 н. и 13 з.п. ф-лы, 1 ил.

Формула изобретения RU 2 758 985 C1

1. Платформа виртуализации и стриминга приложений и компьютерных игр, включающая

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

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

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

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

при этом клиент принимает управляющие команды от устройства ввода и передает их на сервер,

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

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

при этом при автоматической настройке параметров видеопотока и параметров пользовательского устройства изменение битрейтра (bitrate) или частоты кадров видеопотока (FPS) происходит на серверной стороне без прерывания видеопотока, причем при определенном нижнем пороге битрейта (bitrate) и частоты кадров видеопотока (FPS) происходит автоматическое изменение разрешения изображения на сервере, что соответственно изменяет масштаб изображения на клиенте,

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

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

при этом в случае возникновения перегрузки на сети передачи данных, когда значение параметра битрейта видеопотока (L), передаваемого сервером выше, чем значение битрейта видеопотока (М), получаемого клиентом, производится расчет разницы значений видеопотоков (S),

алгоритм согласования видеопотока переходит в режим перегрузки при выполнении одновременно двух условий:

1) S>0;

2) значение RTTV за последний измеренный интервал времени больше предыдущего рассчитанного значения RTTV,

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

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

1) S=0;

2) значение RTTV за последний измеренный интервал времени меньше или равно значению произведенного замера RTTV за предыдущий интервал времени,

в течение нескольких интервалов времени происходит плавное повышение битрейта видеопотока, транслируемого сервером вплоть до достижения (OOP), при достижении значения OOP принимается во внимание история поведения канала передачи данных за прошедшее время, что позволяет ускорить процесс достижения OOP,

где

OOP - Optimal Operating Point;

OOP = inflight = L*RTTV;

Inflight - нативный параметр стека протоколов tcp/ip, показывающий количество отправленных в сеть неподтвержденных клиентом пакетов данных;

причем декодирование изображения на клиенте производится с использованием центрального процесса или с использованием графической карты или аппаратного декодера устройства пользователя,

- географически распределенную систему управления серверами, модулем хранения и управления пользовательских данных, мониторингом серверов и пользовательских клиентов, статистическими данными, оплатой, администрированием, модулем интеграции с внешними партнерами, при этом географически распределенная система управления реализована посредством зарезервированной микросервисной архитектуры,

при этом для минимизации вклада задержки видеопотока при его трансляции от сервера до клиента определяется понятие кругового времени передачи видеофрейма (RTTV).

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

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

4. Платформа виртуализации и стриминга приложений и компьютерных игр по п. 1, отличающаяся тем, что

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

- захват производится из видеопамяти графической карты, кодирование производится с использованием чипа графической карты, функционалом которого является захват и упаковка изображения в транспортный видеопоток h.264 и h.265.

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

6. Платформа виртуализации и стриминга приложений и компьютерных игр по п. 1 или 4, отличающаяся тем, что запрос ключевого кадра (I-frame) в транспортном видеопотоке h.246 и h.265 клиентом на сервере производится только при первоначальном подключении или при возникновении больших потерь на канале передачи данных (40-60%).

7. Платформа виртуализации и стриминга приложений и компьютерных игр по п. 1 или 4, отличающаяся тем, что содержит:

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

при этом по меньшей мере один сервер использован в архитектуре multi-access edge computing (МЕС),

при этом в архитектуре multi-access edge computing (МЕС) два или более серверов могут быть объединены с использованием системы software-defined storage (sds).

8. Платформа виртуализации и стриминга приложений и компьютерных игр по п. 1, отличающаяся тем, что запускаемые приложения представляют собой ресурсоемкие приложения.

9. Платформа виртуализации и стриминга приложений и компьютерных игр по п. 1, отличающаяся тем, что изменения параметров видеопотока (bitrate, fps и разрешение экрана) выполняются на основе прогноза нейросети, причем обучение нейросети производится на основе собираемых данных пользовательских сессий (производительность сервера, параметры сети передачи данных, производительность пользовательского устройства, типа игры) и субъективной оценки качества игрового процесса.

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

- по меньшей мере один пользователь запускает на своем пользовательском устройстве клиентское приложение, клиентское приложение отображает изображение, которое производится на сервере виртуализации,

клиентское приложение проводит предварительный анализ состояния канала передачи данных от клиента до сервера, анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства, при проведении анализа мощности пользовательского устройства и состояния канала передачи данных от клиента до сервера,

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

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

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

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

причем прием, декодирование и отображение видеопотока для пользователя производится на клиентском приложении;

автоматическая настройка параметров видеопотока - битрейта (bitrate) - и частоты кадров (FPS) на протяжении всего времени стриминга видео от сервера на клиентское устройство,

причем при определенном нижнем пороге битрейта (bitrate) и частоты кадров (FPS) видеопотока происходит автоматическое изменение разрешения изображения на сервере, что соответственно изменяет масштаб изображения на клиенте, прием управляющих команд на клиенте от устройств ввода и передача их на сервер через сеть передачи данных,

причем способ содержит алгоритм согласования видеопотока, при котором отсчет кругового времени передачи видеокадра (RTTV) отсчитывается с момента передачи видеокадра в энкодер на серверной стороне до момента отрисовки видеокадра на клиентской стороне и включает в себя все процессы, связанные с энкодированием видеокадра, передачей видеокадра через сеть передачи данных, декодированием видеокадра на клиентской стороне и его отрисовкой, причем на основании измерения RTTV производится адаптация параметров энкодера (bitrate, FPS) и разрешения картинки видеопотока,

при этом в случае возникновения перегрузки на сети передачи данных, когда значение параметра битрейта видеопотока, передаваемого сервером (L) выше, чем значение битрейта видеопотока, получаемого клиентом (М), производится расчет разницы значений видеопотоков (S),

алгоритм согласования видеопотока переходит в режим перегрузки при выполнении одновременно двух условий:

1) S>0;

2) значение RTTV за последний измеренный интервал времени больше предыдущего рассчитанного значения RTTV,

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

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

1) S=0;

2) значение RTTV за последний измеренный интервал времени меньше или равно значению произведенного замера RTTV за предыдущий интервал времени,

в течение нескольких интервалов времени происходит плавное повышение битрейта видеопотока, транслируемого сервером вплоть до достижения (OOP), при достижении значения OOP принимается во внимание история поведения канала передачи данных за прошедшее время, что позволяет ускорить процесс достижения OOP,

где

OOP - Optimal Operating Point;

OOP = inflight = L*RTTV;

Inflight - нативный параметр стека протоколов tcp/ip, показывающий количество отправленных в сеть неподтвержденных клиентом пакетов данных.

11. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем захват и кодирование изображения видеоигры или приложения в транспортный видеопоток Н.264 или Н.265 с использованием графической карты, установленной в сервере.

12. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем пользовательское устройство представляет собой телефон, планшет, ПК, телевизионные приставки с различными операционными системами.

13. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем устройство ввода представляет собой клавиатуру, мышку, игровые джойстики, манипуляторы, сенсорный экран.

14. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, отличающийся тем, что запускаемые приложения представляют собой ресурсоемкие приложения.

15. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, отличающийся тем, что изменения параметров видеопотока (bitrate, fps и разрешение экрана) выполняются на основе прогноза нейросети, причем обучение нейросети производится на основе собираемых данных пользовательских сессий (производительность сервера, параметры сети передачи данных, производительность пользовательского устройства, типа игры) и субъективной оценки качества игрового процесса.

Документы, цитированные в отчете о поиске Патент 2021 года RU2758985C1

МНОГОРЕЖИМНЫЙ ИГРОВОЙ СЕРВЕР 2014
  • Гарден Эуан Питер
  • Джастис Джон Рэймонд
  • Шарма Мадхумитра
RU2679978C1
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1

RU 2 758 985 C1

Авторы

Панферов Сергей Алексеевич

Стародубов Виталий Юрьевич

Магафуров Игорь Геннадьевич

Даты

2021-11-08Публикация

2020-06-19Подача