KR20200097498A - 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 - Google Patents
비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 Download PDFInfo
- Publication number
- KR20200097498A KR20200097498A KR1020190014949A KR20190014949A KR20200097498A KR 20200097498 A KR20200097498 A KR 20200097498A KR 1020190014949 A KR1020190014949 A KR 1020190014949A KR 20190014949 A KR20190014949 A KR 20190014949A KR 20200097498 A KR20200097498 A KR 20200097498A
- Authority
- KR
- South Korea
- Prior art keywords
- encoder
- cloud streaming
- resource
- video cloud
- video
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012544 monitoring process Methods 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 48
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2405—Monitoring of the internal components or processes of the server, e.g. server load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2223—Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
비디오 클라우드 스트리밍 인코더 할당 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하는 자원 모니터링부; 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하는 점유도 계산부 및 상기 자원 점유도에 기반하여 인코더를 할당하는 인코더 할당부를 포함한다.
Description
본 발명은 비디오 클라우드 스트리밍 기술에 관한 것으로, 보다 상세하게는 비디오 클라우드 스트리밍 인코더 할당 기술에 관한 것이다.
인터넷의 급속한 발달은 개인의 통신 속도를 급격히 향상시키는 결과를 가져왔으며, 이러한 통신 속도의 향상은 원격지에 위치한 컴퓨터에 접속하여 대용량의 데이터를 다운로드 또는 업로드 하거나, 원격지 컴퓨터 제어 프로그램을 사용하여 마치 원격지 컴퓨터에 로컬 로그인한 것과 같이 원격지 컴퓨터를 이용할 수 있는 환경을 제공하고 있다.
또한, 스마트폰과 같은 이동통신 단말에서 구동되는 어플리케이션이 다양하게 개발되면서, 비교적 낮은 성능의 사용자 단말에서 높은 성능을 필요로 하는 어플리케이션을 구동하기 위한 가상화 기술들이 많이 제안되고 있다.
그 중에서 어플리케이션을 서버에서 구동시키고 구동화면은 비디오 인코딩(Encoding)을 통해 압축하여 클라이언트로 전송하고, 클라이언트는 전송된 비디오를 재생하여 마치 자신의 단말에서 어플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반의 클라우드 스트리밍 서비스가 각광받고 있는 추세이다.
클라우드 스트리밍 서비스는 기본적으로 비디오 코덱 기반의 클라우드 스트리밍 기법이 적용되었다. 그러나 메뉴 디스플레이와 같이 정적인 화면을 서비스 하는 경우에도 불필요하게 화면 전체를 캡처하고 비디오 코덱을 이용하여 동작하게 되어 시스템 전체적으로 비효율적인 측면이 존재하였다.
클라우드 스트리밍 서비스가 보편화되면서 클라우드 시스템을 통해 서비스할 수 있는 매체가 다양하게 개발되었고, 이와 같이 다양한 매체에 대한 서비스의 요청은 클라우드 시스템의 중앙 처리 유닛(Central Processing Unit; CPU) 만으로는 처리하기 어려운 상황에 이르렀다. 이러한 문제를 해결하기 위해 그래픽 처리 유닛(Graphics Processing Unit; GPU)를 이용하여 중앙 처리 유닛에서의 패킷 처리를 분산시킴으로써 보다 효율적으로 시스템의 자원을 활용하여 클라우드 서비스를 제공할 수 있는 기술이 개발되어 활발하게 사용되고 있다.
이 때, 브라우저의 출력 결과를 이용하는 동영상 클라우드 스트리밍 서비스 시, 브라우저의 범용성으로 인해 해당 시스템의 최적 디코더를 사용하는 것이 아니라 자신들만의 방법으로 디코더를 결정하여 동영상을 디코딩하는 경우가 발생한다. 예를 들어, 크롬 브라우저의 경우 264 동영상의 디코딩을 위해 시스템 요구에 따라 소프트웨어 디코딩을 하거나, 그래픽 처리 유닛이 복수 개 존재하는 경우 메인 그래픽 처리 유닛을 고정으로 사용하는 등 최적화된 시스템 자원의 사용이 이루어지지 않는 경우가 많다.
비디오 클라우드 스트리밍을 위해서는 앱의 변화를 비디오 인코딩 처리할 수 있어야 한다. 비디오 클라우드 스트리밍 시 주요 자원은 CPU와 GPU 이고, 앱에 따라 CPU와 GPU의 사용량은 상이할 수 있다. 한편, 비디오 클라우드 스트리밍에서 사용되는 인코더는 HW 인코더의 경우, GPU 자원을 주로 점유하고, SW 인코더의 경우, CPU 자원을 주로 점유하게 된다.
이 때, 종래 기술은 현재 서비스 상태에 따른, CPU와 GPU 자원 상태 및 수행될 앱의 성격에 따라 유동적으로 인코더를 선택하지 않고 있기 때문에, 자원을 효율적으로 관리하지 못하는 문제점이 있다.
본 발명은 비디오 클라우드 스트리밍 시스템에 구비된 자원을 효율적으로 분배하여 서비스를 처리함으로써 비디오 클라우드 스트리밍 시스템의 자원을 보다 효과적으로 사용하는 것을 목적으로 한다.
또한, 본 발명은 비디오 클라우드 스트리밍 시스템에 구비된 자원을 최적으로 사용하여 적은 비용으로 최대의 효과를 낼 수 있는 비디오 클라우드 스트리밍 서비스 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 비디오 클라우드 스트리밍에서 구동되는 앱에 대해 최적의 인코더를 할당하고 최적의 자원 소모를 통해 더 많은 동시 접속자에게 효율적으로 비디오 클라우드 스트리밍 서비스를 제공하는 것을 목적으로 한다.
또한, 본 발명은 비디오 클라우드 스트리밍 시스템의 자원 상태를 예측하고 효율적으로 인코더를 할당하여 최대 동시 접속자를 확장시키는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하는 자원 모니터링부; 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하는 점유도 계산부 및 상기 자원 점유도에 기반하여 인코더를 할당하는 인코더 할당부를 포함한다.
이 때, 상기 자원 모니터링부는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
이 때, 상기 점유도 계산부는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
이 때, 상기 인코더 할당부는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 상기 인코더 할당부는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 비디오 클라우드 스트리밍 인코더 할당 장치의 비디오 클라우드 스트리밍 인코더 할당 방법에 있어서, 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하는 단계; 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하는 단계 및 상기 자원 점유도에 기반하여 인코더를 할당하는 단계를 포함한다.
이 때, 상기 모니터링하는 단계는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
이 때, 상기 계산하는 단계는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
이 때, 상기 할당하는 단계는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 상기 할당하는 단계는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
본 발명은 비디오 클라우드 스트리밍 시스템에 구비된 자원을 효율적으로 분배하여 서비스를 처리함으로써 비디오 클라우드 스트리밍 시스템의 자원을 보다 효과적으로 사용할 수 있다.
또한, 본 발명은 비디오 클라우드 스트리밍 시스템에 구비된 자원을 최적으로 사용하여 적은 비용으로 최대의 효과를 낼 수 있는 비디오 클라우드 스트리밍 서비스 방법을 제공할 수 있다.
또한, 본 발명은 비디오 클라우드 스트리밍에서 구동되는 앱에 대해 최적의 인코더를 할당하고 최적의 자원 소모를 통해 더 많은 동시 접속자에게 효율적으로 비디오 클라우드 스트리밍 서비스를 제공할 수 있다.
또한, 본 발명은 비디오 클라우드 스트리밍 시스템의 자원 상태를 예측하고 효율적으로 인코더를 할당하여 최대 동시 접속자를 확장시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법을 나타낸 동작흐름도이다.
도 4는 도 3에 도시된 인코더 할당 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법을 나타낸 동작흐름도이다.
도 4는 도 3에 도시된 인코더 할당 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성되어 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서비스 시스템은 클라우드 스트리밍 서버(110), 단말 장치들(120-1, …, 120-N), 어플리케이션 서버(130) 및 네트워크(140)를 포함한다.
클라우드 스트리밍 서버(110)는 단말 장치들(120-1, …, 120-N)로부터 클라우드 스트리밍 서비스 요청을 받고, 어플리케이션 서버(130)에서 실행되는 어플리케이션 실행 결과 화면을 단말 장치들(120-1, …, 120-N)에게 제공한다.
클라우드 스트리밍 서버(110)는 브라우저에서 동영상이 재생되는지 여부를 판단한다. 이 때, 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 동영상이 재생되는지 여부를 판단할 수 있다.
또한, 클라우드 스트리밍 서버(110)는 동영상의 재생이 감지되는 경우, 시스템 자원 상황에 기반하여 결정된 동영상 디코딩 주체를 이용하여 동영상을 디코딩하고 동영상 인코딩 주체를 이용하여 동영상을 인코딩할 수 있다. 이 때, 적어도 둘 이상의 중앙 처리 장치(Central Processing Unit; CPU) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU)의 사용률을 측정할 수 있다. 이 때, 적어도 둘 이상의 CPU와 GPU의 사용률을 기반으로 구동하려는 앱의 CPU 및 GPU 자원 점유도를 파악하고, 파악한 데이터를 근거로 HW 혹은 SW 인코더를 할당할 수 있다.
단말 장치들(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) 상호간에 사용되는 네트워크와 상이한 것일 수도 있고, 동일한 것일 수도 있다.
클라우드 스트리밍 서버(110)는 사용자의 단말로부터 서비스 요청을 수신하고 브라우저를 통해 어플리케이션 서버로 서비스 요청을 전달할 수 있다. 이 때, 어플리케이션 서버에서 서비스 요청에 상응하는 응답의 전달또한 브라우저를 통해 클라우드 스트리밍 서버(110)로 전달될 수 있다.
이 때, 브라우저에서 발생하는 동영상 재생에 상응하는 이벤트를 감지하여 동영상이 재생되는지 여부를 판단할 수 있다. 이 때, 각 종 컴퓨터 프로그램에서 소프트웨어 구성 요소간에 발생하는 함수 호출, 메시지 및 이벤트 등을 중간에서 바꾸거나 가로채는 후킹(Hooking) 방법이나 오픈 소스의 환경일 경우에는 소스를 변경하는 방법으로 동영상 재생여부를 판단할 수 있다. 예를 들어, 브라우저에서 이벤트를 후킹하였을 때 동영상 재생에 상응하는 이벤트가 포함된 경우에는, 사용자 단말의 서비스 요청에 따라 동영상이 재생되는 것으로 판단할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 디코딩된 동영상에 대해 캡처, 인코딩 및 센딩에 상응하는 스트리밍 절차를 수행하여 사용자의 단말로 클라우드 스트리밍 서비스를 제공한다. 이 때, 캡처(capture), 인코딩(encoding) 및 센딩(sending)에 상응하는 스트리밍 파이프라인 절차(streaming pipeline procedure)에는 렌더링(rendering)까지 포함하여, 렌더링, 캡처, 인코딩 및 센딩으로 이루어지는 것으로 볼 수 도 있다.
이 때, 클라우드 스트리밍 서버(110)는 상술한 바와 같이 본 발명의 실시예에 따른 클라우드 스트리밍 서비스 과정에서 발생되는 다양한 정보를 저장한다.
실시예에 따라, 클라우드 스트리밍 서버(110)와 독립적으로 구성되어 스토리지가 클라우드 스트리밍 서비스를 위한 기능을 지원할 수 있다. 이 때, 스토리지는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다.
또한, 상술한 바와 같이 구성되는 클라우드 스트리밍 서버(110)는 하나 이상의 서버로 구현될 수 있다.
한편, 클라우드 스트리밍 서버(110)는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
이 때, 클라우드 스트리밍 서버(110)는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하고, 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하고, 상기 자원 점유도에 기반하여 인코더를 할당할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
예를 들어, 가벼운 UI 앱의 경우 CPU 자원은 점유하나, GPU 자원은 거의 사용되지 않고, GPU를 주로 사용하도록 만들어진 앱(동영상 혹은 WebGL 등)의 경우에는 GPU 자원이 주로 점유되고 CPU는 상대적으로 적게 점유될 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 신규 세션에 하드웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우 신규 세션에 하드웨어 인코더를 할당하고 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 신규 세션에 하드웨어 인코더 할당이 불가능한 경우, 신규 세션에 소프트웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우, 신규 세션에 소프트웨어 인코더를 할당하고, 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 클라우드 스트리밍 서버(110)는 신규세션에 하드웨어 인코더 할당과 소프트웨어 인코더 할당이 모두 실패한 경우, 인코더 할당 절차를 종료하고, 비디오 클라우드 서비스 시작을 대기하거나 중지할 수도 있다.
이 때, 클라우드 스트리밍 서버(110)는 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치에 상응할 수도 있다.
도 2는 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치는 자원 모니터링부(111), 점유도 계산부(112), 인코더 할당부(113) 및 서비스 제공부(114)를 포함한다.
자원 모니터링부(111)는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링할 수 있다.
점유도 계산부(112)는 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산할 수 있다.
인코더 할당부(113)는 상기 자원 점유도에 기반하여 인코더를 할당할 수 있다.
서비스 제공부(114)는 할당된 인코더를 이용하여 비디오 클라우드 스트르밍 서비스를 시작할 수 있다.
이 때, 자원 모니터링부(111)는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
이 때, 점유도 계산부(112)는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
예를 들어, 가벼운 UI 앱의 경우 CPU 자원은 점유하나, GPU 자원은 거의 사용되지 않고, GPU를 주로 사용하도록 만들어진 앱(동영상 혹은 WebGL 등)의 경우에는 GPU 자원이 주로 점유되고 CPU는 상대적으로 적게 점유될 수 있다.
이 때, 인코더 할당부(113)는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 인코더 할당부(113)는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
이 때, 인코더 할당부(113)는 신규 세션에 하드웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우 신규 세션에 하드웨어 인코더를 할당하고 서비스 제공부(114)는 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 인코더 할당부(113)는 신규 세션에 하드웨어 인코더 할당이 불가능한 경우, 신규 세션에 소프트웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우, 신규 세션에 소프트웨어 인코더를 할당하고, 서비스 제공부(114)는 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 인코더 할당부(113)는 신규세션에 하드웨어 인코더 할당과 소프트웨어 인코더 할당이 모두 실패한 경우, 인코더 할당 절차를 종료하고, 서비스 제공부(114)는 비디오 클라우드 서비스 시작을 대기하거나 중지할 수도 있다.
도 3은 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법을 나타낸 동작흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 먼저 자원 모니터링을 수행할 수 있다(S210).
즉, 단계(S210)는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링할 수 있다.
이 때, 단계(S210)는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
또한, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 자원 점유도를 계산할 수 있다(S220).
즉, 단계(S220)는 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산할 수 있다.
이 때, 단계(S220)는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
예를 들어, 가벼운 UI 앱의 경우 CPU 자원은 점유하나, GPU 자원은 거의 사용되지 않고, GPU를 주로 사용하도록 만들어진 앱(동영상 혹은 WebGL 등)의 경우에는 GPU 자원이 주로 점유되고 CPU는 상대적으로 적게 점유될 수 있다.
또한, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 인코더를 할당 할 수 있다(S230).
즉, 단계(S230)는 상기 자원 점유도에 기반하여 인코더를 할당할 수 있다.
이 때, 단계(S230)는 할당된 인코더를 이용하여 비디오 클라우드 스트르밍 서비스를 시작할 수 있다.
이 때, 단계(S230)는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 단계(S230)는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
이 때, 단계(S230)는 신규 세션에 하드웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우 신규 세션에 하드웨어 인코더를 할당하고 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 단계(S230)는 신규 세션에 하드웨어 인코더 할당이 불가능한 경우, 신규 세션에 소프트웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우, 신규 세션에 소프트웨어 인코더를 할당하고, 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 단계(S230)는 신규세션에 하드웨어 인코더 할당과 소프트웨어 인코더 할당이 모두 실패한 경우, 인코더 할당 절차를 종료하고, 비디오 클라우드 서비스 시작을 대기하거나 중지할 수도 있다.
도 4는 도 3에 도시된 인코더 할당 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 먼저 자원 모니터링을 수행할 수 있다(S210).
즉, 단계(S210)는 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링할 수 있다.
이 때, 단계(S210)는 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
또한, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 자원 점유도를 계산할 수 있다(S220).
즉, 단계(S220)는 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산할 수 있다.
이 때, 단계(S220)는 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
예를 들어, 가벼운 UI 앱의 경우 CPU 자원은 점유하나, GPU 자원은 거의 사용되지 않고, GPU를 주로 사용하도록 만들어진 앱(동영상 혹은 WebGL 등)의 경우에는 GPU 자원이 주로 점유되고 CPU는 상대적으로 적게 점유될 수 있다.
또한, 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 방법은 인코더를 할당 할 수 있다(S230).
즉, 단계(S230)는 상기 자원 점유도에 기반하여 인코더를 할당할 수 있다.
이 때, 단계(S230)는 할당된 인코더를 이용하여 비디오 클라우드 스트르밍 서비스를 시작할 수 있다.
이 때, 단계(S230)는 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 단계(S230)는 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
이 때, 단계(S230)는 신규 세션에 하드웨어 인코더 할당이 가능한지 여부를 확인하고(S231), 할당이 가능한 경우 신규 세션에 하드웨어 인코더를 할당하고(S232) 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다(S235).
이 때, 단계(S231)는 신규 세션에 하드웨어 인코더 할당이 불가능한 경우, 신규 세션에 소프트웨어 인코더 할당이 가능한지 여부를 확인하고(S233), 할당이 가능한 경우, 신규 세션에 소프트웨어 인코더를 할당하고(S234), 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다(S235).
이 때, 단계(S233)는 신규세션에 하드웨어 인코더 할당과 소프트웨어 인코더 할당이 모두 실패한 경우(S236), 단계(S236)는 인코더 할당 절차를 종료하고, 비디오 클라우드 서비스 시작을 대기하거나 중지할 수도 있다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 클라우드 스트리밍 서버 및 비디오 클라우드 스트리밍 인코더 할당 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 5에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
따라서, 본 발명의 일실시예에 따른 컴퓨터 시스템은 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하고, 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하고, 상기 자원 점유도에 기반하여 인코더를 할당할 수 있다.
이 때, 컴퓨터 시스템은 상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링할 수 있다.
이 때, 컴퓨터 시스템은 상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 할 수 있다.
예를 들어, 가벼운 UI 앱의 경우 CPU 자원은 점유하나, GPU 자원은 거의 사용되지 않고, GPU를 주로 사용하도록 만들어진 앱(동영상 혹은 WebGL 등)의 경우에는 GPU 자원이 주로 점유되고 CPU는 상대적으로 적게 점유될 수 있다.
이 때, 컴퓨터 시스템은 상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당할 수 있다.
이 때, 컴퓨터 시스템은 상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당할 수 있다.
이 때, 컴퓨터 시스템은 신규 세션에 하드웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우 신규 세션에 하드웨어 인코더를 할당하고 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 컴퓨터 시스템은 신규 세션에 하드웨어 인코더 할당이 불가능한 경우, 신규 세션에 소프트웨어 인코더 할당이 가능한지 여부를 확인하고, 할당이 가능한 경우, 신규 세션에 소프트웨어 인코더를 할당하고, 신규 세션으로 비디오 클라우드 스트리밍 서비스를 시작할 수 있다.
이 때, 컴퓨터 시스템은 신규세션에 하드웨어 인코더 할당과 소프트웨어 인코더 할당이 모두 실패한 경우, 인코더 할당 절차를 종료하고, 비디오 클라우드 서비스 시작을 대기하거나 중지할 수도 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
이상에서와 같이 본 발명의 일실시예에 따른 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 의하면 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법은 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하고, 상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하고, 상기 자원 점유도에 기반하여 인코더를 할당하는 것이 가능하다.
110, 310, 710, 810: 클라우드 스트리밍 라우터
120-1~ 120-N: 클라우드 스트리밍 서버
130-1~ 130-N, 740, 840: 단말 140: 네트워크
111: 자원 모니터링부
112: 점유도 계산부
113: 인코더 할당부
114: 서비스 제공부
1100: 컴퓨터 시스템
1110: 프로세서
1120: 버스
1130: 메모리
1131: 롬
1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지
1170: 네트워크 인터페이스
1180: 네트워크
120-1~ 120-N: 클라우드 스트리밍 서버
130-1~ 130-N, 740, 840: 단말 140: 네트워크
111: 자원 모니터링부
112: 점유도 계산부
113: 인코더 할당부
114: 서비스 제공부
1100: 컴퓨터 시스템
1110: 프로세서
1120: 버스
1130: 메모리
1131: 롬
1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지
1170: 네트워크 인터페이스
1180: 네트워크
Claims (10)
- 비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하는 자원 모니터링부;
상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하는 점유도 계산부; 및
상기 자원 점유도에 기반하여 인코더를 할당하는 인코더 할당부;
를 포함하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 장치. - 청구항 1에 있어서,
상기 자원 모니터링부는
상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 장치. - 청구항 2에 있어서,
상기 점유도 계산부는
상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 장치. - 청구항 3에 있어서,
상기 인코더 할당부는
상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 장치. - 청구항 4에 있어서,
상기 인코더 할당부는
상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 장치. - 비디오 클라우드 스트리밍 인코더 할당 장치의 비디오 클라우드 스트리밍 인코더 할당 방법에 있어서,
비디오 클라우드 스트리밍을 위한 자원의 상태를 모니터링하는 단계;
상기 비디오 클라우드 스트리밍을 통해 구동되는 앱에 필요한 자원 점유도를 계산하는 단계; 및
상기 자원 점유도에 기반하여 인코더를 할당하는 단계;
를 포함하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 방법. - 청구항 6에 있어서,
상기 모니터링하는 단계는
상기 자원의 상태에 상응하는 중앙 처리 장치(CENTRAL PROCESSING UNIT, CPU) 및 그래픽 처리 유닛(GRAPHIC PROCESSING UNT, GPU)의 사용량을 모니터링하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 방법. - 청구항 7에 있어서,
상기 계산하는 단계는
상기 자원의 상태를 모니터링한 결과와 상기 앱의 종류에 기반하여 기설정된 조건에 따라 상기 CPU의 자원 점유도와 상기 GPU의 자원 점유도를 계산하여 앱의 종류 별로 자원 점유도를 데이터베이스화 하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 방법. - 청구항 8에 있어서,
상기 할당하는 단계는
상기 인코더의 종류를 식별하여 하드웨어 인코더와 소프트웨어 인코더를 구별하고, 상기 앱의 종류 별로 데이터베이스화된 자원 점유도에 기반하여 하드웨어 인코더와 소프트웨어 인코더 중 어느 하나를 할당하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 방법. - 청구항 9에 있어서,
상기 할당하는 단계는
상기 비디오 클라우드 스트리밍에 접속 가능한 동시 접속자수를 더 고려하여 가장 많은 동시 접속자를 수용할 수 있는 인코더를 할당하는 것을 특징으로 하는 비디오 클라우드 스트리밍 인코더 할당 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190014949A KR20200097498A (ko) | 2019-02-08 | 2019-02-08 | 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190014949A KR20200097498A (ko) | 2019-02-08 | 2019-02-08 | 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200097498A true KR20200097498A (ko) | 2020-08-19 |
Family
ID=72265556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190014949A KR20200097498A (ko) | 2019-02-08 | 2019-02-08 | 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200097498A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220161070A (ko) * | 2021-05-28 | 2022-12-06 | 주식회사 엘지유플러스 | 클라우드 환경에서 컨테이너 기반의 gpu 자원 공유 방법 및 장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160039888A (ko) | 2014-10-02 | 2016-04-12 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
-
2019
- 2019-02-08 KR KR1020190014949A patent/KR20200097498A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160039888A (ko) | 2014-10-02 | 2016-04-12 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220161070A (ko) * | 2021-05-28 | 2022-12-06 | 주식회사 엘지유플러스 | 클라우드 환경에서 컨테이너 기반의 gpu 자원 공유 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102232900B1 (ko) | 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
US9106521B2 (en) | Method and system for visualizing an adaptive screen according to a terminal | |
CN109068153B (zh) | 视频播放方法、装置和计算机可读存储介质 | |
US11329928B2 (en) | Dynamic allocation of network resources using external inputs | |
US9348602B1 (en) | Resource allocation for staged execution pipelining | |
JP2022525496A (ja) | 通信方法、装置、電子機器及びコンピュータプログラム | |
US8589565B2 (en) | Client-server session parallelism | |
CN104349177A (zh) | 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统 | |
CN113422839A (zh) | 基于云计算的云手机系统及控制方法、介质及电子设备 | |
US20160029050A1 (en) | Hybrid Stream Delivery | |
JP6517307B2 (ja) | クラウドストリーミングサービス提供方法及びそのための装置 | |
US20170171211A1 (en) | Connecting and Retrieving Security Tokens Based on Context | |
KR20200097498A (ko) | 비디오 클라우드 스트리밍 인코더 할당 장치 및 방법 | |
CN107426114B (zh) | 资源分配方法及系统 | |
WO2022068276A1 (zh) | 桌面云系统以及相关方法、装置、设备、介质 | |
KR102354268B1 (ko) | 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 | |
KR102712346B1 (ko) | 비디오 클라우드 스트리밍을 위한 gpu 할당 장치 및 방법 | |
KR20150084413A (ko) | 클라우드 스트리밍 서비스를 위한 어플리케이션 에러 검출 방법, 이를 위한 장치 및 시스템 | |
KR20150084115A (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버 | |
KR102107374B1 (ko) | 가상화 기반 훈련 콘텐츠 제공 시스템 | |
KR101668284B1 (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치 | |
CN106534912A (zh) | 音/视频流发布方法、流媒体服务器、发布端及流媒体系统 | |
KR102247888B1 (ko) | 클라우드 스트리밍 서비스 시스템, 선택적 스트리밍 파이프라인 방식에 기반한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
KR20160109804A (ko) | 클라우드 스트리밍 서비스 시스템, 화면 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
KR102199276B1 (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal |