KR101201026B1 - 복합 디스플레이를 제공하기 위한 시스템 및 방법 - Google Patents

복합 디스플레이를 제공하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101201026B1
KR101201026B1 KR1020097018473A KR20097018473A KR101201026B1 KR 101201026 B1 KR101201026 B1 KR 101201026B1 KR 1020097018473 A KR1020097018473 A KR 1020097018473A KR 20097018473 A KR20097018473 A KR 20097018473A KR 101201026 B1 KR101201026 B1 KR 101201026B1
Authority
KR
South Korea
Prior art keywords
rendering
server
servers
rendering server
drawing operation
Prior art date
Application number
KR1020097018473A
Other languages
English (en)
Other versions
KR20090122222A (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 KR20090122222A publication Critical patent/KR20090122222A/ko
Application granted granted Critical
Publication of KR101201026B1 publication Critical patent/KR101201026B1/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
    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1446Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display display composed of modules, e.g. video walls
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/025LAN communication management

Abstract

복수의 디스플레이 수단 상에 복합 디스플레이를 제공하기 위한 시스템이 제공된다. 호스트 컴퓨터 시스템(202)은 그래픽 출력을 생성할 수 있는 애플리케이션(201)을 호스팅하고, 복수의 렌더링 서버(211-214)가 제공되는데, 그 각각은 그래픽 출력의 일부를 디스플레이하기 위한 디스플레이 수단(221-224)에 연결된다. 호스트 컴퓨터 시스템(202) 상의 애플리케이션에 의해 생성되는 운영체제 프리미티브 2D 드로잉 연산을, 렌더링 서버(211-214)가 실행하도록 그로 보내는 와이어 프로토콜로 인코딩하는 수단을 포함하는 장치 드라이버(230)가 제공된다. 렌더링 서버(211-214) 각각은 다른 렌더링 장치(231-234)와 동시에 드로잉 연산을 렌더링하는 그래픽 렌더링 장치(231-234)를 포함한다.
복합 디스플레이, 렌더링 장치, 시각화 시스템

Description

복합 디스플레이를 제공하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING A COMPOSITE DISPLAY}
본 발명은 복합 디스플레이 솔루션 분야에 관한 것이다. 보다 구체적으로는 대형 분산 디스플레이를 위한 복합 디스플레이 솔루션을 구현하는 것에 관한 것이다.
현재의 많은 그래픽 애플리케이션이 효과적으로 사용되기 위해서는 초대형의 디스플레이가 필요하다. 이러한 대형 디스플레이는 더욱 상세한 것(초대형 픽셀 어레이로 렌더링하는 것)을 볼 수 있고 위해 및/또는 복수의 고해상도 윈도즈를 나란히 배열할 수 있어야 한다.
단일 모니터 및 그래픽 카드의 현재 기술은 디스플레이 해상도를 조정(scale)할 수 있고, 상대적으로 작은 크기로만 크기를 키울 수 있다. 여러 윈도우잉(windowing) 시스템은 여러 데스크톱 사이에서 윈도즈의 이동을 허용하는 "멀티 데스크톱" 시스템을 생성하기 위해 사용자가 복수의 그래픽 카드를 단일 워크스테이션에 삽입하도록 함으로써 하드웨어 한계를 극복하려고 시도한다.
기타 솔루션은 입력으로 단일 비디오 신호를 수용하고 이를 모니터 월(monitor wall)에 대해 조정하는, 디스플레이 월(display wall)에 연결된 초고해 상도 그래픽 카드를 사용한다.
DMX(Distributed Multihead X) 서버에 의해 다양한 솔루션이 제공된다. 이 솔루션은 단일 벽에 바둑판 식으로 배열된 디스플레이(single wall tiled display)를 생성하기 위해 X 프로토콜 기술에 의존하며, 이 디스플레이는 네트워크화된 머신들 상에 호스팅되는 X 디스플레이 서버들의 집합으로 구성된다. X 클라이언트 애플리케이션은 이 특정 X 디스플레이 서버에 연결되어 평소와 같이 동작할 수 있다. 내부적으로, DMX 서버는 렌더링 서버상에서 실행되는 X 디스플레이 서버에 대한 클라이언트로 동작하고, Xlib 명령어를 사용하여 리모트 디스플레이로 렌더링한다. 이 솔루션은 X 윈도즈에만 사용가능하다.
미국특허공개 제2002/0116539호는 프린스톤 대학 디스플레이 월(Princeton University display wall)로 알려진 내용을 기재한다. 이 디스플레이 시스템은 윈도즈 운영체제용이다(Windows는 마이크로소프트사의 상표이다). 이 디스플레이 이미지는 클라이언트 내부의 픽셀 데이터로 생성된 후, 이미지로 압축되고, 대형 디스플레이로 보내진다. 이 시스템은 윈도 장치 드라이버 인터페이스(device driver interface: DDI)를, 디스플레이의 부분집합을 제각기 렌더링하는 리모트 노드들로의 리모트 프로시듀어 호출로 변형시키는 것에 기초한다.
본 발명의 목적은 고속 네트워크에 의해 연결된 복수의 워크스테이션에 부착된 복수의 모니터를 연결하는(span) 스케일러블한 고해상도 시각화 시스템을 개발하는 기술을 제공하는 것이다. 복수의 모니터는 단일 대형 복합, 고해상도 디스플레이의 일부로 기하학적으로 배치될 수 있다.
본 발명의 제1 특징에 따라, 복수의 디스플레이 수단 상에 복합 디스플레이를 제공하는 시스템이 제공되며, 이러한 시스템은 그래픽 출력을 생성할 수 있는 애플리케이션을 호스팅하는 호스트 컴퓨터 시스템; 복수의 렌더링 서버 - 각각은 그래픽 출력의 일부를 디스플레이하기 위한 디스플레이 수단에 연결되고, 각 렌더링 서버는 그래픽 렌더링 장치를 포함함 -; 호스트 컴퓨터 시스템상의 애플리케이션에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산(operating system primitive 2D drawing operations)을, 렌더링 서버들이 실행하도록 그들로 보내기 위한 와이어 프로토콜로 인코딩하기 위한 수단을 포함하는 장치 드라이버를 포함한다.
렌더링 서버상의 그래픽 렌더링 장치는 바람직하게는 다른 렌더링 장치와 병렬적으로 드로잉 연산을 렌더링한다. 그래픽 렌더링 장치는 드로잉 연산의 결과를 프레임 버퍼 내에 래스터화(rasterize)하는 그래픽 가속기(graphics accelerator)를 포함할 수 있다.
드로잉 연산은 로우(low) 레벨 인코딩된 그래픽 명령어를 사용하여 인코딩될 수 있고, 렌더링 서버는 디코딩 수단을 포함할 수 있다. 드로잉 연산은 바람직하게는 윈도우잉 시스템 특정 연산(windowing system specific operations) 또는 운영체제 특정 연산(operating system specific operations)이다.
장치 드라이버는 드로잉 연산을 부분들로 분할하기 위한 수단을 포함할 수 있는데, 각 부분은 그래픽 렌더링 장치들 중 하나를 위한 것이다. 장치 드라이버는 각 렌더링 서버의 렌더링 서버 드로잉 상태를 정의하기 위한 수단을 포함할 수 있는데, 렌더링 서버 드로잉 상태는 드로잉 연산이 렌더링 서버에 의해 수행되는 방법에 관한 정보를 포함할 수 있다.
장치 드라이버는 그래픽 렌더링 장치에 있는 윈도우잉 시스템 특정 가속기 렌더링 후크(accelerator rendering hooks)를 구현하기 위한 수단을 포함할 수 있다.
장치 드라이버는, 호스트 컴퓨터 시스템에 연결되거나 네트워크를 통해 결합되거나, 또는 이와 통합될 수 있다.
호스트 컴퓨터 시스템은 렌더링 서버들의 복합 디스플레이의 그것에 독립적이고 다른 디스플레이를 디스플레이할 수 있는 로컬 디스플레이를 포함할 수 있다.
본 발명의 제2 특징에 따라, 장치 드라이버가 제공되며, 이는 애플리케이션에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산을, 복수의 렌더링 서버들이 실행하도록 그들로 보내기 위한 와이어 프로토콜로 인코딩하는 수단; 드로잉 연산들을 부분들로 분할하는 수단 - 서로 다른 부분들은 서로 다른 렌더링 서버(211-214)가 실행하도록 그들로 보내짐 - 을 포함한다.
본 발명의 제3 특징에 따라, 복수의 디스플레이 수단 상에 복합 디스플레이를 제공하기 위한 방법이 제공되며, 이는 애플리케이션에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산을, 복수의 렌더링 서버가 실행하도록 그로 보내기 위한 와이어 프로토콜로 인코딩하는 단계; 드로잉 연산들을 부분들로 분할하는 단계 - 서로 다른 연산들은 서로 다른 렌더링 서버들이 병렬적으로 실행하도록 그들로 보내짐 - 를 포함한다.
각 렌더링 서버의 렌더링 서버 드로잉 상태를 정의하는 단계 - 렌더링 서버 드로잉 상태는 렌더링 서버에 의해 드로잉 연산이 어떻게 수행되는지에 대한 정보를 포함하며, 이 상태는 장치 드라이버 내부에 캐싱됨 - 를 포함할 수 있다. 인코딩된 드로잉 연산들의 부분 및 렌더링 서버 드로잉 상태를 필요한 경우에만 렌더링 서버로 보내는 단계를 더 포함할 수 있다.
드로잉 연산을 인코딩하는 단계는 연산 코드 및 그 연산을 위한 변수 파라미터들을 포함하는 드로잉 명령어들의 정렬된 스트림을 제공할 수 있다. 렌더링 서버들의 그래픽 렌더링 장치에 있는 윈도우잉 시스템 특정 가속기 렌더링 후크(windowing system specific accelerator rendering hooks)를 구현하는 단계를 포함할 수 있다.
본 발명의 제4 특징에 따라, 컴퓨터 판독가능 저장 매체 상에 저장되는 컴퓨터 프로그램 제품으로서, 애플리케이션에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산을, 복수의 렌더링 서버가 실행하도록 그로 보내기 위한 와이어 프로토콜로 인코딩하는 단계; 드로잉 연산들을 부분들로 분할하는 단계 - 서로 다른 부분들은 서로 다른 렌더링 서버들이 병렬적으로 실행하도록 그들로 보내짐 -;를 수행하기 위한 컴퓨터 판독가능 프로그램 코드 수단들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명은 고속 네트워크에 의해 연결되는 서버 클러스터 내부에 호스팅되는 분산 그래픽 카드들을 스폰하는(spawn) 대형 복합 디스플레이를 구현하기 위한 일반적이고 운영체제 독립적인 기술을 설명한다.
본 발명은 로우 레벨 인코딩된 그래픽 명령어들을 사용하여 드로잉 연산을 와이어 프로토콜로 인코딩하는 클라이언트 기계 상의 가상 장치 드라이버를 사용하는데, 이 와이어 프로토콜은 전송되어 간단한 렌더링 서버들에 의해서 실행된다.
이에 따라 클라이언트 시스템이 아닌 바둑판식 디스플레이 렌더링 클러스터 상에서 드로잉이 수행될 수 있다. 이는 고해상도, 확장성(scalability) 및 병행 렌더링을 허용한다.
본 발명의 실시예들은, 단지 예시의 방법으로서 첨부되는 도면을 참조하여 기술된다.
도 1은 본 기술분야에 알려진 바둑판식 디스플레이 시스템의 블록도.
도 2는 본 발명에 따른 시스템의 블록도.
도 3은 본 발명의 일 특징에 따른 방법의 흐름도.
도 4는 본 발명의 다른 특징에 따른 방법의 흐름도.
데이터 처리 시스템상에서 실행되는 소프트웨어 애플리케이션은 일반적으로 시스템의 I/O 인터페이스들 중 하나에 설치된 그래픽 렌더링 장치로 그래픽 명령어 스트림을 보낸다. 그 후에 그래픽 렌더링 장치는 데이터를 그래픽 렌더링 장치의 비디오 메모리에 래스터 컨텐츠(raster content)로 저장되는 픽셀로 렌더링하고, 이를 로컬 디스플레이에 비디오 시그널로 출력한다.
보다 뛰어난 시각화를 위해, 그래픽의 래스터 표현은 종종 디스플레이 월이라 지칭되는 디스플레이 장치의 복합 어레이 상에 제공될 수 있다. 그래픽은 개별 디스플레이 모니터에 의해 제공되는 각 타일을 가진 바둑판식 디스플레이(tiled display)로 분할될 수 있다.
도 1을 참조하면, 본 기술분야에 공지된 시각화 시스템(100)이 도시된다. 시각화 시스템(100)은 호스트 데이터 처리 시스템(102) 상에서 실행되는 소프트웨어 애플리케이션(101)을 포함한다. 애플리케이션(101)은 특수 로컬 디스플레이 서버(DMX 서버; 103)를 사용한다. 애플리케이션(101)의 특수 디스플레이 서버(103)는 복수의 X 서버(111-114)를 포함하는 렌더링 클러스터(110)에 연결되는 로컬 네트워크(일반적으로 이더넷; 104)의 사용을 통해 시각화된다. 각각의 X 서버(111-114)는 개별 디스플레이(121-124) 상에 그래픽 출력의 일부를 드로잉하는데 사용된다.
특수 디스플레이 서버(103)는 애플리케이션(101)에 의해 만들어지는 표준 X11 호출을 수용하고, 그것들을 인코딩하며, 렌더링 서버(111-114)의 클러스터(110)의 각 노드 상에 동일한 X11 함수 호출을 수행한다. 클러스터(110)의 각 멤버는 X11 함수 호출 데이터를 수신하고, 그 최종 이미지의 일부를 병렬적으로 드로잉한다. 각각의 렌더링 서버(111-114)는 이미지의 부분(121-124)을 디스플레이한다. 이러한 이미지 부분은, 예를 들어 디스플레이 월 또는 프로젝션 시스템(projection system)의 타일로서 디스플레이될 수 있다.
도 2를 참조하면, 본 발명에 따라 시각화 시스템(200)이 제공된다. 도 1의 종래 기술의 시스템(100)에서와 같이, 시스템(200)은 호스트 데이터 처리 시스템(202) 상에 실행되는 소프트웨어 애플리케이션(201)을 포함한다. 애플리케이션(201)의 로컬 디스플레이(203)는 (그래픽 처리 유닛(GPU), 그래픽 카드 등과 같은) 로컬 그래픽 렌더링 장치(207)에 부착되어 제공된다. 더 크고 상이한 제2 디스플레이가 복수의 렌더링 서버(211-214)를 포함하는 렌더링 클러스터(210)에 연결되는 고속 로컬 네트워크(206)의 사용을 통하여 제공된다. 각각의 렌더링 서버(211-214)는 그래픽 출력의 부분을 개별 디스플레이(221-224) 상에 렌더링한다.
설명되는 시스템(200)은 리모트 비디오 장치 드라이버(RVDD; 230)를 더 포함하는데, 이는 표준 X 윈도즈 또는 윈도즈 데스크톱일 수 있는 호스트 윈도우잉 시스템에 의해 사용된다. RVDD(230)는 호스트 시스템(202)의 X 서버(208) 상에 도시되어 있다. RVDD(230)는 애플리케이션(201)의 드로잉 연산을 와이어 프로토콜로 인코딩하기 위한 인코더(231)를 포함하는데, 이 와이어 프로토콜은 전송되어 렌더링 서버들(211-214)에 의해 실행된다. 이는 드로잉 연산이 더 높은 해상도 및 확장성을 허용하는 호스트 시스템(202) 대신 렌더링 서버들(211-214) 상에서 수행될 수 있도록 한다. 드로잉 연산은 OS 프리미티브 2D 드로잉 연산(operating system primitive 2D drawing operation)이다. RVDD(230)는 연산들을 렌더링 서버들(211-214) 각각 마다 하나씩이 되도록 여러 부분들로 분할하기 위한 분배 수단(232)을 포함한다.
RVDD(230)는 운영체제 특정 비디오 장치 드라이버인데, 이는 매우 큰 디스플레이 크기를 구현하고, 호스트 윈도우잉 시스템이 하부의 하드웨어를 활용하기 위 해 사용하는 모든 하드웨어 가속 후크(hardware acceleration hooks)를 구현한다.
RVDD(230)는 호스트 시스템(202) 또는 호스트 시스템(202)이 네트워크를 통해 액세스할 수 있는 서버 상에 제공될 수 있다. RVDD(230)는 고속 네트워크(206)의 사용을 통해 렌더링 서버들(211-214)의 집합에 액세스한다.
각각의 렌더링 서버(211-214)는 디코더(251-254), 하나 이상의 그래픽 렌더링 장치(이하 그래픽 보드(231-234)라고 지칭됨), 프레임 버퍼(241-244)를 포함하고, 디스플레이 장치(221-224)에 연결된다.
일반적인 그래픽 드로잉 명령은 원형(raw form)으로 그래픽 보드(231-234)의 그래픽 가속기로 전송된다. 가속기는 이어서 명령의 결과들을 프레임 버퍼(241-244) 내에 래스터화(rasterizes) 한다. 렌더링 서버(211-214)에서 이러한 처리를 수행함으로써, 호스트 시스템(202)에 의해 실행될 프로세서 용량을 절약할 수 있다.
예시적인 일 실시예로서, 바둑판식 디스플레이는 디스플레이의 총 해상도가 W x H 픽셀인 N x M 개의 디스플레이 타일로 형성될 수 있다. 각각의 렌더링 서버에는 W/N x H/M 개의 픽셀로 된 디스플레이 타일이 할당된다.
RVDD(230)는 운영체제에 특수 모니터 타입에 연결된 것으로 보고하는데, 특수 모니터 타입의 기능은 W x H 개의 픽셀을 디스플레이하는 것이다. 그 후 운영체제는 W x H 개의 픽셀의 처리가 가능한 가상 그래픽 카드를 효과적으로 이용한다.
RVDD(230)는 호스팅 윈도우잉 시스템으로의 직접 프레임 버퍼 액세스를 제공 하지 않는다. 이는 대신 모든 윈도우잉 시스템 특정 가속 렌더링 후크를 구현하는데, 이는 현대의 그래픽 카드에서 이용가능한 하드웨어 가속 기능을 활용하기 위해 윈도우잉 시스템이 사용한다.
드로잉 와이어 프로토콜이 정의되어, RVDD(230)가 각각의 윈도우잉 시스템 또는 운영체제 특정 연산을 인코딩할 수 있도록 한다. 예를 들어, 연산은 윈도즈 운영체제의 그래픽 장치 인터페이스(GDI) 호출, 또는 X 윈도우 시스템의 직접 그래픽 액세스(DGA) 연산을 포함할 수 있다. 연산들은 기본 드로잉 및 관리 연산의 정렬된 스트림으로 인코딩된다.
이 스트림은 각각의 디스플레이 부분에 대해 클리핑되어, 각기 다른 디스플레이 부분으로 가는 각기 다른 서브-스트림을 구현한다. 각각의 서브-스트림은 각자의 렌더링 서버(211-214)로 전송된다. 렌더링 서버들(211-214)은 드로잉 연산을 수신하고 실행한다.
RVDD(230)는 복수 모니터 지원과 같은 호스트 시스템(202)의 운영체제 기능과 통합되어, 예를 들어, 작은 모니터를 로컬 그래픽 보드(207)를 통하여 호스트 시스템에 연결되도록 하거나, 동일한 큰 디스플레이 월이 호스트 시스템(202)에 부착되도록 한다. 윈도우들은 더 높은 해상도 및 크기의 디스플레이를 위해 작은 모니터로부터 큰 디스플레이 월로 드래그 및 드롭될 수 있다.
RVDD(230)는 운영체제(202)로부터의 프로브 요청에 대해 항상 긍정으로 응답하여, 설치된 장치들 사이에서 항상 그 실체를 드러낸다.
초기화에서, RVDD(230)는 구성 파라미터들을 판독하는데, 이들 파라미터는 다음을 포함한다:
Figure 112009054452586-pct00001
전체 바둑판식 디스플레이 픽셀 크기(W x H);
Figure 112009054452586-pct00002
디스플레이 타일들의 배열(N x M);
Figure 112009054452586-pct00003
디스플레이들 사이의 경계들의 크기(픽셀 단위);
Figure 112009054452586-pct00004
IP 주소, 스크린 ID, 타일 매트릭스에서의 위치가 완비된, 렌더링 서버들의 리스트.
RVDD(230)는 렌더링 서버 상태와 저레벨 드로잉 명령어들의 스트림을 사용하여 렌더링 서버(211-214)와 통신한다.
렌더링 서버 상태는 기본 드로잉 연산이 어떻게 수행되는지에 관한 정보를 기록한다. 각각의 렌더링 서버(211-214)는 그 자신의 서버 상태를 가지는데, 이는 다른 렌더링 서버들(211-214)과 상이할 수 있다.
드로잉 상태에 저장되는 정보는 다음과 같다:
Figure 112009054452586-pct00005
전경(foreground) 픽셀 컬러
Figure 112009054452586-pct00006
배경(background) 픽셀 컬러
Figure 112009054452586-pct00007
선 넓이(픽셀 단위)
Figure 112009054452586-pct00008
선 스타일(예를 들어, 실선(Solid), 온 오프 대쉬(OnOffDash), 더블 대쉬(Dash))
Figure 112009054452586-pct00009
캡 스타일(예를 들어, NotLast, Butt, Round, Square)
Figure 112009054452586-pct00010
조인 스타일(예를 들어, Miter, Round, Bevel)
Figure 112009054452586-pct00011
클립 영역(기록이 가능한 영역을 나타내는 직사각형들의 리스트)
Figure 112009054452586-pct00012
브러시 비트맵
Figure 112009054452586-pct00013
타일 비트맵
Figure 112009054452586-pct00014
스티플(stipple) 비트맵
Figure 112009054452586-pct00015
현재의 폰트
Figure 112009054452586-pct00016
현재의 알파 변환 테이블
Figure 112009054452586-pct00017
현재의 채움(fill) 파라미터들
모든 자원 할당 제어는 RVDD(230)에 의해 수행될 것이므로, 정보가 렌더링 서버(211-214)로부터 호스트 시스템(202)으로 다시 전송될 필요가 없다.
각각의 렌더링 서버(211-214)의 프레임 버퍼(241-244)는 컬러당 8비트를 가지는 트루컬러(true color) RGB일 것이다.
명령어 스트림은 기본 드로잉 명령어들의 정렬된 시퀀스에 의해 구성된다. 각각의 명령어는 오피코드(opcode)(명령어 유형) 및 가변 개수의 파라미터로 구성되는데, 파리미터들의 개수는 오피코드에 의존한다.
이용가능한 명령어들의 집합은 다음과 같이 구분될 수 있다:
1. 렌더링 서버 드로잉 상태의 관리;
2. 오프 스크린 버퍼들의 관리;
3. 포인터 제어;
4. 2D 드로잉 연산의 수행;
5. 2D 영역 블리트(blits)의 수행;
6. 이미지 전달.
각각의 윈도우잉 시스템 특정 장치 드라이버 기능 및 가속 후크는 하나 이상의 렌더링 서버 오피코드를 사용하여 구현될 것이다.
모든 기능의 RVDD 구현을 위해 필요한 기본적인 오피코드들이 정의된다. 좌표 및 크기는 디스플레이 월 픽셀 단위이다.
디스플레이 월은 운영체제가 보통 모든 그래픽 보드 상에 존재하는 "오프 스크린 메모리"를 오프 스크린 버퍼로 사용하기 위해 할당하도록 허용하는데, 이는 이중 또는 삼중 버퍼링 표면(double or triple buffering surfaces)을 구현하기 위해 또는 이미지들을 로딩하고 블리트(blit)하기 위해 사용될 수 있다. 오프 스크린 이미지는 모든 렌더링 서버(211-214) 상에서 그려지므로, 스크린의 어떤 부분에서도 블리트될 준비가 되어 있다.
1. 렌더링 서버 드로잉 상태의 관리:
각각의 드로잉 상태 값에 대해 SET 오피코드가 제공된다.
이 오피코드는 렌더링 상태가 변경되어야 하는 특정 렌더링 서버(211-214)로 전송된다.
RVDD(230) 내부에 구현되는 캐시 메커니즘은 렌더링 서버(211-214)로 전송되는 상태 변경 요청들의 수를 최소화한다.
2. 오프 스크린 버퍼의 관리:
INITBUF bufferid width height - 오프스크린 버퍼를 할당하고 초기화함
FREEBUF bufferid - 오프스크린 버퍼에 의해 사용된 자원들을 해제함
이 오피코드들은 모든 렌더링 서버(211-214)로 전송되고, 버퍼들은 모든 렌더링 노드 상에 항상 생성되어, 시스템 내에 하나의 bufferid 공간이 존재한다.
3. 포인터 제어:
MOVEPOINTER x y - 포인터를 마지막 위치로부터 삭제하고 새로운 위치에 렌더링하여 특정 위치로 이동시킴
LOADPOINTER bufferid xoff yoff - 포인터 이미지 및 크기를 bufferid에 포함된 것으로 변경함; 오프셋들은 포인터 이미지 내의 포인터 후크를 특정함
MOVEPOINTER 오피코드는 포인터 이미지의 이전 및 새로운 위치에 대한 직사각형을 교차하는 렌더링 서버들로 전송된다.
LOADPOINTER 오피코드는 모든 렌더링 서버로 전송된다.
4. 2D 드로잉 연산의 수행:
DRAWLINE surface x1 y1 x2 y2 - 현재의 드로잉 상태 값들을 사용하여 x1, y1으로부터 x2, y2로 하나의 선을 그림
DRAWBEZIER surface bezierparams.
DRAWBEZIERFILL surface bezierparams.
DRAWELLIPSE surface ellipseparams.
DRAWELLIPSEFILL surface ellipseparams.
DRAWMULTI surface [list of lines, beziers, ellipses]
DRAWMULTIFILL surface [list of lines, beziers, ellipses]
표면은 프레임 버퍼(241-244) 또는 임의의 할당된 오프 스크린 버퍼일 수 있다.
이 오피코드들은 그려지는 객체를 교차하는 렌더링 서버들(211-214)로 전송된다.
5. 2D 영역 블리트(blits)의 수행:
COPYAREA surffrom, surfto x y width height tox toy.
COPYBLEND surffrom surfto x y width height tox toy.
COPYSCALE surffrom surfto x y width height tox toy towidth toheight.
COPYROTATE surffrom surfto x y width height tox toy rotationparams.
CHANGEAREA(surffromid, surfto, operation, x, y, width, height, tox, toy).
CHANGESCALE(surffromid, surfto, operation, x, y, width, height, tox, toy, towidth, toheight).
CHANGEROTATE(surffromid, surfto, operation, x, y, width, height, tox, toy, rotationparams).
표면은 프레임 버퍼(241-244) 또는 임의의 할당된 오프 스크린 버퍼일 수 있다.
이 오피코드들은 그려지는 객체를 교차하는 렌더링 서버들(211-214)로 전송된다.
6. 이미지 전달:
LOADIMAGE(surfaceid, format, imagedata)
Surfaceid는 임의의 할당된 오프 스크린 버퍼이다.
이 오피코드는 모든 렌더링 서버(211-214)로 전송되어, 이미지가 즉시 임의의 스크린 부분 상에 카피될 준비가 되도록 한다.
도 3을 참조하면, 흐름도(300)는 RVDD(230)에서 실행되는 방법의 단계들을 도시한다.
RVDD는 드로잉 연산들을 정렬된 스트림으로 인코딩하는데(301), 스트림은 각각의 렌더링 서버를 위한 부분들로 분할된다(302). 명령어 스트림의 렌더링 서버 부분은 각각의 렌더링 서버로 전송된다(304). 각각의 렌더링 서버에 대한 렌더링 서버 드로잉 상태는 RVDD 내부에 캐싱되므로, 상태 변경의 전송이 최소화된다.
도 4를 참조하면, 흐름도(400)는 렌더링 서버에서 실행되는 방법의 단계들을 도시한다.
렌더링 서버는 렌더링 서버 드로잉 상태 및 명령어 스트림의 부분을 수신한다(401). 렌더링 서버는 드로잉 연산을 디코딩하고(402) 실행한다(403). 렌더링 서버는 자신의 프레임 버퍼 내에 이미지를 래스터화하고(404) 이미지를 디스플레이한다(405).
본 발명은 전체적으로 하드웨어인 실시예, 전체적으로 소프트웨어인 실시예 또는 하드웨어와 소프트웨어 요소들을 모두 포함하는 실시예의 형태를 가질 수 있다. 바람직한 실시예에서, 본 발명은 소프트웨어로 구현되는데, 이는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만 여기에 한정되지는 않는다.
본 발명은 컴퓨터 또는 임의의 명령어 실행 시스템에 의해 또는 그와 함께 사용되는 프로그램 코드를 제공하는 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체로부터 액세스가능한 컴퓨터 프로그램 제품의 형태를 가질 수 있다. 본 설명을 위해, 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체는 명령어 실행 시스템, 기구 또는 장치에 의해서 또는 그와 함께 사용되는 프로그램을 보유, 저장, 전달, 전파, 또는 전송할 수 있는 임의의 장치일 수 있다.
매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템(또는 기구 또는 장치) 또는 전파 매체일 수 있다. 컴퓨터-판독가능 매체의 예들은 반도체 또는 고체 상태 메모리, 자기 테이프, 이동식 컴퓨터 디스켓, RAM, ROM, 강성 자기 디스크 및 광학 디스크를 포함한다. 광학 디스크의 현재 예들은 CD-ROM, CD-R/W, 및 DVD를 포함한다.
본 발명의 범위를 벗어나지 않고 앞의 내용에 향상 및 변경이 이루어질 수 있다.

