KR101068645B1 - Master-Slave based Tile Display System and Synchronization Method between Master-Slaves - Google Patents

Master-Slave based Tile Display System and Synchronization Method between Master-Slaves Download PDF

Info

Publication number
KR101068645B1
KR101068645B1 KR1020100005977A KR20100005977A KR101068645B1 KR 101068645 B1 KR101068645 B1 KR 101068645B1 KR 1020100005977 A KR1020100005977 A KR 1020100005977A KR 20100005977 A KR20100005977 A KR 20100005977A KR 101068645 B1 KR101068645 B1 KR 101068645B1
Authority
KR
South Korea
Prior art keywords
master
slave
shared
shared object
node
Prior art date
Application number
KR1020100005977A
Other languages
Korean (ko)
Other versions
KR20110086314A (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 한국기계연구원
Priority to KR1020100005977A priority Critical patent/KR101068645B1/en
Publication of KR20110086314A publication Critical patent/KR20110086314A/en
Application granted granted Critical
Publication of KR101068645B1 publication Critical patent/KR101068645B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/169Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

마스터-슬레이브 기반의 타일 디스플레이 시스템은 제1 디스플레이 장치, 상기 제1 디스플레이 장치와 다중 어레이 방식으로 설치되어 타일 디스플레이를 이루는 제2 디스플레이 장치, 상기 제1 디스플레이 장치와 연결되는 마스터 PC(personal computer), 및 상기 마스터 PC와 네트워크를 통하여 연결되고 상기 제2 디스플레이 장치와 연결되는 슬레이브 PC를 포함하고, 상기 마스터 PC 및 상기 슬레이브 PC 각각은 지속적인 동기화가 필요한 동적 장면 구성요소인 동적 객체의 속성을 저장하고 실제 객체를 참조할 수 있는 공유 객체 블록, 및 상기 공유 객체 블록의 배열인 공유 객체 리스트를 구성한다. 마스터-슬레이브 기반의 타일 디스플레이 시스템의 동기화 처리 과정에서 동기화 프로그램의 복잡도를 줄이고 동기화 과정의 모듈화를 가능하게 하여 동기화 모듈의 확장성과 이식성을 확보할 수 있다.The master-slave based tile display system includes a first display device, a second display device installed in a multi-array manner with the first display device to form a tile display, a master personal computer (PC) connected to the first display device, And a slave PC connected with the master PC via a network and connected with the second display device, wherein each of the master PC and the slave PC stores attributes of a dynamic object that is a dynamic scene component that requires continuous synchronization. Comprising a shared object block that can reference the object, and a shared object list that is an array of the shared object block. In the synchronization process of the master-slave based tile display system, the complexity of the synchronization program can be reduced and the synchronization process can be modularized, thereby ensuring the expandability and portability of the synchronization module.

Description

마스터-슬레이브 기반의 타일 디스플레이 시스템 및 이를 위한 마스터-슬레이브 간의 동기화 방법{Tiled display system based master-slave and method of synchronizing between master and slave for the same}Tiled display system based master-slave and method of synchronizing between master and slave for the same}

본 발명은 마스터-슬레이브 기반의 타일 디스플레이 시스템에 관한 것으로, 보다 상세하게는 공유 객체 또는 공유 함수를 이용하여 마스터-슬레이브 간의 상태변화 정보의 동기화를 수행하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에 관한 것이다.
The present invention relates to a master-slave-based tile display system, and more particularly, to a master-slave-based tile display system for performing synchronization of state change information between master-slaves using a shared object or a shared function. .

최근 LCD(liquid crystal display), PDP(plasma display panel), OLED(organic electro luminescence display) 등의 고해상도 대형 디스플레이가 개발되고 있다. 고해상도 대형 디스플레이는 사용자에게 넓은 시야각과 함께 높은 정밀도를 제공함으로써 화면에 시각화된 정보에 대한 실재감과 몰입감을 높일 수 있으며, 실제 비율의 디지털 목업(Digital Mock-Up, DMU) 품평, 대용량 공학/지리 데이터의 세밀한 검증, 가상현실에 대한 시각적 몰입성 증대, 항공/교통 상황 통제실에서의 신속한 의사 판단, 광고전시/홍보 효과 증대 등의 다양한 목적의 산업에 적용될 수 있다. Recently, high-resolution large displays such as liquid crystal displays (LCDs), plasma display panels (PDPs), and organic electroluminescence displays (OLEDs) have been developed. The high resolution large display provides users with a wide viewing angle and high precision to increase the realism and immersion of the information visualized on the screen, and the actual ratio of digital mock-up (DMU) reviews, large engineering / geographic data It can be applied to a variety of industries such as detailed verification of information, increased visual immersion on virtual reality, rapid decision making in the aviation / traffic control room, and increased advertisement display / publicity effect.

대형 디스플레이를 구현함에 있어, 단일 디스플레이 시스템보다는 화면 크기에 제약을 받지 않고 다양한 레이아웃의 화면 구현이 가능한 타일 디스플레이 시스템의 사용이 증가하고 있는 추세이다. 특히, 최근의 PDP/LCD 등의 평판 디스플레이 기술이 비약적으로 발전하면서, 해상도와 밝기가 뛰어나고 설치 및 유지보수가 용이하면서 가격이 저렴한 평판 기반의 타일 디스플레이의 적용이 크게 늘어나고 있다.In implementing a large display, there is an increasing trend to use a tile display system capable of realizing a screen having various layouts without being limited by a screen size than a single display system. In particular, with the recent rapid development of flat panel display technologies such as PDP / LCD, the application of flat panel-based tile displays with excellent resolution and brightness, easy installation and maintenance, and low cost is increasing.

이러한 타일 디스플레이 시스템은 제공되는 컨텐츠의 내용과 목적에 따라 다양한 하드웨어 및 소프트웨어 기술의 적용이 필요하다. 특히, 대형 화면에 고해상도의 3D 컴퓨터 그래픽을 제공해야 하는 디지털 목업 영상 품평, 공학 시뮬레이션 가시화 및 가상현실 응용 분야에서 PC 클러스터(cluster)를 이용한 분산 가시화 기술이 필수적이라 할 수 있다. The tile display system needs to apply various hardware and software technologies according to the content and purpose of the provided content. In particular, distributed visualization technology using PC clusters is essential for digital mock-up image evaluation, engineering simulation visualization, and virtual reality applications that must provide high-resolution 3D computer graphics on a large screen.

분산 가시화 기술은 네트워크 상에 존재하는 다수의 리소스를 활용하여 렌더링(rendering) 작업을 분산시키고 이들에 대한 시공간적 동기화를 적용하는 기술이다. 분산 가시화 기술은 분산되는 데이터의 종류와 각 클러스터 노드의 역할을 바탕으로 클라이언트-서버(client-server) 모델과 마스터-슬레이브(master-slave) 모델로 나눠진다.Distributed visualization technology is a technology that distributes rendering work by applying a plurality of resources existing on the network and applies space-time synchronization to them. Distributed visualization technology is divided into a client-server model and a master-slave model based on the type of data distributed and the role of each cluster node.

클라이언트-서버 모델은 단독의 가상현실 어플리케이션이 클라이언트에서 실행되며, 사용자의 입력에 기반하여 장면(scene)을 생성시키고 생성된 그래픽스 명령어 집합을 네트워크를 통해 렌더링 서버 측으로 전송하여 분산된 렌더링을 수행하는 방식이다. 주요 어플리케이션에서 모든 그래픽스 데이터를 관리하기 때문에 중앙 집중형이라고도 하며 어플리케이션 모듈과 분산 렌더링 모듈의 분리가 쉽고 프로그램 개발이 용이하지만, 대량의 그래픽스 명령어 전송을 위해 넓은 대역폭과 낮은 레이턴시(latency)를 갖는 네트워크 환경이 필요하다는 단점이 있다. In the client-server model, a single virtual reality application is executed on a client, and a scene is generated based on user input, and a distributed rendering is performed by transmitting a set of generated graphic commands to a rendering server through a network. to be. Also known as centralized because it manages all graphics data in key applications, it is easy to separate application modules and distributed rendering modules and to develop programs, but has a wide bandwidth and low latency for sending large amounts of graphics instructions. There is a disadvantage that this is necessary.

마스터-슬레이브 모델은 동일한 가상현실 어플리케이션이 모든 클러스터에서 동시에 실행되는 것으로, 마스터에서는 사용자 입력에 기반한 시뮬레이션을 수행하고 이에 의한 장면의 상태변화 정보를 각각의 슬레이브에 전달하여 장면에 대한 동기화를 수행한 이후 렌더링을 수행하는 방식이다. 장면의 상태변화 정보만을 네트워크를 통해 전송하므로 대용량 데이터의 가시화가 필요한 경우에 적합한 모델이다. 그러나, 어플리케이션 및 모든 그래픽스 데이터가 각각의 클러스터 노드에 복사되어야 하기 때문에 시스템의 유지보수가 어렵고 그래픽스 엔진과 분산 렌더링 모듈의 분리가 어려워 프로그램 개발이 용이하지 않은 단점이 있다.
In the master-slave model, the same virtual reality application is executed in all clusters at the same time.The master performs simulation based on user input and transfers the state change information of each scene to each slave to synchronize the scene. This is how rendering is done. Only the state change information of the scene is transmitted through the network, so it is a suitable model when large data visualization is required. However, since the application and all the graphics data must be copied to each cluster node, the maintenance of the system is difficult and the separation of the graphics engine and the distributed rendering module is difficult, so that program development is not easy.

본 발명이 해결하고자 하는 기술적 과제는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 프로그램을 단순화하고 모듈화를 가능하게 하여 시스템의 유지보수성을 높이고 동기화 모듈의 확장성 및 이식성을 확보할 수 있는 마스터-슬레이브 기반의 타일 디스플레이 시스템을 제공함에 있다.
The technical problem to be solved by the present invention is a master-slave based master-slave-based tile display system to simplify the program and enable modularization to increase the maintainability of the system and to secure the expandability and portability of the synchronization module The present invention provides a tile display system.

본 발명의 일 실시예에 따른 마스터-슬레이브 기반의 타일 디스플레이 시스템은 제1 디스플레이 장치, 상기 제1 디스플레이 장치와 다중 어레이 방식으로 설치되어 타일 디스플레이를 이루는 제2 디스플레이 장치, 상기 제1 디스플레이 장치와 연결되는 마스터 PC(personal computer), 및 상기 마스터 PC와 네트워크를 통하여 연결되고 상기 제2 디스플레이 장치와 연결되는 슬레이브 PC를 포함하고, 상기 마스터 PC 및 상기 슬레이브 PC 각각은 지속적인 동기화가 필요한 동적 장면 구성요소인 동적 객체의 속성을 저장하고 실제 객체를 참조할 수 있는 공유 객체 블록, 및 상기 공유 객체 블록의 배열인 공유 객체 리스트를 구성한다. A master-slave based tile display system according to an embodiment of the present invention is provided with a first display device, a second display device installed in a multi-array manner with the first display device to form a tile display, and connected with the first display device. And a slave PC connected to the master PC via a network and to the second display device, wherein each of the master PC and the slave PC is a dynamic scene component requiring continuous synchronization. Construct a shared object block that can store the properties of a dynamic object and refer to a real object, and a shared object list that is an array of the shared object block.

상기 공유 객체 블록은 상기 실제 객체를 참조할 수 있는 객체 포인터를 포함할 수 있다. 상기 공유 객체 블록은 상기 동적 장면 구성요소의 활성화 여부, 동기화 횟수를 나타내는 속성값을 포함할 수 있다. The shared object block may include an object pointer that may refer to the real object. The shared object block may include an attribute value indicating whether the dynamic scene component is activated or the number of synchronization.

상기 네트워크를 통하여 상기 공유 객체 리스트를 참조하는 객체 ID(identifier), 및 상기 공유 객체의 상태정보를 표현하는 정수값 또는 실수값을 포함하는 데이터 패킷이 전송될 수 있다. A data packet including an object identifier (identifier) referring to the shared object list and an integer value or a real value representing state information of the shared object may be transmitted through the network.

상기 데이터 패킷은 간단한 파라미터 정보의 전송이 필요한 공유 객체의 전송을 위한 단패킷 및 다수의 속성을 가지는 공유 객체의 전송을 위한 장패킷을 포함할 수 있다. The data packet may include a short packet for transmitting a shared object requiring simple parameter information and a long packet for transmitting a shared object having a plurality of attributes.

상기 마스터 PC 및 상기 슬레이브 PC는 간헐적인 동기화가 필요한 명령에 대한 공유 함수와 상기 공유 함수를 실행시키는 함수 포인터를 포함하는 공유 함수 블록을 서로 대응하여 구성할 수 있다. 상기 마스터 PC 및 상기 슬레이브 PC는 상기 공유 함수 블록을 지시하는 공유 함수 맵을 서로 대응하여 구성할 수 있다. The master PC and the slave PC may configure a shared function block including a shared function for an instruction requiring intermittent synchronization and a function pointer for executing the shared function. The master PC and the slave PC may configure a shared function map indicating the shared function block.

상기 네트워크는 UDP(user datagram protocol)를 이용할 수 있다. The network may use a user datagram protocol (UDP).

상기 마스터 PC에서 상기 슬레이브 PC로의 데이터 전송은 브로드캐스팅 또는 멀티캐스팅 전송 방식일 수 있다.The data transmission from the master PC to the slave PC may be a broadcasting or multicasting transmission scheme.

본 발명의 다른 실시예에 따른 마스터 노드 및 슬레이브 노드가 지속적인 동기화가 필요한 동적 장면 구성요소에 대해 서로 대응하는 공유 객체 블록 및 공유 객체 블록 리스트를 구성하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법은 입력 장치로부터 수신되는 입력 신호에 따라 상기 마스터 노드에서 시뮬레이션 로직을 실행하는 시뮬레이션 갱신 단계, 상기 마스터 노드에서 상기 시뮬레이션 갱신 과정에 따른 시뮬레이션 갱신 결과가 반영된 장면을 구성하고, 갱신된 장면 구성요소를 상기 마스터 노드의 공유 객체 블록에 반영하는 장면 갱신 단계, 및 상기 마스터 노드에서 자신의 공유 객체 리스트에 포함된 공유 객체 블록을 순회하면서 각 공유 객체 블록의 형식에 따라 정의된 속성값을 상기 슬레이브 노드로 전송하는 동기화 단계를 포함한다. In the master-slave-based tile display system in which a master node and a slave node constitute a shared object block and a shared object block list corresponding to each other for dynamic scene components requiring continuous synchronization, the master and slave nodes according to another embodiment of the present invention. The synchronization method may be performed by: a simulation update step of executing simulation logic in the master node according to an input signal received from an input device, configuring a scene in which the simulation update result according to the simulation update process is reflected in the master node, and updated scene configuration A scene update step of reflecting an element to the shared object block of the master node, and the attribute value defined according to the format of each shared object block while traversing the shared object block included in its shared object list in the master node; And a synchronization step of transmitting to the Eve node.

상기 마스터 노드와 상기 슬레이브 노드는 간헐적인 동기화가 필요한 명령에 대해 서로 대응하는 공유 함수 블록 및 공유 함수 맵을 구성하고, 상기 동기화 단계는 상기 마스터 노드에 특정 이벤트를 처리하는 함수가 호출되면 상기 공유 함수 블록에 포함되어 있는 상기 특정 이벤트를 처리하는 함수 이름을 상기 슬레이브 노드로 전송하는 단계를 포함할 수 있다. The master node and the slave node configure a shared function block and a shared function map corresponding to each other for a command requiring intermittent synchronization, and the synchronizing step includes the shared function when a function for processing a specific event is called in the master node. The method may include transmitting a function name for processing the specific event included in the block to the slave node.

