KR20060009834A - 디스플레이 데이터 매핑 방법, 시스템, 및 프로그램 제품 - Google Patents

디스플레이 데이터 매핑 방법, 시스템, 및 프로그램 제품 Download PDF

Info

Publication number
KR20060009834A
KR20060009834A KR1020057019055A KR20057019055A KR20060009834A KR 20060009834 A KR20060009834 A KR 20060009834A KR 1020057019055 A KR1020057019055 A KR 1020057019055A KR 20057019055 A KR20057019055 A KR 20057019055A KR 20060009834 A KR20060009834 A KR 20060009834A
Authority
KR
South Korea
Prior art keywords
node
window
display data
data
display
Prior art date
Application number
KR1020057019055A
Other languages
English (en)
Other versions
KR100818976B1 (ko
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 KR20060009834A publication Critical patent/KR20060009834A/ko
Application granted granted Critical
Publication of KR100818976B1 publication Critical patent/KR100818976B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

본 발명은 적어도 하나의 윈도우(64A ~ H)를 포함하는 디스플레이 영역(60)에 대한 디스플레이 데이터가 공유 포맷으로 매핑되는 방법을 제공한다. 디스플레이 영역 내의 각 윈도우에 대한 속성 정보(attribute information)는 윈도우 각가에 대해 생성된 단일 노드(66A~H)에 저장된다. 계층노드(62)는 속성 정보를 이용하여 생성된다(S3). 노드 내의 속성 정보를 이용하여, 디스플레이 데이터가 공유포맷에 매핑된다(S7). 다음, 하나 이상의 다른 시스템과 매핑된 디스플레이 데이터를 공유할 수 있다.

Description

디스플레이 데이터 매핑 방법, 시스템, 및 프로그램 제품{Display data mapping method, system, and program product}
본 발명은 일반적으로 디스플레이 데이터를 매핑하는 것에 관한 것으로, 보다 구체적으로, 하나 이상의 포맷에서 공유형 포맷으로 디스플레이 데이터를 매핑하는 것에 관한 것이다.
개인들 간의 협력(collaboration)은 가장 보편화된 방식 중 일부인 전화, e-메일 및 서로 직면하는 것과 같은 다양한 형태로 얻어진다. 기술이 진보함에 따라, 개인들은 컴퓨터 어플리케이션은 물론이고 화상, 음성, 화이트보드 마크업(whiteboard markup), 채팅 등을 공유함으로써 더욱 협력하려 한다. 이러한 공유를 허용하는 두 개의 통상적인 협력 소프트웨어 제품은 로터스 SAMETIME®과 Microsoft NETMEETING®이다. 많은 현행 협력 소프트웨어 제품(들)이 갖는 하나의 문제는 그들의 플랫폼 의존성(platform dependency)이다. 예를 들면, 마이크로 소프트 NETMEETING®은 Microsoft WINDOWS® 운영 체계의 버전(version)을 이용하는 시스템에서만 작동한다. 다른 플랫폼은 디스플레이 데이터를 다르게 관리한다. 이것이 플랫폼을 통해 이용될 수 있는 협력 제품을 제작하는데 두드러진 방해물로 나타난다.
예를 들면, 디스플레이 데이터는 디스플레이 내의 각 픽셀에 대한 픽셀 데이터를 포함한다. 픽셀 데이터는 픽셀 위치, 픽셀 컬러, 및 픽셀 깊이에 대한 정보를 포함한다. 다양한 포맷이 픽셀 데이터내의 컬러 정보를 표현하기 위해 이용된다. 따라서, 플랫폼을 통해 디스플레이 데이터의 공유를 구현하기 위해, 픽셀 데이터가 공유 포맷으로 변환될 수 있다. 그러나, 여러 가지 인자(factor)로 인해 많은 구현에서 픽셀 데이터를 공유된 포맷으로 효율적으로 변환하는 것이 방해된다. 하나의 인자는 변환될 디스플레이 영역 내의 각 픽셀을 소유하는 윈도우를 판단해야하는 필요성이다. 픽셀에 대한 픽셀 데이터를 제공할 때, 윈도우는 픽셀을 소유한다.
전형적인 윈도우 디스플레이 환경에서, 윈도우는 계층관계(hierarchical)를 가질 수 있다. 예를 들면, 부모 윈도우의 디스플레이 공간(space) 내에 하나 이상의 자 윈도우(child windows)를 포함하는 부모 윈도우가 생성될 수 있다. 또한, 자 윈도우(child windows)는 그들 자신에 대한 하나 이상의 자 윈도우를 가질 수 있다. 각 윈도우는 임의의 조상 윈도우(즉, 부모 윈도우, 조부모 윈도우 등)의 디스플레이 공간의 일부를 점유한다. 형제 윈도우는 동일한 부모 윈도우를 공유하거나 부모 윈도우를 갖지 않는다(즉, 그들은 데스크탑상에 디스플레이된다). 형제 윈도우는 적층 순서(stacking order)에 할당된다. 적층 순서가 형제 윈도우가 철회되는 순서를 판단함으로써, 두 개의 형제 윈도우에 대한 디스플레이 영역이 오버랩될 때 형제 윈도우는 "상부에(on top)"있다. 크기, 적층 순서 및 윈도우의 개수 는 사용자에 의해 수시로 변경된다. 예를 들면, 부모 윈도우는 "최대화"되어 전체 디스플레이 영역을 차지할(take up) 수 있다. 또한, 사용자는 부분적으로 형제 윈도우 뒤에 있는 윈도우를 선택할 수 있으므로, 선택된 윈도우는 형제 윈도우의 상부에 도시된다.
예를 들면, X Windows System(윈도우 시스템)에서 픽셀 데이터가 각 윈도우에 대해 다르게 포맷될 수 있기 때문에, 상기 시스템에서 픽셀 소유를 결정하는 것은 중요하다. X 윈도우 시스템은 클라이언트-서버 윈도우 시스템이며, 이 시스템에서 "X client(클라이언트)"(어플리케이션)은 디스플레이를 변경할 커맨드를 포함하는 프로세싱을 수행한다. 이 커맨드들은 디스플레이 변경을 구현하는 "X server(서버)"에 제공(즉, 이미지를 사용자에게 "제공함")된다. X서버는 디스플레이를 구비한 컴퓨터 상에 존재하는 한편, X클라이언트는 디스플레이를 구비한 컴퓨터를 포함하는 컴퓨터 통신망 내의 임의의 컴퓨터 상에 존재할 수 있다.
일반적인 디스플레이 포맷은 "깊이(depth)"(즉, 각 픽셀에 대한 픽셀 데이터에 이용된 비트의 개수)와 "비주얼(visual)"(즉, 픽셀 데이터가 어떤 식으로 해석되는지)에 따라 변화한다. 깊이는 윈도우 내의 픽셀에 대해 동시에 디스플레이 될 수 있는 가능한 컬러의 갯수를 결정한다. 예를 들면, 8 비트의 깊이를 갖는 픽셀 데이터는 256(28)개의 컬러까지 동시에 디스플레이하도록 허용한다. 일반적으로, 비주얼은, 픽셀 데이터가 컬러 값을 포함하는 것으로 또는 컬러 값을 포함하는 컬러 테이블로의 하나 이상의 인덱스를 포함하는 것으로 해석되는지를 결정한다. X Window System 환경에는 6개의 비주얼 표준 형태가 있다. 즉, 트루컬러(TrueColor) 픽셀 데이터는 픽셀 데이터 내에 엔코딩된 레드-그린-블루(RGB) 컬러 값을 포함하며, 스태틱컬러(StaticColor) 및 스태틱그레이(StaticGray) 픽셀 데이터는 변화하지 않는 컬러 값을 포함하는 컬러 테이블로의 인덱스를 포함하며, 다이렉트컬러(DirectColor) 픽셀 데이터는 세 개의 개별 수정가능한 컬러 테이블에서 RGB컬러 값을 찾기 위해 세 개의 개별 인덱스 값을 포함하며, 그레이스케일(GrayScale) 및 슈도컬러(PseudoColor) 픽셀 데이터는 컬러값을 포함하는 변경할 수 있는 컬러 테이블로의 인덱스를 포함한다. 상기 마지막 세 개의 비주얼은 하나 이상의 컬러 테이블 내의 값이 변경되도록 함으로써, 특정 값에 대해 디스플레이된 실제 컬러가 가변되는 것을 허용한다. 24개의 비트 트루 컬러 포맷은 디스플레이 데이터에 대해 통상적으로 이용되는 포맷이다. 이 포맷으로, 각 컬러(즉, 레드, 그린, 블루)에 대한 실제 값은 24개 비트 값의 유일한(unique) 8 비트 부분으로 표현된다. 다수의 시스템 및 어플리케이션은 이 포맷을 지원하기 위해 구성된다. 예를 들면, 썬 마이크로시스템사(Sun Microsystems)에 의해 개발된 JAVA® 프로그래밍 언어는 24 비트 트루컬러 포맷을 지원하며 다수의 시스템 및 플랫폼상에서 구현된다.
디스플레이 영역이 변경될 때를 결정하는 것은, 디스플레이 데이터를 효과적으로 변환시키는 것을 방해하는 다른 인자이다. 예를 들면, X서버는 디스플레이-기반형 이벤트 스트림과 쿼리 메커니즘(query mechanism)을 제공하여 어플리케이션에 사용자-개시형(user-initiated) 이벤트를 알림(inform)으로써, 어플리케이션이 사용자와 상호작용하게 한다. 어플리케이션은 통지될 필요가 있는 이벤트를 특정할 수 있으며, 이벤트에 따른 적절한 액션을 취한다. 통상의 이벤트는 윈도우를 생성하고/파괴하는 것, 윈도우를 리사이징하는(resizing) 것, 윈도우의 적층 순서를 변경하는 것 등을 포함한다. 그러나, X서버는 디스플레이 영역이 변경될 때 신호를 보내는 이벤트를 제공하지 않는다. 따라서, 다른 시스템과 다스플레이 영역을 공유하기 위해, 전체 디스플레이 영역에 대한 디스플레이 데이터는 연속적으로 복사되어 모니터링되어야 한다.
몇몇 접근법은 X윈도우즈 시스템내에서 디스플레이 데이터의 공유를 포함하여 어플리케이션 공유를 구현하기 위해 제공된다. 예를 들면, 개별 뷰어 프로그램(separate viewer program)이 실행될 수 있다. 상기 접근법은 AT&T 연구소에서 제공된 가상 통신망 컴퓨팅(Virtual Network Computing:VNC) 솔루션에 이용된다. 대안적으로, 다수의 X클라이언트와 X서버 사이의 통신이 멀티플렉스될 수 있다. 상기 접근법은 브라운 대학에 의해 개발된 XMX솔루션에 이용된다. 그러나, 두 접근법은 어플리케이션을 공유하기 위해 어플리케이션이 X서버 내부에서 시작될 것을 요구한다. 이것은 어플리케이션이 시작(launched)되기 전에 어플리케이션을 공유하거나 원격적으로 액세스할 필요성(desire)을 인식할 필요가 있다는 것을 의미한다. 이 제한은 어플리케이션이 쉽게 재시작될 수 없을 때, 생산성을 떨어뜨릴 수 있다. 어플리케이션 공유에 대한 다른 접근법은 X서버에 기능 확장을 추가한다. 그러나, 확장을 이용하는 경우, 플랫폼의 개수를 크게 제한하며, 이 접근법은 플랫폼에서 쉽게 구현될 있다. 공유된 디스플레이 영역 내의 다양한 윈도우가 디스플 레이 데이터를 표현하기 위해 다른 디스플레이 포맷을 이용할 때, 각각의 픽셀을 카테고리화하고 매핑하는 것은 외부 기능(external functions)(즉, 프록시 없는 단순한 표준 X11 프로토콜)을 이용하여 디스플레이 데이터를 공유하려는 X윈도우즈 기반형 공유 접근법에 대한 또 다른 성능 문제가 된다. 다른 디스플레이 포맷을 이용하여 해결하려고 시도하는 외부 접근법(들)은 윈도우의 계층 관련성의 이점을 이용하는, 픽셀 데이터를 매핑하기 위한 효과적인 솔루션을 제공할 수 없다.
결과적으로, 다수의 윈도우가 존재하고 하나이상의 디스플레이 포맷이 디스플레이 데이터를 표현하는데 이용되는 디스플레이 영역에 대한 디스플레이 데이터를 효과적으로 매핑하는 방법이 필요하다.
본 발명은 디스플레이 데이터 매핑방법, 시스템 및 프로그램 제품을 제공한다. 다양한 윈도우를 나타내는 계층노드가 생성되며, 디스플레이 영역에 관한 각각의 속성 정보가 매핑된다. 디스플레이 영역에 대한 디스플레이 데이터를 얻어 계층노드를 이용하여 효과적으로 매핑한다. 그 다음, 예를 들면, 매핑된 디스플레이 데이터는 다중 시스템에서 사용자 간의 협력을 구현하기 위해 이용될 수 있다. 예를 들면, 어플리케이션 또는 X서버 소프트웨어가 실행되는 경우에 X윈도우 어플리케이션은 변경할 필요없이 공유될 수 있다. 또한, 본 발명은 하나의 시스템이 다른 타입의 시스템(예를 들면, X Windows와 Microsoft WINDOWS®)과 디스플레이 데이터를 공유하도록 할 수 있다.
본 발명의 제1 측면은 적어도 하나의 윈도우를 포함하는 디스플레이 영역에 대한 디스플레이 데이터를 매핑하는 방법을 제공한다. 상기 방법은 각 윈도우에 대한 노드 -상기 각 노드는 계층 관계 데이터를 포함함-를 생성하는 단계; 상기 계층 관계 데이터에 따라 계층노드를 생성하는 단계; 및 상기 계층 노드를 이용하여 제1 포맷에서 공유 포맷으로 상기 디스플레이 데이터를 매핑하는 단계를 포함한다.
본 발명의 제2 측면은 적어도 하나의 윈도우를 포함하는 공유 디스플레이 영역에 대한 디스플레이 데이터를 공유하기 위한 시스템을 제공한다. 상기 시스템은 각 윈도우에 대한 노드를 생성하기 위한 수단; 각 노드를 포함하는 계층노드를 관리하기 위한 수단; 상기 계층노드를 이용하여 공유 포맷으로 디스플레이 데이터를 매핑하기 위한 수단; 및 수신지 컴퓨터와 매핑된 디스플레이 데이터를 공유하기 위한 수단을 포함한다
본 발명의 제3 측면은 적어도 하나의 윈도우를 포함하는 공유된 디스플레이 영역에 대한 디스플레이 데이터를 매핑하기 위한 시스템을 제공한다. 상기 시스템은 각 윈도우에 대한 노드를 생성하기 위한 수단; 각 노드를 포함하는 계층 노드를 관리하기 위한 수단; 및 계층노드를 이용하여 디스플레이 데이터를 공유포맷으로 매핑하기 위한 수단을 포함한다.
본 발명의 제4측면은 적어도 하나의 윈도우를 포함하는 디스플레이 영역에 대한 디스플레이 데이터를 매핑하기 위해 내장된 컴퓨터 판독가능 프로그램 코드를 구비한 컴퓨터 이용가능한 매체를 포함하는 컴퓨터 프로그램 제품을 제공한다. 상기 프로그램 제품은 각 윈도우에 대한 노드 -상기 노드는 속성 정보를 포함함- 를 생성하도록 구성된 프로그램 코드; 각 노드를 포함하는 계층노드를 관리하도록 구성된 프로그램 코드; 및 상기 계층 노드를 이용하여 공유 포맷에 디스플레이 데이터를 매핑하도록 구성된 프로그램 코드를 포함한다.
본 발명의 제5 측면은 방법을 수행하기 위해 저장된 명령어가 내장된 컴퓨터 판독가능한 저장 매체를 제공한다. 상기 방법은 각 윈도우에 대한 노드 -각 노드는 계층 관계 데이터를 포함함- 를 생성하는 단계; 계층 관계 데이터에 따라 계층 노드를 생성하는 단계; 및 상기 계층 노드를 이용하여 제1 포맷에서 공유 포맷으로 디스플레이 데이터를 매핑하는 단계를 포함한다.
본 발명의 실시예 측면은 본 명세서에서 설명된 문제점들을 해결하기 위해 의도된 것으로, 당업자들이 발견할 수 있는 다른 문제점들은 언급하지 않는다.
본 발명의 이들 및 다른 특징은 이하의 첨부 도면을 참조하여 본 발명의 다양한 측면에 대한 상세한 설명으로부터 더욱 쉽게 이해될 수 있을 것이다.
도 1은 공유 디스플레이의 실시예를 도시한다.
도 2는 다수의 컴퓨터 사이의 협력을 위한 실시예 시스템의 블록도를 도시한다.
도 3은 도 2의 시스템의 보다 구체적인 블럭도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 방법을 도시한다.
도 5는 도 4의 매핑 단계에 대한 일 실시예를 도시한다.
도 6은 도 1의 공유 디스플레이에 따른 계층 노드의 개략적 표현을 나타낸다.
도 7은 도 6 내의 계층 노드의 실시예에 대한 대안적인 개략적 표현을 나타낸다.
도 8은 다수의 노드 리스트와 2차원 어레이의 일 실시예에 대한 개략적 표현을 나타낸다.
본 발명의 도면은 발명의 범주를 축소시키지 않는다. 본 도면은 단지 본 발명의 일반적인 측면들만을 나타내는 것이므로, 본 발명의 범주를 제한하는 것으로간주될 수 없다. 본 도면에서, 도면들 간의 동일한 도면 부호는 동일한 엘리먼트를 나타낸다.
본 발명은 디스플레이 데이터 매핑 방법, 시스템 및 프로그램 제품을 제공한다. 다양한 윈도우 및 매핑되는 디스플레이 영역에 관련한 각각의 속성 정보를 나타내는 계층노드가 생성된다. 디스플레이 영역에 대한 디스플레이 데이터가 얻어져 계층노드를 이용하여 효과적으로 매핑된다. 그 다음, 예를 들면, 매핑된 디스플레이 데이터는 다중 시스템에서 협력 시스템의 일부로 사용자 사이에서 디스플레이 데이터가 공유되도록 이용될 수 있다. 이하 상세한 설명은 협력 시스템의 일부로 구현된 본 발명을 설명하지만, 본 협력 시스템은 본 발명이 구현될 수 있는 다양한 시스템의 실시 예일 뿐이다.
목적의 편의상, 나머지 설명은 Ⅰ.환경(environment), Ⅱ.협력 시스템 개요(collaboration system overview), 및 Ⅲ.매핑 방법(mapping method)이라는 제목으로 표시된 세 개의 섹션을 포함한다.
Ⅰ.환경
도 1은 디스플레이 영역(60)의 실시 예를 나타낸다. 디스플레이 영역(60)은 공지되어 있거나 추후 개발될 임의의 방법을 이용하여 정의될 수 있다. 예를 들면, 디스플레이 영역(60)은 어플리케이션, 하나 이상이 윈도우에 의해 정의된 영역, 디스플레이(즉, 모니터의 스크린 영역)의 일부 또는 전체 디스플레이 영역을 포함하는 영역, 및/또는 디스플레이의 서로 소(disjoint)인 다수의 영역으로 구획될 수 있다.
디스플레이 영역(60)에서 윈도우(64A ~ H)는 상호 관계될 수 있거나 상호 관계를 갖지 않을 수 있다. 예를 들면, 각 윈도우(64A ~ H)는 단일 어플리케이션에 대한 데이터를 디스플레이할 수 있으므로, 임의의 다른 윈도우(64A ~ H)와 관계를 갖지 않는다. 대안적으로, 윈도우(64A ~ H)의 일부 또는 전부는 상호 계층적 관계를 가질 수 있다. 윈도우 계층 구조에서, 다른 윈도우의 디스플레이 영역에 국한된 윈도우는 다른 "부모 윈도우(parent window)"의 "자 윈도우(child window)"이다. 윈도우 계층구조는 "조부모 윈도우(grandparent window)"를 갖는 "손자 윈도우(grandchil dwindow)", "증-조부모 윈도우(great-grandparent window)"를 갖는 "증-손자 윈도우(great-grandchild window)" 등을 만드는 다수의 레벨을 가질 수 있 다. 동일한 부모 윈도우를 공유하거나 부모 윈도우를 갖지 않는(즉, 그들은 데스크탑 에 표시됨) 윈도우는 "형제 윈도우(sibling window)"이다. 윈도우(64A ~ H)들 사이의 관계는 어플케이션의 관점에서 설명된다. 결과적으로, 윈도우를 렌더링하는데 있어 운영체계로 만들어질 수 있는 계층 구조에 대한 임의의 변형 또는 수정은 본 설명에서는 언급하지 않는다. 예를 들면, X Windows system에서, 윈도우 관리자는 윈도우의 리사이징(resizing), 움직임 등을 고려하는 윈도우 관리자 데코레이션을 제공하는 상위-레벨 어플리케이션을 나타낼 수 있다.
설명의 편의를 위해, 다른 윈도우(64A ~ H)내에 완전히 디스플레이되는 임의의 윈도우(64A ~ H)는 그 윈도우의 자녀 또는 손자임을 알 수 있다. 결과적으로, 윈도우(64B ~ D)는 윈도우(64A)의 자 윈도우들이고, 윈도우(64E ~ G)는 윈도우(64B)의 자 윈도우들이면서 윈도우(64A)의 손자 윈도우이며, 윈도우(64H)는 윈도우(64D)의 자 윈도우들이면서 윈도우(64A)의 손자 윈도우이다. 결과적으로, 윈도우(64A), 윈도우(64B ~ D), 윈도우(64E ~ G) 및 윈도우(64H)는 다른 네 개의 형제 윈도우 세트를 구성한다. 윈도우(64A ~ H) 사이에 다수의 다른 관계가 가능하다는 것을 알 수 있으며, 본 발명의 지시는 이 다양한 관계들에 동일하게 적용한다.
윈도우(64A ~ H)의 오버래핑 영역(overlapping region)이 어떻게 디스플레이되는 지를 결정하기 위해 윈도우(64A ~ H)에 적층 순서(stacking order)가 할당된다. 적층 순서는 부분적으로 윈도우의 계층 관계에 의해 결정된다. 예를 들면, 자 윈도우는 부모 윈도우의 상부에 디스플레이된다. 결과적으로, 윈도우(64B ~ D)는 그들의 부모 윈도우(64A)의 상부에 각각 디스플레이된다. 형제 윈도우 세트 내 에서, 적층 순서는 윈도우가 생성되어, 사용자에 의해 선택되고, 갱신되는 등의 순서에 의해 결정된다. 도시된 바와 같이, 형제 윈도우(64B ~D)의 세트 내에서 윈도우(64B)는 윈도우(64D)의 상부에 디스플레이되는 윈도우(64C)의 상부에 디스플레이된다. 결과적으로, 윈도우(64B)는 형제 윈도우 세트에 대한 적층 순서의 상부에 있으며, 그 아래에 윈도우(64C), 그리고 윈도우(64D)가 있다. 유사하게, 형제 윈도우 세트(64E ~ G)의 세트 내에서, 윈도우(64E)는 적층 순서의 상부에 있으며, 그 아래에 윈도우(64F), 그리고 윈도우(64G)가 있다.
Ⅱ. 협력 시스템 개요(collaboration system overview)
전술한 바와 같이, 디스플레이 데이터가 공유될 수 있도록 협력 시스템의 일부로 매핑 디스플레이 데이터가 일반적으로 구현된다. 도 2는 다수의 컴퓨터(12, 16)을 이용하여 협력을 위한 예시적인 시스템(10)의 블록도를 나타낸다. 시스템(10)은 소스 디스플레이(14)를 구비한 소스 컴퓨터(12)와 수신지 디스플레이(18)를 구비한 수신지 컴퓨터(16)를 포함한다. 단지 두 개의 컴퓨터가 도시되어 설명되지만, 본 발명의 설명은 임의의 다수의 컴퓨터를 이용하여 실행된 협력 시스템에 적용한다. 전형적으로, 사용자(20)는 소스 디스플레이(14)를 포함하는 하나 이상의 I/O디바이스를 이용하는 소스 컴퓨터(12)와 상호 작용을 한다. 소스 컴퓨터(12)는 소스 디스플레이(14) 상에 윈도우(22A ~ D) 내에 하나이상의 어플리케이션에 대한 데이터를 디스플레이하는 윈도우-기반형 디스플레이 시스템을 포함할 수 있다. 또한, 소스 컴퓨터(12) 및/또는 수신지 컴퓨터(16)는 수신지 디스플레이(18)와 소스 디스플레이(14)에 대한 디스플레이 데이터를 공유하기 위한 하나 이상의 시스템을 포함한다.
소스 디스플레이(14)는 디스플레이 영역(23)을 포함한다. 공유된 디스플레이 영역(25)은, 예를 들면, 소스 컴퓨터(12) 상에서 실행하는 어플리케이션, 소스 디스플레이(14) 상에서 디스플레이되는 하나이상의 윈도우(22A ~ D), 및/또는 소스 디스플레이(14)의 일부 또는 전체 디스플레이 영역(25)을 포함하는 임의의 방법을 이용하여 디스플레이 영역(23)내에 정의될 수 있다. 본 실시 예에서, 공유된 디스플레이 영역(25)은 윈도우(22A ~ C)를 갖는 디스플레이 영역(23)의 일부로 정의된다. 수신지 디스플레이 영역(125)으로 수신지 디스플레이(18) 상에 디스플레이하기 위한 수신지 컴퓨터(16)와 공유된 디스플레이 영역(25)을 공유한다. 윈도우(22D)는 수신지 컴퓨터(16)와 공유되지 않는다. 사용자(24)는 윈도우(122A ~ C)로 수신지 디스플레이(18) 상의 수신지 디스플레이 영역(125)을 관찰할 수 있다. 또한, 사용자(24)는 수신지 디스플레이 영역(125) 내에 연속하여 디스플레이되는 공유 디스플레이 영역(125)에 대한 디스플레이 데이터를 변경하기 위해 수신지 컴퓨터(16)와 상호 작용하도록 할 수 있다.
도 3은 시스템(10)의 보다 구체적인 블럭도를 도시한다. 소스 컴퓨터(12)는 중앙 처리 장치(central processing unit(CPU),30), 메모리(32), 입력/출력(I/O) 인터페이스(34), 버스(36), 및 선택적 데이터 베이스(38)를 포함한다. 소스 컴퓨터(12)와 통신하는 수신지 컴퓨터(16)가 도시된다. 소스 컴퓨터(12)와 수신지 컴 퓨터(16) 사이의 통신은, 예를 들면, 하나 이상의 직접 고정배선(hardwired) 연결(예를 들면, 시리얼 포트), 또는 유선 및/또는 무선 전송 방법의 임의의 조합을 이용할 수 있는 클라이언트-서버(또는 서버-서버) 환경내의 주소지정(addressable) 연결을 통해, 이러한 목적들을 위해 현재 공지되거나 향후 개발될 메커니즘일 수 있다. 클라이언트-서버 환경에서, 서버와 클라이언트는 인터넷, 광역 통신망(WAN), 근거리 정보 통신망(LAN), 가상 사설 통신망(VPN) 또는 다른 사설 통신망을 통해 연결될 수 있다. 서버 및 클라이언트는, 예를 들면, 토큰 링(Token Ring), 이더넷(thernet), WiFi 또는 다른 일반적인 통신 기준과 같은 전형적인 네트워크 접속을 이용할 수 있다. 인터넷을 통해 클라이언트가 서버와 통신하는 경우에 접속은 일반적인 TCP/IP소켓 기반형 프로토콜로 제공될 수 있다. 본 실시 예에서, 클라이언트는 서버와의 접속을 구축하기 위해 인터넷 서비스 프로바이더를 이용할 것이다.
소스 컴퓨터(12)와 수신지 컴퓨터(16)는 표준 운영 체계 소프트웨어를 이용하는 임의의 범용 시스템 또는 특정-용도 시스템을 포함할 수 있으며, 표준 운영 체계 소프트웨어는 특정 하드웨어의 동작을 구동시키기 위해 설계되고 다른 시스템 구성요소와 I/O 컨트롤러와 호환할 수 있다. CPU(30)는 단일 처리 장치, 병렬 동작 가능한 다수의 처리장치를 포함할 수 있거나, 하나이상의 위치, 예를 들면, 클라이언트와 서버에서 하나이상의 처리장치를 통해 분배될 수 있다. 메모리(32)는 자성 매체, 광학 매체, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 데이터 캐쉬, 자료 객체(data object) 등을 포함하는 공지된 임의의 타입의 데이터 저장 및/또는 전송 매체를 포함할 수 있다. 더욱이, CPU(30)와 마찬가지로, 메모리(32)는 하나 이상의 데이터 저장 타입을 포함하는 하나의 물리적 위치에 상주할(reside) 수 있거나, 또는 다양한 형태로 다수의 물리적 시스템을 통해 분산될 수 있다.
도시된 바와 같이, 사용자(20), 소스 디스플레이(14) 및 수신지 컴퓨터(16)은 I/O인터페이스를 통해 소스 컴퓨터(12)와 상호 작용한다. I/O인터페이스(34)는 사용자(20), 소스 디스플레이(14) 및/또는, 예를 들면, I/O포트(직렬, 병렬, 이더넷, 키보드, 마우스 등), 유니버설 시리얼 버스(universal serial bus:USB) 포트, 확장 버스, 통합 구동 전기(IDE:integrated drive electronicss), 네트워크 시스템, 모뎀, 스피컬, 모니터(음극선관(cathode ray tube), 액정-디스플레이(LCD), 등), 휴대용 디바이스(hand-held device), 키보드, 마우스, 음성 인식 시스템, 음성 출력 시스템, 스캐너, 프린터, 팩시밀리, 페이저, 저장장치 등을 포함하는 수신지 컴퓨터(16)와 정보를 변경하기 위한 임의의 시스템을 포함한다. 버스(36)는 소스 컴퓨터(12)내의 각 구성요소들 사이에 통신 링크를 제공하고, 마찬가지로 전기적, 광학적, 무선 등을 포함하는 공지된 임의의 전송 링크 타입을 포함할 수 있다. 부가하여, 도시되어 있지 않지만, 캐시 메모리, 통신 시스템, 시스템 소프트 웨어 등과 같은 추가적인 구성요소들이 소스 컴퓨터(12)내에 통합될 수 있다.
데이터 베이스(38)는 명세서에 설명한 바와 같이 본 발명을 실행하는 데 필요한 정보 저장부를 제공한다. 이와 같이, 데이터 베이스(38)은 자기 디스크 드라 이브 또는 광 디스크 드라이브와 같은 하나이상의 저장 디바이스를 포함할 수 있다. 또한, 데이터 베이스(38)는, 예를 들면, LAN, WAN, 또는 저장 영역 통신망(storage area network:SAN)(미도시) 등을 통해 분산된 데이터를 포함할 수 있다. 또한, 데이터베이스(38)는 하나이상의 저장 디바이스를 포함하며 당업자들 중 하나가 그것을 해석할 수 있는 방식으로 구성될 수 있다. 또한, 수신지 컴퓨터(16)는 소스 컴퓨터(12)와 관련하여 도시되어 설명된 다양한 하드웨어 구성요소들을 포함한다. 이 구성요소들은 간결성을 위해 개별적으로 나타내거나 기술되지 않는다.
협력 시스템(10)의 다양한 기능을 구현하기 위하여, 소스컴퓨터(12)는 컴퓨터 프로그램 코드로 메모리(32)에 저장된 협력 프로그램(40A)을 포함하며, 수신지 컴퓨터(16)는 컴퓨터 프로그램 코드로 저장된 협력 프로그램(40B)을 포함한다. 협력 프로그램(40A)은 매핑 시스템(41)과 공유 시스템(54)을 포함한다. 또한, 후술될 매핑 시스템(41)은 제1 포맷에서 공유 포맷으로 공유 디스플레이 영역(25)(도2)에 대한 디스플레이 데이터를 매핑한다. 공유시스템(54)은, 수신지 컴퓨터(16)에서 협력 프로그램(40B)에 후속적으로 제공된 공유된 디스플레이 데이터로서 매핑된 디스플레이 데이터를 저장한다. 매핑시스템(41)은 공유 디스플레이 데이터를 갱신할 수 있으며, 공유 시스템(54)은 요구에 따라 공유된 디스플레이 데이터를 주기적으로 공유하거나 이들의 일부 조합을 공유할 수 있다.
협력 프로그램(40B)은 수신지 디스플레이(18)상의 수신지 디스플레이 영역(125, 도 2)내에 공유된 디스플레이 데이터를 디스플레이하기 위해 구성된 디스플레이 시스템(56)을 포함한다. 공유된 디스플레이 데이터를 디스플레이할 때, 디스 플레이 시스템(56)은 어떤 공유 디스플레이 데이터가 변경되는 지를 판단할 수 있으며, 변경된 수신지 디스플레이 영역(125)의 일부를 갱신할 수 있다. 예를 들면, 상기 판단(데이터가 변경되는 지의)은 디스플레이 데이터를 섹션으로 구획함으로써 그리고 동시에 하나의 섹션을 비교함으로써 이루어질 수 있다. 공유 시스템(54)은 공유된 디스플레이 데이터가 수신지 컴퓨터(16)에 의해 이용되는 빈도를 모니터링할 수 있으며, 매핑 시스템(41)이 모니터링된 빈도에 따라 디스플레이 데이터를 매핑하는 비율을 조정할 수 있다. 이 경우, 최대 주기는 공유된 디스플레이 데이터가 새롭게 매핑된 디스플레이 데이터로 리프레시되는 시간을 넘어서 설정될 수 있다. 또한, 협력 프로그램(40B)은 사용자가 수신지 컴퓨터(16)를 이용하여 공유된 디스플레이 영역(25)에 대한 디스플레이 데이터를 변경시키는 원격 시스템(58)을 포함한다. 사용자에 의한 변경을 실현시키기 위해, 원격 시스템(58)은 수신지 컴퓨터(16)에서 생성된 입력 디바이스 이벤트(예를 들면, 키보드, 마우스 등)을 수집하여 이 이벤트들을 소스 컴퓨터(12)상의 공유 시스템(54)에 포워드한다(forward). 공유시스템(54)의 이벤트(들)을 소스 컴퓨터(12)의 이벤트 스트림으로 배치함으로써, 이벤트들이 마치 소스 컴퓨터(12)에 위치된 입력 디바이스에 의해 생성된 것처럼 처리된다.
매핑 시스템(41)은 공유된 디스플레이 영역(25, 도 2)에 대한 디스플레이 데이터를 공유 시스템(54)에서 이용된 공유된 디스플레이 데이터로 매핑한다. 특히, 매핑 시스템(41)은 디스플레이 영역내의 각 픽셀에 대한 디스플레이 데이터내에 포함된 픽셀 데이터를 제1 포맷에서 공유된 포맷으로 매핑한다. 매핑 시스템(41)은 정의 시스템(definition system;42), 노드 시스템(44), 관리자 시스템(46), 모니터 시스템(48), 복원(retrival) 시스템(50), 및 변환 시스템(52)을 포함한다. 상기 시스템들에 대한 동작은 본 발명의 매핑 방법과 관련하여 후술될 것이다.
협력 시스템(10)에는 추가/제외 기능이 포함될 수 있다. 예를 들면, 원격 시스템(58)은 사용자가 협력 시스템(10)의 선택적 특징인 수신지 컴퓨터(16)를 이용하여 공유된 디스플레이 영역(25)에 대한 디스플레이 데이터를 변경하는 것을 허용한다. 또한, 사용자(20) 및/또는 사용자(24)는 시스템들 사이에 구현된 협력 한계를 선택할 수 있다. 협력, 단순 공유 디스플레이, 공유 디스플레이 및 오디오, 원격 제어 등이 일어나지 않는다는 것을 설명하기 위해 키스트로크 시퀀스(keystroke sequence)가 이용될 수 있다. 또한, 디스플레이(소스 디스플레이(14) 및/또는 수신지 디스플레이(18))에서 마우스 포인터의 위치는 공유 시스템(54) 및/또는 원격 시스템(58)을 이용하여 소스 컴퓨터(12)와 수신지 컴퓨터(16) 사이에서 공유될 수 있다.
Ⅲ. 매핑 방법(mapping method)
본 발명은 디스플레이 영역에 대한 디스플레이 데이터를 공유 포맷으로 매핑한다. 일 실시예에서, 디스플레이 데이터는 디스플레이 영역내의 각 픽셀에 대한 픽셀 데이터를 포함한다. 픽셀 데이터는 픽셀의 위치, 픽셀의 컬러, 및 픽셀의 깊이(depth)에 대한 정보를 포함한다. 픽셀 데이터는 제1 포맷에서 공유 포맷으로 매핑된다. 본 발명의 방법은 도 3 및 도 4를 참조하여 설명되며, 각 도면은 본 발 명의 일 실시 예에 따른 매핑 수행에 이용된 예시적인 매핑 시스템(41)과 방법 단계에 대한 개요를 나타낸다. 단계(S1)에서(도 4), 매핑될 디스플레이(25)(도 2)은 정의 시스템(42)(도 3)에 의해 정의된다.
단계(S2)(도 4)에서, 노드 시스템(44)(도 3)에 의해 디스플레이 영역(25)과 관련한 각각의 윈도우에 대한 노드가 생성된다. 일 실시예에서, 소스 디스플레이(44)상에 디스플레이된 각각의 윈도우(즉, 도 2의 윈도우 22A ~ D)에 대한 노드가 생성된다. 모든 윈도우를 포함하는 단계에서는, 공유되지 않은 윈도우의 위치가 공유된 영역으로 순차적으로 이동되거나 공유 윈도우를 중첩하는 지를 판단하기 위해 모니터링된다. 그러나, 노드는 일부 윈도우(예를 들면, 소스 디스플레이(14)의 임의의 영역내의 모든 윈도우 또는 공유되도록 지정된 모든 윈도우)에서만 생성될 수 있다. 도 6은 노드(66A~ H)를 포함하는 도 1의 디스플레이 영역(60)에 대한 개략적인 계층노드(62)를 나타내는 도면이다. 각 노드(66A ~ H)는 윈도우(64A ~H)(도 1)에 대응하기 위한 속성 정보(attribute information)를 포함하는 데이터 집합이다. "속성 정보"는 대응하는 윈도우의 크기, 위치 및/또는 형태와 함께 계층 관계 데이터(즉, 부모 윈도우 및/또는 자 윈도우(들)에 대한 데이터)를 포함한다. 덧붙여, 윈도우에 대한 픽셀데이터의 포맷에 대한 데이터가 속성 정보로 저장된다. 예시적인 실시 예에서, 포맷 데이터는 도 6에 도시된 픽셀 데이터에 대한 깊이 및 비주얼(visual)을 포함한다. 추가적으로, 인덱스된 픽셀 값을 이용하는 윈도우에 대응하는 노드에 대한 속성 정보로 컬러맵이 생성되어 저장될 수 있다. 종종, 어플리케이션 내의 윈도우는 단일 컬러 맵을 공유한다. 결과적으로, 하나의 컬러 맵 은 컬러맵을 공유하는 윈도우에 대응하는 모든 노드에 의해 생성되어 공유될 수 있다. 동적 비쥬얼 타입의 경우, 컬러맵은 컬러맵 인스턴스(instance)가 변화되는 지를 나타내는 윈도우 이벤트의 발생 및/또는 컬러 맵 내의 임의의 값이 변경되는지를 판단하기 위해 주기적으로 갱신될 필요가 있다. 예를 들면, 동적 컬러맵의 경우, 컬러맵 내의 값은 디스플레이 영역이 재매핑될 때마다 재판독될 수 있다. 대략적인 정보는 속성 정보로 저장될 수 있다. 예를 들면, 순서 데이터를 스택하는 단계, 정보(즉, 그 부모 윈도우 내에 가시적인 윈도우의 양) 및/또는 보더 크기를 클리핑하는 단계가 각 윈도우에 포함될 수 있다.
도 4의 단계(S3)에서, 계층 노드(62)(도 6)는 계층 관계 데이터를 이용 및/또는 관리자 시스템(46)(도 3)에 의한 각 노드(66A ~ H)에 대한 속성 정보의 일부로 저장된 순서 데이터를 스택하므로 생성된다. 도 7은 계층 노드(62)의 예시적인 실시예를 도시하며, 본 실시 예에서 각 노드(66A ~H)는 계층 구조를 구현하기 위해 윈도우(64A ~ H)에 대응하기 위한 속성 정보와 함께 부모 노드, 이전 형제 노드, 다음 형제 노드, 및 자녀 노드에 대한 포인터를 포함한다. 포인터의 이용은 공지된 바와 같이, 재주문(reordering), 삽입(inserting) 및 삭제 노드를 포함하는 계층 노드(62)의 효율적인 네비게이션(navigation) 및 관리를 고려한다. 데이터를 관리하기 위한 포인터의 이용 및 세팅은 공지되어 있으므로, 본 명세서에서는 설명하지 않는다. 포인터가 더 추가되거나 더 제외되어 이용될 수 있으며, 포인터의 유무에 따라 데이터를 관리하는 임의의 대안적인 방법이 이용될 수 있다.
노드(66A ~ H)는 처음에 계층 관계 데이터에 기반을 둔 계층 노드(62)에 배 치된다. 도 1, 6 및 7을 모두 참조하면, 윈도우(64A)가 부모 윈도우를 갖지 않으므로, 그에 대응하는 노드인 노드(66A)가 계층노드(62)의 상부에 배치된다. 윈도우(64A)의 자 윈도우(64B ~ D)에 대한 노드(66B ~ D)는 노드(66A)의 한 레벨 아래에 배치되며, 윈도우(64D)의 자 윈도우(64H)에 대한 노드(66H)는 노드(66D)의 한 레벨 아래에 배치된다. 본 실시예에서, 또한 형제 노드(즉, 형제 노드의 세트에 대한 노드 세트)의 세트가 형제 윈도우 세트에 대한 적층 순서 데이터에 따라 계층 노드(62)에 배치된다. 적층 순서내의 가장 높은 노드가 우선 배치되고, 내림 차순으로 남아있는 형제노드가 후속되므로, 형제 노드의 세트가 구성된다. 결과적으로, 윈도우(64B ~D)의 경우에는, 노드(66B)가 먼저 배치되고, 이어서 노드(66C)가 배치되고, 그 다음에 노드(66D)가 배치된다. 유사하게, 윈도우(64E ~ G)의 경우에는, 노드(66E)가 먼저 배치되고, 이어서 노드(66F)가 배치되고, 그 다음에 노드(66G)가 배치된다.
생성될 때, 계층 노드(62) 및 개별 노드(66A ~ H)내의 속성 정보는 빨리 아웃 데이트(outdate)될 수 있다. 결과적으로, 단계(S4, S5)는 도 4에 포함된다. 단계(S4)에서, 다양한 윈도우 이벤트 타입은 모니터 시스템(48)에 의해 모니터링된다(도 3). 단계(S5)에서, 계층 노드는 관리자 시스템(46)에 의해 모니터링된 윈도우 이벤트 타입 중 하나의 발생에 따라 업데이트된다. 예를 들면, 도 1을 참조하여, 사용자가 윈도우(64H)를 선택할 수 있으므로, 그 부모 윈도우(64D)를 형제 노드(64B~D)의 세트 내의 적층 순서 앞으로 이동시킨다. 또한, 하나 이상의 윈도우가 생성되고, 파괴되고, 이동되고, 리사이즈(resize)될 수 있다. 일반적으로, 하 나이상의 행동(action)이 일어날 때, 윈도우 디스플레이 시스템이 윈도우 이벤트를 생성한다. 결과적으로, 이 이벤트들의 발생은 비동기적(asynchronously)으로 모니터링될 수 있으며, 계층노드(62) 및/또는 하나 이상의 노드(66A ~ H)에서 속성 정보는 모니터링된 윈도우 이벤트의 발생에 따라 업데이트될 수 있다.
도 4의 단계(S6 및 S7)은 단계(S4 및 S5)와 병렬적으로 일어나는 것을 도시한다. 단계(S6)에서, 디스플레이 데이터는 검색 시스템(50)(도 2)에 의해 얻어진다. 단계(S7)에서, 디스플레이 데이터는 변환시스템(52)(도 2)에 의해 계층 노드를 이용하여 공유 포맷으로 매핑된다. 단계(S4 ~ S5) 및 (S6 ~ S7)의 각 세트는 단계(S8 및 S9) 각각에서 매핑 디스플레이 데이터가 더 이상 요구되지 않는다는 것을 판단할 때까지 반복된다. 병렬적으로 도시되어 있지만, 단계(S4 ~ S5) 및 (S6 ~ S7)은 병렬, 직렬 또는 임의의 조합으로 구현될 수 있다.
단계(S6)과 도 1, 6, 및 7을 모두 참조하면, 계층 노드(62)를 이용하여, 조상 윈도우에 대해 얻어진 디스플레이 데이터가 하나 이상의 자 윈도우 및 손자 윈도우 등을 매핑하는데 이용되도록 한다. 디스플레이 데이터를 얻기 위해, 상위-레벨 윈도우(즉, 도 1에서 윈도우 64A)에 의해 정의된 디스플레이 영역에 대한 디스플레이 데이터가 디스플레이 메모리에서 복사된다. 각 윈도우가 그 부모 윈도우의 디스플레이 영역 내에서 위치되므로, 또한 일부 또는 모든 자 윈도우, 손자 윈도우 등(즉, 윈도우 64B ~ H)에 대한 디스플레이 데이터가 얻어질 수 있다.
X윈도우 시스템에서 실현될 때, 조상 노드 및 각 개재(intervening) 조상 노드와 공통 깊이를 공유하는 노드에 대한 디스플레이 데이터는 조상 노드에 대한 디 스플레이 데이터를 획득하는 단일 동작으로 얻을 수 있다. 예를 들면, 도 6은 8 비트 슈도컬러(PseudoColor:PC) 픽셀 데이터를 갖는 노드(66A,66B,66E), 24 비트 PC픽셀 데이터를 갖는 노드(66C,66H), 24 비트 트루컬러(TrueColoR:TC) 픽셀 데이터를 갖는 노드(66D,66G), 및 8 비트 TC픽셀 데이터를 갖는 노드(66F)를 도시한다. 픽셀 데이터의 깊이가 동일한 한, 다수 노드에 대한 디스플레이 데이터는 이용된 비주얼에 관한 하나의 동작으로 얻을 수 있다. 결과적으로, 노드(66A)에 대한 디스플레이 데이터가 얻어질 때, 노드(66B), (66E) 및 (66F)에 대한 디스플레이 데이터 역시 얻어진다. 노드(66F)는 TC픽셀 데이터를 이용하는 한편 그 조상 노드(66A, 66B)가 PC픽셀 데이터를 이용함에도 불구하고, 노드(66F)에 대한 디스플레이 데이터를 얻을 수 있다.
그러나, X윈도우 시스템에서, 윈도우 또는 개재 조상 윈도우가 조상 윈도우와 다른 깊이를 이용할 때, 조상 윈도우에 대한 디스플레이 데이터가 탐색되면 윈도우에 대한 디스플레이 데이터는 정의되지 않는다. 이 경우, 모든 노드(66A ~ H)에 대한 디스플레이 데이터를 얻기 위해 다수의 동작이 요구된다. 예를 들면, 노드(66G)는 24개의 비트를 갖는 픽셀 데이터를 이용한다. 결과적으로, 그 픽셀데이터를 얻기 위해 개별 동작이 요구된다. 마찬가지로, 노드(66C, 66D)는 또한 24개의 비트를 갖는 픽셀 데이터를 이용한다. 각 노드(66C, 66D)는 각 노드의 디스플레이 데이터를 얻기 위해 추가 동작을 요구하므로 노드(66C, 66D)는 서로의 조상 노드가 아니다. 그러나, 노드(66D)에 대한 디스플레이 데이터가 얻어질 때, 노드 (66H)에 대한 디스플레이 데이터 역시 동일한 깊이를 이용함으로써 얻어진다.
디스플레이 데이터가 얻어질 때, 단계(S7)(도 4)는 현재 포맷에서 공유 포맷으로 디스플레이 데이터 내의 픽셀 데이터를 매핑한다. 도 5는 매핑 단계의 예시적인 실시 예를 도시하는데, 본 실시예에서 단계(S7A)는 각 픽셀에 대응하는 노드를 판단하고, 단계(S7B)는 노드를 이용하여 픽셀을 위한 픽셀 데이터의 현재 포맷을 판단하고, 단계(S7C)는 현재 포맷내의 픽셀 데이터로부터 공유 포맷내의 픽셀 데이터를 생성한다. 단계(S7D)는 디스플레이 데이터내의 각 픽셀에 대해 이 단계들을 반복한다. 노드(66A ~ H)를 갖는 계층노드(도 6 및 7)를 생성하고 각 노드 (66A ~ H)내의 대응 윈도우(64A ~ H)에 대한 속성 정보를 저장하는 단계는 정확한 노드가 단계(S7A)내에 효율적으로 배치되도록 한다. 적절한 노드를 배치시키기 위해, 계층 노드(62)는 전위 순서(prefix order)로 변환된다. 즉, 어떠한 자노드, 손자 노드 등의 노드를 갖지 않는 픽셀을 포함하는 제1 노드가 픽셀에 대한 픽셀 데이터를 매핑하는 데 이용할 올바른 노드이다.
도 1에서 픽셀(68)은 단계(S6, S7, 도 4)의 실시 예를 제공한다. 픽셀(68)은 각 윈도우(64A ~H)에 의해 정의된 영역 내에 있지만, 윈도우(64E)는 현재 픽셀(68)을 소유한다. 그러므로, 제1 포맷에서 공유된 포맷으로 픽셀(68)에 대한 픽셀 데이터를 매핑하는 단계는 노드(66E)내의 속성 정보를 이용하는 단계를 필요로 한다. 노드(66E)가 픽셀(68)에 대응하는 지를 판단하기 위해, 계층 구조의 상위 레벨에서의 노드가 우선적으로 검사된다(consulted). 노드(66A)의 속성 정보는 픽셀(68)이 윈도우(64A)의 영역 내에 있는지를 판단하는데 이용된다. 이에 따라, 노드(66A)의 제1 자노드인 노드(66B)가 그 다음에 검사된다. 픽셀(68)이 윈도우(64B) 의 영역내에 있으므로, 노드(66B)의 제1 자노드인 노드(66E)가 검사된다. 그 다음, 픽셀(68)이 윈도우(64E)의 영역내에 있는지가 판단되고, 노드(66E)는 어떠한 자노드도 갖지 않는다. 그러므로 노드(66E)는 픽셀(68)과 연관된 노드이다.
이제 픽셀 데이터 및 그에 대응하는 노드가 이용가능하므로, 픽셀 데이터의 현재 포맷이 노드의 속성 정보를 이용하는 지(도 5의 단계 S7B)를 판단하고, 공유 포맷 내의 픽셀 데이터가 생성된다(도 5의 단계 S7C). 일 실시 예에서, 노드내의 깊이, 비쥬얼, 및/또는 컬러맵 정보는 픽셀 데이터를 공유 포맷으로 매핑하는데 이용된다. 예를 들면, 공유 포맷은 다른 어플리케이션 및/또는 시스템에 의해 쉽게 번역될 수 있는 24비트 트루 컬러 포맷(TrueColor format)을 포함할 수 있다. 이 경우에, 픽셀 데이터가 데이터 자체에 RGB값을 포함할 때, 데이터를 매핑하는 단계는 픽셀 데이터를 이동시키는 단계를 포함할 수 있으므로, 각각의 RGB값은 8개의 비트로 표현된다. 인덱싱을 이용하는 픽셀 데이터의 경우, 픽셀 데이터는 컬러 맵내의 RGB값을 찾는데 이용될 수 있으며, RGB값이 후속적으로 이동되므로 각 값은 8개의 비트를 갖는다.
적절한 노드가 배치되는 속도를 더욱 향상시키기 위해, 디스플레이 영역은 다수의 섹션으로 구획될 수 있다. 예를 들면, 도 1은 다수의 픽셀 폭과 길이 세트로 이루어진 각 섹션(70A ~ C)를 갖는 2차원 그리드(two-dimensional grid)로 구획된 디스플레이 영역(60)을 도시한다. 일 실시예에서, 각 섹션(70A ~ C)은 2개의 파워(power), 예를 들면, 64개의 픽셀 길이로 64개의 픽셀 폭으로 된 크기를 갖는 사각 픽셀 블럭이다. 각 섹션(70A ~ C)은 디스플레이 내의 픽셀과 유사한 주소( 즉, x, y 좌표)로 할당될 수 있다. 두 개의 파워인 길이 및 폭의 이용이 픽셀 위치를 나타내는 값을 오른쪽으로 이동시킴으로써 픽셀이 위치된 섹션 내의 주소가 빨리 판단되도록 한다. 그러나, 섹션(70A ~ C)에 대한 임의의 크기 또는 형태가 이용될 수 있다 .
도1 및 도 6 ~ 8을 모두 참조하면, 계층 노드(62) 및 섹션(70A ~ C)을 이용하여, 각 섹션(70A~C)에 대한 노드(76A ~C)의 리스트가 생성될 수 있다. 노드(76A ~ C) 리스트 각각은 섹션(70A ~ C)내에서 현재 눈에 보이는 윈도우 각각에 대한 노드를 포함한다. 일 실시 예에서, 각 어레이 소자(72A ~ C)는 유일한 섹션(70A ~ C)과 연관되며 2차원 어레이(74) 내에 생성된다. 각 어레이 소자(72A ~ C)는 그 섹션(70A ~ C)에 대한 노드(76A ~ C)의 리스트를 갖는다. 노드(76A ~ C)의 각 리스트는 엘리먼트(72A ~ C)에 대한 섹션(70A ~ C)내의 적어도 하나의 픽셀을 소유하는 각 노드를 포함한다. 예를 들면, 엘리먼트(72A)에 대한 노드(76A)의 리스트는 섹션(70A)내에서 보이는 각 노드를 포함한다. 노드(76A ~ C)의 각 리스트가 주문되므로 섹션(70A ~ C)내의 최상위 윈도우에 대응하는 노드는 노드(76A ~ C)의 리스트의 처음에 배치되고, 나머지 노드는 내림 차순으로 배치된다. 대안적으로, 섹션(70A ~ C)내에 현재 상위의 픽셀을 소유하는 윈도우에 대응하는 노드(76A ~ C)는 노드(76A ~ C)의 각 리스트의 처음에 배치될 수 있다.
노드(76A ~ C)의 리스트를 위해 추가 데이터 유지가 요구되는 반면, 그들은 주어진 픽셀에 대한 적절한 노드를 판단하기 위해 검색되어야만 하는 평균 노드 개수가 감소한다. 예를 들면, 섹션(70B)는 디스플레이 영역(60)의 하나의 섹션이다. 윈도우(64B, 64C, 64E 및 64G)는 섹션(70)내의 디스플레이 영역의 적어도 일부를 소유한다. 결과적으로, 어레이 엘리먼트(72B)는 노드(66B, 66C, 66E 및 66G)를 포함하는 노드(76B)의 리스트를 갖는다. 전술한 바와 같이, 적층 순서의 상위에 노드(76B)가 우선 배치되도록 노드(76B)의 리스트가 주문된다. 이 경우, 노드(66E)는 제1 노드이고, 이어서 노드(66G), 노드(66B)가 이어지고, 그 다음은 노드(66C)이다. 픽셀(68)에 대응하는 노드를 배치하기 위해, 픽셀(68)이 섹션(70B) 내에 배치되는 지를 판단한다. 엘리먼트(72B)에 대한 노드(76B)의 리스트를 이용하여, 노드(66E)가 단지 단일 노드인지를 검사한 다음 적절한 노드인지를 판단한다.
섹션(70A ~ C)와 노드(76A ~ C)의 리스트를 이용하여 디스플레이 데이터가 윈도우보다는 섹션별로 쉽게 얻을 수 있게 허용한다. 섹션별로 섹션이 얻어질 때, 각 노드(66A ~ H)에 대한 속성 정보는 가장 높은 조상 노드를 식별하는 데이터를 더 포함할 수 있다. 가장 높은 조상 노드가 가장 먼 조상 윈도우에 대응하므로 노드에 대응하는 윈도우에 대한 디스플레이 데이터는 단일 동작을 이용하여 얻어질 수 있다. 전술한 바와 같이, X 윈도우에서, 윈도우에 대한 디스플레이 데이터가 그 부모 윈도우와 다른 깊이를 이용하여 저장될 때, 각 윈도우에 대한 디스플레이 데이터를 얻기 위해 두 개의 동작이 요구된다. 결과적으로, 노드(66A)는 노드(66A, 66B, 66E, 66F)에 대해 가장 높은 조상 노드일 것이며, 노드 (66C, 66D, 66G0는 그들의 가장 높은 조상 노드로 그들 자신을 가질 수 있으며, 노드(66H)는 그 가장 높은 조상 노드로 노드(66D)를 갖을 것이다. 가장 높은 조상 노드를 포함하여, 계층노드(62)의 이익이 섹션별 섹션을 기반으로(section by section basis) 더 쉽게 이용되도록 한다. 예를 들면, 섹션(70A)에 대한 디스플레이 데이터를 얻을 때, 노드(76A) 리스트가 검사된다. 노드(66E)는 제1 노드이며, 가장 높은 조상 노드(66A)를 갖는다. 결과적으로, 섹션(70A)내에 있는 일부 윈도우(64A)에 대한 디스플레이 데이터가 얻어진다. 얻어진 디스플레이 데이터는 윈도우(64E, 64F, 및 64B)에 대한 디스플레이 데이터를 매핑하는 데 이용된다. 제2 동작은 윈도우(64C)에 대한 디스플레이 데이터를 탐색하기 위해 필요하며, 제3 동작은 윈도우(64H)에 대한 디스플레이 데이터를 탐색하기 위해 필요하므로 이 윈도우들은 윈도우(64A)와 다른 깊이를 이용한다.
매핑 디스플레이 데이터에 대한 효율성은 각 어레이 엘리먼트(72A ~ C)에 대한 제2의 2차원 어레이(78A)를 포함하므로써 더욱 증가될 수 있다. 어레이(78A)는 대응하는 섹션(70A)내에 배치된 각 픽셀에 대한 어레이 엘리먼트(80)를 포함한다. 각 어레이 엘리먼트(80)는 픽셀을 소유하는 윈도우에 대응하는 노드를 식별하는 식별자를 포함한다. 공유되지 않는 윈도우가 섹션(70A ~ C)내에 디스플레이될 때, 윈도우에 의해 소유된 픽셀에 대응하는 어레이(78A)내의 엘리먼트(80)는 유효하지 않은(invalid) 것으로 표시될 수 있다. 어레이(78A)의 이용은 공유 디스플레이 영역 내의 임의의 픽셀에 대해 대응하는 노드는 단일 동작으로 찾을 수 있다는 것을 보장한다.
하나 이상의 노드(76A~C)의 리스트 및/또는 어레이(78A)에 영향을 미치는 모니터링된 윈도우 이벤트의 발생이 검출될 때, 섹션(70A~C)에 대한 노드(76A~C)의 리스트 및/또는 어레이(78A)가 계층 노드(62)에 따라 업데이트될 수 있다. 일 실 시예에서, 모니터링된 윈도우 이벤트는 공유된 디스플레이 데이터를 업데이트하여 재시작될 때까지 큐잉되며(queue), 그때 필요하다면, 계층노드(62), 노드(76A ~ C)의 리스트와 어레이(78A)가 큐잉된 모든 윈도우 이벤트에 따라 업데이트된다. 노드(76A~C)의 리스트 및 어레이(78A)는 이미 공지된 또는 향후 개발된 방법을 이용하여 구현될 수 있다. 예를 들면, 공지된 바에 따르면, 노드(76A ~ C)의 각 리스트는 메모리에 저장된 대응 노드에 대한 포인터의 링크된 리스트를 포함할 수 있으며, 각 어레이(78A)는 각 픽셀에 대한 메모리에 저장된 대응 노드에 대한 포인터를 포함하는 엘리먼트를 갖는 2차원 어레이를 포함할 수 있다.
본 설명에는 매핑될 디스플레이 영역 내의 각 윈도우에 대해 생성된 노드로 한정되어 있지만, 그들이 매핑될 디스플레이 영역내에 배치되는지에 상관없이 디스플레이내의 모든 윈도우에 대한 노드가 생성되고 관리될 수 있다. 또한, 본 방법은 픽셀 데이터를 참조하여 설명하였지만, 본 발명의 모든 지시는 어떤 타입의 디스플레이 데이터에도 적용한다는 것을 알 수 있다. 또한, 임의의 윈도우에 의해 커버되지 않는 일부 디스플레이에 대한 디스플레이 데이터를 얻기 위해 디스플레이의 데스크탑(즉, 배경)에 대한 노드가 생성될 수 있다.
본 발명은 디스플레이 데이터를 원하는 위치에 매핑하는 범용 컴퓨터/서버 시스템에 적용할 수 있다. 본 발명은 하드웨어, 소프웨어 또는 하드웨어 및 소프트웨어의 조합으로 이루어질 수 있다. 로딩 및 실행될 때, 하드웨어 및 소프트웨 어의 일반적인 조합은 소스 컴퓨터(12) 및/또는 수신지 컴퓨터(16)를 제어하는 컴퓨터 프로그램을 구비하는 범용 컴퓨터 시스템일 수 있으므로, 그들은 본 명세서에서 설명된 각각의 방법을 수행한다. 대안적으로, 본 발명의 하나 이상의 기능적인 태스크(task)를 수행하기 위한 특정화된 하드웨어를 포함하는 특정 사용 컴퓨터(specific use computer)가 이용될 수 있다.
또한, 본 발명은 컴퓨터 프로그램 제품에서 구현될 수 있으며, 이는 본 명세서에서 설명된 방법을 구현할 수 있는 모든 개별적 특징을 포함하며, 컴퓨터 시스템에서 로딩될 때, 상기 컴퓨터 프로그램 제품은 이 방법들을 수행할 수 있다. 현재 문맥에서 컴퓨터 프로그램, 소프트웨어 프로그램, 프로그램 또는 소프트웨어는 정보 처리 성능을 갖는 시스템이 (a)다른 언어, 코드 또는 표시(notation)에 대한 변환; 및/또는 (b)다른 재료 형태에서 재생산하는 단계 중 하나 또는 두 개를 모두 행한 다음 특정 기능을 수행하거나 직접 특정 기능을 수행하게 하는 임의의 언어내의 명령어 세트(코드 또는 표시)에 대한 임의의 표현을 의미한다.
특정 시퀀스로 다양한 방법이 진행하는 것으로 설명되어 있지만, 독립 단계가 명세서 내의 설명과 비교하여 동일한 순서 또는 다른 순서로 실행될 수 있다는 것을 알 수 있다. 또한, 다양한 기능을 구현하는 다양한 시스템이 개시되어 설명되고 있지만, 본 명세서에서 설명된 다양한 기능(들)을 구현하기 위해 더 적은 시스템 및/또는 더 많은 시스템이 이용될 수 있다.
본 발명의 다양한 측면에 대한 전술한 설명은 예시 및 설명을 목적으로 나타난다. 공개된 정확한 형태로 본 발명의 범위를 줄이거나 제한하지 않으며, 더욱 분명하게 많은 수정 및 변경이 가능하다. 당업자에 의해 나타날 수 있는 이러한 수정 및 변경은 첨부한 청구항에 의해 정의됨으로써 발명의 범주 내에 포함될 수 있다.

Claims (13)

  1. 적어도 하나의 윈도우(64A ~ H)를 포함하는 디스플레이 영역(60)에 대한 디스플레이 데이터를 매핑하는 방법에 있어서, 상기 방법은,
    각 윈도우에 대한 노드(66A~H) -상기 각 노드는 계층 관계 데이터(hierarchical relation data)를 포함함-를 생성하는 단계(S2);
    상기 계층 관계 데이터에 따라 계층노드(62)를 생성하는 단계(S3);
    상기 계층 노드를 이용하여 제1 포맷에서 공유 포맷으로 상기 디스플레이 데이터를 매핑하는 단계(S7)
    를 포함하는 디스플레이 데이터 매핑 방법.
  2. 제1항에 있어서,
    윈도우 이벤트의 발생을 모니터링하는 단계(S4);
    상기 윈도우 이벤트의 발생에 따라 상기 계층 노드(62)를 업데이트하는 단계(S5)
    를 더 포함하는 디스플레이 데이터 매핑 방법.
  3. 제2항에 있어서, 상기 윈도우 이벤트의 발생에 따라 상기 계층 관계 데이터 를 업데이트하는 단계를 더 포함하는 디스플레이 데이터 매핑 방법.
  4. 제1항에 있어서, 형제 윈도우(64B ~ D)의 세트에 대한 형제 노드(66B ~ D)의 세트는 상기 형제 윈도우의 적층 순서(stacking order)에 따라 상기 계층 노드(62)내에 배치되는 디스플레이 데이터 매핑 방법.
  5. 제1항에 있어서,
    상기 디스플레이 영역(60)을 다수의 섹션(70A ~ C)으로 구획하는 단계; 및
    상기 계층 노드(62)를 이용하여 상기 각 섹션에 대한 노드(76A ~ C) 리스트를 생성하는 단계를 더 포함하며,
    상기 섹션의 적어도 일부분에 디스플레이된 각 윈도우에 대한 노드는 상기 노드 리스트에 포함되는 디스플레이 데이터 매핑 방법.
  6. 제5항에 있어서, 상기 각 섹션에 대한 엘리먼트(72A ~ C)를 갖는 어레이(74)를 생성하는 단계를 더 포함하며, 상기 각 엘리먼트는 상기 대응 섹션에 대한 상기 노드 리스트를 포함하는 디스플레이 데이터 매핑 방법.
  7. 제5항에 있어서,
    윈도우 이벤트의 발생을 모니터링하는 단계(S4); 및
    상기 윈도우 이벤트의 발생에 따라 상기 노드 리스트 중 적어도 하나를 업데이트하는 단계(S5)
    를 더 포함하는 디스플레이 데이터 매핑 방법.
  8. 제1항에 있어서, 단일 동작으로 제1 픽셀 깊이를 갖는 다수의 윈도우에 대한 디스플레이 데이터를 얻는 단계(S6)를 더 포함하는 디스플레이 데이터 매핑 방법.
  9. 제8항에 있어서, 상기 데이터를 얻는 단계(S6)와 제2 픽셀 깊이를 갖는 적어도 하나의 윈도우에 대한 매핑단계(S7)를 반복하는 단계를 더 포함하는 디스플레이 데이터 매핑 방법.
  10. 제1항에 있어서, 상기 매핑단계(S7)는
    상기 디스플레이 데이터내의 각 픽셀에 대응하는 노드를 판단하는 단계(S7A);
    상기 노드를 이용하여 상기 각 픽셀에 대한 픽셀 데이터의 제1 포맷을 판단하는 단계(S7B);
    상기 제1 포맷내의 상기 픽셀 데이터로부터 상기 각 픽셀에 대한 공유 포맷내의 픽셀 데이터를 생성하는 단계(S7C)
    를 포함하는 디스플레이 데이터 매핑 방법.
  11. 제1항에 있어서, 상기 매핑된 디스플레이 데이터를 수신지 컴퓨터(16)와 공유하는 단계를 더 포함하는 디스플레이 데이터 매핑 방법.
  12. 제1항에 있어서, 상기 방법은 상기 방법을 구현할 수 있는 컴퓨터 판독가능한 프로그램 코드를 구비한 컴퓨터 프로그램 제품으로 구현되는(embodided) 것을 특징으로 하는 디스플레이 데이터 매핑방법
  13. 제1항에 있어서, 상기 방법은 컴퓨터-판독가능한 저장 매체에 저장된 명령어로 구현되는 것을 특징으로 하는 디스플레이 데이터 매핑방법.
KR1020057019055A 2003-05-07 2004-05-07 디스플레이 데이터 매핑 방법, 시스템, 컴퓨터 판독 가능 매체 및 컴퓨터 판독 가능 저장 매체 KR100818976B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/249,781 2003-05-07
US10/249,781 US7260784B2 (en) 2003-05-07 2003-05-07 Display data mapping method, system, and program product

Publications (2)

Publication Number Publication Date
KR20060009834A true KR20060009834A (ko) 2006-02-01
KR100818976B1 KR100818976B1 (ko) 2008-04-04

Family

ID=33449387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019055A KR100818976B1 (ko) 2003-05-07 2004-05-07 디스플레이 데이터 매핑 방법, 시스템, 컴퓨터 판독 가능 매체 및 컴퓨터 판독 가능 저장 매체

Country Status (9)

Country Link
US (1) US7260784B2 (ko)
EP (1) EP1623408A4 (ko)
JP (1) JP4398466B2 (ko)
KR (1) KR100818976B1 (ko)
CN (1) CN100394473C (ko)
BR (1) BRPI0410112B1 (ko)
CA (1) CA2523478C (ko)
TW (1) TWI291113B (ko)
WO (1) WO2004100644A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509869B1 (ko) * 2012-12-31 2015-04-07 현대자동차주식회사 디스플레이 연동 시스템 및 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948448B2 (en) * 2004-04-01 2011-05-24 Polyvision Corporation Portable presentation system and methods for use therewith
US7483880B2 (en) * 2004-09-30 2009-01-27 Microsoft Corporation User interface for database display
JP4900889B2 (ja) * 2005-01-21 2012-03-21 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
DE102005017313A1 (de) * 2005-04-14 2006-10-19 Volkswagen Ag Verfahren zur Darstellung von Informationen in einem Verkehrsmittel und Kombiinstrument für ein Kraftfahrzeug
US20080086700A1 (en) * 2006-10-06 2008-04-10 Rodriguez Robert A Systems and Methods for Isolating On-Screen Textual Data
CN101202036B (zh) * 2006-12-11 2013-04-03 上海奇码数字信息有限公司 图像处理中的地址映射方法及采用该方法的图像处理装置
US8984446B1 (en) * 2007-03-13 2015-03-17 Adobe Systems Incorporated Sharing display spaces
US8166165B1 (en) 2007-03-13 2012-04-24 Adobe Systems Incorporated Securing event flow in a user interface hierarchy
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US8750490B2 (en) * 2007-08-22 2014-06-10 Citrix Systems, Inc. Systems and methods for establishing a communication session among end-points
US8315362B2 (en) * 2007-08-22 2012-11-20 Citrix Systems, Inc. Systems and methods for voicemail avoidance
US9137377B2 (en) 2007-08-22 2015-09-15 Citrix Systems, Inc. Systems and methods for at least partially releasing an appliance from a private branch exchange
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US8095865B2 (en) * 2007-11-21 2012-01-10 Microsoft Corporation Layout manager
US8938743B2 (en) * 2007-12-21 2015-01-20 Citrix Systems, Inc. Methods and systems for providing, to a first application executed by a first operating system, an interface for communicating with at least one application executed by a second operating system
US8612614B2 (en) * 2008-07-17 2013-12-17 Citrix Systems, Inc. Method and system for establishing a dedicated session for a member of a common frame buffer group
US8115778B2 (en) * 2008-09-26 2012-02-14 Nvidia Corporation System and method for selecting a pixel output format
TWI420384B (zh) * 2009-05-15 2013-12-21 Chi Mei Comm Systems Inc 電子裝置及調整該電子裝置顯示畫面位置的方法
US8356256B2 (en) * 2009-06-17 2013-01-15 Brigham Young University Presentation scratch spaces
US20110119454A1 (en) * 2009-11-17 2011-05-19 Hsiang-Tsung Kung Display system for simultaneous displaying of windows generated by multiple window systems belonging to the same computer platform
TWI467481B (zh) * 2010-05-31 2015-01-01 Ibm 層級式程式源碼管理方法、系統及電腦程式產品
CN102447814B (zh) * 2010-09-30 2015-11-25 无锡中星微电子有限公司 间接颜色图像的存储方法和装置、图像显示方法和装置
US20120304077A1 (en) 2011-05-23 2012-11-29 International Business Machines Corporation Accessing window pixel data for application sharing
US8750911B2 (en) * 2011-09-23 2014-06-10 Jianchong Yang Content source, content sink, and method for natively managing and delivering active content from one or more content sources to one or more content sinks wirelessly
US9207094B2 (en) * 2012-06-10 2015-12-08 Apple Inc. Road height generation for a road network
US9208601B2 (en) 2012-06-10 2015-12-08 Apple Inc. Computing plausible road surfaces in 3D from 2D geometry
CN105637472B (zh) * 2013-10-11 2019-03-19 华为技术有限公司 具有广义屏幕描述的屏幕内容共享系统的框架
US9830056B1 (en) * 2014-01-22 2017-11-28 Google Llc Indicating relationships between windows on a computing device
US10671235B2 (en) * 2015-03-03 2020-06-02 Soroco Private Limited Software robots for programmatically controlling computer programs to perform tasks
US9786071B2 (en) 2015-03-25 2017-10-10 International Business Machines Corporation Geometric shape hierarchy determination to provide visualization context
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
TWI636450B (zh) * 2017-01-09 2018-09-21 禾聯碩股份有限公司 映射系統及其映射方法
CN110213265B (zh) * 2019-05-29 2021-05-28 腾讯科技(深圳)有限公司 图像获取方法、装置、服务器及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5596702A (en) * 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US5877762A (en) * 1995-02-27 1999-03-02 Apple Computer, Inc. System and method for capturing images of screens which display multiple windows
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6911987B1 (en) * 1995-07-05 2005-06-28 Microsoft Corporation Method and system for transmitting data for a shared application
US6204847B1 (en) * 1995-07-17 2001-03-20 Daniel W. Wright Shared virtual desktop collaborative application system
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
US6119104A (en) * 1997-11-24 2000-09-12 Keycorp Composite banking desktop system
US6389437B2 (en) * 1998-01-07 2002-05-14 Ion Systems, Inc. System for converting scrolling display to non-scrolling columnar display
US6151622A (en) * 1998-02-02 2000-11-21 International Business Machines Corp. Method and system for portably enabling view synchronization over the world-wide web using frame hierarchies
US20020138624A1 (en) * 2001-03-21 2002-09-26 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Collaborative web browsing
JP4980520B2 (ja) * 2001-05-28 2012-07-18 谷電機工業株式会社 情報配信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509869B1 (ko) * 2012-12-31 2015-04-07 현대자동차주식회사 디스플레이 연동 시스템 및 방법
US9290096B2 (en) 2012-12-31 2016-03-22 Hyundai Motor Company Apparatus and method for interlocking display

Also Published As

Publication number Publication date
KR100818976B1 (ko) 2008-04-04
CN100394473C (zh) 2008-06-11
CA2523478A1 (en) 2004-11-25
US20040239701A1 (en) 2004-12-02
JP4398466B2 (ja) 2010-01-13
EP1623408A2 (en) 2006-02-08
CN1784714A (zh) 2006-06-07
JP2007503624A (ja) 2007-02-22
CA2523478C (en) 2012-01-17
BRPI0410112B1 (pt) 2017-01-17
US7260784B2 (en) 2007-08-21
WO2004100644A3 (en) 2005-03-24
EP1623408A4 (en) 2009-12-02
BRPI0410112A (pt) 2006-05-09
WO2004100644A2 (en) 2004-11-25
TWI291113B (en) 2007-12-11
TW200513908A (en) 2005-04-16

Similar Documents

Publication Publication Date Title
KR100818976B1 (ko) 디스플레이 데이터 매핑 방법, 시스템, 컴퓨터 판독 가능 매체 및 컴퓨터 판독 가능 저장 매체
KR100235219B1 (ko) 디스플레이 속성 식별치의 할당과 다중하드웨어 컬러 조사표를관리하는 방법 및 장치
US6573904B1 (en) Method and apparatus in a data processing system for updating color buffer window identifies when an overlay window identifier is removed
US6401101B1 (en) Method, server/computer and data structure for implementation of complex objects in an object-oriented database
US5388201A (en) Method and apparatus for providing multiple bit depth windows
Nye XLIB Reference Manual R5
US7137066B2 (en) Binary cache file format for themeing the visual appearance of a computer system
Garfinkel et al. HP SharedX: A tool for real-time collaboration
US6954218B2 (en) Method and apparatus for high-performance rendering and hit-testing of a window tree
JPH04314124A (ja) 表示システム、xウィンドウサーバーシステム及び表示           方法
US20100278442A1 (en) Efficient encoding of alternative graphic sets
JP2505106B2 (ja) デ―タ処理システム
JP2006195968A (ja) ツリービューベースエディタでのインラインプロパティ編集のシステムおよび方法
CA2564389C (en) Multi-source, multi-destination data transfers
JP2007518194A (ja) 2次元cadドキュメントに対する表示優先度
US20030020726A1 (en) Method and system for displaying graphics information
US20160342620A1 (en) Rendering high resolution images using image tiling and hierarchical image tile storage structures
US5731814A (en) Method and apparatus for identifying an object selected on a computer output display
US6202083B1 (en) Method for updating wallpaper for computer display
AU2018370018A1 (en) Systems and methods for providing a visible watermark in a remote session
US7490133B1 (en) Context-sensitive content level semantic information propagation system and method
US20030020748A1 (en) Method and system for displaying graphics information
US6710777B1 (en) Method and apparatus in a data processing system for installing appropriate WID values for a transparent region
US20150082235A1 (en) Difference-oriented user interface creation
CN114036313B (zh) 一种族谱展示方法、装置及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110201

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee