СИСТЕМЫ И СПОСОБЫ ОБЛАЧНОЙ ОБРАБОТКИ И НАЛОЖЕНИЯ СОДЕРЖИМОГО НА ПОТОКОВЫЕ ВИДЕОКАДРЫ УДАЛЕННО ОБРАБАТЫВАЕМЫХ ПРИЛОЖЕНИЙ Российский патент 2017 года по МПК G06T11/00 

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

Уровень техники

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

Раскрытие изобретения

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

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

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

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

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

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

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

Краткое описание чертежей

Фиг. 1 иллюстрирует структурную схему игровой системы, в соответствии с различными вариантами реализации изобретения.

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

Фиг. 3 иллюстрирует оверлеи на игровом видео (видеокадре), в соответствии с различными вариантами реализации изобретения.

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

Фиг. 5 иллюстрирует способы использования оверлея, в соответствии с различными вариантами реализации изобретения.

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

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

Фиг. 8 иллюстрирует пример заданной конфигурации элементов изображения, связанной с примером изображения видеокадра на Фиг. 7.

Фиг. 9 иллюстрирует оверлейное изображение, передаваемое в форме оверлейной конструкции данных из логики формирования оверлея к оверлейной логике.

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

Фиг. 11 иллюстрирует систему, дополняющую удаленно обслуживаемое приложение, в соответствии с одним вариантом реализации настоящего изобретения.

Фиг. 12 иллюстрирует способ, дополняющий удаленно обслуживаемое приложение, в соответствии с одним вариантом реализации настоящего изобретения.

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

Осуществление изобретения

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

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

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

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

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

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

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

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

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

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

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

Фиг. 1 иллюстрирует структурную схему игровой системы 100, в соответствии с различными вариантами реализации изобретения. Игровая система 100 выполнена с возможностью предоставления потока видеоданных одному или более клиентам 110, каждому из которых, в качестве примера, присвоен номер 110А, 110В и так далее, по сети 115. Игровая система 100 обычно содержит систему видео сервера 120 и дополнительного игрового сервера 125. Система видео сервера 120 может быть выполнена с возможностью предоставления потока видеоданных в широком диапазоне видео форматов, включая форматы, которые когда-либо будут определены. Кроме того, поток видеоданных может содержать видеокадры, настроенные для демонстрации пользователю в широком диапазоне частоты кадров. Обычная частота кадров составляет 30 кадров в секунду, 60 кадров в секунду и 120 кадров в секунду, несмотря на то, что в альтернативных вариантах реализации изобретения могут содержаться более высокие или более низкие значения частоты кадров.

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

Клиенты 110 выполнены с возможностью приема потока видеоданных по сети 115. Сеть 115 может представлять собой сеть любого типа коммуникационной сети, включая телефонную сеть, Интернет, беспроводные сети, сети на основе линий электропередачи, локальные сети, территориально распределенные сети, частные сети и/или тому подобные. В некоторых вариантах реализации изобретения потоки видеоданных передаются с помощью стандартных протоколов, например, TCP/IP или UDP/IP. В альтернативном варианте потоки видеоданных могут передаваться с помощью частных стандартов.

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

Поток видеоданных (и дополнительных потоков аудиоданных), принимаемых клиентом 110, сформированы и предоставлены системой видео сервера 120. Поток видеоданных содержит видеокадры (а поток аудиоданных содержит аудиокадры). Потоки видеоданных настроены (например, они содержат информацию об элементе изображения в виде соответствующей структуры данных) для внесения значительных изменений в изображения, отображаемые пользователю. В данном контексте термин "видеокадры" используется для обозначения кадров, содержащих, главным образом, информацию, то есть выполненных с возможностью принимать участие в эффектах, изображениях, демонстрируемых пользователю с помощью визуализации информации кадра в визуальном отображении. Большая часть описания, предоставленная в данном документе в отношении "видеокадров", также может применяться и в отношении "аудиокадров".

Клиенты 110, как правило, выполнены с возможностью принимать ввод данных от пользователя. Эти команды ввода могут содержать игровые команды, выполненные с возможностью изменения состояния видео игры или, в других случаях, изменения игрового процесса. Игровые команды могут быть получены с использованием устройств ввода и/или могут быть автоматически сформированы вычислительными инструкциями, выполняемыми на клиенте 110. Устройства ввода клиента 110 могут содержать, к примеру, клавиатуру, джойстик, указывающее устройство, устройство с обратной связью по усилию, устройство, чувствительное к движению/положению, мышь, сенсорный экран, нейронный интерфейс, камеру, устройство ввода, которые еще когда-либо будут разработаны, и/или тому подобные. Полученные игровые команды передаются от клиента 110 по сети 115 к системе видео сервера 120 и/или игровому серверу 125.

Игровой сервер 125 может дополнительно работать в качестве отдельного объекта от системы видео сервера 120. Например, игровой сервер 125 может работать в качестве публикатора многопользовательской игры. В этом примере, система видео сервера 120 дополнительно рассматривается как клиент игрового сервера 125 и дополнительно выполнена с возможностью выступать, с точки зрения игрового сервера 125, в качестве клиента, выполняющего игровой движок. Обмен данными между системой видео сервера 120 и игровым сервером 125 дополнительно выполняется по сети 115. По этой причине игровой сервер 125 может представлять собой многопользовательский игровой сервер, отправляющий информацию о состоянии игры множеству клиентов, одним из которых является система видео сервера 120.

Система видео сервера 120 содержит источник видео 130, устройство ввода/вывода 145, процессор 150, энергонезависимое устройство хранения данных 155. Система видео сервера 120 может содержать одно вычислительное устройство или быть распределенной между множеством вычислительных устройств. Такие вычислительные устройства дополнительно соединяются с помощью системы передачи данных, например, локальной компьютерной сети.

Источник видео 130 выполнен с возможностью предоставления потока видеоданных, например, потокового видео или серии видеокадров, формирующих движущееся изображение. В некоторых вариантах реализации изобретения источник видео 130 содержит движок видео игры и логику визуализации. Движок видео игры выполнен с возможностью принимать игровые команды от игрока и создавать копию состояния видео игры на основании полученных команд. Указанное состояние содержит положение объектов в игровой среде, и может, также, содержать точку наблюдения пользователя. Состояние игры также может содержать свойства, изображения, цвета и/или текстуры объектов. Состояние игры, как правило, поддерживается на основании игровых правил, а также игровых команд, например, двигаться, бежать, атаковать, установить фокус на, взаимодействовать, использовать и/или тому подобных. Часть игрового движка дополнительно расположена внутри игрового сервера 125. Игровой сервер 125 может поддерживать копию состояния игры на основании игровых команд, полученных от множества игроков, с использованием территориально распределенных клиентов. В этих случаях состояние игры предоставляется игровым сервером 125 источнику видео 130, при этом копия состояния игры сохраняется и выполняется ее визуализация. Игровой сервер 125 может принимать игровые команды непосредственно от клиента 110 по сети 115, и/или может получать игровые команды с помощью системы видео сервера 120.

Источник видео 130 может содержать логику визуализации, например, аппаратное обеспечение, встроенное программное обеспечение и/или программное обеспечение, сохраненное на машиночитаемом носителе, например, энергонезависимом устройстве хранения данных 155. Указанная логика визуализации выполнена с возможностью создания видеокадров потока видеоданных на основании состояния игры. Вся логика визуализации или часть логики визуализации дополнительно расположена внутри графического процессора (ГП). Логика визуализации, как правило, содержит этапы обработки, выполненные с возможностью определения трехмерного пространственного расположения между объектами и/или применения соответствующих текстур, и так далее, на основании состояния игры и точки наблюдения. Логика визуализации создает необработанное видео, которое затем кодируется перед передачей клиентам 110. Необработанное видео может быть закодировано с использованием любого доступного способа кодирования, который поддерживается удаленным устройством. Процесс кодирования создает поток видеоданных, который дополнительно упаковывается для доставки декодеру на удаленном устройстве.

Поток видеоданных характеризуется размером кадров и частотой кадров. Значение обычного размера кадров составляет 800×600, 1280×720 (например, 720р), 1024×768, несмотря на то, что могут использоваться любые другие размеры кадров. Частота кадров представляет собой число видеокадров в секунду. Поток видеоданных может содержать другие типы видеокадров. Например, помимо прочего, стандарт Н.264 содержит "Р" кадр и "I" кадр. I-кадры содержат информацию для обновления всех макроблоков/пикселей на экране устройства, тогда как Р-кадры содержат информацию для обновления их подмножества. Размер данных Р-кадров, как правило, меньше, чем I-кадров. В данном контексте термин "размер кадра" означает число пикселей в кадре. Термин "размер данных кадра" означает число байт, требуемых для хранения видеокадра.

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

В различных вариантах реализации изобретения устройство ввода/вывода 145 может быть выполнено с возможностью отправки и/или получения системой видео сервера 120 информации, например, видео, команд, запросов на получение информации, состояния игры, идентификационных данных клиента, идентификационных данных игрока, игровых команд, информации по безопасности, аудио и/или тому подобной. Устройство ввода/вывода 145 может содержать коммуникационное оборудование, например, сетевую карту или модем. Устройство ввода/вывода 145 выполнено с возможностью взаимодействия с игровым сервером 125, сетью 115 и/или клиентами 110.

Процессор 150 выполнен с возможностью выполнения логики, например, программного обеспечения, содержащегося внутри различных компонентов системы видео сервера 120, описанного в данном документе. Например, процессор 150 может быть запрограммирован с помощью программных инструкций для выполнения функций источника видео 130, игрового сервера 125 и/или классификатора клиента 160. Система видео сервера 120 дополнительно содержит более одного экземпляра процессора 150. Процессор 150 может быть также запрограммирован с помощью программных инструкций для выполнения команд, полученных системой видео сервера 120, или для координации операций различных элементов игровой системы 100, описанной в данном документе. Процессор 150 может содержать одно или более электронных устройств. Следует понимать, что процессор 150 представляет собой электронный процессор, то есть процессор компьютера.

Система видео сервера 120 дополнительно содержит классификатор клиента 160, который выполнен с возможностью удаленного определения функциональных возможностей клиентов 110. Функциональные возможности могут содержать как функциональные возможности самого данного клиента 110, так и функциональные возможности одного или более коммуникационных каналов между данным клиентом 110 и системой видео сервера 120. Например, классификатор клиента 160 может быть выполнен с возможностью проверки коммуникационного канала через сеть 115.

Фиг. 2 иллюстрирует функциональную схему варианта реализации источника видео 130, выполненного с возможностью обслуживания множества видеоигр. Множество видео игр может содержать множество экземпляров одной и той же видеоигры и/или экземпляров разных видеоигр. Видеоигры дополнительно являются многопользовательскими играми. Например, состояние игры одной или более видеоигр может поддерживаться одним или более экземплярами игрового сервера 125, при этом каждое состояние основано на вводимых данных, получаемых от множества клиентов 110.

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

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

Игровая логика 210 выполнена с возможностью приема игровых команд от одного или более клиентов 110 и обработки полученных команд в соответствии с набором игровых правил. Эти правила предусматривают, к примеру, как анимационный персонаж взаимодействует с другими анимационными персонажами или игровыми объектами, передвижение анимационного персонажа, управление экземпляром игры, и/или тому подобное. Игровая логика 210 содержит аппаратное обеспечение, встроенное программное обеспечение и/или программное обеспечение, сохраненное на машиночитаемом носителе.

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

Игровая логика 210 может выполняться поверх операционной системы (ОС) 215. Операционной системой 215 может быть Windows™, Linux, Unix, Mac OS™, Solaris™ и/или тому подобная. В некоторых вариантах реализации изобретения операционная система 215 и игровая логика 210 могут работать на одной или более платформах виртуальных машин, например, ESX, Hyper-V и/или тому подобных. В этих вариантах реализации изобретения один или более экземпляров игровой логики 210 могут быть выполнены внутри виртуальной машины. Также множество экземпляров игровой логики 210 могут выполняться на одном и том же экземпляре операционной системы 210. Например, Фиг. 2 иллюстрирует игровую логику 210А и игровую логику 210В, которые одновременно выполняются на одной и той же операционной системе 215. Множество экземпляров игровой логики 210, выполняемых на одной и той же операционной системе 215, могут (или не могут) быть настроены для игры в одну и ту же видеоигру.

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

Виртуальный 3D видео драйвер 220 дополнительно выполнен с возможностью передавать полученные данные игровой среды к (не виртуальному) 3D видео драйверу 230. Дополнительно, доставка данных игровой среды к 3D драйверу 230 координируется различными экземплярами виртуального 3D видео драйвера 220. Например, доставка может координироваться так, что 3D драйвер 230 получает данные игровой среды из одного (или минимального количества) виртуальных 3D видео драйверов 220 одновременно. В некоторых вариантах реализации изобретения каждый виртуальный 3D видео драйвер 220 выполнен таким образом, что он является отдельным процессом и отдельным источником видео данных для 3D драйвера 230. По этой причине 3D драйвер 230 выполнен с возможностью следить за тем, какие данные в результате меняются и в каких видеокадрах после визуализации.

Видео данные, полученные 3D видео драйвером 230, направляются графическому процессору (GPU) 235 для визуализации в виде необработанных видео кадров. Графический процессор 235 дополнительно используется для параллельной визуализации более одного потока видеоданных. Параллельное формирование потоков видеоданных содержит формирование этих потоков в одно и то же время. Тем не менее, параллельное формирование потоков видеоданных может, хотя и не обязательно, содержать обработку индивидуальных кадров в одно и то же время внутри графического процессора 235. Например, в некоторых вариантах реализации изобретения 3D драйвер 230 альтернативно направляет видеоданные, сформированные различными элементами игровой логики 210, в графический процессор 235. Данные, сформированные игровой логикой 210А, используются для получения видеокадров и последующие данные, сформированные игровой логикой 210В, используются для получения видеокадров и так далее. В этом случае поток видеоданных формируется параллельно, тогда как кадры формируются последовательно.