상기 동기화 단계는 상기 슬레이브 노드에서 상기 마스터 노드의 공유 객체 블록에 대응하는 자신의 공유 객체 블록의 속성값을 갱신하는 단계를 포함할 수 있다. The synchronizing step may include updating, by the slave node, an attribute value of its own shared object block corresponding to the shared object block of the master node.

상기 슬레이브 노드에서 자신의 공유 객체 리스트를 확인하여 장면 구성요소를 갱신하는 슬레이브 장면 갱신 단계를 더 포함할 수 있다.The slave node may further include a slave scene update step of updating a scene component by checking a shared object list of the slave node.

상기 마스터 노드 및 상기 슬레이브 노드에서 갱신된 장면 구성요소의 상태변화 정보를 렌더링 명령어로 변환하는 렌더링 단계를 더 포함할 수 있다. The method may further include a rendering step of converting state change information of the scene component updated in the master node and the slave node into a rendering command.

상기 마스터 노드 및 상기 슬레이브 노드에서 스왑 버퍼 명령에 따라 디스플레이 신호를 동기 출력하는 스왑 버퍼 단계를 더 포함할 수 있다.
The method may further include a swap buffer step of synchronously outputting a display signal according to a swap buffer command in the master node and the slave node.

마스터-슬레이브 기반의 타일 디스플레이 시스템의 동기화 처리 과정에서 동기화 프로그램의 복잡도를 줄이고 동기화 과정의 모듈화를 가능하게 하여 동기화 모듈의 확장성과 이식성을 확보할 수 있다.
In the synchronization process of the master-slave based tile display system, the complexity of the synchronization program can be reduced and the synchronization process can be modularized, thereby ensuring the expandability and portability of the synchronization module.

도 1은 마스터-슬레이브 기반의 타일 디스플레이 시스템의 일예를 나타내는 블록도이다.
도 2는 마스터-슬레이브 방식의 분산 가시화를 위한 렌더링의 수행하는 방법의 일예를 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 공유 객체 리스트를 이용한 장면 구성 요소의 동기화를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 공유 객체 리스트의 구성을 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 공유 함수 맵을 이용한 장면 구성 요소의 동기화를 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 마스터-슬레이브 간의 통신을 위한 패킷 구조를 나타내는 블록도이다.
1 is a block diagram illustrating an example of a master-slave based tile display system.
2 is a flowchart illustrating an example of a method of performing rendering for distributed visualization of a master-slave scheme.
3 is a block diagram illustrating synchronization of scene components using a shared object list according to an embodiment of the present invention.
4 is a block diagram illustrating a configuration of a shared object list according to an embodiment of the present invention.
5 is a block diagram illustrating synchronization of scene components using a shared function map according to an embodiment of the present invention.
6 is a block diagram illustrating a packet structure for communication between a master and a slave according to an embodiment of the present invention.

이하, 첨부한 도면을 참고로 하여 본 발명의 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되지 않는다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention.

또한, 여러 실시예들에 있어서, 동일한 구성을 가지는 구성요소에 대해서는 동일한 부호를 사용하여 대표적으로 제1 실시예에서 설명하고, 그 외의 실시예에서는 제1 실시예와 다른 구성에 대해서만 설명하기로 한다.In addition, in the various embodiments, components having the same configuration are represented by the same reference symbols in the first embodiment. In the other embodiments, only components different from those in the first embodiment will be described .

본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.In order to clearly describe the present invention, parts irrelevant to the description are omitted, and like reference numerals designate like elements throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "electrically connected" with another element in between. . In addition, when a part is said to "include" a certain component, which means that it may further include other components, except to exclude other components unless otherwise stated.

도 1은 마스터-슬레이브 기반의 타일 디스플레이 시스템의 일예를 나타내는 블록도이다.1 is a block diagram illustrating an example of a master-slave based tile display system.

도 1을 참조하면, 마스터-슬레이브 기반의 타일 디스플레이 시스템은 하나의 마스터 노드와 복수의 슬레이브 노드를 포함한다. 여기서는 각 노드로 PC(personal computer)를 사용한다. 즉, 타일 디스플레이 시스템은 마스터 PC(10) 및 복수의 슬레이브 PC(20-1,...,20-K)를 포함한다. 마스터 PC(10)와 복수의 슬레이브 PC(20-1,...,20-K)는 네트워크를 통하여 연결된다. 이를 PC 클러스터라 한다. Referring to FIG. 1, a master-slave based tile display system includes one master node and a plurality of slave nodes. Here we use a personal computer (PC) for each node. That is, the tile display system includes a master PC 10 and a plurality of slave PCs 20-1,..., 20-K. The master PC 10 and the plurality of slave PCs 20-1,..., 20-K are connected through a network. This is called a PC cluster.

마스터 PC(10)는 입력 장치(30)로부터 입력 신호를 수신하고 분산 가시화를 위한 시뮬레이션 갱신, 장면 갱신, 동기화 등의 처리 과정을 수행한다. 입력 장치(30)는 키보드, 마우스, 조이스틱 등의 사용자 입력 장치 또는 멀티미디어 제공 장치 등이 될 수 있다. 마스터 PC(10)는 입력 신호와 시뮬레이션 결과가 반영된 장면 갱신에 따른 상태변화 정보를 복수의 슬레이브 PC(20-1,...,20-K)에 제공한다. The master PC 10 receives an input signal from the input device 30 and performs processing such as simulation update, scene update, synchronization, etc. for distributed visualization. The input device 30 may be a user input device such as a keyboard, a mouse, a joystick, or a multimedia providing device. The master PC 10 provides the plurality of slave PCs 20-1,..., 20-K with state change information according to scene update reflecting the input signal and the simulation result.

복수의 슬레이브 PC(20-1,...,20-K)는 마스터 PC(10)에서 제공되는 상태변화 정보를 바탕으로 장면 갱신 과정을 수행한다.The plurality of slave PCs 20-1,..., 20-K perform a scene update process based on the state change information provided from the master PC 10.

마스터 PC(10) 및 복수의 슬레이브 PC(20-1,...,20-K) 각각에는 디스플레이 장치(15)(25-1,...,25-K)가 연결된다. 마스터 PC(10)의 디스플레이 장치(15) 및 복수의 슬레이브 PC(20-1,...,20-K)의 디스플레이 장치(25-1,...,25-K)는 다중 어레이 방식으로 설치되어 타일 디스플레이를 이룬다. 예를 들어, 마스터 PC(10)의 디스플레이 장치(15) 및 복수의 슬레이브 PC(20-1,...,20-K)의 디스플레이 장치(25-1,...,25-K)는 빔 프로젝터, DLP(digital light processing) 큐브, PDP/LCD 등의 요소 장치가 될 수 있으며, 이러한 요소 장치의 어레이 방식의 설치로 타일 디스플레이가 구현될 수 있다.The display device 15 (25-1, ..., 25-K) is connected to each of the master PC 10 and the plurality of slave PCs 20-1, ..., 20-K. The display device 15 of the master PC 10 and the display devices 25-1, ..., 25-K of the plurality of slave PCs 20-1, ..., 20-K are connected in a multi-array manner. Installed to form a tile display. For example, the display device 15 of the master PC 10 and the display devices 25-1,..., 25-K of the plurality of slave PCs 20-1,. It may be an element device such as a beam projector, a digital light processing (DLP) cube, a PDP / LCD, or the like, and a tile display may be implemented by an array type installation of such element devices.

여기서는 PC와 디스플레이 장치가 1:1로 연결되어 타일 디스플레이가 구현되는 것으로 나타내었으나, PC와 디스플레이 장치는 비디오 스플리터(Splitter)를 이용하여 1:n 형식으로 연결되거나, 입력신호와 출력신호를 다양하게 매핑할 수 있는 월 컨트롤러(Wall controller)를 이용하여 m:n 형식으로 연결될 수 있다(m은 임의의 소스 수, n은 디스플레이 수).Here, the PC and the display device are shown as being connected 1: 1 to implement a tile display. However, the PC and the display device are connected in a 1: n format using a video splitter, or various input signals and output signals It can be connected in m: n format using a mapable wall controller (m is any number of sources, n is the number of displays).

도 2는 마스터-슬레이브 방식의 분산 가시화를 위한 렌더링을 수행하는 방법의 일예를 나타내는 흐름도이다.2 is a flowchart illustrating an example of a method of performing rendering for distributed visualization of a master-slave scheme.

도 2를 참조하면, 마스터-슬레이브 방식의 분산 가시화는 상태변화의 감지와 전달을 목적으로 한다. 먼저, 초기화 과정에서 장면 구성요소를 구축한 후 동기화가 필요한 구성요소와 렌더링 공간 영역을 정의하고 각 어플리케이션을 동시에 실행시킨다.Referring to FIG. 2, distributed visualization of a master-slave method is aimed at detecting and transmitting a state change. First, after constructing the scene components in the initialization process, the components that need synchronization and the rendering space region are defined, and each application is executed at the same time.

<마스터 루프><Master loop>

마스터 PC(10)는 입력 장치(30)로부터 수신되는 입력 신호를 처리하고(S110), 입력 신호에 따른 시뮬레이션 갱신 과정을 수행한다(S120). 시뮬레이션 갱신 과정은 시뮬레이션 시간의 누적과 누적된 시뮬레이션 시간에 대응하는 시뮬레이션 로직(logic)의 실행으로 이루어진다. The master PC 10 processes the input signal received from the input device 30 (S110), and performs a simulation update process according to the input signal (S120). The simulation update process consists of accumulation of simulation time and execution of simulation logic corresponding to the accumulated simulation time.

입력 신호와 시뮬레이션 갱신 결과가 반영된 장면을 구성하는 장면 갱신 과정이 수행된다(S130). 장면을 구성하는 장면 구성요소로서 카메라, 장면 노드, 개체, 조명 등이 있으며, 장면 갱신 과정에서 장면 구성요소의 주기적 또는 간헐적 상태변화가 발생한다. A scene update process constituting a scene reflecting the input signal and the simulation update result is performed (S130). The scene components constituting the scene include a camera, a scene node, an object, a light, and the like, and a periodic or intermittent state change of the scene component occurs during the scene update process.

마스트 PC(10)는 장면 구성요소의 상태변화를 슬레이브 PC(20)로 전달하여 동기화를 수행한다(S140). 동기화 과정에서 장면 구성요소의 상태변화 정보는 스트리밍(streaming) 방식 또는 커맨드(command) 방식으로 전달될 수 있다. 스트리밍 방식은 장면 구성요소의 상태변화 값이 매 프레임마다 지속적으로 전달되어 동기화되는 방식이다. 커맨드 방식은 구성요소의 상태변화 값 또는 특정 로직을 제어하기 위한 명령이 특정 이벤트 발생 시에만 간헐적으로 전달되어 동기화되는 방식이다.The master PC 10 transmits the state change of the scene component to the slave PC 20 to perform synchronization (S140). In the synchronization process, the state change information of the scene component may be delivered in a streaming method or a command method. In the streaming method, the state change value of the scene component is continuously transmitted and synchronized every frame. The command method is a method in which a command for controlling a state change value of a component or a specific logic is intermittently transmitted and synchronized only when a specific event occurs.

제안하는 동기화 방식에서, 분산 렌더링 모듈의 재사용성을 높이고 그래픽스 엔진과의 모듈 분리화를 위해 공유 객체 리스트 및 공유 함수 맵이 정의된다. 공유 객체 리스트는 스트리밍 방식으로 전달되어야 하는 지속적인 동기화가 필요한 동적 장면 구성요소들의 속성을 저장하고 실제 객체를 참조할 수 있는 데이터 블록의 배열로 정의된다. 공유 함수 맵은 커맨드 방식으로 전달되어야 하는 간헐적인 동기화가 필요한 명령에 대해 함수 이름과 이를 참조할 수 있는 함수 포인터로 구성되는 함수 블록의 배열로 정의된다. 공유 객체 리스트 및 공유 함수 맵에 대한 보다 상세한 설명은 후술한다.In the proposed synchronization scheme, shared object lists and shared function maps are defined for reusability of distributed rendering modules and for module separation from the graphics engine. The shared object list is defined as an array of data blocks that store the properties of dynamic scene components that require constant synchronization that must be delivered in a streaming fashion, and that can refer to real objects. The shared function map is defined as an array of function blocks consisting of a function name and a function pointer to reference it for commands that require intermittent synchronization that must be delivered command-wise. A detailed description of the shared object list and the shared function map will be given later.

마스터 PC(10)는 장면 구성요소의 상태변화 정보를 렌더링 명령어로 변환하는 렌더링 과정을 수행한다(S150). 렌더링 명령어는 그래픽 카드로 전송되어 마스터 PC(10)의 하드웨어적 렌더링이 완료된다. The master PC 10 performs a rendering process of converting state change information of a scene component into a rendering command (S150). The rendering command is transmitted to the graphics card to complete the hardware rendering of the master PC 10.

이후, 스왑 버퍼(swap buffer) 명령이 전송되면, 그래픽 카드의 프레임 버퍼가 활성화되고 디스플레이 장치(15)로 디스플레이 신호가 전달된다(S160). 스왑 버퍼 명령은 프레임 버퍼를 활성화시키는 명령이다.Thereafter, when a swap buffer command is transmitted, the frame buffer of the graphics card is activated and a display signal is transmitted to the display device 15 (S160). The swap buffer command activates the frame buffer.

<슬레이브 루프><Slave loop>

슬레이브 PC(20)는 장면 구성요소의 상태변화 정보를 수신하여 동기화를 수행한다(S210). 슬레이브 PC(20)는 공유 객체 리스트 또는 공유 함수 맵을 확인하여 장면 구성요소의 상태변화 정보를 획득할 수 있다.The slave PC 20 receives the state change information of the scene component and performs synchronization (S210). The slave PC 20 may obtain the state change information of the scene component by checking the shared object list or the shared function map.

슬레이브 PC(20)는 장면 구성요소의 상태변화 정보를 바탕으로 장면 갱신 과정을 수행하고(S220), 장면 구성요소의 상태변화 정보를 렌더링 명령어로 변환하는 렌더링 과정을 수행한다(S230). 렌더링 명령어는 그래픽 카드로 전송되어 슬레이브 PC(20)의 하드웨어적 렌더링이 완료된다. The slave PC 20 performs a scene update process based on the state change information of the scene element (S220), and performs a rendering process of converting the state change information of the scene element into a render command (S230). The rendering command is transmitted to the graphics card to complete the hardware rendering of the slave PC 20.

이후, 스왑 버퍼(swap buffer) 명령이 전송되면, 그래픽 카드의 프레임 버퍼가 활성화되고 디스플레이 장치(25)로 디스플레이 신호가 전달된다(S240). 마스터 PC(10) 및 슬레이브 PC(20)의 스왑 버퍼 명령의 전송 시점을 제어하여 디스플레이 신호의 출력 동기를 제어할 수 있다. 일반적으로 마스터 PC(10) 및 슬레이브 PC(20)가 60Hz 이상의 일정한 화면 갱신율(frame per second, FPS)을 가지는 경우 스왑 버퍼 명령을 이용한 디스플레이 신호의 출력 동기화가 필요하지 않으나, 대용량 데이터 처리와 같이 일부 클러스터의 화면 갱신율의 저하가 우려되는 경우 출력 동기화를 통해 형상 왜곡 또는 지연현상 등을 최소화할 수 있다. Thereafter, when a swap buffer command is transmitted, the frame buffer of the graphics card is activated and a display signal is transmitted to the display device 25 (S240). The transmission timing of the swap buffer command of the master PC 10 and the slave PC 20 may be controlled to control output synchronization of the display signal. In general, when the master PC 10 and the slave PC 20 have a constant frame refresh rate (frame per second, FPS) of 60 Hz or more, output synchronization of a display signal using a swap buffer command is not required. If you are concerned about a decrease in the refresh rate of some clusters, output synchronization can minimize shape distortion or delay.

도 3은 본 발명의 일 실시예에 따른 공유 객체 리스트를 이용한 장면 구성요소의 동기화를 나타내는 블록도이다. 도 4는 본 발명의 일 실시예에 따른 공유 객체 리스트의 구성을 나타내는 블록도이다.3 is a block diagram illustrating synchronization of scene components using a shared object list according to an embodiment of the present invention. 4 is a block diagram illustrating a configuration of a shared object list according to an embodiment of the present invention.

도 3 및 4를 참조하면, 지속적인 동기화가 필요한 동적 장면 구성요소를 공유 객체(shared object)라 하고, 동적 장면 구성요소의 속성을 저장하고 실제 객체를 참조할 수 있는 데이터 블록을 공유 객체 블록(shared object block)이라 하며, 공유 객체 블록의 배열을 공유 객체 리스트(shared object list)라 한다. 공유 객체 리스트는 공유 객체 블록의 1차원적 배열 또는 링크된 리스트 형식의 데이터 구조로서 마스터 PC(10) 및 슬레이브 PC(20)의 실행 메모리 내에 마련되는 저장 영역, 저장 매체 등에 기록될 수 있다.3 and 4, a dynamic scene component requiring continuous synchronization is called a shared object, and a data block capable of storing the attributes of the dynamic scene component and referencing an actual object is a shared object block (shared object). object block, and an array of shared object blocks is called a shared object list. The shared object list may be recorded in a storage area, a storage medium, or the like provided in the execution memory of the master PC 10 and the slave PC 20 as a data structure in the form of a linked dimension or a linked list of shared object blocks.

초기화 과정에서 공유 객체 리스트에 공유 객체 블록이 구성되어 배열되는데, 이는 마스터 PC(10)와 각 슬레이브 PC(20)에 서로 대응하여 구성된다. 즉, 슬레이브 PC(20)의 공유 객체 리스트(220)는 마스터 PC(10)의 공유 객체 리스트(120)와 동일한 배열의 공유 객체 블록(230)을 포함하고, 슬레이브 PC(20)의 공유 객체 블록(230)은 마스터 PC(10)의 공유 객체 블록(130)과 동일한 구조로 구성된다.In the initialization process, a shared object block is configured and arranged in the shared object list, which is configured to correspond to each other in the master PC 10 and each slave PC 20. That is, the shared object list 220 of the slave PC 20 includes the shared object block 230 in the same arrangement as the shared object list 120 of the master PC 10, and the shared object block of the slave PC 20. 230 is configured in the same structure as the shared object block 130 of the master PC (10).

마스터 PC(10)는 복수의 공유 객체(110)에 대응하는 복수의 공유 객체 블록(130)을 포함하는 공유 객체 리스트(120)를 구성한다. 슬레이브 PC(20)는 마스터 PC(10)에 대응하여 복수의 공유 객체 블록(230)을 포함하는 공유 객체 리스트(220)를 구성하며, 각 공유 객체 블록(230)은 슬레이브 PC(20)의 복수의 공유 객체(210)에 대응된다. The master PC 10 constructs a shared object list 120 including a plurality of shared object blocks 130 corresponding to the plurality of shared objects 110. The slave PC 20 constructs a shared object list 220 including a plurality of shared object blocks 230 corresponding to the master PC 10, and each shared object block 230 is a plurality of slave PCs 20. Corresponds to the shared object 210 of.

마스터 PC(10)의 공유 객체에는 카메라(110-1), 장면 노드(110-2), 애니메이션(110-3), 조명(110-4), 파라미터(110-5) 등이 포함될 수 있다. 카메라(110-1)의 속성에는 위치(position), 방위(orientation), 스케일(scale) 등이 있으며, 이는 공유 객체 블록1(130-1)에 저장된다. 장면 노드(110-2)의 속성에는 위치, 방위 등이 있으며, 이는 공유 객체 블록2(130-2)에 저장된다. 애니메이션(110-3)의 속성에는 애니메이션 시간이 있으며, 이는 공유 객체 블록3(130-3)에 저장된다. 조명(110-4)의 속성에는 위치, 방향(direction), 파워 등이 있으며, 이는 공유 객체 블록4(130-4)에 저장된다. 파라미터(110-5)의 속성에는 시뮬레이션 시간, 날씨 시간 등과 같은 어플리케이션 특정 파라미터들이 있으며, 이는 공유 객체 블록5(130-5)에 저장된다. 즉, 각 공유 객체(110)에 대응한 공유 객체 블록(130)이 구성되고, 각 공유 객체 블록(130)은 대응하는 공유 객체(110)의 속성을 나타낸다.The shared object of the master PC 10 may include a camera 110-1, a scene node 110-2, an animation 110-3, a light 110-4, a parameter 110-5, and the like. Properties of the camera 110-1 include position, orientation, scale, and the like, which are stored in the shared object block 1 130-1. Attributes of the scene node 110-2 include a position, an orientation, and the like, which are stored in the shared object block 2 130-2. The property of the animation 110-3 is animation time, which is stored in shared object block 3 130-3. Properties of lighting 110-4 include location, direction, power, and the like, which are stored in shared object block 4 130-4. Attributes of parameters 110-5 include application specific parameters such as simulation time, weather time, etc., which are stored in shared object block 5 130-5. That is, the shared object block 130 corresponding to each shared object 110 is configured, and each shared object block 130 represents the attributes of the corresponding shared object 110.

마스터 PC(10)의 공유 객체 블록(130)은 블록 ID, 동적 장면 구성요소나 특정 파라미터에 대한 활성화 여부, 동기화 횟수와, 이러한 속성값과 공유 객체를 참조할 수 있는 객체 포인터를 포함한다. The shared object block 130 of the master PC 10 includes a block ID, whether a dynamic scene component or a specific parameter is activated, the number of synchronizations, and an object pointer that can refer to these attribute values and the shared object.

마스터 루프의 장면 갱신 과정(S130)에서 동적 장면 구성요소의 상태변화에 따라 공유 객체(110)의 속성이 갱신되고, 이는 대응하는 공유 객체 블록(130)에 반영된다. 마스터 루프의 동기화 과정(S140)에서 마스터 PC(10)는 자신의 공유 객체 리스트(120)에 포함된 공유 객체 블록들(130)을 순회하며 각 공유 객체 블록(130)의 형식에 따라 정의된 속성값을 네트워크를 통하여 슬레이브 PC(20)로 전송한다.In the scene update process (S130) of the master loop, the attributes of the shared object 110 are updated according to the state change of the dynamic scene component, which is reflected in the corresponding shared object block 130. In the process of synchronizing the master loop (S140), the master PC 10 traverses the shared object blocks 130 included in its shared object list 120 and defines attributes according to the format of each shared object block 130. The value is transmitted to the slave PC 20 through the network.

슬레이브 PC(20)는 마스터 PC(10)의 공유 객체 블록(130)에 대응하는 자신의 공유 객체 블록(230)의 속성값을 갱신한다. 슬레이브 PC(20)는 객체 포인터를 참조하여 공유 객체 블록(230)의 속성값에 따라 대응하는 공유 객체(210)의 상태를 갱신한다.The slave PC 20 updates the attribute value of its own shared object block 230 corresponding to the shared object block 130 of the master PC 10. The slave PC 20 updates the state of the corresponding shared object 210 according to the attribute value of the shared object block 230 with reference to the object pointer.

도 5는 본 발명의 일 실시예에 따른 공유 함수 맵을 이용한 장면 구성요소의 동기화를 나타내는 블록도이다.5 is a block diagram illustrating synchronization of scene components using a shared function map according to an embodiment of the present invention.

