KR102419972B1 - Client device, server device and method for displaying image - Google Patents
Client device, server device and method for displaying image Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation 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
본 발명은 영상 표시에 관한 것으로, 구체적으로는 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법에 관한 것이다.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
서버 장치(150)는 하이퍼바이저(Hypervisor)로서 동작할 수 있다. 하이퍼바이저느 가상 머신 모니터(Virtual Machine Monitor)라고도 하며 하나의 컴퓨터 시스템에서 여러 개의 운영 체제(OS)를 가동할 수 있게 하는 가상화 엔진이다. 하이퍼바이저의 구동 방식에는, 물리적인 컴퓨터 하드웨어 상에서 하이퍼바이저를 직접 동작시키는 네이티브(native) 또는 베어메탈(bare-metal, type-1)방식이 있고, 호스트 운영체제 상에 하이퍼바이저를 설치하고 그 위에서 게스트 운영체제를 동작시키는 호스트(hosted, type-2) 방식이 있다. 또 다른 분류인 반가상화와 전가상화 방법은 하이퍼바이저 위에 올라가는 운영 체제의 수정여부에 따라 구분될 수 있다.The
본 발명에 따른 영상 처리 방법은 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
한편, 원격 API 방식을 수행하기 위해, API를 요청하는 클라이언트 장치(100)를 프론트-앤드(Front-end)라고도 지칭할 수 있으며, 프론트-앤드의 요청을 받아 API를 실행하는 서버 장치(150)를 백-앤드(Back-end)라고도 지칭할 수 있다.Meanwhile, in order to perform the remote API method, the
임베디드 하이퍼바이저는 서버나 데스크탑과 달리 리소스와 실시간 성능을 고려할 필요성이 있다. 위와 같은 시스템에서는 오버헤드를 최소화하는 것이 중요하다. 원격 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
가상화된 그래픽 라이브러리(예: 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
본 발명에 따른 클라이언트 장치(100)는 API 실행 요청의 특성에 따라, 일부 API는 API 요청 저장부에 임시 저장하였다가 일시에 서버 장치(150)로 전달하게 된다. 따라서 복수의 클라이언트 장치(100)가 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우 데이터 송수신을 효율적으로 수행할 수 있다.According to the characteristics of the API execution request, the
클라이언트 장치(100)는 소프트웨어 실행부(101), 렌더링 정보 처리부(103) 및 데이터 송수신부(105)를 포함한다. 소프트웨어 실행부(101)는 클라이언트 장치(100) 내에서 실제로 응용 프로그램 또는 응용 소프트웨어를 실행하는 구성요소일 수 있다. 응용 소프트웨어의 실행에 따른 영상 표시에 있어서, 표시하고자 하는 영상의 API가 대량의 그래픽 자원을 필요로 하고 클라이언트 장치(100)의 그래픽 자원이 상대적으로 빈약한 경우, 상기 영상의 API를 서버 장치(150)에서 수행하도록 요청할 수 있다. 이 경우 소프트웨어 실행부(101)는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다.The
렌더링 정보 처리부(103)는 발생한 상기 API 실행 요청의 송신을 제어한다. 본 발명의 실시예에 따른 클라이언트 장치(150)는 API 실행 요청의 특성에 따라 송신 처리를 다르게 수행할 수 있다. 구체적으로, 렌더링 정보 처리부(103)는 API 실행 요청이 즉시 리턴값을 필요로 하는 경우, 즉 즉시 실행을 필요로 하는 경우 해당 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다.The rendering
한편, 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
한편, 일 실시예에서, 렌더링 정보 처리부(103)는 API 실행 요청의 전송을 제어하는 기능을 수행하는 동시에, 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다. 다른 실시예에서, 소프트웨어 실행부(101)는 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다.On the other hand, in an embodiment, the rendering
데이터 송수신부(105)는 렌더링 정보 처리부(103)의 제어에 따라 API 실행 요청을 서버 장치(150)로 전달한다. 본 발명에 따른 클라이언트 장치(100) 및 서버 장치(150)는 가상화에 기반하여 영상 처리를 수행하는 시스템을 구성하므로, 도 1에서 서버 장치(150)로 전달되는 API 실행 요청은 “가상 그래픽 API”로 표기되었다.The
즉, 본 발명의 실시예에 따른 클라이언트 장치(100)는 그래픽 처리를 위한 API 실행 요청이 발생할 때마다 서버 장치(150)로 전달하는 것이 아니라, API 실행 요청의 특성에 따라 선택적으로 큐(QUEUE) 또는 버퍼(BUFFER) 등과 같은 저장부에 임시 저장하거나 즉시 서버 장치(150)로 전달하도록 함으로써, 클라이언트 장치(100)와 서버 장치(150) 사이의 통신 오버헤드를 최소화할 수 있다. 따라서 복수의 클라이언트 장치들이 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우에 원활한 통신을 수행할 수 있다. 본 발명에 따른 렌더링 정보 처리부(103)의 보다 구체적인 실시예는 도 2를 참조하여 후술하기로 한다.That is, the
본 발명에 따른 서버 장치(150)는 클라이언트 장치(100)로부터 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정한다. 따라서, 동일한 패턴을 생성하는 API를 반복적으로 수행하는 것을 방지하여 서버 장치(150)의 한정된 그래픽 처리 자원을 효율적으로 사용할 수 있다. 일반적으로 동일하거나 비슷한 화면을 반복하여 렌더링 하는 경우가 많고, 사용자나 외부의 입력에 의해 렌더링 화면이 달라진다. 따라서 본 발명에서는 원격실행 방법을 수행 시 서버 장치(150)에서 첫 번째 실행되는 패턴인지 확인하는 단계를 거친다. 첫 번째 실행되는 패턴이라면 실행된 히스토리 및 패턴을 저장해 둔다. 외부 입력이나 사용자의 입력이 없을 경우에는 동일한 패턴이 반복되며 재생될 것이므로 이때는 API를 반복 실행하는 대신에 저장된 히스토리에 있는 API 수행 결과, 즉 패턴을 그대로 반복해서 사용한다. 클라이언트 장치(100)에서는 사용자로부터 입력을 받거나 외부 입력에 의해 재생 화면이 변하게 되면 서버 장치(150)로 해당 사실을 전달하고 API 실행 요청을 전달한다. 서버 장치(150)는 새로운 패턴임을 인식하고 해당 패턴 생성 후 이를 저장해 두고 사용하며 상술한 과정을 반복하여 수행한다. 이하에서는 서버 장치(150)의 구체적인 구성 및 동작에 대해서는 아래에서 상술하기로 한다.The
서버 장치(150)는 데이터 송수신부(155), 제어부(151) 및 API 실행부(153)를 포함한다. 서버 장치(150)의 데이터 송수신부(155)는 클라이언트 장치(100)로부터 API 실행 요청을 수신한다. 또한, 데이터 송수신부(155)는 제어부(151)의 제어에 따라, 수신한 API 실행 요청에 대응하는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달할 수 있다.The
제어부(151)는 수신한 상기 API 실행 요청의 처리를 제어한다. 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 제어부(151)는 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정할 수 있다. 구체적으로, 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인 경우, 제어부(151)의 제어에 의해 API 실행부(153)는 수신한 API 실행 요청에 따른 API를 실행하여 대응하는 패턴을 생성하고, 생성된 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달될 수 있다.The
수신한 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
위와 같이, 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우 API의 실행 없이 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달하므로, 서버 장치(150) 내 그래픽 처리 자원을 효율적으로 사용할 수 있다.As described above, according to the
API 실행부(153)는 제어부(151)의 제어에 기초하여, API 실행 요청을 처리한다. 상술한 바와 같이 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우, API 실행부(153)는 해당 API를 실행하지 않는다. 한편, 수신한 API 실행 요청에 따른 패턴이 실행된 적이 없는 패턴인 경우, API 실행부(153)는 해당 API를 실행하여 패턴을 생성한다.The
도 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
API 요청 제어부(210)는 도 1의 소프트웨어 실행부(101)로부터 수신한 API 실행 요청의 처리를 결정할 수 있다. 구체적으로, API 요청 제어부(210)는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다. 이 경우 상기 API 실행 요청은 API 요청 저장부(230)에 저장되지 않는다.The API
다른 경우에, API 요청 제어부(210)는 수신한 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우 이를 API 요청 저장부(230)로 전달할 수 있다. 이 경우, API 요청 저장부(230)는 전달받은 API 실행 요청을 임시 저장할 수 있다.In another case, the API
한편, 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
일 실시예에서, 화면 업데이트를 위한 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
도 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
API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있는 경우, 서버 장치(150)는 동일한 패턴을 얻기 위해 API를 반복하여 수행하는 대신에 상기 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전송할 수 있다. 따라서 서버 장치(150)의 그래픽 처리 자원을 효율적으로 사용할 수 있다.When the pattern executed by the API execution request is stored in the
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
도 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
이후에, 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 실행 요청이 화면 업데이트 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 요청 저장부(230)가 가득 찼는지 여부를 판단한다(S150). API 요청 저장부(230)가 가득 찬 경우, 저장된 API 실행 요청을 서버 장치로 전달하고(S170), 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다. API 요청 저장부(230)가 가득 차지 않은 경우에는 다음 API 실행 요청 발생 단계(S110)로 진행한다.Thereafter, it is determined whether the API
도 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
상기 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
해당 패턴이 최초로 실행되는 패턴인 경우, 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
본 발명에 따른 클라이언트 장치, 서버 장치 및 영상 처리 방법에 의하면, 소프트웨어 스택이나 라이브러리 또는 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 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어하는 것을 특징으로 하는 클라이언트 장치.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.
상기 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.
상기 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.
상기 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.
상기 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
상기 데이터 송수신부는 상기 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.
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.
상기 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.
상기 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.
상기 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. .
서버 장치로부터 상기 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.
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)
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)
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 |
-
2016
- 2016-03-03 KR KR1020160025731A patent/KR102419972B1/en active IP Right Grant
Patent Citations (1)
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)
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 |