KR102419972B1 - Client device, server device and method for displaying image - Google Patents

Client device, server device and method for displaying image Download PDF

Info

Publication number
KR102419972B1
KR102419972B1 KR1020160025731A KR20160025731A KR102419972B1 KR 102419972 B1 KR102419972 B1 KR 102419972B1 KR 1020160025731 A KR1020160025731 A KR 1020160025731A KR 20160025731 A KR20160025731 A KR 20160025731A KR 102419972 B1 KR102419972 B1 KR 102419972B1
Authority
KR
South Korea
Prior art keywords
api
execution request
api execution
request
server device
Prior art date
Application number
KR1020160025731A
Other languages
Korean (ko)
Other versions
KR20170103224A (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 KR1020160025731A priority Critical patent/KR102419972B1/en
Publication of KR20170103224A publication Critical patent/KR20170103224A/en
Application granted granted Critical
Publication of KR102419972B1 publication Critical patent/KR102419972B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Generation (AREA)

Abstract

클라이언트 장치는 영상 표시를 위하여 API 실행 요청을 서버 장치로 전달한다. 상기 클라이언트 장치는 소프트웨어 실행부, 렌더링 정보 처리부 및 데이터 송수신부를 포함한다. 상기 소프트웨어 실행부는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다. 상기 렌더링 정보 처리부는 발생한 상기 API 실행 요청의 송신을 제어한다. 상기 데이터 송수신부는 상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달한다. 또한, 상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어한다.The client device transmits an API execution request to the server device for image display. The client device includes a software execution unit, a rendering information processing unit, and a data transmitting/receiving unit. The software execution unit generates the API execution request for image display. The rendering information processing unit controls transmission of the generated API execution request. The data transceiver transmits the API execution request to the server device based on the control of the rendering information processing unit. In addition, the rendering information processing unit controls to selectively transmit the API execution request to the server device.

Description

영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법 {CLIENT DEVICE, SERVER DEVICE AND METHOD FOR DISPLAYING IMAGE}Client device, server device and method for displaying video {CLIENT DEVICE, SERVER DEVICE AND METHOD FOR DISPLAYING IMAGE}

본 발명은 영상 표시에 관한 것으로, 구체적으로는 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법에 관한 것이다.The present invention relates to image display, and more particularly, to a client device for image display, a server device, and an image display method.

최근 중앙처리장치(CPU) 및 메모리 등의 하드웨어 제작 기술의 발전으로 인하여 저가의 고성능 컴퓨터가 급속도로 보급되고 있고 데스크탑 컴퓨터의 소프트웨어들은 점점 더 화려한 사용자 인터페이스와 그래픽 집중적인 작업을 수용할 수 있도록 요구되고 있다. 또한 그래픽 장치(GPU) 기술은 2D/3D, 멀티미디어와 같은 기존의 그래픽 집중적인 작업에 적용될 뿐만 아니라 웹 브라우저 렌더링, 플래시, 윈도우 운영체제까지 확대되어 적용되고 있다.Recently, with the development of hardware manufacturing technology such as central processing unit (CPU) and memory, low-cost, high-performance computers are rapidly spreading. have. In addition, graphic device (GPU) technology is not only applied to existing graphic-intensive tasks such as 2D/3D and multimedia, but also extended to web browser rendering, flash, and Windows operating system.

한편, 서버 기반의 컴퓨팅 환경은 개인용 컴퓨터 기반의 컴퓨팅 환경에서 발생하는 데이터 보안, 컴퓨터의 구입/관리 비용 등의 문제를 해결하기 위한 방안이다. 서버 기반 컴퓨팅 환경을 지원하는 기술로는 Citrix의 XenDesktop, VMWare의 VDI 그리고 Microsoft의 RDP(Remote Desktop Protocol)을 기반한 터미널 서비스 등이 있다. 또한 의학, 생물 정보학, 복잡한 구조의 3D 모델과 같은 보안상 중요한 데이터에 대하여도 서버 기반 컴퓨팅 기법을 사용하고 있다. Meanwhile, the server-based computing environment is a method for solving problems such as data security and computer purchase/management costs that occur in a personal computer-based computing environment. Technologies that support server-based computing environments include Citrix's XenDesktop, VMWare's VDI, and Microsoft's RDP (Remote Desktop Protocol)-based Terminal Services. Server-based computing techniques are also being used for security-critical data such as medicine, bioinformatics, and 3D models of complex structures.

하지만 이러한 서버 기반 컴퓨팅은 서버 장치에서 실제적인 연산 처리를 수행하고, 클라이언트 컴퓨터는 단순히 터미널 역할만을 수행함으로써 클라이언트 수가 늘어날수록 서버의 부하가 커진다. 한편 서버에서 연산 실행한 결과 데이터를 클라이언트에 전송하는 방식을 사용함으로써 3D 렌더링과 같은 고성능 그래픽 작업을 처리하는 경우, 송수신되는 데이터가 상대적으로 고용량인 특징을 갖는다. 따라서 서버 부하에 따른 서비스 한계를 가질 수 있다. 그리고 이는 막대한 서버 구입 비용을 발생시키고, 느린 서비스 성능을 제공하게 된다는 문제점이 있었다.However, in such server-based computing, the server device performs actual computational processing, and the client computer simply plays a terminal role, so that as the number of clients increases, the load on the server increases. On the other hand, in the case of processing high-performance graphic work such as 3D rendering by using a method of transmitting the result data of the operation execution in the server to the client, the data transmitted and received has a relatively high capacity. Therefore, it may have a service limit according to the server load. And this incurs a huge server purchase cost and has a problem of providing slow service performance.

본 발명은 클라이언트 장치가 필요로 하는 그래픽 처리를 서버 장치에서 수행하는 경우, 송수신되는 데이터량을 감경하고 한정된 서버 자원을 효율적으로 이용하는 것을 목적으로 한다.An object of the present invention is to reduce the amount of transmitted/received data and efficiently use limited server resources when a server device performs graphic processing required by a client device.

본 발명의 일 실시예에 따른 클라이언트 장치는 영상 표시를 위하여 API 실행 요청을 서버 장치로 전달한다. 상기 클라이언트 장치는 소프트웨어 실행부, 렌더링 정보 처리부 및 데이터 송수신부를 포함한다. 상기 소프트웨어 실행부는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다. 상기 렌더링 정보 처리부는 발생한 상기 API 실행 요청의 송신을 제어한다. 상기 데이터 송수신부는 상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달한다. 또한, 상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어한다.A client device according to an embodiment of the present invention transmits an API execution request to a server device for displaying an image. The client device includes a software execution unit, a rendering information processing unit, and a data transmitting/receiving unit. The software execution unit generates the API execution request for image display. The rendering information processing unit controls transmission of the generated API execution request. The data transceiver transmits the API execution request to the server device based on the control of the rendering information processing unit. In addition, the rendering information processing unit controls to selectively transmit the API execution request to the server device.

일 실시예에서, 상기 렌더링 정보 처리부는 API 요청 제어부 및 API 요청 저장부를 포함할 수 있다. 상기 API 요청 제어부는 상기 API 실행 요청의 처리를 결정할 수 있다. 상기 API 요청 저장부는 상기 API 실행 요청을 선택적으로 저장할 수 있다.In an embodiment, the rendering information processing unit may include an API request control unit and an API request storage unit. The API request control unit may determine processing of the API execution request. The API request storage unit may selectively store the API execution request.

일 실시예에서, 상기 API 요청 제어부는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 상기 서버 장치로 전달하도록 상기 데이터 송수신부를 제어할 수 있다.In an embodiment, the API request control unit analyzes the API execution request, and when the API execution request requires immediate execution, the API request control unit may control the data transceiver to transmit the API execution request to the server device .

일 실시예에서, 상기 API 요청 제어부는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우, 상기 API 실행 요청을 상기 API 요청 저장부로 전달할 수 있다. 이 경우, 상기 API 요청 저장부는 전달받은 상기 API 실행 요청을 임시 저장할 수 있다.In an embodiment, the API request control unit may analyze the API execution request and, when the API execution request does not require immediate execution, transfer the API execution request to the API request storage unit. In this case, the API request storage unit may temporarily store the received API execution request.

일 실시예에서, 상기 API 요청 제어부는, 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 경우, 상기 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들 및 상기 화면 업데이트 API 실행 요청을 상기 서버 장치로 전달하도록 상기 API 요청 저장부 및 상기 데이터 송수신부를 제어할 수 있다.In an embodiment, the API request control unit analyzes the API execution request, and when the API execution request is a screen update API execution request, at least one API execution request stored in the API request storage unit and the The API request storage unit and the data transceiver may be controlled to transmit a screen update API execution request to the server device.

일 실시예에서, 상기 데이터 송수신부는 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 상기 서버 장치로부터 수신할 수 있다. 이 경우 상기 소프트웨어 실행부는 상기 수신한 렌더링 결과 데이터에 기초하여 영상을 처리할 수 있다.In an embodiment, the data transceiver may receive rendering result data corresponding to the API execution request from the server device. In this case, the software execution unit may process the image based on the received rendering result data.

본 발명의 다른 실시예에 따른 서버 장치는 영상 표시를 위하여 API 실행 요청을 처리한다. 상기 서버 장치는 데이터 송수신부, 제어부 및 API 실행부를 포함한다. 상기 데이터 송수신부는 클라이언트 장치로부터 API 실행 요청을 수신한다. 상기 제어부는 수신한 상기 API 실행 요청의 처리를 제어한다. 상기 API 실행부는 상기 제어부의 제어에 기초하여, 상기 API 실행 요청을 처리한다. 상기 제어부는 상기 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정한다.A server device according to another embodiment of the present invention processes an API execution request to display an image. The server device includes a data transmission/reception unit, a control unit, and an API execution unit. The data transceiver receives an API execution request from a client device. The control unit controls processing of the received API execution request. The API execution unit processes the API execution request based on the control of the controller. The control unit determines whether to process the API execution request based on whether the pattern executed by the received API execution request is the first executed pattern.

일 실시예에서, 상기 제어부는 패턴 저장부 및 패턴 판별부를 포함할 수 있다. 상기 패턴 저장부는 상기 API 실행부에서 실행된 패턴들을 저장할 수 있다. 상기 패턴 판별부는 상기 수신한 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있는 패턴인지 여부를 판별할 수 있다.In an embodiment, the control unit may include a pattern storage unit and a pattern determining unit. The pattern storage unit may store patterns executed by the API execution unit. The pattern determining unit may determine whether the pattern executed by the received API execution request is a pattern stored in the pattern storage unit.

일 실시예에서, 상기 제어부는 상기 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있는 패턴인 경우, 상기 저장되어 있는 패턴을 상기 렌더링 결과 데이터로서 상기 클라이언트 장치에 전송하도록 상기 데이터 송수신부를 제어할 수 있다.In an embodiment, when the pattern executed by the API execution request is a pattern stored in the pattern storage unit, the control unit transmits and receives the data to transmit the stored pattern as the rendering result data to the client device You can control wealth.

일 실시예에서, 상기 제어부는, 상기 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있지 않은 패턴인 경우, 상기 API 실행 요청을 처리하도록 상기 API 실행부를 제어할 수 있다.In an embodiment, when the pattern executed by the API execution request is a pattern not stored in the pattern storage unit, the controller may control the API execution unit to process the API execution request.

일 실시예에서, 상기 API 실행부는 상기 API 실행 요청을 처리한 결과 생성된 패턴을 상기 데이터 송수신부로 전달할 수 있다. 이 경우 상기 데이터 송수신부는 상기 전달받은 패턴을 상기 렌더링 결과 데이터로서 상기 클라이언트 장치에 전송할 수 있다.In an embodiment, the API execution unit may transmit a pattern generated as a result of processing the API execution request to the data transceiver. In this case, the data transceiver may transmit the received pattern as the rendering result data to the client device.

일 실시예에서, 상기 API 실행부는 상기 API 실행 요청을 처리한 결과 생성된 패턴을 상기 제어부로 전달할 수 있다. 이 경우, 상기 제어부는 상기 전달받은 패턴을 상기 패턴 저장부에 저장할 수 있다.In an embodiment, the API execution unit may transmit a pattern generated as a result of processing the API execution request to the control unit. In this case, the control unit may store the received pattern in the pattern storage unit.

본 발명의 또다른 실시예에 따른 영상 표시 방법은 클라이언트 장치에 의해 수행된다. 상기 영상 표시 방법에 의하면, API 실행 요청을 발생시키고, 상기 API 실행 요청의 특성을 판별하며, 상기 판별 결과에 따라 상기 API 실행 요청의 처리를 결정한다.An image display method according to another embodiment of the present invention is performed by a client device. According to the video display method, an API execution request is generated, a characteristic of the API execution request is determined, and the processing of the API execution request is determined according to the determination result.

일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요한 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는 상기 API 실행 요청을 서버 장치로 전달할 수 있따.In one embodiment, when it is determined that the API execution request is an API execution request that requires immediate execution in the step of determining the characteristics of the API execution request, determining the processing of the API execution request includes the API execution request It can be forwarded to the server device.

일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요하지 않은 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 상기 클라이언트 장치 내 API 요청 저장부에 임시 저장할 수 있다.In one embodiment, when it is determined that the API execution request is an API execution request that does not require immediate execution in the step of determining the characteristics of the API execution request, determining the processing of the API execution request includes: The execution request may be temporarily stored in an API request storage unit in the client device.

일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는 상기 클라이언트 장치 내 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청 및 상기 화면 업데이트 실행 요청을 서버 장치로 전달할 수 있다.In one embodiment, when it is determined that the API execution request is a screen update API execution request in the step of determining the characteristics of the API execution request, the determining of the processing of the API execution request stores the API request in the client device At least one API execution request and the screen update execution request stored in the unit may be transmitted to the server device.

일 실시예에서, 상기 영상 표시 방법은 서버 장치로부터 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 수신하는 단계 및 상기 렌더링 결과 데이터에 기초하여 영상을 처리하는 단계를 더 포함할 수 있다.In an embodiment, the image display method may further include receiving rendering result data corresponding to the API execution request from a server device and processing the image based on the rendering result data.

본 발명의 또다른 실시예에 따른 영상 표시 방법은 서버 장치에 의해 수행된다. 상기 영상 표시 방법에 의하면, API 실행 요청을 수신하고, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하며, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리한다.An image display method according to another embodiment of the present invention is performed by a server device. According to the video display method, an API execution request is received, it is determined whether the pattern executed by the API execution request is the first executed pattern, and the API execution request is processed based on the determination result.

일 실시예에서, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하는 단계에서는, 상기 서버 장치 내 패턴 저장부에서 상기 패턴을 검색할 수 있다. 검색 결과 상기 패턴 저장부에 상기 패턴이 저장되어 있는 경우, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하는 단계는, 상기 검색된 패턴을 렌더링 결과 데이터로서 상기 클라이언트 장치로 전달하는 단계를 포함할 수 있다.In an embodiment, in the step of determining whether the pattern executed by the API execution request is the first executed pattern, the pattern may be retrieved from a pattern storage unit in the server device. When the pattern is stored in the pattern storage unit as a result of a search, processing the API execution request based on the determination result may include transmitting the searched pattern to the client device as rendering result data. have.

일 실시예에서, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하는 단계에서는, 상기 서버 장치 내 패턴 저장부에서 상기 패턴을 검색할 수 있다. 검색 결과 상기 패턴 저장부에 상기 패턴이 저장되어 있지 않은 경우, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하는 단계는, 상기 API 실행 요청을 처리하여 대응하는 패턴을 생성하는 단계, 상기 생성된 패턴을 렌더링 결과 데이터로서 상기 클라이언트 장치로 전달하는 단계 및 상기 생성된 패턴을 상기 패턴 저장부에 저장하는 단계를 포함할 수 있다.In an embodiment, in the step of determining whether the pattern executed by the API execution request is the first executed pattern, the pattern may be retrieved from a pattern storage unit in the server device. When the pattern is not stored in the pattern storage unit as a result of a search, the processing of the API execution request based on the determination result may include: processing the API execution request to generate a corresponding pattern; It may include transmitting the pattern as rendering result data to the client device and storing the generated pattern in the pattern storage unit.

본 발명에 의하면, 서버 장치에서 가상 그래픽 API를 수행하는 그래픽 시스템의 동작 속도가 향상된다. 또한 클라이언트 장치가 서버 장치의 그래픽 처리 자원을 유연하게 이용할 수 있다.Advantageous Effects of Invention According to the present invention, the operating speed of a graphics system performing a virtual graphics API in a server device is improved. It also allows the client device to flexibly use the graphics processing resources of the server device.

도 1은 본 발명의 일 실시예에 따른 클라이언트 장치와 서버 장치를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 장치의 렌더링 정보 처리부를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 서버 장치의 제어부를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따라, 클라이언트 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다.
도 5는 본 발명의 일 실시예에 따라, 서버 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다.
1 is a block diagram illustrating a client device and a server device according to an embodiment of the present invention.
2 is a block diagram illustrating a rendering information processing unit of a client device according to an embodiment of the present invention.
3 is a block diagram illustrating a control unit of a server device according to an embodiment of the present invention.
4 is a flowchart illustrating an image display method performed by a client device according to an embodiment of the present invention.
5 is a flowchart illustrating an image display method performed in a server device according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. At this time, it should be noted that in the accompanying drawings, the same components are denoted by the same reference numerals as much as possible. It should be noted that in the following description, only parts necessary for understanding the operation according to the present invention are described, and descriptions of other parts will be omitted so as not to obscure the gist of the present invention. Also, the present invention is not limited to the embodiments described herein and may be embodied in other forms. However, the embodiments described herein are provided to explain in detail enough to easily implement the technical idea of the present invention to those of ordinary skill in the art to which the present invention pertains.

도 1은 본 발명의 일 실시예에 따른 클라이언트 장치와 서버 장치를 나타내는 블록도이다.1 is a block diagram illustrating a client device and a server device according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 클라이언트 장치(100) 및 서버 장치(150)가 도시되어 있다. 클라이언트 장치(100)는 소프트웨어 실행에 따른 가상 그래픽 API를 서버 장치(150)로 전달한다. 상기 가상 그래픽 API는 그래픽 처리를 위한 API 실행 요청을 의미할 수 있다. 서버 장치(150)는 수신한 상기 가상 그래픽 API에 대응하는 렌더링 결과 데이터를 클라이언트 장치(100)로 전달한다.Referring to FIG. 1 , a client device 100 and a server device 150 are illustrated according to an embodiment of the present invention. The client device 100 transmits a virtual graphic API according to software execution to the server device 150 . The virtual graphic API may mean an API execution request for graphic processing. The server device 150 transmits the received rendering result data corresponding to the virtual graphic API to the client device 100 .

서버 장치(150)는 하이퍼바이저(Hypervisor)로서 동작할 수 있다. 하이퍼바이저느 가상 머신 모니터(Virtual Machine Monitor)라고도 하며 하나의 컴퓨터 시스템에서 여러 개의 운영 체제(OS)를 가동할 수 있게 하는 가상화 엔진이다. 하이퍼바이저의 구동 방식에는, 물리적인 컴퓨터 하드웨어 상에서 하이퍼바이저를 직접 동작시키는 네이티브(native) 또는 베어메탈(bare-metal, type-1)방식이 있고, 호스트 운영체제 상에 하이퍼바이저를 설치하고 그 위에서 게스트 운영체제를 동작시키는 호스트(hosted, type-2) 방식이 있다. 또 다른 분류인 반가상화와 전가상화 방법은 하이퍼바이저 위에 올라가는 운영 체제의 수정여부에 따라 구분될 수 있다.The server device 150 may operate as a hypervisor. Hypervisor, also called Virtual Machine Monitor, is a virtualization engine that enables multiple operating systems (OS) to run on one computer system. As a driving method of the hypervisor, there is a native or bare-metal (type-1) method in which the hypervisor is directly operated on physical computer hardware, and the hypervisor is installed on the host operating system and a guest is installed thereon. There is a host (hosted, type-2) method that operates the operating system. Para-virtualization and full-virtualization methods, which are another classification, can be divided according to whether the operating system on the hypervisor is modified or not.

본 발명에 따른 영상 처리 방법은 GPU 가상화와 관련된다. GPU 가상화와 관련하여, 입출력 장치 가상화 확장(I/O Pass Through)이 적용될 수 있다. 입출력 장치 가상화 확장은 하드웨어 디바이스 자체가 다수의 가상화 채널로 구성되는 것을 의미할 수 있다. 따라서 게스트, 즉 클라이언트 장치마다 가상화 채널을 하나씩 이용할 수 있다. 이에 따라 서버 장치를 구성하는 하나의 하드웨어를 복수의 클라이언트 장치가 이용할 수 있다. 또한 하이퍼바이저의 간섭 없이 직접 서버 장치에 접근하는 것이 가능하므로 가상화가 없는 환경과 동일한 성능을 보여준다. 위와 같은 입출력 장치 가상화 확장 기술은 주로 클라우드 서버용으로 사용된다.The image processing method according to the present invention is related to GPU virtualization. In relation to GPU virtualization, I/O device virtualization extension (I/O Pass Through) may be applied. I/O device virtualization extension may mean that the hardware device itself is configured with a plurality of virtualization channels. Therefore, one virtualization channel can be used for each guest, that is, a client device. Accordingly, a plurality of client devices can use one piece of hardware constituting the server device. In addition, it is possible to directly access the server device without hypervisor interference, so it shows the same performance as an environment without virtualization. The above input/output device virtualization extension technology is mainly used for cloud servers.

도 1에 도시된 클라이언트 장치(100) 및 서버 장치(150)는 원격 API (API Remoting) 기술에 의해 동작할 수 있다. 원격 API 기술은 클라이언트 장치(100)에서 요청한 API를 원격에 위치한 서버 장치(150)에서 실행하는 기술을 의미할 수 있다. 클라이언트 장치(100)에서 구동되는 응용 프로그램은 API 변경없이 그대로 사용할 수 있으며, API가 호출되면 클라이언트 장치(100) 내 원격 API 처리 모듈(미도시)이 가로채서 서버 장치(150)로 전달하거나, API 자체가 전달 채널을 통해 서버 장치(150)로 전송될 수 있다. 도 1에 도시된 가상 그래픽 API는 상술한 API를 의미할 수 있다. 서버 장치(150)로 전달된 API는 서버 장치(150) 내에서 실행된다. GPU 가상화를 위하여본 방식이 그래픽 라이브러리나 디바이스 드라이버에 적용될 수 있다.The client device 100 and the server device 150 illustrated in FIG. 1 may operate using a remote API (API Remoting) technology. The remote API technology may refer to a technology for executing an API requested by the client device 100 in the server device 150 located remotely. The application program running in the client device 100 can be used as it is without changing the API, and when the API is called, the remote API processing module (not shown) in the client device 100 intercepts it and delivers it to the server device 150, or It may itself be transmitted to the server device 150 through a delivery channel. The virtual graphic API shown in FIG. 1 may refer to the above-described API. The API transmitted to the server device 150 is executed within the server device 150 . For GPU virtualization, this method can be applied to a graphics library or a device driver.

한편, 원격 API 방식을 수행하기 위해, API를 요청하는 클라이언트 장치(100)를 프론트-앤드(Front-end)라고도 지칭할 수 있으며, 프론트-앤드의 요청을 받아 API를 실행하는 서버 장치(150)를 백-앤드(Back-end)라고도 지칭할 수 있다.Meanwhile, in order to perform the remote API method, the client device 100 that requests the API may also be referred to as a front-end, and the server device 150 receives the request of the front-end and executes the API. may also be referred to as a back-end.

임베디드 하이퍼바이저는 서버나 데스크탑과 달리 리소스와 실시간 성능을 고려할 필요성이 있다. 위와 같은 시스템에서는 오버헤드를 최소화하는 것이 중요하다. 원격 API 방식은 그래픽 소프트웨어 스택 또는 라이브러리의 API를 인터셉트하여 원격 처리하는 방식으로, 하이퍼콜을 이용하는 반가상화 보다 상위 레벨인 그래픽 API를 인터셉트하기 때문에 오버헤드가 상대적으로 적다. 그러나 이 방법은 프론트-앤드와 백-앤드 처리 부분을 별도로 구현할 필요가 있다. 이 방법을 이용하면 기존 OpenGL ES 라이브러리나 GPU 디바이스 드라이버가 지원되지 않는 실시간 운영체제에서도 수정된 OpenGL ES API를 간단히 추가하여 그래픽 응용 프로그램을 개발할 수 있다는 장점이 있으나, API가 매번 실행될 때마다 게스트, 즉 클라이언트 장치(100)에서 호스트, 즉 서버 장치(150)로 지속적으로 API를 전송해야 한다. 이는 전체 시스템의 비효율을 발생시킬 수 있다.Unlike servers or desktops, embedded hypervisors need to consider resources and real-time performance. In a system like the one above, it is important to minimize overhead. The remote API method is a method of remote processing by intercepting the API of the graphics software stack or library, and since it intercepts the graphics API, which is a higher level than paravirtualization using hypercall, the overhead is relatively low. However, this method needs to implement the front-end and back-end processing parts separately. This method has the advantage of being able to develop graphic applications by simply adding the modified OpenGL ES API to a real-time operating system that does not support the existing OpenGL ES library or GPU device driver. It is necessary to continuously transmit the API from the device 100 to the host, that is, the server device 150 . This may cause inefficiency of the overall system.

가상화된 그래픽 라이브러리(예: Opengl ES) 는 프론트-앤드(front-end), 즉 클라이언트 장치(100) 단의 그래픽 라이브러리 역할을 하며, 백-앤드(back-end) 단의 그래픽 자원을 활용하여 가상화된 그래픽 라이브러리로서의 동작을 수행할 수 있다. 즉, 클라이언트 장치(100) 내에서 그래픽 처리를 위한 그래픽 라이브러리를 참조하는 경우, 실제로는 서버 장치(150) 내 그래픽 라이브러리를 클라이언트 장치(100)의 그래픽 라이브러리인 것처럼 가상화하여 사용할 수 있다. 도 1에서, 데이터 송수신부(105)는 가상화된 그래픽 라이브러리의 역할을 수행할 수 있다. The virtualized graphic library (eg Opengl ES) acts as a graphic library at the front-end, that is, the client device 100, and virtualizes by utilizing graphic resources at the back-end stage. It can perform the operation as a graphic library. That is, when referring to the graphic library for graphic processing in the client device 100 , the graphic library in the server device 150 may be virtualized and used as if it were the graphic library of the client device 100 . 1 , the data transceiver 105 may serve as a virtualized graphic library.

본 발명에 따른 클라이언트 장치(100)는 API 실행 요청의 특성에 따라, 일부 API는 API 요청 저장부에 임시 저장하였다가 일시에 서버 장치(150)로 전달하게 된다. 따라서 복수의 클라이언트 장치(100)가 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우 데이터 송수신을 효율적으로 수행할 수 있다.According to the characteristics of the API execution request, the client device 100 according to the present invention temporarily stores some APIs in the API request storage unit and then transfers them to the server device 150 at one time. Accordingly, when the plurality of client devices 100 share the graphic processing resources of the server device 150 , data transmission and reception can be efficiently performed.

클라이언트 장치(100)는 소프트웨어 실행부(101), 렌더링 정보 처리부(103) 및 데이터 송수신부(105)를 포함한다. 소프트웨어 실행부(101)는 클라이언트 장치(100) 내에서 실제로 응용 프로그램 또는 응용 소프트웨어를 실행하는 구성요소일 수 있다. 응용 소프트웨어의 실행에 따른 영상 표시에 있어서, 표시하고자 하는 영상의 API가 대량의 그래픽 자원을 필요로 하고 클라이언트 장치(100)의 그래픽 자원이 상대적으로 빈약한 경우, 상기 영상의 API를 서버 장치(150)에서 수행하도록 요청할 수 있다. 이 경우 소프트웨어 실행부(101)는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다.The client device 100 includes a software execution unit 101 , a rendering information processing unit 103 , and a data transmitting/receiving unit 105 . The software execution unit 101 may be a component that actually executes an application program or application software in the client device 100 . In the image display according to the execution of application software, when the API of the image to be displayed requires a large amount of graphic resources and the graphic resources of the client device 100 are relatively poor, the API of the image is transferred to the server device 150 ) can be requested. In this case, the software execution unit 101 generates the API execution request for image display.

