RU2785897C1 - Алгоритм применения избыточности данных для платформы облачных игр Loudplay - Google Patents
Алгоритм применения избыточности данных для платформы облачных игр Loudplay Download PDFInfo
- Publication number
- RU2785897C1 RU2785897C1 RU2021139414A RU2021139414A RU2785897C1 RU 2785897 C1 RU2785897 C1 RU 2785897C1 RU 2021139414 A RU2021139414 A RU 2021139414A RU 2021139414 A RU2021139414 A RU 2021139414A RU 2785897 C1 RU2785897 C1 RU 2785897C1
- Authority
- RU
- Russia
- Prior art keywords
- video stream
- game
- application
- redundancy
- user
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000005516 engineering process Methods 0.000 claims abstract description 10
- 238000012937 correction Methods 0.000 claims abstract description 5
- 238000003860 storage Methods 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 230000007423 decrease Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 abstract 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000013475 authorization Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Abstract
Изобретение относится к области вычислительной техники и сетевых технологий. Технический результат заключается в обеспечении возможности одновременного повышения плавности изображения и снижения времени задержки обработки графического изображения до 30%. Технический результат достигается за счет того, что при передаче данных видеопотока от сервера до клиента происходит упреждающая коррекция ошибок путем добавления к передаваемой информации таких дополнительных служебных данных, которые позволяют исправить ошибки без дополнительного запроса, причем на серверной стороне при кодировании данных видеопотока к блоку из m-символов прибавляется 2р проверочных символов, при вычислении каждого проверочного символа используются все m символов исходного блока, поэтому для ускорения процесса декодирования полученных данных на клиенте применяются преобразования Фурье, при этом применяется алгоритм изменения уровня избыточности, зависящий от длительности сессии, типа кадра, типа подключения и текущего состояния канала: запуск стриминг-сессии производится с параметром битрейта видеопотока, равным 10 Мбит/с, в течение первых 30 с сессии добавляется 100% избыточности, необходимые для стабилизации канала передачи данных, по истечении 30 с уровень избыточности в видеопотоке снижается до 20%, за исключением IDR-frame, избыточность на котором всегда остается на уровне 100%. 2 н. и 13 з.п. ф-лы, 3 ил.
Description
Заявленная группа изобретений относится к области компьютерной техники и сетевых технологий, в частности к обработке задач в облачном сервисе.
В настоящее время большое количество людей сталкиваются с проблемой низкой производительности персонального компьютера при запуске новых компьютерных игр или ресурсоемких графических приложений, например для дизайна/CAD систем. Стоимость современного мощного компьютера составляет около 1000-1500$, и на многих развивающихся рынках является предметом роскоши. Апгрейд компьютера технически не всегда возможен и требует специальных знаний и наличия свободного времени.
Практически во всех сферах потребительской электроники борьба за производительность аппаратного обеспечения заканчивается. Это уже случилось в игровых приставках, происходит в смартфонах и в домашних компьютерах. Развитие сетей передачи данных ведет к смене модели потребления (от покупки локальной мощности на подписку на облачные ресурсы). Например, доступность передачи данных привела к активному развитию и удешевлению сервисов облачного хранения данных. Уже сейчас для потребителей не так важен большой внутренний объем памяти смартфона, так как есть облачные хранилища, куда можно загрузить свои видеозаписи и фотографии.
Главная аппаратная проблема пользовательских устройств на сегодняшний день - это работа с графическими вычислениями. Раньше переносу этого процесса в облако мешали ограничения в сети передачи данных. Сегодня эти проблемы решены в фиксированных широкополосных сетях передачи данных и мобильных сетях 5G.
Также происходит регулярная модернизация серверных графических карт, происходит активное развитие технологий виртуализации графических процессоров, разработка и внедрение новых алгоритмов передачи видеопотока, основанных на применении избыточности данных. В сравнении со стандартными протоколами, основанными на перезапросе потерянных данных применение избыточности, существенно повышает качество, плавность и стабильность видеопотока на сетях передачи данных с высокими потерями, например на сетях WIFI.
В настоящее время известны различные способы и системы для реализации компьютерных игр для компьютеров различной мощности. Наиболее близким аналогам является сервис GeForce Now (см. https://gfii.ru/). Недостатком которого являются низакая стабильность подключения на плохих сетях, а также ограничения по количеству поддерживаемых игр и приложений.
Задачей представленной группы изобретений является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники с достижением технического результата в виде обеспечения возможности одновременного повышения плавности изображения и снижения времени задержки обработки графического изображения до 30%.
Для достижения вышеуказанного технического результата заявлена группа изобретений, включающая:
платформу виртуализации и стриминга приложений и компьютерных игр, включающую:
по меньшей мере один сервер, на котором запускается компьютерная игра или приложение, принимающий управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняющий программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения, при этом происходит непрерывная передача видеопотока в режиме реального времени в клиентское устройство,
при этом приложение или игра запускаются на сервере в среде виртуализации, которая позволяет разделить друг от друга пользовательские приложения и игры, исключив их взаимовлияние, кроме того, каждому пользователю среда виртуализации выделяет отдельный виртуальный компьютер, на котором пользователь работает с приложением или играет в игру, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере,
по меньшей мере один клиент, выполненный для по меньшей мере одного пользовательского устройства, представляющий собой приложение, которое принимает видеопоток, передающийся от сервера в режиме реального времени, декодирует его и отображает пользователю,
при этом клиент принимает управляющие команды от устройства ввода и передает их на сервер,
при этом клиент выполняет функции предварительного анализа состояния канала передачи данных от сервера до клиента и предварительного анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства,
при этом после проведения анализа мощности пользовательского устройства и состояния канала передачи данных от клиента до сервера, генерируется оповещение пользователя о соответствии или предупреждение о несоответствии мощности пользовательского устройства или состояния канала передачи данных от клиента до сервера минимальным требованиям по качеству,
обеспечивающему игровой процесс или процесс работы с приложением, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере и выводятся рекомендации по настройке пользовательского видеопотока, пользовательского устройства для повышения качества игрового процесса или работы с приложением или производится автоматическая настройка параметров видеопотока и параметров пользовательского устройства для достижения лучшего качества игрового процесса или работы с приложением,
при этом при передаче данных видеопотока от сервера до клиента происходит упреждающая коррекция ошибок путем добавления к передаваемой информации такие дополнительные служебные данные, которые позволяют исправить ошибки без дополнительного запроса. Практическое применение показало, что добавление избыточности позволяет исправлять многократные пакеты ошибок.
На серверной стороне при кодировании данных видеопотока к блоку из m-символов прибавляется 2р проверочных символов. При вычислении каждого проверочного символа используются все m символов исходного блока, поэтому для ускорения процесса декодирования полученных данных на клиенте применяются преобразования Фурье.
Для обеспечения высокого качества стриминга на сетях с потерями применяется алгоритм изменения уровня избыточности, зависящий от длительности сессии, типа кадра, типа подключения и текущего состояния канала: запуск стриминг-сессии производится с параметром битрейта видеопотока, равном 10 Мбит/с. В течение первых 30 секунд сессии добавляется 100% избыточности, необходимые для стабилизации канала передачи данных. По истечению 30 секунд уровень избыточности в видеопотоке снижается до 20%, за исключением IDR-frame, избыточность на котором всегда остается на уровне 100%. Далее в зависимости от типа подключения клиента к сети передачи данных уровень избыточности зависит следующим образом:
1. Если уровень сигнала Wifi меньше 80% то к видеопотоку добавляется дополнительно 20% избыточности;
2. Если тип сигнала Wifi с частотой 2,4 ГТЦ, то к видеопотоку добавляется дополнительно 20% избыточности;
Далее в зависимости от показаний текущих потерь на канале (loss-rate) передачи данных происходит изменение значения избыточности:
1. При значении loss-rate = 1…3% к видеопотоку добавляется 20% избыточности;
2. При значении loss-rate = 4…5% к видеопотоку добавляется 40% избыточности;
3. При значении loss-rate = 6…10% к видеопотоку добавляется 60% избыточности;
4. При значении loss-rate = 11…20% к видеопотоку добавляется 100% избыточности;
5. При значении loss-rate = 21…30% к видеопотоку добавляется 150% избыточности;
6. При значении loss-rate = 31% и выше к видеопотоку добавляется 200% избыточности;
Также заявленная группа изобретений включает машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр, содержащий этапы:
- по меньшей мере один пользователь запускает на своем пользовательском устройстве клиентское приложение, клиентское приложение отображает изображение, которое производится на сервере виртуализации, клиентское приложение проводит предварительный анализ состояния канала передачи данных от клиента до сервера, анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства, при проведении анализа мощности пользовательского устройства и состояния канала передача данных от клиента до сервера, генерируется оповещение пользователя о соответствии или предупреждение о несоответствии мощности пользовательского устройства или состояния канала передачи данных от клиента до сервера минимальным требованиям по качеству, обеспечивающему игровой процесс или процесс работы с приложением, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере и выводятся рекомендации по настройке видеопотока пользовательского видеопотока, пользовательского устройства для повышения качества игрового процесса или работы с приложением или производится автоматическая настройка параметров видеопотока и параметров пользовательского устройства для достижения лучшего качества игрового процесса или работы с приложением, далее пользователь посредством ввода управляющих команд осуществляет управление компьютерной игрой или приложением, при этом команды от клиентского приложения до сервера передаются через канал передачи данных,
- по меньшей мере один сервер, на котором запускается компьютерная игра или приложение, принимает управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняет программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения, причем непрерывная передача видеопотока в режиме реального времени в клиентское устройство,
при этом приложение или игра запускается на сервере в среде виртуализации, которая позволяет разделить друг от друга пользовательские приложения и игры, исключив их взаимовлияние, кроме того каждому пользователю среда виртуализации выделяет отдельный виртуальный компьютер, на котором пользователь работает с приложением или играет в игру, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере,
причем прием, декодирование и отображение видеопотока для пользователя производится на клиентском приложении;
при этом при передаче данных видеопотока от сервера до клиента происходит упреждающая коррекция ошибок путем добавления к передаваемой информации такие дополнительные служебные данные, которые позволяют исправить ошибки без дополнительного запроса, причем
на серверной стороне при кодировании данных видеопотока к блоку из m-символов прибавляется 2р проверочных символов, при вычислении каждого проверочного символа используются все m символов исходного блока, поэтому для ускорения процесса декодирования полученных данных на клиенте применяются преобразования Фурье,
при этом применяется алгоритм изменения уровня избыточности, зависящий от длительности сессии, типа кадра, типа подключения и текущего состояния канала: запуск стриминг-сессии производится с параметром битрейта видеопотока, равном 10 Мбит/с, в течение первых 30 секунд сессии добавляется 100% избыточности, необходимые для стабилизации канала передачи данных, по истечению 30 секунд уровень избыточности в видеопотоке снижается до 20%, за исключением IDR-frame, избыточность на котором всегда остается на уровне 100%, далее в зависимости от типа подключения клиента к сети передачи данных уровень избыточности зависит следующим образом:
- Если уровень сигнала Wifi меньше 80% то к видеопотоку добавляется дополнительно 20% избыточности;
- Если тип сигнала Wifi с частотой 2,4 ГГЦ, то к видеопотоку добавляется дополнительно 20% избыточности;
далее в зависимости от показаний текущих потерь на канале (loss-rate) передачи данных происходит изменение значения избыточности:
- При значении loss-rate = 1…3% к видеопотоку добавляется 20% избыточности;
- При значении loss-rate = 4…5% к видеопотоку добавляется 40% избыточности;
- При значении loss-rate = 6…10% к видеопотоку добавляется 60% избыточности;
- При значении loss-rate = 11…20% к видеопотоку добавляется 100% избыточности;
- При значении loss-rate = 21…30% к видеопотоку добавляется 150% избыточности;
- При значении loss-rate = 31% и выше к видеопотоку добавляется 200% избыточности.
При этом пользовательское устройство представляет собой телефон, планшет, пк, телевизионную приставку с различными операционными системами. При этом устройство ввода представляет собой клавиатуру, мышку, игровые джойстики, манипуляторы, сенсорный экран. При этом захват и кодирование изображения видеоигры или приложения в транспортный видеопоток Н.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) трансляции в зависимости от возможностей интернет-подключения пользователя;
- возможность запуска любых приложений и игр по облачной технологии, трансляцию соответствующего видеопотока на устройство пользователя;
- поддержка статистики и анализа времени, проведенного пользователям в различных приложениях и играх;
- возможность гибкой модификации пользовательского интерфейса;
- обеспечение защиты от перехвата команд с пользовательского устройства;
- хранение данных пользователя (приложения, файлы, игры);
- обеспечение круглосуточного мониторинга технического состояния компонентов платформы;
- заявленная технология обеспечивает минимальную задержку, незаметную для конечного игрока;
- функционирование системы в режиме 24x7 и доступности не менее 99.97%.
На фиг. 1 под следующими обозначениями представлено описание модулей платформы:
поз. 1 - Серверная часть платформы;
поз. 2 - Система виртуализации серверной части платформы;
поз. 3 - Гостевая операционная система/виртуальная машина;
поз. 4 - Дисковое пространство для хранения данных гостевой операционной системы;
поз. 5 - Модуль, отвечающий за сбор и агрегацию статистических данных по работе платформы и продукта, а также отвечающий за мониторинг работоспособности технической части платформы и бизнес показателей продукта;
поз. 6 - Модуль биллинга и управления виртуальной инфраструктурой. Хранилище профилей клиентов и аутентификационных данных;
поз. 7 - Игровая витрина сервиса. Содержит описание сервиса для пользователей и вход в личный кабинет;
поз. 8 - Модуль, отвечающий за прием платежей от пользователей;
поз. 9 - Модуль, обеспечивающий разделение инфраструктуры от сети интернет;
поз. 10 - Игра или приложение, запущенное на гостевой виртуальной машине;
поз. 11 - Модуль захвата, энкодирования и стриминга изображения;
поз. 12 - Модуль перехвата сигналов управления, передающихся от клиентской части платформы;
поз. 13 - Клиентская часть платформы;
поз. 14 - Пользовательское устройство (ПК, планшет, смартфон, телевизионная приставка);
поз. 15 - Программное обеспечение, установленное на пользовательском устройстве, обеспечивающее авторизацию и аутентификацию клиента;
поз. 16 - Программное обеспечение, установленное на пользовательском устройстве, обеспечивающее прием видеопотока со стороны платформы, а также передачу сигналов управления на серверную часть;
поз. 17 - Регистрация и авторизация пользователей;
поз. 18 - Проверка параметров канала передачи данных;
поз. 19 - Передача видеопотока;
поз. 20 - Передача сигналов управления.
На фиг. 2 показана схема восстановления данных.
На фиг. 3 показана структура данных.
Используемая терминология.
Стриминг (англ. streaming) - передача изображения через сеть передачи данных. Виртуализация - предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе.
Примером использования виртуализации является возможность запуска нескольких операционных систем на одном компьютере: при том каждый из экземпляров таких гостевых операционных систем работает со своим набором логических ресурсов (процессорных, оперативной памяти, устройств хранения), предоставлением которых из общего пула, доступного на уровне оборудования, управляет хостовая операционная система - гипервизор. Также могут быть подвергнуты виртуализации сети передачи данных, сети хранения данных. Битрейт (от англ. bitrate) - количество бит, используемых для передачи/обработки данных в единицу времени. Битрейт принято использовать при измерении эффективной скорости передачи потока данных по каналу, то есть минимального размера канала, который сможет пропустить этот поток без задержек.
Claims (57)
1. Платформа виртуализации и стриминга приложений и компьютерных игр, включающая по меньшей мере один сервер, на котором запускается компьютерная игра или приложение, принимающий управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняющий программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения,
при этом происходит непрерывная передача видеопотока в режиме реального времени в клиентское устройство,
при этом приложение или игра запускаются на сервере в среде виртуализации, которая позволяет разделить друг от друга пользовательские приложения и игры, исключив их взаимовлияние, кроме того, каждому пользователю среда виртуализации выделяет отдельный виртуальный компьютер, на котором пользователь работает с приложением или играет в игру, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере,
по меньшей мере один клиент, выполненный для по меньшей мере одного пользовательского устройства, представляющий собой приложение, которое принимает видеопоток, передающийся от сервера в режиме реального времени, декодирует его и отображает пользователю,
при этом клиент принимает управляющие команды от устройства ввода и передает их на сервер,
при этом клиент выполняет функции предварительного анализа состояния канала передачи данных от сервера до клиента и предварительного анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства,
при этом после проведения анализа мощности пользовательского устройства и состояния канала передачи данных от клиента до сервера генерируется оповещение пользователя о соответствии или предупреждение о несоответствии мощности пользовательского устройства или состояния канала передачи данных от клиента до сервера минимальным требованиям по качеству, обеспечивающему игровой процесс или процесс работы с приложением, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере, и выводятся рекомендации по настройке пользовательского видеопотока, пользовательского устройства для повышения качества игрового процесса или работы с приложением или производится автоматическая настройка параметров видеопотока и параметров пользовательского устройства для достижения лучшего качества игрового процесса или работы с приложением,
при этом при передаче данных видеопотока от сервера до клиента происходит упреждающая коррекция ошибок путем добавления к передаваемой информации таких дополнительных служебных данных, которые позволяют исправить ошибки без дополнительного запроса, причем
на серверной стороне при кодировании данных видеопотока к блоку из m-символов прибавляется 2р проверочных символов, при вычислении каждого проверочного символа используются все m символов исходного блока, поэтому для ускорения процесса декодирования полученных данных на клиенте применяются преобразования Фурье,
при этом применяется алгоритм изменения уровня избыточности, зависящий от длительности сессии, типа кадра, типа подключения и текущего состояния канала: запуск стриминг-сессии производится с параметром битрейта видеопотока, равным 10 Мбит/с, в течение первых 30 с сессии добавляется 100% избыточности, необходимые для стабилизации канала передачи данных, по истечении 30 с уровень избыточности в видеопотоке снижается до 20%, за исключением IDR-frame, избыточность на котором всегда остается на уровне 100%, далее в зависимости от типа подключения клиента к сети передачи данных уровень избыточности зависит следующим образом:
если уровень сигнала Wi-Fi меньше 80%, то к видеопотоку добавляется дополнительно 20% избыточности;
если тип сигнала Wi-Fi с частотой 2,4 ГТЦ, то к видеопотоку добавляется дополнительно 20% избыточности;
далее в зависимости от показаний текущих потерь на канале (loss-rate) передачи данных происходит изменение значения избыточности:
- при значении loss-rate = 1…3% к видеопотоку добавляется 20% избыточности;
- при значении loss-rate = 4…5% к видеопотоку добавляется 40% избыточности;
- при значении loss-rate = 6…10% к видеопотоку добавляется 60% избыточности;
- при значении loss-rate = 11…20% к видеопотоку добавляется 100% избыточности;
- при значении loss-rate = 21…30% к видеопотоку добавляется 150% избыточности;
- при значении loss-rate = 31% и выше к видеопотоку добавляется 200% избыточности.
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, содержащий этапы:
- по меньшей мере один пользователь запускает на своем пользовательском устройстве клиентское приложение, клиентское приложение отображает изображение, которое производится на сервере виртуализации,
клиентское приложение проводит предварительный анализ состояния канала передачи данных от клиента до сервера, анализа мощности пользовательского компьютера для выдачи рекомендаций пользователю или автоматической настройки параметров видеопотока и параметров пользовательского устройства, при проведении анализа мощности пользовательского устройства и состояния канала передача данных от клиента до сервера,
генерируется оповещение пользователя о соответствии или предупреждение о несоответствии мощности пользовательского устройства или состояния канала передачи данных от клиента до сервера минимальным требованиям по качеству, обеспечивающему игровой процесс или процесс работы с приложением, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере, и выводятся рекомендации по настройке видеопотока пользовательского видеопотока, пользовательского устройства для повышения качества игрового процесса или работы с приложением или производится автоматическая настройка параметров видеопотока и параметров пользовательского устройства для достижения лучшего качества игрового процесса или работы с приложением,
далее пользователь посредством ввода управляющих команд осуществляет управление компьютерной игрой или приложением, при этом команды от клиентского приложения до сервера передаются через канал передачи данных,
- по меньшей мере один сервер, на котором запускается компьютерная игра или приложение, принимает управляющие команды, относящиеся к игре или приложению, передаваемые от клиента, управляемого пользователем, и в ответ выполняет программный код игры для визуализации последовательности видеоизображений в результате выполнения игры или приложения, причем непрерывная передача видеопотока в режиме реального времени в клиентское устройство,
при этом приложение или игра запускается на сервере в среде виртуализации, которая позволяет разделить друг от друга пользовательские приложения и игры, исключив их взаимовлияние, кроме того, каждому пользователю среда виртуализации выделяет отдельный виртуальный компьютер, на котором пользователь работает с приложением или играет в игру, аналогично тому, если игра или приложение запускались бы на высокомощном персональном компьютере,
причем прием, декодирование и отображение видеопотока для пользователя производится на клиентском приложении;
при этом при передаче данных видеопотока от сервера до клиента происходит упреждающая коррекция ошибок путем добавления к передаваемой информации таких дополнительных служебных данных, которые позволяют исправить ошибки без дополнительного запроса, причем
на серверной стороне при кодировании данных видеопотока к блоку из m-символов прибавляется 2р проверочных символов, при вычислении каждого проверочного символа используются все m символов исходного блока, поэтому для ускорения процесса декодирования полученных данных на клиенте применяются преобразования Фурье,
при этом применяется алгоритм изменения уровня избыточности, зависящий от длительности сессии, типа кадра, типа подключения и текущего состояния канала: запуск стриминг-сессии производится с параметром битрейта видеопотока, равным 10 Мбит/с, в течение первых 30 с сессии добавляется 100% избыточности, необходимые для стабилизации канала передачи данных, по истечении 30 с уровень избыточности в видеопотоке снижается до 20%, за исключением IDR-frame, избыточность на котором всегда остается на уровне 100%, далее в зависимости от типа подключения клиента к сети передачи данных уровень избыточности зависит следующим образом:
если уровень сигнала Wi-Fi меньше 80%, то к видеопотоку добавляется дополнительно 20% избыточности;
если тип сигнала Wi-Fi с частотой 2,4 ГГЦ, то к видеопотоку добавляется дополнительно 20% избыточности;
далее в зависимости от показаний текущих потерь на канале (loss-rate) передачи данных происходит изменение значения избыточности:
- при значении loss-rate = 1…3% к видеопотоку добавляется 20% избыточности;
- при значении loss-rate = 4…5% к видеопотоку добавляется 40% избыточности;
- при значении loss-rate = 6…10% к видеопотоку добавляется 60% избыточности;
- при значении loss-rate = 11…20% к видеопотоку добавляется 100% избыточности;
- при значении loss-rate = 21…30% к видеопотоку добавляется 150% избыточности;
- при значении loss-rate = 31% и выше к видеопотоку добавляется 200% избыточности.
11. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем захват и кодирование изображения видеоигры или приложения в транспортный видеопоток Н.264 или Н.265 с использованием графической карты, установленной в сервере.
12. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем пользовательское устройство представляет собой телефон, планшет, ПК, телевизионные приставки с различными операционными системами.
13. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, причем устройство ввода представляет собой клавиатуру, мышку, игровые джойстики, манипуляторы, сенсорный экран.
14. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, отличающийся тем, что запускаемые приложения представляют собой ресурсоемкие приложения.
15. Машинореализуемый способ виртуализации и стриминга приложений и компьютерных игр по п. 9, отличающийся тем, что изменение параметров видеопотока (bitrate, fps и разрешение экрана) выполняется на основе прогноза нейросети, причем обучение нейросети производится на основе собираемых данных пользовательских сессий (производительность сервера, параметры сети передачи данных, производительность пользовательского устройства, тип игры) и субъективной оценки качества игрового процесса.
Publications (1)
Publication Number | Publication Date |
---|---|
RU2785897C1 true RU2785897C1 (ru) | 2022-12-14 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090289945A1 (en) * | 2008-05-22 | 2009-11-26 | Natan Peterfreund | Centralized streaming game server |
US20100329358A1 (en) * | 2009-06-25 | 2010-12-30 | Microsoft Corporation | Multi-view video compression and streaming |
US20150156474A1 (en) * | 2012-02-23 | 2015-06-04 | Square Enix Holdings Co., Ltd. | Moving image distribution server, moving image playback apparatus, control method, and recording medium |
US20170221174A1 (en) * | 2016-01-29 | 2017-08-03 | Dzung Dinh Khac | Gpu data sniffing and 3d streaming system and method |
RU2758985C1 (ru) * | 2020-06-19 | 2021-11-08 | Общество с ограниченной ответственностью "ЛП Технологии" | Алгоритм согласования видеопотока для платформы облачных игр Loudplay |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090289945A1 (en) * | 2008-05-22 | 2009-11-26 | Natan Peterfreund | Centralized streaming game server |
US20100329358A1 (en) * | 2009-06-25 | 2010-12-30 | Microsoft Corporation | Multi-view video compression and streaming |
US20150156474A1 (en) * | 2012-02-23 | 2015-06-04 | Square Enix Holdings Co., Ltd. | Moving image distribution server, moving image playback apparatus, control method, and recording medium |
US20170221174A1 (en) * | 2016-01-29 | 2017-08-03 | Dzung Dinh Khac | Gpu data sniffing and 3d streaming system and method |
RU2758985C1 (ru) * | 2020-06-19 | 2021-11-08 | Общество с ограниченной ответственностью "ЛП Технологии" | Алгоритм согласования видеопотока для платформы облачных игр Loudplay |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11012338B2 (en) | Network adaptive latency reduction through frame rate control | |
Hong et al. | Placing virtual machines to optimize cloud gaming experience | |
RU2758985C1 (ru) | Алгоритм согласования видеопотока для платформы облачных игр Loudplay | |
CN111135569A (zh) | 云游戏处理方法、装置、存储介质与电子设备 | |
CA2814420C (en) | Load balancing between general purpose processors and graphics processors | |
CN113117326B (zh) | 一种帧率控制方法和装置 | |
CN108721898B (zh) | 帧率的确定方法和装置、存储介质、电子装置 | |
CN113434300B (zh) | 一种数据处理方法以及相关装置 | |
US20220226736A1 (en) | Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters | |
CN109889576A (zh) | 一种基于博弈论的移动云游戏资源优化方法 | |
CN114268626B (zh) | 窗口处理系统、方法以及装置 | |
Kämäräinen et al. | Towards pervasive and mobile gaming with distributed cloud infrastructure | |
CN108574807B (zh) | 一种影像处理方法及相关设备 | |
US20240307767A1 (en) | Cloud Data Processing | |
CN109587118B (zh) | Android网游的分布式支持多终端和多网络的系统 | |
CN115767092A (zh) | 图像传输方法、云桌面及图像传输系统、设备及产品 | |
JP7646949B2 (ja) | 人工知能に基づくネットワークストレージゲームの割り当て | |
RU2785897C1 (ru) | Алгоритм применения избыточности данных для платформы облачных игр Loudplay | |
CN111913768A (zh) | 虚拟化云桌面及其构建方法 | |
CN107426624A (zh) | 电视游戏实现方法及系统、电视终端、云端服务器、介质 | |
CN117563222A (zh) | 游戏运行方法、调整方法、装置、电子设备及介质 | |
US12088817B2 (en) | Data coding method and apparatus, and computer-readable storage medium | |
CN118694957A (zh) | 视频解码方法、装置、计算机设备、介质及产品 | |
HK40048384A (en) | Frame rate control method and apparatus | |
CN120301923A (zh) | 云游戏的处理方法、装置及计算机设备、介质、程序产品 |