[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101668282B1 - System and Method for operating application based Presentation Virtualization - Google Patents

System and Method for operating application based Presentation Virtualization Download PDF

Info

Publication number
KR101668282B1
KR101668282B1 KR1020110073058A KR20110073058A KR101668282B1 KR 101668282 B1 KR101668282 B1 KR 101668282B1 KR 1020110073058 A KR1020110073058 A KR 1020110073058A KR 20110073058 A KR20110073058 A KR 20110073058A KR 101668282 B1 KR101668282 B1 KR 101668282B1
Authority
KR
South Korea
Prior art keywords
load
application
cpu
gpu
user terminal
Prior art date
Application number
KR1020110073058A
Other languages
Korean (ko)
Other versions
KR20130011714A (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 KR1020110073058A priority Critical patent/KR101668282B1/en
Publication of KR20130011714A publication Critical patent/KR20130011714A/en
Application granted granted Critical
Publication of KR101668282B1 publication Critical patent/KR101668282B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 화면 가상화 기반 어플리케이션 구동 시스템 및 방법에 관한 것으로서, 어플리케이션 제공 장치에 접속하여 어플리케이션의 구동을 요청하고, 상기 어플리케이션 제공 장치로부터의 어플리케이션 구동 화면을 디코딩하여 출력하는 사용자 단말, 상기 사용자 단말로부터 어플리케이션 구동 요청 수신 시, 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 근거로 상기 사용자 단말의 요청 수용 가능 여부를 판단하고, 요청 수용이 가능한 경우 CPU 인코더와 GPU 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하여 해당 어플리케이션 구동에 따른 어플리케이션 구동 화면을 상기 결정된 인코더로 인코딩하여 상기 사용자 단말로 전송하는 어플리케이션 제공 장치를 포함한다.
따라서, 본 발명에 따르면, GPU와 CPU의 사용률을 기반으로 하여 어플리케이션 제공 장치에서 실시간으로 video encoding 처리 개수를 최대화할 수 있다.
The present invention relates to a system and method for operating a screen virtualization-based application, and more particularly, to a system and method for operating a screen virtualization-based application, including a user terminal for accessing an application providing apparatus, requesting an application to run, decoding an application running screen from the application providing apparatus, When receiving the drive request, it collects the device load information, determines whether or not the request of the user terminal can be accepted based on the collected device load information, encodes the application running screen of the CPU encoder and the GPU encoder And an application providing apparatus for determining an encoder, encoding an application driving screen according to the application driving, and transmitting the encoded application driving screen to the user terminal.
Therefore, according to the present invention, it is possible to maximize the number of video encoding processes in real time in the application providing apparatus based on the usage rate of the GPU and the CPU.

Description

화면 가상화 기반 어플리케이션 구동 시스템 및 방법{System and Method for operating application based Presentation Virtualization}TECHNICAL FIELD [0001] The present invention relates to a system and a method for operating a screen virtualization-

본 발명은 화면 가상화 기반 어플리케이션 구동 시스템 및 방법에 관한 것으로, 더욱 상세하게는 어플리케이션 제공 장치가 사용자 단말로부터 어플리케이션 구동 요청 수신 시, 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 근거로 상기 사용자 단말의 요청 수용 가능 여부를 판단하고, 요청 수용이 가능한 경우 CPU 인코더와 GPU 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하여 해당 어플리케이션 구동에 따른 어플리케이션 구동 화면을 상기 결정된 인코더로 인코딩하여 상기 사용자 단말로 전송하는 화면 가상화 기반 어플리케이션 구동 시스템 및 방법에 관한 것이다.
More particularly, the present invention relates to a system and method for operating a screen virtualization-based application, and more particularly, to a system and method for operating a screen virtualization-based application, Determining whether the terminal can accept the request, determining an encoder to encode the application running screen of the CPU encoder and the GPU encoder when the request can be accepted, encoding the application running screen according to the application running to the determined encoder, And to a system and method for operating a screen virtualization-based application.

최근에 클라우드(Cloud) 기반 서비스가 활성화 됨에 따라, 서비스나 어플리케이션(application)이 클라우드 장치에서 구동되고 그 결과를 단말을 통해 서비스하는 기술이 요구되고 있다. 특히 서비스 화면과 오디오만을 단말기에서 구동하는 화면 가상화(Presentation Virtualization) 기술이 핵심기술로 요구된다. Recently, with the activation of a cloud-based service, there is a demand for a technology in which a service or an application is run on a cloud device and the result is served through the terminal. In particular, the key technology is required for the presentation virtualization technology that drives only the service screen and audio on the terminal.

화면 가상화 기술은 어플리케이션 제공 장치에서 어플리케이션을 구동하고, 어플리케이션 구동 화면을 단말로 전송하여 단말에서는 화면에 대한 rendering 처리와 사용자 입력만을 처리하도록 함으로써 단말의 성능에 관계없이 복잡한 어플리케이션을 구동 가능 하도록 하는 기술이다.The screen virtualization technology enables an application to run an application in an application providing device and transmits an application running screen to a terminal so that a terminal can process a rendering process and a user input only on a screen, thereby enabling a complicated application to be driven regardless of the performance of the terminal .

또한, 어플리케이션을 어플리케이션 제공 장치에서 구동시키고 구동화면을 video encoding을 통해 압축하여 단말에 전송하고, 단말은 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반 N screen 서비스가 각광받고 있다. 이러한 시스템에서 video encoding은 실시간으로 화면을 압축해야 하고, 어플리케이션 제공 장치는 인코더를 접속한 단말 개수만큼 구동할 필요가 있다. 이때 video encoding은 매우 높은 연산량을 필요로 하고 이 때문에 어플리케이션 제공 장치에서 처리할 수 있는 단말의 개수에 제한이 생겨 더 많은 어플리케이션 제공 장치가 필요하게 되어 서비스의 경제성이 낮아지는 문제가 발생한다.
In addition, the application is driven by the application providing apparatus, the driving screen is compressed through video encoding and transmitted to the terminal, and the terminal reproduces the transmitted video to generate screen virtualization based on N screen service is getting popular. In such a system, the video encoding needs to compress the screen in real time, and the application providing device needs to be driven by the number of terminals connected to the encoder. At this time, the video encoding requires a very high computational complexity, which limits the number of terminals that can be processed by the application providing apparatus, which requires more application providing apparatuses, resulting in lowering the economical efficiency of the service.

한국등록특허 제623710호(2006.09.06), 발명의 명칭: 하드웨어 리소스를 공유하여 복수의 동영상 콘텐츠를 처리하는 방법Korean Patent No. 623710 (2006.09.06), Title of the invention: Method of processing multiple video contents by sharing hardware resources

본 발명은 상기한 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은 CPU(Central Processing Unit)와 GPU(Graphic Processing Unit)의 사용률을 기반으로 실시간으로 video encoding 처리 개수를 최대화할 수 있는 화면 가상화 기반 어플리케이션 구동 시스템 및 방법을 제공하는데 있다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a screen virtualization system capable of maximizing the number of video encoding processes in real time based on a usage rate of a CPU (Central Processing Unit) and a GPU Based application running system and method.

상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 어플리케이션 제공 장치에 접속하여 어플리케이션의 구동을 요청하고, 상기 어플리케이션 제공 장치로부터의 어플리케이션 구동 화면을 디코딩하여 출력하는 사용자 단말, 상기 사용자 단말로부터 어플리케이션 구동 요청 수신 시, 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 근거로 상기 사용자 단말의 요청 수용 가능 여부를 판단하고, 요청 수용이 가능한 경우 CPU(Central Processing Unit) 인코더와 GPU(Graphic Processing Unit) 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하여 해당 어플리케이션 구동에 따른 어플리케이션 구동 화면을 상기 결정된 인코더로 인코딩하여 상기 사용자 단말로 전송하는 어플리케이션 제공 장치를 포함하는 화면 가상화 기반 어플리케이션 구동 시스템이 제공된다. According to an aspect of the present invention, there is provided an information processing apparatus including a user terminal connected to an application providing apparatus, requesting an application to be activated, decoding and outputting an application running screen from the application providing apparatus, A central processing unit (CPU) encoder and a graphics processing unit (GPU), if the request can be accepted, and if the request can be accepted, And an application providing device for deciding an encoder to encode an application running screen of the encoder and encoding the application running screen according to the application driving by the determined encoder and transmitting the encoded application running screen to the user terminal The drive system is provided.

본 발명의 다른 측면에 따르면, 사용자 단말과의 통신을 위한 통신부, 어플리케이션이 저장된 어플리케이션 데이터베이스, 상기 통신부를 통해 사용자 단말이 접속된 경우, 복수의 어플리케이션에 대한 구동버튼들이 상기 사용자 단말에 표시되도록 제어하는 접속 제어부, 상기 통신부를 통해 어플리케이션 구동 요청 신호가 수신된 경우, CPU 및 GPU와 관련된 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 기반으로 평균 부하값을 예측하는 부하 수집부, 상기 예측된 평균 부하값과 상기 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부 및 CPU 인코더와 GPU 인코더 중에서 해당 어플리케이션 구동 화면을 인코딩할 인코더를 결정하는 부하 할당부, 상기 부하 할당부에서 상기 사용자 단말의 요청 수용이 가능하다고 결정된 경우, 상기 어플리케이션 데이터베이스로부터 해당 어플리케이션을 추출하여 구동하는 어플리케이션 구동부, 상기 부하 할당부의 결정에 따라, 상기 어플리케이션 구동부에서 구동된 어플리케이션 구동 화면을 인코딩하여 상기 통신부를 통해 상기 사용자 단말로 전송하는 GPU 인코더부, 상기 부하 할당부의 결정에 따라, 상기 어플리케이션 구동부에서 구동된 어플리케이션 구동 화면을 인코딩하여 상기 통신부를 통해 상기 사용자 단말로 전송하는 CPU 인코더부를 포함하는 어플리케이션 제공 장치가 제공된다. According to another aspect of the present invention, there is provided a communication system including a communication unit for communication with a user terminal, an application database in which an application is stored, and a control unit for controlling driving buttons for a plurality of applications to be displayed on the user terminal when the user terminal is connected through the communication unit A load collecting unit for collecting device load information related to the CPU and the GPU when the application driving request signal is received through the communication unit and for predicting an average load value based on the collected device load information, A load allocator for determining an acceptability of the request of the user terminal and an encoder to encode the corresponding application running screen from the CPU encoder and the GPU encoder using the average load value and the device load information, Determined to be acceptable A GPU encoder for encoding an application driving screen driven by the application driver and transmitting the encoded application driving screen to the user terminal through the communication unit according to the determination of the load allocator, And a CPU encoder unit encoding the application driving screen driven by the application driving unit and transmitting the encoded application driving screen to the user terminal through the communication unit according to the determination of the load allocating unit.

상기 장치 부하 정보는 CPU 부하, GPU 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하율, 현재 접속자 수, 현재 CPU로 구동되는 CPU 인코더 수, 현재 GPU로 구동되는 GPU 인코더 수, 장치에서 허용되는 Max CPU 부하, 장치에서 허용되는 Max GPU 부하, 장치에서 허용되는 Max CPU/GPU간 전송 부하 중 적어도 하나를 포함한다. The device load information includes information such as CPU load, GPU load, CPU load by application driving, CPU load of real time video encoding, GPU load of real time video encoding, data transmission load ratio between CPU and GPU, The number of encoders, the number of GPU encoders driven by the current GPU, the Max CPU load allowed by the device, the Max GPU load allowed by the device, and the Max CPU / GPU transfer load allowed by the device.

상기 부하 수집부는 CPU 및 GPU의 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하를 각각 현재 접속자 수로 나누어 평균 부하값을 예측한다. The load collecting unit predicts the average load value by dividing the load of the CPU and the GPU, the CPU load by the application driving, the CPU load of the real time video encoding, the GPU load of the real time video encoding, and the data transmission load between the CPU and the GPU, .

상기 부하 할당부는

Figure 112011056810679-pat00001
를 만족하는 경우, 상기 사용자 단말의 요청 수용이 가능하다고 판단하되, The load allocator
Figure 112011056810679-pat00001
, It is determined that the request acceptance of the user terminal is possible,

상기 L은 현재 CPU로 인코더 수, Tc는 최대 CPU 부하, a는 하나의 어플리케이션 구동시의 CPU 부하, N은 현재의 접속자 수, c는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 CPU 부하이다.Where L is the current number of encoders by the CPU, Tc is the maximum CPU load, a is the CPU load when one application is running, N is the number of current users, and c is the CPU load of real-

또한, 상기 부하 할당부는

Figure 112016058265670-pat00040
Figure 112016058265670-pat00003
을 동시에 만족하는 경우, GPU 인코더부에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하고, Further, the load allocating unit
Figure 112016058265670-pat00040
Wow
Figure 112016058265670-pat00003
The GPU encoder unit determines to perform encoding of the application running screen,

Figure 112016058265670-pat00041
Figure 112016058265670-pat00005
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00006
를 만족하는 경우, CPU 인코더부에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하되,
Figure 112016058265670-pat00041
and
Figure 112016058265670-pat00005
At the same time
Figure 112016058265670-pat00006
The CPU encoder unit determines to perform encoding of the application driving screen,

상기 g는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하, t는 CPU와 GPU간 데이터 전송 부하의 예측값, N은 현재의 접속자 수, L은 현재 CPU로 구동되는 CPU 인코더 수, M은 현재 GPU로 구동되는 GPU 인코더 수, Tc는 장치에서 허용되는 Max CPU 부하, Tg는 장치에서 허용되는 Max GPU 부하, Tt는 장치에서 허용되는 Max CPU/GPU간 전송 부하이다. Where g is the GPU load of real-time video encoding according to one application run, t is the predicted value of the data transmission load between the CPU and the GPU, N is the number of current connections, L is the number of CPU encoders driven by the current CPU, , Tc is the Max CPU load allowed by the device, Tg is the Max GPU load allowed by the device, and Tt is the Max CPU / GPU transfer load allowed by the device.

상기 GPU 인코더부는 복수 개의 GPU 인코더로 구성되고, 각 GPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩한다. The GPU encoder unit is composed of a plurality of GPU encoders, and each GPU encoder encodes an application driving screen according to a request of each of the different user terminals.

상기 CPU 인코더부는 복수 개의 CPU 인코더로 구성되고, 각 CPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩한다. The CPU encoder unit is composed of a plurality of CPU encoders, and each of the CPU encoders encodes an application driving screen according to a request of a different user terminal.

본 발명의 또 다른 측면에 따르면, (a) 사용자 단말이 어플리케이션 제공 장치에 접속하여 어플리케이션 구동 요청 신호를 전송하는 단계, (b) 상기 어플리케이션 제공 장치가 CPU 및 GPU와 관련된 장치 부하 정보를 수집하는 단계, (c) 상기 어플리케이션 제공 장치가 상기 수집된 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 판단하는 단계, (d) 상기 사용자 단말의 요청 수용이 가능한 경우, 상기 어플리케이션 제공 장치가 상기 장치 부하 정보를 이용하여 CPU 인코더와 GPU 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하는 단계, (e) 상기 어플리케이션 제공 장치가 해당 어플리케이션을 구동하고, 어플리케이션 구동 화면을 상기 결정된 CPU 인코더 또는 GPU 인코더를 통해 인코딩하여 상기 사용자 단말로 전송하는 단계, (f) 상기 사용자 단말이 상기 어플리케이션 제공 장치로부터의 어플리케이션 구동 화면을 디코딩하여 출력하는 단계를 포함하는 화면 가상화 기반 어플리케이션 구동 방법이 제공된다. According to another aspect of the present invention, there is provided a method for controlling an application, the method comprising the steps of: (a) connecting a user terminal to an application providing device and transmitting an application driving request signal; (b) collecting device load information related to a CPU and a GPU (c) determining whether the application providing apparatus can accept a request of the user terminal using the collected device load information; (d) if the request for the user terminal can be accepted, Determining an encoder to encode an application running screen of the CPU encoder and the GPU encoder using the device load information; (e) determining whether the application providing apparatus drives the application and displays the application running screen to the CPU encoder or the GPU encoder And transmits the encoded data to the user terminal , (F) the user terminal is a screen-based virtual application driving method comprising the step of outputting the decoded application driving screen from the application service is provided.

상기 (a)단계는, 상기 사용자 단말이 상기 어플리케이션 제공 장치에 접속하면, 상기 어플리케이션 제공 장치가 어플리케이션 목록이 표시된 어플리케이션 구동 버튼들을 상기 사용자 단말에 제공하는 단계, 상기 사용자 단말이 상기 어플리케이션 구동 버튼들을 화면상에 출력하고, 사용자에 의해 선택된 어플리케이션 목록을 포함하는 어플리케이션 구동 요청 신호를 상기 어플리케이션 제공 장치로 전송하는 단계를 포함한다. Wherein the step (a) comprises the steps of: when the user terminal accesses the application providing apparatus, the application providing apparatus providing the application terminal with the application list displayed with the application list to the user terminal, And transmitting the application driving request signal including the application list selected by the user to the application providing apparatus.

본 발명의 또 다른 측면에 따르면, 어플리케이션 제공 장치가 화면 가상화 기반 어플리케이션을 구동하는 방법에 있어서, (a) 사용자 단말로부터 어플리케이션 구동 요청 신호가 수신된 경우, CPU 및 GPU와 관련된 장치 부하 정보를 수집하는 단계, (b) 상기 수집된 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 판단하는 단계, (c) 상기 사용자 단말의 요청 수용이 가능한 경우, 상기 장치 부하 정보를 이용하여 CPU 인코더와 GPU 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하는 단계, (d) 해당 어플리케이션을 구동하고, 해당 어플리케이션 구동 화면을 상기 결정된 CPU 인코더 또는 GPU 인코더를 통해 인코딩하여 상기 사용자 단말로 전송하는 단계를 포함하는 화면 가상화 기반 어플리케이션 구동 방법이 제공된다. According to another aspect of the present invention, there is provided a method of operating a screen virtualization-based application, the method comprising: (a) collecting device load information related to a CPU and a GPU when an application driving request signal is received from a user terminal (B) determining whether the user terminal can accept a request based on the collected device load information; (c) if the request is acceptable to the user terminal, Determining an encoder to encode an application running screen of the GPU encoder, (d) driving the application, and encoding the application running screen through the determined CPU encoder or GPU encoder and transmitting the encoded application running screen to the user terminal A method of operating a screen virtualization based application is provided.

상기 (b) 단계는,

Figure 112011056810679-pat00007
를 만족하는 경우, 상기 사용자 단말의 요청 수용이 가능하다고 판단하되, The step (b)
Figure 112011056810679-pat00007
, It is determined that the request acceptance of the user terminal is possible,

상기 L은 현재 CPU로 인코더 수, Tc는 최대 CPU 부하값, a는 하나의 어플리케이션 구동시의 CPU 부하, N은 현재의 접속자 수, c는 하나의 어플리케이션 구동시에 따른 실시간 비디오 인코딩의 CPU 부하이다. Where L is the current number of encoders by the CPU, Tc is the maximum CPU load value, a is the CPU load when one application is running, N is the number of current users, and c is the CPU load of real-

상기 (c) 단계는,

Figure 112016058265670-pat00042
Figure 112016058265670-pat00009
을 동시에 만족하는 경우, GPU 인코더에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하고, The step (c)
Figure 112016058265670-pat00042
Wow
Figure 112016058265670-pat00009
, It is determined that the GPU encoder performs encoding of the application running screen,

Figure 112016058265670-pat00043
Figure 112016058265670-pat00011
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00012
를 만족하는 경우, CPU 인코더에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하되,
Figure 112016058265670-pat00043
and
Figure 112016058265670-pat00011
At the same time
Figure 112016058265670-pat00012
, The CPU encoder determines to perform encoding of the application running screen,

상기 g는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하, t는 CPU와 GPU간 데이터 전송 부하의 예측값, N은 현재의 접속자 수, L은 현재 CPU로 구동되는 CPU 인코더 수, M은 현재 GPU로 구동되는 GPU 인코더 수, Tc는 장치에서 허용되는 Max CPU 부하, Tg는 장치에서 허용되는 Max GPU 부하, Tt는 장치에서 허용되는 Max CPU/GPU간 전송 부하를 말한다. Where g is the GPU load of real-time video encoding according to one application run, t is the predicted value of the data transmission load between the CPU and the GPU, N is the number of current connections, L is the number of CPU encoders driven by the current CPU, Tc is the maximum CPU load allowed by the device, Tg is the Max GPU load allowed by the device, and Tt is the maximum CPU / GPU transfer load allowed by the device.

상기

Figure 112016058265670-pat00044
Figure 112016058265670-pat00014
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00015
를 만족하지 않은 경우, 상기 사용자 단말에 요청 수용 불가 메시지를 전송한다. remind
Figure 112016058265670-pat00044
and
Figure 112016058265670-pat00014
At the same time
Figure 112016058265670-pat00015
, It transmits a request acceptance message to the user terminal.

상술한 바와 같이 본 발명에 따르면, 어플리케이션 제공 장치가 CPU(Central Processing Unit)와 GPU(Graphic Processing Unit)의 사용률을 기반으로 실시간으로 video encoding 처리 개수를 최대화할 수 있다.
As described above, according to the present invention, an application providing apparatus can maximize the number of video encoding processes in real time based on a usage rate of a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit).

도 1은 본 발명에 따른 화면 가상화 기반 어플리케이션 구동 시스템을 나타낸 도면.
도 2는 본 발명에 따른 어플리케이션 제공 장치의 구성을 개략적으로 나타낸 블럭도.
도 3은 본 발명에 따른 사용자 단말의 구성을 개략적으로 나타낸 블럭도.
도 4는 본 발명에 따른 화면 가상화 기반 어플리케이션 구동 방법을 나타낸 도면.
도 5는 본 발명에 따른 어플리케이션 제공 장치가 화면 가상화 기반 어플리케이션 구동하는 방법을 나타낸 흐름도.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram illustrating a screen virtualization-based application operating system according to the present invention.
2 is a block diagram schematically showing a configuration of an application providing apparatus according to the present invention.
3 is a block diagram schematically illustrating a configuration of a user terminal according to the present invention;
4 illustrates a method of driving an application based on screen virtualization according to the present invention.
5 is a flowchart illustrating a method of operating an application based on a screen virtualization by an application providing apparatus according to the present invention.

본 발명의 전술한 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하 상세한 설명에 의해 보다 명확하게 이해될 것이다.The foregoing and other objects, features, and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.

도 1은 본 발명에 따른 화면 가상화 기반 어플리케이션 구동 시스템을 나타낸 도면이다. 1 is a diagram illustrating a screen virtualization-based application driving system according to the present invention.

도 1을 참조하면, 화면 가상화 기반 어플리케이션 구동 시스템은 사용자 단말(100)로부터의 어플리케이션 구동 요청에 따라 해당 어플리케이션을 구동하고, 화면 가상화 기술을 이용하여 어플리케이션 구동 화면을 상기 사용자 단말(100)에 제공하는 어플리케이션 제공 장치(200)를 포함한다.1, a screen virtualization-based application operating system drives an application in response to an application activation request from the user terminal 100, and provides an application activation screen to the user terminal 100 using a screen virtualization technology And an application providing apparatus 200.

상기 화면 가상화(Presentation Virtualization)는 어플리케이션을 어플리케이션 제공 장치(200)에서 구동하고, 그 구동에 따른 어플리케이션 구동 화면과 오디오를 인코딩하여 상기 사용자 단말(100)로 제공하는 서비스이다.The presentation virtualization is a service that drives an application on an application providing apparatus 200, encodes an application running screen and audio according to the application, and provides the application running screen and audio to the user terminal 100.

상기 사용자 단말(100)은 상기 어플리케이션 제공 장치(200)에 접속하여 사용자에 의해 선택된 어플리케이션의 구동을 요청하고, 상기 어플리케이션 제공 장치(200)로부터의 어플리케이션 구동 화면 및 오디오를 디코딩하여 출력한다.The user terminal 100 accesses the application providing apparatus 200 to request the application selected by the user and decodes and outputs the application running screen and audio from the application providing apparatus 200.

즉, 상기 사용자 단말(100)은 어플리케이션 제공 장치(200)로부터 다수의 어플리케이션에 대한 각각의 구동버튼을 제공받아 화면 상에 디스플레이하고, 다수의 어플리케이션 중 하나가 선택되면, 상기 선택된 어플리케이션의 구동에 따른 어플리케이션 구동 화면을 어플리케이션 제공 장치(200)로부터 수신하여 출력한다. 여기서, 사용자 단말(100)은 어플리케이션의 구동 요청을 입력할 수 있는 입력 기능과, 디지털 미디어를 재생할 수 있는 미디어 재생기능을 구비한 TV, LCD 모니터, 프로젝션 TV, 빔 프로젝트 장치, 모바일 장치 등을 포함한다. That is, the user terminal 100 receives each of the drive buttons for a plurality of applications from the application providing device 200 and displays it on the screen, and when one of the plurality of applications is selected, Receives an application running screen from the application providing apparatus 200 and outputs the received application running screen. Here, the user terminal 100 includes a TV, an LCD monitor, a projection TV, a beam project device, a mobile device, and the like having an input function for inputting a drive request of an application and a media playback function for playing digital media do.

상기와 같은 사용자 단말(100)에 대한 상세한 설명은 도 3을 참조하기로 한다. The user terminal 100 will be described in detail with reference to FIG.

상기 어플리케이션 제공 장치(200)는 상기 사용자 단말(100)로부터 어플리케이션 구동 요청 신호를 수신한 경우, CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)에 관련된 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 이용하여 상기 사용자 단말(100)의 요청 수용 가능 여부 및 어플리케이션 구동 화면의 인코딩을 CPU 인코더 또는 GPU 인코더 중 어디에 할당할지를 결정한다. 여기서, 상기 장치 부하 정보는 CPU 부하, GPU 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하, 현재 접속자 수, 현재 CPU로 구동되는 CPU 인코더 수, 현재 GPU로 구동되는 GPU 인코더 수, 허용되는 Max CPU 부하, 허용되는 Max GPU 부하, 허용되는 Max CPU/GPU간 전송 부하 등을 포함한다. 여기서, 상기 CPU와 GPU간 데이터 전송 부하는 GPU에서 어플리케이션 구동 화면의 인코딩 발생시 발생한다.The application providing apparatus 200 collects device load information related to a CPU (Central Processing Unit) and a GPU (Graphic Processing Unit) when the application providing apparatus 200 receives an application driving request signal from the user terminal 100, It is determined whether the request of the user terminal 100 can be accepted and the encoding of the application running screen is assigned to the CPU encoder or the GPU encoder using the load information. Here, the device load information includes information such as a CPU load, a GPU load, a CPU load due to application driving, a CPU load of real-time video encoding, a GPU load of real time video encoding, a data transmission load between a CPU and a GPU, The maximum number of CPU encoders, the number of GPU encoders driven by the current GPU, the maximum allowed CPU load, the allowed maximum GPU load, and the allowed Max CPU / GPU transmission load. Here, the data transmission load between the CPU and the GPU occurs when an encoding of the application driving screen occurs in the GPU.

또한, 상기 어플리케이션 제공 장치(200)는 상기 사용자 단말(100)의 요청 수용이 가능한 경우, 해당 어플리케이션을 구동하고 그 어플리케이션 구동 화면을 상기 결정된 CPU 인코더 또는 GPU 인코더를 통해 인코딩하여 상기 사용자 단말(100)로 전송한다. When the application providing apparatus 200 can accept a request from the user terminal 100, the application providing apparatus 200 drives the corresponding application and encodes the application running screen through the determined CPU encoder or GPU encoder, Lt; / RTI >

또한, 어플리케이션 제공 장치(200)는 다수의 어플리케이션에 대한 각각의 구동버튼을 상기 사용자 단말(100)에 전송하고, 사용자 단말(100)로부터 구동 요청된 어플리케이션을 구동하여 발생되는 오디오 및 비디오를 인코딩하여 상기 사용자 단말(100)로 전송한다.In addition, the application providing apparatus 200 transmits each of the drive buttons for a plurality of applications to the user terminal 100, encodes the audio and video generated by driving the application requested to be driven from the user terminal 100 To the user terminal (100).

또한, 상기 어플리케이션 제공 장치(200)는 예컨대, PC(Personal Computer)와 같이 오디오 및 비디오로 구성된 멀티미디어 데이터를 재생하거나 편집, 수정, 제어할 수 있는 어플리케이션을 비롯해 다수 개의 어플리케이션을 구비하고, 어플리케이션을 구동하는 장치이다. 여기서, 어플리케이션 제공 장치(200)는 어플리케이션을 실행할 수 있는 데스크탑(Desktop) PC, 노트북(Notebook) PC, 고성능 모바일 단말기 등을 포함한다.The application providing apparatus 200 may include a plurality of applications including an application capable of playing, editing, modifying, and controlling multimedia data composed of audio and video, for example, a PC (Personal Computer) . Here, the application providing apparatus 200 includes a desktop PC, a notebook PC, a high-performance mobile terminal, and the like capable of executing applications.

또한, 상기 어플리케이션 제공 장치(200)는 클라우드 컴퓨팅 기반으로 동작될 수 있다. Also, the application providing apparatus 200 may be operated based on cloud computing.

상기와 같은 어플리케이션 제공 장치(200)에 대한 상세한 설명은 도 2를 참조하기로 한다.The application providing apparatus 200 will be described in detail with reference to FIG.

도 2는 본 발명에 따른 어플리케이션 제공 장치의 구성을 개략적으로 나타낸 블럭도이다.2 is a block diagram schematically showing the configuration of an application providing apparatus according to the present invention.

도 2를 참조하면, 어플리케이션 제공 장치(200)는 사용자 단말과의 통신을 위한 통신부(202), 어플리케이션이 저장된 어플리케이션 데이터베이스(204), 접속 제어부(206), 부하 수집부(208), 부하 할당부(210), 어플리케이션 구동부(212), GPU 인코더부(216), CPU 인코더부(214)를 포함한다.2, the application providing apparatus 200 includes a communication unit 202 for communicating with a user terminal, an application database 204 in which an application is stored, a connection control unit 206, a load collecting unit 208, An application driver 212, a GPU encoder unit 216, and a CPU encoder unit 214.

상기 접속 제어부(206)는 상기 통신부(202)를 통해 사용자 단말이 접속된 경우, 상기 사용자 단말에 다수의 어플리케이션에 대한 각각의 구동버튼이 표시되도록 제어한다.When the user terminal is connected through the communication unit 202, the connection control unit 206 controls the user terminal to display respective drive buttons for a plurality of applications.

또한, 상기 접속 제어부(206)는 사용자 단말로부터 어플리케이션 구동 요청 신호가 수신된 경우, 해당 어플리케이션을 구동시키기 위한 어플리케이션 구동 명령을 상기 부하 수집부(208)에 전송한다. 여기서, 상기 어플리케이션 구동 요청 신호는 사용자 단말 식별정보, 해당 어플리케이션 식별정보 등을 포함한다. In addition, when the application driving request signal is received from the user terminal, the connection control unit 206 transmits an application driving command for driving the application to the load collection unit 208. [ Here, the application driving request signal includes user terminal identification information, corresponding application identification information, and the like.

상기 부하 수집부(208)는 어플리케이션 구동 명령이 수신되면, CPU와 GPU에 관련된 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 기반으로 평균 부하값을 예측한다. 즉, 상기 부하 수집부(208)는 CPU 부하, GPU 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하를 현재 접속자 수로 나누어 평균 부하값을 예측한다. 여기서, 상기 예측된 평균 부하값은 하나의 어플리케이션 구동에 따른 CPU 부하, 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 CPU 부하, 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하를 말한다. When the application driving command is received, the load collecting unit 208 collects device load information related to the CPU and the GPU, and predicts an average load value based on the collected device load information. That is, the load collection unit 208 divides the CPU load, the GPU load, the CPU load due to the application driving, the CPU load of the real-time video encoding, the GPU load of the real-time video encoding, Predict the load value. Here, the predicted average load value refers to a CPU load of one application, a CPU load of real-time video encoding according to one application, and a GPU load of real-time video encoding according to one application.

상기 부하 할당부(210)는 상기 예측된 평균 부하값과 상기 장치 부하 정보를 이용하여 사용자 단말의 요청 수용 가능 여부 및 어플리케이션 구동 화면의 인코딩을 CPU 인코더 또는 GPU 인코더 중 어디에 할당할지를 결정한다. The load allocator 210 determines whether to accept the request of the user terminal and allocate the encoding of the application running screen to the CPU encoder or the GPU encoder using the predicted average load value and the device load information.

먼저, 상기 부하 할당부(210)는 수학식 1을 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 결정한다. First, the load allocator 210 determines whether the user terminal can accept a request using Equation (1).

Figure 112011056810679-pat00016
Figure 112011056810679-pat00016

여기서, 상기 L은 현재 CPU로 구동되는 CPU 인코더 수, Tc는 최대 CPU 부하 값, a는 하나의 어플리케이션 구동시의 CPU 부하, N은 현재 접속자 수, c는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 CPU 부하를 말한다.Here, L is the number of CPU encoders driven by the current CPU, Tc is the maximum CPU load value, a is the CPU load at the time of driving one application, N is the number of current users, and c is the number of current users CPU load.

상기 부하 할당부(210)는 상기 수학식 1을 만족하는 경우, 상기 사용자 단말의 어플리케이션 구동 요청을 수용하고, 만족하지 않은 경우 상기 사용자 단말의 어플리케이션 구동 요청을 수용하지 않는다.If the load allocation unit 210 satisfies Equation (1), the load allocating unit 210 accepts the application driving request of the user terminal, and if not satisfied, the load allocating unit 210 does not accept the application driving request of the user terminal.

다시 말하면, 상기 부하 할당부(210)는 상기 수학식 1을 만족하지 못하면, 어플리케이션을 구동할 CPU 연산량이 부족하므로 추가 사용자를 받지 못함을 알린다.In other words, if the load allocation unit 210 does not satisfy Equation (1), the load allocation unit 210 informs that the additional user is not received because the CPU operation amount to drive the application is insufficient.

다음으로, 상기 부하 할당부(210)는 수학식 2와 수학식 3을 동시에 만족하는지의 여부를 이용하여 어플리케이션 구동 화면을 인코딩할 인코더를 결정한다. Next, the load allocator 210 determines an encoder to encode an application driving screen by using Equation (2) and Equation (3) simultaneously.

Figure 112011056810679-pat00017
Figure 112011056810679-pat00017

Figure 112011056810679-pat00018
Figure 112011056810679-pat00018

여기서, g는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하, t는 CPU와 GPU간 데이터 전송 부하의 예측값, N은 현재 접속자 수, M은 현재 GPU로 구동되는 GPU 인코더 수, Tg는 장치에서 허용되는 Max GPU 부하값, Tt는 장치에서 허용되는 Max CPU/GPU간 전송 부하값을 말한다.Where g is the GPU load of real-time video encoding according to the driving of one application, t is the predicted value of the data transmission load between CPU and GPU, N is the number of current users, M is the number of GPU encoders driven by the current GPU, Allowable Max GPU load value, and Tt is the Max CPU / GPU transfer load value allowed by the device.

상기 부하 할당부(210)는 상기 수학식 2와 수학식 3을 동시에 만족하는 경우, GPU 인코더에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정한다.If the load allocating unit 210 simultaneously satisfies Equation (2) and Equation (3), the load allocating unit 210 determines to encode the corresponding application driving screen in the GPU encoder.

또한, 상기 부하 할당부(210)는 상기 수학식 2와 수학식 3을 동시에 만족하지 않으면, 수학식 4를 만족하는지의 여부를 이용하여 CPU 인코더에 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정한다.If the load allocation unit 210 does not satisfy Equations 2 and 3 simultaneously, the load allocation unit 210 decides to encode the corresponding application running screen to the CPU encoder using whether or not Equation (4) is satisfied.

Figure 112011056810679-pat00019
Figure 112011056810679-pat00019

여기서, 상기 c는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 CPU 부하, Tc는 장치에서 허용되는 Max CPU 부하값, N은 현재 접속자 수, L은 현재 CPU로 구동되는 CPU 인코더 수를 말한다.Here, c is a CPU load of real-time video encoding according to one application driving, Tc is a maximum CPU load value allowed by the device, N is the number of current users, and L is the number of CPU encoders driven by the current CPU.

즉, 상기 부하 할당부(210)는 상기 수학식 2와 수학식 3을 동시에 만족하지 않으면서, 상기 수학식 4를 만족하면, CPU 인코더가 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정한다.That is, the load allocator 210 does not satisfy Equations (2) and (3) simultaneously, and if the Equation (4) is satisfied, the CPU encoder decides to perform encoding of the application running screen.

만약, 상기 수학식 2와 수학식 3을 동시에 만족하지 않으면서 상기 수학식 4를 만족하지 않으면, 상기 부하 할당부(210)는 상기 사용자 단말의 요청을 수용하지 않는다.If Equation (2) and Equation (3) are not satisfied simultaneously and Equation (4) is not satisfied, the load allocator 210 does not accept the request of the user terminal.

상기 어플리케이션 구동부(212)는 상기 부하 할당부(210)에서 상기 사용자 단말의 요청 수용이 가능하다고 판단된 경우, 상기 어플리케이션 데이터베이스(204)로부터 해당 어플리케이션을 추출하여 구동한다. 즉, 상기 어플리케이션 구동부(212)는 상기 어플리케이션 구동 요청 신호를 분석하여 사용자 단말 식별정보, 해당 어플리케이션을 판단하고, 상기 판단된 어플리케이션을 상기 어플리케이션 데이터베이스(204)로부터 추출하여 구동한다.The application driver 212 extracts the application from the application database 204 and drives the application when it is determined that the request can be accepted by the load allocator 210. That is, the application driver 212 analyzes the application driving request signal to determine the user terminal identification information and the application, extracts the determined application from the application database 204, and drives the extracted application.

상기 GPU 인코더부(216)와 상기 CPU 인코더부(214)는 상기 어플리케이션 구동부(212)에서 구동된 어플리케이션 구동 화면을 인코딩하여 상기 통신부(202)를 통해 상기 사용자 단말로 전송한다.The GPU encoder unit 216 and the CPU encoder unit 214 encode an application driving screen driven by the application driving unit 212 and transmit the encoded application driving screen to the user terminal through the communication unit 202.

상기 GPU 인코더부(216)는 복수개의 GPU 인코더로 구성되어 있고, 각 GPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩한다. The GPU encoder 216 is composed of a plurality of GPU encoders, and each GPU encoder encodes an application driving screen according to a request of each of the different user terminals.

상기 CPU 인코더부(214)는 복수개의 CPU 인코더로 구성되어 있고, 각 CPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩한다. 이때, 상기 CPU 인코더(214)와 GPU 인코더(216)는 각 사용자 단말의 사양정보(예를 들면, 코덱 정보임)에 따라 다르게 인코딩을 수행할 수 있다. The CPU encoder unit 214 is composed of a plurality of CPU encoders, and each of the CPU encoders encodes an application driving screen according to a request from a different user terminal. At this time, the CPU encoder 214 and the GPU encoder 216 may encode differently according to specification information (e.g., codec information) of each user terminal.

상기에서는 상기 GPU 인코더부(216)와 상기 CPU 인코더부(214)가 어플리케이션 구동 화면을 인코딩하는 것만을 설명하였으나, 오디오가 존재하는 어플리케이션의 경우 오디오도 함께 인코딩함은 당연하다.In the above description, the GPU encoder 216 and the CPU encoder 214 encode the application-driven screen. However, in the case of an application in which audio is present, it is natural that the audio is also encoded.

도 3은 본 발명에 따른 사용자 단말의 구성을 개략적으로 나타낸 블럭도이다. 3 is a block diagram schematically illustrating the configuration of a user terminal according to the present invention.

도 3을 참조하면, 사용자 단말(100)은 어플리케이션 제공 장치와의 통신을 위한 통신부(102), 출력부(104), 화면 제어부(106), 어플리케이션 구동 요청부(108), 디코딩부(110)를 포함한다.3, the user terminal 100 includes a communication unit 102, an output unit 104, a screen control unit 106, an application driving request unit 108, a decoding unit 110, .

상기 출력부(104)는 상기 통신부(102)를 통해 어플리케이션 제공 장치로부터 제공받은 다수의 어플리케이션에 대한 구동버튼들과 어플리케이션 구동 화면을 출력한다. 여기서, 상기 다수의 어플리케이션에 대한 구동버튼들은 어플리케이션 목록 형태일 수 있다. The output unit 104 outputs driving buttons and application driving screens for a plurality of applications provided from the application providing apparatus through the communication unit 102. [ Here, the drive buttons for the plurality of applications may be in the form of an application list.

상기 화면 제어부(106)는 상기 어플리케이션 제공 장치로부터 화면 가상화 기술을 통해 다수의 어플리케이션에 대한 각각의 구동버튼을 제공받아 상기 출력부(104)의 화면상에 표시되도록 제어한다.The screen control unit 106 receives the respective drive buttons for a plurality of applications through the screen virtualization technology from the application providing apparatus, and controls the display unit 104 to display the drive buttons.

상기 어플리케이션 구동 요청부(108)는 상기 출력부(104)에 출력된 다수의 어플리케이션 목록 중에서 사용자에 의해 하나가 선택되면, 상기 선택된 어플리케이션의 구동을 요청하는 어플리케이션 구동 요청 신호를 상기 어플리케이션 제공 장치로 전송한다. 상기 어플리케이션 구동 요청 신호는 사용자 단말 식별정보, 어플리케이션 식별정보, 사용자 단말 사양정보(예를 들면, 코덱 정보, 해상도, 사이즈 정보 등을 포함함) 등을 포함한다.When one of the plurality of application lists output from the output unit 104 is selected by the user, the application driving request unit 108 transmits an application driving request signal for requesting the selected application to the application providing apparatus do. The application driving request signal includes user terminal identification information, application identification information, user terminal specification information (including, for example, codec information, resolution, size information, etc.).

상기 디코딩부(110)는 상기 어플리케이션 제공 장치로부터 전송된 어플리케이션 구동 화면과 오디오를 디코딩하여 상기 출력부(104)를 통해 출력한다.The decoding unit 110 decodes the application driving screen and audio transmitted from the application providing apparatus and outputs the decoding result through the output unit 104.

도 4는 본 발명에 따른 화면 가상화 기반 어플리케이션 구동 방법을 나타낸 도면이다. 4 is a diagram illustrating a method of driving an application based on a screen virtualization according to the present invention.

도 4를 참조하면, 사용자 단말은 어플리케이션 제공 장치에 접속하여 어플리케이션 구동 요청 신호를 전송한다(S402). 즉, 사용자 단말이 상기 어플리케이션 제공 장치에 접속하면, 상기 어플리케이션 제공 장치는 어플리케이션 목록이 표시된 어플리케이션 구동 버튼들을 상기 사용자 단말에 제공한다. 상기 사용자 단말은 상기 어플리케이션 구동 버튼들을 화면상에 출력하고, 사용자는 구동을 원하는 어플리케이션 구동 버튼을 선택한다. 그러면, 상기 사용자 단말은 상기 선택된 어플리케이션 목록을 포함하는 어플리케이션 구동 요청 신호를 상기 어플리케이션 제공 장치로 전송한다.Referring to FIG. 4, the user terminal accesses an application providing apparatus and transmits an application run request signal (S402). That is, when the user terminal accesses the application providing apparatus, the application providing apparatus provides the application terminal with the application list showing the application list to the user terminal. The user terminal outputs the application driving buttons on the screen, and the user selects an application driving button to be driven. Then, the user terminal transmits an application activation request signal including the selected application list to the application providing device.

상기 S402가 수행되면, 상기 어플리케이션 제공 장치는 CPU 및 GPU와 관련된 장치 부하 정보를 수집하고(S404), 상기 수집된 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 판단한다(S406). 즉, 상기 어플리케이션 제공 장치는 현재 CPU로 구동되는 CPU 인코더 수에 여유가 있는지를 판단하고, CPU 인코더 수에 여유가 있는 경우 상기 사용자 단말의 어플리케이션 구동 요청을 허용한다.In step S402, the application providing apparatus collects device load information related to the CPU and the GPU in step S404, and determines whether the user terminal can accept the request based on the collected device load information in step S406. That is, the application providing apparatus determines whether the number of CPU encoders driven by the current CPU is sufficient, and permits a request to drive the application of the user terminal when there is room in the number of the CPU encoders.

상기 S406의 판단결과 상기 사용자 단말의 요청 수용이 가능한 경우, 상기 어플리케이션 제공 장치는 상기 장치 부하 정보를 이용하여 어플리케이션 구동 화면의 인코딩을 CPU 인코더 또는 GPU 인코더 중 어느 인코더로 할 것인지를 결정한다(S408). 즉, 상기 어플리케이션 제공 장치는 수학식 2 내지 수학식 4를 이용하여 어플리케이션 구동 화면을 인코딩할 인코더를 결정한다. If it is determined in step S406 that the request can be accepted by the user terminal, the application providing apparatus decides which of the CPU encoder and the GPU encoder to encode the application running screen using the device load information (S408) . That is, the application providing apparatus determines an encoder to encode an application running screen using Equations (2) to (4).

상기 어플리케이션 구동 화면을 인코딩할 인코더가 결정되면, 상기 어플리케이션 제공 장치는 해당 어플리케이션을 구동하고(S410), 어플리케이션 구동 화면을 상기 결정된 CPU 인코더 또는 GPU 인코더를 통해 인코딩하여(S412) 상기 사용자 단말로 전송한다(S414). 이때, 상기 어플리케이션 제공 장치는 오디오도 함께 인코딩하여 상기 사용자 단말로 전송한다.When the encoder to encode the application driving screen is determined, the application providing apparatus drives the application (S410), encodes the application driving screen through the determined CPU encoder or GPU encoder (S412), and transmits the encoded application driving screen to the user terminal (S414). At this time, the application providing apparatus also encodes audio and transmits it to the user terminal.

그러면, 상기 사용자 단말은 상기 어플리케이션 제공 장치로부터의 어플리케이션 구동 화면을 디코딩하여 출력한다(S416).Then, the user terminal decodes and outputs an application running screen from the application providing apparatus (S416).

만약, 상기 S406의 판단결과 상기 사용자 단말의 요청 수용이 가능하지 않으면, 상기 어플리케이션 제공 장치는 상기 사용자 단말로 어플리케이션 구동 불가 메시지를 전송한다(S418). If it is determined in step S406 that the user terminal can not accept the request, the application providing apparatus transmits an application operation disable message to the user terminal in step S418.

도 5는 본 발명에 따른 어플리케이션 제공 장치가 화면 가상화 기반 어플리케이션 구동하는 방법을 나타낸 흐름도이다.FIG. 5 is a flowchart illustrating a method of operating an application for screen virtualization according to an embodiment of the present invention.

도 5를 참조하면, 어플리케이션 제공 장치는 사용자 단말로부터 어플리케이션 구동 요청 신호가 수신되면(S502), CPU 및 GPU와 관련된 장치 부하 정보를 수집한다(S504). Referring to FIG. 5, when an application driving request signal is received from a user terminal (S502), the application providing apparatus collects device load information related to the CPU and the GPU (S504).

상기 S504의 수행 후, 상기 어플리케이션 제공 장치는 상기 수집된 장치 부하 정보를 기반으로 평균 부하값을 예측하고(S506), 상기 예측된 평균 부하값과 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 판단한다(S508). 즉, 상기 어플리케이션 제공 장치는 CPU의 부하, GPU의 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하를 현재 접속자 수로 나누어 평균 부하값을 예측한다. After the execution of step S504, the application providing apparatus predicts an average load value based on the collected device load information (S506). The application providing apparatus estimates an average load value based on the collected device load information (S508). That is, the application providing apparatus divides the load of the CPU, the load of the GPU, the CPU load by the application driving, the CPU load of the real time video encoding, the GPU load of the real time video encoding, Estimate the value.

그런 다음 상기 어플리케이션 제공 장치는 수학식 1을 만족하는지의 여부를 판단하여, 만족하는 경우 상기 사용자 단말의 요청 수용이 가능하다고 판단한다. Then, the application providing apparatus judges whether or not the equation (1) is satisfied, and judges that the request acceptance of the user terminal is possible if the equation (1) is satisfied.

상기 S508의 판단결과 상기 사용자 단말의 요청 수용이 가능한 경우, 상기 어플리케이션 제공 장치는 GPU 인코더부 관련 조건을 만족하는지의 여부를 판단한다(S510). 상기 GPU 인코더부 관련 조건은 수학식 2 및 수학식 3을 말한다. If it is determined in step S508 that the user terminal can accept the request, the application providing apparatus determines whether the GPU encoder unit related condition is satisfied (S510). The GPU encoder section related conditions refer to Equation (2) and Equation (3).

상기 S510의 판단결과 상기 GPU 인코더부 관련 조건을 만족하는 경우, 상기 어플리케이션 제공 장치는 어플리케이션 구동 화면을 인코딩할 인코더를 GPU 인코더로 결정한다(S512).If the condition of the GPU encoder unit is satisfied as a result of the determination in step S510, the application providing apparatus determines the encoder to encode the application running screen by the GPU encoder (S512).

그런 다음 상기 어플리케이션 제공 장치는 해당 어플리케이션을 구동하고(S514), 어플리케이션 구동 화면을 상기 결정된 GPU 인코더를 통해 인코딩하여 상기 사용자 단말로 전송한다(S516).Then, the application providing apparatus drives the corresponding application (S514), encodes the application running screen through the determined GPU encoder, and transmits the encoded application running screen to the user terminal (S516).

만약, 상기 S510의 판단결과 GPU 인코더부 관련 조건을 만족하지 않으면, 상기 어플리케이션 제공 장치는 CPU 인코더부 관련 조건을 만족하는지의 여부를 판단한다(S520). 상기 CPU 인코더부 관련 조건은 수학식 4를 말한다. If it is determined in operation S510 that the GPU encoder unit related condition is not satisfied, the application providing apparatus determines whether the condition related to the CPU encoder unit is satisfied (S520). The condition related to the CPU encoder section is Equation (4).

상기 S520의 판단결과 CPU 인코더부 관련 조건을 만족하면, 상기 어플리케이션 제공 장치는 해당 어플리케이션 구동 화면을 인코딩할 인코더를 CPU 인코더로 결정한다(S522).If it is determined in operation S520 that the conditions related to the CPU encoder unit are satisfied, the application providing apparatus determines the encoder to encode the application running screen as a CPU encoder in operation S522.

그런 다음 상기 어플리케이션 제공 장치는 해당 어플리케이션을 구동하고(S524), 어플리케이션 구동 화면을 상기 결정된 CPU 인코더를 통해 인코딩하여 상기 사용자 단말로 전송한다(S526).Then, the application providing apparatus drives the corresponding application (S524), encodes the application running screen through the determined CPU encoder, and transmits the encoded application running screen to the user terminal (S526).

만약, 상기 S508의 판단결과 상기 사용자 단말의 요청 수용이 불가능한 경우, 상기 어플리케이션 제공 장치는 요청 수용 불가 메시지를 상기 사용자 단말로 전송한다(S518).If it is determined in step S508 that the user terminal can not accept the request, the application providing apparatus transmits a request acceptance message to the user terminal (step S518).

이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Thus, those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the embodiments described above are to be considered in all respects only as illustrative and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

이상과 같이 본 발명의 화면 가상화 기반 어플리케이션 구동 시스템 및 방법은 GPU와 CPU의 사용률을 기반으로 하여 어플리케이션 제공 장치에서 실시간으로 video encoding 처리 개수를 최대화할 수 있는 필요가 있는 경우에 적합하다.
As described above, the screen virtualization-based application operating system and method of the present invention are suitable for the case where there is a need to maximize the number of video encoding processes in real time in an application providing apparatus based on the usage rates of the GPU and the CPU.

100 : 사용자 단말 102, 202 : 통신부
104 : 출력부 106 : 화면 제어부
108 : 어플리케이션 구동 요청부 110 : 디코딩부
200 : 어플리케이션 제공 장치 204 : 어플리케이션 DB
206 : 접속 제어부 208 : 부하 수집부
210 : 부하 할당부 212 : 어플리케이션 구동부
214 : CPU 인코더부 216 : GPU 인코더부
100: User terminal 102, 202:
104: output unit 106: screen control unit
108: Application driving requesting unit 110: Decoding unit
200: Application providing device 204: Application DB
206: connection control section 208: load collecting section
210: load allocating unit 212: application driving unit
214: CPU encoder section 216: GPU encoder section

Claims (14)

삭제delete 사용자 단말과의 통신을 위한 통신부;
어플리케이션이 저장된 어플리케이션 데이터베이스;
상기 통신부를 통해 사용자 단말이 접속된 경우, 복수의 어플리케이션에 대한 구동버튼들이 상기 사용자 단말에 표시되도록 제어하는 접속 제어부;
상기 통신부를 통해 어플리케이션 구동 요청 신호가 수신된 경우, CPU 및 GPU와 관련된 장치 부하 정보를 수집하고, 상기 수집된 장치 부하 정보를 기반으로 평균 부하값을 예측하는 부하 수집부;
상기 예측된 평균 부하값과 상기 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부 및 CPU 부하, GPU 부하, CPU와 GPU 간 데이터 전송 부하를 이용하여 CPU 인코더와 GPU 인코더 중에서 해당 어플리케이션 구동 화면을 인코딩할 인코더를 결정하는 부하 할당부;
상기 부하 할당부에서 상기 사용자 단말의 요청 수용이 가능하다고 결정된 경우, 상기 어플리케이션 데이터베이스로부터 해당 어플리케이션을 추출하여 구동하는 어플리케이션 구동부;
상기 부하 할당부의 결정에 따라, 상기 어플리케이션 구동부에서 구동된 어플리케이션 구동 화면을 인코딩하여 상기 통신부를 통해 상기 사용자 단말로 전송하는 GPU 인코더부; 및
상기 부하 할당부의 결정에 따라, 상기 어플리케이션 구동부에서 구동된 어플리케이션 구동 화면을 인코딩하여 상기 통신부를 통해 상기 사용자 단말로 전송하는 CPU 인코더부;
를 포함하는 어플리케이션 제공 장치.
A communication unit for communication with a user terminal;
An application database in which the application is stored;
A connection controller for controlling driving buttons for a plurality of applications to be displayed on the user terminal when the user terminal is connected through the communication unit;
A load collector for collecting device load information related to the CPU and the GPU when the application driving request signal is received through the communication unit and for predicting an average load value based on the collected device load information;
Using the predicted average load value and the device load information, whether the request can be accepted by the user terminal and the load of the CPU load, the GPU load, and the data transmission load between the CPU and the GPU, A load allocator for determining an encoder to be encoded;
An application driver for extracting and driving a corresponding application from the application database when it is determined in the load allocator that acceptance of the request from the user terminal is possible;
A GPU encoder which encodes an application driving screen driven by the application driver and transmits the encoded application driving screen to the user terminal through the communication unit according to the determination of the load allocator; And
A CPU encoder unit encoding an application driving screen driven by the application driving unit and transmitting the encoded application driving screen to the user terminal through the communication unit according to the determination of the load allocation unit;
The application providing apparatus comprising:
제2항에 있어서,
상기 장치 부하 정보는 CPU 부하, GPU 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하율, 현재 접속자 수, 현재 CPU로 구동되는 CPU 인코더 수, 현재 GPU로 구동되는 GPU 인코더 수, 장치에서 허용되는 Max CPU 부하, 장치에서 허용되는 Max GPU 부하, 장치에서 허용되는 Max CPU/GPU간 전송 부하 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 제공 장치.
3. The method of claim 2,
The device load information includes information such as CPU load, GPU load, CPU load by application driving, CPU load of real time video encoding, GPU load of real time video encoding, data transmission load ratio between CPU and GPU, The number of encoders, the number of GPU encoders driven by the current GPU, the Max CPU load allowed by the device, the Max GPU load allowed by the device, and the Max CPU / GPU transfer load allowed by the device. .
제2항에 있어서,
상기 부하 수집부는 CPU 및 GPU의 부하, 어플리케이션 구동에 의한 CPU 부하, 실시간 비디오 인코딩의 CPU 부하, 실시간 비디오 인코딩의 GPU 부하, CPU와 GPU간 데이터 전송 부하를 각각 현재 접속자 수로 나누어 평균 부하값을 예측하는 것을 특징으로 하는 어플리케이션 제공 장치.
3. The method of claim 2,
The load collecting unit predicts an average load value by dividing the load of the CPU and the GPU, the CPU load by the application driving, the CPU load of the real time video encoding, the GPU load of the real time video encoding, and the data transmission load between the CPU and the GPU, Wherein the application providing apparatus comprises:
제2항에 있어서,
상기 부하 할당부는 다음의 수학식을 만족하는 경우, 상기 사용자 단말의 요청 수용이 가능하다고 판단하는 것을 특징으로 하는 어플리케이션 제공 장치.
[수학식]
Figure 112016058265670-pat00020

여기서, 상기 L은 현재 CPU로 구동되는 인코더 수, Tc는 최대 CPU 부하, a는 하나의 어플리케이션 구동시의 CPU 부하, N은 현재의 접속자 수, c는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 CPU 부하임.
3. The method of claim 2,
Wherein the load allocator determines that the request acceptance of the user terminal is possible when the following equation is satisfied.
[Mathematical Expression]
Figure 112016058265670-pat00020

Here, L is the number of encoders currently driven by the CPU, Tc is the maximum CPU load, a is the CPU load at the time of running one application, N is the number of current users, c is the number of current users Load.
제2항에 있어서,
상기 부하 할당부는
Figure 112016058265670-pat00045
Figure 112016058265670-pat00022
을 동시에 만족하는 경우, GPU 인코더부에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하고,
Figure 112016058265670-pat00046
Figure 112016058265670-pat00024
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00025
를 만족하는 경우, CPU 인코더부에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하되,
상기 g는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하, t는 CPU와 GPU간 데이터 전송 부하의 예측값, N은 현재의 접속자 수, L은 현재 CPU로 구동되는 CPU 인코더 수, M은 현재 GPU로 구동되는 GPU 인코더 수, Tc는 장치에서 허용되는 Max CPU 부하, Tg는 장치에서 허용되는 Max GPU 부하, Tt는 장치에서 허용되는 Max CPU/GPU간 전송 부하인 것을 특징으로 하는 어플리케이션 제공 장치.
3. The method of claim 2,
The load allocator
Figure 112016058265670-pat00045
Wow
Figure 112016058265670-pat00022
The GPU encoder unit determines to perform encoding of the application running screen,
Figure 112016058265670-pat00046
and
Figure 112016058265670-pat00024
At the same time
Figure 112016058265670-pat00025
The CPU encoder unit determines to perform encoding of the application driving screen,
Where g is the GPU load of real-time video encoding according to one application run, t is the predicted value of the data transmission load between the CPU and the GPU, N is the number of current connections, L is the number of CPU encoders driven by the current CPU, Tc is the maximum CPU load allowed by the device, Tg is the Max GPU load allowed by the device, and Tt is the maximum CPU / GPU transfer load allowed by the device.
제2항에 있어서,
상기 GPU 인코더부는 복수 개의 GPU 인코더로 구성되고, 각 GPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩하는 것을 특징으로 하는 어플리케이션 제공 장치.
3. The method of claim 2,
Wherein the GPU encoder unit comprises a plurality of GPU encoders, and each of the GPU encoders encodes an application driving screen according to a request of each of the different user terminals.
제2항에 있어서,
상기 CPU 인코더부는 복수 개의 CPU 인코더로 구성되고, 각 CPU 인코더는 각기 다른 사용자 단말의 요청에 따른 어플리케이션 구동 화면을 각각 인코딩하는 것을 특징으로 하는 어플리케이션 제공 장치.
3. The method of claim 2,
Wherein the CPU encoder unit comprises a plurality of CPU encoders, and each of the CPU encoders encodes an application driving screen according to a request of each of the different user terminals.
삭제delete 삭제delete 어플리케이션 제공 장치가 화면 가상화 기반 어플리케이션을 구동하는 방법에 있어서,
(a) 사용자 단말로부터 어플리케이션 구동 요청 신호가 수신된 경우, CPU 및 GPU와 관련된 장치 부하 정보를 수집하는 단계;
(b) 상기 수집된 장치 부하 정보를 이용하여 상기 사용자 단말의 요청 수용 가능 여부를 판단하는 단계;
(c) 상기 사용자 단말의 요청 수용이 가능한 경우, CPU 부하, GPU 부하, CPU와 GPU 간 데이터 전송 부하를 이용하여 CPU 인코더와 GPU 인코더 중 어플리케이션 구동 화면을 인코딩할 인코더를 결정하는 단계; 및
(d) 해당 어플리케이션을 구동하고, 해당 어플리케이션 구동 화면을 상기 결정된 CPU 인코더 또는 GPU 인코더를 통해 인코딩하여 상기 사용자 단말로 전송하는 단계;
를 포함하는 화면 가상화 기반 어플리케이션 구동 방법.
A method for an application providing apparatus to run a screen virtualization-based application,
(a) collecting device load information related to a CPU and a GPU when an application driving request signal is received from a user terminal;
(b) determining whether the request of the user terminal can be accepted using the collected device load information;
(c) determining an encoder to encode an application running screen of the CPU encoder and the GPU encoder using the CPU load, the GPU load, and the data transmission load between the CPU and the GPU when the user terminal can accept the request; And
(d) driving the corresponding application, encoding the application running screen through the determined CPU encoder or GPU encoder, and transmitting the encoded application running screen to the user terminal;
Based virtualization-based application.
제11항에 있어서,
상기 (b) 단계는 다음의 수학식을 만족하는 경우, 상기 사용자 단말의 요청 수용이 가능하다고 판단하는 것을 특징으로 하는 화면 가상화 기반 어플리케이션 구동 방법.
[수학식]
Figure 112011056810679-pat00026

여기서, 상기 L은 현재 CPU로 인코더 수, Tc는 최대 CPU 부하값, a는 하나의 어플리케이션 구동시의 CPU 부하, N은 현재의 접속자 수, c는 하나의 어플리케이션 구동시에 따른 실시간 비디오 인코딩의 CPU 부하임.
12. The method of claim 11,
Wherein the step (b) determines that the request acceptance of the user terminal is possible when the following equation is satisfied.
[Mathematical Expression]
Figure 112011056810679-pat00026

Here, L is the number of the current CPU, Tc is the maximum CPU load value, a is the CPU load at the time of driving one application, N is the number of current users, c is the CPU load being.
제11항에 있어서,
상기 (c) 단계는,
Figure 112016058265670-pat00047
Figure 112016058265670-pat00028
을 동시에 만족하는 경우, GPU 인코더에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하고,
Figure 112016058265670-pat00048
Figure 112016058265670-pat00030
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00031
를 만족하는 경우, CPU 인코더에서 해당 어플리케이션 구동 화면의 인코딩을 수행하도록 결정하되,
상기 g는 하나의 어플리케이션 구동에 따른 실시간 비디오 인코딩의 GPU 부하, t는 CPU와 GPU간 데이터 전송 부하의 예측값, N은 현재의 접속자 수, L은 현재 CPU로 구동되는 CPU 인코더 수, M은 현재 GPU로 구동되는 GPU 인코더 수, Tc는 장치에서 허용되는 Max CPU 부하, Tg는 장치에서 허용되는 Max GPU 부하, Tt는 장치에서 허용되는 Max CPU/GPU간 전송 부하인 것을 특징으로 하는 화면 가상화 기반 어플리케이션 구동 방법.
12. The method of claim 11,
The step (c)
Figure 112016058265670-pat00047
Wow
Figure 112016058265670-pat00028
, It is determined that the GPU encoder performs encoding of the application running screen,
Figure 112016058265670-pat00048
and
Figure 112016058265670-pat00030
At the same time
Figure 112016058265670-pat00031
, The CPU encoder determines to perform encoding of the application running screen,
Where g is the GPU load of real-time video encoding according to one application run, t is the predicted value of the data transmission load between the CPU and the GPU, N is the number of current connections, L is the number of CPU encoders driven by the current CPU, , Tc is the maximum CPU load allowed by the device, Tg is the Max GPU load allowed by the device, and Tt is the maximum CPU / GPU transfer load allowed by the device. Way.
제13항에 있어서,
상기
Figure 112016058265670-pat00049
Figure 112016058265670-pat00033
을 동시에 만족하지 않으면서
Figure 112016058265670-pat00034
를 만족하지 않은 경우, 상기 사용자 단말에 요청 수용 불가 메시지를 전송하는 것을 특징으로 하는 화면 가상화 기반 어플리케이션 구동 방법.
14. The method of claim 13,
remind
Figure 112016058265670-pat00049
and
Figure 112016058265670-pat00033
At the same time
Figure 112016058265670-pat00034
The method comprising: transmitting a request acceptance message to the user terminal;
KR1020110073058A 2011-07-22 2011-07-22 System and Method for operating application based Presentation Virtualization KR101668282B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110073058A KR101668282B1 (en) 2011-07-22 2011-07-22 System and Method for operating application based Presentation Virtualization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110073058A KR101668282B1 (en) 2011-07-22 2011-07-22 System and Method for operating application based Presentation Virtualization

Publications (2)

Publication Number Publication Date
KR20130011714A KR20130011714A (en) 2013-01-30
KR101668282B1 true KR101668282B1 (en) 2016-10-24

Family

ID=47840631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110073058A KR101668282B1 (en) 2011-07-22 2011-07-22 System and Method for operating application based Presentation Virtualization

Country Status (1)

Country Link
KR (1) KR101668282B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379626A (en) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 Method for processing video frequency, device, electronic equipment and storage medium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265419B1 (en) * 2014-10-02 2021-06-15 에스케이플래닛 주식회사 System for cloud streaming service, method of cloud streaming service using selective encoding processing unit and apparatus for the same
CN106717007B (en) 2014-07-30 2020-04-03 Sk 普兰尼特有限公司 Cloud end streaming media server
CN106664439B (en) 2014-07-30 2020-04-03 Sk普兰尼特有限公司 Cloud streaming server
WO2016017952A1 (en) * 2014-07-30 2016-02-04 엔트릭스 주식회사 System for cloud streaming service, method for same using still-image compression technique and apparatus therefor
WO2016017953A1 (en) * 2014-07-30 2016-02-04 엔트릭스 주식회사 System for cloud streaming service, method for still image-based cloud streaming service and apparatus therefor
KR102232900B1 (en) * 2014-10-02 2021-03-26 에스케이플래닛 주식회사 System for cloud streaming service, method of cloud streaming service using optumal gpu and apparatus for the same
KR102354268B1 (en) * 2015-01-05 2022-01-21 에스케이플래닛 주식회사 Method for dynamic processing application for cloud streaming service and apparatus for the same
CN111221640B (en) * 2020-01-09 2023-10-17 黔南民族师范学院 GPU-CPU cooperative energy saving method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200349A (en) * 2007-03-26 2007-08-09 Club It Corp Server-client system, load distribution device, load distribution method, and load distribution program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100623710B1 (en) 2006-05-19 2006-09-13 윈포시스(주) Method of processing a plurality of moving picture contents by sharing a hardware resource
KR101467558B1 (en) * 2007-07-26 2014-12-01 엘지전자 주식회사 A apparatus and a method of graphic data processing
KR101316677B1 (en) * 2009-12-17 2013-10-10 한국전자통신연구원 Application service system based on user interface virtualization and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200349A (en) * 2007-03-26 2007-08-09 Club It Corp Server-client system, load distribution device, load distribution method, and load distribution program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379626A (en) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 Method for processing video frequency, device, electronic equipment and storage medium

Also Published As

Publication number Publication date
KR20130011714A (en) 2013-01-30

Similar Documents

Publication Publication Date Title
KR101668282B1 (en) System and Method for operating application based Presentation Virtualization
KR101471366B1 (en) Device adaptive presentation virtualization method and its system
US9300754B2 (en) Information processing system, information processing apparatus, information processing method, and program
KR102133531B1 (en) Method for reproducing a content, terminal thereof, and system thereof
TW201507440A (en) Screen map and standards-based progressive codec for screen content coding
JP6467503B2 (en) Cloud streaming service system, data compression method for preventing memory bottleneck, and apparatus therefor
EP2793475A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
CN105556979A (en) Streaming Media
CN110856036A (en) Remote desktop implementation method, interaction method, device, equipment and storage medium
WO2014142342A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
WO2018040428A1 (en) Screen interface display method and system
EP2974327A1 (en) Distribution control system and distribution system
KR101630638B1 (en) System and Method for operating application based Presentation Virtualization
US8700736B2 (en) System for providing related content, method for providing related content, service server, end terminal, and storage medium
KR101671310B1 (en) System and Method for operating application based Presentation Virtualization
KR102247886B1 (en) System for cloud streaming service, method of cloud streaming service based on type of image and apparatus for the same
JP2006339855A (en) Network control apparatus, coding system conversion apparatus, and content data reproduction system
KR101871403B1 (en) Media control device application executing method and system in media displaying device using presentation virtualization
JP6781445B1 (en) Information processing method
US10075325B2 (en) User terminal device and contents streaming method using the same
US8762545B2 (en) Network data sharing system for sharing multimedia data on network and handheld electronic device thereof
KR20160043398A (en) System for cloud streaming service, method of cloud streaming service using source information and apparatus for the same
CN117119234A (en) Display equipment and media asset playing method
KR20120010031A (en) Application remote control system, application remote control apparatus and method
KR20160039887A (en) System for cloud streaming service, method of cloud streaming service using selective encoding processing unit and apparatus for the same

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190916

Year of fee payment: 4