KR20180090719A - 미디어 동기화 방법 및 시스템 - Google Patents

미디어 동기화 방법 및 시스템 Download PDF

Info

Publication number
KR20180090719A
KR20180090719A KR1020170081223A KR20170081223A KR20180090719A KR 20180090719 A KR20180090719 A KR 20180090719A KR 1020170081223 A KR1020170081223 A KR 1020170081223A KR 20170081223 A KR20170081223 A KR 20170081223A KR 20180090719 A KR20180090719 A KR 20180090719A
Authority
KR
South Korea
Prior art keywords
information
synchronization
time
stream
source
Prior art date
Application number
KR1020170081223A
Other languages
English (en)
Other versions
KR101934200B1 (ko
Inventor
최준균
박효진
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to US15/662,986 priority Critical patent/US10341672B2/en
Publication of KR20180090719A publication Critical patent/KR20180090719A/ko
Application granted granted Critical
Publication of KR101934200B1 publication Critical patent/KR101934200B1/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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

미디어 동기화 방법 및 시스템이 개시된다. 미디어 동기화 방법은, 스트림 소스(stream source) 정보를 수집하는 단계, 스트림 소스(stream source) 간의 지연 테스트(delay test)를 수행하여 스트림 소스 간의 네트워크 지연 정보를 생성하는 단계, 수집된 상기 스트림 소스 정보와 상기 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정하는 단계, 상기 스트림 소스를 전송받고자 하는 적어도 하나의 사용자 단말과의 네트워크 지연(delay)를 측정하는 단계, 및 측정된 상기 네트워크 지연에 기초하여 상기 동기 정보를 업데이트하는 단계를 포함할 수 있다.

Description

미디어 동기화 방법 및 시스템{METHOD AND SYSTEM FOR MEDIA SYNCHRONIZATION}
아래의 설명은 방송 환경에서 다양한 콘텐츠 소스(content source)를 사용자단말로 실시간으로 제공함에 있어서, 제공되는 스트림을 동기화하여 제공하는 미디어 동기화 방법 및 시스템에 관한 것이다.
방송 환경이 고도화되고 다변화됨에 따라, 액션 캠, 드론 캠 등 다양한 형태의 미디어 소스들을 기반으로 하나의 이벤트에 대한 다수의 미디어 스트림이 생성되어 사용자 단말로 제공된다.
도 1은 다양한 형태의 미디어 스트림 소스가 사용자 단말로 제공되는 네트워크 구성을 도시한 도면이다.
도 1의 110을 참고하면, 촬영 대상(101)을 복수의 드론 캠(drone camera)에서 촬영할 수도 있고, 적어도 하나의 드론 캠과 액션 캠 등에서 촬영 대상(101)을 촬영할 수 있다. 그리고, 각 장치에서 촬영된 영상에 해당하는 미디어 스트림이 서버를 통해 사용자 단말로 제공된다.
도 1의 120을 참고하면, VR(Virtual Reality) 환경에서, VR 기어(Gear)는 고품질 콘텐츠 제공을 위해 파노라믹 콘텐츠를 24개 수준의 타일들(tiles)로 제공하는 연구가 진행되고 있다. 이때, VR 기어(Gear)는 사용자의 시선에 해당하는 멀티 타일의 영역에 대해 정확한 동기화를 제공해야 한다.
그러나, 드론 캠, 액션 캠 등과 같이 동일한 촬영 대상(101)을 촬영하는 촬영 장치들이 서로 다름에 따라, 장치 별 H/W 특성, 각 장치의 코덱(codec) 특성에 따른 지연(delay)가 발생하고, 서버에서 스트림 소스(stream source)를 복수의 사용자 단말들로 제공하는 과정에서 시간차(즉, 지연)이 발생한다. 즉, 복수의 촬영 장치들 각각에 해당하는 소스 간의 시간차(즉, 지연)와 복수의 사용자 단말들로 스트림 소스를 제공하는 과정에서 개별 전달 구간에서 시간차(즉, 지연)가 발생한다. 이에 따라, 사용자 단말에서 각각의 스트림 소스를 PIP(Picture in Picture), 다시점 보기 등 여러 응용 형태로 시정하고자 하는 경우, 복수의 스트림 소스 간의 동기화가 필요하다. PIP, 다시점 보기 이외에VR 환경의 경우에서도, 사용자의 시선에 해당하는 복수의 타일들에 대한 시간차가 발생하므로, 동기화가 필요하다. 예컨대, 도 1의 120에서, 사용자의 시선에 해당하는 6개의 타일들(121)에 대한 동기화가 필요하다.
한국공개특허 제10-2006-0105449호는 다시점 영상의 스케일러블 부호화, 복호화 및 장치에 관한 것으로, 복수개의 카메라로부터 입력되는 영상들에 대해 공간적-시간적으로 필터링하여 공간적-시간적 스케일러빌리티(scalability)를 지원함으로써, 동시에 한 개체 혹은 한 장면에 대해 촬영된 카메라의 위치에 따른 여러 장면을 사용자에게 제공하는 구성을 개시하고 있다.
일 실시예에 따른 미디어 동기화 방법 및 시스템은 서로 다른 종류의 복수의 촬영 장치들(예컨대, 액션 캠, 드론 캠 등) 각각에서 동일한 촬영 대상(예컨대, 객체 또는 장면)을 촬영하여 사용자 단말로 제공하는 경우에, 촬영 장치 별 하드웨어적 특성 차이, 코덱 특성 차이로 인한 지연, 그리고 복수의 촬영 장치들 각각에서 생성된 스트림 소스들을 복수의 사용자 단말들로 제공하는 과정에서 발생하는 지연을 고려하여 미디어 동기화를 수행하기 위한 것이다.
미디어 동기화 방법은, 스트림 소스(stream source) 정보를 수집하는 단계, 스트림 소스(stream source) 간의 지연 테스트(delay test)를 수행하여 스트림 소스 간의 네트워크 지연 정보를 생성하는 단계, 수집된 상기 스트림 소스 정보와 상기 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정하는 단계, 상기 스트림 소스를 전송받고자 하는 적어도 하나의 사용자 단말과의 네트워크 지연(delay)를 측정하는 단계, 및 측정된 상기 네트워크 지연에 기초하여 상기 동기 정보를 업데이트하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 사용자 단말과의 시간 동기화를 수행하는 단계를 더 포함할 수 있다.
다른 측면에 따르면, 상기 사용자 단말과의 시간 동기화를 수행하는 단계는, 복수의 사용자 단말에서 상기 스트림 소스의 제공을 요청한 경우, 상기 복수의 사용자 단말들 각각으로 해당 단말의 시간 정보(Time clock)를 요청하는 단계, 상기 시간 정보 요청에 대한 응답으로, 상기 복수의 사용자 단말들 각각으로부터 해당 단말의 시간 정보를 수신하는 단계, 및 수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행하는 단계는, 상기 해당 단말의 시간 정보와 해당 단말의 식별자 정보에 기초하여 공통 타임 스탬프(common time stamp, CTS)를 생성하는 단계, 및 생성된 상기 공통 타임 스탬프(CTS)를 삽입한 스트림(stream)을 상기 복수의 사용자 단말들 각각으로 제공하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 사용자 단말과의 시간 동기화를 수행하는 단계는, 상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 미디어 동기화 시스템과 상기 사용자 단말 간의 시간 정보를 생성하는 단계, 생성된 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)를 생성하는 단계, 및 생성된 공통 타임 스탬프(CTS)를 상기 사용자 단말로 전송하고자 하는 서로 다른 채널에 해당하는 각 스트림에 삽입하여 전송하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 공통 타임 스탬프(CTS)가 삽입된 스트림은, 상기 공통 타임 스탬프에 기초하여 디코딩 시간을 맞추어 재생될 수 있다.
또 다른 측면에 따르면, 상기 스트림 소스(stream source) 정보를 수집하는 단계는, 상기 스트림 소스를 제공하는 소스 장치로부터 소스 장치의 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 수집할 수 있다.
또 다른 측면에 따르면, 상기 스트림 소스의 동기 정보를 설정하는 단계는, 복수의 스트림 소스들을 사용자 단말로 제공하는 경우, 상기 복수의 스트림 소스를 어셋(asset) 형태로 엮은 후 복수의 스트림 소스들 간의 동기화 여부를 판단하는 단계, 및 판단 결과에 기초하여 상기 복수의 스트림 소스들 각각의 동기 정보를 설정함으로써 소스 간 동기화를 수행하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 사용자 단말과의 시간 동기화를 수행하는 단계는, 소스 장치로부터 전달 받은 상기 스트림 소스와 상기 사용자 단말로 전달하고자 하는 스트림 간의 시간 차이를 보정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 정보를 수집하는 단계는, 상기 사용자 단말과 네트워크를 형성하는 소스 장치 및 상기 사용자 단말로부터 지연 정보를 수집하고, 상기 사용자 단말과의 시간 동기화를 수행하는 단계는, 수집된 상기 지연 정보를 기반으로 사용자 단말들 간의 동기화 기능이 오프(off)되도록 제어할 수 있다.
미디어 동기화 시스템은, 스트림 소스(stream source) 정보를 수집하는 정보 수집부, 스트림 소스(stream source) 간의 지연 테스트(delay test)를 수행하여 스트림 소스 간의 네트워크 지연 정보를 생성하는 지연 정보 생성부, 수집된 상기 스트림 소스 정보와 상기 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정하는 동기 정보 설정부, 상기 스트림 소스를 전송받고자 하는 적어도 하나의 사용자 단말과의 네트워크 지연(delay)를 측정하는 지연 측정부, 및 측정된 상기 네트워크 지연에 기초하여 상기 동기 정보를 업데이트하는 동기 정보 업데이트부를 포함할 수 있다.
일측면에 따르면, 상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 사용자 단말과의 시간 동기화를 수행하는 단말 동기화부를 더 포함할 수 있다.
다른 측면에 따르면, 상기 단말 동기화부는, 복수의 사용자 단말에서 상기 스트림 소스의 제공을 요청한 경우, 상기 복수의 사용자 단말들 각각으로 해당 단말의 시간 정보(Time clock)를 요청하고, 상기 시간 정보 요청에 대한 응답으로, 상기 복수의 사용자 단말들 각각으로부터 해당 단말의 시간 정보를 수신하고, 수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행할 수 있다.
또 다른 측면에 따르면, 상기 단말 동기화부는, 상기 해당 단말의 시간 정보와 해당 단말의 식별자 정보에 기초하여 공통 타임 스탬프(common time stamp, CTS)를 생성하고, 생성된 상기 공통 타임 스탬프(CTS)를 삽입한 스트림(stream)을 상기 복수의 사용자 단말들 각각으로 제공할 수 있다.
또 다른 측면에 따르면, 상기 단말 동기화부는, 상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 미디어 동기화 시스템과 상기 사용자 단말 간의 시간 정보를 생성하고, 생성된 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)를 생성하고, 생성된 공통 타임 스탬프(CTS)를 상기 사용자 단말로 전송하고자 하는 서로 다른 채널에 해당하는 각 스트림에 삽입하여 전송할 수 있다.
또 다른 측면에 따르면, 상기 공통 타임 스탬프(CTS)가 삽입된 스트림은, 상기 공통 타임 스탬프에 기초하여 디코딩 시간을 맞추어 재생될 수 있다.
또 다른 측면에 따르면, 상기 정보 수집부는, 상기 스트림 소스를 제공하는 소스 장치로부터 소스 장치의 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 수집할 수 있다.
또 다른 측면에 따르면, 상기 동기 정보 설정부는, 복수의 스트림 소스들을 사용자 단말로 제공하는 경우, 상기 복수의 스트림 소스를 어셋(asset) 형태로 엮은 후 복수의 스트림 소스들 간의 동기화 여부를 판단하고, 판단 결과에 기초하여 상기 복수의 스트림 소스들 각각의 동기 정보를 설정함으로써 소스 간 동기화를 수행할 수 있다.
사용자 단말에서의 미디어 동기화 방법은, 스트림 소스(stream source)를 제공하는 서버로 단말의 시간 정보(Time clock)를 제공하는 단계, 및 제공된 상기 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)에 기초하여 상기 서버로부터 상기 스트림 소스를 제공받는 다른 사용자 단말 또는 복수의 스트림 소스들 간의 디코딩 시간을 동기화하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 공통 타임 스탬프(CTS)는, 상기 단말의 시간 정보에 기초하여 상기 서버에서 생성된 상기 서버와 단말 간의 동기화된 시각을 포함하고, 상기 동기화하는 단계는, 상기 서버와 단말 간의 동기화된 시각을 포함하는 상기 공통 타임 스탬프(CTS)에 기초하여 상기 복수의 스트림 소스들 간의 디코딩 시간을 동기화할 수 있다.
다른 측면에 따르면, 상기 공통 타임 스탬프(CTS)는, 복수의 사용자 단말들 각각의 시간 정보(Time Clock)에 기초하여 상기 서버에서 생성된 단말들 간의 동기화된 시각을 포함하고, 상기 동기화하는 단계는, 상기 단말들 간의 동기화된 시각을 포함하는 상기 공통 타임 스탬프(CTS)에 기초하여 상기 스트림 소스를 제공받는 다른 사용자 단말과 동기를 맞출 수 있다.
미디어 동기화를 수행하는 사용자 단말은, 스트림 소스(stream source)를 제공하는 서버로 단말의 시간 정보(Time clock)를 제공하는 시간 정보 제공부, 및 제공된 상기 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)에 기초하여 상기 서버로부터 상기 스트림 소스를 제공받는 다른 사용자 단말 또는 복수의 스트림 소스들 간의 디코딩 시간을 동기화하는 동기화부를 포함할 수 있다.
일 실시예에 따른 미디어 동기화 방법 및 시스템은 서로 다른 종류의 복수의 촬영 장치들(예컨대, 액션 캠, 드론 캠 등) 각각에서 동일한 촬영 대상(예컨대, 객체 또는 장면)을 촬영하여 사용자 단말로 제공하는 경우에, 촬영 장치 별 하드웨어적 특성 차이, 코덱 특성 차이로 인한 지연, 그리고 복수의 촬영 장치들 각각에서 생성된 스트림 소스들을 복수의 사용자 단말들로 제공하는 과정에서 발생하는 지연을 고려하여 미디어 동기화를 수행함으로써, PIP, 다시점 보기 등을 사용자 단말에서 선택한 경우, 동일 촬영 대상에 대해 동기가 맞춰진 스트림 소스를 사용자 단말로 제공할 수 있다.
또한, PIP, 다시점 보기 이외에 VR 환경에서 미디어를 동기화하는 경우, 사용자의 시선에 해당하는 복수개의 타일들에 대해 보다 정확하게 동기가 맞춰진 타일들을 제공할 수 있다.
도 1은 다양한 형태의 미디어 스트림 소스가 사용자 단말로 제공되는 네트워크 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 스트림 소스를 제공하는 네트워크 환경을 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 멀티 소스 스트림을 동기화하는 네트워크 환경을 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 미디어 동기화 방법의 동작을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 미디어 동기화 시스템의 내부 구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, 복수의 사용자 단말들 간의 지연(delay)을 제어하는 동작을 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 동일 서버에서 복수의 스트림 소스를 하나의 사용자 단말로 제공하는 네트워크 환경을 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 사용자 단말에서 미디어 동기화를 수행하는 동작을 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 사용자 단말의 내부 구성을 도시한 블록도이다.
도 10은 본 발명의 일실시예에 있어서, 소스 간의 동기화 및 네트워크 상의 동기화를 수행하는 전반적인 흐름을 도시한 도면이다.
도 11은 본 발명의 일실시예에 있어서, 동기화 기능을 모듈화한 네트워크 환경을 도시한 도면이다.
도 12는 시간 동기화를 수행한 실험 결과를 나타내는 화면 구성을 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 실시예들은, 복수개의 서로 다른 촬영 장치들에서 촬영된 영상을 서버에서 사용자 단말로 제공하는 경우에 복수의 촬영 장치들에서 각각에서 촬영된 스트림 소스(stream source) 간의 지연(delay)을 고려하여 소스 간 시간 동기를 맞추고, 서버에서 복수의 사용자 단말들로 상기 스트림 소스를 제공 시 서버와 각 단말 간의 개별 구간에서 발생하는 지연(delay)을 고려하여 미디어 동기화를 수행하는 기술에 관한 것으로서, 특히, 다시점 보기, PIP(Picture In Picture) 등과 같이 동일 스트림 내에서 멀티 채널 형태의 서비스가 제공되는 경우에 각각에 대한 미디어 동기화를 수행하는 기술에 관한 것이다. 다시 말해, 스트림 소스(즉, 미디어 소스)가 촬영 장치들 각각에서 개별적으로 생성되는 과정에서 각각의 코덱 특성, 장치 별 H/W 특성으로 인한 지연(delay), 그리고 IP 전송 방식의 특성 상 스트림 소스를 패킷화(packetizing)함에 따라 스트림 소스가 분할(segmentation)되어 사용자 단말로 전송되는 과정에서 사용자 단말에서는 디패킷화(de-packetizing)를 통해 스트림 소스를 복원하는 과정에서 발생하는 지연(delay)을 고려하여 미디어를 동기화하는 기술에 관한 것이다. 또한, VR(Virtual Reality)의 경우, 사용자의 FoV(Field of View)에 따라 24개의 콘텐츠 스트리밍 채널에 실시간 접속 및 해제를 반복해야 하는데, 실시간 접속 및 해제를 반복 시 각각의 소스에 대한 동기를 유지하도록 하는 기술에 관한 것이다.
본 실시예들에서, '시간 동기화'는 타임 스탬프(Time Stamp) 수준의 동기화, 디바이스 타임(device time, 즉, 단말의 시간 정보(Time clock)) 수준의 동기화, 네트워크 상의 시간 동기화를 포함할 수 있다.
본 실시예들에서, '미디어 동기화 시스템'은 사용자 단말로 스트림 소스(즉, 미디어 소스)를 제공하는 서버를 나타낼 수 있다. 그리고, '사용자 단말'은 IP TV, VR(Virtual Reality) 장치, PC, 스마트폰(smartphone), 태블릿(tablet) 등을 나타낼 수 있다.
도 2는 본 발명의 일실시예에 있어서, 스트림 소스를 제공하는 네트워크 환경을 도시한 도면이다.
도 2에 따르면, 네트워크(200)는 복수의 미디어 캡쳐 장치(210), 각 캡쳐 장치(210)에 설치된 부호화 장치(220), 스트림 업로더(230), 미디어 동기화 시스템(240), 및 적어도 하나의 사용자 단말(250)을 포함할 수 있다.
도 2에서는 미디어 캡쳐 장치(210), 부호화 장치(220) 및 스트림 업로더(230)는 하나의 시스템 또는 장치로 구현될 수도 있고, 미디어 캡쳐 장치(210), 부호화 장치(220), 스트림 업로더(230) 및 미디어 동기화 시스템(240)이 하나의 시스템 또는 장치로 구성될 수도 있다.
미디어 캡쳐 장치(210)는 드론 캠, 액션 캠, 방송국 촬영 카메라, 마이크 등의 장치로서, 촬영 대상(예컨대, 동일 오브젝트, 또는 동일 화면)을 촬영하여 생성된 오디오 신호 또는 영상 신호를 부호화 장치(220)로 전달할 수 있다.
부호화 장치(220)는 미디어 캡쳐 장치(210)에서 생성 또는 캡쳐(capture)된 신호에 대해 부호화를 수행하는 장치로서, 미디어 캡쳐 장치(210)에 S/W적으로 설치된 코덱(codec)에 해당할 수 있다. 예컨대, MPEG-2, H.264 등의 비디오 코덱 및 오디오 코덱에 해당할 수 있다
스트림 업로더(230)는 부호화 장치(220)에서 부호화된 스트림 소스(즉, 기본 스트림, ES)를 서버인 미디어 동기화 시스템(240)으로 업로드(upload)할 수 있다. 예를 들어, 스트림 업로더(230)는 어플리케이션(application) 형태로 구현되어 미디어 캡쳐 장치(210)에 설치 및 실행될 수 있다. 예컨대, 미디어 캡쳐 장치(210)는 상기 어플리케이션을 통해 부호화 장치(220)에서 부호화되어 생성된 기본 스트림(Element Stream, ES)을 서버인 미디어 동기화 시스템(240)으로 업로드(upload)할 수 있다.
미디어 동기화 시스템(240)은 복수의 미디어 캡쳐 장치들에 해당하는 기본 스트림(ES)을 대상으로 패킷화(packetizing)를 수행하고, 패킷화된 스트림을 사용자 단말(250)로 제공할 수 있다. 이때, 미디어 동기화 시스템(240)은 타임 스탬프(timestamp) 수준의 동기화, 디바이스 타임(device time) 수준의 동기화, 및 미디어 동기화 시스템(240)에서 사용자 단말(250)로 패킷화된 스트림을 제공 시 네트워크 지연을 고려한 네트워크 상의 시간 동기화를 수행할 수 있다.
도 3은 본 발명의 일실시예에 있어서, 멀티 소스 스트림을 동기화하는 네트워크 환경을 도시한 도면이다.
도 3에 따르면, 네트워크(300)는 소스 장치(310), 서버(320) 및 사용자 단말(330)을 포함할 수 있으며, 서버(320)는 도 2의 미디어 동기화 시스템(230)에 해당하고, 사용자 단말(330)은 도 2의 사용자 단말(250)에 해당할 수 있다. 그리고, 소스 장치(310)는 도 2의 미디어 캡쳐 장치(210), 부호화 장치(220) 및 스트림 업로더(230) 전체 또는 일부에 해당할 수 있다.
예를 들어, 소스 장치(310)는 도 2의 미디어 캡쳐 장치(210), 부호화 장치(220) 및 스트림 업로더(230)를 모두 포함할 수도 있고, 미디어 캡쳐 장치(210), 부호화 장치(220)와는 별도로 연결되고, 스트림 업로더(230)만을 포함할 수도 있다.
소스 장치(310)는 소스 동기화 관리부(source sync. Manager)를 포함할 수 있으며, 소스 동기화 관리부는 소스 클럭 동기화 관리부(source clock sync. Manager) 및 소스 클럭 생성부(source clock generator)를 포함할 수 있다.
소스 동기화 관리부(source sync. Manager)는 소스 장치(310) 상에서 서버(320)의 동기화 관리부(server sync. manager)와 연동하여 시간 동기를 맞추는 역할을 수행할 수 있다. 그리고, 소스 동기화 관리부(source sync. Manager)는 OS(Operating System)의 시간 정보(time clock)를 핸들링(handling)할 수 있으며, 핸들링을 위해 어플리케이션 또는 클럭 디바이스 컨트롤러(clock device controller) 형태로 구현될 수 있다. 소스 동기화 관리부(source sync. Manager)는 시간, 코덱, 프레임율(frame rate) 등의 정보를 직접 설정할 수 있다.
소스 클럭 동기화 관리부(source clock sync. Manager)는 다른 소스 장치와의 클럭(clock) 동기화를 위한 기능을 제공할 수 있다. 예를 들어, 서버(320)의 소스 동기 제어부(source sync. Controller)를 통해 적어도 하나의 다른 소스 장치관련 정보를 획득하는 경우, 소스 클럭 동기화 관리부(source clock sync. Manager)는 획득된 정보에 기초하여 다른 소스 장치와의 클럭을 동기화할 수 있다.
소스 클럭 생성부(source clock generator)는 소스 장치(310)와 다른 소스 장치 간에 다른 클럭(clock)을 사용하는 경우에 클럭을 보정하기 위해 시스템 레벨의 클럭을 생성할 수 있다.
서버(320)는 서버 동기 관리부(server sync. manager)를 포함할 수 있으며, 서버 동기 관리부(server sync. Manager)는 소스 동기 제어부(source sync. controller), 단말 동기 제어부(client sync. controller) 및 지연 모니터링부(delay monitor)를 포함할 수 있다.
서버 동기 관리부(server sync. Manager)는 소스 장치(310)와 사용자 단말(303) 측의 동기화를 맞추기 위한 모듈(module)에 해당할 수 있다.
소스 동기 제어부(source sync. controller)는 소스 장치(310) 및 다른 소스 장치들 간의 동기를 맞출 수 있다. 예를 들어, 동일한 촬영 대상을 촬영한 드론 캠, 액션 캠 등과 같이 복수개의 소스 장치들이 존재하는 경우, 소스 동기 제어부(source sync. controller)는 복수의 소스 장치들 각각에서 생성된 스트림 소스를 미디어 어셋(media asset) 형태로 엮어 동기화 여부를 판단하고, 동기화되지 않은 경우 스트림 소스들 간의 동기를 맞추는 동기화를 수행할 수 있다. 여기서 미디어 어셋(media asset)은 하나의 스트림에 여러 소스의 미디어를 전달하게 되는 경우, 여러 소스들을 논리적으로 구분한 것을 나타낼 수 있으며, 미디어 어셋 형태로 엮인 스트림 소스를 전달 시 각 패킷이 어떠한 미디어 소스의 정보를 담고 있는지가 표시되어 전달될 수 있다.
단말 동기 제어부(client sync. controller)는 복수의 사용자 단말들로 스트림 소스를 제공 시 복수의 사용자 단말들 간의 동기를 맞출 수 있다.
지연 모니터링부(delay monitor)는 네트워크 구간에서의 채널 지연(delay)를 측정하고, 측정한 채널 지연에 기초하여 동기화를 위한 지연 값을 도출할 수 있다.
사용자 단말(330)은 클라이언트 타임 동기화 관리부(client time sync. Manager)를 포함할 수 있으며, 클라이언트 타임 동기화 관리부(client time sync. Manager)는 클라이언트 클럭 동기 관리부(client clock sync. Manager)를 포함할 수 있다.
클라이언트 타임 동기화 관리부(client time sync. Manager)는 사용자 단말에서 동기화를 수행하기 위해 이용될 수 있다. 예를 들어, 클라이언트 타임 동기화 관리부(client time sync. Manager)는 어플리케이션(application), S/W 형태로 구현되어, 단말 간 동기화를 위해 서버(320)로부터 수신한 시간 정보들을 기반으로 지연(delay)을 설정 및 해제할 수 있다.
클라이언트 클럭 동기 관리부(client clock sync. Manager)는 사용자 단말(330) 상의 클럭을 동기화할 수 있다. 예를 들어, 복수의 스트림 소스들이 비동기 클럭(clock)을 가질 경우, 클라이언트 클럭 동기 관리부(client clock sync. Manager)는 비동기 클럭을 보정할 수 있다.
도 4는 본 발명의 일실시예에 있어서, 미디어 동기화 방법의 동작을 도시한 흐름도이고, 도 5는 본 발명의 일실시예에 있어서, 미디어 동기화 시스템의 내부 구성을 도시한 블록도이다.
도 5의 미디어 동기화 시스템(500)은 정보 수집부(510), 지연 정보 생성부(520), 동기 정보 설정부(530), 지연 측정부(540), 동기 정보 업데이트부(550), 및 단말 동기화부(560)를 포함할 수 있다. 그리고, 정보 수집부(510), 지연 정보 생성부(520), 동기 정보 설정부(530), 및 동기 정보 업데이트부(550)는 도 3의 소스 동기 제어부(source sync. controller)에 해당하고, 지연 측정부(540)는 지연 모니터링부(delay monitor)에 해당하고, 단말 동기화부(550)는 단말 동기 제어부(client sync. controller)를 포함할 수 있다.
도 4의 각 단계들(410 내지 460 단계)는 도 5의 구성 요소인 정보 수집부(510), 지연 정보 생성부(520), 동기 정보 설정부(530), 지연 측정부(540), 동기 정보 업데이트부(550) 및 단말 동기화부(560)에 의해 수행될 수 있다.
410 단계에서, 정보 수집부(510)는 스트림 소스 정보를 수집할 수 있다.
일례로, 정보 수집부(510)는 스트림 소스를 업로드받기 위해 소스 장치(310)와의 연결을 위해 동작 상태를 리슨(listen) 상태로 설정할 수 있다. 예컨대, 도 3의 소스 동기 제어부(source sync. controller)의 동작 상태가 리슨(listen) 상태로 설정될 수 있다.
이때, 소스 장치(310)는 하나일 수도 있고, 복수개일 수도 있으며, 복수개인 경우, 복수개의 소스 장치들 각각으로부터 스트림 소스를 업로드받기 위해, 각 소스 장치와의 연결을 준비할 수 있다. 예를 들어, 별도의 이동형 서버를 이용하는 경우 서브 네트워크(sub network), 또는 별도 서버나 클라우드(cloud) 상에 서버가 존재하는 경우, URL 등을 통해 소스 장치(310)와 서버인 미디어 동기화 시스템(500)이 연결될 수 있다. 그러면, 정보 수집부(510)는 연결된 복수의 소스 장치들 각각으로부터 스트림 소스 정보를 수집할 수 있으며, 수집된 스트림 소스 정보와 해당 소스 장치의 식별자 정보를 매칭하여 저장 및 관리할 수 있다.
여기서, 스트림 소스 정보는, H/W 특성 정보 및 S/W 특성 정보를 포함할 수 있으며, H/W 특성 정보는 해당 소스 장치에 등록 또는 기 정의된 디바이스 프로파일(device profile) 정보 또는 관리자/사용자가 별도로 설정한 특징 정보를 포함할 수 있다. 그리고, S/W 특성 정보는 상기 디바이스 프로파일에 기초하여 결정된 코덱(codec) 특성 정보 및 프레임율(frame rate) 정보 등을 포함할 수 있다. 예컨대, H/W 특성 정보는 해당 소스 장치의 기기 모델명, 해당 소스 장치의 하드웨어적 지연 정보(Admin define delay value (ms)), 프로세서/칩셋(processor/chipset) 정보, OS 정보, 및 출력 인터페이스(output interface) 정보 등을 포함할 수 있다.
이때, 스트림 소스 정보는 디바이스 프로파일 정보 이외에 메니페스트(Manifest) 정보 형태로 수집될 수도 있다.
420 단계에서, 지연 정보 생성부(520)는 연결된 소스 장치들 각각에 해당하는 스트림 소스 간의 지연 테스트(delay test)를 수행하여 소스 장치 간의 네트워크 지연 정보를 생성할 수 있다. 이때, 지연 정보 생성부(520)는 상기 지연 테스트를 통해 스트림 소스 간이 네트워크 구간 지연 특성 정보를 파악할 수 있다.
예를 들어, 지연 정보 생성부(520)는 슬레이트(slate) 형태로 플래시(flash)를 이용해 해당 정보가 전달되는 시간 및 시간의 차를 측정할 수도 있고, 소스 장치들 각각에 설치된 어플리케이션을 통해 지연 테스트를 수행하여 시간을 측정할 수도 있다. 그리고, 지연 정보 생성부(520)는 측정된 시간에 기초하여 네트워크 지연 정보를 생성할 수 있다.
430 단계에서, 동기 정보 설정부(530)는 수집된 스트림 소스 정보와 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정할 수 있다. 즉, 동기 정보 설정부(530)는 연결된 소스 장치들 각각과의 동기 정보를 설정할 수 있다.
일례로, 동기 정보 설정부(530)는 하나의 채널 형태로 서비스하고자 하는 스트림 소스에 대한 동기 정보를 설정할 수 있다. 그리고, 동기 정보 설정부(530)는 소스 장치 별로 설정된 동기 정보를 해당 소스 장치의 식별자 정보에 기초하여 해당 소스 장치로 전달할 수 있다. 그러면, 해당 소스 장치는 서버인 미디어 동기화 시스템(500)으로부터 동기 정보를 수신하고, 수신된 동기 정보를 기반으로 장치 또는 소프트웨어의 설정을 변경함으로써, 미디어 동기화 시스템(500)과 시간 동기를 맞출 수 있다. 예컨대, 동기 정보 설정부(530)는 스트림 소스의 물리적인 지연과 스트리밍 서버까지의 지연 시간(즉, 네트워크 구간에서의 지연 시간)의 정보에 기초하여, 각각의 소스 장치로부터 스트림 소스가 업로드되는 시간의 차를 계산할 수 있다. 그리고, 동기 정보 설정부(530)는 계산된 시간의 차에 기초하여 스트림 소스 간의 지연 차를 설정하여 서버 측에서의 동기화를 맞춘 후, 단말로 전달할 수 있다. 다시 말해, 소스 장치(310)와 서버인 미디어 동기화 시스템(500) 간의 시간 동기화가 완료되면(즉, 시간 동기가 맞춰지면), 미디어 동기화 시스템(500)은 소스 장치(310)로부터 스트림 소스를 업로드받을 수 있다. 즉, 미디어 스트림 서비스가 시작될 수 있다.
이때, 다수의 소스 장치 중 서버인 미디어 동기화 시스템(500)과의 지연 시간이 고정적인 경우, 특정 소스 장치에 대해 고정 동기화 시간 값이 설정될 수 있으며, 서버 측에서 별도의 시간 조절 없이 소스 장치 측에서 시간 동기를 맞추어 스트림 소스를 전송할 수도 있다. 이처럼, 소스 장치에서 시간 동기를 맞추어 스트림 소스를 전송하기 위해, 소스 장치의 시간 정보가 업데이트될 수 있다.
440 단계에서, 지연 측정부(540)는 연결된 각 소스 장치와의 네트워크 지연을 주기적으로 측정할 수 있다. 여기서, 네트워크 지연은 소스 장치(310)와 미디어 동기화 시스템(500) 간에 형성된 채널 지연을 포함할 수 있다.
450 단계에서, 동기 정보 업데이트부(550)는 네트워크 지연에 기초하여 동기 정보를 업데이트할 수 있다. 즉, 동기 정보 업데이트부(550)는 430 단계에서, 수집된 스트림 소스 정보와 네트워크 지연 정보에 기초하여 동기 정보에 설정된 값과 440 단계에서, 획득한 서버와 단말 간의 지연 정보를 합쳐 동기 정보를 업데이트할 수 있다,
일례로, 상기 네트워크 지연에 기초하여 초기에 설정된 지연 설정 정보는 보정될 수 있다. 예컨대, 측정된 네트워크 지연이 상기 지연 설정 정보에 해당하는 설정값을 초과하는 지연이 발생한 경우, 동기 정보 업데이트부(550)는 해당 소스 장치의 동기 정보의 설정을 업데이트할 수 있다. 즉, 동기 정보 업데이트부(550)는 상기 430 단계에서 소스 장치(310)와 미디어 동기화 시스템(500) 간에 설정된 초기 동기 정보의 설정을 상기 네트워크 지연에 기초하여 업데이트할 수 있다. 사용자 단말과 서버 간의 전송 구간에 지연이 발생하는 경우, 지연을 기준으로 사용자 단말 간의 지연 시간을 동기화 하기 위한 값이 조정될 수 있다. 예컨대, 특정 지하철 객차 내에서 사용자 단말 A는 4G로, 사용자 단말 B는 WiFi로 서버에 접속하고, WiFi의 지연이 4G보다 높은 경우, 사용자 단말 간의 재생정보 시차가 발생할 수 있다. 그러면, 서버는 인접 셀(cell) 또는 구간(GPS 정보 등을 활용)에서 사용자 단말 간의 지연값을 측정해, 동기화를 위한 값을 설정할 수 있다. 즉, 초기 동기 정보가 설정될 수 있다.
460 단계에서, 단말 동기화부(560)는 사용자 단말(330)의 시간 정보(Time clock)에 기초하여 사용자 단말(330)과의 시간 동기화를 수행할 수 있다. 이때, 사용자 단말(330)은 하나일 수도 있고, 복수개 존재할 수도 있다. 여기서, 사용자 단말(330)과의 시간 동기화를 수행하는 동작은 아래의 도 6 및 도 7을 참고하여 후술하기로 한다.
도 6은 본 발명의 일실시예에 있어서, 복수의 사용자 단말들 간의 지연(delay)을 제어하는 동작을 도시한 흐름도이다.
도 6에서는 복수의 사용자 단말들 중 어느 하나의 사용자 단말(601)과의 정보 송수신을 통해 동기화를 수행하는 동작을 중심으로 설명하나, 이는 실시예에 해당되며, 복수의 사용자 단말들 각각에서 상기 사용자 단말(601)의 동작을 수행할 수 있다. 그리고, 도 6의 각 단계들(610 내지 690 단계)의 동작은 도 5의 단말 동기화부(560)에 의해 수행될 수 있다.
610 단계에서, 미디어 동기화 시스템(media server, 601)은 복수의 사용자 단말들 각각으로 해당 단말의 시간 정보(Time Clock)를 요청할 수 있다.
620 단계에서, 동기화 시스템(media server, 601)은 상기 요청에 대한 응답으로, 사용자 단말들 각각으로부터 해당 단말의 시간 정보(Time Clock)을 수신할 수 있다. 예컨대, 단말 동기화부(560)는 사용자 단말(Device #1, 602)로부터 해당 단말의 시간 정보(Time Clock)와 함께 해당 단말의 식별자 정보를 수신할 수 있으며, 단말의 식별자 정보와 해당 단말의 시간 정보를 매칭하여 저장 및 유지할 수 있다.
630 단계에서, 단말 동기화부(560)는 수신된 단말 별 시간 정보(time clock)에 기초하여 단말 별 시간 정보(time clock)를 생성할 수 있다. 여기서, 시간 정보는 단말 자체적으로 생성되는 단말의 시간 값을 의미할 수 있다.
640 단계에서, 단말 동기화부(560)는 단말 별 시간 정보(time clock)에 기초하여 공통 타임 스탬프(common time stamp, CTS)를 생성할 수 있다.
예를 들어, 수신할 사용자 단말 A의 시간 정보에 포함된 시각이 10:00:21(시:분:초) 이고, 사용자 단말 B의 시간 정보에 포함된 시각 10:00:23인 경우, CTS는 어느 하나의 정보를 기준으로 하거나 별도의 시각으로 설정되어 제공될 수 있다. 별도의 CTS 시각을 설정하는 경우, 글로벌 서비스를 고려해 특정 표준시를 기준으로 설정하며, 서버 시각을 기준으로 공통 시각을 각각의 단말에서 설정할 수 있다.
650 단계에서, 단말 동기화부(560)는 생성된 CTS 기반 시간 동기화를 각 사용자 단말로 요청할 수 있다.
660 단계에서, 단말 동기화부(560)는 상기 CTS 기반 시간 동기화의 요청에 대한 응답(ACK)을 수신할 수 있다. 이때, 복수의 사용자 단말들 각각에서, 610 내지 660 단계에 해당하는 동작을 동일하게 반복 수행할 수 있으며, 단말 동기화부(560)는 연결된 각 단말로부터 응답(ACK)을 수신함으로써, 각 단말들 간의 시간 동기화를 수행할 수 있다.
670 단계에서, 단말 동기화부(560)는 CTS 동기 생성부(CTS sync. Generator)로 CTS 기반 타임 스탬프 생성을 요청할 수 있다. 여기서, CTS 동기 생성부(CTS sync. Generator)는 도 5의 단말 동기화부(560)에 포함될 수 있다.
680 단계에서, 단말 동기화부(560)는 상기 공통 타임 스탬프(CTS)에 기초하여 패킷화를 수행할 수 있다. 예컨대, 단말 동기화부(560)는 패킷화 과정에서 패킷화된 스트림 소스에 CTS가 포함되도록 삽입할 수 있다.
690 단계에서, 단말 동기화부(560)는 상기 CTS가 삽입된 스트림 소스를 복수의 사용자 단말들 각각으로 제공할 수 있다.
도 7은 본 발명의 일실시예에 있어서, 동일 서버에서 복수의 스트림 소스를 하나의 사용자 단말로 제공하는 네트워크 환경을 도시한 도면이다.
도 7의 동작은 도 5의 단말 동기화부(560)에 의해 수행될 수 있으며, 도 7에서는 미디어 동기화 시스템(710)의 구성요소 중 단말 동기화부(560)의 동작을 중심으로 설명하기로 한다. 여기서, 단말 동기화부(560)는 단말 동기 제어부(client sync. Controller, 711), CTS 동기 생성부(CTS sync. Generator, 712), 및 적어도 하나의 스트림 제어부(713, 714, 715)를 포함할 수 있다. 예컨대, 스트림 제어부(713, 714, 715)는 도 7과 같이 3개로 한정되는 것이 아니라, 스트림 소스의 수에 대응할 수 있다. 스트림 소스가 2개인 경우, 스트림 제어부는 2개 존재하고, 스트림 소스가 5개인 경우, 스트림 제어부 역시 5개 존재할 수 있다.
단말 동기화부(560)는 사용자 단말(Device #1, 720)로 해당 단말의 시간 정보(Time Clock) 를 요청하여 수신할 수 있으며, 수신된 시간 정보에 기초하여 서버인 미디어 동기화 시스템(500)과 사용자 단말(720) 간의 시간 정보를 생성할 수 있다.
그리고, 단말 동기화부(560)는 생성된 상기 시간 정보에 기초하여 미디어 동기화 시스템(500)과 사용자 단말(720) 간의 동기화된 시각을 포함하는 공통 타임 스탬프(Common Time Stamp)를 생성할 수 있다. 즉, 공통 타임 스탬프(Common Time Stamp)의 시간 정보를 상기 동기화된 시각으로 설정할 수 있다.
이어, 단말 동기화부(560)는 스트림 소스(즉, 미디어 스트림)에 생성된 CTS를 삽입할 수 있다. 이때, 단말 동기화부(560)는 스트림 제어부(713, 714, 715)를 통해 전송되는 각 스트림 소스에 상기 CTS를 삽입할 수 있으며, 각 스트림 제어부(713, 714, 715)는 해당 스트림 소스를 사용자 단말로(720)로 전송할 수 있다. 즉, 사용자 단말(720)과의 동기화가 완료됨에 따라 사용자 단말(720)로의 스트리밍(streaming) 서비스가 시작될 수 있다.
그러면, 사용자 단말(720)은 미디어 동기화 시스템(500)으로부터 복수의 스트림 소스(즉, 멀티 소스)를 수신할 수 있으며, 수신된 스트림 소스 각각에 해당하는 버퍼 컨트롤러(buffer controller)의 상태(condition) 정보를 생성할 수 있다. 여기서, 상태 정보은 수신 버퍼의 데이터 사이즈(data size)를 나타낼 수 있다. 최소 지연 기반의 동기화를 제공하기 위해서는 각 스트림 소스 별로 최소의 버퍼(buffer)를 사용하여야 하며, 이에 대한 실시간 값을 고려해 지연 정보를 조절해야 한다. 이에 따라, 수신 버퍼의 데이터 사이즈를 나타내는 상태 정보가 생성될 수 있다. 그리고, 단말의 디코더(decoder)에서, 디코더 버퍼에 버퍼링된 스트림 소스를 구성하는 프레임들 중에서 I-프레임(inter frame)을 찾아 재생을 시작하려는 시점에, 단말의 디코더는 디코드 버퍼(decode buffer #1, #2, #3) 각각의 CTS에 기초하여 디코딩 시간을 맞춘 후 재생을 시작할 수 있다.
도 8은 본 발명의 일실시예에 있어서, 사용자 단말에서 미디어 동기화를 수행하는 동작을 도시한 흐름도이고, 도 9는 본 발명의 일실시예에 있어서, 사용자 단말의 내부 구성을 도시한 블록도이다.
도 9에서는 사용자 단말(900)이 시간 정보 제공부(910) 및 동기화부(920)를 포함하는 것으로 도시하였으나, 이는 실시예에 해당되며, 사용자 단말(900)는 렌더링부, 디코딩부, 디스플레이부, 입출력 제어부(예컨대, 키보드, 마우스, 마이크, 스피커, 터치팬 등), 유/무선통신모듈을 더 포함할 수 있다.
도 8의 각 단계들(810 내지 820 단계)은 도 9의 구성 요소인 시간 정보 제공부(910) 및 동기화부(920)에 의해 수행될 수 있다.
810 단계에서, 시간 정보 제공부(910)는 서버인 미디어 동기화 시스템(500)으로부터 시간 정보(time clock)의 제공을 요청받음에 따라, 자신의 시간 정보를 미디어 동기화 시스템(500)으로 제공할 수 있다.
820 단계에서, 동기화부(920)는 미디어 동기화 시스템(500)으로 제공한 시간 정보에 기초하여 생성된 CTS가 삽입된 스트림 소스를 제공받을 수 있다. 여기서, 상기 CTS는 적어도 하나의 다른 사용자 단말과 사용자 단말(900) 간의 동기를 맞춘 시각을 포함할 수도 있고, 사용자 단말(900)로 제공되는 복수의 스트림 소스들 간의 디코딩 시간을 동기화하기 위한 시각을 포함할 수도 있다.
예컨대, 복수의 스트림 소스들 간의 디코딩 시간을 동기화하기 위한 시각을 포함하는 경우, 동기화부(920)는 CTS에 포함된 시각에 기초하여 상기 복수의 스트림 소스들 각각에 해당하는 버퍼 컨트롤러의 디코딩 시간을 동기화할 수 있다. 이처럼, 동기화를 통해 버퍼 컨트롤러의 디코딩 시간이 맞춰지면, 각 스트림 소스가 재생되어 사용자 단말(900)의 화면에 표시될 수 있다. 예컨대, 다시점 보기 등을 제공하는 경우, 다시점에 해당하는 동기화된 각 영상들이 사용자 단말(900)의 화면에 표시될 수 있다. 사용자 단말(900)이 VR 기어(gear)인 경우, 동기화된 사용자 시선에 해당하는 복수의 타일들(tiles)이 재생될 수 있다.
도 10은 본 발명의 일실시예에 있어서, 소스 간의 동기화 및 네트워크 상의 동기화를 수행하는 전반적인 흐름을 도시한 도면이다.
도 10에 따르면, 소스 장치와 서버인 미디어 동기화 시스템이 하나의 장치로 구현될 수도 있고, 미디어 동기화 시스템은 클라우드(cloud)에 별도로 위치할 수도 있다.
도 10을 참고하면, CTS(Common Time Stamp)를 이용하여 소스 단의 각 장치 간에 동기화가 이루어지고, CTS를 이용하여 소스와 사용자 단말(Client Device #1) 간의 동기화가 수행될 수 있다. 그리고, 네트워크 지연을 측정하고, 측정된 네트워크 지연에 기초하여 서버와 단말 간의 동기화가 수행됨을 알 수 있다.
이처럼, 장치 별 H/W 특성, S/W 특성, 네트워크 지연을 고려하여 동기화가 수행될 수 있으며, 이를 위해 CTS 기반 스트림 연결 장치들 간의 동기화가 수행될 수 있다.
예컨대, MPEG-DASH/HLS기반으로 동기화를 제공하는 경우, 자바스크립트 기반 딜레이 컨트롤러(delay controller)를 이용하여 단말에서의 스트림 요청(stream request) 시점을 제어함으로써, 동기화가 제공될 수 있다. 그리고, 단말에 모바일 어플리케이션(Application) 또는 S/W를 설치하여 동기화를 제공하는 경우, 별도의 딜레이 컨트롤러(delay controller)를 구현하고, 미디어 스트림 버퍼(media stream buffer) 및 디코드 버퍼(decode buffer)의 상태(condition) 정보를 직접 관리하여 동기화를 수행할 수 있다. 이외에, H/W 구현을 통해 동기화를 제공하는 경우, Flash Light 등을 이용하 동기화 후 소스 장치 별 지연 특성 정보에 대한 디바이스 프로파일 정보를 생성하고, 이후, 리코딩(Recording)/라이브 스트리밍(Live Streaming) 시 상기 디바이스 프로파일에 포함된 정보를 기반으로 소스 장치 간의 동기화를 수행할 수 있다.
이에 따라, MPEG-DASH/HLS의 경우, 별도의 사용자 환경 변화 없이도 기존 서비스에 적용이 가능하며, 모바일 어플리케이션(Application) 또는 S/W를 설치하여 동기화 시 최종 사용자 단말의 디코더 수준에서의 제어를 통해 ms 수준의 동기화가 가능할 수 있다. 그리고, H/W 구현을 통해 동기화 시 소스 장치(즉, media source) 단의 정교한 동기화가 가능할 수 있다.
이상에서 설명한 바와 같이, 소스 장치에서 개별적으로 촬영되어 생성된 스트림 소스들이 각기 다른 네트워크 환경을 통해 스트리밍(streaming)되어 서버인 미디어 동기화 시스템(240, 500)으로 전달될 수 있다. 이때, 미디어 동기화 시스템(240, 500)은 다수의 스트림 소스, 즉, 멀티 소스를 하나의 스트림(stream)으로 먹싱(muxing)하는 것이 아니라, 개별 스트림(stream)으로 적어도 하나의 사용자 단말들(250)로 전달할 수 있다. 이처럼, 사용자 단말들(250)로 스트림이 전달될 때, 스트림이 전달되는 개별 구간에서의 시간 차가 추가적으로 발생할 수 있다. 이에 따라, 서버인 미디어 동기화 시스템(240, 500)에서 멀티 소스에 대해 다수의 사용자 단말들에서의 동기화가 수행될 수 있으며, 이하에서는 도 11을 참고하여, 필요한 기능을 모듈화(module)하여 동기화를 제공하는 동작에 대해 설명하고자 한다.
도 11은 본 발명의 일실시예에 있어서, 동기화 기능을 모듈화한 네트워크 환경을 도시한 도면이다.
도 11에 따르면, 미디어 캡쳐 장치(video capture, 1110), 스트림 업로더(stream uploader, 1120), 미디어 동기화 시스템(media stream server, 1130), 사용자 단말(media client, 1140) 간에 네트워크가 형성될 수 있다. 도 11에서, 미디어 캡쳐 장치(video capture, 1110), 스트림 업로더(stream uploader, 1120)는 도 2의 미디어 캡쳐 장치(210), 및 스트림 업로더(230)에 해당할 수 있으며, 이 경우, 미디어 캡쳐 장치(1110)에 부호화 장치(220)가 포함되도록 구성될 수 있다. 이외에, 미디어 캡쳐 장치(210), 및 스트림 업로더(230)는 하나의 소스 장치로 구현될 수 있다.
도 11을 참고하면, 비디오 스트리밍 네트워크 환경에서 동기화를 제공하기 위해 각 장치(1110, 1120, 1130, 1140) 별 주요 기능들(예컨대, 동기화 기능)이 모듈화될 수 있다.
미디어 캡쳐 장치(1110)는 해당 모듈의 지연 정보를 기록하기 위해 디바이스 프로파일 또는 메니페스트(manifest)를 포함할 수 있다. 미디어 캡쳐 장치(1110) 상의 장치 정보는 가변적일 수 있으나, 동적으로 변화되는 형태가 아니므로, 별도의 모듈 없이 프로파일(profile) 형태로 정의될 수 있으며, 해당 모듈의 지연(delay) 정보를 기록하기 위해 이용될 수 있다. 예컨대, 코덱의 타입(type), 인코딩 옵션(encoding option), 해상도 정보, 프레임율(frame rate) 정보, GoP 크기(size) 정보 등이 기록될 수 있다.
스트림 업로더(1120)는 기본 스트림 시간 동기 제어 모듈(Element Stream Time Sync. Controller)을 포함할 수 있으며, 기본 스트림 시간 동기 제어 모듈(Element Stream Time Sync. Controller)은 스트림 업로더 장치를 제어하고, 기본 스트림(Element Stream, ES)의 타임스탬프(Time Stamp) 등의 시간 정보와 스트림 프로토콜(stream protocol)의 설정을 제어할 수 있다. 이때, 시간 정보와 프로토콜의 설정을 제어하기 위한 제어 정보는 기본 스트림(ES)의 PTS(Presentation Time Stamp) 정보, DTS(Decoded Time Stamp) 정보를 포함할 수 있으며, 업스트리머(up streamer)의 버퍼 제어(buffer controller)를 통한 지연(delay) 조절, 프로토콜 별 특성에 따른 전송 우선 순위 조절, 장치의 시간 동기화 등을 수행하기 위해 이용될 수 있다.
미디어 동기화 시스템(1130)은 동기 관리 모듈(sync. Manager) 및 패킷화 시간 동기 제어 모듈(packetizer time sync. Controller)을 포함할 수 있다. 여기서, 동기 관리 모듈(sync. Manager)은 도 5의 지연 정보 생성부(520) 및 동기 정보 설정부(530) 중 적어도 하나를 모듈화한 것에 해당할 수 있다. 예컨대, 지연 정보 생성부(520), 동기 정보 설정부(530)에서 수행되는 동기화 기능이 하나로 통합되어 동기 관리 모듈(sync. Manager)로 모듈화될 수도 있고, 지연 정보 생성부(520), 동기 정보 설정부(530) 중 적어도 둘 이상 또는 하나만이 동기 관리 모듈(sync. Manager)로 모듈화될 수도 있다. 그리고, 패킷화 시간 동기 제어 모듈(packetizer time sync. Controller)은 도 5의 정보 수집부(510), 지연 측정부(540), 동기 정보 업데이트부(550) 및 단말 동기화부(560) 중 적어도 하나에서 수행되는 동기화 기능을 모듈화한 것에 해당할 수 있다. 즉, 패킷화 시간 동기 제어 모듈은 정보 수집부(510), 지연 측정부(540), 동기 정보 업데이트부(550) 및 단말 동기화부(560) 중 적어도 하나에 의해 수행될 수 있다.
먼저, 동기 관리 모듈(sync. Manager)은 IP 환경에서 멀티 소스 및 멀티 클라이언트 비디오 스트리밍 간의 전체 지연을 제어 및 관장하는 모듈을 나타낼 수 있다. 동기 관리 모듈을 통해 공통 시각 정보인 공통 타임 스탬프(common time stamp, CTS)가 제어될 수 있으며, 각 장치 간의 시간 동기화 여부가 확인되고, 장치 간의 시간 동기화가 제어될 수 있다.
패킷화 시간 동기 제어 모듈(packetizer time sync. Controller)은 서버 장치인 미디어 동기화 시스템(1130)의 입력 스트림(예컨대, 소스 장치인 미디어 캡쳐 장치(1110) 및 스트림 업로더(1120)로부터 입력되는 스트림) 및 출력 스트림(예컨대, 사용자 단말(1140)로 제공되는 스트림) 간의 개별적인 시간 차이를 보정하고, 전체적인 네트워크 상황을 고려하여 최대 지연 설정 등을 수행할 수 있다. 예컨대, 패킷화 시간 동기 제어 모듈은 소스 장치 또는 사용자 단말들 간의 지연 정보를 수집하고, 최소 지연 기반의 동기화를 위한 지연 정보를 설정할 수 있다. 이때, 설정된 지연값을 초과하는 네트워크 환경에 포함된 사용자 단말의 경우, 사용자 단말들 간의 동기화 기능이 오프(off)되도록 제어될 수 있다.
사용자 단말(1140)은 디코더 시간 동기 제어 모듈(Decoder time sync. Controller)를 포함할 수 있다. 디코더 시간 동기 제어 모듈은 사용자 단말의 디코딩(decoding) 성능과 관련된 부분의 정보를 제어할 수 있다.
예컨대, 디코더 시간 동기 제어 모듈은 사용자 단말의 미리 지정된 최대 처리 프레임율(frame rate) 정보에 기초하여 멀티 소스 스트림 처리 시 적절한 해상도 및 프레임율을 결정할 수 있다. 즉, 복수개의 해상도 및 프레임율 중 상기 멀티 소스 스트림의 디코딩에 알맞은(해당하는) 해상도 및 프레임율(frame rate)이 결정될 수 있다. 이때, 멀티 소스 스트림에 해당하는 해상도와 프레임율을 결정하기 위해 디코딩 버퍼(decoded buffer) 상에 생성되는 디패킷화된 스트림(de-packetized video stream)의 타임 스탬프(time stamp) 정보가 수정될 수 있다.
그리고, 디코더 시간 동기 제어 모듈은 각각의 사용자 단말들 간의 동기화를 위해서 공통 시각 정보인 CTS에 대한 관리 및 재생 속도의 제어를 통해 시작 시간 지연(start time delay) 등에 대한 지연 편가를 제어할 수 있다.
도 12는 시간 동기화를 수행한 실험 결과를 나타내는 화면 구성을 도시한 도면이다
도 12에서는 스탑 워치 비디오(stop watch video)를 이용하여 시간 동기화 실험 결과와 관련하여 스크린 샷(screen shot) 캡쳐된 화면 구성을 나타낼 수 있다. 도 12의 실험은, 서버 장치인 미디어 동기화 시스템(1130)에 포함된 모듈과 사용자 단말(1140)에 포함된 모듈을 통해 멀티 소스 스트림(즉, multiple video stream)에 대해 여러대의 사용자 단말들(1210, 1220, 1230, 1240) 상의 동기화에 대한 기능을 검증하기 위한 것이다. 실험을 위한 네트워크 환경은 2대의 서버(예컨대, 비디오 스트림을 공급하는 미디어 동기화 시스템), 4대의 사용자 단말(예컨대, 스마트폰 등에 구현된 테스트 플레이어(test player)을 포함할 수 있다. 이때, 4대의 사용자 단말(1210, 1220, 1230, 1240)은 와이파이(WiFi) 또는 LTE 연결을 통해 무선 인터넷을 수행할 수 있다. 그리고, 사용자 단말의 디코딩 성능차에 대한 테스트를 위해 사용자 단말들 중 한대는 제조사가 다른 장치로 구성될 수 있다. 예컨대, 단말 1210은 A사의 제품모델 AAA(예컨대, LG G5 등), 단말 1220 내지 1240은 B사의 제품모델 BBB(예컨대, 삼성 갤럭시 S7 edge 등)로 제조사가 서로 다른 장치로 구성될 수 있다. 비디오 스트림으로 사용한 스탑 워치 콘텐츠(stop watch content)의 경우, 프레임율(frame rate)이 30fps이므로, 실제 비디오를 스크린 샷(screen shot) 기능을 이용하여 찍어 판단하는 경우, 30/1000ms 수준의 검증이 가능할 수 있다.
도 12에서, 실제 테스트의 동작은 2대의 서버에서 콘솔(console)을 통해 동시에 스트림(stream)을 전송하고, 사용자 단말들 각각에 설치된 클라이언트 프로그램(client program)을 이용해 서버에 접속하는 형태로 진행될 수 있다.
도 12는, 서버와 통신 세션이 설정되어 연결된 사용자 단말들(즉, 비디오 스트림에 접속된 단말, 1210 내지 1240) 각각에서 재생 중인 스탑 워치 콘텐츠를 촬영한 결과를 나타낼 수 있다. 도 12를 참고하면, 사용자 단말들(1210 내지 1240) 각각에서 촬영한 콘텐츠는 동일한 비디오 프레임(video frame)을 나타냄을 확인할 수 있으며, 단말 1230의 경우, ms 단위에서 프레임의 갱신(update)이 발생함을 확인할 수 있다. 그리고, 4대의 단말들(1210, 1220, 1230, 1240)은 멀티 소스에서 멀티 클라이언트 간의 동기화가 약 30/1000ms 수준에서 발생함을 확인할 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (21)

  1. 스트림 소스(stream source) 정보를 수집하는 단계;
    스트림 소스(stream source) 간의 지연 테스트(delay test)를 수행하여 스트림 소스 간의 네트워크 지연 정보를 생성하는 단계;
    수집된 상기 스트림 소스 정보와 상기 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정하는 단계;
    상기 스트림 소스를 전송받고자 하는 적어도 하나의 사용자 단말과의 네트워크 지연(delay)를 측정하는 단계; 및
    측정된 상기 네트워크 지연에 기초하여 상기 동기 정보를 업데이트하는 단계
    를 포함하는 미디어 동기화 방법.
  2. 제1항에 있어서,
    상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 사용자 단말과의 시간 동기화를 수행하는 단계
    를 더 포함하는 미디어 동기화 방법.
  3. 제2항에 있어서,
    상기 사용자 단말과의 시간 동기화를 수행하는 단계는,
    복수의 사용자 단말에서 상기 스트림 소스의 제공을 요청한 경우, 상기 복수의 사용자 단말들 각각으로 해당 단말의 시간 정보(Time clock)를 요청하는 단계;
    상기 시간 정보 요청에 대한 응답으로, 상기 복수의 사용자 단말들 각각으로부터 해당 단말의 시간 정보를 수신하는 단계; 및
    수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행하는 단계
    를 포함하는 미디어 동기화 방법.
  4. 제3항에 있어서,
    상기 수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행하는 단계는,
    상기 해당 단말의 시간 정보와 해당 단말의 식별자 정보에 기초하여 공통 타임 스탬프(common time stamp, CTS)를 생성하는 단계; 및
    생성된 상기 공통 타임 스탬프(CTS)를 삽입한 스트림(stream)을 상기 복수의 사용자 단말들 각각으로 제공하는 단계
    를 포함하는 미디어 동기화 방법.
  5. 제2항에 있어서,
    상기 사용자 단말과의 시간 동기화를 수행하는 단계는,
    상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 미디어 동기화 시스템과 상기 사용자 단말 간의 시간 정보를 생성하는 단계;
    생성된 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)를 생성하는 단계; 및
    생성된 공통 타임 스탬프(CTS)를 상기 사용자 단말로 전송하고자 하는 서로 다른 채널에 해당하는 각 스트림에 삽입하여 전송하는 단계
    를 포함하는 미디어 동기화 방법.
  6. 제5항에 있어서,
    상기 공통 타임 스탬프(CTS)가 삽입된 스트림은, 상기 공통 타임 스탬프에 기초하여 디코딩 시간을 맞추어 재생되는 것을 특징으로 하는 미디어 동기화 방법.
  7. 제2항에 있어서,
    상기 사용자 단말과의 시간 동기화를 수행하는 단계는,
    소스 장치로부터 전달 받은 상기 스트림 소스와 상기 사용자 단말로 전달하고자 하는 스트림 간의 시간 차이를 보정하는 단계
    를 포함하는 미디어 동기화 방법.
  8. 제2항에 있어서,
    상기 정보를 수집하는 단계는,
    상기 사용자 단말과 네트워크를 형성하는 소스 장치 및 상기 사용자 단말로부터 지연 정보를 수집하고,
    상기 사용자 단말과의 시간 동기화를 수행하는 단계는,
    수집된 상기 지연 정보를 기반으로 사용자 단말들 간의 동기화 기능이 오프(off)되도록 제어하는 것
    을 특징으로 하는 미디어 동기화 방법.
  9. 제1항에 있어서,
    상기 스트림 소스(stream source) 정보를 수집하는 단계는,
    상기 스트림 소스를 제공하는 소스 장치로부터 소스 장치의 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 수집하는 것
    을 특징으로 하는 미디어 동기화 방법.
  10. 제1항에 있어서,
    상기 스트림 소스의 동기 정보를 설정하는 단계는,
    복수의 스트림 소스들을 사용자 단말로 제공하는 경우, 상기 복수의 스트림 소스를 어셋(asset) 형태로 엮은 후 복수의 스트림 소스들 간의 동기화 여부를 판단하는 단계; 및
    판단 결과에 기초하여 상기 복수의 스트림 소스들 각각의 동기 정보를 설정함으로써 소스 간 동기화를 수행하는 단계
    를 포함하는 미디어 동기화 방법.
  11. 스트림 소스(stream source) 정보를 수집하는 정보 수집부;
    스트림 소스(stream source) 간의 지연 테스트(delay test)를 수행하여 스트림 소스 간의 네트워크 지연 정보를 생성하는 지연 정보 생성부;
    수집된 상기 스트림 소스 정보와 상기 네트워크 지연 정보에 기초하여 특정 채널에 해당하는 스트림 소스의 동기 정보를 설정하는 동기 정보 설정부;
    상기 스트림 소스를 전송받고자 하는 적어도 하나의 사용자 단말과의 네트워크 지연(delay)를 측정하는 지연 측정부; 및
    측정된 상기 네트워크 지연에 기초하여 상기 동기 정보를 업데이트하는 동기 정보 업데이트부
    를 포함하는 미디어 동기화 시스템.
  12. 제11항에 있어서,
    상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 사용자 단말과의 시간 동기화를 수행하는 단말 동기화부
    를 더 포함하는 미디어 동기화 시스템.
  13. 제12항에 있어서,
    상기 단말 동기화부는,
    복수의 사용자 단말에서 상기 스트림 소스의 제공을 요청한 경우, 상기 복수의 사용자 단말들 각각으로 해당 단말의 시간 정보(Time clock)를 요청하고, 상기 시간 정보 요청에 대한 응답으로, 상기 복수의 사용자 단말들 각각으로부터 해당 단말의 시간 정보를 수신하고, 수신된 시간 정보에 기초하여 복수의 사용자 단말들 간의 시간 동기화를 수행하는 것
    을 특징으로 하는 미디어 동기화 시스템.
  14. 제13항에 있어서,
    상기 단말 동기화부는,
    상기 해당 단말의 시간 정보와 해당 단말의 식별자 정보에 기초하여 공통 타임 스탬프(common time stamp, CTS)를 생성하고, 생성된 상기 공통 타임 스탬프(CTS)를 삽입한 스트림(stream)을 상기 복수의 사용자 단말들 각각으로 제공하는 것
    을 특징으로 하는 미디어 동기화 시스템.
  15. 제12항에 있어서,
    상기 단말 동기화부는,
    상기 사용자 단말의 시간 정보(Time Clock)에 기초하여 미디어 동기화 시스템과 상기 사용자 단말 간의 시간 정보를 생성하고, 생성된 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)를 생성하고, 생성된 공통 타임 스탬프(CTS)를 상기 사용자 단말로 전송하고자 하는 서로 다른 채널에 해당하는 각 스트림에 삽입하여 전송하는 것
    을 특징으로 하는 미디어 동기화 시스템.
  16. 제15항에 있어서,
    상기 공통 타임 스탬프(CTS)가 삽입된 스트림은, 상기 공통 타임 스탬프에 기초하여 디코딩 시간을 맞추어 재생되는 것을 특징으로 하는 미디어 동기화 시스템.
  17. 제11항에 있어서,
    상기 정보 수집부는,
    상기 스트림 소스를 제공하는 소스 장치로부터 소스 장치의 디바이스 프로파일(device profile) 정보 또는 메니페스트(Manifest) 정보를 수집하는 것
    을 특징으로 하는 미디어 동기화 시스템.
  18. 제11항에 있어서,
    상기 동기 정보 설정부는,
    복수의 스트림 소스들을 사용자 단말로 제공하는 경우, 상기 복수의 스트림 소스를 어셋(asset) 형태로 엮은 후 복수의 스트림 소스들 간의 동기화 여부를 판단하고, 판단 결과에 기초하여 상기 복수의 스트림 소스들 각각의 동기 정보를 설정함으로써 소스 간 동기화를 수행하는 것
    을 특징으로 하는 미디어 동기화 시스템.
  19. 스트림 소스(stream source)를 제공하는 서버로 단말의 시간 정보(Time clock)를 제공하는 단계; 및
    제공된 상기 시간 정보에 기초하여 동기화된 시각을 포함하는 공통 타임 스탬프(common time stamp, CTS)에 기초하여 상기 서버로부터 상기 스트림 소스를 제공받는 다른 사용자 단말 또는 복수의 스트림 소스들 간의 디코딩 시간을 동기화하는 단계
    를 포함하는 사용자 단말에서의 미디어 동기화 방법.
  20. 제19항에 있어서,
    상기 공통 타임 스탬프(CTS)는,
    상기 단말의 시간 정보에 기초하여 상기 서버에서 생성된 상기 서버와 단말 간의 동기화된 시각을 포함하고,
    상기 동기화하는 단계는,
    상기 서버와 단말 간의 동기화된 시각을 포함하는 상기 공통 타임 스탬프(CTS)에 기초하여 상기 복수의 스트림 소스들 간의 디코딩 시간을 동기화하는 것
    을 특징으로 하는 사용자 단말에서의 미디어 동기화 방법.
  21. 제19항에 있어서,
    상기 공통 타임 스탬프(CTS)는,
    복수의 사용자 단말들 각각의 시간 정보(Time Clock)에 기초하여 상기 서버에서 생성된 단말들 간의 동기화된 시각을 포함하고,
    상기 동기화하는 단계는,
    상기 단말들 간의 동기화된 시각을 포함하는 상기 공통 타임 스탬프(CTS)에 기초하여 상기 스트림 소스를 제공받는 다른 사용자 단말과 동기를 맞추는 것
    을 특징으로 하는 사용자 단말에서의 미디어 동기화 방법.
KR1020170081223A 2017-02-03 2017-06-27 미디어 동기화 방법 및 시스템 KR101934200B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/662,986 US10341672B2 (en) 2017-02-03 2017-07-28 Method and system for media synchronization

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170015321 2017-02-03
KR1020170015321 2017-02-03

Publications (2)

Publication Number Publication Date
KR20180090719A true KR20180090719A (ko) 2018-08-13
KR101934200B1 KR101934200B1 (ko) 2019-04-05

Family

ID=63250666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170081223A KR101934200B1 (ko) 2017-02-03 2017-06-27 미디어 동기화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101934200B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027638A (ko) * 2018-09-05 2020-03-13 주식회사 엘지유플러스 복수의 동영상 처리를 위한 장치 및 방법
WO2020060966A1 (en) * 2018-09-18 2020-03-26 Roku, Inc. Wireless audio synchronization using a spread code
KR20200125203A (ko) * 2019-04-26 2020-11-04 재단법인 실감교류인체감응솔루션연구단 지연시간 기반의 동적 네트워크 서비스 운용 방법 및 장치
US10958301B2 (en) 2018-09-18 2021-03-23 Roku, Inc. Audio synchronization of a dumb speaker and a smart speaker using a spread code
US10992336B2 (en) 2018-09-18 2021-04-27 Roku, Inc. Identifying audio characteristics of a room using a spread code
KR102284043B1 (ko) * 2020-07-01 2021-08-02 주식회사 아이엠파인 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법, 시스템 및 컴퓨터-판독가능 기록매체
KR20220076761A (ko) * 2020-12-01 2022-06-08 주식회사 마젠타컴퍼니 복수의 미디어 소스를 동기화하여 통합 전송하는 시스템 및 그 방법
KR20220095083A (ko) * 2020-12-29 2022-07-06 서울대학교산학협력단 비디오 스트리밍 시스템의 성능을 평가하기 위한 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060109487A (ko) * 2003-11-14 2006-10-20 노키아 코포레이션 무선 멀티-레코더 시스템
KR20150072231A (ko) * 2013-12-19 2015-06-29 한국전자통신연구원 멀티 앵글 뷰 서비스 제공 장치 및 방법
JP5855538B2 (ja) * 2012-06-28 2016-02-09 カシオ計算機株式会社 撮像装置、撮像システム、撮像方法及びプログラム
KR20160048942A (ko) * 2013-09-20 2016-05-04 코닌클리즈케 케이피엔 엔.브이. 미디어 스트림들 간의 타임라인 정보를 상관시키기 위한 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060109487A (ko) * 2003-11-14 2006-10-20 노키아 코포레이션 무선 멀티-레코더 시스템
JP5855538B2 (ja) * 2012-06-28 2016-02-09 カシオ計算機株式会社 撮像装置、撮像システム、撮像方法及びプログラム
KR20160048942A (ko) * 2013-09-20 2016-05-04 코닌클리즈케 케이피엔 엔.브이. 미디어 스트림들 간의 타임라인 정보를 상관시키기 위한 시스템 및 방법
KR20150072231A (ko) * 2013-12-19 2015-06-29 한국전자통신연구원 멀티 앵글 뷰 서비스 제공 장치 및 방법

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027638A (ko) * 2018-09-05 2020-03-13 주식회사 엘지유플러스 복수의 동영상 처리를 위한 장치 및 방법
WO2020060966A1 (en) * 2018-09-18 2020-03-26 Roku, Inc. Wireless audio synchronization using a spread code
US10931909B2 (en) 2018-09-18 2021-02-23 Roku, Inc. Wireless audio synchronization using a spread code
US10958301B2 (en) 2018-09-18 2021-03-23 Roku, Inc. Audio synchronization of a dumb speaker and a smart speaker using a spread code
US10992336B2 (en) 2018-09-18 2021-04-27 Roku, Inc. Identifying audio characteristics of a room using a spread code
US11438025B2 (en) 2018-09-18 2022-09-06 Roku, Inc. Audio synchronization of a dumb speaker and a smart speaker using a spread code
US11558579B2 (en) 2018-09-18 2023-01-17 Roku, Inc. Wireless audio synchronization using a spread code
US11671139B2 (en) 2018-09-18 2023-06-06 Roku, Inc. Identifying electronic devices in a room using a spread code
KR20200125203A (ko) * 2019-04-26 2020-11-04 재단법인 실감교류인체감응솔루션연구단 지연시간 기반의 동적 네트워크 서비스 운용 방법 및 장치
KR102284043B1 (ko) * 2020-07-01 2021-08-02 주식회사 아이엠파인 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법, 시스템 및 컴퓨터-판독가능 기록매체
KR20220076761A (ko) * 2020-12-01 2022-06-08 주식회사 마젠타컴퍼니 복수의 미디어 소스를 동기화하여 통합 전송하는 시스템 및 그 방법
KR20220095083A (ko) * 2020-12-29 2022-07-06 서울대학교산학협력단 비디오 스트리밍 시스템의 성능을 평가하기 위한 장치 및 방법

Also Published As

Publication number Publication date
KR101934200B1 (ko) 2019-04-05

Similar Documents

Publication Publication Date Title
KR101934200B1 (ko) 미디어 동기화 방법 및 시스템
US10341672B2 (en) Method and system for media synchronization
US11758209B2 (en) Video distribution synchronization
JP5854243B2 (ja) Ipビデオ信号同期のための方法及び装置
CN105245977B (zh) 一种多组摄像头同步直播的方法
US20150222815A1 (en) Aligning videos representing different viewpoints
EP2690876A2 (en) Heterogeneous network-based linked broadcast content transmitting/receiving device and method
US11553215B1 (en) Providing alternative live media content
KR20100073079A (ko) 동기화된 다중 영상 취득을 위한 다중 카메라 제어 및 영상저장 장치 및 방법
WO2007061068A1 (ja) 受信装置及び本線映像配信装置
US11201903B1 (en) Time synchronization between live video streaming and live metadata
KR101446995B1 (ko) 멀티앵글영상촬영헬멧 및 촬영방법
KR101748382B1 (ko) 비디오 스트리밍 제공 방법 및 시스템
US20170180769A1 (en) Simultaneous experience of media
US11076197B1 (en) Synchronization of multiple video-on-demand streams and methods of broadcasting and displaying multiple concurrent live streams
JP7365212B2 (ja) 動画再生装置、動画再生システム、および動画再生方法
JP2009171294A (ja) 映像配信システム、映像中継装置、及び映像中継方法
KR102150685B1 (ko) 미디어 서비스 채널 전환 방법 및 장치
JP2019033362A (ja) 配信装置、受信装置及びプログラム
JP6907104B2 (ja) 映像配信装置、制御方法及びプログラム
KR101810883B1 (ko) 라이브 스트리밍 시스템 및 그의 스트리밍 클라이언트
KR20130008436A (ko) Mmt 복합 전달 서비스에서 mmt 패킷 스트림 동기화를 위한 타이밍 정보 제공 방법 및 mmt 패킷 스트림 동기화 방법
KR102599664B1 (ko) 다시점 영상을 전송하기 위한 시스템의 동작 방법 및 이를 수행하는 시스템
JP2010183237A (ja) コンテンツ同期再生システム、コンテンツ同期再生方法、再生端末、再生端末の制御方法、及び制御プログラム
US11317035B1 (en) Method and system for synchronized playback of multiple video streams over a computer network

Legal Events

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