KR20130123156A - 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법 - Google Patents

다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법 Download PDF

Info

Publication number
KR20130123156A
KR20130123156A KR1020120046355A KR20120046355A KR20130123156A KR 20130123156 A KR20130123156 A KR 20130123156A KR 1020120046355 A KR1020120046355 A KR 1020120046355A KR 20120046355 A KR20120046355 A KR 20120046355A KR 20130123156 A KR20130123156 A KR 20130123156A
Authority
KR
South Korea
Prior art keywords
server
transcoding
video file
performance
file
Prior art date
Application number
KR1020120046355A
Other languages
English (en)
Inventor
김재호
김선미
노원우
김진원
김근수
김승훈
장기준
Original Assignee
삼성전자주식회사
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 연세대학교 산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020120046355A priority Critical patent/KR20130123156A/ko
Priority to PCT/KR2013/002028 priority patent/WO2013165088A1/en
Priority to US13/849,033 priority patent/US9578136B2/en
Publication of KR20130123156A publication Critical patent/KR20130123156A/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 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/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (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

본 발명은, 제1 서버의 동작 방법에 있어서, 제1 단말기로부터 적어도 하나의 동영상 파일을 요청받는 과정; 상기 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정; 상기 제1 트랜스코딩이 완료된 동영상 파일을 상기 제2 서버로부터 수신하기 전, 제2 단말기로부터 적어도 하나의 동영상 파일을 요청받는 과정; 및 상기 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정을 포함하는 것을 그 구성상의 특징으로 하는 다수의 서버를 이용한 분산 트랜스코딩 방법에 관한 것이다.

Description

다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법{APPARATAS AND METHOD FOR DISTRIBUTED TRANSCODING USING FOR MASS SERVERS}
본 발명은 트랜스코딩에 관한 것이다.
네트워크 기술이 발전함에 따라, 클라이언트는 서버로 다양한 컨텐츠를 송신하여 서버에 저장시켜 놓고, 클라이언트가 원하는 시간 및 장소에서 서버에 저장된 컨텐츠를 수신하여 디스플레이할 수 있게 되었다. 그러나, 서버에서 클라이언트로 컨텐츠를 송신하기 위해서는 서버에 저장된 컨텐츠와 클라이언트의 포맷이 일치하여야 한다. 즉, 서버에서는 저장된 컨텐츠와 해당 컨텐츠를 요청한 클라이언트의 포맷이 일치하지 않는 경우에 포맷을 맞추기 위한 트랜스코딩(transcoding)을 수행하여야 한다. 따라서, 서버는 하나의 트랜스코딩을 수행하던 중, 복수의 클라이언트로부터 서버에 저장되어 있는 컨텐츠를 송신하도록 요청받는 경우에는 복수의 트랜스코딩을 수행하여야 한다.
그러나, 상술한 서버는 주로 저 사양 프로세서가 사용되기 때문에, 복수의 트랜스코딩을 수행하기에 적합한 성능을 기대하기 어려웠다. 즉, 다수의 클라이언트가 요청한 특정 컨텐츠를 각각의 클라이언트로 원활하게 전송할 수 없었다. 따라서, 저 사양 프로세서가 사용되는 서버에서도 복수의 트랜스코딩을 수행할 수 있도록 하는 방안이 시급한 실정이다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 연산 오프로딩을 수행하는 다수의 오프로딩 서버를 두어 효율적으로 트랜스코딩을 수행할 수 있는 장치 및 방법을 제공한다.
본 발명의 다른 목적은, 다수의 오프로딩 서버에 관한 트랜스코딩의 수행 성능의 정보를 모니터링하여, 각각의 오프로딩 서버로 수행 성능에 따라 트랜스코딩을 분할하여 요청할 수 있는 장치 및 방법을 제공한다.
본 발명의 또 다른 목적은, 다수의 오프로딩 서버에 대하여 트랜스코딩을 수행할 때에만 활성 상태로 두고, 트랜스코딩을 수행하지 않을 때에는 저전력 상태로 두어 오프로딩 서버의 전력을 절감할 수 있는 장치 및 방법을 제공한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법은, 제1 서버의 동작 방법에 있어서, 제1 단말기로부터 제1 동영상 파일을 요청받는 과정; 상기 제1 동영상 파일의 제1 트랜스코딩(transcoding)을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정; 상기 제2 서버로부터 상기 제1 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기로부터 제2 동영상 파일을 요청받는 과정; 및 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정을 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제2 서버 중 상대적으로 성능이 높은 서버에 상대적으로 더 많은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 상대적으로 성능이 낮은 서버에 상대적으로 더 적은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 과정을 포함할 수 있다.
바람직하게는, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제2 서버 중 가장 성능이 높은 서버에 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 과정을 포함할 수 있다.
바람직하게는, 상기 적어도 둘 이상의 제2 서버로 웨이크업 신호(wakeup signal)를 송신하는 과정; 및 상기 제2 서버로부터 아크 신호(ACKnowledge signal)를 수신하는 과정을 더 포함할 수 있다.
바람직하게는, 상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하는 과정; 및 상기 분할된 각각의 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 과정을 포함할 수 있다.
바람직하게는, 상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제1 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하는 과정; 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하는 과정; 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하는 과정; 및 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 과정을 포함할 수 있다.
바람직하게는, 상기 제2 단말기로부터 제2 동영상 파일을 요청받는 과정은, 상기 요청받은 제2 동영상 파일의 세부 정보를 확인하는 과정; 및 상기 요청받은 제2 동영상 파일의 포맷과 저장되어 있는 동영상 파일의 포맷이 다름을 확인하는 과정을 포함할 수 있다.
바람직하게는, 상기 제2 단말기는, 적어도 하나 이상의 단말기일 수 있다.
바람직하게는, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하는 과정; 및 상기 분할된 각각의 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 과정을 포함할 수 있다.
바람직하게는, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은, 상기 제2 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하는 과정; 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하는 과정; 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하는 과정; 및 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 과정을 포함할 수 있다.
바람직하게는, 상기 성능은, 트랜스코딩을 수행하는 성능일 수 있다.
바람직하게는, 상기 제1 영역의 파일은, 상기 제1 동영상 파일 또는 제2 동영상 파일의 영역 중, 상기 제1 단말기 및 상기 제2 단말기에서 바로 재생이 필요한 파일의 영역일 수 있다.
바람직하게는, 상기 제2 서버로부터 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩이 완료된 동영상 파일을 수신하는 과정; 및 상기 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 상기 제1 단말기 및 제2 단말기로 각각 송신하는 과정을 더 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법은, 적어도 둘 이상의 제2 서버의 동작 방법에 있어서, 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받는 과정; 상기 제1 트랜스코딩을 수행하던 중, 상기 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는 과정; 및 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩을 수행하는 과정을 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신하는 과정을 더 포함할 수 있다.
바람직하게는, 상기 제1 서버로부터 웨이크업 신호를 수신하는 과정; 상기 제1 서버로 아크 신호를 송신하는 과정; 및 저전력 상태(low power state)에서 활성 상태(active state)로 전환하는 과정을 더 포함할 수 있다.
바람직하게는, 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩의 수행을 완료하는 과정; 상기 제1 서버로 상기 완료된 동영상 파일을 송신하는 과정; 및 활성 상태에서 저전력 상태로 전환하는 과정을 더 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 다수의 서버를 이용한 분산 트랜스코딩 장치는, 제1 서버의 장치에 있어서, 제1 단말기로부터 제1 동영상 파일을 요청받고, 상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하고, 상기 제2 서버로부터 제1 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기로부터 제2 동영상 파일을 요청받고, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 통신모듈; 및 상기 제1 서버의 전반적인 동작을 제어하는 제어부를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 통신모듈은, 상기 제2 서버 중 상대적으로 성능이 높은 서버에 상대적으로 더 많은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 상대적으로 성능이 낮은 서버에 상대적으로 더 적은 양은 상기 제2 동영상 파일의 제2 트랜스코딩을 요청할 수 있다.
바람직하게는, 상기 통신모듈은, 상기 제2 서버 중 가장 성능이 높은 서버에 상기 제2 동영상 파일의 제2 트랜스코딩을 요청할 수 있다.
바람직하게는, 상기 통신모듈은, 상기 적어도 둘 이상의 제2 서버로 웨이크업 신호를 송신하고, 상기 제2 서버로부터 아크 신호를 수신할 수 있다.
바람직하게는, 상기 제어부는, 상기 제1 트랜스코딩을 위하여 상기 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하고, 상기 통신모듈은, 상기 분할된 각각의 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신할 수 있다.
바람직하게는, 상기 제어부는, 상기 제1 트랜스코딩을 위하여 상기 제1 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하고, 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하고, 상기 통신모듈은, 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하고, 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신할 수 있다.
바람직하게는, 상기 제어부는, 상기 제2 단말기로부터 요청받은 제2 동영상 파일의 세부 정보를 확인하고, 상기 요청받은 제2 동영상 파일의 포맷과 저장되어 있는 동영상 파일의 포맷이 다름을 확인할 수 있다.
바람직하게는, 상기 제2 단말기는, 적어도 하나 이상의 단말기일 수 있다.
바람직하게는, 상기 제어부는, 상기 제2 트랜스코딩을 위하여 상기 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하고, 상기 통신모듈은, 상기 분할된 각각의 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신할 수 있다.
바람직하게는, 상기 제어부는, 상기 제2 트랜스코딩을 위하여 상기 제2 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하고, 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하고, 상기 통신모듈은, 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하고, 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신할 수 있다.
바람직하게는, 상기 제1 영역의 파일은, 상기 동영상 파일의 영역 중, 상기 제1 단말기 및 상기 제2 단말기에서 바로 재생이 필요한 파일의 영역일 수 있다.
바람직하게는, 상기 성능은 트랜스코딩을 수행하는 성능일 수 있다.
바람직하게는, 상기 통신모듈은, 상기 제2 서버로부터 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩이 완료된 동영상 파일을 수신하고, 상기 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 상기 제1 단말기 및 제2 단말기로 각각 송신할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 다수의 서버를 이용한 분산 트랜스코딩 장치는, 적어도 둘 이상의 제2 서버의 장치에 있어서, 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받고, 상기 제1 트랜스코딩을 수행하던 중, 상기 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는 통신모듈; 및 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩을 수행하는 제어부를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 통신모듈은, 상기 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신할 수 있다.
바람직하게는, 상기 통신모듈은, 상기 제1 서버로부터 웨이크업 신호를 수신하고, 상기 제1 서버로 아크 신호를 송신하고, 상기 제어부는, 저전력 상태에서 활성 상태로 전환할 수 있다.
바람직하게는, 상기 제어부는, 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩의 수행을 완료하고, 활성 상태에서 저전력 상태로 전환하고, 상기 통신모듈은, 상기 제1 서버로 상기 완료된 동영상 파일을 송신할 수 있다.
본 발명의 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법에 따르면, 단말기에서 바로 재생이 필요한 일정 부분을 다수의 오프로딩 서버 중 성능이 가장 뛰어난 서버로 트랜스코딩을 수행하도록 하여, 단말기에서 버퍼링 없이 해당 동영상을 재생할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 전체적인 구성을 나타낸 도면.
도 2는 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법의 일 실시예를 나타낸 도면.
도 3은 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법의 또 다른 실시예를 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 제2 서버의 전력 상태의 변화를 나타낸 도면.
도 5는 본 발명에 따른 제1 서버의 동작 순서의 일 실시예를 나타낸 순서도.
도 6은 본 발명에 따른 제1 서버의 동작 순서의 또 다른 실시예를 나타낸 순서도.
도 7은 본 발명의 일 실시예에 따른 제2 서버의 동작 순서를 나타낸 순서도.
도 8은 본 발명의 일 실시예에 따른 제1 서버의 구성을 도시한 블록도.
도 9는 본 발명의 일 실시예에 따른 제2 서버의 구성을 도시한 블록도.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
도 1은 본 발명의 일 실시예에 따른 전체적인 구성을 나타낸 도면이다. 도 1에 도시된 바와 같이, 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 장치를 설명하기 위해서는 적어도 둘 이상의 단말기(101, 102, 103), 제1 서버(104) 및 적어도 둘 이상의 제2 서버(105)의 관계를 살펴보아야 한다. 즉, 본 발명은 적어도 둘 이상의 단말기(101, 102, 103)와 제1 서버(104)가 연결되어 있고, 제1 서버(104)는 적어도 둘 이상의 제2 서버(105)와 연결되어 있다.
먼저, 복수의 단말기(101, 102, 103)는 제1 서버(104)에 특정 동영상 파일을 저장시켜 놓고, 필요한 때 제1 서버(104)로부터 저장된 동영상 파일을 수신받을 수 있다. 본 발명에서는 적어도 둘 이상의 단말기가 제1 서버(104)로 적어도 하나의 동영상 파일을 요청하여, 제1 서버(104)로부터 요청한 동영상 파일을 수신받는 것을 전제로 한다. 보다 구체적으로, 시간적인 차이를 두고 적어도 둘 이상의 단말기가 제1 서버로 적어도 하나의 동영상 파일을 요청하여, 각각의 단말기가 요청한 동영상 파일을 원활하게 수신할 수 있도록 하는 것을 방안을 제시한 것이다. 예를 들면, 제1 단말기(101)가 제1 서버(104)로 적어도 하나의 동영상 파일을 요청한 후, 제1 서버(104)로부터 요청한 동영상 파일을 수신하고 있다고 가정하자. 이후, 제2 단말기(102)가 제1 서버(104)로 적어도 하나의 동영상 파일을 요청한 경우, 제1 단말기(101)와 제2 단말기(102)가 각각 요청한 동영상 파일을 제1 서버(104)로부터 원활하게 수신할 수 있도록 하기 위한 것이다. 종래에는 복수의 단말기가 트랜스코딩(transcoding)이 필요한 동영상 파일을 서버로 요청한 경우, 서버에서는 주로 저 사양의 프로세서가 사용되기 때문에 트랜스코딩의 연산 작업을 수행할 적합한 성능을 기대하기 어려웠다. 따라서, 단말기의 입장에서는 여러 단말기가 동시에 서버로 트랜스코딩이 필요한 동영상 파일을 요청한 경우, 모든 단말기에서 원활하게 해당 동영상 파일을 서버로부터 수신할 수 없는 문제점이 있었다. 그러나, 상술한 바와 같이 본 발명에서는 복수의 단말기(101, 102, 103)가 제1 서버(104)로 트랜스코딩이 필요한 동영상 파일을 요청한 경우에도 모든 단말기에서 원활하게 해당 동영상 파일을 제1 서버(104)로부터 수신할 수 있는 장점이 있다.
제1 서버(104)는 복수의 단말기(101, 102, 103)로부터 트랜스코딩이 필요한 적어도 하나의 동영상 파일을 요청받아, 트랜스코딩의 연산 작업을 적어도 둘 이상의 제2 서버(105)로 분할하여 요청하는 역할을 한다. 보다 구체적으로, 트랜스코딩의 연산 작업을 제1 서버(104) 자체에서 수행하지 않고, 제1 서버(104)는 제1 서버(104)와 연결된 적어도 둘 이상의 제2 서버(105)로 각각의 트랜스코딩을 수행하는 성능에 따라 분할하여 요청한다. 여기서, 트랜스코딩이란, 제1 서버(104)에 저장되어 있는 동영상 파일의 포맷을 각각의 단말기가 요청한 포맷으로 바꾸어 주는 것으로 정의된다. 예를 들면, 코덱(CODEC)의 종류, 화면 크기(screen size) 및 비트 레이트(bit rate) 등을 해당 단말기가 요청한 형태로 변환하여 주는 것을 말한다. 이하, 제1 서버(104)가 제1 단말기(101) 및 제2 단말기(102)로부터 특정 동영상 파일을 요청받아, 제2 서버(105)로 트랜스코딩의 연산 작업을 요청하는 과정을 시간의 순서에 따라 상세히 설명하겠다.
먼저, 제1 서버(104)는 적어도 둘 이상의 제2 서버(105)로부터 각각의 트랜스코딩의 성능 정보(performance information)를 설정된 시간마다 수신한다. 이후, 제1 서버(104)는 각각의 제2 서버(105)로부터 수신한 트랜스코딩의 성능 정보를 모니터링하여, 제2 서버(105) 중 성능이 가장 높은 서버를 기준으로 성능이 높은 순서에서 낮은 순서로 상대적인 비율을 환산하는 과정을 수행한다. 예를 들면, 제1 서버(104)와 3대의 제2 서버(105)가 연결되어 있다고 가정하면, 제1 서버(104)는 3대의 제2 서버(105) 중 트랜스코딩의 성능 순서대로 3대의 서버를 나열한다. 이 중 가장 성능이 높은 서버를 기준으로 나머지 2대의 서버의 성능을 상대적인 비율로 환산한다. 즉, 가장 성능이 높은 서버를 100으로 보았을 때의 성능의 비율을 환산한다. 상술한 예에서 가장 성능이 높은 서버를 100으로 하였을 때 그 다음 성능이 높은 서버가 70으로, 성능이 가장 낮은 서버가 30으로 비율이 환산될 수 있다. 이후, 제1 서버(104)가 제1 단말기(101)로부터 적어도 하나의 동영상 파일을 요청받은 경우, 제1 단말기(101)로부터 요청받은 동영상 파일의 세부 정보를 확인한다. 여기서, 동영상 파일의 세부 정보는 동영상 파일의 포맷을 지칭하는 것으로, 예를 들면, 코덱(CODEC)의 종류, 화면 크기(screen size) 및 비트 레이트(bit rate) 등이 포함될 수 있다. 즉, 제1 서버(104)가 제1 단말기(101)로부터 요청받은 동영상 파일의 세부 정보를 확인하는 이유는 제1 서버(104)에 저장되어 있는 해당 동영상 파일을 그대로 제1 단말기(101)로 전송한 경우 제1 단말기(101)에서 전송받은 동영상 파일을 재생시킬 수 있는지를 확인하기 위해서이다. 만약, 제1 서버(104)에 저장되어 있는 동영상 파일의 포맷과 제1 단말기(101)의 포맷이 서로 일치하지 않는 경우, 제1 서버(104)에서는 해당 동영상 파일을 제1 단말기(101)로 전송하기 위해서 트랜스코딩이 필요하다.
본 발명에서의 제1 서버(104)는 자체적으로 트랜스코딩 작업을 수행하지 않고, 제1 서버(104)와 연결되어 있는 적어도 둘 이상의 제2 서버(105)로 트랜스코딩의 작업을 분산하여 요청한다. 상술한 예에서, 제1 서버(104)는 제1 단말기(101)가 요청한 특정 동영상 파일을 세 부분으로 분할한다. 즉, 제1 서버(104)에서는 동영상 파일의 크기를 100으로 보았을 때, 3대의 제2 서버(105)의 트랜스코딩의 성능을 고려하여 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 동영상 파일을 각각 세 부분으로 분할한 제1 서버(104)는 분할한 파일을 3대의 제2 서버로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 상술한 예에서, 제1 서버(104)는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청한다. 따라서, 제2 서버(104)는 트랜스코딩의 연산 작업이 종료되기 전에 복수의 단말기로부터 적어도 하나의 동영상 파일을 요청받는다고 하여도, 복수의 단말기로 해당 동영상 파일을 원활하게 송신할 수 있는 장점이 있다. 이후, 제1 서버(104)는 제2 서버(105)로부터 트랜스코딩이 완료된 동영상 파일을 수신하여, 해당 동영상 파일을 요청한 단말기로 전송한다. 따라서, 제1 서버(104)에서는 자체적으로 트랜스코딩의 연산 작업을 수행하지 않고도, 제2 서버의 트랜스코딩의 수행 성능을 모니터링하여, 단말기가 요청한 동영상 파일을 효율적으로 전송할 수 있다. 본 발명의 또 다른 실시예를 상술한 예로 설명하면, 제1 서버(104)는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버로 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버로 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버로 트랜스코딩의 연산 작업을 요청한다. 이후, 제1 서버(104)는 가장 성능이 높은 제2 서버로부터 가장 먼저 트랜스코딩이 완료된 50 퍼센트의 크기의 파일을 수신하여, 해당 파일을 제1 단말기(101)로 송신한다. 즉, 제1 서버(104)는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제1 단말기(101)로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차순위 및 가장 성능이 낮은 서버로부터 수신하는 즉시 제1 단말기(101)로 송신한다. 따라서, 제1 단말기(101)는 제1 서버(104)로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍(streaming)도 가능하다는 장점이 있다. 같은 의미로, 제1 서버(104)는 단말기가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 단말기로 송신한다. 즉, 제1 서버(104)는 단말기가 요청한 전체 동영상 파일 중 단말기에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버로 트랜스코딩을 수행하도록 하고, 단말기에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 하는 장점이 있다.
적어도 둘 이상의 제2 서버(105)는 제1 서버(104)로부터 트랜스코딩의 연산 작업을 요청받아, 대리 연산을 수행하는 역할을 한다. 보다 구체적으로, 본 발명에서 제2 서버(105)는 제1 서버(104)로부터 각각의 트랜스코딩을 수행하는 성능에 따라 트랜스코딩의 대리 연산을 요청받는다. 이후, 각각의 제2 서버는 제1 서버(104)로부터 수신한 동영상 파일의 트랜스코딩 작업이 완료되었으면, 트랜스코딩이 완성된 동영상 파일을 제1 서버(104)로 송신한다. 종래에는 본 발명과 같은 제2 서버의 역할을 하는 다수의 서버가 트랜스코딩의 연산 작업을 대리 수행하였지만, 본 발명과 같이 트랜스코딩의 연산 작업을 대리 수행하는 서버의 트랜스코딩의 성능을 고려하지 않았다. 즉, 종래에는 획일적인 트랜스코딩의 대리 연산이 수행되어, 실질적인 통신환경을 반영하지 못하였다. 그러나, 본 발명에서는 트랜스코딩을 수행하는 각각의 제2 서버(105)의 성능을 고려하기 때문에, 트랜스코딩의 작업을 효과적으로 분배할 수 있는 장점이 있다.
도 2는 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법의 일 실시예를 나타낸 도면이다. 도 2에 도시된 바와 같이, 이하 본 실시예에서는 제1 단말기(201)와 제2 단말기(202)가 제1 서버(203)로 각각 제1 동영상 파일과 제2 동영상 파일을 요청하여, 제1 서버(203)에서 3대의 제2 서버(204, 205, 206)로 트랜스코딩을 요청하는 경우를 가정하여 설명하기로 한다. 먼저, 제1 서버(203)는 3대의 제2 서버(204, 205, 206)로부터 각각의 트랜스코딩의 성능 정보를 설정된 시간마다 수신한다. 3대의 제2 서버(204, 205, 206)로부터 각각의 트랜스코딩의 성능 정보를 수신한 제1 서버(203)는 각각의 성능 정보를 모니터링하여, 3대의 제2 서버(204, 205, 206) 중 성능이 가장 높은 서버를 기준으로 성능이 높은 순서에서 낮은 순서로 상대적인 비율을 환산하는 과정을 수행한다. 예를 들면, 제1 서버(203)는 3대의 제2 서버(204, 205, 206)를 트랜스코딩을 수행하는 성능 순으로 순위를 부여하여, 이 중 가장 성능이 높은 서버를 기준으로 나머지 2대의 서버의 성능을 상대적인 비율로 환산한다. 즉, 가장 성능이 높은 서버를 100으로 보았을 때의 트랜스코딩을 수행하는 성능의 비율을 환산한다. 상술한 예에서 가장 성능이 높은 서버를 100으로 하였을 때 그 다음 성능이 높은 서버가 70의 비율로, 성능이 가장 낮은 서버가 30의 비율로 환산되었다고 하자. 보다 구체적으로, 제1 서버(203)에서는 3대의 제2 서버 중, 가장 성능이 높은 서버(204)를 기준으로 하여 트랜스코딩 성능 비율을 100으로, 차 순위로 성능이 높은 서버(205)의 트랜스코딩 성능 비율을 70으로, 가장 성능이 낮은 서버(206)의 트랜스코딩 성능 비율이 30으로 환산되었다는 의미이다.
이후, 제1 서버(203)가 제1 단말기(201)로부터 제1 동영상 파일을 요청받으면, 제1 서버(203)에서는 제1 단말기(201)가 요청한 제1 동영상 파일의 세부 정보를 확인한다. 여기서, 동영상 파일의 세부 정보는 동영상 파일의 포맷을 지칭하는 것으로 예를 들면, 코덱(CODEC)의 종류, 화면 크기(screen size) 및 비트 레이트(bit rate) 등이 포함될 수 있다. 만약, 제1 서버(203)에 저장되어 있는 제1 동영상 파일의 포맷과 제1 단말기(201)의 포맷이 서로 일치하지 않는 경우, 제1 서버(203)에서는 제1 동영상 파일을 제1 단말기(201)로 전송하기 위해서 트랜스코딩의 대리 연산 작업을 시작한다. 보다 구체적으로, 제1 서버(203)에서는 제1 단말기(201)로부터 요청받은 제1 동영상 파일을 3대의 제2 서버(204, 205, 206)의 트랜스코딩의 성능 비율에 따라 분할한다. 상술한 예로 설명하면, 제1 서버(203)는 제1 단말기(201)가 요청한 특정 동영상 파일을 세 부분으로 분할한다. 즉, 제1 서버(203)에서는 3대의 제2 서버(204, 205, 206)의 트랜스코딩의 성능을 고려하여 제1 동영상 파일의 크기를 100으로 보았을 때, 제1 동영상 파일을 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 이후, 동영상 파일을 각각 세 부분으로 분할한 제1 서버(203)는 분할한 파일을 3대의 제2 서버(204, 205, 206)로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 즉, 제1 서버(203)는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버(204)로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버(205)로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(206)로 송신하여 트랜스코딩의 연산 작업을 요청한다.
이후, 제1 서버(203)가 3대의 제2 서버(204, 205, 206)로부터 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기(202)로부터 제2 동영상 파일을 요청받았다고 가정하자. 제1 서버(203)가 제2 단말기(202)로부터 제2 동영상 파일을 요청받으면, 제1 서버(203)에서는 제2 단말기(202)가 요청한 제2 동영상 파일의 세부 정보를 확인한다. 만약, 제1 서버(203)에 저장되어 있는 제2 동영상 파일의 포맷과 제2 단말기(202)의 포맷이 서로 일치하지 않는 경우, 제1 서버(203)에서는 제2 동영상 파일을 제2 단말기(202)로 전송하기 위해서 트랜스코딩의 대리 연산 작업을 시작한다. 보다 구체적으로, 제1 서버(203)에서는 제2 단말기(202)로부터 요청받은 제2 동영상 파일을 3대의 제2 서버(204, 205, 206)의 트랜스코딩의 성능 비율에 따라 분할한다. 상술한 예로 설명하면, 제1 서버(203)는 제2 단말기(202)가 요청한 특정 동영상 파일을 세 부분으로 분할한다. 즉, 제1 서버(203)에서는 3대의 제2 서버(204, 205, 206)의 트랜스코딩의 성능을 고려하여 제2 동영상 파일의 크기를 100으로 보았을 때, 제2 동영상 파일을 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 이후, 제2 동영상 파일을 각각 세 부분으로 분할한 제1 서버(203)는 분할한 파일을 3대의 제2 서버(204, 205, 206)로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 즉, 제1 서버(203)는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버(204)로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버(205)로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(206)로 송신하여 트랜스코딩의 연산 작업을 요청한다. 따라서, 제1 서버는 복수의 트랜스코딩의 작업을 적어도 둘 이상의 제2 서버로 각각의 트랜스코딩의 작업 성능에 매칭되도록 각각의 제2 서버로 요청하여 효율적인 오프로딩 대리 연산 작업을 수행하는 장점이 있다.
이후, 제1 서버(203)에서는 3대의 제2 서버(204, 205, 206)로부터 트랜스코딩이 완료된 제1 동영상 파일 및 제2 동영상 파일을 수신하여, 각각의 파일을 제1 단말기(201) 및 제2 단말기(202)로 송신하면, 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법은 종료된다.
본 발명의 또 다른 실시예를 상술한 예로 설명하면, 제1 서버(203)는 제1 단말기(201)로부터 요청받아 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버(204)로 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버(205)로 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(206)로 트랜스코딩의 연산 작업을 요청한다. 이후, 제1 서버(203)는 가장 성능이 높은 제2 서버(204)로부터 가장 먼저 트랜스코딩이 완료된 50 퍼센트의 크기의 파일을 수신하여, 해당 파일을 제1 단말기(201)로 송신한다. 즉, 제1 서버(203)는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제1 단말기(201)로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차 순위(205) 및 가장 성능이 낮은 서버(206)로부터 수신하는 즉시 제1 단말기(201)로 송신한다. 따라서, 제1 단말기(201)는 제1 서버(203)로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다. 같은 의미로, 제1 서버(203)는 제1 단말기(201)가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버(204)로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 제1 단말기(201)로 송신한다. 즉, 제1 서버(203)는 제1 단말기(201)가 요청한 전체 동영상 파일 중 단말기에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버(204)로 트랜스코딩을 수행하도록 하고, 제1 단말기(201)에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버들(205, 206)로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 한다. 또한, 제1 서버(203)는 제2 단말기(202)로부터 요청받아 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버(204)로 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버(205)로 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(206)로 트랜스코딩의 연산 작업을 요청한다. 이후, 제1 서버(203)는 가장 성능이 높은 제2 서버(204)로부터 가장 먼저 트랜스코딩이 완료된 50 퍼센트의 크기의 파일을 수신하여, 해당 파일을 제2 단말기(202)로 송신한다. 즉, 제1 서버(203)는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제2 단말기(202)로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차 순위(205) 및 가장 성능이 낮은 서버(206)로부터 수신하는 즉시 제2 단말기(202)로 송신한다. 따라서, 제2 단말기(202)는 제1 서버(203)로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다. 같은 의미로, 제1 서버(203)는 제2 단말기(202)가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버(204)로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 제2 단말기(202)로 송신한다. 즉, 제1 서버(203)는 제2 단말기(202)가 요청한 전체 동영상 파일 중 단말기에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버(204)로 트랜스코딩을 수행하도록 하고, 제2 단말기(202)에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버들(205, 206)로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 한다.
도 3은 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법의 또 다른 실시예를 나타낸 도면이다. 도 3에 도시된 바와 같이, 이하 본 실시예에서는 제1 단말기(301)와 제2 단말기(302)가 제1 서버(303)로 각각 제1 동영상 파일과 제2 동영상 파일의 특정 부분만을 요청하여, 제1 서버(303)에서 3대의 제2 서버(304, 305, 306)로 트랜스코딩을 요청하는 경우를 가정하여 설명하기로 한다. 먼저, 제1 서버(303)는 3대의 제2 서버(304, 305, 306)로부터 각각의 트랜스코딩의 성능 정보를 설정된 시간마다 수신한다. 3대의 제2 서버(304, 305, 306)로부터 각각의 트랜스코딩의 성능 정보를 수신한 제1 서버(303)는 각각의 성능 정보를 모니터링하여, 3대의 제2 서버(304, 305, 306) 중 성능이 가장 높은 서버를 기준으로 성능이 높은 순서에서 낮은 순서로 상대적인 비율을 환산하는 과정을 수행한다. 예를 들면, 제1 서버(303)는 3대의 제2 서버(304, 305, 306)를 트랜스코딩을 수행하는 성능 순으로 순위를 부여하여, 이 중 가장 성능이 높은 서버를 기준으로 나머지 2대의 서버의 성능을 상대적인 비율로 환산한다. 즉, 가장 성능이 높은 서버를 100으로 보았을 때의 트랜스코딩을 수행하는 성능의 비율을 환산한다. 상술한 예에서 가장 성능이 높은 서버를 100으로 하였을 때 그 다음 성능이 높은 서버가 70의 비율로, 성능이 가장 낮은 서버가 30의 비율로 환산되었다고 하자. 보다 구체적으로, 제1 서버(303)에서는 3대의 제2 서버 중, 가장 성능이 높은 서버(304)를 기준으로 하여 트랜스코딩 성능 비율을 100으로, 차 순위로 성능이 높은 서버(305)의 트랜스코딩 성능 비율을 70으로, 가장 성능이 낮은 서버(306)의 트랜스코딩 성능 비율을 30으로 환산되었다는 의미이다.
이후, 제1 서버(303)가 제1 단말기(301)로부터 제1 동영상 파일의 특정 부분만을 요청받았다면, 제1 서버(303)에서는 제1 단말기(301)가 요청한 제1 동영상 파일의 세부 정보를 확인한다. 만약, 제1 서버(303)에 저장되어 있는 제1 동영상 파일의 포맷과 제1 단말기(301)의 포맷이 서로 일치하지 않는 경우, 제1 서버(303)에서는 제1 동영상 파일을 제1 단말기(301)로 전송하기 위해서 트랜스코딩의 대리 연산 작업을 시작한다. 보다 구체적으로, 제1 서버(303)에서는 제1 단말기(301)로부터 요청받은 제1 동영상 파일을 3대의 제2 서버(304, 305, 306)의 트랜스코딩의 성능 비율에 따라 분할한다. 상술한 예로 설명하면, 제1 서버(303)는 제1 단말기(301)가 요청한 특정 동영상 파일을 크게 제1 영역의 파일과 제2 영역의 파일의 두 부분으로 분할한다. 즉, 제1 영역의 파일은 제1 서버(303)에서 제1 단말기(301)로 바로 전송해 주어야 하는 부분이고, 제2 영역의 파일은 제1 단말기(301)로 바로 전송해 주지 않아도 되는 부분이다. 예를 들면, 사용자가 제1 동영상 파일을 제1 서버(303)로 요청함과 동시에 특정 부분부터 재생하라는 명령어를 제1 단말기(301)로 입력한 경우, 전체 제1 동영상 파일의 영역 중 특정 부분 이하는 제1 영역의 파일이 되는 것이고, 특정 부분 이상은 제2 영역의 파일이 되는 것이다. 다시 상술한 예에서, 제1 영역의 파일이 전체 제1 동영상 파일의 크기의 50 퍼센트의 비율이라고 가정하자. 즉, 제1 동영상 파일의 크기의 앞 부분인 50 퍼센트의 크기인 제1 영역은 제1 서버(303)에서 제1 단말기(301)로 바로 전송해 주어야 하는 부분이다. 따라서, 제1 서버(303)는 제1 영역의 파일의 트랜스코딩을 제2 서버 중 성능이 가장 높은 서버(304)로 요청한다. 이와 동시에, 제1 서버(303)는 제2 영역의 파일을 다시 나머지 제2 서버(305, 306)의 트랜스코딩의 성능을 고려하여 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 제2 영역의 파일을 두 부분으로 분할한 제1 서버(303)는 35 퍼센트의 크기의 파일을 차 순위 제2 서버(305)로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(306)로 송신하여 트랜스코딩의 연산 작업을 요청한다.
이후, 제1 서버(303)가 3대의 제2 서버(304, 305, 306)로부터 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기(302)로부터 제2 동영상 파일을 요청받았다고 가정하자. 제1 서버(303)가 제2 단말기(302)로부터 제2 동영상 파일을 요청받았다면, 제1 서버(303)에서는 제2 단말기(302)가 요청한 제2 동영상 파일의 세부 정보를 확인한다. 만약, 제1 서버(303)에 저장되어 있는 제2 동영상 파일의 포맷과 제2 단말기(302)의 포맷이 서로 일치하지 않는 경우, 제1 서버(303)에서는 제2 동영상 파일을 제2 단말기(302)로 전송하기 위해서 트랜스코딩의 대리 연산 작업을 시작한다. 보다 구체적으로, 제1 서버(303)에서는 제2 단말기(302)로부터 요청받은 제2 동영상 파일을 3대의 제2 서버(304, 305, 306)의 트랜스코딩의 성능 비율에 따라 분할한다. 상술한 예로 설명하면, 제1 서버(303)는 제2 단말기(301)가 요청한 특정 동영상 파일을 크게 제1 영역의 파일과 제2 영역의 파일의 두 부분으로 분할한다. 즉, 제1 영역의 파일은 제1 서버(303)에서 제2 단말기(302)로 바로 전송해 주어야 하는 부분이고, 제2 영역의 파일은 제2 단말기(302)로 바로 전송해 주지 않아도 되는 부분이다. 예를 들면, 사용자가 제2 동영상 파일을 제1 서버(303)로 요청함과 동시에 특정 부분부터 재생하라는 명령어를 제2 단말기(302)로 입력한 경우, 전제 제2 동영상 파일의 영역 중 특정 부분 이하는 제1 영역의 파일이 되는 것이고, 특정 부분 이상은 제2 영역의 파일이 되는 것이다. 다시 상술한 예에서, 제1 영역의 파일이 전체 제2 동영상 파일의 크기의 50 퍼센트의 비율이라고 가정하자. 즉, 제2 동영상 파일의 크기의 앞 부분인 50 퍼센트의 크기인 제1 영역은 제1 서버(303)에서 제2 단말기(302)로 바로 전송해 주어야 하는 부분이다. 따라서, 제1 서버(303)는 제2 영역의 파일의 트랜스코딩을 제2 서버 중 성능이 가장 높은 서버(304)로 요청한다. 이와 동시에, 제1 서버(303)는 제2 영역의 파일을 다시 나머지 제2 서버(305, 306)의 트랜스코딩의 성능을 고려하여 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 제2 영역의 파일을 두 부분으로 분할한 제1 서버(303)는 35 퍼센트의 크기의 파일을 차 순위 제2 서버(305)로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버(306)로 송신하여 트랜스코딩의 연산 작업을 요청한다. 즉, 본 발명에서는 단말기에서 바로 재생이 필요한 부분과 바로 재생이 필요하지 않은 부분으로 나누어 바로 재생이 필요한 부분의 트랜스코딩을 가장 성능이 높은 제2 서버로 요청하여 효율적인 오프로딩 대리 연산 작업을 수행할수 있는 장점이 있다. 이후, 제1 서버(303)에서는 3대의 제2 서버(304, 305, 306)로부터 트랜스코딩이 완료된 제1 동영상 파일 및 제2 동영상 파일을 수신하여, 각각의 파일을 제1 단말기(301) 및 제2 단말기(302)로 송신하면, 본 발명에 따른 다수의 서버를 이용한 분산 트랜스코딩 방법은 종료된다.
본 발명의 또 다른 실시예를 상술한 예로 설명하면, 제1 서버(303)는 제1 단말기(301)로부터 요청받아 분할한 두 부분의 동영상 파일 중, 제1 단말기(301)로 바로 전송해 주어야 할 제1 영역의 파일을 성능이 가장 높은 제2 서버(304)로 트랜스코딩의 연산 작업을 요청하고, 바로 전송해 주지 않아도 되는 제2 영역의 파일을 차 순위 제2 서버(305) 및 가장 성능이 낮은 제2 서버(306)로 트랜스코딩의 연산 작업을 요청한다. 이후, 제1 서버(303)는 가장 성능이 높은 제2 서버(304)로부터 가장 먼저 트랜스코딩이 완료된 50 퍼센트의 크기의 파일을 수신하여, 해당 파일을 제1 단말기(301)로 송신한다. 즉, 제1 서버(303)는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제1 단말기(301)로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차 순위(305) 및 가장 성능이 낮은 서버(306)로부터 수신하는 즉시 제1 단말기(301)로 송신한다. 따라서, 제1 단말기(301)는 제1 서버(303)로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다. 같은 의미로, 제1 서버(303)는 제1 단말기(301)가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버(304)로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 제1 단말기(301)로 송신한다. 즉, 제1 서버(303)는 제1 단말기(301)가 요청한 전체 동영상 파일 중 제1 단말기(301)에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버(304)로 트랜스코딩을 수행하도록 하고, 제1 단말기(301)에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버들(305, 306)로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 한다. 또한, 제1 서버(303)는 제2 단말기(302)로부터 요청받아 분할한 두 부분의 동영상 파일 중, 제2 단말기(302)로 바로 전송해 주어야 할 제1 영역의 파일을 성능이 가장 높은 제2 서버(304)로 트랜스코딩의 연산 작업을 요청하고, 바로 전송해 주지 않아도 되는 제2 영역의 파일을 차 순위 제2 서버(305) 및 가장 성능이 낮은 제2 서버(306)로 트랜스코딩의 연산 작업을 요청한다. 이후, 제1 서버(303)는 가장 성능이 높은 제2 서버(304)로부터 가장 먼저 트랜스코딩이 완료된 50 퍼센트의 크기의 파일을 수신하여, 해당 파일을 제2 단말기(302)로 송신한다. 즉, 제1 서버(303)는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제2 단말기(302)로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차 순위(305) 및 가장 성능이 낮은 서버(306)로부터 수신하는 즉시 제2 단말기(302)로 송신한다. 따라서, 제2 단말기(302)는 제1 서버(303)로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다. 같은 의미로, 제1 서버(203)는 제2 단말기(302)가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버(304)로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 제2 단말기(302)로 송신한다. 즉, 제1 서버(303)는 제2 단말기(302)가 요청한 전체 동영상 파일 중 제2 단말기(302)에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버(304)로 트랜스코딩을 수행하도록 하고, 제2 단말기(302)에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버들(305, 306)로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 한다.
도 4는 본 발명의 일 실시예에 따른 제2 서버의 전력 상태의 변화를 나타낸 도면이다. 먼저, 본 발명에 따른 제2 서버는 제1 서버로부터 트랜스코딩 작업을 요청받아 대리 연산을 수행하는 서버이다. 즉, 제2 서버는 제1 서버로부터 트랜스코딩의 작업을 요청받아 대리 연산을 수행하는 경우에는 많은 전력이 필요하겠지만, 트랜스코딩의 작업을 수행하지 않는 경우에는 저전력 상태로 있는 것이 더 효율적이다. 따라서, 본 발명은 제2 서버의 실질적인 통신환경을 반영하여 제2 서버의 전력 상태를 조절하는 방안을 제시한다.
도 4에 도시된 바와 같이, 본 발명에 따른 제2 서버의 전력 상태는 저전력 상태(low power state)와 활성 상태(active state)로 구분될 수 있다. 먼저, 제2 서버는 제1 서버로부터 트랜스코딩의 작업을 요청받아 대리 연산을 수행하기 전에는 저전력 상태로 유지된다. 즉, 제2 서버가 제1 서버로부터 트랜스코딩의 대리 연산을 수행하지 않는 경우에는 전력 감소 측면에서 저전력 상태에서 있게 된다. 또한, 제2 서버는 각각의 트랜스코딩의 성능 정보를 설정된 시간마다 제1 서버로 송신하는데, 이러한 트랜스코딩의 성능 정보를 제1 서버로 송신하는 경우에도 많은 전력이 필요하지 않기 때문에, 저전력 상태에서도 충분히 수행 가능하다. 상술한 바와 같이, 제2 서버는 저전력 상태에 있다가 제1 서버로부터 웨이크업 신호(wakeup signal, 401)를 수신하면, 제2 서버의 전력 상태를 저전력 상태에서 활성 상태로 전환한다. 이와 동시에, 제2 서버는 웨이크업 신호에 대한 응답 신호로 아크 신호(ACKnowledge signal)를 제1 서버로 송신한다. 즉, 제1 서버는 각각의 제2 서버로부터 아크 신호를 수신하여, 각각의 제2 서버가 트랜스코딩의 대리 연산 작업을 수행할 수 있는 준비가 되어 있다는 것을 확인할 수 있다. 이후, 제2 서버는 제1 서버로부터 트랜스코딩의 대리 연산을 요청받는다(403). 보다 구체적으로, 제2 서버는 제1 서버로부터 웨이크업 신호(401)를 수신함과 동시에 제2 서버의 전력 상태를 저전력 상태에서 활성 상태로 전환했기 때문에, 트랜스코딩의 대리 연산을 수행하는데 있어, 전력 부족의 문제는 없다. 제1 서버로부터 트랜스코딩의 대리 연산을 요청받은 각각의 제2 서버는 트랜스 코딩의 작업이 완료되면, 제2 서버는 제1 서버로 트랜스 코딩이 완료된 파일(404)을 송신한다. 이와 동시에, 각각의 제2 서버는 다시 제2 서버의 전력 상태를 활성 상태에서 저전력 상태로 전환한다. 따라서, 본 발명은 제2 서버의 실질적인 통신환경을 반영하여 제2 서버의 전력 상태를 조절할 수 있어, 전력을 효율적으로 사용할 수 있는 장점이 있다.
도 5는 본 발명에 따른 제1 서버의 동작 순서의 일 실시예를 나타낸 순서도 이다. 도 5에 도시된 바와 같이, 먼저 제1 서버는 적어도 둘 이상의 제2 서버로부터 설정된 시간마다 각각의 성능 정보를 모니터링하여 상대적인 비율을 환산한다(501). 보다 구체적으로, 제1 서버는 복수의 제2 서버로부터 설정된 시간마다 각각의 트랜스코딩의 작업 성능에 관한 정보를 수신하여, 제2 서버 중 성능이 가장 높은 서버를 기준으로 성능이 높은 순서에서 낮은 순서로 상대적인 비율을 환산하는 과정을 수행한다. 즉, 제1 서버는 각각의 제2 서버의 트랜스코딩의 작업 성능을 실시간으로 파악하여, 복수의 단말기로부터 트랜스코딩의 연산 작업을 요청받는 경우 제2 서버의 성능에 따라 대리 연산을 요청할 수 있는 준비를 하는 것이다.
제1 서버가 각각의 제2 서버의 트랜스코딩의 작업 성능에 대한 상대적인 비율을 환산한 후, 제1 서버는 제1 단말기로부터 적어도 하나의 동영상 파일을 요청받는다(502). 보다 구체적으로, 제1 서버가 제1 단말기로부터 적어도 하나의 동영상 파일을 요청받은 경우, 제1 단말기로부터 요청받은 동영상 파일의 세부 정보를 확인한다. 여기서, 동영상 파일의 세부 정보는 동영상 파일의 포맷을 지칭하는 것으로, 예를 들면, 코덱의 종류, 화면 크기 및 비트 레이트 등이 포함될 수 있다. 만약, 제1 서버에 저장되어 있는 동영상 파일의 포맷과 제1 단말기의 포맷이 서로 일치하지 않는 경우, 제1 서버에서는 해당 동영상 파일을 제1 단말기로 전송하기 위해서 트랜스코딩이 필요하다. 트랜스코딩의 작업이 필요하다고 판단한 제1 서버는 저전력 상태에 있는 제2 서버를 활성 상태로 전환 시키기 위하여, 각각의 제2 서버로 웨이크업 신호를 송신한다. 이후, 제1 서버에서 각각의 제2 서버로부터 웨이크업 신호에 대한 응답에 해당하는 아크 신호를 수신하면, 제1 서버는 각각의 제2 서버가 트랜스코딩의 대리 연산이 가능하다는 것을 확인할 수 있다.
이후, 제1 서버는 제2 서버의 성능 비율에 따라 제2 서버로 분할하여 제1 트랜스코딩을 요청한다(503). 예를 들면, 제1 서버와 3대의 제2 서버가 연결되어 있는데, 3대의 제2 서버의 성능 비율이 가장 성능이 높은 서버를 100으로 하였을 때 그 다음 성능이 높은 서버가 70으로, 성능이 가장 낮은 서버가 30으로 비율로 환산되었다고 가정하자. 상술한 예에서, 상술한 예에서, 제1 서버는 제1 단말기가 요청한 특정 동영상 파일을 세 부분으로 분할한다. 즉, 제1 서버에서는 동영상 파일의 크기를 100으로 보았을 때, 3대의 제2 서버의 트랜스코딩의 성능을 고려하여 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 동영상 파일을 각각 세 부분으로 분할한 제1 서버는 분할한 파일을 3대의 제2 서버로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 즉, 제1 서버는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청한다.
이후, 제1 서버는 제2 단말기로부터 적어도 하나의 동영상 파일을 요청받아, 제2 서버의 성능 비율에 따라 제2 서버로 분할하여 제2 트랜스코딩을 요청한다(504). 본 과정은 제1 서버가 각각의 제2 서버로부터 트랜스코딩이 완료된 동영상 파일을 수신하기 전, 제2 단말기로부터 적어도 하나의 동영상 파일을 요청받은 경우를 전제로 한다. 제1 서버가 제2 단말기로부터 동영상 파일을 요청받으면, 제1 서버에서는 제2 단말기가 요청한 제2 동영상 파일의 세부 정보를 확인한다. 만약, 제1 서버에 저장되어 있는 동영상 파일의 포맷과 제2 단말기의 포맷이 서로 일치하지 않는 경우, 제1 서버에서는 동영상 파일을 제2 단말기로 전송하기 위해서 트랜스코딩의 대리 연산 작업을 시작한다. 상술한 과정(503)의 예에서, 제1 서버에서는 제2 단말기로부터 요청받은 동영상 파일을 3대의 제2 서버의 트랜스코딩의 성능 비율에 따라 분할한다. 즉, 제1 서버에서는 3대의 제2 서버의 트랜스코딩의 성능을 고려하여 동영상 파일의 크기를 100으로 보았을 때, 동영상 파일을 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 이후, 동영상 파일을 각각 세 부분으로 분할한 제1 서버는 분할한 파일을 3대의 제2 서버로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 즉, 제1 서버는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청한다. 따라서, 제1 서버는 복수의 트랜스코딩의 작업을 적어도 둘 이상의 제2 서버로 각각의 트랜스코딩의 작업 성능에 매칭되도록 각각의 제2 서버로 요청하여 효율적인 오프로딩 대리 연산 작업을 수행하는 장점이 있다.
이후, 제1 서버는 제2 서버로부터 각각 트랜스코딩이 완료된 동영상 파일을 수신하여 각각의 동영상 파일을 제1 단말기 및 제 2 단말기로 송신한다(505). 따라서, 제1 단말기 및 제2 단말기는 각각의 동영상 파일을 수신하여, 제1 단말기 및 제2 단말기의 포맷에 맞는 동영상 파일을 재생할 수 있다. 상술한 바와 같이, 본 발명에서는 트랜스코딩을 수행하는 각각의 제2 서버의 성능을 고려하기 때문에, 트랜스코딩의 작업을 효과적으로 분배할 수 있는 장점이 있다. 본 과정(505)에서, 제1 서버는 제2 서버로부터 각각 트랜스코딩이 완료된 동영상 파일을 수신하여 각각의 동영상 파일을 제1 단말기 및 제2 단말기로 송신할 수도 있지만, 전체 동영상 파일 중 트랜스코딩이 완료된 부분만을 제1 단말기 및 제2 단말기로 송신할 수도 있다. 보다 구체적으로, 제1 서버는 전체 동영상 파일 중 가장 먼저 트랜스코딩이 완료된 부분의 파일을 바로 제1 단말기로 송신하고, 나머지 트랜스코딩이 완료되지 않은 부분의 파일은 차 순위 및 가장 성능이 낮은 서버로부터 수신하는 즉시 제1 단말기 및 제2 단말기로 송신할 수도 있다. 따라서, 제1 단말기 및 제2 단말기는 제1 서버로 특정 동영상 파일을 요청하는 경우, 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다. 같은 의미로, 제1 서버는 단말기가 요청한 전체 동영상 파일 중 바로 재생하여야 할 부분을 가장 성능이 높은 제2 서버로 트랜스코딩을 수행하도록 하여, 트랜스코딩이 완료된 일정 부분의 파일을 우선적으로 단말기로 송신한다. 즉, 제1 서버는 단말기가 요청한 전체 동영상 파일 중 단말기에서 바로 재생하여야 할 부분을 제2 서버 중 성능이 가장 높은 서버로 트랜스코딩을 수행하도록 하고, 단말기에서 바로 재생이 필요하지 않은 부분은 성능이 낮은 서버들로 트랜스코딩을 수행하도록 하여 효율적인 분산 트랜스코딩이 이루어지도록 한다.
도 6은 본 발명에 따른 제1 서버의 동작 순서의 또 다른 실시예를 나타낸 순서도이다. 먼저 제1 서버는 적어도 둘 이상의 제2 서버로부터 설정된 시간마다 각각의 성능 정보를 모니터링하여 상대적인 비율을 환산한다(601). 보다 구체적으로, 제1 서버는 복수의 제2 서버로부터 설정된 시간마다 각각의 트랜스코딩의 작업 성능에 관한 정보를 수신하여, 제2 서버 중 성능이 가장 높은 서버를 기준으로 성능이 높은 순서에서 낮은 순서로 상대적인 비율을 환산하는 과정을 수행한다. 즉, 제1 서버는 각각의 제2 서버의 트랜스코딩의 작업 성능을 실시간으로 파악하여, 복수의 단말기로부터 트랜스코딩의 연산 작업을 요청받는 경우 제2 서버의 성능에 따라 대리 연산을 요청할 수 있는 준비를 하는 것이다.
제1 서버가 각각의 제2 서버의 트랜스코딩의 작업 성능에 대한 상대적인 비율을 환산한 후, 제1 서버는 단말기로부터 적어도 하나의 동영상 파일을 요청받는다(602). 보다 구체적으로, 제1 서버가 단말기로부터 적어도 하나의 동영상 파일을 요청받은 경우, 단말기로부터 요청받은 동영상 파일의 세부 정보를 확인한다. 여기서, 동영상 파일의 세부 정보는 동영상 파일의 포맷을 지칭하는 것으로, 예를 들면, 코덱의 종류, 화면 크기 및 비트 레이트 등이 포함될 수 있다. 만약, 제1 서버에 저장되어 있는 동영상 파일의 포맷과 단말기의 포맷이 서로 일치하지 않는 경우, 제1 서버에서는 해당 동영상 파일을 단말기로 전송하기 위해서 트랜스코딩이 필요하다.
이후, 제1 서버는 제2 서버로 웨이크업 신호를 송신하여, 제2 서버로부터 아크 신호를 수신한다(603). 보다 구체적으로, 트랜스코딩의 작업이 필요하다고 판단한 제1 서버는 저전력 상태에 있는 제2 서버를 활성 상태로 전환 시키기 위하여, 각각의 제2 서버로 웨이크업 신호를 송신한다. 이후, 제1 서버에서 각각의 제2 서버로부터 웨이크업 신호에 대한 응답에 해당하는 아크 신호를 수신하면, 제1 서버는 각각의 제2 서버가 트랜스코딩의 대리 연산이 가능하다는 것을 확인할 수 있다.
제2 서버로 웨이크업 신호를 송신하여, 제2 서버로부터 아크 신호를 수신한 제1 서버는 단말기로부터 요청받은 동영상 파일 중 단말기에서 바로 재생이 필요한 제1 영역의 파일이 존재하는지 판단한다(604). 여기서, 제1 영역의 파일은 제1 서버에서 단말기로 바로 전송해 주어야 하는 부분이고, 제2 영역의 파일은 단말기로 바로 전송해 주지 않아도 되는 부분이다. 예를 들면, 사용자가 동영상 파일을 제1 서버로 요청함과 동시에 특정 부분부터 재생하라는 명령어를 단말기로 입력한 경우, 전제 동영상 파일의 영역 중 특정 부분 이하는 제1 영역의 파일이 되는 것이고, 특정 부분 이상은 제2 영역의 파일이 되는 것이다. 즉, 제1 서버가 단말기로부터 요청받은 동영상 파일 중 제1 영역의 파일이 존재하는지 판단하여 만약 제1 영역의 파일이 존재한다고 판단되면 제2 서버 중 가장 성능이 높은 제2 서버로 바로 트랜스코딩의 연산 작업을 요청하기 위함이다.
상술한 판단 과정(604)에서, 제1 서버가 단말기로부터 요청받은 동영상 파일 중 단말기에서 바로 재생이 필요한 제1 영역의 파일이 존재한다고 판단되면, 제1 서버는 제1 영역의 파일을 제2 서버 중 가장 성능이 높은 서버로 트랜스코딩을 요청한다(605). 보다 구체적으로, 제1 영역의 파일은 단말기에서 바로 재생이 필요한 부분이므로, 제2 서버 중 성능이 가장 높은 서버로 트랜스코딩을 요청하여 트랜스코딩이 완료된 제1 영역의 파일 부분만을 우선적으로 단말기로 전송하기 위함이다. 제1 영역의 파일이 전체 동영상 파일의 크기의 50 퍼센트의 비율이라고 가정하면, 제1 서버는 단말기가 요청한 특정 동영상 파일을 크게 제1 영역의 파일과 제2 영역의 파일의 두 부분으로 분할한다. 즉, 동영상 파일의 크기의 앞 부분인 50 퍼센트의 크기인 제1 영역은 제1 서버에서 단말기로 바로 전송해 주어야 하는 부분이다. 따라서, 제1 서버는 제2 영역의 파일의 트랜스코딩을 제2 서버 중 성능이 가장 높은 서버로 요청한다. 이와 동시에, 제1 서버는 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 제2 서버로 제2 영역의 파일의 트랜스코딩을 요청한다.
만약, 제1 서버에서 단말기로부터 요청받은 동영상 파일 중 단말기에서 바로 재생이 필요한 제1 영역의 파일이 존재하지 않는다고 판단되었다면, 제 서버는 단말기로부터 요청받은 동영상 파일을 제2 서버의 성능 비율에 따라 제2 서버로 분할하여 트랜스코딩을 요청한다(606). 예를 들면, 제1 서버와 3대의 제2 서버가 연결되어 있는데, 3대의 제2 서버의 성능 비율이 가장 성능이 높은 서버를 100으로 하였을 때 그 다음 성능이 높은 서버가 70으로, 성능이 가장 낮은 서버가 30의 비율로 환산되었다고 가정하자. 상술한 예에서, 제1 서버는 제1 단말기가 요청한 특정 동영상 파일을 세 부분으로 분할한다. 즉, 제1 서버에서는 동영상 파일의 크기를 100으로 보았을 때, 3대의 제2 서버의 트랜스코딩의 성능을 고려하여 50 퍼센트, 35 퍼센트, 15 퍼센트의 크기의 비율로 분할한다. 동영상 파일을 각각 세 부분으로 분할한 제1 서버는 분할한 파일을 3대의 제2 서버로 각각의 성능에 매칭되도록 트랜스코딩의 연산 작업을 요청한다. 즉, 제1 서버는 분할한 세 부분의 동영상 파일 중, 50 퍼센트의 크기의 파일을 성능이 가장 높은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하고, 35 퍼센트의 크기의 파일을 차 순위 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청하며, 15 퍼센트의 크기의 파일을 가장 성능이 낮은 제2 서버로 송신하여 트랜스코딩의 연산 작업을 요청한다.
도 7은 본 발명의 일 실시예에 따른 제2 서버의 동작 순서를 나타낸 순서도이다. 도 7에 도시된 바와 같이, 먼저 제2 서버는 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신한다(701). 보다 구체적으로, 적어도 둘 이상의 제2 서버는 각각의 트랜스코딩의 작업 성능 정보를 설정시간마다 제1 서버로 송신하는데, 이는 제1 서버에서 각각의 제2 서버의 성능 정보를 파악하여, 성능에 따른 트랜스코딩의 작업을 분배하기 위함이다.
제2 서버가 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신한 후, 제2 서버는 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받는다(702). 보다 구체적으로, 적어도 둘 이상의 제2 서버는 각각의 트랜스코딩의 작업 성능에 비례하여 제1 서버로부터 제1 트랜스코딩의 대리 연산을 요청받는다. 즉, 제2 서버 중 트랜스코딩의 작업 성능이 높은 서버는 그 작업 성능에 비례하여 하나의 동영상 파일 중 많은 부분의 동영상 파일에 대한 제1 트랜스코딩의 대리 연산을 요청받는다. 마찬가지로, 제2 서버 중 트랜스코딩의 작업 성능이 낮은 서버는 하나의 동영상 파일 중 적은 부분의 동영상 파일에 대한 제1 트랜스코딩의 대리 연산을 요청받는다.
이후, 제2 서버는 제1 서버로부터 웨이크업 신호를 수신하여, 저전력 상태에서 활성 상태로 전환한다(703). 본 발명에 따른 제2 서버의 전력 상태는 저전력 상태와 활성 상태로 구분될 수 있다. 먼저, 제2 서버는 제1 서버로부터 트랜스코딩의 작업을 요청받아 대리 연산을 수행하기 전에는 저전력 상태로 유지된다. 즉, 제2 서버가 제1 서버로부터 트랜스코딩의 대리 연산을 수행하지 않는 경우에는 전력 감소 측면에서 저전력 상태에서 있게 된다. 또한, 제2 서버는 각각의 트랜스코딩의 성능 정보를 설정된 시간마다 제1 서버로 송신하는데, 이러한 트랜스코딩의 성능 정보를 제1 서버로 송신하는 경우에도 많은 전력이 필요하지 않기 때문에, 저전력 상태에서도 충분히 수행 가능하다. 제2 서버는 저전력 상태에 있다가 제1 서버로부터 웨이크업 신호를 수신하면, 제2 서버의 전력 상태를 저전력 상태에서 활성 상태로 전환한다. 이와 동시에, 제2 서버는 웨이크업 신호에 대한 응답 신호로 아크 신호를 제1 서버로 송신한다. 즉, 제2 서버는 제1 서버로 아크 신호를 송신하여, 각각의 제2 서버가 트랜스코딩의 대리 연산 작업을 수행할 수 있는 준비가 되어 있다는 것을 제1 서버로 알려준다.
제1 트랜스코딩의 연산 작업을 대리 수행하고 있던 제2 서버는 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는다(704). 보다 구체적으로, 적어도 둘 이상의 제2 서버는 각각의 트랜스코딩의 작업 성능에 비례하여 제1 서버로부터 제2 트랜스코딩의 대리 연산을 요청받는다. 즉, 제2 서버 중 트랜스코딩의 작업 성능이 높은 서버는 그 작업 성능에 비례하여 하나의 동영상 파일 중 많은 부분의 동영상 파일에 대한 제2 트랜스코딩의 대리 연산을 요청받는다. 마찬가지로, 제2 서버 중 트랜스코딩의 작업 성능이 낮은 서버는 하나의 동영상 파일 중 적은 부분의 동영상 파일에 대한 제2 트랜스코딩의 대리 연산을 요청받는다.
이후, 제2 서버는 제1 서버로 트랜스코딩이 완료된 동영상 파일을 송신한다(705). 종래에는 본 발명과 같은 제2 서버의 역할을 하는 다수의 서버가 트랜스코딩의 연산 작업을 대리 수행하였지만, 본 발명과 같이 트랜스코딩의 연산 작업을 대리 수행하는 서버의 트랜스코딩의 성능을 고려하지 않았다. 즉, 종래에는 획일적인 트랜스코딩의 대리 연산이 수행되어, 실질적인 통신환경을 반영하지 못하였다. 그러나, 본 발명에서는 트랜스코딩을 수행하는 각각의 제2 서버의 성능을 고려하기 때문에, 트랜스코딩의 작업을 효과적으로 분배할 수 있는 장점이 있다. 본 과정(705)에서, 제2 서버는 제1 서버로 각각 트랜스코딩이 완료된 동영상 파일을 송신할 수도 있지만, 전체 동영상 파일 중 트랜스코딩이 완료된 부분만을 제1 서버로 각각 송신할 수도 있다. 따라서, 제1 단말기 및 제2 단말기는 시간적인 지연없이 바로 해당 동영상 파일을 재생할 수 있으며, 동영상 파일 전체를 다운로드 받기 전에도 해당 파일을 재생할 수 있는 실시간 스트리밍도 가능하다는 장점이 있다.
도 8은 본 발명의 일 실시예에 따른 제1 서버의 구성을 도시한 블록도이다. 도 8에 도시된 바와 같이, 본 발명에 따른 제1 서버는 통신모듈(801), 제어부(802) 및 저장부(803)를 포함하여 구성될 수 있다.
먼저, 통신모듈(801)은 음성 및 데이터 통신을 위해 안테나를 통해 송수신되는 신호를 처리한다. 예를 들면, 통신모듈(801)은 제1 단말기로부터 제1 동영상 파일을 요청받고, 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 제2 서버로 분할하여 요청하고, 제2 서버로부터 제1 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기로부터 제2 동영상 파일을 요청받고, 제2 동영상 파일의 제2 트랜스코딩을, 제2 서버의 성능의 비율에 따라 제2 서버로 분할하여 요청한다. 또한, 제2 서버 중 상대적으로 성능이 높은 서버에 상대적으로 더 많은 양의 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 상대적으로 성능이 낮은 서버에 상대적으로 더 적은 양은 제2 동영상 파일의 제2 트랜스코딩을 요청한다. 또한, 제2 서버 중 가장 성능이 높은 서버에 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 적어도 둘 이상의 제2 서버로 웨이크업 신호를 송신하고, 제2 서버로부터 아크 신호를 수신한다. 또한, 분할된 각각의 제1 동영상 파일을 제2 서버의 성능의 비율에 매칭되게 제2 서버로 송신하고, 제1 영역의 파일을 제2 서버 중 성능이 가장 높은 서버로 송신하고, 분할된 제2 영역의 파일을 나머지 서버의 성능의 비율에 매칭되게 나머지 서버로 송신하며, 분할된 각각의 제2 동영상 파일을 제2 서버의 성능의 비율에 매칭되게 제2 서버로 송신한다. 또한, 제1 영역의 파일을 제2 서버 중 성능이 가장 높은 서버로 송신하고, 분할된 제2 영역의 파일을 나머지 서버의 성능의 비율에 매칭되게 나머지 서버로 송신하며, 제2 서버로부터 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 수신하고, 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 제1 단말기 및 제2 단말기로 각각 송신한다.
제어부(802)는 제1 서버의 전반적인 동작을 제어한다. 예를 들면, 제어부(801)는 제1 트랜스코딩을 위하여 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하고, 제1 트랜스코딩을 위하여 제1 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하며, 제2 영역의 파일을 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할한다. 또한, 제2 단말기로부터 요청받은 제2 동영상 파일의 세부 정보를 확인하고, 요청받은 제2 동영상 파일의 포맷과 저장되어 있는 동영상 파일의 포맷이 다름을 확인하며, 제2 트랜스코딩을 위하여 제2 동영상 파일을 제2 서버의 성능의 비율에 따라 각각 분할하고, 제2 트랜스코딩을 위하여 제2 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하며, 제2 영역의 파일을 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할한다.
저장부(803)는 제1 서버의 동작을 제어하기 위한 프로그램을 저장하는 프로그램 저장부 및 프로그램 수행 중에 발생되는 데이터를 저장하는 데이터 저장부로 구성될 수 있다.
상술한 블록 구성에서, 제어부(802)는 제1 서버의 전반적인 기능을 수행할 수 있다. 본 발명에서 이를 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 제1 서버의 기능 모두를 제어부(802)에서 처리하도록 구성할 수도 있으며, 기능 중 일부만을 제어부(802)에서 처리하도록 구성할 수도 있다.
도 9는 본 발명의 일 실시예에 따른 제2 서버의 구성을 도시한 블록도이다. 도 9에 도시된 바와 같이, 본 발명에 따른 제2 서버는 통신모듈(901), 제어부(902) 및 저장부(903)을 포함하여 구성될 수 있다.
먼저, 통신모듈(901)은 음성 및 데이터 통신을 위해 안테나를 통해 송수신되는 신호를 처리한다. 예를 들면, 통신모듈(901)은 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받고, 제1 트랜스코딩을 수행하던 중, 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는다. 또한, 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신하고, 제1 서버로부터 웨이크업 신호를 수신하며, 제1 서버로 아크 신호를 송신하며, 제1 서버로 완료된 동영상 파일을 송신한다.
제어부(902)는 제2 서버의 전반적인 동작을 제어한다(902). 예를 들면, 제어부(902)는 저전력 상태에서 활성 상태로 전환하고, 제1 트랜스코딩 및 제2 트랜스코딩의 수행을 완료하며, 활성 상태에서 저전력 상태로 전환한다.
저장부(903)는 제2 서버의 동작을 제어하기 위한 프로그램을 저장하는 프로그램 저장부 및 프로그램 수행 중에 발생되는 데이터를 저장하는 데이터 저장부로 구성될 수 있다.
상술한 블록 구성에서, 제어부(902)는 제2 서버의 전반적인 기능을 수행할 수 있다. 본 발명에서 이를 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 제2 서버의 기능 모두를 제어부(902)에서 처리하도록 구성할 수도 있으며, 기능 중 일부만을 제어부(902)에서 처리하도록 구성할 수도 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
101: 제1 단말기 102: 제2 단말기
103: 제n 단말기 104: 제1 서버
105: 제2 서버 201: 제1 단말기
202: 제2 단말기 203: 제1 서버
204: 제2 서버 205: 제2 서버
206: 제2 서버 301: 제1 단말기
302: 제2 단말기 303: 제1 서버
304: 제2 서버 305: 제2 서버
306: 제2 서버 401: 웨이크업 신호
402: 아크 신호 403: 트랜스코딩 요청
404: 트랜스코딩이 완료된 파일 801: 통신모듈
802: 제어부 803: 저장부
901: 통신모듈 902: 제어부
903: 저장부

Claims (34)

  1. 제1 서버의 동작 방법에 있어서,
    제1 단말기로부터 제1 동영상 파일을 요청받는 과정;
    상기 제1 동영상 파일의 제1 트랜스코딩(transcoding)을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정;
    상기 제2 서버로부터 상기 제1 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기로부터 제2 동영상 파일을 요청받는 과정; 및
    상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제2 서버 중 상대적으로 성능이 높은 서버에 상대적으로 더 많은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 상대적으로 성능이 낮은 서버에 상대적으로 더 적은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제2 서버 중 가장 성능이 높은 서버에 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 과정을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 적어도 둘 이상의 제2 서버로 웨이크업 신호(wakeup signal)를 송신하는 과정; 및
    상기 제2 서버로부터 아크 신호(ACKnowledge signal)를 수신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하는 과정; 및
    상기 분할된 각각의 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 과정을 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제1 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하는 과정;
    상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하는 과정;
    상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하는 과정; 및
    상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 과정을 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 제2 단말기로부터 제2 동영상 파일을 요청받는 과정은,
    상기 요청받은 제2 동영상 파일의 세부 정보를 확인하는 과정; 및
    상기 요청받은 제2 동영상 파일의 포맷과 저장되어 있는 동영상 파일의 포맷이 다름을 확인하는 과정을 포함하는 것을 특징으로 하는 방법.
  8. 제1항 또는 제7항에 있어서,
    상기 제2 단말기는,
    적어도 하나 이상의 단말기인 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하는 과정; 및
    상기 분할된 각각의 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 과정을 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 과정은,
    상기 제2 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하는 과정;
    상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하는 과정;
    상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하는 과정; 및
    상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 과정을 포함하는 것을 특징으로 하는 방법.
  11. 제1항, 제2항, 제5항, 제6항, 제9항 또는 제10항 중 어느 한 항에 있어서,
    상기 성능은, 트랜스코딩을 수행하는 성능인 것을 특징으로 하는 방법.
  12. 제6항 또는 제10항에 있어서,
    상기 제1 영역의 파일은,
    상기 제1 동영상 파일 또는 제2 동영상 파일의 영역 중, 상기 제1 단말기 및 상기 제2 단말기에서 바로 재생이 필요한 파일의 영역인 것을 특징으로 하는 방법.
  13. 제1항에 있어서,
    상기 제2 서버로부터 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩이 완료된 동영상 파일을 수신하는 과정; 및
    상기 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 상기 제1 단말기 및 제2 단말기로 각각 송신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  14. 적어도 둘 이상의 제2 서버의 동작 방법에 있어서,
    제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받는 과정;
    상기 제1 트랜스코딩을 수행하던 중, 상기 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는 과정; 및
    상기 제1 트랜스코딩 및 상기 제2 트랜스코딩을 수행하는 과정을 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  16. 제14항에 있어서,
    상기 제1 서버로부터 웨이크업 신호를 수신하는 과정;
    상기 제1 서버로 아크 신호를 송신하는 과정; 및
    저전력 상태(low power state)에서 활성 상태(active state)로 전환하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  17. 제14항에 있어서,
    상기 제1 트랜스코딩 및 상기 제2 트랜스코딩의 수행을 완료하는 과정;
    상기 제1 서버로 상기 완료된 동영상 파일을 송신하는 과정; 및
    활성 상태에서 저전력 상태로 전환하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  18. 제1 서버의 장치에 있어서,
    제1 단말기로부터 제1 동영상 파일을 요청받고, 상기 제1 동영상 파일의 제1 트랜스코딩을, 적어도 둘 이상의 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하고, 상기 제2 서버로부터 제1 트랜스코딩이 완료된 제1 동영상 파일을 수신하기 전, 제2 단말기로부터 제2 동영상 파일을 요청받고, 상기 제2 동영상 파일의 제2 트랜스코딩을, 상기 제2 서버의 성능의 비율에 따라 상기 제2 서버로 분할하여 요청하는 통신모듈; 및
    상기 제1 서버의 전반적인 동작을 제어하는 제어부를 포함하는 것을 특징으로 하는 장치.
  19. 제18항에 있어서,
    상기 통신모듈은, 상기 제2 서버 중 상대적으로 성능이 높은 서버에 상대적으로 더 많은 양의 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하고, 상대적으로 성능이 낮은 서버에 상대적으로 더 적은 양은 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 것을 특징으로 하는 장치.
  20. 제18항에 있어서,
    상기 통신모듈은, 상기 제2 서버 중 가장 성능이 높은 서버에 상기 제2 동영상 파일의 제2 트랜스코딩을 요청하는 것을 특징으로 하는 장치.
  21. 제18항에 있어서,
    상기 통신모듈은, 상기 적어도 둘 이상의 제2 서버로 웨이크업 신호를 송신하고, 상기 제2 서버로부터 아크 신호를 수신하는 것을 특징으로 하는 장치.
  22. 제18항에 있어서,
    상기 제어부는, 상기 제1 트랜스코딩을 위하여 상기 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하고,
    상기 통신모듈은, 상기 분할된 각각의 제1 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 것을 특징으로 하는 장치.
  23. 제18항에 있어서,
    상기 제어부는, 상기 제1 트랜스코딩을 위하여 상기 제1 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하고, 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하고,
    상기 통신모듈은, 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하고, 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 것을 특징으로 하는 장치.
  24. 제18항에 있어서,
    상기 제어부는, 상기 제2 단말기로부터 요청받은 제2 동영상 파일의 세부 정보를 확인하고, 상기 요청받은 제2 동영상 파일의 포맷과 저장되어 있는 동영상 파일의 포맷이 다름을 확인하는 것을 특징으로 하는 장치.
  25. 제18항 또는 제24항에 있어서,
    상기 제2 단말기는,
    적어도 하나 이상의 단말기인 것을 특징으로 하는 장치.
  26. 제18항에 있어서,
    상기 제어부는, 상기 제2 트랜스코딩을 위하여 상기 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 따라 각각 분할하고,
    상기 통신모듈은, 상기 분할된 각각의 제2 동영상 파일을 상기 제2 서버의 성능의 비율에 매칭되게 상기 제2 서버로 송신하는 것을 특징으로 하는 장치.
  27. 제18항에 있어서,
    상기 제어부는, 상기 제2 트랜스코딩을 위하여 상기 제2 동영상 파일을 제1 영역의 파일과 제2 영역의 파일로 분할하고, 상기 제2 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버를 제외한 나머지 서버의 성능의 비율에 따라 각각 분할하고,
    상기 통신모듈은, 상기 제1 영역의 파일을 상기 제2 서버 중 성능이 가장 높은 서버로 송신하고, 상기 분할된 제2 영역의 파일을 상기 나머지 서버의 성능의 비율에 매칭되게 상기 나머지 서버로 송신하는 것을 특징으로 하는 장치.
  28. 제23항 또는 제27항에 있어서,
    상기 제1 영역의 파일은,
    상기 동영상 파일의 영역 중, 상기 제1 단말기 및 상기 제2 단말기에서 바로 재생이 필요한 파일의 영역인 것을 특징으로 하는 장치.
  29. 제18항, 제19항, 제22항, 제23항, 제26항 또는 제27항 중 어느 한 항에 있어서,
    상기 성능은 트랜스코딩을 수행하는 성능인 것을 특징으로 하는 장치.
  30. 제18항에 있어서,
    상기 통신모듈은, 상기 제2 서버로부터 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩이 완료된 동영상 파일을 수신하고, 상기 제1 트랜스코딩 및 제2 트랜스코딩이 완료된 동영상 파일을 상기 제1 단말기 및 제2 단말기로 각각 송신하는 것을 특징으로 하는 장치.
  31. 적어도 둘 이상의 제2 서버의 장치에 있어서,
    제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제1 트랜스코딩을 요청받고, 상기 제1 트랜스코딩을 수행하던 중, 상기 제1 서버로부터 분할된 적어도 하나의 동영상 파일의 제2 트랜스코딩을 요청받는 통신모듈; 및
    상기 제1 트랜스코딩 및 상기 제2 트랜스코딩을 수행하는 제어부를 포함하는 것을 특징으로 하는 장치.
  32. 제31항에 있어서,
    상기 통신모듈은, 상기 제1 서버로 설정된 시간마다 각각의 성능 정보를 송신하는 것을 특징으로 하는 장치.
  33. 제31항에 있어서,
    상기 통신모듈은, 상기 제1 서버로부터 웨이크업 신호를 수신하고, 상기 제1 서버로 아크 신호를 송신하고,
    상기 제어부는, 저전력 상태에서 활성 상태로 전환하는 것을 특징으로 하는 장치.
  34. 제31항에 있어서,
    상기 제어부는, 상기 제1 트랜스코딩 및 상기 제2 트랜스코딩의 수행을 완료하고, 활성 상태에서 저전력 상태로 전환하고,
    상기 통신모듈은, 상기 제1 서버로 상기 완료된 동영상 파일을 송신하는 것을 특징으로 하는 장치.
KR1020120046355A 2012-05-02 2012-05-02 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법 KR20130123156A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120046355A KR20130123156A (ko) 2012-05-02 2012-05-02 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법
PCT/KR2013/002028 WO2013165088A1 (en) 2012-05-02 2013-03-13 Distributed transcoding apparatus and method using multiple servers
US13/849,033 US9578136B2 (en) 2012-05-02 2013-03-22 Distributed transcoding apparatus and method using multiple servers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120046355A KR20130123156A (ko) 2012-05-02 2012-05-02 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20130123156A true KR20130123156A (ko) 2013-11-12

Family

ID=49513471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120046355A KR20130123156A (ko) 2012-05-02 2012-05-02 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법

Country Status (3)

Country Link
US (1) US9578136B2 (ko)
KR (1) KR20130123156A (ko)
WO (1) WO2013165088A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087229A (ko) * 2015-01-13 2016-07-21 주식회사 알티캐스트 녹화 컨텐츠의 분산 트랜스코딩 제어 방법 및 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10284613B2 (en) * 2014-02-18 2019-05-07 Dropbox, Inc. Streaming of variable length content segments
US10136147B2 (en) 2014-06-11 2018-11-20 Dolby Laboratories Licensing Corporation Efficient transcoding for backward-compatible wide dynamic range codec
US9917882B2 (en) * 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
US10313486B2 (en) 2015-01-07 2019-06-04 Sonicwall Inc. Optimizing transfer of fragmented packetized data
US9538139B2 (en) * 2015-04-24 2017-01-03 Avaya Inc. Multi-stream video switching with selective optimized composite
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
US10158735B2 (en) 2015-08-07 2018-12-18 Sonicwall Inc. Read-ahead on signed connections with unsigning, inline, transparent proxies
CN106331616A (zh) * 2016-08-23 2017-01-11 武汉烽火众智数字技术有限责任公司 一种基于异构环境的海量视频结构化分析系统及方法
CN108848384A (zh) * 2018-06-19 2018-11-20 复旦大学 一种面向多核平台的高效并行转码方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155475B2 (en) 2002-02-15 2006-12-26 Sony Corporation System, method, and computer program product for media publishing request processing
FR2857198B1 (fr) * 2003-07-03 2005-08-26 Canon Kk Optimisation de qualite de service dans la distribution de flux de donnees numeriques
KR100735274B1 (ko) * 2004-11-18 2007-07-03 삼성전자주식회사 트랜스코더를 구비한 분산형 멀티미디어 전송 네트워크의트랜스코딩 방법 및 장치
US7818355B2 (en) * 2007-11-07 2010-10-19 Mills Brendon W System and method for managing content
US8656442B1 (en) * 2007-11-21 2014-02-18 BitGravity, Inc. Efficient video delivery
US7983166B2 (en) * 2008-01-03 2011-07-19 At&T Intellectual Property I, L.P. System and method of delivering video content
US8997154B2 (en) * 2008-09-19 2015-03-31 At&T Intellectual Property I, Lp Apparatus and method for obtaining media content
US20100115575A1 (en) * 2008-11-03 2010-05-06 At&T Intellectual Property I, L.P. System and method for recording and distributing media content
WO2011056224A1 (en) * 2009-11-04 2011-05-12 Pawan Jaggi Switchable multi-channel data transcoding and transrating system
KR20110059428A (ko) * 2009-11-27 2011-06-02 주식회사 아이티컨트롤 그리드 파일 시스템 방식의 분산을 통한 동영상 인코딩 방법 및 장치와 그 시스템
US8649424B2 (en) * 2010-02-17 2014-02-11 Juniper Networks, Inc. Video transcoding using a proxy device
US9621930B2 (en) 2010-05-07 2017-04-11 Deutsche Telekom Ag Distributed transcoding of video frames for transmission in a communication network
US20120079523A1 (en) * 2010-09-29 2012-03-29 Verizon Patent And Licensing, Inc. Unified video provisioning within a heterogeneous network environment
US9432704B2 (en) * 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
US9380086B2 (en) * 2014-02-18 2016-06-28 Dropbox, Inc. Pre-transcoding content items

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087229A (ko) * 2015-01-13 2016-07-21 주식회사 알티캐스트 녹화 컨텐츠의 분산 트랜스코딩 제어 방법 및 장치

Also Published As

Publication number Publication date
US9578136B2 (en) 2017-02-21
US20130297679A1 (en) 2013-11-07
WO2013165088A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
KR20130123156A (ko) 다수의 서버를 이용한 분산 트랜스코딩 장치 및 방법
US10356365B2 (en) Framework to support a hybrid of meshed endpoints with non-meshed endpoints
US9532002B2 (en) System for enabling meshed conferences to be seamlessly promoted to full MCU based conferences
EP2790375B1 (en) Distribution control system, distribution control method, and computer-readable storage medium
AU2014230438B2 (en) Distribution control system, distribution control method, and computer-readable storage medium
CA2841377A1 (en) Video transcoding services provided by searching for currently transcoded versions of a requested file before performing transcoding
US8725947B2 (en) Cache control for adaptive stream player
EP2786262A1 (en) Systems and methods for connection pooling for video streaming in content delivery networks
CN103957428A (zh) 基于众核处理器且带多码率转码功能的流媒体服务器
CN104967872A (zh) 基于动态自适应码率传输协议hls流媒体的直播方法和服务器
EP2793475A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
AU2014230422A1 (en) Distribution control system, distribution control method, and computer-readable storage medium
KR20160080929A (ko) 클라우드 기반의 적응형 초고화질 멀티미디어 스트리밍 서비스 장치 및 방법
EP2779571A1 (en) Distribution control system, distribution system, distribution control method, and computer-readable storage medium
EP2974317B1 (en) Computer system, distribution control system, distribution control method, and computer-readable storage medium
AU2014230423A1 (en) Distribution control system and distribution system
CN108989845A (zh) 一种基于spice协议的视频传输方法
CN113973224B (zh) 媒体信息的传输方法、计算设备及存储介质
CN105338371A (zh) 一种多媒体转码调度方法和装置
CN112565818B (zh) 二三维一体化的操作站平台构建方法和电子设备
KR20190062815A (ko) 라이브 스트리밍 서버 장치 및 이의 운용 방법
WO2017193760A1 (zh) 内容发布方法、装置和系统以及内容分布式网络系统
KR20180041785A (ko) 클라우드 컴퓨팅 기반 멀티미디어 스트리밍 방법 및 장치
JP2009206730A (ja) 画像データ配信システム、画像データ受信装置、および画像データ送信装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid