RU2431185C2 - Поток графики высокого уровня - Google Patents

Поток графики высокого уровня Download PDF

Info

Publication number
RU2431185C2
RU2431185C2 RU2008108840/08A RU2008108840A RU2431185C2 RU 2431185 C2 RU2431185 C2 RU 2431185C2 RU 2008108840/08 A RU2008108840/08 A RU 2008108840/08A RU 2008108840 A RU2008108840 A RU 2008108840A RU 2431185 C2 RU2431185 C2 RU 2431185C2
Authority
RU
Russia
Prior art keywords
tree
graphics
assembly
visual
graphics stream
Prior art date
Application number
RU2008108840/08A
Other languages
English (en)
Other versions
RU2008108840A (ru
Inventor
Срирам СУБРАМАНИАН (US)
Срирам СУБРАМАНИАН
Леонардо Е. БЛАНКО (US)
Леонардо Е. БЛАНКО
Андрей БАЙОУРА (US)
Андрей БАЙОУРА
Оресте Дорин УНГУРЕАНУ (US)
Оресте Дорин УНГУРЕАНУ
Сриа САМПАТХ (US)
Сриа САМПАТХ
Павел ОЛСТА (US)
Павел ОЛСТА
Жилль ХОУЗАМ (US)
Жилль ХОУЗАМ
Джой ЧИК (US)
Джой ЧИК
Пол ДЭВИД (US)
Пол ДЭВИД
Иван ЛЯЙХТЛИНГ (US)
Иван ЛЯЙХТЛИНГ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008108840A publication Critical patent/RU2008108840A/ru
Application granted granted Critical
Publication of RU2431185C2 publication Critical patent/RU2431185C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

Данная заявка заявляет приоритет по 35 U.S.C. параграфу 119 (е) предварительной заявки на патент США № 60/714880, зарегистрированной 7 сентября 2005 г., описание которой включено здесь.
Уровень техники
Когда прикладные программы или процессы обеспечивают изображения или графику, подлежащую отображению, эти прикладные программы или процессы могут посылать команды графики к компонентам операционной системы или другим процессам, которые используют эти команды графики для визуализации этих изображений или графики. Команды графики, которые также называются командами графики более высокого уровня или примитивами, могут специфицировать или определять цвета, линии, формы и другие конструкции графики. Компоненты операционной системы или процессы, принимающие команды графики, могут интерпретировать или преобразовывать команды графики в информацию графики более низкого уровня, такую как индивидуальные значения пикселов или растровые отображения графических объектов, которые используются для визуализации графики на устройстве отображения.
Примером команд графики является GDI, который представляет «Интерфейс графического устройства», «Интерфейс устройства графики» или «Интерфейс отображения графики». В GDI реализации интерфейс (т.е. GDI интерфейс) может быть частью компонента или процесса или поддерживать компонент или процесс, который принимает команды графики. В частности, GDI интерфейс принимает параметры от приложения, где параметры относятся к изображению или графике, подлежащей представлению. GDI интерфейс формирует изображение посредством посылки команд к процессу или компоненту, который, в свою очередь, визуализирует изображение на дисплее или выходном устройстве, таком как монитор, принтер и т.д.
В некоторых реализациях прикладные программы или процессы, посылающие такие команды графики, находятся на устройствах или компьютерах, которые являются отдельными от устройств или компьютеров, выполняющих функции ведущего узла и содержащих компоненты операционной системы или процессы, которые принимают команды графики. Эти реализации могут быть названы трансмашинными системами, примеры которых включают в себя системы обслуживания терминалов, где приложения находятся на компьютере центрального сервера, и компьютеры удаленных клиентов принимают команды графики, которые визуализируются локально (т.е. на компьютерах клиентов). В других реализациях прикладные программы и компоненты (процессы) операционной системы, принимающие команды графики, находятся на одном и том же устройстве или компьютере и могут быть названы транспроцессными системами. Другие реализации могут посылать команды графики, использующие один и тот же процесс; однако такие реализации могут использовать различные подпроцессы, в которых пропускаются команды графики. Такие реализации могут быть названы трансподпроцессными системами.
Независимо от конкретной реализации или системы, является ли она трансмашинной, транспроцессной или трансподпроцессной, команды графики, посылаемые прикладными программами, обычно являются мимолетными. Другими словами, если уж команды графики посланы приложением и приняты, то они сразу же потребляются или обрабатываются. Это особенно верно, когда используется GDI, когда этот интерфейс принимает параметры, создает команды графики, и эти команды графики сразу же потребляются. Следовательно, если конкретная графика или изображение потеряно, то прикладная программа или процесс должен повторно послать команды графики (или параметры) к принимающему компоненту или процессу. Кроме того, поскольку команды графики могут быть потреблены при их принятии, если пользователь желает дублировать графику или изображение, конкретное для команд графики, то конкретные команды графики должны быть посланы повторно.
В некоторых ситуациях команды графики оптимизируются или сжимаются. Эта оптимизация или сжатие обычно выполняется в трансмашинных реализациях, таких как системы обслуживания терминалов, где связь между компьютером центрального сервера и компьютерами удаленных клиентов осуществляется через среду передачи данных, такую как сеть. Пропускная способность среды передачи данных или сети часто ограничена. Следовательно, может быть необходима оптимизация или сжатие. Оптимизация или сжатие может привести к дискредитированному качеству изображения. Например, в некоторых ситуациях желательно увеличить график или изображение на принимающем компьютере или устройстве; однако, поскольку команды графики были сжаты, увеличение может привести к ухудшению изображения.
Кроме того, в некоторых случаях различные приложения могут поддерживать или обеспечивать команды различных типов или разнородной графики. Например, одно приложение может поддерживать стандартный формат команд графики, такой как GDI, тогда как другое приложение может поддерживать новый или отличающийся формат команд графики. Однако может быть желательно поддерживать различные форматы команд графики и дать возможность обработки графики из приложений, использующих различные форматы команд графики.
Сущность изобретения
Команды графики обеспечены в пакетах данных в потоке графики. Пакеты данных представляют собой объекты и ресурсы редактируемой модели, такой как визуальное дерево. Поток графики или пакеты данных посылаются через выделенный канал, где в этот канал может быть введено приложение, которое модифицирует поток графики или пакеты данных. Пакеты данных принимаются машиной сборки, которая создает дерево сборки, которое аналогично визуальному дереву.
Эта сущность изобретения обеспечена для введения избранных понятий в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Эта сущность изобретения не предназначена для идентификации ключевых особенностей или существенных особенностей заявленного предмета рассмотрения, а также она не предназначена для использования в качестве помощи в определении объема заявленного предмета рассмотрения.
Краткое описание чертежей
Подробное описание производится со ссылкой на сопутствующие чертежи. В чертежах крайняя левая цифра (цифры) ссылочной позиции идентифицирует фигуру, на которой эта ссылочная позиция появляется впервые. Использование одних и тех же ссылочных позиций на различных фигурах указывает подобные или идентичные объекты.
Фиг.1 является блок-схемой системы, которая реализует канал для обеспечения графики в форме визуального дерева.
Фиг.2 является блок-схемой визуального дерева, представляющего графику или изображение, и аналогичного дерева сборки.
Фиг.3 является блок-схемой вычислительного устройства, которое реализует визуальное дерево и деревья сборки для обеспечения графики или изображений.
Фиг.4 является блок-схемой системы, которая реализует интерфейсы приложения и прикладной программы, которые модифицируют дерево сборки графики или изображения.
Фиг.5 является схемой исправленного дерева сборки.
Фиг.6 является блок-схемой, иллюстрирующей некоторый процесс.
Фиг.7 является блок-схемой, иллюстрирующей некоторый процесс.
Подробное описание
Фиг.1 показывает систему 100, которая обеспечивает и визуализирует графику или изображения. В частности, система 100 реализует использование визуальных деревьев и деревьев сборки в обеспечении и визуализации графики или изображений. Система 100 может быть реализована как трансмашинная система, где элементы или процессы системы 100 находятся в более чем одной машине или устройстве, и связь между машинами или устройствами осуществляется через среду передачи данных, такую как сеть, которая включает в себя интрасети и Интернет. Примеры трансмашинных систем включают в себя системы обслуживания терминалов, где компьютер центрального сервера поддерживает один или несколько компьютеров клиентов. В частности, прикладные программы находятся в компьютере центрального сервера и доступны или используются компьютерами клиентов. Система 100 может также быть реализована как транспроцессная система, где элементы или процессы находятся на одной и той же машине или устройстве. Другой реализацией системы 100 является трансподпроцессная система, где графика посылается через различные подпроцессы в пределах одного и того же процесса.
Для простоты, система 100 показывает единственную прикладную программу 102; однако система 100 может включать в себя множество прикладных программ. Система 100 дополнительно включает в себя оболочку 104. Пример оболочки 104 включает в себя Основание Представления Windows®, обеспеченное корпорацией Microsoft. Оболочка 104 осуществляет доступ к одной или нескольким прикладным программам, таким как прикладная программа 102. В частности, команды графики обеспечиваются прикладной программой 102 для оболочки 104. Оболочка 104 может реализовывать или включать в себя конкретный интерфейс прикладных программ (API), находящийся в связи с прикладной программой 102.
Система 100 включает в себя ядро 106, которое принимает команды графики от оболочки 104 и создает визуальное дерево 108. Визуальное дерево 108 является представлением графики или изображения, обеспеченного оболочкой 104, где графика или изображение соответствует командам графики от прикладной программы 102.
Визуальное дерево 106 составлено из визуальных объектов и ресурсов, как более подробно описано ниже. Визуальные объекты и ресурсы могут быть преобразованы в конкретные пакеты данных, которые составляют поток данных или графики. Поток графики передается по выделенному каналу 110 в подсистему 112 сборки. Канал 110 является выделенным каналом в том смысле, что, когда другие прикладные программы включаются в систему 100, каждая прикладная программа имеет свой собственный выделенный канал. В трансподпроцессной системе, где поток графики передается по различным подпроцессам, каждый выделенный канал представляет конкретный подпроцесс. Как дополнительно обсуждается ниже, канал 110 может быть также разделен на различные функциональные части, включающие в себя верхний полуканал и нижний полуканал.
Пакеты данных потока графики могут быть обеспечены в некотором конкретном формате. Примерным форматом пакета данных является 32-битовое значение размера пакета данных и 32-битовое беззнаковое идентификационное значение пакета, за которым следуют данные пакета из одной или нескольких команд. Кроме того, когда реализованы множественные каналы, каждый канал может быть связан с конкретным соединением. Пакет данных может обеспечивать сообщение, которое определяет соединение канала. Такое сообщение может быть реализовано в следующем формате, который включает в себя примерные поля «идентификатор соединения», за которым следует «идентификатор канала», за которым следует «идентификатор команды», за которым следует «данные команды».
Может быть обеспечен обратный канал 114, который позволяет подсистеме 112 сборки посылать обратные сообщения к ядру 106, оболочке 104 и прикладной программе 102. Обратные каналы, такие как обратный канал 114, могут быть обеспечены с каждым выделенным каналом (например, каналом 110). Сообщения, которые посылаются обратно через обратный канал 114, могут включать в себя состояние аппаратного обеспечения и/или изменения аппаратного обеспечения или конфигурации аппаратного обеспечения, которые поддерживаются посредством подсистемы 112 сборки. Другие примеры сообщений, возвращаемых посредством подсистемы 112 сборки, включают в себя информацию, находящуюся вне памяти, информацию потребления частоты смены кадров, изменения аппаратного обеспечения и т.д.
Пакеты данных могут быть организованы в группы, где группы пакетов данных посылаются по каналу 108 в подсистему 112 сборки. Например, визуальные объекты и ресурсы визуального дерева 108 посылаются как группа в подсистему 112 сборки. Подсистема 112 сборки ожидает принятия всей группы визуальных объектов и ресурсов перед созданием аналогичного дерева 116 сборки. В дополнение к объектам и ресурсам, которые посылаются в потоке графики, в поток графики включаются команды или инструкции. Команды или инструкции, в частности, используются для создания дерева 116 сборки. Когда система 100 включает в себя множественные прикладные программы, так как каждая прикладная программа имеет свой собственный выделенный канал, в котором передаются потоки графики и, в частности, группы пакетов данных, подсистема 112 сборки не должна ожидать, чтобы другие группы или потоки графики были переданы по каналу. Другими словами, выделенные каналы препятствуют помехам передачи потоков графики (групп пакетов данных) от различных прикладных программ. Кроме того, выделенные каналы дают возможность собственной синхронизации потоков графики таким образом, что пакеты данных принимаются в их относительном хронологическом порядке.
Дерево 116 сборки включает в себя ту же самую информацию (т.е. аналогичные объекты и ресурсы), что и визуальное дерево 108; однако дерево 116 сборки отформатировано для его использования процессом/функцией 118. Процессом/функцией 118 может быть компонент операционной системы или компонент прикладной программы, который визуализирует графику или изображения с использованием дерева 116 сборки. Процесс/функция 118 может интерпретировать или преобразовывать дерево 116 сборки в информацию графики более низкого уровня, такую как значения индивидуальных пикселов или растровые отображения графических объектов, которые используются для визуализации графики на устройстве отображения (не показано). Как дополнительно обсуждается ниже, объекты и ресурсы дерева 116 сборки, вместе с другими командами или инструкциями для реконструкции дерева 116 сборки, могут храниться в виде файла в локальной памяти для будущего использования или использования в случаях необходимости «обновления», когда графика или изображение, представленное посредством сборки, потеряно.
Оптимизация и сжатие могут быть выполнены на потоках графики, когда они посылаются по каналу 110 или другим каналам. Оптимизация или сжатие может реализовывать один из различных способов оптимизации и/или сжатия. Кроме того, сообщения потока графики или поток графики может быть транспортирован с использованием одного из различных транспортных протоколов (например, RPC, RDP, TCP/IP и т.д.) и/или способов.
Фиг.2 показывает примерное визуальное дерево 108 и примерное дерево 116 сборки. Визуальное дерево 108 образовано из иерархических графических или визуальных объектов от V1 200(1) до VN 200(N). Визуальное дерево 108 представляет графику или изображение. Каждый из визуальных объектов 200 дополнительно описывается посредством команд, инструкций или ресурсов (коллективно называемых «ресурсами»). В частности, ресурсы используются для описания того, как рисовать визуальные объекты. Ресурсы могут иметь ресурсы более высокого или более низкого порядка. Например, объект графики V3 200(3) определен посредством ресурса 202 «чертежная линия». Ресурс 202 «чертежная линия» дополнительно описан посредством ресурса 204 «перо». Ресурс 204 «перо» дополнительно описан посредством ресурса 206 «кисть».
Как описано выше, визуальные объекты V 200 вместе с ресурсами (например, ресурсами 202, 204, 206) преобразуются в пакеты данных и посылаются в потоке графики, вместе с командами или инструкциями. Команды или инструкции используются для построения дерева 116 сборки с использованием аналогичных объектов сборки от С1 208(1) до CN 208(N) и ресурсов, определяющих каждый из объектов сборки С 208 (например, ресурс 210 «чертежная линия», ресурс 212 «перо» и ресурс 214 «кисть»). Как обсуждалось выше, подсистема сборки, которая принимает поток графики визуальных объектов, ресурсов, команд и инструкций, может ожидать принятия всех пакетов данных перед построением сборки. Следовательно, визуальные объекты, ресурсы, команды и инструкции могут быть посланы как группа.
Фиг.3 показывает примерное вычислительное устройство 300, которое реализует визуальные деревья и деревья сборки для обеспечения и визуализации графики или изображений. Вычислительное устройство 300 является реализацией транспроцессной системы; однако станет очевидно, что элементы в вычислительном устройстве 300 могут также быть реализованы как часть, или иметь аналогичные элементы, в трансмашинной и трансподпроцессной системах. Вычислительным устройством 300 может быть стандартный настольный персональный компьютер (PC), который включает в себя локальную операционную систему, устройство обработки (данных) или процессор (процессоры) 302 и запоминающую систему или память 304. Как один пример, вычислительным устройством 300 является PC общего назначения, реализованный с операционной системой брэнда Windows® от корпорации Microsoft.
В этом примере прикладная программа 306 и стандартная прикладная программа 308 могут быть частью множества прикладных программ, находящихся в памяти 304 или находящихся отдельно от памяти 304. Программы 306 и 308, в частности, доступны и управляются процессором (процессорами) 302. Стандартная прикладная программа 308 может включать в себя прикладные программы, которые реализуют форматы команд графики, такие как GDI.
Вычислительное устройство 300 включает в себя оболочку и ядро 310, которое поддерживает прикладную программу 306. Оболочка и ядро 310 включают в себя оболочку 104 и ядро 106, описанные выше. В этом примере стандартная прикладная программа 308 поддерживается посредством стандартной оболочки и ядра 312. В других реализациях единственная оболочка и ядро может использоваться для поддержки множества прикладных программ. Оболочка и ядро 310 и стандартная оболочка и ядро 312, в частности, выполнены с возможностью создания и обеспечения визуальных деревьев, таких как визуальное дерево 108, на основе команд, принимаемых от соответствующей прикладной программы 306 и стандартной прикладной программы 308.
Оболочка и ядро 310 соединены с редиректором 314, который может быть интерфейсом к выделенному каналу «А», который поддерживает прикладную программу 306. Редиректор 314 может рассматриваться как «верхняя половина» канала «А». Стандартная оболочка и ядро 312 подобным же образом соединены со стандартным редиректором 316, который является интерфейсом к отдельному каналу «В», который поддерживает стандартную прикладную программу 308. Подобным же образом редиректор 316 может рассматриваться как «верхняя половина» канала «В». Редиректоры 314 и 316 могут быть соединены с или использовать транспортный уровень или транспорт 318. Уровень 320 редирекции (переадресации) является нижней половиной канала «А», а уровень 322 переадресации является нижней половиной канала «В».
Подсистема «А» 324 сборки принимает поток графики через канал «А» и создает дерево сборки для использования процессом/функцией «А» 326. Подобным же образом машина «В» 328 сборки принимает поток графики через канал «В» и создает дерево сборки для использования процессом/функцией «В» 330. Каждый из процесса/функции «А» 326 и процесса/функции «В» 330 использует созданные деревья сборки для визуализации и генерирования графики или изображений для локального дисплея или выходного устройства.
Фиг.4 показывает систему 400, которая реализует приложение и интерфейсы прикладных программ, используемые для модификации дерева сборки графики или изображения. В этом примере система 400 является модификацией системы 100, описанной выше. В некоторых случаях желательно модифицировать графику или изображения, которые обеспечены посредством прикладных программ, таких как прикладная программа 306 и стандартная прикладная программа 308. В предположении, что оптимизация или сжатие может иметь место, когда сообщения потоков графики или потоки графики посланы, и, в частности, в трансмашинных системах желательно минимизировать ухудшение графики или изображения, когда модификация имеет место.
В этом примере приложение 402 расположено между верхней половиной канала 404 и нижней половиной канала 406. Приложение 402 может выполнять модификацию графики или изображения, или в некоторых случаях приложение 402 может быть выполнено как приложение доступности, которое может получать доступ или просматривать поток графики, который проходит через канал (т.е. между половинами 404 и 406 канала). В общем, приложение 402 рассматривается как посредник, который может быть помещен в канал.
Некоторый пример графики или модификации изображения является расширением или увеличением графики или изображения. Приложение 402, в частности, модифицирует поток графики или конкретные пакеты данных, проходящие через канал, таким образом, что создается исправленное дерево 408 сборки. Как дополнительно обсуждается ниже, модификация может быть осуществлена на конкретной вершине или вершинах дерева сборки, независимо от иерархии этой вершины или вершин в сборке. Если модифицируется вершина относительно более высокого уровня, то затрагиваются (т.е. модифицируются) все вершины ниже нее на дереве сборки.
Интерфейс 410 прикладных программ (API) потоков графики и API 412 воспроизведения может быть также обеспечен и подвергает приложение 402 воздействию ядра 104 и подсистемы 110 сборки. В частности, API 410 потока графики используется для доступа к потоку графики от ядра 104, и API 412 воспроизведения используется подсистемой 110 сборки для открытия потока графики из приложения 402.
API 410 потока графики может включать в себя API «открытия потока графики», который открывает поток графики для считывания. Кроме того, указатель может быть реализован и обеспечен для приложения 402 посредством API «открытия потока графики» для конкретной функции или процесса, который поддерживает подсистема 110 сборки. API 410 потока графики может дополнительно включать в себя API «закрытия потока графики», который закрывает поток графики для считывания. API «закрытия потока графики» вызывает посылку сообщения закрытия к подсистеме 110 сборки или к конкретной функции или процессу, который поддерживает подсистема 110 сборки.
API 410 потока графики может также включать в себя API «указания преобразования потока графики», который обеспечивает указание или сообщение ядру 104, или в случае трансмашинной системы (например, системы обслуживания терминалов) серверу графики (т.е. ядру 104, находящемуся в сервере графики), что приложение 402 намеревается выполнить действие или модификацию (например, увеличение) потока графики. Например, в случае увеличения API «указания преобразования потока графики» обеспечивает сообщение обратно к прикладной программе 102 для вычисления расширения или увеличения. Кроме того, указатель может быть обеспечен для конкретного исправленного дерева 404 сборки. Это сообщение может быть послано через обратный канал, такой как канал 114.
API 412 воспроизведения обеспечивает способность для подсистемы 112 сборки нарисовать или создать исправленное дерево 408 сборки. В общем, API 412 воспроизведения подвергает нижнюю половину канала 406 и подсистему 112 сборки действию приложения 402.
Фиг.5 является схемой модифицированного или исправленного дерева сборки. В частности, показано исправленное дерево 408 сборки, модифицированное приложением 402. В этом примере модификация должна расширять или увеличивать прежнее дерево сборки (например, дерево 116 сборки).
Когда имеет место модификация графики или изображений, модификация осуществляется на дереве сборки и, в частности, на вершине или вершинах дерева сборки. В зависимости от того, какие вершины модифицируются, могут быть затронуты другие вершины. Другими словами, если модифицируется конкретная вершина, то все вершины ветвей более низкого уровня затрагиваются или модифицируются. В этом примере вершина С1 208(1) модифицируется посредством вершины 500 «увеличения». Следовательно, прежнее дерево 116 сборки модифицируется (т.е. увеличивается) и обеспечивается как исправленное дерево 408 сборки.
Фиг.6 показывает процесс 600, который обеспечивает потоки графики, соответствующие визуальным деревьям, для процесса или функции. Процесс 600 может быть дополнительно реализован как API, который поддерживает модификацию потока графики. Процесс 600 показан как коллекция блоков в логической блок-схеме, которая представляет последовательность операций, которая может быть реализована в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах или их комбинации. В контексте программного обеспечения эти блоки представляют компьютерные команды, которые, при выполнении одним или несколькими процессорами, выполняют описанные операции. Хотя это описано как блок-схема, предполагается, что некоторые блоки могут быть расположены параллельно или в другом порядке. Процесс 600 может быть реализован, например, системой 100 с фиг.1 и/или вычислительным устройством 300, как обсуждалось на фиг.3, хотя процесс 600 может быть реализован посредством других архитектур.
В блоке 602 команды графики посылаются и принимаются приложением, которое расположено в канале. Этим приложением может быть приложение доступности или приложение, которое выполняет модификацию. Примером такого приложения является приложение 402. Поток графики может включать в себя пакеты данных, которые соответствуют визуальным объектам и ресурсам, которые образуют визуальное дерево.
В блоке 604 приложение открывает или получает доступ к потоку графики. Это открытие может относиться просто к считыванию потоков графики и пакетов данных потока графики, или на потоке графики может выполняться модификация. Кроме того, указатель может быть обеспечен для функции или процессов, поддерживаемых подсистемой сборки, принимающей поток графики.
В блоке 606 осуществляется действительная модификация потока графики и/или пакетов данных. Примеры модификации включают в себя увеличение. В некоторых случаях сообщение может быть обеспечено для ядра, которое обеспечивает потоки графики, где сообщение указывает, что должна иметь место модификация, такая как увеличение.
В блоке 608 модифицированный поток проходит к подсистеме сборки, которая может создать дерево сборки на основе первоначального визуального дерева, и изменения или модификации из модификации.
В блоке 610 поток графики может быть закрыт. Другими словами, приложению препятствуют считывать поток графики. К подсистеме сборки может быть послано сообщение, указывающее, что происходит или произошло закрытие.
Фиг.7 показывает процесс 700, который дает возможность связи между оболочкой и подсистемой сборки. Процесс 700 может быть дополнительно реализован как протокол для обеспечения такой связи. Процесс 700 показан как коллекция блоков в логической блок-схеме, которая представляет собой последовательность операций, которые могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах или их комбинации. В контексте программного обеспечения блоки представляют собой компьютерные команды, которые, при выполнении одним или несколькими процессорами, выполняют описанные операции. Хотя это описано как блок-схема, предполагается, что некоторые блоки могут быть расположены параллельно или в другом порядке. Процесс 700 может быть реализован, например, посредством системы 100 с фиг.1 и/или вычислительным устройством 300, как обсуждалось на фиг.3, хотя процесс 700 может быть реализован посредством других архитектур.
В блоке 702 создается выделенный канал, который дает возможность связи между оболочкой или ядром и подсистемой сборки. Выделенный обратный канал может быть также создан для того, чтобы дать возможность подсистеме сборки посылать обратные сообщения к оболочке или ядру.
В блоке 704 по выделенному каналу посылаются или обеспечиваются пакеты данных. Пакеты данных могут быть частью потока графики и посылаться как группа. Группа пакетов данных включает в себя все объекты и ресурсы, которые необходимы для создания редактируемой модели. Эта модель представляет графику или изображение и, например, может быть иерархическим деревом, таким как визуальное дерево 108, описанное выше.
В блоке 706 в канал может быть введено приложение для модификации потока графики или пакетов данных. Примеры приложения включают в себя считыватель или увеличитель потока графики. К оболочке или ядру может быть возвращено сообщение, указывающее, что будет выполнена модификация.
В блоке 708 строится редактируемая модель с использованием немодифицированных или модифицированных пакетов данных. Как обсуждалось, редактируемая модель может быть иерархическим деревом, аналогичным визуальному дереву, созданному в ядре. В частности, редактируемая модель считается или называется деревом сборки, таким как деревья 116 и 408 сборки.
Заключение
Описанная выше система поддерживает передачу редактируемой модели, такой как визуальное дерево, в подсистему сборки, которая создает дерево сборки, используемое для визуализации графики или изображения. Хотя изобретение было описано языком, специфическим для структурных особенностей и/или методологических действий, следует понимать, что изобретение, заданное в приложенной формуле изобретения, необязательно ограничено описанными конкретными особенностями или действиями. Скорее, конкретные особенности и действия описаны как примерные формы реализации заявленного изобретения.

Claims (10)

1. Способ модификации команд графики, представляющих визуальное дерево, предусматривающий:
прием сообщения, задающего соединение выделенного канала для приема графического потока, при этом упомянутое сообщение указывает идентифицирующие поля выделенного канала в формате, включающем в себя идентификатор (ID) соединения, со следующим за ним ID канала, со следующим за ним ID команды, со следующими за ним данными команды,
прием потока графики от первой прикладной программы, причем поток графики включает в себя пакеты данных, команды и инструкции, при этом пакеты данных содержат визуальные объекты и ресурсы, которые образуют визуальное дерево, причем ресурсы описывают как рисовать визуальные объекты;
открытие упомянутого потока графики второй прикладной программой, причем поток графики, принятый от первой прикладной программы, находится в выделенном канале;
модификацию команд и инструкций упомянутого потока графики, проходящего через выделенный канал, второй прикладной программой для создания модифицированного потока графики; и
пропускание модифицированного потока графики к подсистеме сборки, реализованной процессором вычислительного устройства, причем подсистема сборки создает модифицированное дерево сборки на основании визуального дерева и команд и инструкций модифицированного потока графики, причем модифицированные команды и инструкции потока графики, когда реализованы подсистемой сборки, модифицируют по меньшей мере один узел модифицированного дерева сборки, причем узел более нижнего уровня иерархии автоматически модифицируется, если модифицируется узел более высокого уровня иерархии, при этом команды и инструкции описывают, как рисовать модифицированное дерево сборки на основании объектов и ресурсов сборки, причем объекты сборки аналогичны визуальным объектам, модифицированное дерево сборки включает в себя информацию графики более высокого уровня, аналогичную упомянутому визуальному дереву.
2. Способ по п.1, в котором открытие включает в себя реализацию и выдачу указателя для приложения, поддерживаемого подсистемой сборки.
3. Способ по п.1, в котором модификация предусматривает операцию увеличения в отношении потока графики.
4. Способ по п.1, дополнительно предусматривающий закрытие потока графики от считывания приложением.
5. Способ по п.4, в котором закрытие дополнительно предусматривает посылку к подсистеме сборки сообщения о том, что происходит закрытие.
6. Способ по п.1, дополнительно содержащий предоставление ядру сообщения о модификациях, сделанных в потоке графики.
7. Система модификации команд графики, представляющих визуальное дерево, содержащая:
оболочку, которая получает доступ к командам и инструкциям графики, представляющим графику и изображения, из первой прикладной программы;
ядро, которое принимает команды и инструкции графики от оболочки и создает визуальное дерево, причем визуальное дерево содержит визуальные объекты и ресурсы;
выделенный канал, который передает пакеты данных, представляющих визуальное дерево, из ядра, при этом множество пакетов данных объединены для формирования группы пакетов данных, при этом группа пакетов данных включает в себя все визуальные объекты и ресурсы, необходимые для создания редактируемой модели визуального дерева, причем выделенный канал сконфигурирован предотвращать помехи от передачи групп пакетов данных от приложений, не связанных с выделенным каналом;
вторую прикладную программу, находящуюся в канале, причем вторая прикладная программа модифицирует пакеты данных, передаваемые через упомянутый канал, и генерирует модифицированное дерево сборки, причем модификация выполняется для по меньшей мере одного узла дерева сборки, причем узел более низкого уровня иерархии автоматически модифицируется, если модифицируется узел более высокого уровня иерархии, подсистему сборки, соединенную с ядром, оболочкой, первой прикладной программой и второй прикладной программой с помощью выделенного канала, причем подсистема сборки сконфигурирована создавать дерево сборки, аналогичное визуальному дереву, при этом подсистема сборки не создает дерево сборки до тех пор, пока подсистема сборки не примет по меньшей мере одну группу пакетов данных, причем дерево сборки конфигурируется на основе упомянутых команд и инструкций, и
выделенный обратный канал для передачи сообщений от подсистемы сборки обратно к ядру, оболочке и второй прикладной программе, причем сообщения указывают состояние аппаратного обеспечения, изменения в аппаратном обеспечении, изменения в конфигурации аппаратного обеспечения, информацию о емкости памяти и информацию потребления частоты смены кадров.
8. Система по п.7, в которой ядро создает визуальное дерево посредством создания иерархических визуальных объектов и иерархических ресурсов, где ресурсы описывают как визуализировать визуальные объекты.
9. Система по п.7, в которой канал состоит из верхней половины и нижней половины, причем приложение может быть реализовано между верхней половиной и нижней половиной.
10. Система по п.7, причем система является одной из следующего: трансмашинной системы, транспроцессной системы или траснподпроцессной системы.
RU2008108840/08A 2005-09-07 2006-08-15 Поток графики высокого уровня RU2431185C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71488005P 2005-09-07 2005-09-07
US60/714,880 2005-09-07
US11/279,194 2006-04-10
US11/279,194 US7609280B2 (en) 2005-09-07 2006-04-10 High level graphics stream

Publications (2)

Publication Number Publication Date
RU2008108840A RU2008108840A (ru) 2009-09-20
RU2431185C2 true RU2431185C2 (ru) 2011-10-10

Family

ID=37829623

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008108840/08A RU2431185C2 (ru) 2005-09-07 2006-08-15 Поток графики высокого уровня

Country Status (11)

Country Link
US (1) US7609280B2 (ru)
EP (1) EP1922634B1 (ru)
JP (1) JP4827923B2 (ru)
KR (1) KR20080052574A (ru)
CN (1) CN101258478B (ru)
AU (1) AU2006287781A1 (ru)
BR (1) BRPI0615723A2 (ru)
CA (1) CA2621076A1 (ru)
NO (1) NO20080928L (ru)
RU (1) RU2431185C2 (ru)
WO (1) WO2007030283A1 (ru)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527563B2 (en) * 2005-09-12 2013-09-03 Microsoft Corporation Remoting redirection layer for graphics device interface
US8108799B2 (en) * 2007-03-30 2012-01-31 Microsoft Corporation Remoting of windows presentation framework based applications in a non-composed desktop
CA2622367C (en) * 2008-02-04 2015-11-17 Omnivex Corporation Subscription based content delivery for a digital signage network
CA2620337C (en) * 2008-02-04 2012-11-27 Omnivex Corporation Digital signage network
CA2616324C (en) * 2008-02-04 2015-06-16 Omnivex Corporation Digital signage display
US8230180B2 (en) * 2008-06-11 2012-07-24 Samsung Electronics Co., Ltd. Shared memory burst communications
KR101496340B1 (ko) * 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
BRPI0920478B1 (pt) * 2009-01-29 2020-03-17 Hewlett - Packard Development Company, L.P. Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório
US8307103B2 (en) * 2009-03-09 2012-11-06 Microsoft Corporation Tear-free remote desktop protocol (RDP) display
US20130127849A1 (en) * 2011-05-26 2013-05-23 Sebastian Marketsmueller Common Rendering Framework and Common Event Model for Video, 2D, and 3D Content
US9361715B2 (en) * 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US10031636B2 (en) * 2011-09-08 2018-07-24 Microsoft Technology Licensing, Llc Remoting desktop displays using move regions
TWI482118B (zh) * 2012-10-18 2015-04-21 Wistron Corp 處理圖形運算負載平衡之方法及系統
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
US10796397B2 (en) 2015-06-12 2020-10-06 Intel Corporation Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315698A (en) * 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
US5662383A (en) * 1995-08-11 1997-09-02 Bemis Manufacturing Company Apparatus for attaching fabric to a chair frame
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5842040A (en) * 1996-06-18 1998-11-24 Storage Technology Corporation Policy caching method and apparatus for use in a communication device based on contents of one data unit in a subset of related data units
US6434578B1 (en) * 1996-06-26 2002-08-13 Microsoft Corporation Generating instruction sequences using independently executable pane renderers
JPH1074137A (ja) * 1996-08-30 1998-03-17 Hitachi Ltd グラフィックユーザーインターフェース変更システム
KR0175570B1 (ko) * 1996-10-16 1999-04-01 양승택 Atm망의 정합을 위한 mpeg-2 ts 다중화장치
US5862383A (en) 1996-11-27 1999-01-19 Nokia Research Center Generation of code by graphical representation
US6388679B1 (en) * 1998-12-29 2002-05-14 Intel Corporation Multi-resolution computer display system
US7200809B1 (en) * 1999-08-04 2007-04-03 Oracle International Corporation Multi-device support for mobile applications using XML
US6452600B1 (en) * 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6411301B1 (en) * 1999-10-28 2002-06-25 Nintendo Co., Ltd. Graphics system interface
US6538656B1 (en) * 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
JP2001273520A (ja) * 2000-03-23 2001-10-05 Famotik Ltd マルチメディアドキュメント統合表示システム
US6798418B1 (en) * 2000-05-24 2004-09-28 Advanced Micro Devices, Inc. Graphics subsystem including a RAMDAC IC with digital video storage interface for connection to a graphics bus
US7630721B2 (en) * 2000-06-27 2009-12-08 Ortiz & Associates Consulting, Llc Systems, methods and apparatuses for brokering data between wireless devices and data rendering devices
US7023442B2 (en) * 2000-06-28 2006-04-04 Sun Microsystems, Inc. Transferring a digital video stream through a series of hardware modules
JP2002024298A (ja) * 2000-07-05 2002-01-25 Ricoh Co Ltd 3次元形状処理装置、3次元形状表示方法およびその方法を実施するためのプログラムを記憶した記憶媒体
US7274368B1 (en) * 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US6867781B1 (en) * 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7002591B1 (en) * 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US20020103935A1 (en) * 2001-01-26 2002-08-01 Neil Fishman Pushing rich content information to mobile devices
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
JP4688316B2 (ja) * 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
AU2002256206A1 (en) * 2001-04-13 2002-10-28 The Code Coproration System and method for encoding and decoding data and references to data in machine-readable graphical codes
US20030017846A1 (en) * 2001-06-12 2003-01-23 Estevez Leonardo W. Wireless display
US7216288B2 (en) * 2001-06-27 2007-05-08 International Business Machines Corporation Dynamic scene description emulation for playback of audio/visual streams on a scene description based playback system
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
US7064766B2 (en) * 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7439982B2 (en) * 2002-05-31 2008-10-21 Envivio, Inc. Optimized scene graph change-based mixed media rendering
US7075538B2 (en) * 2002-08-30 2006-07-11 Sun Microsystems, Inc. Methods and apparatus for faster line drawing on remote displays
US20040177373A1 (en) * 2003-02-28 2004-09-09 Tsuyoshi Kawabe Graphic data distribution system and a data converter, and a graphic data distribution method
US7434166B2 (en) * 2003-06-03 2008-10-07 Harman International Industries Incorporated Wireless presentation system
US20050132385A1 (en) * 2003-10-06 2005-06-16 Mikael Bourges-Sevenier System and method for creating and executing rich applications on multimedia terminals
US7643731B2 (en) * 2004-01-23 2010-01-05 Osamu Kobayashi Low power DVD playback in a portable computing system
US7562131B2 (en) * 2004-06-25 2009-07-14 Intel Corporation UPnP user interface system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 6.383.679 B1, 14.05.2005. US 5.315.698 A, 24.05.1994. *

Also Published As

Publication number Publication date
EP1922634A4 (en) 2012-09-26
WO2007030283A1 (en) 2007-03-15
RU2008108840A (ru) 2009-09-20
KR20080052574A (ko) 2008-06-11
JP4827923B2 (ja) 2011-11-30
NO20080928L (no) 2008-04-03
BRPI0615723A2 (pt) 2012-04-10
AU2006287781A1 (en) 2007-03-15
EP1922634B1 (en) 2018-01-17
CN101258478A (zh) 2008-09-03
JP2009507306A (ja) 2009-02-19
US20070052723A1 (en) 2007-03-08
CA2621076A1 (en) 2007-03-15
CN101258478B (zh) 2012-06-27
EP1922634A1 (en) 2008-05-21
US7609280B2 (en) 2009-10-27

Similar Documents

Publication Publication Date Title
RU2431185C2 (ru) Поток графики высокого уровня
US9369406B2 (en) Resource server providing a rapidly changing resource
JP5373135B2 (ja) 代替的グラフィック・セットの効率的な符号化
CN1984330B (zh) 利用应用元数据的图形用户接口的自适应视频压缩方法和系统
US8918452B2 (en) Web API framework
US7181747B2 (en) Method and device for executing a function with selection and sending of multiple results in a client-server environment
CN101411164B (zh) 用于呈现远程可视合成的方法
CN113313623A (zh) 水印信息显示方法、装置、电子设备、计算机可读介质
Grimstead et al. RAVE: the resource‐aware visualization environment
KR20090000199A (ko) 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체
US7818431B2 (en) Efficient exchange of service requests and responses
CN112866294B (zh) 一种多协议适配方法、装置及可读存储介质
Di Nitto et al. Adaptation of web contents and services to terminals capabilities: The@ Terminals approach
JP6082210B2 (ja) 情報処理装置およびその制御方法、システム、並びにプログラム
CN113743060A (zh) 可定制的报表生成方法、装置、计算机设备及存储介质
JP2005004629A (ja) ページ生成方法及びその装置
CN116226566A (zh) 一种渲染内嵌客户端界面至网页的方法和系统
CN117876552A (zh) 倾斜摄影三维模型渲染方法、计算机设备及存储介质
CN111200533A (zh) 基于OpenDDS的分布式网络配置部署方法
Schwan et al. Autonomic information flows
JP2005107884A (ja) インタフェース定義記述を生成する方法、およびインタフェース定義記述生成装置
JP2009135583A (ja) クライアント装置、アプリケーションプログラム
KR20160102360A (ko) 에스브이지 파일 포맷을 이용한 컴포넌트 기반의 동적 이미지 표시 시스템 및 방법
Skorin-Kapov et al. Interactive visualization of grid monitoring data on multiple client platforms

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526