KR102398976B1 - System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same - Google Patents

System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same Download PDF

Info

Publication number
KR102398976B1
KR102398976B1 KR1020210098754A KR20210098754A KR102398976B1 KR 102398976 B1 KR102398976 B1 KR 102398976B1 KR 1020210098754 A KR1020210098754 A KR 1020210098754A KR 20210098754 A KR20210098754 A KR 20210098754A KR 102398976 B1 KR102398976 B1 KR 102398976B1
Authority
KR
South Korea
Prior art keywords
image
encoding
cloud streaming
quality
changed
Prior art date
Application number
KR1020210098754A
Other languages
Korean (ko)
Other versions
KR20210095846A (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 KR1020210098754A priority Critical patent/KR102398976B1/en
Publication of KR20210095846A publication Critical patent/KR20210095846A/en
Application granted granted Critical
Publication of KR102398976B1 publication Critical patent/KR102398976B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Abstract

클라우드 스트리밍 서비스 시스템, 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치가 개시된다. 사용자 요청에 따른 어플리케이션 실행화면의 프레임들을 비교하여 변화된 이미지를 캡쳐하고, 변화된 이미지를 고화질과 저화질로 동시에 스틸 이미지 인코딩하되, 스틸 이미지 인코딩을 수행함과 동시에 변화된 이미지의 컬러 수를 체크하여 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단하고, 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 화질과 속도가 보장되는 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 가능하다.A cloud streaming service system, an image cloud streaming service method using simultaneous encoding, and an apparatus therefor are disclosed. The changed image is captured by comparing the frames of the application execution screen according to the user's request, and the changed image is encoded as a still image in high and low quality at the same time. It is possible to perform image-based cloud streaming service by determining whether to stop encoding still images, and transmitting a still image-encoded image of either high or low quality to the terminal. It is possible to provide an image-based cloud streaming service with guaranteed image quality and speed.

Description

클라우드 스트리밍 서비스 시스템, 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치{SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF IMAGE CLOUD STREAMING SERVICE USING SIMULTANEOUS ENCODING AND APPARATUS FOR THE SAME}Cloud streaming service system, image cloud streaming service method using simultaneous encoding, and apparatus therefor

본 발명은 저화질과 고화질로 동시에 인코딩을 수행하여 이미지 클라우드 스트리밍 서비스를 제공하는 기술에 관한 것으로, 특히 사용자의 단말로 전달할 이미지를 일단 저화질과 고화질로 동시에 인코딩을 수행하고, 이미지의 컬러 수에 따라 고화질 인코딩의 중단 여부를 결정하여 서비스를 제공함으로써 향상된 화질로 빠르게 서비스할 수 있는 클라우드 스트리밍 서비스 시스템, 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a technology for providing an image cloud streaming service by performing encoding at the same time in low and high quality, in particular, encoding an image to be delivered to a user's terminal at the same time in low and high quality, and high quality according to the number of colors of the image It relates to a cloud streaming service system that can provide a service by providing a service by determining whether to stop encoding, a cloud streaming service system that can provide fast service with improved image quality, an image cloud streaming service method using simultaneous encoding, and an apparatus therefor.

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

또한, 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다. In addition, as applications driven in a mobile communication terminal such as a smart phone are developed in various ways, virtualization technologies for driving applications requiring high performance in a user terminal with relatively low performance have been widely proposed.

그 중에서 어플리케이션을 서버에서 구동시키고 구동화면은 비디오 인코딩(Encoding)을 통해 압축하여 클라이언트로 전송하고, 클라이언트는 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반의 클라우드 스트리밍 서비스가 각광받고 있는 추세이다.Among them, based on screen virtualization, the application is run on the server, the driving screen is compressed through video encoding and transmitted to the client, and the client plays the transmitted video to have the same effect as if the application is running on its own terminal. of cloud streaming services are in the spotlight.

이와 같은 클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법이 적용되었다. 그러나 메뉴 디스플레이와 같이 정적인 화면을 서비스 하는 경우에도 불필요하게 화면 전체를 캡쳐하고 비디오 코덱을 이용하여 동작하게 되어 시스템 전체적으로 비효율적인 측면이 존재하였다.In such a cloud streaming service, a video codec-based cloud streaming technique was basically applied. However, even when a static screen such as a menu display is serviced, the entire screen is unnecessarily captured and the video codec is used, which is inefficient as a whole system.

따라서, 이와 같이 정적인 이미지에 대해서 변화된 부분만을 캡쳐하고, 캡쳐된 이미지에 대해 화질 별로 동시에 수행되는 스틸 이미지 인코딩을 제어하여 이미지를 제공할 수 있는 이미지 기반의 클라우드 스트리밍 서비스 기술이 절실하게 대두되고 있다.Therefore, an image-based cloud streaming service technology that can provide an image by capturing only the changed part of the static image and controlling the still image encoding performed at the same time for each image quality on the captured image is urgently emerging. .

한국 공개 특허 제2008-0053122호, 2008년 6월 12일 등록 (명칭: 계층적 코딩된 콘텐츠의 적응적 전송 장치 및 그 방법)Korean Patent Laid-Open Patent No. 2008-0053122, registered on June 12, 2008 (Title: Apparatus for adaptive transmission of hierarchically coded content and method therefor)

본 발명의 목적은, 사용자에게 제공될 이미지의 화질에 따라 인코딩 과정을 제어함으로써 이미지 기반의 클라우드 스트리밍 서비스 시 발생하는 부하량을 감소시키는 것이다.An object of the present invention is to reduce the amount of load generated during an image-based cloud streaming service by controlling the encoding process according to the quality of an image to be provided to a user.

또한, 본 발명의 목적은 화질이 일정 수준 이하인 이미지들에 대해서 일괄적인 스틸 이미지 인코딩을 수행하여 이미지를 제공함으로써 이미지 기반의 클라우드 스트리밍 서비스 제공 속도를 향상시키는 것이다.Another object of the present invention is to improve the speed of providing an image-based cloud streaming service by performing batch still image encoding on images of which image quality is below a certain level to provide images.

또한, 본 발명의 목적은 사용자에게 제공될 이미지의 화질에 따라 고화질의 인코딩 방식을 이용하여 스틸 이미지 인코딩을 수행함으로써 사용자에게 화질이 보장되는 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이다.Another object of the present invention is to provide an image-based cloud streaming service in which image quality is guaranteed to a user by performing still image encoding using a high-definition encoding method according to the image quality to be provided to the user.

상기한 목적을 달성하기 위한 본 발명에 따른 클라우드 스트리밍 서버는, 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐하는 캡쳐부; 상기 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩하는 인코딩부; 상기 스틸 이미지 인코딩을 수행함과 동시에 상기 변화된 이미지의 컬러 수를 체크하고, 상기 컬러 수에 기반하여 상기 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단하는 인코딩 제어부; 및 사용자의 단말에서 상기 어플리케이션 실행화면을 디스플레이 하기 위해 상기 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 상기 변화된 이미지를 상기 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.Cloud streaming server according to the present invention for achieving the above object, the capture unit for capturing the changed image by comparing the frames corresponding to the application execution screen received in response to a user request; an encoding unit that simultaneously encodes the changed image in two encoding methods corresponding to high and low picture quality, respectively; an encoding control unit that checks the number of colors of the changed image while encoding the still image, and determines whether to stop encoding of the still image corresponding to the high quality based on the number of colors; and a sending unit for performing an image-based cloud streaming service by transmitting the changed image, which is still image-encoded in one of the high and low quality, to the terminal in order to display the application execution screen in the user's terminal.

이 때, 센딩부는 상기 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않고 수행된 경우에 상기 고화질로 스틸 이미지 인코딩된 상기 변화된 이미지를 상기 단말로 전송할 수 있다.In this case, when encoding of the still image corresponding to the high quality is performed without interruption, the sending unit may transmit the changed image encoded with the still image in the high quality to the terminal.

이 때, 인코딩부는 상기 고화질에 상응하는 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나의 인코딩 방식과 상기 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다.In this case, the encoding unit may simultaneously encode the still image using any one of the lossyPNG encoding method and the PNG32bit encoding method corresponding to the high quality and the palette PNG encoding method corresponding to the low quality.

이 때, 인코딩 제어부는 상기 컬러 수가 기설정된 기준 컬러 수 이하인 경우, 고화질 인코딩 중단 메시지를 이용하여 상기 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다.In this case, when the number of colors is less than or equal to a preset reference number of colors, the encoding control unit may stop encoding of the still image corresponding to the high quality using a high quality encoding stop message.

이 때, 센딩부는 상기 고화질에 상응하는 스틸 이미지 인코딩이 중단된 경우, 상기 저화질로 스틸 이미지 인코딩된 상기 변환 이미지를 상기 단말로 전송할 수 있다.In this case, when encoding of the still image corresponding to the high quality is stopped, the sending unit may transmit the converted image encoded with the still image in the low quality to the terminal.

이 때, 캡쳐부는 상기 프레임들 중 현재 프레임과 이전 프레임을 비교하여 상기 변화된 이미지를 캡쳐할 수 있다.In this case, the capture unit may capture the changed image by comparing the current frame and the previous frame among the frames.

이 때, 클라우드 스트리밍 서버는 상기 프레임들을 비교하여 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행하고, 변화가 적은 구간은 상기 이미지 캡쳐를 통해 상기 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.At this time, the cloud streaming server compares the frames and performs a video codec-based cloud streaming service for a section with a lot of change, and performs the image-based cloud streaming service for a section with a small change through the image capture. .

또한, 본 발명에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은, 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐하는 단계; 상기 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩하는 단계; 상기 스틸 이미지 인코딩을 수행함과 동시에 상기 변화된 이미지의 컬러 수를 체크하고, 상기 컬러 수에 기반하여 상기 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단하는 단계; 및 사용자의 단말에서 상기 어플리케이션 실행화면을 디스플레이 하기 위해 상기 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 상기 변화된 이미지를 상기 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.In addition, the image cloud streaming service method using the simultaneous encoding according to the present invention, capturing the changed image by comparing the frames corresponding to the application execution screen received in response to a user request; encoding a still image of the changed image using two encoding methods corresponding to high and low quality, respectively; checking the number of colors of the changed image while performing the encoding of the still image, and determining whether to stop encoding the still image corresponding to the high quality based on the number of colors; And in order to display the application execution screen on the user's terminal, the image-based cloud streaming service is performed by transmitting the changed image, which is still image-encoded in one of the high and low quality, to the terminal.

이 때, 수행하는 단계는 상기 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않고 수행된 경우에 상기 고화질로 스틸 이미지 인코딩된 상기 변화된 이미지를 상기 단말로 전송할 수 있다.In this case, in the performing step, when encoding of the still image corresponding to the high quality is performed without interruption, the changed image encoded with the still image in the high quality may be transmitted to the terminal.

이 때, 스틸 이미지 인코딩하는 단계는 상기 고화질에 상응하는 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나의 인코딩 방식과 상기 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다.In this case, in the step of encoding the still image, either one of the lossyPNG encoding method and the PNG32bit encoding method corresponding to the high quality and the palette PNG encoding method corresponding to the low quality may be simultaneously performed.

이 때, 중단 여부를 판단하는 단계는 상기 컬러 수가 기설정된 기준 컬러 수 이하인 경우, 고화질 인코딩 중단 메시지를 생성하는 단계를 포함하고, 상기 고화질 인코딩 중단 메시지를 인코더단으로 전달하여 상기 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다.At this time, the step of determining whether to stop includes generating a high-definition encoding stop message when the number of colors is less than or equal to a preset reference number of colors, and transmitting the high-definition encoding stop message to the encoder end to provide stills corresponding to the high quality Image encoding can be stopped.

이 때, 수행하는 단계는 상기 고화질에 상응하는 스틸 이미지 인코딩이 중단된 경우, 상기 저화질로 스틸 이미지 인코딩된 상기 변환 이미지를 상기 단말로 전송할 수 있다.In this case, in the performing step, when encoding of the still image corresponding to the high quality is stopped, the converted image encoded with the still image in the low quality may be transmitted to the terminal.

이 때, 캡쳐하는 단계는 상기 프레임들 중 현재 프레임과 이전 프레임을 비교하여 상기 변화된 이미지를 캡쳐할 수 있다.In this case, the capturing may include capturing the changed image by comparing a current frame with a previous frame among the frames.

이 때, 이미지 클라우드 스트리밍 서비스 방법은 상기 프레임들을 비교하여 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행하고, 변화가 적은 구간은 상기 이미지 캡쳐를 통해 상기 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.In this case, the image cloud streaming service method compares the frames and performs a video codec-based cloud streaming service for a section with a lot of change, and performs the image-based cloud streaming service for a section with a small change through the image capture. can

본 발명에 따르면, 사용자에게 제공될 이미지의 화질에 따라 인코딩 과정을 제어함으로써 이미지 기반의 클라우드 스트리밍 서비스 시 발생하는 부하량을 감소시킬 수 있다.According to the present invention, by controlling the encoding process according to the quality of the image to be provided to the user, it is possible to reduce the load generated during the image-based cloud streaming service.

또한, 본 발명은 화질이 일정 수준 이하인 이미지들에 대해서 일괄적인 스틸 이미지 인코딩을 수행하여 이미지를 제공함으로써 이미지 기반의 클라우드 스트리밍 서비스 제공 속도를 향상시킬 수 있다.In addition, the present invention can improve the speed of providing an image-based cloud streaming service by providing images by performing batch still image encoding on images of which image quality is below a certain level.

또한, 본 발명은 사용자에게 제공될 이미지의 화질에 따라 고화질의 인코딩 방식을 이용하여 스틸 이미지 인코딩을 수행함으로써 사용자에게 화질이 보장되는 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다.In addition, the present invention can provide an image-based cloud streaming service with guaranteed image quality to the user by performing still image encoding using a high-definition encoding method according to the image quality to be provided to the user.

또한, 본 발명은 사용자 단말에서 프레임의 변화된 이미지만을 렌더링하여 디스플레이 하기 때문에, 사용자 단말의 성능이 낮더라도 클라우드 스트리밍 서비스를 원활하게 제공할 수 있다.In addition, since the present invention renders and displays only the changed image of the frame in the user terminal, it is possible to provide a cloud streaming service smoothly even if the performance of the user terminal is low.

도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 3은 본 발명에 따른 이미지 기반의 클라우드 스트리밍 서비스 과정을 나타낸 도면이다.
도 4는 본 발명에 따라 프레임을 비교하여 캡쳐될 이미지를 검출하는 과정을 나타낸 도면이다.
도 5는 PNG32bit 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식을 나타낸 도면이다.
도 6은 팔렛트 PNG 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식을 나타낸 도면이다.
도 7은 팔렛트 PNG 방식에서 생성하는 컬러 인덱스의 일예를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 9는 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 10은 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 과정을 나타낸 도면이다.
1 is a block diagram illustrating a cloud streaming service system according to an embodiment of the present invention.
2 is a block diagram showing an example of the cloud streaming server shown in FIG.
3 is a diagram illustrating an image-based cloud streaming service process according to the present invention.
4 is a diagram illustrating a process of detecting an image to be captured by comparing frames according to the present invention.
5 is a diagram illustrating a method of including color information in a pixel according to a PNG32-bit method.
6 is a diagram illustrating a method of including color information in a pixel according to the palette PNG method.
7 is a diagram illustrating an example of a color index generated in the palette PNG method.
8 is an operation flowchart illustrating an image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention.
9 is a detailed operation flowchart illustrating an image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention.
10 is a diagram illustrating an image cloud streaming process using simultaneous encoding 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. However, detailed descriptions of well-known functions or configurations that may obscure the gist of the present invention in the following description and accompanying drawings will be omitted. Also, it should be noted that, throughout the drawings, the same components are denoted by the same reference numerals as much as possible. The embodiments of the present invention are provided in order to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer description.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.The terms or words used in the present specification and claims described below should not be construed as being limited to their ordinary or dictionary meanings, and the inventor is appropriate as a concept of terms for describing his invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention based on the principle that it can be defined in Therefore, the embodiments described in this specification and the configurations shown in the drawings are only the most preferred embodiment of the present invention, and do not represent all the technical spirit of the present invention, so at the time of the present application, various It should be understood that there may be equivalents and variations. In addition, terms such as 1st, 2nd, etc. are used to describe various components, and are used only for the purpose of distinguishing one component from other components, and are not used to limit 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)를 포함한다.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)는 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐한다. 이 때, 프레임들 중 현재 프레임과 이전 프레임을 비교하여 변화된 이미지를 캡쳐할 수 있다.The cloud streaming server 110 captures the changed image by comparing frames corresponding to the application execution screen received according to the user's request. In this case, the changed image may be captured by comparing the current frame with the previous frame among the frames.

또한, 클라우드 스트리밍 서버(110)는 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩한다. 이 때, 고화질에 상응하는 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나의 인코딩 방식과 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다. 이 때, 고화질에 상응하는 인코딩 방식은 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나에 상응할 수 있다.In addition, the cloud streaming server 110 simultaneously encodes the changed image in two encoding methods corresponding to high quality and low quality, respectively. In this case, it is possible to simultaneously encode still images by using any one of the lossyPNG encoding method and the PNG32bit encoding method corresponding to the high quality and the palette PNG encoding method corresponding to the low quality. In this case, the encoding method corresponding to the high quality may correspond to any one of the lossyPNG encoding method and the PNG32bit encoding method.

또한, 클라우드 스트리밍 서버(110)는 스틸 이미지 인코딩을 수행함과 동시에 변화된 이미지의 컬러 수를 체크하고, 컬러 수에 기반하여 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단한다. 이 때, 컬러 수가 기설정된 기준 컬러 수 이하인 경우, 고화질 인코딩 중단 메시지를 이용하여 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다. In addition, the cloud streaming server 110 checks the number of colors of the changed image while encoding the still image, and determines whether to stop encoding the still image corresponding to the high quality based on the number of colors. In this case, when the number of colors is less than or equal to the preset reference number of colors, encoding of still images corresponding to high quality may be stopped using a high quality encoding stop message.

또한, 클라우드 스트리밍 서버(110)는 사용자의 단말 장치(120-1~ 120-N)에서 어플리케이션 실행화면을 디스플레이 하기 위해 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 변화된 이미지를 단말 장치(120-1~ 120-N)로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않고 수행된 경우에 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말 장치(120-1~ 120-N)로 전송할 수 있다. 이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단된 경우, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말 장치(120-1~ 120-N)로 전송할 수 있다.In addition, the cloud streaming server 110 is a terminal device 120-1 ~ 120-N of the user's terminal device (120-1 ~ 120-N) to display the application execution screen, a still image encoded in any one of high quality and low quality. 120-N) to perform image-based cloud streaming service. In this case, when encoding of the still image corresponding to the high quality is performed without interruption, the changed image encoded with the still image in the high quality may be transmitted to the terminal devices 120 - 1 to 120 -N. In this case, when encoding of the still image corresponding to the high quality is stopped, the changed image encoded with the still image in the low quality may be transmitted to the terminal devices 120 - 1 to 120 -N.

또한, 클라우드 스트리밍 서버(110)는 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행하고, 변화가 적은 구간은 이미지 캡쳐를 통해 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.In addition, the cloud streaming server 110 compares frames corresponding to the application execution screen received according to the user's request, and performs a video codec-based cloud streaming service for a section with a large change, and a section with a small change through image capture. An image-based cloud streaming service can be performed.

단말 장치(120-1~ 120-N)는 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행화면을 수신하여 사용자에게 제공한다.The terminal devices 120-1 to 120-N receive the 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, each of the terminal devices 120-1 to 120-N is a device that is connected to a communication network and can execute an application based on a cloud computing system, and is not limited to a mobile communication terminal, and all information and communication devices, multimedia terminals, and wired terminals. , may be a variety of terminals, such as a fixed terminal and IP (Internet Protocol) terminal. In addition, each of the terminal devices 120-1 to 120-N includes a mobile phone, a Portable Multimedia Played (PMP), a Mobile Internet Device (MID), a smart phone, a desktop, a tablet PC, It may be a mobile terminal having various mobile communication specifications, such as a notebook (notebook), a netbook (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 number and character information, and are input in relation to setting various functions and controlling functions of the terminal devices 120-1 to 120-N. A signal may be transmitted to the control unit through the input unit. In addition, the input unit 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 one 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 at the same time. In addition, as input units of the terminal devices 120-1 to 120-N, all types of input means that may be developed in the future may be used in addition to input devices such as a keyboard, a keypad, a mouse, and a joystick. In particular, the input unit of the terminal devices 120-1 to 120-N according to the present invention can 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 unit of the terminal devices 120-1 to 120-N may display information about a series of operation states and operation results that occur while the functions of the terminal devices 120-1 to 120-N are performed. Also, the display unit of the terminal devices 120-1 to 120-N may display menus of the terminal devices 120-1 to 120-N, user data input by the user, and the like. Here, the display unit of the terminal devices 120-1 to 120-N includes a liquid crystal display (LCD), an ultra-thin liquid crystal display (TFT-LCD, Thin Film Transistor LCD), and a light emitting diode (LED, Light Emitting Diode). ), organic light emitting diodes (OLED, Organic LED), active organic light emitting diodes (AMOLED, Active Matrix OLED), retina display, flexible display, and three-dimensional display. can In this case, 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 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 unit of the terminal devices 120-1 to 120-N according to the present invention may display information related to execution of content provided based on cloud computing on a 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, and includes a main memory device and an auxiliary memory device, and is used for the functional operation of the terminal devices 120-1 to 120-N. You can store 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 each function is activated in response to a user's request, the terminal devices 120-1 to 120-N execute corresponding application programs 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 includes 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 unit 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 on the content, and content usage information according to the content execution may be stored. In addition, 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 unit of the terminal devices 120-1 to 120-N may perform a function for transmitting and receiving data through the cloud streaming server 110 and the network 130 . Here, the communication unit of the terminal devices 120-1 to 120-N may include an RF transmitting means for up-converting and amplifying the frequency of the transmitted signal, and an RF receiving means for low-noise amplifying the 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. In addition, the wireless communication module is a configuration 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 by 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 connect to the network 130 through a wire and transmit/receive data to/from the cloud streaming server 110 . That is, the terminal devices 120-1 to 120-N may connect to the network 130 using a wireless communication module or a wired communication module, and may transmit/receive data to and from 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 required to upload or download 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 a process device for driving an operating system (OS, Operation System) and each configuration. 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 overall process of executing the service application according to the user's request, and simultaneously with the execution of the cloud It is possible to control so that a service use request is transmitted to the streaming server 110, and at this time, it is possible to control so that information of the terminal devices 120-1 to 120-N required for user authentication is transmitted together.

또한, 단말 장치(120-1~ 120-N)의 제어부는 사용자의 요청에 따라 단말 장치(120-1~ 120-N)의 저장부에 저장된 특정 컨텐츠를 실행할 수 있다. 이때, 제어부는 컨텐츠 실행에 따른 컨텐츠 사용 이력을 컨텐츠 사용 정보로 저장할 수 있다.Also, the controller of the terminal devices 120-1 to 120-N may execute specific content stored in the storage unit of the terminal devices 120-1 to 120-N according to a user's request. In this case, the controller may store the content use history according to the 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 collects 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, together in the cloud. It can be uploaded by sending it to the streaming server 110 . Thereafter, the control unit may delete the uploaded content transmitted 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 Thus, the 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 ~ 120-N) to access the cloud streaming server 110 to download the content from the other terminal devices (120-1 ~ 120-N) and then control to be stored in the storage unit. Also, when executing content 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 is a concept that provides a path for transferring data between the cloud streaming server 110 and the terminal devices 120-1 to 120-N, and encompasses both existing networks and networks that can be developed in the future. am. For example, the network 130 may include 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 devices and between the mobile body and the outside of the mobile device, and communication between the earth station and the earth station using satellites. It may be a satellite communication network that provides Meanwhile, the transmission method standard of the network 130 is not limited to the existing transmission method standard, 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.

이와 같은 클라우드 스트리밍 서비스 시스템을 통해 클라우드 스트리밍 서비스를 제공함으로써, 클라우드 스트리밍 서버(110)는 변화된 이미지의 화질에 따라 서비스 시 부하량을 감소시킬 수 있고, 단말 장치(120-1~ 120-N)에서도 이미지를 렌더링할 때 부하가 감소하여 보다 빠르게 서비스를 제공받을 수 있다. 또한, 단말 장치(120-1~ 120-N)의 성능에 큰 영향을 받지 않고 서비스를 제공받을 수 있다.By providing a cloud streaming service through such a cloud streaming service system, the cloud streaming server 110 can reduce the load during service according to the changed image quality, and also the image in the terminal devices 120-1 to 120-N. When rendering, the load is reduced, and the service can be provided more quickly. In addition, the service may be provided without being greatly affected by the performance of the terminal devices 120-1 to 120-N.

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

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

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

이 때, 단말이 요청한 클라우드 스트리밍 서비스에 대해서 클라우드 스트리밍 서버로부터 어플리케이션 실행화면을 수신할 수 있다. At this time, it is possible to receive the application execution screen from the cloud streaming server for the cloud streaming service requested by the terminal.

캡쳐부(220)는 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐한다.The capture unit 220 captures the changed image by comparing frames corresponding to the application execution screen received according to the user's request.

비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡쳐하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이미지 기반의 클라우드 스트리밍 기법과 같이 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡쳐하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.The video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the frame-to-frame change is not large on the screen where the application is running, still image encoding is performed by capturing only the changed area of the frame compared to the previous frame, as in the image-based cloud streaming technique, and displayed on the user's terminal device. The display can be displayed in such a way that the parts except the change area are shown the same and only the change area is changed.

이 때, 프레임들 중 현재 프레임과 이전 프레임을 비교하여 변화된 이미지를 캡쳐할 수 있다. 예를 들어, 현재 프레임과 이전 프레임을 비교하였을 때 현재 프레임이 이전 프레임과 비교하여 변화가 있다면, 현재 프레임의 화면 영역 중 변화된 영역을 변화된 이미지로 캡쳐할 수 있다. 또한, 캡쳐되는 변화된 이미지는 사용자의 단말에서 입력되는 입력신호에 따라 그 사이즈나 성질이 다양할 수 있다.In this case, the changed image may be captured by comparing the current frame with the previous frame among the frames. For example, if the current frame is changed compared to the previous frame when the current frame and the previous frame are compared, the changed area of the screen area of the current frame may be captured as a changed image. Also, the captured changed image may have various sizes or properties according to an input signal input from the user's terminal.

또한, 프레임들 중 프레임간의 변화가 적은 구간들을 검출하고, 프레임간의 변화가 적은 구간에서 변화된 이미지를 캡쳐할 수 있다. 예를 들어, 프레임간의 변화가 많은 구간은 캡쳐할 이미지의 수가 많아 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 비효율적일 수 있다. 따라서, 이와 같이 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 기법을 통해 서비스를 수행하고, 프레임간 변화가 적은 구간에서만 이미지 기반의 클라우드 스트리밍 서비스를 수행하기 위해 변화된 이미지를 캡쳐할 수 있다.Also, it is possible to detect sections in which the changes between frames are small among the frames, and capture the changed images in the sections in which the changes between frames are small. For example, it may be inefficient to provide an image-based cloud streaming service because the number of images to be captured is large in a section where there is a lot of change between frames. Accordingly, in such a section with many changes, a service is performed through a video codec-based cloud streaming technique, and a changed image can be captured in order to perform an image-based cloud streaming service only in a section with little change between frames.

인코딩부(230)는 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩한다.The encoding unit 230 simultaneously encodes the changed image in two encoding methods corresponding to high and low quality, respectively, as a still image.

클라우드 스트리밍 서버(110)에서 이미지 기반의 클라우드 스트리밍 서비스를 위해 이미지를 인코딩 할 때에는, 인코딩 시 클라우드 스트리밍 서버(110)에서 발생하는 부하량이나 이미지의 화질 또는 인코딩된 이미지를 수신하여 렌더링하는 단말의 성능 등을 고려하여 인코딩 방식을 결정할 수 있다. When encoding an image for an image-based cloud streaming service in the cloud streaming server 110, the amount of load generated in the cloud streaming server 110 during encoding, the quality of the image, or the performance of a terminal that receives and renders the encoded image, etc. An encoding method may be determined in consideration of

이 때, 이미지의 투명효과를 적용하기 위해서 PNG 포맷을 사용할 수 있는데, PNG 포맷에 상응하는 인코딩 방식은 PNG32bit, 팔렛트 PNG 및 lossyPNG를 포함하여 다양하게 사용될 수 있다.In this case, the PNG format can be used to apply the transparency effect of the image, and the encoding method corresponding to the PNG format can be variously used, including PNG32bit, palette PNG, and lossyPNG.

PNG32bit 인코딩 방식은 스틸 이미지 인코딩 시 이미지의 화질은 좋지만, 이미지의 데이터 크기가 커서 인코딩 시 클라우드 스트리밍 서버(110)의 부하를 크게 발생시킬 수 있다. 또한, 데이터가 크기 때문에 전송망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수도 있다.In the PNG32bit encoding method, the image quality is good when encoding still images, but the data size of the image is large, which may cause a large load on the cloud streaming server 110 during encoding. Also, since the data is large, when the bandwidth of the transmission network is low, the transmission speed may be lowered.

팔렛트 PNG 인코딩 방식은 Indexed PNG 인코딩 방식 또는 PNG8bit 인코딩 방식으로도 불리는 인코딩 방식으로, 소수 컬러의 인덱스를 만들고 각 픽셀을 인덱스에 포함된 컬러로 치환하여 사용하기 때문에 스틸 이미지 인코딩 시 이미지의 데이터 크기가 줄어들 수 있다. 따라서, 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 gradation 효과가 포함된 이미지처럼 컬러 수가 많은 경우 화질에 열화를 가져올 수 있다.Palette PNG encoding method is an encoding method also called Indexed PNG encoding method or PNG8bit encoding method. Since it creates an index of a few colors and uses each pixel by replacing the color included in the index, the data size of the image is reduced when encoding still images. can Therefore, although transmission speed can be guaranteed, since colors are expressed in 8-bit, image quality may deteriorate when the number of colors is large, such as an image with gradation effect.

lossy PNG 인코딩 방식은 스틸 이미지 인코딩 시 화질 저하 수준을 설정하여 스틸 이미지 인코딩을 수행함으로써, 일정수준 화질은 저하되지만 그만큼 이미지의 데이터 크기도 감소시킬 수 있다. Lossy PNG 인코딩 방식은 화질과 데이터 크기에 있어서 PNG32bit 인코딩 방식과 팔렛트 PNG 인코딩 방식의 중간 수준으로 생각할 수 있다.The lossy PNG encoding method performs still image encoding by setting the image quality degradation level when encoding still images. The Lossy PNG encoding method can be considered an intermediate level between the PNG32-bit encoding method and the Palette PNG encoding method in terms of quality and data size.

이 때, 고화질에 상응하는 lossyPNG 인코딩 방식과 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다. 예를 들어, 기본적으로 클라우드 스트리밍 서비스의 속도를 향상시키기 위해서 팔렛트 PNG 인코딩 방식으로 변화된 이미지를 스틸 이미지 인코딩할 수 있다. 그러나 변화된 이미지가 고화질의 이미지일 경우에는 팔렛트 PNG 인코딩 방식으로 스틸 이미지 인코딩된 변화된 이미지의 화질이 심하게 저하될 수 있다. In this case, it is possible to simultaneously encode still images using the lossyPNG encoding method corresponding to high quality and the palette PNG encoding method corresponding to low quality. For example, in order to basically improve the speed of a cloud streaming service, an image that has been changed to a palette PNG encoding method may be encoded as a still image. However, when the changed image is a high-quality image, the image quality of the still image-encoded image using the palette PNG encoding method may be severely degraded.

따라서, 팔렛트 PNG와 동시에 적정한 수준의 화질을 보장할 수 있는 lossyPNG 인코딩 방식으로도 스틸 이미지 인코딩을 동시에 수행할 수 있다.Therefore, still image encoding can be performed simultaneously with the palette PNG and lossyPNG encoding method that can guarantee an appropriate level of image quality.

이 때, 고화질에 상응하는 인코딩 방식은 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나에 상응할 수 있다. 예를 들어, 클라우드 스트리밍 서버(110)의 성능이나 단말의 성능 또는 현재 클라우드 스트리밍 서버(110)에 접속한 사용자의 수에 따라 고화질의 이미지를 PNG32bit 인코딩 방식으로 스틸 이미지 인코딩하여 스트리밍하여도 서비스 지연이 발생하지 않을 수 있다. 따라서, 고화질의 이미지를 스틸 이미지 인코딩할 때에는 여러 환경정보에 따라 lossyPNG 또는 PNG32bit 인코딩 방식을 적절히 이용하여 스틸 이미지 인코딩을 수행할 수 있다.In this case, the encoding method corresponding to the high quality may correspond to any one of the lossyPNG encoding method and the PNG32bit encoding method. For example, depending on the performance of the cloud streaming server 110, the performance of the terminal, or the number of users currently connected to the cloud streaming server 110, the service delay is reduced even if the high-definition image is encoded with the PNG32bit encoding method and streamed. may not occur. Therefore, when encoding a still image of a high-quality image, it is possible to perform still image encoding by appropriately using a lossyPNG or PNG32bit encoding method according to various environmental information.

인코딩 제어부(240)는 스틸 이미지 인코딩을 수행함과 동시에 변화된 이미지의 컬러 수를 체크하고, 컬러 수에 기반하여 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단한다. 예를 들어, 변화된 이미지가 고화질의 이미지인지 저화질의 이미지인지 판단하기 위한 방법으로 변화된 이미지의 컬러 수를 체크할 수 있다. 컬러 수는 이미지를 구성하는 픽셀들이 가지는 컬러의 개수로, 고화질의 이미지는 많은 컬러 수에 상응하는 픽셀들로 구성될 수 있고, 저화질의 이미지는 고화질보다는 낮은 컬러 수에 상응하는 픽셀들로 구성될 수 있다.The encoding control unit 240 checks the number of colors of the image changed while encoding the still image, and determines whether encoding of the still image corresponding to the high quality is stopped based on the number of colors. For example, as a method for determining whether the changed image is a high-quality image or a low-quality image, the number of colors of the changed image may be checked. The number of colors is the number of colors that pixels constituting an image have. A high-quality image may be composed of pixels corresponding to a large number of colors, and a low-quality image may be composed of pixels corresponding to a lower number of colors than high-quality images. can

따라서, 컬러 수에 따라 체크한 변화된 이미지가 저화질 이미지라면 고화질에 상응하는 스틸 이미지 인코딩을 수행하는 것은 불필요하게 클라우드 스트리밍 서버(110)의 리소스를 낭비하는 것일 수 있다. 그러므로 변화된 이미지의 컬러 수에 따라 변화된 이미지가 고화질 이미지인지 저화질 이미지인지 확인하고, 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단할 수 있다.Therefore, if the changed image checked according to the number of colors is a low-quality image, performing still image encoding corresponding to a high-quality image may be unnecessarily wasting resources of the cloud streaming server 110 . Therefore, it is possible to determine whether the changed image is a high-quality image or a low-quality image according to the number of colors of the changed image, and whether to stop encoding a still image corresponding to the high-quality image.

이 때, 컬러 수가 기설정된 기준 컬러 수 이하인 경우, 고화질 인코딩 중단 메시지를 이용하여 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다. 즉, 변화된 이미지가 컬러 수가 적은 저화질의 이미지이므로 저화질에 상응하는 스틸 이미지 인코딩을 수행하여 스트리밍 하여도 변화된 이미지의 화질 저하가 없거나 저하되는 정도가 크지 않을 수 있다. In this case, when the number of colors is less than or equal to the preset reference number of colors, encoding of still images corresponding to high quality may be stopped using a high quality encoding stop message. That is, since the changed image is a low-quality image with a small number of colors, there may be no deterioration in the image quality of the changed image or the degree of deterioration may not be large even if the still image encoding corresponding to the low-quality image is encoded and streamed.

따라서, 불필요하게 수행되고 있는 고화질의 스틸 이미지 인코딩을 중단시키기 위해, 고화질 인코딩 중단 메시지를 생성하여 인코딩부(230)로 전달함으로써 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다.Accordingly, in order to stop unnecessarily performing high-definition still image encoding, by generating a high-definition encoding stop message and transmitting it to the encoding unit 230 , encoding of the still image corresponding to the high-definition may be stopped.

또한, 컬러 수가 기설정된 기준 컬러 수를 초과하는 경우, 저화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수도 있다. 그러나, 저화질에 상응하는 스틸 이미지 인코딩을 수행할 때에는 클라우드 스트리밍 서버(110)의 부하가 크게 발생하지 않기 때문에 중단시키지 않고 다음 과정을 진행할 수도 있다.In addition, when the number of colors exceeds a preset reference number of colors, encoding of still images corresponding to low quality may be stopped. However, since the load of the cloud streaming server 110 does not occur significantly when performing still image encoding corresponding to low quality, the following process may be performed without stopping.

센딩부(250)는 사용자의 단말에서 어플리케이션 실행화면을 디스플레이 하기 위해 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.The sending unit 250 performs an image-based cloud streaming service by transmitting a still image-encoded image of either high or low quality to the terminal in order to display an application execution screen on the user's terminal.

사용자의 단말은 클라우드 스트리밍 서버(110)로부터 전송된 어플리케이션 실행화면을 렌더링하고, 렌더링된 어플리케이션 실행화면을 사용자가 볼 수 있도록 디스플레이 함으로써 클라우드 스트리밍 서비스를 제공할 수 있다. The user's terminal may provide a cloud streaming service by rendering the application execution screen transmitted from the cloud streaming server 110 and displaying the rendered application execution screen so that the user can see it.

따라서, 본 발명의 일실시예에 따른 이미지 기반의 클라우드 스트리밍 서비스를 제공하기 위해 클라우드 스트리밍 서버(110)는 고화질이나 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다.Therefore, in order to provide an image-based cloud streaming service according to an embodiment of the present invention, the cloud streaming server 110 may transmit a still image-encoded image of high or low quality to the terminal.

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않고 수행된 경우에 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다. 예를 들어, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수를 초과하였다는 것을 의미할 수 있다. 즉, 변화된 이미지가 고화질의 이미지라는 의미로 해석될 수 있기 때문에, 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송해줄 수 있다. In this case, when encoding of the still image corresponding to the high quality is performed without interruption, the changed image encoded with the high quality still image may be transmitted to the terminal. For example, if encoding of a still image corresponding to high quality is not stopped, it may mean that the number of colors in the changed image exceeds a preset reference number of colors. That is, since the changed image can be interpreted as a high-quality image, it is possible to transmit the changed image encoded with a high-quality still image to the terminal.

또한, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았더라도, 고화질로 스틸 이미지 인코딩된 변화된 이미지와 함께 저화질로 스틸 이미지 인코딩된 변화된 이미지도 함께 존재할 수 있다. 이 때, 저화질로 스틸 이미지 인코딩된 변화된 이미지는 삭제되거나, 또는 해당 하는 변화된 이미지가 사용자에게 요청되는 빈도에 따라 클라우드 스트리밍 서버(110)의 캐시 메모리에 저장될 수도 있다.Also, even if the still image encoding corresponding to the high quality has not been stopped, the changed image encoded with the still image with the low quality may exist together with the changed image encoded with the still image with the high quality. At this time, the low-quality still image-encoded changed image may be deleted or stored in the cache memory of the cloud streaming server 110 according to the frequency at which the changed image is requested by the user.

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단된 경우, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다. 예를 들어, 고화질에 상응하는 스틸 이미지 인코딩이 중단되었다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수 이하라는 것을 의미할 수 있다. 즉, 변화된 이미지가 저화질의 이미지라는 의미로 해석될 수 있기 때문에, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송해줄 수 있다. At this time, when encoding of the still image corresponding to the high quality is stopped, the changed image encoded with the still image in the low quality may be transmitted to the terminal. For example, if encoding of a still image corresponding to high quality is stopped, it may mean that the number of colors in the changed image is less than or equal to a preset reference number of colors. That is, since the changed image can be interpreted as a low-quality image, it is possible to transmit a changed image encoded with a low-quality still image to the terminal.

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

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

또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 사용자 요청에 따라 수신된 어플리케이션 실행화면의 프레임들을 비교하여 변화가 많은 부분에서는 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행하고, 변화가 적은 부분에서는 이미지 캡쳐를 통해 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.In addition, the cloud streaming server 110 configured as described above compares the frames of the application execution screen received according to the user's request and performs a video codec-based cloud streaming service in a part with a lot of change, and in a part with a small change Image-based cloud streaming service can be performed through image capture.

또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(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 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 embodiment, 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.

도 3은 본 발명에 따른 이미지 기반의 클라우드 스트리밍 서비스 과정을 나타낸 도면이다.3 is a diagram illustrating an image-based cloud streaming service process according to the present invention.

도 3을 참조하면, 이미지 기반의 클라우드 스트리밍 서비스는 먼저 단말 영역(315)에서 사용자로부터의 입력이 수행되고, 사용자 입력은 어플리케이션 서버 영역(305)으로 전달될 수 있다.Referring to FIG. 3 , in the image-based cloud streaming service, input from the user is first performed in the terminal area 315 , and the user input may be transmitted to the application server area 305 .

어플리케이션 서버 영역(305)에서는 사용자의 입력에 따라 어플리케이션을 실행시킬 수 있다. 이 후, 어플리케이션 서버 영역(305)에서는 사용자에게 어플리케이션 실행결과를 제공하기 위해 실행시킨 어플리케이션의 실행화면을 클라우드 스트리밍 서버 영역(300)으로 전송할 수 있다.In the application server area 305, an application may be executed according to a user input. Thereafter, the application server area 305 may transmit the execution screen of the application executed to provide the user with the application execution result to the cloud streaming server area 300 .

클라우드 스트리밍 서버 영역(300)에서는 수신된 어플리케이션 실행화면에서 변화된 이미지를 캡쳐하고, 변화된 이미지를 저화질의 팔렛트 PNG 인코딩 방식과 고화질의 lossyPNG 인코딩 방식으로 스틸 이미지 인코딩을 수행할 수 있다. In the cloud streaming server area 300, it is possible to capture a changed image on the received application execution screen, and perform still image encoding on the changed image using a low-quality palette PNG encoding method and a high-quality lossyPNG encoding method.

이 때, 클라우드 스트리밍 서버 영역(300)에서는 두 가지 방식의 스틸 이미지 인코딩 수행과 동시에 변화된 이미지의 컬러 수를 체크하고, 컬러 수에 기반하여 고화질의 lossyPNG 인코딩 방식에 상응하는 스틸 이미지 인코딩 중단여부를 결정할 수 있다. 즉, 변화된 이미지의 컬러 수를 체크한 결과 변화된 이미지가 기설정된 기준 컬러 수를 초과하는 컬러 수를 갖는 고화질의 이미지라면, lossyPNG 인코딩 방식에 상응하는 스틸 이미지 인코딩을 중단하지 않고 계속 수행할 수 있다. 그러나 변화된 이미지가 기설정된 기준 컬러 수 이하의 컬러 수를 갖는 저화질의 이미지라면, 팔렛트 PNG 인코딩 방식에 상응하는 스틸 이미지 인코딩만으로도 서비스를 수행할 수 있기 때문에 lossyPNG 인코딩 방식에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다. At this time, the cloud streaming server area 300 checks the number of colors of the image changed at the same time as performing the still image encoding of the two methods, and determines whether to stop encoding the still image corresponding to the high-quality lossyPNG encoding method based on the number of colors can That is, as a result of checking the number of colors in the changed image, if the changed image is a high-quality image having a number of colors exceeding the preset reference color number, encoding of still images corresponding to the lossyPNG encoding method can be continued without stopping. However, if the changed image is a low-quality image with a number of colors less than or equal to the preset reference number of colors, the still image encoding corresponding to the lossyPNG encoding method can be stopped because the service can be performed only by encoding the still image corresponding to the palette PNG encoding method. can

이와 같이 변화된 이미지의 화질에 따라 lossyPNG 인코딩 방식에 상응하는 스틸 이미지 인코딩을 중단시키는 프로세스를 포함함으로써 불필요하게 발생할 수 있는 클라우드 스트리밍 서버 영역(300)에서의 부하를 감소시킬 수 있다.By including a process of stopping still image encoding corresponding to the lossyPNG encoding method according to the changed image quality in this way, it is possible to reduce the load in the cloud streaming server area 300 that may be unnecessary.

이 후, 클라우드 스트리밍 서버 영역(300)에서는 스틸 이미지 인코딩된 변화된 이미지를 단말에게 스트리밍하여 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다. 이 때, 스트리밍을 수행할 스틸 이미지 인코딩된 변화된 이미지는 인코더단에서 lossyPNG 인코딩 방식의 스틸 이미지 인코딩이 중지되었는지 여부를 확인하여 결정할 수 있다. Thereafter, the cloud streaming server area 300 may provide an image-based cloud streaming service by streaming the still image-encoded changed image to the terminal. At this time, the still image-encoded changed image to be streamed may be determined by checking whether the still image encoding of the lossyPNG encoding method is stopped at the encoder end.

예를 들어, 인코더단에서 lossyPNG 인코딩 방식의 스틸 이미지 인코딩이 중단되었다면, 변화된 이미지가 저화질의 이미지라고 인식하고 팔렛트 PNG 인코딩 방식으로 스틸 이미지 인코딩된 변화된 이미지를 스트리밍할 수 있다. 또한, 인코더단에서 lossyPNG 인코딩 방식의 스틸 이미지 인코딩이 중단되지 않았다면, 변화된 이미지가 고화질의 이미지라고 인식하고 lossyPNG 인코딩 방식으로 스틸 이미지 인코딩된 변화된 이미지를 스트리밍할 수 있다. 만약, 인코더단에서 lossyPNG 인코딩 방식의 스틸 이미지 인코딩이 중단되지 않았는데 lossyPNG 인코딩 방식으로 스틸 이미지 인코딩된 변화된 이미지가 존재하지 않는다면, 클라우드 스트리밍 서버에서 오류가 발생한 것으로 판단하고 해당하는 변화된 이미지의 인코딩을 다시 수행할 수도 있다.For example, if the encoding of the lossyPNG encoding method is stopped at the encoder end, the changed image may be recognized as a low-quality image and the still image encoded by the palette PNG encoding method may be streamed. In addition, if the encoding of the still image of the lossyPNG encoding method is not stopped at the encoder stage, the changed image can be recognized as a high-quality image and the changed image encoded with the lossyPNG encoding method can be streamed. If, at the encoder stage, still image encoding of the lossyPNG encoding method is not stopped, but there is no changed image encoded with the lossyPNG encoding method, it is determined that an error has occurred in the cloud streaming server and encoding of the corresponding changed image is performed again You may.

이 후, 단말 영역(315)에서는 클라우드 스트리밍 서버 영역(300)에서 전송된 스틸 이미지 인코딩된 변화된 이미지를 렌더링하여 사용자에게 디스플레이 할 수 있다.Thereafter, in the terminal area 315 , the still image-encoded changed image transmitted from the cloud streaming server area 300 may be rendered and displayed to the user.

이 때, 어플리케이션 실행화면에서 정적으로 변화된 부분의 이미지만을 렌더링하여 디스플레이 하기 때문에 사용자 단말의 성능이 좋지 않더라도 렌더링으로 인한 지연 없이 원활하게 서비스를 제공받을 수 있다.At this time, since only the image of the statically changed part of the application execution screen is rendered and displayed, even if the performance of the user terminal is poor, the service can be smoothly provided without delay due to rendering.

도 4는 본 발명에 따라 프레임을 비교하여 캡쳐될 이미지를 검출하는 과정을 나타낸 도면이다.4 is a diagram illustrating a process of detecting an image to be captured by comparing frames according to the present invention.

도 4를 참조하면, 본 발명에 따라 프레임을 비교하여 캡쳐될 이미지를 검출하는 과정은 먼저 사용자 요청에 따른 어플리케이션 실행화면에서 화면의 변화가 적은 부분의 프레임들을 획득할 수 있다. Referring to FIG. 4 , in the process of detecting an image to be captured by comparing frames according to the present invention, frames of a portion of an application execution screen in response to a user request with little change in screen may be acquired first.

이 때, 화면의 변화가 많은 부분에 대해서는 비디오 코덱 기반의 클라우드 스트리밍 서비스를 통해 사용자에게 어플리케이션 실행화면을 제공하는 것이 더 효율적일 수 있다. In this case, it may be more efficient to provide an application execution screen to the user through a video codec-based cloud streaming service for a portion with a large number of screen changes.

이 후, 변화가 적은 부분의 프레임들 중 현재 프레임(420)과 이전 프레임(410)을 비교할 수 있다. 예를 들어, 도 4에 나타낸 현재 프레임(420)과 이전 프레임(410)을 비교하면 두 프레임의 A 영역에 대해서는 변화가 없으나, 이전 프레임(410)의 B 영역이 현재 프레임(420)에서는 B`로 변환한 것을 확인할 수 있다. Thereafter, the current frame 420 and the previous frame 410 may be compared among the frames of the small change portion. For example, if the current frame 420 and the previous frame 410 shown in FIG. 4 are compared, there is no change in the A region of the two frames, but the B region of the previous frame 410 is B` in the current frame 420 . You can see that it has been converted to .

따라서, 클라우드 스트리밍 서버에서는 이와 같은 변화를 확인하고, 변화된 B` 영역을 변화된 영역(430)으로 캡쳐할 수 있다. 즉, 클라우드 스트리밍 서버의 캡쳐단에서 변화된 영역(430)에 상응하는 이미지를 캡쳐할 수 있다. Therefore, in the cloud streaming server, such a change can be confirmed, and the changed area B` can be captured as the changed area 430 . That is, it is possible to capture an image corresponding to the changed area 430 in the capture end of the cloud streaming server.

또한, 현재 프레임(420)과 이전 프레임(410)을 비교하였을 때, 변화된 영역(430)과 같이 변화된 부분이 여러 영역 확인되는 경우에는, 변화된 여러 영역을 모두 포함하는 하나의 영역을 변화된 영역(430)으로 인식하고 캡쳐할 수 있다. 또한, 변화된 여러 영역을 모두 각각 변화된 영역(430)으로 인식하고 복수 개의 변화된 영역(430)을 캡쳐하여 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수도 있다.In addition, when comparing the current frame 420 with the previous frame 410 , when multiple regions are identified, such as the changed region 430 , one region including all the changed regions is included in the changed region 430 . ) can be recognized and captured. In addition, it is also possible to perform an image-based cloud streaming service by recognizing all the changed regions as the changed regions 430 , and capturing the plurality of changed regions 430 .

도 5는 PNG32bit 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식을 나타낸 도면이다.5 is a diagram illustrating a method of including color information in a pixel according to a PNG32-bit method.

도 5를 참조하면, PNG32bit 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식은 픽셀(510)에 각각 R(Red), G(Green), B(Blue)에 해당하는 컬러를 1Byte씩의 데이터로 포함할 수 있다. 따라서, 하나의 픽셀(510)은 3Byte의 데이터 크기를 갖고, 전체 이미지는 이미지가 포함하는 픽셀의 수에 3Byte의 값을 곱한 만큼의 데이터 크기를 가질 수 있다. Referring to FIG. 5 , in the method of including color information in a pixel according to the PNG32-bit method, each color corresponding to R (Red), G (Green), and B (Blue) is included in the pixel 510 as 1 byte data. can do. Accordingly, one pixel 510 may have a data size of 3 bytes, and the entire image may have a data size equal to the number of pixels included in the image multiplied by a value of 3 bytes.

이 때, PNG32bit의 방식의 경우에는 하나의 픽셀당 32bit의 데이터 크기, 즉 4Byte의 데이터 크기를 가질 수 있다. 이 때, 4Byte 중 3Byte는 상기에서 설명한 것과 같은 RGB 컬러의 데이터이고, 나머지 1Byte는 투명효과를 위한 투명 정보를 나타내기 위한 데이터일 수 있다. In this case, in the case of the PNG32-bit method, each pixel may have a data size of 32 bits, that is, a data size of 4 bytes. In this case, 3 bytes among 4 bytes may be data of RGB color as described above, and the remaining 1 byte may be data for representing transparent information for a transparent effect.

도 6은 팔렛트 PNG 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식을 나타낸 도면이다.6 is a diagram illustrating a method of including color information in a pixel according to the palette PNG method.

도 6을 참조하면, 팔렛트 PNG 방식에 따라 픽셀에서 컬러 정보를 포함하는 방식은 픽셀(610)에 각각 컬러 인덱스의 해당하는 정보를 1Byte씩의 데이터로 포함할 수 있다. 따라서, 하나의 픽셀(610)은 1Byte의 데이터 크기를 갖고, 전체 이미지는 이미지가 포함하는 픽셀의 수에 1Byte의 값을 곱한 만큼의 데이터 크기를 가질 수 있다.Referring to FIG. 6 , in a method of including color information in a pixel according to the palette PNG method, information corresponding to a color index may be included in each pixel 610 as 1 byte data. Accordingly, one pixel 610 may have a data size of 1 Byte, and the entire image may have a data size equal to the number of pixels included in the image multiplied by a value of 1 Byte.

팔렛트 PNG 방식이 PNG8bit 방식이나 Indexed PNG 방식으로 불리는 이유도 하나의 픽셀(610)의 데이터 크기가 8bit에 해당하는 1Byte이면서, 컬러 인덱스를 통해 컬러 값을 나타내기 때문일 수 있다.The reason why the palette PNG method is called the PNG8-bit method or the Indexed PNG method may be because the data size of one pixel 610 is 1 byte corresponding to 8 bits, and a color value is expressed through a color index.

따라서, 클라우드 스트리밍 서비스를 수행할 때, 클라우드 스트리밍 서버에서 이미지를 팔렛트 PNG 방식으로 인코딩하는 경우, 도 5에 나타낸 PNG32bit 방식으로 인코딩하는 것보다 데이터의 크기를 4분의 1로 감소시킬 수 있다. 그러나, 팔렛트 PNG 방식의 픽셀(610)이 나타낼 수 있는 컬러의 개수가 1Byte로 한정되기 때문에 이미지의 화질은 저하될 수 있다. Therefore, when performing a cloud streaming service, when the cloud streaming server encodes the image in the palette PNG method, the size of the data can be reduced to a quarter of that of encoding in the PNG32bit method shown in FIG. 5 . However, since the number of colors that the pixel 610 of the palette PNG method can represent is limited to 1 byte, the image quality may deteriorate.

도 7은 팔렛트 PNG 방식에서 생성하는 컬러 인덱스의 일예를 나타낸 도면이다.7 is a diagram illustrating an example of a color index generated in the palette PNG method.

도 7을 참조하면, 팔렛트 PNG 방식에서 생성되는 컬러 인덱스(710)는 팔렛트 PNG 방식의 픽셀이 1Byte의 데이터 크기를 갖기 때문에 8bit, 즉 2의 8제곱에 해당하는 값인 256개의 컬러 정보를 포함할 수 있다. Referring to FIG. 7 , the color index 710 generated in the palette PNG method includes 8 bits, that is, 256 color information, which is a value corresponding to the power of 2 to the 8th power, because a pixel of the palette PNG method has a data size of 1 Byte. there is.

도 7을 예로 들면, 팔레트 번호 0번에 해당하는 컬러는 RGB 색상코드에서 Red '0', Green '0', Blue'0'의 값을 갖는 컬러일 수 있다. 또한, 팔레트 번호 1번에 해당하는 컬러와 팔레트 번호 2번에 해당하는 컬러는 각각 RGB 색상코드에서 Red '127', Green '127', Blue'127'의 값을 갖는 컬러와 Red '255', Green '255', Blue'255'의 값을 갖는 컬러일 수 있다.Referring to FIG. 7 as an example, the color corresponding to palette number 0 may be a color having values of Red '0', Green '0', and Blue'0' in the RGB color code. In addition, the color corresponding to palette number 1 and the color corresponding to palette number 2 are colors having the values of Red '127', Green '127', and Blue'127' in the RGB color code, Red '255', Green may be a color having a value of '255' and Blue'255'.

이와 같이 RGB 색상코드의 값을 이용하여 총 256개의 컬러로 구성되는 컬러 인덱스(710)는 어플리케이션 실행화면의 프레임들을 비교하여 캡쳐된 변화된 이미지를 구성하는 컬러들을 기반으로 구성될 수 있다. 예를 들어, 변화된 이미지를 구성하는 컬러가 파란색 계열이라면, 컬러 인덱스(710)에도 파란색 계열의 컬러가 많이 포함될 수 있다. As described above, the color index 710 composed of a total of 256 colors using the RGB color code value may be configured based on the colors constituting the changed image captured by comparing the frames of the application execution screen. For example, if the color constituting the changed image is a blue series, many colors of the blue series may be included in the color index 710 as well.

이와 같이 변화된 이미지를 구성하는 컬러를 고려하여 컬러 인덱스(710)를 구성함으로써 변화된 이미지의 화질 저하가 최소가 되도록 할 수 있다.By configuring the color index 710 in consideration of the colors constituting the changed image as described above, deterioration in image quality of the changed image can be minimized.

도 8은 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다. 8 is an operation flowchart illustrating an image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐한다(S810).8, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention captures a changed image by comparing frames corresponding to the application execution screen received in response to a user request (S810).

비디오 코덱 기반의 클라우드 스트리밍 기법은 어플리케이션이 동작하는 화면에 상응하는 모든 프레임을 캡쳐하여 인코딩을 수행할 수 있다. 그러나 어플리케이션이 동작하는 화면 상에서 프레임간 변화가 크지 않은 경우에는 이미지 기반의 클라우드 스트리밍 기법과 같이 이전 프레임과 비교하여 변화된 프레임의 변화 영역만을 캡쳐하여 스틸 이미지 인코딩을 수행하고, 사용자의 단말 장치에 디스플레이 할 때 변화 영역을 제외한 부분은 동일하게 보여주고 변화 영역만 변화를 주는 방식으로 디스플레이 할 수 있다.The video codec-based cloud streaming technique can perform encoding by capturing all frames corresponding to the screen on which the application operates. However, if the frame-to-frame change is not large on the screen where the application is running, still image encoding is performed by capturing only the changed area of the frame compared to the previous frame, as in the image-based cloud streaming technique, and displayed on the user's terminal device. The display can be displayed in such a way that the parts except the change area are shown the same and only the change area is changed.

이 때, 프레임들 중 현재 프레임과 이전 프레임을 비교하여 변화된 이미지를 캡쳐할 수 있다. 예를 들어, 현재 프레임과 이전 프레임을 비교하였을 때 현재 프레임이 이전 프레임과 비교하여 변화가 있다면, 현재 프레임의 화면 영역 중 변화된 영역을 변화된 이미지로 캡쳐할 수 있다. 또한, 캡쳐되는 변화된 이미지는 사용자의 단말에서 입력되는 입력신호에 따라 그 사이즈나 성질이 다양할 수 있다.In this case, the changed image may be captured by comparing the current frame with the previous frame among the frames. For example, if the current frame is changed compared to the previous frame when the current frame and the previous frame are compared, the changed area of the screen area of the current frame may be captured as a changed image. Also, the captured changed image may have various sizes or properties according to an input signal input from the user's terminal.

또한, 프레임들 중 프레임간의 변화가 적은 구간들을 검출하고, 프레임간의 변화가 적은 구간에서 변화된 이미지를 캡쳐할 수 있다. 예를 들어, 프레임간의 변화가 많은 구간은 캡쳐할 이미지의 수가 많아 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 비효율적일 수 있다. 따라서, 이와 같이 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 기법을 통해 서비스를 수행하고, 프레임간 변화가 적은 구간에서만 이미지 기반의 클라우드 스트리밍 서비스를 수행하기 위해 변화된 이미지를 캡쳐할 수 있다.Also, it is possible to detect sections in which the changes between frames are small among the frames, and capture the changed images in the sections in which the changes between frames are small. For example, it may be inefficient to provide an image-based cloud streaming service because the number of images to be captured is large in a section where there is a lot of change between frames. Accordingly, in such a section with many changes, a service is performed through a video codec-based cloud streaming technique, and a changed image can be captured in order to perform an image-based cloud streaming service only in a section with little change between frames.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩한다(S820).In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention simultaneously encodes the changed image in two encoding methods corresponding to high and low quality, respectively (S820).

클라우드 스트리밍 서버에서 이미지 기반의 클라우드 스트리밍 서비스를 위해 이미지를 인코딩할 때에는, 인코딩 시 클라우드 스트리밍 서버에서 발생하는 부하량이나 이미지의 화질 또는 인코딩된 이미지를 수신하여 렌더링하는 단말의 성능 등을 고려하여 인코딩 방식을 결정할 수 있다. When encoding an image for an image-based cloud streaming service in a cloud streaming server, the encoding method is selected in consideration of the load generated by the cloud streaming server during encoding, the quality of the image, or the performance of the terminal that receives and renders the encoded image. can decide

이 때, 이미지의 투명효과를 적용하기 위해서 PNG 포맷을 사용할 수 있는데, PNG 포맷에 상응하는 인코딩 방식은 PNG32bit, 팔렛트 PNG 및 lossyPNG를 포함하여 다양하게 사용될 수 있다.In this case, the PNG format can be used to apply the transparency effect of the image, and the encoding method corresponding to the PNG format can be variously used, including PNG32bit, palette PNG, and lossyPNG.

PNG32bit 인코딩 방식은 스틸 이미지 인코딩 시 이미지의 화질은 좋지만, 이미지의 데이터 크기가 커서 인코딩 시 클라우드 스트리밍 서버의 부하를 크게 발생시킬 수 있다. 또한, 데이터가 크기 때문에 전송망의 대역폭이 낮은 경우에는 전송 속도가 저하될 수도 있다.The PNG32bit encoding method has good image quality when encoding a still image, but the data size of the image is large, which can cause a large load on the cloud streaming server during encoding. Also, since the data is large, when the bandwidth of the transmission network is low, the transmission speed may be lowered.

팔렛트 PNG 인코딩 방식은 Indexed PNG 인코딩 방식 또는 PNG8bit 인코딩 방식으로도 불리는 인코딩 방식으로, 소수 컬러의 인덱스를 만들고 각 픽셀을 인덱스에 포함된 컬러로 치환하여 사용하기 때문에 스틸 이미지 인코딩 시 이미지의 데이터 크기가 줄어들 수 있다. 따라서, 전송 속도는 보장할 수 있지만, 8비트로 색상을 표현하기 때문에 gradation 효과가 포함된 이미지처럼 컬러 수가 많은 경우 화질에 열화를 가져올 수 있다.Palette PNG encoding method is an encoding method also called Indexed PNG encoding method or PNG8bit encoding method. Since it creates an index of a few colors and uses each pixel by replacing the color included in the index, the data size of the image is reduced when encoding still images. can Therefore, although transmission speed can be guaranteed, since colors are expressed in 8-bit, image quality may deteriorate when the number of colors is large, such as an image with gradation effect.

lossy PNG 인코딩 방식은 스틸 이미지 인코딩 시 화질 저하 수준을 설정하여 스틸 이미지 인코딩을 수행함으로써, 일정수준 화질은 저하되지만 그만큼 이미지의 데이터 크기도 감소시킬 수 있다. Lossy PNG 인코딩 방식은 화질과 데이터 크기에 있어서 PNG32bit 인코딩 방식과 팔렛트 PNG 인코딩 방식의 중간 수준으로 생각할 수 있다.The lossy PNG encoding method performs still image encoding by setting the image quality degradation level when encoding still images. The Lossy PNG encoding method can be considered an intermediate level between the PNG32-bit encoding method and the Palette PNG encoding method in terms of quality and data size.

이 때, 고화질에 상응하는 lossyPNG 인코딩 방식과 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다. 예를 들어, 기본적으로 클라우드 스트리밍 서비스의 속도를 향상시키기 위해서 팔렛트 PNG 인코딩 방식으로 변화된 이미지를 스틸 이미지 인코딩할 수 있다. 그러나 변화된 이미지가 고화질의 이미지일 경우에는 팔렛트 PNG 인코딩 방식으로 스틸 이미지 인코딩된 변화된 이미지의 화질이 심하게 저하될 수 있다. In this case, it is possible to simultaneously encode still images using the lossyPNG encoding method corresponding to high quality and the palette PNG encoding method corresponding to low quality. For example, in order to basically improve the speed of a cloud streaming service, an image that has been changed to a palette PNG encoding method may be encoded as a still image. However, when the changed image is a high-quality image, the image quality of the still image-encoded image using the palette PNG encoding method may be severely degraded.

따라서, 팔렛트 PNG와 동시에 적정한 수준의 화질을 보장할 수 있는 lossyPNG 인코딩 방식으로도 스틸 이미지 인코딩을 동시에 수행할 수 있다.Therefore, still image encoding can be performed simultaneously with the palette PNG and lossyPNG encoding method that can guarantee an appropriate level of image quality.

이 때, 고화질에 상응하는 인코딩 방식은 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나에 상응할 수 있다. 예를 들어, 클라우드 스트리밍 서버의 성능이나 단말의 성능 또는 현재 클라우드 스트리밍 서버에 접속한 사용자의 수에 따라 고화질의 이미지를 PNG32bit 인코딩 방식으로 스틸 이미지 인코딩하여 스트리밍하여도 서비스 지연이 발생하지 않을 수 있다. 따라서, 고화질의 이미지를 스틸 이미지 인코딩할 때에는 여러 환경정보에 따라 lossyPNG 또는 PNG32bit 인코딩 방식을 적절히 이용하여 스틸 이미지 인코딩을 수행할 수 있다.In this case, the encoding method corresponding to the high quality may correspond to any one of the lossyPNG encoding method and the PNG32bit encoding method. For example, depending on the performance of the cloud streaming server, the performance of the terminal, or the number of users currently connected to the cloud streaming server, the service delay may not occur even if the high-definition image is encoded with the PNG32bit encoding method and then streamed. Therefore, when encoding a still image of a high-quality image, it is possible to perform still image encoding by appropriately using a lossyPNG or PNG32bit encoding method according to various environmental information.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩을 수행함과 동시에 변화된 이미지의 컬러 수를 체크하고, 컬러 수에 기반하여 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단한다(S830). 예를 들어, 변화된 이미지가 고화질의 이미지인지 저화질의 이미지인지 판단하기 위한 방법으로 변화된 이미지의 컬러 수를 체크할 수 있다. 컬러 수는 이미지를 구성하는 픽셀들이 가지는 컬러의 개수로, 고화질의 이미지는 많은 컬러 수에 상응하는 픽셀들로 구성될 수 있고, 저화질의 이미지는 고화질보다는 낮은 컬러 수에 상응하는 픽셀들로 구성될 수 있다.In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention checks the number of colors of an image changed at the same time as performing still image encoding, and stops encoding of still images corresponding to high quality based on the number of colors It is determined whether or not (S830). For example, as a method for determining whether the changed image is a high-quality image or a low-quality image, the number of colors of the changed image may be checked. The number of colors is the number of colors that pixels constituting an image have. A high-quality image may be composed of pixels corresponding to a large number of colors, and a low-quality image may be composed of pixels corresponding to a lower number of colors than high-quality images. can

따라서, 컬러 수에 따라 체크한 변화된 이미지가 저화질 이미지라면 고화질에 상응하는 스틸 이미지 인코딩을 수행하는 것은 불필요하게 클라우드 스트리밍 서버의 리소스를 낭비하는 것일 수 있다. 그러므로 변화된 이미지의 컬러 수에 따라 변화된 이미지가 고화질 이미지인지 저화질 이미지인지 확인하고, 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단할 수 있다.Therefore, if the changed image checked according to the number of colors is a low-quality image, performing still image encoding corresponding to a high-quality image may be unnecessarily wasting resources of the cloud streaming server. Therefore, it is possible to determine whether the changed image is a high-quality image or a low-quality image according to the number of colors of the changed image, and whether to stop encoding a still image corresponding to the high-quality image.

이 때, 컬러 수가 기설정된 기준 컬러 수 이하인 경우, 고화질 인코딩 중단 메시지를 이용하여 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다. 즉, 변화된 이미지가 컬러 수가 적은 저화질의 이미지이므로 저화질에 상응하는 스틸 이미지 인코딩을 수행하여 스트리밍 하여도 변화된 이미지의 화질 저하가 없거나 저하되는 정도가 크지 않을 수 있다. In this case, when the number of colors is less than or equal to the preset reference number of colors, encoding of still images corresponding to high quality may be stopped using a high quality encoding stop message. That is, since the changed image is a low-quality image with a small number of colors, there may be no deterioration in the image quality of the changed image or the degree of deterioration may not be large even if the still image encoding corresponding to the low-quality image is encoded and streamed.

따라서, 불필요하게 수행되고 있는 고화질의 스틸 이미지 인코딩을 중단시키기 위해, 고화질 인코딩 중단 메시지를 생성하여 인코더단으로 전달함으로써 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다.Accordingly, in order to stop the unnecessarily performed high-quality still image encoding, the high-definition encoding stop message may be generated and transmitted to the encoder to stop encoding the still image corresponding to the high-definition.

또한, 컬러 수가 기설정된 기준 컬러 수를 초과하는 경우, 저화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수도 있다. 그러나, 저화질에 상응하는 스틸 이미지 인코딩을 수행할 때에는 클라우드 스트리밍 서버의 부하가 크게 발생하지 않기 때문에 중단시키지 않고 다음 과정을 진행할 수도 있다.In addition, when the number of colors exceeds a preset reference number of colors, encoding of still images corresponding to low quality may be stopped. However, when performing still image encoding corresponding to low quality, the load on the cloud streaming server does not occur significantly, so the next process may be performed without interruption.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 사용자의 단말에서 어플리케이션 실행화면을 디스플레이 하기 위해 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S840).In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention transmits a still image-encoded image of either high or low quality to the terminal in order to display an application execution screen on the user's terminal, and is image-based of the cloud streaming service (S840).

사용자의 단말은 클라우드 스트리밍 서버로부터 전송된 어플리케이션 실행화면을 렌더링하고, 렌더링된 어플리케이션 실행화면을 사용자가 볼 수 있도록 디스플레이 함으로써 클라우드 스트리밍 서비스를 제공할 수 있다. The user's terminal may provide a cloud streaming service by rendering the application execution screen transmitted from the cloud streaming server and displaying the rendered application execution screen so that the user can see it.

따라서, 본 발명의 일실시예에 따른 이미지 기반의 클라우드 스트리밍 서비스를 제공하기 위해 클라우드 스트리밍 서버는 고화질이나 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다.Therefore, in order to provide an image-based cloud streaming service according to an embodiment of the present invention, the cloud streaming server may transmit a still image-encoded image of high or low quality to the terminal.

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않고 수행된 경우에 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다. 예를 들어, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수를 초과하였다는 것을 의미할 수 있다. 즉, 변화된 이미지가 고화질의 이미지라는 의미로 해석될 수 있기 때문에, 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송해줄 수 있다. In this case, when encoding of the still image corresponding to the high quality is performed without interruption, the changed image encoded with the high quality still image may be transmitted to the terminal. For example, if encoding of a still image corresponding to high quality is not stopped, it may mean that the number of colors in the changed image exceeds a preset reference number of colors. That is, since the changed image can be interpreted as a high-quality image, it is possible to transmit the changed image encoded with a high-quality still image to the terminal.

또한, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았더라도, 고화질로 스틸 이미지 인코딩된 변화된 이미지와 함께 저화질로 스틸 이미지 인코딩된 변화된 이미지도 함께 존재할 수 있다. 이 때, 저화질로 스틸 이미지 인코딩된 변화된 이미지는 삭제되거나, 또는 해당 하는 변화된 이미지가 사용자에게 요청되는 빈도에 따라 클라우드 스트리밍 서버의 캐시 메모리에 저장될 수도 있다.Also, even if the still image encoding corresponding to the high quality has not been stopped, the changed image encoded with the still image with the low quality may exist together with the changed image encoded with the still image with the high quality. At this time, the changed image encoded with the still image in low quality may be deleted or stored in the cache memory of the cloud streaming server according to the frequency at which the changed image is requested by the user.

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단된 경우, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송할 수 있다. 예를 들어, 고화질에 상응하는 스틸 이미지 인코딩이 중단되었다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수 이하라는 것을 의미할 수 있다. 즉, 변화된 이미지가 저화질의 이미지라는 의미로 해석될 수 있기 때문에, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송해줄 수 있다.At this time, when encoding of the still image corresponding to the high quality is stopped, the changed image encoded with the still image in the low quality may be transmitted to the terminal. For example, if encoding of a still image corresponding to high quality is stopped, it may mean that the number of colors in the changed image is less than or equal to a preset reference number of colors. That is, since the changed image can be interpreted as a low-quality image, it is possible to transmit a changed image encoded with a low-quality still image to the terminal.

도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 도 1에 도시된 네트워크와 같은 통신망을 통해 다수의 단말들과 관련된 정보를 송수신하는 역할을 한다. 특히, 클라우드 스트리밍 서비스에 대한 요청을 단말로부터 수신하고, 단말이 요청한 클라우드 스트리밍 서비스에 상응하는 어플리케이션의 실행화면을 단말로 제공할 수 있다.Although not shown in FIG. 8, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention serves to transmit and receive information related to a plurality of terminals through a communication network such as the network shown in FIG. . In particular, it is possible to receive a request for a cloud streaming service from the terminal, and provide an execution screen of an application corresponding to the cloud streaming service requested by the terminal to the terminal.

이 때, 단말이 요청한 클라우드 스트리밍 서비스에 대해서 클라우드 스트리밍 서버로부터 어플리케이션 실행화면을 수신할 수 있다.At this time, it is possible to receive the application execution screen from the cloud streaming server for the cloud streaming service requested by the terminal.

도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.Although not shown in FIG. 8, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention stores various information generated in the process of the cloud streaming service according to the embodiment of the present invention as described above.

실시예에 따라, 다양한 정보를 저장하는 데이터베이스나 저장 스토리지는 클라우드 스트리밍 서버와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 데이터베이스나 저장 스토리지는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.According to an embodiment, a database or storage storage for storing various information may be configured independently of a cloud streaming server to support a function for a cloud streaming service. In this case, the database or storage storage may operate as a separate mass storage and may include a control function for performing the operation.

도 9는 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.9 is a detailed operation flowchart illustrating an image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 먼저 클라우드 스트리밍 서버가 어플리케이션 서버로부터 사용자 요청에 따른 어플리케이션 실행화면을 수신한다(S910).9, in the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention, first, the cloud streaming server receives an application execution screen according to a user request from the application server (S910).

이 때, 클라우드 스트리밍 서버는 도 1에 도시된 네트워크와 같은 통신망을 통해 어플리케이션 서버로부터 어플리케이션 실행화면을 수신할 수 있다. At this time, the cloud streaming server may receive the application execution screen from the application server through a communication network such as the network shown in FIG. 1 .

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 어플리케이션 실행화면의 프레임들을 비교하여 변화된 이미지를 캡쳐한다(S920). In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention captures the changed image by comparing the frames of the application execution screen (S920).

이 때, 프레임들 중 현재 프레임과 이전 프레임을 비교하여 변화된 이미지를 캡쳐할 수 있다.In this case, the changed image may be captured by comparing the current frame and the previous frame among the frames.

또한, 프레임들 중 프레임간의 변화가 적은 구간들을 검출하고, 프레임간의 변화가 적은 구간에서 변화된 이미지를 캡쳐할 수 있다. 이 때, 변화가 많은 구간은 캡쳐할 이미지의 수가 많아 이미지 기반의 클라우드 스트리밍 서비스를 제공하는 것이 비효율적일 수 있다. 따라서, 이와 같이 변화가 많은 구간은 비디오 코덱 기반의 클라우드 스트리밍 기법을 통해 서비스를 수행하고, 프레임간 변화가 적은 구간에서만 이미지 기반의 클라우드 스트리밍 서비스를 수행하기 위해 변화된 이미지를 캡쳐할 수 있다.Also, it is possible to detect sections in which the changes between frames are small among the frames, and capture the changed images in the sections in which the changes between frames are small. In this case, it may be inefficient to provide an image-based cloud streaming service because the number of images to be captured in a section with a lot of change is large. Accordingly, in such a section with many changes, a service is performed through a video codec-based cloud streaming technique, and a changed image can be captured in order to perform an image-based cloud streaming service only in a section with little change between frames.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 스틸 이미지 인코딩하고, 동시에 변화된 이미지의 컬러 수를 체크한다(S930).In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention encodes a changed image in two encoding methods corresponding to high and low quality, respectively, and checks the number of colors of the changed image at the same time ( S930).

이 때, 스틸 이미지 인코딩 시 이미지의 투명효과를 적용하기 위해서 PNG 포맷을 사용할 수 있는데, PNG 포맷에 상응하는 인코딩 방식은 PNG32bit, 팔렛트 PNG 및 lossyPNG를 포함하여 다양하게 사용될 수 있다.In this case, the PNG format can be used to apply the transparency effect of the image when encoding the still image, and the encoding method corresponding to the PNG format can be used in various ways, including PNG32bit, palette PNG, and lossyPNG.

이 때, 고화질에 상응하는 lossyPNG 인코딩 방식과 저화질에 상응하는 팔렛트 PNG 인코딩 방식으로 동시에 스틸 이미지 인코딩을 수행할 수 있다. In this case, it is possible to simultaneously encode still images using the lossyPNG encoding method corresponding to high quality and the palette PNG encoding method corresponding to low quality.

또한, 고화질에 상응하는 인코딩 방식은 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나에 상응할 수 있다. 예를 들어, 클라우드 스트리밍 서버의 성능이나 단말의 성능 또는 현재 클라우드 스트리밍 서버에 접속한 사용자의 수에 따라 고화질의 이미지를 PNG32bit 인코딩 방식으로 스틸 이미지 인코딩하여 스트리밍하여도 서비스 지연이 발생하지 않을 수 있다. 따라서, 고화질의 이미지를 스틸 이미지 인코딩할 때에는 여러 환경정보에 따라 lossyPNG 또는 PNG32bit 인코딩 방식을 적절히 이용하여 스틸 이미지 인코딩을 수행할 수 있다.Also, the encoding method corresponding to the high quality may correspond to any one of the lossyPNG encoding method and the PNG32bit encoding method. For example, depending on the performance of the cloud streaming server, the performance of the terminal, or the number of users currently connected to the cloud streaming server, the service delay may not occur even if the high-definition image is encoded with the PNG32bit encoding method and then streamed. Therefore, when encoding a still image of a high-quality image, it is possible to perform still image encoding by appropriately using a lossyPNG or PNG32bit encoding method according to various environmental information.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수 이하인지 여부를 판단한다(S935).In addition, the image cloud streaming service method using simultaneous encoding according to an embodiment of the present invention determines whether the number of colors of the changed image is less than or equal to a preset reference number of colors (S935).

단계(S935)의 판단결과 기설정된 기준 컬러 수 이하라면, 고화질에 상응하는 스틸 이미지 인코딩을 중단한다(S940).If it is determined in step S935 that is less than or equal to the preset reference number of colors, encoding of still images corresponding to high quality is stopped (S940).

이 때, 컬러 수는 이미지를 구성하는 픽셀들이 가지는 컬러의 개수로, 고화질의 이미지는 많은 컬러 수에 상응하는 픽셀들로 구성될 수 있고, 저화질의 이미지는 고화질보다는 낮은 컬러 수에 상응하는 픽셀들로 구성될 수 있다.In this case, the number of colors is the number of colors that pixels constituting the image have. A high-quality image may consist of pixels corresponding to a large number of colors, and a low-quality image may include pixels corresponding to a lower number of colors than high-quality images. can be composed of

따라서, 컬러 수에 따라 체크한 변화된 이미지가 저화질 이미지라면 고화질에 상응하는 스틸 이미지 인코딩을 수행하는 것은 불필요하게 클라우드 스트리밍 서버의 리소스를 낭비하는 것일 수 있다. 그러므로 변화된 이미지의 컬러 수에 따라 변화된 이미지가 고화질 이미지인지 저화질 이미지인지 확인하고, 변화된 이미지가 저화질의 이미지인 경우 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다.Therefore, if the changed image checked according to the number of colors is a low-quality image, performing still image encoding corresponding to a high-quality image may be unnecessarily wasting resources of the cloud streaming server. Therefore, according to the number of colors of the changed image, it is checked whether the changed image is a high-quality image or a low-quality image, and if the changed image is a low-quality image, it is possible to stop encoding a still image corresponding to the high quality.

이 때, 고화질 인코딩 중단 메시지를 이용하여 고화질에 상응하는 스틸 이미지 인코딩을 중단시킬 수 있다. In this case, the still image encoding corresponding to the high quality may be stopped by using the high quality encoding stop message.

단계(S935)의 판단결과 기설정된 기준 컬러 수 이하가 아니라면, 고화질에 상응하는 스틸 이미지 인코딩이 중단되었는지 여부를 판단한다(S945).If it is determined in step S935 that it is not less than or equal to the preset reference color number, it is determined whether encoding of still images corresponding to high quality has been stopped (S945).

단계(S945)의 판단결과 고화질에 상응하는 스틸 이미지 인코딩이 중단되었다면, 저화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송한다(S950).If it is determined in step S945 that encoding of the still image corresponding to the high quality is stopped, the changed image encoded with the still image in the low quality is transmitted to the terminal (S950).

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단되었다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수 이하였다는 것을 의미할 수 있다.At this time, if encoding of the still image corresponding to the high quality is stopped, it may mean that the number of colors in the changed image is less than or equal to the preset reference color number.

단계(S945)의 판단결과 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았다면, 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송한다(S960).If it is determined in step S945 that encoding of the still image corresponding to the high quality has not been stopped, the changed still image encoded in the high quality is transmitted to the terminal (S960).

이 때, 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았다면, 변화된 이미지의 컬러 수가 기설정된 기준 컬러 수를 초과하였다는 것을 의미할 수 있다. 즉, 변화된 이미지가 고화질의 이미지라는 의미로 해석될 수 있기 때문에, 고화질로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송해줄 수 있다.At this time, if encoding of the still image corresponding to the high quality is not stopped, it may mean that the number of colors in the changed image exceeds the preset reference number of colors. That is, since the changed image can be interpreted as a high-quality image, it is possible to transmit the changed image encoded with a high-quality still image to the terminal.

또한, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 방법은 사용자 요청에 따라 수신된 어플리케이션 실행화면의 프레임들을 비교하여 변화가 많은 부분에서는 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행하고, 변화가 적은 부분에서는 이미지 캡쳐를 통해 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.In addition, the image cloud streaming method using simultaneous encoding according to an embodiment of the present invention compares frames of an application execution screen received in response to a user request and performs a video codec-based cloud streaming service in a part with many changes, In the small part, image-based cloud streaming service can be performed through image capture.

도 10은 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 과정을 나타낸 도면이다.10 is a diagram illustrating an image cloud streaming process using simultaneous encoding according to an embodiment of the present invention.

도 10을 참조하면, 본 발명의 일실시예에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 과정은 먼저 어플리케이션 서버에서 사용자가 단말(120-1)을 통해 입력한 사용자 입력을 수신한다(S1002)Referring to FIG. 10 , in the image cloud streaming process using simultaneous encoding according to an embodiment of the present invention, a user input input by a user through a terminal 120-1 is first received from an application server (S1002)

이 후, 어플리케이션 서버는 사용자 입력에 따른 어플리케이션을 실행한다(S1004).Thereafter, the application server executes the application according to the user input (S1004).

이 후, 어플리케이션 서버는 어플리케이션 실행화면을 클라우드 스트리밍 서버(110)로 전송한다(S1006). Thereafter, the application server transmits the application execution screen to the cloud streaming server 110 (S1006).

이 때, 클라우드 스트리밍 서버(110)는 통신부를 통해 어플리케이션 실행화면을 수신할 수 있다. 통신부는 네트워크를 통해 다수의 단말들과 관련된 정보를 송수신할 수 있고, 어플리케이션 서버와도 사용자 입력에 따른 어플리케이션 정보를 송수신할 수 있다. At this time, the cloud streaming server 110 may receive the application execution screen through the communication unit. The communication unit may transmit/receive information related to a plurality of terminals through a network, and may transmit/receive application information according to a user input to/from an application server.

또한, 클라우드 스트리밍 서버(110)는 통신부를 통해 수신된 어플리케이션 실행화면을 클라우드 스트리밍 서버(110)의 캡쳐부로 전달할 수 있다.In addition, the cloud streaming server 110 may transmit the application execution screen received through the communication unit to the capture unit of the cloud streaming server 110 .

이 후, 클라우드 스트리밍 서버(110)의 캡쳐부는 수신된 어플리케이션 실행화면의 프레임들을 비교하여 변화된 이미지를 캡쳐한다(S1008). 이 때, 프레임들을 비교하여 변화된 부분이 많은 구간에 대해서는 비디오 코덱 기반의 클라우드 스트리밍 서비스를 수행할 수 있다.Thereafter, the capture unit of the cloud streaming server 110 captures the changed image by comparing the frames of the received application execution screen (S1008). In this case, a video codec-based cloud streaming service may be performed for a section in which many changed parts are compared by comparing frames.

이 후, 클라우드 스트리밍 서버(110)는 변화된 이미지를 인코딩부에서 스틸 이미지 인코딩하고(S1010), 동시에 인코딩 제어부에서 변화된 이미지의 컬러 수를 체크한다(S1012).After that, the cloud streaming server 110 encodes the changed image in the encoding unit as a still image (S1010), and at the same time checks the number of colors of the changed image in the encoding control unit (S1012).

이 때, 인코딩부는 저화질과 고화질에 각각 상응하는 인코딩 방식으로 동시에 스틸 이미지 인코딩할 수 있다. In this case, the encoding unit may encode the still image at the same time by using encoding methods corresponding to the low image quality and the high image quality, respectively.

이 후, 클라우드 스트리밍 서버(110)의 인코딩부에서 두 가지 방식으로 스틸 이미지 인코딩을 수행하는 동안 인코딩 제어부에서는 변화된 이미지의 컬러 수를 기반으로 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단한다(S1014). After that, while the encoding unit of the cloud streaming server 110 performs still image encoding in two ways, the encoding control unit determines whether to stop encoding the still image corresponding to the high quality based on the changed number of colors of the image (S1014) ).

예를 들어, 변화된 이미지의 컬러 수가 기설정된 기준 이하로 체크된 경우에는 변화된 이미지가 저화질의 이미지라고 판단하고 고화질 인코딩 중단 메시지를 전달하여(S1016) 고화질에 상응하는 스틸 이미지 인코딩을 중단할 수 있다.For example, if the number of colors of the changed image is checked to be less than or equal to a preset standard, it is determined that the changed image is an image of low quality, and a high quality encoding stop message is transmitted (S1016) to stop encoding a still image corresponding to high quality.

또한, 변화된 이미지의 컬러 수가 기설정된 기준을 초과하도록 체크된 경우에는 변화된 이미지가 고화질 이미지라고 판단하고 고화질에 상응하는 스틸 이미지 인코딩을 중단하지 않고 계속 수행할 수 있다. In addition, when it is checked that the number of colors of the changed image exceeds a preset criterion, it is determined that the changed image is a high-quality image, and encoding of a still image corresponding to the high-quality image can be continued without stopping.

이 후, 인코딩 제어부의 중단 여부 판단에 따라 두 가지 방식으로 스틸 이미지 인코딩이 완료되거나 또는 저화질에 상응하는 인코딩 방식으로 스틸 이미지 인코딩이 완료된다(S1018).After that, depending on whether the encoding control unit stops or not, the encoding of the still image is completed in two ways or the encoding of the still image is completed by the encoding method corresponding to the low image quality (S1018).

이 후, 클라우드 스트리밍 서버(110)의 센딩부에서는 고화질에 상응하는 스틸 이미지 인코딩이 중단되었는지 여부를 확인한다(S1020). After that, the sending unit of the cloud streaming server 110 checks whether encoding of the still image corresponding to the high quality has been stopped (S1020).

이 때, 센딩부에서 고화질에 상응하는 스틸 이미지 인코딩의 중단여부를 확인하는 이유는, 센딩부가 단말(120-1)로 전송할 스틸 이미지 인코딩된 변화된 이미지의 화질을 결정해야 하기 때문이다. At this time, the reason why the sending unit checks whether encoding of the still image corresponding to the high quality is stopped is that the sending unit has to determine the quality of the still image-encoded changed image to be transmitted to the terminal 120 - 1 .

이 후, 클라우드 스트리밍 서버(110)의 센딩부는 스틸 이미지 인코딩된 변화된 이미지를 단말(120-1)로 전송한다(S1022).Thereafter, the sending unit of the cloud streaming server 110 transmits the still image-encoded changed image to the terminal 120-1 (S1022).

이 때, 센딩부에서 확인결과 고화질에 상응하는 스틸 이미지 인코딩이 중단되었다면, 변화된 이미지를 저화질 이미지로 인식하고 저화질로 스틸 이미지 인코딩된 변화된 이미지를 전송할 수 있다. 또한, 센딩부에서 확인결과 고화질에 상응하는 스틸 이미지 인코딩이 중단되지 않았다면, 변화된 이미지를 고화질 이미지로 인식하고 고화질로 스틸 이미지 인코딩된 변화된 이미지를 전송할 수 있다.At this time, if it is confirmed by the sending unit that encoding of the still image corresponding to the high quality has been stopped, the changed image may be recognized as a low quality image and the changed image encoded with the still image in low quality may be transmitted. In addition, if it is confirmed by the sending unit that encoding of the still image corresponding to the high quality is not stopped, the changed image may be recognized as a high quality image and the changed image encoded with the still image in high quality may be transmitted.

이 후, 단말(120-1)은 클라우드 스트리밍 서버(110)로부터 수신된 스틸 이미지 인코딩된 변화된 이미지를 렌더링한다(S1024).Thereafter, the terminal 120-1 renders the still image-encoded changed image received from the cloud streaming server 110 (S1024).

이 때, 어플리케이션 실행화면에서 변화된 이미지만을 렌더링하기 때문에 단말(120-1)의 성능차이에 따른 렌더링 속도의 차이를 감소시킬 수 있다. 즉, 성능이 떨어지는 구형 단말에서도 원활하게 렌더링을 수행할 수 있다.In this case, since only the changed image is rendered on the application execution screen, the difference in rendering speed due to the performance difference of the terminal 120 - 1 can be reduced. That is, rendering can be performed smoothly even in older terminals with poor performance.

이 후, 단말(120-1)은 사용자에게 어플리케이션 실행화면을 디스플레이 하여(S1026) 이미지 기반의 클라우드 스트리밍 서비스를 제공할 수 있다.Thereafter, the terminal 120-1 may display an application execution screen to the user (S1026) to provide an image-based cloud streaming service.

본 발명에 따른 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The image cloud streaming service method using simultaneous encoding 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, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - Includes magneto-optical media, and any form of hardware device specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes such as those generated by a compiler. Such hardware devices 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, in the cloud streaming service system, the image cloud streaming service method using simultaneous encoding, and the apparatus for the same according to the present invention, the configuration and method of the embodiments described above are not limitedly applicable, but the above embodiment Examples may be configured by selectively combining all or part of each embodiment so that various modifications can be made.

본 발명에 의하면 사용자 요청에 따라 수신된 어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐하고, 변화된 이미지를 고화질과 저화질에 각각 상응하는 두 가지 인코딩 방식으로 동시에 스틸 이미지 인코딩하고, 스틸 이미지 인코딩을 수행함과 동시에 변화된 이미지의 컬러 수를 체크하고, 컬러 수에 기반하여 고화질에 상응하는 스틸 이미지 인코딩의 중단 여부를 판단하여, 사용자의 단말에서 어플리케이션 실행화면을 디스플레이 하기 위해 고화질 및 저화질 중 어느 하나로 스틸 이미지 인코딩된 변화된 이미지를 단말로 전송하여 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 서비스 시 화질이 일정 수준 이하인 이미지들은 일괄적인 인코딩을 수행하고, 고화질의 이미지에는 고화질 인코딩 방식으로 인코딩을 수행하여 서비스를 제공함으로써 제공되는 이미지의 화질과 서비스의 속도가 모두 보장되는 클라우드 스트리밍 서비스를 제공할 수 있다.According to the present invention, the changed image is captured by comparing frames corresponding to the application execution screen received according to the user's request, the changed image is simultaneously encoded with two encoding methods corresponding to high and low quality, respectively, and still image encoding At the same time, the number of colors in the changed image is checked, and based on the number of colors, it is determined whether encoding of still images corresponding to high quality is stopped. An image-based cloud streaming service can be performed by transmitting the image-encoded and changed image to the terminal. Furthermore, a cloud streaming service that guarantees both image quality and service speed provided by performing a batch encoding of images with image quality below a certain level during service, and encoding high-definition images in a high-definition encoding method to provide the service can provide

110: 클라우드 스트리밍 서버 120-1~ 120-N: 단말 장치
130: 네트워크 210: 통신부
220: 캡쳐부 230: 인코딩부
240: 인코딩 제어부 250: 센딩부
260: 저장부 300: 클라우드 스트리밍 서버 영역
305: 어플리케이션 서버 영역 315: 단말 영역
410: 이전 프레임 420: 현재 프레임
430: 변화된 영역 510, 610: 픽셀
710: 컬러 인덱스
110: cloud streaming server 120-1 to 120-N: terminal device
130: network 210: communication unit
220: capture unit 230: encoding unit
240: encoding control unit 250: sending unit
260: storage unit 300: cloud streaming server area
305: application server area 315: terminal area
410: previous frame 420: current frame
430: changed area 510, 610: pixel
710: color index

Claims (5)

어플리케이션 실행화면에 상응하는 프레임들을 비교하여 변화된 이미지를 캡쳐하는 캡쳐부;
상기 변화된 이미지의 컬러 수를 고려하여 선택된 인코딩 방식으로 상기 변화된 이미지를 스틸 이미지 인코딩하는 인코딩부; 및
상기 스틸 이미지 인코딩된 변화된 이미지를 사용자의 단말로 전송하는 센딩부
를 포함하고,
상기 인코딩부는
상기 컬러 수가 기설정된 기준 컬러 수를 초과하는 경우에는 고화질에 대응하여 상기 기설정된 기준 컬러 수를 초과하는 비트맵 이미지를 지원하는 제1 인코딩 방식으로 상기 변화된 이미지를 스틸 이미지 인코딩하고,
상기 컬러 수가 상기 기설정된 기준 컬러 수 이하인 경우에는 저화질에 대응하여 상기 기설정된 기준 컬러 수 이하의 비트맵 이미지를 지원하는 제2 인코딩 방식으로 상기 변화된 이미지를 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
a capture unit for capturing a changed image by comparing frames corresponding to the application execution screen;
an encoding unit that encodes the changed image as a still image using an encoding method selected in consideration of the number of colors of the changed image; and
A sending unit that transmits the still image-encoded changed image to a user's terminal
including,
the encoding unit
When the number of colors exceeds a preset number of reference colors, encoding the changed image as a still image in a first encoding method supporting a bitmap image exceeding the preset reference number of colors in response to high quality;
Cloud streaming server, characterized in that when the number of colors is less than or equal to the preset number of reference colors, encoding the changed image as a still image in a second encoding method supporting a bitmap image less than or equal to the preset number of reference colors in response to low image quality .
삭제delete ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 3 has been abandoned at the time of payment of the registration fee.◈ 청구항 1에 있어서,
상기 고화질에 상응하는 인코딩 방식은 lossyPNG 인코딩 방식 및 PNG32bit 인코딩 방식 중 어느 하나에 상응하고, 상기 저화질에 상응하는 인코딩 방식은 팔렛트 PNG 인코딩 방식에 상응하는 것을 특징으로 하는 클라우드 스트리밍 서버.
The method according to claim 1,
The encoding method corresponding to the high quality corresponds to any one of the lossyPNG encoding method and the PNG32bit encoding method, and the encoding method corresponding to the low quality corresponds to the palette PNG encoding method.
◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 4 was abandoned when paying the registration fee.◈ 청구항 3에 있어서,
상기 인코딩부는
상기 팔렛트 PNG 인코딩 방식으로 인코딩을 수행하는 경우, 상기 변화된 이미지에 상응하는 컬러들로 구성된 컬러 인덱스를 기반으로 인코딩을 수행하는 것을 특징으로 하는 클라우드 스트리밍 서버.
4. The method according to claim 3,
the encoding unit
Cloud streaming server, characterized in that when encoding is performed in the palette PNG encoding method, encoding is performed based on a color index composed of colors corresponding to the changed image.
◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 5 was abandoned when paying the registration fee.◈ 청구항 4에 있어서,
상기 컬러 인덱스는
RGB 색상코드의 값을 기반으로 상기 변화된 이미지를 구성하는 256개의 컬러들로 구성되는 것을 특징으로 하는 클라우드 스트리밍 서버.
5. The method according to claim 4,
The color index is
Cloud streaming server, characterized in that it consists of 256 colors constituting the changed image based on the value of the RGB color code.
KR1020210098754A 2015-01-30 2021-07-27 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same KR102398976B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210098754A KR102398976B1 (en) 2015-01-30 2021-07-27 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150014861A KR102285197B1 (en) 2015-01-30 2015-01-30 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same
KR1020210098754A KR102398976B1 (en) 2015-01-30 2021-07-27 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150014861A Division KR102285197B1 (en) 2015-01-30 2015-01-30 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same

Publications (2)

Publication Number Publication Date
KR20210095846A KR20210095846A (en) 2021-08-03
KR102398976B1 true KR102398976B1 (en) 2022-05-18

Family

ID=56712333

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020150014861A KR102285197B1 (en) 2015-01-30 2015-01-30 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same
KR1020210098754A KR102398976B1 (en) 2015-01-30 2021-07-27 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020150014861A KR102285197B1 (en) 2015-01-30 2015-01-30 System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same

Country Status (1)

Country Link
KR (2) KR102285197B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345890B (en) * 2018-08-16 2021-06-25 山东第一医科大学(山东省医学科学院) Intelligent ideological education display control system and method based on cloud platform
KR102617491B1 (en) * 2019-02-08 2023-12-27 에스케이플래닛 주식회사 Apparatus and method for encoding of cloud streaming

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130155075A1 (en) * 2011-12-15 2013-06-20 Fujitsu Limited Information processing device, image transmission method, and recording medium
JP5223150B1 (en) 2012-01-24 2013-06-26 株式会社アクセル Image processing apparatus and image processing method
KR101362654B1 (en) 2013-12-31 2014-02-14 인하대학교 산학협력단 Video transcoding optimization method using light intensity analysis

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080053122A (en) 2006-12-08 2008-06-12 한국전자통신연구원 Adaptive transmission of scalable-coded contents
US9826197B2 (en) * 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
KR101840008B1 (en) * 2011-06-24 2018-05-04 에스케이플래닛 주식회사 High quality video streaming service system and method
KR101630638B1 (en) * 2011-07-25 2016-06-15 엔트릭스 주식회사 System and Method for operating application based Presentation Virtualization
GB2505486B (en) * 2012-08-31 2016-01-06 Samsung Electronics Co Ltd Streaming media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130155075A1 (en) * 2011-12-15 2013-06-20 Fujitsu Limited Information processing device, image transmission method, and recording medium
JP5223150B1 (en) 2012-01-24 2013-06-26 株式会社アクセル Image processing apparatus and image processing method
KR101362654B1 (en) 2013-12-31 2014-02-14 인하대학교 산학협력단 Video transcoding optimization method using light intensity analysis

Also Published As

Publication number Publication date
KR20160093929A (en) 2016-08-09
KR20210095846A (en) 2021-08-03
KR102285197B1 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
KR102398976B1 (en) System for cloud streaming service, method of image cloud streaming service using simultaneous encoding and apparatus for the same
US10462200B2 (en) System for cloud streaming service, method for still image-based cloud streaming service and apparatus therefor
KR101843411B1 (en) System for cloud streaming service, method of image cloud streaming service based on transparency of image and apparatus for the same
KR102346747B1 (en) System for cloud streaming service, method of cloud streaming service of providing multi-view screen based on resize and apparatus for the same
KR102409033B1 (en) System for cloud streaming service, method of image cloud streaming service using alpha level of color bit and apparatus for the same
KR102232899B1 (en) System for cloud streaming service, method of cloud streaming service based on type of image and apparatus for the same
KR102273145B1 (en) System for cloud streaming service, method of image cloud streaming service using additional encoding and apparatus for the same
KR102313528B1 (en) System for cloud streaming service, method of image cloud streaming service based on degradation of image quality and apparatus for the same
KR102177934B1 (en) System for cloud streaming service, method of image cloud streaming service using split of changed image and apparatus for the same
KR102405143B1 (en) System for cloud streaming service, method of image cloud streaming service using reduction of color bit and apparatus for the same
KR102407477B1 (en) System for cloud streaming service, method of image cloud streaming service using alpha value of image type and apparatus for the same
KR102307539B1 (en) System for cloud streaming service, method of image cloud streaming service using process shortering and apparatus for the same
KR102273144B1 (en) System for cloud streaming service, method of image cloud streaming service using division of the change area and apparatus for the same
KR102078576B1 (en) Method for cloud streaming service using compression of alpha data and apparatus for the same
KR102313530B1 (en) System for cloud streaming service, method of image cloud streaming service using split screen and apparatus for the same
KR102313529B1 (en) System for cloud streaming service, method of image cloud streaming service based on optimum rendering and apparatus for the same
KR102349472B1 (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
KR102313531B1 (en) System for cloud streaming service, method of cloud streaming service using single session multi-access and apparatus for the same
KR102063093B1 (en) System for cloud streaming service, method of compressing data for preventing memory bottleneck and apparatus for the same
KR102346748B1 (en) System for cloud streaming service, method of image cloud streaming service using selective server connection and apparatus for the same
KR102442698B1 (en) System for cloud streaming service, method of image cloud streaming service based on detection of change area using operating system massage 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
KR102354269B1 (en) System for cloud streaming service, method of image cloud streaming service using property of scene region and method using the same
KR20220137260A (en) Method for providing cloud streaming service using omission of video color space conversion and apparatus therefor

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right