JP2015536064A - Playback synchronization - Google Patents
Playback synchronization Download PDFInfo
- Publication number
- JP2015536064A JP2015536064A JP2015532053A JP2015532053A JP2015536064A JP 2015536064 A JP2015536064 A JP 2015536064A JP 2015532053 A JP2015532053 A JP 2015532053A JP 2015532053 A JP2015532053 A JP 2015532053A JP 2015536064 A JP2015536064 A JP 2015536064A
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 120
- 238000005259 measurement Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 12
- 238000009877 rendering Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 241001024304 Mino Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 235000008113 selfheal Nutrition 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43615—Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising 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/43076—Synchronising 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
- H04W56/0015—Synchronization 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
様々な例示的な実施形態は、受信側メディア装置において、送信側メディア装置から複数の送信側タイムスタンプを含む複数のメッセージを受け取るステップと、複数の送信側タイムスタンプと受信側メディア装置のクロックとに基づいて、複数のクロックオフセット値を生成するステップと、複数のクロックオフセット値から最小クロックオフセット値を識別するステップと、再生用の第1のメディアデータと、この第1のメディアデータに関連する第1の提示時刻とを定めるステップと、最小クロックオフセットに基づいて第1の提示時刻に一致する第1の時刻に、第1のメディアデータがレンダリングされるようにするステップとを含む、受信側メディア装置と送信側メディア装置の間でメディア再生を同期させるための方法及びメディア装置に関する。【選択図】図1Various exemplary embodiments include, at a receiving media device, receiving a plurality of messages including a plurality of transmitting time stamps from a transmitting media device; a plurality of transmitting time stamps and a receiving media device clock; Generating a plurality of clock offset values, identifying a minimum clock offset value from the plurality of clock offset values, first media data for reproduction, and associated with the first media data Receiving a first presentation time; and causing the first media data to be rendered at a first time that matches the first presentation time based on a minimum clock offset. Method and medium for synchronizing media playback between a media device and a sending media device On the A device. [Selection] 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 provides an overview 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.
本明細書に示す説明及び図面では、様々な原理を例示する。当業者であれば、本明細書には明示的に説明又は図示していないが、これらの原理を具体化する、本開示の範囲に含まれる様々な構成を考案することができると理解されるであろう。本明細書で使用する「又は(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
いくつかの実施形態では、このシステムが、正確なタイミング同期を維持しながら複数の区域への同時メディア送信を可能にする。一例として、ユーザは、スピーカのネットワークを構成し、アクティブに再生を行っているスピーカを個別に選択して、これらの再生を同期させることができる。ネットワーク内へのメディアの送信方法は、補助ケーブルなどを介した有線とすることも、又は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
いくつかの実施形態では、メディアノード104a〜b、106a〜c自体が自己形成ネットワークにおいて管理される。メディアノード104a〜b、106a〜cは、これら自体がオーディオ/ビデオの分散、タイミング及びレンダリングを制御することができる。従って、処理負荷の大部分がメディアソース102から取り除かれる。図1の例は、家庭環境に関連するものであるが、実施形態はこのように限定されるものではない。あらゆる環境において仮想メディアネットワークを展開することができる。
In some embodiments, the
図2に、仮想メディアネットワークを形成して動作させるための例示的な方法200を示す。ステップ202において、メディア装置が互いを発見し合い、装置ステータス情報を交換する。ステップ202は、例えばメディアノード104、106の電源がオンになった時に行うことができる。メディアノード104、106は、互いに異なる時点で電源オンされるので、このステップは継続的に実行することも、反復することも、或いは別様に進行中とすることもできる。いくつかの実施形態では、メディアノード104、106が、互いの存在、及び例えばソース、シンク、ブロードキャスター又はレンダラとして機能する能力などの能力を学習する「自己発見」プロトコルを実行する。交換される装置ステータス情報は、例えば、装置が仮想メディアネットワーク内で現在アクティブであるかどうか、このような仮想メディアネットワークの識別情報、装置が現在ゲートウェイとして機能しているかどうか、などの情報を含むこともできる。
FIG. 2 illustrates an
ステップ204において、メディアソース102がゲートウェイメディアノード104と対になる。ゲートウェイとして機能する1つのメディアノード104は、ユーザが具体的に選択することも、或いはユーザの介入を伴わずに自動的に決定することもできる。例えば、スマートフォン102aのユーザがリビングルームのメディアノード104aを一次リスニング装置として選択し、この結果、このメディアノード104aがゲートウェイになることができる。いくつかの実施形態では、ゲートウェイメディアノード104が、そのステータスに基づいて、メディアソースノード102のための現在アクティブな出力装置として選択される。いくつかの実施形態では、ゲートウェイメディアノード104が、ゲートウェイとして機能しながらメディアソースノード102のアクティブな出力装置としても機能し、従って少なくともいくつかのチャネルのメディアデータをレンダリングする。いくつかの実施形態では、ゲートウェイメディアノード104が、メディアソース102に装置情報又は状態情報をレポートする。
At
ステップ206において、仮想メディアネットワークが形成される。ステップ206は、ユーザがメディアノード104、106を選択したことに応答して形成することができる。例えば、ユーザは、ユーザがメディアノード104、106を選択できるようにするメディアソース102上のソフトウェアプログラムにアクセスすることができる。なお、メディアノード104、106が既に異なる仮想メディアネットワークの一部である場合、このメディアノード104、106は、メディアソース102を介して、利用できないものとして示されることもある。これに加えて、又はこれとは別に、ユーザは、使用中のメディアノード104、106が現在の仮想メディアネットワークに含まれるように開放されることを要求することもできる。様々な実施形態では、ステップ206の結果、ゲートウェイメディアノード104が、仮想メディアネットワーク内の他のメディアノード104、106にメディア信号を転送するように指示される。
In
ステップ208において、メディアソース102からゲートウェイメディアノード104にメディアを転送することができる。このステップ208は、このメディアソースに関連する出力装置上にメディアを提示することをユーザが選択したことに応答して開始することができる。例えば、ユーザは、メディアを再生するスマートフォン102a上でいずれかのアプリケーションを実行させることができる。ユーザは、次にゲートウェイメディアノード104を出力装置として選択し、このゲートウェイメディアノード104にメディアが転送されるようにすることができる。なお、このメディア転送は、オペレーティングシステム(OS)レベルで行うこともできる。この転送には、ユーザが仮想メディアネットワークのメディアソースとしてあらゆるメディアアプリケーションを選択できるという意味合いがある。
In
ステップ210において、ゲートウェイメディアノード104は、仮想メディアネットワーク内の他のメディアノード104、106にメディア信号をブロードキャストすることができる。例えば、リビングルームのゲートウェイ104aは、スマートフォン102aから受け取ったメディア信号を、オフィスのレンダラ106a、キッチンのレンダラ106b、及びステレオ受信機108にブロードキャストすることができる。いくつかの実施形態では、各メディアノード104、106が、独自のユーザ制御可能なレベル(例えば、音量)でメディアを再生する。従って、メディアソース102からゲートウェイメディアノード104には、いくつかのコマンドを送信することができる。しかしながら、処理の大部分はゲートウェイが行うことができる。従って、メディアソース102が重い処理負荷で動きが取れなくなることはない。
In
図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
メディアノード320、330のいくつかは、ブロードキャスター324、334を含む。本明細書では、このようなノードをブロードキャスティングノードと呼ぶことができる。ブロードキャスター324、334は、ハードウェア又はソフトウェアのいずれかの組み合わせによって実装することができる。様々な実施形態では、ブロードキャスター324、334が、他のメディアノード320、330、340によって理解されるエアタイムブロードキャストフォーマットでメディアを送信する。なお、このフォーマットは、メディアソース310からメディア360を送信するために使用するフォーマットとは異なることができる。ブロードキャスター324、334及びレンダラ326、336は、ローカル再生を遠隔レンダラ上の再生と同期できるように同じメディアノード320、330内に共存することができる。ソースの導入は、ソース−シンクのリンクを介して行うことができる。ソースからシンクへの送信とは異なり、同期再生を用いたポイントツーマルチポイントメディア送信にはエアタイムブロードキャストを使用することができる。
Some of the
上述したように、ゲートウェイ対応メディアノード320、330は、シンク322、332とブロードキャスター324、336の組み合わせを有する。いくつかの実施形態では、ゲートウェイ320、330が、メディアソース310からメディアを受け取り、このメディアを仮想メディアネットワークの他のメディアノード320、330、340と互換性のあるフォーマットで再ブロードキャストする。ゲートウェイ320、330は、レンダラ326、336も含む。様々な実施形態では、ゲートウェイメディアノード320、330がエンドポイントであると考えられる。
As described above, the gateway-
ネットワーク上には、複数のゲートウェイ対応メディアノード320、330が存在することができる。いくつかの実施形態では、ゲートウェイメディアノード320、330が、メディアソース310が使用するのに最適なゲートウェイを決定するための選択方法を利用する。例えば、レンダラ326、336を有するメディアノード320、330の一方のみがメディアソース310にとってアクティブである場合、このレンダリングノードも、他のソースのネットワーク帯域幅を節約する最適なゲートウェイになり得る。一方で、メディアソース310にとって複数のレンダラがアクティブである場合、最も強い又は最も良好なネットワーク接続を有するゲートウェイが最適なゲートウェイになり得る。最適な候補を識別するための選択方式を行い、必要であれば異なるゲートウェイ320、330に対してストリームハンドオフを行うことができ、この場合、元々のゲートウェイ320、330は、ソース310のシンクになることができる。このストリームハンドオフは、ストリームの構成中又はストリームの最中に行うことができる。アクティブなゲートウェイが機能しなくなった場合、ネットワークは自己回復を行い、新たなゲートウェイを選択してエアタイムブロードキャストストリームを再設定することができる。
There can be a plurality of gateway-
メディアノード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
図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
メディア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
仮想メディアネットワーク300は、1つの考えられる装置の組の1つの考えられる構成にすぎないと理解されるであろう。様々な別のメディアネットワーク300は、これよりも少ない、又はさらなる装置を含むことができ、異なる形でメディアを分散させることができる。例えば、メディアソース310がアクセスポイントに直接メディアを送信することもでき、メディアノード330がメディアノード320の代わりにゲートウェイとして機能することもでき、メディアノード340が仮想ネットワークに参加しなくてもよい。様々な別の構成も明らかになるであろう。
It will be understood that the
上述したように、メディアソース310は、仮想メディアネットワーク300にメディア360を導入することができる。一例として、PC又はスマートフォンが挙げられる。利用可能なメディア導入方法しては、アナログ送信又はデジタル送信をサポートするケーブル、Bluetooth及びWiFiを挙げることができる。いくつかの実施形態では、メディアソース310が、仮想メディアネットワークとの互換性があるフォーマットでメディアデータを送信するブロードキャスターである。他の実施形態では、メディアソース310のブロードキャスト機能が、技術的な限界によって制限される。例えば、多くの電話のセキュリティモデルは、オーディオドライバがサードパーティによって修正されるのを防ぐことができる。また、メディアソース310の装置自体が、利用可能な処理帯域幅又はネットワーク帯域幅を有していない場合もある。さらに、いくつかの実施形態では、少なくとも1つのエンドポイントが最大級の忠実性までレンダリングを行えるように、メディアソースの初期リンクのQoSレベルが他のエンドポイントよりも高いQoSを利用する。
As described above, the
なお、メディアソース310からシンク322への送信には、多くのフォーマット及び接続を使用することができる。メディアソース310は、いくつかの非限定的な例として、有線、BT A2DP、又はWi−Fiを用いた特定のプロトコルを介してシンク322への送信を行うことができる。WiFiプロトコルは、品質とレイテンシの間のトレードオフをもたらすように、又は精度を保証するように設計することができる。例えば、このプロトコルは、データのエラーを検出して再送信を要求することができる。多くの場合、このことはブロードキャストの目的ではないかもしれないが、ブロードキャストの前に確実にメディアが到着することが重要である。本明細書に開示する実施形態は、既存の装置との互換性を維持する。
Note that many formats and connections can be used for transmission from the
様々な実施形態では、このネットワークが、標準的な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
アクセスポイント350などのインフラストラクチャが存在しない場合、あるノードが自らを仮想アクセスポイントに変化させることができる。他のノードは、アクセスポイント350を発見し、これに接続して仮想ネットワークを形成することができる。WPS−PBC及びアドホック法を用いてセキュアな接続を行うことができる。
In the absence of an infrastructure such as
図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
ユーザは、仮想ネットワークメディアアプリケーション420にアクセスして仮想メディアネットワークを制御することができる。一例として、仮想ネットワークメディアアプリケーション420は、ユーザがメディアノード104、106を選択してその音量を制御すること、再生することなどを可能にするユーザインターフェイスを提示することができる。いくつかの実施形態では、ネットワークのマスター音量、及び各メディアノード104、106の個別音量が存在する。
A user can access the virtual
メディアソースアプリケーション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
なお、上述の実施形態では、仮想メディアアプリケーション420がメディア信号に触れることは決してない。これにより、メディアソース400のための適当な出力装置を選択することによってメディア信号をメディアノード104、106に送信する際に、あらゆるメディアソース430を使用できるという利点をもたらすことができる。従って、仮想ネットワークメディアアプリケーション420のいくつかの実施形態は、あらゆるメディアソースアプリケーション430と互換性がある。さらに、メディアソースアプリケーション430を変更する必要もない。
Note that in the above embodiment, the
上述したように、ゲートウェイメディアノード104のいくつかの実施形態は、メディア信号が仮想メディアネットワークに適合するようにメディア信号の再フォーマット及び処理を行うことができる。従って、ゲートウェイメディアノード104は、メディアソース102から処理のほとんどを解放することができる。 As described above, some embodiments of the gateway media node 104 can 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
仮想ネットワークメディアアプリケーション420は、上述したようなものとすることができる。例えば、仮想ネットワークメディアアプリケーション420は、仮想ネットワークに追加するメディアノード104、106をユーザが選択してネットワークを制御するためのインターフェイスを提供することができる。いくつかの実施形態では、仮想ネットワークメディアアプリケーション420の機能を仮想ネットワークメディアドライバ445に組み入れることができるので、仮想ネットワークメディアアプリケーション420は任意である。
The virtual
また、コマンドチャネルを用いたコマンドの送信、及びデータチャネルを用いたメディア信号の送信は、ネットワークインターフェイス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
なお、OS440にドライバ445を組み込むことにより、あらゆるメディアソースアプリケーション430からのメディア信号をメディアノード104、106に送信することができる。ユーザは、メディアノード104、106の一方を選択するだけでよい。これに応答して、仮想ネットワークメディアドライバ445が使用される。従って、この仮想メディアネットワークは、メディアソース400上で実行されているあらゆるメディアソースアプリケーション430と共に使用することができる。
Note that by incorporating the
いくつかの実施形態では、メディアソースアプリケーション430が仮想ネットワークメディアアプリケーション420に組み込まれる。いくつかのこのような実施形態では、メディアソースアプリケーション430によって再生されるあらゆるメディアがメディアノード104、106に送信される。
In some embodiments, the
様々な実施形態では、仮想メディアネットワークに属するメディアソース400及びメディアノード104、106によって同時にメディアがレンダリングされる。例えば、メディアソース400は、メディアのビデオチャネルをレンダリングすることができ、メディアノード104、106は、メディアのオーディオチャネルをレンダリングすることができる。いくつかのこのような実施形態では、様々なメディアチャネルが同期状態に保たれる。例えば、メディアソース400は、メディアノード104、106がいつメディアデータをレンダリングすべきかを示すタイプスタンプをメディアデータと共に送信することができる。同様に、ゲートウェイ104も、メディアデータを他のメディアノード104、106に転送する際に、このデータに関連するタイムスタンプを含めることができる。このようなタイムスタンプの交換を可能にするために、様々なメディア装置104、106、400は、仮想ウォールクロックなどの共通基準クロック、又は以下で詳細に説明するような様々な時間領域間でタイムスタンプを変換する方法を有することができる。
In various embodiments, media is rendered simultaneously by
図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
レンダラ520は、スピーカ530、ディスプレイ540又はその他の出力装置(図示せず)上に提示できるようにメディア信号を処理する役割を担うことができる。様々な別のメディアノードは、このメディアノードがレンダリングするように設計されたメディアの種類に応じてスピーカ530又はディスプレイ540を含まないこともあると理解されるであろう。さらに、メディアノード500は、ゲートウェイ又は他のブロードキャスターとしてのみ機能し、レンダリング装置として機能しないように設計されている場合、レンダラ520を含まなくてよい。レンダリングモジュールは、ネットワークインターフェイス510からメディア信号を受け取ることができる。
The
ブロードキャスター550は、ネットワークインターフェイス510を介して他の適当なメディアノード104、106にメディア信号を転送することができる。ホームステレオシステムなどの装置にメディア信号を提供するには、補助出力560を使用することができる。いくつかの実施形態では、ブロードキャスター550が、補助出力560にメディア信号を転送する処理を行う。様々な実施形態では、メディアノード500が補助出力560を含まない。さらに、メディアノード500は、レンダリング装置としてのみ機能し、ゲートウェイ又は他のブロードキャスティング装置として機能しないように設計されている場合、ブロードキャスター550を含まなくてよい。
コマンドモジュール570は、メディア信号を制御するためのコマンドを処理することができる。これらのコマンドは、音量、再生、停止などを含むことができる。同期モジュール580は、ネットワーク内の様々なメディアノードでの再生中に、メディア信号を正確に同期させる役割を果たすことができる。以下で詳細に説明するように、同期モジュール580は、初期クロック同期の設定において使用するビーコンメッセージを送信又は受信することができる。また、メディアストリームの開始後、同期モジュール580は、メディア再生中におけるクロック同期の改善又は是正において使用するタイムスタンプをメディアパケットから挿入又は抽出することができる。
メディアノード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
いくつかの実施形態では、メディアノード500がコマンドプロトコルをサポートする。コマンドプロトコルは、オーディオ再生をオン/オフする方法、音声再生を同期区域に集約する方法、再生、先送り、巻き戻し及び探索などのトランスポート制御、ノードへのメタデータ送信、ネットワークに参加する装置へのネットワーク状態の告知、装置がネットワークから離れた時の状態更新、遠隔ユーザインターフェイスを介した制御、並びにエアタイムネットワークを維持するためのその他のメッセージ及び方法を含むことができる。
In some embodiments, the
なお、メディアノード500の要素は、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせを用いて実装することができる。メディアノード500は、1又はそれ以上のプロセッサと、この1又はそれ以上のプロセッサ上で実行された時にメディアノード500の様々な要素の機能を実行する命令を含むコンピュータ可読媒体とを有することができる。
The elements of the
図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
プロセッサ610は、メモリ620又は記憶装置650に記憶された命令を実行できるあらゆるハードウェア装置とすることができる。従って、プロセッサは、マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又はその他の同様の装置を含むことができる。
The
メモリ620は、例えばL1キャッシュ、L2キャッシュ又はL3キャッシュ、或いはシステムメモリなどの様々なメモリを含むことができる。メモリ620は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、リードオンリメモリ(ROM)又はその他の同様のメモリデバイスを含むことができる。
The
ユーザインターフェイス630は、ユーザとの通信を可能にするための、又はユーザにメディアをレンダリングするための1又はそれ以上の装置を含むことができる。例えば、ユーザインターフェイス630は、ディスプレイ、スピーカ、プリンタ、補助出力、マウス、キーボード、英数字キーパッド、トラックボール、スタイラス又はボタンを含むことができる。
ネットワークインターフェイス640は、他のハードウェア装置との通信を可能にするための1又はそれ以上の装置を含むことができる。例えば、ネットワークインターフェイス640は、イーサネットプロトコル、TCP/IPプロトコル、WiFiプロトコル又はBluetoothプロトコルに従って通信するように構成された1又はそれ以上のネットワークインターフェイスカード(NIC)を含むことができる。ネットワークインターフェイス640のための様々な別の又は追加のハードウェア又は構成が明らかであろう。
The
記憶装置650は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス又は同様の記憶媒体などの1又はそれ以上の機械可読記憶媒体を含むことができる。記憶装置は、メディア装置600との間でデータ及びコードの入力及び出力を行うための、フロッピーディスクなどのポータブル不揮発性記憶媒体を含むこともできる。様々な実施形態では、記憶装置650が、プロセッサ610によって実行される命令、又はプロセッサ610が動作できるようにするデータを記憶する。例えば、記憶装置は、メディア装置600の基本機能を調整するためのオペレーティングシステム670と、別のメディア装置が再生を同期させるのに十分な情報を送信するための、又は別のメディア装置によって送信されたこのような情報を処理して再生を同期させるための同期命令672とを記憶することができる。
記憶装置650は、メディア装置600の役割又は能力に応じて様々な追加命令を記憶することができる。例えば、メディア装置600がメディアソースとして機能できる場合、記憶装置650は、メディアを取得するための又は装置600上でメディアを再生するためのメディアソースアプリケーション命令674、メディアを復号するためのメディアライブラリ命令676、或いはユーザが仮想メディアネットワークにコマンドを送信できるようにするための仮想ネットワークメディアアプリケーション命令678を記憶することができる。例示的なメディアソース400の説明などの上述の説明に照らせば、これらの命令674、676、678のための他の様々な機能が明らかであろう。これに加えて、又はこれとは別に、メディア装置600がメディアノードとして機能できる場合、記憶装置は、メディアソース又はその他のコントローラによって発行されたコマンドを処理するためのコマンドモジュール命令680、他のメディアノードにメディアを転送するためのブロードキャスター命令682、及びメディアを他の装置と同期させてレンダリングするためのレンダラ命令684を記憶することができる。例示的なメディアノード500の説明などの上述の説明に照らせば、これらの命令680、682、684のための他の様々な機能が明らかであろう。
メディア装置600に含まれるコンポーネントは、本明細書で説明する方法及びシステムと共に使用するのに適したコンピュータシステム内で典型的に見られるものであり、このようなコンピュータコンポーネントの広範なカテゴリを表すものである。従って、メディア装置600は、携帯電話機、スマートフォン、PDA、タブレットコンピュータ、パーソナルコンピュータ、モバイルコンピュータ装置、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、又は他のいずれかのコンピュータ装置とすることができる。このコンピュータは、様々なバス構成、ネットワークプラットフォーム、マルチプロセッサプラットフォームなどを含むこともできる。Unix、Linux、Windows、Macintosh OS、Palm OS、Android OS、iOS及びその他の適当なオペレーティングシステムを含む様々なオペレーティングシステム660を使用することができる。
The components included in
図7に、メディア信号をブロードキャストする例示的な方法700を示す。方法700は、方法200のステップ210に対応することができる。ステップ710において、ゲートウェイメディアノード104及びその他のメディアノード102、104、106は、タイミングパラメータを設定することができる。いくつかの実施形態では、メディアノード104、106が仮想ウォールクロックに同期する。ブロードキャスターは、この仮想ウォールクロックを用いて、メディアストリームに目標レンダリング時間をタイムスタンプすることができる。レンダラは、この仮想ウォールクロックを用いて、所与の時点で正確にメディアサンプルをレンダリングすることができる。仮想ウォールクロックは、メディアノード104、106がレンダリング時間の共通理解を確実に有することを支援することができる。いくつかの実施形態では、各レンダリング装置が、メディアストリーム内に指定された時点でサンプルをレンダリングする。ストリームフォーマットには、サンプリング周波数、ワードサイズ、チャネル数、符号化フォーマットなどを含む、ストリームをレンダリングするための他の情報を含めることもできる。
FIG. 7 illustrates an
ステップ710では、仮想ウォールクロック又は他の何らかの共通タイミング基準を設定することもできる。例えば、ゲートウェイメディアノード104は、各ビーコンメッセージがいつ送信されたかを示すタイムスタンプを含むビーコンメッセージの「フラッド」を開始することができる。この結果、受信側メディアノード104、106は、送信者のタイムスタンプと、各ビーコンメッセージが送信された時刻との差分を求めることによってオフセット値を計算することができる。この計算されたオフセットは、送信側装置のクロックと受信側装置のクロックとの間の実際のオフセットと、ネットワーク伝播時間、送信側装置がタイムスタンプを挿入してから実際にビーコンメッセージを送信するまでに要した時間、及び受信側装置がビーコンメッセージを受信してから受信時刻を特定するまでに要した時間などの、時間に関連する固定遅延と、様々な無線ネットワーク接続に共通するネットワーク変動に関連する可変遅延という3つの独立値の和を反映することができる。固定遅延は実質的に一定であるため、受信側装置は、これらの計算されたオフセットのうち、最も小さな計算されたオフセットが最小の可変ネットワーク遅延を含むオフセットであり、従って実際のクロックオフセットと固定ネットワーク遅延とを加えたものに最も近い利用可能な推定値であると確信することができる。この結果、受信側装置は、この最小オフセットに基づいて自身のクロックを調整することができ、或いは後続の送信側装置のタイムスタンプとローカルクロックとの比較において使用できるように、このオフセットを存続させることができる。レンダリング処理中には、この固定ネットワーク遅延を考慮して正しい同期を確実にすることができる。メディアソース102とメディアゲートウェイ104の間の同期の確立においても同様の方法を使用することができる。
In
ステップ720において、ゲートウェイメディアノード104は、メディアソース102からメディア信号を受け取る。ステップ730において、ゲートウェイメディアノード104は、メディアを復号する。ゲートウェイは、復号の前にメディア信号を逆多重化することができる。
In
ステップ740において、ゲートウェイメディアノード104は、他のメディアノード104、106にブロードキャストするためにメディアを再符号化する。なお、ゲートウェイは、メディアソース102が使用した符号化とは異なる符号化を使用することができる。例えば、メディアソース102では、メディア信号がBluetoothと互換性のあるフォーマットで符号化されている場合がある。このメディア信号を、Wi−Fiと互換性のあるフォーマットで再符号化することができる。
In
ステップ750において、ゲートウェイメディアノード104は、メディア信号をカプセル化する。様々な実施形態では、ゲートウェイメディアノード104がメディア信号を圧縮する。オーディオメディア信号を圧縮する例として、高品質ネットワークでは、フリーオーディオロスレスコーデック(FLAC)などの軽可逆圧縮技術を用いて、最小の処理オーバーヘッドで帯域幅を半分にカットすることができる。低品質ネットワークでは、OGG又はアドバンスオーディオコーディング(AAC)などの高圧縮標準を用いて、音質及び処理オーバーヘッドを犠牲にしてネットワーク帯域幅を最小にすることができる。信号は、圧縮アルゴリズム自体を超えて、低サンプリングレートに再サンプリングすることも、モノラルストリームにダウンミックスすることも、又は低サンプル解像度にダウンサンプリングすることもできる。メディアストリームを圧縮形式に符号化又はトランスコードすることにより、処理オーバーヘッドを犠牲にして狭いネットワーク帯域幅を使用することによってエアタイムの信頼性を高めることができる。サポートされるコーデックは、様々なビットレート、サンプリング周波数、チャネル及びサンプルサイズの可逆及び非可逆圧縮技術を含むことができる。
In
いくつかの実施形態では、全てのメディアノード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
いくつかの実施形態では、ブロードキャスティングが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
ブロードキャストメディアは、ネットワーク帯域幅の最大消費者であると考えられる。典型的な非圧縮オーディオストリームは、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
様々な実施形態は、複数の送信プロトコルをサポートする。いくつかの実施形態では、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 manner, 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
方法800は、ステップ805から開始してステップ810に進み、送信側装置が、タイミングパラメータの設定において受信側装置によって使用される「ビーコンメッセージ」のフラッディングを開始すべきであると判断することができる。例えば、送信側装置は、受信側装置の電源が入っていると判断し、受信側装置が仮想メディアネットワークに加わっていると判断し、又は送信側装置が受信側装置にメディアを送信し始めるべきであると判断することができる。ステップ815において、送信側装置は、新たなビーコンメッセージを生成する。このビーコンメッセージは、受信側装置によって認識されるいずれかのタイプのパケット又はその他のデータメッセージとすることができる。例えば、ビーコンメッセージは、送信側装置と受信側装置の両方が実装する専用プロトコルに従って形成することができる。受信側装置への途中にあるルータ又はスイッチなどの1又はそれ以上の媒介装置をビーコンメッセージが横切ることができる実施形態などの様々な実施形態では、送信側装置が、このビーコンメッセージが優先度の高いトラフィックを構成している旨のフラグ又はその他の指示を搬送するようにビーコンメッセージを構成する。ネットワーク内でビーコンメッセージに優先順位を付けるための様々な機構は、考えられる様々なネットワーキング技術によって利用される個々の優先順位付け方式に基づいて異なる。このようなビーコンメッセージの優先順位付けは、混合トポロジネットワークを介したルーティング時間を最適化する援助となり、これによって可変ネットワーク遅延因子を低減することができる。
次に、ステップ820において、送信側装置は、現在送信側装置のクロックによって示されている時刻をビーコンメッセージにタイムスタンプする。このようなタイムスタンプは、「送信者タイムスタンプ」と呼ぶことができる。次に、ステップ825において、送信側装置は、1又はそれ以上の受信側装置にビーコンメッセージを送信する。ステップ820とステップ825の間に経過した時間は、受信側装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法800の様々な実装は、ステップ820とステップ825の間に行われる動作数を低減又は最小化するように努める。様々な実施形態では、送信側装置が、他の複数のメディア装置に対するタイミングパラメータの設定に関与する。例えば、メディアゲートウェイ104は、他の複数のメディアノード104、106にビーコンメッセージを送信することができる。いくつかのこのような実施形態では、送信側装置が、例えば、ビーコンメッセージのコピーを各メディア装置に個別にアドレス指定することにより、又は複数のメディア装置にメッセージをマルチキャストすることにより、ステップ825において複数のメディア装置にビーコンメッセージを送信する。これとは別に、又はこれに加えて、送信側装置は、他の複数のメディア装置に対応するように方法800を複数回実行する。
Next, in
ステップ830において、送信側装置は、送信側装置が受信側装置へのビーコンメッセージのフラッディングを終了したかどうかを判定する。例えば、送信側装置は、所定数のビーコンメッセージが送信されるまでビーコンメッセージのフラッディングを継続することができる。これとは別に、又はこれに加えて、様々な実施形態では、送信側装置が、ステップ830の条件を受信側装置からのフィードバックに基づかせる。例えば、受信側装置は、十分な同期が達成された時にメッセージを送信することができ、或いは所定数のビーコンメッセージが送信されたにも関わらず十分な同期が達成されなかった旨を示すメッセージを送信することができる。フラッディングを中止すべきかどうかを判定するさらに別の方法として、送信側装置は、フラッディング期間中にネットワーク性能をモニタし、ネットワーク性能が何らかの最低限の許容閾値を満たすまでフラッディングを継続する。例えば、送信側装置は、ビーコンメッセージに加えて、受信側装置に往復診断メッセージを送信することができる。或いは、受信側装置を、ネットワーク診断の目的で送信側装置にビーコンメッセージをさらに返送するように構成することもできる。送信側装置は、受信側装置からメッセージを受け取ると、1又はそれ以上のネットワーク性能測定値を生成する。例えば、送信側装置は、前回のフラッディングウィンドウを通じたネットワーク遅延又はジッタの測定値を生成することができ、この測定値が何らかの最低許容ネットワーク性能よりも低い場合には、たとえ所定数のビーコンメッセージを送信し終えていたとしてもビーコンメッセージをフラッディングし続ける。本明細書の教示に照らせば、ビーコンメッセージのフラッディングが十分であるかどうかを判定するためのこれらの及びその他の方法の様々な組み合わせを採用できることが明らかであろう。
In
ステップ830において、送信側装置がビーコンメッセージのフラッディングを継続すべきであると判断した場合、方法800はステップ815に戻って追加のビーコンメッセージを送信する。フラッディングウィンドウが所定数のビーコンメッセージの送信を含む様々な実施形態では、送信側装置が、ネットワーク性能又はその他の因子に基づいて、前回のウィンドウが不十分であったと判断し、ステップ815に戻る前にビーコンメッセージカウンタをリセットすることにより、新たなウィンドウで別のビーコンメッセージの組の送信を開始する。一方、ステップ830において、送信側装置がフラッディングを終了すべきであると判断した場合、方法800はステップ835に進んで終了する。その後、送信側装置は、現在同期されている受信側装置にメディアを送信する。
If, at
なお、様々な実施形態では、送信側装置がビーコンメッセージに基づいて受信側装置からリターンメッセージを受け取らなくてもよく、或いは、送信側装置がリターンメッセージを受け取る実施形態では、送信側装置がタイミングパラメータを設定する目的でリターンメッセージを利用することはない。いくつかの実施形態では、フラッディング期間が十分であるかどうかを判断する目的のみでリターンメッセージが使用される。従って、本明細書で説明する方法は、他のクロック同期法とは異なり、同期計算の大部分が送信側装置ではなく受信側装置によって行われる「一方向」同期法と呼ぶことができる。 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
方法900は、ステップ905から開始してステップ910に進み、受信側装置は、新たなメッセージが受信又は処理された時に実行されている最小オフセット値を維持することに使用される最小オフセット変数「MinO」を初期化する。次に、ステップ915において、受信側装置は、送信側装置からビーコンメッセージを受け取る。次に、ステップ920において、受信側装置は、現在受信側装置のクロックによって示されている時刻に基づいてタイムスタンプを生成する。このようなタイムスタンプは、「受信者タイムスタンプ」、「R(x)」と呼ぶことができる。ステップ915とステップ920の間に経過した時間は、受信側装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法900の様々な実装は、ステップ920とステップ925の間に行われる動作数を低減又は最小化するように努める。
ステップ925において、受信側装置は、ビーコンメッセージから送信者タイムスタンプ「S(x)」を抽出する。上述したように、送信者タイムスタンプは、例示的な方法800のステップ820のように送信者装置によって送信の直前にビーコンメッセージに挿入される。ステップ930において、受信側装置は、送信側装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。例えば、受信側装置が仮想メディアネットワークのゲートウェイとして動作している場合、受信側装置は、送信側装置がメディアソースであると判断する。このような場合、方法900はステップ935に進む。次に、受信側装置は、送信者タイムスタンプを、送信側装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換では、2つの装置間で以前にネゴシエートされたオフセットを加算又は減算することができる。このような時間領域間のネゴシエーション及び変換は、当業者に周知のあらゆる方法に従って行うことができる。いくつかの別の実施形態では、ソース装置とメディアノードが同じ時間領域でクロックを維持する。このようないくつかの実施形態には、ステップ930、935が存在しない。
In
方法900は、ステップ935において送信者タイムスタンプを仮想メディアネットワークドメインに変換した後、或いはステップ930において送信者がメディアソースではないと判断した後にステップ940に進み、受信側装置は、送信者タイムスタンプ及び受信者タイムスタンプに基づいて、例えばこれら2つのタイムスタンプの差分などのオフセット値を計算する。この現在のオフセット値「CurO」は、送信者クロックと受信者クロックの間の実際のオフセットと、ビーコンメッセージが直面する2つのタイムスタンプS(x)及びR(x)の作成間のあらゆる遅延とを加えたものに相当する。上述したように、この遅延は2つの成分を含む。第1の遅延成分は、例えばメッセージが移動する回路及びデータ経路に関連する一定の遅延などの、ネットワークのハードウェア及びソフトウェアコンポーネントを横切るのに掛かった時間、並びにメッセージの送信/受信と、関連するタイムスタンプの生成との間の、OSが必要とする時間に関連する固定遅延である。このような固定遅延は、レンダリング処理の一部として既に考慮されている。第2の遅延成分は、経時的に変化する遅延に関連する可変ネットワーク遅延である。例えば、WiFiなどの共有メディアネットワークは、送信前にメディアがクリアになるのを待機する場合があり、従って異なる時点で異なる遅延が導入されることがある。
The
この可変遅延は、さらなる遅延の導入しか行わない(遅延を除去することはない)ので、実際のクロックオフセットのより良好な推定は、最も遅延の少なかったメッセージから取得される。従って、方法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
ステップ955において、受信者装置は、送信者装置がビーコンメッセージのフラッディングを行っているかどうかを判断する。例えば、受信者装置は、さらなるビーコンメッセージを待っている時にタイムアウトが生じたかどうかを判断することができ、送信者装置がメディアメッセージを送信し始めたと判断することができ、所定数のビーコンメッセージが受け取られたと判断することができ、或いは送信側装置がフラッディングの終了を示す特別なメッセージを送信したと判断することができる。様々な実施形態では、受信者装置が、フラッディングが所望のオフセット精度を確立するのに十分であったかどうかを判断する。例えば、受信者装置は、ビーコンメッセージが受け取られた間隔を追跡し、この測定された間隔と既知の時間間隔との比較に基づいて、ネットワークが所望の精度のオフセット値を生じるほど十分に安定していたかどうかを判断することができる。ネットワークが十分に安定していなかった場合、受信側装置は、さらなるフラッディングを行うべきである旨を示すメッセージを送信側装置に送信する。様々な修正が明らかであろう。本明細書の教示に照らせば、ビーコンメッセージのフラッディングが十分であるかどうかを判定するためのこれらの及びその他の方法の様々な組み合わせを採用できることが明らかであろう。
In
受信側装置が、さらなるフラッディングが行われている又は行われる予定であると判断した場合、方法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
様々な別の実施形態では、受信側装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットがクロックのリセットに使用されないことを確実にするよう支援する。例えば、フラッディング期間が高可変ネットワーク遅延期間に含まれる場合、計算されたオフセットが、送信者クロックと受信者クロックの間の実際のオフセット値よりも大きくなることがある。いくつかのこのような実施形態では、受信者が、最初にステップ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
様々な実施形態では、受信側装置が、方法900を定期的に実行して同期を再確立する。いくつかのこのような実施形態では、受信側装置が、クロックをその元々の値にリセットし、記憶されているオフセット値を削除し、又は方法900の以前の実行に基づいて行われたあらゆる変更を別様に「巻き戻し」して、クロックオフセットの決定の「やり直し」を行う。受信側装置は、クロックオフセットを定期的に再設定することにより、送信側装置のクロックと受信側装置のクロックとの間のクロックドリフトをより良く考慮することができる。
In various embodiments, the receiving device periodically performs
本明細書の教示に照らせば、方法900は、各ビーコンメッセージを受け取り時に処理するリアルタイム方法として説明されるのに対し、様々な別の実施形態は、ビーコンメッセージをバッチとして処理する方法を利用することが明らかであろう。例えば、いくつかのこのような実施形態では、受信側装置が、複数のビーコンメッセージを受け取り、受け取った時点でメッセージにタイムスタンプを行い、その後の時点で、ステップ925〜960に関して説明した方法と同様の方法で、受け取ったメッセージを順に処理して最小オフセットを見つけ出す。
In light of the teachings herein,
上述の方法は、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 transmitting device clock and the receiving device clock 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
方法1000は、ステップ1005から開始してステップ1010に進み、受信側装置が、送信側装置からメディアデータパケットを受け取る。次に、ステップ1015において、受信側装置は、受信側装置のクロックによって現在示されている時刻に基づいてタイムスタンプR(x)を生成する。ステップ1020において、受信側装置は、メディアデータメッセージから送信者タイムスタンプ「S(x)」を抽出する。送信者タイムスタンプは、送信者装置によって送信の直前にメディアデータメッセージに挿入しておくことができる。ステップ1025において、受信側装置は、送信側装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。例えば、受信側装置が仮想メディアネットワークのゲートウェイとして動作している場合、受信側装置は、送信側装置がメディアソースであると判断することができる。このような場合、方法1000はステップ1030に進む。次に、受信側装置は、送信者タイムスタンプを、送信側装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換では、2つの装置間で以前にネゴシエートされたオフセットを加算又は減算することができる。このような時間領域間のネゴシエーション及び変換は、当業者に周知のあらゆる方法に従って行うことができる。いくつかの別の実施形態では、ソース装置とメディアノードが同じ時間領域でクロックを維持する。このようないくつかの実施形態では、ステップ1020、1030が存在する。
方法1000は、ステップ1030において送信者タイムスタンプを仮想メディアネットワークドメインに変換した後、或いはステップ1025において送信者がメディアソースではないと判断した後にステップ1035に進み、受信側装置は、送信者タイムスタンプ及び受信者タイムスタンプに基づいて、例えばこれら2つのタイムスタンプの差分などのオフセット値を計算する。送信者タイムスタンプが変換されている場合、この変換されたタイムスタンプがオフセットの計算において使用される。このオフセット値「O」は、送信者クロックと受信者クロックの間の実際のオフセットと、メディアデータメッセージが直面する2つのタイムスタンプS(x)及びR(x)の作成間の、固定遅延及び可変遅延の両方を含むあらゆる遅延とを加えたものに相当する。ステップ1040において、受信側装置は、このオフセット値が以前に利用したオフセット値よりも良好なクロック間のオフセット推定を表しているかどうかを判断する。例えば、以前に決定された最小オフセットを用いて受信側装置のクロックをリセットする様々な実施形態では、受信側装置が、現在のオフセットOがゼロ未満であるかどうかを判定する。この比較における肯定的な結果は、以前に使用した最小オフセットに何らかの可変ネットワーク遅延が組み込まれており、この可変ネットワーク遅延をローカルクロックから減算すると理想的な設定点を「超過」してしまい、これによりローカルクロックが送信者のクロックに遅れて設定されることを示す。現在のオフセットOは、以前に使用した最小値よりも少ない(又はゼロの)可変遅延を組み込むことにより、負の数字であることによってこの超過を明らかにすることができる。このような場合、現在のオフセットOは、実際のクロックオフセットの新たな最良の推定値を示すと判断され、ステップ1045において、このオフセットOを用いて再びローカルクロックをリセットすることにより、前回の超過を少なくとも部分的に是正することができる。他の実施形態のための様々な修正が明らかであろう。例えば、以前に決定された最小オフセットがローカルクロックの修正に使用されずにタイムスタンプの比較において使用され続ける実施形態では、ステップ1040において、現在のオフセットOがそれまでの最小オフセットMinOよりも小さいかどうかが判定され、小さい場合には、ステップ1045において、受信側装置がMinOを0に等しく設定する。様々な他の修正が明らかであろう。
The
様々な別の実施形態では、受信側装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットがクロックのリセットに使用されないことを確実にするよう支援する。いくつかのこのような実施形態では、受信者が、最初にステップ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
ステップ1050において、受信側装置は、受け取ったメディアパケットの処理に進み、例えば適当な時点でメディア出力をレンダリングする。例えば、受信側装置は、提示時刻を抽出して、メディアデータパケットから送信者タイムスタンプと受信者タイムスタンプを分離することができる。このような提示時刻は、メッセージによって搬送されるメディアデータをレンダリングすべき時刻を示す。受信側装置は、提示時刻を抽出した後、この提示時刻と一致する時刻にメディアデータをレンダリングする。例えば、受信側装置は、ローカル再生装置によって再生されるようにメディアデータをバッファに記憶することができ、或いはメッセージが再生されるように別のメディアノードに転送することもできる。提示時刻と「一致」する現在時刻は、現在時刻と提示タイムスタンプが等しいことを含むことができるが、他の形の一致を含むこともできる。例えば、様々な実施形態では、現在時刻から存続中の最小オフセット値を差し引いたものが提示タイムスタンプに等しい時に現在時刻が一致する。これに加えて、又はこれとは別に、一致のための比較は、固定遅延値を加算し、減算し、又は別様に考慮する。ローカルクロック、提示タイムスタンプ、及びその他の潜在的に利用可能な値に基づいて再生に適した時刻を決定するための他の様々な方法が明らかであろう。さらに、現在時刻が最小オフセットに基づいて提示時刻に一致するという概念は、以前に最小オフセット値によって修正されたローカルクロックを利用する比較が、その他の点では最小オフセット値を明確に考慮しないことを含むと理解されるであろう。様々な実施形態は、適当な時点で確実にデータが出力されるように、出力の直前にこのような比較を行う。他の実施形態は、このような比較を使用して、メディアが提示時刻に再生される可能性が高い再生バッファ内の位置にメディアデータを挿入する。このような挿入は、再生タイミングを調整するために、メディアデータの挿入前に「ダミー」データを挿入することを含むことができる。バッファ内のデータの再生タイミングを制御する様々な追加方法が明らかであろう。
In
図11に、下限オフセットを決定する例示的な方法1100を示す。上述したように、様々な別の実施形態は、より良好なクロックオフセット推定を求めるために、ビーコンフラッディング及びメディアパケットの分析前に下限オフセットをさらに設定する。例示的な方法1100は、例えば、例示的な環境100のメディアゲートウェイ104又はその他のメディアノード104、106などの、受信側メディア装置として機能するいずれかのメディア装置によって実行することができる。方法1100は、例示的な方法700のステップ710の一部として、又はメディア装置間におけるタイミングパラメータの同期が適切なあらゆる時点で実行することができる。
FIG. 11 illustrates an
方法1100は、ステップ1105から開始してステップ1110に進み、受信側装置は、送信側装置からのハンドシェークメッセージを受け取ることによって下限を計算するように、受信側装置と送信側装置間の往復輸送からタイムスタンプを収集し始める。様々な実施形態では、このハンドシェークメッセージが、ビーコンメッセージ又はメディアデータパケットが送信されるチャネルとは異なるチャネルを介して送信される。例えば、Bluetoothチャネルを介してハンドシェークメッセージを送信する一方で、WiFiチャネルを介してビーコンメッセージ及びメディアデータパケットメッセージを送信することができる。送信者は、使用するハンドシェークプロトコルの一部として、送信者がハンドシェークメッセージを送信した送信者クロックに従う時刻を示すタイムスタンプt1をハンドシェークメッセージに含める。次に、ステップ1115において、受信者は、ステップ1110のハンドシェークメッセージの受信に近い時刻に、受信者クロックに従う受信タイムスタンプt2を記録する。
The
次に、受信者装置は、受信者が送信者にハンドシェークメッセージを再送する受信者クロックに従う時刻を示すタイムスタンプ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
後述するように、これらの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
いくつかの実施形態では、送信者クロックが受信者クロックよりも遅れている場合があり、従って受信者装置によって生成されるタイムスタンプの方が送信者装置によって生成されるタイムスタンプよりも小さくなることが明らかであろう。上記の下限クロックオフセットの式は、計算された値の符号に基づいてクロック調整の方向を示すことができると理解されるであろう。いくつかの実施形態では、受信者装置が、相対的な調整方向ではなく大きさのみが比較されるように、様々な計算されたオフセットを比較してどのオフセットがより良好な推定であるかを判断する際に絶対値を利用することができる。 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
以上に照らして、様々な実施形態は、可変遅延を示すネットワークに属するメディア装置間におけるメディア再生の同期を可能にする。例えば、受信側装置が複数のメッセージから最小クロックオフセットを識別する一方向同期法を実装することにより、クロック同期に対する可変遅延の影響を低減することができる。さらに、受信側装置は、メディアストリームが開始された後に、より良好な同期パラメータを継続的に探索することにより、クロックドリフトを考慮しながら同期を改善することができる。上記に照らして様々な追加の利点が明らかであろう。 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
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の複数のメッセージが到着する間隔についての第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の複数のメッセージを送信するステップと、
前記送信側メディア装置により、前記第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:
Sending the first plurality of messages by the sending media device;
Generating, by the sending media device, a first measurement for 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;
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 sending media device,
A 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の複数のメッセージが到着する間隔についての第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.
前記送信側メディア装置と、
を備え、前記複数のメッセージは、第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の複数のメッセージが到着する間隔についての第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;
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
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018173888A JP7391500B2 (en) | 2012-09-14 | 2018-09-18 | playback synchronization |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261701326P | 2012-09-14 | 2012-09-14 | |
US61/701,326 | 2012-09-14 | ||
PCT/US2013/059539 WO2014043405A1 (en) | 2012-09-14 | 2013-09-12 | Playback synchronization |
US14/025,658 US9237324B2 (en) | 2010-10-22 | 2013-09-12 | Playback synchronization |
US14/025,658 | 2013-09-12 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018173888A Division JP7391500B2 (en) | 2012-09-14 | 2018-09-18 | playback synchronization |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015536064A true JP2015536064A (en) | 2015-12-17 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018173888A Active JP7391500B2 (en) | 2012-09-14 | 2018-09-18 | playback synchronization |
Country Status (3)
Country | Link |
---|---|
JP (2) | JP2015536064A (en) |
KR (1) | KR102132309B1 (en) |
WO (1) | WO2014043405A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020507229A (en) * | 2016-12-13 | 2020-03-05 | エヴァ オートメーション インコーポレイテッド | Wireless adjustment of audio playback |
JP2023513417A (en) * | 2019-12-23 | 2023-03-31 | ツィネモ・ゲーエムベーハー | Multimedia streaming technology with different security policies |
Families Citing this family (11)
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 |
US9906572B2 (en) | 2015-08-06 | 2018-02-27 | 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 |
US10158905B2 (en) * | 2016-09-14 | 2018-12-18 | Dts, Inc. | Systems and methods for wirelessly transmitting audio synchronously with rendering of video |
EP3583509A4 (en) * | 2017-02-15 | 2020-11-18 | Amazon Technologies Inc. | Selection of master device for synchronized audio |
US10264358B2 (en) | 2017-02-15 | 2019-04-16 | Amazon Technologies, Inc. | Selection of master device for synchronized audio |
GB201703796D0 (en) * | 2017-03-09 | 2017-04-26 | Decawave Ltd | Remote signal synchronization |
US10452345B1 (en) * | 2018-05-15 | 2019-10-22 | Sonos, Inc. | Media playback system with virtual line-in |
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 (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11103317A (en) * | 1997-08-01 | 1999-04-13 | Victor Co Of Japan Ltd | Data transmission system and reproducing device |
JP2003101958A (en) * | 2001-09-20 | 2003-04-04 | Toshiba Corp | Method and device for synchronous reproduction |
JP2007027985A (en) * | 2005-07-13 | 2007-02-01 | Sharp Corp | Transmitter and method for synchronizing time |
JP2007512718A (en) * | 2003-07-28 | 2007-05-17 | ソノズ インコーポレイテッド | System and method for synchronizing operation between a plurality of independently clocked digital data processing devices |
JP2008141497A (en) * | 2006-12-01 | 2008-06-19 | Mitsubishi Electric Corp | Device and method for data reproduction |
JP2009272945A (en) * | 2008-05-08 | 2009-11-19 | Victor Co Of Japan Ltd | Synchronous reproduction apparatus |
US20100034103A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Robust Jitter-Free Remote Clock Offset Measuring Method |
JP2011525308A (en) * | 2008-05-02 | 2011-09-15 | ノーテル・ネットワークス・リミテッド | Timing system and method for time synchronization over a packet network |
US20110276648A1 (en) * | 2010-05-07 | 2011-11-10 | Microsoft Corporation | Clock synchronization for shared media playback |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2254682C1 (en) * | 2003-10-27 | 2005-06-20 | Общество с ограниченной ответственностью "Алгоритм" | Method for radio communication in wireless local network |
CA2624671C (en) * | 2005-09-30 | 2012-01-03 | 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 |
JP5167862B2 (en) * | 2008-02-27 | 2013-03-21 | 日本電気株式会社 | Clock synchronization system, clock synchronization method, program, and recording medium |
US20120099594A1 (en) * | 2010-10-22 | 2012-04-26 | Phorus Llc | Media distribution architecture |
-
2013
- 2013-09-12 KR KR1020157009458A patent/KR102132309B1/en active IP Right Grant
- 2013-09-12 JP JP2015532053A patent/JP2015536064A/en active Pending
- 2013-09-12 WO PCT/US2013/059539 patent/WO2014043405A1/en active Application Filing
-
2018
- 2018-09-18 JP JP2018173888A patent/JP7391500B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11103317A (en) * | 1997-08-01 | 1999-04-13 | Victor Co Of Japan Ltd | Data transmission system and reproducing device |
JP2003101958A (en) * | 2001-09-20 | 2003-04-04 | Toshiba Corp | Method and device for synchronous reproduction |
JP2007512718A (en) * | 2003-07-28 | 2007-05-17 | ソノズ インコーポレイテッド | System and method for synchronizing operation between a plurality of independently clocked digital data processing devices |
JP2007027985A (en) * | 2005-07-13 | 2007-02-01 | Sharp Corp | Transmitter and method for synchronizing time |
JP2008141497A (en) * | 2006-12-01 | 2008-06-19 | Mitsubishi Electric Corp | Device and method for data reproduction |
JP2011525308A (en) * | 2008-05-02 | 2011-09-15 | ノーテル・ネットワークス・リミテッド | Timing system and method for time synchronization over a packet network |
JP2009272945A (en) * | 2008-05-08 | 2009-11-19 | Victor Co Of Japan Ltd | Synchronous reproduction apparatus |
US20100034103A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Robust Jitter-Free Remote Clock Offset Measuring Method |
US20110276648A1 (en) * | 2010-05-07 | 2011-11-10 | Microsoft Corporation | Clock synchronization for shared media playback |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020507229A (en) * | 2016-12-13 | 2020-03-05 | エヴァ オートメーション インコーポレイテッド | Wireless adjustment of audio playback |
JP2023513417A (en) * | 2019-12-23 | 2023-03-31 | ツィネモ・ゲーエムベーハー | Multimedia streaming technology with different security policies |
JP7495501B2 (en) | 2019-12-23 | 2024-06-04 | ツィネモ・ゲーエムベーハー | Multimedia streaming technology with different security policies |
Also Published As
Publication number | Publication date |
---|---|
WO2014043405A1 (en) | 2014-03-20 |
JP2019024214A (en) | 2019-02-14 |
JP7391500B2 (en) | 2023-12-05 |
KR102132309B1 (en) | 2020-07-09 |
KR20150055031A (en) | 2015-05-20 |
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 | |
US7724780B2 (en) | Synchronization of one or more source RTP streams at multiple receiver destinations | |
US20120099594A1 (en) | Media distribution architecture | |
US9479584B2 (en) | Synchronous media rendering of demuxed media components across multiple devices | |
US7675943B2 (en) | Synchronous play-out of media data packets | |
US9780894B2 (en) | Systems for synchronous playback of media using a hybrid bluetooth™ and Wi-Fi network | |
US9973290B2 (en) | System for media rebroadcasting for synchronized rendering across multiple devices | |
JP5841715B2 (en) | VIDEO / AUDIO OUTPUT DEVICE, VIDEO / AUDIO OUTPUT SYSTEM, AND MASTER DEVICE | |
US9804633B2 (en) | Indirect clock measuring and media adjustment | |
EP3868043B1 (en) | Wireless audio synchronization | |
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 | |
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 | |
JP3906678B2 (en) | Data communication system, data transmission apparatus, data reception apparatus and method, and computer program | |
JP5082715B2 (en) | Receiving device, receiving method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170904 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20171204 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180516 |