ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее техническое решение относится к области компьютерной техники, в частности, к способу и системе для отображения курсора при транслировании видеопотока через сеть передачи данных.
УРОВЕНЬ ТЕХНИКИ
[0002] Сервисы потоковой передачи данных в настоящее время все больше развиваются в сфере игровой индустрии и предлагают конечным пользователям возможность осуществления игрового процесса с помощью облачной трансляции видеопотока на клиентские устройства, при непосредственном выполнении аппаратной обработки на сервере. Основной технической проблемой данной технологии является высокое требование к пропускной способности сети и стабильности сетевого соединения, что особенно важно для осуществления игрового процесса в динамических играх с поддержанием высокой частоты кадров, и обеспечением плавного управления с минимальными задержками со стороны пользователя.
[0003] Из уровня техники известен способ синхронизации указателя на локальной машине пользователя при осуществлении удаленных презентаций через сеть передачи данных (US 9292108 В2, 22.03.2016). В известном решении изображение курсора захватывается на сервере и отправляется на клиент вместе с фоновым изображением, что приводит к возникновению сетевой задержки между движением мыши и отображением курсора. Общая задержка состоит из двух составляющих: задержка между отправкой координат мыши с клиента и отрисовкой курсора на сервере; задержка между отрисовкой курсора на сервере и отображением изображения с новой позицией курсора на клиенте.
[0004] Существенным недостатком является большая задержка при применении данного решения для транслирования видеопотока, в котором происходит быстрая смена кадров и динамичное перемещения указателя, что приводит к потере плавности перемещения курсора и неточном отражении его позиции в ходе трансляции и получения изображения на клиентском устройстве.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] Для решения существующей технической проблемы в части снижения задержки перемещения курсора при трансляции видеопотока в режиме онлайн, предлагается заявленное изобретение, реализующее новый принцип отслеживания и отрисовки курсора.
[0006] Техническим результатом является снижение задержки и повышение точности отображения позиции курсора при транслировании видеопотока, за счет сокращения времени между изменением положения устройства ввода и обновлением положения курсора на устройстве отображения пользователя.
[0007] Заявленный результат достигается за счет компьютерно-реализуемого способа отображения курсора при транслировании видеопотока, выполняемый с помощью процессора и содержащий этапы, на которых:
- инициируют трансляцию видеопотока от серверной части устройству пользователя, при этом серверная часть осуществляет формирование видеопотока в первой операционной системе (ОС);
- фиксируют изображение курсора в первой ОС;
- передают изображение курсора и видеопоток во вторую ОС на устройство пользователя, причем изображение курсора передается отдельно от видеопотока;
- отображают во второй ОС на устройстве пользователя получаемый видеопоток и изображение курсора, причем изображение курсора накладывается поверх видеопотока;
- фиксируют пользовательский ввод, генерирующий изменение положения курсора во второй ОС при транслировании кадра видеопотока на устройстве пользователя, и передают координаты измененного положения курсора на серверную часть;
- принимают на серверной части координаты измененного положения курсора в видеопотоке на устройстве пользователя и формируют событие изменения положения курсора для первой ОС;
- формируют изображение курсора в первой ОС в соответствии с координатами измененного положения курсора и передают изображение курсора во вторую ОС на устройство пользователя;
- принимают на устройстве пользователя соответствующий кадр видеопотока от серверной части и изображение курсора с измененным положением в соответствии с пользовательским вводом;
- отображают изображение курсора во второй ОС в транслируемом видеопотоке.
[0008] В одном из частных вариантов осуществления способа, изображение курсора во второй ОС соответствует перемещению устройства ввода, подключенного к устройству пользователя.
[0009] В другом частном варианте осуществления способа, устройство ввода выбирается из группы: манипулятор мышь, джойстик, стилус, сенсорный дисплей.
[0010] В другом частном варианте осуществления способа, устройство пользователя выбирается из группы: персональный компьютер, ноутбук, смартфон, планшет, игровая приставка.
[0011] В другом частном варианте осуществления способа, на устройстве пользователя изменение положения курсора фиксируется для второй ОС независимо от получаемого видеопотока.
[0012] Заявленное изобретение также реализуется за счет системы для отображения курсора при транслировании видеопотока, содержащая соединенные сетью передачи данных сервер и устройство пользователя, в которой:
сервер выполнен с возможностью
инициирования трансляции видеопотока устройству пользователя, при этом серверная часть осуществляет формирование видеопотока в первой операционной системе (ОС);
фиксации изображения курсора в первой ОС;
передачи изображения курсора и видеопотока во вторую ОС на устройстве пользователя, причем изображение курсора передается отдельно от видеопотока;
получения координат измененного положения курсора в видеопотоке во второй ОС на устройстве пользователя;
формирования события изменения положения курсора для первой ОС на основании полученных координат;
формирования изображения курсора в первой ОС в соответствии с упомянутым событием изменения его положения;
передачи изображения курсора во вторую ОС на устройство пользователя;
устройство пользователя выполнено с возможностью
получения видеопотока от первой ОС;
отображения курсора во второй ОС поверх получаемого видеопотока;
фиксации пользовательского ввода, генерирующего изменение положения курсора во второй ОС при транслировании кадра видеопотока на устройстве пользователя;
передаче координат измененного положения курсора на сервер;
получения изображения курсора от второй ОС с измененным положением в соответствии с пользовательским вводом, зафиксированным для первой ОС;
накладывания полученного изображения с измененным положением курсора на соответствующий кадр видеопотока;
отображения изображение курсора во второй ОС в транслируемом видеопотоке.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0013] Фиг. 1 иллюстрирует общую схему взаимодействия вычислительных устройств.
[0014] Фиг. 2 иллюстрирует блок-схемы выполнения заявленного способа.
[0015] Фиг. 3 иллюстрирует пример формирования курсора в последовательности кадров.
[0016] Фиг. 4 иллюстрирует пример вычислительного устройства, пригодного для реализации заявленного технического решения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0017] Как показано на Фиг. 1 заявленное решение представляет собой вычислительную систему (100), включающую в себя сервер (110) и пользовательское устройство (120), соединяемые между собой сетью передачи данных (150), например, с помощью вычислительной сети Интернет.
[0018] Сервер (110) и пользовательское устройство (120) осуществляют заданный функционал с помощью соответствующих ОС (111, 121) и программных приложений, установленных на устройствах (110, 120). Сервер (110) с помощью ОС (111) осуществляет формирование по запросу пользовательского устройства (110) видеопотока для его трансляции.
[0019] Технология передачи транслируемого видеопотока основывается на первичном его формировании на сервере (110) в его ОС (111) и последующем его захвате и покадровом транслировании в ОС (121) пользовательского устройства (120). В качестве игрового потока, в частности, может выступать компьютерная игра, управление которой осуществляется на устройстве пользователя (120) с помощью соответствующих средств ввода данных, например, манипулятор мышь, джойстик, сенсорный дисплей и т.п.
[0020] Для реализации заявленного решения важно осуществлять разделение транслируемого видеопотока и изображения курсора при его перемещении на стороне пользователя, поскольку основное изменение потока игрового процесса обрабатывается на сервере (110) в ОС (111), в связи с чем необходимо формировать отдельное изображение указателя на основании координат изменения траектории его перемещения на устройстве пользователя (120) в ОС (121).
[0021] В качестве пользовательского устройства (120) может использоваться широкий класс устройств, например, персональный компьютер, ноутбук, смартфон, планшет, игровая приставка и т.п. Организация сети передачи данных (150) также является стандартизованным и широко известным из уровня техники решением, с применением технологий проводной и/или беспроводной связи, например, LAN, WAN, PAN, WLAN, GSM/3G/LTE/5G и т.п.
[0022] На Фиг. 2 приведена блок-схема заявленного способа (200) формировании курсора. На первом этапе (201) пользователь с помощью клиентского приложения в ОС (121) устройства (120) для начала получения видеопотока инициирует запрос на его трансляцию от сервера (110). Запрос может осуществляться с помощью программного приложения (клиентского приложения) в ОС (121).
[0023] При инициировании трансляции видеопоток первоначально отображается в ОС (111) сервера (110) после чего выполняется его захвати передача через сеть (150) в ОС (121) на устройство пользователя (120).
[0024] На этапе (202) в ОС (111) на сервере (110) активируется функция отслеживания изменения положения курсора в ОС (111) на основании манипуляций, осуществляемых со стороны пользователя (120), о чем будет указано подробнее далее.
[0025] Первично выполняется захват положения курсора в ОС (111) на этапе (203) после чего на устройство пользователя (120) передается изображение курсора и видеопоток по отдельности (этап 204). Получаемый видеопоток отображается в ОС (121) устройства пользователя (120) (этап 205).
[0026] Изображение курсора формируется и отображается в ОС (121) на устройстве (120) поверх видеопотока (этап 206). При изменении положения курсора в ОС (121) с помощью перемещения устройства ввода пользовательского устройства (120) ОС (121) фиксируется изменение пиксельных координат X/Y курсора на этапе (207). Формирование изображения курсора в ОС (121) на устройстве пользователя (120) осуществляется программным обеспечением независимо от поступающего видеопотока.
[0027] На этапе (208) после изменения положения курсора в ОС (121) выполняется передача данных, содержащих координаты курсора, в которые он был перемещен, на сервер (110). На сервере (110) координаты курсора принимаются и фиксируются в ОС (111) для его последующей отрисовки в соответствующей позиции дисплея.
[0028] По итогам формирования изображения курсора в ОС (111) на сервере (110) в соответствии с координатами измененного положения курсора, полученными от ОС (121) клиента, изображение курсора передается на устройство пользователя (120) для его отрисовки поверх транслируемого видеопотока в ОС (121).
[0029] Процесс отслеживания изменения положения курсора итеративно повторяется при получении видеопотока в режиме онлайн и совершении манипуляций с помощью средства ввода на устройстве пользователя (120), приводящим к смещению курсора.
[0030] На Фиг. 3 представлен пример формирования изображения курсора в наборе кадров видеопотока. При старте передачи видеопотока первично передаваемый кадр (301) от сервера (110) передается на устройство пользователя (120) без изображения курсора (31). Изначально изображение курсора (31) фиксируется в заданном местоположении кадра (301) при последующей передаче в клиентское приложение. В данном примере кадр отображает графический интерфейс пользователя компьютерной игры, содержащий управляемого персонажа (310) и позицию изображения курсора (31).
[0031] При изменении положения курсора в одном из следующих кадров (302) из позиции (31) в (32) ОС (121) клиентского приложения осуществляется фиксация координат (X/Y) на пиксельной сетке на протяжении всей траектории его перемещения и динамическая их отправка на сервер (ПО). На Фиг. 3 в качестве примера приведен этап передачи координат конечной позиции (32) курсора, однако это не является ограничивающим примером реализации заявленного решения. Полученные координаты позиции (32) передаются на сервер (110) для их фиксации в ОС (111), в которой осуществляется захват кадров видеопотока и последующее формирование самого изображения курсора (33) в позиции, соответствующий координатам измененной позиции (32) ОС (121). Изображение курсора (33) формируется для следующего кадра (303) и передается отдельно от видеопотока на устройство пользователя (120), где впоследствии накладывается на следующий кадр (304).
[0032] На Фиг. 4 представлен общий пример вычислительного компьютерного устройства (400), которое может применяться для реализации вычислительных устройств, входящих в настоящее изобретение. На базе устройства (400) может выполняться устройство пользователя (120) и сервер (110). Компоненты устройства (400), как правило, сопряжены посредством общей шины передачи данных.
[0033] В общем случае устройство (400) содержит такие компоненты, как: один или более процессоров (401), по меньшей мере одну оперативную память (402), средство постоянного хранения данных (403), интерфейсы ввода/вывода (404), средство В/В (405), средства сетевого взаимодействия (406).
[0034] Процессор (401) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (400) или функционала одного или более его компонентов. Процессор (401) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (402).
[0035] Память (402), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал. Средство хранения данных (403) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (403) позволяет выполнять долгосрочное хранение различного вида информации, например, истории обработки запросов (логов), идентификаторов пользователей, звуковые файлы и т.п.
[0036] Интерфейсы (404) представляют собой стандартные средства для подключения и работы различного вида устройств (400), например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, Fire Wire и т.п.Выбор интерфейсов (404) зависит от конкретного исполнения устройства (400), которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.
[0037] В качестве средств В/В данных (405) может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.
[0038] Средства сетевого взаимодействия (406) выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средства (406) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
[0039] В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И СИСТЕМА ОЦЕНКИ ПРОПУСКНОЙ СПОСОБНОСТИ СЕТИ ПРИ ТРАНСЛИРОВАНИИ ВИДЕОСИГНАЛА | 2020 |
|
RU2732786C1 |
Алгоритм согласования видеопотока для платформы облачных игр Loudplay | 2020 |
|
RU2758985C1 |
СПОСОБ ЭЛЕКТРОННОЙ КОММЕРЦИИ ЧЕРЕЗ ОБЩЕСТВЕННУЮ ВЕЩАТЕЛЬНУЮ СРЕДУ | 2020 |
|
RU2754199C1 |
СПОСОБ И КОГНИТИВНАЯ СИСТЕМА ВИДЕОАНАЛИЗА, МОНИТОРИНГА, КОНТРОЛЯ СОСТОЯНИЯ ВОДИТЕЛЯ И ТРАНСПОРТНОГО СРЕДСТВА В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ | 2018 |
|
RU2684484C1 |
СПОСОБ И СЕРВЕР ДЛЯ ОПРЕДЕЛЕНИЯ ПОРЯДКА ОТРИСОВКИ КАРТЫ | 2016 |
|
RU2658875C1 |
СИСТЕМА УПРАВЛЕНИЯ ГРАФИЧЕСКИМИ ОБЪЕКТАМИ | 2022 |
|
RU2813837C2 |
Способ и система для доверенного доведения информации до пользователя | 2016 |
|
RU2634179C1 |
Система и способ подтверждения подлинности отображаемой информации на экране компьютера | 2016 |
|
RU2644503C1 |
ОПТИМИЗАЦИЯ ОБМЕНА ДАННЫМИ МЕЖДУ КЛИЕНТСКИМ УСТРОЙСТВОМ И СЕРВЕРОМ | 2016 |
|
RU2632427C1 |
Способ интерактивной демонстрации контекстной информации при воспроизведении видеопотока | 2018 |
|
RU2699999C1 |
Изобретение относится к области компьютерной техники. Техническим результатом является снижение задержки и повышение точности отображения позиции курсора при транслировании видеопотока за счет сокращения времени между изменением положения устройства ввода и обновлением положения курсора на устройстве отображения пользователя. Способ отображения курсора при транслировании видеопотока содержит этапы, на которых: инициируют трансляцию видеопотока от серверной части к устройству пользователя; фиксируют изображение курсора в первой ОС; передают изображение курсора и видеопоток во вторую ОС на устройство пользователя, причем изображение курсора передается отдельно от видеопотока; отображают во второй ОС на устройстве пользователя получаемый видеопоток и изображение курсора; фиксируют пользовательский ввод, генерирующий изменение положения курсора и передают координаты измененного положения курсора на серверную часть; формируют изображение курсора в первой ОС в соответствии с измененными координатами и передают изображение курсора во вторую ОС; принимают на устройстве пользователя соответствующий кадр видеопотока и изображение курсора с измененным положением; отображают изображение курсора во второй ОС в транслируемом видеопотоке. 2 н. и 4 з.п. ф-лы, 4 ил.
1. Компьютерно-реализуемый способ отображения курсора при транслировании видеопотока, выполняемый с помощью процессора и содержащий этапы, на которых:
инициируют трансляцию видеопотока от серверной части устройству пользователя, при этом серверная часть осуществляет формирование видеопотока в первой операционной системе (ОС);
фиксируют изображение курсора в первой ОС;
передают изображение курсора и видеопоток во вторую ОС на устройство пользователя, причем изображение курсора передается отдельно от видеопотока;
отображают во второй ОС на устройстве пользователя получаемый видеопоток и изображение курсора, причем изображение курсора накладывается поверх видеопотока;
фиксируют пользовательский ввод, генерирующий изменение положения курсора во второй ОС при транслировании кадра видеопотока на устройстве пользователя и передают координаты измененного положения курсора на серверную часть;
принимают на серверной части координаты измененного положения курсора в видеопотоке на устройстве пользователя и формируют событие изменения положения курсора для первой ОС;
формируют изображение курсора в первой ОС в соответствии с координатами измененного положения курсора и передают изображение курсора во вторую ОС на устройство пользователя;
принимают на устройстве пользователя соответствующий кадр видеопотока от серверной части и изображение курсора с измененным положением в соответствии с пользовательским вводом;
отображают изображение курсора во второй ОС в транслируемом видеопотоке.
2. Способ по п.1, характеризующийся тем, что изображение курсора во второй ОС соответствует перемещению устройства ввода, подключенного к устройству пользователя.
3. Способ по п.2, характеризующийся тем, что устройство ввода выбирается из группы: манипулятор, мышь, джойстик, стилус, сенсорный дисплей.
4. Способ по п.1, характеризующийся тем, что устройство пользователя выбирается из группы: персональный компьютер, ноутбук, смартфон, планшет, игровая приставка.
5. Способ по п.2, характеризующийся тем, что на устройстве пользователя изменение положения курсора фиксируется для второй ОС независимо от получаемого видеопотока.
6. Система для отображения курсора при транслировании видеопотока, содержащая соединенные сетью передачи данных сервер и устройство пользователя, в которой:
сервер выполнен с возможностью
инициирования трансляции видеопотока устройству пользователя, при этом серверная часть осуществляет формирование видеопотока в первой операционной системе (ОС);
фиксации изображения курсора в первой ОС;
передачи изображения курсора и видеопотока во вторую ОС на устройстве пользователя, причем изображение курсора передается отдельно от видеопотока;
получения координат измененного положения курсора в видеопотоке во второй ОС на устройстве пользователя;
формирования события изменения положения курсора для первой ОС на основании полученных координат;
формирования изображения курсора в первой ОС в соответствии с упомянутым событием изменения его положения;
передачи изображения курсора во вторую ОС на устройство пользователя;
устройство пользователя выполнено с возможностью
получения видеопотока от первой ОС;
отображения курсора во второй ОС поверх получаемого видеопотока;
фиксации пользовательского ввода, генерирующего изменение положения курсора во второй ОС при транслировании кадра видеопотока на устройстве пользователя;
передачи координат измененного положения курсора на сервер;
получения изображения курсора от второй ОС с измененным положением в соответствии с пользовательским вводом, зафиксированным для первой ОС;
накладывания полученного изображения с измененным положением курсора на соответствующий кадр видеопотока;
отображения изображения курсора во второй ОС в транслируемом видеопотоке.
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
RU 2015122884 A, 10.01.2017 | |||
KR 102050068 B1, 28.11.2019. |
Авторы
Даты
2020-10-01—Публикация
2020-03-24—Подача