KR20160016265A - System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same - Google Patents

System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same Download PDF

Info

Publication number
KR20160016265A
KR20160016265A KR1020140099994A KR20140099994A KR20160016265A KR 20160016265 A KR20160016265 A KR 20160016265A KR 1020140099994 A KR1020140099994 A KR 1020140099994A KR 20140099994 A KR20140099994 A KR 20140099994A KR 20160016265 A KR20160016265 A KR 20160016265A
Authority
KR
South Korea
Prior art keywords
cloud streaming
streaming service
buffer
service screen
data
Prior art date
Application number
KR1020140099994A
Other languages
Korean (ko)
Other versions
KR102063093B1 (en
Inventor
이동수
윤홍서
Original Assignee
엔트릭스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔트릭스 주식회사 filed Critical 엔트릭스 주식회사
Priority to KR1020140099994A priority Critical patent/KR102063093B1/en
Priority to JP2017519439A priority patent/JP6467503B2/en
Priority to EP15822844.5A priority patent/EP3171601A4/en
Priority to CN201580047076.2A priority patent/CN106797487B/en
Priority to PCT/KR2015/007261 priority patent/WO2016010319A2/en
Priority to CN202110160960.4A priority patent/CN112929234B/en
Publication of KR20160016265A publication Critical patent/KR20160016265A/en
Priority to US15/406,594 priority patent/US10397288B2/en
Priority to US16/505,144 priority patent/US10904304B2/en
Application granted granted Critical
Publication of KR102063093B1 publication Critical patent/KR102063093B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/2401Monitoring of the client buffer

Abstract

Disclosed are a cloud streaming service system, a data compression method for preventing a memory bottleneck, and an apparatus therefor. The data compression method of the cloud streaming service comprises the following steps: capturing a cloud streaming service screen; loading the cloud streaming service screen from a buffer which temporarily stores the captured cloud streaming service screen and encoding the same; transmitting the encoded cloud streaming service screen to a terminal device; and compressing the cloud streaming service screen according to a result of determining whether the bottleneck of the buffer occurs or not. According to the present invention, a bottleneck phenomenon, which may occur due to the large amount of data transmission during a cloud streaming service, can be prevented, thereby increasing the number of users who can be simultaneously served in a cloud streaming system.

Description

클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치{SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF COMPRESSING DATA FOR PREVENTING MEMORY BOTTLENECK AND APPARATUS FOR THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data stream compression method and a data stream compression method for preventing a memory bottleneck phenomenon in a cloud streaming service system,

본 발명은 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치에 관한 것으로, 특히 시스템 메모리 대역폭을 기반으로 원본 버퍼 데이터의 전송량이 기준치를 초과하는 경우에 데이터를 압축하여 메모리 병목 현상을 방지할 수 있는 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a cloud streaming service system, a data compression method for preventing memory bottlenecks, and an apparatus therefor. More particularly, the present invention relates to a data compression method for compressing data when a transmission amount of original buffer data exceeds a reference value, A cloud streaming service system capable of preventing a bottleneck, a data compression method for preventing a memory bottleneck, and an apparatus therefor.

인터넷의 급속한 발달은 개인의 통신 속도를 급격히 향상시키는 결과를 가져왔으며, 이러한 통신 속도의 향상은 원격지에 위치한 컴퓨터에 접속하여 대용량의 데이터를 다운로드 또는 업로드 하거나, 원격지 컴퓨터 제어 프로그램을 사용하여 마치 원격지 컴퓨터에 로컬 로그인한 것과 같이 원격지 컴퓨터를 이용할 수 있는 환경을 제공하고 있다.The rapid development of the Internet has resulted in a rapid increase in the communication speed of an individual. The improvement in the communication speed can be achieved by downloading or uploading a large amount of data by accessing a computer located at a remote place, or by using a remote computer control program, As well as providing an environment in which a remote computer can be used.

또한, 어플리케이션을 서버에서 구동시키고 구동화면은 비디오 인코딩(encoding)을 통해 압축하여 클라이언트로 전송하고, 클라이언트는 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반의 클라우드 스트리밍 서비스가 각광받고 있다.In addition, the application is driven on the server, the driving screen is compressed through video encoding and transmitted to the client, and the client reproduces the transmitted video to provide a screen virtualization Cloud streaming service is becoming popular.

이와 같은 클라우드 스트리밍 시 캡처단에서는 원본 버퍼 데이터를 인코더 단으로 전달하고, 인코더 단에서는 입력 버퍼 데이터로부터 인코딩된 데이터를 전송단으로 전달하여 클라이언트에게 서비스하게 된다. 이 때, 동시 세션 수가 많아져서 송수신되는 데이터 량이 시스템 메모리 대역폭 한계치에 도달하게 되면 오가는 데이터로 인한 메모리 병목 현상이 발생하게 되어 다른 자원이 남았어도 더 이상 서비스할 수 없게 된다. 특히, 캡처단에서 얻게 되는 원본 버퍼 데이터의 경우 RGBA로서 픽셀 당 4바이트를 차지하게 되고, 가로*세로*4가 되어 한 프레임당 인코더단으로 전달되어야 하는 데이터 량이 많아지게 된다. 따라서, 세션 수나 프레임 레이트가 증가하게 되면 빠르게 시스템 메모리 대역폭의 한계치에 도달하게 된다.In such cloud streaming, the capture buffer transfers the original buffer data to the encoder end, and the encoder end delivers the encoded data from the input buffer data to the transmission end to serve the client. In this case, when the amount of data transmitted / received due to the increase of the number of concurrent sessions reaches the system memory bandwidth limit, a memory bottleneck due to data which is shifted occurs, and even if other resources remain, the service can no longer be provided. In particular, the original buffer data obtained at the capture end occupies 4 bytes per pixel as RGBA, and the amount of data to be transferred to the encoder end per frame becomes larger than that of the original buffer data. Therefore, as the number of sessions or the frame rate increases, the system memory bandwidth quickly reaches the limit.

한국 공개 특허 제10-2013-0025987호, 2013년 3월 13일 공개 (명칭: 화면 변화 적응형 영상처리 시스템)Korean Patent Laid-Open No. 10-2013-0025987, published on March 13, 2013 (titled Screen Change Adaptive Image Processing System)

본 발명의 목적은, 클라우드 스트리밍 서비스 시 데이터 전송 과다로 인한 병목 현상을 방지하여 동시 서비스 사용자 수를 증가시키는 것이다.It is an object of the present invention to increase the number of concurrent service users by preventing bottleneck due to excess data transmission in a cloud streaming service.

또한, 본 발명의 목적은 사용자의 단말에 클라우드 스트리밍 서비스 화면을 제공할 때, 동일한 프레임을 생략하고 변화가 있는 프레임을 압축하여 제공함으로써 보다 효율적으로 자원을 이용하여 데이터를 전달하는 것이다.It is another object of the present invention to provide a cloud streaming service screen to a terminal of a user by omitting the same frame and compressing and providing the changed frame to transmit data using resources more efficiently.

상기한 목적을 달성하기 위한 본 발명에 따른 클라우드 스트리밍 서버는, 클라우드 스트리밍 서비스 화면을 캡처하는 캡처부; 상기 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼로부터 상기 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하는 인코딩부; 상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하는 통신부; 및 상기 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 상기 클라우드 스트리밍 서비스 화면을 압축하는 압축부를 포함한다.According to an aspect of the present invention, there is provided a cloud streaming server including: a capture unit for capturing a cloud streaming service screen; An encoding unit for loading and encoding the cloud streaming service screen from a buffer for temporarily storing the captured cloud streaming service screen; A communication unit for transmitting the encoded cloud streaming service screen to a terminal device; And a compression unit for determining whether or not a bottleneck occurs in the buffer, and compressing the cloud streaming service screen according to a determination result.

이 때, 압축부는 상기 버퍼의 데이터 저장률에 기반하여 상기 병목 발생 여부를 결정할 수 있다.At this time, the compression unit can determine whether the bottleneck occurs based on the data storage rate of the buffer.

이 때, 압축부는 상기 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 상기 버퍼에 병목이 발생할 수 있다.At this time, the compression unit may cause a bottleneck in the buffer when the data storage rate of the buffer exceeds a preset reference storage rate.

이 때, 압축부는 상기 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하고, 상기 하나 이상의 동일 프레임을 상기 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환할 수 있다.At this time, the compression unit may select one or more identical frames that are the same as the previous frame among the frames corresponding to the cloud streaming service screen, and convert the one or more same frames into flags that are the same as the previous frame of the one or more same frames have.

이 때, 압축부는 상기 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩할 수 있다.At this time, the compression unit may encode the format of the image data corresponding to the cloud streaming service screen in a format in which the capacity can be reduced.

이 때, 압축부는 상기 버퍼의 데이터 증가율에 기반하여 상기 병목 발생 여부를 결정할 수 있다.At this time, the compression unit may determine whether the bottleneck occurs based on the data increase rate of the buffer.

이 때, 압축부는 기설정된 단위시간마다 상기 데이터 증가율을 계산하고, 상기 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 상기 버퍼에 병목이 발생할 수 있다.At this time, the compression unit may calculate the data increase rate every predetermined unit time, and a bottleneck may occur in the buffer when the data increase rate exceeds a predetermined reference increase rate.

이 때, 인코딩부는 상기 버퍼로부터 로드한 상기 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 압축을 해제하고 상기 클라우드 스트리밍 서비스 화면을 인코딩할 수 있다.In this case, the encoding unit may decompress the encoded stream stream service screen and load the stream stream service screen.

또한, 본 발명에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은, 클라우드 스트리밍 서비스 화면을 캡처하는 단계; 상기 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 상기 클라우드 스트리밍 서비스 화면을 압축하는 단계; 상기 버퍼로부터 상기 압축된 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하는 단계; 및 상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a data compression method for a cloud streaming service, comprising: capturing a cloud streaming service screen; Determining whether a bottleneck occurs in the buffer for temporarily storing the captured cloud streaming service screen, and compressing the cloud streaming service screen according to the determination result; Loading and compressing the compressed cloud streaming service screen from the buffer; And transmitting the encoded cloud streaming service screen to the terminal device.

이 때, 압축하는 단계는 상기 버퍼의 데이터 저장률에 기반하여 상기 병목 발생 여부를 결정할 수 있다.At this time, the compressing step may determine whether the bottleneck occurs based on the data storage rate of the buffer.

이 때, 압축하는 단계는 상기 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단할 수 있다.In this case, the compressing step may determine that a bottleneck occurs in the buffer when the data storage rate of the buffer exceeds a preset reference storage rate.

이 때, 압축하는 단계는 상기 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하는 단계를 포함하고, 상기 하나 이상의 동일 프레임을 상기 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환할 수 있다.In this case, the step of compressing includes selecting one or more identical frames that are the same as a previous frame among the frames corresponding to the cloud streaming service screen, and the one or more same frames are the same as the previous frames of the one or more same frames Can be converted to a flag indicating that the flag is set.

이 때, 압축하는 단계는 상기 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩할 수 있다.At this time, the compressing step may encode the format of the image data corresponding to the cloud streaming service screen in a format capable of reducing the capacity.

이 때, 압축하는 단계는 상기 버퍼의 데이터 증가율에 기반하여 상기 병목 발생 여부를 결정할 수 있다.At this time, the compressing step may determine whether the bottleneck occurs based on the data increase rate of the buffer.

이 때, 압축하는 단계는 기설정된 단위시간마다 상기 데이터 증가율을 계산하는 단계를 포함하고, 상기 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단할 수 있다.In this case, the step of compressing may include calculating the data increase rate every predetermined unit time, and may determine that a bottleneck occurs in the buffer when the data increase rate exceeds a predetermined reference increase rate.

이 때, 인코딩하는 단계는 상기 버퍼로부터 로드한 상기 클라우드 스트리밍 서비스 화면의 압축 상태를 판단하는 단계를 포함하고, 상기 판단 결과 상기 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 상기 압축을 해제하고 인코딩할 수 있다.In this case, the step of encoding may include a step of determining a compression state of the cloud streaming service screen loaded from the buffer, and when the cloud streaming service screen is in a compressed state, .

또한, 본 발명에 따른 클라우드 스트리밍 서비스 시스템은, 클라우드 스트리밍 서비스 화면을 캡처하고, 버퍼로부터 상기 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하고, 상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하고, 상기 버퍼의 병목 발생 여부를 판단하여 상기 클라우드 스트리밍 서비스 화면을 압축하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말 장치를 포함한다.Also, the cloud streaming service system according to the present invention may capture a cloud streaming service screen, load and encode the cloud streaming service screen from a buffer, transmit the encoded cloud streaming service screen to a terminal device, A cloud streaming server for determining whether a bottleneck has occurred and compressing the cloud streaming service screen; And a terminal device receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server.

본 발명에 따르면, 클라우드 스트리밍 서비스 시 데이터 전송 과다로 인한 병목 현상을 방지할 수 있어 클라우드 스트리밍 시스템에서 동시 서비스 사용자 수를 증가시킬 수 있다.According to the present invention, it is possible to prevent bottleneck due to excessive data transmission in the cloud streaming service, thereby increasing the number of simultaneous service users in the cloud streaming system.

또한, 본 발명은 사용자의 단말에 클라우드 스트리밍 서비스 화면을 제공할 때, 동일한 프레임을 생략하고 변화가 있는 프레임을 압축하여 제공함으로써 보다 효율적으로 자원을 이용하여 데이터를 전달할 수 있다.In addition, when providing a cloud streaming service screen to a user terminal, the same frame may be omitted and a changed frame may be provided by compressing and transmitting the data using resources more efficiently.

도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 3은 도 1에 도시된 단말의 일 예를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 데이터 압축 방법을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 과정을 나타낸 동작 흐름도이다.
1 is a block diagram illustrating a cloud streaming service system according to an embodiment of the present invention.
2 is a block diagram illustrating an example of the cloud streaming server shown in FIG.
3 is a block diagram illustrating an example of the terminal shown in FIG.
4 is a diagram illustrating a data compression method according to an embodiment of the present invention.
5 is a flowchart illustrating a data compression method of a cloud streaming service according to an embodiment of the present invention.
6 is a flowchart illustrating a cloud streaming service process according to an embodiment of the present invention.

이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.The terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings and the inventor is not limited to the concept of terminology for describing his or her invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible. Also, the terms first, second, etc. are used for describing various components and are used only for the purpose of distinguishing one component from another component, and are not used to define the components.

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

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

클라우드 스트리밍 서버(110)는 단말 장치들(120-1, ..., 120-N) 중 어느 하나의 요청에 상응하여 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 어플리케이션 실행 결과 화면을 단말 장치들(120-1, ..., 120-N) 중 어느 하나로 제공한다. 이 때, 클라우드 스트리밍 서버(110)는 클라우드 스트리밍 서비스 화면 즉, 어플리케이션 실행 화면을 캡처할 수 있다. The cloud streaming server 110 executes an application corresponding to a request of one of the terminal devices 120-1, ..., and 120-N, and transmits an application execution result screen corresponding to the application execution result to the terminal devices (120-1, ..., 120-N). At this time, the cloud streaming server 110 can capture a cloud streaming service screen, that is, an application execution screen.

클라우드 스트리밍 서버(110)는 캡처한 실행 화면을 버퍼에 임시 저장하였다가 인코더 단으로 전달하여 인코딩을 수행한 뒤 단말 장치들(120-1, ..., 120-N)로 전송할 수 있다. The cloud streaming server 110 temporarily stores the captured execution screen in a buffer, transfers the captured execution screen to the encoder, performs encoding, and transmits the encoded execution screen to the terminal devices 120-1, ..., and 120-N.

클라우드 스트리밍 서버(110)는 버퍼의 병목 발생 여부를 판단하여, 버퍼에 병목이 발생하였다면 캡처된 화면을 압축하여 버퍼에 저장할 수 있다. 버퍼의 병목 발생 여부는 버퍼의 데이터 저장률 및 데이터 증가량에 따라 판단이 가능할 수 있다.The cloud streaming server 110 determines whether a bottleneck occurs in the buffer, and if a bottleneck occurs in the buffer, the captured stream can be compressed and stored in the buffer. Whether a buffer is bottlenecked may be determined by the data storage rate of the buffer and the amount of data increase.

예를 들어, 기준 저장률을 버퍼의 전체 데이터 저장률의 90퍼센트로 설정한 뒤, 실제로 버퍼의 데이터 저장률이 90퍼센트를 초과한다면 버퍼에 병목이 발생한 것으로 예상하고 캡처된 화면을 압축할 수 있다.For example, if you set a baseline retention rate to 90 percent of the total data retention rate of the buffer, and if the actual data retention rate of the buffer exceeds 90 percent, you can expect the bottleneck to occur and compress the captured screen .

또한, 기설정된 단위시간마다 버퍼에 저장된 데이터 저장량을 체크하여 데이터 증가율을 계산하고, 기설정된 기준 증가율보다 버퍼의 데이터 증가율이 높은 경우에 버퍼에 병목이 발생한 것으로 예상하고 캡처된 화면을 압축할 수 있다.In addition, it is possible to calculate the data increase rate by checking the data storage amount stored in the buffer every predetermined unit time, and if the data increase rate of the buffer is higher than the preset reference increase rate, it is estimated that the bottleneck occurs in the buffer and the captured screen can be compressed .

이와 같이 클라우드 스트리밍 서버(110)는 단말 장치들(120-1, ..., 120-N)의 동시다발적 요청에 의해 발행할 수 있는 병목현상을 사전에 방지함으로써 클라우드 스트리밍 서비스를 보다 원활하게 제공할 수 있고, 병목현상으로 인해 발생할 수 있는 시스템 오류를 사전에 방지할 수 있다. In this way, the cloud streaming server 110 can prevent the bottleneck that can be issued by simultaneous multiple requests of the terminal devices 120-1, ..., 120-N, thereby making the cloud streaming service more smooth And can prevent system errors that may occur due to bottlenecks in advance.

단말 장치들(120-1, ..., 120-N)은 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.The terminal devices 120-1 to 120-N receive an application execution result screen corresponding to the cloud streaming service from the cloud streaming server 110 and provide them 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) 단말일 수 있다.Each of the terminal devices 120-1 to 120-N is connected to a communication network and is capable of executing applications on the basis of a cloud computing system. The terminal devices 120-1 to 120-N are not limited to mobile communication terminals, , A wired terminal, a fixed terminal, and an IP (Internet Protocol) terminal. Each of the terminal devices 120-1 to 120-N may be a mobile phone, a portable multimedia player (PMP), a mobile Internet device (MID), a smart phone, a desktop, A mobile terminal having various mobile communication specifications such as a tablet PC, a notebook computer, a net book, a personal digital assistant (PDA), a smart TV, have.

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

도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.2 is a block diagram illustrating an example of the cloud streaming server shown in FIG.

도 2를 참조하면, 도 2에 도시된 클라우드 스트리밍 서버는 캡처부(210), 인코딩부(220), 통신부(230), 압축부(240) 및 저장부(250)를 포함한다.2, the cloud streaming server shown in FIG. 2 includes a capture unit 210, an encoding unit 220, a communication unit 230, a compression unit 240, and a storage unit 250.

캡처부(210)는 클라우드 스트리밍 서비스 화면을 캡처한다. 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버(110)에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버(110)에서 어플리케이션을 실행하고, 어플리케이션 실행 경과에 해당하는 실행 결과 화면을 하나 이상의 단말 장치에게 제공할 수 있다.The capture unit 210 captures a cloud streaming service screen. For example, when an application execution request is received by one or more terminal devices connected to the cloud streaming server 110 through a network, the application is executed in the cloud streaming server 110 according to a request of the terminal device, An execution result screen corresponding to an application execution progress can be provided to one or more terminal apparatuses.

인코딩부(220)는 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼로부터 클라우드 스트리밍 서비스 화면을 로드하여 인코딩한다. 예를 들어, 하나 이상의 단말 장치에 의한 어플리케이션 실행 요청을 받아 캡처한 어플리케이션 실행 결과 화면은 캡처부(210)와 인코딩부(220)간의 데이터 처리를 위한 버퍼에 저장될 수 있다. 따라서, 인코딩부(220)는 버퍼에 저장된 어플리케이션 실행 결과 화면을 로드하여 인코딩을 수행하고, 인코딩된 어플리케이션 실행 결과 화면을 하나 이상의 단말 장치로 전달할 수 있다.The encoding unit 220 loads and encodes the cloud streaming service screen from the buffer for temporarily storing the captured cloud streaming service screen. For example, an application execution result screen captured by receiving an application execution request by one or more terminal apparatuses may be stored in a buffer for data processing between the capture unit 210 and the encoding unit 220. Accordingly, the encoding unit 220 may load the application execution result screen stored in the buffer and perform encoding, and may transmit the encoded application execution result screen to one or more terminal apparatuses.

이 때, 버퍼로부터 로드한 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 압축을 해제하고 클라우드 스트리밍 서비스 화면을 인코딩할 수 있다. 예를 들어, 인코딩부(220)가 버퍼에서 클라우드 스트리밍 서비스 화면을 로드할 때, 클라우드 스트리밍 서비스 화면이 압축된 상태인지 여부를 확인할 수 있다. 만약 압축된 상태일 경우에는 압축을 해제하고 인코딩을 수행할 수 있다.At this time, if the cloud streaming service screen loaded from the buffer is in a compressed state, it can be decompressed and the cloud streaming service screen can be encoded. For example, when the encoding unit 220 loads the cloud streaming service screen from the buffer, it can check whether or not the cloud streaming service screen is in a compressed state. If it is in a compressed state, it can be decompressed and encoded.

통신부(230)는 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송한다. 또한, 통신부(230)는 도 1에 도시된 네트워크와 같은 통신망을 통해 다수의 단말들과 관련된 정보를 송수신하는 역할을 한다. 특히, 본 발명의 실시 예에 따른 통신부(230)는 클라우드 스트리밍 서비스에 대한 요청을 단말 장치로부터 수신하고, 단말 장치가 요청한 클라우드 스트리밍 서비스에 상응하는 어플리케이션의 실행 결과 화면을 단말 장치로 제공한다.The communication unit 230 transmits the encoded cloud streaming service screen to the terminal device. In addition, the communication unit 230 transmits and receives information related to a plurality of terminals through a communication network such as the network shown in FIG. In particular, the communication unit 230 according to the embodiment of the present invention receives a request for the cloud streaming service from the terminal device, and provides an execution result screen of the application corresponding to the cloud streaming service requested by the terminal device to the terminal device.

압축부(240)는 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 클라우드 스트리밍 서비스 화면을 압축한다. The compression unit 240 determines whether a bottleneck occurs in the buffer, and compresses the cloud streaming service screen according to the determination result.

이 때, 버퍼의 데이터 저장률에 기반하여 병목 발생 여부를 결정할 수 있다.At this time, it is possible to determine whether a bottleneck occurs based on the data storage rate of the buffer.

이 때, 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 버퍼에 병목이 발생한 것으로 판단할 수 있다. 예를 들어, 기설정된 기준 저장률을 버퍼의 전체 데이터 저장률의 90퍼센트로 설정하고, 버퍼의 데이터 저장률이 90퍼센트를 초과하는 경우에는 버퍼에 병목이 발생한 것으로 판단할 수 있다.At this time, when the data storage rate of the buffer exceeds the predetermined reference storage rate, it can be determined that the bottleneck has occurred in the buffer. For example, you can set the preset reference storage rate to 90 percent of the total data storage rate of the buffer, and determine that the buffer is bottlenecked if the data storage rate of the buffer exceeds 90 percent.

또한, 버퍼의 데이터 증가율에 기반하여 병목 발생 여부를 결정할 수도 있다.It is also possible to determine whether a bottleneck occurs based on the data growth rate of the buffer.

이 때, 기설정된 단위시간마다 데이터 증가율을 계산하고, 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 버퍼에 병목이 발생한 것으로 판단할 수 있다. 예를 들어, 1분마다 버퍼에 저장된 데이터 저장량을 체크하여 데이터 증가율을 계산하고, 데이터가 증가하는 비율이 기설정된 증가율을 초과하는 경우에는 버퍼에 병목이 발생한 것으로 판단할 수 있다.At this time, the data increase rate is calculated every predetermined unit time, and it can be determined that the bottleneck occurs in the buffer when the data increase rate exceeds the predetermined reference increase rate. For example, the amount of data stored in the buffer is checked every minute to calculate the rate of data increase. If the rate of increase of the data exceeds the preset rate of increase, it can be determined that a bottleneck has occurred in the buffer.

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하고, 하나 이상의 동일 프레임을 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환할 수 있다. 예를 들어, 1번부터 10번까지의 10개의 프레임들 중 1번과 7번 프레임만 이전 프레임과 비교하여 변화가 있고 나머지 8개의 프레임은 이전 프레임과 변화가 없는 동일 프레임이라고 가정할 수 있다. 이 때, 1번과 7번 프레임에 대해서만 실 데이터를 전달할 수 있다. 또한, 2번부터 6번 프레임은 1번 프레임과 동일하다는 플래그를 생성하고, 8번부터 10번 프레임은 7번 프레임과 동일하다는 플래그를 생성하여 1번과 7번의 실 데이터와 함께 전달될 수 있다.At this time, one or more identical frames that are the same as the previous frame among the frames corresponding to the cloud streaming service screen may be selected, and one or more same frames may be converted into flags that are the same as the previous frames of one or more same frames. For example, it can be assumed that only the first and seventh frames among the first to the 10th frames are changed in comparison with the previous frame, and the remaining eight frames are the same frame with no change from the previous frame. In this case, real data can be transmitted only to frames 1 and 7. Also, flags # 2 to # 6 are identical to frame # 1, flags # 8 to # 10 are identical to frame # 7, and flags # 1 and # 7 are transmitted together with actual data .

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩할 수 있다. 이미지 기반 클라우드 스트리밍 서비스는 비디오 기반 클라우드 스트리밍 서비스에 비해 압축률이 떨어지므로 전송 지연이 발생할 가능성이 크고, 각각의 프레임을 어떤 스틸 이미지 코덱을 이용하여 압축하는지에 따라 전달되는 데이터량 및 클라우드 스트리밍 서버의 부하가 크게 달라질 수 있다. 예를 들어, 팔렛티드 기반 PNG 인코딩의 경우에는 화질의 열화를 가져올 수는 있으나 데이터의 크기를 줄일 수 있으므로, 버퍼의 병목 발생 방지에 도움이 될 수 있다. At this time, the format of the image data corresponding to the screen of the cloud streaming service can be encoded in a format in which the capacity can be reduced. Since the image-based cloud streaming service has a lower compression rate than the video-based cloud streaming service, there is a high possibility of transmission delay, and the amount of data to be transmitted depending on which still image codec is used to compress each frame and the load of the cloud streaming server Can be greatly changed. For example, in the case of a palette-based PNG encoding, degradation in image quality may be caused, but the size of the data can be reduced, which can help prevent buffer bottlenecks.

저장부(250)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.The storage unit 250 stores various information generated in the cloud streaming service process according to the embodiment of the present invention as described above.

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

또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.In addition, the cloud streaming server 110 configured as described above may be implemented as one or more servers.

한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.On the other hand, the cloud streaming server 110 can store information in the memory on which the memory is mounted. In one implementation, the memory is a computer-readable medium. In one implementation, the memory may be a volatile memory unit, and in other embodiments, 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 any other mass storage device.

도 3은 도 1에 도시된 단말 장치의 일 예를 나타낸 블록도이다.3 is a block diagram showing an example of the terminal device shown in FIG.

도 3을 참조하면, 단말은 제어부(310), 통신부(320), 입력부(330), 표시부(340) 및 저장부(350)를 포함한다.3, the terminal includes a control unit 310, a communication unit 320, an input unit 330, a display unit 340, and a storage unit 350.

입력부(330)는 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 단말의 기능 제어와 관련하여 입력되는 신호를 제어부(310)로 전달한다. 또한, 입력부(330)는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성될 수 있다. 이 때, 입력부(330)는 표시부(340)와 함께 하나의 터치패널(또는 터치 스크린(Touch Screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수도 있다. 또한, 입력부(330)는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. 특히, 본 발명에 따른 입력부(330)는 클라우드 스트리밍 서비스를 클라우드 스트리밍 서버(110)에 요청하거나 클라우드 스트리밍 서버(110)로부터 어플리케이션 실행 결과 화면을 제공 받기 위한 입력 신호를 제어부(310)로 전달한다.The input unit 330 receives various information such as numbers and character information, and transmits various signals to the controller 310 in connection with setting various functions and controlling functions of the terminals. The input unit 330 may include at least one of a keypad and a touchpad that generates an input signal according to a user's touch or operation. In this case, the input unit 330 may be configured in the form of a single touch panel (or a touch screen) together with the display unit 340 to simultaneously perform input and display functions. The input unit 330 may be any type of input device that can be developed in addition to an input device such as a keyboard, a keypad, a mouse, a joystick, and the like. In particular, the input unit 330 according to the present invention transmits an input signal to the control unit 310 to request the cloud streaming service to the cloud streaming server 110 or to receive an application execution result screen from the cloud streaming server 110.

표시부(340)는 단말의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시한다. 또한, 표시부(340)는 단말의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 표시부(340)는 액정표시장치(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) 디스플레이 등으로 구성될 수 있다. 이 때, 표시부(340)가 터치스크린 형태로 구성된 경우, 표시부(340)는 입력부(330)의 기능 중 일부 또는 전부를 수행할 수 있다. 특히, 본 발명에 따른 표시부(340)는 클라우드 스트리밍 서비스와 관련된 정보를 화면으로 표시한다.The display unit 340 displays information on a series of operation states, operation results, and the like that occur during the function of the terminal. Also, the display unit 340 can display a menu of the terminal and user data input by the user. The display unit 340 may be a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), a light emitting diode (LED), an organic light emitting diode LEDs, active matrix OLEDs, retina displays, flexible displays, and 3-dimensional displays. In this case, when the display unit 340 is configured as a touch screen, the display unit 340 can perform some or all of the functions of the input unit 330. [ In particular, the display unit 340 according to the present invention displays information related to the cloud streaming service on a screen.

저장부(350)는 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함하고, 단말의 기능 동작에 필요한 응용 프로그램을 저장한다. 이러한 저장부(350)는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 단말은 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부(310)의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. 특히, 본 발명에 따른 저장부(350)는 단말을 부팅시키는 운영체제, 클라우드 스트리밍 서비스를 클라우드 스트리밍 서버(110)로 요청하거나 어플리케이션 실행 결과를 클라우드 스트리밍 서버(110)로부터 수신하기 위한 프로그램 등을 저장한다.The storage unit 350 is a device for storing data, and includes a main storage device and an auxiliary storage device, and stores an application program required for functional operation of the terminal. The storage unit 350 may include a program area and a data area. Here, if the terminal activates each function according to a request of the user, the terminal executes the corresponding application programs under the control of the control unit 310 to provide each function. In particular, the storage unit 350 according to the present invention stores an operating system for booting the terminal, a program for requesting the cloud streaming service to the cloud streaming server 110 or receiving a result of application execution from the cloud streaming server 110 .

통신부(320)는 클라우드 스트리밍 서버(110)와 네트워크를 통해 데이터를 송수신하기 위한 기능을 수행한다. 여기서, 통신부(320)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함할 수 있다. 이러한 통신부(320)는 무선통신 모듈(미도시) 및 유선 통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 단말이 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선랜 통신 모듈 중 어느 하나를 이용하여 데이터를 클라우드 스트리밍 서버(110)로 송수신할 수 있다. 또한, 유선통신 모듈은 유선으로 데이터를 송수신하기 위한 것이다. 유선통신 모듈은 유선을 통해 통신망에 접속하여, 클라우드 스트리밍 서버(110)에 데이터를 송수신할 수 있다. 특히, 본 발명에 따른 통신부(320)는 클라우드 스트리밍 서버(110)와 통신하여 어플리케이션 실행을 요청하고, 어플리케이션 실행 결과 화면을 수신하는데 필요한 데이터를 송수신한다.The communication unit 320 performs a function for transmitting and receiving data to and from the cloud streaming server 110 via a network. Here, the communication unit 320 may include RF transmitting means for up-converting and amplifying the frequency of the transmitted signal, RF receiving means for low-noise amplifying the received signal and down-converting the frequency. The communication unit 320 may include at least one of a wireless communication module (not shown) and a wired communication module (not shown). The wireless communication module is configured to transmit and receive data according to a wireless communication method. When the terminal uses wireless communication, the wireless communication module uses either the wireless network communication module, the wireless LAN communication module, or the wireless LAN communication module, To the streaming server 110. The wired communication module is for transmitting / receiving data by wire. The wired communication module can connect to the communication network through a wired line and transmit / receive data to / from the cloud streaming server 110. In particular, the communication unit 320 according to the present invention communicates with the cloud streaming server 110 to request application execution, and transmits and receives data necessary for receiving an application execution result screen.

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

도 4는 본 발명의 일실시예에 따른 데이터 압축 방법을 나타낸 도면이다.4 is a diagram illustrating a data compression method according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일실시예에 따른 데이터 압축 방법은 클라우드 스트리밍 서비스 화면에 상응하는 1부터 N까지의 프레임(401~405)을 각각 이전 프레임과 비교하고, 동일 프레임(410)을 선별하여 플래그로 변환할 수 있다. 예를 들어, 도 4에서 프레임(401)부터 프레임(403)까지 동일 프레임(410)이라고 한다면, 프레임(401)에 대해서만 실 데이터를 보내고 프레임(402)과 프레임(403)에 대해서는 프레임(401)과 동일하다는 플래그만을 생성하여 압축할 수 있다. 또한, 프레임(404)는 동일 프레임(410)에 속하지 않는 변화된 프레임이므로, 프레임(404)도 실 데이터를 인코더 단으로 보낼 수 있다.Referring to FIG. 4, the data compression method according to an embodiment of the present invention compares frames 1 to N corresponding to the cloud streaming service screen with the previous frame, It can be selectively converted into flags. For example, in the case of the same frame 410 from the frame 401 to the frame 403 in FIG. 4, the real data is transmitted only to the frame 401 and the frame 401 is transmitted to the frame 402 and the frame 403. [ It is possible to generate and compress only a flag that is the same as that of FIG. Also, because frame 404 is a modified frame that does not belong to the same frame 410, frame 404 can also send real data to the encoder end.

이와 같이 버퍼에 병목이 발생할 것으로 예상되었을 때, 캡처된 클라우드 스트리밍 서비스 화면을 상기의 방법과 같이 압축함으로써 병목으로 인한 클라우드 스트리밍 서비스의 오류를 사전에 방지하는 것이 가능할 수 있다.When the bottleneck is expected to occur in the buffer, it is possible to prevent the error of the cloud streaming service due to the bottleneck by compressing the screen of the captured cloud streaming service as described above.

도 5는 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법을 나타낸 동작 흐름도이다.5 is a flowchart illustrating a data compression method of a cloud streaming service according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은 클라우드 스트리밍 서비스 화면을 캡처한다(S510). 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버에서 어플리케이션을 실행하고, 어플리케이션 실행 경과에 해당하는 실행 결과 화면을 하나 이상의 단말 장치에게 제공할 수 있다.Referring to FIG. 5, a data compression method of a cloud streaming service according to an embodiment of the present invention captures a cloud streaming service screen (S510). For example, when an application execution request is received by one or more terminal apparatuses connected to a cloud streaming server through a network, an application is executed in the cloud streaming server in response to a request from the terminal apparatus, The execution result screen can be provided to one or more terminal apparatuses.

또한, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 클라우드 스트리밍 서비스 화면을 압축한다(S520).In addition, the data compression method of the cloud streaming service according to an embodiment of the present invention determines whether a bottleneck occurs in the buffer temporarily storing the captured cloud streaming service screen, and compresses the cloud streaming service screen according to the determination result ).

이 때, 버퍼의 데이터 저장률에 기반하여 병목 발생 여부를 결정할 수 있다.At this time, it is possible to determine whether a bottleneck occurs based on the data storage rate of the buffer.

이 때, 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 버퍼에 병목이 발생한 것으로 판단할 수 있다. 예를 들어, 기설정된 기준 저장률을 버퍼의 전체 데이터 저장률의 90퍼센트로 설정하고, 버퍼의 데이터 저장률이 90퍼센트를 초과하는 경우에는 버퍼에 병목이 발생한 것으로 판단할 수 있다.At this time, when the data storage rate of the buffer exceeds the predetermined reference storage rate, it can be determined that the bottleneck has occurred in the buffer. For example, you can set the preset reference storage rate to 90 percent of the total data storage rate of the buffer, and determine that the buffer is bottlenecked if the data storage rate of the buffer exceeds 90 percent.

또한, 버퍼의 데이터 증가율에 기반하여 병목 발생 여부를 결정할 수도 있다.It is also possible to determine whether a bottleneck occurs based on the data growth rate of the buffer.

이 때, 기설정된 단위시간마다 데이터 증가율을 계산하고, 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 버퍼에 병목이 발생한 것으로 판단할 수 있다. 예를 들어, 1분마다 버퍼에 저장된 데이터 저장량을 체크하여 데이터 증가율을 계산하고, 데이터가 증가하는 비율이 기설정된 증가율을 초과하는 경우에는 버퍼에 병목이 발생한 것으로 판단할 수 있다.At this time, the data increase rate is calculated every predetermined unit time, and it can be determined that the bottleneck occurs in the buffer when the data increase rate exceeds the predetermined reference increase rate. For example, the amount of data stored in the buffer is checked every minute to calculate the rate of data increase. If the rate of increase of the data exceeds the preset rate of increase, it can be determined that a bottleneck has occurred in the buffer.

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하고, 하나 이상의 동일 프레임을 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환할 수 있다. 예를 들어, 1번부터 10번까지의 10개의 프레임들 중 1번과 7번 프레임만 이전 프레임과 비교하여 변화가 있고 나머지 8개의 프레임은 이전 프레임과 변화가 없는 동일 프레임이라고 가정할 수 있다. 이 때, 1번과 7번 프레임에 대해서만 실 데이터를 전달할 수 있다. 또한, 2번부터 6번 프레임은 1번 프레임과 동일하다는 플래그를 생성하고, 8번부터 10번 프레임은 7번 프레임과 동일하다는 플래그를 생성하여 1번과 7번의 실 데이터와 함께 전달될 수 있다.At this time, one or more identical frames that are the same as the previous frame among the frames corresponding to the cloud streaming service screen may be selected, and one or more same frames may be converted into flags that are the same as the previous frames of one or more same frames. For example, it can be assumed that only the first and seventh frames among the first to the 10th frames are changed in comparison with the previous frame, and the remaining eight frames are the same frame with no change from the previous frame. In this case, real data can be transmitted only to frames 1 and 7. Also, flags # 2 to # 6 are identical to frame # 1, flags # 8 to # 10 are identical to frame # 7, and flags # 1 and # 7 are transmitted together with actual data .

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩할 수 있다. 이미지 기반 클라우드 스트리밍 서비스는 비디오 기반 클라우드 스트리밍 서비스에 비해 압축률이 떨어지므로 전송 지연이 발생할 가능성이 크고, 각각의 프레임을 어떤 스틸 이미지 코덱을 이용하여 압축하는지에 따라 전달되는 데이터량 및 클라우드 스트리밍 서버의 부하가 크게 달라질 수 있다. 예를 들어, 팔렛티드 기반 PNG 인코딩의 경우에는 화질의 열화를 가져올 수는 있으나 데이터의 크기를 줄일 수 있으므로, 버퍼의 병목 발생 방지에 도움이 될 수 있다.At this time, the format of the image data corresponding to the screen of the cloud streaming service can be encoded in a format in which the capacity can be reduced. Since the image-based cloud streaming service has a lower compression rate than the video-based cloud streaming service, there is a high possibility of transmission delay, and the amount of data to be transmitted depending on which still image codec is used to compress each frame and the load of the cloud streaming server Can be greatly changed. For example, in the case of a palette-based PNG encoding, degradation in image quality may be caused, but the size of the data can be reduced, which can help prevent buffer bottlenecks.

또한, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은 버퍼로부터 압축된 클라우드 스트리밍 서비스 화면을 로드하여 인코딩한다(S530). 예를 들어, 하나 이상의 단말 장치에 의한 어플리케이션 실행 요청을 받아 캡처한 어플리케이션 실행 결과 화면은 캡처부와 인코딩부 간의 데이터 처리를 위한 버퍼에 저장될 수 있다. 따라서, 인코딩부는 버퍼에 저장된 어플리케이션 실행 결과 화면을 로드하여 인코딩을 수행하고, 인코딩된 어플리케이션 실행 결과 화면을 하나 이상의 단말 장치로 전달할 수 있다.In addition, the data compression method of the cloud streaming service according to the embodiment of the present invention loads and compresses the compressed cloud streaming service screen from the buffer (S530). For example, an application execution result screen captured by receiving an application execution request by one or more terminal apparatuses may be stored in a buffer for data processing between the capture unit and the encoding unit. Accordingly, the encoding unit may load the application execution result screen stored in the buffer and perform encoding, and may transmit the encoded application execution result screen to one or more terminal apparatuses.

이 때, 버퍼로부터 로드한 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 압축을 해제하고 클라우드 스트리밍 서비스 화면을 인코딩할 수 있다. 예를 들어, 인코딩부가 버퍼에서 클라우드 스트리밍 서비스 화면을 로드할 때, 클라우드 스트리밍 서비스 화면이 압축된 상태인지 여부를 확인할 수 있다. 만약 압축된 상태일 경우에는 압축을 해제하고 인코딩을 수행할 수 있다.At this time, if the cloud streaming service screen loaded from the buffer is in a compressed state, it can be decompressed and the cloud streaming service screen can be encoded. For example, when the encoding unit loads the cloud streaming service screen from the buffer, it can check whether or not the cloud streaming service screen is in a compressed state. If it is in a compressed state, it can be decompressed and encoded.

또한, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송한다(S540). 이 때, 네트워크와 같은 통신망을 통해 다수의 단말 장치들과 관련된 정보를 송수신할 수 있다. In addition, the data compression method of the cloud streaming service according to an embodiment of the present invention transmits the encoded cloud streaming service screen to the terminal device (S540). At this time, information related to a plurality of terminal devices can be transmitted and received through a communication network such as a network.

도 6은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 과정을 나타낸 동작 흐름도이다.6 is a flowchart illustrating a cloud streaming service process according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 과정은 먼저 하나 이상의 단말 장치로부터 클라우드 스트리밍 서비스에 상응하는 요청을 수신한다(S610).Referring to FIG. 6, a cloud streaming service process according to an exemplary embodiment of the present invention receives a request corresponding to a cloud streaming service from one or more terminal devices (S610).

클라우드 스트리밍 서버는 하나 이상의 단말 장치의 요청에 해당하는 클라우드 스트리밍 서비스 화면을 캡처한다(S620). 클라우드 스트리밍 서버는 요청에 상응하여 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 어플리케이션 실행 결과 화면을 캡처할 수 있다.The cloud streaming server captures a cloud streaming service screen corresponding to a request of one or more terminal devices (S620). The cloud streaming server can execute the application corresponding to the request and capture the application execution result screen corresponding to the application execution result.

클라우드 스트리밍 서버는 캡처부에서 인코딩부로 클라우드 스트리밍 서비스 화면을 전달하는 과정에서 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼에 병목이 발생하였는지 여부를 판단한다(S625).The cloud streaming server determines whether a bottleneck occurs in the buffer temporarily storing the cloud streaming service screen in the process of delivering the cloud streaming service screen from the capture unit to the encoding unit (S625).

이 때, 버퍼의 병목 발생 여부는 버퍼의 데이터 저장률 및 데이터 증가량에 따라 판단할 수 있다.In this case, whether or not a buffer bottleneck occurs can be determined according to the data storage rate and the data increase amount of the buffer.

예를 들어, 기준 저장률을 버퍼의 전체 데이터 저장률의 90퍼센트로 설정한 뒤, 실제로 버퍼의 데이터 저장률이 90퍼센트를 초과한다면 버퍼에 병목이 발생한 것으로 예상하고 캡처된 화면을 압축할 수 있다.For example, if you set a baseline retention rate to 90 percent of the total data retention rate of the buffer, and if the actual data retention rate of the buffer exceeds 90 percent, you can expect the bottleneck to occur and compress the captured screen .

또한, 기설정된 단위시간마다 버퍼에 저장된 데이터 저장량을 체크하여 데이터 증가율을 계산하고, 기설정된 기준 증가율보다 버퍼의 데이터 증가율이 높은 경우에 버퍼에 병목이 발생한 것으로 예상하고 캡처된 화면을 압축할 수 있다.In addition, it is possible to calculate the data increase rate by checking the data storage amount stored in the buffer every predetermined unit time, and if the data increase rate of the buffer is higher than the preset reference increase rate, it is estimated that the bottleneck occurs in the buffer and the captured screen can be compressed .

단계(S625)의 판단 결과 버퍼에 병목이 발생하였다면, 클라우드 스트리밍 서비스 화면을 압축한다(S630).If it is determined in step S625 that a bottleneck occurs in the buffer, the cloud streaming service screen is compressed (S630).

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하고, 하나 이상의 동일 프레임을 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환할 수 있다.At this time, one or more identical frames that are the same as the previous frame among the frames corresponding to the cloud streaming service screen may be selected, and one or more same frames may be converted into flags that are the same as the previous frames of one or more same frames.

이 때, 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩할 수 있다.At this time, the format of the image data corresponding to the screen of the cloud streaming service can be encoded in a format in which the capacity can be reduced.

단계(S625)의 판단 결과 버퍼에 병목이 발생하지 않았다면, 인코더에서 버퍼에 저장된 클라우드 스트리밍 서비스 화면을 로드하여 인코딩한다(S640). 또한, 버퍼에서 병목이 발생하여 압축된 클라우드 스트리밍 서비스 화면을 로드하여 인코딩할 수도 있다.If it is determined in step S625 that no bottleneck occurs in the buffer, the encoder loads and encodes the cloud streaming service screen stored in the buffer in step S640. In addition, a bottleneck occurs in the buffer, and the compressed cloud streaming service screen can be loaded and encoded.

클라우드 스트리밍 서버는 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송한다(S650).The cloud streaming server transmits the encoded cloud streaming service screen to the terminal device (S650).

본 발명에 따른 클라우드 스트리밍 서비스의 데이터 압축 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The data compression method of the cloud streaming service according to the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Includes all types of hardware devices that are specially configured to store and execute magneto-optical media and program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상에서와 같이 본 발명에 따른 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the cloud streaming service system according to the present invention, the data compression method for preventing memory bottlenecks, and the apparatus therefor are not limited to the configuration and method of the embodiments described above, The embodiments may be configured such that all or some of the embodiments are selectively combined so that various modifications can be made.

본 발명에 의하면 클라우드 스트리밍 서비스 화면을 캡처하고, 캡처된 클라우드 스트리밍 서비스 화면에 상응하는 데이터를 임시 저장하는 버퍼로부터 데이터를 로드하여 인코딩하고, 버퍼의 병목 발생 여부를 판단하여 판단 결과에 따라 버퍼에 임시 저장된 데이터를 압축할 수 있다. 나아가, 데이터 전송량의 증가로 클라우드 스트리밍 서비스 시스템에서 발생할 수 있는 병목 현상을 사전에 방지할 수 있어, 서비스 사용자들에게 원활한 스트리밍 서비스가 가능하고 별도의 비용을 들이지 않고도 데이터 전송량을 조절할 수 있다.According to the present invention, a cloud streaming service screen is captured, data is loaded and encoded from a buffer for temporarily storing data corresponding to the captured cloud streaming service screen, a buffer bottleneck occurrence is determined, The stored data can be compressed. Furthermore, since the bottleneck phenomenon that may occur in the cloud streaming service system can be prevented in advance due to the increase of the data transmission amount, the streaming service can be smoothly provided to the service users and the data transmission amount can be adjusted without additional cost.

110: 클라우드 스트리밍 서버 120-1~ 120-N: 단말 장치
130: 네트워크 210: 캡처부
220: 인코딩부 230: 통신부
240: 압축부 250: 저장부
310: 제어부 320: 통신부
330: 입력부 340: 표시부
350: 저장부 401~ 405: 프레임
410: 동일 프레임
110: Cloud streaming servers 120-1 to 120-N:
130: Network 210: Capture unit
220: encoding section 230: communication section
240 compression section 250 storage section
310: Control section 320:
330: input unit 340: display unit
350: storage unit 401 to 405: frame
410: same frame

Claims (18)

클라우드 스트리밍 서비스 화면을 캡처하는 캡처부;
상기 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼로부터 상기 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하는 인코딩부;
상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하는 통신부; 및
상기 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 상기 클라우드 스트리밍 서비스 화면을 압축하는 압축부
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
A capture unit for capturing a cloud streaming service screen;
An encoding unit for loading and encoding the cloud streaming service screen from a buffer for temporarily storing the captured cloud streaming service screen;
A communication unit for transmitting the encoded cloud streaming service screen to a terminal device; And
A compression unit for determining whether or not a bottleneck occurs in the buffer and compressing the cloud streaming service screen according to the determination result,
Wherein the server comprises:
청구항 1에 있어서,
상기 압축부는
상기 버퍼의 데이터 저장률에 기반하여 상기 병목 발생 여부를 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method according to claim 1,
The compression unit
And determines whether the bottleneck occurs based on a data storage rate of the buffer.
청구항 2에 있어서,
상기 압축부는
상기 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 2,
The compression unit
Wherein the controller determines that a bottleneck occurs in the buffer when the data storage rate of the buffer exceeds a predetermined reference storage rate.
청구항 3에 있어서,
상기 압축부는
상기 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하고, 상기 하나 이상의 동일 프레임을 상기 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 3,
The compression unit
Selecting one or more identical frames that are the same as a previous frame among the frames corresponding to the cloud streaming service screen and converting the one or more same frames into flags that are the same as the previous frames of the one or more same frames. server.
청구항 4에 있어서,
상기 압축부는
상기 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 4,
The compression unit
Wherein the format of the image data corresponding to the cloud streaming service screen is encoded in a format capable of reducing the capacity of the cloud streaming service screen.
청구항 1에 있어서,
상기 압축부는
상기 버퍼의 데이터 증가율에 기반하여 상기 병목 발생 여부를 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method according to claim 1,
The compression unit
And determines whether the bottleneck occurs based on a data growth rate of the buffer.
청구항 6에 있어서,
상기 압축부는
기설정된 단위시간마다 상기 데이터 증가율을 계산하고, 상기 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 6,
The compression unit
Wherein the controller determines that the bottleneck occurs in the buffer when the data increase rate exceeds a predetermined reference increase rate.
청구항 5에 있어서,
상기 인코딩부는
상기 버퍼로부터 로드한 상기 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 압축을 해제하고 상기 클라우드 스트리밍 서비스 화면을 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method of claim 5,
The encoding unit
And when the cloud streaming service screen loaded from the buffer is in a compressed state, decompressing the stream and encoding the cloud streaming service screen.
클라우드 스트리밍 서비스 화면을 캡처하는 단계;
상기 캡처된 클라우드 스트리밍 서비스 화면을 임시 저장하는 버퍼의 병목 발생 여부를 판단하고, 판단 결과에 따라 상기 클라우드 스트리밍 서비스 화면을 압축하는 단계;
상기 버퍼로부터 상기 압축된 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하는 단계; 및
상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하는 단계
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
Capturing a cloud streaming service screen;
Determining whether a bottleneck occurs in the buffer for temporarily storing the captured cloud streaming service screen, and compressing the cloud streaming service screen according to the determination result;
Loading and compressing the compressed cloud streaming service screen from the buffer; And
Transmitting the encoded cloud streaming service screen to the terminal device
The method comprising the steps of:
청구항 9에 있어서,
상기 압축하는 단계는
상기 버퍼의 데이터 저장률에 기반하여 상기 병목 발생 여부를 결정하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
The method of claim 9,
The compressing step
And determining whether the bottleneck occurs based on a data storage rate of the buffer.
청구항 10에 있어서,
상기 압축하는 단계는
상기 버퍼의 데이터 저장률이 기설정된 기준 저장률을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
The method of claim 10,
The compressing step
And determining that a bottleneck occurs in the buffer when the data storage rate of the buffer exceeds a predetermined reference storage rate.
청구항 11에 있어서,
상기 압축하는 단계는
상기 클라우드 스트리밍 서비스 화면에 상응하는 프레임들 중 이전 프레임과 동일한 하나 이상의 동일 프레임을 선별하는 단계를 포함하고,
상기 하나 이상의 동일 프레임을 상기 하나 이상의 동일 프레임의 이전 프레임과 동일하다는 플래그로 변환하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
The method of claim 11,
The compressing step
Selecting one or more identical frames that are the same as the previous frame among the frames corresponding to the cloud streaming service screen,
And converting the at least one same frame into a flag that is the same as the previous frame of the at least one same frame.
청구항 12에 있어서,
상기 압축하는 단계는
상기 클라우드 스트리밍 서비스 화면에 상응하는 이미지 데이터의 포맷을 용량을 줄일 수 있는 포맷으로 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
The method of claim 12,
The compressing step
Wherein the format of the image data corresponding to the cloud streaming service screen is encoded in a format in which capacity is reduced.
청구항 9에 있어서,
상기 압축하는 단계는
상기 버퍼의 데이터 증가율에 기반하여 상기 병목 발생 여부를 결정하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
The method of claim 9,
The compressing step
And determining whether the bottleneck is generated based on a data increase rate of the buffer.
청구항 14에 있어서,
상기 압축하는 단계는
기설정된 단위시간마다 상기 데이터 증가율을 계산하는 단계를 포함하고,
상기 데이터 증가율이 기설정된 기준 증가율을 초과하는 경우에 상기 버퍼에 병목이 발생한 것으로 판단하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
15. The method of claim 14,
The compressing step
And calculating said data increase rate every predetermined unit time,
And determining that a bottleneck occurs in the buffer when the data increase rate exceeds a predetermined reference increase rate.
청구항 13에 있어서,
상기 인코딩하는 단계는
상기 버퍼로부터 로드한 상기 클라우드 스트리밍 서비스 화면의 압축 상태를 판단하는 단계를 포함하고,
상기 판단 결과 상기 클라우드 스트리밍 서비스 화면이 압축된 상태일 경우에 상기 압축을 해제하고 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서비스의 데이터 압축 방법.
14. The method of claim 13,
The encoding step
And determining a compression state of the cloud streaming service screen loaded from the buffer,
And if the cloud streaming service screen is in a compressed state, decompressing and encoding the cloud streaming service screen.
제9항 내지 제16항 중 어느 한 항에 기재된 클라우드 스트리밍 서비스의 데이터 압축 방법을 실행시키기 위하여 컴퓨터에서 판독 가능한 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer readable medium for executing the data compression method of the cloud streaming service according to any one of claims 9 to 16. 클라우드 스트리밍 서비스 화면을 캡처하고, 버퍼로부터 상기 클라우드 스트리밍 서비스 화면을 로드하여 인코딩하고, 상기 인코딩된 클라우드 스트리밍 서비스 화면을 단말 장치로 전송하고, 상기 버퍼의 병목 발생 여부를 판단하여 상기 클라우드 스트리밍 서비스 화면을 압축하는 클라우드 스트리밍 서버; 및
상기 클라우드 스트리밍 서버로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말 장치
를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서비스 시스템.
A cloud streaming service screen is captured, the cloud streaming service screen is loaded and encoded from a buffer, the encoded cloud streaming service screen is transmitted to a terminal device, and a determination is made as to whether a bottleneck occurs in the buffer, A cloud streaming server to compress; And
A terminal device for receiving an application execution result screen corresponding to the cloud streaming service from the cloud streaming server,
And a cloud streaming service system.
KR1020140099994A 2014-07-14 2014-08-04 System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same KR102063093B1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR1020140099994A KR102063093B1 (en) 2014-08-04 2014-08-04 System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same
JP2017519439A JP6467503B2 (en) 2014-07-14 2015-07-13 Cloud streaming service system, data compression method for preventing memory bottleneck, and apparatus therefor
EP15822844.5A EP3171601A4 (en) 2014-07-14 2015-07-13 Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same
CN201580047076.2A CN106797487B (en) 2014-07-14 2015-07-13 Cloud streaming server
PCT/KR2015/007261 WO2016010319A2 (en) 2014-07-14 2015-07-13 Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same
CN202110160960.4A CN112929234B (en) 2014-07-14 2015-07-13 Cloud stream server
US15/406,594 US10397288B2 (en) 2014-07-14 2017-01-13 Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same
US16/505,144 US10904304B2 (en) 2014-07-14 2019-07-08 Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140099994A KR102063093B1 (en) 2014-08-04 2014-08-04 System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same

Publications (2)

Publication Number Publication Date
KR20160016265A true KR20160016265A (en) 2016-02-15
KR102063093B1 KR102063093B1 (en) 2020-01-07

Family

ID=55357036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140099994A KR102063093B1 (en) 2014-07-14 2014-08-04 System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same

Country Status (1)

Country Link
KR (1) KR102063093B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102110195B1 (en) * 2019-08-09 2020-05-14 주식회사 볼트홀 Apparatus and method for providing streaming video or application program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823522B1 (en) * 2007-06-18 2008-04-21 주식회사 셀런 Caching method for reducing bottle neck between storage and server in real-time streaming system
KR100924309B1 (en) * 2009-06-04 2009-11-02 전자부품연구원 Quality adaptive streaming method using temporal scalability and system thereof
KR20120082434A (en) * 2009-09-29 2012-07-23 네트 파워 앤드 라이트 인코포레이티드 Method and system for low-latency transfer protocol
KR20130025987A (en) 2011-02-16 2013-03-13 (주)필링크 Image processing system of image change adaptation
JP2014504409A (en) * 2010-12-15 2014-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Hardware-accelerated graphics for network-enabled applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823522B1 (en) * 2007-06-18 2008-04-21 주식회사 셀런 Caching method for reducing bottle neck between storage and server in real-time streaming system
KR100924309B1 (en) * 2009-06-04 2009-11-02 전자부품연구원 Quality adaptive streaming method using temporal scalability and system thereof
KR20120082434A (en) * 2009-09-29 2012-07-23 네트 파워 앤드 라이트 인코포레이티드 Method and system for low-latency transfer protocol
JP2014504409A (en) * 2010-12-15 2014-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Hardware-accelerated graphics for network-enabled applications
KR20130025987A (en) 2011-02-16 2013-03-13 (주)필링크 Image processing system of image change adaptation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102110195B1 (en) * 2019-08-09 2020-05-14 주식회사 볼트홀 Apparatus and method for providing streaming video or application program
WO2021029756A1 (en) * 2019-08-09 2021-02-18 주식회사 볼트홀 Apparatus and method for providing streaming video by application program
CN113226501A (en) * 2019-08-09 2021-08-06 沃特霍有限公司 Streaming media image providing device and method for application program

Also Published As

Publication number Publication date
KR102063093B1 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
US10904304B2 (en) Cloud streaming service system, data compressing method for preventing memory bottlenecking, and device for same
KR102426670B1 (en) System for cloud streaming service, method of image cloud streaming service using process shortering and apparatus for the same
US8736622B2 (en) System and method of leveraging GPU resources to enhance performance of an interact-able content browsing service
KR20210095846A (en) System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same
KR102247886B1 (en) System for cloud streaming service, method of cloud streaming service based on type of image and apparatus for the same
KR101749891B1 (en) METHOD OF CONTROLLING FRAME RATE BASED ON Resource Status AND APPARATUS FOR CLOUD STREAMING SERVICE
KR20160121982A (en) System for cloud streaming service, method of image cloud streaming service using shared web-container and apparatus for the same
KR20160016265A (en) System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same
KR20200115314A (en) User interface screen recovery method in cloud streaming service and apparatus therefor
KR102313531B1 (en) System for cloud streaming service, method of cloud streaming service using single session multi-access and apparatus for the same
KR20160115566A (en) System for cloud streaming service, method of image cloud streaming service using separation of image and text and apparatus for the same
KR102247887B1 (en) System for cloud streaming service, method of cloud streaming service using source information and apparatus for the same
KR102508293B1 (en) System for cloud streaming service, method of image cloud streaming service based on quality information of application file and apparatus for the same
KR102617491B1 (en) Apparatus and method for encoding of cloud streaming
KR101668284B1 (en) System for cloud streaming service, method of providing cloud streaming service and apparatus for the same
CN112929234B (en) Cloud stream server
KR20160094746A (en) System for cloud streaming service, method of image cloud streaming service using additional encoding and apparatus for the same
KR102272358B1 (en) System for cloud streaming service, method of image cloud streaming service using managed occupation of browser and method using the same
KR102273143B1 (en) System for cloud streaming service, method of cloud streaming service based on still image and apparatus for the same
KR20160109804A (en) System for cloud streaming service, method of image cloud streaming service using split screen and apparatus for the same
KR102247888B1 (en) System for cloud streaming service, method of image cloud streaming service based on selective streaming pipeline method and apparatus for the same
KR102063089B1 (en) System for cloud streaming service, method of improving content picture quality and apparatus for the same
KR20160139956A (en) System for cloud streaming service, method of image cloud streaming service using selective server connection and apparatus for the same
KR20160022505A (en) System for cloud streaming service, method for processing service based on type of cloud streaming service and apparatus for the same
KR20170000670A (en) System for cloud streaming service, method of image cloud streaming service using property of scene region and method using the same

Legal Events

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