Claims (10)

  1. 복수의 디스플레이 수단 상에 복합 디스플레이를 제공하는 시스템으로서,
    그래픽 출력을 생성할 수 있는 애플리케이션(201)을 호스팅하는 호스트 컴퓨터 시스템(202);
    각각 상기 그래픽 출력의 일부(a portion)를 디스플레이하는 디스플레이 수단(221-224)에 각각 연결된 복수의 렌더링 서버(211-214) - 각각의 렌더링 서버(211-214)는 그래픽 렌더링 장치(231-234)를 포함함 -;
    상기 호스트 컴퓨터 시스템(202) 상의 상기 애플리케이션(201)에 의해 생성되는 운영체제 프리미티브 2D 드로잉 연산(operating system primitive 2D drawing operations)을, 상기 렌더링 서버(211-214)가 실행하도록 상기 렌더링 서버로 보내기 위한 와이어 프로토콜로 인코딩하는 수단을 포함하는 장치 드라이버(230);를 포함하고,
    상기 장치 드라이버는 각각의 렌더링 서버에 대해 렌더링 서버 드로잉 상태를 정의하는 수단을 포함하고, 상기 렌더링 서버 드로잉 상태는 상기 드로잉 연산들이 상기 렌더링 서버에 의해 어떻게 수행되는지에 관한 정보를 포함하는 것인,
    시스템.
  2. 제1항에 있어서,
    렌더링 서버(211-214) 상의 상기 그래픽 렌더링 장치(231-234)는 다른 렌더링 장치(231-234)와 병렬적으로 상기 드로잉 연산을 렌더링하는, 시스템.
  3. 제1항 또는 제2항에 있어서,
    그래픽 렌더링 장치(231-234)는 상기 드로잉 연산의 결과를 프레임 버퍼(241-244)에 래스터화(rasterize)하는 그래픽 가속기를 포함하는,
    시스템.
  4. 제1항 또는 제2항에 있어서,
    상기 드로잉 연산은 로우 레벨 언어(low-level language)로 인코딩된 그래픽 명령어들을 사용하여 인코딩되고, 상기 렌더링 서버(211-214)는 디코딩 수단(251-254)을 포함하는,
    시스템.
  5. 제1항 또는 제2항에 있어서,
    상기 드로잉 연산은 윈도우 시스템 특정 연산(windowing system specific operations) 또는 운영체제 특정 연산(operating system specific operations)인,
    시스템.
  6. 제1항 또는 제2항에 있어서,
    상기 장치 드라이버(230)는 상기 드로잉 연산을 분할하는 수단을 포함하고, 상기 드로잉 연산의 분할된 각 부분은 상기 그래픽 렌더링 장치들(231-234) 중 하나를 위한 것인,
    시스템.
  7. 삭제
  8. 삭제
  9. 복수의 디스플레이 수단(221-224) 상에 복합 디스플레이를 제공하는 방법으로서,
    애플리케이션(210)에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산(operating system primitive 2D drawing operations)을, 복수의 렌더링 서버(211-214)가 실행하도록 상기 복수의 렌더링 서버로 보내기 위한 와이어 프로토콜로 인코딩하는 단계;
    상기 드로잉 연산을 분할하는 단계 - 상기 드로잉 연산의 분할된 서로 다른 부분들은 서로 다른 렌더링 서버들(211-214)이 병렬적으로 실행하도록 상기 서로 다른 렌더링 서버들로 보내짐 - ; 및
    각각의 렌더링 서버에 대해 렌더링 서버 드로잉 상태를 정의하는 단계 - 상기 렌더링 서버 드로잉 상태는 상기 드로잉 연산이 상기 렌더링 서버에 의해 어떻게 수행되는지에 관한 정보를 포함함 -;
    를 포함하는 방법.
  10. 컴퓨터 판독가능 프로그램 코드 수단을 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 프로그램 코드 수단은,
    애플리케이션(201)에 의해 생성된 운영체제 프리미티브 2D 드로잉 연산(operating system primitive 2D drawing operations)을, 복수의 렌더링 서버(211-214)가 실행하도록 상기 복수의 렌더링 서버로 보내기 위한 와이어 프로토콜로 인코딩하는 단계;
    상기 드로잉 연산을 분할하는 단계 - 상기 드로잉 연산의 분할된 서로 다른 부분들은 서로 다른 렌더링 서버들(211-214)이 병렬적으로 실행하도록 상기 서로 다른 렌더링 서버들로 보내짐 -; 및
    각각의 렌더링 서버에 대해 렌더링 서버 드로잉 상태를 정의하는 단계 - 상기 렌더링 서버 드로잉 상태는 상기 드로잉 연산이 상기 렌더링 서버에 의해 어떻게 수행되는지에 관한 정보를 포함함 -;를 수행하기 위한 것인,
    컴퓨터 판독가능 저장 매체.
KR1020097018473A 2007-06-27 2007-08-21 복합 디스플레이를 제공하기 위한 시스템 및 방법 KR101201026B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07111136.3 2007-06-27
EP07111136 2007-06-27
PCT/EP2007/058683 WO2009000334A1 (en) 2007-06-27 2007-08-21 System and method for providing a composite display

Publications (2)

Publication Number Publication Date
KR20090122222A KR20090122222A (ko) 2009-11-26
KR101201026B1 true KR101201026B1 (ko) 2012-11-14

Family

ID=38645683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018473A KR101201026B1 (ko) 2007-06-27 2007-08-21 복합 디스플레이를 제공하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US20090002263A1 (ko)
EP (1) EP2168035A1 (ko)
KR (1) KR101201026B1 (ko)
CN (1) CN101663640A (ko)
CA (1) CA2673581A1 (ko)
WO (1) WO2009000334A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9198084B2 (en) * 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US20080045149A1 (en) * 2006-05-26 2008-02-21 Dinesh Dharmaraju Wireless architecture for a traditional wire-based protocol
JP4325697B2 (ja) * 2007-04-17 2009-09-02 ソニー株式会社 画像処理システム、画像処理装置、画像処理方法、およびプログラム
US8667144B2 (en) * 2007-07-25 2014-03-04 Qualcomm Incorporated Wireless architecture for traditional wire based protocol
US8811294B2 (en) * 2008-04-04 2014-08-19 Qualcomm Incorporated Apparatus and methods for establishing client-host associations within a wireless network
US8533666B2 (en) * 2008-10-17 2013-09-10 Microsoft Corporation Interactive design environments to visually model, debug and execute resource oriented programs
KR101319342B1 (ko) * 2008-11-25 2013-10-16 엘지디스플레이 주식회사 멀티 패널 표시장치 및 그 구동방법
KR101341014B1 (ko) * 2008-11-28 2013-12-13 엘지디스플레이 주식회사 멀티 패널 표시장치 및 그 구동방법
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US20100205321A1 (en) * 2009-02-12 2010-08-12 Qualcomm Incorporated Negotiable and adaptable periodic link status monitoring
US9479358B2 (en) * 2009-05-13 2016-10-25 International Business Machines Corporation Managing graphics load balancing strategies
US9264248B2 (en) * 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
KR101636573B1 (ko) * 2009-12-04 2016-07-05 엘지전자 주식회사 디스플레이 장치 및 디스플레이 방법
US9582238B2 (en) * 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
FR2958440B1 (fr) 2010-03-30 2012-10-12 Airbus Operations Sas Systeme d'affichage de graphiques sur ecran, dispositifs et procedes associes
US9164646B2 (en) * 2010-08-31 2015-10-20 Ati Technologies Ulc Method and apparatus for accommodating display migration among a plurality of physical displays
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US8674957B2 (en) * 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
JP5436526B2 (ja) * 2011-12-06 2014-03-05 株式会社ソニー・コンピュータエンタテインメント グラフィックスコマンド生成装置、グラフィックスコマンド生成方法、サーバ装置、およびクライアント装置
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
CN102664937B (zh) * 2012-04-09 2016-02-03 威盛电子股份有限公司 云端运算图形服务器及云端运算图形服务方法
US20150193904A1 (en) * 2012-10-24 2015-07-09 OpenMobile World Wide, Inc. Graphics acceleration for applications executing on mobile devices with multi-operating system environment
JP5921469B2 (ja) 2013-03-11 2016-05-24 株式会社東芝 情報処理装置、クラウドプラットフォーム、情報処理方法およびそのプログラム
US9417911B2 (en) * 2014-03-12 2016-08-16 Live Planet Llc Systems and methods for scalable asynchronous computing framework
WO2018142159A1 (en) * 2017-02-03 2018-08-09 Tv One Limited Method of video transmission and display
EP3951767A4 (en) * 2019-03-25 2022-05-11 Sony Group Corporation IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD AND DISPLAY DEVICE
CN116521969B (zh) * 2023-02-28 2023-12-29 华为云计算技术有限公司 一种数据检索方法、服务端、系统及相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040201621A1 (en) 2001-10-10 2004-10-14 Stevens Bruce W. Presentation program and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249294B1 (en) 1998-07-20 2001-06-19 Hewlett-Packard Company 3D graphics in a single logical sreen display using multiple computer systems
US6417849B2 (en) * 1998-07-31 2002-07-09 Hewlett-Packard Company Single logical screen in X windows with direct hardware access to the frame buffer for 3D rendering
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6864894B1 (en) * 2000-11-17 2005-03-08 Hewlett-Packard Development Company, L.P. Single logical screen system and method for rendering graphical data
WO2002063416A2 (en) * 2000-12-21 2002-08-15 Imtech Corporation Method and apparatus for displaying information on a large scale display
WO2002086745A2 (en) * 2001-04-23 2002-10-31 Quantum 3D, Inc. System and method for synchronization of video display outputs from multiple pc graphics subsystems
US20030158886A1 (en) * 2001-10-09 2003-08-21 Walls Jeffrey J. System and method for configuring a plurality of computers that collectively render a display
US6989836B2 (en) * 2002-04-05 2006-01-24 Sun Microsystems, Inc. Acceleration of graphics for remote display using redirection of rendering and compression
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
JP4977950B2 (ja) * 2004-02-04 2012-07-18 セイコーエプソン株式会社 マルチ画面映像再生システム、映像再生方法及び表示装置
US7852342B2 (en) * 2004-10-14 2010-12-14 Microsoft Corporation Remote client graphics rendering
US7589731B2 (en) * 2004-11-15 2009-09-15 Hewlett-Packard Development Company, L.P. Graphics systems and methods
US20060129634A1 (en) * 2004-11-18 2006-06-15 Microsoft Corporation Multiplexing and de-multiplexing graphics streams
US7890573B2 (en) * 2005-11-18 2011-02-15 Toshiba Medical Visualization Systems Europe, Limited Server-client architecture in medical imaging

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040201621A1 (en) 2001-10-10 2004-10-14 Stevens Bruce W. Presentation program and method

Also Published As

Publication number Publication date
CN101663640A (zh) 2010-03-03
KR20090122222A (ko) 2009-11-26
CA2673581A1 (en) 2008-12-31
WO2009000334A1 (en) 2008-12-31
US20090002263A1 (en) 2009-01-01
EP2168035A1 (en) 2010-03-31

Similar Documents

Publication Publication Date Title
KR101201026B1 (ko) 복합 디스플레이를 제공하기 위한 시스템 및 방법
KR101144694B1 (ko) 원격 디스플레이로의 전송을 위해 프레임버퍼를 복제하기 위한 방법 및 시스템
US7800619B2 (en) Method of providing a PC-based computing system with parallel graphics processing capabilities
EP2293192B1 (en) Methods and systems for remoting three dimensional graphics
EP2248101B1 (en) Graphics remoting architecture
US6917362B2 (en) System and method for managing context data in a single logical screen graphics environment
US6853380B2 (en) Graphical display system and method
US20120050301A1 (en) Architecture For Rendering Graphics On Output Devices Over Diverse Connections
US10002403B2 (en) Command remoting
US20140285502A1 (en) Gpu and encoding apparatus for virtual machine environments
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
JP2001508576A (ja) データ処理システム
CN116166367B (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
LAPS Lapse due to unpaid annual fee