система и способ для унифицированной машины компоновки в системе обработки графики

Классы МПК:G06T17/00 Моделирование трехмерного (3D) изображения, например описание данных от трехмерного (3D) изображения объектов
Автор(ы):, , , ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2004-07-29
публикация патента:

Изобретение относится к системам графического и видеоаппаратного обеспечения, а именно представляет собой систему и способ для унифицированной машины компоновки, которая, в общем, комбинирует ранее отдельные службы компоновки. Техническим результатом является уменьшение дублирования кода, улучшение тестового покрытия и упрощение введения функциональных возможностей, таких как способность к взаимодействию унаследованных окон, удаленная связь и обеспечение интерфейса множественных документов. Это достигается тем, что система содержит визуальную систему, которая принимает вызовы от программы или оконного администратора рабочего стола для построения иерархической структуры данных. А также система содержит унифицированную машину компоновки, которая принимает команды от визуальной системы и строит структуру данных компоновщика в ответ на команды для предоставления графического вывода. Унифицированная машина компоновки предоставляет службу компоновки, используемую как внутри процесса в соединении с интерфейсами прикладного программирования (API), так и на рабочем столе в качестве компоновщика рабочего стола. 2 н. и 20 з.п. ф-лы, 6 ил. система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031

система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031 система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031 система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031 система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031 система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031 система и способ для унифицированной машины компоновки в системе   обработки графики, патент № 2355031

Формула изобретения

1. Система с унифицированной машиной компоновки в системе обработки графики, содержащая:

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

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

3. Система по п.1, которая также содержит:

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

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

4. Система по п.3, в которой второй список ресурсов является включающим списком ресурсов, когда сравнивается с первым списком ресурсов.

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

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

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

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

9. Система по п.1, в которой к ресурсам подчиненной таблицы ресурсов осуществляется доступ в единичном потоке компоновки.

10. Система по п.1, в которой унифицированная машина компоновки исполняется как единичный поток и исполняется в постоянном цикле компоновки.

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

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

13. Способ работы унифицированной машины компоновки в системе обработки графики, содержащий:

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

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

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

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

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

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

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

15. Способ по п.13, в котором подчиненная таблица ресурсов содержит список ресурсов, который является включающим списком ресурсов, когда сравнивается с главной таблицей ресурсов.

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

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

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

19. Способ по п.13, который также содержит осуществление доступа к ресурсам подчиненной таблицы ресурсов в единичном потоке компоновки.

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

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

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

Описание изобретения к патенту

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

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

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

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

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

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

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

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

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

Кратко, настоящее изобретение предоставляет систему и способ для унифицированной машины компоновки, которая, в общем, комбинирует ранее отдельные службы компоновки. Унифицированная машина компоновки предоставляет службу компоновки, используемую как внутри процесса в соединении с интерфейсами прикладного программирования (API), так и на рабочем столе в качестве компоновщика рабочего стола. Унифицированная машина компоновки комбинирует объемы работ двух предыдущих компоновок: API машины компоновки, предназначенной для использования внутри процесса, для компоновки контента единичного приложения; и машины компоновки рабочего стола, предназначенной для компоновки всех окон для создания конечного изображения. Машина компоновки рабочего стола и API машина компоновки имеют различные роли и сценарии использования. Машина компоновки рабочего стола используется, чтобы компоновать контент, воспроизводимый другими процессами, воспроизводить минимум своего собственного контента для реализации кадра окна; и осуществлять тесное координирование с унаследованным оконным администратором (например, User32). API машина компоновки используется, чтобы управлять воспроизведением и компоновать весь контент для единичного приложения, и обеспечивать механизм для эффективного осуществления удаленной связи. Недавние изменения в требованиях использования для API машины компоновки и машины компоновки рабочего стола дали результатом API машину компоновки, от которой требуется содержать контент от других процессов и унаследованных дочерних окон, и для машины компоновки рабочего стола требуется обеспечивать удаленную передачу оконного кадра. Комбинирование этих двух объемов работ компоновки уменьшает дублирование кода, улучшает тестовое покрытие и упрощает введение функциональных возможностей, таких как способность к взаимодействию унаследованных окон, удаленная связь и обеспечение интерфейса множественных документов (MDI), что иначе было бы усложнено.

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

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

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

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

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

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

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

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

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

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

Иллюстративная вычислительная среда

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

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

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

Со ссылкой на фиг. 1 иллюстративная система для реализации этого изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничены этим, обрабатывающее устройство 120, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включающие в себя системную память, с обрабатывающим устройством 120. Системная шина 121 может быть любого из нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любое из многообразия архитектур шин. В качестве примера, но не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA), шину ускоренного графического порта (AGP) и шину соединения периферийных компонентов (PCI), также известную как шина расширения.

Компьютер 110 обычно включает в себя многообразие машинно-читаемых носителей. Машинно-читаемые носители могут быть любыми доступными носителями, к которым компьютер 110 может осуществлять доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, и съемные и несъемные носители. В качестве примера, но не ограничения, машинно-читаемые носители могут содержать компьютерные запоминающие носители и носители связи. Компьютерные запоминающие носители включают в себя как энергозависимые, так и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машинно-читаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое дисковое хранилище, магнитные кассеты, магнитную ленту, магнитное дисковое хранилище или другие магнитные хранящие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и к которому компьютер 100 может осуществлять доступ. Носители связи обычно реализуют машинно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание или другой транспортный механизм, и включают в себя любые носители доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более своих характеристик установленными или измененными таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, носители связи включают в себя проводные носители, такие как проводная сеть или прямое проводное соединение, и беспроводные носители, такие как акустические, RF, инфракрасные и другие беспроводные носители. Комбинации любого из вышеописанного также должны быть включены в объем машинно-читаемых носителей.

Системная память 130 включает в себя компьютерные запоминающие носители в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами внутри компьютера 110, как, например, в течение запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые немедленно доступны для и/или в настоящем обрабатываются обрабатывающим устройством 120. В качестве примера, но не ограничения, фиг. 1 показывает операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера фиг. 1 показывает привод 141 жесткого диска, который считывает из или записывает на несъемные, энергонезависимые магнитные носители, привод 151 магнитного диска, который считывает из или записывает на съемный, энергонезависимый магнитный диск 152, и привод 155 оптических дисков, который считывает из или записывает на съемный, энергонезависимый оптический диск 156, такой как CD ROM, или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут использоваться в иллюстративной операционной среде, включают в себя, но не ограничены этим, кассеты магнитной ленты, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, RAM твердого состояния, ROM твердого состояния и подобное. Привод 141 жесткого диска обычно подсоединяется к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, и привод 151 магнитных дисков и привод 155 оптических дисков обычно подсоединяются к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Приводы и их ассоциированные компьютерные запоминающие носители, описанные выше и показанные на фиг. 1, предоставляют хранилище машинно-читаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1, например, привод 141 жесткого диска показан как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Отметим, что эти компоненты могут либо быть такими же как или отличающимися от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и программным данным 147 здесь даны другие ссылочные позиции, чтобы показать, что, по меньшей мере, они являются другими копиями. Пользователь может вводить команды и информацию в компьютер через устройства ввода, такие как планшет (электронный цифровой преобразователь) 164, микрофон 163, клавиатуру 162 и указывающее устройство 161, обычно указываемое как мышь, шаровой указатель или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя джойстик, игровую приставку, спутниковую параболическую антенну, сканер или подобное. Эти и другие устройства ввода часто подсоединяются к обрабатывающему устройству 120 через интерфейс 160 пользовательского ввода, который подсоединен к системной шине, но могут подсоединяться посредством другого интерфейса и структур шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также подсоединяется к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. Монитор 191 может также быть объединен с панелью 193 сенсорного экрана или подобным, что может вводить оцифрованный ввод, такой как рукописная информация, в компьютерную систему 110 через интерфейс, такой как интерфейс 192 сенсорного экрана. Отметим, что монитор и/или панель сенсорного экрана могут быть физически связанными с корпусом, в котором заключено вычислительное устройство 110, как, например, в персональном компьютере планшетного типа, где панель 193 сенсорного экрана, по существу, служит в качестве планшета 164. В дополнение, компьютеры, такие как вычислительное устройство 110, могут также включать в себя другие устройства периферийного вывода, такие как громкоговорители 195 и принтер 196, которые могут подсоединяться через периферийный интерфейс 194 вывода или подобное.

Компьютер 110 может работать в сетевой среде, используя логические связи с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все элементы, описанные выше по отношению к компьютеру 110, хотя только устройство 181 памяти было показано на фиг. 1. Логические связи, изображенные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, внутренних сетях и сети Интернет.

При использовании в сетевой среде LAN компьютер 110 подсоединяется к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 или другое средство для установки связи через WAN 173, такую как сеть Интернет. Модем 172, который может быть внутренним или внешним, может подсоединяться к системной шине 121 через интерфейс 160 пользовательского ввода или другой подходящий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 110, или их части могут храниться в удаленном запоминающем хранящем устройстве. В качестве примера, а не ограничения, фиг. 1 показывает удаленные прикладные программы 185 как находящиеся в устройстве 181 памяти. Следует принять во внимание, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие средства установки линии связи между компьютерами.

Иллюстративная архитектура графики

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

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

Фиг. 2 представляет общую, многоуровневую архитектуру 200 для API машины компоновки. Как представлено на фиг. 2, программный код 202 (например, прикладная программа или компонент операционной системы или подобное) может быть разработан, чтобы выводить графические данные одним или более различными способами, включающими в себя посредством механизма 204 формирования изображений, посредством векторных графических элементов 206 и/или посредством вызовов функций/методов, помещаемых напрямую в слой 212 визуального интерфейса прикладного программирования (API). Использование векторных графических элементов описывается в вышеупомянутой патентной заявке, озаглавленной "Markup Language and Object Model for Vector Graphics", в то время как прямое взаимодействие со слоем API дополнительно описывается в вышеупомянутой одновременно рассматриваемой патентной заявке, озаглавленной "Visual and Scene Graph Interfaces".

В общем, механизм 204 формирования изображений предоставляет программный код 202 с механизмом для загрузки, редактирования и сохранения изображений, например, битовых образов. Эти изображения могут использоваться другими частями системы, и также имеется способ использовать код, использующий примитивы рисования, для рисования в изображении напрямую. Векторные графические элементы 206 предоставляют другой способ рисовать графику, совместимый с объектной моделью визуальной системы. Векторные графические элементы 206 могут создаваться с помощью языка разметки, который система 208 элементов/свойств и система 210 модуля представления обрабатывает, чтобы делать соответствующие вызовы к визуальному слою 212 API. В общем, для векторных графических элементов 206 производится синтаксический разбор в объекты объектной модели, по которой рисуется граф сцены, которая может предоставляться графу сцены через уровень элементов, через систему 208 элементов/свойств и систему 210 модуля представления или могут предоставляться каким-либо более эффективным способом на уровне ресурсов.

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

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

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

Как описывается ниже, визуальная система 214 объединяется с системами 220 расчета времени и анимации, чтобы обеспечивать декларативное (или другое) управление анимацией (например, функции анимации, интервалы и другие параметры) и управление расчетом времени. Отметим, что система анимации позволяет, чтобы значения анимации передавались по существу куда угодно в системе, включая сюда, например, на уровне свойств элементов, внутреннюю часть визуального слоя 212 API, и в любые другие ресурсы. Система расчета времени предоставляется на элементном и визуальном уровнях.

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

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

Как представлено на фиг. 3, альтернативно или в дополнение к локально отображаемому выводу, компоновщик 218 (или что-то аналогичное ему) может предоставлять инструкции воспроизведения и анимации в соответствующем формате низкоуровневому коду 230 печати для отправки данных фиксированного изображения принтеру 232 или подобному, и/или может предоставлять инструкции воспроизведения и интервалы простой анимации в соответствующем формате низкоуровневому терминальному транспортному серверу 236 для передачи удаленным машинам 238. Отметим, что более богатая информация также может передаваться через сеть, например может быть желательно, чтобы удаленная машина обрабатывала эффекты наведения (rollover) мыши локально, без какого-либо сетевого трафика.

Иллюстративный вариант осуществления

Фиг. 4 показывает архитектуру общего вида для использования унифицированной машины компоновки в соответствии с настоящим изобретением. Архитектура унифицированной машины компоновки включает в себя главную таблицу 402 ресурсов, дерево 404 визуальных объектов, интерфейс 406 устройства компоновки, очередь 408 изменений, очередь 410 извещений, дерево 412 компоновки и подчиненную таблицу 414 ресурсов.

Архитектура унифицированной машины компоновки логически разделена на два слоя: верхний слой, или клиентский слой 401 (т.е. визуальная система), включает в себя дерево 404 визуальных объектов (т.е. иерархическую структуру данных), которое является первичным клиентом унифицированной машины компоновки, и нижний слой является унифицированной машиной 420 компоновки как таковой. Дерево 404 визуальных объектов обеспечивает взаимодействие между унифицированной машиной компоновки с ее основным клиентом и взаимодействие между таблицами ресурсов (например, 402, 414), поддерживаемых клиентом и унифицированной машиной компоновки.

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

В качестве примера, взаимодействие между клиентским слоем 401 и унифицированной машиной 420 компоновки, так же как администрирование ресурсов, описывается ниже для ситуации, когда приложение является клиентом. Дерево 404 визуальных объектов осуществляет представление сцены приложения или документа, которое должно отображаться. Эта сцена может быть очень большой и, возможно, намного больше, чем то, что видно в текущее время. Содержимое каждого визуального объекта (например, 405) определяется списком инструкций воспроизведения или RenderData и ресурсами, которые он использует, такими как геометрия, точки, перья, кисть, изображения и т.д. Администрирование этих ресурсов осуществляется главной таблицей 402 ресурсов, которая содержит данные, независимые от устройства и разрешения, для каждого ресурса и, в некоторых случаях, коллекцию или формы, зависящие от ресурсов. Главная таблица 402 ресурсов отвечает за управление временем жизни ресурсов (например, посредством подсчета ссылок).

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

Ресурсы, отправляемые унифицированной машине 420 компоновки, являются напрямую реализуемыми унифицированной машиной 420 компоновки без осуществления обратного вызова или отправки требуемой реализации. Ресурсы, такие как "Текст" и "Изображения", являются дорогостоящими (в терминах обработки надзаголовка) для реализации и поэтому преобразуются в соответствующую "готовую для воспроизведения" форму в дереве 404 визуальных объектов. Преобразование ресурсов в форму, которая может легко воспроизводиться, сохраняет надзаголовок для компоновки в унифицированной машине 420 компоновки. Ресурсы также реализуются в дереве 404 визуальных объектов, если они требуют какие-либо обратные вызовы к пользовательскому коду. Другие ресурсы, такие как "Геометрия", которые могут эффективно мозаично преобразовываться унифицированной машиной 420 компоновки для соответствующего разрешения, когда необходимо, реализуются самой унифицированной машиной 420 компоновки.

Унифицированная машина 420 компоновки управляет ресурсами в подчиненной таблице 414 ресурсов. В одном варианте осуществления подчиненная таблица 414 ресурсов не выполняет подсчет ссылок какой-либо формы с тем, чтобы увеличить производительность. Это возможно, так как к ресурсам подчиненной таблицы 414 ресурсов доступ осуществляется в единичном потоке компоновки для устройства компоновки. В одном варианте осуществления все ресурсы в подчиненной таблице 414 ресурсов также существуют в главной таблице 402 ресурсов. Главная таблица 402 ресурсов явно управляет временем жизни ресурсов подчиненной таблицы 414 ресурсов через преобразованные в последовательную форму запросы очереди 408 изменений. Унифицированная машина 420 компоновки указывает на ресурсы посредством описателя. В одном варианте осуществления, если поиск ресурса терпит неудачу, унифицированная машина 420 компоновки отправляет сообщение в очередь 410 извещений и просто пропускает обработку, требующую этот ресурс. Унифицированная машина 420 компоновки исполняется как единичный поток и исполняется в постоянном цикле компоновки.

Один аспект настоящего изобретения для показанной архитектуры унифицированной компоновки - это использование ресурсов архитектурой. Ресурс может быть определен как "любой объект, необходимый для воспроизведения сцены, который требует различных реализаций для различных разрешений и/или физических устройств; он используется многочисленное число раз внутри дерева компоновки; или он может изменяться независимо от его пользователей, как, например, через анимацию". Ресурсы представляются в унифицированной машине 420 компоновки и в клиентском слое 401 как записи в таблице (например, главной таблице 402 ресурсов) и указываются посредством описателя. Объекты, которые используют ресурс, делают это посредством описателя. Описатель может быть найден в таблице ресурсов (например, главной таблице 402 ресурсов) для получения указателя на фактический объект. Ресурсы способны преобразовывать себя в последовательную форму, применять обновления и предоставлять реализацию для конкретного разрешения и устройства.

Ресурсы, в общем, разделены на несколько типов, таких как ресурсы рисования, ресурсы-значения и структурные ресурсы. Ресурсы рисования - это объекты, определенные слоем воспроизведения, и могут использоваться напрямую этим слоем. Примеры ресурсов рисования включают в себя RenderData (воспроизведение данных), Bitmap (битовый образ), Image (изображение), Glyphrun, Geometry (геометрия) и Brush (кисть). Ресурсы рисования могут быть дополнительно разделены на простые и сложные категории.

Ресурсы рисования с очень низкой и постоянной стоимостью воспроизведения могут реализовываться в течение компоновки напрямую из независимых от устройства и разрешения данных источника. Geometry (геометрия) является простым ресурсом рисования, так как он может быть эффективно мозаично преобразован для конечного требуемого разрешения в цикле компоновки унифицированной машины 420 компоновки. В противоположность, сложные ресурсы рисования требуют сложных вычислений, обратных вызовов к пользовательскому коду или ввода/вывода для генерирования реализации. В одном варианте осуществления сложные ресурсы рисования не реализуются унифицированной машиной 420 компоновки. Вместо этого соответствующие реализации предоставляются в клиентском слое 401 заранее до компоновки. "Изображение" - это пример сложного ресурса. Изображения считываются с диска, декодируются, сэмплируются на соответствующем разрешении и фильтруются.

Ресурсы-значения представляют простое изменяемое значение или значение анимации, используемое другим ресурсом. Примеры ресурсов-значений - это Double, Point (точка), Color (цвет) и Transform. Например, ресурс RenderData может указывать на ресурс Point, чтобы рисовать линию, где ожидается, что одна из точек изменится за счет анимации или императивного указания от приложения. Ресурсы-значения могут быть статическими или анимированными. Если ресурс-значение является анимированным, этот ресурс-значение содержит данные интервала анимации, определяющие, как это значение изменяется со временем.

Структурные ресурсы - это объекты, которое играют роль в процессе компоновки, но не являются напрямую частью воспроизведения. Эти объекты реализуются как ресурсы таким образом, что они могут участвовать в обновлениях через очередь изменений и использовать ресурсы-значения для обновления внутренних значений. Некоторые в текущее время идентифицированные структурные ресурсы включают в себя Composition Node (узел компоновки) и Render Targets (целевые объекты воспроизведения).

В общем, ресурсы должны быть реализованы перед тем, как они могут использоваться. Реализация может указываться как "представление ресурса, которое является подходящим для заданного разрешения и готовым для использования конкретным устройством". Примером реализации является геометрия, мозаично преобразованная в треугольники для конкретного разрешения и преобразования и потенциально уже загруженная в буфер вершин на видеоплате. Реализации либо создаются по требованию в унифицированной машине 420 компоновки, либо создаются в клиентском слое 401 и отправляются унифицированной машине 420 компоновки. Если реализация ресурса, которая требуется, не может быть найдена или создана, извещение ставится в очередь через очередь 410 извещений к клиентскому уровню 401. Это извещение указывает описатель ресурса, преобразование и требуемое устройство вместе с любым используемым преобразованием реализации.

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

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

Главная таблица 402 ресурсов администрирует все ресурсы, используемые внутри приложения клиентского слоя 401. Главная таблица 402 ресурсов отвечает за выдачу описателей; записи подсчета ссылок для описателей, ресурсы и реализации; отправку ресурсов подчиненной таблице 414 ресурсов и управление временем жизни ресурсов подчиненной таблицы 414 ресурсов. Главная таблица 402 ресурсов может управлять десятками тысяч объектов, большинство из которых в текущее время не отображаются, однако дерево 404 визуальных объектов не создает ресурс до тех пор, пока он будет использоваться для отображения. Когда дерево 404 визуальных объектов отображается, осуществляется проход дерева 404 визуальных объектов, и необходимые ресурсы отправляются унифицированной машине 420 компоновки, где осуществляется их администрирование в подчиненной таблице 414 ресурсов. Когда конкретный ресурс более не требуется для компоновки, дерево 404 визуальных объектов сообщает устройству компоновки (например, 218 из фиг. 2) удалить этот ресурс. Если приложение является широковещательным для многочисленных средств просмотра, дерево 404 визуальных объектов отправляет такую же информацию многочисленным устройствам компоновки. Главная таблица 412 ресурсов отслеживает, какие устройства компоновки содержат представление каждого ресурса.

В одном аспекте настоящего изобретения данные ресурсов используются совместно между клиентским слоем 401 и унифицированной машиной 420 компоновки. Данные ресурсов могут совместно использоваться, когда совместно используемые данные классифицируются "только для чтения" как только создаются, совместно используемые данные являются завершенными до "копирования" в унифицированную машину 420 компоновки, дерево 404 визуальных объектов управляет временем жизни совместно используемых данных, и объект унифицированной машины 420 компоновки удаляется первым посредством явного запроса от дерева 404 визуальных объектов. Этот набор требований обеспечивает, что данные в подчиненной таблице 414 ресурсов остаются в состоянии, совместимом с главной таблицей 402 ресурсов.

Фиг. 5 показывает архитектуру общего вида для многочисленных унифицированных машин компоновки (UCE) для единичной области приложения в соответствии с настоящим изобретением. Эта архитектура включает в себя единичную область приложения в клиентском слое, но многочисленные унифицированные машины компоновки для компоновки сцены могут быть вместе с приложением. Логическое устройство компоновки (например, устройство компоновки для UCE C) определяет связь между приложением (т.е. клиентом компоновки) и каждой из многочисленных унифицированных машин компоновки. Пример, когда эта архитектура может использоваться, представляется в случае осуществления удаленной помощи или других ситуациях, где единичное приложение отображается на более чем одной машине через сеть. Число унифицированных машин компоновки, которые могут использоваться вместе с единичной областью приложения, не ограничено показанными тремя и может быть любым числом какое требуется.

Фиг. 6 показывает архитектуру общего вида для многочисленных областей приложений для единичной унифицированной машины компоновки в соответствии с настоящим изобретением. Эта архитектура включает в себя многочисленные области приложений в клиентском слое, но единичная унифицированная машина компоновки для компоновки сцены может быть вместе с многочисленными приложениями. Логическое устройство компоновки (например, устройство компоновки для UCE C) определяет связь между каждым из приложений (т.е. клиентами компоновки) и унифицированной машиной компоновки. Пример, когда эта архитектура может использоваться, представляется в случае многочисленных приложений в единичном вычислительном устройстве, для каждого из которых требуется иметь свою собственную область. Число областей приложений, которые могут использоваться вместе с единичной унифицированной машиной компоновки, не ограничено показанными тремя и может быть любым числом какое требуется.

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

Класс G06T17/00 Моделирование трехмерного (3D) изображения, например описание данных от трехмерного (3D) изображения объектов

интегрированное программное обеспечение настольного компьютера для управления данными по вирусам -  патент 2520423 (27.06.2014)
ледниковое геоморфологическое картографирование -  патент 2519667 (20.06.2014)
устройство генерирования стереоскопического изображения, способ генерирования стереоскопического изображения и программа -  патент 2519518 (10.06.2014)
устройство, способ, программа и система обработки изображения -  патент 2519509 (10.06.2014)
способ и система для кодирования сигнала трехмерного видео, кодер для кодирования сигнала трехмерного видео, кодированный сигнал трехмерного видео, способ и система для декодирования сигнала трехмерного видео, декодер для декодирования сигнала трехмерного видео -  патент 2503062 (27.12.2013)
комбинированная система захвата объекта и отображающее устройство и связанный способ -  патент 2502136 (20.12.2013)
способ и устройство для обработки карты глубины -  патент 2497196 (27.10.2013)
стрингер (варианты), способ создания модели стрингера, способ изготовления стрингера, авиакосмическое устройство (варианты), летательный аппарат (варианты) и компьютер -  патент 2492107 (10.09.2013)
способ и система для кодирования сигнала трехмерного видео, инкапсулированный сигнал трехмерного видео, способ и система для декодера сигнала трехмерного видео -  патент 2487488 (10.07.2013)
авиакосмическое устройство и летательный аппарат, удлиненный элемент конструкции авиакосмического устройства или летательного аппарата, способ создания модели удлиненного элемента конструкции авиакосмического устройства или летательного аппарата и способ изготовления удлиненного элемента конструкции авиакосмического устройства или летательного аппарата, и компьютер -  патент 2486102 (27.06.2013)
Наверх