JP2019024214A - Reproduction synchronization - Google Patents

Reproduction synchronization Download PDF

Info

Publication number
JP2019024214A
JP2019024214A JP2018173888A JP2018173888A JP2019024214A JP 2019024214 A JP2019024214 A JP 2019024214A JP 2018173888 A JP2018173888 A JP 2018173888A JP 2018173888 A JP2018173888 A JP 2018173888A JP 2019024214 A JP2019024214 A JP 2019024214A
Authority
JP
Japan
Prior art keywords
media
clock offset
offset value
messages
network
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018173888A
Other languages
Japanese (ja)
Other versions
JP7391500B2 (en
Inventor
チュンホ リー
Chunho Lee
チュンホ リー
ダニー ラウ
Lau Dannie
ダニー ラウ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DTS Inc
Original Assignee
DTS Inc
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
Priority claimed from US14/025,658 external-priority patent/US9237324B2/en
Application filed by DTS Inc filed Critical DTS Inc
Publication of JP2019024214A publication Critical patent/JP2019024214A/en
Application granted granted Critical
Publication of JP7391500B2 publication Critical patent/JP7391500B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • 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/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • H04W56/0015Synchronization between nodes one node acting as a reference for the others

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

To provide medium streaming and network medium reproduction generally.SOLUTION: A method for synchronizing medium reproduction between a reception side medium device and a transmission side medium device includes a step of receiving multiple messages including multiple transmission side time stamps from a transmission side medium device in a reception side medium device, a step of generating multiple clock offset values based on the multiple transmission side time stamps and a clock of the reception side medium device, a step of identifying a minimum clock offset value from the multiple clock offset values, a step of determining first medium data for reproduction, and first presentation time related to the first medium data, and a step of rendering the first medium data at a first time matching the first representation time based on the minimum clock offset. A medium device is also provided.SELECTED DRAWING: Figure 1

Description

〔関連出願との相互参照〕
本出願は、2012年9月14日に出願された、Lee他に付与された「再生同期(Playback Synchronization)」という名称の米国仮特許出願第61/701,326号の利益を主張するものであり、この特許出願の開示は、その全体が本明細書に完全に記載されているかのように全ての目的で引用により本明細書に組み入れられる。
[Cross-reference with related applications]
This application claims the benefit of US Provisional Patent Application No. 61 / 701,326, filed September 14, 2012, entitled “Playback Synchronization” granted to Lee et al. The disclosure of this patent application is hereby incorporated by reference for all purposes as if fully set forth herein.

本出願は、2010年10月22日に出願された、Lau他に付与された「メディア分散アーキテクチャ」という名称の米国仮特許出願第61/405,835号の利益を主張する、2011年10月21日に出願された、Lau他に付与された「メディア分散アーキテクチャ」という名称の米国特許出願公開第13/278,799号の一部継続出願であり、これらの特許出願の開示は、その全体が本明細書に完全に記載されているかのように全ての目的で引用により本明細書に組み入れられる。   This application claims the benefit of US Provisional Patent Application No. 61 / 405,835, filed Oct. 22, 2010, entitled “Media Distributed Architecture” granted to Lau et al., October 2011. Which is a continuation-in-part of U.S. Patent Application Publication No. 13 / 278,799 filed 21 days and entitled "Media Distributed Architecture" granted to Lau et al. Are hereby incorporated by reference for all purposes as if fully set forth herein.

本明細書に開示する様々な例示的な実施形態は、一般にメディアストリーミング及びネットワークメディア再生に関する。   Various exemplary embodiments disclosed herein generally relate to media streaming and network media playback.

スマートフォン及びタブレットなどの電子装置が普及するにつれ、人々がこのような装置を使用して音楽及びビデオなどのコンテンツを再生する頻度が高くなっている。しばしば、これらのメディアソースは、ユーザが十分に満足するようにメディアを提供しないことがある。例えば、ディスプレイが小さすぎたり、或いはスピーカの音量が品質的又は音量的に不十分であったりすることがある。また、メディアソースからの出力を複数の人々が容易に又は快適に楽しむことができないこともある。さらに、ユーザは、メディアソースを持ち歩いていなければ、家庭内のあらゆる場所でメディアを楽しむことができない。   As electronic devices such as smartphones and tablets have become popular, the frequency with which people play content such as music and video using such devices is increasing. Often, these media sources may not provide the media to the user's satisfaction. For example, the display may be too small, or the speaker volume may be insufficient in terms of quality or volume. Also, the output from the media source may not be easily or comfortably enjoyed by multiple people. Furthermore, the user cannot enjoy the media everywhere in the home unless he / she carries the media source.

以下、様々な例示的な実施形態の概要を示す。以下の概要では、いくつかの単純化及び省略を行っていることがあるが、これは様々な例示的な実施形態のいくつかの態様を強調して紹介することを意図したものであり、本発明の範囲を限定するものではない。以下のセクションでは、当業者が本発明概念を実施して利用できるようにするのに適した好ましい例示的な実施形態の詳細な説明を行う。   The following is a summary of various exemplary embodiments. In the following summary, some simplifications and omissions may be made, which are intended to highlight and highlight some aspects of various exemplary embodiments. It is not intended to limit the scope of the invention. The following sections provide detailed descriptions of preferred exemplary embodiments suitable for enabling those of ordinary skill in the art to make and use the inventive concepts.

本明細書で説明する様々な実施形態は、送信側メディア装置と受信側メディア装置の間でメディア再生を同期させる方法に関連し、この方法は、受信側メディア装置において、送信側メディア装置から複数の送信者タイムスタンプを含む複数のメッセージを受け取るステップと、複数の送信者タイムスタンプと受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成するステップと、複数のクロックオフセット値から最小クロックオフセット値を識別するステップと、再生用の第1のメディアデータと、この第1のメディアデータに関連する第1の提示時刻とを定めるステップと、最小クロックオフセットに基づいて第1の提示時刻に一致する第1の時刻に、第1のメディアデータがレンダリングされるようにするステップとを含む。   The various embodiments described herein relate to a method of synchronizing media playback between a sending media device and a receiving media device, the method comprising: Receiving a plurality of messages including a plurality of sender timestamps, generating a plurality of clock offset values based on the plurality of sender timestamps and the receiving media device clock, and the plurality of clock offset values Identifying a minimum clock offset value; determining first media data for reproduction; and a first presentation time associated with the first media data; and a first presentation based on the minimum clock offset. The first media data is rendered at a first time that matches the time. And a step.

本明細書で説明する様々な実施形態は、メディア再生を送信側メディア装置と同期させるための受信側メディア装置に関連し、この受信側メディア装置は、再生用のメディアデータを記憶するように構成されたメモリと、送信側メディア装置と通信するように構成されたネットワークインターフェイスと、プロセッサとを備え、このプロセッサは、ネットワークインターフェイスを介して、送信側メディア装置から複数の送信者タイムスタンプを含む複数のメッセージを受け取り、複数の送信者タイムスタンプと受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成し、複数のクロックオフセット値から最小クロックオフセット値を識別し、再生用の第1のメディアデータと、この第1のメディアデータに関連する第1の提示時刻とを定め、最小クロックオフセット値に基づいて第1の提示時刻に一致する第1の時刻に、第1のメディアデータがレンダリングされるようにするように構成される。   Various embodiments described herein relate to a receiving media device for synchronizing media playback with a transmitting media device, the receiving media device configured to store media data for playback. And a network interface configured to communicate with the sending media device and a processor, the processor including a plurality of sender timestamps from the sending media device via the network interface. And generating a plurality of clock offset values based on the plurality of sender time stamps and the receiving media device clock, identifying a minimum clock offset value from the plurality of clock offset values, and 1 media data and associated with this first media data It defines a first presentation time, the first time that matches the first presentation time based on the minimum clock offset value, configured such that the first media data is to be rendered.

本明細書で説明する様々な実施形態は、受信側メディア装置によって実行される、送信側メディア装置と受信側メディア装置の間でメディア再生を同期させるための命令が符号化された非一時的機械可読記憶媒体に関連し、この媒体は、受信側メディア装置において、送信側メディア装置から複数の送信者タイムスタンプを含む複数のメッセージを受け取るための命令と、複数の送信者タイムスタンプと受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成するための命令と、複数のクロックオフセット値から最小クロックオフセット値を識別するための命令と、再生用の第1のメディアデータと、この第1のメディアデータに関連する第1の提示時刻とを定めるための命令と、最小クロックオフセット値に基づいて第1の提示時刻に一致する第1の時刻に、第1のメディアデータがレンダリングされるようにするための命令とを含む。   Various embodiments described herein are non-transitory machines encoded with instructions for synchronizing media playback between a sending media device and a receiving media device, executed by a receiving media device. In connection with a readable storage medium, the medium includes, at a receiving media device, instructions for receiving a plurality of messages including a plurality of sender timestamps from the transmitting media device, a plurality of sender timestamps and a receiving media An instruction for generating a plurality of clock offset values based on a clock of the apparatus, an instruction for identifying a minimum clock offset value from the plurality of clock offset values, first media data for reproduction, and Based on a command for determining a first presentation time associated with the first media data and a minimum clock offset value. First time that matches the first presentation time Te to, and instructions for the first media data is to be rendered.

様々な実施形態は、受信側メディア装置と送信側メディア装置の間の往復輸送から複数のタイムスタンプを取得するステップと、この複数のタイムスタンプに基づいて下限オフセット値を設定するステップと、最小クロックオフセット値を識別した後に、この最小クロックオフセット値が、送信側装置クロックと受信側装置クロックの間の実際のクロックオフセットの、下限オフセット値よりも良好な推定を表していると判断するステップをさらに含み、最小クロックオフセットに基づいて第1の提示時刻に一致する第1の時刻に、第1のメディアデータがレンダリングされるようにするステップは、最小クロックオフセット値が、送信側装置クロックと受信側装置クロックの間の実際のクロックオフセットの、下限オフセット値よりも良好な推定を表しているという判断に基づいて行われる。   Various embodiments include obtaining a plurality of time stamps from a round trip between a receiving media device and a sending media device, setting a lower limit offset value based on the plurality of time stamps, and a minimum clock. After identifying the offset value, further comprising determining that this minimum clock offset value represents a better estimate of the actual clock offset between the transmitting device clock and the receiving device clock than the lower limit offset value. Including causing the first media data to be rendered at a first time that coincides with the first presentation time based on the minimum clock offset, wherein the minimum clock offset value is the transmitter device clock and the receiver Better than the lower limit offset value of the actual clock offset between device clocks It is performed based on the determination that represents an estimated.

本明細書では、様々な実施形態について説明し、最小クロックオフセット値を識別するステップは、複数のクロックオフセット値のうちの第1のクロックオフセット値を生成するステップと、最小クロックオフセット値を第1のクロックオフセット値に等しく設定するステップと、最小クロックオフセット値を第1のクロックオフセット値に等しく設定した後に、複数のクロックオフセット値のうちの第2のクロックオフセット値を生成するステップと、第2のクロックオフセット値が最小クロックオフセット値よりも小さいと判定するステップと、第2のクロックオフセット値が最小クロックオフセット値よりも小さいという判定に基づいて、最小クロックオフセット値を第2のクロックオフセット値に等しく設定するステップとを含む。   Various embodiments are described herein, wherein identifying a minimum clock offset value includes generating a first clock offset value of the plurality of clock offset values, and determining a minimum clock offset value as a first. Setting a clock offset value equal to the first clock offset value, setting a minimum clock offset value equal to the first clock offset value, and generating a second clock offset value of the plurality of clock offset values; And determining that the second clock offset value is smaller than the minimum clock offset value, and determining that the second clock offset value is smaller than the minimum clock offset value. And setting the same.

様々な実施形態は、受信側メディア装置のクロックの値から最小オフセット値を減算することにより、クロックの値を修正するステップをさらに含み、最小クロックオフセット値に基づいて第1の提示時刻に一致する第1の時刻は、第1の提示時刻に一致するクロックの値を含む。   Various embodiments further include modifying the clock value by subtracting the minimum offset value from the clock value of the receiving media device to match the first presentation time based on the minimum clock offset value. The first time includes a clock value that matches the first presentation time.

様々な実施形態は、受信側メディア装置において、第2のメディアデータ、第2の提示時刻及び送信者タイプスタンプを含むメッセージを送信側メディア装置から受け取るステップと、送信者タイムスタンプに基づいてクロックオフセット値を生成するステップと、このクロックオフセット値が、受信側メディア装置のクロックと送信側メディア装置のクロックの間の実際のオフセットの最小クロックオフセット値よりも正確な表現であると判断するステップと、このクロックオフセット値に基づいて最小クロックオフセット値を調整するステップと、再生用の第3のメディアデータと、この第3のメディアデータに関連する第3の提示時刻とを定めるステップと、最小クロックオフセット値を調整した後に、この最小クロックオフセット値に基づいて第3の提示時刻に一致する第2の時刻に、第3のメディアデータがレンダリングされるようにするステップをさらに含む。   Various embodiments receive a message from a sending media device at a receiving media device that includes second media data, a second presentation time, and a sender type stamp, and a clock offset based on the sender timestamp. Generating a value; determining that this clock offset value is a more accurate representation of the minimum clock offset value of the actual offset between the receiving media device clock and the transmitting media device clock; Adjusting a minimum clock offset value based on the clock offset value; determining a third media data for reproduction; a third presentation time associated with the third media data; and a minimum clock offset. After adjusting the value, this minimum clock offset value The second time that matches the third presentation time based, further comprising a third media data is to be rendered.

本明細書では、様々な実施形態について説明し、クロックオフセット値が、受信側メディア装置のクロックと送信側メディア装置のクロックの間の実際のオフセットの最小クロックオフセット値よりも正確な表現であると判断するステップは、このクロックオフセット値がゼロよりも小さいと判断するステップを含み、このクロックオフセット値に基づいて最小クロックオフセット値を調整するステップは、クロックの値からオフセット値を減算することによって受信側メディア装置のクロックの値を修正するステップを含む。   Various embodiments are described herein and the clock offset value is more accurate than the minimum clock offset value of the actual offset between the receiving media device clock and the transmitting media device clock. The determining step includes determining that the clock offset value is less than zero, and adjusting the minimum clock offset value based on the clock offset value is received by subtracting the offset value from the clock value. Modifying the clock value of the side media device.

様々な実施形態は、複数のタイプスタンプのうちの少なくとも1つの送信者タイムスタンプを、送信側メディア装置の時間領域から受信側メディア装置の時間領域に変換するステップをさらに含み、複数の送信者タイムスタンプと受信側メディア装置のクロックとに基づいて複数のクロックオフセット値を生成するステップは、複数のタイムスタンプのうちの少なくとも1つの送信者タイムスタンプを、送信側メディア装置の時間領域から受信側メディア装置の時間領域に変換した後に、少なくとも1つの送信者タイムスタンプに基づいて少なくとも1つのクロックオフセット値を生成するステップを含む。   Various embodiments further comprise converting at least one sender time stamp of the plurality of type stamps from the time domain of the sending media device to the time domain of the receiving media device, wherein the plurality of sender times The step of generating a plurality of clock offset values based on the stamp and the clock of the receiving media device includes at least one sender time stamp of the plurality of time stamps from the time domain of the transmitting media device. Generating at least one clock offset value based on the at least one sender timestamp after conversion to the time domain of the device.

様々な実施形態について説明し、複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、方法は、第1の複数のメッセージが到着する間隔についての第1の測定値を生成するステップと、第1の複数のメッセージが到着する間隔についての第1の測定値が、ネットワークが不安定であることを示していると判断するステップと、送信側メディア装置に追加メッセージを送信するように指示するステップと、送信側メディア装置に追加メッセージを送信するように指示した後に、第2の複数のメッセージが到着する間隔についての第2の測定値を生成するステップと、第2の複数のメッセージが到着する間隔についての第2の測定値が、ネットワークが安定していることを示していると判断するステップとをさらに含み、複数のクロックオフセット値から最小クロックオフセット値を識別するステップは、第2の複数のメッセージに関連する複数のクロックオフセット値のうちの少なくとも1つのクロックオフセット値を利用するステップを含む。   Various embodiments are described, wherein the plurality of messages includes a first plurality of messages and a second plurality of messages, and the method includes a first measurement of an interval at which the first plurality of messages arrive. Generating, determining that the first measurement for the interval at which the first plurality of messages arrive indicates that the network is unstable, and transmitting an additional message to the transmitting media device Instructing the sending media device to send an additional message, generating a second measurement for the interval at which the second plurality of messages arrive, and Determining that the second measurement for the interval of arrival of the plurality of messages indicates that the network is stable. See, identifying a minimum clock offset value from a plurality of clock offset value includes a plurality of at least one step of using the clock offset value of the clock offset values associated with the second plurality of messages.

様々な実施形態について説明し、複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、方法は、送信側メディア装置によって第1の複数のメッセージを送信するステップと、送信側メディア装置により、第1の複数のメッセージの送信に関連するネットワーク性能についての第1の測定値を生成するステップと、ネットワーク性能についての第1の測定値が、ネットワークが不安定であることを示していると判断するステップと、ネットワーク性能についての第1の測定値が、ネットワークが不安定であることを示しているという判断に基づいて、送信側メディア装置によって第2の複数のメッセージを送信するステップと、送信側メディア装置により、第2の複数のメッセージの送信に関連するネットワーク性能についての第2の測定値を生成するステップと、ネットワーク性能についての第2の測定値が、ネットワークが安定していることを示していると判断するステップとをさらに含む。   Various embodiments are described, wherein the plurality of messages includes a first plurality of messages and a second plurality of messages, the method comprising: transmitting a first plurality of messages by a sending media device; Generating a first measurement value for network performance associated with transmission of the first plurality of messages by the side media device, and the first measurement value for network performance indicates that the network is unstable. Transmitting a second plurality of messages by the transmitting media device based on determining that the network performance is stable and determining that the first measurement of network performance indicates that the network is unstable. And a network associated with transmission of the second plurality of messages by the sending media device Further comprising generating a second measure for ability, a second measurement of the network performance, and the step of the network is determined to indicate that it is stable.

様々な例示的な実施形態をより良く理解するために、以下の添付図面を参照する。   For a better understanding of various exemplary embodiments, reference is made to the following accompanying drawings.

メディア再生のための例示的な環境を示す図である。FIG. 3 illustrates an exemplary environment for media playback. 仮想メディアネットワークを形成して動作させるための例示的な方法を示す図である。FIG. 2 illustrates an exemplary method for forming and operating a virtual media network. 例示的な仮想メディアネットワークを示す図である。FIG. 1 illustrates an example virtual media network. メディアソースの例示的なコンポーネント図である。FIG. 4 is an exemplary component diagram of a media source. メディアノードの例示的なコンポーネント図である。FIG. 3 is an exemplary component diagram of a media node. メディア装置の例示的なハードウェア図である。FIG. 3 is an exemplary hardware diagram of a media device. メディア信号をブロードキャストする例示的な方法を示す図である。FIG. 3 illustrates an exemplary method for broadcasting a media signal. 送信側メディア装置が受信側メディア装置に再生を同期させるための例示的な方法を示す図である。FIG. 6 illustrates an exemplary method for a sending media device to synchronize playback with a receiving media device. 受信側メディア装置が送信側メディア装置に再生を同期させるための例示的な方法を示す図である。FIG. 6 illustrates an exemplary method for a receiving media device to synchronize playback with a sending media device. メディアストリーミング中に受信側メディア装置がより良好な再生同期を取得するための例示的な方法を示す図である。FIG. 6 illustrates an exemplary method for a receiving media device to obtain better playback synchronization during media streaming. 下限オフセットを決定する例示的な方法を示す図である。FIG. 6 illustrates an exemplary method for determining a lower limit offset.

本明細書に示す説明及び図面では、様々な原理を例示する。当業者であれば、本明細書には明示的に説明又は図示していないが、これらの原理を具体化する、本開示の範囲に含まれる様々な構成を考案することができると理解されるであろう。本明細書で使用する「又は(or)」という用語は、(例えば「或いは(or else)」又は「これとは別に(in the alternative)」のように)特に示していない限り、非排他的or(すなわち、及び/又は(and/or))を意味する。また、本明細書で説明する様々な実施形態は、必ずしも互いに排他的なものではなく、本明細書で説明する原理を組み込んださらなる実施形態を生じるように組み合わせることもできる。   In the description and drawings presented herein, various principles are illustrated. Those skilled in the art will appreciate that although not explicitly described or illustrated herein, various configurations within the scope of the present disclosure can be devised that embody these principles. Will. As used herein, the term “or” is non-exclusive unless otherwise indicated (eg, “or else” or “in the alternative”). or (ie, and / or). In addition, the various embodiments described herein are not necessarily mutually exclusive and can be combined to yield further embodiments that incorporate the principles described herein.

本明細書で説明する様々な実施形態は、メディアコンテンツを分散させるためのアーキテクチャを利用する。有線又は無線メディアトランスポート技術を提供して、様々なメディア装置間の正確なタイミング同期を維持しながらメディアを複数の区域に同時送信できるようにする。ユーザは、スピーカ、ディスプレイ又はその他のレンダリング装置のネットワークを有することができ、どのレンダリング装置がアクティブにメディアを出力しているかを個別に選択することができる。このようなレンダリング装置、及び本明細書で説明するその他の装置は、仮想メディアネットワークに属することができる。   Various embodiments described herein utilize an architecture for distributing media content. Wired or wireless media transport technology is provided to allow media to be transmitted simultaneously to multiple areas while maintaining accurate timing synchronization between various media devices. The user can have a network of speakers, displays, or other rendering devices, and can individually select which rendering device is actively outputting media. Such rendering devices, and other devices described herein, can belong to a virtual media network.

仮想メディアネットワークによってレンダリングされるメディアは、メディアソースから生じることができる。メディアソースは、携帯電話機、タブレット、ステレオ、セットトップボックス、PC又はその他の装置とすることができる。仮想メディアネットワークにおけるメディアの送信方法は、補助ケーブルなどを介した有線とすることも、或いはBluetooth又はWiFiのような無線とすることもできる。スピーカ及びその他のレンダリング装置自体は、自己形成ネットワーク内で管理することができる。メディアは、メディアソースによってネットワークに導入することができ、エンドポイントネットワーク自体が、オーディオ/ビデオの分散、タイミング及びレンダリングを制御することができる。いくつかの実施形態では、ネットワークに導入される音声が、オーディオビデオ信号のオーディオ部分である。ビデオ信号は、(タブレットコンピュータなどの)メディアソース上で再生することができる。オーディオ信号は、ビデオ信号と同期状態を保つことができる。   Media rendered by a virtual media network can originate from a media source. The media source can be a mobile phone, tablet, stereo, set-top box, PC or other device. The media transmission method in the virtual media network may be wired via an auxiliary cable or the like, or may be wireless such as Bluetooth or WiFi. Speakers and other rendering devices themselves can be managed within a self-forming network. Media can be introduced into the network by media sources, and the endpoint network itself can control audio / video distribution, timing and rendering. In some embodiments, the voice introduced into the network is the audio portion of the audio video signal. The video signal can be played on a media source (such as a tablet computer). The audio signal can be kept synchronized with the video signal.

様々な実施形態では、ユーザが、メディアソースとして機能させるためのいずれかのメディアアプリケーションを選択することができる。例えば、ユーザは、MP3アプリケーション、インターネットラジオアプリケーションなどを選択することができる。ユーザは、次に自宅のリビングのスピーカなどの出力装置を選択して、この選択した出力装置にメディアが送信されるようにすることができる。オペレーティングシステムにより、選択した出力装置に音声を送信することができる。ユーザは、第2のアプリケーションを呼び出して、他のスピーカを仮想メディアネットワークに追加するとともに、スピーカの音量を制御することなどができる。いくつかの実施形態では、この第2のアプリケーションがメディアを修正することは決してない。ネットワーク内の各装置は、オーディオ/ビデオの分散、タイミング及びレンダリングに対処することができる。従って、メディアソースがこのような処理を抱え込まなくてもよい。さらに、このような構成では、ユーザが、メディアアプリケーションを修正する必要なく、あらゆる好みのメディアアプリケーションをメディアのソースとして選択することができる。   In various embodiments, a user can select any media application to function as a media source. For example, the user can select an MP3 application, an Internet radio application, or the like. The user can then select an output device such as a speaker in the living room so that the media is transmitted to the selected output device. The operating system can send audio to the selected output device. The user can call the second application to add another speaker to the virtual media network and control the volume of the speaker. In some embodiments, this second application will never modify the media. Each device in the network can handle audio / video distribution, timing and rendering. Therefore, the media source does not have to carry such processing. Further, such a configuration allows the user to select any preferred media application as the media source without having to modify the media application.

様々な実施形態では、仮想メディアネットワークを通じて分散されたメディアを同期状態に保つことができる。このような再生同期を達成するために、メディアデータを送信する様々なメディア装置は、関連するメディアをいつレンダリングすべきかを示すための、メディアデータのフレームに関連するタイムスタンプを含むことができる。このような機構を可能にするために、各メディア装置は、これらのメディア装置の内部クロック間の差分を考慮する方法を有することができる。例えば、2つのメディア装置が異なるクロック値で動作を開始することもあれば、或いはクロックがわずかに異なる速度で動作することに起因して、これらのクロック値が動作中にだんだんと離れて行くこともある。   In various embodiments, media distributed over a virtual media network can be kept in sync. In order to achieve such playback synchronization, various media devices that transmit media data can include a time stamp associated with the frame of media data to indicate when the associated media should be rendered. To enable such a mechanism, each media device can have a method that takes into account the differences between the internal clocks of these media devices. For example, two media devices may start to operate at different clock values, or these clock values will gradually move away during operation due to the clocks operating at slightly different speeds. There is also.

これまでに、いくつかのネットワーククロック同期法が開発されてきたが、このような方法は、ネットワーク遅延が比較的一定であり、従ってレンダリング処理の一部として容易に解決される有線ネットワークでしか信頼性がない。一方、WiFi又はBluetoothなどの無線ネットワークでは、ネットワーク遅延が短期間で大きく変化することにより、同期パケットが送信された時刻を推定する処理が複雑になることがある。本明細書で説明する様々な方法は、ネットワーククロック同期の処理に対するこのような可変遅延の影響を低減又は排除するクロック同期処理を実装する。例えば、一定期間にわたる複数の潜在的なクロックオフセット値を生成することにより、受信側装置が、この群から最小オフセット値を選択し、これによりネットワーク遅延の可変成分によって受けていた影響が最も少ないオフセット値を利用することができる。ネットワーククロック同期を改善するための様々なさらなる特徴については、以下でさらに詳細に説明する。   To date, several network clock synchronization methods have been developed, but such methods are only reliable on wired networks where the network delay is relatively constant and thus easily resolved as part of the rendering process. There is no sex. On the other hand, in a wireless network such as WiFi or Bluetooth, the process of estimating the time when a synchronization packet is transmitted may be complicated due to a large change in network delay in a short period. Various methods described herein implement a clock synchronization process that reduces or eliminates the effects of such variable delays on the network clock synchronization process. For example, by generating multiple potential clock offset values over a period of time, the receiving device selects the minimum offset value from this group and thereby the least affected by the network delay variable component Values can be used. Various additional features for improving network clock synchronization are described in further detail below.

本説明を通じて、以下の定義を使用する。
ブロードキャスター:仮想メディアネットワークのためにフォーマットされたメディアストリームを送信できるいずれかの装置、又はこのような装置内のブロードキャスト機構。
レンダラ:仮想メディアネットワークのためにフォーマットされたメディアストリームをレンダリングできるいずれかの装置、又はこのような装置内のレンダリング機構。
メディアノード:レンダラ又はブロードキャスターを含むいずれかの装置。いくつかの実施形態のメディアノードは、ネットワーク時間同期、及びメディアルーティング情報を含むネットワークの状態を維持する役割を担うことができる。
メディアソース:オリジナルデータをシンクに送信するいずれかの装置。例えば、携帯電話機、スマートフォン、タブレット、セットトップボックス、テレビ、DVD/Blu−Ray/その他のメディアプレーヤ、ステレオシステム、ビデオゲーム機、ラップトップ、デスクトップPC、サーバ、又はメディアデータを送信することができる他のいずれかの装置などの、事実上あらゆるタイプのハードウェアを含むことができる。
シンク:ソースからの発信メディアを受け取るいずれかの装置、又はメディア信号を受け取る装置内の機構。
ゲートウェイ対応メディアノード:シンクとブロードキャスターを組み合わせたいずれかの装置。ゲートウェイは、シンクを介してメディアを受け入れることができ、レンダラに向けて仮想メディアネットワーク内にメディアを再ブロードキャストすることができる。
仮想メディアネットワーク:少なくとも1つのゲートウェイを有する1又はそれ以上のノードの群。仮想メディアネットワークは、ユーザによって確立することができ、ネットワーク内のレンダリング装置間で同期されたメディア信号をレンダリングすることができる。なお、いくつかの実施形態では、たった1つのメディアノードのみが仮想メディアネットワークのアクティブなゲートウェイとして機能する。
メディア装置:例えばメディアノード又はメディアソースなどの、仮想メディアネットワークと連動して動作するいずれかの装置。
The following definitions are used throughout this description.
Broadcaster: Any device capable of transmitting a media stream formatted for a virtual media network, or a broadcast mechanism within such a device.
Renderer: Any device capable of rendering a media stream formatted for a virtual media network, or a rendering mechanism within such a device.
Media node: Any device that includes a renderer or broadcaster. The media nodes of some embodiments may be responsible for maintaining network state, including network time synchronization and media routing information.
Media source: Any device that sends original data to a sink. For example, mobile phones, smartphones, tablets, set-top boxes, televisions, DVD / Blu-Ray / other media players, stereo systems, video game consoles, laptops, desktop PCs, servers, or media data can be transmitted Virtually any type of hardware can be included, such as any other device.
Sink: Any device that receives outgoing media from a source or a mechanism within a device that receives media signals.
Gateway-compatible media node: Any device that combines a sink and a broadcaster. The gateway can accept the media through the sink and can rebroadcast the media into the virtual media network towards the renderer.
Virtual media network: A group of one or more nodes having at least one gateway. A virtual media network can be established by a user and can render media signals synchronized between rendering devices in the network. Note that in some embodiments, only one media node functions as the active gateway of the virtual media network.
Media device: Any device that operates in conjunction with a virtual media network, such as a media node or a media source.

ここで、同じ数字が同じ構成要素又はステップを示す図を参照して、様々な例示的な実施形態の広範な態様を開示する。   DETAILED DESCRIPTION The broad aspects of various exemplary embodiments are now disclosed with reference to the figures, wherein like numerals indicate like components or steps.

図1に、メディア再生のための例示的な環境100を示す。この例には、合計5つのネットワークメディアノード104a〜b、106a〜cが存在し、様々な例示的な実施形態は、これよりも少ない又はさらなるメディアノード(図示せず)を含むことができる。例示的な環境100は、2つの仮想メディアネットワークの形で構成されたものとして示している。図示のように、メディアソース102aは、一方の仮想メディアネットワークのメディア信号ソースとして機能し、メディアソース102bは、もう一方の仮想メディアネットワークのメディアソースとして機能するが、他の構成も可能である。メディア信号は、オーディオ又はビデオとすることができる。様々な実施形態では、メディア信号が、オーディオビデオ信号のオーディオ部分である。ビデオ信号は、メディアソース102a、b上で再生することができる。なお、例示的な実施形態では、異なる装置によって様々な信号がレンダリングされる時に、オーディオ信号がビデオ信号との同期状態を保つ。また、ビデオ信号は、仮想メディアネットワーク内の装置の1つ、又はメディアソースノード102a、b以外の何らかの装置に送信することもできる。様々な実施形態では、各仮想メディアネットワークが1つのゲートウェイ装置を含み、他の実施形態では、仮想メディアネットワークが複数のゲートウェイ装置を利用する。上述したように、ゲートウェイ装置は、メディア信号を受け取るためのシンク、及びブロードキャスターを有する。ゲートウェイ装置は、オーディオ及び/又はビデオをレンダリングするためのレンダラを有していても、又は有していなくてもよい。図示の例では、リビングルーム内の装置が、第1の仮想メディアネットワークのゲートウェイとして機能するが、ブロードキャスターを有する異なる装置がゲートウェイとして機能することもできる。   FIG. 1 illustrates an exemplary environment 100 for media playback. In this example, there are a total of five network media nodes 104a-b, 106a-c, and various exemplary embodiments may include fewer or additional media nodes (not shown). The exemplary environment 100 is shown as being configured in the form of two virtual media networks. As shown, media source 102a functions as a media signal source for one virtual media network and media source 102b functions as a media source for the other virtual media network, although other configurations are possible. The media signal can be audio or video. In various embodiments, the media signal is the audio portion of the audio video signal. The video signal can be played on the media sources 102a, b. Note that in the exemplary embodiment, the audio signal remains synchronized with the video signal when the various signals are rendered by different devices. The video signal can also be sent to one of the devices in the virtual media network or any device other than the media source nodes 102a, b. In various embodiments, each virtual media network includes one gateway device, and in other embodiments, the virtual media network utilizes multiple gateway devices. As described above, the gateway device has a sink for receiving a media signal and a broadcaster. The gateway device may or may not have a renderer for rendering audio and / or video. In the illustrated example, the device in the living room functions as the gateway of the first virtual media network, but a different device having a broadcaster can also function as the gateway.

いくつかの実施形態では、このシステムが、正確なタイミング同期を維持しながら複数の区域への同時メディア送信を可能にする。一例として、ユーザは、スピーカのネットワークを構成し、アクティブに再生を行っているスピーカを個別に選択して、これらの再生を同期させることができる。ネットワーク内へのメディアの送信方法は、補助ケーブルなどを介した有線とすることも、又はBluetooth、WiFiのような無線とすることも、又は別のネットワーク通信プロトコルとすることもできる。一例として、リビングルームのゲートウェイ104aが、ステレオ受信機108にメディア信号を提供するための補助アウトラインを有し、この結果、スピーカ110が、その補助ラインの1つによってステレオ受信機108に接続される。一方で、リビングルームのゲートウェイ104aは、無線送信を介してオフィスのレンダラ106a及びキッチンのレンダラ106bにメディア信号を提供することもできる。また、リビングルームのゲートウェイ104aは、独自のレンダラを有していても、又は有していなくてもよい。いくつかの実施形態では、ネットワークに属する様々なメディアノードが、異なるチャネルのメディアストリームを有し、これらをレンダリングする。例えば、メディアソースがビデオ信号をレンダリングし、第1のレンダラが左側スピーカチャネルのステレオミックスオーディオ信号をレンダリングし、第2のレンダラが右側スピーカチャネルのステレオミックスオーディオ信号をレンダリングし、ゲートウェイが、これらのビデオ信号と、両チャネルのステレオミックスオーディオ信号とをレンダリングすることができる。他の様々なチャネル方式、及びメディア装置間におけるこのようなチャネルの分散も明らかであろう。   In some embodiments, the system allows simultaneous media transmission to multiple areas while maintaining accurate timing synchronization. As an example, a user can configure a network of speakers, individually select speakers that are actively playing, and synchronize their playback. The method of transmitting media into the network can be wired via an auxiliary cable or the like, wireless such as Bluetooth or WiFi, or another network communication protocol. As an example, the living room gateway 104a has an auxiliary outline for providing media signals to the stereo receiver 108, so that the speaker 110 is connected to the stereo receiver 108 by one of the auxiliary lines. . Meanwhile, the living room gateway 104a can also provide media signals to the office renderer 106a and the kitchen renderer 106b via wireless transmission. The living room gateway 104a may or may not have its own renderer. In some embodiments, various media nodes belonging to the network have different channels of media streams and render them. For example, a media source renders a video signal, a first renderer renders a stereo mix audio signal for the left speaker channel, a second renderer renders a stereo mix audio signal for the right speaker channel, and the gateway A video signal and a stereo mix audio signal of both channels can be rendered. Various other channel schemes and the distribution of such channels among media devices will also be apparent.

いくつかの実施形態では、メディアノード104a〜b、106a〜c自体が自己形成ネットワークにおいて管理される。メディアノード104a〜b、106a〜cは、これら自体がオーディオ/ビデオの分散、タイミング及びレンダリングを制御することができる。従って、処理負荷の大部分がメディアソース102から取り除かれる。図1の例は、家庭環境に関連するものであるが、実施形態はこのように限定されるものではない。あらゆる環境において仮想メディアネットワークを展開することができる。   In some embodiments, the media nodes 104a-b, 106a-c themselves are managed in a self-forming network. The media nodes 104a-b, 106a-c themselves can control audio / video distribution, timing and rendering. Accordingly, most of the processing load is removed from the media source 102. The example of FIG. 1 relates to the home environment, but the embodiment is not limited in this way. Virtual media networks can be deployed in any environment.

図2に、仮想メディアネットワークを形成して動作させるための例示的な方法200を示す。ステップ202において、メディア装置が互いを発見し合い、装置ステータス情報を交換する。ステップ202は、例えばメディアノード104、106の電源がオンになった時に行うことができる。メディアノード104、106は、互いに異なる時点で電源オンされるので、このステップは継続的に実行することも、反復することも、或いは別様に進行中とすることもできる。いくつかの実施形態では、メディアノード104、106が、互いの存在、及び例えばソース、シンク、ブロードキャスター又はレンダラとして機能する能力などの能力を学習する「自己発見」プロトコルを実行する。交換される装置ステータス情報は、例えば、装置が仮想メディアネットワーク内で現在アクティブであるかどうか、このような仮想メディアネットワークの識別情報、装置が現在ゲートウェイとして機能しているかどうか、などの情報を含むこともできる。   FIG. 2 illustrates an exemplary method 200 for forming and operating a virtual media network. In step 202, media devices discover each other and exchange device status information. Step 202 can be performed, for example, when the media nodes 104 and 106 are powered on. Since the media nodes 104, 106 are powered on at different times, this step can be performed continuously, repeated, or otherwise in progress. In some embodiments, the media nodes 104, 106 execute a “self-discovery” protocol that learns about each other's presence and the ability to function as a source, sink, broadcaster, or renderer, for example. The exchanged device status information includes, for example, information such as whether the device is currently active in the virtual media network, identification information of such a virtual media network, whether the device is currently functioning as a gateway, etc. You can also.

ステップ204において、メディアソース102がゲートウェイメディアノード104と対になる。ゲートウェイとして機能する1つのメディアノード104は、ユーザが具体的に選択することも、或いはユーザの介入を伴わずに自動的に決定することもできる。例えば、スマートフォン102aのユーザがリビングルームのメディアノード104aを一次リスニング装置として選択し、この結果、このメディアノード104aがゲートウェイになることができる。いくつかの実施形態では、ゲートウェイメディアノード104が、そのステータスに基づいて、メディアソースノード102のための現在アクティブな出力装置として選択される。いくつかの実施形態では、ゲートウェイメディアノード104が、ゲートウェイとして機能しながらメディアソースノード102のアクティブな出力装置としても機能し、従って少なくともいくつかのチャネルのメディアデータをレンダリングする。いくつかの実施形態では、ゲートウェイメディアノード104が、メディアソース102に装置情報又は状態情報をレポートする。   At step 204, media source 102 is paired with gateway media node 104. One media node 104 acting as a gateway can be specifically selected by the user or can be determined automatically without user intervention. For example, the user of the smart phone 102a selects the media node 104a in the living room as the primary listening device, so that the media node 104a can be the gateway. In some embodiments, the gateway media node 104 is selected as the currently active output device for the media source node 102 based on its status. In some embodiments, the gateway media node 104 also functions as an active output device of the media source node 102 while functioning as a gateway, thus rendering media data for at least some channels. In some embodiments, the gateway media node 104 reports device information or status information to the media source 102.

ステップ206において、仮想メディアネットワークが形成される。ステップ206は、ユーザがメディアノード104、106を選択したことに応答して形成することができる。例えば、ユーザは、ユーザがメディアノード104、106を選択できるようにするメディアソース102上のソフトウェアプログラムにアクセスすることができる。なお、メディアノード104、106が既に異なる仮想メディアネットワークの一部である場合、このメディアノード104、106は、メディアソース102を介して、利用できないものとして示されることもある。これに加えて、又はこれとは別に、ユーザは、使用中のメディアノード104、106が現在の仮想メディアネットワークに含まれるように開放されることを要求することもできる。様々な実施形態では、ステップ206の結果、ゲートウェイメディアノード104が、仮想メディアネットワーク内の他のメディアノード104、106にメディア信号を転送するように指示される。   In step 206, a virtual media network is formed. Step 206 may be formed in response to the user selecting media node 104, 106. For example, the user can access a software program on the media source 102 that allows the user to select the media node 104, 106. Note that if the media nodes 104, 106 are already part of a different virtual media network, the media nodes 104, 106 may be shown as unavailable through the media source 102. In addition, or alternatively, the user may request that in-use media nodes 104, 106 be released for inclusion in the current virtual media network. In various embodiments, step 206 results in the gateway media node 104 being instructed to forward the media signal to other media nodes 104, 106 in the virtual media network.

ステップ208において、メディアソース102からゲートウェイメディアノード104にメディアを転送することができる。このステップ208は、このメディアソースに関連する出力装置上にメディアを提示することをユーザが選択したことに応答して開始することができる。例えば、ユーザは、メディアを再生するスマートフォン102a上でいずれかのアプリケーションを実行させることができる。ユーザは、次にゲートウェイメディアノード104を出力装置として選択し、このゲートウェイメディアノード104にメディアが転送されるようにすることができる。なお、このメディア転送は、オペレーティングシステム(OS)レベルで行うこともできる。この転送には、ユーザが仮想メディアネットワークのメディアソースとしてあらゆるメディアアプリケーションを選択できるという意味合いがある。   In step 208, media can be transferred from the media source 102 to the gateway media node 104. This step 208 may begin in response to the user selecting to present media on an output device associated with the media source. For example, the user can cause one of the applications to be executed on the smartphone 102a that plays back the media. The user can then select the gateway media node 104 as an output device so that media can be transferred to the gateway media node 104. This media transfer can also be performed at the operating system (OS) level. This transfer has the implication that the user can select any media application as the media source of the virtual media network.

ステップ210において、ゲートウェイメディアノード104は、仮想メディアネットワーク内の他のメディアノード104、106にメディア信号をブロードキャストすることができる。例えば、リビングルームのゲートウェイ104aは、スマートフォン102aから受け取ったメディア信号を、オフィスのレンダラ106a、キッチンのレンダラ106b、及びステレオ受信機108にブロードキャストすることができる。いくつかの実施形態では、各メディアノード104、106が、独自のユーザ制御可能なレベル(例えば、音量)でメディアを再生する。従って、メディアソース102からゲートウェイメディアノード104には、いくつかのコマンドを送信することができる。しかしながら、処理の大部分はゲートウェイが行うことができる。従って、メディアソース102が重い処理負荷で動きが取れなくなることはない。   In step 210, the gateway media node 104 can broadcast the media signal to other media nodes 104, 106 in the virtual media network. For example, the living room gateway 104a can broadcast the media signal received from the smartphone 102a to the office renderer 106a, the kitchen renderer 106b, and the stereo receiver 108. In some embodiments, each media node 104, 106 plays media at its own user-controllable level (eg, volume). Accordingly, several commands can be sent from the media source 102 to the gateway media node 104. However, most of the processing can be done by the gateway. Therefore, the media source 102 does not get stuck with a heavy processing load.

図3に、例示的な仮想メディアネットワーク300を示す。図示のように、メディアノード320、330は、メディア信号を受け取るためのシンク322、332と、メディア信号を別のメディアノード320、330、340に提供するためのブロードキャスター324、334とを有しているので、これらの2つのメディアノードがゲートウェイとして機能することができる。例示を目的として、メディアノード320、330、340から分離されたアクセスポイント350が存在する。なお、メディアノード320、330、340のうちの1つがアクセスポイントとして機能することもできる。   FIG. 3 illustrates an exemplary virtual media network 300. As shown, media nodes 320, 330 have sinks 322, 332 for receiving media signals and broadcasters 324, 334 for providing media signals to other media nodes 320, 330, 340. Thus, these two media nodes can function as gateways. For illustration purposes, there is an access point 350 that is separate from the media nodes 320, 330, 340. Note that one of the media nodes 320, 330, and 340 can function as an access point.

メディアノード320、330のいくつかは、ブロードキャスター324、334を含む。本明細書では、このようなノードをブロードキャスティングノードと呼ぶことができる。ブロードキャスター324、334は、ハードウェア又はソフトウェアのいずれかの組み合わせによって実装することができる。様々な実施形態では、ブロードキャスター324、334が、他のメディアノード320、330、340によって理解されるエアタイムブロードキャストフォーマットでメディアを送信する。なお、このフォーマットは、メディアソース310からメディア360を送信するために使用するフォーマットとは異なることができる。ブロードキャスター324、334及びレンダラ326、336は、ローカル再生を遠隔レンダラ上の再生と同期できるように同じメディアノード320、330内に共存することができる。ソースの導入は、ソース−シンクのリンクを介して行うことができる。ソースからシンクへの送信とは異なり、同期再生を用いたポイントツーマルチポイントメディア送信にはエアタイムブロードキャストを使用することができる。   Some of the media nodes 320, 330 include broadcasters 324, 334. In this specification, such a node can be referred to as a broadcasting node. Broadcasters 324 and 334 can be implemented by any combination of hardware or software. In various embodiments, broadcasters 324, 334 transmit media in an airtime broadcast format understood by other media nodes 320, 330, 340. Note that this format can be different from the format used to transmit media 360 from media source 310. Broadcasters 324, 334 and renderers 326, 336 can coexist in the same media node 320, 330 so that local playback can be synchronized with playback on a remote renderer. The introduction of the source can be done via a source-sink link. Unlike source-to-sink transmission, airtime broadcast can be used for point-to-multipoint media transmission using synchronized playback.

上述したように、ゲートウェイ対応メディアノード320、330は、シンク322、332とブロードキャスター324、336の組み合わせを有する。いくつかの実施形態では、ゲートウェイ320、330が、メディアソース310からメディアを受け取り、このメディアを仮想メディアネットワークの他のメディアノード320、330、340と互換性のあるフォーマットで再ブロードキャストする。ゲートウェイ320、330は、レンダラ326、336も含む。様々な実施形態では、ゲートウェイメディアノード320、330がエンドポイントであると考えられる。   As described above, the gateway-capable media nodes 320 and 330 have a combination of sinks 322 and 332 and broadcasters 324 and 336. In some embodiments, the gateways 320, 330 receive media from the media source 310 and rebroadcast the media in a format compatible with other media nodes 320, 330, 340 in the virtual media network. The gateways 320, 330 also include renderers 326, 336. In various embodiments, gateway media nodes 320, 330 are considered endpoints.

ネットワーク上には、複数のゲートウェイ対応メディアノード320、330が存在することができる。いくつかの実施形態では、ゲートウェイメディアノード320、330が、メディアソース310が使用するのに最適なゲートウェイを決定するための選択方法を利用する。例えば、レンダラ326、336を有するメディアノード320、330の一方のみがメディアソース310にとってアクティブである場合、このレンダリングノードも、他のソースのネットワーク帯域幅を節約する最適なゲートウェイになり得る。一方で、メディアソース310にとって複数のレンダラがアクティブである場合、最も強い又は最も良好なネットワーク接続を有するゲートウェイが最適なゲートウェイになり得る。最適な候補を識別するための選択方式を行い、必要であれば異なるゲートウェイ320、330に対してストリームハンドオフを行うことができ、この場合、元々のゲートウェイ320、330は、ソース310のシンクになることができる。このストリームハンドオフは、ストリームの構成中又はストリームの最中に行うことができる。アクティブなゲートウェイが機能しなくなった場合、ネットワークは自己回復を行い、新たなゲートウェイを選択してエアタイムブロードキャストストリームを再設定することができる。   There can be a plurality of gateway-compatible media nodes 320, 330 on the network. In some embodiments, the gateway media nodes 320, 330 utilize a selection method for determining the best gateway for the media source 310 to use. For example, if only one of the media nodes 320, 330 with renderers 326, 336 is active for the media source 310, this rendering node may also be the optimal gateway that saves the network bandwidth of the other source. On the other hand, if multiple renderers are active for media source 310, the gateway with the strongest or best network connection may be the optimal gateway. A selection scheme for identifying the best candidate can be performed, and if necessary, a stream handoff can be performed for different gateways 320, 330, where the original gateway 320, 330 becomes a sink for the source 310. be able to. This stream handoff can be done during the construction of the stream or during the stream. If the active gateway fails, the network can self-heal and select a new gateway to reconfigure the airtime broadcast stream.

メディアノード320、330、340のいくつかは、レンダラ326、336、346を含む。本明細書では、このようなメディアノード320、330、340をレンダリングノードと呼ぶこともできる。レンダラ326、336、346は、ハードウェア又はソフトウェアのいずれかの組み合わせによって実装することができる。メディア信号にオーディオの例を使用した場合、レンダラ326、336、346は、内部的に給電されるスピーカを通じて、又は別の増幅器/スピーカ装置へのアナログ又はデジタル出力を介して、メディアストリームを復号して再生することができる。ビデオの場合、レンダラ326、336、346は、内部的に給電されるディスプレイを通じて、或いは別のディスプレイ又はディスプレイを有する又は駆動する装置へのアナログ又はデジタル出力を介して、メディアストリームを復号して再生することができる。様々な実施形態では、レンダラ326、336、346を含むメディアノード320、330、340が、仮想ウォールクロックの作成、維持及び分散をサポートする。レンダラ326、336、346は、このウォールクロックを用いて、指定されたタイムスタンプ時にエアタイムストリームフォーマットでストリームを正確にレンダリングすることができる。   Some of the media nodes 320, 330, 340 include renderers 326, 336, 346. In this specification, such media nodes 320, 330, and 340 may be referred to as rendering nodes. The renderers 326, 336, 346 can be implemented by any combination of hardware or software. When using the audio example for a media signal, the renderers 326, 336, 346 decode the media stream through internally powered speakers or via analog or digital output to another amplifier / speaker device. Can be played. In the case of video, the renderers 326, 336, 346 decode and play the media stream through an internally powered display, or through an analog or digital output to another display or device having or driving the display. can do. In various embodiments, media nodes 320, 330, 340, including renderers 326, 336, 346, support the creation, maintenance, and distribution of virtual wall clocks. The renderers 326, 336, 346 can use this wall clock to accurately render the stream in the air time stream format at the specified time stamp.

図3の例では、メディアソース310と、ゲートウェイメディアノード320内のシンク322との間に接続が存在する。メディア360は、ゲートウェイメディアノード320内のレンダラ326によって再生される。ユーザは、この接続を確立するために、メディアソース310のための出力装置としてゲートウェイメディアノード320を選択しておくことができる。例えば、メディアソース310は、オーディオを送信すべきスピーカをユーザが選択できるようにする携帯電話機とすることができる。この選択されたスピーカに、携帯電話機によって再生されているあらゆるオーディオを送信することができる。従って、ゲートウェイメディアノード320には、どのアプリケーション(例えば、インターネットラジオ、MP3、その他)がオーディオを提供しているかに関わらずオーディオを転送することができる。なお、この転送を行うために、オーディオを提供しているアプリケーションに変更を加える必要はないと考えてよい。メディアソース310とゲートウェイメディアノード320の間の接続は、無線であっても、又は有線であってもよい。様々な実施形態では、この接続が無線Bluetooth接続である。しかしながら、Bluetooth以外の無線プロトコルを使用することもできる。   In the example of FIG. 3, a connection exists between the media source 310 and the sink 322 in the gateway media node 320. Media 360 is played by renderer 326 in gateway media node 320. The user may have selected the gateway media node 320 as an output device for the media source 310 to establish this connection. For example, media source 310 may be a mobile phone that allows a user to select a speaker to which audio should be transmitted. Any audio being played by the mobile phone can be transmitted to the selected speaker. Thus, audio can be transferred to the gateway media node 320 regardless of which application (eg, Internet radio, MP3, etc.) is providing audio. In order to perform this transfer, it may be considered that there is no need to change the application providing the audio. The connection between the media source 310 and the gateway media node 320 may be wireless or wired. In various embodiments, this connection is a wireless Bluetooth connection. However, wireless protocols other than Bluetooth can also be used.

メディア360をメディアノード330のレンダラ336及びメディアノード340のレンダラ346に送信するには、メディアソース310とゲートウェイメディアノード320のシンク322との間の接続に加えて、メディアノード320のブロードキャスター324が使用される。この例では、アクセスポイント350が仲介装置として機能する。しかしながら、アクセスポイント350は必須条件でなくてもよい。様々な実施形態では、メディアノード320がアクセスポイントとして機能する。メディアソース310からメディアノード330及びメディアノード340への接続は、メディアソース310とメディアノード320の間の接続と同様の形で確立しておくことができる。ユーザは、メディアノード330、340を仮想メディアネットワーク300の一部として確立しておくこともできる。メディアソース310は、どのメディアノード320、330、340を仮想ネットワークに追加すべきかをユーザが選択できるようにするソフトウェアアプリケーションを有することができる。このアプリケーションは、仮想メディアネットワークのアクティブな部分である他のメディアノード330、340にメディア信号を転送するようにメディアノード320に指示するコマンドをメディアノード320に送信することができる。メディアノード320は、メディア信号の再フォーマット、転送、メディアノード間の同期再生などの詳細に対処することができる。従って、メディアソース310が重い処理を負わされることはない。   In addition to the connection between the media source 310 and the sink 322 of the gateway media node 320, the broadcaster 324 of the media node 320 transmits the media 360 to the renderer 336 of the media node 330 and the renderer 346 of the media node 340. used. In this example, the access point 350 functions as an intermediary device. However, the access point 350 may not be a necessary condition. In various embodiments, the media node 320 functions as an access point. Connections from the media source 310 to the media node 330 and the media node 340 can be established in a manner similar to the connection between the media source 310 and the media node 320. The user can also establish media nodes 330, 340 as part of the virtual media network 300. Media source 310 may have a software application that allows a user to select which media nodes 320, 330, 340 should be added to the virtual network. The application can send a command to the media node 320 that instructs the media node 320 to forward the media signal to other media nodes 330, 340 that are active portions of the virtual media network. The media node 320 can handle details such as media signal reformatting, forwarding, and synchronized playback between media nodes. Thus, the media source 310 is not burdened with heavy processing.

仮想メディアネットワーク300は、1つの考えられる装置の組の1つの考えられる構成にすぎないと理解されるであろう。様々な別のメディアネットワーク300は、これよりも少ない、又はさらなる装置を含むことができ、異なる形でメディアを分散させることができる。例えば、メディアソース310がアクセスポイントに直接メディアを送信することもでき、メディアノード330がメディアノード320の代わりにゲートウェイとして機能することもでき、メディアノード340が仮想ネットワークに参加しなくてもよい。様々な別の構成も明らかになるであろう。   It will be understood that the virtual media network 300 is only one possible configuration of one possible set of devices. Various other media networks 300 can include fewer or additional devices and can distribute media in different ways. For example, media source 310 may send media directly to the access point, media node 330 may function as a gateway instead of media node 320, and media node 340 may not participate in the virtual network. Various other configurations will also be apparent.

上述したように、メディアソース310は、仮想メディアネットワーク300にメディア360を導入することができる。一例として、PC又はスマートフォンが挙げられる。利用可能なメディア導入方法しては、アナログ送信又はデジタル送信をサポートするケーブル、Bluetooth及びWiFiを挙げることができる。いくつかの実施形態では、メディアソース310が、仮想メディアネットワークとの互換性があるフォーマットでメディアデータを送信するブロードキャスターである。他の実施形態では、メディアソース310のブロードキャスト機能が、技術的な限界によって制限される。例えば、多くの電話のセキュリティモデルは、オーディオドライバがサードパーティによって修正されるのを防ぐことができる。また、メディアソース310の装置自体が、利用可能な処理帯域幅又はネットワーク帯域幅を有していない場合もある。さらに、いくつかの実施形態では、少なくとも1つのエンドポイントが最大級の忠実性までレンダリングを行えるように、メディアソースの初期リンクのQoSレベルが他のエンドポイントよりも高いQoSを利用する。   As described above, the media source 310 can introduce the media 360 into the virtual media network 300. An example is a PC or a smartphone. Available media introduction methods include cables that support analog or digital transmission, Bluetooth, and WiFi. In some embodiments, the media source 310 is a broadcaster that transmits media data in a format compatible with the virtual media network. In other embodiments, the broadcast capability of the media source 310 is limited by technical limitations. For example, many phone security models can prevent audio drivers from being modified by third parties. Also, the media source 310 device itself may not have available processing bandwidth or network bandwidth. Further, in some embodiments, the media source's initial link QoS level utilizes a higher QoS than other endpoints so that at least one endpoint can render to the highest degree of fidelity.

なお、メディアソース310からシンク322への送信には、多くのフォーマット及び接続を使用することができる。メディアソース310は、いくつかの非限定的な例として、有線、BT A2DP、又はWi−Fiを用いた特定のプロトコルを介してシンク322への送信を行うことができる。WiFiプロトコルは、品質とレイテンシの間のトレードオフをもたらすように、又は精度を保証するように設計することができる。例えば、このプロトコルは、データのエラーを検出して再送信を要求することができる。多くの場合、このことはブロードキャストの目的ではないかもしれないが、ブロードキャストの前に確実にメディアが到着することが重要である。本明細書に開示する実施形態は、既存の装置との互換性を維持する。   Note that many formats and connections can be used for transmission from the media source 310 to the sink 322. Media source 310 may transmit to sink 322 via a specific protocol using wired, BT A2DP, or Wi-Fi, as some non-limiting examples. The WiFi protocol can be designed to provide a trade-off between quality and latency, or to ensure accuracy. For example, the protocol can detect a data error and request a retransmission. In many cases this may not be the purpose of the broadcast, but it is important to ensure that the media arrives before the broadcast. The embodiments disclosed herein maintain compatibility with existing devices.

様々な実施形態では、このネットワークが、標準的なWi−Fiインフラストラクチャに基づく。各メディアノードはアクセスポイント350に接続することができ、このアクセスポイント350においてDHCPを介してIPアドレスを要求する。いくつかのノード310、320、330は、無線アクセスキーの入力を可能にするUI(ディスプレイ、キーボードエントリ、その他)を有していないこともある。このような場合、WPS−PBCを用いて接続を行うことができる。他の方法としては、ユーザがGUI対応装置からエンドポイントに直接接続し、ノードによって提供されるウェブページ、又はノードと直接通信するアプリケーションページを介してネットワークパラメータを入力するアドホックモードを挙げることができる。別の方法は、電話機又はその他の装置上で実行されるアプリケーションがBluetoothを介してメディアノードと通信することである。アプリケーションは、どのアクセスポイントで接続を行うべきか、及び対応するネットワークアクセスコードをユーザに指示することができる。いくつかの実施形態では、このセットアップ段階中に、ユーザによってメディアノード320、330、340に名前が提供される。   In various embodiments, this network is based on a standard Wi-Fi infrastructure. Each media node can connect to an access point 350, which requests an IP address via DHCP. Some nodes 310, 320, 330 may not have a UI (display, keyboard entry, etc.) that allows entry of wireless access keys. In such a case, connection can be performed using WPS-PBC. Another method may be an ad hoc mode in which a user connects directly to an endpoint from a GUI-enabled device and enters network parameters via a web page provided by the node or an application page that communicates directly with the node. . Another way is for an application running on the phone or other device to communicate with the media node via Bluetooth. The application can instruct the user which access point to connect to and the corresponding network access code. In some embodiments, names are provided by the user to the media nodes 320, 330, 340 during this setup phase.

アクセスポイント350などのインフラストラクチャが存在しない場合、あるノードが自らを仮想アクセスポイントに変化させることができる。他のノードは、アクセスポイント350を発見し、これに接続して仮想ネットワークを形成することができる。WPS−PBC及びアドホック法を用いてセキュアな接続を行うことができる。   In the absence of an infrastructure such as access point 350, a node can turn itself into a virtual access point. Other nodes can discover the access point 350 and connect to it to form a virtual network. A secure connection can be made using WPS-PBC and the ad hoc method.

図4は、メディアソース400の例示的なコンポーネント図である。メディアソース400は、例示的な環境100のメディアソース102a、b、又は例示的な仮想メディアネットワーク300のメディアソース310のいずれかに対応することができる。メディアソース400は、ネットワークインターフェイス410を含むことができる。様々な実施形態では、ネットワークインターフェイス410が複数の別個のインターフェイスを含む。例えば、ネットワークインターフェイス410は、WiFi対応インターフェイス及びBluetooth対応インターフェイスを含むことができる。これに加えて、又はこれとは別に、ネットワークインターフェイス410は、他のいずれかのプロトコルに対応するインターフェイスを含むこともできる。この例では、ネットワークインターフェイス410のBluetooth対応インターフェイスを用いてメディア信号(オーディオストリーム又はビデオストリームなど)を送信することができる。ネットワークインターフェイス410のWiFi対応インターフェイスを用いて、仮想メディアネットワークを制御するためのコマンドを送信することもできる。   FIG. 4 is an exemplary component diagram of media source 400. The media source 400 may correspond to either the media source 102a, b of the example environment 100 or the media source 310 of the example virtual media network 300. Media source 400 may include a network interface 410. In various embodiments, the network interface 410 includes a plurality of separate interfaces. For example, the network interface 410 may include a WiFi compatible interface and a Bluetooth compatible interface. In addition or alternatively, the network interface 410 may include an interface corresponding to any other protocol. In this example, a media signal (such as an audio stream or a video stream) can be transmitted using the Bluetooth compatible interface of the network interface 410. A command for controlling the virtual media network can also be transmitted using the WiFi compatible interface of the network interface 410.

ユーザは、仮想ネットワークメディアアプリケーション420にアクセスして仮想メディアネットワークを制御することができる。一例として、仮想ネットワークメディアアプリケーション420は、ユーザがメディアノード104、106を選択してその音量を制御すること、再生することなどを可能にするユーザインターフェイスを提示することができる。いくつかの実施形態では、ネットワークのマスター音量、及び各メディアノード104、106の個別音量が存在する。   A user can access the virtual network media application 420 to control the virtual media network. As an example, virtual network media application 420 may present a user interface that allows a user to select media nodes 104, 106 to control their volume, play, and so on. In some embodiments, there is a master volume for the network and an individual volume for each media node 104,106.

メディアソースアプリケーション430は、メディアソース400上でオーディオを再生できるいずれかのアプリケーションとすることができる。例えば、メディアソースアプリケーション430は、MP3プレーヤ、インターネットオーディオ、ウェブブラウザなどとすることができる。様々な実施形態では、ユーザによって選択されたあらゆる出力装置上でメディアが再生される。この出力装置の選択は、オペレーティングシステム(OS)440の制御によって行うことができる。例えば、OS440は、ユーザが出力装置を選択できるようにするポップアップウィンドウを提供することができる。メディアノード104、106の一方又は両方が選択肢として表示される。メディアノード104、106の一方を選択することにより、この選択されたメディアノード104、106に、メディアソース400からネットワークインターフェイス410を介してオーディオアプリケーションに関連するメディア信号が送信される。いくつかの実施形態では、メディアライブラリ450を用いてメディアを復号する。メディアライブラリは、復号されたメディアをネットワークメディアドライバ445に送信し、このネットワークメディアドライバ445が、選択された出力装置にメディア信号を送信する。メディアノード104、106が出力装置として選択された場合、ネットワークインターフェイス450を介してメディア信号が送信される。いくつかの実施形態では、ネットワークメディアドライバ445がBluetoothドライバである。しかしながら、ネットワークメディアドライバ445は、あらゆるプロトコルに対応することができる。   The media source application 430 may be any application that can play audio on the media source 400. For example, the media source application 430 can be an MP3 player, Internet audio, a web browser, or the like. In various embodiments, the media is played on any output device selected by the user. This output device selection can be performed under the control of an operating system (OS) 440. For example, the OS 440 can provide a pop-up window that allows the user to select an output device. One or both of the media nodes 104, 106 are displayed as options. By selecting one of the media nodes 104, 106, a media signal associated with the audio application is transmitted from the media source 400 to the selected media node 104, 106 via the network interface 410. In some embodiments, the media library 450 is used to decrypt the media. The media library transmits the decrypted media to the network media driver 445, and the network media driver 445 transmits the media signal to the selected output device. When the media node 104 or 106 is selected as an output device, a media signal is transmitted via the network interface 450. In some embodiments, the network media driver 445 is a Bluetooth driver. However, the network media driver 445 can support any protocol.

なお、上述の実施形態では、仮想メディアアプリケーション420がメディア信号に触れることは決してない。これにより、メディアソース400のための適当な出力装置を選択することによってメディア信号をメディアノード104、106に送信する際に、あらゆるメディアソース430を使用できるという利点をもたらすことができる。従って、仮想ネットワークメディアアプリケーション420のいくつかの実施形態は、あらゆるメディアソースアプリケーション430と互換性がある。さらに、メディアソースアプリケーション430を変更する必要もない。   Note that in the above embodiment, the virtual media application 420 never touches the media signal. This can provide the advantage that any media source 430 can be used in sending media signals to the media nodes 104, 106 by selecting the appropriate output device for the media source 400. Thus, some embodiments of the virtual network media application 420 are compatible with any media source application 430. Further, there is no need to change the media source application 430.

上述したように、ゲートウェイメディアノード104のいくつかの実施形態は、メディア信号が仮想メディアネットワークに適合するようにメディア信号の再フォーマット及び処理を行うことができる。従って、ゲートウェイメディアノード104は、メディアソース102から処理のほとんどを解放することができる。   As described above, some embodiments of the gateway media node 104 may reformat and process the media signal such that the media signal is compatible with the virtual media network. Thus, the gateway media node 104 can release most of the processing from the media source 102.

メディアソース400は1つの例を示すものであり、本明細書で説明する方法及び技術を実装した状態でメディアソース400に多くの修正を行うことができると理解されるであろう。例えば、いくつかの実施形態では、ネットワークメディアドライバ445が仮想ネットワークメディアドライバを含み、仮想ネットワークメディアアプリケーション420が存在しなくてもよい。このような実施形態では、ユーザが仮想メディアネットワークドライバ445をインストールして、メディアノード104、106へのメディア信号の送信を支援することができる。ユーザは、メディアノード104、106にメディア信号を送信したいと望む場合、OS440によって提示されたインターフェイス内のメディアノードを単純に選択する。これにより、仮想ネットワークメディアドライバ445が選択される。例えば、仮想ネットワークメディアドライバ445には、メディアライブラリ450からメディア信号を提供することができる。上記の例と同様に、メディアソースアプリケーション430は、メディアの再生に使用されるあらゆるアプリケーションとすることができる。   It will be appreciated that the media source 400 is one example and that many modifications may be made to the media source 400 with the implementation of the methods and techniques described herein. For example, in some embodiments, the network media driver 445 may include a virtual network media driver and the virtual network media application 420 may not be present. In such embodiments, a user can install a virtual media network driver 445 to assist in sending media signals to the media nodes 104, 106. If the user wishes to send a media signal to the media nodes 104, 106, he simply selects the media node in the interface presented by the OS 440. Thereby, the virtual network media driver 445 is selected. For example, a media signal can be provided from the media library 450 to the virtual network media driver 445. Similar to the above example, the media source application 430 can be any application used to play media.

仮想ネットワークメディアアプリケーション420は、上述したようなものとすることができる。例えば、仮想ネットワークメディアアプリケーション420は、仮想ネットワークに追加するメディアノード104、106をユーザが選択してネットワークを制御するためのインターフェイスを提供することができる。いくつかの実施形態では、仮想ネットワークメディアアプリケーション420の機能を仮想ネットワークメディアドライバ445に組み入れることができるので、仮想ネットワークメディアアプリケーション420は任意である。   The virtual network media application 420 can be as described above. For example, the virtual network media application 420 may provide an interface for a user to select media nodes 104, 106 to add to the virtual network and control the network. In some embodiments, virtual network media application 420 is optional because the functionality of virtual network media application 420 can be incorporated into virtual network media driver 445.

また、コマンドチャネルを用いたコマンドの送信、及びデータチャネルを用いたメディア信号の送信は、ネットワークインターフェイス410を介して同じプロトコルを使用して行うことができる。例えば、コマンド及びデータの両方を、WiFiプロトコル又はBluetoothプロトコルに従って送信することができる。或いは、上述したように、異なるプロトコルに従ってコマンド及びデータを送信することもできる。   The command transmission using the command channel and the media signal transmission using the data channel can be performed using the same protocol via the network interface 410. For example, both commands and data can be transmitted according to the WiFi protocol or the Bluetooth protocol. Alternatively, as described above, commands and data can be transmitted according to different protocols.

なお、OS440にドライバ445を組み込むことにより、あらゆるメディアソースアプリケーション430からのメディア信号をメディアノード104、106に送信することができる。ユーザは、メディアノード104、106の一方を選択するだけでよい。これに応答して、仮想ネットワークメディアドライバ445が使用される。従って、この仮想メディアネットワークは、メディアソース400上で実行されているあらゆるメディアソースアプリケーション430と共に使用することができる。   Note that by incorporating the driver 445 into the OS 440, media signals from any media source application 430 can be transmitted to the media nodes 104 and 106. The user need only select one of the media nodes 104, 106. In response, the virtual network media driver 445 is used. Thus, this virtual media network can be used with any media source application 430 running on the media source 400.

いくつかの実施形態では、メディアソースアプリケーション430が仮想ネットワークメディアアプリケーション420に組み込まれる。いくつかのこのような実施形態では、メディアソースアプリケーション430によって再生されるあらゆるメディアがメディアノード104、106に送信される。   In some embodiments, the media source application 430 is incorporated into the virtual network media application 420. In some such embodiments, any media played by the media source application 430 is sent to the media nodes 104,106.

様々な実施形態では、仮想メディアネットワークに属するメディアソース400及びメディアノード104、106によって同時にメディアがレンダリングされる。例えば、メディアソース400は、メディアのビデオチャネルをレンダリングすることができ、メディアノード104、106は、メディアのオーディオチャネルをレンダリングすることができる。いくつかのこのような実施形態では、様々なメディアチャネルが同期状態に保たれる。例えば、メディアソース400は、メディアノード104、106がいつメディアデータをレンダリングすべきかを示すタイプスタンプをメディアデータと共に送信することができる。同様に、ゲートウェイ104も、メディアデータを他のメディアノード104、106に転送する際に、このデータに関連するタイムスタンプを含めることができる。このようなタイムスタンプの交換を可能にするために、様々なメディア装置104、106、400は、仮想ウォールクロックなどの共通基準クロック、又は以下で詳細に説明するような様々な時間領域間でタイムスタンプを変換する方法を有することができる。   In various embodiments, media is rendered simultaneously by media source 400 and media nodes 104, 106 belonging to a virtual media network. For example, media source 400 can render a media video channel, and media nodes 104, 106 can render a media audio channel. In some such embodiments, the various media channels are kept in sync. For example, the media source 400 may send a stamp with the media data indicating when the media nodes 104, 106 should render the media data. Similarly, gateway 104 can also include a time stamp associated with this data when transferring the media data to other media nodes 104, 106. In order to allow such time stamp exchange, the various media devices 104, 106, 400 are timed between a common reference clock, such as a virtual wall clock, or various time domains as described in detail below. There can be a method for converting the stamp.

図5は、メディアノード500の例示的なコンポーネント図である。メディアノード500は、例示的な環境100のメディアノード104、106の一方又は両方に対応することができる。メディアノード500は、ネットワークインターフェイス510を有することができる。ネットワークインターフェイス510は、1又はそれ以上の無線又は有線プロトコルに従って通信を可能にすることができる。様々な実施形態では、ネットワークインターフェイス510に1又はそれ以上のアンテナが接続される。いくつかの実施形態では、ネットワークインターフェイス510が、Wi−FiとBluetoothの両方に対応することができる。これに加えて、又はこれとは別に、ネットワークインターフェイス510は、他のいずれかのプロトコルに対応することもできる。いくつかの実施形態では、ネットワークインターフェイス510が、1又はそれ以上の有線ネットワークインターフェイスを含む。   FIG. 5 is an exemplary component diagram of media node 500. Media node 500 may correspond to one or both of media nodes 104, 106 of exemplary environment 100. The media node 500 can have a network interface 510. The network interface 510 can allow communication according to one or more wireless or wired protocols. In various embodiments, one or more antennas are connected to the network interface 510. In some embodiments, the network interface 510 can support both Wi-Fi and Bluetooth. In addition or alternatively, the network interface 510 may support any other protocol. In some embodiments, the network interface 510 includes one or more wired network interfaces.

レンダラ520は、スピーカ530、ディスプレイ540又はその他の出力装置(図示せず)上に提示できるようにメディア信号を処理する役割を担うことができる。様々な別のメディアノードは、このメディアノードがレンダリングするように設計されたメディアの種類に応じてスピーカ530又はディスプレイ540を含まないこともあると理解されるであろう。さらに、メディアノード500は、ゲートウェイ又は他のブロードキャスターとしてのみ機能し、レンダリング装置として機能しないように設計されている場合、レンダラ520を含まなくてよい。レンダリングモジュールは、ネットワークインターフェイス510からメディア信号を受け取ることができる。   The renderer 520 may be responsible for processing the media signal so that it can be presented on the speaker 530, display 540, or other output device (not shown). It will be understood that various other media nodes may not include the speaker 530 or the display 540 depending on the type of media that the media node is designed to render. Furthermore, media node 500 may not include renderer 520 if it is designed to function only as a gateway or other broadcaster and not as a rendering device. The rendering module can receive media signals from the network interface 510.

ブロードキャスター550は、ネットワークインターフェイス510を介して他の適当なメディアノード104、106にメディア信号を転送することができる。ホームステレオシステムなどの装置にメディア信号を提供するには、補助出力560を使用することができる。いくつかの実施形態では、ブロードキャスター550が、補助出力560にメディア信号を転送する処理を行う。様々な実施形態では、メディアノード500が補助出力560を含まない。さらに、メディアノード500は、レンダリング装置としてのみ機能し、ゲートウェイ又は他のブロードキャスティング装置として機能しないように設計されている場合、ブロードキャスター550を含まなくてよい。   Broadcaster 550 can forward media signals to other suitable media nodes 104, 106 via network interface 510. The auxiliary output 560 can be used to provide a media signal to a device such as a home stereo system. In some embodiments, the broadcaster 550 performs the process of transferring the media signal to the auxiliary output 560. In various embodiments, media node 500 does not include auxiliary output 560. Further, the media node 500 may not include the broadcaster 550 if it is designed to function only as a rendering device and not as a gateway or other broadcasting device.

コマンドモジュール570は、メディア信号を制御するためのコマンドを処理することができる。これらのコマンドは、音量、再生、停止などを含むことができる。同期モジュール580は、ネットワーク内の様々なメディアノードでの再生中に、メディア信号を正確に同期させる役割を果たすことができる。以下で詳細に説明するように、同期モジュール580は、初期クロック同期の設定において使用するビーコンメッセージを送信又は受信することができる。また、メディアストリームの開始後、同期モジュール580は、メディア再生中におけるクロック同期の改善又は是正において使用するタイムスタンプをメディアパケットから挿入又は抽出することができる。   Command module 570 can process commands for controlling media signals. These commands can include volume, play, stop, etc. The synchronization module 580 can serve to accurately synchronize the media signal during playback at various media nodes in the network. As described in detail below, the synchronization module 580 can transmit or receive beacon messages for use in setting up initial clock synchronization. Also, after the start of the media stream, the synchronization module 580 can insert or extract timestamps from the media packets for use in improving or correcting clock synchronization during media playback.

メディアノード104、106は、様々な機構を通じて制御することができる。コントローラとしては、スマートフォンアプリケーション、タブレットアプリケーション、TV又はセットトップボックス上のUI、ノード上のディスプレイ付き又はディスプレイ無しボタン、又はPCアプリケーションを挙げることができる。いくつかの実施形態では、これらの装置が、レンダラ520が特定のストリーム又はその特定のチャネル、レンダラ520の音量出力及び主音量をレンダリングするかどうかを制御する。   Media nodes 104 and 106 can be controlled through various mechanisms. The controller can include a smartphone application, a tablet application, a UI on a TV or set-top box, a button with or without display on a node, or a PC application. In some embodiments, these devices control whether the renderer 520 renders a particular stream or its particular channel, the renderer 520's volume output and main volume.

いくつかの実施形態では、メディアノード500がコマンドプロトコルをサポートする。コマンドプロトコルは、オーディオ再生をオン/オフする方法、音声再生を同期区域に集約する方法、再生、先送り、巻き戻し及び探索などのトランスポート制御、ノードへのメタデータ送信、ネットワークに参加する装置へのネットワーク状態の告知、装置がネットワークから離れた時の状態更新、遠隔ユーザインターフェイスを介した制御、並びにエアタイムネットワークを維持するためのその他のメッセージ及び方法を含むことができる。   In some embodiments, the media node 500 supports a command protocol. The command protocol is a method of turning audio playback on / off, a method of consolidating audio playback into a synchronous area, transport control such as playback, forward, rewind and search, transmission of metadata to a node, to a device participating in a network Network status notifications, status updates when a device leaves the network, control via a remote user interface, and other messages and methods for maintaining an airtime network.

なお、メディアノード500の要素は、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせを用いて実装することができる。メディアノード500は、1又はそれ以上のプロセッサと、この1又はそれ以上のプロセッサ上で実行された時にメディアノード500の様々な要素の機能を実行する命令を含むコンピュータ可読媒体とを有することができる。   The elements of the media node 500 can be implemented using software, hardware, or a combination of software and hardware. Media node 500 may have one or more processors and a computer-readable medium containing instructions that, when executed on the one or more processors, perform the functions of the various elements of media node 500. .

図6は、メディア装置600の例示的なハードウェア図である。例示的なメディア装置600は、例示的な環境100のメディア装置102、104、106、メディアソース400、又はメディアノード500のいずれかに対応することができる。図示のように、ハードウェア装置600は、1又はそれ以上のシステムバス660を介して相互接続された、プロセッサ610、メモリ620、ユーザインターフェイス630、ネットワークインターフェイス640及び記憶装置650を含むことができる。図6は、ある意味抽象的なものであり、メディア装置600の実際のコンポーネント構成は図示のものよりも複雑になり得ると理解されるであろう。例えば、プロセッサ610とメモリ620は、ローカルマイクロプロセッサバスを介して接続することができ、ユーザインターフェイス630、ネットワークインターフェイス640及び記憶装置650は、1又はそれ以上の入力/出力バスを介して接続することができる。   FIG. 6 is an exemplary hardware diagram of the media device 600. Exemplary media device 600 may correspond to any of media devices 102, 104, 106, media source 400, or media node 500 in exemplary environment 100. As shown, the hardware device 600 may include a processor 610, a memory 620, a user interface 630, a network interface 640, and a storage device 650 interconnected via one or more system buses 660. FIG. 6 is abstract in a sense, and it will be understood that the actual component configuration of the media device 600 can be more complex than that shown. For example, processor 610 and memory 620 can be connected via a local microprocessor bus, and user interface 630, network interface 640 and storage device 650 can be connected via one or more input / output buses. Can do.

プロセッサ610は、メモリ620又は記憶装置650に記憶された命令を実行できるあらゆるハードウェア装置とすることができる。従って、プロセッサは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又はその他の同様の装置を含むことができる。   The processor 610 can be any hardware device capable of executing instructions stored in the memory 620 or the storage device 650. Thus, the processor can include a microprocessor, field programmable gate array (FPGA), application specific integrated circuit (ASIC), or other similar device.

メモリ620は、例えばL1キャッシュ、L2キャッシュ又はL3キャッシュ、或いはシステムメモリなどの様々なメモリを含むことができる。メモリ620は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、リードオンリメモリ(ROM)又はその他の同様のメモリデバイスを含むことができる。   The memory 620 can include various memories such as, for example, an L1 cache, an L2 cache or an L3 cache, or a system memory. The memory 620 may include static random access memory (SRAM), dynamic RAM (DRAM), flash memory, read only memory (ROM) or other similar memory device.

ユーザインターフェイス630は、ユーザとの通信を可能にするための、又はユーザにメディアをレンダリングするための1又はそれ以上の装置を含むことができる。例えば、ユーザインターフェイス630は、ディスプレイ、スピーカ、プリンタ、補助出力、マウス、キーボード、英数字キーパッド、トラックボール、スタイラス又はボタンを含むことができる。   User interface 630 may include one or more devices for enabling communication with the user or for rendering media to the user. For example, the user interface 630 can include a display, speaker, printer, auxiliary output, mouse, keyboard, alphanumeric keypad, trackball, stylus or button.

ネットワークインターフェイス640は、他のハードウェア装置との通信を可能にするための1又はそれ以上の装置を含むことができる。例えば、ネットワークインターフェイス640は、イーサネットプロトコル、TCP/IPプロトコル、WiFiプロトコル又はBluetoothプロトコルに従って通信するように構成された1又はそれ以上のネットワークインターフェイスカード(NIC)を含むことができる。ネットワークインターフェイス640のための様々な別の又は追加のハードウェア又は構成が明らかであろう。   The network interface 640 may include one or more devices for enabling communication with other hardware devices. For example, the network interface 640 may include one or more network interface cards (NICs) configured to communicate according to the Ethernet protocol, TCP / IP protocol, WiFi protocol, or Bluetooth protocol. Various alternative or additional hardware or configurations for the network interface 640 will be apparent.

記憶装置650は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス又は同様の記憶媒体などの1又はそれ以上の機械可読記憶媒体を含むことができる。記憶装置は、メディア装置600との間でデータ及びコードの入力及び出力を行うための、フロッピーディスクなどのポータブル不揮発性記憶媒体を含むこともできる。様々な実施形態では、記憶装置650が、プロセッサ610によって実行される命令、又はプロセッサ610が動作できるようにするデータを記憶する。例えば、記憶装置は、メディア装置600の基本機能を調整するためのオペレーティングシステム670と、別のメディア装置が再生を同期させるのに十分な情報を送信するための、又は別のメディア装置によって送信されたこのような情報を処理して再生を同期させるための同期命令672とを記憶することができる。   Storage device 650 includes one or more machine-readable storage media such as read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, or similar storage media. Can do. The storage device may also include a portable non-volatile storage medium, such as a floppy disk, for inputting and outputting data and codes to and from the media device 600. In various embodiments, the storage device 650 stores instructions executed by the processor 610 or data that allows the processor 610 to operate. For example, the storage device is sent by an operating system 670 for coordinating the basic functions of the media device 600 and for transmitting information sufficient for another media device to synchronize playback or by another media device. A synchronization command 672 for processing such information and synchronizing reproduction can be stored.

記憶装置650は、メディア装置600の役割又は能力に応じて様々な追加命令を記憶することができる。例えば、メディア装置600がメディアソースとして機能できる場合、記憶装置650は、メディアを取得するための又は装置600上でメディアを再生するためのメディアソースアプリケーション命令674、メディアを復号するためのメディアライブラリ命令676、或いはユーザが仮想メディアネットワークにコマンドを送信できるようにするための仮想ネットワークメディアアプリケーション命令678を記憶することができる。例示的なメディアソース400の説明などの上述の説明に照らせば、これらの命令674、676、678のための他の様々な機能が明らかであろう。これに加えて、又はこれとは別に、メディア装置600がメディアノードとして機能できる場合、記憶装置は、メディアソース又はその他のコントローラによって発行されたコマンドを処理するためのコマンドモジュール命令680、他のメディアノードにメディアを転送するためのブロードキャスター命令682、及びメディアを他の装置と同期させてレンダリングするためのレンダラ命令684を記憶することができる。例示的なメディアノード500の説明などの上述の説明に照らせば、これらの命令680、682、684のための他の様々な機能が明らかであろう。   Storage device 650 can store various additional instructions depending on the role or capability of media device 600. For example, if media device 600 can function as a media source, storage device 650 can receive media or play media on device 600 with media source application instructions 674, media library instructions for decrypting media. 676 or virtual network media application instructions 678 to allow the user to send commands to the virtual media network. Various other functions for these instructions 674, 676, 678 will be apparent in light of the above description, such as a description of an exemplary media source 400. Additionally or alternatively, if the media device 600 can function as a media node, the storage device can use command module instructions 680 to process commands issued by the media source or other controller, other media. Broadcaster instructions 682 for transferring media to the node and renderer instructions 684 for rendering the media in sync with other devices may be stored. Various other functions for these instructions 680, 682, 684 will be apparent in light of the above description, such as the description of the exemplary media node 500.

メディア装置600に含まれるコンポーネントは、本明細書で説明する方法及びシステムと共に使用するのに適したコンピュータシステム内で典型的に見られるものであり、このようなコンピュータコンポーネントの広範なカテゴリを表すものである。従って、メディア装置600は、携帯電話機、スマートフォン、PDA、タブレットコンピュータ、パーソナルコンピュータ、モバイルコンピュータ装置、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、又は他のいずれかのコンピュータ装置とすることができる。このコンピュータは、様々なバス構成、ネットワークプラットフォーム、マルチプロセッサプラットフォームなどを含むこともできる。Unix、Linux、Windows、Macintosh OS、Palm OS、Android OS、iOS及びその他の適当なオペレーティングシステムを含む様々なオペレーティングシステム660を使用することができる。   The components included in media device 600 are those typically found in computer systems suitable for use with the methods and systems described herein and represent a broad category of such computer components. It is. Thus, the media device 600 can be a mobile phone, smart phone, PDA, tablet computer, personal computer, mobile computer device, workstation, server, minicomputer, mainframe computer, or any other computer device. The computer can also include various bus configurations, network platforms, multiprocessor platforms, and the like. Various operating systems 660 may be used, including Unix, Linux, Windows, Macintosh OS, Palm OS, Android OS, iOS and other suitable operating systems.

図7に、メディア信号をブロードキャストする例示的な方法700を示す。方法700は、方法200のステップ210に対応することができる。ステップ710において、ゲートウェイメディアノード104及びその他のメディアノード102、104、106は、タイミングパラメータを設定することができる。いくつかの実施形態では、メディアノード104、106が仮想ウォールクロックに同期する。ブロードキャスターは、この仮想ウォールクロックを用いて、メディアストリームに目標レンダリング時間をタイムスタンプすることができる。レンダラは、この仮想ウォールクロックを用いて、所与の時点で正確にメディアサンプルをレンダリングすることができる。仮想ウォールクロックは、メディアノード104、106がレンダリング時間の共通理解を確実に有することを支援することができる。いくつかの実施形態では、各レンダリング装置が、メディアストリーム内に指定された時点でサンプルをレンダリングする。ストリームフォーマットには、サンプリング周波数、ワードサイズ、チャネル数、符号化フォーマットなどを含む、ストリームをレンダリングするための他の情報を含めることもできる。   FIG. 7 illustrates an exemplary method 700 for broadcasting a media signal. Method 700 may correspond to step 210 of method 200. In step 710, the gateway media node 104 and other media nodes 102, 104, 106 may set timing parameters. In some embodiments, media nodes 104, 106 are synchronized to a virtual wall clock. The broadcaster can use this virtual wall clock to time stamp the target rendering time in the media stream. The renderer can use this virtual wall clock to render media samples accurately at a given time. The virtual wall clock can help ensure that the media nodes 104, 106 have a common understanding of rendering time. In some embodiments, each rendering device renders a sample at a specified time in the media stream. The stream format can also include other information for rendering the stream, including sampling frequency, word size, number of channels, encoding format, and the like.

ステップ710では、仮想ウォールクロック又は他の何らかの共通タイミング基準を設定することもできる。例えば、ゲートウェイメディアノード104は、各ビーコンメッセージがいつ送信されたかを示すタイムスタンプを含むビーコンメッセージの「フラッド」を開始することができる。この結果、受信側メディアノード104、106は、送信者のタイムスタンプと、各ビーコンメッセージが送信された時刻との差分を求めることによってオフセット値を計算することができる。この計算されたオフセットは、送信側装置のクロックと受信側装置のクロックとの間の実際のオフセットと、ネットワーク伝播時間、送信側装置がタイムスタンプを挿入してから実際にビーコンメッセージを送信するまでに要した時間、及び受信側装置がビーコンメッセージを受信してから受信時刻を特定するまでに要した時間などの、時間に関連する固定遅延と、様々な無線ネットワーク接続に共通するネットワーク変動に関連する可変遅延という3つの独立値の和を反映することができる。固定遅延は実質的に一定であるため、受信側装置は、これらの計算されたオフセットのうち、最も小さな計算されたオフセットが最小の可変ネットワーク遅延を含むオフセットであり、従って実際のクロックオフセットと固定ネットワーク遅延とを加えたものに最も近い利用可能な推定値であると確信することができる。この結果、受信側装置は、この最小オフセットに基づいて自身のクロックを調整することができ、或いは後続の送信側装置のタイムスタンプとローカルクロックとの比較において使用できるように、このオフセットを存続させることができる。レンダリング処理中には、この固定ネットワーク遅延を考慮して正しい同期を確実にすることができる。メディアソース102とメディアゲートウェイ104の間の同期の確立においても同様の方法を使用することができる。   In step 710, a virtual wall clock or some other common timing reference may be set. For example, the gateway media node 104 can initiate a “flood” of beacon messages that includes a time stamp indicating when each beacon message was transmitted. As a result, the receiving media nodes 104 and 106 can calculate the offset value by obtaining the difference between the time stamp of the sender and the time when each beacon message is transmitted. This calculated offset is the actual offset between the sending device's clock and the receiving device's clock, the network propagation time, and the sending device inserts the time stamp until it actually sends the beacon message. Related to fixed delays related to time, such as the time taken to receive the beacon message from the time the receiver device received the beacon message, and network variations common to various wireless network connections It is possible to reflect the sum of three independent values of variable delay. Since the fixed delay is substantially constant, the receiving device is the offset that includes the variable network delay with the smallest calculated offset of these calculated offsets, and therefore fixed with the actual clock offset. One can be confident that this is the closest available estimate to the network delay plus. As a result, the receiving device can adjust its clock based on this minimum offset, or it can persist this offset so that it can be used in the comparison of the time stamp of the subsequent transmitting device with the local clock. be able to. During the rendering process, this fixed network delay can be taken into account to ensure correct synchronization. A similar method can be used in establishing synchronization between the media source 102 and the media gateway 104.

ステップ720において、ゲートウェイメディアノード104は、メディアソース102からメディア信号を受け取る。ステップ730において、ゲートウェイメディアノード104は、メディアを復号する。ゲートウェイは、復号の前にメディア信号を逆多重化することができる。   In step 720, gateway media node 104 receives a media signal from media source 102. In step 730, the gateway media node 104 decrypts the media. The gateway can demultiplex the media signal before decoding.

ステップ740において、ゲートウェイメディアノード104は、他のメディアノード104、106にブロードキャストするためにメディアを再符号化する。なお、ゲートウェイは、メディアソース102が使用した符号化とは異なる符号化を使用することができる。例えば、メディアソース102では、メディア信号がBluetoothと互換性のあるフォーマットで符号化されている場合がある。このメディア信号を、Wi−Fiと互換性のあるフォーマットで再符号化することができる。   In step 740, the gateway media node 104 re-encodes the media for broadcast to other media nodes 104,106. Note that the gateway can use an encoding different from the encoding used by the media source 102. For example, in the media source 102, the media signal may be encoded in a format compatible with Bluetooth. This media signal can be re-encoded in a format compatible with Wi-Fi.

ステップ750において、ゲートウェイメディアノード104は、メディア信号をカプセル化する。様々な実施形態では、ゲートウェイメディアノード104がメディア信号を圧縮する。オーディオメディア信号を圧縮する例として、高品質ネットワークでは、フリーオーディオロスレスコーデック(FLAC)などの軽可逆圧縮技術を用いて、最小の処理オーバーヘッドで帯域幅を半分にカットすることができる。低品質ネットワークでは、OGG又はアドバンスオーディオコーディング(AAC)などの高圧縮標準を用いて、音質及び処理オーバーヘッドを犠牲にしてネットワーク帯域幅を最小にすることができる。信号は、圧縮アルゴリズム自体を超えて、低サンプリングレートに再サンプリングすることも、モノラルストリームにダウンミックスすることも、又は低サンプル解像度にダウンサンプリングすることもできる。メディアストリームを圧縮形式に符号化又はトランスコードすることにより、処理オーバーヘッドを犠牲にして狭いネットワーク帯域幅を使用することによってエアタイムの信頼性を高めることができる。サポートされるコーデックは、様々なビットレート、サンプリング周波数、チャネル及びサンプルサイズの可逆及び非可逆圧縮技術を含むことができる。   In step 750, the gateway media node 104 encapsulates the media signal. In various embodiments, the gateway media node 104 compresses the media signal. As an example of compressing an audio media signal, in a high quality network, a light lossless compression technique such as a free audio lossless codec (FLAC) can be used to cut the bandwidth in half with minimal processing overhead. In low quality networks, high compression standards such as OGG or Advanced Audio Coding (AAC) can be used to minimize network bandwidth at the expense of sound quality and processing overhead. The signal can be resampled beyond the compression algorithm itself to a low sampling rate, downmixed to a mono stream, or downsampled to a low sample resolution. By encoding or transcoding the media stream into a compressed format, airtime reliability can be increased by using narrow network bandwidth at the expense of processing overhead. Supported codecs can include lossless and lossy compression techniques of various bit rates, sampling frequencies, channels and sample sizes.

いくつかの実施形態では、全てのメディアノード104、106が、サポートされている符号化フォーマットを認識している。いくつかの実施形態では、全てのブロードキャスターが、サポートされているフォーマットへの符号化を行うことができる。いくつかの実施形態では、全てのレンダラが、サポートされているフォーマットを復号することができる。各ストリームに使用する符号化フォーマットは、ネットワーク品質からのフィードバック、利用可能な処理リソース、サポートされているレンダリング区域の数、サポートされているアクティブなストリームの数及び最大許容レイテンシによってメディアノード104、106間で決定することができる。   In some embodiments, all media nodes 104, 106 are aware of supported encoding formats. In some embodiments, all broadcasters can encode to a supported format. In some embodiments, all renderers can decode supported formats. The encoding format used for each stream depends on the media nodes 104, 106 depending on feedback from network quality, available processing resources, number of supported rendering areas, number of supported active streams and maximum allowable latency. Can be determined between.

任意のステップ760において、冗長パケットが加えられる。メディア信号が圧縮されている場合、追加パケットを加えることができる。いくつかの実施形態では、パケットのグループが冗長パケットのグループと交互配置される。例えば、2対1の圧縮比を用いて、オリジナルのメディア信号の2秒を1秒に圧縮することができる。一例として、1秒相当のデータパケットを1秒の冗長パケットと交互配置することができる。グループ内のパケット数は、1又はそれ以上とすることができる。   In optional step 760, redundant packets are added. If the media signal is compressed, additional packets can be added. In some embodiments, groups of packets are interleaved with groups of redundant packets. For example, using a 2 to 1 compression ratio, 2 seconds of the original media signal can be compressed to 1 second. As an example, data packets corresponding to 1 second can be interleaved with redundant packets of 1 second. The number of packets in the group can be one or more.

いくつかの実施形態では、ブロードキャスティングが2つの選択肢を有する。選択肢Aでは、図示のように、ステップ770において、ゲートウェイメディアノード104が、他のメディアノード10にメディア信号をブロードキャストすることができる。選択肢B(図示せず)では、ゲートウェイメディアノード104が、無線アクセスポイントにメディア信号を送信することができる。無線アクセスポイントは、このメディア信号を他のメディアノードにブロードキャストすることができる。   In some embodiments, broadcasting has two options. Option A allows the gateway media node 104 to broadcast media signals to other media nodes 10 at step 770 as shown. Option B (not shown) allows the gateway media node 104 to send a media signal to the wireless access point. The wireless access point can broadcast this media signal to other media nodes.

ブロードキャストメディアは、ネットワーク帯域幅の最大消費者であると考えられる。典型的な非圧縮オーディオストリームは、1.5mbpsを超えることがある。アクセスポイント310までの上り送信では、ストリーム当たり1.5mbpsを消費し、レンダラ306への下りでは、ストリーム当たりさらに1.5mbpsを消費し、合計で3mbpsを消費する可能性がある。ポイントツーポイントサイマルキャスティングでは、典型的な帯域幅がサイマルキャストストリーム数の3mbps倍になる可能性がある。これでは、ネットワークが飽和してしまう恐れがある。   Broadcast media is considered the largest consumer of network bandwidth. A typical uncompressed audio stream may exceed 1.5 Mbps. Upstream transmission to the access point 310 consumes 1.5 Mbps per stream, and downstream to the renderer 306 consumes an additional 1.5 Mbps per stream, which may consume a total of 3 Mbps. In point-to-point simulcasting, the typical bandwidth can be 3 Mbps times the number of simulcast streams. This may saturate the network.

様々な実施形態は、複数の送信プロトコルをサポートする。いくつかの実施形態では、UDPオーバーIPが使用される。なお、いくつかの実施形態では、受信側メディアノードがパケット受信の確認応答を行わなくてもよい。例えば、UDPオーバーIPは、パケットの受信を必要としないことがある。いくつかの実施形態では、受信側メディアノードが、受け取られなかったデータパケットを再送信するようにゲートウェイに要求することができる。なお、この要求は、UDPオーバーIPを使用する実施形態において行うことができる。上述したように、いくつかの実施形態では、冗長データパケットが送信される。   Various embodiments support multiple transmission protocols. In some embodiments, UDP over IP is used. Note that in some embodiments, the receiving media node may not acknowledge the packet reception. For example, UDP over IP may not require reception of a packet. In some embodiments, the receiving media node may request the gateway to retransmit data packets that were not received. Note that this request can be made in embodiments that use UDP over IP. As described above, in some embodiments, redundant data packets are transmitted.

メディアノード104、106は、ネットワーク統計を保持することができる。様々な実施形態では、選択されたブロードキャスター又はゲートウェイが、サービス品質、レイテンシ、プロセッサ利用度及びネットワーク利用度のバランスを取るのに最適な送信方法を決定する役割を担う。例えば、ネットワークが、高帯域幅を利用できて個々のノード104、106への接続が強い良質なものである場合、保証された送信プロトコルを使用することができる。ネットワークが飽和している場合、又は低品質である場合には、マルチキャスト技術が好ましいと考えられる。さらなる方法では、帯域幅の節約、及び送信エラーの検出、訂正又は隠匿を補助することができる。一般に、マルチキャストプロトコル、サイマルキャストプロトコル及びポイントツーポイントプロトコルは、ストリーム構築の時点で決定される最も適したプロトコルによってサポートされ、ネットワーク品質、利用可能な処理能力及びストリームの数が決定プロセスの要因となる。   Media nodes 104, 106 can maintain network statistics. In various embodiments, the selected broadcaster or gateway is responsible for determining the optimal transmission method to balance quality of service, latency, processor usage and network usage. For example, if the network is of good quality with high bandwidth available and strong connection to the individual nodes 104, 106, a guaranteed transmission protocol can be used. If the network is saturated or of poor quality, multicast technology may be preferred. In a further way, bandwidth savings and transmission error detection, correction or concealment can be assisted. In general, multicast, simulcast, and point-to-point protocols are supported by the most suitable protocol determined at the time of stream construction, with network quality, available processing power and number of streams factoring in the decision process .

メディアストリームを介して、ウォールクロックを基準にメディアクロックを回復させ、メディアフレーム又はサンプルグループに同期させることができる。メディアクロックは、ハードウェアフレームクロック、ワードクロック及びビットクロックの形成を促進することができる。論理的観点から見れば、メディアストリームを介した同期は、メディアノード104、106における正確なクロックの生成を保証することができる。水晶などに伴うわずかなばらつきがハードウェアに存在すると、クロックドリフト及びその他のクロックタイミングにばらつきが生じる可能性がある。メディアクロックとウォールクロックを常に測定して比較することにより、システムがドリフトを検出できるようになる。いくつかの実施形態では、ソフトウェア専用のメディアクロック回復機構が、メディアレンダリングバッファに対するメディアサンプルの追加又は除去を行って装置全体にわたってメディアクロックを再同期させることに関与する。いくつかの実施形態では、明らかなクリッキング又はスキッピングの効果が生じないようにしてレンダリングバッファの操作が行われる。ドリフト測定に基づいて、VCXO又は電圧制御発振器を使用するハードウェア機構をプロセッサから制御し、このハードウェア発振器をより緊密な同期にプッシュ又はプルすることができる。   Via the media stream, the media clock can be recovered with respect to the wall clock and synchronized to the media frame or sample group. The media clock can facilitate the formation of a hardware frame clock, a word clock, and a bit clock. From a logical point of view, synchronization via the media stream can ensure accurate clock generation at the media nodes 104, 106. If slight variations associated with crystals or the like are present in the hardware, variations in clock drift and other clock timings may occur. By constantly measuring and comparing the media clock and wall clock, the system can detect drift. In some embodiments, a software-specific media clock recovery mechanism is involved in resynchronizing the media clock across the device by adding or removing media samples from the media rendering buffer. In some embodiments, the rendering buffer is manipulated such that no obvious clicking or skipping effects occur. Based on the drift measurement, a hardware mechanism using a VCXO or voltage controlled oscillator can be controlled from the processor, and this hardware oscillator can be pushed or pulled to closer synchronization.

上述したように、本明細書で説明する様々なシステムは、共通タイミング基準を設定することによって複数の装置間でメディア再生を同期させることができる。例えば、メディアソースとメディアゲートウェイが協調してこのような共通タイミング基準を設定することもでき、又はメディアゲートウェイとメディアノードが協調してこのような共通タイミング基準を設定することもできる。タイミングパラメータを設定するという文脈では、本方法を2つのメディア装置間で、すなわち送信側メディア装置と受信側メディア装置の間で分割することができる。様々な実施形態では、共通タイミング基準が、送信側メディア装置におけるクロック値を受信側メディア装置において推定したものである。   As described above, the various systems described herein can synchronize media playback among multiple devices by setting a common timing reference. For example, the media source and the media gateway can cooperate to set such a common timing reference, or the media gateway and the media node can cooperate to set such a common timing reference. In the context of setting timing parameters, the method can be divided between two media devices, i.e. between a sending media device and a receiving media device. In various embodiments, the common timing reference is an estimate of the clock value at the sending media device at the receiving media device.

図8に、送信側メディア装置が受信側メディア装置に再生を同期させるための例示的な方法800を示す。この例示的な方法800は、例えば例示的な環境100のメディアソース102又はメディアゲートウェイ104などの、送信側メディア装置として機能するいずれかのメディア装置によって実行することができる。方法800は、例示的な方法700のステップ710の一部として、又はメディア装置間におけるタイミングパラメータの同期が適切なあらゆる時点で実行することができる。   FIG. 8 illustrates an exemplary method 800 for a sending media device to synchronize playback with a receiving media device. The example method 800 may be performed by any media device that functions as a sending media device, such as the media source 102 or the media gateway 104 of the example environment 100, for example. Method 800 may be performed as part of step 710 of exemplary method 700 or at any point where timing parameter synchronization between media devices is appropriate.

方法800は、ステップ805から開始してステップ810に進み、送信側装置が、タイミングパラメータの設定において受信側装置によって使用される「ビーコンメッセージ」のフラッディングを開始すべきであると判断することができる。例えば、送信側装置は、受信側装置の電源が入っていると判断し、受信側装置が仮想メディアネットワークに加わっていると判断し、又は送信側装置が受信側装置にメディアを送信し始めるべきであると判断することができる。ステップ815において、送信側装置は、新たなビーコンメッセージを生成する。このビーコンメッセージは、受信側装置によって認識されるいずれかのタイプのパケット又はその他のデータメッセージとすることができる。例えば、ビーコンメッセージは、送信側装置と受信側装置の両方が実装する専用プロトコルに従って形成することができる。受信側装置への途中にあるルータ又はスイッチなどの1又はそれ以上の媒介装置をビーコンメッセージが横切ることができる実施形態などの様々な実施形態では、送信側装置が、このビーコンメッセージが優先度の高いトラフィックを構成している旨のフラグ又はその他の指示を搬送するようにビーコンメッセージを構成する。ネットワーク内でビーコンメッセージに優先順位を付けるための様々な機構は、考えられる様々なネットワーキング技術によって利用される個々の優先順位付け方式に基づいて異なる。このようなビーコンメッセージの優先順位付けは、混合トポロジネットワークを介したルーティング時間を最適化する援助となり、これによって可変ネットワーク遅延因子を低減することができる。   Method 800 begins at step 805 and proceeds to step 810 where it can be determined that the sending device should start flooding the “beacon message” used by the receiving device in setting the timing parameters. . For example, the sending device should determine that the receiving device is powered on, determine that the receiving device is participating in the virtual media network, or the sending device should begin sending media to the receiving device. Can be determined. In step 815, the transmitting device generates a new beacon message. This beacon message can be any type of packet or other data message recognized by the receiving device. For example, the beacon message can be formed according to a dedicated protocol implemented by both the sending device and the receiving device. In various embodiments, such as an embodiment in which a beacon message can traverse one or more intermediary devices such as routers or switches en route to a receiving device, Configure the beacon message to carry a flag or other indication that it constitutes high traffic. The various mechanisms for prioritizing beacon messages within the network differ based on the individual prioritization scheme utilized by the various possible networking technologies. Such prioritization of beacon messages helps to optimize routing time through a mixed topology network, which can reduce variable network delay factors.

次に、ステップ820において、送信側装置は、現在送信側装置のクロックによって示されている時刻をビーコンメッセージにタイムスタンプする。このようなタイムスタンプは、「送信者タイムスタンプ」と呼ぶことができる。次に、ステップ825において、送信側装置は、1又はそれ以上の受信側装置にビーコンメッセージを送信する。ステップ820とステップ825の間に経過した時間は、受信側装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法800の様々な実装は、ステップ820とステップ825の間に行われる動作数を低減又は最小化するように努める。様々な実施形態では、送信側装置が、他の複数のメディア装置に対するタイミングパラメータの設定に関与する。例えば、メディアゲートウェイ104は、他の複数のメディアノード104、106にビーコンメッセージを送信することができる。いくつかのこのような実施形態では、送信側装置が、例えば、ビーコンメッセージのコピーを各メディア装置に個別にアドレス指定することにより、又は複数のメディア装置にメッセージをマルチキャストすることにより、ステップ825において複数のメディア装置にビーコンメッセージを送信する。これとは別に、又はこれに加えて、送信側装置は、他の複数のメディア装置に対応するように方法800を複数回実行する。   Next, in step 820, the sending device timestamps the beacon message with the time currently indicated by the sending device's clock. Such a time stamp can be referred to as a “sender time stamp”. Next, in step 825, the sending device sends a beacon message to one or more receiving devices. The time elapsed between step 820 and step 825 forms part of the fixed delay component of the clock offset value calculated by the receiving device. Accordingly, various implementations of method 800 strive to reduce or minimize the number of operations performed between steps 820 and 825. In various embodiments, the sending device is responsible for setting timing parameters for other media devices. For example, media gateway 104 can send a beacon message to other media nodes 104, 106. In some such embodiments, the sending device, for example, by addressing a copy of the beacon message to each media device individually or by multicasting the message to multiple media devices, at step 825. A beacon message is transmitted to a plurality of media devices. Alternatively or additionally, the sending device performs the method 800 multiple times to accommodate other media devices.

ステップ830において、送信側装置は、送信側装置が受信側装置へのビーコンメッセージのフラッディングを終了したかどうかを判定する。例えば、送信側装置は、所定数のビーコンメッセージが送信されるまでビーコンメッセージのフラッディングを継続することができる。これとは別に、又はこれに加えて、様々な実施形態では、送信側装置が、ステップ830の条件を受信側装置からのフィードバックに基づかせる。例えば、受信側装置は、十分な同期が達成された時にメッセージを送信することができ、或いは所定数のビーコンメッセージが送信されたにも関わらず十分な同期が達成されなかった旨を示すメッセージを送信することができる。フラッディングを中止すべきかどうかを判定するさらに別の方法として、送信側装置は、フラッディング期間中にネットワーク性能をモニタし、ネットワーク性能が何らかの最低限の許容閾値を満たすまでフラッディングを継続する。例えば、送信側装置は、ビーコンメッセージに加えて、受信側装置に往復診断メッセージを送信することができる。或いは、受信側装置を、ネットワーク診断の目的で送信側装置にビーコンメッセージをさらに返送するように構成することもできる。送信側装置は、受信側装置からメッセージを受け取ると、1又はそれ以上のネットワーク性能測定値を生成する。例えば、送信側装置は、前回のフラッディングウィンドウを通じたネットワーク遅延又はジッタの測定値を生成することができ、この測定値が何らかの最低許容ネットワーク性能よりも低い場合には、たとえ所定数のビーコンメッセージを送信し終えていたとしてもビーコンメッセージをフラッディングし続ける。本明細書の教示に照らせば、ビーコンメッセージのフラッディングが十分であるかどうかを判定するためのこれらの及びその他の方法の様々な組み合わせを採用できることが明らかであろう。   In step 830, the transmitting device determines whether the transmitting device has finished flooding the beacon message to the receiving device. For example, the transmitting device can continue flooding the beacon message until a predetermined number of beacon messages are transmitted. Alternatively or in addition, in various embodiments, the transmitting device bases the condition of step 830 on feedback from the receiving device. For example, the receiving device can send a message when sufficient synchronization is achieved, or a message indicating that sufficient synchronization has not been achieved despite a predetermined number of beacon messages being transmitted. Can be sent. As yet another method of determining whether to stop flooding, the sending device monitors network performance during the flooding period and continues flooding until the network performance meets some minimum acceptable threshold. For example, the sending device can send a round trip diagnostic message to the receiving device in addition to the beacon message. Alternatively, the receiving device can be configured to further return a beacon message to the sending device for network diagnostic purposes. When the sending device receives the message from the receiving device, it generates one or more network performance measurements. For example, the sending device can generate a measurement of network delay or jitter over the previous flooding window, and if this measurement is below some minimum acceptable network performance, it can send a predetermined number of beacon messages. Continue to flood the beacon message even if it has been sent. In light of the teachings herein, it will be apparent that various combinations of these and other methods for determining whether beacon message flooding is sufficient can be employed.

ステップ830において、送信側装置がビーコンメッセージのフラッディングを継続すべきであると判断した場合、方法800はステップ815に戻って追加のビーコンメッセージを送信する。フラッディングウィンドウが所定数のビーコンメッセージの送信を含む様々な実施形態では、送信側装置が、ネットワーク性能又はその他の因子に基づいて、前回のウィンドウが不十分であったと判断し、ステップ815に戻る前にビーコンメッセージカウンタをリセットすることにより、新たなウィンドウで別のビーコンメッセージの組の送信を開始する。一方、ステップ830において、送信側装置がフラッディングを終了すべきであると判断した場合、方法800はステップ835に進んで終了する。その後、送信側装置は、現在同期されている受信側装置にメディアを送信する。   If, at step 830, the sending device determines that it should continue flooding the beacon message, the method 800 returns to step 815 to send additional beacon messages. In various embodiments where the flooding window includes transmission of a predetermined number of beacon messages, the sending device determines that the previous window was insufficient based on network performance or other factors and before returning to step 815. By resetting the beacon message counter to begin sending another set of beacon messages in a new window. On the other hand, if it is determined at step 830 that the sending device should finish flooding, the method 800 proceeds to step 835 and ends. Thereafter, the transmitting device transmits the media to the receiving device that is currently synchronized.

なお、様々な実施形態では、送信側装置がビーコンメッセージに基づいて受信側装置からリターンメッセージを受け取らなくてもよく、或いは、送信側装置がリターンメッセージを受け取る実施形態では、送信側装置がタイミングパラメータを設定する目的でリターンメッセージを利用することはない。いくつかの実施形態では、フラッディング期間が十分であるかどうかを判断する目的のみでリターンメッセージが使用される。従って、本明細書で説明する方法は、他のクロック同期法とは異なり、同期計算の大部分が送信側装置ではなく受信側装置によって行われる「一方向」同期法と呼ぶことができる。   Note that in various embodiments, the sending device may not receive a return message from the receiving device based on the beacon message, or in an embodiment in which the sending device receives the return message, the sending device may be a timing parameter. The return message is not used for the purpose of setting. In some embodiments, the return message is used only for the purpose of determining whether the flooding period is sufficient. Thus, unlike the other clock synchronization methods, the method described herein can be referred to as a “one-way” synchronization method where most of the synchronization calculations are performed by the receiving device rather than the transmitting device.

図9に、受信側メディア装置が送信側メディア装置に再生を同期させるための例示的な方法900を示す。例示的な方法900は、例えば例示的な環境100のメディアゲートウェイ104又はその他のメディアノード104、106などの受信側メディア装置として機能するいずれかのメディア装置によって実行することができる。方法900は、例示的な方法700のステップ710の一部として、又はメディア装置間におけるタイミングパラメータの同期が適切なあらゆる時点で実行することができる。   FIG. 9 illustrates an exemplary method 900 for a receiving media device to synchronize playback with a sending media device. The example method 900 may be performed by any media device that functions as a receiving media device, such as the media gateway 104 or other media nodes 104, 106 of the example environment 100, for example. The method 900 may be performed as part of step 710 of the example method 700 or at any time when timing parameter synchronization between media devices is appropriate.

方法900は、ステップ905から開始してステップ910に進み、受信側装置は、新たなメッセージが受信又は処理された時に実行されている最小オフセット値を維持することに使用される最小オフセット変数「MinO」を初期化する。次に、ステップ915において、受信側装置は、送信側装置からビーコンメッセージを受け取る。次に、ステップ920において、受信側装置は、現在受信側装置のクロックによって示されている時刻に基づいてタイムスタンプを生成する。このようなタイムスタンプは、「受信者タイムスタンプ」、「R(x)」と呼ぶことができる。ステップ915とステップ920の間に経過した時間は、受信側装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法900の様々な実装は、ステップ920とステップ925の間に行われる動作数を低減又は最小化するように努める。   Method 900 begins at step 905 and proceeds to step 910 where the receiving device uses a minimum offset variable “MinO” that is used to maintain the minimum offset value that is being executed when a new message is received or processed. ”. Next, in step 915, the receiving device receives a beacon message from the transmitting device. Next, in step 920, the receiving device generates a time stamp based on the time currently indicated by the clock of the receiving device. Such a time stamp can be referred to as a “recipient time stamp”, “R (x)”. The time elapsed between step 915 and step 920 forms part of the fixed delay component of the clock offset value calculated by the receiving device. Accordingly, various implementations of method 900 strive to reduce or minimize the number of operations performed between steps 920 and 925.

ステップ925において、受信側装置は、ビーコンメッセージから送信者タイムスタンプ「S(x)」を抽出する。上述したように、送信者タイムスタンプは、例示的な方法800のステップ820のように送信者装置によって送信の直前にビーコンメッセージに挿入される。ステップ930において、受信側装置は、送信側装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。例えば、受信側装置が仮想メディアネットワークのゲートウェイとして動作している場合、受信側装置は、送信側装置がメディアソースであると判断する。このような場合、方法900はステップ935に進む。次に、受信側装置は、送信者タイムスタンプを、送信側装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換では、2つの装置間で以前にネゴシエートされたオフセットを加算又は減算することができる。このような時間領域間のネゴシエーション及び変換は、当業者に周知のあらゆる方法に従って行うことができる。いくつかの別の実施形態では、ソース装置とメディアノードが同じ時間領域でクロックを維持する。このようないくつかの実施形態には、ステップ930、935が存在しない。   In step 925, the receiving device extracts the sender time stamp “S (x)” from the beacon message. As described above, the sender timestamp is inserted into the beacon message immediately before transmission by the sender device, as in step 820 of the exemplary method 800. In step 930, the receiving device determines whether the sending device is a media source of the virtual media network. For example, if the receiving device is operating as a gateway for a virtual media network, the receiving device determines that the sending device is the media source. In such a case, method 900 proceeds to step 935. Next, the receiving device converts the sender time stamp from the time domain of the transmitting device to the time domain of the virtual media network. Such a conversion can add or subtract an offset previously negotiated between the two devices. Such negotiation and conversion between time domains can be performed according to any method known to those skilled in the art. In some other embodiments, the source device and the media node maintain a clock in the same time domain. In some such embodiments, steps 930, 935 are not present.

方法900は、ステップ935において送信者タイムスタンプを仮想メディアネットワークドメインに変換した後、或いはステップ930において送信者がメディアソースではないと判断した後にステップ940に進み、受信側装置は、送信者タイムスタンプ及び受信者タイムスタンプに基づいて、例えばこれら2つのタイムスタンプの差分などのオフセット値を計算する。この現在のオフセット値「CurO」は、送信者クロックと受信者クロックの間の実際のオフセットと、ビーコンメッセージが直面する2つのタイムスタンプS(x)及びR(x)の作成間のあらゆる遅延とを加えたものに相当する。上述したように、この遅延は2つの成分を含む。第1の遅延成分は、例えばメッセージが移動する回路及びデータ経路に関連する一定の遅延などの、ネットワークのハードウェア及びソフトウェアコンポーネントを横切るのに掛かった時間、並びにメッセージの送信/受信と、関連するタイムスタンプの生成との間の、OSが必要とする時間に関連する固定遅延である。このような固定遅延は、レンダリング処理の一部として既に考慮されている。第2の遅延成分は、経時的に変化する遅延に関連する可変ネットワーク遅延である。例えば、WiFiなどの共有メディアネットワークは、送信前にメディアがクリアになるのを待機する場合があり、従って異なる時点で異なる遅延が導入されることがある。   The method 900 proceeds to step 940 after converting the sender timestamp to the virtual media network domain in step 935, or after determining in step 930 that the sender is not a media source, and the receiving device sends the sender timestamp. Based on the recipient time stamp, an offset value such as the difference between the two time stamps is calculated. This current offset value “CurO” is the actual offset between the sender clock and the receiver clock and any delay between the creation of the two timestamps S (x) and R (x) encountered by the beacon message. Is equivalent to As described above, this delay includes two components. The first delay component is related to the time taken to traverse the hardware and software components of the network, such as a certain delay associated with the circuit and data path through which the message travels, and the transmission / reception of the message. It is a fixed delay related to the time required by the OS between the time stamp generation. Such a fixed delay has already been taken into account as part of the rendering process. The second delay component is a variable network delay associated with a delay that changes over time. For example, a shared media network such as WiFi may wait for the media to clear before transmission, and thus different delays may be introduced at different times.

この可変遅延は、さらなる遅延の導入しか行わない(遅延を除去することはない)ので、実際のクロックオフセットのより良好な推定は、最も遅延の少なかったメッセージから取得される。従って、方法900は、フラッディング中に取得される最小オフセット値を、実際のオフセットの最良の利用可能な推定として探索する。ステップ945において、受信側装置は、現在のオフセットCurOを以前に存在していた最小オフセットと比較し、或いはこのループの現在の反復がステップ910において初期化された最小オフセット値MinOに対する最初のものであるかどうかを比較する。CurOの方がMinOよりも小さい場合、CurOは、送信者クロックと受信者クロックの間の実際のオフセットのより厳密な推定値を表すと認識され、ステップ950において、受信者装置は、MinOの値にCurOの値を上書きする。   Since this variable delay only introduces additional delay (it does not remove the delay), a better estimate of the actual clock offset is obtained from the message with the least delay. Thus, the method 900 searches for the minimum offset value obtained during flooding as the best available estimate of the actual offset. In step 945, the receiving device compares the current offset CurO with the previously existing minimum offset, or the current iteration of this loop is the first one for the minimum offset value MinO initialized in step 910. Compare if there is. If CurO is smaller than MinO, then CurO is recognized to represent a more accurate estimate of the actual offset between the sender clock and the receiver clock, and in step 950, the receiver device determines the value of MinO. Overwrite the value of CurO.

ステップ955において、受信者装置は、送信者装置がビーコンメッセージのフラッディングを行っているかどうかを判断する。例えば、受信者装置は、さらなるビーコンメッセージを待っている時にタイムアウトが生じたかどうかを判断することができ、送信者装置がメディアメッセージを送信し始めたと判断することができ、所定数のビーコンメッセージが受け取られたと判断することができ、或いは送信側装置がフラッディングの終了を示す特別なメッセージを送信したと判断することができる。様々な実施形態では、受信者装置が、フラッディングが所望のオフセット精度を確立するのに十分であったかどうかを判断する。例えば、受信者装置は、ビーコンメッセージが受け取られた間隔を追跡し、この測定された間隔と既知の時間間隔との比較に基づいて、ネットワークが所望の精度のオフセット値を生じるほど十分に安定していたかどうかを判断することができる。ネットワークが十分に安定していなかった場合、受信側装置は、さらなるフラッディングを行うべきである旨を示すメッセージを送信側装置に送信する。様々な修正が明らかであろう。本明細書の教示に照らせば、ビーコンメッセージのフラッディングが十分であるかどうかを判定するためのこれらの及びその他の方法の様々な組み合わせを採用できることが明らかであろう。   In step 955, the recipient device determines whether the sender device is flooding a beacon message. For example, the receiver device can determine whether a timeout has occurred while waiting for a further beacon message, can determine that the sender device has begun to send a media message, and a predetermined number of beacon messages It can be determined that it has been received, or it can be determined that the sending device has sent a special message indicating the end of flooding. In various embodiments, the recipient device determines whether the flooding was sufficient to establish the desired offset accuracy. For example, the receiver device tracks the interval at which beacon messages are received and is sufficiently stable that the network produces an offset value of the desired accuracy based on a comparison of this measured interval with a known time interval. It can be judged whether or not it was. If the network is not sufficiently stable, the receiving device sends a message to the sending device indicating that further flooding should be performed. Various modifications will be apparent. In light of the teachings herein, it will be apparent that various combinations of these and other methods for determining whether beacon message flooding is sufficient can be employed.

受信側装置が、さらなるフラッディングが行われている又は行われる予定であると判断した場合、方法900は、ステップ955からステップ915に戻ってさらなるビーコンメッセージを処理する。そうでなければ、方法900はステップ960に進み、受信側装置は、決定された最小オフセットに基づいてローカルクロックをリセットする。例えば、受信側装置は、現在のクロック値からMinOを減算して、送信側装置の実際のクロック値に近いと推定される新たな値にローカルクロックを設定することができる。ネットワークの固定遅延が分かっている又は推定されるいくつかの実施形態では、受信側装置が、現在のクロック値からMinOを減算し、固定遅延値に再加算して、計算されたオフセット値から実際のクロックオフセット値を分離しようと試みる。いくつかの実施形態では、受信側装置が、ローカルクロックの変更を全く行わず、代わりに送信者装置から受け取ったタイムスタンプとローカルクロックの比較において使用する最小オフセット値MinOを維持することができる。例えば、受信側装置は、あらゆるこのような比較の前にタイムスタンプにMinOを加算することができる。他の様々な修正が明らかであろう。方法900は、ステップ965に進んで終了することができる。   If the receiving device determines that further flooding is or will be performed, the method 900 returns from step 955 to step 915 to process further beacon messages. Otherwise, the method 900 proceeds to step 960 and the receiving device resets the local clock based on the determined minimum offset. For example, the receiving device can subtract MinO from the current clock value and set the local clock to a new value that is estimated to be close to the actual clock value of the transmitting device. In some embodiments where the fixed delay of the network is known or estimated, the receiving device subtracts MinO from the current clock value and re-adds it to the fixed delay value to actually calculate from the calculated offset value. Attempts to isolate the clock offset value of. In some embodiments, the receiving device does not change the local clock at all, but instead maintains a minimum offset value MinO for use in comparing the local clock with the timestamp received from the sender device. For example, the receiving device can add MinO to the time stamp before any such comparison. Various other modifications will be apparent. Method 900 may proceed to step 965 and end.

様々な別の実施形態では、受信側装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットがクロックのリセットに使用されないことを確実にするよう支援する。例えば、フラッディング期間が高可変ネットワーク遅延期間に含まれる場合、計算されたオフセットが、送信者クロックと受信者クロックの間の実際のオフセット値よりも大きくなることがある。いくつかのこのような実施形態では、受信者が、最初にステップ940〜950で計算された最小オフセットを以前に設定された下限オフセットと比較して、最小オフセットが下限オフセットよりも大きいかどうかを判定する。大きい場合、受信者は、この最小オフセットに基づいてクロックを更新することを拒否し、以前に設定された下限を使用し続ける。そうでなければ、この最小オフセット値は下限よりも小さく、従って下限よりも良好な推定値であるので、受信者は、ステップ960に詳述するようにクロックを更新する。下限を決定するための例示的な方法については、以下で図11に関連して詳細に説明する。   In various other embodiments, the receiving device utilizes a previously set lower limit offset to help ensure that an unreasonably large offset calculated during the flooding period is not used to reset the clock. To do. For example, if the flooding period is included in the highly variable network delay period, the calculated offset may be greater than the actual offset value between the sender clock and the receiver clock. In some such embodiments, the receiver first compares the minimum offset calculated in steps 940-950 with a previously set lower limit offset to determine whether the minimum offset is greater than the lower limit offset. judge. If so, the recipient refuses to update the clock based on this minimum offset and continues to use the previously set lower bound. Otherwise, the minimum offset value is less than the lower limit and is therefore a better estimate than the lower limit, so the receiver updates the clock as detailed in step 960. An exemplary method for determining the lower limit is described in detail below in connection with FIG.

様々な実施形態では、受信側装置が、方法900を定期的に実行して同期を再確立する。いくつかのこのような実施形態では、受信側装置が、クロックをその元々の値にリセットし、記憶されているオフセット値を削除し、又は方法900の以前の実行に基づいて行われたあらゆる変更を別様に「巻き戻し」して、クロックオフセットの決定の「やり直し」を行う。受信側装置は、クロックオフセットを定期的に再設定することにより、送信側装置のクロックと受信側装置のクロックとの間のクロックドリフトをより良く考慮することができる。   In various embodiments, the receiving device periodically performs method 900 to reestablish synchronization. In some such embodiments, the receiving device resets the clock to its original value, deletes the stored offset value, or any changes made based on previous executions of the method 900. Is “rewinded” differently, and “redo” is performed to determine the clock offset. The receiving device can better consider the clock drift between the clock of the transmitting device and the clock of the receiving device by periodically resetting the clock offset.

本明細書の教示に照らせば、方法900は、各ビーコンメッセージを受け取り時に処理するリアルタイム方法として説明されるのに対し、様々な別の実施形態は、ビーコンメッセージをバッチとして処理する方法を利用することが明らかであろう。例えば、いくつかのこのような実施形態では、受信側装置が、複数のビーコンメッセージを受け取り、受け取った時点でメッセージにタイムスタンプを行い、その後の時点で、ステップ925〜960に関して説明した方法と同様の方法で、受け取ったメッセージを順に処理して最小オフセットを見つけ出す。   In light of the teachings herein, method 900 is described as a real-time method of processing each beacon message as it is received, while various other embodiments utilize a method of processing beacon messages as a batch. It will be clear. For example, in some such embodiments, the receiving device receives a plurality of beacon messages, time stamps the messages as they are received, and thereafter, similar to the method described with respect to steps 925-960. In this way, the received messages are processed in order to find the minimum offset.

上述の方法は、2つの装置間の最良のクロックオフセット推定値を生成しようと試みるものであると理解されるであろう。この初期フラッディング期間後にはネットワーク状態が一時的に改善され、後でより良好な推定値を取得できる可能性がある。従って、初期タイミングパラメータ設定後には、クロックオフセットをより良く推定しようと試みる方法を採用することができる。このような方法は、水晶、温度又はその他のパラメータの違いによって送信側装置のクロックと受信側装置のクロックがわずかに異なる速度で動作することがあるクロックドリフトの可能性に対処することもできる。   It will be appreciated that the method described above attempts to generate the best clock offset estimate between the two devices. After this initial flooding period, the network condition may be temporarily improved and a better estimate may be obtained later. Therefore, after the initial timing parameter is set, a method of trying to estimate the clock offset better can be adopted. Such a method may also address the possibility of clock drift, where the transmitter and receiver clocks may operate at slightly different speeds due to differences in crystal, temperature or other parameters.

図10に、メディアストリーミング中に受信側メディア装置が良好な再生同期を取得するための例示的な方法1000を示す。例示的な方法1000は、例えば、例示的な環境100のメディアゲートウェイ104又はその他のメディアノード104、106などの、受信側メディア装置として機能するいずれかのメディア装置によって実行することができる。方法1000は、例示的な方法700のステップ780の一部として、又はメディア装置間におけるタイミングパラメータの同期が適切なあらゆる時点で実行することができる。   FIG. 10 illustrates an example method 1000 for a receiving media device to obtain good playback synchronization during media streaming. The example method 1000 may be performed by any media device that functions as a receiving media device, such as, for example, the media gateway 104 or other media nodes 104, 106 of the example environment 100. The method 1000 may be performed as part of step 780 of the exemplary method 700 or at any time when timing parameter synchronization between media devices is appropriate.

方法1000は、ステップ1005から開始してステップ1010に進み、受信側装置が、送信側装置からメディアデータパケットを受け取る。次に、ステップ1015において、受信側装置は、受信側装置のクロックによって現在示されている時刻に基づいてタイムスタンプR(x)を生成する。ステップ1020において、受信側装置は、メディアデータメッセージから送信者タイムスタンプ「S(x)」を抽出する。送信者タイムスタンプは、送信者装置によって送信の直前にメディアデータメッセージに挿入しておくことができる。ステップ1025において、受信側装置は、送信側装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。例えば、受信側装置が仮想メディアネットワークのゲートウェイとして動作している場合、受信側装置は、送信側装置がメディアソースであると判断することができる。このような場合、方法1000はステップ1030に進む。次に、受信側装置は、送信者タイムスタンプを、送信側装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換では、2つの装置間で以前にネゴシエートされたオフセットを加算又は減算することができる。このような時間領域間のネゴシエーション及び変換は、当業者に周知のあらゆる方法に従って行うことができる。いくつかの別の実施形態では、ソース装置とメディアノードが同じ時間領域でクロックを維持する。このようないくつかの実施形態では、ステップ1020、1030が存在する。   Method 1000 starts at step 1005 and proceeds to step 1010, where the receiving device receives a media data packet from the sending device. Next, in step 1015, the receiving device generates a time stamp R (x) based on the time currently indicated by the clock of the receiving device. In step 1020, the receiving device extracts the sender timestamp “S (x)” from the media data message. The sender time stamp can be inserted into the media data message immediately before transmission by the sender device. In step 1025, the receiving device determines whether the sending device is a media source of the virtual media network. For example, if the receiving device is operating as a gateway for a virtual media network, the receiving device can determine that the sending device is the media source. In such a case, method 1000 proceeds to step 1030. Next, the receiving device converts the sender time stamp from the time domain of the transmitting device to the time domain of the virtual media network. Such a conversion can add or subtract an offset previously negotiated between the two devices. Such negotiation and conversion between time domains can be performed according to any method known to those skilled in the art. In some other embodiments, the source device and the media node maintain a clock in the same time domain. In some such embodiments, steps 1020, 1030 are present.

方法1000は、ステップ1030において送信者タイムスタンプを仮想メディアネットワークドメインに変換した後、或いはステップ1025において送信者がメディアソースではないと判断した後にステップ1035に進み、受信側装置は、送信者タイムスタンプ及び受信者タイムスタンプに基づいて、例えばこれら2つのタイムスタンプの差分などのオフセット値を計算する。送信者タイムスタンプが変換されている場合、この変換されたタイムスタンプがオフセットの計算において使用される。このオフセット値「O」は、送信者クロックと受信者クロックの間の実際のオフセットと、メディアデータメッセージが直面する2つのタイムスタンプS(x)及びR(x)の作成間の、固定遅延及び可変遅延の両方を含むあらゆる遅延とを加えたものに相当する。ステップ1040において、受信側装置は、このオフセット値が以前に利用したオフセット値よりも良好なクロック間のオフセット推定を表しているかどうかを判断する。例えば、以前に決定された最小オフセットを用いて受信側装置のクロックをリセットする様々な実施形態では、受信側装置が、現在のオフセットOがゼロ未満であるかどうかを判定する。この比較における肯定的な結果は、以前に使用した最小オフセットに何らかの可変ネットワーク遅延が組み込まれており、この可変ネットワーク遅延をローカルクロックから減算すると理想的な設定点を「超過」してしまい、これによりローカルクロックが送信者のクロックに遅れて設定されることを示す。現在のオフセットOは、以前に使用した最小値よりも少ない(又はゼロの)可変遅延を組み込むことにより、負の数字であることによってこの超過を明らかにすることができる。このような場合、現在のオフセットOは、実際のクロックオフセットの新たな最良の推定値を示すと判断され、ステップ1045において、このオフセットOを用いて再びローカルクロックをリセットすることにより、前回の超過を少なくとも部分的に是正することができる。他の実施形態のための様々な修正が明らかであろう。例えば、以前に決定された最小オフセットがローカルクロックの修正に使用されずにタイムスタンプの比較において使用され続ける実施形態では、ステップ1040において、現在のオフセットOがそれまでの最小オフセットMinOよりも小さいかどうかが判定され、小さい場合には、ステップ1045において、受信側装置がMinOを0に等しく設定する。様々な他の修正が明らかであろう。   The method 1000 proceeds to step 1035 after converting the sender timestamp to the virtual media network domain in step 1030, or after determining in step 1025 that the sender is not a media source, and the receiving device sends the sender timestamp Based on the recipient time stamp, an offset value such as the difference between the two time stamps is calculated. If the sender time stamp has been converted, this converted time stamp is used in the offset calculation. This offset value “O” is the fixed offset between the actual offset between the sender clock and the receiver clock and the creation of the two timestamps S (x) and R (x) encountered by the media data message and It corresponds to the sum of all delays including both variable delays. In step 1040, the receiving device determines whether this offset value represents an offset estimate between clocks that is better than the previously utilized offset value. For example, in various embodiments that reset the receiving device's clock using a previously determined minimum offset, the receiving device determines whether the current offset O is less than zero. The positive result of this comparison is that some of the previously used minimum offset incorporates some variable network delay, and subtracting this variable network delay from the local clock will “exceed” the ideal setpoint. Indicates that the local clock is set later than the sender's clock. The current offset O can account for this excess by being a negative number by incorporating a variable delay that is less (or zero) than the previously used minimum. In such a case, it is determined that the current offset O represents the new best estimate of the actual clock offset, and in step 1045 the previous clock is exceeded by resetting the local clock again with this offset O. Can be at least partially rectified. Various modifications for other embodiments will be apparent. For example, in an embodiment where the previously determined minimum offset is not used for local clock correction and continues to be used in the timestamp comparison, in step 1040 is the current offset O less than the previous minimum offset MinO? In step 1045, the receiving side apparatus sets MinO to be equal to zero. Various other modifications will be apparent.

様々な別の実施形態では、受信側装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットがクロックのリセットに使用されないことを確実にするよう支援する。いくつかのこのような実施形態では、受信者が、最初にステップ1035で計算されたオフセットを以前に設定された下限オフセットと比較して、このオフセットが下限オフセットよりも良好な実際のオフセットの推定を表すかどうかを判定する。表す場合、受信者は、この最小オフセットに基づいてクロックを更新することを拒否し、以前に設定された下限を使用し続ける。そうでなければ、このオフセット値は下限よりも良好な推定であるので、受信者は、ステップ1045に詳述するようにクロックを更新する。下限を決定するための例示的な方法については、以下で図11に関連して詳細に説明する。   In various other embodiments, the receiving device utilizes a previously set lower limit offset to help ensure that an unreasonably large offset calculated during the flooding period is not used to reset the clock. To do. In some such embodiments, the receiver first compares the offset calculated in step 1035 to a previously set lower limit offset, and estimates that this offset is better than the lower limit offset. Whether or not is represented. If so, the recipient refuses to update the clock based on this minimum offset and continues to use the previously set lower bound. Otherwise, the offset value is a better estimate than the lower limit, so the receiver updates the clock as detailed in step 1045. An exemplary method for determining the lower limit is described in detail below in connection with FIG.

ステップ1050において、受信側装置は、受け取ったメディアパケットの処理に進み、例えば適当な時点でメディア出力をレンダリングする。例えば、受信側装置は、提示時刻を抽出して、メディアデータパケットから送信者タイムスタンプと受信者タイムスタンプを分離することができる。このような提示時刻は、メッセージによって搬送されるメディアデータをレンダリングすべき時刻を示す。受信側装置は、提示時刻を抽出した後、この提示時刻と一致する時刻にメディアデータをレンダリングする。例えば、受信側装置は、ローカル再生装置によって再生されるようにメディアデータをバッファに記憶することができ、或いはメッセージが再生されるように別のメディアノードに転送することもできる。提示時刻と「一致」する現在時刻は、現在時刻と提示タイムスタンプが等しいことを含むことができるが、他の形の一致を含むこともできる。例えば、様々な実施形態では、現在時刻から存続中の最小オフセット値を差し引いたものが提示タイムスタンプに等しい時に現在時刻が一致する。これに加えて、又はこれとは別に、一致のための比較は、固定遅延値を加算し、減算し、又は別様に考慮する。ローカルクロック、提示タイムスタンプ、及びその他の潜在的に利用可能な値に基づいて再生に適した時刻を決定するための他の様々な方法が明らかであろう。さらに、現在時刻が最小オフセットに基づいて提示時刻に一致するという概念は、以前に最小オフセット値によって修正されたローカルクロックを利用する比較が、その他の点では最小オフセット値を明確に考慮しないことを含むと理解されるであろう。様々な実施形態は、適当な時点で確実にデータが出力されるように、出力の直前にこのような比較を行う。他の実施形態は、このような比較を使用して、メディアが提示時刻に再生される可能性が高い再生バッファ内の位置にメディアデータを挿入する。このような挿入は、再生タイミングを調整するために、メディアデータの挿入前に「ダミー」データを挿入することを含むことができる。バッファ内のデータの再生タイミングを制御する様々な追加方法が明らかであろう。   In step 1050, the receiving device proceeds to process the received media packet, eg, renders the media output at an appropriate time. For example, the receiving device can extract the presentation time and separate the sender time stamp and the receiver time stamp from the media data packet. Such a presentation time indicates a time at which the media data carried by the message should be rendered. The receiving device extracts the presentation time, and then renders the media data at a time that matches the presentation time. For example, the receiving device can store the media data in a buffer for playback by the local playback device, or can forward the message to another media node for playback. The current time that “matches” the presentation time can include equality of the current time and the presentation timestamp, but can also include other forms of matching. For example, in various embodiments, the current time matches when the current time minus the minimum remaining offset value is equal to the presentation timestamp. In addition or alternatively, the comparison for matching adds, subtracts, or otherwise considers a fixed delay value. Various other methods for determining a suitable time for playback based on the local clock, the presentation time stamp, and other potentially available values will be apparent. Furthermore, the notion that the current time matches the presentation time based on the minimum offset is that comparisons using a local clock previously modified with the minimum offset value do not explicitly account for the minimum offset value otherwise. It will be understood to include. Various embodiments make such comparisons immediately before output to ensure that the data is output at the appropriate time. Other embodiments use such a comparison to insert media data at a location in the playback buffer where the media is likely to be played at the presentation time. Such insertion may include inserting “dummy” data before inserting media data to adjust playback timing. Various additional methods for controlling the playback timing of the data in the buffer will be apparent.

図11に、下限オフセットを決定する例示的な方法1100を示す。上述したように、様々な別の実施形態は、より良好なクロックオフセット推定を求めるために、ビーコンフラッディング及びメディアパケットの分析前に下限オフセットをさらに設定する。例示的な方法1100は、例えば、例示的な環境100のメディアゲートウェイ104又はその他のメディアノード104、106などの、受信側メディア装置として機能するいずれかのメディア装置によって実行することができる。方法1100は、例示的な方法700のステップ710の一部として、又はメディア装置間におけるタイミングパラメータの同期が適切なあらゆる時点で実行することができる。   FIG. 11 illustrates an exemplary method 1100 for determining a lower limit offset. As described above, various alternative embodiments further set a lower limit offset prior to beacon flooding and analysis of media packets in order to obtain a better clock offset estimate. The example method 1100 may be performed by any media device that functions as a receiving media device, such as, for example, the media gateway 104 or other media nodes 104, 106 of the example environment 100. The method 1100 may be performed as part of step 710 of the exemplary method 700 or at any point where timing parameter synchronization between media devices is appropriate.

方法1100は、ステップ1105から開始してステップ1110に進み、受信側装置は、送信側装置からのハンドシェークメッセージを受け取ることによって下限を計算するように、受信側装置と送信側装置間の往復輸送からタイムスタンプを収集し始める。様々な実施形態では、このハンドシェークメッセージが、ビーコンメッセージ又はメディアデータパケットが送信されるチャネルとは異なるチャネルを介して送信される。例えば、Bluetoothチャネルを介してハンドシェークメッセージを送信する一方で、WiFiチャネルを介してビーコンメッセージ及びメディアデータパケットメッセージを送信することができる。送信者は、使用するハンドシェークプロトコルの一部として、送信者がハンドシェークメッセージを送信した送信者クロックに従う時刻を示すタイムスタンプt1をハンドシェークメッセージに含める。次に、ステップ1115において、受信者は、ステップ1110のハンドシェークメッセージの受信に近い時刻に、受信者クロックに従う受信タイムスタンプt2を記録する。   The method 1100 begins at step 1105 and proceeds to step 1110, where the receiving device calculates from the round trip transport between the receiving device and the sending device so as to calculate a lower bound by receiving a handshake message from the sending device. Start collecting time stamps. In various embodiments, this handshake message is transmitted over a channel that is different from the channel on which the beacon message or media data packet is transmitted. For example, a handshake message can be transmitted over a Bluetooth channel while a beacon message and a media data packet message can be transmitted over a WiFi channel. As a part of the handshake protocol to be used, the sender includes in the handshake message a time stamp t1 indicating the time according to the sender clock at which the sender sent the handshake message. Next, in step 1115, the receiver records a reception time stamp t2 according to the receiver clock at a time close to the reception of the handshake message in step 1110.

次に、受信者装置は、受信者が送信者にハンドシェークメッセージを再送する受信者クロックに従う時刻を示すタイムスタンプt3をステップ1120において生成することにより、送信者装置にハンドシェークメッセージを返送する準備を行う。いくつかの実施形態では、受信者が、送信者から受け取ったハンドシェークメッセージ又は新たに生成されたハンドシェークメッセージにタイムスタンプt3を挿入することができる。次に、ステップ1125において、受信者は、タイムスタンプt4の生成に近い時刻に、送信者にハンドシェークメッセージを送信する。次に、ステップ1130において、受信者は、再び送信者からのハンドシェークメッセージを受け取ることができる。この時点で、ハンドシェークメッセージは、送信者がハンドシェークメッセージを処理するステップの一部として、送信者がハンドシェークメッセージを受け取った時刻を示す送信者クロックに従うタイムスタンプt4を含む。   Next, the receiver device prepares to return the handshake message to the sender device by generating in step 1120 a time stamp t3 indicating the time according to the receiver clock at which the receiver resends the handshake message to the sender. . In some embodiments, the recipient can insert the time stamp t3 into a handshake message received from the sender or a newly generated handshake message. Next, in step 1125, the receiver sends a handshake message to the sender at a time close to the generation of the time stamp t4. Next, in step 1130, the recipient can again receive a handshake message from the sender. At this point, the handshake message includes a time stamp t4 according to the sender clock indicating the time when the sender received the handshake message as part of the step of the sender processing the handshake message.

後述するように、これらの4つのタイムスタンプt1〜t4を用いて下限オフセットを計算することができる。しかしながら、いくつかの実施形態では、最初に受信者装置がタイムスタンプt1〜t4を用いて、ハンドシェークメッセージが体験するネットワーク輸送時間を計算し、ハンドシェークプロセス中のネットワーク遅延が、正確な又は別様に許容できる下限をもたらすほど十分に低かったどうかを判断する。従って、受信者装置は、ステップ1135において、輸送時間=((t2−t1)+(t4−t3))/2という式を用いて輸送時間を計算する。次に、受信者は、例えば輸送時間が所定の閾値よりも短いかどうかを判断することにより、計算された輸送時間が許容できるものであるかどうかを判断する。計算された輸送時間が許容できない場合、受信者装置は、ステップ1145において、再びハンドシェークプロセスを試行するように送信者に指示し、ステップ1110に戻ってこのプロセスを再試行する。一方、ネットワーク輸送時間が許容できるものである場合、受信者は、ステップ1150において、下限オフセット=((t2−t1)−(t4−t3))/2という式を用いて、タイムスタンプを使用して下限オフセットを計算する。その後、方法はステップ1155に進んで終了する。   As will be described later, the lower limit offset can be calculated using these four time stamps t1 to t4. However, in some embodiments, the recipient device first uses the time stamps t1-t4 to calculate the network transit time experienced by the handshake message so that the network delay during the handshake process is accurate or otherwise Determine if it was low enough to provide an acceptable lower limit. Accordingly, in step 1135, the receiver device calculates the transport time using the formula transport time = ((t2−t1) + (t4−t3)) / 2. The recipient then determines whether the calculated transport time is acceptable, for example by determining whether the transport time is shorter than a predetermined threshold. If the calculated transit time is unacceptable, the recipient device instructs the sender to try the handshake process again at step 1145 and returns to step 1110 to retry the process. On the other hand, if the network transit time is acceptable, the recipient uses the time stamp in step 1150 using the lower limit offset = ((t2-t1)-(t4-t3)) / 2 formula. To calculate the lower limit offset. Thereafter, the method proceeds to step 1155 and ends.

いくつかの実施形態では、送信者クロックが受信者クロックよりも遅れている場合があり、従って受信者装置によって生成されるタイムスタンプの方が送信者装置によって生成されるタイムスタンプよりも小さくなることが明らかであろう。上記の下限クロックオフセットの式は、計算された値の符号に基づいてクロック調整の方向を示すことができると理解されるであろう。いくつかの実施形態では、受信者装置が、相対的な調整方向ではなく大きさのみが比較されるように、様々な計算されたオフセットを比較してどのオフセットがより良好な推定であるかを判断する際に絶対値を利用することができる。   In some embodiments, the sender clock may be behind the receiver clock, so that the timestamp generated by the receiver device is smaller than the timestamp generated by the sender device. Will be clear. It will be appreciated that the above lower limit clock offset equation can indicate the direction of clock adjustment based on the sign of the calculated value. In some embodiments, the receiver device compares the various calculated offsets so that only the magnitude is compared, not the relative adjustment direction, and which offset is a better estimate. The absolute value can be used in the determination.

様々な実施形態では、受信側装置が、方法1100を定期的に実行して同期を再確立する。いくつかのこのような実施形態では、受信側装置が、クロックをその元々の値にリセットし、記憶されている下限オフセット値を削除し、又は方法1100の以前の実行に基づいて行われたあらゆる変更を別様に「巻き戻し」して、クロックオフセットの決定の「やり直し」を行う。受信側装置は、下限オフセットを定期的に再設定することにより、送信側装置のクロックと受信側装置のクロックとの間のクロックドリフトをより良く考慮することができる。   In various embodiments, the receiving device periodically performs method 1100 to reestablish synchronization. In some such embodiments, the receiving device resets the clock to its original value, deletes the stored lower offset value, or any that has been done based on a previous execution of the method 1100. “Rewind” the change differently and “redo” to determine the clock offset. The receiving side apparatus can better consider the clock drift between the clock of the transmitting side apparatus and the clock of the receiving side apparatus by periodically resetting the lower limit offset.

以上に照らして、様々な実施形態は、可変遅延を示すネットワークに属するメディア装置間におけるメディア再生の同期を可能にする。例えば、受信側装置が複数のメッセージから最小クロックオフセットを識別する一方向同期法を実装することにより、クロック同期に対する可変遅延の影響を低減することができる。さらに、受信側装置は、メディアストリームが開始された後に、より良好な同期パラメータを継続的に探索することにより、クロックドリフトを考慮しながら同期を改善することができる。上記に照らして様々な追加の利点が明らかであろう。   In light of the above, various embodiments allow for synchronization of media playback between media devices belonging to a network exhibiting variable delay. For example, the effect of variable delay on clock synchronization can be reduced by implementing a one-way synchronization method in which the receiving device identifies the minimum clock offset from multiple messages. Further, the receiving device can improve synchronization while considering clock drift by continuously searching for better synchronization parameters after the media stream is started. Various additional advantages will be apparent in light of the above.

上述の説明から、本発明の様々な例示的な実施形態をハードウェアで実装できることが明らかであろう。また、様々な例示的な実施形態は、少なくとも1つのプロセッサによって読み取られ、本明細書で詳述した動作を行うように実行することができる、機械可読記憶媒体に記憶された命令として実装することもできる。機械可読記憶媒体は、パーソナルコンピュータ又はラップトップコンピュータ、サーバ又はその他のコンピュータ装置などの機械によって読み取ることができる形で情報を記憶するためのいずれかの機構を含むことができる。従って、有形の非一時的機械可読記憶媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス及び同様の記憶媒体を含むことができる。さらに、本明細書で使用した「プロセッサ」という用語は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は本明細書で説明した機能を実行できる他のあらゆる装置を含むと理解されるであろう。   From the foregoing description, it will be apparent that various exemplary embodiments of the invention may be implemented in hardware. Also, the various exemplary embodiments are implemented as instructions stored on a machine-readable storage medium that can be read by at least one processor and executed to perform the operations detailed herein. You can also. A machine-readable storage medium may include any mechanism for storing information in a form readable by a machine, such as a personal or laptop computer, server or other computing device. Thus, tangible non-transitory machine readable storage media may include read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices and similar storage media. Further, as used herein, the term “processor” refers to a microprocessor, field programmable gate array (FPGA), application specific integrated circuit (ASIC), or any other device capable of performing the functions described herein. Will be understood to include.

当業者であれば、本明細書におけるあらゆるブロック図は、本発明の原理を具体化する例示的な回路の概念図を表すものであると理解するであろう。同様に、あらゆるフローチャート、フロー図、状態遷移図及び疑似コードなどは、実質的に機械可読媒体内で表現することができ、従ってコンピュータ又はプロセッサを明示的に図示しているかどうかに関わらず、このようなコンピュータ又はプロセッサによって実行できる様々な処理を表すものであると理解されるであろう。   Those skilled in the art will appreciate that any block diagram herein represents a conceptual diagram of an exemplary circuit embodying the principles of the present invention. Similarly, any flowcharts, flow diagrams, state transition diagrams, pseudo code, etc. may be represented in substantially machine-readable media, and thus, whether or not explicitly depicted a computer or processor. It will be understood that it represents various processes that can be performed by such a computer or processor.

本発明のいくつかの例示的な態様を具体的に参照しながら様々な例示的な実施形態を詳細に説明したが、本発明では他の実施形態も可能であり、その詳細は様々な明白な点で修正することができると理解されたい。当業者には容易に明らかなように、本発明の思想及び範囲から逸脱することなく変形及び修正を行うことができる。従って、上述の開示、説明及び図は例示を目的とするものにすぎず、特許請求の範囲のみによって規定される本発明を決して限定するものではない。   Although various exemplary embodiments have been described in detail with particular reference to certain exemplary aspects of the invention, other embodiments are possible in the invention, the details of which are not It should be understood that the point can be modified. It will be readily apparent to those skilled in the art that variations and modifications can be made without departing from the spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and figures are for illustrative purposes only and are in no way intended to limit the invention, which is defined solely by the claims.

100 例示的な環境
102a メディアソース
102b メディアソース
104a リビングルームのゲートウェイ
104b 寝室のゲートウェイ
106a オフィスのレンダラ
106b キッチンのレンダラ
106c ゲスト用寝室のレンダラ
108 ステレオ受信機
110 スピーカ
100 Exemplary Environment 102a Media Source 102b Media Source 104a Living Room Gateway 104b Bedroom Gateway 106a Office Renderer 106b Kitchen Renderer 106c Guest Bedroom Renderer 108 Stereo Receiver 110 Speakers

Claims (15)

送信側メディア装置と受信側メディア装置の間でメディア再生を同期させる方法であって、
前記受信側メディア装置において、前記送信側メディア装置から複数の送信側タイムスタンプを含む複数のメッセージを受け取るステップと、
前記複数の送信側タイムスタンプと前記受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成するステップと、
前記複数のクロックオフセット値から最小クロックオフセット値を識別するステップと、
再生用の第1のメディアデータと、該第1のメディアデータに関連する第1の提示時刻とを定めるステップと、
前記最小クロックオフセットに基づいて前記第1の提示時刻に一致する第1の時刻に、前記第1のメディアデータがレンダリングされるようにするステップと、
を含むことを特徴とする方法。
A method of synchronizing media playback between a sending media device and a receiving media device, comprising:
Receiving a plurality of messages including a plurality of sender timestamps from the sender media device at the receiver media device;
Generating a plurality of clock offset values based on the plurality of transmitting time stamps and the clock of the receiving media device;
Identifying a minimum clock offset value from the plurality of clock offset values;
Determining first media data for reproduction and a first presentation time associated with the first media data;
Causing the first media data to be rendered at a first time that matches the first presentation time based on the minimum clock offset;
A method comprising the steps of:
前記最小クロックオフセット値を識別するステップは、
前記複数のクロックオフセット値のうちの第1のクロックオフセット値を生成するステップと、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定するステップと、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定した後に、前記複数のクロックオフセット値のうちの第2のクロックオフセット値を生成するステップと、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいと判定するステップと、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいという判定に基づいて、前記最小クロックオフセット値を前記第2のクロックオフセット値に等しく設定するステップと、
を含むことを特徴とする請求項1に記載の方法。
Identifying the minimum clock offset value comprises:
Generating a first clock offset value of the plurality of clock offset values;
Setting the minimum clock offset value equal to the first clock offset value;
Generating a second clock offset value of the plurality of clock offset values after setting the minimum clock offset value equal to the first clock offset value;
Determining that the second clock offset value is less than the minimum clock offset value;
Setting the minimum clock offset value equal to the second clock offset value based on a determination that the second clock offset value is less than the minimum clock offset value;
The method of claim 1, comprising:
前記受信側メディア装置の前記クロックの前記値から前記最小オフセット値を減算することにより、前記クロックの前記値を修正するステップをさらに含み、
前記最小クロックオフセット値に基づいて前記第1の提示時刻に一致する前記第1の時刻は、前記第1の提示時刻に一致する前記クロックの前記値を含む、
ことを特徴とする請求項1に記載の方法。
Modifying the value of the clock by subtracting the minimum offset value from the value of the clock of the receiving media device;
The first time that matches the first presentation time based on the minimum clock offset value includes the value of the clock that matches the first presentation time;
The method according to claim 1.
前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記方法は、
前記第1の複数のメッセージが到着する間隔についての第1の測定値を生成するステップと、
前記第1の複数のメッセージが到着する間隔についての前記第1の測定値が、ネットワークが不安定であることを示していると判定するステップと、
前記送信側メディア装置に追加メッセージを送信するように指示するステップと、
前記送信側メディア装置に追加メッセージを送信するように指示した後に、前記第2の複数のメッセージが到着する間隔についての第2の測定値を生成するステップと、
前記第2の複数のメッセージが到着する間隔についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定するステップと、
をさらに含み、
前記複数のクロックオフセット値から最小クロックオフセット値を識別するステップは、前記第2の複数のメッセージに関連する前記複数のクロックオフセット値のうちの少なくとも1つのクロックオフセット値を利用するステップを含む、
ことを特徴とする請求項1に記載の方法。
The plurality of messages includes a first plurality of messages and a second plurality of messages, the method comprising:
Generating a first measurement for the interval at which the first plurality of messages arrive;
Determining that the first measurement for the interval at which the first plurality of messages arrive indicates that the network is unstable;
Instructing the sending media device to send an additional message;
Generating a second measurement for the interval at which the second plurality of messages arrive after instructing the sending media device to send an additional message;
Determining that the second measurement for the interval at which the second plurality of messages arrives indicates that the network is stable;
Further including
Identifying a minimum clock offset value from the plurality of clock offset values comprises utilizing at least one clock offset value of the plurality of clock offset values associated with the second plurality of messages;
The method according to claim 1.
前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記方法は、
前記送信側メディア装置により、前記第1の複数のメッセージを送信するステップと、 前記送信側メディア装置により、前記第1の複数のメッセージの送信に関連するネットワーク性能についての第1の測定値を生成するステップと、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示していると判定するステップと、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示しているという判定に基づいて、前記送信側メディア装置により、前記第2の複数のメッセージを送信するステップと、
前記送信側メディア装置により、前記第2の複数のメッセージの送信に関連するネットワーク性能についての第2の測定値を生成するステップと、
前記ネットワーク性能についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定するステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
The plurality of messages includes a first plurality of messages and a second plurality of messages, the method comprising:
Transmitting the first plurality of messages by the transmitting media device; and generating a first measurement value for network performance associated with transmitting the first plurality of messages by the transmitting media device. And steps to
Determining that the first measurement of the network performance indicates that the network is unstable;
Transmitting the second plurality of messages by the transmitting media device based on a determination that the first measurement of the network performance indicates that the network is unstable;
Generating, by the sending media device, a second measurement for network performance associated with sending the second plurality of messages;
Determining that the second measurement of the network performance indicates that the network is stable;
The method of claim 1 further comprising:
メディア再生を送信側メディア装置と同期させるための受信側メディア装置であって、 再生用のメディアデータを記憶するように構成されたメモリと、
前記送信側メディア装置と通信するように構成されたネットワークインターフェイスと、
プロセッサと、
を備え、前記プロセッサは、
前記ネットワークインターフェイスを介して、前記送信側メディア装置から、複数の送信側タイムスタンプを含む複数のメッセージを受け取り、
前記複数の送信側タイムスタンプと、前記受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成し、
前記複数のクロックオフセット値から最小クロックオフセット値を識別し、
再生用の第1のメディアデータと、該第1のメディアデータに関連する第1の提示時刻とを定め、
前記最小クロックオフセット値に基づいて前記第1の提示時刻に一致する第1の時刻に、前記第1のメディアデータがレンダリングされるようにする、
ように構成される、
ことを特徴とする受信側メディア装置。
A receiving media device for synchronizing media playback with a transmitting media device, the memory configured to store media data for playback;
A network interface configured to communicate with the sending media device;
A processor;
The processor comprises:
Receiving a plurality of messages including a plurality of sender timestamps from the sender media device via the network interface;
Generating a plurality of clock offset values based on the plurality of sender timestamps and the clock of the receiver media device;
Identifying a minimum clock offset value from the plurality of clock offset values;
Defining first media data for reproduction and a first presentation time associated with the first media data;
The first media data is rendered at a first time coinciding with the first presentation time based on the minimum clock offset value;
Configured as
A receiving-side media device.
前記プロセッサは、前記最小クロックオフセット値を識別する際に、
前記複数のクロックオフセット値のうちの第1のクロックオフセット値を生成し、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定し、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定した後に、前記複数のクロックオフセット値のうちの第2のクロックオフセット値を生成し、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいと判定し、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいという判定に基づいて、前記最小クロックオフセット値を前記第2のクロックオフセット値に等しく設定する、
ように構成されることを特徴とする請求項6に記載の受信側メディア装置。
When the processor identifies the minimum clock offset value,
Generating a first clock offset value of the plurality of clock offset values;
Setting the minimum clock offset value equal to the first clock offset value;
After setting the minimum clock offset value equal to the first clock offset value, generating a second clock offset value of the plurality of clock offset values;
Determining that the second clock offset value is less than the minimum clock offset value;
Setting the minimum clock offset value equal to the second clock offset value based on a determination that the second clock offset value is less than the minimum clock offset value;
7. The receiving-side media device according to claim 6, wherein the receiving-side media device is configured as described above.
前記プロセッサは、
前記受信側メディア装置の前記クロックの前記値から前記最小オフセット値を減算することにより、前記クロックの前記値を修正するようにさらに構成され、
前記最小クロックオフセット値に基づいて前記第1の提示時刻に一致する前記第1の時刻は、前記第1の提示時刻に一致する前記クロックの前記値である、
ことを特徴とする請求項6に記載の受信側メディア装置。
The processor is
Further configured to modify the value of the clock by subtracting the minimum offset value from the value of the clock of the receiving media device;
The first time that matches the first presentation time based on the minimum clock offset value is the value of the clock that matches the first presentation time;
The receiving-side media device according to claim 6.
前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記プロセッサは、
前記第1の複数のメッセージが到着する間隔についての第1の測定値を生成し、
前記第1の複数のメッセージが到着する間隔についての前記第1の測定値が、ネットワークが不安定であることを示していると判定し、
前記送信側メディア装置に追加メッセージを送信するように指示し、
前記送信側メディア装置に追加メッセージを送信するように指示した後に、前記第2の複数のメッセージが到着する間隔についての第2の測定値を生成し、
前記第2の複数のメッセージが到着する間隔についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定する、
ようにさらに構成され、
前記プロセッサは、前記複数のクロックオフセット値から最小クロックオフセット値を識別する際に、前記第2の複数のメッセージに関連する前記複数のクロックオフセット値のうちの少なくとも1つのクロックオフセット値を利用するように構成される、
ことを特徴とする請求項6に記載の受信側メディア装置。
The plurality of messages includes a first plurality of messages and a second plurality of messages, the processor comprising:
Generating a first measurement for the interval at which the first plurality of messages arrive;
Determining that the first measurement for the interval of arrival of the first plurality of messages indicates that the network is unstable;
Instructing the sending media device to send an additional message;
After instructing the sending media device to send an additional message, generating a second measurement for the interval at which the second plurality of messages arrive;
Determining that the second measurement for the interval at which the second plurality of messages arrive indicates that the network is stable;
Further configured as
The processor utilizes at least one clock offset value of the plurality of clock offset values associated with the second plurality of messages when identifying a minimum clock offset value from the plurality of clock offset values. Composed of,
The receiving-side media device according to claim 6.
請求項6に記載の前記受信側メディア装置と、
前記送信側メディア装置と、
を備え、前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記送信側メディア装置は、
前記受信側メディア装置と通信するように構成された送信側メディア装置ネットワークインターフェイスと、
送信側メディア装置プロセッサと、
を有し、前記送信側メディア装置プロセッサは、
前記第1の複数のメッセージを送信し、
前記第1の複数のメッセージの送信に関連するネットワーク性能についての第1の測定値を生成し、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示していると判定し、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示しているという判定に基づいて、前記第2の複数のメッセージを送信し、
前記第2の複数のメッセージの送信に関連するネットワーク性能についての第2の測定値を生成し、
前記ネットワーク性能についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定する、
ように構成される、
ことを特徴とするシステム。
The receiving media device of claim 6;
The transmitting media device;
The plurality of messages includes a first plurality of messages and a second plurality of messages, and the transmitting media device comprises:
A sending media device network interface configured to communicate with the receiving media device;
A sending media device processor;
The transmitting media device processor comprises:
Sending the first plurality of messages;
Generating a first measure of network performance associated with transmission of the first plurality of messages;
Determining that the first measurement of the network performance indicates that the network is unstable;
Sending the second plurality of messages based on a determination that the first measurement of the network performance indicates that the network is unstable;
Generating a second measure of network performance associated with transmission of the second plurality of messages;
Determining that the second measurement of the network performance indicates that the network is stable;
Configured as
A system characterized by that.
受信側メディア装置によって実行される、送信側メディア装置と受信側メディア装置の間でメディア再生を同期させるための命令が符号化された非一時的機械可読記憶媒体であって、
前記受信側メディア装置において、前記送信側メディア装置から複数の送信側タイムスタンプを含む複数のメッセージを受け取るための命令と、
前記複数の送信側タイムスタンプと前記受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成するための命令と、
前記複数のクロックオフセット値から最小クロックオフセット値を識別するための命令と、
再生用の第1のメディアデータと、該第1のメディアデータに関連する第1の提示時刻とを定めるための命令と、
前記最小クロックオフセット値に基づいて前記第1の提示時刻に一致する第1の時刻に、前記第1のメディアデータがレンダリングされるようにするための命令と、
を含むことを特徴とする非一時的機械可読記憶媒体。
A non-transitory machine-readable storage medium encoded with instructions for synchronizing media playback between a sending media device and a receiving media device executed by a receiving media device,
Instructions for receiving a plurality of messages including a plurality of sender timestamps from the sender media device at the receiver media device;
An instruction for generating a plurality of clock offset values based on the plurality of transmitting time stamps and the clock of the receiving media device;
An instruction for identifying a minimum clock offset value from the plurality of clock offset values;
Instructions for determining first media data for reproduction and a first presentation time associated with the first media data;
Instructions for causing the first media data to be rendered at a first time that coincides with the first presentation time based on the minimum clock offset value;
A non-transitory machine-readable storage medium.
前記最小クロックオフセット値を識別するための前記命令は、
前記複数のクロックオフセット値のうちの第1のクロックオフセット値を生成するための命令と、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定するための命令と、
前記最小クロックオフセット値を前記第1のクロックオフセット値に等しく設定した後に、前記複数のクロックオフセット値のうちの第2のクロックオフセット値を生成するための命令と、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいと判定するための命令と、
前記第2のクロックオフセット値が前記最小クロックオフセット値よりも小さいという判定に基づいて、前記最小クロックオフセット値を前記第2のクロックオフセット値に等しく設定するための命令と、
を含むことを特徴とする請求項11に記載の非一時的機械可読記憶媒体。
The instruction for identifying the minimum clock offset value is:
An instruction for generating a first clock offset value of the plurality of clock offset values;
An instruction to set the minimum clock offset value equal to the first clock offset value;
An instruction for generating a second clock offset value of the plurality of clock offset values after setting the minimum clock offset value equal to the first clock offset value;
An instruction to determine that the second clock offset value is less than the minimum clock offset value;
An instruction for setting the minimum clock offset value equal to the second clock offset value based on a determination that the second clock offset value is less than the minimum clock offset value;
The non-transitory machine-readable storage medium of claim 11, comprising:
前記受信側メディア装置の前記クロックの前記値から前記最小オフセット値を減算することにより、前記クロックの前記値を修正するための命令をさらに含み、
前記最小クロックオフセット値に基づいて前記第1の提示時刻に一致する前記第1の時刻は、前記第1の提示時刻に一致する前記クロックの前記値である、
ことを特徴とする請求項11に記載の非一時的機械可読記憶媒体。
Further comprising an instruction to modify the value of the clock by subtracting the minimum offset value from the value of the clock of the receiving media device;
The first time that matches the first presentation time based on the minimum clock offset value is the value of the clock that matches the first presentation time;
The non-transitory machine-readable storage medium of claim 11.
前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記非一時的機械可読記憶媒体は、
前記第1の複数のメッセージが到着する間隔についての第1の測定値を生成するための命令と、
前記第1の複数のメッセージが到着する間隔についての前記第1の測定値が、ネットワークが不安定であることを示していると判定するための命令と、
前記送信側メディア装置に追加メッセージを送信するように指示するための命令と、
前記送信側メディア装置に追加メッセージを送信するように指示した後に、前記第2の複数のメッセージが到着する間隔についての第2の測定値を生成するための命令と、
前記第2の複数のメッセージが到着する間隔についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定するための命令と、
をさらに含み、
前記複数のクロックオフセット値から最小クロックオフセット値を識別するための命令は、前記第2の複数のメッセージに関連する前記複数のクロックオフセット値のうちの少なくとも1つのクロックオフセット値を利用するための命令を含む、
ことを特徴とする請求項11に記載の非一時的機械可読記憶媒体。
The plurality of messages includes a first plurality of messages and a second plurality of messages, and the non-transitory machine-readable storage medium comprises:
Instructions for generating a first measurement for the interval at which the first plurality of messages arrive;
Instructions for determining that the first measurement for the interval at which the first plurality of messages arrive indicates that the network is unstable;
Instructions for instructing the sending media device to send an additional message;
Instructions for generating a second measurement for the interval at which the second plurality of messages arrive after instructing the sending media device to send an additional message;
Instructions for determining that the second measurement for the interval at which the second plurality of messages arrives indicates that the network is stable;
Further including
An instruction for identifying a minimum clock offset value from the plurality of clock offset values is an instruction for using at least one clock offset value of the plurality of clock offset values associated with the second plurality of messages. including,
The non-transitory machine-readable storage medium of claim 11.
非一時的機械可読媒体の組であって、
請求項11に記載の前記非一時的機械可読記憶媒体と、
前記送信側メディア装置によって実行される命令が符号化されたさらなる非一時的機械可読記憶媒体と、
を含み、前記複数のメッセージは、第1の複数のメッセージ及び第2の複数のメッセージを含み、前記さらなる非一時的機械可読記憶媒体は、
前記第1の複数のメッセージを送信するための命令と、
前記第1の複数のメッセージの送信に関連するネットワーク性能についての第1の測定値を生成するための命令と、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示していると判定するための命令と、
前記ネットワーク性能についての前記第1の測定値が、ネットワークが不安定であることを示しているという判定に基づいて、前記第2の複数のメッセージを送信するための命令と、
前記第2の複数のメッセージの送信に関連するネットワーク性能についての第2の測定値を生成するための命令と、
前記ネットワーク性能についての前記第2の測定値が、前記ネットワークが安定していることを示していると判定するための命令と、
を含む、
ことを特徴とする非一時的機械可読媒体の組。
A set of non-transitory machine-readable media,
The non-transitory machine-readable storage medium of claim 11;
A further non-transitory machine-readable storage medium encoded with instructions to be executed by the sending media device;
Wherein the plurality of messages includes a first plurality of messages and a second plurality of messages, and the further non-transitory machine-readable storage medium comprises:
Instructions for transmitting the first plurality of messages;
Instructions for generating a first measurement for network performance associated with transmission of the first plurality of messages;
Instructions for determining that the first measurement of the network performance indicates that the network is unstable;
Instructions for sending the second plurality of messages based on the determination that the first measurement of the network performance indicates that the network is unstable;
Instructions for generating a second measurement of network performance associated with transmission of the second plurality of messages;
Instructions for determining that the second measurement of the network performance indicates that the network is stable;
including,
A set of non-transitory machine-readable media characterized in that
JP2018173888A 2012-09-14 2018-09-18 playback synchronization Active JP7391500B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261701326P 2012-09-14 2012-09-14
US61/701,326 2012-09-14
JP2015532053A JP2015536064A (en) 2012-09-14 2013-09-12 Playback synchronization
US14/025,658 2013-09-12
US14/025,658 US9237324B2 (en) 2010-10-22 2013-09-12 Playback synchronization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015532053A Division JP2015536064A (en) 2012-09-14 2013-09-12 Playback synchronization

Publications (2)

Publication Number Publication Date
JP2019024214A true JP2019024214A (en) 2019-02-14
JP7391500B2 JP7391500B2 (en) 2023-12-05

Family

ID=50278689

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015532053A Pending JP2015536064A (en) 2012-09-14 2013-09-12 Playback synchronization
JP2018173888A Active JP7391500B2 (en) 2012-09-14 2018-09-18 playback synchronization

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015532053A Pending JP2015536064A (en) 2012-09-14 2013-09-12 Playback synchronization

Country Status (3)

Country Link
JP (2) JP2015536064A (en)
KR (1) KR102132309B1 (en)
WO (1) WO2014043405A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866596B2 (en) 2015-05-04 2018-01-09 Qualcomm Incorporated Methods and systems for virtual conference system using personal communication devices
US10015216B2 (en) 2015-08-06 2018-07-03 Qualcomm Incorporated Methods and systems for virtual conference system using personal communication devices
US9906572B2 (en) 2015-08-06 2018-02-27 Qualcomm Incorporated Methods and systems for virtual conference system using personal communication devices
US10158905B2 (en) * 2016-09-14 2018-12-18 Dts, Inc. Systems and methods for wirelessly transmitting audio synchronously with rendering of video
US10120642B2 (en) * 2016-12-13 2018-11-06 EVA Automation, Inc. Software-based wireless coordination of audio playback
US10264358B2 (en) 2017-02-15 2019-04-16 Amazon Technologies, Inc. Selection of master device for synchronized audio
EP3583509A4 (en) * 2017-02-15 2020-11-18 Amazon Technologies Inc. Selection of master device for synchronized audio
GB201703796D0 (en) 2017-03-09 2017-04-26 Decawave Ltd Remote signal synchronization
US11784839B2 (en) * 2019-12-31 2023-10-10 Dish Network Technologies India Private Limited Dynamic low latency mode for a digital video production system
KR102181005B1 (en) * 2020-01-06 2020-11-19 쉐어잇 주식회사 Broadcast system and method having time synchronization function
US11178202B2 (en) * 2020-03-16 2021-11-16 Apple Inc. Clock compensation for streaming media systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009206777A (en) * 2008-02-27 2009-09-10 Nec Corp Clock synchronization system, clock synchronization method, program, and recording medium
US20110276648A1 (en) * 2010-05-07 2011-11-10 Microsoft Corporation Clock synchronization for shared media playback

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3201313B2 (en) * 1997-08-01 2001-08-20 日本ビクター株式会社 Data transmission system and playback device
JP3544963B2 (en) * 2001-09-20 2004-07-21 株式会社東芝 Method and apparatus for synchronous playback
US8234395B2 (en) * 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
RU2254682C1 (en) * 2003-10-27 2005-06-20 Общество с ограниченной ответственностью "Алгоритм" Method for radio communication in wireless local network
JP4467478B2 (en) * 2005-07-13 2010-05-26 シャープ株式会社 Transmission apparatus and time synchronization method
WO2007036046A1 (en) * 2005-09-30 2007-04-05 Research In Motion Limited Methods and apparatus for dynamically adjusting a data packet window size for data packet transmission in a wireless communication network
EP1808993A3 (en) * 2005-12-08 2007-08-01 Electronics and Telecommunications Research Institute Transmission apparatus having a plurality of network interfaces and transmission method using the same
JP4777224B2 (en) * 2006-12-01 2011-09-21 三菱電機株式会社 Data reproducing apparatus and data reproducing method
US8473638B2 (en) * 2008-05-02 2013-06-25 James Aweya Method and apparatus for time and frequency transfer in communication networks
JP2009272945A (en) * 2008-05-08 2009-11-19 Victor Co Of Japan Ltd Synchronous reproduction apparatus
US8139489B2 (en) * 2008-08-06 2012-03-20 International Business Machines Corporation Robust jitter-free remote clock offset measuring method
WO2012054872A2 (en) * 2010-10-22 2012-04-26 Phorus Llc Media distribution architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009206777A (en) * 2008-02-27 2009-09-10 Nec Corp Clock synchronization system, clock synchronization method, program, and recording medium
US20110276648A1 (en) * 2010-05-07 2011-11-10 Microsoft Corporation Clock synchronization for shared media playback

Also Published As

Publication number Publication date
KR20150055031A (en) 2015-05-20
JP7391500B2 (en) 2023-12-05
JP2015536064A (en) 2015-12-17
WO2014043405A1 (en) 2014-03-20
KR102132309B1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
JP7391500B2 (en) playback synchronization
US9237324B2 (en) Playback synchronization
JP7120997B2 (en) Multi-mode synchronous rendering of audio and video
JP6640359B2 (en) Wireless audio sync
JP7230008B2 (en) Systems and methods for providing real-time audio and data
CN101809906B (en) Synchronizing related data streams in interconnection networks
US9479584B2 (en) Synchronous media rendering of demuxed media components across multiple devices
US7724780B2 (en) Synchronization of one or more source RTP streams at multiple receiver destinations
US20120099594A1 (en) Media distribution architecture
US7675943B2 (en) Synchronous play-out of media data packets
US9973290B2 (en) System for media rebroadcasting for synchronized rendering across multiple devices
US9780894B2 (en) Systems for synchronous playback of media using a hybrid bluetooth™ and Wi-Fi network
US9804633B2 (en) Indirect clock measuring and media adjustment
US20170019198A1 (en) System for synchronous playback of media using a hybrid bluetooth™ and wi-fi network
CN107438990B (en) Method and apparatus for delivering timing information
CN104813303B (en) Playback synchronizes
EP3868043B1 (en) Wireless audio synchronization
JP4042396B2 (en) Data communication system, data transmission apparatus, data reception apparatus and method, and computer program
US11876847B2 (en) System and method for synchronizing networked rendering devices
JP5082715B2 (en) Receiving device, receiving method, and computer program
JP3906678B2 (en) Data communication system, data transmission apparatus, data reception apparatus and method, and computer program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190917

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200420

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200820

C116 Written invitation by the chief administrative judge to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C116

Effective date: 20200903

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200903

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210408

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20220406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220906

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221005

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20230330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230629

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231122

R150 Certificate of patent or registration of utility model

Ref document number: 7391500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150