렌더링 정보 처리부(103)는 발생한 상기 API 실행 요청의 송신을 제어한다. 본 발명의 실시예에 따른 클라이언트 장치(150)는 API 실행 요청의 특성에 따라 송신 처리를 다르게 수행할 수 있다. 구체적으로, 렌더링 정보 처리부(103)는 API 실행 요청이 즉시 리턴값을 필요로 하는 경우, 즉 즉시 실행을 필요로 하는 경우 해당 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다.The rendering information processing unit 103 controls transmission of the generated API execution request. The client device 150 according to an embodiment of the present invention may differently perform transmission processing according to the characteristics of the API execution request. Specifically, the rendering information processing unit 103 transmits the API execution request directly to the server device 150 when the API execution request requires an immediate return value, that is, when immediate execution is required. ) can be controlled.

한편, API 실행 요청이 즉시 리턴값을 필요로 하지 않는 경우에 해당 API 실행 요청은 바로 서버 장치(150)로 전달되는 대신, 클라이언트 장치(100) 내 저장부에 임시 저장될 수 있다. 상기 저장부는 다양한 형태로 구성될 수 있으며, 예를 들어 큐(QUEUE), 버퍼(BUFFER) 등과 같은 형태로 구현될 수 있다. 상기 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들은 특정 조건 하에 한꺼번에 서버 장치(150)로 전달될 수 있다. 예를 들어, 소프트웨어 실행부에 의해 화면 업데이트 API 실행 요청이 발생한 경우, 상기 저장부에 저장되어 있는 API 실행 요청들은 더 이상의 지체없이 즉시 실행되어야 할 필요가 있다. 이 경우, 상기 저장부에 저장되어 있는 API 실행 요청들과 화면 업데이트 API 실행 요청은 서버 장치(150)로 전달될 수 있다. 이 경우, 서버 장치(150)의 API 실행부(153) 는 수신된 API 실행 요청들에 기초하여 해당 API들을 순차적으로 실행할 수 있다. 이 경우 API 실행부(153)는 가상화된 그래픽 라이브러리를 구성하는 일부로서 API를 실행할 수 있다. Meanwhile, when the API execution request does not require an immediate return value, the corresponding API execution request may be temporarily stored in the storage unit of the client device 100 instead of being directly transmitted to the server device 150 . The storage unit may be configured in various forms, for example, may be implemented in the form of a queue (QUEUE), a buffer (BUFFER), and the like. At least one API execution request stored in the storage unit may be transmitted to the server device 150 at once under a specific condition. For example, when a screen update API execution request is generated by the software execution unit, the API execution requests stored in the storage unit need to be executed immediately without further delay. In this case, the API execution requests and the screen update API execution request stored in the storage unit may be transmitted to the server device 150 . In this case, the API execution unit 153 of the server device 150 may sequentially execute the corresponding APIs based on the received API execution requests. In this case, the API execution unit 153 may execute the API as a part of the virtualized graphic library.

한편, 일 실시예에서, 렌더링 정보 처리부(103)는 API 실행 요청의 전송을 제어하는 기능을 수행하는 동시에, 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다. 다른 실시예에서, 소프트웨어 실행부(101)는 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다.On the other hand, in an embodiment, the rendering information processing unit 103 performs a function of controlling the transmission of the API execution request and, at the same time, also performs a function of controlling image display based on the rendering result data received from the server device 150 . can do. In another embodiment, the software execution unit 101 may also perform a function of controlling image display based on the rendering result data received from the server device 150 .

데이터 송수신부(105)는 렌더링 정보 처리부(103)의 제어에 따라 API 실행 요청을 서버 장치(150)로 전달한다. 본 발명에 따른 클라이언트 장치(100) 및 서버 장치(150)는 가상화에 기반하여 영상 처리를 수행하는 시스템을 구성하므로, 도 1에서 서버 장치(150)로 전달되는 API 실행 요청은 “가상 그래픽 API”로 표기되었다.The data transceiver 105 transmits the API execution request to the server device 150 under the control of the rendering information processing unit 103 . Since the client device 100 and the server device 150 according to the present invention constitute a system for performing image processing based on virtualization, the API execution request transmitted to the server device 150 in FIG. 1 is a “virtual graphic API” was marked with

