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

Иллюстрации

Показать все

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

Реферат

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

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

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

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

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

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

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

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

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

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

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

Фиг. 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 может быть связан со своим собс