KR101403935B1 - 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버 - Google Patents

마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버 Download PDF

Info

Publication number
KR101403935B1
KR101403935B1 KR1020120067789A KR20120067789A KR101403935B1 KR 101403935 B1 KR101403935 B1 KR 101403935B1 KR 1020120067789 A KR1020120067789 A KR 1020120067789A KR 20120067789 A KR20120067789 A KR 20120067789A KR 101403935 B1 KR101403935 B1 KR 101403935B1
Authority
KR
South Korea
Prior art keywords
server
micro
unit
streaming
video
Prior art date
Application number
KR1020120067789A
Other languages
English (en)
Other versions
KR20130001169A (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 김성한
Publication of KR20130001169A publication Critical patent/KR20130001169A/ko
Application granted granted Critical
Publication of KR101403935B1 publication Critical patent/KR101403935B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]

Abstract

본 발명은 대용량의 동영상 스트리밍 서비스를 위해 요구되는 고효율의 동영상 스트리밍 서버에 관한 것이다. 특히, 본 발명은 스마트기기 등에 적용되는 저전력 저용량 프로세서(예: 모바일 SoC)를 다수 활용하여 마이크로-서버 클러스터를 구성하고 이들 저전력 저용량 프로세서가 각자 담당하는 클라이언트를 위한 트랜스코딩과 비트레이트 변환을 수행하여 다양한 동영상 포맷과 클라이언트와 서버 간의 통신대역폭에 실시간 대응하는 적응형 HTTP 스트리밍을 구현함으로써 기존의 단일 대용량 x86 프로세서를 활용한 기술과 대비하여 고효율/저전력/고집적의 동영상 스트리밍 서버를 구현하는 기술에 관한 것이다. 본 발명에 따르면 종래기술에 비해 획기적인 전력절감과 고집적률을 달성할 수 있고 특히 사용 전력과 장비점유 면적대비하여 동시접속자 수가 배가된 고집적 서버를 구성할 수 있는 장점이 있다. 또한, 본 발명에 따르면 동영상 스트리밍 서버에서 적응형 HTTP 스트리밍 구현을 위해 별도의 스토리지 용량을 요구하지 않기 때문에 용적임대비용, 전기사용료, 스토리지 교체 비용을 획기적으로 절감할 수 있으며 그에 따라 운영비용이 저렴하여 대용량 상업적 서비스에 적합하다는 장점이 있다.

Description

마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버 {MICRO-SERVER CLUSTER TYPE ADAPTIVE VIDEO STREAMING SERVER}
본 발명은 대용량의 동영상 스트리밍 서비스를 위해 요구되는 고효율의 동영상 스트리밍 서버에 관한 것이다. 특히, 본 발명은 스마트기기 등에 적용되는 저전력 저용량 프로세서(예: 모바일 SoC)를 다수 활용하여 마이크로-서버 클러스터를 구성하고 이들 저전력 저용량 프로세서가 각자 담당하는 클라이언트를 위한 트랜스코딩과 비트레이트 변환을 수행하여 다양한 동영상 포맷과 클라이언트와 서버 간의 통신대역폭에 실시간 대응하는 적응형 HTTP 스트리밍을 구현함으로써 기존의 단일 대용량 x86 프로세서를 활용한 기술과 대비하여 고효율/저전력/고집적의 동영상 스트리밍 서버를 구현하는 기술에 관한 것이다.
스마트폰(예: 아이폰, 갤럭시S)과 스마트패드(예: 아이패드, 갤럭시TAB)와 같은 각종 스마트 디바이스가 출현함으로 인해 이동통신 전화망을 통한 무선인터넷의 수요가 폭증하고 있고, 이러한 무선인터넷 수요에 대응하기 위해 기존 3G에서 4G(LTE 포함)로 이동통신망의 진화가 진행되고 있다.
기존 3G 기술에서는 무선인터넷을 통해 오디오 스트리밍 서비스나 통신서비스 회사 주도의 화상통화는 어느정도 가능하였지만 고화질 비디오 스트리밍 서비스는 네트워크 전체의 통신 부하를 지나치게 증가시키는 것이어서 원할한 서비스가 곤란하였다. 하지만 그러한 문제는 4G 이동통신망이 확충됨으로 인해 완전히 해소될 것으로 전망된다. 이로 인해 사용자들이 스마트 디바이스를 휴대하면서 언제 어디서나 무선인터넷 네트워크가 접속가능한 모든 지역에서 스트리밍을 통해 실시간으로 고화질 비디오를 온디맨드(On Demand)로 감상할 수 있는 시대가 근일간에 도래할 것으로 예상된다.
이러한 스마트 디바이스에 비디오 스트리밍을 제공하는 장치는 비디오 스트리밍 서버(video streaming server)이다. 현재 비디오 스트리밍 서버 기술은 고전적인 RTSP와 같은 것 보다는 웹 접근 표준 프로토콜인 HTTP를 통해 전달하는 방식이 주류를 이루어가고 있으며, 스트리밍 서버에 접속된 클라이언트의 실질 통신 대역폭에 대응하여 동영상 서비스 품질을 변경하면서 서비스하는 적응형 HTTP 스트리밍(HTTP adaptive streaming)을 실현하고 있다. 적응형 HTTP 스트리밍 기술로는 애플(Apple)의 HLS(HTTP Live Streaming)와 어도비(Adobe)의 HDS(HTTP Dynamic Streaming)를 들 수 있다.
스트리밍 서버에서 종래로 적응형 HTTP 스트리밍을 구현하는 방식에 대해 살펴본다. 스트리밍 서버가 하나의 영상(예: 영화 '리얼스틸 REAL-STEEL')에 대하여 여러 비트레이트로 인코딩된 동영상 파일을 복수 개 준비해두었다가 실시간으로 측정되는 클라이언트와의 통신 대역폭에 대응하여 이들 동영상 파일 간에 스위칭하는 방식으로 기능을 구현한다. 이는 웹캐쉬를 주 기능으로 하는 에지서버의 확산을 통해 전체 네트워크의 부하를 경감시키고 서비스 품질을 향상하는 CDN 사업자의 이해와 맞물려서 널리 보급되고 있다.
이러한 종래기술의 적응형 HTTP 스트리밍 방식에서는 서버장치에 대용량의 스토리지 장비가 부착되는 것이 필수적이다. 영상마다 여러 개의 동영상 파일을 마련해두어야 하기에 서비스를 제공하려는 영상의 갯수에 비해 훨씬 큰 용량의 스토리지가 필요해지는 것이다.
하지만 서버사이드의 스토리지는 주기적으로 교체하는 소모성 자원이므로 이러한 종래기술의 방식은 엄청난 비용을 유발한다. 또한, 인터넷 서비스 사업자는 서비스의 원할한 전개를 위해 백본 네트워크에 직접 접근하는 IDC(인터넷 데이터 센터)를 통해 서비스를 제공하는 것이 일반적이므로, 그에 따라 네트워크 비용과 함께 서버장비가 차지하는 용적에 따른 임대비용, 각종 장비가 소모하는 전력비용도 엄청난 비용부담을 유발한다.
따라서 적응형 HTTP 스트리밍과 관련하여 종래기술과 같은 방식보다는 영상 컨텐트 별로 최고화질인 동영상 파일을 준비하고 이를 어떻게든 활용해서 클라이언트와 서버 간의 가변적인 통신대역폭에 대응할 수 있도록 구성하는 것이 이론적으로는 훨씬 효과적이다.
한편, 인터넷에서 유포되는 동영상은 종류와 형식이 매우 다양한데 이를 합법적으로 배포하려는 사업주체가 원 저작자를 통하여 고화질 동영상을 입수하여 단일 포맷으로 서비스하려는 니즈(needs)가 있는데, 이는 종래의 기술로도 충분히 상업적으로 적절한 가격으로 구현 가능하다.
하지만, 사용자가 등록하는 동영상을 네트워크 비용과 스토리지 비용만 받고 중계하는 웹하드 사업자의 경우를 살펴보면 상황은 전혀 달라진다. 즉, 매순간마다 다수의 사용자들이 웹하드 사이트로 등록하는 동영상의 갯수가 너무나도 많은데 실시간으로 접속하는 다수의 스마트 디바이스에 대하여 이들 다수의 동영상을 각자 적합한 동영상 포맷(비고: 스마트 디바이스별로 지원하는 동영상 포맷이 상이함. 예: MPEG2, H.264, AAC, MP4 등)으로 트랜스코딩하여 스트리밍 공급하는 것은 x86 대용량 프로세서를 사용하는 기존의 서버기술로는 구현 및 운영에 있어 상당한 비용이 소요된다.
따라서 이상과 같은 문제를 해결할 수 있는 기술이 관련 기술분야에서 종래로부터 절실하게 요구되어 왔다.
본 발명의 목적은 대용량의 동영상 스트리밍 서비스를 위해 요구되는 고효율의 동영상 스트리밍 서버를 제공하는 것이다. 특히, 본 발명의 목적은 스마트기기 등에 적용되는 저전력 저용량 프로세서(예: 모바일 SoC)를 다수 활용하여 마이크로-서버 클러스터를 구성하고 이들 저전력 저용량 프로세서가 각자 담당하는 클라이언트를 위한 트랜스코딩과 비트레이트 변환을 수행하여 다양한 동영상 포맷과 클라이언트와 서버 간의 통신대역폭에 실시간 대응하는 적응형 HTTP 스트리밍을 구현함으로써 기존의 단일 대용량 x86 프로세서를 활용한 기술과 대비하여 고효율/저전력/고집적의 동영상 스트리밍 서버를 구현하는 것이다.
상기의 목적을 달성하기 위한 본 발명은 네트워크를 통해 연결된 다수의 클라이언트에 대해 적응형 동영상 스트리밍 서비스를 제공하기 위한 스트리밍 서버로서, 네트워크를 통한 액세스를 제공하는 네트워크 접속부(220); 동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 관리하는 동영상 파일 관리부(230); 네트워크 접속부(220)를 통해 연결된 클라이언트가 요구하는 동영상에 대한 적응형 스트리밍 서비스를 제공하는 마이크로-서버 유닛으로서, 위 연결된 클라이언트와의 통신대역폭을 지속적으로 감지하는 통신대역폭 감시부(113)와 그 감지된 통신대역폭에 대응하여 지속적으로 변경 설정된 비트레이트로 위 요구된 동영상에 대한 비트레이트 변환 인코딩을 실시간으로 수행하는 비트레이트 변환부(114)와 실시간 비트레이트 변환 인코딩된 동영상 데이터를 클라이언트로 스트리밍 제공하는 스트리밍부(115)를 구비한 저전력 저용량 프로세서(111)를 포함하여 이루어지는 마이크로-서버 유닛(110); 동영상 스트리밍 서비스를 위한 클라이언트 용량을 제공하기 위하여 마이크로-서버 유닛(110, 120, 130)을 다수 연결하여 구성한 마이크로-서버 클러스터(100); 네트워크를 통해 클라이언트로부터 동영상 스트리밍 서비스를 요청받으면 마이크로-서버 클러스터(100)로부터 아이들-상태 마이크로-서버 유닛(110)을 식별하여 클라이언트를 담당하도록 할당하고 위 요청된 동영상 파일을 동영상 파일 관리부(230)로부터 식별하여 그 할당된 마이크로-서버 유닛(110)으로 제공하는 클러스터 제어부(210);를 포함하여 구성될 수 있다.
또한 상기의 목적을 달성하기 위한 본 발명에 따른 동영상 스트리밍 서버는, 네트워크를 통한 액세스를 제공하는 네트워크 접속부(220); 네트워크 접속부(220)에 대한 멀티루트 가상화에 따른 액세스를 제공하는 클러스터 스위칭부(250); 동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 관리하는 동영상 파일 관리부(230); 네트워크 접속부(220)를 통해 연결된 클라이언트가 요구하는 동영상에 대한 적응형 스트리밍 서비스를 제공하는 마이크로-서버 유닛으로서, 그 연결된 클라이언트와의 통신대역폭을 지속적으로 감지하는 통신대역폭 감시부(113)와 그 감지된 통신대역폭에 대응하여 지속적으로 변경 설정된 비트레이트로 그 요구된 동영상에 대한 비트레이트 변환 인코딩을 실시간으로 수행하는 비트레이트 변환부(114)와 실시간 비트레이트 변환 인코딩된 동영상 데이터를 클라이언트로 스트리밍 제공하는 스트리밍부(115)와 마이크로-서버 유닛이 아이들-상태임이 식별되면 클라이언트에 대한 동영상 스트리밍 요구를 감지하여 클러스터 스위칭부(250)를 통해 동영상 스트리밍 서비스가 개시되도록 관리하는 MR액세스부(119)를 구비한 저전력 저용량 프로세서(111)를 포함하여 이루어지는 마이크로-서버 유닛(110); 동영상 스트리밍 서비스를 위한 클라이언트 용량을 제공하기 위하여 마이크로-서버 유닛(110, 120, 130)을 멀티루트 가상화 기반으로 클러스터 스위칭부(250)를 통해 네트워크 접속부(220)를 호스트로 액세스하도록 다수 연결하여 구성한 마이크로-서버 클러스터(100);를 포함하여 구성될 수 있다.
본 발명에서 저전력 저용량 프로세서(111)는 위 연결된 클라이언트가 지원하는 동영상 포맷을 식별하고 그 식별된 동영상 포맷에 따라 그 요청된 동영상 파일의 데이터를 실시간 트랜스코딩하는 트랜스코딩부(112);를 더 포함하여 구성되는 것이 바람직하며, 또한 본 발명에서 저전력 저용량 프로세서(111)는 비디오 가속 모듈과 3D GPU 모듈을 내장한 ARM 기반 모바일 SoC 프로세서를 포함하여 구성되는 것이 바람직하다.
또한, 본 발명에서, 마이크로-서버 클러스터(100)를 구성하는 다수의 마이크로-서버 유닛(110, 120, 130)은 2개로 그룹화되어 제 1 마이크로-서버 그룹과 제 2 마이크로-서버 그룹으로 분할되고, 제 1 마이크로-서버 그룹에 속하는 마이크로-서버 유닛은 동영상 파일에 대한 비트레이트별 비트레이트 변환 인코딩 및 동영상 포맷별 트랜스코딩을 프리프로세싱으로 수행하며, 제 2 마이크로-서버 그룹에 속하는 마이크로-서버 유닛은 제 1 마이크로-서버 그룹에서 프리프로세싱을 수행한 동영상 데이터를 사용하여 클라이언트에 대한 동영상 스트리밍을 수행하도록 구성된 것이 바람직하다.
또한, 본 발명에서 비트레이트 변환부(114)와 트랜스코딩부(112)는 일체로 구성되어 실시간 비트레인트 변환 인코딩과 실시간 트랜스코딩을 분할 업로드/트랜스코딩의 단일 프로세싱으로 처리하고, 동영상 파일 관리부(230)는 동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 저장하는 백엔드 파일서버(320)를 네트워크 접속부(220)를 통해 액세스하여 다수의 동영상 파일을 관리하는 것을 바람직하다. 또한, 마이크로-서버 클러스터(100)는 다수의 마이크로-서버 유닛(110, 120, 130)이 각각 독립 모듈로 구성되어 모바일 PCI 익스프레스 에지 컨넥터(118)를 통해 연결된 모듈러 구조로 구성되는 것이 바람직하다.
본 발명에 따르면 종래기술에 비해 획기적인 전력절감과 고집적률을 달성할 수 있고 특히 사용 전력과 장비점유 면적대비하여 동시접속자 수가 배가된 고집적 서버를 구성할 수 있는 장점이 있다.
또한, 본 발명에 따르면 동영상 스트리밍 서버에서 적응형 HTTP 스트리밍 구현을 위해 별도의 스토리지 용량을 요구하지 않기 때문에 용적임대비용, 전기사용료, 스토리지 교체 비용을 획기적으로 절감할 수 있으며 그에 따라 운영비용이 저렴하여 대용량 상업적 서비스에 적합하다는 장점이 있다.
또한, 본 발명에 따르면 특히 ARM 기반의 저전력 저용량 프로세서에 장착된 비디오 가속 모듈과 3D GPU 모듈을 활용함으로써 종래 동영상 스트리밍 서버장비에 사용되던 x86 기반의 단일 대용량 프로세서 방식 대비 획기적인 전력절감과 고집적율을 달성할 수 있는 장점이 있다.
[도 1]은 본 발명에 따른 마이크로-서버 클러스터 기반의 동영상 스트리밍 서버의 구성을 개념적으로 나타내는 블록도.
[도 2]는 본 발명에서 트랜스코딩과 스트리밍 간의 관계를 나타내는 도면.
[도 3]은 본 발명에 따른 마이크로-서버 클러스터 기반의 동영상 스트리밍 서버의 일 실시예를 나타내는 도면.
[도 4]는 본 발명에 따른 동영상 스트리밍 서버가 네트워크에 연결되어 구현된 일 실시예를 나타내는 도면.
[도 5]는 본 발명에서 동영상 스트리밍 서버의 내부 구성을 구현하기 위한 멀티루트 가상화 기술의 개념을 나타내는 도면.
[도 6]은 본 발명의 동영상 스트리밍 서버를 멀티루트 가상화 기반으로 구성한 경우의 내부 구성을 개념적으로 나타내는 블록도.
[도 7]은 본 발명에서 마이크로-서버 클러스터에서 마이크로-서버 유닛을 2개로 그룹화하여 비트레이트별 트랜스코딩과 스트리밍을 각각 할당한 구성을 개념적으로 나타내는 도면.
본 발명은 대용량의 고화질 동영상 스트리밍 서비스를 제공하기 위한 동영상 스트리밍 서버의 최적화된 구성에 관한 것이다. 본 발명에 대한 기술적 사항을 개략적으로 기술하면 다음과 같다.
인터넷(3G/4G/LTE 기반의 모바일 무선인터넷 포함)을 통해 온디맨드 기반의 대용량의 고화질 동영상 스트리밍 서비스를 제공하려면 강력한 성능의 동영상 스트리밍 서버가 필요하다. 동영상 스트리밍 서버는 인터넷을 통해 다수의 클라이언트(client terminals), 예컨대 스마트폰이나 스마트패드와 연결되어 이들 클라이언트의 요구에 대응하여 동영상 스트리밍 서비스를 제공한다. 그런데, 스트리밍 서버와 클라이언트 간의 통신대역폭이 접속하는 동안 내내 일정하게 유지되지 않고 언제든지 변동될 가능성이 있으므로 스트리밍 서버는 전술한 바와 같은 적응형 스트리밍 서비스를 구현해야 한다.
또한, 현재 클라이언트 별로 동영상 포맷이 어느 한가지로 통일되어 있지 않고 MPEG2, H.264, AAC, MP4 등과 같이 다양하게 존재하고 있다. 그에 따라 종래기술에서는 웹사이트별로 서비스가 가능한 단말기 종류와 서비스가 불가능한 단말기가 구분되어 존재하였다. 본 발명에서는 스트리밍 서버에 클라이언트가 접속하였을 때, 당해 클라이언트가 지원하는 동영상 포맷을 파악하여 그에 맞도록 인코딩된 스트리밍 데이터를 제공하고자 한다. 이를 위해, 본 발명에서는 동영상 파일을 클라이언트가 지원하는 동영상 포맷으로 트랜스코딩(transcoding)한 후에 스트리밍 제공하는 효율적인 구성을 제시한다.
일반적으로 서비스 처리 성능의 면만 고려한다면 고화질 동영상 스트리밍 서비스를 위해 고집적의 슈퍼급 고사양 컴퓨터를 구성하고 이를 위한 대용량의 전용 프로세서를 설계하여 장착하는 것이 가장 효과적인 방법일 것이다. 하지만 인터넷 서비스의 특징인 개방성과 유연성으로 인해 다양한 동영상 인코딩 포맷과 스트리밍 서비스 방식(트랜잭션 프로토콜)이 지속적으로 제안되고 있는데 전용 프로세서는 즉시 적응하기에는 어려움이 있다.
그에 따라 종래에는 대용량의 x86 프로세서를 이용하여 스트리밍 서버를 구성하고, 응용 소프트웨어를 통해 동영상 스트리밍 서비스를 구현한다. 스트리밍 서비스에서 요구하는 최대 요구사양(최대 접속자수, 최고 동영상 화질 등)에 대응하도록 프로세서의 성능을 선택하고, 동영상 인코딩 포맷과 스트리밍 서비스 방식은 응용 소프트웨어에서 대응한다. 하지만, 동영상 스트리밍 서비스는 속성상 개별 접속자 수가 많은 것이지 모든 사용자를 위한 공통의 커다란 계산이나 트랙젝션을 처리해야하는 것이 아니라는 점을 고려하면, 이와 같은 대용량 x86 프로세서를 사용한 구현 방식은 전력대비 효율성에서 인터넷 서비스를 위한 서버장비 구성에는 그다지 적합하지 않은 것으로 판단된다.
한편으로 기존에 모바일 디바이스를 위해 다양한 저전력 저용량 프로세서가 제시되어 있다. 최근들어 스마트 디바이스(예: 아이폰, 아이패드)은 넷북이나 노트북컴퓨터에 준하는 성능을 보여주고 있는데, 이러한 스마트 디바이스에 장착되는 ARM 기반 프로세서는 기본적으로 배터리에서 동작하는 포터블 기기에 적합하도록 설계된 저전력의 SHV(Standard High Volume) 컴포넌트이다.
본 발명은 이러한 저전력 저용량 프로세서, 특히 ARM 기반 모바일 SoC 프로세서를 통해 독립적인 마이크로-서버 유닛을 구성하여 동영상 스트리밍 서비스를 요구하는 개별 접속자를 처리하도록 하고, 다수의 마이크로-서버 유닛을 다시 네트워크 클러스터링(network clustering)을 통하여 연결하여 스트리밍 서버를 구성한다. 종래기술의 대용량 x86 프로세서로 구성한 스트리밍 서버와 비교하여 본 발명에 따른 스트리밍 서버는 사용자 단위로 분산처리가 가능하여 고효율, 고집적, 저전력의 서버장비의 구성이 가능하다.
최근의 모바일 SoC 프로세서는 모바일 환경에 적합하도록 기본적으로 저전력으로 설계되어 있으며 그에 따라 x86 프로세서에 비해 저용량(low-capacity)이면서 저사양(low-performance)이다. 하지만 모바일 SoC 프로세서는 스마트폰이나 스마트패드에 사용할 목적으로 설계된 것이므로 1080P 또는 720P 급의 고화질 동영상을 재생하고 레코딩하는 정도의 능력은 갖고있다. 저전력에서 이 정도의 기능을 구현하기 위해 모바일 SoC 프로세서는 하드와이어드(hardwired) 형태의 비디오 코덱을 구비하거나 이에 준하는 전력효율을 갖는 벡터 프로세서(vector processor)를 통해 실현하며, 후술하는 바와 같이 비디오 가속 모듈과 3D GPU(Graphic Processing Unit)을 구비한다.
본 발명에서는 이와 같은 모바일 SoC 프로세서로 마이크로-서버 유닛을 구성하고, 하나의 마이크로-서버 유닛에서 미리 설정한 갯수 이하의 접속자, 예컨대 1명의 접속자를 담당하도록 구성한다. 마이크로-서버 유닛에서 1명의 접속자를 위한 트랜스코딩과 비트레이트 변환 기능을 수행한다고 가정하고 본 발명을 종래 x86 대용량 프로세서로 구현한 것과 비교하여 기술한다. 참고로, 인텔(Intel)의 3.0 Ghz 이상의 제온 헥사코어(Xeon Hexa-Core)는 최대 15 개의 채널을 동시 처리할 수 있다고 알려져 있다.
현재 시점에서 제온 쿼드코어(Xeon Quad-Core)를 두개 사용한 1U 용적의 서버장비가 용적대비 처리효율이 가장 높다고 알려져 있다. 동영상 스트리밍 서비스를 위해 필요한 동영상 트랜스코딩을 감안하여 제온 헥사코어를 사용하여 스트리밍 서버를 구성한다고 가정하면 전력사용량은 CPU 당 120W 이상을 소모하며 최대 450W 정도를 시스템 레벨에서 사용한다. 제온 헥사코어가 동시 처리할 수 있는 스트리밍 채널 수가 15 정도라는 점을 감안하면, 1 접속자당 소모전력은 프로세서 레벨에서는 8W이고 시스템 레벨에서는 30W 정도이다.
이에 반하여 현재 ARM 계열의 모바일 SoC 프로세서는 SoC 당 3W 이하를 소모하며 시스템 레벨에서도 5W 이내가 된다. 따라서, 프로세서가 소모하는 전력의 면에서 볼 때에도 1 접속자당 제온 헥사코어가 8W 정도를 소모하는 것에 반하여 2.5배 이상의 전력효율을 가지게 된다. 나아가, 시스템 레벨에서 소모하는 전력의 면에서 보게되면 1 접속자당 제온 헥사코어 시스템이 30W를 소모하는 것에 반하여 6배 이상의 전력효율을 갖는다.
또한, 모바일 SoC 프로세서는 시스템 레벨의 면에서 점유용적과 발열량이 적다는 장점이 있다. 본 발명에 따르면 마이크로-서버 유닛을 블레이드 형태로 구성하여 1U 서버의 용적에 100개 이상의 마이크로-서버 유닛을 구비한 블레이드 서버로 구성이 가능하다. 종래기술의 스트리밍 서버에서 1U 서버의 용적에서 최대 30 채널의 동시처리가 가능한 것과 대비하면, 본 발명에서는 100 채널이상의 동시처리가 가능하므로 최소 3배 이상의 용적효율을 나타낸다.
이러한 구조는 데스크톱 수준의 3D 성능을 갖는 GPU를 활용하는 것으로 장점이 배가될 수 있다. GPU는 모바일 SoC 프로세서 칩 내부에서 가장 많은 면적을 차지하는 대용량 벡터 프로세서로서, OpenMAX(Open Media Acceleration)나 OpenGL 프로그램가능 셰이더(Open Graphics Library Programmable Shader) 또는 OpenCL(Open Computing Language)을 사용함으로써 하드와이어드 코딩과는 구별된 고효율 비디오 코딩을 구현하는 것이 가능하다.
특히, 모바일 SoC 프로세서는 칩(chip)마다 모두 GPU 모듈을 내장하고 있으므로 별도의 GPU 보드를 사용하는 종래의 x86 기반 대용량 서버 프로세서와 비교할 때 확장성이 우수한 구조가 된다.
이처럼 모바일 SoC 프로세서와 같은 저전력 저용량 프로세서로 마이크로-서버 유닛을 구성하고 이들 마이크로-서버 유닛이 미리 설정된 갯수의 접속자에 대응하여 동영상 트랜스코딩/스트리밍 서비스를 제공하도록 할당한 후, 이들 마이크로-서버 유닛의 다수를 클러스터 방식으로 연결함으로써 고효율, 저전력, 고집적의 적응형 스트리밍 서버를 구성할 수 있다. 종래기술에서 적응형 HTTP 스트리밍 서버가 채용하는 방식인 다양한 비트레이트의 파일을 미리 만들어두어 스토리지를 소모하는 기술과는 달리 실시간 트랜스코딩을 통해 가변적인 비트레이트에 대응하는 효율적인 스트리밍 서비스를 제공한다.
다음으로는 도면을 참조하여 본 발명에 따른 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버의 실시예를 설명한다.
[도 1]은 본 발명에 따른 마이크로-서버 클러스터 기반의 동영상 스트리밍 서버(200)의 구성을 개념적으로 나타내는 블록도이다. 동영상 스트리밍 서버(200)는 네트워크 접속부(220)를 통해 외부 네트워크, 예컨대 기가비트 이더넷(300)과 연결되며, 이를 통해 외부의 각종 시스템([도 4] 참조)와 연결되고 특히 다수의 클라이언트(예: 스마트폰, 스마트패드)와 연결된다. 이들 클라이언트로부터 동영상에 대한 스트리밍 서비스를 요구받으면, 동영상 스트리밍 서버(200)는 해당 동영상을 당해 클라이언트에게 제공한다.
도면을 참조하면, 본 발명에 따른 동영상 스트리밍 서버(200)는 마이크로-서버 클러스터(100), 클러스터 제어부(210), 네트워크 접속부(220), 동영상 파일 관리부(230)를 구비하여 이루어진다. 마이크로-서버 클러스터(100)는 다수의 마이크로-서버 유닛(110, 120, 130)이 연결되어 이루어져 있는데, 하나의 마이크로-서버 유닛(110)은 스트리밍 서비스를 위한 독립 모듈로서 트랜스코딩부(112), 통신대역폭 감지부(113), 비트레이트 변환부(114), 스트리밍부(115), 메모리(116), PCI 인터페이스(117)를 구비한다. 이때, 트랜스코딩부(112), 통신대역폭 감지부(113), 비트레이트 변환부(114), 스트리밍부(115)는 저전력 저용량 프로세서(111), 바람직하게는 모바일 SoC 프로세서에서 구현된다.
마이크로-서버 클러스터(100)에 대해 살펴본다. 본 발명에서 마이크로-서버 유닛(110)은 저전력 저용량 프로세서(111), 바람직하게는 ARM 기반의 모바일 SoC 프로세서로 구현되기에 하나의 마이크로-서버 유닛(110)이 담당할 수 있는 접속자의 명수가 매우 적다. 본 출원일 현재 스마트폰이나 스마트패드에 사용되는 모바일 SoC 프로세서의 경우라면 고화질 동영상에 대한 스트리밍 서비스를 1채널 밖에는 담당할 수 없다. 향후로는 모바일 SoC 프로세서의 성능이 점차로 개선될 것으로 예상되나, 본질적으로 스마트폰이나 스마트패드에 적용할 목적으로 개발된다는 점을 감안하면 그 한계는 뚜렷하다. 따라서, 동영상 스트리밍 서비스를 위한 클라이언트 용량, 예컨대 동시 1000명의 접속자를 처리할 수 있도록 하기 위해 마이크로-서버 유닛(110, 120, 130)을 다수(예: 1000개) 연결하여 마이크로-서버 클러스터(100)를 구성한다.
마이크로-서버 클러스터(100)를 구성하는 마이크로-서버 유닛(110)에 대해 살펴본다. 마이크로-서버 유닛(110)은 모바일 SoC 프로세서(111), 메모리(116), PCI 인터페이스(117)를 구비하고, 모바일 SoC 프로세서(111)는 트랜스코딩부(112), 통신대역폭 감지부(113), 비트레이트 변환부(114), 스트리밍부(115)를 기능적으로 구현한다.
트랜스코딩부(112)는 동영상 스트리밍 서비스를 요구하는 클라이언트가 지원하는 동영상 포맷(예: MPEG2, H.264, AAC, MP4 등)이 무엇인지 식별하고 그 식별된 동영상 포맷에 매칭되도록 그 요청된 동영상 파일의 데이터를 실시간 트랜스코딩한다. 본 발명에서는 다양한 종류의 클라이언트 단말기를 바람직하게는 모두 대응할 수 있도록 동영상 스트리밍 서비스를 제공할 때 트랜스코딩부(112)에서 동영상 포맷의 트랜스코딩을 수행한다. 스트리밍 서비스와 트랜스코딩 간의 관계에 대해서는 [도 2]를 참조하여 후술한다.
한편, 동영상 스트리밍 서버(200)가 클라이언트 지원 동영상 포맷을 식별하는 기술은 다양하게 구현 가능하다. 예를 들어 동영상 스트리밍 요청을 위해 클라이언트의 브라우저가 보내는 HTTP REQUEST에 포함된 브라우저 정보(예: MS 익스플로러, 사파리, 구글크롬, 파이어폭스 등)로부터 그 지원가능한 동영상 포맷을 식별할 수 있다. 또한, 동영상 스트리밍 서비스를 제공하는 웹페이지를 설계할 때, 개별 동영상 항목에 링크된 메세지를 자바스크립트 등으로 구현하여 클라이언트가 해당 동영상 항목을 클릭할 때 클라이언트에 설치된 동영상 재생 소프트웨어 정보를 웹서버(310, [도 4] 참조) 내지 동영상 스트리밍 서버(200)로 제공하도록 구현할 수 있다. 또한, 동영상 스트리밍 서버(200)와 클라이언트가 통신(예: HTTP 트랜잭션)을 통해 정보를 주고받도록 구현할 수도 있다.
통신대역폭 감지부(113)는 동영상 스트리밍 서비스를 제공하면서 스트리밍 서버(200)와 클라이언트 간에 이루어진 유효 통신대역폭(effective bandwidth)을 지속적으로 감지한다. 전술한 바와 같이 동영상 스트리밍 서비스를 제공하는 중에 스트리밍 서버와 클라이언트 간의 유효 통신대역폭은 일정하게 유지되지 않고 언제든지 변동될 가능성이 있으며, 그에 따라 스트리밍 서버(200)는 적응형 스트리밍을 구현한다. 통신대역폭 감지부(113)는 적응형 스트리밍을 구현하기 위해 스트리밍 서버(200)와 클라이언트 간에 이루어진 유효 통신대역폭을 지속적으로 감시하는데, 유효 통신대역폭의 감시는 종래기술에도 구현되었던 것이므로 본 명세서에서는 상세한 설명을 생략한다.
비트레이트 변환부(114)는 그 감지된 통신대역폭에 대응하여 지속적으로 변경 설정된 비트레이트로 스트리밍 서비스를 제공중인 동영상 파일에 대한 비트레이트 변환 인코딩을 실시간으로 수행한다. 즉, 통신대역폭(유효 통신대역폭)이 소정 임계치 이상 변경되는 경우에는 이에 대응하여 비트레이트를 변경 설정하고, 현재 스트리밍 서비스를 제공중인 동영상 파일의 데이터를 그 변경 설정된 비트레이트에 맞도록 비트레이트 변환 인코딩을 실시간으로 수행한다. 종래 기술에서는 비트레이트별로 복수 개의 동영상 파일을 마련해두고, 통신대역폭이 변경되면 이들 동영상 파일들 간에 스위칭을 해주었다. 이에 반해, 본 발명에서는 동영상 파일은 바람직하게는 최고화질로 하나만 마련하고 그 변경된 유효 통신대역폭에 대응하여 비트레이트 변환 인코딩을 실시간으로 수행한다. 스트리밍 서비스에서는 동영상 파일을 작은 조각으로 분할하여 관리하므로 비트레이트 변환 인코딩도 이러한 작은 조각 단위로 수행한다.
스트리밍부(115)는 이처럼 실시간 비트레이트 변환 인코딩된 동영상 데이터를 클라이언트로 스트리밍 제공한다.
이와 같은 트랜스코딩과 비트레이트 변환 인코딩을 원활하게 수행할 수 있도록 모바일 SoC 프로세서(111)는 비디오 가속 모듈과 3D GPU 모듈을 내장한 ARM 기반 모바일 SoC 프로세서로 이루어진 것이 바람직하다. ARM 기반 모바일 SoC 프로세서로 구현될 수도 있고, ARM 기반 모바일 SoC 프로세서를 일종의 코어로 탑재한 멀티코어 프로세서로 구현될 수도 있다.
또한, 비트레이트 변환부(114)와 트랜스코딩부(112)는 일체로 구성되어 실시간 비트레인트 변환 인코딩과 실시간 트랜스코딩을 분할 업로드/트랜스코딩의 단일 프로세싱으로 처리하는 것이 바람직한데, 이에 대해서는 [도 2]를 참조하여 상세하게 후술한다.
메모리(116)는 모바일 SoC 프로세서(111)가 동작하기 위한 임시 작업공간을 제공하는데, 예컨대 동영상 파일을 전체 또는 일부 로딩하거나 트랜스코딩 결과물을 임시 보관하거나 비트레이트 변환 인코딩 결과물을 임시 보관하는 공간을 제공하며, 그외 각종의 데이터를 임시 저장한다.
PCI 인터페이스(117)는 프로세서(111)와 메모리(116)를 구비하여 독립 모듈로서 구성된 마이크로-서버 유닛(110)이 하드웨어의 면에 있어서 메인보드(미도시)와 연결되어 소위 모듈러 구조(modular structure)로 마이크로-서버 클러스터(100)를 구현할 수 있도록 인터페이스를 제공한다. 모듈러 구조는 일부 마이크로-서버 유닛(110)이 고장나더라도 간단하게 해결할 수 있는 장점이 있다. [도 3]을 참조하여 후술하는 바와 같이 마이크로-서버 유닛(110)은 모바일 PCI 익스프레스 에지 컨넥터(118)를 이용하여 메인보드에 연결되도록 구성하는 것이 점유공간을 줄일 수 있어서 유리하다.
클러스터 제어부(210)는 네트워크(300)를 통해 클라이언트로부터 동영상 스트리밍 서비스를 요청받았을 때 이에 대한 동영상 스트리밍 서비스를 제공할 수 있도록 마이크로-서버 클러스터(100)를 관리한다. 마이크로-서버 클러스터(100)로부터 아이들-상태(idle-state) 마이크로-서버 유닛(110)을 식별하고 그 식별된 아이들-상태 마이크로-서버 유닛(110)이 당해 클라이언트에 대해 스트리밍 서비스를 제공하도록 할당한다. 그리고 나서, 클라이언트가 요청하는 동영상 파일을 동영상 파일 관리부(230)로부터 식별하여 그 할당된 마이크로-서버 유닛(110)으로 제공한다. 이처럼 클러스터 제어부(210)는 마이크로-서버 클러스터(100)에 속하는 다수의 마이크로-서버 유닛(110)에 대해 상태, 즉 아이들/비지(busy)를 관리하고, 동영상 스트리밍 서비스를 요구하는 클라이언트가 연결되면 아이들-상태 마이크로-서버 유닛(110)에 할당한다.
네트워크 접속부(220)는 네트워크(300)를 통한 액세스를 제공한다. 네트워크 접속부(220)를 통해 동영상 스트리밍 서버(200)는 외부 네트워크, 예컨대 기가비트 이더넷(300)과 연결되며, 이를 통해 각종 시스템([도 4] 참조) 및 클라이언트(예: 스마트폰, 스마트패드)와 연결된다.
동영상 파일 관리부(230)는 클라이언트에게 동영상 스트리밍 서비스를 제공하기 위해 마련해둔 다수의 동영상 파일을 관리한다. 동영상 파일 관리부(230)는 내장 스토리지(예: 레이드 방식의 대용량 하드디스크)를 통해 구현될 수도 있으나, 외부의 백엔드 파일서버(320)를 네트워크(300)를 통해 액세스하여 동영상 파일을 관리하도록 구현되는 것이 시스템 유지보수 내지 시스템 구축비용, 그리고 데이터 처리속도의 면에서 효율적이다.
[도 2]는 본 발명에서 트랜스코딩과 스트리밍이 조합되는 관계를 개념적으로 나타내는 도면으로, 본 발명을 구현에 있어서 트랜스코딩과 스트리밍 간의 관계는 다양하게 구성될 수 있다. 본 발명에서 적용하는 적응적 스트리밍 기술에서는 키 프레임(key-frame) 단위로 가변 비트레이트에 적응하므로 전체 동영상 파일에 대해 트랜스코딩을 미리 하지 않고 [도 2]와 같이 분할 블럭 단위로 트랜스코딩을 수행하도록 구성한다.
도면을 참조하면, 동영상 파일 관리부(230)가 동영상 파일을 분할 업로드하고 이들 분할된 동영상 데이터에 대해 트랜스코딩을 수행하는 방식이다. 스트리밍 서비스가 개시될 때까지의 대기시간도 짧고 분할 사이즈가 작아 트랜스코딩 부담도 적어 원활한 스트리밍 서비스가 가능하다는 장점이 있으나, 동영상 스트리밍 서비스를 제공하는 동안에 분할 업로드, 트랜스코딩, 비트레이트 변환 인코딩을 동시에 수행하게 되면 일시적으로 동영상 끊김현상이 나타날 수 있는 것은 단점이다. 하지만, 본 구성은 모바일 SoC 프로세서의 계산 성능을 고려할 때 최적의 솔루션으로 고려된다.
다만 도면에서 분할된 사이즈가 클라이언트로 제공되는 스트리밍 데이터 사이즈와 동일한 것으로 해석될 것은 아니고, 단지 개념적으로 제시된 것으로 이해되어야 한다.
[도 3]은 본 발명에 따른 마이크로-서버 클러스터 기반의 동영상 스트리밍 서버(200)의 내부 구성의 일 실시예를 나타내는 도면이고, [도 4]는 본 발명에 따른 동영상 스트리밍 서버(200)가 광대역 네트워크에 연결되어 구현된 일 실시예를 나타내는 도면이다.
도면을 참조하면 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)은 모바일 SoC 프로세서(111, 121)와 메모리(116, 126)을 구비하여 전원공급 모듈(240)로부터 전원만 제공되면 자체 동작할 수 있는 독립 모듈로 구현되며, 컨넥터(118)를 통해 스트리밍 서버(200)의 메인보드에 연결되어 전체적으로 마이크로-서버 클러스터(100)를 이룬다. 이때, 컨넥터(118)는 모바일 SoC 프로세서가 사용된다는 점을 고려하여 스트리밍 서버(200)의 점유면적을 줄일 수 있도록 모바일 PCI 익스프레스 에지 컨넥터로 이루어짐이 바람직하다.
좀더 구체적으로 살펴보면, [도 3]과 같은 내부 구성을 통하여 일반적인 2U 서버공간에 최대 190 개의 마이크로-서버 유닛(110, 120)을 블레이드 형태로 적재할 수 있다. 일반적으로 스트리밍 서버(200)에 최대 450W의 정력전력을 갖는 전원공급 모듈(240)이 사용된다는 점과 마이크로-서버 유닛(110, 120)의 소모전력이 약 3W라는 점을 감안하면 최대 150개의 마이크로-서버 유닛(110, 120)을 블레이드 형태로 적재 가능하고, 이 경우 최대 150 채널에 대해 동영상 스트리밍 서비스(트랜스코딩 기능도 포함)를 구현할 수 있다.
한편, 종래기술에서는 1U 서버에 3.0 Ghz 듀얼 제온 헥사코어를 장착하여 스트리밍 서버를 구성하는데, 이러한 구성으로는 최대 30 채널을 지원할 수 있다. 제온 헥사코어가 2개 사용되었기에 프로세서 레벨에서 130W가 소모되고 1U 시스템 레벨에서는 최소 300W의 전력이 소모된다.
동영상 스트리밍 서비스를 총 300 채널에 대해 구성하는 경우를 예로 들어 살펴보면, 종래기술에 따르면 총 10U의 점유용적이 소요되고 3000W의 전력이 소모된다. 반면, 본 발명에 따르면 4U의 점유용적이 소요되고 900W의 전력이 소모될 뿐이다. 따라서, 종래기술에 비해 본 발명의 구성이 집적도의 면에서도 우수하고 전력소모량도 훨씬 적다는 점을 알 수 있다.
[도 4]를 참조하면, 네트워크(300)를 통해 스트리밍 서버(200, 200')와 프론트엔드 웹서버(310) 및 백엔드 파일서버(320)가 연결되어 있다. 이중에서 백엔드 파일서버(320)는 스트리밍 서비스를 제공하려는 다수의 동영상 파일을 저장하고 있는 장비로서, 본 발명의 동영상 파일 관리부(230)는 백엔드 파일서버(320)에 저장된 동영상 파일을 관리하는 구성요소이다. 프론트엔드 웹서버(310)는 스트리밍 서버(200, 200')의 전단에서 사용자 인터페이스를 담당한다. 즉, 프론트엔드 웹서버(310)가 제공하는 웹페이지 상에서 사용자가 특정 항목을 클릭하면, 그에 대응하여 특정의 동영상에 대한 스트리밍 서비스 요구가 스트리밍 서버(200, 200')로 전달되는 것이다.
[도 4]를 참조하여 전체 네트워크 구성의 일 실시예를 살펴본다. 본 실시예에서 마이크로-서버 클러스터는 총 144개의 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)으로 이루어진다. 기가비트 이더넷(300)은 예컨대 10 Gb를 제공하는데 제 1 차 업링크 스위치(221)와 3개의 제 2 차 업링크 스위치(222)를 통하여 144개의 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)으로 네트워크 경로를 제공한다.
제 1 업링크 스위치(221)는 10 Gb 라인을 12개의 GbE으로 분할하고 도시된 바와 같이 4개씩의 GbE 라인을 제 2 차 업링크 스위치(222)로 제공한다. 제 2 차 업링크 스위치(222)는 4개의 GbE 라인을 48개의 FE 라인으로 분할하여 각각 마이크로-서버 유닛으로 제공한다. 즉, 제 2 차 업링크 스위치(222)마다 48개씩의 마이크로-서버 유닛이 연결되어 있으며, 3개의 제 2 차 업링크 스위치(222)가 있으므로 총 144개의 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)이 연결되어 마이크로-서버 클러스터를 구성한다. 마이크로-서버 유닛이 총 144개이므로, 스트리밍 서버(200)는 144 채널의 HD/SD 트랜스코딩과 576 채널의 SD/SD 트랜스코딩을 지원하도록 구성된다.
[도 5]는 본 발명에서 동영상 스트리밍 서버의 내부 구성을 구현하기 위한 멀티루트 가상화 기술의 개념을 나타내는 도면이다.
앞서 [도 4]에서는 PCI 익스프레스를 사용하여 단일 호스트에 복수 개의 주변장치(peripherals)를 연결하는 방식으로 구성하였다. 하지만, 다수의 마이크로-서버 유닛을 네트워크에 연결하는 방식은 다양하게 도출할 수가 있는데, [도 5]에서는 그러한 제 2 실시예로서 PCI 익스프레스 스위치를 사용해서 기가비트 이더넷 어댑터 자체를 공유하는 방식인 멀티루트 가상화(Multi-Root I/O Virtualization, MR-IOV) 기반의 구성을 개시한다.
멀티루트 가상화 기반으로 스트리밍 서버를 구성한 경우에 개별 블레이드로 구현된 마이크로-서버 유닛은 각각 호스트로서 기능하며, PCI 익스프레스 스위치를 통해 기가비트 이더넷 어댑터를 직접 액세스한다. 이때, 개별 마이크로-서버 유닛은 다른 마이크로-서버 유닛과 마치 다른 서버장치인것처럼 독립적으로 기능하는데 서버장치 내의 리소스만 공유하는 것이다. 멀티루트 가상화 기반으로 스트리밍 서버를 구성하면 동일 갯수의 마이크로-서버 유닛에 대해 네트워크 장비(어댑터, 스위치 등)를 더 적게 사용하는 장점이 있다.
[도 6]은 본 발명의 동영상 스트리밍 서버(400)를 멀티루트 가상화 기반으로 구성한 경우의 내부 구성을 개념적으로 나타내는 블록도이다. [도 1]의 동영상 스트리밍 서버(200)와 비교하면, [도 6]의 스트리밍 서버(400)는 클러스터 제어부(210)가 클러스터 스위칭부(250)로 변경되고 마이크로-서버 유닛(110)이 MR액세스부(119)를 더 구비한다는 점이 차이점이다.
전술한 바와 같이 멀티루트 가상화 기술에서는 다수의 마이크로-서버 유닛(110, 120, 130)이 각자 호스트로서 PCI 익스프레스 스위치를 거쳐 네트워크 접속부(220)를 직접 액세스한다. 따라서, 이러한 구성에서는 마이크로-서버 클러스터(100)와 네트워크 접속부(220) 간에는 PCI 익스프레스 스위치로 이루어진 클러스터 스위칭부(250)가 존재한다.
클러스터 스위칭부(250)가 단순히 네트워크 스위칭 기능만 수행하므로 마이크로-서버 클러스터(100)의 관리는 마이크로-서버 유닛(110, 120, 130) 내부에서 수행한다. 그에 따라, 네트워크(300)를 통해 접속자가 동영상 스트리밍 서비스를 요구할 때 마이크로-서버 클러스터(100)에서 마이크로-서버 유닛(110, 120, 130)을 할당하는 역할을 담당하기 위해 MR액세스부(멀티루트 가상화 액세스부, 119)가 마련되어 있다. MR액세스부(119)는 자신이 속해있는 마이크로-서버 유닛(110, 120, 130)이 아이들 상태인 경우에 네트워크 접속부(220)를 통해 제공되는 동영상 스트리밍 요구를 받아들여 스트리밍 서비스가 제공되도록 한다.
한편, 이상의 설명에서는 개별 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)이 각자 독립적으로 접속자에 대해 1:1로 동영상 스트리밍 서비스를 제공하는 방식을 위주로 본 발명을 개시하였다. 하지만, 클러스터 제어부(210) 또는 클러스터 스위칭부(250)를 통해 연결된 마이크로-서버 유닛들은 서로 통신이 가능하고 그에 따라 좀더 코디네이션된 동작이 가능하다.
[도 7]은 본 발명에서 마이크로-서버 클러스터(100)에서 다수의 마이크로-서버 유닛을 2개로 그룹화하여 비트레이트별 트랜스코딩과 스트리밍을 각각 할당한 구성을 개념적으로 나타내는 도면이다.
예를 들어 [도 4]에서와 같이 총 144개의 마이크로-서버 유닛(110, 120, 130, 140, 150, 160)이 장착된 경우를 살펴보면 이중에서 24개의 마이크로-서버 유닛과 나머지 120개의 마이크로-서버 유닛을 구분하여 각각 제 1, 제 2 마이크로-서버 그룹으로 선정한다. 그리고 나서, 그룹별로 상이한 역할을 할당하여 전체적인 성능을 제고하는 구성이다.
즉, 제 1 마이크로-서버 그룹에 속하는 24개의 마이크로-서버 유닛은 동영상 파일에 대해 비트레이트별로 비트레이트 변환 인코딩 작업과 동영상 포맷별로 트랜스코딩 작업을 미리 수행하도록 할당한다. 제 2 마이크로-서버 그룹에 속하는 나머지 120개의 마이크로-서버 유닛으로는 접속자에 대해 동영상 스트리밍 서비스를 제공하는 역할을 할당한다.
이러한 구성에서는 제 1 그룹에 속하는 일부 마이크로-서버 유닛(즉, 24개의 유닛)이 동영상 스트리밍 서비스에 할당되지 못하므로 일견 손해인 것처럼 보이지만, 비트레이트 변환 인코딩/트랜스코딩이라는 프리프로세싱을 별도 유닛에서 담당하므로 동영상 스트리밍의 서비스 품질을 개선할 수 있는 장점이 있다. 더구나, 제 2 그룹에 속하는 마이크로-서버 유닛(즉, 120개의 유닛)은 스트리밍만 담당하면 되므로 모바일 SoC 프로세서(111)이 적절히 설계되었다면 유닛별 접속자 용량을 늘려 전체적으로 용량을 더 높일 수도 있다.
100 : 마이크로-서버 클러스터
110, 120, 130, 140, 150, 160 : 마이크로-서버 유닛
111, 121 : 모바일 SoC 프로세서
112 : 트랜스코딩부
113 : 통신대역폭 감지부
114 : 비트레이트 변환부
115 : 스트리밍부
116, 126 : 메모리
117 : PCI 인터페이스
118 : 모바일 PCI 익스프레스 에지 컨넥터
119 : MR액세스부
200, 200', 400 : 동영상 스트리밍 서버
210 : 클러스터 제어부
220 : 네트워크 접속부
221 : 제 1 업링크 스위치
222 : 제 2 업링크 스위치
230 : 동영상 파일 관리부
240 : 전원공급 모듈
250 : 클러스터 스위칭부
300 : 기가비트 이더넷
310 : 프론트엔드 웹서버
320 : 백엔드 파일서버

