KR20080052574A - 고레벨 그래픽스 스트림 - Google Patents

고레벨 그래픽스 스트림 Download PDF

Info

Publication number
KR20080052574A
KR20080052574A KR1020087005363A KR20087005363A KR20080052574A KR 20080052574 A KR20080052574 A KR 20080052574A KR 1020087005363 A KR1020087005363 A KR 1020087005363A KR 20087005363 A KR20087005363 A KR 20087005363A KR 20080052574 A KR20080052574 A KR 20080052574A
Authority
KR
South Korea
Prior art keywords
graphics
channel
tree
data packets
visual
Prior art date
Application number
KR1020087005363A
Other languages
English (en)
Inventor
스리람 수브라마니안
레오나르도 이. 블란코
안드레이 바이오우라
오레스트 도린 언거레안우
스리야 샘파스
파웰 올스즈타
길리스 코우잠
조이 칙
폴 데이비드
이반 레이츠링
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 KR20080052574A publication Critical patent/KR20080052574A/ko

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)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

그래픽스나 이미지를 나타내는 그래픽스 커맨드들을 소비 프로세스에 제공하는 시스템이 개시된다. 그래픽스 커맨드들은 오브젝트들 및 오브젝트들을 서술하는 리소스들을 포함하는 비주얼 트리에 의해 나타내어 진다. 오브젝트들 및 리소스들은 비주얼 트리에 유사한 유사 구성 트리를 생성하는 구성 엔진에 통신된다. 그래픽스 또는 이미지를 렌더링하기 위하여 구성 트리가 이용된다.
그래픽스 커맨드, 소비 프로세스, 오브젝트, 리소스, 비주얼 트리, 구성 엔진

Description

고레벨 그래픽스 스트림{HIGH LEVEL GRAPHICS STREAM}
본 출원은 그 개시가 여기에 포함되어 있는 2005년 9월 7일 출원된, 미국 가특허출원 No. 60/714,880에 대하여 35 U.S.C.§119(e)하에 우선권을 주장한다.
애플리케이션 프로그램들 또는 프로세스들이 디스플레이될 이미지들 또는 그래픽스를 제공하는 경우, 애플리케이션 프로그램들 또는 프로세스들은 이미지들이나 그래픽스를 렌더링하기 위하여 그래픽스 커맨드들을 이용하는 운영체제 컴포넌트들 또는 다른 프로세스들에 그래픽스 커맨드들을 송신할 수 있다. 상위 레벨의 그래픽스 커맨드들 또는 프리미티브들(primitives)로도 호칭되는 그래픽스 커맨드들은 컬러들, 라인들, 형상들, 및 다른 그래픽스 구성체들(graphics constructs)을 지정 또는 정의할 수 있다. 그래픽스 커맨드들을 수신하는 운영 체제 컴포넌트들 또는 프로세스들은 그래픽스 커맨드들을 디스플레이 장치에서 그래픽스를 렌더링하기 위하여 이용되는 개별 픽셀값들 또는 비트맵들과 같은 보다 하위 레벨의 그래픽스 정보로 번역하거나 또는 변환할 수 있다.
그래픽스 커맨드들의 일 예는 "Graphical Device Interface", "Graphics Device Interface", 또는 "Graphics Display Interface"를 나타내는 GDI이다. GDI 구현에서, 인터페이스(즉, GDI 인터페이스)는 그래픽스 커맨드들을 수신하는 컴포 넌트나 프로세스의 일 부분으로 될 수 있거나 지원할 수 있다. 특히, GDI 인터페이스는 애플리케이션으로부터 파라미터들을 수신하며, 이 경우 파라미터들은 나타내어질 이미지 또는 그래픽을 위한 것이다. GDI 인터페이스는 후속하여 이미지를 모니터, 프린터, 등의 디스플레이 또는 출력 장치에 렌더링시키는 프로세스 또는 컴포넌트에 커맨드들을 송신함으로써 이미지를 생성한다.
어떤 구현들에서는, 그러한 그래픽스 커맨드들을 송신하는 애플리케이션 프로그램들 또는 프로세스들은 그래픽스 커맨드들을 수신하는 운영체제 컴포넌트들 또는 프로세스들을 호스트하는 장치들이나 컴퓨터들로부터 분리되어 있는 장치들 또는 컴퓨터들 상에 존재한다. 이 구현들은 트랜스-머신(trans-machine) 시스템들로 호칭될 수 있으며, 그 예들로서 중앙 서버 컴퓨터 상에 애플리케이션들이 존재하고 로컬 렌더링되는(즉, 클라이언트 컴퓨터들에서) 그래픽스 커맨드들을 원격 클라이언트 컴퓨터들이 수신하는 터미널 서비스 시스템들을 포함한다. 다른 구현들에서, 그래픽스 커맨드들을 수신하는 애플리케이션 프로그램들 및 운영체제 컴포넌트들은 동일한 장치 또는 컴퓨터 상에 존재하며 트랜스-프로세스 (trans-process)시스템들로 호칭될 수 있다. 다른 구현들은 동일한 프로세스를 이용하여 그래픽스 커맨드들을 송신할 수 있지만, 이러한 구현들은 그래픽스 커맨드들이 전달되는 다른 스레드들(threads)을 사용할 수 있다. 이 구현들은 트랜스-스레드(trans-thread) 시스템들로 호칭될 수 있다.
트랜스-머신, 트랜스-프로세스, 또는 트랜스-스레드 등의 특정의 구현 또는 시스템과 무관하게, 애플리케이션 프로그램들에 의해 송신된 그래픽스 커맨드들은 일시적인 것이 통상적이다. 즉, 프로세싱을 위하여 애플리케이션에 의해 그래픽스 커맨드들이 송신되고 수신되면, 그들은 즉시 소비 또는 프로세스된다. 이것은 특히, GDI가 이용되는 경우에 그러한데, 이 인터페이스는 파라미터들을 수신하고, 그래픽스 커맨드들을 생성하며, 그래픽스 커맨드들이 즉시 소비한다. 따라서, 특정 그래픽스 또는 이미지가 소실되면, 애플리케이션 프로그램 또는 프로세스는 그래픽스 커맨드들(또는 파라미터들)을 수신 컴포넌트 또는 프로세스에 재송신해야 한다. 더욱이, 그래픽스 커맨드들은 그들이 수신되는 대로 소비될 수 있기 때문에, 사용자가 그 그래픽스 커맨드들에 특정한 그래픽스 또는 이미지를 복제하기를 바란다면, 특정한 그래픽스 커맨드들이 재송신되어야 한다.
어떤 상황들에서는, 그래픽스 커맨드들이 최적화 또는 압축된다. 이 최적화 또는 압축은 터미널-서비스(terminal-service) 시스템들과 같은 트랜스-머신 구현들에서 수행되며, 이 경우 중앙 서버 컴퓨터와 원격 클라이언트 컴퓨터들 간의 통신은 네트워크와 같은 통신 매체를 통하여 이루어진다. 통신 매체 또는 네트워크에 걸친 대역폭은 종종 제한된다. 따라서, 최적화 압축이 필요할 수 있다. 최적화 또는 압축은 이미지 품질을 손상시킬 수 있다. 예를 들면, 어떤 상황들에서는, 수신 컴퓨터 또는 장치에서 그래픽 또는 이미지를 확대하는 것이 바람직할 수 있지만, 그래픽스 커맨드들이 압축되었으므로, 확대는 이미지를 열화시킬 수 있다.
더욱이, 어떤 경우들에서는, 상이한 애플리케이션들이 상이한 유형들 또는 비유사 그래픽스 커맨드들을 지원 또는 제공할 수 있다. 예를 들면, 한 애플리케이션은 GDI와 같은 레거시 그래픽스 커맨드 포맷(legacy graphics command format) 을 지원할 수 있는 한편, 다른 애플리케이션은 새로운 또는 상이한 그래픽스 커맨드 포맷을 지원할 수 있다. 그러나, 상이한 그래픽스 커맨드 포맷들을 지원하고 상이한 그래픽스 커맨드 포맷들을 이용하는 애플리케이션들로부터 그래픽스가 프로세스되도록 허용하는 것이 바람직할 수 있다.
발명의 개요
그래픽스 커맨드들은 그래픽스 스트림 내의 데이터 패킷들 내에 제공된다. 데이터 패킷들은 비주얼 트리와 같은 편집 가능한 모델의 리소스들 및 오브젝트들을 나타낸다. 그래픽스 스트림 또는 데이터 패킷들은 전용 채널을 통해 송신되며, 이 경우 그래픽스 스트림 또는 데이터 패킷들을 수정하는 애플리케이션이 채널 내에 도입될 수 있다. 비주얼 트리와 유사한 구성 트리(composition tree)를 생성하는 구성 엔진(composition engine)에 의해 데이터 패킷들이 수신된다.
이 개요는 이하의 상세한 설명부에서 더 상세히 설명되는 간략화된 형태의 개념들의 선택을 도입하기 위하여 제공된다. 이 개요는 청구된 본원의 주제의 주요한 특징들 또는 본질적인 특징들을 식별하려는 것이 아니며, 청구된 본원의 주제의 범위를 결정하는 것을 돕기 위한 것도 아니다.
첨부 도면들을 참조하여 상세한 설명이 기재된다. 도면들에서, 참조부호의 가장 좌측 숫자(들)는 그 참조부호가 처음 나타난 도면을 식별한다. 상이한 도면들에서 동일한 참조부호들을 사용하는 것은 유사하거나 동일한 항목들을 나타낸다.
도 1은 비주얼 트리의 형태로 그래픽스를 제공하는 채널을 구현하는 시스템의 블럭도.
도 2 그래픽스 또는 이미지를 나타내는 비주얼 트리 및 유사한 구성 트리를도시하는 도면.
도 3은 그래픽스 또는 이미지들을 제공할 비주얼 트리 및 구성 트리들을 구현하는 컴퓨팅 장치의 블럭도.
도 4는 그래픽스 또는 이미지의 구성 트리를 수정하는 애플리케이션 및 애플리케이션 프로그램 인터페이스들을 구현하는 시스템의 블럭도.
도 5는 수정된 구성 트리를 도시하는 도면.
도 6은 일 프로세스를 도시하는 흐름도.
도 7은 일 프로세스를 도시하는 흐름도.
도 1은 그래픽스 또는 이미지들을 제공 및 렌더링하는 시스템(100)을 도시한다. 특히, 시스템(100)은 그래픽스 또는 이미지들을 제공 및 렌더링하는 경우의 비주얼 트리들 및 구성 트리들의 사용을 구현한다. 시스템(100)은 트랜스-머신 시스템으로서 구현될 수 있으며, 이 경우 시스템(100)의 엘리먼트들 또는 프로세스들은 하나보다 많은 머신 또는 장치에 존재하고, 머신들 또는 장치들 간의 통신은 인트라넷들 및 인터넷을 포함하는 네트워크와 같은 통신 매체를 통해 이루어진다. 트랜스-머신 시스템들의 예들은 터미널-서비스 시스템들을 포함하며, 이 경우 중앙 서버 컴퓨터는 하나 이상의 클라이언트 컴퓨터들을 지원한다. 특히, 애플리케이션 프로그램들은 중앙 서버 컴퓨터에 존재하며 클라이언트 컴퓨터들에 의해 액세스 또는 이용된다. 시스템(100)은 또한 트랜스-프로세스 시스템으로서 구현될 수 있으며, 이 경우 엘리먼트들 또는 프로세스들은 동일한 머신 또는 장치 상에 존재한다. 시스템(100)의 다른 예시적인 구현은 트랜스-스레드 시스템이며, 이 경우 그래픽스는 동일 프로세스 내에서 상이한 스레드들을 통해 송신된다.
간략화를 위하여, 시스템(100)은 단일 애플리케이션 프로그램(102)을 보이지만, 시스템(100)은 복수의 애플리케이션 프로그램들을 포함할 수 있다. 시스템(100)은 프레임워크(104)를 더 포함한다. 프레임워크(104)의 일 예는 마이크로소프트사의 Windows® Presentation Foundation을 포함한다. 프레임워크(104)는 애플리케이션 프로그램(102)과 같은 하나 이상의 애플리케이션 프로그램들을 액세스한다. 특히, 애플리케이션 프로그램(102)에 의하여 그래픽스 커맨드들이 프레임워크(104)에 제공된다. 프레임워크(104)는 애플리케이션 프로그램(102)과의 통신시 특정한 API(application program interface)를 구현 또는 포함할 수 있다.
시스템(100)은 프레임워크(104)로부터 그래픽스 커맨드들을 수신하고 비주얼 트리(108)를 생성한다. 비주얼 트리(108)는 프레임워크(104)에 의하여 제공된 그래픽스 또는 이미지의 표현이며, 이 경우 그래픽스 또는 이미지는 애플리케이션 프로그램(102)으로부터의 그래픽스 커맨드들을 나타낸다.
비주얼 트리(106)는 이하에서 더 상세히 설명되는 비주얼 오브젝트들 및 리소스들로 구성된다. 비주얼 오브젝트들 및 리소스들은 데이터 또는 그래픽스 스트림을 구성하는 특정의 데이터 패킷들로 전환될 수 있다. 그래픽스 스트림은 전용 채널(110)을 통하여 구성 엔진(112)에 통신된다. 다른 애플리케이션 프로그램들이 시스템(100)에 포함되어 있는 경우, 각각의 애플리케이션 프로그램은 그 자체의 전용 채널을 가진다는 점에서, 채널(110)은 전용 채널이다. 상이한 스레드들을 통하여 그래픽스 스트림이 통신되는 트랜스-스레드 시스템에서, 각각의 전용 채널은 하나의 특정 스레드를 나타낸다. 이하에 더 설명되는 바와 같이, 채널(110)은 또한, 상반 채널 및 하반 채널을 포함하는 상이한 기능부들로 분할될 수 있다.
그래픽스 스트림의 데이터 패킷들은 특정 포맷으로 제공될 수 있다. 예시적인 데이터 패킷 포맷은 32 비트 데이터 패킷 사이즈값 및 32 비트 무부호(unsigned) 패킷 식별값 뒤에 하나 이상의 커맨드들의 패킷 데이터가 이어지는 것이다. 또한, 복수의 채널들이 구현되는 경우, 각각의 채널은 특정 접속과 연관될 수 있다. 데이터 패킷은 채널 접속을 지정하는 메시지를 제공할 수 있다. 그러한 메시지는 예시적인 필드들 "Connection ID", 후속하는 "Channel ID", 후속하는 "Command ID", 후속하는 "Command Data"를 포함하는 포맷으로 구현될 수 있다.
구성 엔진(112)이 백 메시지들을 코어(106), 프레임워크(104), 및 애플리케이션 프로그램(102)에 송신하는 것을 허용하는 백 채널(back channel)(114)이 제공될 수 있다. 백 채널(114)과 같은 채널들에는 각각의 전용 채널(예를 들면, 채널(110))이 제공될 수 있다. 백 채널(114)을 통하여 역송신되는 메시지들은 하드웨어 상태 및/또는 구성 엔진(112)에 의해 지원되는 하드웨어 또는 하드웨어 구성에 대한 변경들을 포함할 수 있다. 구성 엔진(112)에 의해 리턴된 메시지들의 다른 예들은 메모리 부족 정보, 프레임 레이트 소비 정보, 하드웨어 변경들 등을 포 함한다.
데이터 패킷들은 배치들(batches)로 배열될 수 있으며, 이 경우 데이터 패킷들의 배치들은 채널(108)을 통하여 구성 엔진(112)에 송신된다. 예를 들면, 비주얼 트리(108)의 비주얼 오브젝트들 및 리소스들은 배치로서 구성 엔진(112)에 송신된다. 구성 엔진(112)은 유사한 구성 트리(116)를 생성하기 전에, 비주얼 오브젝트들 및 리소스들의 전체 배치(entire batch)를 수신하는 것을 기다린다. 그래픽스 스트림 내에 송신되는 오브젝트들 및 리소스들 이외에, 커맨드들 또는 명령어들이 그래픽스 스트림에 포함된다. 커맨드들 또는 명령어들은 특히 구성 트리(116)를 생성하는 데 이용된다. 시스템(100)이 복수의 애플리케이션 프로그램들을 포함하는 경우, 각각의 애플리케이션 프로그램은 그래픽스 스트림들, 및 데이터 패킷들의 특정 배치들이 통신되는 각각의 자체 전용 채널을 가지므로, 구성 엔진(112)은 채널을 통해 통신될 다른 배치들이나 그래픽스 스트림들을 기다릴 필요는 없다. 즉, 전용 채널들은 상이한 애플리케이션 프로그램들로부터의 그래픽스 스트림들(데이터 패킷 배치들)의 통신의 간섭을 방지한다. 더욱이, 전용 채널들은 그래픽스 스트림들의 고유 동기화(inherent synchronization)를 허용하여 데이터 패킷들은 그들의 상대적인 연대순으로 수신된다.
구성 트리(116)는 비주얼 트리(108)와 동일한 정보(즉, 유사 오브젝트들 및 리소스들)를 포함하지만, 구성 트리(116)는 프로세스/기능(118)에 의해 이용되도록 포맷된다. 프로세스/기능(118)은 구성 트리(116)를 이용하여 그래픽스 또는 이미지들을 렌더링하는 운영 체제 컴포넌트 또는 애플리케이션 프로그램 컴포넌트일 수 있다. 프로세스/기능(118)은 구성 트리(116)를 디스플레이 장치(도시하지 않음)에서 그래픽스를 렌더링하기 위하여 이용되는 개별 픽셀값들 또는 비트맵들과 같은 하위 레벨 그래픽스로 번역 또는 변환할 수 있다. 이하에서 더 설명되는 바와 같이, 구성 트리(116)의 오브젝트들 및 리소스들은 구성 트리(116)를 재구성하는 것에 관한 다른 커맨드들 또는 명령어들과 함께, 장래에 또는 구성에 의해 나타낸 그래픽스 또는 이미지가 소실된 때의 "refresh"와 같은 경우에 사용되도록 로컬 메모리에 하나의 파일로서 저장될 수 있다.
그래픽스 및 스트림들이 채널(110) 또는 다른 채널들을 통해 송신됨에 따라 최적화 및 압축이 수행될 수 있다. 최적화 또는 압축은 다양한 최적화 및/또는 압축 방법들 중 하나를 구현할 수 있다. 더욱이, 그래픽 스트림 메시지들 또는 그래픽스 스트림은 다양한 전송 프로토콜들(예를 들면, RPC, RDP, TCP/IP, 등) 중 하나를 이용하여 전송될 수 있다.
도 2는 예시적인 비주얼 트리(108) 및 예시적인 구성 트리(106)를 도시한다. 비주얼 트리(108)는 계층적 그래픽 또는 비주얼 오브젝트들 V1(200(1)) 내지 VN(200(N))로 구성된다. 비주얼 트리(108)는 그래픽스 또는 이미지를 나타낸다. 비주얼 오브젝트들(200)의 각각은 커맨드들, 명령어들, 또는 리소스들(집합적으로는 "리소스들"로 호칭됨)로 더 서술된다. 특히, 비주얼 오브젝트들을 작성하는 방법을 서술하기 위하여 리소스들이 이용된다. 리소스들은 상위 순서 또는 하위 순서 리소스들을 가질 수 있다. 예를 들면, "draw line" 리소스(202)에 의해 그래픽스 오브젝트 V3(200(3))이 정의된다. "draw line" 리소스(202)는 "pen" 리소 스(204)에 의해 더 서술된다. "pen" 리소스(204)는 "brush" 리소스(206)에 의해 더 서술된다.
전술된 바와 같이, 비주얼 오브젝트들 V(200)는 리소스들(예를 들면, 리소스들(202, 204, 206))과 함께 데이터 패킷들로 전환되며 커맨드들 또는 명령어들과 함께 그래픽스 스트림 내에서 송신된다. 커맨드들 또는 명령어들은 유사한 구성 오브젝트들 C1(208(1)) 내지 CN(208(N)), 및 구성 오브젝트들 C(208)의 각각을 정의하는 리소스들(예를 들면, "draw line" 리소스(210), "pen" 리소스(212), 및 "brush" 리소스(214))을 이용하는 구성 트리(116)를 구성하는 데 이용된다. 전술된 바와 같이, 비주얼 오브젝트들, 리소스들, 커맨드들, 및 명령어들의 그래픽스 스트림을 수신하는 구성 엔진은 구성(composition)을 만들기 전에 모든 데이터 패킷들이 수신되는 것을 기다릴 수 있다. 따라서, 비주얼 오브젝트들, 리소스들, 커맨드들, 및 명령어들은 하나의 배치로서 송신될 수 있다.
도 3은 그래픽스 또는 이미지들을 제공 하기 위한 비주얼 트리들 및 구성 트리들을 구현하는 예시적인 컴퓨팅 장치(300)를 도시한다. 컴퓨팅 장치(300)는 트랜스-프로세스 시스템의 일 구현이지만, 컴퓨팅 장치(300) 내의 엘리먼트들은 또한 트랜스-머신 및 트랜스-스레드 시스템들 내의 유사한 엘리먼트들의 일부로서 구현되거나 또는 그러한 엘리먼트들을 가질 수 있는 것이 자명할 것이다. 컴퓨팅 장치(300)는 로컬 운영 체제, 프로세싱 유닛 또는 프로세서(들)(302), 및 저장 시스템 또는 메모리(304)를 포함하는 종래의 데스크탑 퍼스널 컴퓨터(PC)일 수 있다. 일 예로서, 컴퓨팅 장치(300)는 마이크로소프트사의 Windows® 브랜드 운영 체제로 구현된 범용 PC이다.
이 예에서, 애플리케이션 프로그램(306) 및 레거시 애플리케이션 프로그램(308)은 메모리(304)에 존재하거나 메모리(304)로부터 별도로 존재하는 복수의 애플리케이션 프로그램들의 일 부분일 수 있다. 프로그램들(306 및 308)은 특히 프로세서(들)(302)에 의해 액세스 및 제어된다. 레거시 애플리케이션 프로그램(308)은 GDI와 같은 그래픽스 커맨드 포맷들을 구현하는 애플리케이션 프로그램들을 포함할 수 있다.
컴퓨팅 장치(300)는 애플리케이션 프로그램(306)을 지원하는 프레임워크 및 코어(310)를 포함한다. 프레임워크 및 코어(310)는 전술된 프레임워크(104) 및 코어(106)를 포함한다. 이 예에서, 레거시 애플리케이션 프로그램(308)은 레거시 프레임워크 및 코어(312)에 의해 지원된다. 다른 구현들에서, 단일의 프레임워크 및 코어가 이용되어 복수의 애플리케이션 프로그램들을 지원할 수 있다. 프레임워크 및 코어(310) 및 레거시 프레임워크 및 코어(312)는 특히, 각각의 애플리케이션 프로그램(306) 및 레거시 애플리케이션 프로그램(308)으로부터 수신된 커맨드들에 기초한, 비주얼 트리(108)와 같은 비주얼 트리들을 생성 및 제공하도록 구성된다.
프레임워크 및 코어(310)는 애플리케이션 프로그램(306)을 지원하는 전용 채널 "A"로의 인터페이스일 수 있는 리디렉터(redirector, 314)에 연결된다. 리디렉터(314)는 채널 "A"의 "상반"으로서 간주될 수 있다. 유사하게, 레거시 프레임워크 및 코어(312)는 레거시 애플리케이션 프로그램(308)을 지원하는 별도의 채널 "B"로의 인터페이스인 레거시 리디렉터(316)에 연결된다. 유사하게, 리디렉 터(316)는 채널 "B"의 "상반"으로 간주될 수 있다. 리디렉터들(314 및 316)은 전송층 또는 전송(transport, 318)에 연결되거나 사용할 수 있다. 리디렉션층(320)은 채널 "A"의 하반이며, 리디렉션층(322)은 채널 "B"의 하반이다.
구성 엔진 "A"(324)는 채널 "A"를 통하여 그래픽스 스트림을 수신하고 프로세스/기능 "A"(326)에 의한 사용을 위한 구성 트리를 생성한다. 유사하게, 구성 엔진 "B"(328)는 채널 "B"를 통하여 그래픽스 스트림을 수신하고, 프로세스기능 "B"(330)에 의한 사용을 위한 구성 트리를 생성한다. 프로세스 기능 "A"(326) 및 프로세스/기능 "B"(330)의 각각은 생성된 구성 트리들을 이용하여 로컬 디스플레이 또는 출력 장치로의 그래픽스 또는 이미지들을 렌더링 또는 생성한다.
도 4는 그래픽스 또는 이미지의 구성 트리를 수정하는 데 이용된 애플리케이션 및 애플리케이션 프로그램 인터페이스들을 구현하는 시스템(400)을 도시한다. 이 예에서, 시스템(400)은 전술된 시스템(100)의 수정이다. 어떤 경우들에서는, 애플리케이션 프로그램(306) 및 레거시 애플리케이션 프로그램(308)과 같은 애플리케이션 프로그램들에 의해 제공되는 그래픽스 또는 이미지들을 수정하는 것이 바람직할 수 있다. 그래픽 스트림 메시지들 또는 그래픽스 스트림들이 송신되는 경우 최적화 또는 압축이 발생할 수 있는 것을 고려하면, 특히, 트랜스-머신 시스템들에서, 수정이 발생하는 경우 그래픽스 또는 이미지의 열화를 최소화시키는 것이 바람직하다.
이 예에서, 애플리케이션(402)은 채널(404)의 상반과 채널(406)의 하반 사이에 위치된다. 애플리케이션(402)은 그래픽스 또는 이미지 수정을 수행할 수 있거 나, 또는 어떤 경우들에서는 애플리케이션(402)은 채널을 통해 전달되고 있는(즉, 채널 절반들(404 및 406) 사이에서) 그래픽스 스트림을 액세스하거나 볼 수 있는 접근 가능성 애플리케이션으로서 구성될 수 있다. 일반적으로, 애플리케이션(402)은 한 채널 내에 배치될 수 있는 매개물로서 간주된다.
그래픽스 또는 이미지 수정의 일 예는 그래픽스 또는 이미지를 확대(enlarging or magnifying)하는 것이다. 애플리케이션(402)은 특히 채널을 통해 전달하는 그래픽스 스트림 또는 특정 데이터 패킷들을 수정하여, 수정된 구성 트리(408)가 생성된다. 이하에서 더 설명되는 바와 같이, 구성 내의 노드 또는 노드들의 계층과는 무관하게, 구성 트리의 특정한 노드 또는 노드들에 대하여 수정이 이루어질 수 있다. 비교적 상위 레벨 노드가 수정되면, 구성 트리에서 그 아래의 모든 노드들이 영향을 받는다(즉, 수정됨).
그래픽스 스트림 애플리케이션 프로그램 인터페이스(API)(410) 및 재생 API(412)가 또한 제공될 수 있으며 애플리케이션(402)을 코어(104) 및 구성 엔진(110)에 노출시킨다. 특히, 코어(104)로부터의 그래픽스 스트림에 액세스하기 위하여 그래픽스 스트림 API(410)이 이용되고 애플리케이션(402)으로부터의 그래픽스 스트림을 오픈하기 위하여 구성 엔진(110)에 의해 재생 API(412)가 이용된다.
그래픽스 스트림 API(410)는 판독을 위하여 그래픽스 스트림을 오픈하는 "graphics stream open" API를 포함할 수 있다. 또한, 구성 엔진(110)이 지원하는 특정 기능 또는 프로세스에 대한 포인터가 "graphics stream open" API에 의해 구현되어 애플리케이션(402)에 제공될 수 있다. 그래픽스 스트림 API(410)는 판독을 위하여 그래픽스 스트림을 클로즈하는 "graphics stream close" API를 더 포함할 수 있다. "graphics stream close" API는 클로즈 메시지가 구성 엔진(110) 또는 구성 엔진(110)이 지원하는 특정의 기능 또는 프로세스에 송신되게 한다.
그래픽스 스트림 API(410)는 또한 코어(104), 또는 트랜스-머신 시스템(예를 들면, 터미널-서비스 시스템)의 경우에는 그래픽스 서버(즉, 그래픽스 서버 내에 존재하는 코어(104))에 애플리케이션(402)이 그래픽스 스트림에 대하여 어떤 조치 혹은 수정(예를 들면, 확대)을 수행하려고 한다는 힌트 또는 메시지를 제공하는 "graphics stream set transform hint" API를 포함한다. 예를 들어, 확대의 경우, "graphics stream transform hint" API는 확대(enlargement or magnification)를 설명하기 위한 메시지를 애플리케이션 프로그램(102)에 제공한다. 또한, 특정의 수정된 구성 트리(404)에 대한 포인터가 제공될 수 있다. 메시지는, 백 채널(114)과 같은 백 채널을 통해 송신될 수 있다.
재생 API(412)는 수정된 구성 트리(408)를 작성 또는 생성하는 능력을 구성 엔진(112)에 제공한다. 일반적으로 재생 API(412)는 애플리케이션(402)에 구성 엔진(112) 및 채널(406)의 하반을 노출한다.
도 5는 수정된(modified or revised) 구성 트리를 도시하는 도면이다. 특히, 애플리케이션(402)에 의해 수정된 수정 구성 트리(408)가 도시된다. 이 예에서, 수정은 이전의 구성 트리(예를 들면, 구성 트리(116))를 확대(enlarge or magnify)하는 것이다.
그래픽스 또는 이미지들에 대하여 수정이 발생하는 경우, 구성 트리 상에서, 특히 구성 트리의 노드 또는 노드들에 대하여 수정이 수행된다. 어느 노드 또는 노드들이 수정되는 지에 따라, 다른 노드들이 영향을 받을 수 있다. 즉, 특정 노드가 수정되면, 그 특정 노드로부터의 브랜치들의 모든 하위 레벨 노드들이 영향을 받거나 수정된다. 이 예에서, 노드 C1(208)는 "magnify" 노드(500)에 의해 수정된다. 따라서, 이전의 구성 트리(116)가 수정되어(즉, 확대) 수정된 구성 트리(408)로서 제공된다.
도 6은 프로세스 또는 기능으로의 비주얼 트리들을 나타내는 그래픽스 스트림들을 제공하는 프로세스(600)를 도시한다. 프로세스(600)는 또한 그래픽스 스트림의 수정을 지원하는 API로서 구현될 수 있다. 프로세스(600)는 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합으로 구현될 수 있는 연산들의 시퀀스를 나타내는 논리적 흐름 그래프 내의 블럭들의 콜렉션으로서 도시된다. 소프트웨어와 관련하여, 블럭들은, 하나 이상의 프로세서들에 의해 실행되는 경우, 인용된 연산들을 수행하는 컴퓨터 명령어들을 나타낸다. 흐름도로서 기술되었지만, 어떤 블럭들은 동시에 또는 상이한 순서로 발생할 수 있는 것이 고려된다. 프로세스(600)는, 다른 아키텍쳐들에 의해 구현될 수 있지만, 예를 들어, 도 1의 시스템(100) 및/또는 도 3에서 설명된 컴퓨팅 장치(300)에 의해 구현될 수 있다.
블럭(602)에서, 그래픽스 커맨드들은 채널에 위치되어 있는 애플리케이션에 송신되어 수신된다. 애플리케이션은 접근 가능성 애플리케이션 또는 수정을 수행하는 애플리케이션일 수 있다. 그런 애플리케이션의 일 예는 애플리케이션(402)이다. 그래픽스 스트림은 비주얼 트리를 구성하는 리소스들 및 비주얼 오브젝트들을 나타내는 데이터 패킷들을 포함할 수 있다.
블럭(604)에서, 애플리케이션들은 그래픽스 스트림을 오픈 또는 액세스한다. 오픈하는 것(opening)은 단순히 그래픽스 스트림들 및 그래픽스 스트림의 데이터 패킷들을 판독하는 것에 관련될 수 있거나, 그래픽스 스트림 상에서 수정이 수행될 수 있다. 더욱이, 그래픽스 스트림을 수신하는 구성 엔진에 의해 지원된 기능 또는 처리들에 대하여 포인터가 제공될 수 있다.
블럭(606)에서, 그래픽스 스트림 및/또는 데이터 패킷들의 실제 수정이 수행된다. 수정의 예들은 확대를 포함한다. 어떤 경우들에서, 그래픽스 스트림들을 제공하는 코어에 메시지가 제공될 수 있으며, 이 메시지는 확대와 같은 수정이 발생하는 것을 나타낸다.
블럭(608)에서, 수정된 스트림은 오리지날 비주얼 트리, 및 수정으로부터의 변경 또는 수정들에 기초하여 구성 트리를 생성할 수 있는 구성 엔진에 전달된다.
블럭(610)에서, 그래픽스 스트림이 클로즈될 수 있다. 즉, 애플리케이션은 그래픽스 스트림 판독으로부터 배제된다. 클로징이 발생 중이거나 발생한 것을 나타내는 메시지가 구성 엔진에 송신될 수 있다.
도 7은 프레임워크와 구성 엔진 간의 통신을 허용하는 프로세스(700)를 도시한다. 프로세스(700)는 그런 통신을 제공하기 위한 프로토콜로서 구현될 수도 있다. 프로세스(700)는 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합으로 구현될 수 있는 연산들의 시퀀스를 나타내는 논리적 흐름 그래프의 블럭들의 콜렉션으로서 도시된다. 소프트웨어와 관련하여, 블럭들은, 하나 이상의 프로세서들에 의해 실행 되는 경우, 인용된 연산들을 수행하는 컴퓨터 명령어들을 나타낸다. 흐름도로서 기술되었지만, 어떤 블럭들은 동시에 또는 상이한 순서로 발생할 수 있다. 프로세스(700)는, 다른 아키텍쳐들에 의해 구현될 수 있지만, 예를 들면, 도 1의 시스템(100) 및/또는 도 3에 도시된 컴퓨팅 장치(300)에 의해 구현될 수 있다.
블럭(702)에서, 프레임워크 또는 코어와, 구성 엔진 사이의 통신을 허용하는 전용 채널이 생성된다. 구성 엔진이 프레임워크 또는 코어에 백 메시지들을 역으로 송신하는 것을 허용하기 위한 전용 백 채널도 생성될 수 있다.
블럭(704)에서, 데이터 패킷들은 전용 채널을 통해 송신 또는 제공된다. 데이터 패킷들은 그래픽스 스트림의 일부일 수 있고 배치(batch)로서 송신될 수 있다. 데이터 패킷들의 배치는 편집 가능 모델을 생성하는데 필요한 모든 오브젝트들 및 리소스들을 포함한다. 모델은 그래픽스 또는 이미지를 나타내며, 예를 들어, 전술된 비주얼 트리(108)와 같은 계층 트리일 수 있다.
블럭(706)에서, 그래픽스 스트림 또는 데이터 패킷들을 수정하기 위한 애플리케이션이 채널에 도입될 수 있다. 애플리케이션들의 예들은 그래픽스 스트림 판독기 또는 확대기(magnifier)를 포함한다. 수정이 수행되는 것을 나타내는 메시지가 프레임워크 또는 코어에 리턴될 수 있다.
블럭(708)에서, 편집되거나 편집된 데이터 패킷들을 이용하여 편집 가능 모델이 작성된다. 설명된 바와 같이, 편집 가능한 모델은 코어에서 생성된 비주얼 트리에 대하여 유사한 계층 트리일 수 있다. 특히, 편집 가능 모델은 구성 트리들(116 및 408)과 같은, 구성 트리로서 고려 또는 호칭된다.
결론
전술된 시스템은 그래픽스 또는 이미지를 렌더링하는데 이용된 구성 트리를 생성하는 구성 엔진에 비주얼 트리와 같은 편집 가능 모델을 통신하는 것을 지원한다. 본 발명은 구조적 특징들 및/또는 방법적 행위들에 특정한 용어로 기술되었지만, 청구범위에 기재된 본 발명은 전술된 특정의 특징들 또는 행위들에 반드시 한정되는 것은 아니라는 점이 이해되어야 한다. 오히려, 상기 특정의 특징들 및 행위들은 청구된 본 발명을 구현하는 것의 예시적인 형태로서 개시된다.

Claims (20)

  1. 비주얼 트리를 나타내는 그래픽스 커맨드들을 수정하는 방법으로서,
    그래픽스 스트림 내의 상기 그래픽스 커맨드들을 수신하는 단계;
    상기 그래픽스 스트림을 오픈하는 단계;
    상기 그래픽스 스트림을 수정된 그래픽스 스트림으로 수정하는 단계; 및
    상기 수정된 그래픽스 스트림을 상기 비주얼 트리에 유사한 수정된 구성 트리를 생성하는 구성 엔진에 전달하는 단계
    를 포함하는 그래픽스 커맨드들을 수정하는 방법.
  2. 제1항에 있어서, 상기 그래픽스 스트림 내의 그래픽스 커맨드를 수신하는 단계는 상기 비주얼 트리를 구성하는 리소스들 및 비주얼 오브젝트들을 나타내는 데이터 패킷들을 포함하는 방법.
  3. 제1항에 있어서, 상기 오픈하는 단계는 접근 가능성(accessibility) 애플리케이션에 의해 수행되는 방법.
  4. 제1항에 있어서, 상기 오픈하는 단계는 상기 구성 엔진에 의하여 지원되는 애플리케이션에 대한 포인터를 제공하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 수정하는 단계는 상기 그래픽스 스트림에 대한 확대 연산(magnification operation)을 포함하는 방법.
  6. 제1항에 있어서, 상기 그래픽스 스트림을 판독으로부터 클로즈하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서, 상기 클로즈하는 단계는 상기 클로즈하는 단계가 발생하고 있다는 메시지를 상기 구성 엔진에 송신하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 그래픽스 스트림을 수정하는 단계에 관한 메시지를 코어에 제공하는 단계를 더 포함하는 방법.
  9. 프레임워크와 구성 엔진 사이의 통신 방법으로서,
    상기 프레임워크와 구성 엔진 사이에 전용 채널을 생성하는 단계;
    그래픽스의 편집 가능 모델의 엘리먼트들을 나타내는 데이터 패킷들을 상기 채널을 통하여 제공하는 단계; 및
    상기 구성 엔진에서 상기 그래픽스의 편집 가능 모델을 작성하는 단계
    를 포함하는 통신 방법.
  10. 제9항에 있어서, 상기 생성하는 단계는 상기 프레임워크에 상태 정보를 송신 하기 위하여 상기 구성 엔진에 대한 백 채널을 생성하는 단계를 더 포함하는 방법.
  11. 제9항에 있어서, 상기 제공하는 단계는 상기 데이터 패킷들을 배치화(batching)하는 단계를 더 포함하며, 상기 구성 엔진은 데이터 패킷들의 완전한 배치(batch)가 수신되는 경우에만 상기 편집 가능 모델을 작성하는 방법.
  12. 제9항에 있어서, 상기 제공하는 단계는 상기 채널을 통하여 상기 데이터 패킷들을 포함하는 그래픽스 스트림을 송신하는 단계를 포함하는 방법.
  13. 제9항에 있어서, 상기 작성 이전에 상기 데이터 패킷들을 액세스 및 수정하는 단계를 더 포함하는 방법.
  14. 제9항에 있어서, 상기 편집 가능 모델은 상기 데이터 패킷들 내에서 나타내어진 리소스들 및 비주얼 엘리먼트들을 포함하는 트리이고, 상기 편집 가능한 모델의 작성시 상기 데이터 패킷들에 커맨드들이 제공되는 방법.
  15. 하나 이상의 애플리케이션 프로그램들로부터의 그래픽스 및 이미지를 나타내는 그래픽스 커맨드들을 액세스하는 프레임워크;
    상기 프레임워크로부터 상기 그래픽스 커맨드들을 수신하고, 비주얼 트리를 생성하는 코어;
    상기 코어로부터 상기 비주얼 트리의 리소스들 및 오브젝트들을 나타내는 데이터 패킷들을 통신하는 채널; 및
    상기 채널에 접속되어, 상기 비주얼 트리에 유사한 구성 트리를 생성하는 구성 엔진
    을 포함하는 시스템.
  16. 제15항에 있어서, 상기 코어는 계층 비주얼 오브젝트들 및 리소스들을 생성하여 상기 비주얼 트리를 생성하며, 상기 리소스들은 상기 비주얼 오브젝트들을 서술하는 시스템.
  17. 제15항에 있어서, 상기 채널은 상기 코어 및 구성 엔진에 대한 전용 채널인 시스템.
  18. 제15항에 있어서, 상기 채널은 상반(top half) 및 하반(bottom half)으로 구성되며, 애플리케이션은 상기 상반과 하반 사이에서 구현될 수 있는 시스템.
  19. 제15항에 있어서, 백 채널을 더 포함하며, 상기 구성 엔진은 상기 백 채널을 통하여 상기 코어에 메시지들을 송신하는 시스템.
  20. 제15항에 있어서, 상기 시스템은, 트랜스-머신 시스템, 트랜스-프로세스 시 스템, 또는 트랜스-스레드 시스템 중 하나인 시스템.
KR1020087005363A 2005-09-07 2006-08-15 고레벨 그래픽스 스트림 KR20080052574A (ko)

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 US7609280B2 (en) 2005-09-07 2006-04-10 High level graphics stream
US11/279,194 2006-04-10

Publications (1)

Publication Number Publication Date
KR20080052574A true KR20080052574A (ko) 2008-06-11

Family

ID=37829623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087005363A KR20080052574A (ko) 2005-09-07 2006-08-15 고레벨 그래픽스 스트림

Country Status (11)

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

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
CA2616324C (en) 2008-02-04 2015-06-16 Omnivex Corporation Digital signage display
CA2620337C (en) * 2008-02-04 2012-11-27 Omnivex Corporation Digital signage network
CA2622367C (en) * 2008-02-04 2015-11-17 Omnivex Corporation Subscription based content delivery for a digital signage network
US8230180B2 (en) * 2008-06-11 2012-07-24 Samsung Electronics Co., Ltd. Shared memory burst communications
KR101496340B1 (ko) * 2008-10-31 2015-03-04 삼성전자주식회사 프로세서 및 메모리 제어 방법
WO2010087829A1 (en) 2009-01-29 2010-08-05 Hewlett-Packard Development Company, L.P. Selectively communicating data of a peripheral device to plural sending computers
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
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
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
US7379475B2 (en) 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US20020103935A1 (en) 2001-01-26 2002-08-01 Neil Fishman Pushing rich content information to mobile devices
JP4688316B2 (ja) * 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
WO2002084879A2 (en) 2001-04-13 2002-10-24 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
WO2005039185A1 (en) * 2003-10-06 2005-04-28 Mindego, Inc. 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

Also Published As

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

Similar Documents

Publication Publication Date Title
US7609280B2 (en) High level graphics stream
US9654586B2 (en) Resource server providing a rapidly changing resource
JP5373135B2 (ja) 代替的グラフィック・セットの効率的な符号化
KR101130484B1 (ko) 형상들을 사용하는 공통 차팅
US20090044112A1 (en) Animated Digital Assistant
JP2011129153A (ja) グラフィックス処理システムにおける統一された合成エンジンのためのシステムおよび方法
US9906626B2 (en) Resource demand-based network page generation
AU2004279201B2 (en) Protocol for remote visual composition
Mwalongo et al. GPU-based remote visualization of dynamic molecular data on the web
Grimstead et al. RAVE: the resource‐aware visualization environment
Grimstead et al. Visualization across the pond: How a wireless pda can collaborate with million-polygon datasets via 9,000 km of cable
CN116017028A (zh) 远程桌面的录屏方法、装置、电子设备及存储介质
CN112995711A (zh) 一种web前端视频的分帧与图片处理合成方法及系统

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid