KR102232900B1 - 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 - Google Patents

클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102232900B1
KR102232900B1 KR1020140133177A KR20140133177A KR102232900B1 KR 102232900 B1 KR102232900 B1 KR 102232900B1 KR 1020140133177 A KR1020140133177 A KR 1020140133177A KR 20140133177 A KR20140133177 A KR 20140133177A KR 102232900 B1 KR102232900 B1 KR 102232900B1
Authority
KR
South Korea
Prior art keywords
video
graphic processing
cloud streaming
processing units
processing unit
Prior art date
Application number
KR1020140133177A
Other languages
English (en)
Other versions
KR20160039888A (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 KR1020140133177A priority Critical patent/KR102232900B1/ko
Priority to US15/514,388 priority patent/US10601891B2/en
Priority to JP2017517687A priority patent/JP6466574B2/ja
Priority to CN201580053750.8A priority patent/CN106797485B/zh
Priority to PCT/KR2015/007262 priority patent/WO2016052845A1/ko
Priority to EP15847254.8A priority patent/EP3203748B1/en
Publication of KR20160039888A publication Critical patent/KR20160039888A/ko
Application granted granted Critical
Publication of KR102232900B1 publication Critical patent/KR102232900B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라우드 스트리밍 서비스 시스템, 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치가 개시된다. 브라우저에서 동영상이 재생되는지 여부를 판단하고, 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩하고, 디코딩된 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공할 수 있다. 클라우드 스트리밍 서비스를 통해 동영상을 제공할 때, 클라우드 스트리밍 시스템에 구비된 복수의 그래픽 처리 유닛을 효율적으로 분배하여 서비스를 처리함으로써 클라우드 스트리밍 시스템의 자원을 보대 효과적으로 사용하는 것이 가능하다.

Description

클라우드 스트리밍 서비스 시스템, 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 {SYSTEM FOR CLOUD STREAMING SERVICE, METHOD OF CLOUD STREAMING SERVICE USING OPTUMAL GPU AND APPARATUS FOR THE SAME}
본 발명은 클라우드 스트리밍 서비스 시 시스템에 구비된 멀티 GPU 중에서 서비스에 최적인 GPU를 선택하여 웹 어플리케이션의 동영상을 스트리밍할 수 있는 클라우드 스트리밍 서비스 시스템, 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법 및 장치에 관한 것이다.
클라우드 스트리밍 서비스가 보편화되면서 클라우드 시스템을 통해 서비스할 수 있는 매체가 다양하게 개발되었고, 이와 같이 다양한 매체에 대한 서비스의 요청은 클라우드 시스템의 중앙 처리 유닛(Central Processing Unit; CPU) 만으로는 처리하기 어려운 상황에 이르렀다. 이러한 문제를 해결하기 위해 그래픽 처리 유닛(Graphics Processing Unit; GPU)를 이용하여 중앙 처리 유닛에서의 패킷 처리를 분산시킴으로써 보다 효율적으로 시스템의 자원을 활용하여 클라우드 서비스를 제공할 수 있는 기술이 개발되어 활발하게 사용되고 있다.
이 때, 브라우저의 출력 결과를 이용하는 동영상 클라우드 스트리밍 서비스 시, 브라우저의 범용성으로 인해 해당 시스템의 최적 디코더를 사용하는 것이 아니라 자신들만의 방법으로 디코더를 결정하여 동영상을 디코딩하는 경우가 발생한다. 예를 들어, 크롬 브라우저의 경우 264 동영상의 디코딩을 위해 시스템 요구에 따라 소프트웨어 디코딩을 하거나, 그래픽 처리 유닛이 복수 개 존재하는 경우 메인 그래픽 처리 유닛을 고정으로 사용하는 등 최적화된 시스템 자원의 사용이 이루어지지 않는 경우가 많다.
한국 공개 특허 제10-2012-0019711호, 2012년 3월 7일 공개 (명칭: 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법)
본 발명의 목적은, 클라우드 스트리밍 서비스를 통해 동영상을 제공할 때 클라우드 스트리밍 시스템에 구비된 복수의 그래픽 처리 유닛을 효율적으로 분배하여 서비스를 처리함으로써 클라우드 스트리밍 시스템의 자원을 보다 효과적으로 사용하는 것이다.
또한, 본 발명의 목적은 클라우드 스트리밍 시스템에 구비된 자원을 최적으로 사용하여 적은 비용으로 최대의 효과를 낼 수 있는 클라우드 스트리밍 서비스 방법을 제공하는 것이다.
또한, 본 발명의 목적은 클라우드 스트리밍 시스템의 효과적인 자원 운용을 바탕으로 사용자에게 원활한 서비스를 제공하는 것이다.
브라우저에서 동영상이 재생되는지 여부를 판단하는 동영상 재생 판단부; 상기 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하는 디코딩부; 및 디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 제어부를 포함한다.
이 때, 디코딩부는 적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정하는 GPU 사용률 측정부; 및 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 사용률이 가장 낮은 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 GPU 결정부를 포함할 수 있다.
이 때, GPU 사용률 측정부는 상기 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 상기 부하량이 클수록 상기 사용률을 높게 측정할 수 있다.
이 때, 동영상 재생 판단부는 상기 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 상기 동영상이 재생되는지 여부를 판단할 수 있다.
이 때, GPU 결정부는 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우, 상기 적어도 둘 이상의 그래픽 처리 유닛 중 메인 그래픽 처리 유닛을 이용하여 상기 동영상을 디코딩할 수 있다.
이 때, 메인 그래픽 처리 유닛은 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 디코딩을 수행하는 성능이 가장 좋은 그래픽 처리 유닛일 수 있다.
또한, 본 발명에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은, 브라우저에서 동영상이 재생되는지 여부를 판단하는 단계; 상기 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하는 단계; 및 디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 단계를 포함한다.
이 때, 디코딩하는 단계는 적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정하는 단계; 및 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 사용률이 가장 낮은 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 단계를 포함할 수 있다.
이 때, 사용률을 측정하는 단계는 상기 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 상기 부하량이 클수록 상기 사용률을 높게 측정할 수 있다.
이 때, 판단하는 단계는 상기 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 상기 동영상이 재생되는지 여부를 판단할 수 있다.
이 때, 결정하는 단계는 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우, 상기 적어도 둘 이상의 그래픽 처리 유닛 중 메인 그래픽 처리 유닛을 이용하여 상기 동영상을 디코딩할 수 있다.
이 때, 메인 그래픽 처리 유닛은 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 디코딩을 수행하는 성능이 가장 좋은 그래픽 처리 유닛일 수 있다.
또한, 본 발명의 과제 해결을 위한 또 다른 수단으로써, 상술한 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 제공한다.
또한, 본 발명에 따른 클라우드 스트리밍 서비스 시스템은 브라우저에서 동영상이 재생되는지 여부를 판단하고, 상기 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하고, 디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 클라우드 스트리밍 서버; 및 상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말을 포함한다.
본 발명에 따르면, 클라우드 스트리밍 서비스를 통해 동영상을 제공할 때 클라우드 스트리밍 시스템에 구비된 복수의 그래픽 처리 유닛을 효율적으로 분배하여 서비스를 처리함으로써 클라우드 스트리밍 시스템의 자원을 보다 효과적으로 사용할 수 있다.
또한, 본 발명은 클라우드 스트리밍 시스템에 구비된 자원을 최적으로 사용하여 적은 비용으로 최대의 효과를 낼 수 있는 클라우드 스트리밍 서비스 방법을 제공할 수 있다.
또한, 본 발명은 클라우드 스트리밍 시스템의 효과적인 자원 운용을 바탕으로 사용자에게 원활한 서비스를 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 3은 도 2에 도시된 디코딩부의 일 예를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 복수의 그래픽 처리 유닛을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치들(120-1, ..., 120-N), 어플리케이션 서버(130) 및 네트워크(140)를 포함한다.
클라우드 스트리밍 서버(110)는 단말 장치들(120-1, ..., 120-N)로부터 클라우드 스트리밍 서비스 요청을 받고, 어플리케이션 서버(130)에서 실행되는 어플리케이션 실행 결과 화면을 단말 장치들(120-1, ..., 120-N)에게 제공한다.
클라우드 스트리밍 서버(110)는 브라우저에서 동영상이 재생되는지 여부를 판단한다. 이 때, 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 동영상이 재생되는지 여부를 판단할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩한다. 이 때, 적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정할 수 있다. 이 때, 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 적어도 둘 이상의 그래픽 처리 유닛 중 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정할 수 있다. 이 때, 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 부하량이 클수록 사용률을 높게 측정할 수 있다. 이 때, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우, 적어도 둘 이상의 그래픽 처리 유닛 중 매인 그래픽 처리 유닛을 이용하여 동영상을 디코딩할 수 있다. 이 때, 메인 그래픽 처리 유닛은 적어도 둘 이상의 그래픽 처리 유닛 중 디코딩을 수행하는 성능이 가장 좋은 그래픽 처리 유닛일 수 있다.
또한, 클라우드 스트리밍 서버(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)로부터 수신한 응답을 웹 브라우저를 통해 클라우드 스트리밍 서버(110)로 전송할 수 있다. 이 때, 웹 브라우저(web browser)는 인터넷 망에서 정보를 검색하는데 사용하는 응용 프로그램으로 브라우저 혹은 인터넷 브라우저라고도 부를 수 있으며 기존에 이용되는 인터넷 익스플로러, 구글 크롬, 파이어폭스 및 사파리 및 향후 개발 가능한 웹 브라우저를 모두 포괄하는 개념이다.
네트워크(140)는 클라우드 스트리밍 서버(110)및 단말 장치들(120-1, ..., 120-N) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크(140)는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크(130)의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다. 또한, 도 1에서 클라우드 스트리밍 서버(110)와 단말 장치들(120-1, ..., 120-N) 사이에 사용되는 네트워크는 단말 장치들(120-1, ..., 120-N) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
도 2는 도 1에 도시된 클라우드 스트리밍 서버의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 클라우드 스트리밍 서버(110)는 동영상 재생 판단부(210), 디코딩부(220), 제어부(230) 및 저장부(240)를 포함한다.
동영상 재생 판단부(210)는 브라우저에서 동영상이 재생되는지 여부를 판단한다.
클라우드 스트리밍 서버(110)는 사용자의 단말로부터 서비스 요청을 수신하고 브라우저를 통해 어플리케이션 서버로 서비스 요청을 전달할 수 있다. 이 때, 어플리케이션 서버에서 서비스 요청에 상응하는 응답의 전달또한 브라우저를 통해 클라우드 스트리밍 서버(110)로 전달될 수 있다.
이 때, 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 동영상이 재생되는지 여부를 판단할 수 있다. 이 때, 각 종 컴퓨터 프로그램에서 소프트웨어 구성 요소간에 발생하는 함수 호출, 메시지 및 이벤트 등을 중간에서 바꾸거나 가로채는 후킹(Hooking) 방법이나 오픈 소스의 환경일 경우에는 소스를 변경하는 방법으로 동영상 재생여부를 판단할 수 있다. 예를 들어, 브라우저에서 이벤트를 후킹하였을 때 동영상 재생에 상응하는 이벤트가 포함된 경우에는, 사용자 단말의 서비스 요청에 따라 동영상이 재생되는 것으로 판단할 수 있다. 또한, 사용자 단말의 서비스 요청을 처리하는 어플리케이션이 오픈 소스로 구성되었다면, 어플리케이션 서버에서 서비스 요청에 상응하는 동영상을 출력할 때 클라우드 스트리밍 서버(110)가 디코딩 수행 전 미리 감지할 수 있도록 동영상 재생에 상응하는 시그널을 발생시키는 소스를 추가할 수 있다.
디코딩부(220)는 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩한다. 브라우저를 통해서 동영상이 재생되는 경우, 클라우드 스트리밍 서버(110)는 해당 동영상을 디코딩 및 렌더링하여 수신할 수 있다. 이 때, 클라우드 스트리밍 서버(110)에 구비되고 동영상의 디코딩을 수행할 수 있는 시스템 자원 중 시스템 자원 상황을 고려하였을 때 가장 효율적인 자원을 동영상 디코딩 주체로 결정하여 디코딩을 수행할 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정할 수 있다. 또한, 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 적어도 둘 이상의 그래픽 처리 유닛 중 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정할 수 있다.
그래픽 처리 유닛(Graphics Processing Unit; GPU)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛은 시스템 구성 상 복수 개가 구비될 수 있기 때문에, 복수 개의 그래픽 처리 유닛을 어떻게 활용하는지에 따라 시스템의 성능을 크게 좌우할 수 있다. 예를 들어, A, B 및 C 세 개의 그래픽 처리 유닛이 클라우드 스트리밍 시스템에 구비되어있고, 각각의 그래픽 처리 유닛의 사용률을 측정하였을 때 A의 사용률이 80%, B의 사용률이 50%, 그리고 C의 사용률이 30%라고 가정할 수 있다. 이 때, 사용자의 서비스 요청으로 브라우저에서 동영상이 재생된다면, 세 개의 그래픽 처리 유닛들 중에서 사용률이 가장 낮은 C에 상응하는 그래픽 처리 유닛으로 동영상의 디코딩을 수행함으로써 클라우드 스트리밍 서비스를 제공하기 위한 시스템의 부하량을 균등하게 배분할 수 있다. 또한, 이와 같이 시스템 부하량을 균등하게 배분하여 클라우드 스트리밍 서비스를 제공함으로써 제공자의 입장에서는 시스템 자원을 구비하는 비용을 절약할 수 있고, 서비스를 제공받는 사용자의 입장에서는 서비스의 지연됨이 없이 원활한 서비스를 제공받을 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 부하량이 클수록 사용률을 높게 측정할 수 있다. 예를 들어, 각각의 그래픽 처리 유닛에서는 처리량이 많을수록 부하량이 높아질 수 있고, 처리량이 많아 부하량이 한계에 도달하면 그래픽 처리 유닛에서 병목현상이 발생하여 서비스 처리에 지연이 발생할 가능성이 있다. 따라서, 부하량이 일정 수준 이상인 그래픽 처리 유닛에게는 과도하게 서비스 처리를 위한 수행을 요구하지 않고, 보다 부하량이 적은, 즉 그래픽 처리 유닛의 사용률이 적은 유닛에게 추가적인 서비스 처리나 디코딩 수행을 요청함으로써 혹시 발생할 수도 있는 서비스 지연을 사전에 방지할 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우, 적어도 둘 이상의 그래픽 처리 유닛 중 메인 그래픽 처리 유닛을 이용하여 동영상을 디코딩할 수 있다. 예를 들어, 기설정된 기준 사용률이 50%라고 한다면, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 이보다 낮을 경우 둘 이상의 그래픽 처리 유닛 중 어느 것을 사용하여 디코딩을 수행하여도 해당 그래픽 처리 유닛에서 병목이 발생할 가능성이 매우 낮을 수 있다. 따라서, 이와 같은 경우에는 미리 지정된 메인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
이 때, 메인 그래픽 처리 유닛은 적어도 둘 이상의 그래픽 처리 유닛 중 디코딩을 수행하는 성능이 가장 좋은 그래픽 처리 유닛일 수 있다. 예를 들어, 그래픽 처리 유닛의 제조사나 모델에 따라 각각의 처리 성능이 상이할 수 있다. 만약, 클라우드 스트리밍 서버(110)에 A와 B에 상응하는 두 개의 그래픽 처리 유닛이 구비되어 있고, A가 B보다 성능이 뛰어난 그래픽 처리 유닛이라면, A와 B의 사용률이 동일한 경우 A를 이용하여 동영상의 디코딩을 수행하는 것이 B를 이용하여 디코딩을 수행하는 것보다 더 효율적일 수 있다.
따라서, 클라우드 스트리밍 서버(110)에 복수의 그래픽 처리 유닛이 구비된 경우에는 성능이 가장 뛰어난 그래픽 유닛을 메인 그래픽 처리 유닛으로 설정하고, 상기와 같이 메일 그래픽 처리 유닛을 포함한 복수의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮은 경우에는 성능이 뛰어난 메인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
또한, 메인 그래픽 처리 유닛을 포함한 복수의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮은 경우 중에서도, 메인 그래픽 처리 유닛이 아닌 그래픽 처리 유닛의 사용률이 0%일 경우, 즉 현재 처리하고 있는 서비스가 없는 경우에는 해당 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다. 아무리 메인 그래픽 처리 유닛의 성능이 뛰어나더라도, 전혀 서비스 처리를 하고 있지 않은 그래픽 처리 유닛이 존재한다면 그래픽 처리 유닛의 부하량 분배를 위해서라도 사용률이 0%인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
제어부(230)는 디코딩된 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공한다. 이 때, 캡처(capture), 인코딩(encoding) 및 센딩(sending)에 상응하는 스트리밍 파이프라인 절차(streaming pipeline procedure)에는 렌더링(rendering)까지 포함하여, 렌더링, 캡처, 인코딩 및 센딩으로 이루어지는 것으로 볼 수 도 있다.
저장부(240)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 저장부(240)는 클라우드 스트리밍 서버(110)와 독립적으로 구성되어 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 저장부(240)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
도 3은 도 2에 도시된 디코딩부의 일 예를 나타낸 블록도이다.
도 3을 참조하면, 도 2에 도시된 디코딩부(220)는 GPU 사용률 측정부(310) 및 GPU 결정부(320)를 포함한다.
GPU 사용률 측정부(310)는 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 측정한다. 그래픽 처리 유닛은 클라우드 스트리밍 서버의 구성에 따라 복수 개가 구비될 수 있다. 따라서, 복수 개의 그래픽 처리 유닛 중 어떤 그래픽 처리 유닛을 사용할지 분별할 수 기준으로 그래픽 처리 유닛의 사용률을 측정하여 사용할 수 있다.
GPU 결정부(320)는 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 적어도 둘 이상의 그래픽 처리 유닛 중 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정한다. 그래픽 처리 유닛의 사용률은 해당 그래픽 처리 유닛에서 서비스 요청을 처리함으로써 발생할 수 있는 부하량과 비례할 수 있다. 따라서, 사용률이 높은 그래픽 처리 유닛은 부하량이 높기 때문에 병목현상으로 인한 지연이 발생할 수 있으므로, 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정하여 디코딩을 수행할 수 있다.
도 4는 본 발명의 일실시예에 따른 복수의 그래픽 처리 유닛을 나타낸 도면이다.
도 4를 참조하면, 제1 그래픽 처리 유닛(410), 제2 그래픽 처리 유닛(420), ..., 제N 그래픽 처리 유닛(430)과 같이 클라우드 스트리밍 서버에는 N개의 그래픽 처리 유닛이 구비될 수 있다.
그래픽 처리 유닛은 중앙 처리 유닛(Central Processing Unit; CPU)과 함께 클라우드 스트리밍 서버에서 사용자의 서비스 요청의 처리를 수행할 수 있다. 그래픽 처리 유닛은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서로, 그래픽 처리 유닛은 시스템 구성 상 복수 개가 구비될 수 있기 때문에, 복수 개의 그래픽 처리 유닛을 어떻게 활용하는지에 따라 시스템의 성능을 크게 좌우할 수 있다.
또한, 클라우드 스트리밍 서버에 도 4와 같이 N개의 그래픽 처리 유닛이 구비된 경우, N개의 그래픽 처리 유닛 중 메인 그래픽 처리 유닛을 설정하여 사용할 수 있다. 메인 그래픽 처리 유닛은 N개의 그래픽 처리 유닛 중 처리 성능이 가장 좋은 그래픽 처리 유닛일 수 있다.
이와 같이 메인 그래픽 처리 유닛을 설정하는 이유는 다음과 같다. 예를 들어, 도 4와 같이 N개의 그래픽 처리 유닛을 구비한 클라우드 스트리밍 서버에서 사용자의 서비스 요청에 의해 동영상의 디코딩을 수행해야 하는 경우를 가정할 수 있다. 이 때, 제1 그래픽 처리 유닛(410)부터 제N 그래픽 처리 유닛(430)까지 모든 그래픽 처리 유닛의 사용률을 측정하고, 가장 사용률이 낮은 그래픽 처리 유닛을 선택하여 동영상의 디코딩을 수행할 수 있다. 이 때, 만약 제1 그래픽 처리 유닛(410)부터 제N 그래픽 처리 유닛(430)까지 모든 그래픽 처리 유닛의 사용률이 기설정된 기준 사용률보다 낮다고 한다면, 어떤 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행하여도 클라우드 스트리밍 서버에서 서비스의 지연이 발생할 가능성이 적을 수 있다. 따라서, 이와 같이 제1 그래픽 처리 유닛(410)부터 제N 그래픽 처리 유닛(430)까지 모든 그래픽 처리 유닛 중 어느 것을 사용해도 무관한 경우, 처리 능력이 가장 좋은 메인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행함으로써 사용자에게 보다 원활하게 클라우드 스트리밍 서비스를 제공할 수 있다.
도 5는 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 브라우저에서 동영상이 재생되는지 여부를 판단한다(S510).
클라우드 스트리밍 서버는 사용자의 단말로부터 서비스 요청을 수신하고 브라우저를 통해 어플리케이션 서버로 서비스 요청을 전달할 수 있다. 이 때, 어플리케이션 서버에서 서비스 요청에 상응하는 응답의 전달또한 브라우저를 통해 클라우드 스트리밍 서버로 전달될 수 있다.
이 때, 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 동영상이 재생되는지 여부를 판단할 수 있다. 이 때, 각 종 컴퓨터 프로그램에서 소프트웨어 구성 요소간에 발생하는 함수 호출, 메시지 및 이벤트 등을 중간에서 바꾸거나 가로채는 후킹(Hooking) 방법이나 오픈 소스의 환경일 경우에는 소스를 변경하는 방법으로 동영상 재생여부를 판단할 수 있다. 예를 들어, 브라우저에서 이벤트를 후킹하였을 때 동영상 재생에 상응하는 이벤트가 포함된 경우에는, 사용자 단말의 서비스 요청에 따라 동영상이 재생되는 것으로 판단할 수 있다. 또한, 사용자 단말의 서비스 요청을 처리하는 어플리케이션이 오픈 소스로 구성되었다면, 어플리케이션 서버에서 서비스 요청에 상응하는 동영상을 출력할 때 클라우드 스트리밍 서버가 디코딩 수행 전 미리 감지할 수 있도록 동영상 재생에 상응하는 시그널을 발생시키는 소스를 추가할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩한다(S520). 브라우저를 통해서 동영상이 재생되는 경우, 클라우드 스트리밍 서버는 해당 동영상을 디코딩 및 렌더링하여 수신할 수 있다. 이 때, 클라우드 스트리밍 서버에 구비되고 동영상의 디코딩을 수행할 수 있는 시스템 자원 중 시스템 자원 상황을 고려하였을 때 가장 효율적인 자원을 동영상 디코딩 주체로 결정하여 디코딩을 수행할 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정할 수 있다. 또한, 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 적어도 둘 이상의 그래픽 처리 유닛 중 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정할 수 있다.
그래픽 처리 유닛(Graphics Processing Unit; GPU)은 3D 그래픽이 본격적으로 도입된 후, 디스플레이 화면을 보다 현실적으로 만들기 위한 각종 광원 효과 및 질감 표현 기법을 처리하기 위해 개발된 3D 그래픽 연산 전용의 프로세서이다. 이와 같은 그래픽 처리 유닛은 시스템 구성 상 복수 개가 구비될 수 있기 때문에, 복수 개의 그래픽 처리 유닛을 어떻게 활용하는지에 따라 시스템의 성능을 크게 좌우할 수 있다. 예를 들어, A, B 및 C 세 개의 그래픽 처리 유닛이 클라우드 스트리밍 시스템에 구비되어있고, 각각의 그래픽 처리 유닛의 사용률을 측정하였을 때 A의 사용률이 80%, B의 사용률이 50%, 그리고 C의 사용률이 30%라고 가정할 수 있다. 이 때, 사용자의 서비스 요청으로 브라우저에서 동영상이 재생된다면, 세 개의 그래픽 처리 유닛들 중에서 사용률이 가장 낮은 C에 상응하는 그래픽 처리 유닛으로 동영상의 디코딩을 수행함으로써 클라우드 스트리밍 서비스를 제공하기 위한 시스템의 부하량을 균등하게 배분할 수 있다. 또한, 이와 같이 시스템 부하량을 균등하게 배분하여 클라우드 스트리밍 서비스를 제공함으로써 제공자의 입장에서는 시스템 자원을 구비하는 비용을 절약할 수 있고, 서비스를 제공받는 사용자의 입장에서는 서비스의 지연됨이 없이 원활한 서비스를 제공받을 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 부하량이 클수록 사용률을 높게 측정할 수 있다. 예를 들어, 각각의 그래픽 처리 유닛에서는 처리량이 많을수록 부하량이 높아질 수 있고, 처리량이 많아 부하량이 한계에 도달하면 그래픽 처리 유닛에서 병목현상이 발생하여 서비스 처리에 지연이 발생할 가능성이 있다. 따라서, 부하량이 일정 수준 이상인 그래픽 처리 유닛에게는 과도하게 서비스 처리를 위한 수행을 요구하지 않고, 보다 부하량이 적은, 즉 그래픽 처리 유닛의 사용률이 적은 유닛에게 추가적인 서비스 처리나 디코딩 수행을 요청함으로써 혹시 발생할 수도 있는 서비스 지연을 사전에 방지할 수 있다.
이 때, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우, 적어도 둘 이상의 그래픽 처리 유닛 중 메인 그래픽 처리 유닛을 이용하여 동영상을 디코딩할 수 있다. 예를 들어, 기설정된 기준 사용률이 50%라고 한다면, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 이보다 낮을 경우 둘 이상의 그래픽 처리 유닛 중 어느 것을 사용하여 디코딩을 수행하여도 해당 그래픽 처리 유닛에서 병목이 발생할 가능성이 매우 낮을 수 있다. 따라서, 이와 같은 경우에는 미리 지정된 메인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
이 때, 메인 그래픽 처리 유닛은 적어도 둘 이상의 그래픽 처리 유닛 중 디코딩을 수행하는 성능이 가장 좋은 그래픽 처리 유닛일 수 있다. 예를 들어, 그래픽 처리 유닛의 제조사나 모델에 따라 각각의 처리 성능이 상이할 수 있다. 만약, 클라우드 스트리밍 서버에 A와 B에 상응하는 두 개의 그래픽 처리 유닛이 구비되어 있고, A가 B보다 성능이 뛰어난 그래픽 처리 유닛이라면, A와 B의 사용률이 동일한 경우 A를 이용하여 동영상의 디코딩을 수행하는 것이 B를 이용하여 디코딩을 수행하는 것보다 더 효율적일 수 있다.
따라서, 클라우드 스트리밍 서버에 복수의 그래픽 처리 유닛이 구비된 경우에는 성능이 가장 뛰어난 그래픽 유닛을 메인 그래픽 처리 유닛으로 설정하고, 상기와 같이 메일 그래픽 처리 유닛을 포함한 복수의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮은 경우에는 성능이 뛰어난 메인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
또한, 메인 그래픽 처리 유닛을 포함한 복수의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮은 경우 중에서도, 메인 그래픽 처리 유닛이 아닌 그래픽 처리 유닛의 사용률이 0%일 경우, 즉 현재 처리하고 있는 서비스가 없는 경우에는 해당 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다. 아무리 메인 그래픽 처리 유닛의 성능이 뛰어나더라도, 전혀 서비스 처리를 하고 있지 않은 그래픽 처리 유닛이 존재한다면 그래픽 처리 유닛의 부하량 분배를 위해서라도 사용률이 0%인 그래픽 처리 유닛을 이용하여 동영상의 디코딩을 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 디코딩된 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공한다(S530). 이 때, 캡처(capture), 인코딩(encoding) 및 센딩(sending)에 상응하는 스트리밍 파이프라인 절차(streaming pipeline procedure)에는 렌더링(rendering)까지 포함하여, 렌더링, 캡처, 인코딩 및 센딩으로 이루어지는 것으로 볼 수 도 있다.
또한, 도 5에는 도시하지 아니하였으나, 본 발명에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
도 6은 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법을 상세하게 나타낸 동작 흐름도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 먼저 브라우저에서 발생하는 이벤트를 감지한다(S610).
이 후, 브라우저에서 동영상 재생 이벤트가 발생하는지 판단한다(S615).
단계(S615)의 판단결과 동영상 재생 이벤트가 발생하지 않으면, 지속적으로 브라우저에서 발생하는 이벤트를 감지한다(S610).
단계(S615)의 판단결과 동영상 재생 이벤트가 발생하면, 클라우드 스트리밍 서버에 구비된 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 측정한다(S620).
이 후, 적어도 둘 이상의 그래픽 처리 유닛의 사용률이 모두 기설정된 기준 사용률보다 낮은지 여부를 판단한다(S625).
단계(S625)의 판단결과 낮다면, 메인 그래픽 처리 유닛을 동영상 디코딩 주체로 결정한다(S640).
단계(S625)의 판단결과 그렇지 않다면, 적어도 둘 이상의 그래픽 처리 유닛 중 사용률이 가장 낮은 그래픽 처리 유닛을 동영상 디코딩 주체로 결정한다(S630).
이 후, 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩한다(S650).
이 후, 디코딩된 동영상을 렌더링, 캡처, 인코딩 및 센딩에 상응하는 스트리밍 파이프라인 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공한다(S660).
본 발명에 따른 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서와 같이 본 발명에 따른 클라우드 스트리밍 서비스 시스템, 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명에 의하면 브라우저에서 동영상이 재생되는지 여부를 판단하고, 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩하고, 디코딩된 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공할 수 있다. 나아가, 클라우드 스트리밍 시스템에 구비된 자원을 최적으로 사용함으로써 서비스 제공자는 적은 비용으로 최대의 효과를 낼 수 있는 클라우드 스트리밍 서비스 시스템을 구성할 수 있다.
110: 클라우드 스트리밍 서버 120-1~ 120-N: 단말 장치들
130: 어플리케이션 서버 140: 네크워트
210: 동영상 재생 판단부 220: 디코딩부
230: 제어부 240: 저장부
310: GPU 사용률 측정부 320: GPU 결정부
410: 제1 그래픽 처리 유닛 420: 제2 그래픽 처리 유닛
430: 제N 그래픽 처리 유닛

Claims (14)

  1. 함수 호출, 메시지 및 이벤트 중 적어도 하나를 감지하여 브라우저에서 동영상이 재생되는지 여부를 판단하는 동영상 재생 판단부;
    상기 동영상의 재생이 감지되는 경우, 상기 동영상을 효율적으로 디코딩하기 위해 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하는 디코딩부; 및
    디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 제어부
    를 포함하고,
    상기 디코딩부는
    적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정하는 GPU 사용률 측정부; 및
    상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 사용률이 가장 낮은 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 GPU 결정부를 포함하고,
    상기 GPU 결정부는
    상기 적어도 둘 이상의 그래픽 처리 유닛들 각각의 성능을 고려하여 성능이 가장 좋은 메인 그래픽 처리 유닛을 설정하고, 상기 적어도 둘 이상의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우에 상기 메인 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 GPU 사용률 측정부는
    상기 적어도 둘 이상의 그래픽 처리 유닛의 부하량을 계산하여 상기 부하량이 클수록 상기 사용률을 높게 측정하는 것을 특징으로 하는 클라우드 스트리밍 서버.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 함수 호출, 메시지 및 이벤트 중 적어도 하나를 감지하여 브라우저에서 동영상이 재생되는지 여부를 판단하는 단계;
    상기 동영상의 재생이 감지되는 경우, 상기 동영상을 효율적으로 디코딩하기 위해 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하는 단계; 및
    디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 단계
    를 포함하고,
    상기 디코딩하는 단계는
    적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정하고, 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 사용률이 가장 낮은 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하되,
    상기 적어도 둘 이상의 그래픽 처리 유닛들 각각의 성능을 고려하여 성능이 가장 좋은 메인 그래픽 처리 유닛을 설정하고, 상기 적어도 둘 이상의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우에 상기 메인 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 것을 특징으로 하는 최적 GPU를 이용한 클라우드 스트리밍 서비스 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 함수 호출, 메시지 및 이벤트 중 적어도 하나를 감지하여 브라우저에서 동영상이 재생되는지 여부를 판단하고, 상기 동영상의 재생이 감지되는 경우, , 상기 동영상을 효율적으로 디코딩하기 위해 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 상기 동영상을 디코딩하고, 디코딩된 상기 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공하는 클라우드 스트리밍 서버; 및
    상기 클라우드 스트리밍 서버로부터 상기 클라우드 스트리밍 서비스에 상응하는 어플리케이션 실행 결과 화면을 수신하는 단말
    을 포함하고,
    상기 클라우드 스트리밍 서버는
    적어도 둘 이상의 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정하고, 상기 적어도 둘 이상의 그래픽 처리 유닛의 사용률을 기반으로 상기 적어도 둘 이상의 그래픽 처리 유닛 중 상기 사용률이 가장 낮은 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하되,
    상기 적어도 둘 이상의 그래픽 처리 유닛들 각각의 성능을 고려하여 성능이 가장 좋은 메인 그래픽 처리 유닛을 설정하고, 상기 적어도 둘 이상의 그래픽 처리 유닛들의 사용률이 모두 기설정된 기준 사용률보다 낮을 경우에 상기 메인 그래픽 처리 유닛을 상기 동영상 디코딩 주체로 결정하는 것을 특징으로 하는 클라우드 스트리밍 시스템.
KR1020140133177A 2014-10-02 2014-10-02 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 KR102232900B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020140133177A KR102232900B1 (ko) 2014-10-02 2014-10-02 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US15/514,388 US10601891B2 (en) 2014-10-02 2015-07-13 Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same
JP2017517687A JP6466574B2 (ja) 2014-10-02 2015-07-13 クラウドストリーミングサービスシステム、最適gpuを利用したクラウドストリーミングサービス方法及びそのための装置
CN201580053750.8A CN106797485B (zh) 2014-10-02 2015-07-13 云端流媒体服务系统、使用最佳gpu的云端流媒体服务方法及其装置
PCT/KR2015/007262 WO2016052845A1 (ko) 2014-10-02 2015-07-13 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
EP15847254.8A EP3203748B1 (en) 2014-10-02 2015-07-13 Cloud streaming service system, cloud streaming service method using optimal gpu, and apparatus for same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140133177A KR102232900B1 (ko) 2014-10-02 2014-10-02 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20160039888A KR20160039888A (ko) 2016-04-12
KR102232900B1 true KR102232900B1 (ko) 2021-03-26

Family

ID=55630843

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140133177A KR102232900B1 (ko) 2014-10-02 2014-10-02 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Country Status (6)

Country Link
US (1) US10601891B2 (ko)
EP (1) EP3203748B1 (ko)
JP (1) JP6466574B2 (ko)
KR (1) KR102232900B1 (ko)
CN (1) CN106797485B (ko)
WO (1) WO2016052845A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108012156B (zh) * 2017-11-17 2020-09-25 深圳市华尊科技股份有限公司 一种视频处理方法及控制平台
CN109981523B (zh) * 2017-12-27 2022-02-25 中国移动通信集团云南有限公司 一种多媒体文件处理方法、装置及云计算平台
CN111083569B (zh) * 2018-10-18 2021-11-05 杭州海康威视数字技术股份有限公司 一种视频播放方法及装置
CN109379541A (zh) * 2018-10-19 2019-02-22 程桂平 根据视频内容流行程度进行效果增强的方法
CN109218969A (zh) * 2018-10-19 2019-01-15 程桂平 增强云计算平台的图像处理能力的方法
CN109525663B (zh) * 2018-11-15 2020-08-07 视联动力信息技术股份有限公司 一种视频数据的展示方法和系统
KR20200097498A (ko) 2019-02-08 2020-08-19 에스케이플래닛 주식회사 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법
KR102712346B1 (ko) 2019-02-08 2024-10-02 에스케이플래닛 주식회사 비디오 클라우드 스트리밍을 위한 gpu 할당 장치 및 방법
CN110225352B (zh) * 2019-06-27 2021-03-05 深圳市云语科技有限公司 一种基于能力协商的云游戏视频编解码选择方法
CN114157919A (zh) * 2020-09-07 2022-03-08 华为云计算技术有限公司 数据处理的方法和系统、云终端、服务器和计算设备
KR102664190B1 (ko) * 2021-03-18 2024-05-07 주식회사 엘지유플러스 클라우드 렌더링 서비스
CN115297332B (zh) * 2022-10-09 2022-12-06 中诚华隆计算机技术有限公司 一种云端流媒体硬解码方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158913A1 (en) * 2002-02-15 2003-08-21 Agnoli Giovanni M. System, method, and computer program product for media publishing request processing

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006020147A (ja) * 2004-07-02 2006-01-19 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2006268246A (ja) * 2005-03-23 2006-10-05 Fujitsu Ltd 情報処理装置
US8753824B2 (en) * 2009-04-03 2014-06-17 University Of Virginia Patent Foundation Serial multiple antigen colocalization in paraffin-embedded tissue
KR101150928B1 (ko) 2010-08-26 2012-05-29 한국과학기술원 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법
US20120143986A1 (en) * 2010-11-30 2012-06-07 Rovi Technologies Corporation Systems and methods for downloading by different processes
KR20120070650A (ko) * 2010-12-22 2012-07-02 삼성전자주식회사 클라우드 컴퓨팅 기반 동영상 서비스 및 재생 방법
KR101882889B1 (ko) * 2011-03-17 2018-07-30 에스케이플래닛 주식회사 비디오 트랜스코딩 방법 및 시스템
JP5699755B2 (ja) 2011-03-31 2015-04-15 富士通株式会社 割当方法、割当装置、および割当プログラム
KR20120138567A (ko) 2011-06-15 2012-12-26 엘지전자 주식회사 콘텐츠 변환 방법 및 시스템, 그리고 콘텐츠 변환을 위해 사용되는 이동 단말기
CN102857533B (zh) * 2011-07-01 2015-11-18 云联(北京)信息技术有限公司 一种基于云计算的远程交互式系统
KR101668282B1 (ko) * 2011-07-22 2016-10-24 엔트릭스 주식회사 화면 가상화 기반 어플리케이션 구동 시스템 및 방법
US8897144B2 (en) * 2011-10-14 2014-11-25 T-Mobile Usa, Inc. Quality of user experience testing for video transmissions
KR101394291B1 (ko) * 2011-12-05 2014-06-03 건국대학교 산학협력단 스마트 미디어 클라우드 환경에서 자동화된 개인미디어 장치 선별과 데이터 관리 시스템 및 그 방법
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
KR101671310B1 (ko) * 2012-05-30 2016-11-02 엔트릭스 주식회사 화면 가상화 기반 어플리케이션 구동 시스템 및 방법
KR101720654B1 (ko) * 2012-09-14 2017-03-28 한국전자통신연구원 가상화 시스템 및 가상화 서비스 제공방법
EP2763038A3 (en) * 2013-02-01 2017-03-01 Samsung Electronics Co., Ltd Method and apparatus for processing multimedia content on a graphic cloud
CN103188345B (zh) * 2013-03-01 2016-05-18 北京邮电大学 分布式动态负载管理系统和方法
CN103237037B (zh) 2013-05-08 2015-11-18 华迪计算机集团有限公司 基于云计算架构的媒体格式转换方法和系统
US9418397B2 (en) * 2013-10-25 2016-08-16 Harman International Industries, Incorporated Start-up processing task distribution among processing units
US20150127774A1 (en) * 2013-11-01 2015-05-07 Numecent Holdings Inc. Adaptive cloud-based application streaming
US8903958B1 (en) * 2013-11-20 2014-12-02 Zspace, Inc. System and methods for cloud based 3D design and collaboration
WO2015108283A1 (ko) * 2014-01-14 2015-07-23 에스케이플래닛 주식회사 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템
CN105208434A (zh) * 2014-06-11 2015-12-30 阿里巴巴集团控股有限公司 媒体投影方法、媒体投影设备、控制终端以及云端服务器
US20170279866A1 (en) * 2016-03-22 2017-09-28 Intel Corporation Adaptation of streaming data based on the environment at a receiver

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158913A1 (en) * 2002-02-15 2003-08-21 Agnoli Giovanni M. System, method, and computer program product for media publishing request processing

Also Published As

Publication number Publication date
CN106797485A (zh) 2017-05-31
JP6466574B2 (ja) 2019-02-06
EP3203748A4 (en) 2018-04-18
JP2017536007A (ja) 2017-11-30
EP3203748B1 (en) 2021-08-25
US10601891B2 (en) 2020-03-24
EP3203748A1 (en) 2017-08-09
WO2016052845A1 (ko) 2016-04-07
CN106797485B (zh) 2019-10-25
US20170302721A1 (en) 2017-10-19
KR20160039888A (ko) 2016-04-12

Similar Documents

Publication Publication Date Title
KR102232900B1 (ko) 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US11019119B2 (en) Web-based live broadcast
CN109068153B (zh) 视频播放方法、装置和计算机可读存储介质
WO2020233142A1 (zh) 多媒体文件播放方法、装置、电子设备和存储介质
US9942347B2 (en) Dynamically adjusting media content cache size
CN104219286B (zh) 流媒体处理方法、装置、客户端、cdn节点服务器及终端
US10791160B2 (en) Method and apparatus for cloud streaming service
EP2624611A1 (en) Method and system for visualizing an adaptive screen according to a terminal
CN108337246B (zh) 防止重放延迟的媒体重放设备和媒体服务设备
WO2017206396A1 (zh) 一种视频播放方法及设备
US10178431B2 (en) Hybrid stream delivery
CN104349177B (zh) 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统
WO2020125381A1 (zh) 用于生成信息的方法和装置
US10579229B2 (en) Customizable media player framework
US9641411B1 (en) Estimating latent demand with user prioritization
KR102247886B1 (ko) 클라우드 스트리밍 서비스 시스템, 이미지 타입에 따른 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR101543295B1 (ko) 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템
KR20200097498A (ko) 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법
KR20160084215A (ko) 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치
KR20160044732A (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR101668284B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR102199276B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치
KR20210027341A (ko) 클라우드 스트리밍 서비스 시스템, 전체 화면 변화를 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN116320616A (zh) 多媒体文件处理方法、装置、电子设备以及存储介质
KR20200097499A (ko) 비디오 클라우드 스트리밍을 위한 gpu 할당 장치 및 방법

Legal Events

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