(57)【要約】  第１の装置を通じてビデオを再生し、無線ネットワークを通じて接続された１又は２以上の別個の装置を通じてオーディオ再生するためのメディアを選択する。１又は２以上の要因に基づいて、オーディオとビデオを同期させるための異なる技術を選択してメディア再生を改善することができる。【選択図】図３
2019532576.tif 000002
【特許請求の範囲】
【請求項１】
第１の電子装置と第２の電子装置との間でオーディオ再生を同期させるモードを選択するための方法であって、
テレビ又はテレビに結合されたメディアソースを含む第１の電子装置においてビデオデータ及びオーディオデータを受け取るステップと、
前記第１の電子装置と前記第２の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、前記第１の電子装置に関連するクロック情報をモバイル装置である前記第２の電子装置に無線送信するステップと、
前記第１の電子装置のハードウェアプロセッサを用いて、前記ビデオデータに少なくとも部分的に基づいて、前記ビデオデータのサイズが閾値を下回る場合に前記ビデオを遅延させることを含む第１のモード及び前記ビデオデータのサイズが前記閾値を上回る場合に前記オーディオデータを圧縮することを含む第２のモード、から選択されるオーディオ同期モードをプログラム的に選択するステップと、
前記選択されたオーディオ同期モードに従って、前記第１の電子装置から前記第２の電子装置に前記オーディオデータを送信するステップと、
を含む方法。
【請求項２】
前記第１のモードを選択したことに応答して、前記ビデオデータを遅延させるステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記第２のモードを選択したことに応答して、前記オーディオデータを圧縮するステップをさらに含む、請求項１又は２に記載の方法。
【請求項４】
前記第１のモードを選択したことに応答して、前記オーディオデータを圧縮して前記ビデオデータを遅延させるステップをさらに含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記オーディオ同期モードを選択するステップは、前記ビデオデータ内でビデオゲームを検出したことに応答して前記第２のモードを選択するステップを含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記オーディオ同期モードを選択するステップは、前記無線ネットワークの安定性又は前記無線ネットワークの帯域幅に基づいて前記第２のモードを選択するステップを含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記クロック情報を無線送信するステップは、それぞれがほぼ等しい時間間隔で離間した複数のパケットを送信するステップを含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記第１の電子装置のバッファリング容量に基づいて、前記第１のモードの遅延時間を決定するステップをさらに含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記遅延時間を決定するステップは、前記第１の電子装置から前記第２の電子装置にパケットが送信される平均送信時間よりも長い遅延時間を選択するステップを含む、請求項８に記載の方法。
【請求項１０】
交互配置された前方誤り訂正情報を前記オーディオプレーヤに送信するステップをさらに含む、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記ビデオプレーヤと前記オーディオプレーヤとの間で前記クロック信号を同期させるステップは、クロックドリフトを考慮するようにオーディオレンダリングの期間後に前記同期クロックを再同期させるステップを含む、請求項１から９のいずれか１項に記載の方法。
【請求項１２】
第１の電子装置と第２の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムであって、
前記システムは第１の電子装置を備え、該第１の電子装置は、
プロセッサ実行可能命令を含むメモリと、
前記プロセッサ実行可能命令を実行するように構成されたハードウェアプロセッサと、
前記ハードウェアプロセッサと通信する無線送信機と、
を含み、前記プロセッサ実行可能命令は、
ビデオデータ及びオーディオデータを受け取り、
前記第１の電子装置と第２の電子装置との間に同期クロックを確立するために無線ネットワークを通じて前記第１の電子装置に関連するクロック情報を前記第２の電子装置に無線送信することを前記無線送信機に行わせ、
前記ビデオデータ、バッファ特性及びネットワーク特性のうちの１つ又は２つ以上に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、
前記選択されたオーディオ同期モードに従って前記第１の電子装置から前記第２の電子装置に前記オーディオデータを送信することを前記無線送信機に行わせる、
ように構成される、
システム。
【請求項１３】
前記第１の装置は、テレビ又はセットトップボックスである、請求項１２に記載のシステム。
【請求項１４】
前記オーディオ同期モードは、ビデオ遅延モード及びオーディオ圧縮モードから選択される、請求項１２又は１３に記載のシステム。
【請求項１５】
前記オーディオ同期モードの前記選択は、前記ビデオデータの帯域幅サイズを評価することを含む、請求項１４に記載のシステム。
【請求項１６】
前記オーディオ圧縮モードは、前記帯域幅サイズが前記第１の電子装置のバッファリング容量を超えたことに応答して選択される、請求項１５に記載のシステム。
【請求項１７】
プロセッサ実行可能命令を記憶した非一時的物理電子ストレージであって、前記プロセッサ実行可能命令は、プロセッサによって実行されたときに、第１の電子装置と第２の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを実施するように構成され、前記システムは、
第１の電子装置においてビデオに関連するオーディオデータを受け取り、
前記第１の電子装置と第２の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、前記第１の電子装置に関連するクロック情報を前記第２の電子装置に無線送信し、
１又は複数のビデオ特性又はネットワーク特性に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、
前記選択されたオーディオ同期モードに従って、前記第１の電子装置から前記第２の電子装置に前記オーディオデータを送信する、
ように構成される、非一時的物理電子ストレージ。
【請求項１８】
前記オーディオ同期モードは、ビデオ遅延モード及びオーディオ圧縮モードから選択される、請求項１７に記載の非一時的物理電子ストレージ。
【請求項１９】
前記オーディオ圧縮モードは、前記オーディオデータに非可逆圧縮を適用することを含む、請求項１８に記載の非一時的物理電子ストレージ。
【請求項２０】
前記ビデオ遅延モード又は前記オーディオ圧縮モードのいずれかにおいて前方誤り訂正が使用される、請求項１８又は１９に記載の非一時的物理電子ストレージ。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワークシステムは、コンピュータ、スマートホン、タブレット及びテレビなどの様々な接続装置を有することができる。ネットワークに接続された装置は、メディアを再生することができる。例えば、ネットワーク上のコンピュータは、インターネットからメディアをダウンロードして、ディスプレイを通じて映像を表示し、スピーカ又はヘッドホンを通じて音声を出力することができる。最近では、テレビに直接メディアをストリーミングできるネットワーク機能を内蔵したスマートテレビが利用できるようになってきた。上記の及びその他の進歩にもかかわらず、テレビ音声を聴くための事実上のオプションは、依然として有線スピーカに限られている。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】米国特許第９，２３７，３２４号明細書
【非特許文献】
【０００３】
【非特許文献１】ＲＦＣ５１０９、「一般的前方誤り訂正のためのＲＴＰペイロードフォーマット（ＲＴＰ  Ｐａｙｌｏａｄ  Ｆｏｒｍａｔ  ｆｏｒ  Ｇｅｎｅｒｉｃ  Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）」（２００７年）
【発明の概要】
【課題を解決するための手段】
【０００４】
１つの態様は、第１の電子装置と第２の電子装置との間でオーディオ再生(audio playback)を同期させるモードを選択するための方法を特徴とする。この方法は、テレビ又はテレビに結合されたメディアソースを含む第１の電子装置においてビデオデータ及びオーディオデータを受け取るステップと、第１の電子装置と第２の電子装置との間に同期クロック(synchronized clocks)を確立するために、無線ネットワークを通じて、第１の電子装置に関連するクロック情報をモバイル装置である第２の電子装置に無線送信するステップと、第１の電子装置のハードウェアプロセッサを用いて、ビデオデータに少なくとも部分的に基づいて、ビデオデータのサイズが閾値を下回る場合にビデオを遅延させることを含む第１のモード及びビデオデータのサイズが閾値を上回る場合にオーディオデータを圧縮することを含む第２のモード、から選択されるオーディオ同期モードをプログラム的に選択するステップと、選択されたオーディオ同期モードに従って、第１の電子装置から第２の電子装置にオーディオデータを送信するステップとを含む。
【０００５】
１つの態様は、第１の電子装置と第２の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを特徴とする。このシステムは、プロセッサ実行可能命令を含むメモリと、プロセッサ実行可能命令を実行するように構成されたハードウェアプロセッサと、ハードウェアプロセッサと通信する無線送信機とを含む第１の電子装置を備える。プロセッサ実行可能命令は、ビデオデータ及びオーディオデータを受け取り、第１の電子装置と第２の電子装置との間に同期クロックを確立するために無線ネットワークを通じて第１の電子装置に関連するクロック情報を第２の電子装置に無線送信することを無線送信機に行わせ、ビデオデータ、バッファ特性及びネットワーク特性のうちの１つ又は２つ以上に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、選択されたオーディオ同期モードに従って第１の電子装置から第２の電子装置にオーディオデータを送信することを無線送信機に行わせるように構成される。
【０００６】
１つの態様は、プロセッサ実行可能命令を記憶した非一時的物理電子ストレージであって、プロセッサ実行可能命令が、プロセッサによって実行されたときに、第１の電子装置と第２の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを実施するように構成された、非一時的物理電子ストレージを特徴とする。システムは、第１の電子装置においてビデオに関連するオーディオデータを受け取り、第１の電子装置と第２の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、第１の電子装置に関連するクロック情報を第２の電子装置に無線送信し、１又は複数のビデオ特性又はネットワーク特性に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、選択されたオーディオ同期モードに従って、第１の電子装置から第２の電子装置にオーディオデータを送信するように構成される。
【０００７】
本明細書では、本開示を要約する目的で、本発明のいくつかの態様、利点及び新規特徴について説明する。必ずしも本発明のいずれか特定の実施形態によってこのような利点を全て実現できるわけではないと理解されたい。従って、本発明は、本明細書で教示するような１つ又は一群の利点を、必ずしも本明細書で教示又は提案できるような他の利点を実現することなく実現又は最適化する形で具体化又は実施することができる。
【図面の簡単な説明】
【０００８】
【図１】ビデオ装置と２つのオーディオ装置との間の同期メディア再生のために構成されたシステム例を示す図である。
【図２】ビデオ装置とオーディオ装置との間の同期メディア再生のために構成されたシステム例を示す図である。
【図３】オーディオ送信のための同期モードを選択するプロセス例を示す図である。
【図４】オーディオ送信のための同期モードを選択するプロセスのさらに詳細な例を示す図である。
【図５】準アイソクロナスモード(semi-isochronous mode)によるメディア送信処理のプロセス例を示す図である。
【図６Ａ】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【図６Ｂ】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【図６Ｃ】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【図７】決定論的モード(deterministic mode)によるメディア送信処理のプロセス例を示す図である。
【図８】決定論的モードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【図９】クロック同期を初期化するプロセス例を示す図である。
【図１０】再同期及びクロックドリフト補正のためのプロセス例を示す図である。
【発明を実施するための形態】
【０００９】
序文
通常、テレビは、音声を提供するための内蔵スピーカを含むが、視聴者によっては、無線ヘッドホンで音声を聞きながらテレビを見たいと望む者もいる。この目的でＢｌｕｅｔｏｏｔｈ(登録商標)無線ヘッドホンを利用することはできるが、Ｂｌｕｅｔｏｏｔｈ(登録商標)無線ヘッドホンはテレビ映像と同期していないことが多いので、Ｂｌｕｅｔｏｏｔｈ(登録商標)プロトコルでは不十分である。従って、視聴者は、聴いているせりふ及びその他の音声が対応する映像内でタイムリーに発生せずにずれてしまうという望ましくない体験に見舞われる。このため、Ｂｌｕｅｔｏｏｔｈ(登録商標)ヘッドホンは消費者に支持されていない。
【００１０】
残念ながら、ＷｉＦｉプロトコル（例えば、ＩＥＥＥ８０２．１１ｘ）を用いたテレビ音声の送信は、この同期問題を十分に解決していない。その主な理由は、無線プロトコルが非同期性だからである。メディアソースとオーディオ受信機は別個のクロックを使用しており、メディアファイルの再生中にこれらのそれぞれのクロック信号が同期せず又は離れて行くことがある。さらに、レイテンシレベルを含む無線ネットワーク性能が変化することによって、オーディオデータが多かれ少なかれ予測できないほど遅延してしまうこともある。
【００１１】
本開示のいくつかの実施形態は、１つの装置（例えば、テレビ（ＴＶ））上の映像を別の装置（例えば、電話又はタブレット）上で再生されている対応する音声と同期させるための改善された同期技術について説明するものである。例えば、リスナーは、モバイル装置に接続されたヘッドホンを通じて、ＴＶで再生されている対応する映像と正しく（又はほぼ）同期した音声を聴くことができる。テレビ、又はさらに一般的に言えば（セットトップボックス又はコンピュータなどの）あらゆるメディアソースは、モバイル装置にインストールされたモバイルアプリケーションとの同期を実行することができる。これにより、Ｂｌｕｅｔｏｏｔｈ(登録商標)ヘッドホンのユーザが直面する問題点の一部又は全部を解決することができる。
【００１２】
さらに、モバイル装置を用いて同期を行うことができるので、メディアソースは、各リスナーのモバイル装置に個々のオーディオストリームを無線で送信することによって異なるリスナーに所望のオーディオを提供することができる。このようにして、各リスナーは、個別のヘッドホンを通じて聴くとともに、ボリューム又はイコライゼーション（例えば、低音域と高音域のバランス）などの個々のオーディオ設定を調整することができる。
【００１３】
いくつかの実施形態では、本明細書で説明するシステム及び方法が、決定論的モード及び準アイソクロナスモードという少なくとも２つの異なるモードから選択を行うことによって同期再生を実行することができる。決定論的モードは、他の特徴の中でも特に、ビデオを遅延させ、この既知の遅延に基づいてモバイル装置上でオーディオを再生することを含むことができる。決定論的処理が利用できない時、又は他の基準に基づいている時に使用できる準アイソクロナスモードは、たとえ非可逆圧縮を使用している場合であってもオーディオを圧縮してできる限りの高速送信を可能にすることを含むことができる。これらの再生モードは、ハードウェアのバッファリング能力、ネットワーク性能、又は再生するメディアのタイプなどの１又は２以上の要因に基づいて選択することができる。様々なクロック同期、バッファリング、クロックドリフト補正及びデータ処理方法を使用して同期を改善することもできる。
【００１４】
以下の複数の例は、便宜上ＴＶ及びスマートホン（例えば、図１を参照）に関して説明するものであるが、この概念は、一般にメディアソース及びオーディオ受信機（例えば、図２を参照）にも及ぶと理解されたい。さらに、本明細書で使用する「同期（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）」という用語及びその派生語は、その通常の意味に加えて実際の又は近似的な同期も意味する。説明するシステム及び方法は、既存のシステムよりも良好な同期を実現することができるが、ビデオとオーディオとの間にリスナーが知覚できないわずかな遅延が存在することもある。従って、本明細書で説明する「同期」は、知覚できない遅延を含む近似的同期を含むことができる。たとえネットワーク条件に起因して、場合によってはユーザが知覚できるわずかな遅延がこの同期に存在する場合でも、この遅延は、一般に現在利用できるシステムによって実現される遅延よりも不快ではないと考えられる。
【００１５】
システム例の詳細
図１及び図２に、上述した同期機能を実装できるシステム例の概要を示す。その後の図である図３〜図１０には、図１及び図２に示すようなシステムにおいて実行できる同期処理の実施形態を示す。
【００１６】
図１に、本明細書で説明する方法のいずれかを実行できる、ビデオ装置と２つのオーディオ装置との間の同期メディア再生のために構成されたシステム例１００を示す。システム１００は、セットトップボックス１０１と、テレビシステム１０３と、モバイル装置１０５と、モバイル装置１０７と、無線ローカルエリアネットワーク、又はワイドエリアネットワークの一部とすることができるネットワーク１０９とを含む。
【００１７】
セットトップボックス１０１は、プロセッサ１１１と、メディアライブラリ１１３と、インターフェイス１１５と、制御インターフェイス１１７と、ユーザ入力１１９を受け取るための外部メディアインターフェイス１２１とを含む。ＴＶシステムは、プロセッサ１２３と、ビデオバッファ１２５と、ディスプレイ画面１２７と、インターフェイス１２９と、Ｗｉ−Ｆｉトランシーバ１３１とを含む。第１の電話機は、プロセッサ１３３と、ユーザインターフェイス１３５と、Ｗｉ−Ｆｉトランシーバ１３７と、無線スピーカ１４１（任意に有線スピーカ又はヘッドホンを使用することもできる）への送信を行うための無線送信機１３９とを含む。第２の電話機は、プロセッサ１４３と、ユーザインターフェイス１４５と、Ｗｉ−Ｆｉトランシーバ１４７と、オーディオドライバ１４９と、ヘッドホン１５３にオーディオを出力できる補助出力部１５１とを含む。
【００１８】
セットトップボックス１０１は、映画、ビデオクリップ、ビデオストリーム又はビデオゲームなどのメディアのソースを提供する。メディアは、外部メディアインターフェイス１２１を通じて受け取ることができる。外部メディアインターフェイス１２１は、同軸接続部、ＨＤＭＩ(登録商標)接続部、ＤＶＩ接続部、ＶＧＡ接続部、コンポーネント接続部、ケーブル接続部、Ｅｔｈｅｒｎｅｔ接続部、無線接続部、或いはインターネット、ゲーム機、コンピュータ、ケーブルプロバイダ又は放送局などに接続する同様のものとすることができる。或いは、セットトップボックス１０１は、ハードディスク又はＢｌｕｅ−ｒａｙ（登録商標）ディスク（図示せず）などのローカルコンピュータ可読記憶媒体に記憶されたローカルメディアライブラリ１１３を有することもできる。
【００１９】
ユーザは、リモコン、スマートホン又はその他の装置を用いて、制御インターフェイス１１７を通じてユーザ入力１１９を提供することができる。セットトップボックス内の１又は２以上のプロセッサ１１１はユーザ入力を処理し、インターフェイス１１５を通じて、選択されたメディア情報をＴＶシステムに通信することができる。インターフェイス１１５は、同軸接続部、ＨＤＭＩ(登録商標)接続部、ＤＶＩ接続部、ＶＧＡ接続部、コンポーネント接続部、ケーブル接続部、Ｅｔｈｅｒｎｅｔ接続部、バス、又はＴＶシステムのインターフェイス１２９に接続する同様のものとすることができる。
【００２０】
ＴＶシステム１０３は、インターフェイス１２９を通じて再生用のメディアを受け取る（他の実施形態では、ＴＶシステムがメディアソースである）。１又は２以上のプロセッサ１２３は、このメディアを処理してオーディオデータ及びビデオデータを操作することができる。ビデオデータは、ビデオバッファ１２５内にバッファリングした後にディスプレイ画面１２７においてレンダリングすることができる。しかしながら、ビデオバッファリングの期間及びビデオをバッファリングするか否かは、本明細書で説明する方法に従って実行することができる。オーディオデータは、ＴＶシステム１０３のＷｉ−Ｆｉ接続部１３１を介し、ネットワーク１０９を通じて、モバイル装置１０５のＷｉ−Ｆｉ接続部１３７及びモバイル装置１０７のＷｉ−Ｆｉ接続部１４７に送信することができる。２つのモバイル装置１０５、１０７には、同じオーディオデータ又は異なるオーディオデータを送信することができる。いくつかの実施形態では、２つのモバイル装置１０５、１０７に同じオーディオデータを送信することができ、２つの装置１０５、１０７は、その後にオーディオパラメータに対してボリューム又はイコライゼーション（例えば、低音域／高音域のバランス、又はさらに詳細なマルチバンド分析）などの調整を個別に行うことができる。いくつかの実施形態では、ＴＶシステム１０３が、モバイル装置１０５に英語のオーディオを送信し、モバイル装置１０７にスペイン語のオーディオを送信することなど、２つの装置１０５、１０７に異なる言語のオーディオデータを送信することができる。いくつかの実施形態では、モバイル装置１０５、１０７の一方又は両方が、盲人用の強化されたナレーション、個人的に処理されたオーディオ、又はローカルに記憶されたオーディオデータ又は拡張オーディオを出力することができる。
【００２１】
モバイル装置１０５は、Ｗｉ−Ｆｉ接続部１３７を通じてオーディオデータを受け取る。１又は２以上のプロセッサ１３３は、このオーディオデータを処理し、無線インターフェイス１３９を通じた出力のためにレンダリングして無線スピーカ１４１を通じて再生されるようにする。モバイル装置１０５のユーザインターフェイス１３５は、ユーザとシステム１００との相互作用を可能にする。例えば、ユーザは、装置１０５上のアプリケーションを用いて、再生すべきメディアコンテンツを選択し、開始、停止、早送り、前方スキップ及び巻き戻しなどの再生コマンドを発行し、或いは別様にセットトップボックス１０１、ＴＶシステム１０３又はモバイル装置１０５と相互作用することができる。いくつかの実施形態では、ユーザインターフェイスを用いて装置１０５上のローカルメディアを選択し、これをＴＶシステム１０３などのネットワーク１０９上の他の装置が再生することもできる。
【００２２】
モバイル装置１０７は、Ｗｉ−Ｆｉ接続部１４７を通じてオーディオデータを受け取る。１又は２以上のプロセッサ１４３は、このオーディオデータを処理し、第２の電話機の補助出力ポート１５１に接続されたヘッドホン１５３を通じて再生できるようにオーディオドライバ１４９を通過させる。モバイル装置１０７のユーザインターフェイス１４５は、ユーザとシステム１００との相互作用を可能にする。
【００２３】
様々な実施形態では、モバイル装置１０７によって受け取られるオーディオデータが、モバイル装置１０５によって受け取られるオーディオデータと同じであることも又は異なることもできる。モバイル装置１０５によって受け取られるオーディオデータとモバイル装置１０７によって受け取られるオーディオデータとが同じものである場合、システムは、ブロードキャスト構成又はマルチキャスト構成で動作することができる。
【００２４】
より一般的なシステム例
図２に、本明細書で説明する方法のいずれかを実行できる、ビデオ装置とオーディオ装置との間の同期メディア再生のために構成されたシステム例２００を示す。システムは、メディアソース２０１と、ネットワーク２０５を通じてオーディオ受信機２０７に接続されたメディアプレーヤ２０３とを含む。メディアソース２０１は、メディアコンテンツ２０９を含む。メディアプレーヤ２０３は、受信機２１１と、１又は２以上のプロセッサ２１３と、メモリ、ストレージ、又はメモリとストレージの両デバイス２１５と、ビデオバッファ２１７と、ビデオレンダラ２１９と、無線ブロードキャスタ２２１とを含む。オーディオ受信機２０７は、無線受信機２２３と、プロセッサ２２５と、メモリ、ストレージ、又はメモリとストレージの両デバイス２２７と、オーディオ出力部２２９とを含む。
【００２５】
メディアソース２０１は、メディアプレーヤ２０３にメディアコンテンツ２０９を提供する。メディアソース２０１は、セットトップボックス（例えば、衛星又はケーブル）、ケーブルボックス、テレビ、スマートテレビ、インターネットプロバイダ、放送局、スマートホン、メディアスティック（例えば、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅｃａｓｔ（商標）など）、メディアプレーヤ（例えば、Ｒｏｋｕ（商標）装置など）、ビデオゲーム機、Ｂｌｕｅ−ｒａｙ（登録商標）プレーヤ、別のコンピュータ、メディアサーバ、アンテナ、又はこれらの組み合わせなどとすることができる。いくつかの実施形態では、メディアソース２０１を、メディアプレーヤ２０３のハードドライブにローカルに記憶されたメディアライブラリなどのメディアプレーヤ２０３の一部とすることができ、或いはメディアソース２０１をメディアプレーヤ２０３とすることもできる。
【００２６】
メディアプレーヤ２０３は、受信機２１１を通じて再生のためのメディアコンテンツ２０９を受け取る。メディアプレーヤは、例えばＴＶ、コンピュータ、又はオーディオビデオ受信機（「ＡＶＲ」）などとすることができる。１又は２以上のプロセッサ２１３は、メディアコンテンツを処理してオーディオデータ及びビデオデータを操作することができる。ビデオデータは、ビデオバッファ２１７にバッファリングした後にビデオレンダラ２１９においてレンダリングすることができる。いくつかの実施形態では、ビデオレンダラ２１９を、ディスプレイ画面、モニタ、プロジェクタ、又は仮想現実ヘッドセットなどとすることができる。しかしながら、ビデオバッファリングの期間及びビデオのバッファを使用するか否かは、本明細書で説明する方法に従って決定することができる。いくつかの実施形態では、メディアプレーヤ２０３が、限られたビデオバッファリングを有することも、又はビデオバッファリングのためのサポート又はハードウェアを完全に欠くこともできる。オーディオデータは、ネットワーク２０５を介してオーディオ受信機２０７に無線で送信することができる。
【００２７】
オーディオ受信機２０７は、無線受信機２２３を通じてオーディオデータを受け取る。１又は２以上のプロセッサ２２５は、このオーディオデータを処理し、ヘッドホン、有線スピーカ又は無線スピーカなどのオーディオ出力部２２７を通じた出力のためにレンダリングすることができる。
【００２８】
同期プロセス例の概要
図３に、ビデオ及びオーディオを送信するための同期モードを選択するプロセス例３００を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェアがプロセス３００を実行することができる。
【００２９】
ブロック３０１において、ネットワーク上でビデオプレーヤ（又はその他のメディアソース）及びオーディオプレーヤを識別する。この識別は、例えばビデオプレーヤ及びオーディオプレーヤがネットワークに接続されて一意の接続識別又は接続アドレスを受け取った時に行うことができる。各ビデオプレーヤ及びオーディオプレーヤは、オーディオとビデオの同期再生を容易にするように構成されたアプリケーションを実行することができる。
【００３０】
ブロック３０３において、同期モードを選択するための基準を評価する。例えば、以下で図４に関して説明する基準を使用することができる。同期モードの例は、限定するわけではないが、決定論的モード及び準アイソクロナスモード（ブロック３０７を参照）を含む。
【００３１】
ブロック３０５において、ビデオプレーヤとオーディオプレーヤとの間にクロック同期を確立することができる。この同期の確立は、ビデオプレーヤとオーディオプレーヤとの間の一方向又は双方向通信を用いて行うことができる。双方向通信クロック同期システムの１つの例は、Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（ＰＴＰ）である。いくつかの実施形態では、ネットワークを通じたビデオプレーヤから１又は２以上のオーディオプレーヤへの一方向ブロードキャストを用いてクロック同期を実行することができる。一方向ブロードキャストに基づいてクロック同期を行う実施形態は、いくつかのタイプの双方向クロック同期スキームに影響を与える非対称アップリンク／ダウンリンクネットワーク時間に基づく計算ミスを避けることができる。さらに、一方向ブロードキャストに基づいてクロック同期を行う実施形態は、各装置が個別に応答するのを待つ代わりに複数の装置との間で１回の同期を実行することができる。クロック同期を確立するための方法例については、以下で図９に関して説明する。
【００３２】
最初、ビデオプレーヤ及びオーディオプレーヤは、互いに同期していない未知のクロックから開始することができる。クロック同期が確立されると、同期クロック信号を用いてビデオプレーヤと１又は２以上のオーディオプレーヤとの間でオーディオ及びビデオ再生を同期させることができる。以下でさらに詳細に説明するように、この同期したクロックを用いて、他のパラメータの中でも特に、遅延期間、再生時間、ステージング時間、マージン時間及びタイムスタンプなどの様々なパラメータの時間設定又は追跡を行うことができる。
【００３３】
ブロック３０７において、評価された基準に基づいて、決定論的同期モード又は準アイソクロナス同期モードを選択する。ブロック３０９において、選択された同期モードに従ってオーディオ及びビデオデータを送信する。
【００３４】
同期モードを選択するためのプロセス例
図４に、オーディオを送信するための同期モード（決定論的又は準アイソクロナス）を選択するプロセス例４００を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア（以下、総称的に「システム」と呼ぶ）がプロセス４００を実行することができる。この実施形態では、システムが、ブロック４０１〜４０９に示す複数の基準を評価して、準アイソクロナス同期又は決定論的同期のいずれかを選択する。このプロセスは、メディアソース又はメディアプレーヤが製造後に（例えば、リスナーの家で）実行することができる。１つの実施形態では、システムが一方のモード（例えば、決定論的）をデフォルトとするが、１又は２以上の基準が満たされたことに応答して他方のモードに切り替わる。別の実施形態では、全ての基準が考慮されるわけではない。
【００３５】
ブロック４０１において、システムは、ビデオ装置（又はメディアソース）のバッファが決定論的モードにとって十分であるかどうかを判断する。ビデオによっては、未圧縮の場合に大きすぎてバッファリングできないものもあり、従って決定論的処理のためにこれらのビデオを遅延させることができない（又はビデオ性能が低下するため望ましくない）場合もある。他のビデオは圧縮形式で配信され、バッファリングが容易である。このステップでは、ビデオが圧縮されているかどうかを識別し、対応するバッファサイズを識別することができる。或いは、製造時にシステムのバッファリング能力をメタデータなどに符号化して、決定論的モードを利用できるかどうか、或いは着信ビデオの帯域幅に応じて決定論的モードを利用できる程度を示すこともできる。
【００３６】
別の実施形態では、このステップ（４０１）が、ビデオ装置がバッファリングをサポートしているかどうかを判断することも含む。この判断は、バッファリングハードウェアの存在、或いはバッファリングをサポートするファームウェア及びソフトウェアの能力に基づくことができる。いくつかの実施形態では、この判断を、バッファリング能力の有無が分かっているモデルのリスト内でシステムのモデルを検索することに基づいて行うことができる。いくつかの実施形態では、この判断を、ビデオをバッファリングするための試験コマンドを発行しようと試みることによって行うことができる。ビデオ装置がバッファリングをサポートしていない場合には、ブロック４１１において準アイソクロナスモードが選択される。
【００３７】
ブロック４０１においてビデオ装置がバッファリングをサポートしている場合、システムは、ブロック４０３において、バッファリングに適していないものとして分類されるビデオゲームなどの特定のメディアタイプがメディアソースとして検出されたかどうかを判定する。多くのビデオゲームは、ユーザがビデオ内の遅延を一切望まないので、決定論的モードで使用されるビデオバッファリングには適していない。使用するメディアのタイプは、例えば特定のポートを通じてシステムに接続されたビデオゲーム機の存在、システム内で検出された１又は２以上の実行中のプロセス名、或いはこれらの組み合わせなどに基づいて決定することができる。ビデオゲーム（又は他の何らかの特定のタイプのメディア）が検出された場合には、ブロック４１１において準アイソクロナスモードが選択される。
【００３８】
ブロック４０３において、ビデオゲーム（又はバッファリングに適していない他のメディア）以外のメディアがメディアソースとして検出された場合、ブロック４０５において、ネットワークの安定性を試験することができる。この試験は、例えばネットワークにピングを送信してピング時間の変動を測定すること、ネットワークを通じてパケットを送信してパケット送信時間の変動を測定すること、及びリモートホストとの間でデータを送受信して送受信速度の変動を測定することなどによって行うことができる。この試験は、ビデオプレーヤからネットワークに対して、メディアプレーヤとオーディオプレーヤとの間で、又はリモートインターネットソースに対して行うことができる。試験測定は、同期クロックに基づくことができる。ネットワーク送信時間が安定していない場合（例えば、変動が一定量又は一定割合を上回る場合、最低速度が一定量を下回る場合など）には、ブロック４１１において準アイソクロナスモードが選択される。
【００３９】
ブロック４０５において、ネットワーク送信時間が安定している場合、ブロック４０７においてネットワークの帯域幅を試験する。この試験は、例えばネットワークを通じてオーディオ装置又はその他の宛先に複数のパケット（例えば、オーディオデータに特有の量）を送信することによって行うことができる。データの受信レートを用いて帯域幅を特定することができる。試験測定は、図３（図９も参照されたい）に関して上述した同期クロックに基づくことができる。ネットワーク帯域幅が不十分な場合（例えば、平均帯域幅が一定の閾値を下回る場合、最小帯域幅が一定量を下回る場合など）には、ブロック４１１において準アイソクロナスモードが選択される。
【００４０】
ブロック４０７において、ネットワークが十分な帯域幅を有すると判断された場合、ブロック４０９において、送信機及び受信機が、ビデオプレーヤとオーディオプレーヤがいずれも決定論的モードを通じた再生をサポートしているかどうかを判断することができる。この判断は、ビデオプレーヤとオーディオプレーヤとの間でクロックが同期しているかどうか、又は同期できるかどうか、並びにビデオプレーヤとオーディオプレーヤの両方におけるアプリケーションによってそれぞれの装置が決定論的モードをサポートするように構成されているかどうかに基づくことができる。サポートされていない場合には、ブロック４１１において準アイソクロナスモードが選択される。ビデオプレーヤ及びオーディオプレーヤがいずれも決定論的モードのために同期している場合、ブロック４１３において決定論的モードが選択される。ネットワーク条件は変化するので、図４に示す１又は２以上のブロックを再び実行してネットワーク条件を再評価し、再生モードを変更することもできる。従って、再生モードは、現実のネットワーク条件に基づいてリアルタイムで変化することができる。
【００４１】
準アイソクロナスモードのプロセス例
図５に、準アイソクロナスモードによるメディア処理のプロセス例５００を示す。このプロセスは、本明細書で説明するシステムのうちのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア（以下、総称的に「システム」と呼ぶ）が処理５００を実行することができる。
【００４２】
準アイソクロナスモードは、オーディオの素早い送信及びレンダリングのために選択することができる。準アイソクロナスシステムでは、メディアプレーヤがオーディオデータを圧縮してオーディオプレーヤに送信し、これが妥当な時間遅延内に受け取られた場合にオーディオデータをレンダリングすることができる。
【００４３】
準アイソクロナスモードは、ネットワーク接続が混雑していて利用可能な帯域幅が低い時にはデータを圧縮することによって、決定論的モードよりも良好に機能することができる。また、準アイソクロナスは、（いくつかの実施形態では）受け取ったオーディオを特定の遅延時間に再生されるようにバッファリングしないので、ネットワーク速度のばらつきが大きくて目的の宛先に遅延時間よりも前にオーディオパケットが到達しない可能性がある時には、決定論的モードよりも良好に機能することができる。とは言うものの、高速で安定したネットワーク接続を利用できる他のシナリオでは、決定論的モードの方が良好な性能をもたらすことができる。
【００４４】
ブロック５０１において、例えば現在利用できる（ＴＣＰ／ＩＰなどの）インターネットプロトコルを用いてオーディオデータをパケット化する。
【００４５】
ブロック５０３において、オーディオデータを圧縮する。圧縮オーディオデータは使用帯域幅が少ないので、混雑したネットワークでも高速送信することができる。この圧縮スキームは、可逆的又は非可逆的なものとすることができ、非可逆的アルゴリズムの中には、オーディオ信号の劣化をトレードオフとして（高圧縮率に起因して）高速性能をもたらすことができるものもある。ブロック５０５において、任意にパケット損失率を測定する。
【００４６】
ブロック５０７において、損失率に基づいて、任意に前方誤り訂正（ＦＥＣ）パケットを生成する。ＦＥＣは、本明細書で説明するオーディオ送信などの一方向通信を用いてパケット損失の回復を改善することができる。また、ＦＥＣは、オーディオデータのレンダリングに必要な時間が短いことによってリクエストを送信した後にペイロードを再送するための時間が十分に残っていない可能性があるという理由でとりわけ有用となり得る。１つの実施形態では、多くのＦＥＣアルゴリズムを使用することもできるが、システムは、例えば全体が引用によって本明細書に組み入れられるＲＦＣ５１０９、「一般的前方誤り訂正のためのＲＴＰペイロードフォーマット（ＲＴＰ  Ｐａｙｌｏａｄ  Ｆｏｒｍａｔ  ｆｏｒ  Ｇｅｎｅｒｉｃ  Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）」（２００７年）に記載されるように１又は２以上のパケットにわたってＸＯＲ（排他的ＯＲ）演算を適用することによってＦＥＣパケットを生成する。ブロック５０９において、ＦＥＣパケットをオーディオパケットと交互配置(interleaved)することができる。ブロック５１１において、パケットを受信機に送信することができる。
【００４７】
ブロック５１３において、ＴＶシステムなどの第１の装置でビデオをレンダリングすることができる。いくつかの実施形態では、バッファリングを伴わずにビデオがレンダリングされる。いくつかの実施形態では、平均又は最小予想送信及び処理時間に基づいて短時間でビデオをバッファリングすることができる。このバッファリング時間は、ネットワーク試験（例えば、図４のブロック４０５及び４０７に関して説明した試験）に基づいて推定することができ、ビデオの時点又はその直後（例えば、１〜３フレーム内）にオーディオが再生されるように選択することができる。例えば、ネットワークピングが典型的には２００〜３００ｍｓに及び、たまに１００ｍｓほどの速さである場合、バッファは１００ｍｓ（プラス任意に最速のオーディオレンダリング時間）とすることができる。
【００４８】
図６Ａ、図６Ｂ及び図６Ｃに、準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例６００、６２０及び６５０をそれぞれ示す。例えば、モバイル装置などのオーディオ受信機上で実行されているソフトウェアが、プロセス６００、６２０及び６５０を実行することができる。
【００４９】
図６Ａには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第１のプロセス例６００を示す。ブロック６０１において、オーディオ受信機が圧縮オーディオパケットを受け取る。ブロック６０３において、受信機は、圧縮オーディオパケットが第１の閾値内に受け取られたかどうかを判定する。圧縮オーディオパケットが第１の閾値内に受け取られなかった場合、ブロック６０５において、オーディオ受信機が圧縮オーディオパケットを破棄する。第１の閾値は、２つのビデオフレームをＴＶでレンダリングするのに掛かると思われるおおよその時間（いくつかのシステムでは約６６ｍｓ）とすることができる。圧縮オーディオパケットが第１の閾値内に受け取られた場合、ブロック６０７において、オーディオ受信機が圧縮オーディオパケットを保持バッファに記憶する。
【００５０】
図６Ｂには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第２のプロセス例６２０を示す。ブロック６２１において、オーディオ受信機が第１のパケットを求めて保持バッファを検索する。第１のパケットは、例えばブロック６０７において保持バッファに記憶された圧縮オーディオパケットとすることができる。ブロック６２３において、オーディオ受信機が保持バッファ内で第１のパケットを発見したかどうかを判定する。第１のパケットが発見されなかった場合、ブロック６２５において、第１のパケットの構築にＦＥＣ又は冗長データを利用できるかどうかを判断する。受信機は、冗長データ又はＦＥＣ補正データを識別しようと試みることができる。冗長データ又は補正データは、例えばＦＥＣパケットなどの以前に送信された誤り訂正パケットから取得することができる。他の考えられる技術の中でも特に、以前の及び後続のパケット内のデータに基づいて失われたパケットデータを予測する曲線適合法を用いて後続のパケットを利用できる場合には、欠落パケットについても補正データを抽出することができる。ＦＥＣデータを利用できると判断された場合、ブロック６２９において、ＦＥＣデータから第１のパケットを復元する。
【００５１】
第１のパケットが保持バッファ内で発見された場合又は復元された場合、ブロック６３１において、パケット到着時間閾値が経過したかどうかを判定する。未だパケット到着時間閾値が経過していない場合、ブロック６３３において、第１のパケットを解凍して解凍オーディオデータを生成する。ブロック６３５において、オーディオ受信機のステージングバッファに解凍オーディオデータを追加する。ブロック６３７において、オーディオ受信機は、パケットインデックスを増分して次のパケットを探す（例えば、第１のパケットを処理した後に第２のパケットを探す）。
【００５２】
ブロック６２５において、第１のパケットを復元するためにＦＥＣデータを利用できない場合、ブロック６２７において、第１のパケットを発見するためのパケット到着時間が経過したかどうかを判定する。未だパケット到着時間が経過していない場合、プロセス６２０は再びブロック６２１に進み、第１のパケットを求めて保持バッファを検索し続けることができる。
【００５３】
ブロック６２７又は６３１のいずれかにおいて、第１のパケットのパケット到着閾値時間が経過した場合、プロセスはブロック６３９に進んでステージングバッファに無音パケットを挿入する。いくつかの実施形態では、ステージングバッファに無音を挿入する代わりに複製パケットを挿入することができる。２ビデオフレームの遅延などの一定の遅延が過ぎると、オーディオパケットがビデオとの同期から検出可能にずれることができ、従ってオーディオパケットを欠落させることが好ましい行動になり得る。その後、ブロック６３７においてパケットインデックスを増分させ、次のオーディオパケットについてプロセス６２０を繰り返すことができる。
【００５４】
図６Ｃには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第３のプロセス例６５０を示す。ブロック６５１において、ステージングバッファ内の次の項目をレンダリングするための閾値時間が経過したかどうかを判定することができる。ブロック６５１においてステージングバッファ内の次の項目をレンダリングするための閾値時間が未だ経過していない場合、プロセス６５０は、閾値時間が経過するまでブロック６５１を繰り返すことができる。閾値時間が経過すると、ブロック６５３において、オーディオ受信機がステージングバッファ内の次の項目のレンダリングを開始することができる。例えば、次の項目は、ブロック６３４においてオーディオ受信機のステージングバッファに追加された解凍オーディオデータとすることができる。その後、プロセスはブロック６５１に戻ることができる。
【００５５】
決定論的モードのプロセス例
図７に、決定論的モードによるメディア処理のプロセス例７００を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア（以下、総称的に「システム」と呼ぶ）が処理７００を実行することができる。
【００５６】
決定論的モードでは、正常なネットワーク変動の存在時に、ビデオレンダリングの遅延を考慮しながらオーディオの送信及びレンダリングにとって十分な時間を許容する遅延時間を決定することができる。メディアソースは、予定されているオーディオのレンダリングよりも前の時点にオーディオペイロードを送信することができる。オーディオペイロードは、第２の装置に送信されると、再生時刻までバッファリングすることができ、従ってビデオと同期してレンダリングされる。ビデオデータは、オーディオが第２の装置に送信されて処理されている間に第１の装置において再生時刻までバッファリングされ、その後にレンダリングすることができる。メディアソース及び受信装置は、同期クロック信号を用いてオーディオ出力とビデオ出力とを同期させることができる（例えば、図９及び図１０を参照）。
【００５７】
ブロック７０１において、遅延時間を決定する。遅延時間は、オーディオ装置がオーディオパケットを受け取り、ビデオ装置によってビデオがレンダリングされるのと同期して遅延した時刻にレンダリングできるように十分に長くすることができる。ビデオバッファ容量によって最長遅延時間を決定することができる。遅延時間は、平均又は最大予想送信及び処理時間よりも長くなるように設定することができる。遅延時間は、平均送信及び処理時間に多様な標準偏差を加えたものよりも長くなるように設定することができる。パケットの大部分を同期してレンダリングできるほど十分に遅延時間が長い場合には、エラーマスキング技術又は誤り訂正技術を用いて残りのわずかなパケットを隠すことができる。
【００５８】
遅延時間は、ネットワーク試験（例えば、ブロック図４のブロック４０５及び４０７に関して説明した試験）に基づいて（例えば、製造時に）事前に決定又は推定することができる。例えば、ネットワークピングが典型的には４００〜５００ｍｓに及んで、たまに最大９００ｍｓのラグを伴う場合、遅延時間は、ビデオバッファによってサポートされている場合には９００ｍｓ（プラス任意にオーディオパケットの受信後にオーディオのレンダリングに掛かる時間）とすることができる。
【００５９】
遅延時間は、同期クロックに基づいて測定することができ、タイムスタンプ後に遅延すべき時間の形（例えば、２秒と３３５マイクロ秒）を取ることができる。いくつかの実施形態では、遅延時間が、オーディオ及びビデオを再生すべき提示時刻の形で設定される（例えば、１２：３０：００：０００ｐｍにビデオがバッファリングされ、１２：３０：０２：３３５ｐｍに再生が設定される）。オーディオを再生するように構成された複数の装置を特徴とする実施形態では、この測定が、複数の装置全てからの（依然としてバッファリングハードウェアの能力範囲内の）最悪の場合の測定値に基づくことができる。いくつかの実施形態では、遅延時間を０．５秒、１秒、２秒、３秒、４秒、５秒又は６秒、或いは別の同様の時間とすることができる。
【００６０】
ブロック７０３において、遅延時間にわたってビデオを遅延させる。この遅延は、（例えば、図２のビデオバッファ２１７などの）ビデオバッファを用いて実行することができる。いくつかの実施形態は、圧縮ビデオをバッファリングする。
【００６１】
ブロック７０５において、遅延した時刻に第１の装置上でビデオを再生することができる。遅延した時刻は、同期クロックに基づいて決定される。いくつかの実施形態では、ビデオの再生が、ビデオを解凍してレンダリングすることを含むことができる。バッファからのビデオ再生は、瞬間的なものではないが非常に高速になり得る。従って、いくつかの実施形態では、さらに改善された性能のためのタイミングパラメータ（例えば、遅延時間）を決定する際に、再生時間のわずかな調整を行うことができる。
【００６２】
ブロック７０７において、オーディオデータをパケット化する。このパケットは、同期クロック、パケットのシーケンス番号、ビットレート、ステージング時間、マージン時間、その他のヘッダ情報、及び圧縮オーディオデータを含むオーディオペイロードに基づいてタイムスタンプと共に形成することができる。タイムスタンプは、メディア装置がパケットを送信する現在の時刻Ｔ０として初期化することができる。後続のＳ個のパケット又はステージング時間については、初期ステージング時間又は初期タイムスタンプに加算（Ｓ＊Ｄ）された後続のタイムスタンプ又はステージング時間を計算することができ、ここでのＤはパケットの再生時間を表し、Ｓは整数である。いくつかの実施形態では、実際の時刻を報告する代わりに後続のタイムスタンプ又はステージング時間を計算すると、アルゴリズムがクロックドリフトを補正するように改善される。例えば、オーディオ装置のクロックによって測定された現在の時刻が、タイムスタンプ又はステージング時間と比べて予想範囲から外れている場合には、クロック再同期を実行してクロックドリフトを補正することができる。
【００６３】
ブロック７０９において、上述したようにＦＥＣパケットを生成して、パケット化オーディオデータと交互配置することができる。この交互配置は、ペイロードレベル、パケットレベル又はその他のレベルで行うことができる。ＦＥＣパケットは、損失率に基づいて生成することができる。
【００６４】
ブロック７１１において、ネットワークを通じて第２の装置にオーディオパケットを送信する。
【００６５】
図８に、決定論的モードによる、オーディオを受け取ってレンダリングするプロセス例８００を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、モバイル装置などのオーディオ受信機上で実行されているソフトウェアがプロセス８００を実行することができる。
【００６６】
ブロック８０１において、オーディオパケットを受け取る。例えば、図２に関して言えば、オーディオ受信機２０７の無線受信機２２３が、ネットワーク２０５を通じて送信されたオーディオパケットを受け取ることができる。
【００６７】
ブロック８０５において、オーディオパケットをアンパックし、任意にオーディオパケットの取り込み時間を決定することができる。取り込み時間は、同期クロックに基づいて測定することができる。様々な実施形態は、異なるレベルのハードウェア／ファームウェア／ソフトウェアにおいてパケットをアンパックすることができる。オーディオパケットをアンパックすることにより、同期クロックに基づくタイムスタンプ、パケットのシーケンス番号、ビットレート、ステージング時間、マージン時間、その他のヘッダ情報及び圧縮オーディオデータを含むオーディオペイロードを特定することができる。
【００６８】
ブロック８０７において、オーディオペイロードのステージング時間を決定する。ステージング時間は、同期クロック信号に基づいて測定することができ、ビデオが再生された又はビデオを再生すべき時間又はフレームを識別する。
【００６９】
ブロック８０９において、オーディオペイロードのマージン時間を決定する。マージン時間は、ステージング時間の前後の、オーディオペイロードをレンダリングできる時間とすることができる。いくつかの実施形態では、マージン時間を決定した後に、これを別個のパケットに含めて（例えば、一連のパケットの開始時に、又は一連のパケットに定期的に挿入して）通信する。マージン時間は、例えば２０ミリ秒、３０ミリ秒、３３ミリ秒、４６ミリ秒、５０ミリ秒、６０ミリ秒、６６ミリ秒、８０ミリ秒、９９ミリ秒又は１００ミリ秒、０．５個、１個、１．５個、２個、２．５個又は３個のフレームなどとすることができる。
【００７０】
ブロック８１１において、ステージング時間＋（又は−）マージン時間内にオーディオペイロードが取り込まれたかどうかを判定する比較を行う。ブロック８１１においてステージング時間＋マージン時間内にオーディオパケットが取り込まれた場合、ブロック８１３において、オーディオペイロードをバッファリングして（８１４）レンダリングする（８１６）。
【００７１】
ブロック８１１においてステージング時間後であってマージン時間までにオーディオパケットが取り込まれた場合、ブロック８１５において、冗長データ又は補正データを取得して構築することができる。ブロック８１５は、依然としてステージング時間＋又は−マージン時間内にある時点に決定することができる。冗長又は補正データは、例えばＦＥＣパケットなどの以前に送信された誤り訂正パケットから取得することができる。以前の及び後続のパケット内のデータに基づいて失われたパケットデータを予測する曲線適合法を用いて後続のパケットを利用できる場合には、欠落パケットについても補正データを抽出することができる。ブロック８１７において、冗長又は補正データから構築されたオーディオペイロードをレンダリングする。
【００７２】
ブロック８１５において冗長又は補正データがステージング時間＋マージン時間内に利用できない場合には、ブロック８１９において、失われたパケットの代わりに無音パケット又は以前のパケットの複製をレンダリングすることができる。
【００７３】
クロック同期プロセスの例
図９に、クロック同期を初期化する方法例のプロセス例９００を示す。図１０には、再同期及びクロックドリフト補正のための方法例のプロセス例１００を示す。これらのプロセスは、本明細書で説明するシステムのいずれかが実行することができる。図９及び図１０は、２０１３年９月１２日に出願された「再生同期（Ｐｌａｙｂａｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）」という名称の米国特許第９，２３７，３２４号において考察したものであり、この文献はその全体が引用により本明細書に組み入れられる。
【００７４】
方法例９００は、無線受信機（例えば、図２のオーディオ受信機２０７）を含むいずれかのメディア装置が実行することができる。方法例９００は、方法例３００のブロック３０５の一部として、又はメディア装置間のタイミングパラメータの同期が適切である時には常に実行することができる。方法９００は、一方向通信に基づくクロック同期の例を示す。メディア装置は、ネットワークを通じてオーディオ受信機に、クロック「単位（ｔｉｃｋｓ）」を含むクロック信号をビーコンメッセージとして一定のレート（例えば、１００ｍｓ）で繰り返し送信（「フラッディング」）することができる。オーディオ受信機は、ネットワーク性能の変化に起因して、このクロック信号を異なる時点で受け取ることができる。しかしながら、オーディオ受信機は、一連のクロック信号をほぼ一定のレートでいつ受け取るか（例えば、１００ｍｓ間隔で信号を受け取ると）を決定し、さらなる統計分析を行ってクロック同期を改善する基礎としてこれらのタイミングを使用することができる。オーディオ受信機は、メディアプレーヤにタイミング情報を送信することなくこれを行うことができる。
【００７５】
方法例９００は、ブロック９０５から開始してブロック９１０に進み、受信装置が、新たなメッセージの受信時又は処理時に、実行中の最小オフセット値の維持において使用する最小オフセット変数「ＭｉｎＯ」を初期化する。次に、ブロック９１５において、受信装置は、送信装置からビーコンメッセージを受け取る。次に、ブロック９２０において、受信装置は、受信装置のクロックが現在示している時間に基づいてタイムスタンプを生成する。このようなタイムスタンプは、「受信機タイムスタンプ」、「Ｒ（ｘ）」と呼ぶことができる。ブロック９１５とブロック９２０との間に経過した時間は、受信装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法９００の様々な実装は、ブロック９２０とブロック９２５との間で行われる動作の数を低減又は最小化しようと努める。
【００７６】
ブロック９２５において、受信装置は、ビーコンメッセージから送信機タイムスタンプ「Ｓ（ｘ）」を抽出する。送信機タイムスタンプは、ビーコンメッセージ送信の直前に送信装置によってビーコンメッセージに挿入される。ブロック９３０において、受信装置は、送信装置が仮想メディアネットワークのメディアソースであるかどうかを判定する。このような場合、方法９００はブロック９３５に進む。次に、受信装置は、送信機タイムスタンプを送信装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換は、これらの２つの装置間で以前に取り決められたオフセットを加算又は減算することを伴うことができる。このような取り決め及び時間領域間の変換は、当業者に周知のいずれかの方法に従って実行することができる。いくつかの代替の実施形態では、ソース装置とメディアノードとが同じ時間領域内でクロックを維持する。このようないくつかの実施形態では、ブロック９３０、９３５が存在しない。
【００７７】
ブロック９３５において送信機タイムスタンプを仮想メディアネットワーク領域に変換した後、或いはブロック９３０において送信側がメディアソースではないと判断した後に、方法９００はブロック９４０に進み、受信装置が、送信機タイムスタンプと受信機タイムスタンプとに基づいて、例えば２つのタイムスタンプ間の差分に基づいてオフセット値を計算する。この現在のオフセット値「ＣｕｒＯ」は、送信機クロックと受信機クロックとの間の真のオフセットに、２つのタイムスタンプＳ（ｘ）及びＲ（ｘ）が生成されている間にビーコンメッセージが遭遇するあらゆる遅延を加えたものに相当する。上述したように、この遅延は２つの成分を含む。第１の遅延成分は、ネットワークのハードウェアコンポーネント及びソフトウェアコンポーネントを横切るのに掛かる時間に関連する固定遅延であり、例えばメッセージが進む回路及びデータ経路に関連する一定の遅延に、ＯＳがメッセージの送信／受信と関連するタイムスタンプの生成との間に要する時間を加えたものである。このような固定遅延は、レンダリングプロセスの一部として既に考慮されていることもある。第２の遅延成分は、時間と共に変化する遅延に関連する可変ネットワーク遅延である。例えば、Ｗｉ−Ｆｉなどの共有メディアネットワークは、送信前にメディアがクリアになるのを待機することがあり、従って異なる時点で異なる遅延を生じることがある。
【００７８】
可変遅延はさらなる遅延しか招かない（遅延が除去されることはない）ので、より良好な真のクロックオフセットの推定値は、遅延が最小のメッセージから取得される。従って、方法９００は、ビーコンメッセージのフラッディング中に取得された最小オフセット値を真のオフセットの利用可能な最良の推定値として検索する。ブロック９４５において、受信装置は、現在のオフセットＣｕｒＯを以前に特定された最小オフセットと比較し、或いは現在のループの反復が、ブロック９１０において初期化された最小オフセット値ＭｉｎＯに対する最初の反復であるかどうかを判定する。ＣｕｒＯがＭｉｎＯを下回る場合、ＣｕｒＯは、送信機クロックと受信機クロックとの間の真のオフセットに近い推定値を表すことが分かり、ブロック９５０において、受信装置がＭｉｎＯの値にＣｕｒＯの値を上書きする。
【００７９】
ブロック９５５において、受信装置は、送信装置がビーコンメッセージのフラッディングを完了したかどうかを判断する。例えば、受信装置は、さらなるビーコンメッセージを待っている時に、タイムアウトが発生したかどうかを判定することができ、送信装置がメディアメッセージの送信を開始したと判断することができ、所定数のビーコンメッセージを受け取ったと判断することができ、或いは送信装置がフラッディングの終了を示す特別なメッセージを送信したと判断することができる。様々な実施形態では、受信装置が、所望の精度のオフセットを設定するためにフラッディングが十分であったかどうかを判断する。例えば、受信装置は、ビーコンメッセージの受信間隔を追跡し、測定された間隔と既知の時間間隔との比較に基づいて、所望の精度のオフセット値を生じるほど十分にネットワークが安定したか否かを判断することができる。ネットワークが十分に安定していないかった場合、受信装置は、さらなるフラッディングを実行すべき旨を示すメッセージを送信装置に送信する。様々な修正が明らかであろう。本明細書の教示に照らせば、ビーコンメッセージのフラッディングの十分性を判断するためのこれらの及びその他の方法の様々な組み合わせを使用できることが明らかであろう。
【００８０】
さらなるフラッディングが実行されている又は実行される予定であると受信装置が判断した場合、方法９００は、ブロック９５５からブロック９１５に戻ってさらなるビーコンメッセージを処理する。そうでなければ、方法９００はブロック９６０に進み、受信装置は、決定された最小オフセットに基づいてローカルクロックをリセットする。例えば、受信装置は、現在のクロック値からＭｉｎＯを減算して、送信装置の実際のクロック値に近いと推定される新たな値にローカルクロックを設定することができる。ネットワークの固定遅延が既知である又は推定されるいくつかの実施形態では、受信装置が、現在のクロック値からＭｉｎＯを減算して固定遅延値に戻し、計算されたオフセット値の真のクロックオフセット値を分離しようと試みる。いくつかの実施形態では、受信装置がローカルクロックを全く変更せず、代わりに送信装置から受け取ったタイムスタンプとローカルクロックとの比較において使用できるように最小オフセット値ＭｉｎＯを維持することができる。例えば、受信装置は、このようなあらゆる比較の前にタイムスタンプにＭｉｎＯを加算することができる。他の様々な修正が明らかであろう。その後、方法９００は、ブロック９６５に進んで終了することができる。方法９００が完了した時のリセットクロックは、同期クロックとみなすことができる。
【００８１】
様々な代替の実施形態では、受信装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットを使用してクロックがリセットされないように保証する支援を行う。例えば、変動の大きなネットワーク遅延の期間にフラッディング期間が含まれている場合、計算されたオフセットが、送信機クロックと受信機クロックとの間の真のオフセット値よりもはるかに大きくなることがある。このようないくつかの実施形態では、最初に受信機が、ブロック９４０〜９５０において計算した最小オフセットと以前に設定された下限オフセットとを比較して、最小オフセットが下限オフセットよりも大きいかどうかを判定する。大きい場合、受信機は、この最小オフセットに基づくクロックの更新を拒否し、以前に設定された下限を使用し続ける。そうでなければ、最小オフセット値が下限を下回る（従って、より良好な推定値である）ので、受信機は、ブロック９６０に詳述するようにクロックを更新する。
【００８２】
様々な実施形態では、受信装置が方法９００を定期的に実行して同期を再確立する。このようないくつかの実施形態では、受信装置が、クロックを元の値にリセットし、記憶されているオフセット値を削除し、又は以前の方法９００の実行に基づいて行われたあらゆる変更を「巻き戻す（ｒｏｌｌｓ  ｂａｃｋ）」ことによって、クロックオフセットの決定を「やり直す（ｓｔａｒｔ  ｏｖｅｒ）」。受信装置は、クロックオフセットを定期的に再設定することにより、送信装置のクロックと受信装置のクロックとの間のクロックドリフトをさらに良好に考慮することができる。
【００８３】
本明細書の教示に照らせば、各ビーコンメッセージを受信時に処理するリアルタイムな方法として方法９００を説明しているが、様々な代替の実施形態は、ビーコンメッセージをバッチとして処理する方法を利用することが明らかであろう。例えば、このようないくつかの実施形態では、受信装置が、複数のビーコンメッセージを受け取り、受信時にメッセージにタイムスタンプを付与し、受け取ったメッセージを後の時点で順に処理して、ブロック９２５〜９６０に関して説明した方法と同様に最小オフセットを決定する。
【００８４】
上記の方法では、２つの装置間のクロックオフセットの最良の推定値を生成しようと試みているが、この初期フラッディング期間後にネットワーク条件が一時的に改善し、その後にさらに良好な推定値を取得できる可能性もあると理解されたい。従って、初期タイミングパラメータの設定後に方法を使用して、より良好にクロックオフセットを推定しようと試みることもできる。このような方法は、送信装置のクロックと受信装置のクロックとが水晶、温度又はその他のパラメータの差分によってわずかに異なるレートで動作し得るクロックドリフトの可能性に対処することもできる。
【００８５】
図１０に、再同期及びクロックドリフト補正のための方法例のプロセス例１０００を示す。不完全性に起因して、システム内のいずれかの装置のローカルクロックがゆっくりとドリフトすることがある。この方法例は、受信メディア装置がメディアストリーミング中に良好な再生同期を取得するために使用することができる。例示的な方法１０００は、受信メディア装置として機能するいずれかのメディア装置が実行することができる。方法例１０００は、図３のブロック３０９の一部として、又はメディア装置間のタイミングパラメータの同期が適切である時には常に実行することができる。
【００８６】
方法例１０００は、ブロック１００５から開始してブロック１０１０に進み、受信装置が送信装置からメディアデータパケットを受け取る。次に、ブロック１０１５において、受信装置は、受信装置のクロックが現在示している時間に基づいてタイムスタンプＲ（ｘ）を生成する。ブロック１０２０において、受信装置は、メディアデータメッセージから送信機タイムスタンプ「Ｓ（ｘ）」を抽出する。送信機タイムスタンプは、送信装置が送信の直前にメディアデータメッセージに挿入しておくことができる。ブロック１０２５において、受信装置は、送信装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。このような場合、方法１０００はブロック１０３０に進む。次に、受信装置は、送信機タイムスタンプを送信装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換は、これらの２つの装置間で以前に取り決められたオフセットを加算又は減算することを伴うことができる。このような取り決め及び時間領域間の変換は、当業者に周知のいずれかの方法に従って実行することができる。いくつかの代替の実施形態では、ソース装置とメディアノードとが同じ時間領域内でクロックを維持する。このようないくつかの実施形態では、ブロック１０２０、１０３０が存在する。
【００８７】
ブロック１０３０において送信機タイムスタンプを仮想メディアネットワーク領域に変換した後、或いはブロック１０２５において送信側がメディアソースではないと判断した後に、方法１０００はブロック１０３５に進み、受信装置が、送信機タイムスタンプと受信機タイムスタンプとに基づいて、例えば２つのタイムスタンプ間の差分に基づいてオフセット値を計算する。送信機のタイムスタンプが変換されていた場合には、変換されたタイムスタンプをオフセットの計算に使用する。このオフセット値「Ｏ」は、送信機クロックと受信機クロックとの間の真のオフセットに、２つのタイムスタンプＳ（ｘ）及びＲ（ｘ）が生成されている間にメディアデータメッセージが遭遇する、固定遅延及び可変遅延の両方を含むあらゆる遅延を加えたものに相当する。ブロック１０４０において、受信装置は、このオフセット値が以前に利用していたものよりも良好なクロック間のオフセット推定値を表すかどうかを判断する。例えば、以前に決定された最小オフセットを用いて受信装置のクロックをリセットする様々な実施形態では、受信装置が、現在のオフセットＯがゼロよりも小さいかどうかを判定する。この比較における肯定的な結果は、以前に使用していた最小オフセットが何らかの可変ネットワーク遅延を含み、これをローカルクロックから減算すると、理想的な設定点を「行き過ぎて（ｏｖｅｒｓｈｏｔ）」しまうことによってローカルクロックが送信機のクロックよりも遅れて設定されることを示す。現在のオフセットＯは、以前に使用していた最小値よりも小さな（又はゼロの）可変遅延を含むことにより、負の数値になることによってこの行き過ぎを示すことができる。このような場合、現在のオフセットＯは、真のクロックオフセットの新たな最良の推定値を示していると判断され、ブロック１０４５において、このオフセットＯを用いて再びローカルクロックをリセットすることにより、以前の行き過ぎを少なくとも部分的に補正することができる。他の実施形態のための様々な修正が明らかであろう。例えば、以前に決定された最小オフセットがローカルクロックの修正に使用されず、代わりにタイムスタンプの比較において使用できるように存続する実施形態では、ブロック１０４０が、現在のオフセットＯが以前の最小オフセットＭｉｎＯを下回るかどうかを判定し、下回る場合には、ブロック１０４５において、受信装置がＭｉｎＯをＯに等しく設定する。様々な他の修正が明らかであろう。
【００８８】
様々な代替の実施形態では、受信装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットを使用してクロックがリセットされないように保証する支援を行う。このようないくつかの実施形態では、最初に受信機が、ブロック１０３５において計算したオフセットと以前に設定された下限オフセットとを比較して、このオフセットが下限オフセットよりも良好な真のオフセットの推定値を表すかどうかを判断する。表す場合、受信機は、この最小オフセットに基づくクロックの更新を拒否し、以前に設定された下限を使用し続ける。そうでなければ、このオフセット値の方が下限よりも良好な推定値であるため、受信機は、ブロック１０４５に詳述するようにクロックを更新する。
【００８９】
次に、ブロック１０５０において、受信装置は、受け取ったメディアパケットを処理して、例えば適切な時点でメディア出力をレンダリングする。例えば、受信装置は、送信機タイムスタンプ及び受信機タイムスタンプとは別の提示時刻をメディアデータパケットから抽出又は計算することができる。このような提示時刻は、メッセージによって運ばれたメディアデータをレンダリングすべき時点を示す。受信装置は、提示時刻を抽出した後に、提示時刻に一致する時点でメディアデータがレンダリングされるようにする。例えば、受信装置は、ローカル再生装置による再生のためにメディアデータをバッファリングし、又は再生のためにメッセージを別のメディアノードに転送することができる。提示時刻に「一致」する現在時刻は、現在時刻と提示タイムスタンプとの間の同等のものを含むことができるが、他の一致の形を含むこともできると理解されるであろう。例えば、様々な実施形態では、持続する最小オフセット値を現在時刻から差し引いたものが提示タイムスタンプに等しい時に現在時刻が一致する。これに加えて、又はこれとは別に、一致の比較は、固定遅延値の加算、減算又は別の考慮も行う。ローカルクロック、提示タイムスタンプ及びその他の潜在的に利用可能な値に基づいて再生に適した時点を決定する方法は、他にも様々なものが明らかであろう。さらに、現在時刻が最小オフセット値に基づいて提示時刻に一致するという概念は、以前に最小オフセット値によって修正されたことがあるローカルクロックを利用しているものの、それ以外の場合には最小オフセット値を明確に考慮しない比較を含むと理解されるであろう。様々な実施形態は、出力の直前にこのような比較を実行して、適切な時点でデータが出力されるのを確実にする。他の実施形態は、このような比較を用いて、メディアが提示時刻に再生される可能性が高い再生バッファ内の位置にメディアデータを挿入する。このような挿入は、再生タイミングを調整するためにメディアデータの挿入前に「ダミー」データを挿入することを伴うことができる。バッファ内のデータの再生タイミングを制御する方法は、これ以外にも様々なものが明らかであろう。
【００９０】
さらなる実施形態
図１に示すように、電話機１０５は、無線スピーカ１４１又は有線ヘッドホン１５３を通じてオーディオを出力することができる。オーディオは、無線スピーカよりも有線ヘッドホンを通じた方が高速にレンダリングすることができる。従って、オーディオ同期中には、このレンダリング時間のばらつきを考慮することができる。例えば、決定論的モードでは、無線スピーカ１４１を通じた送信及びレンダリングに２５ｍｓ掛かる場合、電話機１  １０５は、ステージング時間よりも２５ｍｓ前に無線スピーカにデータを送信することができる。別の例として、決定論的モードでは、無線スピーカを通じた送信及びレンダリングに可変の２５〜５０ｍｓが掛かる場合、電話機１は、オーディオの再生予定よりも少なくとも５０ｍｓ前に無線スピーカにオーディオを送信するとともにオーディオをいつ再生すべきかを示す遅延時間も送信するように決定論的モードを実行することができる。無線スピーカは、このオーディオを受け取って遅延時間の最後までバッファリングし、その後にオーディオを再生することができる。
【００９１】
いくつかの実施形態では、最終的にオーディオがレンダリングされる前に、ネットワークを通じて通信する複数の中間装置にオーディオを通すことができる。送信装置及び受信装置は、最終的なオーディオレンダリングがビデオ再生と同期するように、ネットワークを通じた中間送信ステップ毎に上述した方法を実行することができる。
【００９２】
１つの態様は、オーディオプレーヤとビデオプレーヤとの間のマルチモード同期メディア再生のための方法であって、無線ネットワークに接続されたビデオプレーヤと無線ネットワークに接続されたオーディオプレーヤとを識別するステップと、ビデオプレーヤとオーディオプレーヤとの間でクロック信号を同期させるステップと、オーディオ同期モードとして決定論的モード又は準アイソクロナスモードを決定するステップと、オーディオパケットを受け取るステップと、オーディオパケットをアンパックしてタイムスタンプ及びオーディオペイロードを抽出するステップと、同期クロック信号によって測定されたオーディオパケットの受信時間を特定するステップと、オーディオ同期モードに従ってオーディオ出力をレンダリングするステップとを含む方法を特徴とする。
【００９３】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、オーディオペイロードを予想再生時刻までバッファリングするステップと、再生時刻にオーディオペイロードをレンダリングするステップとをさらに含む。
【００９４】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、予想再生時刻までにオーディオペイロードが利用可能にならないと判断するステップと、予想再生時刻にフィラーパケット（ｆｉｌｌｅｒ  ｐａｃｋｅｔ）をレンダリングするステップとをさらに含む。
【００９５】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、予想再生時刻までにオーディオペイロードが利用可能にならないと判断するステップと、誤り訂正データからオーディオペイロードを構築するステップと、予想再生時刻にオーディオペイロードをレンダリングするステップとをさらに含む。
【００９６】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、予想再生時刻を経過していないという判断に応答してオーディオペイロードをレンダリングするステップとをさらに含む。この方法は、予想再生時刻を決定するステップが、タイムスタンプであるステージング時間にマージン時間を加算するステップを含むことをさらに含むことができる。
【００９７】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、予想再生時刻を経過したという判断に応答してフィラーパケットをレンダリングするステップとをさらに含む。
【００９８】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、誤り訂正データからオーディオペイロードを構築するステップと、予想再生時刻を経過したという判断に応答して、構築されたオーディオペイロードをレンダリングするステップとをさらに含む。
【００９９】
いくつかの実施形態では、方法が、無線ネットワークを試験してネットワークの安定性及びネットワークの帯域幅を特定するステップをさらに含み、ネットワークの安定性及びネットワークの帯域幅に少なくとも部分的に基づいてオーディオ同期モードが決定される。いくつかの実施形態では、方法が、クロック信号を再同期させることによってクロック信号のドリフトを補正するステップをさらに含む。
【０１００】
いくつかの実施形態では、ビデオプレーヤとオーディオプレーヤとの間でクロック信号を同期させるステップが、ビデオプレーヤからオーディオプレーヤへの一方向通信を用いて行われる。
【０１０１】
用語
上述した実施形態では、特定の実施形態に関連して、ビデオとオーディオのマルチモード同期レンダリング(multimode synchronous rendering)のための装置、システム及び方法について説明した。しかしながら、実施形態の原理及び利点は、ビデオとオーディオの同期を改善するためのネットワーク装置にわたる他のあらゆるシステム、装置又は方法に使用することもできると理解されるであろう。実施形態によっては、電話機、スマートＴＶ又はその他の特定の装置を参照して説明したものもあるが、本明細書で説明した原理及び利点は、様々な装置に適用することができると理解されるであろう。開示した実施形態の中には、特定の無線プロトコル又はネットワークを参照して説明したものもあるが、本明細書で説明した原理及び利点は、様々なネットワーク及びプロトコルに適用することができると理解されるであろう。さらに、例示を目的としていくつかの方程式及びタイミングを示したが、本明細書で説明した機能を実現するために他の同様の方程式又はタイミングを実装することもできる。
【０１０２】
本明細書で説明した原理及び利点は、様々な装置に実装することができる。このような装置の例としては、以下に限定するわけではないが、消費者電子製品、消費者電子製品のコンポーネント、電子試験装置などを挙げることができる。電子装置のコンポーネントは、メモリチップ、メモリモジュール、光ネットワーク又はその他の通信ネットワークの回路、及び駆動回路を含むこともできる。オーディオ又はビデオ能力を有する他のネットワーク内装置の例としては、携帯電話機（例えば、スマートホン）、医療モニタリング装置、自動車電子システムなどの車両電子システム、電話機、テレビ、コンピュータモニタ、コンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末（ＰＤＡ）、電子レンジ、冷蔵庫、ステレオシステム、カセットレコーダ又はプレーヤ、ＤＶＤプレーヤ、ＣＤプレーヤ、デジタルビデオレコーダ（ＤＶＲ）、ＶＣＲ、ＭＰ３プレーヤ、ラジオ、カムコーダ、カメラ、デジタルカメラ、ポータブルメモリチップ、コピー機、ファックス機、スキャナ、多機能周辺装置、腕時計、時計などを挙げることができる。さらに、装置は、未完成の製品を含むこともできる。
【０１０３】
文脈において別途明確に必要としていない限り、明細書及び特許請求の範囲全体を通じて、「含む、備える（ｃｏｍｐｒｉｓｅ、ｃｏｍｐｒｉｓｉｎｇ、ｉｎｃｌｕｄｅ、ｉｎｃｌｕｄｉｎｇ）」などの単語は、排他的又は網羅的な意味ではなく包含的な意味で解釈すべきであり、すなわちこれらの単語は、「含むけれどもそれに限定されない（ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」という意味で解釈すべきである。本明細書で一般的に使用する「結合された（ｃｏｕｐｌｅｄ）」又は「接続された（ｃｏｎｎｅｃｔｅｄ）」という単語は、２又は３以上の要素が直接、或いは１又は２以上の中間要素を介して接続されることを意味する。また、本出願において、「本明細書で（ｈｅｒｅｉｎ）」「上記で（ａｂｏｖｅ）」「下記で（ｂｅｌｏｗ）」及び同様の趣旨の単語を使用している場合、これらの単語は本出願全体を示すものであり、本出願のいずれか特定の部分を示すものではない。詳細な説明における単数又は複数を用いた単語は、文脈上可能な場合にはそれぞれ複数又は単数を含むこともできる。２又は３以上の項目のリストを参照する際の「ｏｒ」という用語は、リスト内の項目のいずれか、リスト内の項目全て、及びリスト内の項目のいずれかの組み合わせ、といった解釈を全て網羅するように意図される。本明細書に示した全ての数値は、測定誤差の範囲内の同様の値を含むように意図される。
【０１０４】
さらに、本明細書で使用する、とりわけ「ｃａｎ」、「ｃｏｕｌｄ」、「ｍｉｇｈｔ」、「ｍａｙ」、「ｅ．ｇ．」、「ｆｏｒ  ｅｘａｍｐｌｅ」及び「ｓｕｃｈ  ａｓ」などの条件語は、別途明確に言及していない限り、又は使用する文脈内で別様に理解されない限り、一般に特定の特徴、要素及び／又は状態を含む実施形態もあれば、それらを含まない実施形態もあることを伝えるように意図される。
【０１０５】
本明細書に示した本発明の教示は、必ずしも上述したシステムではない他のシステムに適用することもできる。上述した様々な実施形態の要素及び動作を組み合わせてさらなる実施形態をもたらすこともできる。上述した方法の実施形態に基づく変形例では、いくつかのブロックを省略し、並べ替え、順不同にし、或いは順に又は同時に実行することもできる。
【０１０６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は一例として示したものにすぎず、本開示の範囲を限定するものではない。実際に、本明細書で説明した新規の方法及びシステムは、他の様々な形で具体化することもできる。さらに、本明細書で説明した方法及びシステムの形には、本開示の趣旨から逸脱することなく様々な省略、置換及び変更を行うこともできる。添付の特許請求の範囲及びその同等物は、このような形又は修正も本開示の範囲及び趣旨に含まれるものとして対象とするように意図される。本明細書で説明したシステム及び方法の様々な例は多くの利点を含むことができ、これらのうちの１つが本発明を規定することはない。むしろ、本発明は特許請求の範囲によって規定される。
【図１】
2019532576.tif 000003
【図２】
2019532576.tif 000004
【図３】
2019532576.tif 000005
【図４】
2019532576.tif 000006
【図５】
2019532576.tif 000007
【図６Ａ】
2019532576.tif 000008
【図６Ｂ】
2019532576.tif 000009
【図６Ｃ】
2019532576.tif 000010
【図７】
2019532576.tif 000011
【図８】
2019532576.tif 000012
【図９】
2019532576.tif 000013
【図１０】
2019532576.tif 000014
【国際調査報告】
2019532576.tif 000015
2019532576.tif 000016
2019532576.tif 000017