способ создания видеоизображений компьютерной трехмерной виртуальной среды
Классы МПК: | G06T15/00 Передача трехмерного (3D) изображения, например от модели к побитовому изображению |
Автор(ы): | ХАЙНДМЭН Эрн (CA) |
Патентообладатель(и): | РОКСТАР КОНСОРЦИУМ ЮЭс ЛП (US) |
Приоритеты: |
подача заявки:
2009-11-27 публикация патента:
27.08.2014 |
Изобретение относится к представлению видеоизображений компьютерной трехмерной виртуальной среды. Технический результат - возможность просматривать обработанные экземпляры визуализации трехмерной виртуальной среды как потоковое видео на устройствах, которые недостаточно мощны, чтобы реализовать процесс визуализации с использованием собственных ресурсов или естественным образом. Способ создания видеоизображений компьютерной трехмерной (3D) виртуальной среды включает в себя визуализацию с помощью процесса 3D визуализации итерации 3D виртуальной среды на основе данных процесса кодирования видео, причем данные из процесса кодирования видео содержат данные о предполагаемом размере экрана и скорости передачи данных видеоизображения визуализированной итерации 3D виртуальной среды, которую предполагается создать с помощью процесса кодирования видео. 19 з.п. ф-лы, 4 ил.
Формула изобретения
1. Способ создания видеоизображений компьютерной трехмерной (3D) виртуальной среды, включающий в себя визуализацию с помощью процесса 3D визуализации итерации 3D виртуальной среды на основе данных процесса кодирования видео, причем данные из процесса кодирования видео содержат данные о предполагаемом размере экрана и скорости передачи данных видеоизображения визуализированной итерации 3D виртуальной среды, которую предполагается создать с помощью процесса кодирования видео.
2. Способ по п.1, в котором данные из процесса кодирования видео содержат данные о частоте кадров, используемой в процессе кодирования видео, и в котором шаг визуализации повторяется в процессе 3D визуализации с такой частотой кадров, что частота, с которой происходит визуализация итерации 3D виртуальной среды в процессе 3D визуализации, совпадает с частотой кадров, используемой в процессе кодирования видео.
3. Способ по п.1, в котором шаг визуализации выполняется в процессе 3D визуализации в цветовом пространстве, используемом в процессе кодирования видео для кодирования видео, так, что процесс кодирования видео не нуждается в выполнении преобразования из одного цветового пространства в другое при создании видеоизображения визуализированной итерации 3D виртуальной среды.
4. Способ по п.3, в котором шаг визуализации выполняется в процессе 3D визуализации в цветовом пространстве YUV и в котором в процессе кодирования видео кодирование видео производится в цветовом пространстве YUV.
5. Способ по п.1, в котором сведения о предполагаемых размере экрана и скорости передачи данных используются в процессе 3D визуализации для выбора уровня детализации визуализированной 3D виртуальной среды, которую предполагается создать в процессе 3D визуализации.
6. Способ по п.1, в котором шаг визуализации содержит следующие шаги: создание 3D сцены 3D виртуальной среды в 3D модельном пространстве, преобразование 3D модельного пространства в пространство визуального представления; создание треугольников и визуализация треугольников.
7. Способ по п.6, в котором шаг создания трехмерной сцены 3D виртуальной среды в 3D модельном пространстве содержит следующие шаги: определение движения объектов в 3D виртуальной среде, определение перемещения местоположения и ориентации видеокамеры в 3D виртуальном пространстве и сохранение данных о векторах, связанных с движением объектов в 3D виртуальной среде и перемещением камеры в 3D виртуальной среде.
8. Способ по п.7, в котором шаг преобразования из модельного пространства в пространство визуального представления включает в себя шаг преобразования векторов из 3D модельного пространства в пространство визуального представления так, чтобы указанные векторы можно было использовать в процессе кодирования видео для выполнения оценки движения.
9. Способ по п.6, в котором на шаге визуализации треугольников используются данные из процесса кодирования видео с целью выполнения выбора текстур и фильтрации для треугольников.
10. Способ по п.1, дополнительно включающий в себя шаг кодирования с помощью процесса кодирования видео итерации 3D виртуальной среды, визуализируемой в процессе кодирования, с целью создания видеоизображения 3D визуализированной итерации 3D виртуальной среды.
11. Способ по п.10, в котором видеоизображение представляет собой потоковое видео.
12. Способ по п.10, в котором видеоизображение представляет собой архивированное видео.
13. Способ по п.10, в котором в процесс кодирования видео принимаются данные о векторах движения из процесса 3D визуализации, причем указанные данные используются в связи с определением перемещения блоков.
14. Способ по п.13, в котором данные о векторах движения преобразуются из 3D модельного пространства в пространство визуального представления так, чтобы они соответствовали движению объектов в визуальном представлении 3D виртуальной среды, которая подлежит кодированию в процессе кодирования видео.
15. Способ по п.13, в котором в процессе кодирования видео для выбора размера блоков используются данные о векторах движения из процесса 3D визуализации.
16. Способ по п.13, в котором в процессе кодирования видео с целью принятия решения о типе кадров для кодирования блоков используются данные о векторах движения из процесса 3D визуализации.
17. Способ по п.10, в котором шаг кодирования включает в себя следующие шаги: обработка видеокадров, кодирование P- и B-кадров, а также кодирование I и P-кадров.
18. Способ по п.17, в котором шаг кодирования P-кадров включает в себя шаг поиска совпадения текущего блока с блоком более раннего эталонного блока, предназначенный для определения, как текущий блок переместился относительно более раннего эталонного блока, и в котором в процессе кодирования видео для того, чтобы добиться выполнения шага поиска в местоположении, указанном, по крайней мере, одним из векторов движения, на шаге поиска используются данные о векторах движения из процесса 3D визуализации.
19. Способ по п.17, в котором шаг кодирования P-кадров включает в себя шаг оценки движения текущего блока относительно более раннего эталонного блока путем ссылки, по крайней мере, на один из векторов движения, данные о котором получены из процесса 3D визуализации.
20. Способ по п.10, в котором процесс кодирования видео конфигурируется так, чтобы были исключены шаги изменения размера визуализации итерации 3D виртуальной среды при реализации преобразования цветового пространства визуализированной итерации 3D виртуальной среды в цветовое пространство, используемое в процессе кодирования видео, и выполнения интерполяции кадров при выполнении шага кодирования итерационного экземпляра 3D виртуальной среды.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к виртуальным средам и, в частности, к способу и устройству для представления видеоизображений компьютерной трехмерной виртуальной среды.
Уровень техники
Виртуальные среды моделируют реальные или фантастические трехмерные среды и позволяют многим участникам взаимодействовать друг с другом и со структурами в указанных средах с помощью удаленных клиентов. В одном из вариантов виртуальная среда может использоваться в связи с игрой, в которой пользователь берет на себя роль персонажа и управление большинством действий персонажа в игре. В дополнение к играм виртуальные среды также используются для моделирования реальных сред обитания, чтобы предоставить пользователям интерфейс, который позволяет осуществлять онлайновое обучение, профессиональную подготовку, покупки товаров и другие типы взаимодействия между группами пользователей, а также между бизнесменами и пользователями.
В виртуальной среде реальный или фантастический мир моделируется внутри процессора и/или памяти компьютера. В общем случае виртуальная среда обладает своим собственным отдельным пространством в трехмерных координатах. Аватары, представляющие пользователей, могут перемещаться в трехмерном пространстве и взаимодействовать с объектами и другими аватарами внутри указанного трехмерного пространства. Сервер виртуальной среды поддерживает виртуальную среду и генерирует визуальное представление для каждого пользователя в зависимости от местоположения аватара пользователя внутри виртуальной среды.
Виртуальная среда может быть реализована как автономное приложение, например в виде компьютерного пакета программ для САПР или компьютерной игры. В альтернативном случае виртуальная среда может быть реализована в онлайновом формате так, чтобы многие пользователи могли действовать в виртуальной среде через компьютерную сеть, например локальную сеть или всемирную сеть, такую как Интернет.
Пользователи представляются в виртуальной среде в виде "аватара", который часто является трехмерным представлением человека или другого объекта, предназначенным для представления его в виртуальной среде. Участники взаимодействуют с программой виртуальной среды, чтобы управлять перемещением аватаров внутри виртуальной среде. Участник может управлять аватаром с помощью обычных устройств ввода, таких как мышь и клавиатура компьютера, клавишная панель, или, как вариант, можно использовать более специализированные устройства управления, например игровой контроллер.
При перемещении аватара внутри виртуальной среды визуальное представление (сцена), воспринимаемое пользователем, изменяется в соответствии с местоположением пользователя в виртуальной среде (например, местоположением аватара внутри виртуальной среды) и направлением взгляда (т.е. взгляда аватара). Трехмерную виртуальную среду визуализируют в зависимости от местоположения аватара и направлением его взгляда в виртуальной среде, при этом визуальное представление трехмерной виртуальной среды отображается для пользователя на его дисплее. Сцены отображаются для участников так, чтобы участник, управляющий аватаром, мог видеть то, что видит аватар. Кроме того, многие виртуальные среды позволяют переключать точки обзора, например с предпочтительной позиции снаружи (т.е. позади) аватара на позицию, с которой можно видеть, где аватар находится в виртуальной среде. Аватару позволяется ходить, бегать, плавать и перемещаться в виртуальной среде другими способами. Аватар также может обладать тонкими двигательными навыками, позволяющими ему поднимать и бросать объект, с помощью ключа открывать дверь и выполнять другие подобные задачи.
Передвижение внутри виртуальной среды или перемещение объекта через виртуальную среду осуществляется путем визуализации виртуальной среды в нескольких изменяющихся со временем позициях. Путем демонстрации отличных друг от друга итерационных экземпляров трехмерной виртуальной среды с большой частотой, например 30 или 60 раз в секунду, движение внутри виртуальной среды или перемещение объекта через виртуальную среду может казаться непрерывным.
Генерирование создающей полный эффект присутствия трехмерной среды с полноценным движением требует значительных возможностей обработки графики или в виде аппаратного ускорителя графики, или мощного центрального процессора (ЦП). Кроме того, визуализация трехмерной графики с полноценным движением требует программного обеспечения, которое может иметь доступ к ресурсам процессора и аппаратного ускорителя устройства. В некоторых ситуациях нецелесообразно поставлять программное обеспечение, обладающее указанными функциями (например, пользователь, просматривающий интернет-ресурсы, может установить некоторые программы, позволяющие отображать трехмерную среду, которые создадут препятствие для использования указанного программного обеспечения). Кроме того, в некоторых ситуациях пользователям может быть не разрешено устанавливать новое программное обеспечение на их устройства (мобильные устройства часто рассматриваются как некие персональные компьютеры (ПК), в частности в организациях, ориентированных на обеспечение безопасности). Аналогичным образом, не все устройства снабжены аппаратной графикой или вычислительными возможностями, достаточными для визуализации трехмерной виртуальной среды с полноценным движением. Например, многие домашние компьютеры и портативные персональные компьютеры, а также большинство обычных карманных компьютеров не обладают достаточными вычислительными возможностями, чтобы создавать трехмерную графику с полноценным движением. Поскольку эти ограничения не позволяют пользователям применять указанные типы устройств, чтобы действовать в виртуальной среде, было бы преимуществом, если бы таким пользователям была предоставлена возможность работы в трехмерной виртуальной среде с использованием вычислительных устройств указанных типов с ограниченными возможностями.
Сущность изобретения
Данный раздел "Сущность изобретения", а также раздел "Реферат изобретения" в настоящей заявке имеют своей целью представить некоторые концепции, обсуждающиеся ниже в разделе "Подробное описание изобретения". Разделы "Сущность изобретения" и "Реферат изобретения" не предназначены для очерчивания защищаемой области действия изобретения, которая описана в представленной далее формуле изобретения.
Сервер обрабатывает экземпляры визуализации трехмерной виртуальной среды как потоковое видео, которое можно затем просматривать на устройствах, недостаточно мощных, чтобы реализовать процесс визуализации с использованием собственных ресурсов или естественным образом, или на которых не установлено собственное программное обеспечение для визуализации. Процедура обработки на сервере разбита на следующие два шага: трехмерной визуализации и кодирования видео. На шаге трехмерной визуализации с целью визуализации версии виртуальной среды при соответствующей частоте кадров, с нужным размером видеоизображения, в соответствующем цветовом пространстве и с соответствующим уровнем детализации используются сведения о кодеке, целевых частоте видеокадров, размере видеоизображения и скорости передачи данных из шага кодирования видео, так, чтобы визуализированная виртуальная среда на шаге кодирования видео была оптимальной для кодирования. Аналогичным образом, на шаге кодирования видео, чтобы уменьшить сложность процесса кодирования видео, используются данные о движении из шага трехмерной визуализации вместе с оценками движения, размера макроблоков и с учетом выбранного типа кадра.
Краткое описание чертежей
Особенности настоящего изобретения, в частности, указаны в прилагаемой формуле изобретения. Настоящее изобретение иллюстрируется примерами, представленными в приведенных ниже чертежах, на которых одинаковые элементы обозначены одинаковыми ссылочными элементами. На приведенных ниже чертежах с целью иллюстрации отражены различные варианты осуществления настоящего изобретения, которые не ограничивают область действия изобретения. Чтобы не загромождать чертежи, не все компоненты обозначены на каждом чертеже. На чертежах:
на фиг.1 представлен пример функциональной схемы системы в соответствии с одним из вариантов осуществления настоящего изобретения, позволяющей пользователю иметь доступ к компьютерной трехмерной виртуальной среде;
на фиг.2 представлен пример портативного вычислительного устройства с ограниченными возможностями;
на фиг.3 представлен пример функциональной схемы визуализации в соответствии с одним из вариантов осуществления настоящего изобретения; и
на фиг.4 представлена блок-схема алгоритма визуализации трехмерной виртуальной среды и процесса кодирования видео в соответствии с одним из вариантов осуществления настоящего изобретения.
Подробное описание
В данном подробном описании приведены конкретные подробные сведения, призванные помочь полностью понять изобретение. Однако специалисту в данной области техники понятно, что настоящее изобретение можно внедрить, и не имея указанных сведений. В других примерах хорошо известные способы, процедуры, компоненты, протоколы, алгоритмы и схемы подробно не описаны, чтобы не загромождать описание изобретения.
На фиг.1 представлен пример части системы 10, где показано взаимодействие между множеством пользователей и одной или более сетевыми виртуальными средами 12. Пользователь может получить доступ к сетевой виртуальной среде 12, используя компьютер 14 с достаточной аппаратной производительностью обработки и программным обеспечением, необходимым для визуализации трехмерной виртуальной среды с полноценным движением. Пользователи могут получить доступ к виртуальной среде с помощью сети с коммутацией пакетов 18 или другой общей инфраструктуры связи.
В альтернативном случае пользователю может понадобиться получить доступ к сетевой виртуальной среде 12 с использованием вычислительного устройства с ограниченными возможностями 16 с аппаратными и/или программными средствами, недостаточными для того, чтобы визуализировать трехмерную виртуальную среду с полноценным движением. Примерами вычислительных устройств с ограниченными возможностями могут быть маломощные портативные персональные компьютеры, карманные компьютеры, сотовые телефоны, портативные игровые устройства и другие устройства, которые или не имеют достаточных вычислительных возможностей для визуализации трехмерной виртуальной среды с полноценным движением, или имеют достаточные вычислительные возможности, но не имеют требуемого программного обеспечения и т.д. Термин "вычислительное устройство с ограниченными возможностями" используется здесь для обозначения любого устройства, которое или не обладает производительностью обработки, достаточной для визуализации трехмерной виртуальной среды с полноценным движением, или не имеют нужного программного обеспечения для визуализации трехмерной виртуальной среды с полноценным движением.
Виртуальная среда 12 реализуется в сети одним или несколькими серверами виртуальной среды 20. Сервер виртуальной среды поддерживает виртуальную среду и позволяет пользователям виртуальной среды взаимодействовать с виртуальной средой и друг с другом через сеть. Сеансы связи, например общение пользователей по аудиоканалу, могут быть реализованы с помощью одного или нескольких связных серверов 22, так что пользователи могут разговаривать друг с другом и прослушивать дополнительный аудиовход при работе в виртуальной среде.
Один или несколько серверов визуализации 24 предназначены для обеспечения доступа к виртуальной среде пользователям, имеющим вычислительные устройства с ограниченными возможностями. Серверы визуализации 24 реализуют процессы визуализации для каждого из вычислительных устройств с ограниченными возможностями 16 и преобразуют визуализированную трехмерную виртуальную среду в видеоданные, поток которых передается в вычислительное устройство с ограниченными возможностями через сеть 18. Вычислительное устройство с ограниченными возможностями может обладать недостаточной вычислительной мощностью, и/или на нем не установлено программное обеспечение для того, чтобы визуализировать трехмерную виртуальную среду с полноценным движением, однако оно может обладать достаточной вычислительной мощностью, чтобы декодировать и отображать на экране видео с полноценным движением. Таким образом, серверы визуализации создают видеомост, позволяющий пользователям вычислительных устройств с ограниченными возможностями работать с трехмерной виртуальной средой с полноценным движением.
Кроме того, сервер визуализации 24 может создавать видеоизображения трехмерной виртуальной среды для архивных целей. В данном варианте осуществления настоящего изобретения рассматривается вариант скорее сохранения потока видеоданных для последующего воспроизведения, чем передачи его в реальном времени на вычислительное устройство с ограниченными возможностями 16. Так как процесс кодирования визуализированных данных в видеоданные одинаков в обоих случаях, вариант осуществления настоящего изобретения будет описан в основном на примере создания потокового видео. Однако тот же самый процесс может использоваться для создания видео для хранения в памяти. Аналогичным образом, когда пользователь компьютера 14, имеющего достаточную производительность обработки и установленное программное обеспечение, намерен записать свое взаимодействие с виртуальной средой, вариант объединенного процесса трехмерной визуализации и кодирования видео для того, чтобы пользователь мог записать свои действия, выполняемые в виртуальной среде, может быть реализован скорее на компьютере 14, чем на сервере 24.
В примере, представленном на фиг.1, сервер виртуальной среды 20 подает входные данные (стрелка 1) на компьютер 14, чтобы визуализировать виртуальную среду для пользователя. Там, где визуальное представление виртуальной среды пользователя компьютера может изменяться в зависимости от местоположения и точки обзора аватара пользователя, вход (стрелка 1) будет уникальным для каждого пользователя. Там, где пользователи просматривают виртуальную среду через одну и ту же видеокамеру, каждый компьютер может генерировать сходное визуальное представление трехмерной виртуальной среды.
Аналогичным образом, сервер виртуальной среды 20 также подает входные данные того же типа, что подаются на компьютеры 14 (стрелка 1), на серверы визуализации 24 (стрелка 2). Это позволяет серверу визуализации 24 визуализировать трехмерную виртуальную среду с полноценным движением для каждого из вычислительных устройств с ограниченными возможностями 16, поддерживаемых сервером визуализации. Сервер визуализации 24 реализует процесс трехмерной визуализации с полноценным движением для каждого поддерживаемого пользователя и преобразует выход пользователя в потоковое видео. Затем потоковое видео направляется в вычислительное устройство с ограниченными возможностями через сеть 18 так, что пользователи могут видеть трехмерную виртуальную среду на своих вычислительных устройствах с ограниченными возможностями.
Имеются и другие ситуации, в которых виртуальная среда поддерживает точку обзора третьего лица с набора местоположений стационарных видеокамер. Например, виртуальная среда может содержать по одной стационарной видеокамере на комнату. В этом случае сервер визуализации может визуализировать виртуальную среду для каждой из стационарных видеокамер, которые используются хотя бы одним пользователем, и затем передает поток видеоданных, связанных с указанной видеокамерой, каждому пользователю, который в данный момент просматривает виртуальную среду через указанную видеокамеру. Например, в контексте презентации каждому зрителю может быть представлено одно и то же визуальное представление докладчика через стационарную видеокамеру в аудитории. В этом примере и других таких же ситуациях сервер визуализации может визуализировать трехмерную виртуальную среду один раз для группы зрителей, а в процессе кодирования видео может закодировать видео так, чтобы видео можно было направлять каждому из зрителей с помощью кодека, соответствующего данному конкретному зрителю (например, с соответствующими частотой видеокадров, скоростью передачи данных, разрешением и т.д.). Это позволяет для отправки пользователям трехмерную виртуальную среду визуализировать один раз, а видео кодировать несколько раз. В этой связи заметим, что там, где конфигурация множества зрителей настроена на прием потока видеоданных одного и того же типа, для однократного кодирования видео требуется только процесс кодирования видео.
Там, где имеется множество пользователей, работающих с виртуальной средой, возможно, что различным пользователям может потребоваться получать видео в формате с разной частотой кадров и скоростью передачи данных. Например, одна из групп пользователей может получать видео при относительно низкой, а другая группа - при относительно высокой скорости передачи данных. Несмотря на то, что все пользователи просматривают трехмерную виртуальную среду через одну и ту же видеокамеру, при визуализации трехмерной виртуальной среды для каждой из различных скоростей кодирования видео могут, если необходимо, использоваться различные процессы трехмерной визуализации.
Компьютер 14 содержит процессор 26 и, как вариант, графическую карту 28. Компьютер также содержит память, в которой хранится одна или более компьютерных программ, которые, будучи загружены в процессор, позволяют пользователю создавать трехмерную виртуальную среду с полноценным движением. Там, где компьютер содержит графическую карту 28, часть обработки, связанной с созданием трехмерной виртуальной среды с полноценным движением, может быть реализована графической картой, что позволяет уменьшить нагрузку на процессор 26.
В примере, представленном на фиг.1, компьютер 14 содержит клиент виртуальной среды 30, который вместе с сервером виртуальной среды 20 создает трехмерную виртуальную среду для пользователя. Пользовательский интерфейс 32 с виртуальной средой позволяет пользователю вводить данные для управления свойствами виртуальной среды. Например, пользовательский интерфейс может предоставить инструментальную панель с элементами управления, которую пользователь может использовать для управления своим аватаром в виртуальной среде и другими свойствами виртуальной среды. Пользовательский интерфейс 32 может быть частью клиента виртуальной среды 30 или может быть реализован в виде отдельного процесса. Отдельный клиент виртуальной среды может потребоваться для каждой виртуальной среды, к которой пользователь намерен получить доступ, хотя конкретный клиент виртуальной среды может быть предназначен для выполнения функций интерфейса с несколькими серверами виртуальной среды. Связной клиент 34 предназначен для предоставления пользователю канала связи с другими пользователями, которые также участвуют в использовании компьютерной трехмерной виртуальной среды. Связной клиент может быть частью клиента виртуальной среды 30, пользовательского интерфейса 32 или может быть отдельным процессом, выполняющимся на компьютере 14. Пользователь может управлять своим аватаром внутри виртуальной среды и другими свойствами виртуальной среды с помощью пользовательских устройств ввода 40. Визуальное представление визуализированной виртуальной среды представляется пользователю с помощью дисплея и/или звукового устройства 42.
Пользователь может использовать устройства управления, такие как компьютерные клавиатура и мышь, для управления передвижением аватара внутри виртуальной среды. Обычно клавиши на клавиатуре используются для управления перемещением аватара, а мышь - для управления углом наклона видеокамеры и направлением ее перемещения. Одним общим набором букв, который часто используется для управления аватаром, является WASD, хотя другие клавиши также обычно используются для выполнения определенных задач. Пользователь может удерживать нажатой клавишу W, чтобы, например, заставить свой аватар ходить, а мышь использовать для изменения направления, в котором аватар идет. Разработаны и другие многочисленные устройства, такие как сенсорные экраны, специальные игровые контроллеры, джойстики и т.д. Со временем было разработано много различных способов управления игровой средой и другими типами виртуальных сред. Примерами разработанных устройств ввода являются клавишные панели, клавиатуры, световые перья, мышь, игровые контроллеры, микрофоны, сенсорные пользовательские устройства ввода и устройства ввода других типов.
Вычислительное устройство с ограниченными возможностями 16, такое как компьютер 14, содержит процессор 26 и память, в которой хранится одна или более компьютерных программ, которые, будучи загружены в процессор, позволяют компьютеру действовать в трехмерной виртуальной среде. Однако в отличие от процессора 26 компьютера 14 процессор 26 в вычислительном устройстве с ограниченными возможностями или недостаточно мощный, чтобы визуализировать трехмерную виртуальную среду с полноценным движением, или не имеет доступа к необходимому программному обеспечению, позволяющему визуализировать трехмерную виртуальную среду с полноценным движением. Соответственно, чтобы дать пользователю вычислительного устройства с ограниченными возможностями 16 работать с трехмерной виртуальной средой с полноценным движением, вычислительное устройство с ограниченными возможностями 16 получает потоковое видео, представляющее визуализированную трехмерную виртуальную среду, от одного из серверов визуализации 24.
Вычислительное устройство с ограниченными возможностями 16 в зависимости от конкретного варианта осуществления настоящего изобретения может содержать несколько частей программного обеспечения, позволяющих действовать в виртуальной среде. Например, вычислительное устройство с ограниченными возможностями 16 может содержать клиент виртуальной среды, подобный клиенту компьютера 14. Клиент виртуальной среды может быть адаптирован для работы в более ограниченной среде обработки данных вычислительного устройства с ограниченными возможностями. В альтернативном случае, как показано на фиг.1, вычислительное устройство с ограниченными возможностями 16 может использовать видеодекодер 31 вместо клиента виртуальной среды 30. Видеодекодер 31 декодирует потоковое видео, представляющее виртуальную среду, которая визуализирована и закодирована сервером визуализации 24.
Кроме того, вычислительное устройство с ограниченными возможностями содержит пользовательский интерфейс, предназначенный для сбора входных данных от пользователей и обеспечения пользователям возможности ввода данных на сервер визуализации 24, что позволяет каждому пользователю управлять своим аватаром внутри виртуальной среды и другими функциями виртуальной среды. Пользовательский интерфейс может предоставлять такую же инструментальную панель, как и пользовательский интерфейс на компьютере 14, или может предоставлять пользователю ограниченный набор функций на основе ограниченного набора имеющихся элементов управления на вычислительном устройстве с ограниченными возможностями. Пользователь вводит данные через пользовательский интерфейс 32, и конкретные введенные пользователем данные подаются на сервер, который выполняет визуализацию для пользователя. Сервер визуализации может выдавать по мере необходимости указанные входные данные на сервер виртуальной среды, где они воздействуют на других пользователей трехмерной виртуальной среды.
В альтернативном случае, вычислительное устройство с ограниченными возможностями может использовать веб-браузер 36 и подключаемый программный модуль видео 38, чтобы предоставить вычислительному устройству с ограниченными возможностями возможность отображать на экране потоковое видео с сервера визуализации 24. Подключаемый программный модуль видео дает возможность декодировать видеоданные и отображать видео на экране вычислительного устройства с ограниченными возможностями. В данном варианте осуществления настоящего изобретения веб-браузер или подключаемый программный модуль также функционируют как пользовательский интерфейс. Как и компьютер 14, вычислительное устройство с ограниченными возможностями 16 может содержать связной клиент 34, позволяющий пользователю общаться с другими пользователями трехмерной виртуальной среды.
На фиг.2 представлен пример вычислительного устройства с ограниченными возможностями 16. Как показано на фиг.2, обычно карманное устройство содержит пользовательские устройства ввода 40, такие как клавишная панель и/или клавиатура 70, кнопки специальных функций 72, трекбол 74, видеокамеру 76 и микрофоны 78. Кроме того, устройства этого типа обычно содержат цветной ЖК-дисплей 80 и громкоговоритель 82. Вычислительное устройство с ограниченными возможностями 16 также снабжено устройством обработки, например процессором, аппаратными средствами и антенной, которые дают возможность осуществлять обмен данными между вычислительным устройством с ограниченными возможностями и одной или несколькими беспроводными сетями связи (например, сотовой сетью или сетью 802.11), а также возможность выполнять на них конкретные программные приложения. Разработано много типов вычислительных устройств с ограниченными возможностями, и фиг.2 приведена просто в качестве примера типового вычислительного устройства с ограниченными возможностями.
Как показано на фиг.2, вычислительное устройство с ограниченными возможностями может содержать ограниченные элементы управления, которые могут ограничивать тип входных данных, которые пользователь может вводить в пользовательский интерфейс, чтобы управлять действиями своего аватара внутри виртуальной среды и другими свойствами виртуальной среды. Соответственно, пользовательский интерфейс может быть адаптирован так, чтобы различные элементы управления на различных устройствах можно было использовать для управления одними и теми же функциями внутри виртуальной среды.
При работе сервер виртуальной среды 20 снабжает сервер визуализации 24 информацией о виртуальной среде, чтобы дать возможность серверу визуализации визуализировать виртуальные среды для каждого из вычислительных устройств с ограниченными возможностями. На сервере визуализации 24 работает клиент виртуальной среды 30, соответствующий требованиям вычислительного устройства с ограниченными возможностями 16, поддерживаемого сервером, предназначенный для визуализации виртуальной среды для вычислительных устройств с ограниченными возможностями. Пользователи вычислительных устройств с ограниченными возможностями взаимодействуют с пользовательскими устройствами ввода 40 с целью управления своими аватарами в виртуальной среде. Входные сигналы, вводимые с помощью пользовательских устройств ввода 40, принимаются пользовательским интерфейсом 32, клиентом виртуальной среды 30 или веб-браузером и передаются обратно на сервер визуализации 24. Сервер визуализации 24 использует входные данные примерно таким же способом, как и клиент виртуальной среды 30 на компьютере 14, чтобы пользователь мог управлять своим аватаром в виртуальной среде. Сервер визуализации 24 визуализирует трехмерную виртуальную среду, создает потоковое видео и передает его обратно на вычислительное устройство с ограниченными возможностями. Видео выдается на дисплей пользователя и/или аудиоустройство 42 так, чтобы пользователь мог действовать в трехмерной виртуальной среде.
На фиг.3 представлен пример функциональной схемы сервера визуализации 24. В варианте осуществления настоящего изобретения, представленном на фиг.3, сервер визуализации 24 включает в себя процессор 50, содержащий логическую схему управления 52, которая после загрузки программного обеспечения из памяти 54 вынуждает сервер визуализации визуализировать трехмерные виртуальные среды для клиентов вычислительного устройства с ограниченными возможностями, преобразует визуализированную трехмерную виртуальную среду в потоковое видео, и выдает на выход потоковое видео. В состав сервера 24 могут быть включены одна или несколько графических карт 56, предназначенных для выполнения определенных функций процесса визуализации. В некоторых вариантах осуществления настоящего изобретения виртуально все процессы трехмерной визуализации и кодирования видео, от трехмерного кодирования до кодирования видео могут выполняться современными программируемыми графическими картами. В ближайшем будущем графические процессоры могут стать идеальной платформой для выполнения объединенных процессов визуализации и кодирования.
В иллюстрируемом варианте осуществления настоящего изобретения сервер визуализации содержит объединенное устройство трехмерной визуализации и кодирования видео 58. Объединенное устройство трехмерной визуализации и кодирования видео обеспечивает выполнение процесса визуализации трехмерной виртуальной среды, соответствующего требованиям вычислительного устройства с ограниченными возможностями. Информация в процессе трехмерной визуализации используется одновременно и для процесса кодирования видео, так что процесс кодирования видео может повлиять на процесс трехмерной визуализации. Дополнительные сведения о выполнении объединенного процесса трехмерной визуализации и кодирования видео 58 приведены ниже в связи с фиг.4.
Север визуализации 24 также содержит диалоговое программное обеспечение 60, предназначенное для приема входных данных от пользователей вычислительных устройств с ограниченными возможностями и позволяющее пользователям управлять своими аватарами в виртуальной среде. Как вариант, сервер визуализации 24 может содержать также дополнительные компоненты. Например, на фиг.3 сервер визуализации 24 содержит звуковой компонент 62, дающий возможность серверу осуществлять микширование звука и соответствующий требованиям вычислительного устройства с ограниченными возможностями. Таким образом, в данном варианте осуществления настоящего изобретения сервер визуализации выполняет функции связного сервера 22, а также выполняет визуализацию, соответствующую требованиям его клиента. Настоящее изобретение не ограничено вариантом осуществления настоящего изобретения такого рода, например многие функции могут быть реализованы одним комплектом серверов или различные функции могут быть разделены и реализованы отдельными группами серверов, как показано на фиг.1.
На фиг.4 представлен объединенный процесс трехмерной визуализации и кодирования видео, который может быть реализован сервером визуализации 24 в соответствии с одним из вариантов осуществления настоящего изобретения. Подобным же образом объединенный процесс трехмерной визуализации и кодирования видео может быть реализован сервером визуализации 24 или компьютером 14 так, чтобы можно было записать действия пользователя в трехмерной виртуальной среде.
Как показано на фиг.4, когда трехмерная виртуальная среда должна быть визуализирована с целью отображения на экране и последующего кодирования в видеоданные для передачи через сеть, объединенный процесс трехмерной визуализации и кодирования видео логически проходит через несколько отдельных этапов (на фиг.4 обозначены как 100-160). На практике функциональность различных этапов можно поменять местами друг с другом или изменить порядок этапов в зависимости от конкретного варианта осуществления настоящего изобретения. Кроме того, как можно видеть, в различных реализациях процессы визуализации и кодирования несколько отличаются и, следовательно, могут быть другие методы описания способов, какими трехмерная виртуальная среда визуализируется и затем кодируется для хранения или передачи зрителю.
Как показано на фиг.4, первый этап процесса трехмерной визуализации и кодирования видео предназначен для создания модельного визуального представления (сцены) трехмерной виртуальной среды (100). Чтобы сделать это, в процессе визуализации сначала создается первоначальная модель виртуальной среды, а в последующих итерациях происходит просмотр данных сцен и/или геометрии с целью поиска движения объектов и других изменений, которые могут быть выполнены в трехмерной модели. Процесс трехмерной визуализации направлен также на нацеливание и перемещение видеокамеры, создающей изображение сцены, для определения точки обзора в пределах трехмерной модели. Знание местоположения и ориентации видеокамеры позволяет в процессе трехмерной визуализации выполнить проверку видимости объекта, чтобы определить, какие объекты закрываются другими элементами трехмерной модели.
В соответствии с вариантом осуществления настоящего изобретения данные о перемещении видеокамеры или изменении ее местоположения и направления движения, а также о видимом движении объекта должны сохраняться в памяти для использования в процессе кодирования видео (обсуждается ниже), поэтому эту информацию можно использовать вместо оценки перемещения на этапе кодирования видео. В частности, поскольку в данных процесса трехмерной визуализации имеются сведения о том, какие объекты перемещаются и какое движение создается, эта информация может использоваться вместо оценки движения или как руководство для оценки движения, чтобы упростить часть процесса кодирования видео, связанную с оценкой движения. Таким образом, информация из процесса трехмерной визуализации может использоваться для облегчения кодирования видео.
Кроме того, поскольку процесс кодирования видео выполняется в связи с процессом трехмерной визуализации, информация из процесса кодирования видео может использоваться для выбора способа, каким клиент виртуальной среды визуализирует виртуальную среду, так, чтобы визуализированная виртуальная среда была настроена на оптимальное ее кодирование в процессе кодирования видео. Например, в процессе трехмерной визуализации сначала выбирается уровень детализации, который будет принят для модельного визуального представления трехмерной виртуальной среды. Уровень детализации влияет на то, сколько деталей вводится в свойства виртуальной среды. Например, кирпичная стена, расположенная очень близко к зрителю, может быть текстурирована так, что будут видны отдельные кирпичи, разделенные серыми полосками строительного раствора. Та же самая кирпичная стена при просмотре с большого расстояния может быть просто окрашена в чистый красный цвет.
Аналогичным образом, некоторые дальние объекты могут показаться слишком маленькими, чтобы включать их в модельное визуальное представление виртуальной среды. Когда человек перемещается через виртуальную среду, эти объекты всплывают на экране, когда аватар приближается достаточно близко к ним, чтобы их можно было включить в модельное визуальное представление (сцену). Выбор уровня детализации, который следует принять для данного модельного визуального представления, производится в начале процесса, чтобы исключить объекты, которые в итоге будут слишком малы для введения в заключительную визуализированную сцену, поэтому не нужен процесс визуализации, который к тому же требует затрат ресурсов на моделирование таких объектов. Это позволяет настроить процесс визуализации так, чтобы избежать расхода ресурсов на моделирование объектов, представляющих элементы, которые в итоге окажутся слишком малыми, чтобы их можно было видеть при данном ограниченном разрешении потокового видео.
В соответствии с одним из вариантов осуществления настоящего изобретения, поскольку из данных процесса трехмерной визуализации можно извлечь данные о предполагаемых целевых размере видеоизображения и скорости передачи данных, которые будет использоваться в процессе декодирования видеоданных для передачи видео на вычислительное устройство с ограниченными возможностями, целевые размер видеоизображения и скорость передачи данных могут использоваться для установки уровня детализации при создании первоначального модельного визуального представления. Например, если в данных процесса кодирования видеоданных содержатся сведения о том, что видео будет передаваться на мобильное устройство, в котором используется разрешение 320×240 пикселей, то предполагаемый уровень разрешения видео будет передан в процесс трехмерной виртуализации, чтобы обеспечить переключение процесса трехмерной виртуализации на уровень детализации, не позволяющий в процессе трехмерной визуализации выдавать на экран очень детализированное модельное визуальное представление, но обеспечивающий впоследствии восстановление всех деталей, опущенных в процессе кодирования видео. И наоборот, если в данных процесса кодирования видео содержатся сведения о том, что видео будет передаваться на очень мощный ПК с использованием разрешения 960×540 пикселей, то для процесса визуализации может быть выбран гораздо больший уровень детализации.
Скорость передачи данных также влияет на уровень детализации, который может быть предоставлен зрителю. В частности, при низких скоростях передачи данных мелкие детали поточного видео на экране зрителя начинают смазываться, что ограничивает степень детализации, которая может быть достигнута на выходе потока видеоданных в процессе кодирования видео. Соответственно, знание целевой скорости передачи данных помогает в процессе трехмерной визуализации выбрать уровень детализации, позволяющий в результате создать модельное визуальное представление, которое достаточно детализировано, но без избыточных деталей, учитывая предельную скорость передачи видео для просмотра зрителем. Вдобавок к выбору объектов для включения в трехмерную модель уровень детализации настраивается путем регулирования разрешения текстур (выбора MIP-карт с меньшим разрешением) до значения, соответствующего указанным разрешению видео и скорости передачи данных.
После создания представления трехмерной модели виртуальной среды, процесс трехмерной визуализации переходит на этап геометрии (110), во время которого модельное визуальное представление преобразуется из модельного пространства в пространство визуального представления. Во время этого этапа модельное визуальное представление трехмерной визуальной среды преобразуется на основе данных о видеокамере и визуальных представлений объектов так, чтобы можно было вычислить и вырезать необходимую проекцию сцены. Это приводит к преобразованию трехмерной модели виртуальной среды на основе предпочтительной точки обзора видеокамеры в конкретный момент времени в двухмерный снимок, который демонстрируется на дисплее пользователя.
Процесс визуализации при моделировании полноценного движения трехмерной виртуальной среды может выполняться много раз в секунду. В соответствии с вариантом осуществления настоящего изобретения частота видеокадров, используемая в кодеке для передачи видео зрителю, передается в процесс визуализации, чтобы в процессе визуализации визуализация происходила с такой же частотой кадров, что и у видеокодера. Например, если процесс кодирования видео осуществляется с частотой 24 кадра в секунду, то значение данной частоты кодирования кадров может быть передано в процесс виртуализации, чтобы задать для процесса визуализации визуализацию с частотой 24 кадра в секунду. Аналогичным образом, если процесс виртуализации осуществляется с частотой 60 кадров в секунду, то данная частота кодирования кадров может быть передана в процесс виртуализации, чтобы визуализация в процессе визуализации происходила с частотой 60 кадров в секунду. Кроме того, посредством визуализации при той же частоте кадров, что частота кодирования, можно избежать дрожания и/или дополнительной обработки, выполняемой для интерполяции кадров, которая может понадобиться при несовпадении частоты визуализации с частотой кодирования.
В соответствии с одним из вариантов осуществления настоящего изобретения данные о векторах движения и точке обзора видеокамеры, которые были сохранены в памяти при создании модельного визуального представления, также преобразуются в пространство визуального представления. Преобразование векторов движения из пространства модели в пространство визуального представления позволяет использовать векторы движения в процессе кодирования видео в качестве приближения для направления движения, что более подробно будет обсуждаться ниже. Например, если перемещение объекта происходит в трехмерном пространстве, перемещение этого объекта следует перекодировать так, чтобы показать, как движение выглядит с точки обзора видеокамеры. Иначе говоря, перемещение объекта в пространстве трехмерной виртуальной среды может быть перекодировано в двумерное пространство, которое отображается на экране пользователя. Аналогичным образом векторы движения перекодируются так, чтобы они соответствовали перемещению объектов по экрану и вместо оценки движения в процессе кодирования видео могли использоваться векторы движения.
Когда геометрия задана, в процессе трехмерной визуализации создаются треугольники (120) для представления поверхностей виртуальной среды. В процессе трехмерной визуализации обычно обрабатываются только визуализируемые треугольники, так, что все поверхности трехмерной виртуальной среды виртуальной среды 3D выстилаются мозаикой, а те треугольники, которые не видны с точки обзора видеокамеры, отбрасываются. На этапе создания треугольников в процессе трехмерной визуализации создается список треугольников, которые должны быть визуализированы. Во время этого этапа выполняются обычные операции, такие как расчет наклона и/или дельты и построчное преобразование.
Затем в процессе трехмерной визуализации визуализируются треугольники (130), чтобы создать изображение, которое отображается на дисплее 42. Визуализация треугольников обычно включает в себя затенение треугольников, добавление текстуры, вуали и другие эффекты, например буферизация глубины и сглаживание. Затем треугольники отображаются как обычно.
В процессе визуализации трехмерной виртуальной среды визуализация производится в цветовом пространстве RGB (Red Green Blue - красный, зеленый, синий), которое используется в компьютерных мониторах для отображения данных. Однако поскольку трехмерная виртуальная среда должна кодироваться в потоковое видео в процессе кодирования видео, а не в процессе визуализации виртуальной среды в цветовом пространстве RGB, то в процессе трехмерной визуализации, осуществляемом сервером визуализации, виртуальная среда визуализируется в цветовом пространстве YUV (Y - яркость, U, V - цветоразностные сигналы). Цветовое пространство YUV содержит один компонент - "яркость" (Y) и два цветовых компонента (U и V). В процесс кодирования видео, видео из цветового пространства RGB обычно преобразуется в цветовое пространство YUV до выполнения кодирования. Благодаря визуализации в цветовом пространстве YUV, а не в цветовом пространстве RGB указанный процесс преобразования может быть исключен, что позволяет повысить производительность процесса кодирования видео.
Кроме того, в соответствии с очередным аспектом настоящего изобретения процессы выбора текстуры и фильтрации настраиваются для целевых видео и скорости передачи данных. Как отмечено выше, в одном из процессов, выполняемых на этапе визуализации (130), выполняется наложение текстуры на треугольники. Текстура - это реальный внешний вид поверхности треугольника. Таким образом, например, чтобы визуализировать треугольник, который предполагается рассматривать как часть кирпичной стены, на треугольник накладывается текстура кирпичной стены. Текстура накладывается на поверхность и наклоняется в зависимости от предпочтительной точки обзора видеокамеры так, чтобы обеспечить постоянное трехмерное визуальное представление.
Во время процесса текстурирования можно размыть текстуру в зависимости от конкретного угла треугольника относительно предпочтительной точки обзора видеокамеры. Например, кирпичная текстура, наложенная на треугольник, который вытянут под очень косым углом внутри визуального представления трехмерной виртуальной среды, может быть очень расплывчатой в зависимости от ориентации треугольника в сцене. Следовательно, текстуру для конкретных поверхностей можно регулировать так, чтобы использовать различные МТР-карты, что позволяет регулировать уровень детализации для треугольника с целью устранения сложностей, с которыми маловероятно, но все-таки может встретиться зритель. В соответствии с одним из вариантов осуществления настоящего изобретения на разрешение текстуры (выбор соответствующей MIP-карты) и алгоритм фильтрации текстур оказывают влияние целевые разрешение при кодировании видео и скорость передачи данных. Это аналогично настройке уровня детализации, обсуждавшейся выше в связи с первоначальным этапом создания трехмерной сцены (100), но применяется на основе треугольников для обеспечения индивидуального создания визуализированных треугольников с уровнем детализации, который становится виден после кодирования в потоковое видео в процессе кодирования видео.
Визуализация треугольников завершает процесс визуализации. Обычно в этот момент трехмерная виртуальная среда выводится на дисплей пользователя. Однако, для целей архивации видео или для вычислительных устройств с ограниченными возможностями эта визуализированная трехмерная виртуальная среда кодируется в потоковое видео в процессе кодирования видео для передачи. За прошедшее время было разработано много различных процессов кодирования видео, хотя в настоящее время в более производительных процессах кодирования видео кодирование обычно чаще осуществляется путем поиска движения объектов внутри сцены, чем просто передачей данных о пикселях в полностью обновленную сцену в каждом кадре. В последующем обсуждении будет описано кодирование видео в стандарте MPEG. Данное изобретение не ограничено указанным конкретным вариантом осуществления настоящего изобретения, т.к. могут быть использованы и другие виды процессов кодирования видео. Как показано на фиг.4, процесс кодирования видео в стандарте MPEG обычно включает в себя обработку видеокадров (140), кодирование Р-кадров (с предсказанием) и В-кадров (двунаправленное с предсказанием) (150), а также I-кадров (внутрикадровое) (160). I-кадры являются сжатыми, но не зависят от других кадров, подлежащих распаковыванию.
Обычно в процессе кодирования видео (140) видеопроцессор изменяет размер изображения трехмерной виртуальной среды, визуализируемой в процессе трехмерной визуализации, в соответствии с целевыми размером видеоизображения и скоростью передачи данных. Однако поскольку целевые размер видеоизображения и скорость передачи данных использовались в процессе трехмерной визуализации для визуализации трехмерной виртуальной среды при соответствующем размере видеоизображения и с уровнем детализации, настроенным для целевой скорости передачи данных, видеокодер может исключить этот процесс. Аналогичным образом, видеокодер обычно также выполняет преобразование цветового пространства из RGB в YUV, чтобы подготовить кодирование визуализированной виртуальной среды в потоковое видео. Однако как отмечено выше, в соответствии с вариантом осуществления настоящего изобретения процесс визуализации конфигурируется так, чтобы визуализация происходила в цветовом пространстве YUV, поэтому данный процесс преобразования в процессе кодирования видеокадров может быть исключен. Таким образом, путем передачи информации из процесса кодирования видео в процесс трехмерной визуализации последний может быть настроен так, чтобы уменьшить сложность процесса кодирования видео.
В процессе кодирования видео также настраивается размер макроблоков, используемых для кодирования видео, в зависимости от векторов движения и типа выполняемого кодирования. Стандарт MPEG2 реализуется на матрицах размером 8×8 пикселей, называемых блоками. Матрица из 2×2 блоков обычно называется макроблоком. В процессах кодирования других типов могут использоваться макроблоки другого размера, и размер макроблока можно также регулировать в зависимости от количества движения, происходящего в виртуальной среде. В соответствии с одним из вариантов осуществления настоящего изобретения размер макроблока можно регулировать в зависимости от данных о векторах движения таки образом, что количество движения, происходящего между кадрами, определяемое из векторов движения, можно использовать для воздействия на размер макроблока, используемого в процессе кодирования.
Кроме того, на этапе обработки видеокадров выбирается тип кадра, используемого для кодирования макроблока. Например, в стандарте MPEG2 имеется несколько типов кадров. I-кадры кодируются без предсказания, Р-кадры могут кодироваться с предсказанием от предыдущих кадров, а В-кадры (двунаправленные) могут кодироваться с использованием предсказания как от предыдущих, так и от последующих кадров.
При обычном кодировании видео в стандарте MPEG2 данные, представляющие собой макроблоки значений пикселей для кодируемого кадра, подаются и на схему вычитания, и на схему оценки движения. Схема оценки движения сравнивает каждый из указанных новых макроблоков с сохраненными в памяти макроблоками предыдущей итерации. Она ищет в предыдущей итерации макроблок, который максимально совпадает с новым макроблоком. Затем схема оценки движения рассчитывает вектор движения, отражающий горизонтальное и вертикальное движение от кодируемого макроблока в область макроблока совпадающего размера из предыдущей итерации.
В соответствии с вариантом осуществления настоящего изобретения для определения движения объектов в кадре вместо использования оценки движения на основе данных пикселей предлагается использовать сохраненные в памяти данные о векторах движения. Как отмечено выше, данные о перемещении видеокамеры и видимого объекта сохраняются в памяти на этапе создания трехмерной сцены (100) и затем преобразуются в пространство визуального представления на этапе геометрии (110). Эти преобразованные векторы используются в процессе кодирования видео для определения движения объектов внутри сцены. Векторы движения могут использоваться взамен оценки движения или в целях наведения в процессе оценки движения на этапе обработки видеокадров, чтобы упростить процесс кодирования видео. Например, если преобразованный вектор движения показывает, что бейсбольный мяч внутри сцены переместился на 12 пикселей влево, преобразованный вектор движения может использоваться в процессе оценки движения для начала поиска блока из пикселей на 12 пикселей влево от того места, где он был расположен в предыдущем кадре. В альтернативном случае преобразованный вектор движения может использоваться вместо оценки движения, чтобы просто перевести блок пикселей, связанный с бейсбольным мячом, на 12 пикселей влево, при этом не требуется, чтобы видеокодер также выполнял сравнение пикселей в целях поиска блока в данном местоположении.
В стандарте MPEG 2 схема оценки движения также считывает указанный совпадающий макроблок (называемый предсказанным макроблоком) из памяти эталонных изображений и посылает его на схему вычитания, которая вычитает его поочередно по одному пикселю из нового макроблока, поданного на вход кодера. При этом формируется ошибка предсказания или разностный сигнал, который отражает разность между предсказанным макроблоком и кодируемым реальным макроблоком. Разностный сигнал преобразуется из пространственной области с помощью двухмерного преобразования DCT (Discrete Cosine Transform - дискретное косинусное преобразование), которое включает в себя раздельные вертикальное и горизонтальное преобразования DCT. Затем DCT-коэффициенты разностного сигнала квантуются, чтобы уменьшить число битов, необходимых для представления каждого коэффициента.
Квантованные DCT-коэффициенты кодируется с использованием метода Хаффмана на уровне выполнения, что дополнительно уменьшает среднее число битов на коэффициент. Закодированные DCT-коэффициенты разностного сигнала ошибки объединяются с данными о векторах движения и другой дополнительной информацией (включая индикацию I, P или В изображения).
В случае Р-кадров квантованные DCT-коэффициенты также переходят во внутренний цикл, который отражает работу декодера (декодера внутри кодера). Разностный сигнал подвергается обратному квантованию и обратному DCT-преобразованию. Предсказанный макроблок, считанный из памяти эталонных кадров, поочередно по одному пикселю добавляется обратно к разности и снова сохраняется в памяти, чтобы служить в качестве эталона для предсказания последующих кадров. Указанный объект должен содержать данные в памяти эталонных кадров кодера, совпадающие с данными в памяти эталонных кадров декодера. В-кадры не сохраняются в качестве эталонных кадров.
При кодировании I-кадров используется тот же процесс, однако не выполняется никакой оценки движения, и вход (-) схемы вычитания устанавливается в 0. В этом случае квантованные DCT-коэффициенты представляют преобразованные значения пикселей, а не разностные значения, как было в случае Р и В-кадров. Как и в случае с Р-кадрами, декодированные Т-кадры сохраняются в качестве эталонных кадров.
Хотя в описании приводится пример конкретного процесса на основе стандарта MPEG 2), изобретение не ограничено указанным конкретным вариантом осуществления настоящего изобретения и в зависимости от варианта осуществления настоящего изобретения могут использоваться другие шаги кодирования. Например, в стандартах MPEG 4 и VC-1 используется сходный, но в чем-то даже лучший процесс кодирования. Могут применяться эти и другие виды процессов кодирования, и изобретение не ограничено только вариантами осуществления настоящего изобретения, в которых используется указанный определенный процесс кодирования. Как отмечено выше, в соответствии с настоящим изобретением данные о движении объектов внутри трехмерной виртуальной среды могут быть получены и использованы во время процесса кодирования видео для создания более эффективного процесса оценки движения на этапе кодирования видео. Конкретный применяемый процесс кодирования в этом отношении зависит от конкретной реализации. Указанные векторы движения могут также использоваться в процессе кодирования видео, чтобы помочь определить оптимальный размер блока, а также тип кадра, которые следует использовать для кодирования видео. С другой стороны, поскольку в данных процесса трехмерной визуализации имеются сведения о целевых размере экрана и скорости передачи данных, которые будут использоваться в процессе кодирования видео, процесс трехмерной визуализации может быть настроен так, чтобы выдать на экран визуальное представление трехмерной виртуальной среды в соответствующем размере видеоизображения с точки зрения процесса кодирования видео, при соответствующей частоте кадров и с использованием соответствующего цветового пространства, которое может использоваться в процессе кодирования видео для передачи данных. Таким образом, оба процесса могут быть оптимизированы путем объединения в одну объединенную схему трехмерной визуализации и кодирования видео 58, как показано в варианте осуществления настоящего изобретения, представленном на фиг.3.
Функции, описанные выше, могут быть реализованы как один или несколько наборов команд управляющей программы, хранящихся в доступной для компьютера памяти внутри сетевого элемента (элементов) и выполняемых на одном или нескольких процессорах внутри сетевого элемента (элементов). Однако специалисту в данной области техники понятно, что вся описанная логика может быть реализована с использованием дискретных компонентов, интегральных схем, например ASTC (Application Specific Integrated Circuit - специализированная интегральная схема), программируемой логики, используемой вместе с программируемыми логическими устройствами, такими как FPGA (Field Programmable Gate Array - программируемая пользователем вентильная матрица) или микрокомпьютеров, конечных автоматов или любых других устройств, включая их сочетания. Программируемая логика может быть реализована с ее фиксацией, временной или постоянной, на материальных носителях, таких как чип ППЗУ, компьютерная память, диск и другие носители данных. Все такие варианты осуществления настоящего изобретения попадают в область действия настоящего изобретения.
Следует понимать, что различные изменения и модификации вариантов осуществления настоящего изобретения, представленные на чертежах и в описании, также входят в объем настоящего изобретения. Соответственно, предполагается, что все сведения, содержащиеся в приведенном выше описании и представленные на прилагаемых чертежах, рассматриваются только как иллюстративные и не имеют ограничивающего характера. Изобретение ограничено только теми рамками, которые устанавливает формула изобретения с учетом эквивалентов входящих в нее признаков.
Класс G06T15/00 Передача трехмерного (3D) изображения, например от модели к побитовому изображению