즉, 본 발명의 실시예에 따른 클라이언트 장치(100)는 그래픽 처리를 위한 API 실행 요청이 발생할 때마다 서버 장치(150)로 전달하는 것이 아니라, API 실행 요청의 특성에 따라 선택적으로 큐(QUEUE) 또는 버퍼(BUFFER) 등과 같은 저장부에 임시 저장하거나 즉시 서버 장치(150)로 전달하도록 함으로써, 클라이언트 장치(100)와 서버 장치(150) 사이의 통신 오버헤드를 최소화할 수 있다. 따라서 복수의 클라이언트 장치들이 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우에 원활한 통신을 수행할 수 있다. 본 발명에 따른 렌더링 정보 처리부(103)의 보다 구체적인 실시예는 도 2를 참조하여 후술하기로 한다.That is, the client device 100 according to an embodiment of the present invention does not transmit to the server device 150 whenever an API execution request for graphic processing occurs, but selectively queues according to the characteristics of the API execution request. Alternatively, the communication overhead between the client device 100 and the server device 150 may be minimized by temporarily storing the data in a storage unit such as a buffer or immediately transferring the data to the server device 150 . Accordingly, when a plurality of client devices share the graphic processing resource of the server device 150 , smooth communication can be performed. A more specific embodiment of the rendering information processing unit 103 according to the present invention will be described later with reference to FIG. 2 .

본 발명에 따른 서버 장치(150)는 클라이언트 장치(100)로부터 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정한다. 따라서, 동일한 패턴을 생성하는 API를 반복적으로 수행하는 것을 방지하여 서버 장치(150)의 한정된 그래픽 처리 자원을 효율적으로 사용할 수 있다. 일반적으로 동일하거나 비슷한 화면을 반복하여 렌더링 하는 경우가 많고, 사용자나 외부의 입력에 의해 렌더링 화면이 달라진다. 따라서 본 발명에서는 원격실행 방법을 수행 시 서버 장치(150)에서 첫 번째 실행되는 패턴인지 확인하는 단계를 거친다. 첫 번째 실행되는 패턴이라면 실행된 히스토리 및 패턴을 저장해 둔다. 외부 입력이나 사용자의 입력이 없을 경우에는 동일한 패턴이 반복되며 재생될 것이므로 이때는 API를 반복 실행하는 대신에 저장된 히스토리에 있는 API 수행 결과, 즉 패턴을 그대로 반복해서 사용한다. 클라이언트 장치(100)에서는 사용자로부터 입력을 받거나 외부 입력에 의해 재생 화면이 변하게 되면 서버 장치(150)로 해당 사실을 전달하고 API 실행 요청을 전달한다. 서버 장치(150)는 새로운 패턴임을 인식하고 해당 패턴 생성 후 이를 저장해 두고 사용하며 상술한 과정을 반복하여 수행한다. 이하에서는 서버 장치(150)의 구체적인 구성 및 동작에 대해서는 아래에서 상술하기로 한다.The server device 150 according to the present invention determines whether to process the API execution request based on whether the pattern executed by the API execution request received from the client device 100 is the first executed pattern. Accordingly, it is possible to efficiently use the limited graphic processing resources of the server device 150 by preventing repetitive execution of the API for generating the same pattern. In general, the same or similar screen is repeatedly rendered, and the rendering screen changes depending on the user or external input. Therefore, in the present invention, when the remote execution method is performed, a step of checking whether the pattern is first executed in the server device 150 is performed. If it is the first executed pattern, the execution history and pattern are saved. If there is no external input or user input, the same pattern will be repeated and played. In this case, instead of repeatedly executing the API, the API execution result in the stored history, that is, the pattern is used repeatedly as it is. When the client device 100 receives an input from the user or when the playback screen changes due to an external input, the client device 100 transmits the corresponding fact to the server device 150 and transmits an API execution request. The server device 150 recognizes that it is a new pattern, creates the pattern, stores it, uses it, and repeats the above-described process. Hereinafter, a detailed configuration and operation of the server device 150 will be described in detail below.

서버 장치(150)는 데이터 송수신부(155), 제어부(151) 및 API 실행부(153)를 포함한다. 서버 장치(150)의 데이터 송수신부(155)는 클라이언트 장치(100)로부터 API 실행 요청을 수신한다. 또한, 데이터 송수신부(155)는 제어부(151)의 제어에 따라, 수신한 API 실행 요청에 대응하는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달할 수 있다.The server device 150 includes a data transmission/reception unit 155 , a control unit 151 , and an API execution unit 153 . The data transceiver 155 of the server device 150 receives an API execution request from the client device 100 . Also, the data transceiver 155 may transmit a pattern corresponding to the received API execution request to the client device 100 as rendering result data under the control of the controller 151 .

제어부(151)는 수신한 상기 API 실행 요청의 처리를 제어한다. 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 제어부(151)는 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정할 수 있다. 구체적으로, 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인 경우, 제어부(151)의 제어에 의해 API 실행부(153)는 수신한 API 실행 요청에 따른 API를 실행하여 대응하는 패턴을 생성하고, 생성된 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달될 수 있다.The control unit 151 controls processing of the received API execution request. According to the server device 150 according to an embodiment of the present invention, the control unit 151 determines whether to process the API execution request based on whether the pattern executed by the received API execution request is the first executed pattern. can Specifically, when the pattern executed by the received API execution request is the first executed pattern, the API execution unit 153 executes the API according to the received API execution request under the control of the control unit 151 and corresponds to the pattern. , and the generated pattern may be transmitted to the client device 100 as rendering result data.

수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴이 아닌 경우, 제어부(151)의 제어에 의해 서버 장치(150) 내에 저장되어 있는 패턴, 즉 상기 수신한 API 실행 요청에 대응하는 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달될 수 있다. 이 경우, 수신한 API 실행 요청에 따른 API는 실행되지 않는다. 본 발명에 따른 제어부(151)의 보다 구체적인 실시예는 도 3을 참조하여 후술하기로 한다.When the pattern executed by the received API execution request is not the first executed pattern, the pattern stored in the server device 150 under the control of the controller 151, that is, the pattern corresponding to the received API execution request, is The rendering result data may be transmitted to the client device 100 . In this case, the API according to the received API execution request is not executed. A more specific embodiment of the control unit 151 according to the present invention will be described later with reference to FIG. 3 .

위와 같이, 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우 API의 실행 없이 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달하므로, 서버 장치(150) 내 그래픽 처리 자원을 효율적으로 사용할 수 있다.As described above, according to the server device 150 according to an embodiment of the present invention, when the pattern according to the received API execution request is an already executed pattern, the pattern stored without executing the API is used as the rendering result data by the client device ( 100), so that graphic processing resources in the server device 150 can be efficiently used.

API 실행부(153)는 제어부(151)의 제어에 기초하여, API 실행 요청을 처리한다. 상술한 바와 같이 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우, API 실행부(153)는 해당 API를 실행하지 않는다. 한편, 수신한 API 실행 요청에 따른 패턴이 실행된 적이 없는 패턴인 경우, API 실행부(153)는 해당 API를 실행하여 패턴을 생성한다.The API execution unit 153 processes an API execution request based on the control of the control unit 151 . As described above, when the pattern according to the received API execution request is an already executed pattern, the API execution unit 153 does not execute the corresponding API. On the other hand, when the pattern according to the received API execution request is a pattern that has not been executed, the API execution unit 153 executes the corresponding API to generate the pattern.

도 2는 본 발명의 일 실시예에 따른 클라이언트 장치의 렌더링 정보 처리부를 나타내는 블록도이다.2 is a block diagram illustrating a rendering information processing unit of a client device according to an embodiment of the present invention.

도 2를 참조하면, 렌더링 정보 처리부(200)는 API 요청 제어부(210) 및 API 요청 저장부(230)를 포함할 수 있다. 여기서, API 요청 저장부(230)는 API 요청 제어부(210)의 제어에 따라, API 실행 요청을 임시 저장하는 저장소의 역할을 하며, 큐(QUEUE), 버퍼(BUFFER) 등과 같은 다양한 형태로 구현될 수 있다.Referring to FIG. 2 , the rendering information processing unit 200 may include an API request control unit 210 and an API request storage unit 230 . Here, the API request storage unit 230 serves as a storage for temporarily storing API execution requests under the control of the API request control unit 210, and may be implemented in various forms such as a queue (QUEUE), a buffer (BUFFER), etc. can

API 요청 제어부(210)는 도 1의 소프트웨어 실행부(101)로부터 수신한 API 실행 요청의 처리를 결정할 수 있다. 구체적으로, API 요청 제어부(210)는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다. 이 경우 상기 API 실행 요청은 API 요청 저장부(230)에 저장되지 않는다.The API request control unit 210 may determine processing of the API execution request received from the software execution unit 101 of FIG. 1 . Specifically, the API request control unit 210 analyzes the API execution request, and when the API execution request requires immediate execution, the data transceiver 105 transmits the API execution request directly to the server device 150 . ) can be controlled. In this case, the API execution request is not stored in the API request storage unit 230 .

다른 경우에, API 요청 제어부(210)는 수신한 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우 이를 API 요청 저장부(230)로 전달할 수 있다. 이 경우, API 요청 저장부(230)는 전달받은 API 실행 요청을 임시 저장할 수 있다.In another case, the API request control unit 210 may analyze the received API execution request and transmit it to the API request storage unit 230 when the API execution request does not require immediate execution. In this case, the API request storage 230 may temporarily store the received API execution request.

한편, API 요청 저장부(230)에 적어도 하나의 API 실행 요청이 저장되어 있는 상태에서 화면 업데이트를 위한 API 실행 요청이 발생할 수 있다. 상기 화면 업데이트를 위한 API 실행 요청은 상술한 바 있는 “즉시 실행이 필요한 API 실행 요청” 중 하나일 수 있다. 이와 같은 화면 업데이트를 위한 API 실행 요청을 렌더링 정보 처리부(200)가 수신한 경우, API 요청 저장부(230)에 저장되어 있는 API 실행 요청들 또한 서버 장치(150)로 전달될 수 있다. 이 경우 상기 화면 업데이트를 위한 API 실행 요청 또한 서버 장치(150)로 전달된다.Meanwhile, in a state in which at least one API execution request is stored in the API request storage unit 230 , an API execution request for screen update may occur. The API execution request for the screen update may be one of the above-described “API execution requests requiring immediate execution”. When the rendering information processing unit 200 receives the API execution request for screen update, the API execution requests stored in the API request storage 230 may also be transmitted to the server device 150 . In this case, the API execution request for the screen update is also transmitted to the server device 150 .

일 실시예에서, 화면 업데이트를 위한 API 실행 요청을 수신하지 않은 경우이더라도, API 요청 저장부(230)의 용량이 가득 찬 경우 더 이상 API 요청 저장부(230)에 API 실행 요청이 저장될 수 없다. 이 경우 API 요청 저장부(230)에 저장된 API 실행 요청들은 서버 장치(150)로 전달되고, 이후에 새롭게 수신하는 API 실행 요청이 API 요청 저장부(230)에 저장될 수 있다.In one embodiment, even if the API execution request for screen update is not received, when the capacity of the API request storage 230 is full, the API execution request can no longer be stored in the API request storage 230 . In this case, the API execution requests stored in the API request storage unit 230 may be transmitted to the server device 150 , and a newly received API execution request may be stored in the API request storage unit 230 .

도 3은 본 발명의 일 실시예에 따른 서버 장치의 제어부를 나타내는 블록도이다.3 is a block diagram illustrating a control unit of a server device according to an embodiment of the present invention.

도 3을 참조하면, 제어부(300)는 패턴 판별부(310) 및 패턴 저장부(330)를 포함할 수 있다. 패턴 저장부(330)는 도 1의 API 실행부(153)에서 실행된 적이 있는 패턴들을 저장할 수 있다. 패턴 판별부(310)는 수신한 API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있는 패턴인지 여부를 판별할 수 있다.Referring to FIG. 3 , the control unit 300 may include a pattern determination unit 310 and a pattern storage unit 330 . The pattern storage unit 330 may store patterns that have been executed by the API execution unit 153 of FIG. 1 . The pattern determining unit 310 may determine whether the pattern executed by the received API execution request is a pattern stored in the pattern storage unit 330 .

API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있는 경우, 서버 장치(150)는 동일한 패턴을 얻기 위해 API를 반복하여 수행하는 대신에 상기 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전송할 수 있다. 따라서 서버 장치(150)의 그래픽 처리 자원을 효율적으로 사용할 수 있다.When the pattern executed by the API execution request is stored in the pattern storage unit 330, the server device 150 uses the stored pattern as rendering result data instead of repeatedly performing the API to obtain the same pattern. may be transmitted to the client device 100 . Accordingly, the graphic processing resource of the server device 150 can be efficiently used.

API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있지 않은 경우, API 실행부(153)에 의해 해당 API가 실행된다. 따라서 이전에 처리된 적이 없던 패턴의 경우 API 실행부(153)에 의해 생성되어 렌더링 결과 데이터로서 클라이언트 장치(100)로 전달된다. 이와 함께, API 실행부(153)에서 생성된 패턴은 제어부(151)로 전달되어 패턴 저장부(330)에 저장된다. 저장된 패턴은 이후의 API 실행 요청에 따른 패턴과 비교될 수 있다.When the pattern executed by the API execution request is not stored in the pattern storage unit 330 , the corresponding API is executed by the API execution unit 153 . Accordingly, in the case of a pattern that has not been processed before, it is generated by the API execution unit 153 and transmitted to the client device 100 as rendering result data. At the same time, the pattern generated by the API execution unit 153 is transmitted to the control unit 151 and stored in the pattern storage unit 330 . The stored pattern can be compared with a pattern according to a subsequent API execution request.

도 4는 본 발명의 일 실시예에 따라, 클라이언트 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다. 이하에서는 도 1, 도 2 및 도 4를 함께 참조하여 클라이언트 장치에서 수행되는 영상 표시 방법을 설명하기로 한다.4 is a flowchart illustrating an image display method performed by a client device according to an embodiment of the present invention. Hereinafter, an image display method performed in a client device will be described with reference to FIGS. 1, 2 and 4 together.

도 4를 참조하면, 클라이언트 장치(100)에 의해 수행되는 영상 표시 방법은 API 실행 요청을 발생하는 단계(S110)를 포함한다. 상기 API 실행 요청은 클라이언트 장치(100) 내 소프트웨어 실행부(101)에 의해 발생할 수 있다.Referring to FIG. 4 , the image display method performed by the client device 100 includes generating an API execution request ( S110 ). The API execution request may be generated by the software execution unit 101 in the client device 100 .

이후에, API 실행 요청의 특성을 판별하게 된다. 구체적으로, 발생한 API 실행 요청이 화면 업데이트 API에 관한 것인지 판단하고(S120), 아닌 경우 즉시 실행이 필요한 API인지 판단한다(S130).Thereafter, the characteristics of the API execution request are determined. Specifically, it is determined whether the generated API execution request relates to the screen update API (S120), and if not, it is determined whether the API requires immediate execution (S130).

발생한 API 실행 요청이 화면 업데이트 API에 관한 것인 경우, 해당 API 실행 요청은 서버 장치(150)로 전달된다(S170). 이와 함께, API 요청 저장부(230)에 저장되어 있던 다른 API 실행 요청들 또한 서버 장치(150)로 모두 전달된다. 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다.When the generated API execution request relates to the screen update API, the corresponding API execution request is transmitted to the server device 150 (S170). At the same time, all other API execution requests stored in the API request storage 230 are also transferred to the server device 150 . Thereafter, it proceeds to the next API execution request generation step (S110).

발생한 API 실행 요청이 화면 업데이트 API에 관한 것이 아닌 경우, 지금 바로 화면을 업데이트할 필요는 없는 상황이다. 다만, 해당 API 실행 요청이 즉시 리턴값이 필요한 경우인지 판단한다. 즉, 발생한 API 실행 요청이 즉시 실행이 필요한 API인지 여부를 판단한다(S130). 즉시 실행이 필요한 API에 관한 것이면, 해당 API 실행 요청을 서버 장치로 전달한다(S170). 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다. If the API execution request that occurred is not related to the screen update API, there is no need to update the screen right now. However, it is determined whether the corresponding API execution request requires an immediate return value. That is, it is determined whether the generated API execution request is an API requiring immediate execution (S130). If it relates to an API requiring immediate execution, the API execution request is transmitted to the server device (S170). Thereafter, it proceeds to the next API execution request generation step (S110).

즉시 실행이 필요한 API에 관한 것이 아니면, 클라이언트 장치(100)와 서버 장치(150) 사이의 통신 오버헤드를 줄이기 위해 해당 API 실행 요청을 API 요청 저장부(230)에 임시 저장한다(S140). 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다.If it is not related to an API requiring immediate execution, the corresponding API execution request is temporarily stored in the API request storage 230 in order to reduce communication overhead between the client device 100 and the server device 150 ( S140 ). Thereafter, it proceeds to the next API execution request generation step (S110).

이후에, API 요청 저장부(230)가 가득 찼는지 여부를 판단한다(S150). API 요청 저장부(230)가 가득 찬 경우, 저장된 API 실행 요청을 서버 장치로 전달하고(S170), 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다. API 요청 저장부(230)가 가득 차지 않은 경우에는 다음 API 실행 요청 발생 단계(S110)로 진행한다.Thereafter, it is determined whether the API request storage unit 230 is full (S150). When the API request storage unit 230 is full, the stored API execution request is transferred to the server device (S170), and then proceeds to the next API execution request generation step (S110). If the API request storage unit 230 is not full, it proceeds to the next API execution request generation step (S110).

도 5는 본 발명의 일 실시예에 따라, 서버 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다. 이하에서는 도 1, 도 3 및 도 5를 함께 참조하여 서버 장치에서 수행되는 영상 표시 방법을 설명하기로 한다.5 is a flowchart illustrating an image display method performed in a server device according to an embodiment of the present invention. Hereinafter, an image display method performed in a server device will be described with reference to FIGS. 1, 3 and 5 together.

도 5를 참조하면, 서버 장치(150)에 의해 수행되는 영상 표시 방법은 API 실행 요청을 수신하는 단계(S210)를 포함한다. 상기 API 실행 요청은 클라이언트 장치(100)에서 발생한 것일 수 있다. 이후에, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하며, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하게 된다.Referring to FIG. 5 , the image display method performed by the server device 150 includes receiving an API execution request ( S210 ). The API execution request may be generated by the client device 100 . Thereafter, it is determined whether the pattern executed by the API execution request is the first executed pattern, and the API execution request is processed based on the determination result.

상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하기 위해, 서버 장치(150) 내 패턴 저장부(330)에서 상기 패턴을 검색한다(S220). 검색 결과에 기초하여, 해당 패턴이 최초로 실행되는 패턴인지 결정(S230)한다. 최초로 실행되는 패턴이 아닌 경우, 패턴 저장부(330)에 저장되어 있는 상기 패턴을 렌더링 결과 데이터로서 클라이언트 장치(150)로 전송한다(S270).In order to determine whether the pattern executed by the API execution request is the first executed pattern, the pattern is searched for in the pattern storage unit 330 in the server device 150 (S220). Based on the search result, it is determined whether the corresponding pattern is the first executed pattern (S230). If it is not the first pattern to be executed, the pattern stored in the pattern storage unit 330 is transmitted to the client device 150 as rendering result data (S270).

해당 패턴이 최초로 실행되는 패턴인 경우, API 실행부(153)에 의해 해당 API를 실행한다(S240). 실행 결과에 따라 대응하는 패턴이 생성되며, 데이터 송수신부(155)에 의해 생성된 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)로 전송된다(S250). 한편, 제어부(151)는 단계(S240)에 의해 생성된 패턴을 패턴 저장부(330)에 저장한다(S260).If the corresponding pattern is the first executed pattern, the API is executed by the API execution unit 153 (S240). A corresponding pattern is generated according to the execution result, and the pattern generated by the data transceiver 155 is transmitted to the client device 100 as rendering result data (S250). On the other hand, the control unit 151 stores the pattern generated by the step (S240) in the pattern storage unit 330 (S260).

본 발명에 따른 클라이언트 장치, 서버 장치 및 영상 처리 방법에 의하면, 소프트웨어 스택이나 라이브러리 또는 GPU 드라이버가 없는 시스템에도 쉽게 적용하여 사용 가능하므로 임베디드 시스템 멀티미디어 그래픽 장치를 유연하게 사용할 수 있다. 실제로 임베디드 시스템을 위한 실시간 운영체제 또는 운영체제 없이 동작하는 베어메탈 형태의 시스템들은 OpenGL ES와 같은 그래픽처리를 위한 소프트웨어를 지원하지 않는 경우가 일반적이다. 따라서 본 발명에 따른 실시예에 의하면 별도의 소프트웨어 스택이나 디바이스 드라이버의 설치 없이도 GPU 장치를 사용할 수 있다. 또한 렌더링 패턴을 감시하여 동일한 패턴이 반복될 경우에는 클라이언트 장치와 서버 장치 간의 데이터 송수신이 필요없게 되므로 성능이 향상되며, 렌더링 속도 또한 개선된다. According to the client device, the server device, and the image processing method according to the present invention, the embedded system multimedia graphic device can be flexibly used because it can be easily applied to a system without a software stack, library, or GPU driver. In fact, real-time operating systems for embedded systems or bare metal systems operating without an operating system generally do not support software for graphics processing such as OpenGL ES. Accordingly, according to the embodiment of the present invention, the GPU device can be used without installing a separate software stack or device driver. In addition, if the same pattern is repeated by monitoring the rendering pattern, data transmission/reception between the client device and the server device is not required, so performance is improved and rendering speed is also improved.

이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터를 이용하거나 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터를 이용하거나 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.At this time, it will be understood that each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions. These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions. These computer program instructions may be stored in a computer readable memory or using a computer that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, thereby enabling the computer to use the computer or to be computer readable. It is also possible that the instructions stored in the memory produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s). The computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in the blocks to occur out of order. For example, it is possible that two blocks shown in succession are actually performed substantially simultaneously, or that the blocks are sometimes performed in the reverse order according to the corresponding function.

이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.At this time, the term '~ unit' used in this embodiment means software or hardware components such as FPGA or ASIC, and '~ unit' performs certain roles. However, '-part' is not limited to software or hardware. '~unit' may be configured to reside in an addressable storage medium or may be configured to refresh one or more processors. Thus, as an example, '~' denotes components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and '~ units' may be combined into a smaller number of components and '~ units' or further separated into additional components and '~ units'. In addition, components and '~ units' may be implemented to play one or more CPUs in a device or secure multimedia card.

본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.Embodiments of the present invention disclosed in the present specification and drawings are merely provided for specific examples in order to easily explain the technical contents of the present invention and help the understanding of the present invention, and are not intended to limit the scope of the present invention. It will be apparent to those of ordinary skill in the art to which the present invention pertains that other modifications based on the technical spirit of the present invention can be implemented in addition to the embodiments disclosed herein.

100: 클라이언트 장치 101: 소프트웨어 실행부
103: 렌더링 정보 처리부 105: 데이터 송수신부
150: 서버 장치 151: 제어부
153: API 실행부 155: 데이터 송수신부
200: 렌더링 정보 처리부 210: API 요청 제어부
230: API 요청 저장부 300: 서버 장치
310: 패턴 판별부 330: 패턴 저장부
100: client device 101: software execution unit
103: rendering information processing unit 105: data transmitting and receiving unit
150: server device 151: control unit
153: API execution unit 155: data transmitting and receiving unit
200: rendering information processing unit 210: API request control unit
230: API request storage unit 300: server device
310: pattern determination unit 330: pattern storage unit

Claims (20)

영상 표시를 위하여 API 실행 요청을 서버 장치로 전달하는 클라이언트 장치로서,
영상 표시를 위한 상기 API 실행 요청을 발생시키는 소프트웨어 실행부;
발생한 상기 API 실행 요청의 송신을 제어하는 렌더링 정보 처리부; 및
상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달하는 데이터 송수신부를 포함하고,
상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어하는 것을 특징으로 하는 클라이언트 장치.
A client device that transmits an API execution request to a server device for video display,
a software execution unit for generating the API execution request for image display;
a rendering information processing unit that controls transmission of the generated API execution request; and
and a data transceiver for transmitting the API execution request to the server device based on the control of the rendering information processing unit,
The rendering information processing unit, the client device, characterized in that the control to selectively transfer the API execution request to the server device.
제 1 항에 있어서, 상기 렌더링 정보 처리부는,
상기 API 실행 요청의 처리를 결정하는 API 요청 제어부; 및
상기 API 실행 요청을 선택적으로 저장하는 API 요청 저장부를 포함하는 것을 특징으로 하는 클라이언트 장치.
According to claim 1, wherein the rendering information processing unit,
an API request control unit that determines processing of the API execution request; and
and an API request storage for selectively storing the API execution request.
제 2 항에 있어서, 상기 API 요청 제어부는,
상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 상기 서버 장치로 전달하도록 상기 데이터 송수신부를 제어하는 것을 특징으로 하는 클라이언트 장치.
According to claim 2, wherein the API request control unit,
The client device, characterized in that by analyzing the API execution request, and controlling the data transceiver to transmit the API execution request to the server device when the API execution request requires immediate execution.
제 2 항에 있어서, 상기 API 요청 제어부는,
상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우, 상기 API 실행 요청을 상기 API 요청 저장부로 전달하고,
상기 API 요청 저장부는 전달받은 상기 API 실행 요청을 임시 저장하는 것을 특징으로 하는 클라이언트 장치.
According to claim 2, wherein the API request control unit,
Analyzes the API execution request, and when the API execution request does not require immediate execution, transfers the API execution request to the API request storage,
The API request storage unit temporarily stores the received API execution request.
제 2 항에 있어서, 상기 API 요청 제어부는,
상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 경우, 상기 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들 및 상기 화면 업데이트 API 실행 요청을 상기 서버 장치로 전달하도록 상기 API 요청 저장부 및 상기 데이터 송수신부를 제어하는 것을 특징으로 하는 클라이언트 장치.
According to claim 2, wherein the API request control unit,
By analyzing the API execution request, when the API execution request is a screen update API execution request, at least one API execution request stored in the API request storage unit and the screen update API execution request are transmitted to the server device The client device, characterized in that for controlling the API request storage unit and the data transceiver so as to
제 1 항에 있어서,
상기 데이터 송수신부는 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 상기 서버 장치로부터 수신하고,
상기 소프트웨어 실행부는 상기 수신한 렌더링 결과 데이터에 기초하여 영상을 처리하는 것을 특징으로 하는 클라이언트 장치.
The method of claim 1,
The data transceiver receives rendering result data corresponding to the API execution request from the server device,
The client device, characterized in that the software execution unit processes the image based on the received rendering result data.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 클라이언트 장치에 의해 수행되는 영상 표시 방법으로서,
API 실행 요청을 발생시키는 단계;
상기 API 실행 요청의 특성을 판별하는 단계; 및
상기 판별 결과에 따라 상기 API 실행 요청의 처리를 결정하는 단계를 포함하는 영상 표시 방법.
An image display method performed by a client device, comprising:
generating an API execution request;
determining characteristics of the API execution request; and
and determining the processing of the API execution request according to the determination result.
제 13 항에 있어서,
상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요한 API 실행 요청인 것으로 판별된 경우,
상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 서버 장치로 전달하는 것을 특징으로 하는 영상 표시 방법.
14. The method of claim 13,
When it is determined that the API execution request is an API execution request requiring immediate execution in the step of determining the characteristics of the API execution request,
In the step of determining the processing of the API execution request, the image display method, characterized in that transmitting the API execution request to a server device.
제 13 항에 있어서,
상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요하지 않은 API 실행 요청인 것으로 판별된 경우,
상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 상기 클라이언트 장치 내 API 요청 저장부에 임시 저장하는 것을 특징으로 하는 영상 표시 방법.
14. The method of claim 13,
When it is determined that the API execution request is an API execution request that does not require immediate execution in the step of determining the characteristics of the API execution request,
In the step of determining the processing of the API execution request, the image display method characterized in that the API execution request is temporarily stored in an API request storage unit in the client device.
제 13 항에 있어서,
상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 것으로 판별된 경우,
상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 클라이언트 장치 내 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청 및 상기 화면 업데이트 API 실행 요청을 서버 장치로 전달하는 것을 특징으로 하는 영상 표시 방법.
14. The method of claim 13,
When it is determined that the API execution request is a screen update API execution request in the step of determining the characteristics of the API execution request,
In the step of determining the processing of the API execution request, at least one API execution request and the screen update API execution request stored in an API request storage unit in the client device are transmitted to a server device. .
제 13 항에 있어서,
서버 장치로부터 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 수신하는 단계; 및
상기 렌더링 결과 데이터에 기초하여 영상을 처리하는 단계를 더 포함하는 것을 특징으로 하는 영상 표시 방법.
14. The method of claim 13,
receiving rendering result data corresponding to the API execution request from a server device; and
The image display method further comprising the step of processing an image based on the rendering result data.
삭제delete 삭제delete 삭제delete
KR1020160025731A 2016-03-03 2016-03-03 Client device, server device and method for displaying image KR102419972B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160025731A KR102419972B1 (en) 2016-03-03 2016-03-03 Client device, server device and method for displaying image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160025731A KR102419972B1 (en) 2016-03-03 2016-03-03 Client device, server device and method for displaying image

Publications (2)

Publication Number Publication Date
KR20170103224A KR20170103224A (en) 2017-09-13
KR102419972B1 true KR102419972B1 (en) 2022-07-14

Family

ID=59967615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160025731A KR102419972B1 (en) 2016-03-03 2016-03-03 Client device, server device and method for displaying image

Country Status (1)

Country Link
KR (1) KR102419972B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089044A (en) 2010-10-22 2012-05-10 Lenovo Singapore Pte Ltd Computer and method for improving performance of computer

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100372092B1 (en) * 2001-02-06 2003-02-14 주식회사 우리기술 Medium Player for playing moving picture on the background of the screen and The Processing Method for moving picture for using it and A computer-readable Storage Medium for executing the above Medium Player or Method
US8134553B2 (en) * 2007-09-24 2012-03-13 Microsoft Corporation Rendering three-dimensional objects on a server computer
KR101401380B1 (en) * 2010-11-04 2014-05-30 한국전자통신연구원 Apparatus for 3d application execution based remote rendering and method thereof
KR20130030124A (en) * 2011-09-16 2013-03-26 한국전자통신연구원 System and method for providing content using graphic off loading
KR101335711B1 (en) * 2012-01-20 2013-12-04 연세대학교 산학협력단 A server, An arithmatic processing method and a system thereof
KR20140027741A (en) * 2012-08-27 2014-03-07 한국전자통신연구원 Application service providing system and method, server apparatus and client apparatus for application service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089044A (en) 2010-10-22 2012-05-10 Lenovo Singapore Pte Ltd Computer and method for improving performance of computer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
조현우 외, "임베디드 시스템을 위한 GPU 가상화", 2015 대한임베디드공학회 추계학술대회(2015.11.12~14) 논문집 163쪽~166쪽*

Also Published As

Publication number Publication date
KR20170103224A (en) 2017-09-13

Similar Documents

Publication Publication Date Title
US9733963B2 (en) Optimizing virtual graphics processing unit utilization
US9811367B2 (en) Method and apparatus for combined hardware/software VM migration
US20170161865A1 (en) Method and System to Virtualize Graphic Processing Services
JP6140190B2 (en) Paravirtualized high performance computing and GDI acceleration
US20130210522A1 (en) Data center architecture for remote graphics rendering
WO2018119951A1 (en) Gpu virtualization method, device, system, and electronic apparatus, and computer program product
US9529628B2 (en) Binary editing of applications executed by virtual machines
US9563466B2 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
EP3147784A1 (en) Interruption handling method and relevant device of virtual platform
US9041719B2 (en) Method and system for transparently directing graphics processing to a graphical processing unit (GPU) of a multi-GPU system
US11150920B2 (en) 3D API redirection for virtual desktop infrastructure
US20140059114A1 (en) Application service providing system and method and server apparatus and client apparatus for application service
US11875145B2 (en) Virtual machine update while keeping devices attached to the virtual machine
EP3301574B1 (en) Method for managing graphic cards in a computing system
EP3113015B1 (en) Method and apparatus for data communication in virtualized environment
US9575773B2 (en) Monitoring multiple remote desktops on a wireless device
KR102419972B1 (en) Client device, server device and method for displaying image
US9684529B2 (en) Firmware and metadata migration across hypervisors based on supported capabilities
KR101430729B1 (en) Server and method for supporting software
Joe et al. Remote graphical processing for dual display of RTOS and GPOS on an embedded hypervisor
Li et al. Graphic acceleration mechanism for multiple desktop system based on virtualization technology
US20130328865A1 (en) Apparatus and method for graphic offloading based on virtual machine monitor
KR102417882B1 (en) Method for managing gpu resources and computing device for executing the method
KR101464619B1 (en) Frame buffer direct access control method for VDI client
CN116382838A (en) gpu virtualization implementation method

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