Виртуальный 3D видео драйвер 220 может быть выполнен с возможностью управления переносом необработанных видеокадров из 3D драйвера 230. Например, виртуальные 3D драйверы 220 могут использоваться для координации переноса видеокадров из механизма управления 3D драйвера 230 в совместно используемую память 240. Затем выполняется визуализация видеокадров в памяти графического процессора 235 или в памяти, управляемой 3D драйвером 230. В обоих этих случаях они находятся под управлением 3D драйвера 230. Так как виртуальные 3D видео драйверы 220 управляют передачей видеоданных и кадров к 3D драйверу 230 и от него, в некоторых вариантах реализации изобретения они способны размещать видеокадры внутри отдельных частей совместно используемой памяти 240, связанной с определенными каналами динамического кодирования видео (DEP) 245. DEP видео 245 по отдельности обозначены как видео DEP 245А, DEP 245В, DEP 245С и так далее. В некоторых вариантах реализации изобретения каждый DEP видео 245 связан с определенным участком памяти внутри совместно используемой памяти 240 и выполнен с возможностью извлечения видеоданных из этого участка памяти.

Совместно используемая память 240 содержит оперативное запоминающее устройство (RAM) или аналогичный тип памяти, выполненной с возможностью эффективного чтения и записи видеоданных. Совместно используемая память 240 выполнена с возможностью хранения видеоданных для множества DEP видео 245. Видеоданные для различных DEP 245 дополнительно, в то же самое время, сохраняются в совместно используемой памяти 240. Совместно используемая память 240 может содержать отдельное электронное устройство или может содержать множество устройств.

DEP видео 245 представляют собой динамически выделенные каналы кодирования, каждый из которых выполнен с возможностью кодирования видеоданных, визуализируемых с использованием графического процессора 235. Каждый элемент DEP 245 выполнен с возможностью кодирования в видео форматы, указываемые во время ввода в действие DEP 245. Эта спецификация форматов обычно основана на потребности клиента 110 и/или пропускной способности канала передачи данных между системой видео сервера 120 и клиентом 110. DEP видео 245 дополнительно динамически вводятся в действие в ответ на получение запроса от одного из клиентов 110. Элемент DEP видео 245 может дополнительно быть выполнен с возможностью использования более одной схемы кодирования.

Каждый DEP видео 245 содержит устройство захвата 247, выполненное с возможностью захвата видеоданных из совместно используемой памяти 240 и передачи этих видеоданных в память DEP видео 245. Каждый DEP видео 245 дополнительно содержит процессор предварительной обработки (PRE) 250, выполненный с возможностью выполнения преобразования цветового пространства, например, RGB в YUV и/или операций масштабирования для увеличения или уменьшения разрешения видеокадра. В некоторых вариантах реализации изобретения, в которых вывод данных из графического процессора 235 выполняется в цветовом пространстве YUV или некоторых других заданных цветовых пространствах, процессор предварительной обработки 250 является опциональным. Множество процессоров предварительной обработки 250 могут содержаться в DEP видео 245, выполненных с возможностью формирования множества потоков видеоданных, имеющих видеокадры разных размеров.

Каждый DEP видео 245 содержит по меньшей мере одно устройство кодирования (ENK) 255. В качестве примера, проиллюстрированного на Фиг. 2, каждое устройство кодирования 255 в отдельности обозначено как устройство кодирования 255А, устройство кодирования 255В и так далее. Каждое устройство кодирования 255 выполнено с возможностью кодирования видеоданных, в соответствии с определенным кодеком, и, дополнительно, в соответствии с определенной глубиной цвета и/или размером кадра.

В некоторых вариантах реализации изобретения DEP видео 245 выполнены с возможностью использования двух или более устройств кодирования для формирования двух или более потоков видеоданных в одно и то же время. Эти потоки видеоданных основаны на одинаковой игровой среде, визуализируемой графическим процессором 255 и по этой причине содержащей, в основном, одни и те же материалы (с возможностью исключения оверлеев), отправляемые в различные места. Например, один из потоков видеоданных может быть отправлен клиенту 110A, тогда как другой может быть отправлен клиенту 110B. В альтернативном варианте, один из потоков видеоданных может быть отправлен клиенту 110A, а другой - на веб-сайт, при этом третья сторона может просматривать видео. Этот веб-сайт представляет собой дополнительную часть сайта социальной сети или сайта пользователя игры. Два различных потока видеоданных могут отличаться частотой кадров, типом кодировки, размеров кадра, глубиной цвета и так далее. Например, поток видеоданных, направляемый на веб-сайт социальной сети, может быть более низкого качества, чем поток видеоданных, доставляемый пользователю игры, который играет в игру с использованием клиента 110A. Второй поток видеоданных может быть направлен пользователю игры, играющему в игру или людям, которые просто наблюдают за игровым процессом. Поток видеоданных дополнительно направляется более чем в одно место.

DEP видео 245А может дополнительно содержать один или более процессоров дополнительной обработки (Post) 260. Отдельные экземпляры процессоров дополнительной обработки 260 обозначены как 260А и 260В. Процессоры дополнительной обработки 260 выполнены с возможностью кодирования видеокадра в контейнере в формат, подходящий для передачи по сети, в соответствии с публичным или частным сетевым протоколом. Например, некоторые протоколы, например, Adobe RTMP, требуют дополнительной обработки, тогда как другие видеостандарты, например, Н.264 Annex В, не требуют дополнительной обработки. Каждый из процессоров дополнительной обработки 260 может быть связан с определенным элементом устройства кодирования 255 или несколько процессоров дополнительной обработки 260 могут быть выполнены с возможностью кодирования видеокадров из одного элемента устройства кодирования 255.

Вывод данных из процессора дополнительной обработки 260 направляется на устройство ввода/вывода 145 для доставки одному или более клиентам 110. Элементы DEP видео 245, обсуждаемые в данном документе, содержат аппаратное обеспечение, встроенное программное обеспечение и/или программное обеспечение, сохраненное на машиночитаемом носителе. Например, каждый из DEP видео 245 может представлять набор программного обеспечения, загруженного в память и выполняемого с использованием электронного процессора.

Работа источника видео 130 обычно управляется контроллером 265. Контроллер 265 содержит аппаратное обеспечение, встроенное программное обеспечение, и/или программное обеспечение, сохраненное на машиночитаемом носителе. Например, контроллер 265 может содержать программное обеспечение, сохраненное в памяти и выполняемое с использованием микропроцессора.

Фиг. 3 иллюстрирует оверлеи на игровом видео (видеокадрах), в соответствии с различными вариантами реализации изобретения. Три оверлея 810A, 810B и 810C (вместе обозначенные как оверлеи 810) применяются к видео, сформированному видеоигрой. Эти оверлеи 810 могут применяться как одиночный оверлей или как несколько отдельных оверлеев.

В одном варианте реализации изобретения каждый из оверлеев 810 иллюстрирует различные управляющие игровые команды, показанные в данном документе с помощью текста. Оверлей 810А иллюстрирует кнопку возврата каретки (RTN), оверлей 810В иллюстрирует кнопку выхода (ESC), а оверлей 810C иллюстрирует кнопку табуляции (TAB). Следует понимать, что в других вариантах реализации изобретения оверлеи 810 могут обозначать команды контроллера. Например, оверлеи 810A, 810B и 810C могут изображать иконки для различных действий контроллера (например, нажатие кнопки, перемещение ручки, направление отклонения, вибрацию и так далее) с соответствующим наглядным отображением терминов выполняемых действий. В некоторых вариантах реализации изобретения эти оверлеи 810 связаны с определенными областями видеокадров, а эти определенные области сопоставлены с изображенными управляющими игровыми командами. Например, регион изображения, занятый оверлеем 810C, сопоставлен с кнопкой табуляции, благодаря чему нажатие на эту область или, в противном случае, выбор этой области интерпретируется как нажатие кнопки табуляции. Выбор может быть выполнен за счет использования указывающего устройства, например, джойстика или мыши, или за счет касания данной области на экране, чувствительном к касанию.

Фиг. 3 дополнительно содержит оверлей 820, иллюстрирующий игровое меню, например, используемое для управления игровой комнатой или другими аспектами выполнения игры. Оверлей 820 содержит множество активных областей, сопоставленных с различными игровыми командами (вводом управляющих команд). Например, область, занятая словом "поиск" внутри оверлея 820 сопоставлена с командой поиска, тогда как область, занятая словом "соединение" сопоставлена с командой соединения с игротекой.

Фиг. 3 дополнительно содержит оверлей 830, включающий изображение пользователя игры. Оверлей 830 может быть статичным или являться изображением другого пользователя игры в реальном времени. Например, если видеокадр, проиллюстрированный на Фиг. 3, отправляется клиенту 110A, то оверлей 830 может содержать видео кадр в режиме реального времени пользователя клиента 110B. Оверлей 830, в качестве альтернативы, может содержать просмотр видео игры с точки наблюдения другого пользователя игры, просмотр второй точки наблюдения для этого же игрока или просмотр некоторых событий в режиме реального времени. В одном примере оверлей 830 содержит видеокадр, основанный на второй точке наблюдения того же игрока, чья первая точка наблюдения используется для формирования основного изображения. Эта вторая точка наблюдения может быть сформирована с использованием второго DEP видео 245. Количество, форма, размер и характеристики оверлеев, которые могут быть помещены на видеоданные, могут меняться в широком диапазоне. Оверлеи могут (или не могут) быть сопоставлены с игровыми командами. Оверлеи могут применяться как со стороны сервера, так и/или со стороны клиента. Некоторые варианты реализации изобретения содержат оверлеи, применяемые и со стороны сервера, и со стороны клиента.

Сопоставление вводимых пользователем игровых команд не ограничивается приложениями, в которых клиенты 110 содержат сенсорный экран или указывающее устройство. Сопоставление вводимых пользователем данных определенным игровым командам может происходить со стороны клиента 110 или со стороны системы видео сервера 120. Например, iPad® от компании Apple Computer, Inc. выполнен с возможностью преобразования касаний к экрану, перемещения, и комбинаций таких касаний в определенные команды. iPad® и iPhone® также выполнены с возможностью преобразования перемещения самого устройства в определенные команды. Тем не менее, другие типы клиентов 110 могут не иметь таких функциональных возможностей, в этом случае сопоставление может выполняться со стороны системы видео сервера 120.

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

Первое сопоставление, проиллюстрированное на схеме ввода 1010, представляет собой прямое сопоставление символа "D" символу "К" Такой тип сопоставления может быть полезен в играх, которые настроены для нескольких игроков, для совместного использования клавиатуры, при этом, в качестве примера, каждый использует свое подмножество клавиш. Когда в такую игру играют территориально распределенные игроки, каждый игрок может использовать одни и те же клавиши, однако каждый ввод данных игроком сопоставляется разным частям клавиатуры.

Второе сопоставление, проиллюстрированное на схеме ввода 1010, содержит сопоставление области экрана кнопке. В конкретном случае, прямоугольник с вершинами в точках (100, 200) и (400, 500) сопоставляется функциональной клавише F1. Координаты могут быть указаны в пикселях изображения, окна или экрана. Такой тип сопоставления полезен тогда, когда в качестве устройства ввода используется сенсорный экран или указывающее устройство. Такой тип сопоставления может использоваться для сопоставления изображения внутри оверлея определенной игровой команде. Такой тип сопоставления также может зависеть от перемещения пальца или курсора на экране, или количества точек, в котором выполняется касание сенсорного экрана.

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

Четвертый тип сопоставления, проиллюстрированный на схеме ввода 1010, содержит сопоставление движения ("Наклон вправо") устройства ввода клавише. Такой тип сопоставления может использоваться с джойстиками, iPhones®, iPads®, Nintendo Wii® или любым другим типом клиентов 110, имеющих функциональные возможности определения движения или местоположения.

Пятый тип сопоставления, проиллюстрированный на схеме ввода 1010, содержит сопоставление перемещения объекта, фиксируемое внешним устройством, например, камерой, клавише "А". Такой тип сопоставления дополнительно используется на клиенте 110, содержащем радио или видео системы регистрации движения. Использование такого типа сопоставления позволяет играм, разработанным для использования клавиатуры, использовать новые типы устройства ввода, например, Kinect® от компании Microsoft.

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

Фиг. 5 иллюстрирует способы использования оверлея, в соответствии с различными вариантами реализации изобретения. Оверлей может представлять собой аудио или видео данные. В способе на Фиг. 5 видеокадр сформирован с использованием графического процессора 235, и оверлей добавляется к этому видеокадру перед кодированием. Функционирование способа, проиллюстрированное на Фиг. 5, может выполняться параллельно, с использованием нескольких блоков игровой логики 210, нескольких DEP видео 245 и/или DEP аудио 270.

В частности, на этапе формирования 1110, игровая среда формируется на основании игровых правил и игровых команд, полученных через сеть 115, и клиентов 110, от одного или более пользователей игры. Например, каждый из пользователей игры, как на стороне клиента 110A, так и на стороне клиента 110B, может вводить игровые команды, которые используются для обновления состояния игры, из которого была сформирована игровая среда. Этап формирования 1110 может содержать этап состояния приема 515 и этап определения 3D данных 520, как обсуждалось в отношении Фиг. 4. В некоторых вариантах реализации изобретения, этап формирования 1110 содержит формирование данных, на основании событий внутри игры, игровых правил, и/или полученных игровых команд.

На дополнительном этапе визуализации 1120 игровая среда, сформированная на этапе формирования 1110, визуализируется с использованием графического процессора 235. Этап визуализации 1120 представляет собой вариант реализации этапа визуализации 525, описанный в отношении Фиг. 4. Результатом этапа визуализации 1120 является видеокадр. Этап визуализации 1120 является дополнительным в варианте реализации изобретения, в котором результат этапа формирования 1110 содержит только аудиоданные и/или не содержит игровую 3D среду.

На этапе предоставления 1130 видеокадр, сформированный на этапе визуализации 1120, и/или аудиоданные, сформированные на этапе формирования 1110, предоставляются одному или более каналов кодирования, например, DEP видео 245А и/или DEP аудио 270А. Например, видеокадр может быть предоставлен DEP видео 245А, тогда как аудиокадр предоставляется DEP аудио 270А. Этап предоставления 1130 представляет собой вариант реализации этапа передачи 527, обсуждаемого в отношении Фиг. 4.

На этапе добавления оверлея 1140 видео оверлей добавляется к видеокадру, предоставленному на этапе предоставления 1130, и/или аудио оверлей добавляется к аудиоданным, предоставленным на этапе предоставления 1130. Этап добавления оверлея 1140 обычно выполняется с использованием блока оверлейной логики 290 и/или блока оверлейной логики 295, как обсуждалось в отношении Фиг. 2. На этапе добавления оверлея 1140 дополнительно добавляется более чем один видео оверлей и более чем один аудио оверлей. Аудио оверлей дополнительно содержит аудиоданные, полученные от одного или более клиентов 110, в виде пакетов по сети 115. Например, аудио оверлей может содержать голосовые данные пользователей игры, полученные от множества клиентов 110.

В некоторых вариантах реализации изобретения источник видео 130 получает аудиоданные от многих клиентов 110, и этап добавления оверлея 1140 содержит определение того, какие аудиоданные должны использоваться в определенном аудио оверлее. Например, тогда как 10 пользователей игры могут использовать источник видео 130, только голосовые данные двух или трех этих игроков могут быть включены в аудио оверлей. Определение того, какие аудиоданные должны быть включены в оверлей, дополнительно основано на социальных отношениях между пользователями игры. Например, один пользователь игры может выбирать какие, то есть чьи аудиоданные он желает получать. Социальные отношения могут содержать участие в гильдии, команде, нахождение в одном и том же месте сражения, или экземпляре игры, и/или, среди прочего, имеющих анимированных персонажей, расположенных рядом друг с другом в одной и той же игровой среде. В некоторых вариантах реализации изобретения объем аудиоданных регулируется в ответ на внутри игровое расстояние между двумя анимированными персонажами.

На этапе кодирования 1150 выполняется кодирование видеокадра и/или аудиоданных, а также любых оверлеев. Это кодирование выполняется с использованием устройства кодирования 255 и/или устройства кодирования аудио 280. Этап кодирования 1150 представляет собой вариант реализации этапа кодирования 535. Этап кодирования 1150 может выполняться перед или после этапа добавления оверлея 1150.

На этапе доставки 1160 видеокадр и/или аудиоданные, закодированные на этапе кодирования 1150, предоставляются одному или более клиентам 110 по сети 115. Видеокадр и/или аудиоданные дополнительно предоставляются более чем одному местоположению. Например, одни и те же данные предоставляются более чем одному пользователю игры. Этап доставки 1160 представляет собой вариант реализации этапа доставки 545, описанный в отношении Фиг. 4.

На дополнительном этапе сопоставления 1170 часть видео оверлея, примененного на этапе добавления видео оверлея 1140, сопоставляется с игровыми командами. Например, область видеокадра, к которому добавлен видео оверлей, устанавливается на схеме ввода 1010 в качестве сопоставления определенным игровым командам. Оверлей может применяться более чем к одной области экрана или видеокадра. Каждая область дополнительно сопоставляется с различными игровыми командами. Схема ввода 1010 может быть расположена на системе видео сервера 120 или одном из клиентов 110.

На дополнительном этапе приема 1180, сопоставленные игровые команды принимаются на или внутри источника видео 130. Сопоставленные игровые команды представляют собой команды, сопоставленные области видеокадра, к которой применяется оверлей. Полученные игровые команды могут быть сопоставлены со стороны одного из клиентов 110 или со стороны системы видео сервера 120. Полученные игровые команды дополнительно используются для обновления состояния видеоигры.

Фиг. 6 иллюстрирует расширение источника видео 130 для включения логики дополнения видео 2000, в соответствии с приведенным в качестве примера вариантом реализации настоящего изобретения. Логика дополнения 2000 определяет анализ видеокадра, предоставленного любым 3D драйвером 230, для обнаружения наличия в нем ключевых графических изображений, и для предоставления оверлея изображения блоку оверлейной логики 290 в ответ на обнаружение наличия ключевых графических изображений. В различных вариантах реализации изобретения блок логики дополнения 2000 может быть определена для доступа и получения даты видеокадра от одного или более виртуальных 3D видео драйверов 220, 3D видео драйвера 230, совместно используемой памяти 240 и/или DEP видео 245 посредством устройства захвата 247. Следует учитывать, что данные видеокадра принимаются и обрабатываются блоком логики дополнения 2000 перед кодированием данных видеокадра, передаваемого от DEP видео 245 к одному или более клиентов 110.

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

Фиг. 7 иллюстрирует пример изображения видеокадра, соответствующего данным видеокадра, обрабатываемого блоком логики дополнения 2000. Следует понимать, что изображение видеокадра на Фиг. 7 приведено в качестве примера и никоим образом не ограничивает любые свойства или аспекты изобретения, описанного в данном документе. В видеокадре, приведенном в качестве примера на Фиг. 7, проиллюстрировано ключевое графическое изображение 2101, соответствующее заданной конфигурации элементов изображения. Блок логики обнаружения 2001 выполняет функцию поиска данных видеокадра в соответствии с указанным шаблоном целевого поиска для обнаружения наличия заданной конфигурации элементов изображения, соответствующих ключевому графическому изображению 2101. В одном варианте реализации изобретения шаблон целевого поиска представляет собой растрированный шаблон поиска по всему изображению видеокадра из стороны в сторону и сверху вниз. В другом варианте реализации изобретения шаблон целевого поиска содержит множество растрированных шаблонов поиска по всем различным областям видеокадра синхронным способом. В одном примере данного изобретения различные области видеокадра определены так, что различные области не перекрываются и так, что различные области вместе покрывают весь видеокадр.

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

В одном варианте реализации изобретения, блок логики дополнения 2000 определен для контроля игрового состояния блока игровой логики 210 и ответного реагирования на контролируемое игровое состояние. В частности, блок логики дополнения 2000 может быть направлен на использование определенной заданной конфигурации элементов изображения, на основании контролируемого игрового состояния и/или использовании определенного шаблона целевого поиска, основанного на контролируемом игровом состоянии. Блок логики дополнения 2000 может быть определен для приема и работы в соответствии со специфичными для игры программными инструкциями дополнения, которые предоставляют директивы в отношении того, какая заданная конфигурация элементов изображения будет служить в качестве функции контролируемого игрового состояния.

Например, на основании Фиг. 7, блок логики дополнения 2000 может получить уведомление об игровом состоянии, в котором изображение стрелы 2103 сталкивается с заданным изображением 2105. На основании этого уведомления об игровом состоянии, блок логики дополнения 2000 может быть проинструктирован для использования определенной заданной конфигурации элементов изображения, как проиллюстрировано на Фиг. 8, и использовании шаблона целевого поиска, который содержит только область видеокадра, в котором расположено заданное изображение 2105, таким образом, фокусируя усилия блока логики обнаружения ключа 2001.

Также специфичные для игры программные инструкции дополнения могут содержать инструкции относительно того, как оверлейное изображение будет сформировано и расположено внутри видеокадра после обнаружения заданной конфигурации элементов изображения в видеокадре. Блок логики дополнения 2000 содержит блок логики формирования оверлея 2003 определенного для формирования оверлейного изображения в соответствии с инструкциями, полученными блоком логики дополнения 2000. Блок логики формирования оверлея 2003 определен для передачи оверлейных конструкций данных к блоку оверлейной логики 290. Оверлейные конструкции данных содержат соответствующие оверлейные данные об элементе изображения и данные для прямого позиционирования оверлейного изображения в видеокадре. Как описано в данном документе, блок оверлейной логики 290 служит для вставки оверлейного изображения в видеокадр за счет изменения соответствующих данных об элементе изображения видеокадра для визуализации оверлейного изображения. С блоком логики дополнения 2000, фактически, оверлейная логика 290 определена для вставки оверлейного изображения в соответствии с оверлейной конструкцией данных, полученной от блока логики дополнения 2000.

Например, Фиг. 9 иллюстрирует оверлейное изображение 2107, передаваемое в форме оверлейной конструкции данных из логики формирования оверлея 2003 к блоку оверлейной логики 290. В одном варианте реализации изобретения блок логики формирования оверлея 2003 для каждого игрового состояния сохраняется в совместно используемой памяти 240 и индексируется по отношению к их соответствующему игровому состоянию и заданных данных об элементе изображения таким образом, что блок логики формирования оверлея 2003 может извлекать требуемые оверлейные конструкции данных из совместно используемой памяти 240 на основании информации об игровом состоянии, переданной блоку логики дополнения 2000, и передавать требуемые оверлейные конструкции данных в совместно используемую память 240. В одном варианте реализации изобретения оверлейные конструкции данных для различных оверлейных изображений могут быть получены из базы данных, к которой блок логики дополнения 2000 имеет доступ. Таким образом, в одном варианте реализации изобретения оверлейные конструкции данных, которые будут использоваться, могут зависеть от внешних параметров по отношению к игровому состоянию, например, идентификации пользователя игры или других данных, связанных с пользователем игры, например, уровень компетентности пользователя, играющего в игру.

Как только логика оверлейной конструкции предоставляется из блока логики формирования оверлея 2003 к блоку оверлейной логики 290, блок оверлейной логики 290 выполняет функции применения/вставки соответствующего оверлейного изображения в видеокадр. Например, Фиг. 10 иллюстрирует последующее включение видеокадра оверлейного изображения 2107 на Фиг. 7 в ответ на обнаружение блоком логики обнаружения ключа 2001 наличия заданной конфигурации элементов изображения, соответствующих ключевому графическому изображению 2101, как проиллюстрировано на Фиг. 8. Следует понимать, что вставка оверлейного изображения 2107 может выполняться за счет наложения (или замены) данных об элементе изображения внутри видеокадра с данными об элементе изображения оверлейного изображения 2107. Следует учитывать, что обнаружение ключевого графического изображения внутри видеокадра, связанного с определенным игровым состоянием и соответствующим формированием, и вставкой оверлейного изображения в порядке, установленном логикой дополнения 2000, предоставляет существенные возможности изменения оформления интерфейса игры без непосредственного изменения программных инструкций игры. Кроме того, следует учитывать, что в некоторых вариантах реализации изобретения вставка оверлейных изображений может использоваться для доставки/визуализации рекламных изображений пользователю/игроку компьютерной игры.

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

Следует понимать, что блок логики обнаружения ключа 2001 может быть направлен на поиск и обнаружение одной или более заданной конфигурации элементов изображения, в соответствии с одним или более шаблонов целевого поиска, в заданном видеокадре. Кроме того, следует понимать, что блок логики формирования оверлея 2003 может быть направлен на формирование оверлейных конструкций данных для одного или более оверлейных изображений для заданного видеокадра. По этой причине, в некоторых случаях, блок оверлейной логики 290 будет принимать оверлейные конструкции данных для множества оверлейных изображений, применяемых к одиночному видеокадру. В этом случае, множество оверлейных изображений могут быть связаны или не связаны, и могут быть расположены соответственно в разных местах в видеокадре.

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

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

После обнаружения одного или более ключевых графических изображений вторым приложением 2125 второе приложение выполняет непосредственную замену части данных об элементе изображения в серии оригинальных наборов кадров с данными об элементе изображения 2123 с заменой данных об элементе изображения для того, чтобы сформировать серию измененных наборов кадров с данными об элементе изображения 2127. Серия измененных наборов кадров с данными об элементе изображения 2127 обеспечивает кодирование и передачу на компьютерную систему клиента 2129 вместо серии оригинальных наборов кадров с данными об элементе изображения 2123 для визуализации на экране дисплея компьютерной системы клиента 2129. В одном варианте реализации изобретения второе приложение 2125 выполняется для предоставления инструкций оверлейному модулю, например, блоку оверлейной логики 290, для непосредственной замены части данных об элементе изображения в серии оригинальных наборов кадров с данными об элементе изображения 2123 с заменой данных об элементе изображения.

Фиг. 12 иллюстрирует способ, дополняющий удаленно обслуживаемое приложение, в соответствии с одним вариантом реализации настоящего изобретения. Следует понимать, что способ на Фиг. 12 может быть реализован с использованием блока логики дополнения 2000, описанного в отношении Фиг. 6. Способ включает операцию 1601 для поиска видеокадра, сформированного приложением для обнаружения ключевого графического изображения, при этом ключевое графическое изображение иллюстрирует уровень достижений пользователя в выполняемом приложении. Способ также содержит операцию 1602 для обнаружения ключевого графического изображения в видеокадре, сформированном приложением. В одном варианте реализации изобретения приложение представляет собой удаленно обслуживаемое игровое приложение, выполняемое на виртуальной машине облачной вычислительной платформы. Уровень достижений пользователя может быть визуализирован фактически неограниченным количеством различных способов. Тем не менее, на основании выполняемого приложения расчетное положение в видеокадре и расчетная конфигурация элементов изображения ключевого графического изображения, иллюстрирующего уровень достижений пользователя, должны быть известны перед поиском видеокадра, таким образом, позволяя выполнить фокусированный поиск в операции 1601.

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

Способ также включает операцию 1605 для корреляции установленного универсального статуса достижений пользователя с одним или более предварительно заданных оверлейных изображений, сохраненных на устройстве хранения данных. Затем выполняется операция 1607 для получения оверлейных конструкций данных из устройства хранения данных по меньшей мере для одного числа предварительно заданных оверлейных изображений, скоррелированных к установленному универсальному статусу достижений пользователя. Затем выполняется операция 1609 для доставки полученных оверлейных конструкций данных к блоку оверлейной логики, например, блоку оверлейной логики 290 для вставки по меньшей мере одного из предварительно заданных оверлейных изображений, которые будут закодированы и переданы вычислительной системе пользователя. В рамках игровой среды, следует понимать, что способ на Фиг. 12 позволяет визуализировать универсальный статус достижений пользователя, играющего в несколько одинаковых и/или разных игр, уникальным способом в потоке видеоданных любой из игр, в которую играет пользователь. Кроме того, за счет обнаружения и процесса оверлея ключевого графического изображения универсальный статус достижений пользователя может быть визуализирован вместо изображения, обычно формируемого игрой, для отображения универсального статуса достижений пользователя.

Фиг. 13 иллюстрирует блок-схему облачной вычислительной системы 1300 для формирования и выполнения удаленно обслуживаемого компьютерного приложения, например, компьютерной игры, в соответствии с одним вариантом реализации настоящего изобретения. Облачная вычислительная система 1300 содержит различные физические компоненты 1301, например, компоненты вычислительного аппаратного обеспечения, определяющие выполнение операций, необходимых для выполнения вычислений. Физические компоненты 1301 могут содержать определенное количество компьютерных процессоров 1301A, определенный объем памяти 1301B, определенный размер постоянного устройства хранения данных 1301C, и определенное количество сетевых интерфейсных карт/чипов (NIK) 1301D. Различные физические компоненты 1301, указанные выше, могут соответствовать любым таким физическим компонентам 1301, известным в данной области техники. Также, следует понимать, что различные физические компоненты 1301, указанные выше, приведены в качестве примера. Различные варианты реализации облачной вычислительной системы 1300 могут содержать большее или меньшее количество физических компонентов 1301, чем в примере, указанном выше, и могут содержать физические компоненты 1301, не указанные выше, например, источники питания, системы охлаждения, и так далее, при условии, что интегрированные вычислительные функциональные возможности физических компонентов 1301 адекватны для гарантирования надлежащего исполнения облачной вычислительной системы 1300.

Облачная вычислительная система 1300 также содержит гипервизор 1303 или аналогичный уровень управления, то есть определяющий формирование и выполнение определенного количества виртуальных машин, с использованием различных физических компонентов 1301. Каждая виртуальная машина, то есть сформированная и выполняемая гипервизором 1303, в основном, представляет собой программную эмуляцию определенной вычислительной архитектуры. Используя различные физические компоненты 1301, гипервизор 1303 может одновременно формировать и выполнять множество различных виртуальных машин. Данные виртуальные машины могут быть направлены на работу в соответствии с одной или более операционных систем 1305, соответствующих определенной вычислительной архитектуре, эмулируемой данной виртуальной машиной. Примеры различных типов операционных систем, помимо прочих, содержат Windows, Mac OS X, Linux, Play Station 1 (PS1), Play Station 2 (PS2), Play Station 3 (PS3). Например, в отношении Фиг. 13, если операционная система ОС1 является операционной системой PS3, то ОС1 может выполняться на виртуальной машине, сформированной гипервизором 1303 для эмуляции вычислительной архитектуры PS3. Аналогично, если операционная система ОС5 представляет собой операционную систему Mac OS X, то ОС5 может выполняться на виртуальной машине, сформированной гипервизором 1303 для эмуляции вычислительной архитектуры Mac.

Согласно описанию, приведенному выше, гипервизор 1303 может использовать физические компоненты 1301 для формирования и выполнения, фактически, любого количества различных типов виртуальных машин для эмуляции, фактически, любого количества различных типов вычислительной архитектуры, на которых впоследствии могут выполняться различные соответствующие операционные системы. Следовательно, облачная вычислительная система 1300 может предоставлять экземпляр, фактически, любой вычислительной системы, задаваемой определенной операционной системой, выполняемой на требуемой для нее вычислительной архитектуре. Тогда как пример на Фиг. 13 иллюстрирует, в качестве примера, шесть операционных систем ОС1-ОС6, следует понимать, что облачная вычислительная система 1300 не ограничена никаким образом указанным количеством операционных систем. Гипервизор 1303 может определять формирование виртуальной машины, фактически, для любой вычислительной архитектуры, задуманной для того, чтобы выполнять, фактически, любую соответствующую возможную операционную систему. Следовательно, следует понимать, что облачная вычислительная система 1300 расширяется с учетом физических компонентов 1301, функциональных возможностей гипервизора 1303 (например, количества и типа эмулируемой виртуальной машины), и количества, и типа поддерживаемой операционной системы.

Облачная вычислительная система 1300 также содержит определенное количество различных компьютерных приложений 1307, определяющих выполнение всего, одного или более, количества операционных систем 1305. Различные компьютерные приложения 1307 могут храниться в хранилище 1301C облачной вычислительной системы 1300, и могут загружаться в память 1301B для выполнения, по мере необходимости, одновременно с предоставлением гипервизором 1303 данного экземпляра определенной виртуальной машины и соответствующей операционной системы. Следует понимать, что любое компьютерное приложение 1307, существующее для любой определенной системы 1305 может выполняться облачной вычислительной системой 1300.

Фиг. 13 также иллюстрирует определенное количество узлов 1309 (Узел1-УзелN). Узлы 1309 представляют собой экземпляры пользователей, имеющих доступ к облачной вычислительной системе 1300, для получения доступа к экземпляру определенной виртуальной машины и соответствующей операционной системе, для того, чтобы выполнять выбранное приложение 1307. Следует понимать, что облачная вычислительная система 1300 может определять и обеспечивать управление виртуальной машиной и операционной системой любым способом. Например, в некоторых случаях, каждый пользователь, имеющий доступ к облачной вычислительной системе 1300 может быть снабжен выделенной виртуальной машиной и соответствующей операционной системой, на которой впоследствии пользователь может выполнять желаемое приложение 1307. Кроме того, в некоторых случаях, множество пользователей, имеющих доступ к облачной вычислительной системе 1300, могут совместно использовать выделенную виртуальную машину и соответствующую операционную систему, на которой впоследствии каждый пользователь может выполнять желаемое приложение 1307. Работа и управление облачной вычислительной системой 1300 может быть оптимизирована для обеспечения каждого пользователя, имеющего доступ к облачной вычислительной системе 1300, наилучшим качеством сервиса, возможным с помощью данных доступных физических компонентов 1301.

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

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

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

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

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

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

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

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

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

