KR20230154051A - 시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법 - Google Patents

시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법 Download PDF

Info

Publication number
KR20230154051A
KR20230154051A KR1020237033353A KR20237033353A KR20230154051A KR 20230154051 A KR20230154051 A KR 20230154051A KR 1020237033353 A KR1020237033353 A KR 1020237033353A KR 20237033353 A KR20237033353 A KR 20237033353A KR 20230154051 A KR20230154051 A KR 20230154051A
Authority
KR
South Korea
Prior art keywords
time
data stream
data
packet
stream
Prior art date
Application number
KR1020237033353A
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 모비 시스템즈 (피티와이) 엘티디
Publication of KR20230154051A publication Critical patent/KR20230154051A/ko

Links

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • 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/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법은: (i) 제1 데이터 스트림의 프레임을 제공하기 위한 제1 기록 또는 생성 디바이스를 제공하고; (ii) 제1 데이터 스트림을 패킷으로 인코딩하고, 각각의 제1 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제1 데이터 스트림 프레임을 포함하고; (iii) 제2 데이터 스트림의 프레임을 제공하기 위한 제2 기록 또는 생성 디바이스를 제공하고; (iv) 제2 데이터 스트림을 패킷으로 인코딩하고, 각각의 제2 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제2 데이터 스트림 프레임을 포함하고; (v) 제1 및 제2 데이터 스트림을 처리 디바이스로 전송하고; (vi) 시작 기준 시간을 전송된 제1 및 제2 데이터 스트림의 제1 패킷과 연관시키고; (vii) 제1 스트림 시작 시간을 전송된 제1 데이터 스트림의 제1 패킷에 할당하고 그리고 제2 스트림 시작 시간을 전송된 제2 데이터 스트림의 제1 패킷에 할당하고; (viii) 시작 기준 시간과 제1 데이터 스트림 시작 시간으로부터의 제1 시간 오프셋을 (직접 또는 간접적으로) 제1 데이터 스트림의 각각의 후속 패킷과 연관시키고 그리고 시작 기준 시간과 제2 데이터 스트림 시작 시간으로부터의 제2 시간 오프셋을 (직접 또는 간접적으로) 제2 데이터 스트림의 각각의 후속 패킷과 연관시키고; (ix) 제1 데이터 스트림과 연관된 제1 시간 오프셋을 사용하여 그리고 제2 데이터 스트림과 연관된 제2 시간 오프셋을 사용하여 제1 데이터 스트림 패킷과 제2 데이터 스트림 패킷을 시간-정렬하고; 그리고 (x) 제1 및 제2 데이터 스트림의 기존의 프레젠테이션 시간과 관계없이, 정렬된 제1 및 제2 데이터 스트림 패킷에 대해 공통 프레젠테이션 시간을 적용하는 것을 포함한다.

Description

