KR20160026561A - 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 - Google Patents

클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20160026561A
KR20160026561A KR1020140115670A KR20140115670A KR20160026561A KR 20160026561 A KR20160026561 A KR 20160026561A KR 1020140115670 A KR1020140115670 A KR 1020140115670A KR 20140115670 A KR20140115670 A KR 20140115670A KR 20160026561 A KR20160026561 A KR 20160026561A
Authority
KR
South Korea
Prior art keywords
still image
key frame
image compression
frame
cloud streaming
Prior art date
Application number
KR1020140115670A
Other languages
English (en)
Other versions
KR102247889B1 (ko
Inventor
이동수
윤홍서
Original Assignee
엔트릭스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔트릭스 주식회사 filed Critical 엔트릭스 주식회사
Priority to KR1020140115670A priority Critical patent/KR102247889B1/ko
Priority to PCT/KR2015/007263 priority patent/WO2016035995A1/ko
Publication of KR20160026561A publication Critical patent/KR20160026561A/ko
Application granted granted Critical
Publication of KR102247889B1 publication Critical patent/KR102247889B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치가 개시된다. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 실행 화면 중 키 프레임을 추출하고, 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 압축 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 서브 프레임의 스틸 이미지 압축 정보를 생성하기 위한 시스템 자원을 절약함으로써 클라우드 스트리밍 서비스를 더 많은 사용자에게 제공하는 것이 가능하다.

Description

클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 {SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE TO SAVE SYSTEM RESOURCES AND APPARATUS FOR THE SAME}
본 발명은 클라우드 스트리밍 서비스 시 유사한 장면을 키 프레임과 서브 프레임으로 구분하고, 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하여 서브 프레임에도 적용하여 인코딩함으로써 시스템 자원을 절약할 수 있는 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치에 관한 것이다.
최근 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 실행을 위해 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다. 그 중에서 화면을 비디오로 압축하고 스트리밍(Streaming)하여 사용자의 단말로 제공하고, 단말에서는 스트리밍된 화면을 재생함으로써 마치 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 클라우드 스트리밍 기술이 각광받고 있는 추세이다.
이러한 클라우드 스트리밍 기반 서비스의 경우에는 동시에 많은 사용자의 요청을 처리해야 하고, 접속하고 있는 사용자 수만큼의 어플리케이션이 서버 측에서 구동되어야 하기 때문에 준비된 시스템의 자원을 최대한 효율적으로 활용하는 것이 클라우드 스트리밍 서비스를 원활하게 제공하는데 핵심적인 부분일 수 있다.
한국 공개 특허 제10-2014-0041317호, 2014년 4월 4일 공개 (명칭: 비디오 소스로부터의 정적 콘텐츠 정보를 사용한 비디오의 송신)
본 발명의 목적은, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 적합한 스틸 이미지 압축 기법을 이용함으로써 데이터의 압축률을 상승시켜 스틸 이미지 기반 클라우드 스트리밍 시 발생할 수 있는 전송 지연을 방지하는 것이다.
또한, 본 발명의 목적은 서비스 장면의 유사한 부분 중 중요한 프레임에 대한 스틸 이미지 압축 정보를 미리 구성해 놓고, 중요한 프레임과 유사한 프레임을 인코딩할 때 재사용함으로써 스틸 이미지 압축 정보를 생성하는데 필요한 시스템 자원을 최대한 절약하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 클라우드 스트리밍 서버는, 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 캡처부; 상기 실행 화면 중 키 프레임을 추출하는 키 프레임 추출부; 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 인코딩부; 및 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부를 포함한다.
이 때, 인코딩부는 상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 키 프레임은 상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임일 수 있다.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.
이 때, 인코딩부는 상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 인코딩부는 상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다.
이 때, 키 프레임 추출부는 상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출할 수 있다.
이 때, 키 프레임 추출부는 상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출할 수 있다.
이 때, 인코딩부는 상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩할 수 있다.
또한, 본 발명에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은, 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 단계; 상기 실행 화면 중 키 프레임을 추출하는 단계; 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 단계; 및 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계를 포함한다.
이 때, 인코딩하는 단계는 상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하는 단계를 포함하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 키 프레임은 상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임인 것을 특징으로 하는 시스템 자원을 절약할 수 있다.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.
이 때, 인코딩하는 단계는 상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 인코딩하는 단계는 상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장하는 것을 특징으로 하는 시스템 자원을 절약할 수 있다.
이 때, 키 프레임을 추출하는 단계는 상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출할 수 있다.
이 때, 키 프레임을 추출하는 단계는 상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출할 수 있다.
이 때, 인코딩하는 단계는 상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩할 수 있다.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.
또한, 본 발명에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 상기 실행 화면 중 키 프레임을 추출하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임 및 상기 키 프레임 중 하나 이상에 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.
본 발명에 따르면, 스틸 이미지 기반 클라우드 스트리밍 서비스 제공 시 적합한 스틸 이미지 압축 기법을 이용함으로써 데이터의 압축률을 상승시켜 스틸 이미지 기반 클라우드 스트리밍 시 발생할 수 있는 전송 지연을 방지할 수 있다.
또한, 본 발명은 서비스 장면의 유사한 부분 중 중요한 프레임에 대한 스틸 이미지 압축 정보를 미리 구성해 놓고, 중요한 프레임과 유사한 프레임을 인코딩할 때 재사용함으로써 스틸 이미지 압축 정보를 생성하는데 필요한 시스템 자원을 최대한 절약할 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 키 프레임과 서브 프레임을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치들(120-1, ..., 120-N) 및 네트워크(130)를 포함한다.
클라우드 스트리밍 서버(110)는 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다.
또한, 클라우드 스트리밍 서버(110)는 실행 화면 중 키 프레임을 추출한다. 이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다. 이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 이 때, 키 프레임의 다음 키 프레임이 나타날 때가지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 이때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치들(120-1, ..., 120-N)로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다.
단말 장치들(120-1, ..., 120-N)은 클라우드 스트리밍 서버(110)로부터 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하여 사용자에게 제공한다.
단말 장치들(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) 단말일 수 있다.
네트워크(130)는 클라우드 스트리밍 서버(110)및 단말 장치들(120-1, ..., 120-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(130)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(130)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 클라우드 스트리밍 서버(110)와 단말 장치들(120-1, ..., 120-N) 사이에 사용되는 네트워크는 단말 장치들(120-1, ..., 120-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 클라우드 스트리밍 서버(110)는 캡처부(210), 키 프레임 추출부(220), 인코딩부(230), 센딩부(240) 및 저장부(250)를 포함한다.
캡처부(210)는 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행화면을 캡처한다. 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버(110)에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버(110)에서 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 화면을 단말 장치에게 전달하기 위해 캡처할 수 있다.
키 프레임 추출부(220)는 실행 화면 중 키 프레임을 추출한다.
실행 화면은 여러 개의 프레임으로 구성될 수 있으며, 여러 개의 프레임들 중에서는 변화가 크지 않아 유사한 프레임이 다수 존재할 수 있다. 이 때, 스틸 이미지 기반 클라우드 스트리밍 서비스를 수행하기 위해서는 모든 프레임들을 스틸 이미지 압축 기법으로 압축하여 사용자의 단말 장치로 제공해야 하며, 스틸 이미지 압축 기법에 따라 모든 프레임들 각각에 대한 스틸 이미지 압축 정보를 구성할 필요가 있다. 만약, 유사한 프레임들이 많은 경우에는 모든 프레임에 대한 스틸 이미지 압축 정보를 구성하느라 시스템 자원의 소모율이 커져서 서비스를 원활하게 제공하는데 문제가 발생할 수 있다. 따라서, 유사한 프레임들 중 키 프레임을 추출하고, 키 프레임을 기준으로 생성한 스틸 이미지 압축 정보를 나머지 유사한 프레임들에 적용하여 압축함으로써 시스템 자원을 절약할 수 있다.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 한 프레임의 전체 영역을 기준으로 60퍼센트 정도가 이전 프레임에 비교하여 변화하였을 때, 해당 프레임을 키 프레임으로 추출할 수 있다. 이와 같은 기설정된 기준값은 개발자에 의해 자유롭게 설정 및 수정하는 것이 가능하다.
또한, 기준값이 너무 낮게 설정되면 추출되는 키 프레임이 너무 많아져서 시스템 자원의 소비가 심해질 수 있고, 기준값이 너무 높게 설정되면 추출되는 키 프레임이 적어 인코딩된 실행 화면의 화질 저하가 심할 수 있다. 따라서, 이와 같은 문제점을 방지하기 위해 최대 기준값 및 최소 기준값을 설정하고 범위 내에서 수정이 가능하도록 할 수도 있다.
이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 예를 들어, 프레임에 포함된 모든 픽셀들의 변화를 계산하고, 이전 프레임의 픽셀값과 비교하여 변화된 정도를 판단하여 프레임의 변화 값을 산출할 수 있다. 만약 프레임을 구성하는 픽셀이 10000개이고 기설정된 기준값이 60퍼센트라고 가정한다면, 이전 프레임과 비교하여 6000픽셀이상 변화한 경우 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.
이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다. 예를 들어, 어플리케이션의 입력 신호는 어플리케이션의 실행 화면에 변화는 주는 신호일 수 있기 때문에, 어플리케이션의 입력 신호를 감지하여, 입력 신호에 의해 발생하는 실행 화면의 첫 프레임을 큰 키 프레임으로 판단할 수 있다. 또한, 이전 프레임에 비하여 추가 컬러가 기설정된 개수 이상 줄어드는 경우에 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.
인코딩부(230)는 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다. 예를 들어, 실행 화면을 구성하는 프레임들 중 하나 또는 복수의 키 프레임에 대해서 스틸 이미지 압축 정보를 생성한 뒤에, 나머지 프레임들은 이미 생성한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행함으로써, 키 프레임과 나머지 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩할 수 있다.
이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에는 복수의 키 프레임이 존재할 수 있기 때문에, 나머지 프레임들 중에는 각각의 키 프레임에 상응하는 유사한 프레임들이 존재할 수 있다. 이와 같이 각각의 키 프레임과 비교하였을 때 프레임의 변화값이 기설정된 기준값 미만의 유사한 프레임을 키 프레임에 대한 서브 프레임으로 추출하여 키 프레임을 압축한 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 예를 들어, 스틸 이미지 기반 클라우드 스트리밍 시 PNG 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행하는 경우 비디오 기반 클라우드 스트리밍과 비교하여 압축 효율이 떨어지기 때문에 네트워크의 대역폭이 제한된 경우에는 전송 지연이 발생할 수 있는 문제점이 있다. 따라서, 이와 같은 PNG 스틸 이미지 압축 기법의 압축 효율을 증가시키기 위해서 팔렛트, 컬러 치환 테이블 및 최적 필터 등을 이용하여 이미지를 구성하는 컬러의 폭을 축소할 수 있다.
일반적으로 PNG 포맷에서는 크게 RGB 형식과 Indexed Color 형식으로 이미지 색 정보를 표현할 수 있다. RGB 형식은 하나의 픽셀마다 빨강, 초록, 파랑의 값을 각각 사용할 수 있다. 그러나 Indexed Color 형식에서는 이미지를 구성하기 위해 사용하는 색을 팔렛트라는 테이블에 미리 작성하고, 각각의 픽셀에 팔레트 테이블 상의 몇 번째 색을 사용하는지 정보를 포함할 수 있다. 이 때, RGB 형식은 빨강, 초록, 파랑을 각각 8bit로 표현하여 하나의 픽셀당 24bit가 필요하지만, Indexed Color 형식에서는 8bit만 필요하기 때문에 RGB 형식을 Indexed Color 형식으로 변환시키는 경우 데이터의 크기를 3분의 1로 감소시킬 수 있다.
또한, Indexed Color 형식은 8bit를 이용하여 정보를 나타내기 때문에 최대 256개의 정보만을 표현할 수 있다. 그러나 RGB 형식에서는 Indexed Color 형식보다 더 많은 컬러를 표현할 수 있기 때문에, 컬러 치환 테이블을 이용하여 RGB 형식의 컬러를 Indexed Color 형식의 팔레트에 포함된 컬러로 치환할 수 있다. 이 때, RGB 형식으로 표현할 때보다 사용할 수 있는 컬러의 수가 감소할 수밖에 없기 때문에 이미지 화질의 열화를 발생시킬 수 있다.
또한, Indexed Color 형식에서 각각의 픽셀마다 어느 색을 말하는 정보인지 그대로 취급하는 것은 비효율적이기 때문에, 픽셀이 구성하는 행마다 필터라고 하는 데이터를 정리하는 구조를 적용할 수 있다. 예를 들어, 하나의 행이 5개의 픽셀로 구성되어 있고, 5개의 픽셀이 모두 빨간색을 말하는 정보를 포함하고 있는 경우에, 픽셀의 정보를 '빨강, 빨강, 빨강, 빨강, 빨강'의 형식으로 나타내는 것 보다는 '빨강 5개'로 나타내는 것이 더 간결하게 나타낼 수 있다. 따라서, 픽셀이 구성하는 각각의 행마다 최적 필터를 적용하여 데이터를 취급할 때 보다 간결하게 나타낼 수 있다.
이 때, 키 프레임의 다음 키 프레임이 나타날 때까지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에서 추출된 첫 번째 키 프레임에 대한 스틸 이미지 압축 정보를 구성하고, 이를 이용하여 이 후의 서브 프레임들을 스틸 이미지 인코딩할 수 있다. 이 때, 첫 번째 키 프레임에 대한 서브 프레임들의 스틸 이미지 인코딩이 완료되고 두 번째 키 프레임이 추출되었다면, 두 번째 키 프레임에 대해서 다시 스틸 이미지 압축 정보를 구성하고, 이 후의 서브 프레임들에 대해서는 두 번째 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행할 수 있다.
이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 예를 들어, 스틸 이미지 인코딩을 수행하기 전에 미리 실행 화면에 포함된 모든 키 프레임을 추출하고, 각각의 키 프레임들에 대한 스틸 이미지 압축 정보를 생성하여 데이터베이스에 저장할 수 있다. 이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장함으로써, 키 프레임 및 서브 프레임의 압축을 수행할 때 저장된 스틸 이미지 압축 정보를 쉽게 찾아 이용할 수 있다.
이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 PNG 스틸 이미지 압축 기법과 비교하였을 때 이미지의 화질 열화를 발생시킬 수는 있으나 데이터의 크기를 3분의 1로 줄일 수 있으므로, 네트워크 대역폭이 제한된 환경에서 전송 지연이 발생하는 것을 방지할 수 있다.
센딩부(240)는 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다. 스틸 이미지 인코딩을 완료하여 압축된 실행 화면을 사용자의 단말 장치로 전송함으로써, 사용자가 사용자의 단말 장치에서 어플리케이션이 실행되는 것처럼 느낄 수 있다.
저장부(250)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(250)는 클라우드 스트리밍 서버(110)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(250)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
또한, 저장부(250)는 본 발명의 데이터베이스를 대신하여 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장할 수 있다.
도 3은 본 발명의 일실시예에 따른 키 프레임과 서브 프레임을 나타낸 도면이다.
도 3을 참조하면, 어플리케이션의 실행 화면을 구성하는 복수의 프레임들은 키 프레임(310, 320)과 서브 프레임(310-1, 310-2, 320-1, 320-N)으로 구분할 수 있다.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 키 프레임(320)의 경우 이전 프레임에 상응하는 서브 프레임(310-2)과 비교하였을 때 프레임의 변화값이 기설정된 기준값 이상일 수 있다.
이와 같이 키 프레임(310, 320)과 키 프레임(310, 320)에 상응하는 서브 프레임(310-1, 310-2, 320-1, 320-N)은 순차적으로 나열되어 있을 가능성이 높다. 따라서, 서브 프레임(310-1, 310-2, 320-1, 320-N)을 추출할 때에는 각각의 키 프레임(310, 320)을 기준으로 사이에 위치한 프레임들을 추출할 수 있다.
또한, 키 프레임(310, 320)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용할 때도, 다음 키 프레임이 나타날 때까지 동일한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 서브 프레임을 압축할 수 있다. 예를 들어, 키 프레임(310)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임(310-1)과 서브 프레임(310-2)을 압축할 수 있다. 이 후, 다음의 키 프레임인 키 프레임(320)이 나타나면 키 프레임(310)에 대한 스틸 이미지 압축 정보를 사용하지 않고, 키 프레임(320)에 대한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임(320-1)을 압축할 수 있다. 이 후, 상기의 방법과 동일하게 다음 키 프레임이 나타날 때까지 키 프레임(320)의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 압축을 수행할 수 있다.
도 4는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다(S410). 예를 들어, 네트워크를 통해 클라우드 스트리밍 서버에 접속한 하나 이상의 단말 장치에 의해 어플리케이션 실행 요청이 접수된 경우에, 단말 장치의 요청에 상응하여 클라우드 스트리밍 서버에서 어플리케이션을 실행하고, 어플리케이션 실행 결과에 해당하는 실행 화면을 단말 장치에게 전달하기 위해 캡처할 수 있다.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 실행 화면 중 키 프레임을 추출한다(S420).
실행 화면은 여러 개의 프레임으로 구성될 수 있으며, 여러 개의 프레임들 중에서는 변화가 크지 않아 유사한 프레임이 다수 존재할 수 있다. 이 때, 스틸 이미지 기반 클라우드 스트리밍 서비스를 수행하기 위해서는 모든 프레임들을 스틸 이미지 압축 기법으로 압축하여 사용자의 단말 장치로 제공해야 하며, 스틸 이미지 압축 기법에 따라 모든 프레임들 각각에 대한 스틸 이미지 압축 정보를 구성할 필요가 있다. 만약, 유사한 프레임들이 많은 경우에는 모든 프레임에 대한 스틸 이미지 압축 정보를 구성하느라 시스템 자원의 소모율이 커져서 서비스를 원활하게 제공하는데 문제가 발생할 수 있다. 따라서, 유사한 프레임들 중 키 프레임을 추출하고, 키 프레임을 기준으로 생성한 스틸 이미지 압축 정보를 나머지 유사한 프레임들에 적용하여 압축함으로써 시스템 자원을 절약할 수 있다.
이 때, 키 프레임은 실행 화면 중 이전 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 이상인 프레임일 수 있다. 예를 들어, 한 프레임의 전체 영역을 기준으로 60퍼센트 정도가 이전 프레임에 비교하여 변화하였을 때, 해당 프레임을 키 프레임으로 추출할 수 있다. 이와 같은 기설정된 기준값은 개발자에 의해 자유롭게 설정 및 수정하는 것이 가능하다.
또한, 기준값이 너무 낮게 설정되면 추출되는 키 프레임이 너무 많아져서 시스템 자원의 소비가 심해질 수 있고, 기준값이 너무 높게 설정되면 추출되는 키 프레임이 적어 인코딩된 실행 화면의 화질 저하가 심할 수 있다. 따라서, 이와 같은 문제점을 방지하기 위해 최대 기준값 및 최소 기준값을 설정하고 범위 내에서 수정이 가능하도록 할 수도 있다.
이 때, 실행 화면의 픽셀값 변화를 고려하여 프레임의 변화값을 산출할 수 있다. 예를 들어, 프레임에 포함된 모든 픽셀들의 변화를 계산하고, 이전 프레임의 픽셀값과 비교하여 변화된 정도를 판단하여 프레임의 변화 값을 산출할 수 있다. 만약 프레임을 구성하는 픽셀이 10000개이고 기설정된 기준값이 60퍼센트라고 가정한다면, 이전 프레임과 비교하여 6000픽셀이상 변화한 경우 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.
이 때, 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 키 프레임을 추출할 수 있다. 예를 들어, 어플리케이션의 입력 신호는 어플리케이션의 실행 화면에 변화는 주는 신호일 수 있기 때문에, 어플리케이션의 입력 신호를 감지하여, 입력 신호에 의해 발생하는 실행 화면의 첫 프레임을 큰 키 프레임으로 판단할 수 있다. 또한, 이전 프레임에 비하여 추가 컬러가 기설정된 개수 이상 줄어드는 경우에 해당 프레임을 키 프레임으로 판단하고 추출할 수 있다.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩한다(S430). 예를 들어, 실행 화면을 구성하는 프레임들 중 하나 또는 복수의 키 프레임에 대해서 스틸 이미지 압축 정보를 생성한 뒤에, 나머지 프레임들은 이미 생성한 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행함으로써, 키 프레임과 나머지 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩할 수 있다.
이 때, 나머지 프레임들 중 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 서브 프레임을 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에는 복수의 키 프레임이 존재할 수 있기 때문에, 나머지 프레임들 중에는 각각의 키 프레임에 상응하는 유사한 프레임들이 존재할 수 있다. 이와 같이 각각의 키 프레임과 비교하였을 때 프레임의 변화값이 기설정된 기준값 미만의 유사한 프레임을 키 프레임에 대한 서브 프레임으로 추출하여 키 프레임을 압축한 스틸 이미지 압축 기법을 이용하여 압축할 수 있다.
이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다. 예를 들어, 스틸 이미지 기반 클라우드 스트리밍 시 PNG 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행하는 경우 비디오 기반 클라우드 스트리밍과 비교하여 압축 효율이 떨어지기 때문에 네트워크의 대역폭이 제한된 경우에는 전송 지연이 발생할 수 있는 문제점이 있다. 따라서, 이와 같은 PNG 스틸 이미지 압축 기법의 압축 효율을 증가시키기 위해서 팔렛트, 컬러 치환 테이블 및 최적 필터 등을 이용하여 이미지를 구성하는 컬러의 폭을 축소할 수 있다.
일반적으로 PNG 포맷에서는 크게 RGB 형식과 Indexed Color 형식으로 이미지 색 정보를 표현할 수 있다. RGB 형식은 하나의 픽셀마다 빨강, 초록, 파랑의 값을 각각 사용할 수 있다. 그러나 Indexed Color 형식에서는 이미지를 구성하기 위해 사용하는 색을 팔렛트라는 테이블에 미리 작성하고, 각각의 픽셀에 팔레트 테이블 상의 몇 번째 색을 사용하는지 정보를 포함할 수 있다. 이 때, RGB 형식은 빨강, 초록, 파랑을 각각 8bit로 표현하여 하나의 픽셀당 24bit가 필요하지만, Indexed Color 형식에서는 8bit만 필요하기 때문에 RGB 형식을 Indexed Color 형식으로 변환시키는 경우 데이터의 크기를 3분의 1로 감소시킬 수 있다.
또한, Indexed Color 형식은 8bit를 이용하여 정보를 나타내기 때문에 최대 256개의 정보만을 표현할 수 있다. 그러나 RGB 형식에서는 Indexed Color 형식보다 더 많은 컬러를 표현할 수 있기 때문에, 컬러 치환 테이블을 이용하여 RGB 형식의 컬러를 Indexed Color 형식의 팔레트에 포함된 컬러로 치환할 수 있다. 이 때, RGB 형식으로 표현할 때보다 사용할 수 있는 컬러의 수가 감소할 수밖에 없기 때문에 이미지 화질의 열화를 발생시킬 수 있다.
또한, Indexed Color 형식에서 각각의 픽셀마다 어느 색을 말하는 정보인지 그대로 취급하는 것은 비효율적이기 때문에, 픽셀이 구성하는 행마다 필터라고 하는 데이터를 정리하는 구조를 적용할 수 있다. 예를 들어, 하나의 행이 5개의 픽셀로 구성되어 있고, 5개의 픽셀이 모두 빨간색을 말하는 정보를 포함하고 있는 경우에, 픽셀의 정보를 '빨강, 빨강, 빨강, 빨강, 빨강'의 형식으로 나타내는 것 보다는 '빨강 5개'로 나타내는 것이 더 간결하게 나타낼 수 있다. 따라서, 픽셀이 구성하는 각각의 행마다 최적 필터를 적용하여 데이터를 취급할 때 보다 간결하게 나타낼 수 있다.
이 때, 키 프레임의 다음 키 프레임이 나타날 때까지 서브 프레임을 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 이용하여 압축할 수 있다. 예를 들어, 실행 화면에서 추출된 첫 번째 키 프레임에 대한 스틸 이미지 압축 정보를 구성하고, 이를 이용하여 이 후의 서브 프레임들을 스틸 이미지 인코딩할 수 있다. 이 때, 첫 번째 키 프레임에 대한 서브 프레임들의 스틸 이미지 인코딩이 완료되고 두 번째 키 프레임이 추출되었다면, 두 번째 키 프레임에 대해서 다시 스틸 이미지 압축 정보를 구성하고, 이 후의 서브 프레임들에 대해서는 두 번째 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법을 적용하여 스틸 이미지 인코딩을 수행할 수 있다.
이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장할 수 있다. 예를 들어, 스틸 이미지 인코딩을 수행하기 전에 미리 실행 화면에 포함된 모든 키 프레임을 추출하고, 각각의 키 프레임들에 대한 스틸 이미지 압축 정보를 생성하여 데이터베이스에 저장할 수 있다. 이 때, 키 프레임과 스틸 이미지 압축 정보를 연동하여 저장함으로써, 키 프레임 및 서브 프레임의 압축을 수행할 때 저장된 스틸 이미지 압축 정보를 쉽게 찾아 이용할 수 있다.
이 때, 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 실행 화면을 스틸 이미지 인코딩할 수 있다. 팔렛티드 PNG 스틸 이미지 압축 기법은 PNG 스틸 이미지 압축 기법과 비교하였을 때 이미지의 화질 열화를 발생시킬 수는 있으나 데이터의 크기를 3분의 1로 줄일 수 있으므로, 네트워크 대역폭이 제한된 환경에서 전송 지연이 발생하는 것을 방지할 수 있다.
또한, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S440). 스틸 이미지 인코딩을 완료하여 압축된 실행 화면을 사용자의 단말 장치로 전송함으로써, 사용자가 사용자의 단말 장치에서 어플리케이션이 실행되는 것처럼 느낄 수 있다.
도 5는 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 먼저 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처한다(S510).
이 후, 키 프레임을 추출하기 위해 실행 화면을 구성하는 프레임들의 이전 프레임과 현재 프레임을 비교하여 프레임의 변화값을 산출한다(S520).
이 후, 프레임의 변화값이 기설정된 기준값 이상인지 여부를 판단한다(S525).
단계(S525)의 판단결과 기설정된 기준값 이상이면, 현재 프레임을 키 프레임으로 추출한다(S530).
단계(S525)의 판단결과 기설정된 기준값 미만이면, 현재 프레임을 키 프레임이 아닌 나머지 프레임들로 판단한다(S540).
이 후, 추출한 키 프레임에 대한 스틸 이미지 압축 정보를 생성한다(S550). 이 때, 스틸 이미지 압축 정보는 팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함할 수 있다.
이 후, 키 프레임과 나머지 프레임들을 비교하여 프레임 변화값을 산출한다(S560).
이 후, 키 프레임과 비교한 나머지 프레임들의 프레임 변화값이 기설정된 기준값 미만인지 여부를 판단한다(S565).
단계(S565)의 판단결과 기설정된 기준값 미만이면, 해당하는 나머지 프레임을 키 프레임의 서브 프레임으로 추출한다(S570).
단계(S565)의 판단결과 기설정된 기준값 이상이면, 해당하는 나머지 프레임이 키 프레임인지 다시 판단하여, 키 프레임 및 다른 키 프레임의 서브 프레임 중 어느 하나로 구분할 수 있다.
이 후, 키 프레임과 서브 프레임으로 구성된 실행 화면을 스틸 이미지 인코딩한다(S580). 예를 들어, 키 프레임의 스틸 이미지 압축 정보를 이용한 스틸 이미지 압축 기법으로 서브 프레임을 압축하여 스틸 이미지 인코딩을 수행할 수 있다.
이 후, 스틸 이미지 인코딩이 완료된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행한다(S590).
본 발명에 따른 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서와 같이 본 발명에 따른 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명에 의하면 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 실행 화면 중 키 프레임을 추출하고, 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 실행 화면 중 키 프레임을 제외한 나머지 프레임들 및 키 프레임 중 하나 이상에 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행할 수 있다. 나아가, 키 프레임의 서브 프레임에 대해서 스틸 이미지 압축 정보를 생성하기 위한 시스템 자원을 절약함으로써, 클라우드 스트리밍 서버에서는 더 많은 사용자들에게 동시에 서비스를 제공할 수 있다.
110: 클라우드 스트리밍 서버 120-1~ 120-N: 단말 장치들
130: 네트워크 210: 캡처부
220: 키 프레임 추출부 230: 인코딩부
240: 센딩부 250: 저장부
310, 320: 키 프레임
310-1, 310-2, 320-1, 320-N: 서브 프레임

Claims (20)

  1. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 캡처부;
    상기 실행 화면 중 키 프레임을 추출하는 키 프레임 추출부;
    상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 인코딩부; 및
    스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 센딩부
    를 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  2. 청구항 1에 있어서,
    상기 인코딩부는
    상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하고, 상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  3. 청구항 2에 있어서,
    상기 키 프레임은
    상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임인 것을 특징으로 하는 클라우드 스트리밍 서버.
  4. 청구항 3에 있어서,
    상기 스틸 이미지 압축 정보는
    팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  5. 청구항 4에 있어서,
    상기 인코딩부는
    상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  6. 청구항 5에 있어서,
    상기 인코딩부는
    상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  7. 청구항 3에 있어서,
    상기 키 프레임 추출부는
    상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  8. 청구항 7에 있어서,
    상기 키 프레임 추출부는
    상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  9. 청구항 1에 있어서,
    상기 인코딩부는
    상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  10. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하는 단계;
    상기 실행 화면 중 키 프레임을 추출하는 단계;
    상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 생성하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임들 및 상기 키 프레임 중 하나 이상에 상기 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하는 단계; 및
    스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 단계
    를 포함하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  11. 청구항 10에 있어서,
    상기 인코딩하는 단계는
    상기 나머지 프레임들 중 상기 키 프레임과 비교하여 프레임의 변화값이 기설정된 기준값 미만인 서브 프레임을 추출하는 단계를 포함하고,
    상기 서브 프레임을 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  12. 청구항 11에 있어서,
    상기 키 프레임은
    상기 실행 화면 중 이전 프레임과 비교하여 상기 프레임의 변화값이 상기 기설정된 기준값 이상인 프레임인 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  13. 청구항 12에 있어서,
    상기 스틸 이미지 압축 정보는
    팔렛트, 컬러 치환 테이블 및 최적 필터 중 하나 이상을 포함하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  14. 청구항 13에 있어서,
    상기 인코딩하는 단계는
    상기 키 프레임의 다음 키 프레임이 나타날 때까지 상기 서브 프레임을 상기 스틸 이미지 압축 정보를 기반으로 하는 상기 스틸 이미지 압축 기법을 이용하여 압축하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  15. 청구항 14에 있어서,
    상기 인코딩하는 단계는
    상기 키 프레임과 상기 스틸 이미지 압축 정보를 연동하여 데이터베이스에 저장하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  16. 청구항 12에 있어서,
    상기 키 프레임을 추출하는 단계는
    상기 실행 화면의 픽셀값 변화를 고려하여 상기 프레임의 변화값을 산출하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  17. 청구항 16에 있어서,
    상기 키 프레임을 추출하는 단계는
    상기 어플리케이션의 입력 신호 및 추가 컬러의 개수 중 하나 이상을 고려하여 상기 키 프레임을 추출하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  18. 청구항 10에 있어서,
    상기 인코딩하는 단계는
    상기 스틸 이미지 압축 정보를 이용한 팔렛티드 PNG(portable network graphics) 스틸 이미지 압축 기법을 이용하여 상기 실행 화면을 스틸 이미지 인코딩하는 것을 특징으로 하는 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법.
  19. 청구항 10 내지 18 중 어느 한 항에 기재된 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  20. 클라우드 스트리밍 서비스를 위해 실행되는 어플리케이션의 실행 화면을 캡처하고, 상기 실행 화면 중 키 프레임을 추출하고, 상기 실행 화면 중 상기 키 프레임을 제외한 나머지 프레임 및 상기 키 프레임 중 하나 이상에 상기 키 프레임에 상응하는 스틸 이미지 압축 정보를 기반으로 하는 스틸 이미지 압축 기법을 적용하여 상기 실행 화면을 스틸 이미지 인코딩하고, 스틸 이미지 인코딩된 상기 실행 화면을 사용자의 단말 장치로 전송하여 스틸 이미지 기반의 클라우드 스트리밍 서비스를 수행하는 클라우드 스트리밍 서버; 및
    상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말
    을 포함하는 것을 특징으로 하는 클라우드 스트리밍 서비스 시스템.
KR1020140115670A 2014-09-01 2014-09-01 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 KR102247889B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140115670A KR102247889B1 (ko) 2014-09-01 2014-09-01 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
PCT/KR2015/007263 WO2016035995A1 (ko) 2014-09-01 2015-07-13 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140115670A KR102247889B1 (ko) 2014-09-01 2014-09-01 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20160026561A true KR20160026561A (ko) 2016-03-09
KR102247889B1 KR102247889B1 (ko) 2021-05-04

Family

ID=55536925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140115670A KR102247889B1 (ko) 2014-09-01 2014-09-01 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102247889B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060015210A (ko) * 2004-08-13 2006-02-16 (주)디노밴 동화상 이미지 파일 형식 변환 시스템, 방법 및 그 방법을 수행하는 컴퓨터 프로그램이 기록된 기록 매체
KR20130134623A (ko) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 클라우드 스트리밍을 이용한 데이터 공유 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140041317A (ko) 2012-09-27 2014-04-04 브로드콤 코포레이션 비디오 소스로부터의 정적 콘텐츠 정보를 사용한 비디오의 송신

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060015210A (ko) * 2004-08-13 2006-02-16 (주)디노밴 동화상 이미지 파일 형식 변환 시스템, 방법 및 그 방법을 수행하는 컴퓨터 프로그램이 기록된 기록 매체
KR20130134623A (ko) * 2012-05-31 2013-12-10 에스케이플래닛 주식회사 클라우드 스트리밍을 이용한 데이터 공유 방법, 이를 위한 시스템, 이를 위한 단말기 및 이를 위한 서비스장치
KR20140041317A (ko) 2012-09-27 2014-04-04 브로드콤 코포레이션 비디오 소스로부터의 정적 콘텐츠 정보를 사용한 비디오의 송신

Also Published As

Publication number Publication date
KR102247889B1 (ko) 2021-05-04

Similar Documents

Publication Publication Date Title
CA2973405C (en) Method and apparatus for image synchronous displaying
CN107465954A (zh) 动态缩略图的生成方法及相关产品
CN111163360A (zh) 视频处理方法、装置、计算机可读存储介质和计算机设备
US8620096B2 (en) Virtualization server for presentation virtualization and image data encoding method
KR102199270B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102271721B1 (ko) 클라우드 스트리밍 서비스 시스템, 단말 성능을 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160082521A (ko) 크로마 하향 변환 및 상향 변환 처리
KR102247892B1 (ko) 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160026561A (ko) 클라우드 스트리밍 서비스 시스템, 시스템 자원을 절약하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160093929A (ko) 클라우드 스트리밍 서비스 시스템, 동시 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160115566A (ko) 클라우드 스트리밍 서비스 시스템, 이미지와 텍스트의 분리를 통한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102247887B1 (ko) 클라우드 스트리밍 서비스 시스템, 소스 정보를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160087225A (ko) 클라우드 스트리밍 서비스 시스템, 멀티뷰 화면을 제공하기 위한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313516B1 (ko) 클라우드 스트리밍 서비스 시스템, 메시지 기반 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160044732A (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313533B1 (ko) 클라우드 스트리밍 서비스 시스템, 전체 화면 변화를 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225610B1 (ko) 클라우드 스트리밍 서비스 시스템, 메시지 기반 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102273142B1 (ko) 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드 변환을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102272357B1 (ko) 클라우드 스트리밍 서비스 시스템, 드로잉 레이어 분리를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225609B1 (ko) 클라우드 스트리밍 서비스 시스템, 전체 화면 변화를 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160094746A (ko) 클라우드 스트리밍 서비스 시스템, 추가 인코딩을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102112050B1 (ko) 멀티미디어 청크(chunk)를 수신하는 단말기의 제어 장치 및 그 방법
KR20170022599A (ko) 클라우드 스트리밍 서비스 시스템, 컬러 비트 감소를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225608B1 (ko) 클라우드 스트리밍 서비스 시스템, 애니메이션 메시지를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20160109804A (ko) 클라우드 스트리밍 서비스 시스템, 화면 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

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