KR102445593B1 - 오디오 및 비디오의 멀티모드 동기식 렌더링 - Google Patents

오디오 및 비디오의 멀티모드 동기식 렌더링 Download PDF

Info

Publication number
KR102445593B1
KR102445593B1 KR1020197010602A KR20197010602A KR102445593B1 KR 102445593 B1 KR102445593 B1 KR 102445593B1 KR 1020197010602 A KR1020197010602 A KR 1020197010602A KR 20197010602 A KR20197010602 A KR 20197010602A KR 102445593 B1 KR102445593 B1 KR 102445593B1
Authority
KR
South Korea
Prior art keywords
audio
electronic device
mode
video
data
Prior art date
Application number
KR1020197010602A
Other languages
English (en)
Other versions
KR20190106986A (ko
Inventor
대니 라우
춘호 리
Original Assignee
디티에스 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디티에스 엘엘씨 filed Critical 디티에스 엘엘씨
Publication of KR20190106986A publication Critical patent/KR20190106986A/ko
Application granted granted Critical
Publication of KR102445593B1 publication Critical patent/KR102445593B1/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/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
    • 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
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/2625Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for delaying content or additional data distribution, e.g. because of an extended sport event
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4126The peripheral being portable, e.g. PDAs or mobile phones
    • H04N21/41265The peripheral being portable, e.g. PDAs or mobile phones having a remote control device for bidirectional communication between the remote control device and client device
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/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
    • H04N21/43076Synchronising 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 of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • H04N21/43637Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping 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/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising

Abstract

제1 디바이스를 통한 비디오 재생 및 무선 네트워크를 통해 연결된 하나 이상의 분리된 디바이스를 통한 오디오 재생을 위해 미디어가 선택된다. 미디어 재생을 개선하기 위해 하나 이상의 요인에 기초하여 오디오와 비디오를 동기화하기 위한 상이한 기법이 선택될 수 있다.

Description

오디오 및 비디오의 멀티모드 동기식 렌더링
네트워크 시스템은, 컴퓨터, 스마트폰, 태블릿, 텔레비전 등과 같은, 다양한 연결된 디바이스를 가질 수 있다. 네트워크에 연결된 디바이스는 미디어를 재생할 수 있다. 예컨대, 네트워크 상의 컴퓨터는, 인터넷으로부터 미디어를 다운로드하여, 디스플레이를 통해 비디오를 디스플레이하고 스피커 또는 헤드폰을 통해 오디오를 출력할 수 있다. 최근, 스마트 텔레비전은, 미디어가 텔레비전으로 직접 스트리밍될 수 있게 하는 내장형 네트워킹 기능을 갖춘 채 사용가능하게 되어 왔다. 이러한 진보 및 다른 진보에도 불구하고, 텔레비전 오디오의 청취를 위한 유효한 선택사항은 여전히 유선 스피커로 제한되어 있다.
한 양상은, 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 방법을 특징으로 한다. 방법은, 제1 전자 디바이스에서 비디오 데이터 및 오디오 데이터를 수신하는 단계로서, 제1 전자 디바이스는, 텔레비전 또는 텔레비전과 커플링된 미디어 소스를 포함하는, 비디오 데이터 및 오디오 데이터를 수신하는 단계; 제1 전자 디바이스와 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 무선 네트워크를 통해 제2 전자 디바이스에, 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하는 단계로서, 제2 전자 디바이스는 모바일 디바이스인, 클록 정보를 무선으로 송신하는 단계; 제1 전자 디바이스의 하드웨어 프로세서를 사용해, 비디오 데이터에 적어도 부분적으로 기초하여 프로그램적으로(programmatically) 오디오 동기화 모드를 선택하는 단계로서, 오디오 동기화 모드는, 비디오 데이터의 크기가 임계치 미만이라면 비디오 데이터를 지연시키는 것을 포함하는 제1 모드와 비디오 데이터의 크기가 임계치를 초과한다면 오디오 데이터를 압축하는 것을 포함하는 제2 모드 사이에서 선택되는, 오디오 동기화 모드를 선택하는 단계; 및 선택된 오디오 동기화 모드에 따라서 제1 전자 디바이스로부터 제2 전자 디바이스에 오디오 데이터를 송신하는 단계를 포함한다.
한 양상은, 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템을 특징으로 한다. 시스템은, 프로세서-실행가능 명령어를 포함하는 메모리; 프로세서-실행가능 명령어를 실행하도록 구성된 하드웨어 프로세서; 및 하드웨어 프로세서와 통신하는 무선 송신기를 포함하는 제1 전자 디바이스를 포함한다. 프로세서-실행가능 명령어는, 비디오 데이터 및 오디오 데이터를 수신하고; 제1 전자 디바이스와 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 무선 송신기로 하여금, 무선 네트워크를 통해 제2 전자 디바이스에, 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하게 하고; 비디오 데이터, 버퍼 특성, 및 네트워크 특성 중 하나 이상에 적어도 부분적으로 기초하여 프로그램적으로 오디오 동기화 모드를 선택하고; 무선 송신기로 하여금, 선택된 오디오 동기화 모드에 따라서 제1 전자 디바이스로부터 제2 전자 디바이스에 오디오 데이터를 송신하게 하도록 구성된다.
한 양상은, 프로세서에 의해 실행될 때, 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템을 구현하도록 구성된 프로세서-실행가능 명령어가 저장된 비일시적 물리적 전자 저장장치를 특징으로 한다. 시스템은, 제1 전자 디바이스에서 비디오와 연관된 오디오 데이터를 수신하고; 제1 전자 디바이스와 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 무선 네트워크를 통해 제2 전자 디바이스에, 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하고; 하나 이상의 비디오 특성 또는 네트워크 특성에 적어도 부분적으로 기초하여 프로그램적으로 오디오 동기화 모드를 선택하고; 선택된 오디오 동기화 모드에 따라서 제1 전자 디바이스로부터 제2 전자 디바이스에 오디오 데이터를 송신하도록 구성된다.
본 개시를 요약하는 목적으로, 본 명세서에는 본 발명의 특정한 양상, 장점, 및 신규 특징이 설명되었다. 본 발명의 임의의 특정한 실시예에 따라서 모든 그러한 장점이 반드시 달성될 수 있는 것은 아니라는 점이 이해되어야 한다. 따라서, 본 발명은, 본 명세서에서 교시되거나 제안될 수 있는 바와 같은 다른 장점을 반드시 달성하지 않고도, 본 명세서에 교시된 바와 같은 하나의 장점 또는 일군의 장점을 달성 또는 최적화하는 방식으로 실시 또는 수행될 수 있다.
도 1은, 한 비디오 디바이스와 두 오디오 디바이스 사이의 동기식 미디어 재생을 위해 구성된 예시 시스템을 도시한다.
도 2는, 비디오 디바이스와 오디오 디바이스 사이의 동기식 미디어 재생을 위해 구성된 예시 시스템을 도시한다.
도 3은, 오디오를 송신하기 위한 동기화 모드를 선택하는 예시 프로세스를 도시한다.
도 4는, 오디오를 송신하기 위한 동기화 모드를 선택하는 더 상세한 예시 프로세스를 도시한다.
도 5는, 반등시성 모드(semi-isochronous mode)에 따른 미디어 송신 처리를 위한 예시 프로세스를 도시한다.
도 6a, 도 6b, 및 도 6c는, 반등시성 모드에 따라서 오디오를 수신 및 렌더링하기 위한 예시 프로세스를 도시한다.
도 7은, 결정적 모드(deterministic mode)에 따른 미디어 송신 처리를 위한 예시 프로세스를 도시한다.
도 8은, 결정적 모드에 따라서 오디오를 수신 및 렌더링하기 위한 예시 프로세스를 도시한다.
도 9는, 클록 동기화를 초기화하기 위한 예시 프로세스를 도시한다.
도 10은, 재동기화 및 클록 드리프트 정정을 위한 예시 프로세스를 도시한다.
도입
텔레비전은 일반적으로 오디오의 렌더링을 위한 내장형 스피커를 포함하지만, 일부 시청자는 무선 헤드폰을 통해 오디오를 청취하면서 텔레비전을 시청하기 원한다. 블루투스 무선 헤드폰은 이러한 목적을 위해 사용가능하지만, 블루투스 무선 헤드폰은 종종 텔레비전 비디오와 동기가 어긋나므로 블루투스 프로토콜은 만족스럽지 못하다. 시청자는 따라서, 대응하는 비디오에서의 적시 발생으로부터 분리된 대화 및 다른 오디오를 청취하게 되는 바람직하지 않은 경험을 하게 된다. 그 결과, 블루투스 헤드폰은 소비자에 의해 외면받고 있다.
불행히도, WiFi 프로토콜(예컨대, IEEE 802.11x)을 사용하여 텔레비전 오디오를 송신하는 것으로는 이러한 동기화 문제가 적절하게 해결되지 않았다. 이에 대한 주된 이유는, 해당 무선 프로토콜이 비동기식이기 때문이다. 미디어 소스와 오디오 수신기는, 별개의 클록들을 사용할 수 있으며, 이들 각각의 클록 신호는 미디어 파일의 재생 중에 동기가 어긋나거나 드리프트될 수 있다. 또한, 레이턴시 수준을 비롯한 무선 네트워크 성능이 달라질 수 있으며, 이에 의해 오디오 데이터는 다소 예측불가능하게 지연된다.
본 개시의 특정한 실시예는, 대응하는 오디오가 또 다른 디바이스(예컨대, 전화기 또는 태블릿) 상에서 재생되는 상태로, 하나의 디바이스(예컨대, 텔레비전(TV)) 상에서 비디오를 동기화하기 위한 개선된 동기화 기법을 설명한다. 예컨대, 모바일 디바이스에 연결된 헤드폰을 통해, 청취자는, TV 상에서 재생되는 대응하는 비디오와 올바르게(또는 대략적으로) 동기화된 오디오를 청취할 수 있다. 텔레비전, 또는 더 일반적으로, (셋톱 박스 또는 컴퓨터와 같은) 임의의 미디어 소스는, 모바일 디바이스 상에 설치된 모바일 애플리케이션과의 동기화를 수행할 수 있다. 따라서, 블루투스 헤드폰의 사용자가 직면하게 되는 문제 중 일부 또는 모두가 극복될 수 있다.
또한, 모바일 디바이스를 사용해 동기화가 성취될 수 있으므로, 미디어 소스는, 개별 오디오 스트림을 각 청취자의 모바일 디바이스에 무선으로 전송함으로써, 원하는 오디오를 상이한 청취자들에게 제공할 수 있다. 이러한 방식으로, 각 청취자는, 분리된 헤드폰을 통해 청취할 수 있고, 볼륨 또는 이퀄라이저(예컨대, 저음 대 고음의 균형)와 같은 개별 오디오 설정을 조정할 수 있다.
일부 실시예에서, 본 명세서에 설명된 시스템 및 방법은, 결정적 모드와 반등시성 모드라는 적어도 2개의 상이한 모드 중에서 선택함으로써 동기식 재생을 수행할 수 있다. 결정적 모드는, 다른 특징 중에서도, 비디오를 지연시키고 이러한 알려진 지연에 기초하여 모바일 디바이스 상에서 오디오를 재생하는 단계를 포함할 수 있다. 결정적 처리가 사용가능하지 않을 때 사용될 수 있거나, 다른 기준에 기초하여 사용될 수 있는 반등시성 모드는, 오디오가 최대한 빠르게 송신되도록 하기 위해, 손실성 압축 기법을 사용해서라도, 오디오를 압축하는 단계를 포함할 수 있다. 이들 재생 모드는, 하드웨어 버퍼링 능력, 네트워크 성능, 또는 재생되고 있는 미디어의 유형과 같은, 하나 이상의 요인에 기초하여 선택될 수 있다. 동기화를 개선하기 위하여 다양한 클록 동기화, 버퍼링, 클록-드리프트 정정, 및 데이터 처리 방법 또한 사용될 수 있다.
다음의 예시 중 다수는 편의를 위해 TV와 스마트폰의 관점에서 설명되지만(예컨대, 도 1 참조), 이러한 개념은 미디어 소스와 오디오 수신기로 일반적으로 확장된다는 것이 인식될 것이다(예컨대, 도 2 참조). 또한, 본 명세서에서 사용되는 "동기화"라는 용어 및 그 파생어는, 그들의 일반적인 의미를 가질 뿐만 아니라, 실제의 또는 대략적인 동기화 또한 지칭한다. 설명되는 시스템 및 방법은 기존의 시스템보다 더 나은 동기화를 달성할 수 있지만, 청취자가 알아차릴 수 없는, 비디오와 오디오 사이의 작은 지연이 존재할 수 있다. 따라서, 본 명세서에서 설명되는 "동기화"는, 지각할 수 없는 지연을 갖는 대략적인 동기화를 포함할 수 있다. 네트워크 조건으로 인해, 이러한 동기화는 일부 경우 사용자가 지각할 수 있는 작은 지연을 가질 수도 있지만, 이러한 지연은, 현재 사용가능한 시스템에 의해 달성되는 것보다 일반적으로 덜 거슬릴 수 있다.
상세한 예시 시스템
도 1 및 도 2는, 위에서 소개된 동기화 특징들을 구현할 수 있는 예시 시스템들의 개요를 제공한다. 후속적인 도면들인 도 3 내지 도 10은, 도 1 및 도 2에 도시된 바와 같은 시스템에서 구현될 수 있는 동기화 처리의 실시예를 설명한다.
도 1은, 한 비디오 디바이스와 두 오디오 디바이스 사이의 동기식 미디어 재생을 위해 구성된 예시 시스템(100)을 도시하며, 시스템(100)은, 본 명세서에 설명된 방법 중 임의의 방법을 구현할 수 있다. 시스템(100)은 셋톱 박스(101), 텔레비전 시스템(103), 모바일 디바이스(105), 모바일 디바이스(107), 및 네트워크(109)를 포함하며, 네트워크(109)는 무선 LAN(local area network)이거나 WAN(wide area network)의 일부일 수 있다.
셋톱 박스(101)는 프로세서(111), 미디어 라이브러리(113), 인터페이스(115), 제어 인터페이스(117), 및, 사용자 입력(119)을 수신하기 위한, 외부 미디어 인터페이스(121)를 포함한다. TV 시스템은 프로세서(123), 비디오 버퍼(125), 디스플레이 화면(127), 인터페이스(129), 및 Wi-Fi 송수신기(131)를 포함한다. 제1 전화기는 프로세서(133), 사용자 인터페이스(135), Wi-Fi 송수신기(137), 및, 무선 스피커(141)(선택적으로, 유선 스피커 또는 헤드폰이 사용될 수도 있음)에 송신하기 위한, 무선 송신기(139)를 포함한다. 제2 전화기는 프로세서(143), 사용자 인터페이스(145), Wi-Fi 송수신기(147), 오디오 드라이버(149), 및, 오디오를 헤드폰(153)에 출력할 수 있는, 보조 출력부(151)를 포함한다.
셋톱 박스(101)는, 영화, 비디오 클립, 비디오 스트림, 또는 비디오 게임과 같은, 미디어의 소스를 제공한다. 미디어는 외부 미디어 인터페이스(121)를 통해 수신될 수 있다. 외부 미디어 인터페이스(121)는, 인터넷, 게임 콘솔, 컴퓨터, 케이블 제공자, 방송국 등에 연결되는, 동축 연결부, HDMI 연결부, DVI 연결부, VGA 연결부, 컴포넌트 연결부, 케이블 연결부, 이더넷 연결부, 무선 연결부 등일 수 있다. 대안적으로, 셋톱 박스(101)는, 하드 디스크 또는 Blu-ray® 디스크(도시되지 않음)와 같은 로컬 컴퓨터-판독가능 저장 매체 내에 저장된 로컬 미디어 라이브러리(113)를 가질 수 있다.
사용자는 리모컨, 스마트폰, 또는 다른 디바이스를 사용하여 제어 인터페이스(117)를 통해 사용자 입력(119)을 제공할 수 있다. 선택된 미디어 정보를 인터페이스(115)를 통해 TV 시스템에 전달하기 위해, 셋톱 박스 내의 하나 이상의 프로세서(111)는 사용자 입력을 처리할 수 있다. 인터페이스(115)는, TV 시스템 상의 인터페이스(129)에 연결되는, 동축 연결부, HDMI 연결부, DVI 연결부, VGA 연결부, 컴포넌트 연결부, 케이블 연결부, 이더넷 연결부, 버스 등일 수 있다.
TV 시스템(103)은 재생을 위한 미디어를 인터페이스(129)를 통해 수신한다(다른 실시예에서는 TV 시스템이 미디어 소스임). 오디오 데이터 및 비디오 데이터를 다루기 위해, 하나 이상의 프로세서(123)는 미디어를 처리할 수 있다. 비디오 데이터는 비디오 버퍼(125) 내에 버퍼링된 후 디스플레이 화면(127) 내에 렌더링될 수 있다. 그러나 비디오 버퍼링 지속시간 및 비디오를 버퍼링할지 또는 전혀 버퍼링하지 않을지의 여부는, 본 명세서에 설명된 방법에 따라서 구현될 수 있다. 오디오 데이터는 TV 시스템(103)의 Wi-Fi 연결부(131)를 통해 네트워크(109)를 거쳐 모바일 디바이스(105) 상의 Wi-Fi 연결부(137) 및 모바일 디바이스(107) 상의 Wi-Fi 연결부(147)에 송신될 수 있다. 동일한 또는 상이한 오디오 데이터가 두 모바일 디바이스(105, 107)에 송신될 수 있다. 일부 실시예에서, 동일한 오디오 데이터가 두 모바일 디바이스(105, 107)에 송신된 후, 두 디바이스(105, 107)는, 볼륨 또는 이퀄라이저(예컨대, 저음/고음 균형 또는 더 상세한 멀티밴드 분석)와 같은 오디오 파라미터를 개별적으로 조정할 수 있다. 일부 실시예에서, TV 시스템(103)은, 영어 오디오를 모바일 디바이스(105)에 전송하고 스페인어 오디오를 모바일 디바이스(107)에 전송하는 것과 같이, 상이한 언어 오디오 데이터를 두 디바이스(105, 107)에 전송할 수 있다. 일부 실시예에서, 모바일 디바이스(105, 107) 중 하나 또는 둘 다는, 맹인을 위한 향상된 내레이션, 개인적으로 처리된 오디오, 또는 국부적으로 저장된 오디오 데이터나 오디오 인핸스먼츠를 출력할 수 있다.
모바일 디바이스(105)는 Wi-Fi 연결부(137)를 통해 오디오 데이터를 수신한다. 오디오 데이터는, 무선 스피커(141)를 통해 재생되기 위하여, 하나 이상의 프로세서(133)에 의해 처리되고 무선 인터페이스(139)를 통한 출력을 위해 렌더링된다. 모바일 디바이스(105)의 사용자 인터페이스(135)는 사용자가 시스템(100)과 상호작용할 수 있도록 한다. 예컨대, 재생할 미디어 컨텐츠를 선택하거나; 시작, 정지, 빨리 감기, 앞으로 건너뛰기, 및 되감기와 같은 재생 명령을 발행하거나; 그 외에 셋톱 박스(101), TV 시스템(103), 또는 모바일 디바이스(105)와 상호작용하기 위하여, 사용자는 디바이스(105) 상의 애플리케이션을 사용할 수 있다. 일부 실시예에서, TV 시스템(103)과 같은, 네트워크(109) 상의 다른 디바이스에 의해 재생될, 디바이스(105) 상의 로컬 미디어를 선택하기 위해, 사용자 인터페이스가 사용될 수 있다.
모바일 디바이스(107)는 Wi-Fi 연결부(147)를 통해 오디오 데이터를 수신한다. 제2 전화기의 보조 출력 포트(151)에 연결된 헤드폰(153)을 통한 재생을 위해, 오디오 데이터는 하나 이상의 프로세서(143)에 의해 처리되고 오디오 드라이버(149)를 통해 구동된다. 모바일 디바이스(107)의 사용자 인터페이스(145)는 사용자가 시스템(100)과 상호작용할 수 있도록 한다.
다양한 실시예에서, 모바일 디바이스(107)에 의해 수신되는 오디오 데이터는, 모바일 디바이스(105)에 의해 수신되는 오디오 데이터와 동일하거나 상이할 수 있다. 모바일 디바이스(105)와 모바일 디바이스(107)에 의해 수신되는 오디오 데이터가 동일할 때, 시스템은 브로드캐스트 또는 멀티캐스트 구성으로 작동할 수 있다.
더 일반적인 예시 시스템
도 2는, 비디오 디바이스와 오디오 디바이스 사이의 동기식 미디어 재생을 위해 구성된 예시 시스템(200)을 도시하며, 시스템(200)은, 본 명세서에 설명된 방법 중 임의의 방법을 구현할 수 있다. 시스템은, 미디어 소스(201), 및 네트워크(205)를 통해 오디오 수신기(207)에 연결된 미디어 플레이어(203)를 포함할 수 있다. 미디어 소스(201)는 미디어 컨텐츠(209)를 포함한다. 미디어 플레이어(203)는 수신기(211), 하나 이상의 프로세서(213), 메모리 디바이스, 저장 디바이스, 또는 메모리 디바이스와 저장 디바이스 둘 다(215), 비디오 버퍼(217), 비디오 렌더러(219), 및 무선 브로드캐스터(221)를 포함한다. 오디오 수신기(207)는 무선 수신기(223), 프로세서(225), 메모리 디바이스, 저장 디바이스, 또는 메모리 디바이스와 저장 디바이스 둘 다(227), 및 오디오 출력부(229)를 포함한다.
미디어 소스(201)는 미디어 플레이어(203)에 미디어 컨텐츠(209)를 제공한다. 미디어 소스(201)는 셋톱 박스(예컨대, 위성 방송용 또는 케이블 방송용 셋톱 박스), 케이블 박스, 텔레비전, 스마트 텔레비전, 인터넷 제공자, 방송국, 스마트폰, 미디어 스틱(예컨대, Google Chromecast™ 등), 미디어 플레이어(예컨대, Roku™ 디바이스 등), 비디오 게임 콘솔, Blu-ray® 플레이어, 또 다른 컴퓨터, 미디어 서버, 안테나, 또는 이들의 조합 등일 수 있다. 일부 실시예에서, 미디어 소스(201)는, 미디어 플레이어(203)의 하드 드라이브 내에 국부적으로 저장된 미디어 라이브러리와 같이, 미디어 플레이어(203)의 일부일 수 있거나, 미디어 소스(201)가 미디어 플레이어(203)일 수 있다.
재생을 위해, 미디어 플레이어(203)는 수신기(211)를 통해 미디어 컨텐츠(209)를 수신한다. 미디어 플레이어는, 예컨대, TV, 컴퓨터, 오디오-비디오 수신기("AVR", audio-video receiver) 등일 수 있다. 오디오 데이터 및 비디오 데이터를 다루기 위해, 하나 이상의 프로세서(213)는 미디어 컨텐츠를 처리할 수 있다. 비디오 데이터는 비디오 버퍼(217) 내에 버퍼링된 후 비디오 렌더러(219)에서 렌더링될 수 있다. 일부 실시예에서, 비디오 렌더러(219)는 디스플레이 화면, 모니터, 프로젝터, 가상 현실 헤드셋 등일 수 있다. 그러나, 비디오 버퍼 지속시간 및 비디오 버퍼링이 사용될지 또는 전혀 사용되지 않을지의 여부는, 본 명세서에 설명된 방법에 따라서 결정될 수 있다. 일부 실시예에서, 미디어 플레이어(203)는, 제한된 비디오 버퍼링을 갖거나, 비디오 버퍼링을 위한 하드웨어나 지원이 완전히 부재할 수도 있다. 오디오 데이터는 네트워크(205)를 통해 오디오 수신기(207)에 무선으로 송신될 수 있다.
오디오 수신기(207)는 무선 수신기(223)를 통해 오디오 데이터를 수신한다. 오디오 데이터는 하나 이상의 프로세서(225)에 의해 처리되고, 헤드폰, 유선 스피커, 또는 무선 스피커와 같은, 오디오 출력부(227)를 통한 출력을 위해 렌더링된다.
예시 동기화 프로세스의 개요
도 3은, 비디오 및 오디오를 송신하기 위한 동기화 모드를 선택하는 예시 프로세스(300)를 도시한다. 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 예컨대, 미디어 소스 또는 미디어 플레이어 상에서 실행되는 소프트웨어가 프로세스(300)를 구현할 수 있다.
블록(301)에서, 비디오 플레이어(또는 다른 미디어 소스) 및 오디오 플레이어가 네트워크 상에서 식별된다. 이는, 예컨대, 비디오 플레이어 및 오디오 플레이어가 네트워크에 연결되고, 고유한 연결 식별자(identification) 또는 주소를 수신할 때 일어날 수 있다. 각 비디오 플레이어 및 오디오 플레이어는, 동기화된 오디오 및 비디오 재생을 용이하게 하도록 구성된 애플리케이션을 실행할 수 있다.
블록(303)에서, 동기화 모드를 선택하기 위해 기준이 평가된다. 예컨대, 아래에서 도 4와 관련하여 논의되는 기준이 사용될 수 있다. 예시 동기화 모드는 결정적 모드 및 반등시성 모드(블록(307) 참조)를 포함하나, 이들로 한정되지 않는다.
블록(305)에서, 비디오 플레이어와 오디오 플레이어 사이에서 클록 동기화가 확립될 수 있다. 이는, 비디오 플레이어와 오디오 플레이어 사이의 단방향 또는 양방향 통신을 사용하여 수행될 수 있다. 양방향 통신 클록 동기화 시스템의 한 예는 PTP(Precision Time Protocol)이다. 일부 실시예에서, 클록 동기화는, 네트워크를 통한, 비디오 플레이어로부터 하나 이상의 오디오 플레이어로의 단방향 브로드캐스트를 사용하여 수행될 수 있다. 단방향 브로드캐스트에 기초하여 클록을 동기화하는 실시예는, 일부 유형의 양방향 클록 동기화 방식에 영향을 미치는, 비대칭 업링크/다운링크 네트워크 시간에 기초한 잘못된 계산을 회피할 수 있다. 또한, 단방향 브로드캐스트에 기초하여 클록을 동기화하는 실시예는, 각 디바이스가 따로따로 응답할 것을 기다리는 대신, 다수의 디바이스와의 단일 동기화를 수행할 수 있다. 클록 동기화를 확립하기 위한 예시 방법이 아래에 도 9와 관련하여 설명되어 있다.
비디오 플레이어 및 오디오 플레이어는 초기에, 동기화되지 않고 서로에게 알려져 있지 않은 클록으로 시작할 수 있다. 클록 동기화가 확립된 후에는, 동기화된 클록 신호가, 비디오 플레이어와 하나 이상의 오디오 플레이어 사이에서 오디오와 비디오 재생을 동기화하는 데 사용될 수 있다. 아래에 더 상세히 설명된 바와 같이, 동기화된 클록은, 다른 파라미터 중에서도, 지연 기간, 재생 시간, 스테이징 시간(staging time), 마진 시간(margin time), 및 타임스탬프와 같은 다양한 파라미터의 시간을 측정하거나 이들 파라미터를 추적하는 데 사용될 수 있다.
블록(307)에서, 평가된 기준에 기초하여, 결정적 또는 반등시성 동기화 모드가 선택된다. 블록(309)에서, 선택된 동기화 모드에 따라서 오디오 데이터 및 비디오 데이터가 송신된다.
동기화 모드를 선택하기 위한 예시 프로세스
도 4는, 오디오를 송신하기 위한 (결정적 또는 반등시성) 동기화 모드를 선택하는 예시 프로세스(400)를 도시한다. 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 예컨대, 미디어 소스 또는 미디어 플레이어(아래에서는 "시스템"으로 통칭함) 상에서 실행되는 소프트웨어가 프로세스(400)를 구현할 수 있다. 이 실시예에서, 반등시성 동기화 또는 결정적 동기화를 선택하기 위하여, 시스템은, 블록들(401 내지 409)에 서술된 다수의 기준을 평가한다. 이 프로세스는, 제조 단계 이후에(예컨대, 청취자의 가정 내에서), 미디어 소스 또는 미디어 플레이어에 의해 수행될 수 있다. 한 실시예에서, 시스템은 하나의 모드(예컨대, 결정적 동기화)를 디폴트로 선택하지만, 하나 이상의 기준이 충족되는 데 응답하여 다른 모드로 전환한다. 또 다른 실시예에서, 모든 기준보다 더 적은 수의 기준이 고려된다.
블록(401)에서, 시스템은, 비디오 디바이스(또는 미디어 소스)의 버퍼가 결정적 모드를 위해 충분한지 결정한다. 일부 비디오는, 압축되지 않았다면, 버퍼링하기에 너무 클 수 있으며, 따라서, 결정적 처리를 위해 이들 비디오를 지연시키는 것이 가능하지 않을 수도 있다(또는 비디오 성능의 열화로 인해 덜 바람직할 수 있다). 다른 비디오는 압축된 형태로 전달되며 더 수월하게 버퍼링된다. 이 단계에는, 비디오가 압축되었는지의 여부를 식별하는 단계, 대응하는 버퍼 크기를 식별하는 단계 등이 수반될 수 있다. 대안적으로, 결정적 모드가 사용가능한지의 여부를 나타내기 위해, 또는 수신되는 비디오의 대역폭에 따라서 결정적 모드가 사용가능할 수 있는 정도를 나타내기 위해, 제조 시에 시스템의 버퍼링 능력이 메타데이터 등에 인코딩될 수 있다.
또 다른 실시예에서, 이 단계(401)는, 비디오 디바이스가 버퍼링을 지원하기는 하는지의 여부를 결정하는 단계도 포함한다. 이러한 결정은 버퍼링 하드웨어의 존재에 기초하거나 버퍼링을 지원할 수 있는 펌웨어 및 소프트웨어의 능력에 기초할 수 있다. 일부 실시예에서, 이러한 결정은, 버퍼링 능력을 갖춘 것으로 또는 갖추지 않은 것으로 공지된 모델들의 목록 내에서의 해당 시스템의 모델의 조회에 기초하여 이루어질 수 있다. 일부 실시예에서, 이러한 결정은, 비디오를 버퍼링하도록 하는 테스트 명령을 발행하려고 시도함으로써 이루어질 수 있다. 비디오 디바이스가 버퍼링을 지원하지 않는다면, 블록(411)에서 반등시성 모드가 선택된다.
블록(401)에서 비디오 디바이스가 버퍼링을 지원한다면, 블록(403)에서, 시스템은, 비디오 게임과 같이, 버퍼링에 적절하지 않은 것으로 분류된 특정한 미디어 유형이 미디어 소스로서 검출되었는지 결정한다. 많은 비디오 게임은, 결정적 모드에서 사용되는 비디오 버퍼링에 적절하지 않으며, 그 이유는, 사용자가 비디오 내의 어떠한 지연도 원하지 않을 수 있기 때문이다. 사용되는 미디어의 유형은, 예컨대, 특정한 포트를 통해 시스템에 연결된 비디오 게임 콘솔의 존재에 기초하여, 시스템 내에서 검출된 하나 이상의 실행 중인 프로세스의 이름에 기초하여, 또는 이들의 조합 등에 기초하여 결정될 수 있다. 비디오 게임(또는 일부 다른 특정한 유형의 미디어)이 검출된다면, 블록(411)에서 반등시성 모드가 선택된다.
블록(403)에서 비디오 게임(또는 버퍼링에 적절하지 않은 다른 미디어) 이외의 미디어가 미디어 소스로서 검출되었다면, 블록(405)에서, 네트워크가 안정성에 대해 테스트될 수 있다. 이는, 예컨대, 핑(ping)을 네트워크에 전송하고 핑 시간의 변동량을 측정함으로써, 네트워크를 통해 패킷을 전송하고 패킷 송신 시간의 변동량을 측정함으로써, 원격 호스트에 데이터를 송신하거나 원격 호스트로부터 데이터를 수신하고 송신 및 수신 속도의 변동량을 측정함으로써, 등에 의해 이루어질 수 있다. 테스팅은 비디오 플레이어로부터의 네트워크에 대한 테스팅이거나, 미디어 플레이어와 오디오 플레이어 사이의 테스팅이거나, 원격 인터넷 소스에 대한 테스팅일 수 있다. 테스트 측정치는, 동기화된 클록에 기초할 수 있다. 네트워크 송신 시간이 안정적이지 않다면(예컨대, 변동량이 특정한 양 또는 백분율을 초과함, 최소 속도가 특정한 양 미만으로 하락함, 등), 블록(411)에서 반등시성 모드가 선택된다.
블록(405)에서 네트워크 송신 시간이 안정적이라면, 블록(407)에서, 네트워크가 대역폭에 대해 테스트된다. 이는, 예컨대, 네트워크를 통해 오디오 디바이스나 다른 목적지에 다수의 패킷(예컨대, 오디오 데이터에 대해 통상적인 양)을 전송함으로써 이루어질 수 있다. 데이터가 수신되는 레이트(rate)는, 대역폭을 결정하는 데 사용될 수 있다. 테스트 측정치는, 도 3에 관하여 전술된 동기화된 클록에 기초할 수 있다(도 9 또한 참조). 네트워크 대역폭이 불충분하다면(예컨대, 평균 대역폭이 특정한 임계치 미만임, 최소 대역폭이 특정한 양 미만으로 하락함, 등), 블록(411)에서 반등시성 모드가 선택된다.
블록(407)에서 네트워크가 충분한 대역폭을 갖는 것으로 결정된다면, 블록(409)에서 송신기 및 수신기는, 비디오 플레이어와 오디오 플레이어 둘 다가 결정적 모드를 통한 재생을 지원하는지 결정할 수 있다. 이는, 클록이 비디오 플레이어와 미디어 플레이어 사이에서 동기화되었는지 또는 동기화될 수 있는 능력을 지녔는지의 여부, 및 비디오 디바이스와 오디오 디바이스 둘 다 내의 애플리케이션이, 결정적 모드를 지원하도록 각 디바이스를 구성했는지의 여부에 기초할 수 있다. 그렇지 않다면, 블록(411)에서 반등시성 모드가 선택된다. 비디오 플레이어와 오디오 플레이어 둘 다가 결정적 모드를 위해 동기화된다면, 블록(413)에서 결정적 모드가 선택된다. 네트워크 조건이 변화함에 따라서, 네트워크 조건을 재평가하고 재생 모드를 변경하기 위해, 도 4에 도시된 하나 이상의 블록이 다시 수행될 수 있다. 따라서, 재생 모드는, 실제 네트워크 조건에 기초하여, 실시간으로 변화할 수 있다.
반등시성 모드의 예시 프로세스
도 5는, 반등시성 모드에 따른 미디어 처리를 위한 예시 프로세스(500)를 도시한다. 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 예컨대, 미디어 소스 또는 미디어 플레이어(아래에서는 "시스템"으로 통칭함) 상에서 실행되는 소프트웨어가 프로세스(500)를 구현할 수 있다.
반등시성 모드는, 오디오를 신속하게 송신 및 렌더링하기 위해 선택될 수 있다. 반등시성 시스템에서, 오디오 데이터는 미디어 플레이어에 의해 압축되고, 오디오 플레이어에 송신될 수 있으며, 합리적인 시간 지연 이내에 수신된다면, 오디오 데이터가 렌더링될 수 있다.
네트워크 연결이 혼잡하고 낮은 가용 대역폭을 가질 때, 반등시성 모드는, 데이터를 압축함으로써, 결정적 모드보다 더 나은 성능을 보일 수 있다. 또한, 반등시성 모드에는, (일부 실시예에서) 특정한 지연 시간에 재생되도록, 수신된 오디오를 버퍼링하는 것이 수반되지 않으므로, 반등시성 모드는, 네트워크 속도가 크게 가변적이고 오디오 패킷이 지연 시간 이전에 타겟 목적지에 도달하지 못할 수도 있을 때, 결정적 모드보다 더 나은 성능을 보일 수 있다. 그럼에도 불구하고, 빠르고 안정적인 네트워크 연결이 사용가능한 다른 시나리오에서는 결정적 모드가 더 나은 성능을 제공할 수 있다.
블록(501)에서, 예컨대, 현재 사용가능한 (TCP/IP와 같은) 인터넷 프로토콜을 사용하여 오디오 데이터가 패킷화된다.
블록(503)에서, 오디오 데이터가 압축된다. 압축된 오디오 데이터는 더 적은 대역폭을 사용하므로, 혼잡한 네트워크 상에서 더 빠르게 송신될 수 있다. 압축 방식은 비손실성 또는 손실성일 수 있으며, 일부 손실성 알고리즘은 (더 높은 압축률로 인해) 잠재적으로 더 빠른 성능을 제공하지만 오디오 신호 열화라는 절충사항을 갖는다. 블록(505)에서, 선택적으로 패킷 손실률이 측정된다.
블록(507)에서, 선택적으로, 손실률에 기초하여 순방향 오류 정정(FEC, forward error correction) 패킷이 생성된다. FEC는, 본 명세서에 설명된 오디오 송신과 같은 단방향 통신을 사용해, 개선된 패킷 손실 복구를 제공할 수 있다. 또한, 오디오 데이터가 렌더링되어야 하는 짧은 시간은, 재송신된 페이로드가 뒤따르는 송신 요청에 대한 충분한 시간을 남기지 않을 수도 있으므로, FEC는 특히 유용할 수 있다. 많은 FEC 알고리즘이 사용될 수 있지만, 한 실시예에서, 시스템은, 예컨대, 그 전체 내용이 본 명세서에 참조로서 통합되는, RFC 5109 "RTP Payload Format for Generic Forward Error Correction(일반 순방향 오류 정정을 위한 RTP 페이로드 형식)"(2007년)에 기술된 것과 같이, 하나 이상의 패킷에 XOR(배타적 OR) 연산을 적용함으로써 FEC 패킷을 생성한다. 블록(509)에서, FEC 패킷이 오디오 패킷으로 인터리빙(interleaving)될 수 있다. 블록(511)에서, 수신기에 패킷이 송신될 수 있다.
블록(513)에서, TV 시스템과 같은, 제1 디바이스 상에서 비디오가 렌더링될 수 있다. 일부 실시예에서, 비디오는 버퍼링 없이 렌더링된다. 일부 실시예에서, 비디오는 평균 또는 최소 예상 송신 및 처리 시간에 기초하여 잠시 버퍼링될 수 있다. 버퍼링 시간은 네트워크 테스트(예컨대, 도 4의 블록(405 내지 407)에 관하여 논의된 테스트)에 기초하여 추정될 수 있으며, 비디오에 또는 비디오 직후에(예컨대, 1프레임 내지 3프레임 이내에) 오디오가 재생되도록 버퍼링 시간이 선택될 수 있다. 예컨대, 네트워크 핑이 일반적으로 200ms 내지 300ms의 범위이고, 때때로 최대 100ms의 속도를 갖는다면, 버퍼는 100ms(선택적으로, 가장 빠른 오디오 렌더링 시간을 더한 값)일 수 있다.
도 6a, 도 6b, 및 도 6c는 반등시성 모드에 따라서 오디오를 수신 및 렌더링하기 위한 예시 프로세스(600, 620, 및 650)를 각각 도시한다. 예컨대, 모바일 디바이스와 같은 오디오 수신기 상에서 실행되는 소프트웨어가 프로세스(600, 620, 및 650)를 구현할 수 있다.
도 6a는, 반등시성 모드에 따라서 오디오를 수신 및 렌더링하기 위한 제1 예시 프로세스(600)를 도시한다. 블록(601)에서, 오디오 수신기는, 압축된 오디오 패킷을 수신한다. 블록(603)에서, 수신기는, 압축된 오디오 패킷이 제1 임계치 이내에 수신되었는지 결정한다. 압축된 오디오 패킷이 제1 임계치 이내에 수신되지 않았다면, 블록(605)에서, 오디오 수신기는, 압축된 오디오 패킷을 폐기한다. 제1 임계치는, 대략적으로, TV에서 2개의 비디오 프레임을 렌더링하는 데 소요될 수 있는 시간(일부 시스템에서는 약 66ms)일 수 있다. 압축된 오디오 패킷이 제1 임계치 이내에 수신되었다면, 블록(607)에서, 오디오 수신기는, 압축된 오디오 패킷을 유지 버퍼 내에 저장한다.
도 6b는, 반등시성 모드에 따라서 오디오를 수신 및 렌더링하기 위한 제2 예시 프로세스(620)를 도시한다. 블록(621)에서, 오디오 수신기는 유지 버퍼에서 제1 패킷을 서치(search)한다. 제1 패킷은, 예컨대, 블록(607)에서 유지 버퍼 내에 저장되었던 압축된 오디오 패킷일 수 있다. 블록(623)에서, 오디오 수신기가 유지 버퍼 내에서 제1 패킷을 발견했는지 결정된다. 제1 패킷이 발견되지 않았다면, 블록(625)에서, 제1 패킷을 구성하기 위해 FEC 데이터 또는 중복 데이터(redundant data)가 사용 가능한지 결정된다. 수신기는 중복 데이터 또는 FEC 정정 데이터를 식별하려고 시도할 수 있다. 중복 데이터 또는 정정 데이터는, 예컨대, FEC 패킷과 같은, 이전에 송신된 오류 정정 패킷으로부터 획득될 수 있다. 다른 가능한 기법 중에서도, 누락된 패킷 데이터를 이전 패킷 및 후속 패킷 내의 데이터에 기초하여 추측하기 위한 곡선 피팅 기법을 사용하여 후속 패킷이 사용가능하다면, 드롭된 패킷에 대해서도 정정 데이터가 추출될 수 있다. FEC 데이터가 사용가능한 것으로 결정된다면, 블록(629)에서, FEC 데이터로부터 제1 패킷이 재구성된다.
제1 패킷이 재구성되지 않았거나 유지 버퍼 내에서 발견되지 않았다면, 블록(631)에서, 패킷 도착 시간 임계치가 만료되었는지 결정된다. 패킷 도착 시간 임계치가 아직 만료되지 않았다면, 블록(633)에서, 압축해제된 오디오 데이터를 생성하기 위해 제1 패킷이 압축해제된다. 블록(635)에서, 압축해제된 오디오 데이터가 오디오 수신기의 스테이징 버퍼에 추가된다. 블록(637)에서, 오디오 수신기는 그다음 패킷을 찾기 위해(예컨대, 제1 패킷이 처리된 후, 제2 패킷을 찾기 위해) 패킷 색인을 증분시킨다.
블록(625)에서, 제1 패킷을 재구성하기 위해 사용가능한 FEC 데이터가 없다면, 블록(627)에서, 제1 패킷을 찾기 위한 패킷 도착 시간이 만료되었는지 결정된다. 패킷 도착 시간이 아직 만료되지 않았다면, 유지 버퍼에서 계속하여 제1 패킷이 서치되도록, 프로세스(620)는 다시 블록(621)으로 진행할 수 있다.
블록(627) 또는 블록(631)에서, 제1 패킷에 대한 패킷 도착 임계 시간이 만료되었다면, 프로세스는, 스테이징 버퍼에 무음 패킷(silence packet)이 삽입되는 블록(639)으로 진행할 수 있다. 일부 실시예에서, 스테이징 버퍼에 무음 패킷을 삽입하는 대신, 사본 패킷(duplicate packet)이 삽입될 수 있다. 2개의 비디오 프레임의 지연과 같은, 특정한 지연이 지난 후, 오디오 패킷은, 검출가능하게 비디오와 동기가 어긋날 수 있으며, 따라서 해당 오디오 패킷을 드롭하는 것이 바람직한 방책일 수 있다. 이후, 블록(637)에서, 패킷 색인이 증분될 수 있고, 프로세스(620)는 그다음 오디오 패킷에 대해 반복될 수 있다.
도 6c는, 반등시성 모드에 따라서 오디오를 수신 및 렌더링하기 위한 제3 예시 프로세스(650)를 도시한다. 블록(651)에서, 스테이징 버퍼 내의 그다음 항목을 렌더링하기 위한 임계 시간이 만료되었는지 결정될 수 있다. 블록(651)에서, 스테이징 버퍼 내의 그다음 항목을 렌더링하기 위한 임계 시간이 아직 만료되지 않았다면, 프로세스(650)는 임계 시간이 실제로 만료될 때까지 블록(651)을 반복할 수 있다. 임계 시간이 만료되면, 블록(653)에서, 오디오 수신기는 스테이징 버퍼 내의 그다음 항목의 렌더링을 시작할 수 있다. 그다음 항목은, 예컨대, 블록(634)에서 오디오 수신기의 스테이징 버퍼에 추가되었던 압축해제된 오디오 데이터일 수 있다. 프로세스는 이후 다시 블록(651)으로 진행할 수 있다.
결정적 모드의 예시 프로세스
도 7은, 결정적 모드에 따른 미디어 처리를 위한 예시 프로세스(700)를 도시한다. 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 예컨대, 미디어 소스 또는 미디어 플레이어(아래에서는 "시스템"으로 통칭함) 상에서 실행되는 소프트웨어가 프로세스(700)를 구현할 수 있다.
결정적 모드에서, 일반적인 네트워크 변동이 존재할 때의 오디오 송신 및 렌더링을 위한 충분한 시간을 허용하면서 비디오 렌더링 시의 지연을 해결하도록 지연 시간이 결정될 수 있다. 미디어 소스는, 오디오가 렌더링되도록 스케줄링되기 이전의 시간에 오디오 페이로드를 송신할 수 있다. 제2 디바이스에 송신된 후, 오디오 페이로드는 재생 시간이 될 때까지 버퍼링될 수 있으며, 따라서 비디오와 함께 동기식으로 렌더링된다. 오디오가 제2 디바이스에 송신되고 제2 디바이스에서 처리되는 동안, 비디오 데이터는 재생 시간이 될 때까지 제1 디바이스 내에 버퍼링될 수 있으며, 이후 비디오 데이터가 렌더링될 수 있다. 오디오 및 비디오 출력을 동기화하기 위해, 미디어 소스 및 수신 디바이스는, 동기화된 클록 신호를 사용할 수 있다(예컨대, 도 9 및 도 10 참조).
블록(701)에서, 지연 시간이 결정된다. 지연 시간은, 오디오 디바이스에 의해 오디오 패킷이 수신되고, 비디오 디바이스에 의해 렌더링되는 비디오와 동기식으로, 지연된 시간에 오디오 패킷이 렌더링될 수 있도록 충분히 길 수 있다. 최대 지연 시간은 비디오 버퍼 용량에 의해 결정될 수 있다. 지연 시간은 평균 또는 최대 예상 송신 및 처리 시간보다 더 크도록 설정될 수 있다. 지연 시간은 평균 송신 및 처리 시간에 표준 편차의 배수를 더한 값보다 더 크도록 설정될 수 있다. 대부분의 패킷이 동기식으로 렌더링될 수 있도록 지연 시간이 충분히 길다면, 나머지 소량의 패킷은 오류 마스킹 또는 정정 기법을 사용해 은폐될 수 있다.
지연 시간은 (예컨대, 제조 시에) 미리 결정될 수 있거나 네트워크 테스트(예컨대, 도 4의 블록(405 및 407)에 관하여 논의된 테스트)에 기초하여 추정될 수 있다. 예컨대, 네트워크 핑이 일반적으로 400ms 내지 500ms의 범위이고 때때로 최대 900ms의 래그(lag)가 발생한다면, 지연 시간은, 비디오 버퍼에 의해 지원되는 경우, 900ms(선택적으로, 오디오 패킷을 수신한 후 오디오를 렌더링하는 데 소요되는 시간을 더한 값)일 수 있다.
지연 시간은, 동기화된 클록에 기초하여 측정될 수 있으며, 타임스탬프 이후에 지연될 시간의 양(예컨대, 2초 335마이크로초)의 형태일 수 있다. 일부 실시예에서, 지연 시간은, 오디오와 비디오가 재생될 프리젠테이션 시간(presentation time)(예컨대, 비디오가 오후 12:30:00:000에 버퍼링되고 재생이 오후 12:30:02:335에 대해 설정됨)의 형태로 설정된다. 오디오를 재생하도록 구성된 다수의 디바이스를 특징으로 하는 한 실시예에서, 측정치는 다수의 디바이스 모두 중에서 최악의 경우의 측정치(그러면서도 버퍼링 하드웨어 능력 이내에 있는 측정치)에 기초할 수 있다. 일부 실시예에서, 지연 시간은 0.5초, 1초, 2초, 3초, 4초, 5초, 또는 6초이거나 또 다른 유사한 시간일 수 있다.
블록(703)에서, 지연 시간 동안 비디오가 지연된다. 지연은 (도 2의 비디오 버퍼(217)와 같은) 비디오 버퍼를 사용하여 구현될 수 있다. 일부 실시예에서 버퍼는 비디오를 압축한다.
블록(705)에서, 지연된 시간에 제1 디바이스 상에서 비디오가 재생될 수 있다. 지연된 시간은, 동기화된 클록에 기초하여 결정된다. 일부 실시예에서, 비디오의 재생은, 비디오를 렌더링하기 위한 비디오의 압축해제를 포함할 수 있다. 버퍼로부터의 비디오 재생은, 즉각적이지는 않더라도, 매우 빠를 수 있다. 따라서, 일부 실시예에서, 더 개선된 성능을 위해 타이밍 파라미터(예컨대, 지연 시간)를 결정할 때 재생 시간에 대한 약간의 조정이 이루어질 수 있다.
블록(707)에서, 오디오 데이터가 패킷화된다. 패킷은, 동기화된 클록, 해당 패킷의 시퀀스 번호, 비트 레이트, 스테이징 시간, 마진 시간, 다른 헤더 정보, 및, 압축된 오디오 데이터를 포함하는, 오디오 페이로드에 기초하여 타임스탬프와 함께 형성될 수 있다. 타임 스탬프는, 패킷을 송신하는 미디어 디바이스의 현재 시간(TO)으로서 초기화될 수 있다. 후속적인 S개의 패킷 또는 스테이징 시간의 경우, 후속적인 타임스탬프 또는 스테이징 시간은 초기의 스테이징 시간 또는 초기의 타임스탬프에 (S*D)를 더하여 계산될 수 있으며, 여기서 D는 패킷의 재생 시간을 나타내고 S는 정수이다. 실제 시간을 보고하는 대신 후속적인 타임스탬프 또는 스테이징 시간을 계산하는 것은, 일부 실시예에서, 클록 드리프트를 정정하기 위한 알고리즘을 개선할 수 있다. 예컨대, 오디오 디바이스의 클록에 의해 측정된 현재 시간이, 타임스탬프 또는 스테이징 시간에 비하여 예상 범위 밖으로 드리프트되었을 때, 클록 드리프트를 정정하기 위해 클록 재동기화가 수행될 수 있다.
블록(709)에서, 전술한 바와 같이, FEC 패킷이 생성될 수 있고, FEC 패킷은, 패킷화된 오디오 데이터로 인터리빙될 수 있다. 이는 페이로드 수준, 패킷 수준, 또는 또 다른 수준에서 이루어질 수 있다. FEC 패킷은 손실률에 기초하여 생성될 수 있다.
블록(711)에서, 오디오 패킷이 네트워크를 통해 제2 디바이스에 송신된다.
도 8은, 결정적 모드에 따라서 오디오를 수신 및 렌더링하기 위한 예시 프로세스(800)를 도시한다. 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 예컨대, 모바일 디바이스와 같은 오디오 수신기 상에서 실행되는 소프트웨어가 프로세스(800)를 구현할 수 있다.
블록(801)에서, 오디오 패킷이 수신된다. 예컨대, 도 2와 관련하여, 오디오 수신기(207)의 무선 수신기(223)는, 네트워크(205)를 통해 송신되는 오디오 패킷을 수신할 수 있다.
블록(805)에서, 오디오 패킷이 언패킹(unpacking)되며, 선택적으로 해당 오디오 패킷에 대한 캡처 시간(capture time)이 결정될 수 있다. 캡처 시간은, 동기화된 클록에 기초하여 측정될 수 있다. 다양한 실시예는 하드웨어/펌웨어/소프트웨어의 상이한 수준에서 패킷을 언패킹할 수 있다. 동기화된 클록, 해당 패킷의 시퀀스 번호, 비트 레이트, 스테이징 시간, 마진 시간, 다른 헤더 정보, 및, 압축된 오디오 데이터를 포함하는, 오디오 페이로드에 기초한 타임스탬프는, 오디오 패킷을 언패킹함으로써 결정될 수 있다.
블록(807)에서, 오디오 페이로드에 대한 스테이징 시간이 결정된다. 스테이징 시간은, 동기화된 클록 신호에 기초하여 측정될 수 있으며, 비디오가 재생된 또는 재생될 시간 또는 프레임을 식별한다.
블록(809)에서, 오디오 페이로드에 대한 마진 시간이 결정된다. 마진 시간은, 오디오 페이로드가 렌더링될 수 있는, 스테이징 시간 이전 또는 이후의 시간의 양일 수 있다. 일부 실시예에서, 마진 시간이 결정된 후 별도의 패킷 내에서 전달된다(예컨대, 일련의 패킷의 시작 시에 전달되거나, 일련의 패킷에 주기적으로 삽입됨). 마진 시간은, 예컨대, 20밀리초, 30밀리초, 33밀리초, 46밀리초, 50밀리초, 60밀리초, 66밀리초, 80밀리초, 99밀리초, 또는 100밀리초; 0.5프레임, 1프레임, 1.5프레임, 2프레임, 2.5프레임, 또는 3프레임; 등일 수 있다.
블록(811)에서, 스테이징 시간에 마진 시간을 더한 값(또는 뺀 값) 이내에 오디오 패킷이 캡처되었는지 결정하기 위한 비교가 이루어진다. 블록(811)에서 스테이징 시간에 마진 시간을 더한 값 이내에 오디오 패킷이 캡처되었다면, 오디오 페이로드가 버퍼링되고(814) 렌더링된다(816).
블록(811)에서 스테이징 시간으로부터 마진 시간만큼 이후에 오디오 패킷이 캡처되었다면, 블록(815)에서 중복 데이터 또는 정정 데이터가 획득 및 구성될 수 있다. 블록(815)은, 아직 스테이징 시간에 마진 시간을 더하거나 뺀 값 이내인 시간에도 결정될 수 있다. 중복 데이터 또는 정정 데이터는, 예컨대, FEC 패킷과 같은, 이전에 송신된 오류 정정 패킷으로부터 획득될 수 있다. 누락된 패킷 데이터를 이전 또는 후속 패킷 내의 데이터에 기초하여 추측하기 위한 커브 피팅 기법을 사용하여 후속 패킷이 사용가능하다면, 드롭된 패킷에 대해서도 정정 데이터가 추출될 수 있다. 블록(817)에서, 중복 데이터 또는 정정 데이터로부터 구성된 오디오 페이로드가 렌더링된다.
블록(813)에서, 스테이징 시간에 마진 시간을 더한 값 이내에 사용가능한 중복 데이터 또는 정정 데이터가 없다면, 블록(812)에서, 누락된 패킷을 대신하여 무음 또는 이전 패킷의 사본이 렌더링될 수 있다.
예시 클록 동기화 프로세스
도 9는, 클록 동기화를 초기화하기 위한 예시 방법의 예시 프로세스(900)를 도시한다. 도 10은, 재동기화 및 클록 드리프트 정정을 위한 예시 방법의 예시 프로세스(1000)를 도시한다. 이들 프로세스는, 본 명세서에 설명된 시스템 중 임의의 시스템에 의해 구현될 수 있다. 도 9 및 도 10은, 2013년 9월 12일에 출원된, "Playback Synchronization(재생 동기화)"이라는 명칭의 미국 특허 제9,237,324호에 논의되어 있으며, 이 미국 특허는 그 전체가 본 명세서에 참조로서 통합된다.
예시 방법(900)은, 무선 수신기(예컨대, 도 2의 오디오 수신기(207))를 갖는 임의의 미디어 디바이스에 의해 수행될 수 있다. 예시 방법(900)은 예시적 방법(300)의 블록(305)의 일부로서 수행될 수 있거나, 미디어 디바이스 사이의 타이밍 파라미터의 동기화가 적절한, 임의의 때에 수행될 수 있다. 방법(900)은, 단방향 통신에 기초한 클록 동기화의 한 예를 제공한다. 미디어 디바이스는, 클록 "틱(tick)"을 갖는 클록 신호를 일정한 레이트(예컨대, 100ms)로 네트워크를 통해 오디오 수신기에 비콘(beacon) 메시지로서 반복적으로 송신("플러딩(flooding)")할 수 있다. 네트워크 성능의 변동으로 인해, 오디오 수신기는, 달라지는 시간들에 클록 신호를 수신할 수 있다. 그러나, 오디오 수신기는 한 세트의 클록 신호가 대략적으로 일정한 레이트로 수신(예컨대, 100ms 간격으로 신호들을 수신)되는 때를 결정할 수 있으며, 이들 타이밍을, 클록 동기화를 개선하기 위한 추가적인 통계적 분석을 수행하기 위한 기초로서 사용할 수 있다. 오디오 수신기는 타이밍 정보를 미디어 플레이어에 송신하지 않고도 이를 수행할 수 있다.
예시 방법(900)은 블록(905)에서 시작하며, 새 메시지가 수신 또는 처리됨에 따라서, 유효한 최소 오프셋 값을 유지하는 데 사용하기 위한 최소 오프셋 변수인 "MinO"를 수신 디바이스가 초기화하는 블록(910)으로 진행한다. 다음으로, 블록(915)에서, 수신 디바이스는 전송 디바이스로부터 비콘 메시지를 수신한다. 이후, 블록(920)에서, 수신 디바이스는, 현재 수신 디바이스의 클록에 의해 나타난 시간에 기초하여 타임스탬프를 생성한다. 그러한 타임스탬프는 "수신기 타임스탬프"인, "R(x)"로 지칭될 수 있다. 블록(915)과 블록(920) 사이에서 경과되는 시간은, 수신 디바이스에 의해 계산될 클록 오프셋 값의 고정된 지연 성분의 일부를 형성한다. 그러므로, 방법(900)의 다양한 구현예는, 블록(920)과 블록(925) 사이에서 발생하는 동작의 수를 줄이거나 최소화하는 것을 목표로 한다.
블록(925)에서, 수신 디바이스는, 전송기 타임스탬프인, "S(x)"를 비콘 메시지로부터 추출한다. 전송기 타임스탬프는 비콘 메시지 송신 직전에 전송기 디바이스에 의해 비콘 메시지에 삽입된다. 블록(930)에서, 수신 디바이스는, 전송 디바이스가 가상 미디어 네트워크의 미디어 소스인지의 여부를 결정한다. 그러한 경우, 방법(900)은 블록(935)으로 진행한다. 수신 디바이스는 이후 전송기 타임스탬프를 전송기 디바이스의 시간 도메인으로부터 가상 미디어 네트워크의 시간 도메인으로 변환한다. 그러한 변환에는, 두 디바이스 사이에서 이전에 협상된 오프셋을 더하거나 빼는 것이 수반될 수 있다. 그러한 시간 도메인 사이의 변환 및 협상은, 당업자에게 공지된 임의의 방법에 따라서 수행될 수 있다. 일부 대안적인 실시예에서, 소스 디바이스 및 미디어 노드들은, 동일한 시간 도메인 내에서 클록을 유지한다. 그러한 일부 실시예에서는, 블록(930, 935)이 존재하지 않는다.
블록(935)에서 전송기 타임스탬프를 가상 미디어 네트워크 도메인으로 변환한 후, 또는 블록(930)에서 전송기가 미디어 소스가 아니라고 결정한 후, 방법(900)은, 수신 디바이스가, 예컨대, 전송기 타임스탬프와 수신기 타임스탬프 사이의 차이와 같은, 전송기 타임스탬프 및 수신기 타임스탬프에 기초한 오프셋 값을 계산하는 블록(940)으로 진행한다. 이러한 현재의 오프셋 값인, "CurO"는, 전송기 클록과 수신기 클록 사이의 실제 오프셋(true offset)에, 두 타임스탬프 S(x)와 R(x)의 생성 사이에서 비콘 메시지가 직면하게 되는 임의의 지연을 더한 값과 등가이다. 위에서 언급한 바와 같이, 이러한 지연은 2개의 성분을 포함한다. 지연의 제1 성분은, 예컨대, 메시지가 이동하는 회로 및 데이터경로와 연관된 일정한 지연과 같은, 네트워크의 하드웨어 및 소프트웨어 컴포넌트를 가로지르는 데 소요된 시간 및 메시지의 송신/수신과 연관 타임스탬프의 생성 사이에서 OS에 의해 소요된 시간과 연관된 고정된 지연이다. 그러한 고정된 지연은 렌더링 프로세스의 일부로서 이미 고려되어 있을 수 있다. 지연의 제2 성분은, 시간에 따라 변화하는 지연과 연관된 가변 네트워크 지연이다. 예컨대, Wi-Fi와 같은 공유 매체 네트워크는, 송신 전에 해당 매체가 클리어(clear) 상태가 될 때까지 기다릴 수 있으며, 따라서, 상이한 때에 상이한 지연을 유입시킬 수 있다.
가변 지연은 추가적인 지연을 유입시키기만 하므로(그리고 지연을 제거하지 않으므로), 실제 클록 오프셋에 대한 더 나은 추정치는, 가장 적게 지연된 메시지로부터 획득된다. 그러므로, 방법(900)은, 비콘 메시지의 플러딩 중에 획득된 최소 오프셋 값을, 실제 오프셋에 대한 최상의 사용가능한 추정치로서 서치한다. 블록(945)에서, 수신 디바이스는 현재의 오프셋인 CurO를, 이전에 찾은 최소 오프셋에 비교하며, 또는, 루프의 현재 반복이 최초의 반복이라면, 블록(910)에서 초기화된 최소 오프셋 값인 MinO에 비교한다. CurO가 MinO보다 더 작다면, CurO는 전송기 클록과 수신기 클록 사이의 실제 오프셋에 대한 더 가까운 추정치를 나타내는 것으로 공지되며, 수신기 디바이스는 MinO의 값을 CurO의 값으로 덮어쓴다.
블록(955)에서, 수신기 디바이스는, 전송기 디바이스가 비콘 메시지의 플러딩을 완료했는지의 여부를 결정한다. 예컨대, 수신기 디바이스는, 추가적인 비콘 메시지를 기다릴 때 시간초과가 발생했는지의 여부를 결정할 수 있거나, 전송기 디바이스가 미디어 메시지의 전송을 시작했다는 것을 결정할 수 있거나, 미리 결정된 수의 비콘 메시지가 수신되었다는 것을 결정할 수 있거나, 플러딩의 종료를 지시하는 특수 메시지를 전송 디바이스가 송신했다는 것을 결정할 수 있다. 다양한 실시예에서, 수신기 디바이스는, 오프셋의 원하는 정확도를 확립하기에 플러딩이 충분했는지의 여부를 결정한다. 예컨대, 수신기 디바이스는, 비콘 메시지가 수신되는 간격을 추적할 수 있으며, 측정된 간격을, 알려진 시간 간격에 비교하는 것에 기초하여, 오프셋 값의 원하는 정확도를 달성하기에 네트워크가 충분히 안정적이었는지의 여부를 결정할 수 있다. 네트워크가 충분히 안정적이지 않았다면, 수신 디바이스는, 추가적인 플러딩이 수행되어야 한다는 것을 표시하는 메시지를 전송 디바이스에 송신한다. 다양한 변형예도 분명할 것이다. 본 명세서의 교시를 고려하면, 비콘 메시지 플러딩의 충분성을 결정하기 위한 이들 방법 및 다른 방법의 다양한 조합이 사용될 수 있다는 것이 분명할 것이다.
수신 디바이스가, 추가적인 플러딩이 수행되고 있거나 수행될 것이라고 결정하면, 추가적인 비콘 메시지를 처리하기 위해 방법(900)은 블록(955)으로부터 블록(915)으로 다시 루핑한다. 그렇지 않다면, 방법(900)은, 결정된 최소 오프셋에 기초하여 수신 디바이스가 로컬 클록을 재설정하는 블록(960)으로 진행한다. 예컨대, 전송 디바이스의 실제 클록 값에 더 가까울 것으로 추정되는 새 값으로 로컬 클록을 설정하기 위해 수신 디바이스는 MinO를 현재의 클록 값으로부터 뺄 수 있다. 네트워크의 고정된 지연이 알려져 있거나 추정되는 일부 실시예에서, 계산된 오프셋 값의 실제 클록 오프셋 값을 격리하려고 시도하기 위해 수신 디바이스는 MinO를 현재의 클록 값으로부터 빼고, 고정된 지연 값에 다시 더한다. 일부 실시예에서, 수신 디바이스는 로컬 클록을 전혀 변경하지 않으며, 그 대신, 전송기 디바이스로부터 수신된 타임스탬프와 로컬 클록을 비교하는 데 사용하기 위해 최소 오프셋 값인 MinO를 유지할 수 있다. 예컨대, 임의의 그러한 비교 전에 수신 디바이스는 MinO를 타임스탬프에 더할 수 있다. 다양한 다른 변형예도 분명할 것이다. 이후, 방법(900)은 블록(965)의 종료로 진행할 수 있다. 방법(900)이 완료될 때의 재설정된 클록은, 동기화된 클록으로서 간주될 수 있다.
다양한 대안적 실시예에서, 플러딩 기간 중에 계산된 비합리적으로 큰 오프셋이, 클록을 재설정하기 위해 사용되지 않는다는 것을 보장하도록 돕기 위하여, 수신 디바이스는, 이전에 확립된 하계(lower bound) 오프셋을 이용한다. 예컨대, 가변성이 높은 네트워크 지연의 기간에 플러딩 기간이 포함된다면, 계산된 오프셋은 전송기 클록과 수신기 클록 사이의 오프셋의 실제 값보다 훨씬 더 클 수 있다. 일부 그러한 실시예에서, 수신기는 먼저 블록(940 내지 950)에서 계산된 최소 오프셋을, 이전에 확립된 하계 오프셋에 비교하여, 최소 오프셋이 하계 오프셋보다 더 큰지의 여부를 결정한다. 만일 그렇다면, 수신기는 최소 오프셋에 기초하여 클록을 갱신하기를 거절하고, 이전에 확립된 하계를 계속하여 사용한다. 그렇지 않다면, 최소 오프셋 값이 하계보다 더 작으므로(그리고 따라서 더 나은 추정치이므로), 수신기는, 블록(960)에 상세히 설명된 바와 같이 클록을 갱신한다.
다양한 실시예에서, 동기화를 재확립하기 위해 수신 디바이스는 방법(900)을 주기적으로 수행한다. 일부 그러한 실시예에서, 수신 디바이스는 클록을 원래의 값으로 재설정하거나, 저장된 오프셋 값을 삭제하거나, 그렇지 않으면, 방법(900)의 이전의 실행에 기초하여 이루어진 임의의 변경을 "롤백(roll back)"하여, 이에 의해 클록 오프셋의 결정을 "다시 시작(start over)"한다. 클록 오프셋을 주기적으로 재확립함으로써, 수신 디바이스는 전송 디바이스 클록과 수신 디바이스 클록 사이의 클록 드리프트를 더 잘 해결할 수도 있다.
본 명세서의 교시를 고려하면, 방법(900)은, 각 비콘 메시지가 수신됨에 따라서 각 비콘 메시지를 처리하는 실시간 방법으로서 설명되었지만, 다양한 대안적 실시예는, 비콘 메시지들을 배치(batch)로서 처리하는 방법을 이용한다는 것이 분명할 것이다. 예컨대, 일부 그러한 실시예에서, 블록(925 내지 960)에 관하여 설명된 것과 유사한 방식으로 최소 오프셋을 찾기 위해, 수신 디바이스는 다수의 비콘 메시지를 수신하고, 수신 시에 메시지를 타임스탬핑하고, 수신된 메시지를 이후의 시간에 순차적으로 처리한다.
전술한 방법은 두 디바이스 사이의 클록 오프셋에 대한 최상의 추정치를 생성하려고 시도하지만, 이러한 초기 플러딩 기간 이후에 네트워크 조건이 일시적으로 개선될 수도 있는 것과 이후에 더 나은 추정치가 획득될 수도 있는 것이 가능하다는 것이 이해될 것이다. 따라서, 클록 오프셋을 더 잘 추정하려고 시도하기 위해, 초기 타이밍 파라미터 확립 이후에 방법이 사용될 수 있다. 그러한 방법은, 크리스털, 온도, 또는 다른 파라미터의 차이로 인해 전송 디바이스 클록과 수신 디바이스 클록이 약간 상이한 레이트로 동작할 수 있는 클록 드리프트의 가능성도 해결할 수 있다.
도 10은, 재동기화 및 클록 드리프트 정정을 위한 예시 방법의 예시 프로세스(1000)를 도시한다. 불완벽함으로 인해, 시스템 내의 임의의 디바이스의 로컬 클록은 천천히 드리프트될 수 있다. 예시 방법은, 미디어 스트리밍 중에 수신 미디어 디바이스가 더 나은 재생 동기화를 획득하도록 하는 데 사용될 수 있다. 예시적 방법(1000)은, 수신 미디어 디바이스로서 기능하는 임의의 미디어 디바이스에 의해 수행될 수 있다. 예시 방법(1000)은 도 3의 블록(309)의 일부로서 수행되거나, 미디어 디바이스 사이의 타이밍 파라미터의 동기화가 적절한, 임의의 때에 수행될 수 있다.
예시 방법(1000)은 블록(1005)에서 시작하며, 수신 디바이스가 전송 디바이스로부터 미디어 데이터 패킷을 수신하는 블록(1010)으로 진행한다. 그다음으로, 블록(1015)에서, 수신 디바이스는, 수신 디바이스의 클록에 의해 현재 나타난 시간에 기초하여 타임스탬프 R(x)를 생성한다. 블록(1020)에서, 수신 디바이스는 전송기 타임스탬프인 "S(x)"를 미디어 데이터 메시지로부터 추출한다. 전송기 타임스탬프는 송신 직전에 전송기 디바이스에 의해 미디어 데이터 메시지에 삽입되었을 수 있다. 블록(1025)에서, 수신 디바이스는, 전송 디바이스가 가상 미디어 네트워크의 미디어 소스인지의 여부를 결정한다. 그러한 경우, 방법(1000)은 블록(1030)으로 진행한다. 수신 디바이스는 이후 전송기 타임스탬프를 전송기 디바이스의 시간 도메인으로부터 가상 미디어 네트워크의 시간 도메인으로 변환한다. 그러한 변환에는, 두 디바이스 사이에서 이전에 협상된 오프셋을 더하거나 빼는 것이 수반될 수 있다. 그러한 시간 도메인 사이의 변환 및 협상은, 당업자에게 공지된 임의의 방법에 따라서 수행될 수 있다. 일부 대안적인 실시예에서, 소스 디바이스 및 미디어 노드들은, 동일한 시간 도메인 내에서 클록을 유지한다. 일부 그러한 실시예에서는, 블록(1020 및 1030)이 존재한다.
블록(1030)에서 전송기 타임스탬프를 가상 미디어 네트워크 도메인으로 변환한 후, 또는 블록(1025)에서 전송기가 미디어 소스가 아니라고 결정한 후, 방법(1000)은, 수신 디바이스가, 예컨대, 전송기 타임스탬프와 수신기 타임스탬프 사이의 차이와 같은, 전송기 타임스탬프 및 수신기 타임스탬프에 기초한 오프셋 값을 계산하는 블록(1035)으로 진행한다. 전송기 타임스탬프가 변환된 경우에는, 변환된 타임스탬프가 오프셋의 계산에 사용된다. 이러한 오프셋 값인, "O"는, 전송기 클록과 수신기 클록 사이의 실제 오프셋에, 고정된 지연과 가변 지연 둘 다를 포함한, 두 시간 스탬프 S(x)와 R(x)의 생성 사이에서 미디어 데이터 메시지가 직면하게 되는 임의의 지연을 더한 값과 등가이다. 블록(1040)에서, 수신 디바이스는 해당 오프셋 값이, 이전에 이용된 오프셋 값보다 클록들 사이의 오프셋에 대한 더 나은 추정을 나타내는지의 여부를 결정한다. 예컨대, 수신 디바이스의 클록을 재설정하기 위해, 이전에 결정된 최소 오프셋이 사용되는 다양한 실시예에서, 수신 디바이스는 현재의 오프셋인 O가 0보다 작은지의 여부를 결정한다. 이 비교에 대한 긍정적인 결과는, 이전에 사용된 최소 오프셋이 약간의 가변 네트워크 지연을 포함했을 수 있고 이를 로컬 클록으로부터 뺌으로써 이상적인 세트포인트를 "벗어났으며(overshot)", 이에 의해 전송기의 클록보다 뒤처진 로컬 클록이 설정되었다는 것을 지시한다. 현재의 오프셋인 O는, 이전에 사용된 최소 오프셋보다 더 적은 (또는 0인) 가변 지연을 포함함으로써, 음의 수에 의해 이러한 벗어남(overshoot)을 드러낼 수 있다. 그러한 경우, 현재의 오프셋 O는, 실제 클록 오프셋에 대한 새로운 최상의 추정치를 드러내는 것으로 판정될 것이며, 블록(1045)에서, 로컬 클록을 다시 재설정하기 위해 사용될 수 있고, 이에 의해 적어도 부분적으로 이전의 벗어남을 정정한다. 다른 실시예를 위한 다양한 변형예도 분명할 것이다. 예컨대, 이전에 결정된 최소 오프셋이, 로컬 클록을 수정하기 위해 사용되지 않으며, 그 대신, 타임스탬프 비교에 사용하기 위해 해당 최소 오프셋이 지속되는 실시예에서, 블록(1040)은, 현재의 오프셋 O가 이전의 최소 오프셋 MinO보다 더 작은지의 여부를 결정하며, 만일 그렇다면, 블록(1045)에서 수신 디바이스는, O와 같은 MinO를 설정한다. 다양한 다른 변형예도 분명할 것이다.
다양한 대안적 실시예에서, 플러딩 기간 중에 계산된 비합리적으로 큰 오프셋이, 클록을 재설정하기 위해 사용되지 않는다는 것을 보장하도록 돕기 위하여, 수신 디바이스는, 이전에 확립된 하계 오프셋을 이용한다. 일부 그러한 실시예에서, 수신기는 먼저 블록(1035)에서 계산된 오프셋을, 이전에 확립된 하계 오프셋에 비교하여, 해당 오프셋이 하계 오프셋보다 실제 오프셋에 대한 더 나은 추정치를 나타내는지의 여부를 결정한다. 만일 그렇다면, 수신기는 최소 오프셋에 기초하여 클록을 갱신하기를 거절하고, 이전에 확립된 하계를 계속하여 사용한다. 그렇지 않다면, 해당 오프셋 값이 하계보다 더 나은 추정치이므로, 수신기는, 블록(1045)에 상세히 설명된 바와 같이 클록을 갱신한다.
블록(1050)에서, 예컨대, 미디어 출력을 적절한 시간에 렌더링하기 위하여, 수신 디바이스는, 수신된 미디어 패킷을 처리하기 위해 진행한다. 예컨대, 수신 디바이스는, 전송기 타임스탬프 및 수신기 타임스탬프와는 별개인, 프리젠테이션 시간을 미디어 데이터 패킷으로부터 추출 또는 계산할 수 있다. 그러한 프리젠테이션 시간은, 메시지에 의해 반송된 미디어 데이터가 렌더링되어야 하는 시간을 표시한다. 프리젠테이션 시간을 추출한 후, 수신 디바이스는, 프리젠테이션 시간에 매칭되는 시간에 미디어 데이터가 렌더링되도록 한다. 예컨대, 수신 디바이스는 로컬 재생 디바이스에 의한 재생을 위해 미디어 데이터를 버퍼링할 수 있거나, 재생을 위해 또 다른 미디어 노드에 메시지를 전달할 수 있다. 프리젠테이션 시간에 "매칭되는" 현재의 시간은, 현재의 시간과 프리젠테이션 타임스탬프 사이의 등가성을 포함할 수 있지만, 다른 형태의 매칭도 포함할 수 있다는 것이 이해될 것이다. 예컨대, 다양한 실시예에서, 현재의 시간은, 지속되는 최소 오프셋 값을 현재의 시간에서 뺀 값이 프리젠테이션 타임스탬프와 같을 때 매칭된다. 추가적으로 또는 대안적으로, 매칭을 위한 비교는, 고정된 지연 값을 더하거나, 빼거나, 다른 방식으로 고려한다. 재생을 위한 적절한 시간을, 로컬 클록, 프리젠테이션 타임스탬프, 및 다른 잠재적으로 사용가능한 값에 기초하여 결정하기 위한 다양한 다른 방법이 분명할 것이다. 또한, 최소 오프셋 값에 기초하는 프리젠테이션 시간에 매칭되는 현재의 시간이라는 개념은, 최소 오프셋 값에 의해 이전에 수정되었으나 그 외에는 최소 오프셋 값을 명시적으로 고려하지 않는 로컬 클록을 이용하는 비교를 포함하는 것으로 이해될 것이다. 적절한 시간에 데이터가 출력된다는 것을 보장하기 위해, 다양한 실시예는 그러한 비교를 출력 직전에 수행한다. 다른 실시예는, 미디어가 프리젠테이션 시간에 재생될 가능성이 높은 위치의 재생 버퍼에 미디어 데이터를 삽입하기 위해 그러한 비교를 사용한다. 재생의 타이밍을 조정하기 위하여, 그러한 삽입에는, 미디어 데이터의 삽입 이전의 "더미(dummy)" 데이터의 삽입이 수반될 수 있다. 버퍼 내의 데이터의 재생 타이밍을 제어하는 다양한 추가적인 방법이 분명할 것이다.
추가적인 실시예
도 1에 도시된 바와 같이, 전화기(105)는 무선 스피커(141)를 통해 또는 유선 헤드폰(153)을 통해 오디오를 출력할 수 있다. 무선 스피커보다 유선 헤드폰을 통해 오디오가 더 빠르게 렌더링될 수 있다. 따라서, 렌더링 시간의 이러한 변동은, 오디오 동기화 중에 해결될 수 있다. 예컨대, 결정적 모드에서, 무선 스피커(141)를 통한 송신 및 렌더링에 25ms가 소요된다면, 전화기 1(105)은 스테이징 시간의 25ms 전에 무선 스피커에 데이터를 송신할 수 있다. 또 다른 예를 들면, 결정적 모드에서, 무선 스피커를 통한 송신 및 렌더링에, 가변적인 25ms 내지 50ms가 소요된다면, 전화기 1은, 오디오가 재생되도록 스케줄링될 때로부터 적어도 50ms 전에 전화기가 무선 스피커에 오디오를 송신하도록, 그리고 오디오가 재생되어야 하는 때를 지시하는 지연 시간도 송신하도록, 결정적 모드를 구현할 수 있다. 무선 스피커는, 오디오를 수신하고, 지연 시간의 종료 시까지 이를 버퍼링한 후, 오디오를 재생할 수 있다.
일부 실시예에서, 오디오가 최종적으로 렌더링되기 전에, 오디오는, 네트워크를 통해 통신하는 복수의 중간 디바이스를 통과할 수 있다. 네트워크를 통한 송신의 각 중간 단계 동안, 송신 디바이스 및 수신 디바이스는, 최종 오디오 렌더링이 비디오 재생과 동기화되도록, 전술한 방법을 수행할 수 있다.
한 양상은, 오디오 플레이어와 비디오 플레이어 사이의 멀티모드 동기식 미디어 재생을 위한 방법을 특징으로 하며, 무선 네트워크에 연결된 비디오 플레이어 및 무선 네트워크에 연결된 오디오 플레이어를 식별하는 단계; 비디오 플레이어와 오디오 플레이어 사이에서 클록 신호를 동기화하는 단계; 결정적 모드 또는 반등시성 모드를 오디오 동기 모드로서 결정하는 단계; 오디오 패킷을 수신하는 단계; 타임스탬프 및 오디오 페이로드를 추출하기 위해 오디오 패킷을 언패킹하는 단계; 동기화된 클록 신호에 의해 측정되는 오디오 패킷의 수신된 시간을 결정하는 단계; 및 오디오 동기 모드에 따라서 오디오 출력을 렌더링하는 단계를 포함한다.
일부 실시예에서, 오디오 동기 모드는 결정적 모드이며, 방법은, 동기화된 클록 신호에 의해 측정되는 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 예상 재생 시간까지 오디오 페이로드를 버퍼링하는 단계; 및 재생 시간에 오디오 페이로드를 렌더링하는 단계를 더 포함한다.
일부 실시예에서, 오디오 동기 모드는 결정적 모드이며, 방법은, 동기화된 클록 신호에 의해 측정되는 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 예상 재생 시간이 될 때까지 오디오 페이로드가 사용가능하지 않으리라는 것을 결정하는 단계; 및 예상 재생 시간에 필러 패킷을 렌더링하는 단계를 더 포함한다.
일부 실시예에서, 오디오 동기 모드는 결정적 모드이며, 방법은, 동기화된 클록 신호에 의해 측정되는 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 예상 재생 시간이 될 때까지 오디오 페이로드가 사용가능하지 않으리라는 것을 결정하는 단계; 오류 정정 데이터로부터 오디오 페이로드를 구성하는 단계; 및 예상 재생 시간에 오디오 페이로드를 렌더링하는 단계를 더 포함한다.
일부 실시예에서, 오디오 동기 모드는 반등시성 모드이며, 방법은, 동기화된 클록 신호를 사용하여, 오디오 패킷 수신 시간을 결정하는 단계; 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 및, 예상 재생 시간이 경과하지 않았다는 결정에 응답하여 오디오 페이로드를 렌더링하는 단계를 더 포함한다. 방법은, 스테이징 시간에 마진 시간을 더하여 예상 재생 시간을 결정하는 단계를 더 포함할 수 있으며, 여기서 스테이징 시간은 타임스탬프이다.
일부 실시예에서, 오디오 동기 모드는 반등시성 모드이며, 방법은, 동기화된 클록 신호를 사용하여, 오디오 패킷 수신 시간을 결정하는 단계; 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 및, 예상 재생 시간이 경과했다는 결정에 응답하여 필러 패킷을 렌더링하는 단계를 더 포함한다.
일부 실시예에서, 오디오 동기 모드는 반등시성 모드이며, 방법은, 동기화된 클록 신호를 사용하여, 오디오 패킷 수신 시간을 결정하는 단계; 예상 재생 시간을, 타임스탬프에 적어도 부분적으로 기초하여 결정하는 단계; 오류 정정 데이터로부터 오디오 페이로드를 구성하는 단계; 및, 예상 재생 시간이 경과했다는 결정에 응답하여, 구성된 오디오 페이로드를 렌더링하는 단계를 더 포함한다.
일부 실시예에서, 방법은, 네트워크의 안정성 및 네트워크의 대역폭을 결정하기 위해 무선 네트워크를 테스트하는 단계를 더 포함하며, 오디오 동기 모드는, 네트워크의 안정성 및 네트워크의 대역폭에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 방법은, 클록 신호를 재동기화함으로써 클록 신호의 드리프트를 정정하는 단계를 더 포함한다.
일부 실시예에서, 비디오 플레이어와 오디오 플레이어 사이에서 클록 신호를 동기화하는 단계는, 비디오 플레이어로부터 오디오 플레이어로의 단방향 통신을 사용하여 수행된다.
용어
전술한 실시예에서, 비디오 및 오디오의 멀티모드 동기식 렌더링을 위한 장치, 시스템, 및 방법이, 특정한 실시예와 관련하여 설명되었다. 그러나, 이러한 실시예의 원리 및 장점은, 비디오와 오디오의 개선된 동기화를 위해 네트워크 디바이스 전체에 걸친 임의의 다른 시스템, 장치, 또는 방법에 사용될 수 있다는 것이 이해될 것이다. 전화기, 스마트 TV, 또는 다른 특정한 디바이스에 관하여 특정한 실시예가 설명되었지만, 본 명세서에 설명된 원리 및 장점은 다양한 디바이스에 적용될 수 있다는 것이 이해될 것이다. 개시된 실시예 중 일부는, 특정한 무선 프로토콜 또는 네트워크에 관하여 설명되었을 수 있지만, 본 명세서의 원리 및 장점은, 다양한 네트워크 및 프로토콜에 적용될 수 있다는 것이 이해될 것이다. 또한, 예시의 목적으로 몇몇 수학식 및 타이밍이 제공되었지만, 본 명세서에 설명된 기능을 달성하기 위하여 다른 유사한 수학식 또는 타이밍이 대안적으로 구현될 수 있다.
본 명세서에 설명된 원리 및 장점은 다양한 디바이스 내에서 구현될 수 있다. 그러한 디바이스의 예는, 소비자 전자 제품, 소비자 전자 제품의 컴포넌트, 전자 테스트 장비 등을 포함할 수 있으나, 이들로 한정되지 않는다. 또한, 전자 디바이스의 컴포넌트는 메모리 칩, 메모리 모듈, 광 네트워크 또는 다른 통신 네트워크의 회로, 및 드라이버 회로를 포함할 수 있다. 오디오 또는 비디오 능력을 갖춘 네트워크 내의 디바이스의 다른 예는 모바일 전화기(예컨대, 스마트 폰), 헬스케어 모니터링 디바이스, 자동차 전자장치 시스템과 같은 차량 전자장치 시스템, 전화기, 텔레비전, 컴퓨터 모니터, 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 랩톱 컴퓨터, PDA(personal digital assistant), 전자레인지, 냉장고, 스테레오 시스템, 카세트 레코더 또는 플레이어, DVD 플레이어, CD 플레이서, 디지털 비디오 레코더(DVR), VCR, MP3 플레이어, 라디오, 캠코더, 카메라, 디지털 카메라, 휴대용 메모리 칩, 복사기, 팩시밀리 기계, 스캐너, 다기능 주변기기 디바이스, 손목시계, 시계 등을 포함할 수 있다. 또한, 장치는 미완성 제품을 포함할 수 있다.
맥락에서 명확히 다르게 요구하지 않는 한, 설명 및 청구항 전반에 걸쳐서, "포함한다", "포함하는" 및 이와 유사한 말은, 배타적이거나 완전한 의미가 아니라 포괄적인 의미로 해석되어야 하며; 즉, 이러한 말은 "~을(를) 포함하지만 ~에 한정되지 않는"의 의미로 해석되어야 한다. 본 명세서에서 일반적으로 사용되는, "커플링된" 또는 "연결된"이라는 말은, 직접적으로 연결될 수 있거나, 하나 이상의 중간 요소에 의해 연결될 수 있는 2개 이상의 요소를 지칭한다. 또한, "본 명세서에서", "위의", "아래의" 및 이와 유사한 중요성을 갖는 말은, 본 출원에서 사용되었을 때, 본 출원 전체를 지칭해야 하며, 본 출원의 임의의 특정한 부분을 지칭해서는 안 된다. 맥락에서 허용하는 경우, 단수형 또는 복수형을 사용하는 상세한 설명 내의 단어는 각각 복수형 또는 단수형도 포함할 수 있다. 2개 이상의 항목의 목록에 관한 "또는"이라는 말은, 목록 내 항목 중 임의의 항목, 목록 내 항목 중 모든 항목, 및 목록 내 항목의 임의의 조합이라는 해석을 모두 커버하도록 의도된다. 본 명세서에 제공된 모든 수치 값은 측정 오차 이내의 유사한 값을 포함하도록 의도된다.
또한, 다른 것들 중에서도, "~ 수 있다", "~ 수도 있다", "예컨대", "~과(와) 같이" 등과 같이, 본 명세서에 사용된 조건부 언어는, 구체적으로 다르게 진술되어 있지 않은 한, 또는 사용되는 맥락 내에서 다르게 이해되지 않는 한, 다른 실시예는 포함하지 않지만 특정한 실시예는 특정한 특징, 요소 및/또는 상태를 포함한다는 것을 전달하도록 일반적으로 의도된다.
본 명세서에 제공된 본 발명의 교시는 다른 시스템에 적용될 수 있으며, 전술한 시스템에 반드시 적용되지 않을 수도 있다. 전술한 다양한 실시예의 요소 및 작동은 추가적인 실시예를 제공하기 위해 조합될 수 있다. 전술한 방법의 실시예에 관한 변형예에서, 일부 블록들은 생략되거나, 순서가 바뀌거나, 순서가 없어지거나, 순차적으로 또는 병렬로 수행될 수 있다.
본 발명의 특정한 실시예가 설명되었지만, 이들 실시예는 오직 예시로서 제시되었으며, 본 개시의 범위를 제한하도록 의도되지 않는다. 실제로, 본 명세서에 설명된 신규 방법 및 시스템은 다양한 다른 형태로 실시될 수 있다. 또한, 본 명세서에 설명된 방법 및 시스템의 형태의 다양한 생략, 대체 및 변경이, 본 개시의 사상으로부터 벗어나지 않으면서 이루어질 수 있다. 첨부되는 청구항 및 그 등가물은, 본 개시의 범위 및 사상에 속할 수 있는 그러한 형태 또는 수정을 커버하도록 의도된다. 본 명세서에 설명된 시스템 및 방법의 다양한 예시는 많은 장점을 포함할 수 있지만, 이들 중 그 어떠한 것도 본 발명을 한정하지 않는다. 그 대신, 본 발명은 청구항들에 의해 한정된다.

Claims (20)

  1. 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 방법에 있어서,
    상기 제1 전자 디바이스에서 비디오 데이터 및 오디오 데이터를 수신하는 단계로서, 상기 제1 전자 디바이스는, 텔레비전, 또는 텔레비전에 커플링된 미디어 소스를 포함하는, 상기 비디오 데이터 및 오디오 데이터를 수신하는 단계;
    상기 제1 전자 디바이스와 상기 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 무선 네트워크를 통해 상기 제2 전자 디바이스에, 상기 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하는 단계로서, 상기 제2 전자 디바이스는 모바일 디바이스인, 상기 클록 정보를 무선으로 송신하는 단계;
    상기 제1 전자 디바이스의 하드웨어 프로세서를 사용해, 상기 비디오 데이터에 적어도 부분적으로 기초하여 프로그램적으로(programmatically) 오디오 동기화 모드를 선택하는 단계로서, 상기 오디오 동기화 모드는, 상기 비디오 데이터의 크기가 임계치 미만이라면 상기 비디오 데이터를 지연시키는 것을 포함하는 제1 모드와 상기 비디오 데이터의 크기가 임계치를 초과한다면 상기 오디오 데이터를 압축하는 것을 포함하는 제2 모드 사이에서 선택되는, 상기 오디오 동기화 모드를 선택하는 단계; 및
    상기 선택된 오디오 동기화 모드에 따라서 상기 제1 전자 디바이스로부터 상기 제2 전자 디바이스에 상기 오디오 데이터를 송신하는 단계
    를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  2. 제1항에 있어서, 상기 제1 모드를 선택하는 데 응답하여 상기 비디오 데이터를 지연시키는 단계를 더 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제2 모드를 선택하는 데 응답하여 상기 오디오 데이터를 압축하는 단계를 더 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  4. 제1항 또는 제2항에 있어서, 상기 제1 모드를 선택하는 데 응답하여 상기 오디오 데이터를 압축하고 상기 비디오 데이터를 지연시키는 단계를 더 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  5. 제1항 또는 제2항에 있어서, 상기 오디오 동기화 모드를 선택하는 단계는, 상기 비디오 데이터 내에서 비디오 게임을 검출하는 데 응답하여 상기 제2 모드를 선택하는 단계를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  6. 제1항 또는 제2항에 있어서, 상기 오디오 동기화 모드를 선택하는 단계는, 상기 무선 네트워크의 안정성 또는 상기 무선 네트워크의 대역폭에 기초하여 상기 제2 모드를 선택하는 단계를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  7. 제1항 또는 제2항에 있어서, 상기 클록 정보를 무선으로 송신하는 단계는, 동일한 시간 간격으로 각각 이격된 복수의 패킷을 송신하는 단계를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  8. 제1항 또는 제2항에 있어서, 상기 제1 모드를 위한 지연 시간을 결정하는 단계를 더 포함하고, 상기 지연 시간은 상기 제1 전자 디바이스의 버퍼링 용량에 기초하여 결정되는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  9. 제8항에 있어서, 상기 지연 시간을 결정하는 단계는, 상기 제1 전자 디바이스로부터 상기 제2 전자 디바이스에 패킷이 전송되는 평균 송신 시간보다 더 긴 지연 시간을 선택하는 단계를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  10. 제1항 또는 제2항에 있어서, 인터리빙(interleaving)된 순방향 오류 정정 정보를 오디오 플레이어에 송신하는 단계를 더 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  11. 제1항 또는 제2항에 있어서, 비디오 플레이어와 오디오 플레이어 사이에서 클록 신호를 동기화하는 단계는, 클록 드리프트를 해결하기 위해, 오디오 렌더링 기간 후에 상기 동기화된 클록을 재동기화하는 단계를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 방법.
  12. 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템에 있어서,
    제1 전자 디바이스를 포함하고, 상기 제1 전자 디바이스는,
    프로세서-실행가능 명령어를 포함하는 메모리;
    상기 프로세서-실행가능 명령어를 실행하도록 구성된 하드웨어 프로세서; 및
    상기 하드웨어 프로세서와 통신하는 무선 송신기
    를 포함하고;
    상기 프로세서-실행가능 명령어는,
    비디오 데이터 및 오디오 데이터를 수신하고;
    상기 제1 전자 디바이스와 상기 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 상기 무선 송신기로 하여금, 무선 네트워크를 통해 상기 제2 전자 디바이스에, 상기 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하게 하고;
    상기 비디오 데이터, 버퍼 특성, 및 네트워크 특성 중 하나 이상에 적어도 부분적으로 기초하여 프로그램적으로 오디오 동기화 모드를 선택하고 - 상기 오디오 동기화 모드는 반등시성 모드(semi-isochronous mode)임 - ;
    상기 무선 송신기로 하여금, 적어도, 상기 오디오 데이터를 압축된 오디오 데이터로 압축하고 상기 압축된 데이터와 함께 순방향 오류 정정(forward error correction) 데이터를 제공함으로써, 상기 선택된 오디오 동기화 모드에 따라서 상기 제1 전자 디바이스로부터 상기 제2 전자 디바이스에 상기 오디오 데이터를 송신하게 하도록
    구성되는, 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템.
  13. 제12항에 있어서, 상기 제1 전자 디바이스는 텔레비전 또는 셋톱 박스인, 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템.
  14. 삭제
  15. 제12항에 있어서, 상기 오디오 동기화 모드의 선택은 상기 비디오 데이터의 대역폭 크기의 평가를 포함하는, 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템.
  16. 제15항에 있어서, 오디오 압축 모드는, 상기 비디오 데이터의 대역폭 크기가 상기 제1 전자 디바이스의 버퍼링 용량을 초과하는 데 응답하여 선택되는, 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템.
  17. 프로세서에 의해 실행될 때, 제1 전자 디바이스와 제2 전자 디바이스 사이에서 오디오 재생을 동기화하는 모드를 선택하기 위한 시스템을 구현하도록 구성된 프로세서-실행가능 명령어가 저장된 비일시적 물리적 전자 저장장치에 있어서, 상기 시스템은,
    상기 제1 전자 디바이스에서 비디오와 연관된 오디오 데이터를 수신하고;
    상기 제1 전자 디바이스와 상기 제2 전자 디바이스 사이에서 동기화된 클록을 확립하기 위해, 무선 네트워크를 통해 상기 제2 전자 디바이스에, 상기 제1 전자 디바이스와 연관된 클록 정보를 무선으로 송신하고;
    하나 이상의 비디오 특성 또는 네트워크 특성에 적어도 부분적으로 기초하여 프로그램적으로 오디오 동기화 모드를 선택하고 - 상기 오디오 동기화 모드는 반등시성 모드(semi-isochronous mode)임 - ;
    적어도, 상기 오디오 데이터를 압축된 오디오 데이터로 압축하고 상기 압축된 데이터와 함께 순방향 오류 정정 데이터를 제공함으로써, 상기 선택된 오디오 동기화 모드에 따라서 상기 제1 전자 디바이스로부터 상기 제2 전자 디바이스에 상기 오디오 데이터를 송신
    하도록 구성되는, 비일시적 물리적 전자 저장장치.
  18. 삭제
  19. 제17항에 있어서, 오디오 압축 모드는, 상기 오디오 데이터에 대한 손실성 압축의 적용을 포함하는, 비일시적 물리적 전자 저장장치.
  20. 삭제
KR1020197010602A 2016-09-14 2017-09-12 오디오 및 비디오의 멀티모드 동기식 렌더링 KR102445593B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/265,609 US10158905B2 (en) 2016-09-14 2016-09-14 Systems and methods for wirelessly transmitting audio synchronously with rendering of video
US15/265,609 2016-09-14
PCT/US2017/051095 WO2018052881A1 (en) 2016-09-14 2017-09-12 Multimode synchronous rendering of audio and video

Publications (2)

Publication Number Publication Date
KR20190106986A KR20190106986A (ko) 2019-09-18
KR102445593B1 true KR102445593B1 (ko) 2022-09-22

Family

ID=59974860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197010602A KR102445593B1 (ko) 2016-09-14 2017-09-12 오디오 및 비디오의 멀티모드 동기식 렌더링

Country Status (6)

Country Link
US (3) US10158905B2 (ko)
EP (1) EP3513564A1 (ko)
JP (1) JP7120997B2 (ko)
KR (1) KR102445593B1 (ko)
CN (1) CN109906613B (ko)
WO (1) WO2018052881A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120642B2 (en) * 2016-12-13 2018-11-06 EVA Automation, Inc. Software-based wireless coordination of audio playback
WO2018134660A1 (en) * 2017-01-17 2018-07-26 Labs.Fm (Pty) Ltd Content streaming system and method
EP3373524B1 (en) * 2017-03-08 2023-08-23 Robert Bosch GmbH Audio stream network with network components and method for running and/or configuring the network with network components
DE102017123319A1 (de) * 2017-10-09 2019-04-11 Sennheiser Electronic Gmbh & Co. Kg Verfahren und System zur Erfassung und Synchronisation von Audio- und Videosignalen und Audio/Video-Erfassungs- und Synchronisationssystem
US11509726B2 (en) * 2017-10-20 2022-11-22 Apple Inc. Encapsulating and synchronizing state interactions between devices
CN108012177A (zh) * 2017-12-01 2018-05-08 晨星半导体股份有限公司 音视频播放系统及应用于其上的音频数据的播放方法
EP3780634A4 (en) * 2018-05-09 2021-04-28 Huawei Technologies Co., Ltd. ASSIGNMENT OF LOCAL PROCESSING CAPABILITY OF INTERCONNECTED TERMINAL DEVICES
US10771866B2 (en) 2018-05-24 2020-09-08 Google Llc Methods, systems, and media synchronizing audio and video content on multiple media devices
US10805658B2 (en) 2018-09-12 2020-10-13 Roku, Inc. Adaptive switching in a whole home entertainment system
US10834296B2 (en) * 2018-09-12 2020-11-10 Roku, Inc. Dynamically adjusting video to improve synchronization with audio
WO2020069594A1 (en) * 2018-10-03 2020-04-09 Videolocalize Inc. Piecewise hybrid video and audio synchronization
US11190836B2 (en) * 2018-12-20 2021-11-30 Hisense Visual Technology Co., Ltd. Audio playing and transmitting methods and apparatuses
EP3902271A4 (en) * 2018-12-20 2022-10-26 Hisense Visual Technology Co., Ltd. AUDIO REPRODUCTION AND TRANSMISSION METHOD AND APPARATUS
KR102643372B1 (ko) * 2019-05-29 2024-03-07 삼성전자주식회사 장치를 탐색하는 전자 장치 및 그 방법
US11234049B2 (en) * 2019-06-24 2022-01-25 The Nielsen Company (Us), Llc Use of steganographically-encoded time information as basis to control implementation of dynamic content modification
CN110430457B (zh) * 2019-07-25 2021-09-10 北京奇艺世纪科技有限公司 异端音视频播放方法、装置及音视频播放系统
WO2021054612A1 (ko) * 2019-09-19 2021-03-25 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR20210068953A (ko) 2019-12-02 2021-06-10 삼성전자주식회사 전자 장치 및 그 제어 방법
CN112995759A (zh) * 2019-12-13 2021-06-18 腾讯科技(北京)有限公司 互动业务处理方法、系统、装置、设备及存储介质
KR102306226B1 (ko) * 2019-12-19 2021-09-29 애드커넥티드 주식회사 디지털 콘텐츠의 비디오 및 오디오 재생 동기화를 맞추는 방법 및 이를 이용한 장치
US10904606B1 (en) * 2020-01-23 2021-01-26 Roku, Inc. Using non-audio data embedded in an audio signal
WO2021164043A1 (zh) * 2020-02-20 2021-08-26 深圳市昊一源科技有限公司 音视频传输装置及音视频传输系统
US11038937B1 (en) * 2020-03-06 2021-06-15 Sonos, Inc. Hybrid sniffing and rebroadcast for Bluetooth networks
US11418297B2 (en) * 2020-03-31 2022-08-16 Bose Corporation Systems and methods including wireless data packet retransmission schemes
WO2021222683A1 (en) * 2020-05-01 2021-11-04 Arris Enterprises Llc Method and system for synchronized viewing of content over multiple remote media play devices
KR102251148B1 (ko) * 2020-05-06 2021-05-12 (주)유브릿지 오디오-비디오 동기화 처리 방법
CN111669645B (zh) * 2020-06-12 2021-09-07 腾讯科技(深圳)有限公司 视频的播放方法、装置、电子设备及存储介质
US11196899B1 (en) * 2020-06-18 2021-12-07 Sony Group Corporation Synchronization of wireless-audio to video
FR3112444A1 (fr) * 2020-07-10 2022-01-14 Sagemcom Broadband Sas Procédé, système et programme de diffusion de signaux audio/vidéo avec un ajustement automatique de latence
CN114830678A (zh) * 2020-07-22 2022-07-29 谷歌有限责任公司 自适应音频回放速度的蓝牙耳机
KR20220098577A (ko) * 2021-01-04 2022-07-12 삼성전자주식회사 오디오 데이터 처리 방법 및 이를 지원하는 전자 장치
WO2022181860A1 (ko) * 2021-02-26 2022-09-01 애드커넥티드 주식회사 디지털 콘텐츠의 비디오 및 오디오 재생 동기화를 맞추는 방법 및 이를 이용한 장치
CN113438385B (zh) * 2021-06-03 2023-04-04 深圳市昊一源科技有限公司 一种视频同步方法及无线图像传输系统
US20230023652A1 (en) * 2021-07-22 2023-01-26 Sonos, Inc. Wireless Streaming of Audio/Visual Content in a Home Theater Architecture
FR3131161A1 (fr) * 2021-12-20 2023-06-23 Sagemcom Broadband Sas Dispositif et procédé pour la restitution audio-vidéo synchronisée.

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006311006A (ja) 2005-04-27 2006-11-09 Victor Co Of Japan Ltd 映像・音声処理装置
US20150208161A1 (en) 2012-08-28 2015-07-23 Koninklijke Philips N.V. Audio forwarding device and corresponding method

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69432524T2 (de) * 1993-06-09 2004-04-01 Btg International Inc. Verfahren und vorrichtung für ein digitales multimediakommunikationssystem
US5430485A (en) * 1993-09-30 1995-07-04 Thomson Consumer Electronics, Inc. Audio/video synchronization in a digital transmission system
US5815634A (en) * 1994-09-30 1998-09-29 Cirrus Logic, Inc. Stream synchronization method and apparatus for MPEG playback system
US5594660A (en) * 1994-09-30 1997-01-14 Cirrus Logic, Inc. Programmable audio-video synchronization method and apparatus for multimedia systems
US5703877A (en) * 1995-11-22 1997-12-30 General Instrument Corporation Of Delaware Acquisition and error recovery of audio data carried in a packetized data stream
GB9807295D0 (en) * 1998-04-03 1998-06-03 Snell & Wilcox Ltd Improvements relating to audio-video delay
AU4182400A (en) * 1999-03-30 2000-10-16 Diva Systems Corporation User access to secondary content associated with a primary content
CA2313979C (en) * 1999-07-21 2012-06-12 Thomson Licensing Sa Synchronizing apparatus for a compressed audio/video signal receiver
CN1436001A (zh) * 2002-01-28 2003-08-13 北京华诺信息技术有限公司 解码系统中实现视频与音频同步的方法
JP4555072B2 (ja) * 2002-05-06 2010-09-29 シンクロネイション インコーポレイテッド ローカライズされたオーディオ・ネットワークおよび関連するディジタル・アクセサリ
US20040034874A1 (en) * 2002-08-19 2004-02-19 Hord Phillip M. Pop-up PVR advertising
JP2004104730A (ja) * 2002-09-13 2004-04-02 Hitachi Kokusai Electric Inc 遅延時間検出方法及びav同期検出方法
US8366552B2 (en) * 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US8290353B2 (en) * 2003-02-27 2012-10-16 Panasonic Corporation Data processing device and method
CN100536555C (zh) * 2003-03-19 2009-09-02 松下电器产业株式会社 数据处理装置
EP1643768B1 (en) * 2003-06-30 2012-05-02 Panasonic Corporation Data processing device and data processing method
JP4369281B2 (ja) * 2004-04-13 2009-11-18 株式会社ケンウッド 映像音声伝送システム、映像音声送信装置、映像音声受信装置、および映像音声伝送方法
US7400653B2 (en) * 2004-06-18 2008-07-15 Dolby Laboratories Licensing Corporation Maintaining synchronization of streaming audio and video using internet protocol
KR20060132412A (ko) * 2005-06-18 2006-12-21 엘지전자 주식회사 이동 단말간 근거리 무선 통신을 통한 음원 재생 동기화방법
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
JP4184397B2 (ja) * 2005-11-11 2008-11-19 シャープ株式会社 映像音声処理システムおよびその制御方法、音声処理システム、映像音声処理システム制御プログラム、ならびに該プログラムを記録した記録媒体
US20070124792A1 (en) 2005-11-30 2007-05-31 Bennett James D Phone based television remote control
EP1793592A3 (en) 2005-11-30 2008-02-27 Broadcom Corporation Parallel television remote control
US9247175B2 (en) 2005-11-30 2016-01-26 Broadcom Corporation Parallel television remote control
US7852416B2 (en) 2005-11-30 2010-12-14 Broadcom Corporation Control device with language selectivity
US7827289B2 (en) 2006-02-16 2010-11-02 Dell Products, L.P. Local transmission for content sharing
US20080201751A1 (en) * 2006-04-18 2008-08-21 Sherjil Ahmed Wireless Media Transmission Systems and Methods
ITTO20060668A1 (it) * 2006-09-19 2008-03-20 Rai Radiotelevisione Italiana Spa Metodo per riprodurre una sequenza audio e/o video, dispositivo di riproduzione ed apparecchio riproduttore che lo utilizzano
US9467735B2 (en) * 2007-09-04 2016-10-11 Apple Inc. Synchronizing digital audio and analog video from a portable media device
US8743284B2 (en) * 2007-10-08 2014-06-03 Motorola Mobility Llc Synchronizing remote audio with fixed video
KR101450100B1 (ko) 2007-11-22 2014-10-15 삼성전자주식회사 멀티미디어기기 및 그의 동기설정방법
TW200942305A (en) * 2007-12-05 2009-10-16 Onlive Inc Apparatus for streaming databases serving real-time applications used through streaming interactive video
WO2009073827A1 (en) * 2007-12-05 2009-06-11 Onlive, Inc. System and method for compressing video based on detected intraframe motion
WO2009120301A2 (en) * 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8199833B2 (en) * 2008-08-25 2012-06-12 Broadcom Corporation Time shift and tonal adjustment to support video quality adaptation and lost frames
US8655143B2 (en) * 2009-04-01 2014-02-18 Cisco Technology, Inc. Supplementary buffer construction in real-time applications without increasing channel change delay
KR20100124909A (ko) * 2009-05-20 2010-11-30 삼성전자주식회사 이동통신 단말기에서 영상과 음성의 동기화를 위한 장치 및 방법
KR101797202B1 (ko) * 2009-11-13 2017-11-14 삼성전자주식회사 디스플레이 장치, 그 오디오 원격 출력방법, 모바일 기기, 및 그 오디오 출력방법
US8505054B1 (en) 2009-12-18 2013-08-06 Joseph F. Kirley System, device, and method for distributing audio signals for an audio/video presentation
US10080061B1 (en) * 2009-12-18 2018-09-18 Joseph F. Kirley Distributing audio signals for an audio/video presentation
US9237324B2 (en) 2010-10-22 2016-01-12 Phorus, Inc. Playback synchronization
US8929710B2 (en) * 2010-11-01 2015-01-06 Todd E. Fitzsimmons System and method for time shifting at least a portion of a video program
US9509945B2 (en) * 2011-02-08 2016-11-29 Texas Instruments Incorporated Automatic program clock reference correction
US8831577B2 (en) 2011-06-03 2014-09-09 Airborne Media Group, Inc. Venue-oriented commerce via mobile communication device
US9167296B2 (en) * 2012-02-28 2015-10-20 Qualcomm Incorporated Customized playback at sink device in wireless display system
JP5957760B2 (ja) * 2012-03-08 2016-07-27 パナソニックIpマネジメント株式会社 映像音声処理装置
US9736587B2 (en) 2012-08-31 2017-08-15 Qualcomm Incorporated Smart tool for headphones
KR102132309B1 (ko) * 2012-09-14 2020-07-09 디티에스, 인코포레이티드 재생 동기화
CN104813303B (zh) * 2012-09-14 2018-11-16 Dts(英属维尔京群岛)有限公司 回放同步
US8918822B2 (en) 2012-09-26 2014-12-23 Apple Inc. Displaying a synchronized instance of content on a portable electronic device
JP6625318B2 (ja) * 2013-08-29 2019-12-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法および受信方法
JP6197211B2 (ja) * 2013-09-30 2017-09-20 シャープ株式会社 映像音声配信システム、音声映像配信方法及びプログラム
US20160088339A1 (en) * 2014-01-20 2016-03-24 Panasonic Intellectual Property Management Co., Ltd. Reproducing device and method of reproducing data
JP6287315B2 (ja) * 2014-02-20 2018-03-07 富士通株式会社 動画像音声同期装置、動画像音声同期方法及び動画像音声同期用コンピュータプログラム
CN103905880A (zh) * 2014-03-13 2014-07-02 北京奇艺世纪科技有限公司 音视频数据的播放方法、智能电视和移动设备
CN103905877A (zh) * 2014-03-13 2014-07-02 北京奇艺世纪科技有限公司 音视频数据的播放方法、智能电视和移动设备
US20150281830A1 (en) 2014-03-26 2015-10-01 Bose Corporation Collaboratively Processing Audio between Headset and Source
US9509740B2 (en) * 2014-04-11 2016-11-29 Verizon Patent And Licensing Inc. Quality of experience and network optimization
US10178281B2 (en) * 2014-07-28 2019-01-08 Starkey Laboratories, Inc. System and method for synchronizing audio and video signals for a listening system
CN105847926A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种多媒体数据的同步播放方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006311006A (ja) 2005-04-27 2006-11-09 Victor Co Of Japan Ltd 映像・音声処理装置
US20150208161A1 (en) 2012-08-28 2015-07-23 Koninklijke Philips N.V. Audio forwarding device and corresponding method

Also Published As

Publication number Publication date
WO2018052881A1 (en) 2018-03-22
CN109906613A (zh) 2019-06-18
JP7120997B2 (ja) 2022-08-17
US20210144431A1 (en) 2021-05-13
JP2019532576A (ja) 2019-11-07
CN109906613B (zh) 2022-09-13
EP3513564A1 (en) 2019-07-24
US20180077443A1 (en) 2018-03-15
US11184661B2 (en) 2021-11-23
US10158905B2 (en) 2018-12-18
KR20190106986A (ko) 2019-09-18
US10757466B2 (en) 2020-08-25
US20190149874A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
KR102445593B1 (ko) 오디오 및 비디오의 멀티모드 동기식 렌더링
US20200014969A1 (en) User interface for multimode synchronous rendering of headphone audio and video
JP6509116B2 (ja) オーディオ転送デバイス及び対応する方法
US10097874B2 (en) System and method for monitoring media stream buffers of media output devices in order to synchronize media content output
US9479584B2 (en) Synchronous media rendering of demuxed media components across multiple devices
RU2510587C2 (ru) Синхронизация дистанционного аудио с фиксированным видео
US20130195119A1 (en) Feedback channel for wireless display devices
EP2262251A2 (en) Information processing apparatus, synchronization correction method and computer program
US9843489B2 (en) System and method for synchronous media rendering over wireless networks with wireless performance monitoring
WO2019226760A1 (en) Methods, systems, and media for synchronizing audio and video content on multiple media devices
KR20150055031A (ko) 재생 동기화
JP6232870B2 (ja) 無線通信システム、無線通信方法、プログラム、及び記録媒体
KR20070008069A (ko) 음성/영상신호의 동기화 장치 및 방법
US11606408B2 (en) Audio synchronization in wireless systems
US10805664B2 (en) Wireless audio synchronization
WO2013189435A2 (zh) 基于播放状态信息同步的处理方法、系统及相关装置
JP2010258489A (ja) 映像表示装置、受信装置、送受信システム、及び映像表示方法
JP5082715B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP7303670B2 (ja) Mmt受信機及びプログラム
WO2012066832A1 (ja) Ip受信装置、ip送信装置、およびts受信装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right