시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법
본 발명은 시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법에 관한 것이다. 보다 구체적으로, 본 발명은 각 데이터 스트림이 패킷으로 인코딩되고; 공통 시작 기준 시간이 각각의 데이터 스트림에 할당되고; 그리고 시작 기준 시간에 관한 시간 오프셋이 디스플레이를 위해 원격 디바이스로 전송되기 전에 각각의 데이터 스트림의 각각의 패킷에 할당되는, 멀티-스트림 데이터 전송을 제공하는 방법에 관한 것이다.
멀티-스트림 데이터를 전송하기 위한 다양한 방법이 알려져 있다. 그러나, 표준 비디오 플레이어는 비디오 데이터 스트림의 패킷의 프레젠테이션 시간에 기초하여 비디오 데이터 스트림을 재생한다. 전형적으로, 라이브 스트림 브로드캐스트에서, 비디오 플레이어는 비디오 플레이어가 라이브 비디오 데이터 스트림을 재생할 수 있도록 하루 중 현재 시간 및 프레젠테이션 시간에 대해 오프셋을 조정한다. 이는 다수의 그리고 동시적인 비디오 데이터 스트림을 시청하는 것을 시도할 때, 비디오 플레이어는 각각의 개별 비디오 데이터 스트림을, 자신의 개별 프레젠테이션 시간과 관련하여, 현재 시간에 정렬하기 위해 추가적인 제어와 복잡성이 요구되기 때문에, 어려워진다. 이는 추가적인 데이터 스트림을 이러한 라이브 비디오 데이터 스트림(예를 들어, 라이브 스포츠 분석 데이터, 또는 별도의 오디오 스트림)에 동기화해야 하는 경우 훨씬 더 어려워진다. 각각의 추가적인 데이터 스트림이 뷰에 결합되므로, 이러한 모든 데이터 스트림을 동기화 상태로 유지하기 위해 추가적인 최종 사용자 측(end user-side)/클라이언트 측(client-side) 동기화 계산이 요구된다.
본 발명의 목적은 데이터 피드의 시작 시간과 관계없이 다양한 데이터 피드를 동기화할 수 있고, 동기화된 데이터 피드를 디스플레이를 위한 원격 디바이스(예를 들어, 비디오 플레이어)로 전송할 수 있는 멀티-스트림 데이터 피드를 제공하는 것이다. 보다 구체적으로, 본 발명의 목적은 제1 데이터 스트림으로부터 시작 기준 시점을 결정하고 이어서 시간 동기화된 데이터 스트림을 디스플레이를 위한 원격 디바이스로 전송하기 전에 각각의 데이터 스트림의 프레젠테이션 시간을 공통 프레젠테이션 시간과 정렬되도록 수정함으로써, 원격 디바이스에서 데이터 스트림을 시간 동기화하는 해결수단을 제공하는 것이다.
본 발명에 따르면, 시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법이 제공되고, 방법은:
제1 데이터 스트림의 프레임을 제공하기 위한 제1 기록 또는 생성 디바이스를 제공하고;
제1 데이터 스트림을 패킷으로 인코딩하고, 각각의 제1 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제1 데이터 스트림 프레임을 포함하고;
제2 데이터 스트림의 프레임을 제공하기 위한 제2 기록 또는 생성 디바이스를 제공하고;
제2 데이터 스트림을 패킷으로 인코딩하고, 각각의 제2 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제2 데이터 스트림 프레임을 포함하고;
제1 및 제2 데이터 스트림을 처리 디바이스로 전송하고;
공통 시작 기준 시간을 전송된 제1 및 제2 데이터 스트림의 제1 패킷과 연관시키고;
제1 스트림 시작 시간을 전송된 제1 데이터 스트림의 제1 패킷에 할당하고 그리고 제2 스트림 시작 시간을 전송된 제2 데이터 스트림의 제1 패킷에 할당하고;
시작 기준 시간과 제1 데이터 스트림 시작 시간으로부터의 제1 시간 오프셋을 (직접 또는 간접적으로) 제1 데이터 스트림의 각각의 후속 패킷과 연관시키고 그리고 시작 기준 시간과 제2 데이터 스트림 시작 시간으로부터의 제2 시간 오프셋을 (직접 또는 간접적으로) 제2 데이터 스트림의 각각의 후속 패킷과 연관시키고;
제1 데이터 스트림과 연관된 제1 시간 오프셋을 사용하여 그리고 제2 데이터 스트림과 연관된 제2 시간 오프셋을 사용하여 제1 데이터 스트림 패킷과 제2 데이터 스트림 패킷을 시간-정렬하고; 그리고
제1 및 제2 데이터 스트림의 기존의 프레젠테이션 시간과 관계없이, 정렬된 제1 및 제2 데이터 스트림 패킷에 공통 프레젠테이션 시간을 적용하는 것을 포함한다.
전형적으로, 데이터 스트림은 비디오, 오디오 또는 데이터(예를 들어, 자막 또는 분석 데이터)의 스트림을 포함한다.
일반적으로, 전송은 예를 들어, 비디오, 오디오 브로드캐스트 또는 멀티미디어(데이터 포함) 전송과 같은, 브로드캐스트를 포함한다.
시작 기준 시간은 시각(time of day) 스탬프(예를 들어, 2021년 3월 1일 09시 31분 10초 5밀리초), 그것의 파생(예를 들어, 시각 스탬프로부터의 증분) 또는 선택된 임의의 시간일 수 있다.
바람직하게는, 시간 오프셋은 증분을 참조하여 또는 시각 스탬프를 비교함으로써 결정된다.
전형적으로, 처리 디바이스는 서버이다.
일반적으로, 기록 또는 생성 디바이스는 비디오 레코더, 마이크로폰 또는 데이터를 생성하는 디바이스이다.
선택적으로, 제1 및 제2 기록 또는 생성 디바이스는 기록 또는 데이터 생성동안 각각의 패킷에 대해 시각 스탬프 또는 시간 오프셋을 적용한다. 대안적으로, 제1 및 제2 기록 또는 생성 디바이스는 처리 디바이스로 제1 및 제2 데이터 스트림을 전송하고 그리고 처리 디바이스는 제1 및 제2 데이터 스트림의 수신 시 수신된 제1 및 제2 데이터 스트림 패킷에 대해 시각 스탬프 또는 시간 오프셋을 적용한다.
바람직하게는, 시각 스탬프는 GPS 타임 스탬프, NTP 서버 타임 스탬프, 수동으로 생성된 타임 스탬프 등을 포함한다(제한되지 않음).
전형적으로, 처리 디바이스는 제1 및 제2 데이터 스트림 패킷을 시간-정렬하고 그리고 패킷에 대해 공통 프레젠테이션 시간을 적용한다.
일반적으로, 처리 디바이스는 디스플레이를 위한 원격 디바이스(예를 들어, 컴퓨터, TV, 스마트폰)로 제1 및 제2 데이터 스트림 패킷(공통 프레젠테이션 시간을 가짐)을 전송하고, 원격 디바이스는 시각 스탬프 또는 시간 오프셋 스탬프가 아닌 프레젠테이션 시간을 처리할 수 있다.
바람직하게는, 시작 기준 시간은 전송된 제1 및 제2 데이터 스트림의 제1 패킷의 시각 스탬프와 연관된다.
처리 디바이스는 단일의 처리 디바이스일 수 있다. 대안적으로, 처리 디바이스는 시작 기준 시간에 의해 동기화된 제1 및 제2 처리 디바이스일 수 있다.
선택적으로, 시작 기준 시간은 제3 데이터 스트림을 수신하는 제2 처리 디바이스와 동기화되어, 제2 처리 디바이스는 제3 데이터 스트림을 제1 및 제2 데이터 스트림과 시간 정렬할 수 있다.
본 발명은 이제 첨부된 도면을 참조하여, 단지 예시로서, 보다 상세하게 설명될 것이다:
도 1은 시간 동기화된 데이터 피드를 나타내는 개략도이다;
도 2는 기존의 프레젠테이션 시간에 따른(데이터 피드를 시간 정렬하지 않음) 도 1의 데이터 피드의 재생의 개략도이다;
도 3은 시간 오프셋을 사용하여 시간-정렬된 데이터 피드를 갖는, 도 1의 데이터 피드의 개략도이다;
도 4는 도 3의 데이터 피드의 재생의 개략도이다; 그리고
도 5는 도 1의 데이터 피드를 재생하기 위해 사용되는 하드웨어를 나타내는 개략도이다.
도면의 도 3 및 5를 참조하면, 브로드캐스트(예를 들어, 비디오 브로드캐스트, 오디오 브로드캐스트 또는 멀티미디어(데이터 포함) 전송) 전송을 위해 시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법은 다음을 포함하는 시스템을 활용한다:
- 제1 기록 또는 생성 디바이스(22)(예를 들어, 비디오 레코더, 마이크로폰 또는 데이터를 생성하는 디바이스);
- 제2 기록 또는 생성 디바이스(24)(예를 들어, 비디오 레코더, 마이크로폰 또는 데이터를 생성하는 디바이스); 및
- 처리 디바이스(26)(예를 들어, 서버)
제1 또는 제2 기록 또는 생성 디바이스(22)는 데이터 스트림(12, 14, 16 또는 18)을 생성하는 디바이스이다. 이러한 디바이스의 예는 카메라 뷰 각도로부터 프레임을 캡처하고 이 컨텐츠를 전송하기 위한 데이터 스트림을 생성하는 비디오 인코더이다.
본 발명에 따른 시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법은 다음의 단계를 포함한다:
1. 제1 데이터 스트림(16)의 프레임을 제공하기 위한 제1 기록 또는 생성 디바이스(22)를 제공하고;
제1 데이터 스트림(16)은 비디오, 오디오 또는 데이터(예를 들어, 자막 또는 분석 데이터)일 수 있다.
2. 제1 데이터 스트림(16)을 패킷으로 인코딩하고, 여기서 각각의 제1 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제1 데이터 스트림 프레임을 포함하고;
"프레임"은 비디오 스트림 내의 단일 사진 데이터 샘플이거나 또는 미리 결정된 방식으로 샘플링된 또는 캡처된 오디오 샘플 또는 기타 데이터이다. 샘플링 속도는 일반적으로 비디오의 경우 "초당 프레임 수"로, 그리고 오디오 및 기타 데이터의 경우 "초당 샘플 수"로 기술된다. 예를 들어, 비디오 카메라는, 미리 결정된 수의 초당 프레임 수로, 프레임을 생성한다.
"인코딩"은 프레임을 가져오고 프레젠테이션 시간을 포함하는 추가적인 정보로 프레임을 기술하고, 그리고 전송을 위해 프레임을 패킷으로 압축/인코딩하는 방법이다. 일반적인 인코딩 형식(MP4, RTMP 등과 같은)을 사용하는 인코딩은 일반적인 재생 디바이스가 최종 사용자에게 재생할 수 있도록 패킷을 프레임으로 압축풀기/디코딩할 수 있도록 한다.
"패킷"은 인코딩에 의해 생성된다. 패킷은 샘플 데이터의 하나의 프레임 또는 프레임들과, 프레젠테이션 시간과 같은, 샘플 데이터를 기술하기 위한 추가적인 정보를 포함한다.
"프레젠테이션 시간"은 패킷에 포함된 비디오, 오디오 또는 데이터를, 최종 사용자에게 표시하는 시간을 기술하기 위해 각각의 패킷 내에 포함된 타임 스탬프이다. 프레젠테이션 시간은 전형적으로 데이터 스트림의 시작 이후 경과된 절대 시간이고, 스트림의 시작 시 프레젠테이션 시간은 전형적으로 0이고 스트림의 모든 패킷에 관한 스톱워치와 같이 증가한다. 프레젠테이션 시간은 기록 또는 생성 디바이스에 의해 프레임이 샘플링된 시간의 표현이다.
3. 제2 데이터 스트림(18)의 프레임을 제공하기 위한 제2 기록 또는 생성 디바이스(22)를 제공하고;
유사하게, 제2 데이터 스트림(18)은 비디오, 오디오 또는 데이터(예를 들어, 자막 또는 분석 데이터)일 수 있다.
4. 제2 데이터 스트림(18)을 패킷으로 인코딩하고, 여기서 각각의 제2 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제2 데이터 스트림 프레임을 포함하고;
5. 제1 및 제2 데이터 스트림(16 및 18)을 처리 디바이스(24)로 전송하고;
"처리 디바이스"(24)는 중앙 서버, 분산형 서버 또는 컴퓨팅 디바이스(카메라 폰과 같은)를 포함할 수 있으나, 이에 제한되지 않는다. 처리 디바이스(24)는 또한 기록 또는 생성 디바이스와 동일한 디바이스일 수 있다.
6. 공통 시작 기준 시간(즉, 동일한 시작 기준 시간)을 전송된 제1 및 제2 데이터 스트림(16 및 18)의 제1 패킷과 연관시키고;
예를 들어, 제1 또는 제2 데이터 스트림(16 또는 18)이 개시될 때, 시작 기준 시간은 전송된 해당 제1 또는 제2 데이터 스트림(16 또는 18)의 제1 패킷의 시각 스탬프(time of the day stamp)(예를 들어, 2021년 3월 1일 09시 31분 10초 5미리초)로 설정될 수 있다. 대안적으로, 시작 기준을 시각 스탬프로 설정하는 대신에, 그것의 파생(예를 들어, 시각 스탬프로부터의 증분) 또는 선택된 임의의 시간으로 시작 기준 시간이 설정될 수도 있다.
시각 스탬프는 또한 GPS 타임 스탬프, NTP 서버 타임 스탬프, 수동으로 생성된 타임 스탬프 등을 포함할 수 있다(이에 제한되지 않음).
7. 제1 스트림 시작 시간을 전송된 제1 데이터 스트림(16)의 제1 패킷에 할당하고 그리고 제2 스트림 시작 시간을 전송된 제2 데이터 스트림(18)의 제1 패킷에 할당하고;
"스트림 시작 시간"은 스트림이 시작된 시간으로, 시각에 따라 결정되거나 또는 시작 기준 시간 이후 경과된 상대적 시간으로 측정될 수 있다. 스트림 시작 시간은 기록 또는 생성 디바이스에 의해 결정될 수 있다. 대안적으로, 스트림 시작 시간은 스트림의 제1 패킷의 수신 시 처리 디바이스에 의해 결정될 수 있다. 더욱 대안적으로, 스트림 시작 시간은 기록 또는 생성 디바이스와 처리 디바이스 사이의 상호작용에 의해 결정될 수 있다.
8. 시작 기준 시간과 제1 데이터 스트림(16) 시작 시간으로부터의 제1 시간 오프셋을 (직접 또는 간접적으로) 제1 데이터 스트림(16)의 각각의 후속 패킷과 연관시키고 그리고 시작 기준 시간과 제2 데이터 스트림(18) 시작 시간으로부터의 제2 시간 오프셋을 (직접 또는 간접적으로) 제2 데이터 스트림(18)의 각각의 후속 패킷과 연관시키고;
"시간 오프셋"은 데이터 스트림의 스트림 시작 시간과 시작 기준 시간 사이의 결정된 시간 차이이다. 그것은 증분을 참조하거나 또는 시각 스탬프를 비교함으로써 결정될 수 있다.
선택적으로, 제1 및 제2 기록 또는 생성 디바이스(22)는 기록 또는 데이터 생성동안 각각의 패킷에 대해 시각 스탬프 또는 시간 오프셋을 적용한다. 대안적으로, 제1 및 제2 기록 또는 생성 디바이스(22)는 처리 디바이스(24)로 제1 및 제2 데이터 스트림을 전송하고 그리고 처리 디바이스(24)는 제1 및 제2 데이터 스트림(16 및 18)을 수신 시 수신된 제1 및 제2 데이터 스트림에 대해 시각 스탬프 또는 시간 오프셋을 적용한다.
바람직하게는, 시작 기준 시간 및 관련 스트림 시작 시간에 관한 시간 오프셋은 처리 디바이스(24)에 의해 결정된다.
9. 제1 데이터 스트림(16)과 연관된 제1 시간 오프셋을 사용하고 그리고 제2 데이터 스트림(18)과 연관된 제2 시간 오프셋을 사용하여 제1 데이터 스트림(16) 패킷을 제2 데이터 스트림(18) 패킷과 시간-정렬하고; 그리고
제1 및 제2 데이터 스트림(16 및 18)의 각각의 패킷은 "기존의(original) 프레젠테이션 시간"(즉, 시간-정렬 전의 고유한 프레젠테이션 시간)을 갖는다. 이는 기록 또는 생성 디바이스(22)에 의해 기존에 결정된 프레젠테이션 시간이다.
"시간-정렬"은 제2 데이터 스트림 패킷을 동시간대의 제1 데이터 스트림 패킷과 시간-정렬하기 위해 기존의 프레젠테이션 시간에 계산된 시간 오프셋을 더함으로써 제2 데이터 스트림 패킷의 기존의 프레젠테이션 시간을 조정하는 방법이다.
제2 데이터 스트림(18) 패킷의 기존의 프레젠테이션 시간의 시간-정렬은 처리 디바이스(24)에 의해 수행된다.
10. 제1 및 제2 데이터 스트림(16 및 18)의 기존의 프레젠테이션 시간과 관계없이, 정렬된 제1 및 제2 데이터 스트림 패킷에 공통 프레젠테이션 시간을 적용한다.
"공통 프레젠테이션 시간"은 단순히 데이터 스트림 패킷의 기존의 프레젠테이션 시간을 시간 오프셋에 더한 결과일 수 있다.
"공통 프레젠테이션 시간"은 시간-정렬된 제1 및 제2 데이터 스트림 패킷의 기존의 프레젠테이션 시간을 대체한다. 이는 시간-정렬된 제1 및 제2 데이터 스트림(16 및 18) 패킷이 다른 데이터 스트림(12 및 14) 패킷과 시간 동기화되도록 할 수 있다.
공통 프레젠테이션 시간에 의한 기존의 프레젠테이션 시간의 대체는 처리 디바이스(24)에 의해 수행된다.
시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법은 전형적으로 디스플레이를 위한 원격 디바이스(20)(예를 들어, 컴퓨터, TV, 스마트폰)로 제1 및 제2 데이터 스트림 패킷(공통 프레젠테이션 시간을 가짐)을 전송(처리 디바이스에 의해)하는 단계를 더 포함하고, 원격 디바이스(20)는 시각 스탬프 또는 시간 오프셋 스탬프가 아닌 프레젠테이션 시간을 처리할 수 있다.
"전송"은 데이터 스트림의 배포를 의미하도록 의도된다. 예를 들어, 비디오 데이터 스트림 전송은 자신들의 비디오 플레이어 상의 비디오를 시청하는 최종 사용자로의 비디오 컨텐츠의 배포 브로드캐스트를 포함한다. 전송은 또한 서버 상에서 생성되고 최종 사용자에게 배포되는 데이터 스트림을 포함할 수 있다.
처리 디바이스(24)는 단일의 처리 디바이스일 수 있음이 이해될 것이다. 대안적으로, 처리 디바이스는 시작 기준 시간에 의해 동기화된 제1 및 제2 처리 디바이스일 수 있다.
또한, 시작 기준 시간은 제3 데이터 스트림을 수신하는 제2 처리 디바이스(24)와 동기화될 수 있고, 이로써 제2 처리 디바이스는 제3 데이터 스트림을 제1 및 제2 데이터 스트림(16 및 18)과 시간 정렬할 수 있다.
시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법은 예시로서 아래에서 더욱 설명된다.
스포츠 이벤트의 비디오 브로드캐스터는 전형적으로 여러 대의 카메라(22)를 사용하여 경기를 녹화하고, 각각의 카메라는 상이한 시야각에서 게임 플레이를 캡처한다. 이러한 시야각은 집에서 자신들의 랩탑 또는 모바일 디바이스(20)로 라이브 비디오 스트림을 시청할 수 있는 최종 사용자에게 전송되는 단일 브로드캐스트 비디오 피드로 편집된다.
비디오 브로드캐스터는 세 가지 상이한 시야각을 멀티-뷰 브로드캐스트 스트림으로 브로드캐스트하여, 집에 있는 시청자가 자신들의 시청 각도를 스스로 변경하여, 사용가능한 비디오 스트림으로부터 경기를 시청하는 방법을 선택할 수 있도록 할 수 있다.
이 시나리오에서, 최종 사용자의 좋은 시청 경험을 보장하기 위해 비디오 스트림이 시간 동기화되는 것을 보장하는 것이 중요하고 바람직하다.
도 1은 시간 동기화된 데이터 피드(본 발명에 따른 방법을 사용하지 않음)를 나타낸다. 이 예에서, 제1 비디오 데이터 스트림(112)은 13:00에서 스트리밍을 시작하고, 제2 비디오 데이터 스트림(114)은 13:02에서 시작하며 그리고 제3 비디오 데이터 스트림(116)은 13:05에서 시작한다. 데이터 스트림 프레젠테이션 시간은 절대 시간 0에서 시작하여, 데이터 스트림이 시작할 때 개시되는, 스탑워치의 시작 시간에 비유될 수 있다.
각각의 개별 비디오 피드가 스트리밍을 시작할 때, 그것들의 실제 시작 시각이 다르고 비디오 스트림과 연관된 메타-데이터에 기록될 수 있더라도, 그것들의 프레젠테이션 시간 모두는 0에서 시작한다.
시간-정렬 없이, 비디오 데이터 스트림(112, 114 및 116)은 자신들의 기존의 프레젠테이션 시간에 따라 원격 디바이스(120) 상에서 재생될 것이며, 도 2에 도시된 바와 같이, 원격 디바이스(120) 상에서 이 비디오 데이터 스트림의 바람직하지 않고, 동기화되지 않은 재생을 초래한다.
비디오 데이터 스트림의 패킷의 프레젠테이션 시간에 기초하여 비디오 데이터 스트림을 재생하는 현재 비디오 플레이어(20)의 단점을 해결하기 위해, 본 발명에 따른 방법은 다음과 같이 그리고 도 3에도시된 바와 같이 데이터 스트림을 처리한다:
- 제1 데이터 스트림(12)이 13:00에서 개시될 때, 처리 디바이스(24)에 의해 시작 기준 시간이 생성되고 저장된다.
- 제1 비디오 데이터 스트림(16) 및 별도의 오디오 데이터 스트림(14)이 13:02에서 개시될 때, 이들 뒤의 비디오 및 오디오 데이터 스트림(16 및 14)은 시각 기준 시간보다 00:02만큼 늦기 때문에 그것들의 패킷 프레젠테이션 시간은 00:02의 시간 오프셋에 의해 수정된다.
- 제2 비디오 데이터 스트림(18)이 13:05에서 개시될 때, 그것의 패킷 프레젠테이션 시간은 00:05의 시간 오프셋에 의해 수정된다.
그 결과 모든 데이터 스트림(12, 14, 16 및 18)(데이터, 비디오 및 오디오)은 시청자의 원격 디바이스(20)(예를 들어, 비디오 플레이어 및 관련 재생 디바이스)로 배포되기 전에 서로 정렬된다. 도 4로 돌아가면, 데이터 스트림(12, 14, 16 및 18)이 배포 전에 처리 디바이스 상에서 동기화되므로, 시청자의 원격 디바이스(20)는 다수의 데이터 스트림(12, 14, 16 및 18)을 동시에 재생하기 위해 추가적인 클라이언트 측 동기화를 요구하지 않는다는 것이 이해될 것이다.
시작 기준 시간 및 데이터 스트림 시작 시간으로 돌아가면:
시작 기준 시간 및 데이터 스트림 시작 시간이 다양한 방법으로 결정될 수 있다. 일반적으로, 그것들은 캡처된 시각의 타임 스탬프를 포함한다. 대안적으로, 그것들은 대부분의 디지털/컴퓨팅 디바이스 내에 존재하는 자유-실행 클록/타이머로부터의 타임 스탬프로서 캡처될 수 있다. 자유-실행 타이머는 시각과 관련이 없으나, 시작 기준 시간, 및 데이터 스트림 시작 시간 사이의 시간 오프셋을 결정하기 위한 기준점으로 역할을 할 수 있다. 몇몇 시나리오가 아래에 설명되어 있다.
시나리오 1 - 제1 데이터 스트림의 제1 패킷으로부터의 시간을 사용:
처리 디바이스(24)가 제1 데이터 스트림의 제1 패킷을 수신할 때, 시작 기준 시간으로서 타임 스탬프가 캡처되고, 이는 제1 데이터 스트림 시작 시간과 동일하다. 시각을 사용하여 캡처되는 경우, 13:00을 시작 기준 시간의 예로 사용한다. 자유-실행 타이머를 사용하여 캡처되는 경우, 타이머는 00:00의 값으로 시작된다.
시작 기준 시간(시각으로서) = 13:00
시작 기준 시간(타이머로서) = 00:00
제1 데이터 스트림 시작 시간(시각으로서) = 13:00
제1 데이터 스트림 시작 시간(타이머로서) = 00:00
제1 데이터 스트림이 시작 기준 시간으로 간주되었으므로 제1 데이터 스트림에 관한 시간 오프셋은 00:00이다.
처리 디바이스(24)가 제2 스트림의 제1 패킷을 수신할 때, 제2 데이터 스트림 시작 시간으로서 타임 스탬프가 캡처된다. 시각을 사용하여 캡처되는 경우, 13:02을 제2 데이터 스트림 시작 시간의 예로 사용한다. 자유-실행 타이머를 사용하여 캡처되는 경우, 제1 데이터 스트림의 제1 패킷 수신 시 시작된 타이머는 동작 중이며 현재 00:02 값이다.
제2 데이터 스트림 시작 시간(시각으로서) = 13:02
제2 데이터 스트림 시작 시간(타이머로서) = 00:02
제2 데이터 스트림에 관한 시간 오프셋은 따라서 00:02이다. 이는 시각의 차이를 뺌으로써, 또는 자유-실행 타이머의 값을 판독함으로써 계산된다.
시나리오 2 - 제2 데이터 스트림의 제1 패킷으로부터의 시간을 사용:
시나리오 1에 자세히 설명된 예는 제2 데이터 스트림이 처리 디바이스에 가장 먼저 도착하고 시작 기준 시간으로서 사용되는 경우 그 반대로 적용될 수 있다. 다음과 같은 시간을 가정한다:
시작 기준 시간(시각으로서) = 14:05
시작 기준 시간(타이머로서) = 00:00
제2 데이터 스트림 시작 시간(시각으로서) = 14:05
제2 데이터 스트림 시작 시간(타이머로서) = 00:00
제2 데이터 스트림이 시작 기준 시간으로 간주되었으므로 제2 데이터 스트림에 관한 시간 오프셋은 00:00이다.
제1 데이터 스트림이 이어서 처리 디바이스(24)에 나중에 도착한다.
제1 데이터 스트림 시작 시간(시각으로서) = 14:10
제1 데이터 스트림 시작 시간(타이머로서) = 00:05
제1 데이터 스트림에 관한 시간 오프셋은 따라서 00:05이다. 이는 시각의 차이를 뺌으로써, 또는 자유-실행 타이머의 값을 판독함으로써 계산된다.
시나리오 3 - 임의의 시작 기준 시간으로부터의 시간을 사용:
이 시나리오에서, 시작 기준 시간은 예를 들어, 전송 또는 방송이 시작하도록 설정된 미리 결정된 시간과 같은, 임의의 시간으로 설정된다. 시작 기준 시간은 이어서 명령에 의해 설정되며, 이는 인간 상호작용에 의해 또는 "시작 기준 시간을 현재로 설정"과 같은 방식으로 컴퓨팅 디바이스 사이에서 명령을 연산함으로써 설정될 수 있다.
시작 기준 시간은 "현재"로 지시되며, 이는 15:00의 시각이다. 또는 자유-실행 타이머는 00:00에서 시작된다.
제1 데이터 스트림의 제1 패킷은 15:02에서, 또는 타이머 값 00:02에서 캡처된다. 제2 데이터 스트림의 제1 패킷은 15:08에서, 또는 타이머 값 00:08에서 캡처된다.
시작 기준 시간(시각으로서) = 15:00
시작 기준 시간(타이머로서) = 00:00
제1 데이터 스트림 시작 시간(시각으로서) = 15:02
제1 데이터 스트림 시작 시간(타이머로서) = 00:02
제2 데이터 스트림 시작 시간(시각으로서) = 15:08
제2 데이터 스트림 시작 시간(타이머로서) = 00:08
제1 데이터 스트림에 관한 시간 오프셋은 따라서 00:02이다. 이는 시각의 차이를 뺌으로써, 또는 자유-실행 타이머의 값을 판독함으로써 계산된다.
제2 데이터 스트림에 관한 시간 오프셋은 따라서 00:08이다. 이는 시각의 차이를 뺌으로써, 또는 자유-실행 타이머의 값을 판독함으로써 계산된다.
시작 기준 시간을 생성하고 그리고 시작 기준 시간에 대한 시간 오프셋을 사용하여 모든 추가적인 데이터 스트림 패킷 프레젠테이션 시간을 공통 프레젠테이션 시간으로 수정함으로써, 모든 데이터 스트림이 처리 디바이스(24)에서 시간 동기화된 상태로 유지된다는 것이 이해될 것이다. 이는 최종 사용자 측/클라이언트 측 상에서 별도의 시간 오프셋 클록을 관리하는 복잡성 없이, 비디오 데이터 스트림이 서로 동기화된 상태로 유지되고 추가적인 데이터 스트림(스포츠 분석 데이터 스트림 및 오디오 스트림과 같은)과 동기화된 상태로 유지될 수 있는 멀티-뷰 브로드캐스팅과 같은 응용분야에서 여러 이점을 갖는다.
처리 디바이스는 다수의 데이터 스트림이 시간 정렬되고 동기화된 재생을 위해 최종 사용자 애플리케이션에 배포되는, 전형적인 서버 환경에 포함될 수 있다는 것 또한 이해될 것이다.
분산 컴퓨팅을 사용하면, 각각이 자체 별도의 데이터 스트림이 있는, 서로 다른 지리적 위치에 있는 여러 처리 디바이스에 걸쳐 시작 기준 시간이 동기화될 수 있다는 것 또한 이해될 것이다. 이는 지리적으로 분산된 서로 다른 지역의 오디오, 비디오 및 데이터 스트림을 시간 동기화 방식으로 결합해야 하는 상황에서 유리할 것이다.

Claims (17)

  1. 시간-동기화된 멀티-스트림 데이터 전송을 제공하는 방법으로서, 상기 방법은:
    제1 데이터 스트림의 프레임을 제공하기 위한 제1 기록 또는 생성 디바이스를 제공하고;
    상기 제1 데이터 스트림을 패킷으로 인코딩하고 - 각각의 제1 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제1 데이터 스트림 프레임을 포함함 -;
    제2 데이터 스트림의 프레임을 제공하기 위한 제2 기록 또는 생성 디바이스를 제공하고;
    상기 제2 데이터 스트림을 패킷으로 인코딩하고 - 각각의 제2 데이터 스트림 패킷은 프레젠테이션 시간 및 미리 결정된 수의 제2 데이터 스트림 프레임을 포함함 -;
    상기 제1 및 제2 데이터 스트림을 처리 디바이스로 전송하고;
    시작 기준 시간을 전송된 상기 제1 및 제2 데이터 스트림의 제1 패킷과 연관시키고;
    제1 스트림 시작 시간을 전송된 상기 제1 데이터 스트림의 상기 제1 패킷에 할당하고 그리고 제2 스트림 시작 시간을 전송된 상기 제2 데이터 스트림의 상기 제1 패킷에 할당하고;
    상기 시작 기준 시간과 제1 데이터 스트림 시작 시간으로부터의 제1 시간 오프셋을 (직접 또는 간접적으로) 상기 제1 데이터 스트림의 각각의 후속 패킷과 연관시키고 그리고 상기 시작 기준 시간과 제2 데이터 스트림 시작 시간으로부터의 제2 시간 오프셋을 (직접 또는 간접적으로) 상기 제2 데이터 스트림의 각각의 후속 패킷과 연관시키고;
    상기 제1 데이터 스트림과 연관된 상기 제1 시간 오프셋을 사용하여 그리고 상기 제2 데이터 스트림과 연관된 상기 제2 시간 오프셋을 사용하여 상기 제1 데이터 스트림 패킷과 상기 제2 데이터 스트림 패킷을 시간-정렬하고; 그리고
    상기 제1 및 제2 데이터 스트림의 기존의 프레젠테이션 시간과 관계없이, 상기 정렬된 제1 및 제2 데이터 스트림 패킷에 공통 프레젠테이션 시간을 적용하는 것을 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 제1 및 제2 데이터 스트림은 비디오, 오디오 또는 데이터의 스트림을 포함하는, 방법.
  3. 청구항 2에 있어서,
    상기 전송은 브로드캐스트를 포함하는, 방법.
  4. 청구항 3에 있어서,
    상기 시작 기준은 시각(time of day) 스탬프; 그것의 파생; 또는 선택된 임의의 시간인, 방법.
  5. 청구항 4에 있어서,
    상기 시간 오프셋은 증분을 참조하여; 또는 시각 스탬프를 비교함으로써 결정되는, 방법.
  6. 청구항 4에 있어서,
    상기 처리 디바이스는 서버인, 방법.
  7. 청구항 6에 있어서,
    상기 기록 또는 생성 디바이스는 비디오 레코더, 마이크로폰 또는 데이터를 생성하는 디바이스인, 방법.
  8. 청구항 7에 있어서,
    상기 제1 및 제2 기록 또는 생성 디바이스는 기록 또는 데이터 생성동안 각각의 패킷에 대해 상기 시각 스탬프 또는 시간 오프셋을 적용하는, 방법.
  9. 청구항 7에 있어서,
    상기 제1 및 제2 기록 또는 생성 디바이스는 처리 디바이스로 상기 제1 및 제2 데이터 스트림을 전송하고 그리고 상기 처리 디바이스는 상기 제1 및 제2 데이터 스트림의 수신 시 상기 수신된 제1 및 제2 데이터 스트림 패킷에 대해 상기 시각 스탬프 또는 시간 오프셋을 적용하는, 방법.
  10. 청구항 9에 있어서,
    상기 시각 스탬프는 GPS 타임 스탬프, NTP 서버 타임 스탬프, 수동으로 생성된 타임 스탬프 등을 포함하는, 방법.
  11. 청구항 10에 있어서,
    상기 처리 디바이스는 상기 제1 및 제2 데이터 스트림 패킷을 시간-정렬하고 그리고 상기 패킷에 대해 공통 프레젠테이션 시간을 적용하는, 방법.
  12. 청구항 11에 있어서,
    상기 처리 디바이스는 디스플레이를 위한 원격 디바이스로 상기 제1 및 제2 데이터 스트림 패킷(공통 프레젠테이션 시간을 가짐)을 전송하고, 상기 원격 디바이스는 시각 스탬프 또는 시간 오프셋 스탬프가 아닌 프레젠테이션 시간을 처리할 수 있는, 방법.
  13. 청구항 12에 있어서,
    상기 원격 디바이스는 컴퓨터, TV 또는 스마트폰인, 방법.
  14. 청구항 13에 있어서,
    상기 시작 기준 시간은 전송된 상기 제1 및 제2 데이터 스트림의 상기 제1 패킷의 상기 시각 스탬프와 연관된, 방법.
  15. 청구항 14에 있어서,
    상기 처리 디바이스는 단일의 처리 디바이스인, 방법.
  16. 청구항 14에 있어서,
    상기 처리 디바이스는 상기 시작 기준 시간에 의해 동기화된 제1 및 제2 처리 디바이스를 포함하는, 방법.
  17. 청구항 16에 있어서,
    상기 시작 기준 시간은 제3 데이터 스트림을 수신하는 제2 처리 디바이스와 동기화되어, 상기 제2 처리 디바이스는 상기 제3 데이터 스트림을 상기 제1 및 제2 데이터 스트림과 시간 정렬할 수 있는, 방법.
KR1020237033353A 2021-03-04 2022-03-02 시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법 KR20230154051A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
ZA2021/01483 2021-03-04
ZA202101483 2021-03-04
PCT/ZA2022/050010 WO2022187876A1 (en) 2021-03-04 2022-03-02 A method of providing a time-synchronized multi-stream data transmission

Publications (1)

Publication Number Publication Date
KR20230154051A true KR20230154051A (ko) 2023-11-07

Family

ID=81580132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033353A KR20230154051A (ko) 2021-03-04 2022-03-02 시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법

Country Status (12)

Country Link
US (1) US20240171792A1 (ko)
EP (1) EP4302481A1 (ko)
JP (1) JP2024508911A (ko)
KR (1) KR20230154051A (ko)
CN (1) CN117157986A (ko)
AU (1) AU2022230477A1 (ko)
BR (1) BR112023017833A2 (ko)
CA (1) CA3212540A1 (ko)
IL (1) IL305458A (ko)
MX (1) MX2023010213A (ko)
WO (1) WO2022187876A1 (ko)
ZA (1) ZA202308192B (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001886B2 (en) * 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
WO2013144347A1 (en) * 2012-03-29 2013-10-03 Koninklijke Kpn N.V. Marker-based inter-destination media synchronization
CN105723723B (zh) * 2013-09-20 2019-01-08 皇家Kpn公司 在媒体流之间使时间线信息相互关联
US20170006331A1 (en) * 2015-06-30 2017-01-05 Stmicroelectronics International N.V. Synchronized rendering of split multimedia content on network clients
US10284888B2 (en) * 2017-06-03 2019-05-07 Apple Inc. Multiple live HLS streams

Also Published As

Publication number Publication date
ZA202308192B (en) 2024-04-24
EP4302481A1 (en) 2024-01-10
CA3212540A1 (en) 2022-09-09
JP2024508911A (ja) 2024-02-28
WO2022187876A1 (en) 2022-09-09
MX2023010213A (es) 2023-09-28
IL305458A (en) 2023-10-01
BR112023017833A2 (pt) 2023-10-03
US20240171792A1 (en) 2024-05-23
CN117157986A (zh) 2023-12-01
AU2022230477A1 (en) 2023-09-14

Similar Documents

Publication Publication Date Title
US11095929B2 (en) Video distribution synchronization
US20200053414A1 (en) Broadcast management system
JP5977760B2 (ja) 複数のリアルタイム伝送ストリームを受信する受信装置と、その送信装置およびマルチメディアコンテンツ再生方法
JP6317872B2 (ja) 異なるネットワークを介して受信したコンテンツのレンダリングを同期するデコーダ及びそれにおける方法
US9832497B2 (en) Marker-based inter-destination media synchronization
Howson et al. Second screen TV synchronization
US11622163B2 (en) System and method for synchronizing metadata with audiovisual content
CN102752669A (zh) 多通道实时流媒体文件的传送处理方法与***、接收装置
CA2826985A1 (en) Synchronizing program presentation
JP2010171697A (ja) 映像配信システム,映像配信装置,及び同期補正処理装置
KR101841313B1 (ko) 멀티미디어 흐름 처리 방법 및 대응하는 장치
CN114079813A (zh) 画面同步方法、编码方法、视频播放设备及视频编码设备
Concolato et al. Synchronized delivery of multimedia content over uncoordinated broadcast broadband networks
EP3398346A1 (en) Video streams
TWI393431B (zh) 行動電視系統及其同步化播放串流服務的方法
KR20230154051A (ko) 시간 동기화된 멀티 스트림 데이터 전송을 제공하는 방법
Köhnen et al. A DVB/IP streaming testbed for hybrid digital media content synchronization
Kooij Playout delay of TV broadcasting
US11856242B1 (en) Synchronization of content during live video stream
KR102320670B1 (ko) 데이터 동기화 시스템 및 방법
Segundo et al. Remote temporal couplers for multiple content synchronization
Zhou et al. Synchronous Locating for Multi-View Video Broadcast with Time-Shifted Functionality