Вычислительные системы, указанные в данном документе, могут содержать интегральные схемы, микропроцессор, персональный компьютер, сервер, распределенную вычислительную систему, коммуникационное устройство, сетевой устройство или тому подобное, и различные их комбинации. Вычислительная система может также содержать энергозависимую и/или энергонезависимую память, например, оперативное запоминающее устройство (RAM), динамическое оперативное запоминающее устройство (DRAM), статическое оперативное запоминающее устройство (SRAM), магнитные носители, оптические носители, нано-носители, жесткие диски, компакт диски, цифровые универсальные диски (DVD), и/или другие устройства, настроенные для хранения аналоговой или цифровой информации, например, базы данных. Различные примеры логики, приведенные выше, могут содержать аппаратное обеспечение, встроенное программное обеспечение, программное обеспечение, сохраненное на машиночитаемой памяти, или их комбинации. Машиночитаемый носитель, в данном контексте, полностью исключает бумажный носитель. Реализуемые на компьютере этапы способов, приведенные выше, могут содержать набор инструкций, сохраненных на машиночитаемом носителе, выполнение которых приводит к выполнению вычислительной системой этих этапов.

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

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

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

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

Изобретение также может быть реализовано в виде машиночитаемого кода на энергонезависимом машиночитаемом носителе. Энергонезависимый машиночитаемый носитель представляет собой любое устройство хранения, которое может хранить данные, которые могут быть в дальнейшем прочитаны компьютерной системой. Примеры энергонезависимых машиночитаемых носителей содержат: жесткие диски, сетевые хранилища (NAS), постоянное запоминающее устройство (ROM), оперативное запоминающее устройство, диски CD-ROM, CD-R, CD-RW, магнитные ленты и другие оптические и не оптические устройства хранения данных. Энергонезависимый машиночитаемый носитель может содержать машиночитаемый материальный носитель, распределенный среди компьютерных систем, подключенных к сети, таким образом, машиночитаемый код хранится и выполняется распределенным образом.

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

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

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

название год авторы номер документа
СПОСОБЫ И СИСТЕМЫ ДЛЯ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ОХРАНЯЕМОГО СОДЕРЖИМОГО 2002
  • Инглэнд Пол
  • Пейнадо Маркус
  • Уилт Николас П.
RU2308077C2
МЕХАНИЗМЫ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ НА ОСНОВЕ КАМЕРЫ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ УСТАНОВЛЕННЫХ НА ГОЛОВЕ ДИСПЛЕЕВ 2014
  • Стэффорд Джеффри Роджер
RU2661857C2
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СОКРАЩЕННЫХ ТРАНЗИТНЫХ УЧАСТКОВ ДЛЯ СОЗДАНИЯ СЦЕНЫ ДОПОЛНЕННОЙ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ С ПОМОЩЬЮ УСТАНАВЛИВАЕМОЙ НА ГОЛОВЕ СИСТЕМЫ 2014
  • Перри Дэвид
RU2639118C2
СИСТЕМЫ И СПОСОБЫ УМЕНЬШЕНИЯ ТРАНЗИТНЫХ УЧАСТКОВ, СВЯЗАННЫХ С НАШЛЕМНОЙ СИСТЕМОЙ 2014
  • Перри Дэвид
RU2628665C2
Алгоритм согласования видеопотока для платформы облачных игр Loudplay 2020
  • Панферов Сергей Алексеевич
  • Стародубов Виталий Юрьевич
  • Магафуров Игорь Геннадьевич
RU2758985C1
АВТОМАТИЧЕСКОЕ СОЗДАНИЕ ПРЕДЛАГАЕМЫХ МИНИ-ИГР ДЛЯ ОБЛАЧНОЙ ИГРЫ НА ОСНОВЕ ЗАПИСАННОГО ИГРОВОГО ПРОЦЕССА 2013
  • Суба Миура Виктор Октав
  • Перри Дэвид
  • Диас Филиппе
  • Йонг Кельвин
  • Гэри Натан
RU2605840C2
СПОСОБ СОЗДАНИЯ ВИДЕОИЗОБРАЖЕНИЙ КОМПЬЮТЕРНОЙ ТРЕХМЕРНОЙ ВИРТУАЛЬНОЙ СРЕДЫ 2009
  • Хайндмэн Эрн
RU2526712C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ 2018
  • Копьец, Майкл
RU2728812C1
СПОСОБЫ И СИСТЕМЫ ДЛЯ АУТЕНТИФИКАЦИИ КОМПОНЕНТОВ В ГРАФИЧЕСКОЙ СИСТЕМЕ 2003
  • Инглэнд Пол
  • Пейнадо Маркус
  • Уилт Николас П.
RU2310227C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ 2021
  • Копьец, Майкл
RU2825728C2

Иллюстрации к изобретению RU 2 617 914 C2

Реферат патента 2017 года СИСТЕМЫ И СПОСОБЫ ОБЛАЧНОЙ ОБРАБОТКИ И НАЛОЖЕНИЯ СОДЕРЖИМОГО НА ПОТОКОВЫЕ ВИДЕОКАДРЫ УДАЛЕННО ОБРАБАТЫВАЕМЫХ ПРИЛОЖЕНИЙ

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

Формула изобретения RU 2 617 914 C2

1. Система дополнения удаленно обслуживаемого приложения, содержащая:

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

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

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

3. Система дополнения удаленно обслуживаемого приложения по п. 2, в которой каждый оригинальный набор кадров с данными об элементе изображения соответствует определенному видеокадру.

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

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

6. Система дополнения удаленно обслуживаемого приложения по п. 4, в котором первое приложение представляет собой игровое приложение.

7. Система дополнения удаленно обслуживаемого приложения по п. 6, в котором одно или более ключевых графических изображений иллюстрируют статус выполнения первого приложения.

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

9. Способ дополнения удаленно обслуживаемого приложения, содержащий этапы, на которых:

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

обнаруживают ключевое графическое изображение в видеокадре;

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

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

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

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

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

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

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

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

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

15. Способ дополнения удаленно обслуживаемого приложения по п. 9, дополнительно содержащий этапы, на которых:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

22. Устройство хранения данных, хранящее программные инструкции дополнения удаленно обслуживаемого приложения по п. 16, дополнительно содержащее:

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

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

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

US 2012162255 A1, 28.06.2012
U S2012270652 A1, 25.10.2012
US 2004006767 A1, 08.01.2004
US 2005212968 A1, 29.09.2005.

RU 2 617 914 C2

Авторы

Перри Дэвид

Перейра Руй Филипе Андраде

Раймон Ноам

Даты

2017-04-28Публикация

2013-11-13Подача