도 5를 참조하면, 간헐적인 동기화가 필요한 명령에 대한 함수를 공유 함수(shared function)라 하고, 공유 함수와 이를 참조할 수 있는 함수 포인터로 구성된 함수 블록을 공유 함수 블록(shared function block)이라 하며, 공유 함수 블록의 배열을 공유 함수 맵(shared function map)이라 한다. 공유 함수 맵은 공유 함수 블록을 지시하는 맵 구조로서 마스터 PC(10) 및 슬레이브 PC(20)의 실행 메모리 내에 마련되는 저장 영역, 저장 매체 등에 기록될 수 있다. 즉, 마스터 PC(10) 및 슬레이브 PC(20) 각각은 공유 함수 블록 및 공유 함수 맵을 구성할 수 있다.Referring to FIG. 5, a function for an instruction requiring intermittent synchronization is called a shared function, and a function block composed of a shared function and a function pointer that can refer to the function is called a shared function block. In other words, an array of shared function blocks is called a shared function map. The shared function map may be recorded in a storage area, a storage medium, and the like provided in the execution memory of the master PC 10 and the slave PC 20 as a map structure indicating the shared function block. That is, each of the master PC 10 and the slave PC 20 may configure a shared function block and a shared function map.

공유 함수로는 네비게이션 방식의 변경, 시뮬레이션 제어, 애니메이션 제어, 파티클 시스템 제어 등의 명령 함수가 있다. 또한 가시도(visibility), 색상값, 재질값 등과 같이 비주기적 객체 속성에 대한 명령 함수도 공유 함수에 포함된다. Shared functions include command functions such as changing navigation, simulation control, animation control, and particle system control. Shared functions also include command functions for aperiodic object properties, such as visibility, color values, and material values.

마스터 PC(10)에 특정 이벤트를 처리하는 함수가 호출될 경우, 마스터 PC(10) 및 슬레이브 PC(20)에서 동일한 함수가 호출되어야 한다. 마스터 PC(10)는 슬레이브 PC(20)로 전달하는 로직이 추가적으로 필요하므로 일관된 프로그램 작성과 함수 호출에 어려움이 있다. 미리 정의된 함수의 이름과 함수 포인터를 연결하면 함수 이름의 전달로 대체되는 인터페이스를 이용할 수 있다. When a function for processing a specific event is called on the master PC 10, the same function must be called on the master PC 10 and the slave PC 20. Since the master PC 10 needs additional logic to be transferred to the slave PC 20, there is a difficulty in consistent program writing and function call. By concatenating the name of a predefined function with the function pointer, you can use an interface that is replaced by the passing of the function name.

공유 함수 블록에는 미리 정의된 공유 함수의 이름 및, 이에 대응하는 공유 함수를 실행시킬 수 있는 함수 포인터를 포함하는데, 공유 함수 이름을 키(key)라 하고 함수 포인터를 킷값(key value)이라 한다. The shared function block includes a name of a predefined shared function and a function pointer capable of executing the corresponding shared function. The shared function name is called a key and the function pointer is called a key value.

마스터 PC(10)는 복수의 공유 함수 블록(160)을 지시하는 공유 함수 맵(170)을 구성하고, 슬레이브 PC(20)는 마스터 PC(10)에 대응하는 복수의 공유 함수 블록(260)을 지시하는 공유 함수 맵(270)을 구성한다. The master PC 10 constructs a shared function map 170 indicating the plurality of shared function blocks 160, and the slave PC 20 generates a plurality of shared function blocks 260 corresponding to the master PC 10. A shared function map 270 is constructed.

마스터 PC(10)는 특정 이벤트를 처리하는 공유 함수가 호출되면 공유 함수 맵(170)에서 해당 공유 함수의 키를 찾아 네트워크를 통하여 전송한다. 슬레이브 PC(10)는 공유 함수 맵(270)에서 수신된 공유 함수의 키에 대응하는 킷값을 참조하여 특정 이벤트를 처리하는 공유 함수를 호출한다. 즉, 마스터 PC(10)와 슬레이브 PC(20)는 간헐적인 동기화가 필요한 명령에 대해 공유 함수의 키를 전송하여 동기화를 수행할 수 있다. 또한, 마스터 PC(10) 및 슬레이브 PC(20)에 마련되는 공유 함수 맵(170, 270)을 이용하여 함수 명령을 일관되게 관리할 수 있다.When the shared function for processing a specific event is called, the master PC 10 finds a key of the shared function in the shared function map 170 and transmits it through the network. The slave PC 10 calls a shared function that processes a specific event by referring to a kit value corresponding to the key of the shared function received from the shared function map 270. That is, the master PC 10 and the slave PC 20 may perform synchronization by transmitting a key of a shared function for a command requiring intermittent synchronization. In addition, the function command may be managed consistently using the shared function maps 170 and 270 provided in the master PC 10 and the slave PC 20.

도 6은 본 발명의 일 실시예에 따른 마스터-슬레이브 간의 통신을 위한 패킷 구조를 나타내는 블록도이다.6 is a block diagram illustrating a packet structure for communication between a master and a slave according to an embodiment of the present invention.

도 6을 참조하면, 마스터 PC(10)의 상태 변화 정보는 스트리밍 방식 또는 커맨드 방식에 따라 적절한 데이터 패킷으로 구성되어 슬레이브 PC(20)로 전송된다. Referring to FIG. 6, the state change information of the master PC 10 is configured as an appropriate data packet according to a streaming method or a command method and transmitted to the slave PC 20.

스트리밍 방식, 즉 공유 객체 리스트를 이용한 동기화에서 데이터 패킷은 단패킷(short packet) 또는 장패킷(long packet)의 형태로 구성될 수 있다. 단패킷은 간단한 파라미터 정보의 전송이 필요한 공유 객체에 대하여 적용된다. 장패킷은 3차원 위치와 방향을 포함하는 다수의 데이터 전송이 필요한 공유 객체에 대하여 적용된다. 예를 들어, 시간 속성을 가지는 애니메이션, 어플리케이션 특정 속성을 가지는 파라미터 등과 같이 단일 속성을 가지는 공유 객체는 단패킷을 이용하여 전송될 수 있다. 그리고 카메라, 장면노드, 조명과 같이 다수의 속성을 가지는 공유 객체는 장패킷을 이용하여 전송될 수 있다.In a streaming scheme, that is, synchronization using a shared object list, a data packet may be configured in the form of a short packet or a long packet. Short packets are applied to shared objects that require simple parameter information transfer. Long packets are applied to shared objects that require multiple data transfers, including three-dimensional positions and orientations. For example, a shared object having a single property, such as an animation having a time property and a parameter having an application specific property, may be transmitted using a short packet. In addition, a shared object having a plurality of attributes such as a camera, a scene node, and a light may be transmitted using a long packet.

단패킷은 공유 객체 리스트를 참조할 수 있는 객체 ID와 공유 객체의 상태정보를 표현하는 정수값(integer value) 또는 하나 이상의 실수값(float value)을 포함한다. 단패킷에서 2 비트의 객체 ID, 4 비트의 정수값 및 4 비트의 실수값으로 구성될 수 있다. 장패킷은 객체 ID와 공유 객체의 상태정보를 표현하는 다수의 실수값을 포함할 수 있다. 장패킷은 2 비트의 객체 ID와 8개의 4 비트 정수값으로 구성될 수 있다. 단패킷과 장패킷에 포함되는 객체 ID, 정수값, 실수값의 비트수는 예시에 불과하며, 타일 디스플레이 시스템에서 사용하는 그래픽스 프로그램의 공유 객체의 속성에 따라 다양한 비트수로 정해질 수 있다.The short packet includes an object ID capable of referring to the shared object list and an integer value or one or more float values representing state information of the shared object. In a short packet, it may consist of a 2-bit object ID, a 4-bit integer value, and a 4-bit real value. The long packet may include a plurality of real values representing the object ID and the state information of the shared object. The long packet may consist of a 2-bit object ID and eight 4-bit integer values. The number of bits of the object ID, integer value, and real number included in the short packet and the long packet is only an example, and may be determined by various bits depending on the property of the shared object of the graphics program used in the tile display system.

커맨드 방식, 즉 공유 함수 맵을 이용한 동기화에서 데이터 패킷은 문자열 패킷(string packet)의 형태로 구성될 수 있다. 문자열 패킷은 함수 이름을 나타내는 문자열과 함수 파라미터를 표현하는 정수값 및 실수값을 포함한다.문자열 패킷은 32 비트의 함수 이름, 4 비트의 정수값 및 4 비트의 실수값으로 구성될 수 있다. 문자열 패킷에 포함되는 함수 이름, 정수값 및 실수값의 비트수는 예시에 불과하며, 타일 디스플레이 시스템에서 사용하는 그래픽스 프로그램에 따라 다양한 비트수로 정해질 수 있다. In the command method, that is, synchronization using a shared function map, a data packet may be configured in the form of a string packet. The string packet contains a string representing a function name and an integer value and a real value representing a function parameter. The string packet may consist of a 32-bit function name, a 4-bit integer value, and a 4-bit real value. The number of bits of a function name, an integer value, and a real value included in a string packet is merely an example, and may be determined by various bits according to a graphics program used in a tile display system.

마스터 PC(10)에서 슬레이브 PC(20)로 전송되는 데이터 구조를 모든 상태변화의 전달방식과 객체의 형태를 고려한 최대 크기의 단일 패킷으로 설계하는 경우에는 불필요한 데이터가 지속적으로 전송되어 네트워크 자원의 낭비를 초래할 수 있다. 또한, 모든 객체에 대해 각각의 데이터 구조를 설계하는 경우에는 프로그램의 복잡도를 증가시킬 수 있다. In the case of designing the data structure transmitted from the master PC 10 to the slave PC 20 as a single packet of the maximum size in consideration of the transfer mode of all state changes and the shape of the object, unnecessary data is continuously transmitted to waste network resources. May result. In addition, designing individual data structures for all objects can increase the complexity of the program.

제안하는 방법과 같이, 스트리밍 방식에서 단패킷과 장패킷을 이용하고 커맨드 방식에서 문자열 패킷을 이용하면, 프로그램의 복잡도를 낮추고 불필요한 네트워크 자원의 낭비를 줄일 수 있다.Like the proposed method, using short packet and long packet in streaming method and string packet in command method can reduce program complexity and unnecessary waste of network resources.

한편, 마스터 PC(10)에서 슬레이브 PC(20)로의 데이터 전송은 사용자 데이터그램 프로토콜(user datagram protocol, UDP)을 이용할 수 있다. 일반적으로 PC 클러스터는 IP(internet protocol) 기반의 소켓을 이용하여 통신을 수행하는데, TCP(transmission control protocol)는 IP 기반의 흐름을 제어하여 신뢰성 있는 통신을 수행할 수 있으나 불필요한 흐름 제어로 자원 낭비를 초래할 수 있다. 그러나 UDP는 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜로서 마스터-슬레이브 기반의 타일 디스플레이 시스템의 장면 구성요소의 동기화 및 스왑 버퍼 명령어의 동기화에 더욱 효율적이다. 또한, 마스터 PC(10)에서 슬레이브 PC(20)로의 데이터 전송은 소켓 통신을 이용하여 마스터 PC(10)에서 각 슬레이브 PC(20)로 일일이 데이터를 전송하는 것보다 라우터를 통한 하드웨어적 패킷 복사가 가능한 브로드캐스팅 또는 멀티캐스팅 전송 방식이 효율적이다.Meanwhile, data transmission from the master PC 10 to the slave PC 20 may use a user datagram protocol (UDP). In general, a PC cluster performs communication using an IP (internet protocol) based socket. A TCP (transmission control protocol) can perform reliable communication by controlling an IP based flow, but wastes resources by unnecessary flow control. Can cause. However, UDP is a one-sided communication protocol that is more efficient in synchronizing scene components and synchronization of swap buffer commands in a master-slave based tile display system. In addition, the data transfer from the master PC 10 to the slave PC 20 is hardware packet copy through the router than the data transfer from the master PC 10 to each slave PC 20 by using socket communication. Possible broadcasting or multicasting transmission schemes are efficient.

지금까지 참조한 도면과 기재된 발명의 상세한 설명은 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. It is to be understood that both the foregoing general description and the following detailed description of the present invention are illustrative and explanatory only and are intended to be illustrative of the invention and are not to be construed as limiting the scope of the invention as defined by the appended claims. It is not. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

Claims (15)