Claims (8)

  1. 네트워크를 통해 연결된 다수의 클라이언트에 대해 적응형 동영상 스트리밍 서비스를 제공하기 위한 스트리밍 서버로서,
    상기 네트워크를 통한 액세스를 제공하는 네트워크 접속부(220);
    동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 관리하는 동영상 파일 관리부(230);
    상기 네트워크 접속부(220)를 통해 연결된 클라이언트가 요구하는 동영상에 대한 적응형 스트리밍 서비스를 제공하는 마이크로-서버 유닛으로서, 상기 연결된 클라이언트와의 통신대역폭을 지속적으로 감지하는 통신대역폭 감시부(113)와 상기 감지된 통신대역폭에 대응하여 지속적으로 변경 설정된 비트레이트로 상기 요구된 동영상에 대한 비트레이트 변환 인코딩을 실시간으로 수행하는 비트레이트 변환부(114)와 상기 실시간 비트레이트 변환 인코딩된 동영상 데이터를 상기 클라이언트로 스트리밍 제공하는 스트리밍부(115)를 구비한 저전력 저용량 프로세서(111)를 포함하여 이루어지는 마이크로-서버 유닛(110);
    상기 동영상 스트리밍 서비스를 위한 클라이언트 용량을 제공하기 위하여 상기 마이크로-서버 유닛(110, 120, 130)을 다수 연결하여 구성한 마이크로-서버 클러스터(100);
    네트워크를 통해 클라이언트로부터 동영상 스트리밍 서비스를 요청받으면 상기 마이크로-서버 클러스터(100)로부터 아이들-상태 마이크로-서버 유닛(110)을 식별하여 상기 클라이언트를 담당하도록 할당하고 상기 요청된 동영상 파일을 상기 동영상 파일 관리부(230)로부터 식별하여 상기 할당된 마이크로-서버 유닛(110)으로 제공하는 클러스터 제어부(210);
    를 포함하여 구성되는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  2. 네트워크를 통해 연결된 다수의 클라이언트에 대해 적응형 동영상 스트리밍 서비스를 제공하기 위한 스트리밍 서버로서,
    상기 네트워크를 통한 액세스를 제공하는 네트워크 접속부(220);
    상기 네트워크 접속부(220)에 대한 멀티루트 가상화에 따른 액세스를 제공하는 클러스터 스위칭부(250);
    동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 관리하는 동영상 파일 관리부(230);
    상기 네트워크 접속부(220)를 통해 연결된 클라이언트가 요구하는 동영상에 대한 적응형 스트리밍 서비스를 제공하는 마이크로-서버 유닛으로서, 상기 연결된 클라이언트와의 통신대역폭을 지속적으로 감지하는 통신대역폭 감시부(113)와 상기 감지된 통신대역폭에 대응하여 지속적으로 변경 설정된 비트레이트로 상기 요구된 동영상에 대한 비트레이트 변환 인코딩을 실시간으로 수행하는 비트레이트 변환부(114)와 상기 실시간 비트레이트 변환 인코딩된 동영상 데이터를 상기 클라이언트로 스트리밍 제공하는 스트리밍부(115)와 마이크로-서버 유닛이 아이들-상태임이 식별되면 클라이언트에 대한 동영상 스트리밍 요구를 감지하여 상기 클러스터 스위칭부(250)를 통해 동영상 스트리밍 서비스가 개시되도록 관리하는 MR액세스부(119)를 구비한 저전력 저용량 프로세서(111)를 포함하여 이루어지는 마이크로-서버 유닛(110);
    상기 동영상 스트리밍 서비스를 위한 클라이언트 용량을 제공하기 위하여 상기 마이크로-서버 유닛(110, 120, 130)을 멀티루트 가상화 기반으로 상기 클러스터 스위칭부(250)를 통해 상기 네트워크 접속부(220)를 호스트로 액세스하도록 다수 연결하여 구성한 마이크로-서버 클러스터(100);
    를 포함하여 구성되는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 저전력 저용량 프로세서(111)는 상기 연결된 클라이언트가 지원하는 동영상 포맷을 식별하고 상기 식별된 동영상 포맷으로 상기 동영상 파일의 데이터를 실시간 트랜스코딩하는 트랜스코딩부(112);를 더 포함하여 구성된 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  4. 청구항 3에 있어서,
    상기 마이크로-서버 클러스터(100)를 구성하는 다수의 마이크로-서버 유닛(110, 120, 130)은 2개로 그룹화되어 제 1 마이크로-서버 그룹과 제 2 마이크로-서버 그룹으로 분할되고,
    상기 제 1 마이크로-서버 그룹에 속하는 마이크로-서버 유닛은 동영상 파일에 대한 비트레이트별 비트레이트 변환 인코딩 및 동영상 포맷별 트랜스코딩을 프리프로세싱으로 수행하고,
    상기 제 2 마이크로-서버 그룹에 속하는 마이크로-서버 유닛은 상기 제 1 마이크로-서버 그룹에서 프리프로세싱을 수행한 동영상 데이터를 사용하여 클라이언트에 대한 동영상 스트리밍을 수행하도록 구성된 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  5. 청구항 4에 있어서,
    상기 저전력 저용량 프로세서(111)는 비디오 가속 모듈과 3D GPU 모듈을 내장한 ARM 기반 모바일 SoC 프로세서를 포함하여 구성된 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  6. 청구항 5에 있어서,
    상기 비트레이트 변환부(114)와 상기 트랜스코딩부(112)는 일체로 구성되어 상기 실시간 비트레인트 변환 인코딩과 상기 실시간 트랜스코딩을 분할 업로드/트랜스코딩의 단일 프로세싱으로 처리하는 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  7. 청구항 6에 있어서,
    상기 동영상 파일 관리부(230)는 동영상 스트리밍 서비스를 위한 다수의 동영상 파일을 저장하는 백엔드 파일서버(320)를 상기 네트워크 접속부(220)를 통해 액세스하여 상기 다수의 동영상 파일을 관리하는 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
  8. 청구항 7에 있어서,
    상기 마이크로-서버 클러스터(100)는 상기 다수의 마이크로-서버 유닛(110, 120, 130)이 각각 독립 모듈로 구성되어 모바일 PCI 익스프레스 에지 컨넥터(118)를 통해 연결된 모듈러 구조로 구성된 것을 특징으로 하는 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버.
