KR102419972B1 - 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법 - Google Patents

영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법 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
English (en)
Other versions
KR20170103224A (ko
Inventor
조현우
김태호
임채덕
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160025731A priority Critical patent/KR102419972B1/ko
Publication of KR20170103224A publication Critical patent/KR20170103224A/ko
Application granted granted Critical
Publication of KR102419972B1 publication Critical patent/KR102419972B1/ko

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)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라이언트 장치는 영상 표시를 위하여 API 실행 요청을 서버 장치로 전달한다. 상기 클라이언트 장치는 소프트웨어 실행부, 렌더링 정보 처리부 및 데이터 송수신부를 포함한다. 상기 소프트웨어 실행부는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다. 상기 렌더링 정보 처리부는 발생한 상기 API 실행 요청의 송신을 제어한다. 상기 데이터 송수신부는 상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달한다. 또한, 상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어한다.

Description

영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법 {CLIENT DEVICE, SERVER DEVICE AND METHOD FOR DISPLAYING IMAGE}
본 발명은 영상 표시에 관한 것으로, 구체적으로는 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법에 관한 것이다.
최근 중앙처리장치(CPU) 및 메모리 등의 하드웨어 제작 기술의 발전으로 인하여 저가의 고성능 컴퓨터가 급속도로 보급되고 있고 데스크탑 컴퓨터의 소프트웨어들은 점점 더 화려한 사용자 인터페이스와 그래픽 집중적인 작업을 수용할 수 있도록 요구되고 있다. 또한 그래픽 장치(GPU) 기술은 2D/3D, 멀티미디어와 같은 기존의 그래픽 집중적인 작업에 적용될 뿐만 아니라 웹 브라우저 렌더링, 플래시, 윈도우 운영체제까지 확대되어 적용되고 있다.
한편, 서버 기반의 컴퓨팅 환경은 개인용 컴퓨터 기반의 컴퓨팅 환경에서 발생하는 데이터 보안, 컴퓨터의 구입/관리 비용 등의 문제를 해결하기 위한 방안이다. 서버 기반 컴퓨팅 환경을 지원하는 기술로는 Citrix의 XenDesktop, VMWare의 VDI 그리고 Microsoft의 RDP(Remote Desktop Protocol)을 기반한 터미널 서비스 등이 있다. 또한 의학, 생물 정보학, 복잡한 구조의 3D 모델과 같은 보안상 중요한 데이터에 대하여도 서버 기반 컴퓨팅 기법을 사용하고 있다.
하지만 이러한 서버 기반 컴퓨팅은 서버 장치에서 실제적인 연산 처리를 수행하고, 클라이언트 컴퓨터는 단순히 터미널 역할만을 수행함으로써 클라이언트 수가 늘어날수록 서버의 부하가 커진다. 한편 서버에서 연산 실행한 결과 데이터를 클라이언트에 전송하는 방식을 사용함으로써 3D 렌더링과 같은 고성능 그래픽 작업을 처리하는 경우, 송수신되는 데이터가 상대적으로 고용량인 특징을 갖는다. 따라서 서버 부하에 따른 서비스 한계를 가질 수 있다. 그리고 이는 막대한 서버 구입 비용을 발생시키고, 느린 서비스 성능을 제공하게 된다는 문제점이 있었다.
본 발명은 클라이언트 장치가 필요로 하는 그래픽 처리를 서버 장치에서 수행하는 경우, 송수신되는 데이터량을 감경하고 한정된 서버 자원을 효율적으로 이용하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 클라이언트 장치는 영상 표시를 위하여 API 실행 요청을 서버 장치로 전달한다. 상기 클라이언트 장치는 소프트웨어 실행부, 렌더링 정보 처리부 및 데이터 송수신부를 포함한다. 상기 소프트웨어 실행부는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다. 상기 렌더링 정보 처리부는 발생한 상기 API 실행 요청의 송신을 제어한다. 상기 데이터 송수신부는 상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달한다. 또한, 상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어한다.
일 실시예에서, 상기 렌더링 정보 처리부는 API 요청 제어부 및 API 요청 저장부를 포함할 수 있다. 상기 API 요청 제어부는 상기 API 실행 요청의 처리를 결정할 수 있다. 상기 API 요청 저장부는 상기 API 실행 요청을 선택적으로 저장할 수 있다.
일 실시예에서, 상기 API 요청 제어부는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 상기 서버 장치로 전달하도록 상기 데이터 송수신부를 제어할 수 있다.
일 실시예에서, 상기 API 요청 제어부는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우, 상기 API 실행 요청을 상기 API 요청 저장부로 전달할 수 있다. 이 경우, 상기 API 요청 저장부는 전달받은 상기 API 실행 요청을 임시 저장할 수 있다.
일 실시예에서, 상기 API 요청 제어부는, 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 경우, 상기 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들 및 상기 화면 업데이트 API 실행 요청을 상기 서버 장치로 전달하도록 상기 API 요청 저장부 및 상기 데이터 송수신부를 제어할 수 있다.
일 실시예에서, 상기 데이터 송수신부는 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 상기 서버 장치로부터 수신할 수 있다. 이 경우 상기 소프트웨어 실행부는 상기 수신한 렌더링 결과 데이터에 기초하여 영상을 처리할 수 있다.
본 발명의 다른 실시예에 따른 서버 장치는 영상 표시를 위하여 API 실행 요청을 처리한다. 상기 서버 장치는 데이터 송수신부, 제어부 및 API 실행부를 포함한다. 상기 데이터 송수신부는 클라이언트 장치로부터 API 실행 요청을 수신한다. 상기 제어부는 수신한 상기 API 실행 요청의 처리를 제어한다. 상기 API 실행부는 상기 제어부의 제어에 기초하여, 상기 API 실행 요청을 처리한다. 상기 제어부는 상기 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정한다.
일 실시예에서, 상기 제어부는 패턴 저장부 및 패턴 판별부를 포함할 수 있다. 상기 패턴 저장부는 상기 API 실행부에서 실행된 패턴들을 저장할 수 있다. 상기 패턴 판별부는 상기 수신한 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있는 패턴인지 여부를 판별할 수 있다.
일 실시예에서, 상기 제어부는 상기 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있는 패턴인 경우, 상기 저장되어 있는 패턴을 상기 렌더링 결과 데이터로서 상기 클라이언트 장치에 전송하도록 상기 데이터 송수신부를 제어할 수 있다.
일 실시예에서, 상기 제어부는, 상기 API 실행 요청에 의해 실행되는 패턴이 상기 패턴 저장부에 저장되어 있지 않은 패턴인 경우, 상기 API 실행 요청을 처리하도록 상기 API 실행부를 제어할 수 있다.
일 실시예에서, 상기 API 실행부는 상기 API 실행 요청을 처리한 결과 생성된 패턴을 상기 데이터 송수신부로 전달할 수 있다. 이 경우 상기 데이터 송수신부는 상기 전달받은 패턴을 상기 렌더링 결과 데이터로서 상기 클라이언트 장치에 전송할 수 있다.
일 실시예에서, 상기 API 실행부는 상기 API 실행 요청을 처리한 결과 생성된 패턴을 상기 제어부로 전달할 수 있다. 이 경우, 상기 제어부는 상기 전달받은 패턴을 상기 패턴 저장부에 저장할 수 있다.
본 발명의 또다른 실시예에 따른 영상 표시 방법은 클라이언트 장치에 의해 수행된다. 상기 영상 표시 방법에 의하면, API 실행 요청을 발생시키고, 상기 API 실행 요청의 특성을 판별하며, 상기 판별 결과에 따라 상기 API 실행 요청의 처리를 결정한다.
일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요한 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는 상기 API 실행 요청을 서버 장치로 전달할 수 있따.
일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요하지 않은 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 상기 클라이언트 장치 내 API 요청 저장부에 임시 저장할 수 있다.
일 실시예에서, 상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 것으로 판별된 경우, 상기 API 실행 요청의 처리를 결정하는 단계에서는 상기 클라이언트 장치 내 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청 및 상기 화면 업데이트 실행 요청을 서버 장치로 전달할 수 있다.
일 실시예에서, 상기 영상 표시 방법은 서버 장치로부터 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 수신하는 단계 및 상기 렌더링 결과 데이터에 기초하여 영상을 처리하는 단계를 더 포함할 수 있다.
본 발명의 또다른 실시예에 따른 영상 표시 방법은 서버 장치에 의해 수행된다. 상기 영상 표시 방법에 의하면, API 실행 요청을 수신하고, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하며, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리한다.
일 실시예에서, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하는 단계에서는, 상기 서버 장치 내 패턴 저장부에서 상기 패턴을 검색할 수 있다. 검색 결과 상기 패턴 저장부에 상기 패턴이 저장되어 있는 경우, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하는 단계는, 상기 검색된 패턴을 렌더링 결과 데이터로서 상기 클라이언트 장치로 전달하는 단계를 포함할 수 있다.
일 실시예에서, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하는 단계에서는, 상기 서버 장치 내 패턴 저장부에서 상기 패턴을 검색할 수 있다. 검색 결과 상기 패턴 저장부에 상기 패턴이 저장되어 있지 않은 경우, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하는 단계는, 상기 API 실행 요청을 처리하여 대응하는 패턴을 생성하는 단계, 상기 생성된 패턴을 렌더링 결과 데이터로서 상기 클라이언트 장치로 전달하는 단계 및 상기 생성된 패턴을 상기 패턴 저장부에 저장하는 단계를 포함할 수 있다.
본 발명에 의하면, 서버 장치에서 가상 그래픽 API를 수행하는 그래픽 시스템의 동작 속도가 향상된다. 또한 클라이언트 장치가 서버 장치의 그래픽 처리 자원을 유연하게 이용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 클라이언트 장치와 서버 장치를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 장치의 렌더링 정보 처리부를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 서버 장치의 제어부를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따라, 클라이언트 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다.
도 5는 본 발명의 일 실시예에 따라, 서버 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 이 때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도 1은 본 발명의 일 실시예에 따른 클라이언트 장치와 서버 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 클라이언트 장치(100) 및 서버 장치(150)가 도시되어 있다. 클라이언트 장치(100)는 소프트웨어 실행에 따른 가상 그래픽 API를 서버 장치(150)로 전달한다. 상기 가상 그래픽 API는 그래픽 처리를 위한 API 실행 요청을 의미할 수 있다. 서버 장치(150)는 수신한 상기 가상 그래픽 API에 대응하는 렌더링 결과 데이터를 클라이언트 장치(100)로 전달한다.
서버 장치(150)는 하이퍼바이저(Hypervisor)로서 동작할 수 있다. 하이퍼바이저느 가상 머신 모니터(Virtual Machine Monitor)라고도 하며 하나의 컴퓨터 시스템에서 여러 개의 운영 체제(OS)를 가동할 수 있게 하는 가상화 엔진이다. 하이퍼바이저의 구동 방식에는, 물리적인 컴퓨터 하드웨어 상에서 하이퍼바이저를 직접 동작시키는 네이티브(native) 또는 베어메탈(bare-metal, type-1)방식이 있고, 호스트 운영체제 상에 하이퍼바이저를 설치하고 그 위에서 게스트 운영체제를 동작시키는 호스트(hosted, type-2) 방식이 있다. 또 다른 분류인 반가상화와 전가상화 방법은 하이퍼바이저 위에 올라가는 운영 체제의 수정여부에 따라 구분될 수 있다.
본 발명에 따른 영상 처리 방법은 GPU 가상화와 관련된다. GPU 가상화와 관련하여, 입출력 장치 가상화 확장(I/O Pass Through)이 적용될 수 있다. 입출력 장치 가상화 확장은 하드웨어 디바이스 자체가 다수의 가상화 채널로 구성되는 것을 의미할 수 있다. 따라서 게스트, 즉 클라이언트 장치마다 가상화 채널을 하나씩 이용할 수 있다. 이에 따라 서버 장치를 구성하는 하나의 하드웨어를 복수의 클라이언트 장치가 이용할 수 있다. 또한 하이퍼바이저의 간섭 없이 직접 서버 장치에 접근하는 것이 가능하므로 가상화가 없는 환경과 동일한 성능을 보여준다. 위와 같은 입출력 장치 가상화 확장 기술은 주로 클라우드 서버용으로 사용된다.
도 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 가상화를 위하여본 방식이 그래픽 라이브러리나 디바이스 드라이버에 적용될 수 있다.
한편, 원격 API 방식을 수행하기 위해, API를 요청하는 클라이언트 장치(100)를 프론트-앤드(Front-end)라고도 지칭할 수 있으며, 프론트-앤드의 요청을 받아 API를 실행하는 서버 장치(150)를 백-앤드(Back-end)라고도 지칭할 수 있다.
임베디드 하이퍼바이저는 서버나 데스크탑과 달리 리소스와 실시간 성능을 고려할 필요성이 있다. 위와 같은 시스템에서는 오버헤드를 최소화하는 것이 중요하다. 원격 API 방식은 그래픽 소프트웨어 스택 또는 라이브러리의 API를 인터셉트하여 원격 처리하는 방식으로, 하이퍼콜을 이용하는 반가상화 보다 상위 레벨인 그래픽 API를 인터셉트하기 때문에 오버헤드가 상대적으로 적다. 그러나 이 방법은 프론트-앤드와 백-앤드 처리 부분을 별도로 구현할 필요가 있다. 이 방법을 이용하면 기존 OpenGL ES 라이브러리나 GPU 디바이스 드라이버가 지원되지 않는 실시간 운영체제에서도 수정된 OpenGL ES API를 간단히 추가하여 그래픽 응용 프로그램을 개발할 수 있다는 장점이 있으나, API가 매번 실행될 때마다 게스트, 즉 클라이언트 장치(100)에서 호스트, 즉 서버 장치(150)로 지속적으로 API를 전송해야 한다. 이는 전체 시스템의 비효율을 발생시킬 수 있다.
가상화된 그래픽 라이브러리(예: Opengl ES) 는 프론트-앤드(front-end), 즉 클라이언트 장치(100) 단의 그래픽 라이브러리 역할을 하며, 백-앤드(back-end) 단의 그래픽 자원을 활용하여 가상화된 그래픽 라이브러리로서의 동작을 수행할 수 있다. 즉, 클라이언트 장치(100) 내에서 그래픽 처리를 위한 그래픽 라이브러리를 참조하는 경우, 실제로는 서버 장치(150) 내 그래픽 라이브러리를 클라이언트 장치(100)의 그래픽 라이브러리인 것처럼 가상화하여 사용할 수 있다. 도 1에서, 데이터 송수신부(105)는 가상화된 그래픽 라이브러리의 역할을 수행할 수 있다.
본 발명에 따른 클라이언트 장치(100)는 API 실행 요청의 특성에 따라, 일부 API는 API 요청 저장부에 임시 저장하였다가 일시에 서버 장치(150)로 전달하게 된다. 따라서 복수의 클라이언트 장치(100)가 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우 데이터 송수신을 효율적으로 수행할 수 있다.
클라이언트 장치(100)는 소프트웨어 실행부(101), 렌더링 정보 처리부(103) 및 데이터 송수신부(105)를 포함한다. 소프트웨어 실행부(101)는 클라이언트 장치(100) 내에서 실제로 응용 프로그램 또는 응용 소프트웨어를 실행하는 구성요소일 수 있다. 응용 소프트웨어의 실행에 따른 영상 표시에 있어서, 표시하고자 하는 영상의 API가 대량의 그래픽 자원을 필요로 하고 클라이언트 장치(100)의 그래픽 자원이 상대적으로 빈약한 경우, 상기 영상의 API를 서버 장치(150)에서 수행하도록 요청할 수 있다. 이 경우 소프트웨어 실행부(101)는 영상 표시를 위한 상기 API 실행 요청을 발생시킨다.
렌더링 정보 처리부(103)는 발생한 상기 API 실행 요청의 송신을 제어한다. 본 발명의 실시예에 따른 클라이언트 장치(150)는 API 실행 요청의 특성에 따라 송신 처리를 다르게 수행할 수 있다. 구체적으로, 렌더링 정보 처리부(103)는 API 실행 요청이 즉시 리턴값을 필요로 하는 경우, 즉 즉시 실행을 필요로 하는 경우 해당 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다.
한편, API 실행 요청이 즉시 리턴값을 필요로 하지 않는 경우에 해당 API 실행 요청은 바로 서버 장치(150)로 전달되는 대신, 클라이언트 장치(100) 내 저장부에 임시 저장될 수 있다. 상기 저장부는 다양한 형태로 구성될 수 있으며, 예를 들어 큐(QUEUE), 버퍼(BUFFER) 등과 같은 형태로 구현될 수 있다. 상기 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들은 특정 조건 하에 한꺼번에 서버 장치(150)로 전달될 수 있다. 예를 들어, 소프트웨어 실행부에 의해 화면 업데이트 API 실행 요청이 발생한 경우, 상기 저장부에 저장되어 있는 API 실행 요청들은 더 이상의 지체없이 즉시 실행되어야 할 필요가 있다. 이 경우, 상기 저장부에 저장되어 있는 API 실행 요청들과 화면 업데이트 API 실행 요청은 서버 장치(150)로 전달될 수 있다. 이 경우, 서버 장치(150)의 API 실행부(153) 는 수신된 API 실행 요청들에 기초하여 해당 API들을 순차적으로 실행할 수 있다. 이 경우 API 실행부(153)는 가상화된 그래픽 라이브러리를 구성하는 일부로서 API를 실행할 수 있다.
한편, 일 실시예에서, 렌더링 정보 처리부(103)는 API 실행 요청의 전송을 제어하는 기능을 수행하는 동시에, 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다. 다른 실시예에서, 소프트웨어 실행부(101)는 서버 장치(150)로부터 수신한 렌더링 결과 데이터에 기초하여 영상 표시를 제어하는 기능 또한 수행할 수 있다.
데이터 송수신부(105)는 렌더링 정보 처리부(103)의 제어에 따라 API 실행 요청을 서버 장치(150)로 전달한다. 본 발명에 따른 클라이언트 장치(100) 및 서버 장치(150)는 가상화에 기반하여 영상 처리를 수행하는 시스템을 구성하므로, 도 1에서 서버 장치(150)로 전달되는 API 실행 요청은 “가상 그래픽 API”로 표기되었다.
즉, 본 발명의 실시예에 따른 클라이언트 장치(100)는 그래픽 처리를 위한 API 실행 요청이 발생할 때마다 서버 장치(150)로 전달하는 것이 아니라, API 실행 요청의 특성에 따라 선택적으로 큐(QUEUE) 또는 버퍼(BUFFER) 등과 같은 저장부에 임시 저장하거나 즉시 서버 장치(150)로 전달하도록 함으로써, 클라이언트 장치(100)와 서버 장치(150) 사이의 통신 오버헤드를 최소화할 수 있다. 따라서 복수의 클라이언트 장치들이 서버 장치(150)의 그래픽 처리 자원을 공유하는 경우에 원활한 통신을 수행할 수 있다. 본 발명에 따른 렌더링 정보 처리부(103)의 보다 구체적인 실시예는 도 2를 참조하여 후술하기로 한다.
본 발명에 따른 서버 장치(150)는 클라이언트 장치(100)로부터 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정한다. 따라서, 동일한 패턴을 생성하는 API를 반복적으로 수행하는 것을 방지하여 서버 장치(150)의 한정된 그래픽 처리 자원을 효율적으로 사용할 수 있다. 일반적으로 동일하거나 비슷한 화면을 반복하여 렌더링 하는 경우가 많고, 사용자나 외부의 입력에 의해 렌더링 화면이 달라진다. 따라서 본 발명에서는 원격실행 방법을 수행 시 서버 장치(150)에서 첫 번째 실행되는 패턴인지 확인하는 단계를 거친다. 첫 번째 실행되는 패턴이라면 실행된 히스토리 및 패턴을 저장해 둔다. 외부 입력이나 사용자의 입력이 없을 경우에는 동일한 패턴이 반복되며 재생될 것이므로 이때는 API를 반복 실행하는 대신에 저장된 히스토리에 있는 API 수행 결과, 즉 패턴을 그대로 반복해서 사용한다. 클라이언트 장치(100)에서는 사용자로부터 입력을 받거나 외부 입력에 의해 재생 화면이 변하게 되면 서버 장치(150)로 해당 사실을 전달하고 API 실행 요청을 전달한다. 서버 장치(150)는 새로운 패턴임을 인식하고 해당 패턴 생성 후 이를 저장해 두고 사용하며 상술한 과정을 반복하여 수행한다. 이하에서는 서버 장치(150)의 구체적인 구성 및 동작에 대해서는 아래에서 상술하기로 한다.
서버 장치(150)는 데이터 송수신부(155), 제어부(151) 및 API 실행부(153)를 포함한다. 서버 장치(150)의 데이터 송수신부(155)는 클라이언트 장치(100)로부터 API 실행 요청을 수신한다. 또한, 데이터 송수신부(155)는 제어부(151)의 제어에 따라, 수신한 API 실행 요청에 대응하는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달할 수 있다.
제어부(151)는 수신한 상기 API 실행 요청의 처리를 제어한다. 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 제어부(151)는 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부에 기초하여 상기 API 실행 요청의 처리 여부를 결정할 수 있다. 구체적으로, 수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인 경우, 제어부(151)의 제어에 의해 API 실행부(153)는 수신한 API 실행 요청에 따른 API를 실행하여 대응하는 패턴을 생성하고, 생성된 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달될 수 있다.
수신한 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴이 아닌 경우, 제어부(151)의 제어에 의해 서버 장치(150) 내에 저장되어 있는 패턴, 즉 상기 수신한 API 실행 요청에 대응하는 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달될 수 있다. 이 경우, 수신한 API 실행 요청에 따른 API는 실행되지 않는다. 본 발명에 따른 제어부(151)의 보다 구체적인 실시예는 도 3을 참조하여 후술하기로 한다.
위와 같이, 본 발명의 일 실시예에 따른 서버 장치(150)에 의하면, 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우 API의 실행 없이 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전달하므로, 서버 장치(150) 내 그래픽 처리 자원을 효율적으로 사용할 수 있다.
API 실행부(153)는 제어부(151)의 제어에 기초하여, API 실행 요청을 처리한다. 상술한 바와 같이 수신한 API 실행 요청에 따른 패턴이 이미 실행된 패턴인 경우, API 실행부(153)는 해당 API를 실행하지 않는다. 한편, 수신한 API 실행 요청에 따른 패턴이 실행된 적이 없는 패턴인 경우, API 실행부(153)는 해당 API를 실행하여 패턴을 생성한다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 장치의 렌더링 정보 처리부를 나타내는 블록도이다.
도 2를 참조하면, 렌더링 정보 처리부(200)는 API 요청 제어부(210) 및 API 요청 저장부(230)를 포함할 수 있다. 여기서, API 요청 저장부(230)는 API 요청 제어부(210)의 제어에 따라, API 실행 요청을 임시 저장하는 저장소의 역할을 하며, 큐(QUEUE), 버퍼(BUFFER) 등과 같은 다양한 형태로 구현될 수 있다.
API 요청 제어부(210)는 도 1의 소프트웨어 실행부(101)로부터 수신한 API 실행 요청의 처리를 결정할 수 있다. 구체적으로, API 요청 제어부(210)는 상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 바로 서버 장치(150)로 전달하도록 데이터 송수신부(105)를 제어할 수 있다. 이 경우 상기 API 실행 요청은 API 요청 저장부(230)에 저장되지 않는다.
다른 경우에, API 요청 제어부(210)는 수신한 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우 이를 API 요청 저장부(230)로 전달할 수 있다. 이 경우, API 요청 저장부(230)는 전달받은 API 실행 요청을 임시 저장할 수 있다.
한편, API 요청 저장부(230)에 적어도 하나의 API 실행 요청이 저장되어 있는 상태에서 화면 업데이트를 위한 API 실행 요청이 발생할 수 있다. 상기 화면 업데이트를 위한 API 실행 요청은 상술한 바 있는 “즉시 실행이 필요한 API 실행 요청” 중 하나일 수 있다. 이와 같은 화면 업데이트를 위한 API 실행 요청을 렌더링 정보 처리부(200)가 수신한 경우, API 요청 저장부(230)에 저장되어 있는 API 실행 요청들 또한 서버 장치(150)로 전달될 수 있다. 이 경우 상기 화면 업데이트를 위한 API 실행 요청 또한 서버 장치(150)로 전달된다.
일 실시예에서, 화면 업데이트를 위한 API 실행 요청을 수신하지 않은 경우이더라도, API 요청 저장부(230)의 용량이 가득 찬 경우 더 이상 API 요청 저장부(230)에 API 실행 요청이 저장될 수 없다. 이 경우 API 요청 저장부(230)에 저장된 API 실행 요청들은 서버 장치(150)로 전달되고, 이후에 새롭게 수신하는 API 실행 요청이 API 요청 저장부(230)에 저장될 수 있다.
도 3은 본 발명의 일 실시예에 따른 서버 장치의 제어부를 나타내는 블록도이다.
도 3을 참조하면, 제어부(300)는 패턴 판별부(310) 및 패턴 저장부(330)를 포함할 수 있다. 패턴 저장부(330)는 도 1의 API 실행부(153)에서 실행된 적이 있는 패턴들을 저장할 수 있다. 패턴 판별부(310)는 수신한 API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있는 패턴인지 여부를 판별할 수 있다.
API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있는 경우, 서버 장치(150)는 동일한 패턴을 얻기 위해 API를 반복하여 수행하는 대신에 상기 저장되어 있는 패턴을 렌더링 결과 데이터로서 클라이언트 장치(100)에 전송할 수 있다. 따라서 서버 장치(150)의 그래픽 처리 자원을 효율적으로 사용할 수 있다.
API 실행 요청에 의해 실행되는 패턴이 패턴 저장부(330)에 저장되어 있지 않은 경우, API 실행부(153)에 의해 해당 API가 실행된다. 따라서 이전에 처리된 적이 없던 패턴의 경우 API 실행부(153)에 의해 생성되어 렌더링 결과 데이터로서 클라이언트 장치(100)로 전달된다. 이와 함께, API 실행부(153)에서 생성된 패턴은 제어부(151)로 전달되어 패턴 저장부(330)에 저장된다. 저장된 패턴은 이후의 API 실행 요청에 따른 패턴과 비교될 수 있다.
도 4는 본 발명의 일 실시예에 따라, 클라이언트 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다. 이하에서는 도 1, 도 2 및 도 4를 함께 참조하여 클라이언트 장치에서 수행되는 영상 표시 방법을 설명하기로 한다.
도 4를 참조하면, 클라이언트 장치(100)에 의해 수행되는 영상 표시 방법은 API 실행 요청을 발생하는 단계(S110)를 포함한다. 상기 API 실행 요청은 클라이언트 장치(100) 내 소프트웨어 실행부(101)에 의해 발생할 수 있다.
이후에, API 실행 요청의 특성을 판별하게 된다. 구체적으로, 발생한 API 실행 요청이 화면 업데이트 API에 관한 것인지 판단하고(S120), 아닌 경우 즉시 실행이 필요한 API인지 판단한다(S130).
발생한 API 실행 요청이 화면 업데이트 API에 관한 것인 경우, 해당 API 실행 요청은 서버 장치(150)로 전달된다(S170). 이와 함께, API 요청 저장부(230)에 저장되어 있던 다른 API 실행 요청들 또한 서버 장치(150)로 모두 전달된다. 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다.
발생한 API 실행 요청이 화면 업데이트 API에 관한 것이 아닌 경우, 지금 바로 화면을 업데이트할 필요는 없는 상황이다. 다만, 해당 API 실행 요청이 즉시 리턴값이 필요한 경우인지 판단한다. 즉, 발생한 API 실행 요청이 즉시 실행이 필요한 API인지 여부를 판단한다(S130). 즉시 실행이 필요한 API에 관한 것이면, 해당 API 실행 요청을 서버 장치로 전달한다(S170). 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다.
즉시 실행이 필요한 API에 관한 것이 아니면, 클라이언트 장치(100)와 서버 장치(150) 사이의 통신 오버헤드를 줄이기 위해 해당 API 실행 요청을 API 요청 저장부(230)에 임시 저장한다(S140). 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다.
이후에, API 요청 저장부(230)가 가득 찼는지 여부를 판단한다(S150). API 요청 저장부(230)가 가득 찬 경우, 저장된 API 실행 요청을 서버 장치로 전달하고(S170), 이후 다음 API 실행 요청 발생 단계(S110)로 진행한다. API 요청 저장부(230)가 가득 차지 않은 경우에는 다음 API 실행 요청 발생 단계(S110)로 진행한다.
도 5는 본 발명의 일 실시예에 따라, 서버 장치에서 수행되는 영상 표시 방법을 나타내는 순서도이다. 이하에서는 도 1, 도 3 및 도 5를 함께 참조하여 서버 장치에서 수행되는 영상 표시 방법을 설명하기로 한다.
도 5를 참조하면, 서버 장치(150)에 의해 수행되는 영상 표시 방법은 API 실행 요청을 수신하는 단계(S210)를 포함한다. 상기 API 실행 요청은 클라이언트 장치(100)에서 발생한 것일 수 있다. 이후에, 상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하며, 상기 판별 결과에 기초하여 상기 API 실행 요청을 처리하게 된다.
상기 API 실행 요청에 의해 실행되는 패턴이 최초 실행되는 패턴인지 여부를 판별하기 위해, 서버 장치(150) 내 패턴 저장부(330)에서 상기 패턴을 검색한다(S220). 검색 결과에 기초하여, 해당 패턴이 최초로 실행되는 패턴인지 결정(S230)한다. 최초로 실행되는 패턴이 아닌 경우, 패턴 저장부(330)에 저장되어 있는 상기 패턴을 렌더링 결과 데이터로서 클라이언트 장치(150)로 전송한다(S270).
해당 패턴이 최초로 실행되는 패턴인 경우, API 실행부(153)에 의해 해당 API를 실행한다(S240). 실행 결과에 따라 대응하는 패턴이 생성되며, 데이터 송수신부(155)에 의해 생성된 패턴이 렌더링 결과 데이터로서 클라이언트 장치(100)로 전송된다(S250). 한편, 제어부(151)는 단계(S240)에 의해 생성된 패턴을 패턴 저장부(330)에 저장한다(S260).
본 발명에 따른 클라이언트 장치, 서버 장치 및 영상 처리 방법에 의하면, 소프트웨어 스택이나 라이브러리 또는 GPU 드라이버가 없는 시스템에도 쉽게 적용하여 사용 가능하므로 임베디드 시스템 멀티미디어 그래픽 장치를 유연하게 사용할 수 있다. 실제로 임베디드 시스템을 위한 실시간 운영체제 또는 운영체제 없이 동작하는 베어메탈 형태의 시스템들은 OpenGL ES와 같은 그래픽처리를 위한 소프트웨어를 지원하지 않는 경우가 일반적이다. 따라서 본 발명에 따른 실시예에 의하면 별도의 소프트웨어 스택이나 디바이스 드라이버의 설치 없이도 GPU 장치를 사용할 수 있다. 또한 렌더링 패턴을 감시하여 동일한 패턴이 반복될 경우에는 클라이언트 장치와 서버 장치 간의 데이터 송수신이 필요없게 되므로 성능이 향상되며, 렌더링 속도 또한 개선된다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터를 이용하거나 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터를 이용하거나 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100: 클라이언트 장치 101: 소프트웨어 실행부
103: 렌더링 정보 처리부 105: 데이터 송수신부
150: 서버 장치 151: 제어부
153: API 실행부 155: 데이터 송수신부
200: 렌더링 정보 처리부 210: API 요청 제어부
230: API 요청 저장부 300: 서버 장치
310: 패턴 판별부 330: 패턴 저장부

Claims (20)

  1. 영상 표시를 위하여 API 실행 요청을 서버 장치로 전달하는 클라이언트 장치로서,
    영상 표시를 위한 상기 API 실행 요청을 발생시키는 소프트웨어 실행부;
    발생한 상기 API 실행 요청의 송신을 제어하는 렌더링 정보 처리부; 및
    상기 렌더링 정보 처리부의 제어에 기초하여, 상기 API 실행 요청을 상기 서버 장치로 전달하는 데이터 송수신부를 포함하고,
    상기 렌더링 정보 처리부는, 상기 API 실행 요청을 선택적으로 상기 서버 장치로 전달하도록 제어하는 것을 특징으로 하는 클라이언트 장치.
  2. 제 1 항에 있어서, 상기 렌더링 정보 처리부는,
    상기 API 실행 요청의 처리를 결정하는 API 요청 제어부; 및
    상기 API 실행 요청을 선택적으로 저장하는 API 요청 저장부를 포함하는 것을 특징으로 하는 클라이언트 장치.
  3. 제 2 항에 있어서, 상기 API 요청 제어부는,
    상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하는 경우, 상기 API 실행 요청을 상기 서버 장치로 전달하도록 상기 데이터 송수신부를 제어하는 것을 특징으로 하는 클라이언트 장치.
  4. 제 2 항에 있어서, 상기 API 요청 제어부는,
    상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 즉시 실행을 필요로 하지 않는 경우, 상기 API 실행 요청을 상기 API 요청 저장부로 전달하고,
    상기 API 요청 저장부는 전달받은 상기 API 실행 요청을 임시 저장하는 것을 특징으로 하는 클라이언트 장치.
  5. 제 2 항에 있어서, 상기 API 요청 제어부는,
    상기 API 실행 요청을 분석하여, 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 경우, 상기 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청들 및 상기 화면 업데이트 API 실행 요청을 상기 서버 장치로 전달하도록 상기 API 요청 저장부 및 상기 데이터 송수신부를 제어하는 것을 특징으로 하는 클라이언트 장치.
  6. 제 1 항에 있어서,
    상기 데이터 송수신부는 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 상기 서버 장치로부터 수신하고,
    상기 소프트웨어 실행부는 상기 수신한 렌더링 결과 데이터에 기초하여 영상을 처리하는 것을 특징으로 하는 클라이언트 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 클라이언트 장치에 의해 수행되는 영상 표시 방법으로서,
    API 실행 요청을 발생시키는 단계;
    상기 API 실행 요청의 특성을 판별하는 단계; 및
    상기 판별 결과에 따라 상기 API 실행 요청의 처리를 결정하는 단계를 포함하는 영상 표시 방법.
  14. 제 13 항에 있어서,
    상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요한 API 실행 요청인 것으로 판별된 경우,
    상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 서버 장치로 전달하는 것을 특징으로 하는 영상 표시 방법.
  15. 제 13 항에 있어서,
    상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 즉시 실행이 필요하지 않은 API 실행 요청인 것으로 판별된 경우,
    상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 API 실행 요청을 상기 클라이언트 장치 내 API 요청 저장부에 임시 저장하는 것을 특징으로 하는 영상 표시 방법.
  16. 제 13 항에 있어서,
    상기 API 실행 요청의 특성을 판별하는 단계에서 상기 API 실행 요청이 화면 업데이트 API 실행 요청인 것으로 판별된 경우,
    상기 API 실행 요청의 처리를 결정하는 단계에서는, 상기 클라이언트 장치 내 API 요청 저장부에 저장되어 있는 적어도 하나의 API 실행 요청 및 상기 화면 업데이트 API 실행 요청을 서버 장치로 전달하는 것을 특징으로 하는 영상 표시 방법.
  17. 제 13 항에 있어서,
    서버 장치로부터 상기 API 실행 요청에 대응하는 렌더링 결과 데이터를 수신하는 단계; 및
    상기 렌더링 결과 데이터에 기초하여 영상을 처리하는 단계를 더 포함하는 것을 특징으로 하는 영상 표시 방법.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020160025731A 2016-03-03 2016-03-03 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법 KR102419972B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160025731A KR102419972B1 (ko) 2016-03-03 2016-03-03 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160025731A KR102419972B1 (ko) 2016-03-03 2016-03-03 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법

Publications (2)

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

Family

ID=59967615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160025731A KR102419972B1 (ko) 2016-03-03 2016-03-03 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법

Country Status (1)

Country Link
KR (1) KR102419972B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089044A (ja) 2010-10-22 2012-05-10 Lenovo Singapore Pte Ltd コンピュータのパフォーマンスを向上させる方法およびコンピュータ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100372092B1 (ko) * 2001-02-06 2003-02-14 주식회사 우리기술 바탕화면 동영상 매체재생기 및 이를 이용한 바탕화면의동영상 처리방법과 상기 매체재생기 또는 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
US8134553B2 (en) * 2007-09-24 2012-03-13 Microsoft Corporation Rendering three-dimensional objects on a server computer
KR101401380B1 (ko) * 2010-11-04 2014-05-30 한국전자통신연구원 원격 렌더링 기반의 3d 응용프로그램 실행 장치 및 그 방법
KR20130030124A (ko) * 2011-09-16 2013-03-26 한국전자통신연구원 그래픽 분할 실행을 이용한 3d 콘텐츠 제공 시스템 및 방법
KR101335711B1 (ko) * 2012-01-20 2013-12-04 연세대학교 산학협력단 서버, 연산 처리 방법 및 연산 처리 시스템
KR20140027741A (ko) * 2012-08-27 2014-03-07 한국전자통신연구원 응용 서비스 제공 시스템 및 방법, 응용 서비스를 위한 서버 장치 및 클라이언트 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089044A (ja) 2010-10-22 2012-05-10 Lenovo Singapore Pte Ltd コンピュータのパフォーマンスを向上させる方法およびコンピュータ

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 (ko) 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
JP6140190B2 (ja) 準仮想化された高性能コンピューティングおよびgdi高速化
US20170161865A1 (en) Method and System to Virtualize Graphic Processing Services
US20130210522A1 (en) Data center architecture for remote graphics rendering
WO2018119951A1 (zh) Gpu虚拟化方法、装置、***及电子设备、计算机程序产品
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
US20140059114A1 (en) Application service providing system and method and server apparatus and client apparatus for application service
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
EP3301574B1 (en) Method for managing graphic cards in a computing system
EP3147784A1 (en) Interruption handling method and relevant device of virtual platform
US11875145B2 (en) Virtual machine update while keeping devices attached to the virtual machine
EP3113015B1 (en) Method and apparatus for data communication in virtualized environment
US9575773B2 (en) Monitoring multiple remote desktops on a wireless device
KR102419972B1 (ko) 영상 표시를 위한 클라이언트 장치, 서버 장치 및 영상 표시 방법
US9684529B2 (en) Firmware and metadata migration across hypervisors based on supported capabilities
KR101430729B1 (ko) 소프트웨어 지원 서버 및 그 방법
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 (ko) Gpu 자원 관리 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR101464619B1 (ko) Vdi 클라이언트를 위한 프레임 버퍼 직접 액세스 제어 방법
CN116382838A (zh) gpu虚拟化实施方法

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