제1 디스플레이 장치;
상기 제1 디스플레이 장치와 다중 어레이 방식으로 설치되어 타일 디스플레이를 이루는 제2 디스플레이 장치;
상기 제1 디스플레이 장치와 연결되는 마스터 PC(personal computer); 및
상기 마스터 PC와 네트워크를 통하여 연결되고 상기 제2 디스플레이 장치와 연결되는 슬레이브 PC를 포함하고,
상기 마스터 PC 및 상기 슬레이브 PC 각각은 지속적인 동기화가 필요한 동적 장면 구성요소인 동적 객체의 속성을 저장하고 실제 동적 객체를 참조할 수 있는 공유 객체 블록, 및 상기 공유 객체 블록의 배열인 공유 객체 리스트를 구성하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
A first display device;
A second display device installed in a multiple array manner with the first display device to form a tile display;
A master PC connected to the first display device; And
A slave PC connected with the master PC through a network and connected with the second display device;
Each of the master PC and the slave PC constitutes a shared object block capable of storing a property of a dynamic object that is a dynamic scene component requiring continuous synchronization and referencing an actual dynamic object, and a shared object list that is an array of the shared object blocks. Master-slave based tile display system.
제1 항에 있어서,
상기 공유 객체 블록은 상기 실제 동적 객체를 참조할 수 있는 객체 포인터를 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method according to claim 1,
And the shared object block comprises an object pointer capable of referring to the actual dynamic object.
제2 항에 있어서,
상기 공유 객체 블록은 상기 동적 장면 구성요소의 활성화 여부, 동기화 횟수를 나타내는 속성값을 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method of claim 2,
The shared object block is a master-slave-based tile display system including an attribute value indicating whether the dynamic scene component is activated, the number of synchronization.
제1 항에 있어서,
상기 네트워크를 통하여 상기 공유 객체 리스트를 참조하는 객체 ID(identifier), 및 상기 공유 객체의 상태정보를 표현하는 정수값 또는 실수값을 포함하는 데이터 패킷이 전송되는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method according to claim 1,
And a data packet including an object identifier (identifier) referring to the shared object list and an integer value or a real value representing state information of the shared object through the network.
제4 항에 있어서,
상기 데이터 패킷은 간단한 파라미터 정보의 전송이 필요한 공유 객체의 전송을 위한 단패킷 및 다수의 속성을 가지는 공유 객체의 전송을 위한 장패킷을 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method of claim 4, wherein
The data packet is a master-slave-based tile display system comprising a short packet for the transmission of a shared object requiring the transmission of simple parameter information and a long packet for the transmission of a shared object having a plurality of attributes.
제1 항에 있어서,
상기 마스터 PC 및 상기 슬레이브 PC는 간헐적인 동기화가 필요한 명령에 대한 공유 함수와 상기 공유 함수를 실행시키는 함수 포인터를 포함하는 공유 함수 블록을 서로 대응하여 구성하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method according to claim 1,
And the master PC and the slave PC correspond to each other to form a shared function block including a shared function for an instruction requiring intermittent synchronization and a function pointer for executing the shared function.
제6 항에 있어서,
상기 마스터 PC 및 상기 슬레이브 PC는 상기 공유 함수 블록을 지시하는 공유 함수 맵을 서로 대응하여 구성하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method of claim 6,
And the master PC and the slave PC configure a shared function map indicating the shared function block in correspondence with each other.
제1 항에 있어서,
상기 네트워크는 UDP(user datagram protocol)를 이용하는 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method according to claim 1,
The network is a master-slave based tile display system using a user datagram protocol (UDP).
제1 항에 있어서,
상기 마스터 PC에서 상기 슬레이브 PC로의 데이터 전송은 브로드캐스팅 또는 멀티캐스팅 전송 방식인 마스터-슬레이브 기반의 타일 디스플레이 시스템.
The method according to claim 1,
The master-slave-based tile display system in which data transmission from the master PC to the slave PC is a broadcasting or multicasting transmission method.
마스터 노드 및 슬레이브 노드가 지속적인 동기화가 필요한 동적 장면 구성요소에 대해 서로 대응하는 공유 객체 블록 및 공유 객체 블록 리스트를 구성하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법에 있어서,
입력 장치로부터 수신되는 입력 신호에 따라 상기 마스터 노드에서 시뮬레이션 로직을 실행하는 시뮬레이션 갱신 단계;
상기 마스터 노드에서 상기 시뮬레이션 갱신 과정에 따른 시뮬레이션 갱신 결과가 반영된 장면을 구성하고, 갱신된 장면 구성요소를 상기 마스터 노드의 공유 객체 블록에 반영하는 장면 갱신 단계; 및
상기 마스터 노드에서 자신의 공유 객체 리스트에 포함된 공유 객체 블록을 순회하면서 각 공유 객체 블록의 형식에 따라 정의된 속성값을 상기 슬레이브 노드로 전송하는 동기화 단계
를 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
A method for synchronizing between a master and a slave in a master-slave based tile display system in which a master node and a slave node form a list of shared object blocks and shared object blocks corresponding to each other for dynamic scene components requiring continuous synchronization,
A simulation updating step of executing simulation logic in the master node according to an input signal received from an input device;
A scene update step of constructing a scene in which the simulation update result according to the simulation update process is reflected in the master node, and reflecting the updated scene component in the shared object block of the master node; And
A synchronization step of traversing the shared object block included in its shared object list in the master node and transmitting an attribute value defined according to the format of each shared object block to the slave node;
Synchronization method between the master and slave in the master-slave-based tile display system comprising a.
제10 항에 있어서,
상기 마스터 노드와 상기 슬레이브 노드는 간헐적인 동기화가 필요한 명령에 대해 서로 대응하는 공유 함수 블록 및 공유 함수 맵을 구성하고,
상기 동기화 단계는 상기 마스터 노드에 특정 이벤트를 처리하는 함수가 호출되면 상기 공유 함수 블록에 포함되어 있는 상기 특정 이벤트를 처리하는 함수의 이름을 상기 슬레이브 노드로 전송하는 단계를 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
The method of claim 10,
The master node and the slave node configure a shared function block and a shared function map corresponding to each other for a command requiring intermittent synchronization,
The synchronizing step includes transmitting a name of a function for processing a specific event included in the shared function block to the slave node when a function for processing a specific event is called in the master node. How to synchronize between master and slave in tile display system.
제10 항에 있어서,
상기 동기화 단계는 상기 슬레이브 노드에서 상기 마스터 노드의 공유 객체 블록에 대응하는 자신의 공유 객체 블록의 속성값을 갱신하는 단계를 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
The method of claim 10,
The synchronizing step includes updating, by the slave node, an attribute value of its own shared object block corresponding to the shared object block of the master node in a master-slave-based tile display system.
제10 항에 있어서,
상기 슬레이브 노드에서 자신의 공유 객체 리스트를 확인하여 장면 구성요소를 갱신하는 슬레이브 장면 갱신 단계를 더 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
The method of claim 10,
And a slave scene updating step of updating a scene component by checking a list of shared objects of the slave node in the slave node.
제13 항에 있어서,
상기 마스터 노드 및 상기 슬레이브 노드에서 갱신된 장면 구성요소의 상태변화 정보를 렌더링 명령어로 변환하는 렌더링 단계를 더 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
The method of claim 13,
And a rendering step of converting the state change information of the scene component updated in the master node and the slave node into a rendering command.
제14 항에 있어서,
상기 마스터 노드 및 상기 슬레이브 노드에서 스왑 버퍼 명령에 따라 디스플레이 신호를 동기 출력하는 스왑 버퍼 단계를 더 포함하는 마스터-슬레이브 기반의 타일 디스플레이 시스템에서 마스터와 슬레이브 간의 동기화 방법.
The method of claim 14,
And a swap buffer step of synchronously outputting a display signal according to a swap buffer command in the master node and the slave node.
KR1020100005977A 2010-01-22 2010-01-22 Master-Slave based Tile Display System and Synchronization Method between Master-Slaves KR101068645B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100005977A KR101068645B1 (en) 2010-01-22 2010-01-22 Master-Slave based Tile Display System and Synchronization Method between Master-Slaves

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100005977A KR101068645B1 (en) 2010-01-22 2010-01-22 Master-Slave based Tile Display System and Synchronization Method between Master-Slaves

Publications (2)

Publication Number Publication Date
KR20110086314A KR20110086314A (en) 2011-07-28
KR101068645B1 true KR101068645B1 (en) 2011-09-28

Family

ID=44922740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100005977A KR101068645B1 (en) 2010-01-22 2010-01-22 Master-Slave based Tile Display System and Synchronization Method between Master-Slaves

Country Status (1)

Country Link
KR (1) KR101068645B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101823033B1 (en) 2017-01-26 2018-03-14 씨제이씨지브이 주식회사 An improved system management system and method therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070061254A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 System and method of controling multi-projection based on pc cluster
KR20080110083A (en) * 2007-06-14 2008-12-18 서강대학교산학협력단 Tiled-display system and synchronization method in the system
KR20090048207A (en) * 2007-11-09 2009-05-13 광주과학기술원 System and method for integrating multiple display devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070061254A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 System and method of controling multi-projection based on pc cluster
KR20080110083A (en) * 2007-06-14 2008-12-18 서강대학교산학협력단 Tiled-display system and synchronization method in the system
KR20090048207A (en) * 2007-11-09 2009-05-13 광주과학기술원 System and method for integrating multiple display devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2008.04)

Also Published As

Publication number Publication date
KR20110086314A (en) 2011-07-28

Similar Documents

Publication Publication Date Title
US7321367B2 (en) Arrangement and method for spatial visualization
DeFanti et al. The OptIPortal, a scalable visualization, storage, and computing interface device for the OptiPuter
US20060028479A1 (en) Architecture for rendering graphics on output devices over diverse connections
CN103106679B (en) Distributed 3D hyperchannel rendering intent, system and platform
CN103324453B (en) Display
Pietriga et al. Rapid development of user interfaces on cluster-driven wall displays with jBricks
CN1441363A (en) Distributive resource structure and system
WO2007020406A2 (en) Display system, module and method
KR102121272B1 (en) Multi-control display system and multi-control display method
KR101068645B1 (en) Master-Slave based Tile Display System and Synchronization Method between Master-Slaves
Park et al. NAVER: Networked and Augmented Virtual Environment aRchitecture; design and implementation of VR framework for Gyeongju VR Theater
CN106796735A (en) For by the system of 3D rendering multi-screen real-time synchronization
WO2002021451A1 (en) Method and system for simultaneously creating and using multiple virtual reality programs
CN110321092B (en) Synchronizing video output to a single display frequency
Whitelaw After the screen: array aesthetics and transmateriality
Sigitov et al. Adopting a game engine for large, high-resolution displays
Ferreira et al. Multiple display viewing architecture for virtual environments over heterogeneous networks
Cha et al. A distributed visualization module and its applications using tiled display wall
Jeong et al. High-performance scalable graphics architecture for high-resolution displays
KR101001762B1 (en) Tiled-display control method of a plurality of slaves, and, a Tiled-display system
Kim et al. Cluster rendering on large high-resolution multi-displays using X3DOM and HTML
Neto et al. A survey of solutions for game engines in the development of immersive applications for multi-projection systems as base for a generic solution design
Cha et al. A VR-based Tile Display System for the Distributed Visualization
CN104254017A (en) Method and system for realizing display of electronic display board through television box
Kim et al. iTILE Framework for Constructing Interactive Tiled Display Applications.

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: 20150817

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee