[go: up one dir, main page]

KR20230112941A - System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same - Google Patents

System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same Download PDF

Info

Publication number
KR20230112941A
KR20230112941A KR1020220009163A KR20220009163A KR20230112941A KR 20230112941 A KR20230112941 A KR 20230112941A KR 1020220009163 A KR1020220009163 A KR 1020220009163A KR 20220009163 A KR20220009163 A KR 20220009163A KR 20230112941 A KR20230112941 A KR 20230112941A
Authority
KR
South Korea
Prior art keywords
mode
load
cloud streaming
time
application
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020220009163A
Other languages
Korean (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 KR1020220009163A priority Critical patent/KR20230112941A/en
Publication of KR20230112941A publication Critical patent/KR20230112941A/en
Pending legal-status Critical Current

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/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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라우드 스트리밍 서비스 시스템, 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법 및 이를 위한 장치가 개시된다. 본 발명에 따른 클라우드 스트리밍 서버는 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하고, 상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하고, 상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하고, 선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 프로세서; 및 상기 성능 프로파일 및 상기 다음 시점 부하 데이터를 저장하는 메모리를 포함한다.A cloud streaming service system, a cloud streaming service method based on selective video processing considering resources and loads, and an apparatus therefor are disclosed. The cloud streaming server according to the present invention generates a performance profile of an application based on a load test, predicts a behavior of the next time for the application, generates load data at the next time corresponding to the application, and generates the performance profile, the next time. A processor that selects a mode for processing a video corresponding to a current view in consideration of view load data and a system load of the current view, processes the video in the selected mode, and streams the video to a user's terminal; and a memory for storing the performance profile and the next load data.

Description

클라우드 스트리밍 서비스 시스템, 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법 및 이를 위한 장치{SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE BASED ON SELECTIVE VIDEO PROCESSING CONSIDERING RESOURCE AND LOAD AND APPARATUS FOR THE SAME}Cloud streaming service method based on selective video processing considering cloud streaming service system, resource and load, and apparatus therefor

본 발명은 클라우드 스트리밍 서비스 시스템, 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것으로, 특히 클라우드 스트리밍 서버의 소프트웨어 자원과 하드웨어 자원을 최대 한도로 효율적으로 사용할 수 있는 클라우드 스트리밍 서비스 시스템, 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a cloud streaming service system, a cloud streaming service method based on selective video processing considering resources and loads, and an apparatus therefor, and in particular, a cloud that can efficiently use software and hardware resources of a cloud streaming server to the maximum extent. It relates to a cloud streaming service method based on selective video processing considering a streaming service system, resources and load, and an apparatus therefor.

클라우드 컴퓨팅 서비스는 사용자가 컨텐츠를 로컬 스토리지가 아닌, 인터넷상의 클라우드 스토리지에 저장해놓고, 인터넷이 가능한 기기를 이용하여 언제 어디서든지 클라우드 스토리지에 접근하여 컨텐츠를 이용할 수 있는 서비스이다.A cloud computing service is a service in which a user stores content in a cloud storage on the Internet, not in a local storage, and accesses the cloud storage anytime, anywhere using an Internet-enabled device to use the content.

클라우드 스트리밍 서비스 시스템에서는 서버 내부에서 동영상을 처리하여 클라이언트에게 스트리밍하기 위해서 소프트웨어 혹은 하드웨어 중 어느 하나의 고정된 자원을 활용하는 것이 일반적이었다. 그러나, 클라우드 스트리밍 서버에 접속한 동시 접속자 수, 클라우드 스트리밍 서버 내에서 여러 어플리케이션들이 구동되는 상황 혹은 어플리케이션의 실행 시점에 따라 사용되는 자원 등에 의해 CPU 혹은 GPU 자원이 부족한 상황이 발생하게 된다. In a cloud streaming service system, it is common to use a fixed resource of either software or hardware in order to process a video in a server and stream it to a client. However, a situation in which CPU or GPU resources are insufficient occurs due to the number of concurrent users connected to the cloud streaming server, the situation in which several applications are running in the cloud streaming server, or the resources used according to the execution time of the application.

그러나, 종래에는 소프트웨어 또는 하드웨어로 고정된 자원을 통해 동영상을 디코딩(Decoding) 및 렌더링(Rendering)하기 때문에 CPU 혹은 GPU 자원이 부족한 상황에서도 동영상 처리를 위한 가변처리를 할 수가 없어서 CPU 혹은 GPU 자원을 최대한도로 사용할 수 없다는 단점이 존재하였다.However, conventionally, since video is decoded and rendered through fixed resources in software or hardware, variable processing for video processing cannot be performed even in situations where CPU or GPU resources are insufficient, so CPU or GPU resources can be used as much as possible. The downside was that it could not be used on the road.

한국 공개 특허 제10-2016-0084216호, 2016년 7월 13일 공개 (명칭: 클라우드 스트리밍 서비스 시스템, 서비스 품질 조절을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치)Korean Patent Publication No. 10-2016-0084216, published on July 13, 2016 (Name: Cloud streaming service system, cloud streaming service method using service quality control and apparatus therefor)

본 발명의 목적은, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용하는 것이다.An object of the present invention is to use resources within the system to the maximum limit by performing a process for providing a service by selectively using software and hardware resources supported by the cloud streaming service system.

또한 본 발명의 목적은, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행하는 것이다.In addition, an object of the present invention is to perform a process (decoding and rendering, etc.) for service provision more efficiently by considering the load of the next time that is predicted in consideration of the performance profile of the application serviced through the cloud streaming server.

또한 본 발명의 목적은, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공하는 것이다.Another object of the present invention is to provide services to more users by increasing the number of simultaneous access to the cloud streaming server by efficiently using resources within the cloud streaming service system to the maximum limit.

상기한 목적을 달성하기 위한 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서버는, 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하고, 상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하고, 상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하고, 선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 프로세서; 및 상기 성능 프로파일 및 상기 다음 시점 부하 데이터를 저장하는 메모리를 포함한다.In order to achieve the above object, the cloud streaming server based on selective video processing in consideration of resources and load according to the present invention generates a performance profile of an application based on a load test, predicts the next behavior of the application, and Next time load data corresponding to the application is generated, a mode (MODE) for processing a video corresponding to the current time is selected in consideration of the performance profile, the next time load data, and the system load at the current time, and the selected mode a processor for processing the video and streaming it to a user's terminal; and a memory for storing the performance profile and the next load data.

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.In this case, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 성능 프로파일은 상기 어플리케이션에 대한 시점 별 부하를 상기 소프트웨어 모드 및 상기 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다.In this case, the performance profile may correspond to data obtained by measuring the load of the application at each point in time in the software mode and the hardware mode, respectively.

이 때, 다음 시점 부하 데이터는 상기 시점 별 부하 중 상기 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 상기 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.In this case, the next time load data may include information about a software mode load corresponding to the behavior at the next time point and a hardware mode load corresponding to the behavior at the next time point among the loads for each time point.

이 때, 프로세서는 상기 소프트웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율과 상기 하드웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 상기 동영상을 처리하기 위한 모드를 선택할 수 있다.At this time, the processor may select a mode for processing the video by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

이 때, 모드는 상기 시스템 자원 효율에 따라 상기 소프트웨어 모드에서 상기 하드웨어 모드로, 또는 상기 하드웨어 모드에서 상기 소프트웨어 모드로 변경이 가능할 수 있다.In this case, the mode may be changed from the software mode to the hardware mode or from the hardware mode to the software mode according to system resource efficiency.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 상기 하드웨어 모드는 CPU를 기반으로 동작할 수 있다.In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

또한, 상기한 목적을 달성하기 위한 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은, 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하는 단계; 상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하는 단계; 상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하는 단계; 및 선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 단계를 포함한다.In addition, the cloud streaming service method based on selective video processing in consideration of resources and load according to the present invention for achieving the above object, generating a performance profile of the application based on a load test; generating next-time load data corresponding to the application by predicting next-time behavior for the application; selecting a mode for processing a video corresponding to a current view in consideration of the performance profile, the load data of the next view, and the system load of the current view; and processing the video in the selected mode and streaming it to the user's terminal.

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.In this case, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 성능 프로파일은 상기 어플리케이션에 대한 시점 별 부하를 상기 소프트웨어 모드 및 상기 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다.In this case, the performance profile may correspond to data obtained by measuring the load of the application at each point in time in the software mode and the hardware mode, respectively.

이 때, 다음 시점 부하 데이터는 상기 시점 별 부하 중 상기 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 상기 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.In this case, the next time load data may include information about a software mode load corresponding to the behavior at the next time point and a hardware mode load corresponding to the behavior at the next time point among the loads for each time point.

이 때, 상기 소프트웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율과 상기 하드웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 상기 동영상을 처리하기 위한 모드를 선택할 수 있다.In this case, a mode for processing the video may be selected by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

이 때, 모드는 상기 시스템 자원 효율에 따라 상기 소프트웨어 모드에서 상기 하드웨어 모드로, 또는 상기 하드웨어 모드에서 상기 소프트웨어 모드로 변경이 가능할 수 있다.In this case, the mode may be changed from the software mode to the hardware mode or from the hardware mode to the software mode according to system resource efficiency.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 상기 하드웨어 모드는 CPU를 기반으로 동작할 수 있다.In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

또한, 상기한 목적을 달성하기 위한 본 발명에 따른 클라우드 스트리밍 서비스 시스템은, 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하고, 상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하고, 상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하고, 선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 클라우드 스트리밍 서버; 및 상기 선택된 모드로 처리된 동영상을 수신받아 출력하는 사용자 단말을 포함한다.In addition, the cloud streaming service system according to the present invention for achieving the above object, generates a performance profile of the application based on the load test, predicts the next time behavior for the application, and the next time load corresponding to the application It generates data, selects a mode (MODE) for processing a video corresponding to the current time in consideration of the performance profile, the load data at the next time, and the system load at the current time, and processes the video in the selected mode so that the user Cloud streaming server for streaming to the terminal of; and a user terminal receiving and outputting the video processed in the selected mode.

본 발명에 따르면, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있다. According to the present invention, it is possible to use resources in the system to the maximum limit by performing a process for providing a service by selectively using software and hardware resources supported by the cloud streaming service system.

또한 본 발명은, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행할 수 있다.In addition, the present invention can more efficiently perform processing processes (decoding and rendering, etc.) for service provision by considering the load of the next time that is predicted by considering the performance profile of the application serviced through the cloud streaming server.

또한 본 발명은, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공할 수 있다.In addition, the present invention can provide services to more users by increasing the number of simultaneous access to the cloud streaming server by efficiently using resources within the cloud streaming service system to the maximum limit.

도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 4는 본 발명에 따른 어플리케이션의 성능 프로파일의 일 예를 나타낸 도면이다.
도 5는 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 과정의 일 예를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작흐름도이다.
도 7은 본 발명에 따른 클라우드 스트리밍 서비스 방법 중 모드를 선택하는 과정을 상세하게 나타낸 동작흐름도이다.
도 8은 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서버를 나타낸 도면이다.
1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.
Figure 2 is an operational flow chart showing a cloud streaming service method based on selective video processing in consideration of resources and load according to an embodiment of the present invention.
3 is a block diagram showing an example of a cloud streaming server based on selective video processing considering resources and loads according to the present invention.
4 is a diagram showing an example of a performance profile of an application according to the present invention.
5 is a diagram showing an example of a cloud streaming service process based on selective video processing considering resources and loads according to the present invention.
6 is an operation flow diagram showing in detail a cloud streaming service method based on selective video processing considering resources and loads according to an embodiment of the present invention.
7 is an operational flowchart showing in detail a process of selecting a mode of the cloud streaming service method according to the present invention.
8 is a diagram illustrating a cloud streaming server based on selective video processing considering resources and loads according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings. Here, repeated descriptions, well-known functions that may unnecessarily obscure the subject matter of the present invention, and detailed descriptions of configurations are omitted. Embodiments of the present invention are provided to more completely explain the present invention to those skilled in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clarity.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.1 is a block diagram showing a cloud streaming service system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치(120-1~ 120-N) 및 네트워크(130)를 포함한다.Referring to FIG. 1, the cloud streaming service system according to an embodiment of the present invention includes a cloud streaming server 110, terminal devices 120-1 to 120-N and a network 130.

클라우드 스트리밍 서버(110)는 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성한다. Cloud streaming server 110 generates a performance profile of the application based on the load test.

이 때, 성능 프로파일은 어플리케이션에 대한 시점 별 부하를 소프트웨어 모드 및 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다. In this case, the performance profile may correspond to data obtained by measuring load for each time point of the application in a software mode and a hardware mode, respectively.

또한, 클라우드 스트리밍 서버(110)는 어플리케이션에 대한 다음 시점 행동을 예측하여 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성한다. In addition, the cloud streaming server 110 generates next-time load data corresponding to the application by predicting the next-time action for the application.

이 때, 다음 시점 부하 데이터는 시점 별 부하 중 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함한다. At this time, the next time load data includes information about a software mode load corresponding to a next time action among loads at each time point and a hardware mode load corresponding to a next time time action.

또한, 클라우드 스트리밍 서버(110)는 성능 프로파일, 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택한다. In addition, the cloud streaming server 110 selects a mode (MODE) for processing a video corresponding to the current view in consideration of the performance profile, the load data of the next view, and the system load of the current view.

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.In this case, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 하드웨어 모드는 CPU를 기반으로 동작할 수 있다. In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

이 때, 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율과 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 동영상을 처리하기 위한 모드를 선택할 수 있다. In this case, a mode for processing a video may be selected by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

또한, 클라우드 스트리밍 서버(110)는 선택된 모드로 동영상을 처리하여 사용자의 단말 장치(120-1~120-N)로 스트리밍한다.In addition, the cloud streaming server 110 processes the video in the selected mode and streams it to the user's terminal devices 120-1 to 120-N.

이 때, 모드는 시스템 자원 효율에 따라 소프트웨어 모드에서 하드웨어 모드로, 또는 하드웨어 모드에서 소프트웨어 모드로 변경이 가능할 수 있다. In this case, the mode may be changed from the software mode to the hardware mode or from the hardware mode to the software mode according to system resource efficiency.

단말 장치(120-1~ 120-N)는 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행화면을 수신하여 사용자에게 제공한다. The terminal devices 120-1 to 120-N receive an application execution screen corresponding to the cloud streaming service from the cloud streaming server 110 and provide it to the user.

또한, 단말 장치(120-1~ 120-N)는 각각 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 단말 장치(120-1~ 120-N)는 각각 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.In addition, the terminal devices 120-1 to 120-N are devices connected to a communication network and capable of executing applications based on a cloud computing system, and are not limited to mobile communication terminals, but are all information communication devices, multimedia terminals, and wired terminals. , It may be a variety of terminals such as fixed terminals and IP (Internet Protocol) terminals. In addition, the terminal devices 120-1 to 120-N are mobile phones, PMPs (Portable Multimedia Played), MIDs (Mobile Internet Devices), smart phones, desktops, tablet PCs, It may be a mobile terminal having various mobile communication specifications, such as a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.

또한, 단말 장치(120-1~ 120-N)는 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 단말 장치(120-1~ 120-N)의 기능 제어와 관련하여 입력되는 신호를 입력부를 통해 제어부로 전달할 수 있다. 또한, 단말 장치(120-1~ 120-N)의 입력부는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성할 수 있다. 이 때, 단말 장치(120-1~ 120-N)의 입력부는 단말 장치(120-1~ 120-N)의 표시부와 함께 하나의 터치패널(또는 터치 스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 단말 장치(120-1~ 120-N)의 입력부는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. 특히, 본 발명에 따른 단말 장치(120-1~ 120-N)의 입력부는 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드하거나 다운로드 하기 위한 입력 신호를 단말 장치(120-1~ 120-N)의 제어부로 전달할 수 있다.In addition, the terminal devices 120-1 to 120-N receive various information such as numbers and text information, set various functions, and input in connection with function control of the terminal devices 120-1 to 120-N. A signal may be transmitted to the control unit through the input unit. Also, the input units of the terminal devices 120-1 to 120-N may include at least one of a keypad and a touchpad that generate an input signal according to a user's touch or manipulation. At this time, the input unit of the terminal devices 120-1 to 120-N is configured in the form of a single touch panel (or touch screen) together with the display unit of the terminal devices 120-1 to 120-N. Input and display functions can be performed simultaneously. In addition, input devices of the terminal devices 120-1 to 120-N may use any type of input means that may be developed in the future, in addition to input devices such as a keyboard, keypad, mouse, joystick, and the like. In particular, the input unit of the terminal devices 120-1 to 120-N according to the present invention may transmit an input signal for uploading or downloading content based on cloud computing to the control unit of the terminal devices 120-1 to 120-N. there is.

또한, 단말 장치(120-1~ 120-N)의 표시부는 단말 장치(120-1~ 120-N)의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시할 수 있다. 또한, 단말 장치(120-1~ 120-N)의 표시부는 단말 장치(120-1~ 120-N)의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 단말 장치(120-1~ 120-N)의 표시부는 액정표시장치(LCD, Liquid Crystal Display), 초박막 액정표시장치(TFT-LCD, Thin Film Transistor LCD), 발광다이오드(LED, Light Emitting Diode), 유기 발광다이오드(OLED, Organic LED), 능동형 유기발광다이오드(AMOLED, Active Matrix OLED), 레티나 디스플레이(Retina Display), 플렉시블 디스플레이(Flexible display) 및 3차원(3 Dimension) 디스플레이 등으로 구성될 수 있다. 이 때, 단말 장치(120-1~ 120-N)의 표시부가 터치스크린 형태로 구성된 경우, 단말 장치(120-1~ 120-N)의 표시부는 단말 장치(120-1~ 120-N)의 입력부의 기능 중 일부 또는 전부를 수행할 수 있다. 특히, 본 발명에 따른 단말 장치(120-1~ 120-N)의 표시부는 클라우드 컴퓨팅 기반으로 제공되는 컨텐츠의 실행과 관련된 정보를 화면으로 표시할 수 있다.In addition, the display units of the terminal devices 120-1 to 120-N may display information about a series of operation states and operation results generated while the terminal devices 120-1 to 120-N perform functions. Also, the display units of the terminal devices 120-1 to 120-N may display menus of the terminal devices 120-1 to 120-N and user data input by users. Here, the display units of the terminal devices 120-1 to 120-N include a Liquid Crystal Display (LCD), a Thin Film Transistor LCD (TFT-LCD), and a Light Emitting Diode (LED). ), Organic LED (OLED), Active Matrix OLED (AMOLED), Retina Display, Flexible Display and 3 Dimensional Display. can At this time, when the display units of the terminal devices 120-1 to 120-N are configured in the form of a touch screen, the display units of the terminal devices 120-1 to 120-N are the same as those of the terminal devices 120-1 to 120-N. Some or all of the functions of the input unit may be performed. In particular, the display units of the terminal devices 120-1 to 120-N according to the present invention may display information related to the execution of content provided based on cloud computing on the screen.

또한, 단말 장치(120-1~ 120-N)의 저장부는 데이터를 저장하기 위한 장치로, 주 기억장치 및 보조 기억장치를 포함하고, 단말 장치(120-1~ 120-N)의 기능 동작에 필요한 응용 프로그램을 저장할 수 있다. 이러한 단말 장치(120-1~ 120-N)의 저장부는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 단말 장치(120-1~ 120-N)는 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. 특히, 본 발명에 따른 단말 장치(120-1~ 120-N)의 저장부는 단말 장치(120-1~ 120-N)를 부팅시키는 운영체제, 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드하거나 다운로드하기 위한 프로그램 등을 저장할 수 있다. 또한, 단말 장치(120-1~ 120-N)의 저장부는 다수의 컨텐츠를 저장하는 컨텐츠 DB와 단말 장치(120-1~ 120-N)의 정보를 저장할 수 있다. 이 때, 컨텐츠 DB는 컨텐츠를 실행하기 위한 실행 데이터와 컨텐츠에 대한 속성 정보를 포함하고, 컨텐츠 실행에 따른 컨텐츠 사용 정보 등이 저장될 수 있다. 그리고, 단말 장치(120-1~ 120-N)의 정보는 단말 사양 정보를 포함할 수 있다.In addition, the storage unit of the terminal devices 120-1 to 120-N is a device for storing data, includes a main storage device and an auxiliary storage device, and is related to the functional operation of the terminal devices 120-1 to 120-N. You can save the applications you need. The storage unit of the terminal devices 120-1 to 120-N may largely include a program area and a data area. Here, when the terminal devices 120-1 to 120-N activate each function in response to a user's request, the corresponding application programs are executed under the control of the controller to provide each function. In particular, the storage unit of the terminal devices 120-1 to 120-N according to the present invention stores an operating system for booting the terminal devices 120-1 to 120-N, a program for uploading or downloading content based on cloud computing, and the like. can be saved Also, the storage units of the terminal devices 120-1 to 120-N may store a content DB for storing a plurality of contents and information of the terminal devices 120-1 to 120-N. In this case, the content DB includes execution data for executing the content and attribute information about the content, and may store content use information according to content execution. Also, the information of the terminal devices 120-1 to 120-N may include terminal specification information.

또한, 단말 장치(120-1~ 120-N)의 통신부는 클라우드 스트리밍 서버(110)와 네트워크(130)을 통해 데이터를 송수신하기 위한 기능을 수행할 수 있다. 여기서 단말 장치(120-1~ 120-N)의 통신부는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함할 수 있다. 이러한 단말 장치(120-1~ 120-N)의 통신부는 무선통신 모듈 및 유선통신 모듈 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 단말 장치(120-1~ 120-N)가 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 클라우드 스트리밍 서버(110)로 송수신할 수 있다. 또한, 유선통신 모듈은 유선으로 데이터를 송수신하기 위한 것이다. 유선통신 모듈은 유선을 통해 네트워크(130)에 접속하여, 클라우드 스트리밍 서버(110)에 데이터를 송수신할 수 있다. 즉 단말 장치(120-1~ 120-N)는 무선통신 모듈 또는 유선통신 모듈을 이용하여 네트워크(130)에 접속하며, 네트워크(130)을 통해 클라우드 스트리밍 서버(110)와 데이터를 송수신할 수 있다. 특히, 본 발명에 따른 네트워크(130)는 클라우드 스트리밍 서버(110) 또는 다른 단말 장치(120-1~ 120-N)와 통신하여 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드 또는 다운로드 하는데 필요한 데이터를 송수신할 수 있다.In addition, the communication units of the terminal devices 120-1 to 120-N may perform functions for transmitting and receiving data through the cloud streaming server 110 and the network 130. Here, the communication units of the terminal devices 120-1 to 120-N may include an RF transmitting unit for up-converting and amplifying the frequency of a transmitted signal, and an RF receiving unit for low-noise amplifying a received signal and down-converting the frequency. there is. The communication unit of the terminal devices 120-1 to 120-N may include at least one of a wireless communication module and a wired communication module. Further, the wireless communication module is a component for transmitting and receiving data according to a wireless communication method, and when the terminal devices 120-1 to 120-N use wireless communication, a wireless network communication module, a wireless LAN communication module, and a wireless fan communication. Data can be transmitted and received to the cloud streaming server 110 using any one of the modules. In addition, the wired communication module is for transmitting and receiving data by wire. The wired communication module may access the network 130 through a wire and transmit/receive data to the cloud streaming server 110 . That is, the terminal devices 120-1 to 120-N access the network 130 using a wireless communication module or a wired communication module, and can transmit and receive data with the cloud streaming server 110 through the network 130. . In particular, the network 130 according to the present invention communicates with the cloud streaming server 110 or other terminal devices 120-1 to 120-N to transmit and receive data necessary for uploading or downloading content based on cloud computing. .

또한, 단말 장치(120-1~ 120-N)의 제어부는 운영 체제((OS, Operation System) 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 예를 들어, 제어부는 클라우드 스트리밍 서버(110)에 접속하는 과정 전반을 제어할 수 있다. 별도의 서비스 어플리케이션을 통해 클라우드 스트리밍 서버(110)에 접속하는 경우, 사용자의 요청에 따라 서비스 어플리케이션을 실행되는 과정 전반을 제어할 수 있으며, 실행과 동시에 클라우드 스트리밍 서버(110)로 서비스 이용 요청이 전송되도록 제어할 수 있으며, 이때 사용자 인증에 필요한 단말 장치(120-1~ 120-N)의 정보가 함께 전송되도록 제어할 수 있다.In addition, the control unit of the terminal devices 120-1 to 120-N may be an operating system (OS, Operation System) and a process device that drives each component. For example, the control unit is a cloud streaming server 110 When accessing the cloud streaming server 110 through a separate service application, it is possible to control the entire process of running the service application according to the user's request, and at the same time as the execution, the cloud streaming server 110 A service use request may be transmitted to the streaming server 110, and at this time, information of the terminal devices 120-1 to 120-N necessary for user authentication may be transmitted together.

또한, 단말 장치(120-1~ 120-N)의 제어부는 사용자의 요청에 따라 단말 장치(120-1~ 120-N)의 저장부에 저장된 특정 컨텐츠를 실행할 수 있다. 이때, 제어부는 컨텐츠 실행에 따른 컨텐츠 사용 이력을 컨텐츠 사용 정보로 저장할 수 있다.In addition, the controllers of the terminal devices 120-1 to 120-N may execute specific content stored in the storage units of the terminal devices 120-1 to 120-N according to a user's request. In this case, the controller may store a content use history according to content execution as content use information.

또한, 단말 장치(120-1~ 120-N)의 제어부는 컨텐츠를 실행하기 위한 실행 데이터와, 컨텐츠에 대한 속성 정보를 포함하는 컨텐츠 정보와, 컨텐츠 사용 이력에 따른 정보인 컨텐츠 사용 정보를 함께 클라우드 스트리밍 서버(110)로 전송하여 업로드할 수 있다. 이후, 제어부는 클라우드 스트리밍 서버(110)에 전송하여 업로드된 컨텐츠에 대해서는 사용자의 요청에 따라 단말 장치(120-1~ 120-N)의 저장부에서 삭제할 수 있으며, 클라우드 스트리밍 서버(110)에 접속하여 클라우드 스트리밍 서버(110)를 통해 컨텐츠를 실행하여 이용할 수도 있다.In addition, the control unit of the terminal devices 120-1 to 120-N transmits execution data for executing the content, content information including attribute information about the content, and content use information, which is information based on the content use history, together in the cloud. It can be uploaded by transmitting to the streaming server 110. Thereafter, the control unit may delete the content uploaded to the cloud streaming server 110 from the storage unit of the terminal devices 120-1 to 120-N according to the user's request, and access the cloud streaming server 110. By doing so, content may be executed and used through the cloud streaming server 110 .

또한, 단말 장치(120-1~ 120-N)의 제어부는 클라우드 스트리밍 서버(110)에 접속하여 다른 단말 장치(120-1~ 120-N)로부터 컨텐츠를 다운로드한 후 저장부에 저장되도록 제어할 수도 있으며, 클라우드 스트리밍 서버(110)를 통해 컨텐츠 실행 시, 실행에 필요한 데이터만을 수신한 후 컨텐츠가 실행되도록 제어할 수도 있다.In addition, the control unit of the terminal devices 120-1 to 120-N accesses the cloud streaming server 110, downloads content from other terminal devices 120-1 to 120-N, and then controls the content to be stored in the storage unit. Also, when content is executed through the cloud streaming server 110, only data necessary for execution may be received and then the content may be controlled to be executed.

네트워크(130)는 클라우드 스트리밍 서버(110)및 단말 장치(120-1~ 120-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(130)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(130)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 클라우드 스트리밍 서버(110)와 단말 장치(120-1~ 120-N) 사이에 사용되는 네트워크는 단말 장치(120-1~ 120-N)들 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.The network 130 provides a passage through which data is transmitted between the cloud streaming server 110 and terminal devices 120-1 to 120-N, a concept encompassing both existing networks and networks that can be developed in the future. am. For example, the network 130 may include a wired and wireless local area communication network that provides communication between various information devices within a limited area, a mobile communication network that provides communication between mobile bodies and between mobile bodies and the outside of the mobile body, and communication between earth stations and earth stations using satellites. It may be a satellite communication network that provides, or any one of wired and wireless communication networks, or a combination of two or more. Meanwhile, the transmission method standards of the network 130 are not limited to existing transmission method standards, and may include all transmission method standards to be developed in the future. In addition, the network used between the cloud streaming server 110 and the terminal devices 120-1 to 120-N in FIG. 1 may be different from the network used between the terminal devices 120-1 to 120-N. and may be the same.

이와 같은 클라우드 스트리밍 서비스 시스템을 통해 클라우드 스트리밍 서비스를 제공함으로써, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있다. By providing a cloud streaming service through such a cloud streaming service system, by selectively using software resources and hardware resources supported by the cloud streaming service system to perform processing for providing the service, resources within the system can be used to the maximum extent. there is.

또한, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행할 수 있다. In addition, processing for service provision (decoding and rendering, etc.) can be performed more efficiently by considering the load of the next time that is predicted by considering the performance profile of the application serviced through the cloud streaming server.

또한, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공할 수 있다.In addition, by efficiently using resources within the cloud streaming service system to the maximum limit, it is possible to provide services to more users by increasing the number of concurrent users to the cloud streaming server.

도 2는 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.Figure 2 is an operational flow chart showing a cloud streaming service method based on selective video processing in consideration of resources and load according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성한다(S210).Referring to FIG. 2 , the cloud streaming service method based on selective video processing considering resources and load according to an embodiment of the present invention generates a performance profile of an application based on a load test (S210).

예를 들어, 본 발명의 일실시예에 따른 클라우드 스트리밍 서버에서는 도 3에 도시된 성능 프로파일 생성부(310)를 통해 클라우드 스트리밍 서버에서 실행 가능한 적어도 하나의 어플리케이션에 대한 성능 프로파일을 생성할 수 있다.For example, in the cloud streaming server according to an embodiment of the present invention, a performance profile for at least one application executable in the cloud streaming server may be generated through the performance profile generating unit 310 shown in FIG. 3 .

이 때, 성능 프로파일은 어플리케이션에 대한 시점 별 부하를 소프트웨어 모드 및 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다. In this case, the performance profile may correspond to data obtained by measuring load for each time point of the application in a software mode and a hardware mode, respectively.

이 때, 소프트웨어 모드는 클라우드 스트리밍 서비스 시스템의 GPU와 같은 소프트웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있고, 하드웨어 모드는 클라우드 스트리밍 서비스 시스템의 CPU와 같은 하드웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있다. At this time, the software mode may correspond to a mode for decoding and rendering video or content by utilizing software resources such as GPU of the cloud streaming service system, and the hardware mode utilizes hardware resources such as CPU of the cloud streaming service system. This may correspond to a mode for decoding and rendering video or content.

따라서, 본 발명에서는 자원 및 부하를 고려하여 효율적인 처리를 수행하기 위해 소프트웨어 자원과 하드웨어 자원 각각에 대한 어플리케이션의 시점 별 부하에 관한 데이터를 데이터베이스로 가질 수 있다. Therefore, in the present invention, in order to perform efficient processing in consideration of resources and loads, data on loads at each point in time of applications for each of software resources and hardware resources may be stored as a database.

예를 들어, 어플리케이션의 성능 프로파일은 도 4와 같이 생성되어 데이터베이스화될 수 있다. For example, a performance profile of an application may be created and stored as a database as shown in FIG. 4 .

이 때, 도 4에 도시된 각각의 APP 시점은 어플리케이션이 실행되고 순차적으로 보여지는 어플리케이션 실행화면에 상응하는 시점에 해당할 수 있다. At this time, each APP viewpoint shown in FIG. 4 may correspond to a viewpoint corresponding to an application execution screen that is sequentially displayed when an application is executed.

예를 들어, 어플리케이션이 실행되고 가장 처음에 보여지는 실행화면에 상응하는 시점이 APP 시점 #1이라고 가정할 수 있고, APP 시점 #1에서 사용자 단말로부터 발생하는 입력에 따라 APP 시점 #2 이나 APP 시점 #3에 해당하는 실행화면으로 시점이 변경될 수 있다. For example, it can be assumed that the time point corresponding to the first execution screen displayed after the application is executed is APP time #1, and APP time #2 or APP time depending on the input generated from the user terminal at APP time #1. The viewpoint can be changed to the execution screen corresponding to #3.

따라서, 본 발명에서는 어플리케이션의 각 시점마다 어플리케이션 실행화면을 디코딩, 렌더링, 스트리밍하여 사용자에게 보여주기 위한 처리과정을 각각 소프트웨어 자원과 하드웨어 자원으로 처리하였을 경우의 부하도를 계산하여 어플리케이션의 성능 프로파일로 생성할 수 있다. Therefore, in the present invention, the process of decoding, rendering, and streaming the application execution screen for display to the user at each point in time of the application is calculated by calculating the load when processing the software resource and the hardware resource, respectively, and generating the performance profile of the application. can do.

이 때, 도 4에 도시된 어플리케이션의 성능 프로파일은 일 예를 도시한 것으로, 도 4에 도시된 형태 이외에도 다양한 형태로 생성되어 데이터베이스화 될 수 있다. At this time, the performance profile of the application shown in FIG. 4 is an example, and may be created and stored in a database in various forms other than the form shown in FIG. 4 .

또한, 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은 어플리케이션에 대한 다음 시점 행동을 예측하여 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성한다(S220).In addition, the cloud streaming service method based on selective video processing in consideration of resources and loads according to an embodiment of the present invention predicts the behavior of the next view of the application and generates load data of the next view corresponding to the application (S220).

이 때, 다음 시점 부하 데이터는 시점 별 부하 중 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.In this case, the next load data may include information about a software mode load corresponding to a behavior at a next time point and a hardware mode load corresponding to a behavior at a next time point among loads for each time point.

예를 들어, 도 4를 참조하면, 어플리케이션에 대한 현재 시점이 APP 시점 #2 라고 가정한다면, 다음 시점이 될 수 있는 가능성이 있는 시점은 APP 시점 #4, APP 시점 #5, APP 시점 #6에 해당할 수 있다. For example, referring to FIG. 4 , if it is assumed that the current time point for an application is APP time #2, the possible next time points are APP time #4, APP time #5, and APP time #6. may apply.

이 때, 본 발명에서는 도 3에 도시된 어플리케이션 행동 예측부(320)가, 클라우드 스트리밍 서비스를 제공하면서 어플리케이션이 특정 시점 이후 어떤 시점으로 이동하는지에 대한 통계치를 산출하여 성능 프로파일과 함께 데이터베이스화 할 수 있고, 이렇게 데이터베이스화 된 통계치를 이용하여 다음 시점 행동을 예측할 수 있다. At this time, in the present invention, the application behavior prediction unit 320 shown in FIG. 3 calculates statistics on the point in time at which the application moves after a specific point in time while providing the cloud streaming service, and stores it in a database together with the performance profile. And, using the databased statistics, it is possible to predict the next action.

예를 들어, 사용자로부터 어플리케이션의 실행이 요청될 때마다 도 4에 도시된 각 시점 별로 이후 어떤 시점으로 이동하는지 누적하여 기록하고, 누적된 기록을 기반으로 시점 별 다음 시점 행동에 상응하는 통계 비율을 산출할 수 있다. For example, whenever an application execution is requested from the user, the next point in time shown in FIG. 4 is accumulated and recorded, and based on the accumulated record, a statistical ratio corresponding to the action at the next point in time is calculated. can be calculated

만약, APP 시점 #3에서 다음 시점 행동을 예측하는 경우, APP 시점 #3에서 APP 시점 #7로 이동하는 통계치와 APP 시점 #3에서 APP 시점 #8로 이동하는 통계치를 비교하여 더 높은 비율의 통계치를 갖는 시점을 다음 시점 행동으로 예측할 수 있다. 또는 APP 시점 #4에서 다음 시점 행동을 예측하는 경우, APP 시점 #4에서는 이동할 수 있는 다음 시점이 APP 시점 #9 하나뿐이므로, APP 시점 #9를 다음 시점 행동으로 예측할 수 있다. If the behavior of the next time is predicted at APP time #3, the statistic moving from APP time #3 to APP time #7 is compared with the statistic moving from APP time #3 to APP time #8 to obtain a higher percentage of the statistic. The time of having can be predicted as the next time action. Alternatively, when predicting the next action at APP time #4, APP time #9 can be predicted as the next action since there is only one next time point that can be moved from APP time #4.

이와 같이 다음 시점 행동이 예측되면, 도 3에 도시된 다음 시점 부하 데이터 생성부(330)에서, 예측된 다음 시점 행동을 소프트웨어 모드로 처리하였을 경우의 부하도와 예측된 다음 시점 행동을 하드웨어 모드로 처리하였을 경우의 부하도를 고려하여 다음 시점 부하 데이터를 생성할 수 있다. If the behavior at the next time point is predicted in this way, the next time load data generating unit 330 shown in FIG. 3 processes the predicted next time behavior and the load degree when the predicted next time behavior is processed in the software mode and the predicted next time behavior in the hardware mode. Load data at the next point in time can be created by considering the load degree in the case of

이 때, 다음 시점 부하 데이터는 현재 시점에 소프트웨어 자원과 하드웨어 자원 각각의 부하 정도에 예측된 다음 시점 행동에 대한 소프트웨어 모드 부하와 하드웨어 모드 부하를 더한 데이터에 상응할 수 있다. In this case, the next time load data may correspond to data obtained by adding the software mode load and the hardware mode load for the predicted next time behavior to the respective load levels of the software resource and the hardware resource at the current time point.

이와 같이 현재 시점의 부하 정도에 다음 시점 행동에 대한 부하를 더한 다음 시점 부하 데이터를 활용함으로써, 다음 시점 행동에 의해 오버플로우가 발생할 수 있는 처리 모드의 선택을 회피하거나 또는 보다 여유 있는 처리 모드가 선택되도록 스케줄링할 수 있다. In this way, by adding the load for the next action to the load at the current time and then using the load data at the time, the selection of a processing mode that can cause overflow due to the action at the next time can be avoided or a more generous processing mode is selected. can be scheduled.

또한, 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은 성능 프로파일, 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택한다(S230).In addition, a cloud streaming service method based on selective video processing considering resources and loads according to an embodiment of the present invention processes a video corresponding to a current view in consideration of a performance profile, next view load data, and system load at the current view. Select a mode (MODE) for (S230).

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.In this case, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 하드웨어 모드는 CPU를 기반으로 동작할 수 있다. In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

예를 들어, 본 발명에서는 도 3에 도시된 모드 선택부(340)가 앞서 데이터베이스화된 어플리케이션의 성능 프로파일, 다음 시점 부하 데이터 그리고 현재 시점에 측정되는 시스템 부하를 복합적으로 고려하여 현재 시점에 동영상을 처리하기에 가장 효율적일 것으로 판단되는 모드를 선택할 수 있다. For example, in the present invention, the mode selector 340 shown in FIG. 3 complexly considers the performance profile of the previously databased application, the load data at the next time, and the system load measured at the current time, and selects a video at the current time. A mode that is determined to be most efficient for processing can be selected.

이 때, 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율과 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 동영상을 처리하기 위한 모드를 선택할 수 있다. In this case, a mode for processing a video may be selected by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

이 때, 시스템 자원 효율은 소프트웨어 자원과 하드웨어 자원 각각에 대한 점유율이나 소프트웨어 자원과 하드웨어 자원 각각에 대한 부하도를 고려하여 결정될 수 있다. In this case, the system resource efficiency may be determined by considering the occupancy rate of each of the software resource and the hardware resource or the load degree of each of the software resource and the hardware resource.

예를 들어, 소프트웨어 자원과 하드웨어 자원의 점유율을 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 점유율 수치와 하드웨어 자원의 점유율 수치가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다. For example, assuming that software resource occupancy and hardware resource occupancy can be measured from 0 to 100, respectively, the more similar the software resource occupancy value and the hardware resource occupancy value are, the higher the system resource efficiency can be determined.

다른 예를 들어, 소프트웨어 자원과 하드웨어 자원 부하도를 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 부하 정도와 하드웨어 자원의 부하 정도가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다.For another example, assuming that software resource and hardware resource loads can be measured from 0 to 100, respectively, it can be determined that system resource efficiency is higher as the load of software resources and the load of hardware resources are similar.

또한, 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은 선택된 모드로 동영상을 처리하여 사용자의 단말로 스트리밍한다(S240).In addition, in the cloud streaming service method based on selective video processing in consideration of resources and loads according to an embodiment of the present invention, the video is processed in the selected mode and streamed to the user's terminal (S240).

예를 들어, 도 3에 도시된 스트리밍부(350)에서 선택된 모드로 동영상을 처리하여 사용자의 단말로 스트리밍을 수행할 수 있다.For example, a video may be processed in a mode selected by the streaming unit 350 shown in FIG. 3 and streamed to the user's terminal.

이 때, 사용자의 단말은 클라우드 스트리밍 서버로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행화면, 즉 동영상을 처리한 화면을 수신하여 사용자에게 제공할 수 있다. At this time, the user's terminal may receive an application execution screen corresponding to the cloud streaming service from the cloud streaming server, that is, a video processing screen, and provide it to the user.

이 때, 모드는 시스템 자원 효율에 따라 소프트웨어 모드에서 하드웨어 모드로, 또는 하드웨어 모드에서 소프트웨어 모드로 변경이 가능할 수 있다. In this case, the mode may be changed from the software mode to the hardware mode or from the hardware mode to the software mode according to system resource efficiency.

예를 들어, 본 발명에서는 클라우드 스트리밍 서비스가 지속적으로 제공되는 동안에 기설정된 측정 주기마다 소프트웨어 자원과 하드웨어 자원의 점유율 또는 부하도 정도를 측정하고, 만약 점유율 또는 부하도가 어느 한쪽으로 과도하게 높은 경우에는 현재 제공되고 있는 서비스의 처리 모드를 나머지 하나의 다른 처리 모드로 변경할 수 있다. For example, in the present invention, the degree of occupancy or load of software resources and hardware resources is measured for each predetermined measurement period while the cloud streaming service is continuously provided, and if the occupancy or load is excessively high in either direction, The processing mode of the currently provided service may be changed to another processing mode.

이와 같은 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 통해 클라우드 스트리밍 서비스를 제공함으로써, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있다. By providing a cloud streaming service through a cloud streaming service method based on selective video processing in consideration of such resources and loads, processing is performed to provide a service by selectively using software and hardware resources supported by the cloud streaming service system. By doing this, the resources in the system can be used to the maximum limit.

또한, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행할 수 있다. In addition, processing for service provision (decoding and rendering, etc.) can be performed more efficiently by considering the load of the next time that is predicted by considering the performance profile of the application serviced through the cloud streaming server.

또한, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공할 수 있다.In addition, by efficiently using resources within the cloud streaming service system to the maximum limit, it is possible to provide services to more users by increasing the number of simultaneous access to the cloud streaming server.

도 5는 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 과정의 일 예를 나타낸 도면이다. 5 is a diagram showing an example of a cloud streaming service process based on selective video processing considering resources and loads according to the present invention.

도 5를 참조하면, 본 발명에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 과정은 클라우드 스트리밍 서버에서 제공되는 어플리케이션에 대해 생성되는 성능 프로파일(510), 어플리케이션의 다음 시점 행동에 상응하는 다음 시점 부하 데이터(520) 및 현재 시점에서의 시스템 부하(530)에 해당하는 정보들을 수집 또는 생성하여 수행될 수 있다. Referring to FIG. 5, the cloud streaming service process based on selective video processing in consideration of resources and loads according to the present invention corresponds to the performance profile 510 generated for the application provided by the cloud streaming server, and the next behavior of the application. This may be performed by collecting or generating information corresponding to the load data 520 at the next time point and the system load 530 at the current time point.

성능 프로파일(510)은 어플리케이션에 대한 시점 별 부하를 소프트웨어 모드 및 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다. The performance profile 510 may correspond to data obtained by measuring a load for each application in a software mode and a hardware mode, respectively.

예를 들어, 어플리케이션의 각 시점마다 어플리케이션 실행화면을 디코딩, 렌더링, 스트리밍하여 사용자에게 보여주기 위한 처리과정을 각각 소프트웨어 자원과 하드웨어 자원으로 처리하였을 경우의 부하도를 계산하여 어플리케이션의 성능 프로파일(510)로 생성할 수 있다.For example, the performance profile 510 of the application is calculated by calculating the load when the processing process for decoding, rendering, and streaming the application execution screen for display to the user at each point of the application is processed with software resources and hardware resources, respectively. can be created with

다음 시점 부하 데이터(520)는 시점 별 부하 중 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.The next load data 520 may include information about a software mode load corresponding to a behavior at a next time point and a hardware mode load corresponding to a behavior at a next time point among loads at each time point.

예를 들어, 어플리케이션의 현재 시점을 기준으로 예측된 다음 시점 행동을 소프트웨어 모드로 처리하였을 경우의 부하도와 예측된 다음 시점 행동을 하드웨어 모드로 처리하였을 경우의 부하도를 고려하여 다음 시점 부하 데이터를 생성할 수 있다. For example, next time load data is generated by considering the load degree when the behavior of the next time predicted based on the current time of the application is processed in software mode and the load degree when the predicted next time action is processed in hardware mode. can do.

이 때, 다음 시점 부하 데이터는 현재 시점에 소프트웨어 자원과 하드웨어 자원 각각의 부하 정도에 예측된 다음 시점 행동에 대한 소프트웨어 모드 부하와 하드웨어 모드 부하를 더한 데이터에 상응할 수 있다. In this case, the next time load data may correspond to data obtained by adding the software mode load and the hardware mode load for the predicted next time behavior to the respective load levels of the software resource and the hardware resource at the current time point.

시스템 부하(530)는 클라우드 스트리밍 서버 내에서 현재 시점에 상응하게 측정되는 부하 정도에 상응할 수 있다. The system load 530 may correspond to the degree of load measured at the current time in the cloud streaming server.

이와 같이 성능 프로파일(510), 다음 시점 부하 데이터(520) 및 시스템 부하(530)에 해당하는 정보들이 모두 수집되면, 현재 시점에서 사용자로부터 요청된 동영상을 처리하기 위한 모드(MODE)를 소프트웨어 모드와 하드웨어 모드 중 어느 하나로 선택할 수 있다(S500).When all the information corresponding to the performance profile 510, the next time load data 520, and the system load 530 is collected in this way, the mode (MODE) for processing the video requested by the user at the current time is set to the software mode and One of the hardware modes can be selected (S500).

예를 들어, 데이터베이스화된 어플리케이션의 성능 프로파일(510), 다음 시점 부하 데이터(520) 그리고 현재 시점에 측정되는 시스템 부하(530)를 복합적으로 고려하여 현재 시점에 동영상을 처리하기에 가장 효율적일 것으로 판단되는 모드를 선택할 수 있다. For example, it is determined that it is most efficient to process a video at the current time by considering the performance profile 510 of the databased application, the load data 520 at the next time, and the system load 530 measured at the current time. mode can be selected.

이 후, 선택된 모드를 통해 동영상을 디코딩 및 렌더링하여 사용자의 단말로 스트리밍 처리할 수 있다(S510).Thereafter, the video may be decoded and rendered through the selected mode and streamed to the user's terminal (S510).

도 6은 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작흐름도이다.6 is an operation flow diagram showing in detail a cloud streaming service method based on selective video processing considering resources and loads according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법은, 먼저 어플리케이션이 실행되면(S602), 어플리케이션을 대상으로 소프트웨어 모드 및 하드웨어 모드 별 부하 테스트를 수행하여(S604) 어플리케이션의 성능 프로파일을 생성할 수 있다(S606).Referring to Figure 6, in the cloud streaming service method based on selective video processing in consideration of resources and load according to an embodiment of the present invention, when the application is executed first (S602), the load for each software mode and hardware mode for the application A performance profile of the application may be generated by performing the test (S604) (S606).

예를 들어, 본 발명의 일실시예에 따른 클라우드 스트리밍 서버에서는 도 3에 도시된 성능 프로파일 생성부(310)를 통해 클라우드 스트리밍 서버에서 실행 가능한 적어도 하나의 어플리케이션에 대한 성능 프로파일을 생성할 수 있다.For example, in the cloud streaming server according to an embodiment of the present invention, a performance profile for at least one application executable in the cloud streaming server may be generated through the performance profile generating unit 310 shown in FIG. 3 .

이 때, 성능 프로파일은 어플리케이션에 대한 시점 별 부하를 소프트웨어 모드 및 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다. In this case, the performance profile may correspond to data obtained by measuring load for each time point of the application in a software mode and a hardware mode, respectively.

이 때, 소프트웨어 모드는 클라우드 스트리밍 서비스 시스템의 GPU와 같은 소프트웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있고, 하드웨어 모드는 클라우드 스트리밍 서비스 시스템의 CPU와 같은 하드웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있다. At this time, the software mode may correspond to a mode for decoding and rendering video or content by utilizing software resources such as GPU of the cloud streaming service system, and the hardware mode utilizes hardware resources such as CPU of the cloud streaming service system. This may correspond to a mode for decoding and rendering video or content.

따라서, 본 발명에서는 자원 및 부하를 고려하여 효율적인 처리를 수행하기 위해 소프트웨어 자원과 하드웨어 자원 각각에 대한 어플리케이션의 시점 별 부하에 관한 데이터를 데이터베이스로 가질 수 있다. Therefore, in the present invention, in order to perform efficient processing in consideration of resources and loads, data on loads at each point in time of applications for each of software resources and hardware resources may be stored as a database.

예를 들어, 어플리케이션의 성능 프로파일은 도 4와 같이 생성되어 데이터베이스화될 수 있다. For example, a performance profile of an application may be created and stored as a database as shown in FIG. 4 .

이 때, 도 4에 도시된 각각의 APP 시점은 어플리케이션이 실행되고 순차적으로 보여지는 어플리케이션 실행화면에 상응하는 시점에 해당할 수 있다. At this time, each APP viewpoint shown in FIG. 4 may correspond to a viewpoint corresponding to an application execution screen that is sequentially displayed when an application is executed.

예를 들어, 어플리케이션이 실행되고 가장 처음에 보여지는 실행화면에 상응하는 시점이 APP 시점 #1이라고 가정할 수 있고, APP 시점 #1에서 사용자 단말로부터 발생하는 입력에 따라 APP 시점 #2 이나 APP 시점 #3에 해당하는 실행화면으로 시점이 변경될 수 있다. For example, it can be assumed that the time point corresponding to the first execution screen displayed after the application is executed is APP time #1, and APP time #2 or APP time depending on the input generated from the user terminal at APP time #1. The viewpoint can be changed to the execution screen corresponding to #3.

따라서, 본 발명에서는 어플리케이션의 각 시점마다 어플리케이션 실행화면을 디코딩, 렌더링, 스트리밍하여 사용자에게 보여주기 위한 처리과정을 각각 소프트웨어 자원과 하드웨어 자원으로 처리하였을 경우의 부하도를 계산하여 어플리케이션의 성능 프로파일로 생성할 수 있다. Therefore, in the present invention, the process of decoding, rendering, and streaming the application execution screen for display to the user at each point in time of the application is calculated by calculating the load when processing the software resource and the hardware resource, respectively, and generating the performance profile of the application. can do.

이 때, 도 4에 도시된 어플리케이션의 성능 프로파일은 일 예를 도시한 것으로, 도 4에 도시된 형태 이외에도 다양한 형태로 생성되어 데이터베이스화 될 수 있다. At this time, the performance profile of the application shown in FIG. 4 is an example, and may be created and stored in a database in various forms other than the form shown in FIG. 4 .

이 후, 어플리케이션에 대한 다음 시점 행동을 예측하여(S608), 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성할 수 있다(S610).Thereafter, by predicting the behavior of the application at the next time (S608), load data corresponding to the application at the next time may be generated (S610).

이 때, 다음 시점 부하 데이터는 시점 별 부하 중 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.In this case, the next load data may include information about a software mode load corresponding to a behavior at a next time point and a hardware mode load corresponding to a behavior at a next time point among loads for each time point.

예를 들어, 도 4를 참조하면, 어플리케이션에 대한 현재 시점이 APP 시점 #2 라고 가정한다면, 다음 시점이 될 수 있는 가능성이 있는 시점은 APP 시점 #4, APP 시점 #5, APP 시점 #6에 해당할 수 있다. For example, referring to FIG. 4 , if it is assumed that the current time point for an application is APP time #2, the possible next time points are APP time #4, APP time #5, and APP time #6. may apply.

이 때, 본 발명에서는 도 3에 도시된 어플리케이션 행동 예측부(320)가, 클라우드 스트리밍 서비스를 제공하면서 어플리케이션이 특정 시점 이후 어떤 시점으로 이동하는지에 대한 통계치를 산출하여 성능 프로파일과 함께 데이터베이스화 할 수 있고, 이렇게 데이터베이스화 된 통계치를 이용하여 다음 시점 행동을 예측할 수 있다. At this time, in the present invention, the application behavior prediction unit 320 shown in FIG. 3 calculates statistics on the point in time at which the application moves after a specific point in time while providing the cloud streaming service, and stores it in a database together with the performance profile. And, using the databased statistics, it is possible to predict the next action.

예를 들어, 사용자로부터 어플리케이션의 실행이 요청될 때마다 도 4에 도시된 각 시점 별로 이후 어떤 시점으로 이동하는지 누적하여 기록하고, 누적된 기록을 기반으로 시점 별 다음 시점 행동에 상응하는 통계 비율을 산출할 수 있다. For example, whenever an application execution is requested from the user, the next point in time shown in FIG. 4 is accumulated and recorded, and based on the accumulated record, a statistical ratio corresponding to the action at the next point in time is calculated. can be calculated

만약, APP 시점 #3에서 다음 시점 행동을 예측하는 경우, APP 시점 #3에서 APP 시점 #7로 이동하는 통계치와 APP 시점 #3에서 APP 시점 #8로 이동하는 통계치를 비교하여 더 높은 비율의 통계치를 갖는 시점을 다음 시점 행동으로 예측할 수 있다. 또는 APP 시점 #4에서 다음 시점 행동을 예측하는 경우, APP 시점 #4에서는 이동할 수 있는 다음 시점이 APP 시점 #9 하나뿐이므로, APP 시점 #9를 다음 시점 행동으로 예측할 수 있다. If the behavior of the next time is predicted at APP time #3, the statistic moving from APP time #3 to APP time #7 is compared with the statistic moving from APP time #3 to APP time #8 to obtain a higher percentage of the statistic. The time of having can be predicted as the next time action. Alternatively, when predicting the next action at APP time #4, APP time #9 can be predicted as the next action because there is only one next time point that can be moved from APP time #4.

이와 같이 다음 시점 행동이 예측되면, 도 3에 도시된 다음 시점 부하 데이터 생성부(330)에서, 예측된 다음 시점 행동을 소프트웨어 모드로 처리하였을 경우의 부하도와 예측된 다음 시점 행동을 하드웨어 모드로 처리하였을 경우의 부하도를 고려하여 다음 시점 부하 데이터를 생성할 수 있다. If the behavior at the next time point is predicted in this way, the next time load data generating unit 330 shown in FIG. 3 processes the predicted next time behavior and the load degree when the predicted next time behavior is processed in the software mode and the predicted next time behavior in the hardware mode. Load data at the next point in time can be created by considering the load degree in the case of

이 때, 다음 시점 부하 데이터는 현재 시점에 소프트웨어 자원과 하드웨어 자원 각각의 부하 정도에 예측된 다음 시점 행동에 대한 소프트웨어 모드 부하와 하드웨어 모드 부하를 더한 데이터에 상응할 수 있다. At this time, the next time load data may correspond to data obtained by adding the software mode load and the hardware mode load for the predicted next time behavior to the respective load levels of the software resource and the hardware resource at the current time point.

이와 같이 현재 시점의 부하 정도에 다음 시점 행동에 대한 부하를 더한 다음 시점 부하 데이터를 활용함으로써, 다음 시점 행동에 의해 오버플로우가 발생할 수 있는 처리 모드의 선택을 회피하거나 또는 보다 여유 있는 처리 모드가 선택되도록 스케줄링할 수 있다. In this way, by adding the load for the next action to the load at the current time and then using the load data at the time, the selection of a processing mode that can cause overflow due to the action at the next time can be avoided or a more generous processing mode is selected. can be scheduled.

이 후, 현재 시점의 시스템 부하를 산출하고(S612), 성능 프로파일, 다음 시점 부하데이터 및 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 효율적인 모드가 무엇인지를 판단할 수 있다(S614).Thereafter, the system load at the current time is calculated (S612), and an efficient mode for processing a video corresponding to the current time may be determined in consideration of the performance profile, the load data at the next time, and the system load (S614). ).

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.At this time, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 하드웨어 모드는 CPU를 기반으로 동작할 수 있다. In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

예를 들어, 본 발명에서는 도 3에 도시된 모드 선택부(340)가 앞서 데이터베이스화된 어플리케이션의 성능 프로파일, 다음 시점 부하 데이터 그리고 현재 시점에 측정되는 시스템 부하를 복합적으로 고려하여 현재 시점에 동영상을 처리하기에 가장 효율적일 것으로 판단되는 모드를 선택할 수 있다. For example, in the present invention, the mode selection unit 340 shown in FIG. 3 complexly considers the performance profile of the previously databased application, the load data at the next time, and the system load measured at the current time, and selects a video at the current time. A mode that is determined to be most efficient for processing can be selected.

이 때, 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율과 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 동영상을 처리하기 위한 모드를 선택할 수 있다. In this case, a mode for processing a video may be selected by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

이 때, 시스템 자원 효율은 소프트웨어 자원과 하드웨어 자원 각각에 대한 점유율이나 소프트웨어 자원과 하드웨어 자원 각각에 대한 부하도를 고려하여 결정될 수 있다. In this case, the system resource efficiency may be determined by considering the occupancy rate of each of the software resource and the hardware resource or the load degree of each of the software resource and the hardware resource.

예를 들어, 소프트웨어 자원과 하드웨어 자원의 점유율을 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 점유율 수치와 하드웨어 자원의 점유율 수치가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다. For example, assuming that software resource occupancy and hardware resource occupancy can be measured from 0 to 100, respectively, the more similar the software resource occupancy value and the hardware resource occupancy value are, the higher the system resource efficiency can be determined.

다른 예를 들어, 소프트웨어 자원과 하드웨어 자원 부하도를 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 부하 정도와 하드웨어 자원의 부하 정도가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다.For another example, assuming that software resource and hardware resource loads can be measured from 0 to 100, respectively, it can be determined that system resource efficiency is higher as the load of software resources and the load of hardware resources are similar.

단계(S614)의 판단결과 현재 시점의 동영상을 처리하기 위한 모드로 소프트웨어 모드가 선택되었으면, 소프트웨어 모드로 동영상을 디코딩 및 렌더링하여(S616), 사용자의 단말로 스트리밍할 수 있다(S620).As a result of the determination in step S614, if the software mode is selected as the mode for processing the current video, the video can be decoded and rendered in the software mode (S616) and streamed to the user's terminal (S620).

또한, 단계(S614)의 판단결과 현재 시점의 동영상을 처리하기 위한 모드로 하드웨어 모드가 선택되었으면, 하드웨어 모드로 동영상을 디코딩 및 렌더링하여(S618), 사용자의 단말로 스트리밍할 수 있다(S620).In addition, as a result of the determination in step S614, if the hardware mode is selected as the mode for processing the current video, the video can be decoded and rendered in the hardware mode (S618) and streamed to the user's terminal (S620).

이와 같은 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서비스 방법을 통해 클라우드 스트리밍 서비스를 제공함으로써, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있다. By providing a cloud streaming service through a cloud streaming service method based on selective video processing in consideration of such resources and loads, processing is performed to provide a service by selectively using software and hardware resources supported by the cloud streaming service system. By doing this, the resources in the system can be used to the maximum limit.

또한, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행할 수 있다. In addition, processing for service provision (decoding and rendering, etc.) can be performed more efficiently by considering the load of the next time that is predicted by considering the performance profile of the application serviced through the cloud streaming server.

또한, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공할 수 있다.In addition, by efficiently using resources within the cloud streaming service system to the maximum limit, it is possible to provide services to more users by increasing the number of concurrent users to the cloud streaming server.

도 7은 본 발명에 따른 클라우드 스트리밍 서비스 방법 중 모드를 선택하는 과정을 상세하게 나타낸 동작흐름도이다.7 is an operational flowchart showing in detail a process of selecting a mode of the cloud streaming service method according to the present invention.

도 7을 참조하면, 발명에 따른 클라우드 스트리밍 서비스 방법 중 모드를 선택하는 과정은 먼저, 어플리케이션이 실행된 이후 성능 프로파일, 다음 시점 부하 데이터 및 시스템 부하가 모두 입력되면(S710), 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율과 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율을 각각 계산할 수 있다(S720, 730).Referring to FIG. 7, in the process of selecting a mode among the cloud streaming service methods according to the invention, first, after the application is executed, when the performance profile, the next time load data, and the system load are all input (S710), the video is played in software mode. System resource efficiency in the case of processing and system resource efficiency in the case of processing the video in hardware mode can be calculated respectively (S720 and 730).

이 때, 시스템 자원 효율은 소프트웨어 자원과 하드웨어 자원 각각에 대한 점유율이나 소프트웨어 자원과 하드웨어 자원 각각에 대한 부하도를 고려하여 결정될 수 있다. In this case, the system resource efficiency may be determined by considering the occupancy rate of each of the software resource and the hardware resource or the load degree of each of the software resource and the hardware resource.

예를 들어, 소프트웨어 자원과 하드웨어 자원의 점유율을 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 점유율 수치와 하드웨어 자원의 점유율 수치가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다. For example, assuming that software resource occupancy and hardware resource occupancy can be measured from 0 to 100, respectively, the more similar the software resource occupancy value and the hardware resource occupancy value are, the higher the system resource efficiency can be determined.

다른 예를 들어, 소프트웨어 자원과 하드웨어 자원 부하도를 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 부하 정도와 하드웨어 자원의 부하 정도가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다.For another example, assuming that software resource and hardware resource loads can be measured from 0 to 100, respectively, it can be determined that system resource efficiency is higher as the load of software resources and the load of hardware resources are similar.

이 후, 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율이 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율보다 높은지 여부를 판단하고(S735), 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율이 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율보다 높으면, 동영상을 처리할 모드로 소프트웨어 모드를 선택할 수 있다(S740).Thereafter, it is determined whether the system resource efficiency when the video is processed in the software mode is higher than the system resource efficiency when the video is processed in the hardware mode (S735), and the system resource efficiency when the video is processed in the software mode. If the hardware mode is higher than system resource efficiency when the video is processed, the software mode may be selected as a mode to process the video (S740).

또한, 단계(S735)의 판단결과 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율이 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율보다 높지 않으면, 동영상을 처리할 모드로 하드웨어 모드를 선택할 수 있다(S750).In addition, as a result of the determination in step S735, if the efficiency of system resources in the case of processing the video in the software mode is not higher than that in the case of processing the video in the hardware mode, the hardware mode can be selected as the mode to process the video. (S750).

이 후, 선택된 모드를 통해 동영상을 처리한 뒤 사용자의 단말로 스트리밍할 수 있다.Thereafter, the video can be processed through the selected mode and then streamed to the user's terminal.

도 8은 본 발명의 일실시예에 따른 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서버를 나타낸 도면이다.8 is a diagram illustrating a cloud streaming server based on selective video processing considering resources and loads according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서버는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템에서 구현될 수 있다. 도 8에 도시된 바와 같이, 컴퓨터 시스템(800)은 버스(820)를 통하여 서로 통신하는 하나 이상의 프로세서(810), 메모리(830), 사용자 입력 장치(840), 사용자 출력 장치(850) 및 스토리지(860)를 포함할 수 있다. 또한, 컴퓨터 시스템(800)은 네트워크(880)에 연결되는 네트워크 인터페이스(870)를 더 포함할 수 있다. 프로세서(810)는 중앙 처리 장치 또는 메모리(830)나 스토리지(860)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(830) 및 스토리지(860)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(831)이나 RAM(832)을 포함할 수 있다.Referring to Figure 8, the cloud streaming server according to an embodiment of the present invention may be implemented in a computer system such as a computer-readable recording medium. As shown in FIG. 8 , computer system 800 includes one or more processors 810, memory 830, user input devices 840, user output devices 850, and storage that communicate with each other via a bus 820. (860). In addition, computer system 800 may further include a network interface 870 coupled to network 880 . The processor 810 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 830 or the storage 860 . Memory 830 and storage 860 may be various types of volatile or non-volatile storage media. For example, the memory may include ROM 831 or RAM 832 .

따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 측면에 따른 방법을 수행할 수 있다.Accordingly, embodiments of the present invention may be implemented as a computer-implemented method or a non-transitory computer-readable medium in which instructions executable by the computer are recorded. When executed by a processor, the computer readable instructions may perform a method according to at least one aspect of the present invention.

프로세서(810)는 부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성한다.The processor 810 generates a performance profile of the application based on the load test.

예를 들어, 본 발명의 일실시예에 따른 클라우드 스트리밍 서버에서는 도 3에 도시된 성능 프로파일 생성부(310)를 통해 클라우드 스트리밍 서버에서 실행 가능한 적어도 하나의 어플리케이션에 대한 성능 프로파일을 생성할 수 있다.For example, in the cloud streaming server according to an embodiment of the present invention, a performance profile for at least one application executable in the cloud streaming server may be generated through the performance profile generating unit 310 shown in FIG. 3 .

이 때, 성능 프로파일은 어플리케이션에 대한 시점 별 부하를 소프트웨어 모드 및 하드웨어 모드에서 각각 측정한 데이터에 상응할 수 있다. In this case, the performance profile may correspond to data obtained by measuring load for each time point of the application in a software mode and a hardware mode, respectively.

이 때, 소프트웨어 모드는 클라우드 스트리밍 서비스 시스템의 GPU와 같은 소프트웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있고, 하드웨어 모드는 클라우드 스트리밍 서비스 시스템의 CPU와 같은 하드웨어 자원을 활용하여 동영상이나 컨텐츠를 디코딩 및 렌더링 처리하는 모드에 상응할 수 있다. At this time, the software mode may correspond to a mode for decoding and rendering video or content by utilizing software resources such as GPU of the cloud streaming service system, and the hardware mode utilizes hardware resources such as CPU of the cloud streaming service system. This may correspond to a mode for decoding and rendering video or content.

따라서, 본 발명에서는 자원 및 부하를 고려하여 효율적인 처리를 수행하기 위해 소프트웨어 자원과 하드웨어 자원 각각에 대한 어플리케이션의 시점 별 부하에 관한 데이터를 데이터베이스로 가질 수 있다. Therefore, in the present invention, in order to perform efficient processing in consideration of resources and loads, data on loads at each point in time of applications for each of software resources and hardware resources may be stored as a database.

예를 들어, 어플리케이션의 성능 프로파일은 도 4와 같이 생성되어 데이터베이스화될 수 있다. For example, a performance profile of an application may be created and stored as a database as shown in FIG. 4 .

이 때, 도 4에 도시된 각각의 APP 시점은 어플리케이션이 실행되고 순차적으로 보여지는 어플리케이션 실행화면에 상응하는 시점에 해당할 수 있다. At this time, each APP viewpoint shown in FIG. 4 may correspond to a viewpoint corresponding to an application execution screen that is sequentially displayed when an application is executed.

예를 들어, 어플리케이션이 실행되고 가장 처음에 보여지는 실행화면에 상응하는 시점이 APP 시점 #1이라고 가정할 수 있고, APP 시점 #1에서 사용자 단말로부터 발생하는 입력에 따라 APP 시점 #2 이나 APP 시점 #3에 해당하는 실행화면으로 시점이 변경될 수 있다. For example, it can be assumed that the time point corresponding to the first execution screen displayed after the application is executed is APP time #1, and APP time #2 or APP time depending on the input generated from the user terminal at APP time #1. The viewpoint can be changed to the execution screen corresponding to #3.

따라서, 본 발명에서는 어플리케이션의 각 시점마다 어플리케이션 실행화면을 디코딩, 렌더링, 스트리밍하여 사용자에게 보여주기 위한 처리과정을 각각 소프트웨어 자원과 하드웨어 자원으로 처리하였을 경우의 부하도를 계산하여 어플리케이션의 성능 프로파일로 생성할 수 있다. Therefore, in the present invention, the process of decoding, rendering, and streaming the application execution screen for display to the user at each point in time of the application is calculated by calculating the load when processing the software resource and the hardware resource, respectively, and generating the performance profile of the application. can do.

이 때, 도 4에 도시된 어플리케이션의 성능 프로파일은 일 예를 도시한 것으로, 도 4에 도시된 형태 이외에도 다양한 형태로 생성되어 데이터베이스화 될 수 있다. At this time, the performance profile of the application shown in FIG. 4 is an example, and may be created and stored in a database in various forms other than the form shown in FIG. 4 .

또한, 프로세서(810)는 어플리케이션에 대한 다음 시점 행동을 예측하여 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성한다.In addition, the processor 810 predicts the behavior of the application at the next time and generates next time load data corresponding to the application.

이 때, 다음 시점 부하 데이터는 시점 별 부하 중 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함할 수 있다.In this case, the next load data may include information about a software mode load corresponding to a behavior at a next time point and a hardware mode load corresponding to a behavior at a next time point among loads for each time point.

예를 들어, 도 4를 참조하면, 어플리케이션에 대한 현재 시점이 APP 시점 #2 라고 가정한다면, 다음 시점이 될 수 있는 가능성이 있는 시점은 APP 시점 #4, APP 시점 #5, APP 시점 #6에 해당할 수 있다. For example, referring to FIG. 4 , if it is assumed that the current time point for an application is APP time #2, the possible next time points are APP time #4, APP time #5, and APP time #6. may apply.

이 때, 본 발명에서는 도 3에 도시된 어플리케이션 행동 예측부(320)가, 클라우드 스트리밍 서비스를 제공하면서 어플리케이션이 특정 시점 이후 어떤 시점으로 이동하는지에 대한 통계치를 산출하여 성능 프로파일과 함께 데이터베이스화 할 수 있고, 이렇게 데이터베이스화 된 통계치를 이용하여 다음 시점 행동을 예측할 수 있다. At this time, in the present invention, the application behavior prediction unit 320 shown in FIG. 3 calculates statistics on the point in time at which the application moves after a specific point in time while providing the cloud streaming service, and stores it in a database together with the performance profile. And, using the databased statistics, it is possible to predict the next action.

예를 들어, 사용자로부터 어플리케이션의 실행이 요청될 때마다 도 4에 도시된 각 시점 별로 이후 어떤 시점으로 이동하는지 누적하여 기록하고, 누적된 기록을 기반으로 시점 별 다음 시점 행동에 상응하는 통계 비율을 산출할 수 있다. For example, whenever an application execution is requested from the user, the next point in time shown in FIG. 4 is accumulated and recorded, and based on the accumulated record, a statistical ratio corresponding to the action at the next point in time is calculated. can be calculated

만약, APP 시점 #3에서 다음 시점 행동을 예측하는 경우, APP 시점 #3에서 APP 시점 #7로 이동하는 통계치와 APP 시점 #3에서 APP 시점 #8로 이동하는 통계치를 비교하여 더 높은 비율의 통계치를 갖는 시점을 다음 시점 행동으로 예측할 수 있다. 또는 APP 시점 #4에서 다음 시점 행동을 예측하는 경우, APP 시점 #4에서는 이동할 수 있는 다음 시점이 APP 시점 #9 하나뿐이므로, APP 시점 #9를 다음 시점 행동으로 예측할 수 있다. If the behavior of the next time is predicted at APP time #3, the statistic moving from APP time #3 to APP time #7 is compared with the statistic moving from APP time #3 to APP time #8 to obtain a higher percentage of the statistic. The time of having can be predicted as the next time action. Alternatively, when predicting the next action at APP time #4, APP time #9 can be predicted as the next action since there is only one next time point that can be moved from APP time #4.

이와 같이 다음 시점 행동이 예측되면, 도 3에 도시된 다음 시점 부하 데이터 생성부(330)에서, 예측된 다음 시점 행동을 소프트웨어 모드로 처리하였을 경우의 부하도와 예측된 다음 시점 행동을 하드웨어 모드로 처리하였을 경우의 부하도를 고려하여 다음 시점 부하 데이터를 생성할 수 있다. If the behavior at the next time point is predicted in this way, the next time load data generating unit 330 shown in FIG. 3 processes the predicted next time behavior and the load degree when the predicted next time behavior is processed in the software mode and the predicted next time behavior in the hardware mode. Load data at the next point in time can be created by considering the load degree in the case of

이 때, 다음 시점 부하 데이터는 현재 시점에 소프트웨어 자원과 하드웨어 자원 각각의 부하 정도에 예측된 다음 시점 행동에 대한 소프트웨어 모드 부하와 하드웨어 모드 부하를 더한 데이터에 상응할 수 있다. In this case, the next time load data may correspond to data obtained by adding the software mode load and the hardware mode load for the predicted next time behavior to the respective load levels of the software resource and the hardware resource at the current time point.

이와 같이 현재 시점의 부하 정도에 다음 시점 행동에 대한 부하를 더한 다음 시점 부하 데이터를 활용함으로써, 다음 시점 행동에 의해 오버플로우가 발생할 수 있는 처리 모드의 선택을 회피하거나 또는 보다 여유 있는 처리 모드가 선택되도록 스케줄링할 수 있다. In this way, by adding the load for the next action to the load at the current time and then using the load data at the time, the selection of a processing mode that can cause overflow due to the action at the next time can be avoided or a more generous processing mode is selected. can be scheduled.

또한, 프로세서(810)는 성능 프로파일, 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택한다.In addition, the processor 810 selects a mode (MODE) for processing a video corresponding to the current view in consideration of the performance profile, the load data of the next view, and the system load of the current view.

이 때, 모드는 소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응할 수 있다.In this case, the mode may correspond to any one of a software mode and a hardware mode.

이 때, 소프트웨어 모드는 GPU를 기반으로 동작하고, 하드웨어 모드는 CPU를 기반으로 동작할 수 있다. In this case, the software mode may operate based on the GPU, and the hardware mode may operate based on the CPU.

예를 들어, 본 발명에서는 도 3에 도시된 모드 선택부(340)가 앞서 데이터베이스화된 어플리케이션의 성능 프로파일, 다음 시점 부하 데이터 그리고 현재 시점에 측정되는 시스템 부하를 복합적으로 고려하여 현재 시점에 동영상을 처리하기에 가장 효율적일 것으로 판단되는 모드를 선택할 수 있다. For example, in the present invention, the mode selector 340 shown in FIG. 3 complexly considers the performance profile of the previously databased application, the load data at the next time, and the system load measured at the current time, and selects a video at the current time. A mode that is determined to be most efficient for processing can be selected.

이 때, 소프트웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율과 하드웨어 모드로 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 동영상을 처리하기 위한 모드를 선택할 수 있다. In this case, a mode for processing a video may be selected by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.

이 때, 시스템 자원 효율은 소프트웨어 자원과 하드웨어 자원 각각에 대한 점유율이나 소프트웨어 자원과 하드웨어 자원 각각에 대한 부하도를 고려하여 결정될 수 있다. In this case, the system resource efficiency may be determined by considering the occupancy rate of each of the software resource and the hardware resource or the load degree of each of the software resource and the hardware resource.

예를 들어, 소프트웨어 자원과 하드웨어 자원의 점유율을 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 점유율 수치와 하드웨어 자원의 점유율 수치가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다. For example, assuming that software resource occupancy and hardware resource occupancy can be measured from 0 to 100, respectively, the more similar the software resource occupancy value and the hardware resource occupancy value are, the higher the system resource efficiency can be determined.

다른 예를 들어, 소프트웨어 자원과 하드웨어 자원 부하도를 각각 0부터 100까지 측정할 수 있다고 가정한다면, 소프트웨어 자원의 부하 정도와 하드웨어 자원의 부하 정도가 유사할수록 시스템 자원 효율이 높은 것으로 판단할 수 있다.For another example, assuming that software resource and hardware resource loads can be measured from 0 to 100, respectively, it can be determined that system resource efficiency is higher as the load of software resources and the load of hardware resources are similar.

또한, 프로세서(810)는 선택된 모드로 동영상을 처리하여 사용자의 단말로 스트리밍한다.In addition, the processor 810 processes the video in the selected mode and streams it to the user's terminal.

예를 들어, 도 3에 도시된 스트리밍부(350)에서 선택된 모드로 동영상을 처리하여 사용자의 단말로 스트리밍을 수행할 수 있다.For example, a video may be processed in a mode selected by the streaming unit 350 shown in FIG. 3 and streamed to the user's terminal.

이 때, 사용자의 단말은 클라우드 스트리밍 서버로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행화면, 즉 동영상을 처리한 화면을 수신하여 사용자에게 제공할 수 있다. At this time, the user's terminal may receive an application execution screen corresponding to the cloud streaming service from the cloud streaming server, that is, a video processing screen, and provide it to the user.

또한, 사용자의 단말은 통신망에 연결되어 클라우드 컴퓨팅 시스템 기반으로 어플리케이션을 실행할 수 있는 장치로, 이동통신단말기에 한정된 것이 아니고, 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말 및 IP(Internet Protocol) 단말 등의 다양한 단말일 수 있다. 또한, 사용자의 단말은 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수 있다.In addition, the user's terminal is a device that is connected to a communication network and can run applications based on a cloud computing system, and is not limited to a mobile communication terminal, and is not limited to all information communication devices, multimedia terminals, wired terminals, fixed terminals, and IP (Internet Protocol) It may be various terminals, such as a terminal. In addition, the user's terminal is a mobile phone, PMP (Portable Multimedia Played), MID (Mobile Internet Device), smart phone (Smart Phone), desktop (Desktop), tablet computer (Tablet PC), notebook (Note book), netbook (Netbook) Book), a personal digital assistant (PDA), a smart TV, and a mobile terminal having various mobile communication specifications, such as an information communication device.

또한, 사용자의 단말은 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 사용자의 단말의 기능 제어와 관련하여 입력되는 신호를 입력부를 통해 제어부로 전달할 수 있다. 또한, 사용자의 단말의 입력부는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성할 수 있다. 이 때, 사용자의 단말의 입력부는 사용자의 단말의 표시부와 함께 하나의 터치패널(또는 터치 스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 사용자의 단말의 입력부는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. 특히, 본 발명에 따른 사용자의 단말의 입력부는 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드하거나 다운로드 하기 위한 입력 신호를 사용자의 단말의 제어부로 전달할 수 있다.In addition, the user's terminal can receive various information such as numbers and text information, set various functions, and transmit input signals related to function control of the user's terminal to the control unit through the input unit. In addition, the input unit of the user's terminal may include at least one of a keypad and a touchpad that generate an input signal according to a user's touch or manipulation. At this time, the input unit of the user's terminal is configured in the form of a single touch panel (or touch screen) together with the display unit of the user's terminal to simultaneously perform input and display functions. In addition, all types of input means that may be developed in the future may be used for the input unit of the user's terminal, in addition to input devices such as a keyboard, keypad, mouse, joystick, and the like. In particular, the input unit of the user's terminal according to the present invention may transmit an input signal for uploading or downloading content based on cloud computing to the control unit of the user's terminal.

또한, 사용자의 단말의 표시부는 사용자의 단말의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시할 수 있다. 또한, 사용자의 단말의 표시부는 사용자의 단말의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 사용자의 단말의 표시부는 액정표시장치(LCD, Liquid Crystal Display), 초박막 액정표시장치(TFT-LCD, Thin Film Transistor LCD), 발광다이오드(LED, Light Emitting Diode), 유기 발광다이오드(OLED, Organic LED), 능동형 유기발광다이오드(AMOLED, Active Matrix OLED), 레티나 디스플레이(Retina Display), 플렉시블 디스플레이(Flexible display) 및 3차원(3 Dimension) 디스플레이 등으로 구성될 수 있다. 이 때, 사용자의 단말의 표시부가 터치스크린 형태로 구성된 경우, 사용자의 단말의 표시부는 사용자의 단말의 입력부의 기능 중 일부 또는 전부를 수행할 수 있다. 특히, 본 발명에 따른 사용자의 단말의 표시부는 클라우드 컴퓨팅 기반으로 제공되는 컨텐츠의 실행과 관련된 정보를 화면으로 표시할 수 있다.In addition, the display unit of the user's terminal may display information about a series of operation states and operation results occurring while the user's terminal performs functions. Also, the display unit of the user's terminal may display a menu of the user's terminal and user data input by the user. Here, the display unit of the user's terminal includes a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), a light emitting diode (LED), an organic light emitting diode (OLED, Organic LED), active matrix OLED (AMOLED), Retina Display, flexible display, and 3D display. In this case, when the display unit of the user terminal is configured in the form of a touch screen, the display unit of the user terminal may perform some or all of the functions of the input unit of the user terminal. In particular, the display unit of the user's terminal according to the present invention may display information related to the execution of content provided based on cloud computing on the screen.

또한, 사용자의 단말의 저장부는 데이터를 저장하기 위한 장치로, 주 기억장치 및 보조 기억장치를 포함하고, 사용자의 단말의 기능 동작에 필요한 응용 프로그램을 저장할 수 있다. 이러한 사용자의 단말의 저장부는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 사용자의 단말은 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. 특히, 본 발명에 따른 사용자의 단말의 저장부는 사용자의 단말을 부팅시키는 운영체제, 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드하거나 다운로드하기 위한 프로그램 등을 저장할 수 있다. 또한, 사용자의 단말의 저장부는 다수의 컨텐츠를 저장하는 컨텐츠 DB와 사용자의 단말의 정보를 저장할 수 있다. 이 때, 컨텐츠 DB는 컨텐츠를 실행하기 위한 실행 데이터와 컨텐츠에 대한 속성 정보를 포함하고, 컨텐츠 실행에 따른 컨텐츠 사용 정보 등이 저장될 수 있다. 그리고, 사용자의 단말의 정보는 단말 사양 정보를 포함할 수 있다.Also, the storage unit of the user's terminal is a device for storing data, includes a main storage device and an auxiliary storage device, and may store application programs required for functional operation of the user's terminal. The storage unit of the user's terminal may largely include a program area and a data area. Here, when the user's terminal activates each function in response to the user's request, the corresponding application programs are executed under the control of the control unit to provide each function. In particular, the storage unit of the user's terminal according to the present invention may store an operating system for booting the user's terminal, a program for uploading or downloading content based on cloud computing, and the like. In addition, the storage unit of the user's terminal may store a content DB for storing a plurality of contents and information of the user's terminal. In this case, the content DB includes execution data for executing the content and attribute information about the content, and may store content use information according to content execution. And, the user's terminal information may include terminal specification information.

또한, 사용자의 단말의 통신부는 클라우드 스트리밍 서버와 네트워크를 통해 데이터를 송수신하기 위한 기능을 수행할 수 있다. 여기서 사용자의 단말의 통신부는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함할 수 있다. 이러한 사용자의 단말의 통신부는 무선통신 모듈 및 유선통신 모듈 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 사용자의 단말이 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 클라우드 스트리밍 서버로 송수신할 수 있다. 또한, 유선통신 모듈은 유선으로 데이터를 송수신하기 위한 것이다. 유선통신 모듈은 유선을 통해 네트워크에 접속하여, 클라우드 스트리밍 서버에 데이터를 송수신할 수 있다. 즉 사용자의 단말은 무선통신 모듈 또는 유선통신 모듈을 이용하여 네트워크에 접속하며, 네트워크를 통해 클라우드 스트리밍 서버와 데이터를 송수신할 수 있다. 특히, 본 발명에 따른 네트워크는 클라우드 스트리밍 서버 또는 다른 사용자의 단말과 통신하여 클라우드 컴퓨팅 기반으로 컨텐츠를 업로드 또는 다운로드 하는데 필요한 데이터를 송수신할 수 있다.In addition, the communication unit of the user's terminal may perform a function for transmitting and receiving data through a cloud streaming server and a network. Here, the communication unit of the user's terminal may include an RF transmitting means for up-converting and amplifying the frequency of a transmitted signal, and an RF receiving means for low-noise amplifying a received signal and down-converting the frequency. The communication unit of the user's terminal may include at least one of a wireless communication module and a wired communication module. And, the wireless communication module is a configuration for transmitting and receiving data according to a wireless communication method, and when the user's terminal uses wireless communication, data is transmitted using any one of a wireless network communication module, a wireless LAN communication module, and a wireless fan communication module. can be transmitted and received to the cloud streaming server. In addition, the wired communication module is for transmitting and receiving data by wire. The wired communication module may access a network through a wire and transmit/receive data to a cloud streaming server. That is, the user's terminal accesses the network using a wireless communication module or a wired communication module, and can transmit and receive data to and from the cloud streaming server through the network. In particular, the network according to the present invention can communicate with a cloud streaming server or another user's terminal to transmit and receive data necessary for uploading or downloading content based on cloud computing.

또한, 사용자의 단말의 제어부는 운영 체제(OS, Operation System) 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 예를 들어, 제어부는 클라우드 스트리밍 서버에 접속하는 과정 전반을 제어할 수 있다. 별도의 서비스 어플리케이션을 통해 클라우드 스트리밍 서버에 접속하는 경우, 사용자의 요청에 따라 서비스 어플리케이션을 실행되는 과정 전반을 제어할 수 있으며, 실행과 동시에 클라우드 스트리밍 서버로 서비스 이용 요청이 전송되도록 제어할 수 있으며, 이때 사용자 인증에 필요한 사용자의 단말의 정보가 함께 전송되도록 제어할 수 있다.In addition, the control unit of the user's terminal may be an operating system (OS) and a process device that drives each component. For example, the controller may control the entire process of accessing the cloud streaming server. When accessing the cloud streaming server through a separate service application, it is possible to control the entire process of running the service application according to the user's request, and control the service use request to be transmitted to the cloud streaming server at the same time as the execution, At this time, control may be performed so that information of the user's terminal required for user authentication is transmitted together.

또한, 사용자의 단말의 제어부는 사용자의 요청에 따라 사용자의 단말의 저장부에 저장된 특정 컨텐츠를 실행할 수 있다. 이때, 제어부는 컨텐츠 실행에 따른 컨텐츠 사용 이력을 컨텐츠 사용 정보로 저장할 수 있다.Also, the controller of the user's terminal may execute specific content stored in the storage of the user's terminal according to the user's request. In this case, the controller may store a content use history according to content execution as content use information.

또한, 사용자의 단말의 제어부는 컨텐츠를 실행하기 위한 실행 데이터와, 컨텐츠에 대한 속성 정보를 포함하는 컨텐츠 정보와, 컨텐츠 사용 이력에 따른 정보인 컨텐츠 사용 정보를 함께 클라우드 스트리밍 서버로 전송하여 업로드할 수 있다. 이후, 제어부는 클라우드 스트리밍 서버에 전송하여 업로드된 컨텐츠에 대해서는 사용자의 요청에 따라 사용자의 단말의 저장부에서 삭제할 수 있으며, 클라우드 스트리밍 서버에 접속하여 클라우드 스트리밍 서버를 통해 컨텐츠를 실행하여 이용할 수도 있다.In addition, the control unit of the user's terminal can transmit and upload execution data for executing the content, content information including attribute information about the content, and content use information, which is information according to the content use history, to the cloud streaming server. there is. Thereafter, the control unit may delete the content uploaded to the cloud streaming server from the storage unit of the user's terminal according to the user's request, and may connect to the cloud streaming server to execute and use the content through the cloud streaming server.

또한, 사용자의 단말의 제어부는 클라우드 스트리밍 서버에 접속하여 다른 사용자의 단말로부터 컨텐츠를 다운로드한 후 저장부에 저장되도록 제어할 수도 있으며, 클라우드 스트리밍 서버를 통해 컨텐츠 실행 시, 실행에 필요한 데이터만을 수신한 후 컨텐츠가 실행되도록 제어할 수도 있다.In addition, the control unit of the user's terminal may access the cloud streaming server to download content from another user's terminal and then control the storage to be stored. When the content is executed through the cloud streaming server, only data necessary for execution is received. You can also control the content to be executed later.

이 때, 모드는 시스템 자원 효율에 따라 소프트웨어 모드에서 하드웨어 모드로, 또는 하드웨어 모드에서 소프트웨어 모드로 변경이 가능할 수 있다. In this case, the mode may be changed from the software mode to the hardware mode or from the hardware mode to the software mode according to system resource efficiency.

예를 들어, 본 발명에서는 클라우드 스트리밍 서비스가 지속적으로 제공되는 동안에 기설정된 측정 주기마다 소프트웨어 자원과 하드웨어 자원의 점유율 또는 부하도 정도를 측정하고, 만약 점유율 또는 부하도가 어느 한쪽으로 과도하게 높은 경우에는 현재 제공되고 있는 서비스의 처리 모드를 나머지 하나의 다른 처리 모드로 변경할 수 있다. For example, in the present invention, the degree of occupancy or load of software resources and hardware resources is measured for each predetermined measurement period while the cloud streaming service is continuously provided, and if the occupancy or load is excessively high in either direction, The processing mode of the currently provided service may be changed to another processing mode.

메모리(830)는 성능 프로파일 및 다음 시점 부하 데이터를 저장한다.Memory 830 stores performance profile and next time load data.

또한, 메모리(830)는 상술한 바와 같이 본 발명의 일실시예에 따른 클라우드 스트리밍 서버에서 발생하는 다양한 정보를 저장한다.In addition, the memory 830 stores various information generated in the cloud streaming server according to an embodiment of the present invention as described above.

실시예에 따라, 메모리(830)는 클라우드 스트리밍 서버와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 메모리(830)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.Depending on the embodiment, the memory 830 may be configured independently of the cloud streaming server to support functions for the cloud streaming service. At this time, the memory 830 may operate as a separate mass storage and may include a control function for performing an operation.

한편, 클라우드 스트리밍 서버는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.On the other hand, the cloud streaming server is equipped with a memory can store information in the device. In one implementation, the memory is a computer readable medium. In one implementation, the memory may be a volatile memory unit, and in another implementation, the memory may be a non-volatile memory unit. In one implementation, the storage device is a computer readable medium. In various different implementations, the storage device may include, for example, a hard disk device, an optical disk device, or some other mass storage device.

이와 같은 자원 및 부하를 고려한 선택적 동영상 처리 기반의 클라우드 스트리밍 서버를 통해 클라우드 스트리밍 서비스를 제공함으로써, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있다. By providing cloud streaming services through a cloud streaming server based on selective video processing in consideration of such resources and loads, by selectively using software and hardware resources supported by the cloud streaming service system to perform processing to provide services. The resources in the system can be used to the maximum limit.

또한, 클라우드 스트리밍 서버를 통해 서비스되는 어플리케이션의 성능 프로파일을 고려하여 예측되는 다음 시점의 부하를 고려하여 보다 효율적으로 서비스 제공을 위한 처리 과정(디코딩 및 렌더링 등)을 수행할 수 있다. In addition, processing for service provision (decoding and rendering, etc.) can be performed more efficiently by considering the load of the next time that is predicted by considering the performance profile of the application serviced through the cloud streaming server.

또한, 클라우드 스트리밍 서비스 시스템 내 자원을 최대 한도로 효율적으로 사용함으로써 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 보다 많은 사용자들에게 서비스를 제공할 수 있다.In addition, by efficiently using resources within the cloud streaming service system to the maximum limit, it is possible to provide services to more users by increasing the number of concurrent users to the cloud streaming server.

본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.Implementations of the functional operations and subject matter described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in a combination of one or more of the foregoing. can be implemented Implementations of the subject matter described herein are one or more computer program products, that is, one or more modules of computer program instructions encoded on a tangible program storage medium for execution by or for controlling the operation of a processing system. can be implemented

컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.A computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter that affects a machine readable propagating signal, or a combination of one or more of these.

본 명세서에서 '시스템'이나 '장치'라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.In this specification, the term 'system' or 'apparatus' encompasses all devices, devices, and machines for processing data, including, for example, a programmable processor, computer, or multiple processors or computers. A processing system may include, in addition to hardware, code that forms an execution environment for computer programs on demand, such as, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. .

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.A computer program (also known as a program, software, software application, script or code) may be written in any form of programming language, including compiled or interpreted language, a priori or procedural language, and may be a stand-alone program or module; It may be deployed in any form including components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in a file system. A program may be in a single file provided to the requested program, or in multiple interacting files (e.g., one or more modules, subprograms, or files that store portions of code), or parts of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). A computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.On the other hand, computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROM, EEPROM and flash memory devices, magnetic disks such as internal hard disks or external disks, magneto-optical disks and CDs. - may include all forms of non-volatile memory, media and memory devices, including ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated into, special purpose logic circuitry.

본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.Implementations of the subject matter described herein may include back-end components, such as, for example, data servers, or may include middleware components, such as, for example, application servers, or may include, for example, web browsers or graphical users through which users may interact with implementations of the subject matter described herein. It may also be implemented in a computing system that includes a front-end component, such as a client computer having an interface, or any combination of one or more of such back-ends, middleware, or front-end components. The components of the system are interconnectable by any form or medium of digital data communication, such as, for example, a communication network.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although this specification contains many specific implementation details, they should not be construed as limiting on the scope of any invention or what is claimed, but rather as a description of features that may be unique to a particular embodiment of a particular invention. It should be understood. Likewise, certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. Further, while features may operate in particular combinations and are initially depicted as such claimed, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination is a subcombination. or sub-combination variations.

또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다In addition, although operations are depicted in the drawings in a specific order in this specification, it is not to be understood that such operations must be performed in the specific order shown or sequential order or that all illustrated operations must be performed in order to obtain desired results. Can not be done. In certain cases, multitasking and parallel processing can be advantageous. Further, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and the program components and systems described may generally be integrated together into a single software product or packaged into multiple software products. It should be understood that you can

이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, this specification is not intended to limit the invention to the specific terms presented. Therefore, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art may make alterations, changes, and modifications to the present examples without departing from the scope of the present invention. The scope of the present invention is indicated by the following claims rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

본 발명에 의하면 부하테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하고, 어플리케이션에 대한 다음 시점 행동을 예측하여 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하고, 성능 프로파일, 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하고, 선택된 모드로 동영상을 처리하여 사용자의 단말로 스트리밍할 수 있다. 나아가, 클라우드 스트리밍 서비스 시스템에서 지원하는 소프트웨어 자원과 하드웨어 자원을 선택적으로 이용하여 서비스를 제공하기 위한 처리를 수행함으로써 시스템 내 자원을 최대 한도로 사용할 수 있고, 이로 인해 클라우드 스트리밍 서버에 대한 동시 접속자 수를 증가시켜 클라우드 스트리밍 시스템을 보다 효율적으로 운용할 수 있다.According to the present invention, a performance profile of an application is created based on a load test, the behavior of the next time for the application is predicted, load data at the next time corresponding to the application is generated, the performance profile, the load data at the next time, and the current system Considering the load, a mode for processing a video corresponding to a current point of view is selected, and the video is processed in the selected mode and streamed to the user's terminal. Furthermore, by selectively using software and hardware resources supported by the cloud streaming service system to perform processing to provide the service, resources within the system can be used to the maximum limit, thereby reducing the number of concurrent users to the cloud streaming server. You can operate the cloud streaming system more efficiently by increasing

110: 클라우드 스트리밍 서버 120-1~120-N: 단말 장치
130: 네트워크 310: 성능 프로파일 생성부
320: 어플리케이션 행동 예측부 330: 다음 시점 부하 데이터 생성부
340: 모드 선택부 350: 스트리밍부
510: 성능 프로파일 520: 다음 시점 부하 데이터
530: 시스템 부하 800: 컴퓨터 시스템
810: 프로세서 820: 버스
830: 메모리 831: 롬
832: 램 840: 사용자 입력 장치
850: 사용자 출력 장치 860: 스토리지
870: 네트워크 인터페이스 880: 네트워크
110: cloud streaming server 120-1 to 120-N: terminal device
130: network 310: performance profile generator
320: application behavior prediction unit 330: next time load data generation unit
340: mode selection unit 350: streaming unit
510: Performance Profile 520: Next Point Load Data
530: system load 800: computer system
810: processor 820: bus
830: memory 831: ROM
832: RAM 840: User input device
850: user output device 860: storage
870: network interface 880: network

Claims (10)

부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하고, 상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하고, 상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하고, 선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 프로세서; 및
상기 성능 프로파일 및 상기 다음 시점 부하 데이터를 저장하는 메모리
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
A performance profile of the application is generated based on the load test, next-time behavior of the application is predicted, and next-time load data corresponding to the application is generated, and the performance profile, the next-time load data, and the current system a processor for selecting a mode for processing a video corresponding to a current view in consideration of a load, processing the video in the selected mode, and streaming the video to a user's terminal; and
Memory for storing the performance profile and the load data at the next point in time
Cloud streaming server comprising a.
청구항 1에 있어서,
상기 모드는
소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 1,
The mode
Cloud streaming server, characterized in that corresponding to any one of the software mode and hardware mode.
청구항 2에 있어서,
상기 성능 프로파일은
상기 어플리케이션에 대한 시점 별 부하를 상기 소프트웨어 모드 및 상기 하드웨어 모드에서 각각 측정한 데이터에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 2,
The performance profile is
Cloud streaming server, characterized in that corresponding to the data measured at each time load for the application in the software mode and the hardware mode, respectively.
청구항 3에 있어서,
상기 다음 시점 부하 데이터는
상기 시점 별 부하 중 상기 다음 시점 행동에 상응하는 소프트웨어 모드 부하 및 상기 다음 시점 행동에 상응하는 하드웨어 모드 부하에 관한 정보를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 3,
The load data at the next point in time
Cloud streaming server, characterized in that it comprises information about the hardware mode load corresponding to the software mode load and the next time action corresponding to the next time action of the load for each time point.
청구항 2에 있어서,
상기 프로세서는
상기 소프트웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율과 상기 하드웨어 모드로 상기 동영상을 처리하였을 경우의 시스템 자원 효율을 비교하여 상기 동영상을 처리하기 위한 모드를 선택하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 2,
The processor
Cloud streaming server, characterized in that for selecting a mode for processing the video by comparing system resource efficiency when the video is processed in the software mode and system resource efficiency when the video is processed in the hardware mode.
청구항 5에 있어서,
상기 모드는
상기 시스템 자원 효율에 따라 상기 소프트웨어 모드에서 상기 하드웨어 모드로, 또는 상기 하드웨어 모드에서 상기 소프트웨어 모드로 변경이 가능한 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 5,
The mode
Cloud streaming server, characterized in that it is possible to change from the software mode to the hardware mode, or from the hardware mode to the software mode according to the system resource efficiency.
청구항 2에 있어서,
상기 소프트웨어 모드는 GPU를 기반으로 동작하고, 상기 하드웨어 모드는 CPU를 기반으로 동작하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 2,
The software mode operates based on a GPU, and the hardware mode is a cloud streaming server, characterized in that it operates based on a CPU.
부하 테스트를 기반으로 어플리케이션의 성능 프로파일을 생성하는 단계;
상기 어플리케이션에 대한 다음 시점 행동을 예측하여 상기 어플리케이션에 상응하는 다음 시점 부하 데이터를 생성하는 단계;
상기 성능 프로파일, 상기 다음 시점 부하 데이터 및 현재 시점의 시스템 부하를 고려하여 현재 시점에 상응하는 동영상을 처리하기 위한 모드(MODE)를 선택하는 단계; 및
선택된 모드로 상기 동영상을 처리하여 사용자의 단말로 스트리밍하는 단계
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서비스 방법.
generating a performance profile of the application based on the load test;
generating next-time load data corresponding to the application by predicting next-time behavior for the application;
selecting a mode for processing a video corresponding to a current view in consideration of the performance profile, the load data of the next view, and the system load of the current view; and
Processing the video in the selected mode and streaming it to the user's terminal
Cloud streaming service method comprising a.
청구항 8에 있어서,
상기 모드는
소프트웨어 모드 및 하드웨어 모드 중 어느 하나에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서비스 방법.
The method of claim 8,
The mode
Cloud streaming service method, characterized in that corresponding to any one of the software mode and hardware mode.
청구항 9에 있어서,
상기 성능 프로파일은
상기 어플리케이션에 대한 시점 별 부하를 상기 소프트웨어 모드 및 상기 하드웨어 모드에서 각각 측정한 데이터에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서비스 방법.
The method of claim 9,
The performance profile is
Cloud streaming service method, characterized in that the load for each time point for the application corresponds to the data measured in the software mode and the hardware mode, respectively.
KR1020220009163A 2022-01-21 2022-01-21 System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same Pending KR20230112941A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220009163A KR20230112941A (en) 2022-01-21 2022-01-21 System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220009163A KR20230112941A (en) 2022-01-21 2022-01-21 System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same

Publications (1)

Publication Number Publication Date
KR20230112941A true KR20230112941A (en) 2023-07-28

Family

ID=87427394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220009163A Pending KR20230112941A (en) 2022-01-21 2022-01-21 System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same

Country Status (1)

Country Link
KR (1) KR20230112941A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160084216A (en) 2015-01-05 2016-07-13 엔트릭스 주식회사 System for cloud streaming service, method of cloud streaming service using service quality control and apparatus for the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160084216A (en) 2015-01-05 2016-07-13 엔트릭스 주식회사 System for cloud streaming service, method of cloud streaming service using service quality control and apparatus for the same

Similar Documents

Publication Publication Date Title
KR102294326B1 (en) Prefetching application data for periods of disconnectivity
US8775630B2 (en) Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments
EP3080720B1 (en) Social-driven recaching of accessible objects
US20160191627A1 (en) Method and apparatus for execution of applications in a cloud system
CN107656768B (en) Method and system for controlling page jump
CN105284075A (en) Optimizing loading of web page based on aggregated user preferences for web page elements of web page
CN108400929B (en) Data processing method, device, computing equipment and medium
US20160029050A1 (en) Hybrid Stream Delivery
KR20150062198A (en) System and method for job execution in conjunction with cloud storage
KR102442699B1 (en) System for cloud streaming service, method of image cloud streaming service using common cache and apparatus for the same
US20190012212A1 (en) Distributed Computing Mesh
CN104050001A (en) Resource processing method, device and equipment based on Android system
CN113238828B (en) Content display method, device, equipment and storage medium
US10747755B2 (en) Method for providing immediate result for user input, and apparatus therefor
US10223102B2 (en) Optimization of a media processing system based on latency performance
KR20230112941A (en) System for cloud streaming service, method of cloud streaming service based on selective video processing considering resource and load and apparatus for the same
CN105874425B (en) Dynamic sharing of intents
KR102307539B1 (en) System for cloud streaming service, method of image cloud streaming service using process shortering and apparatus for the same
CN114647411B (en) Programming interface loading method, device, electronic device and storage medium
CN109951737A (en) Method for processing video frequency, device, electronic equipment and computer readable storage medium
KR20160121982A (en) System for cloud streaming service, method of image cloud streaming service using shared web-container and apparatus for the same
KR102679148B1 (en) Method for providing cloud streaming service based on minimum drive mode and apparatus therefor
CN105308563A (en) Coordination of system preparation tasks
CN110888583B (en) Page display method, system and device and electronic equipment
KR102053159B1 (en) Method for cloud streaming service using scalable cache image and apparatus for the same

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20220121

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20241126

Comment text: Request for Examination of Application