KR1020120067789A 2011-06-24 2012-06-25 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버 KR101403935B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110061502 2011-06-24
KR20110061502 2011-06-24

Publications (2)

Publication Number Publication Date
KR20130001169A KR20130001169A (ko) 2013-01-03
KR101403935B1 true KR101403935B1 (ko) 2014-06-09

Family

ID=47834375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120067789A KR101403935B1 (ko) 2011-06-24 2012-06-25 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버

Country Status (1)

Country Link
KR (1) KR101403935B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014106997A1 (en) * 2013-01-07 2014-07-10 Samsung Electronics Co., Ltd. Processor module, micro-server, and method of using processor module
KR102115934B1 (ko) * 2013-01-07 2020-05-27 삼성전자주식회사 프로세서 모듈, 마이크로 서버 및 프로세서 모듈 이용 방법
KR101568387B1 (ko) * 2013-10-02 2015-11-12 주식회사 요쿠스 동영상 제공 서비스 방법
KR101569510B1 (ko) 2013-10-22 2015-11-17 네이버 주식회사 적응적 실시간 트랜스코딩 방법 및 이를 위한 스트리밍 서버
CN112702605A (zh) * 2020-12-24 2021-04-23 百果园技术(新加坡)有限公司 视频转码系统、视频转码方法、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050066547A (ko) * 2003-12-26 2005-06-30 한국전자통신연구원 단일 서버 시스템에서의 가상 클러스터 기반의 멀티미디어스트리밍 서비스 제공 방법 및 파일 전송 서비스 제공 방법
KR20100101608A (ko) * 2007-12-05 2010-09-17 온라이브, 인크. 스트리밍 인터랙티브 비디오를 압축하기 위한 시스템 및 방법
KR20100108352A (ko) * 2007-12-05 2010-10-06 온라이브, 인크. 스트리밍 인터랙티브 비디오를 이용하는 협력적인 컨퍼런싱을 위한 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050066547A (ko) * 2003-12-26 2005-06-30 한국전자통신연구원 단일 서버 시스템에서의 가상 클러스터 기반의 멀티미디어스트리밍 서비스 제공 방법 및 파일 전송 서비스 제공 방법
KR20100101608A (ko) * 2007-12-05 2010-09-17 온라이브, 인크. 스트리밍 인터랙티브 비디오를 압축하기 위한 시스템 및 방법
KR20100108352A (ko) * 2007-12-05 2010-10-06 온라이브, 인크. 스트리밍 인터랙티브 비디오를 이용하는 협력적인 컨퍼런싱을 위한 시스템

Also Published As

Publication number Publication date
KR20130001169A (ko) 2013-01-03

Similar Documents

Publication Publication Date Title
KR101403935B1 (ko) 마이크로-서버 클러스터 기반의 적응형 동영상 스트리밍 서버
CN103237037B (zh) 基于云计算架构的媒体格式转换方法和系统
CN103838779A (zh) 复用空闲计算资源的云转码方法及系统、分布式文件装置
CN102855133B (zh) 一种计算机处理单元交互式系统
EP3579565A1 (en) Systems and methods for adaptively encoding video stream
CN108989845A (zh) 一种基于spice协议的视频传输方法
CN105491021A (zh) 一种Android云应用服务器及Android云应用服务器系统
CN102137138B (zh) 缓存协作方法、装置及系统
CN107147738A (zh) 基于云桌面spice通信协议的性能优化的方法
CN108063821A (zh) 一种基于x86架构的电力营销系统
WO2019103293A1 (ko) 분산 트랜스코딩 클라우드 서비스 시스템
CN203301532U (zh) 云桌面系统
CN102546803A (zh) 基于能力集的远端桌面通信方法
WO2021063026A1 (zh) 一种推理服务网络化的方法及装置
WO2023174184A1 (zh) 虚拟资源处理方法以及装置
CN203327040U (zh) 云计算智能网关
CN105516737A (zh) 一种多媒体格式文件的转换方法
Wilhelmsen et al. Using a commodity hardware video encoder for interactive video streaming
WO2021036784A1 (zh) 一种媒体数据处理方法、装置、媒体服务器及计算机可读存储介质
US11064055B2 (en) Accelerated data center transfers
CN103095562B (zh) 云计算智能网关
Mada et al. Efficient transcoding and streaming mechanism in multiple cloud domains
CN102685226B (zh) 云终端视频解码box
CN110290035B (zh) 一种基于k3s的智慧家庭数据存储访问方法及系统
KR101341441B1 (ko) 멀티미디어 콘텐츠 분할 및 분산 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170410

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181217

Year of fee payment: 5

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20191105

Year of fee payment: 6