(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-08
(45)【発行日】2022-08-17
(54)【発明の名称】オーディオとビデオのマルチモード同期レンダリング
(51)【国際特許分類】
H04N 21/436 20110101AFI20220809BHJP
H04N 21/44 20110101ALI20220809BHJP
【FI】
H04N21/436
H04N21/44
(21)【出願番号】P 2019515432
(86)(22)【出願日】2017-09-12
(86)【国際出願番号】 US2017051095
(87)【国際公開番号】W WO2018052881
(87)【国際公開日】2018-03-22
【審査請求日】2020-09-11
(32)【優先日】2016-09-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519091029
【氏名又は名称】ディーティーエス リミテッド ライアビリティ カンパニー
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100196612
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】ラウ ダニー
(72)【発明者】
【氏名】リー チュンホ
【審査官】富樫 明
(56)【参考文献】
【文献】特開2007-159092(JP,A)
【文献】特開2015-070460(JP,A)
【文献】米国特許第08505054(US,B1)
【文献】中国特許出願公開第103905877(CN,A)
【文献】国際公開第2015/107909(WO,A1)
【文献】特開2005-303713(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
第1の電子装置と第2の電子装置との間でオーディオ再生を同期させるモードを選択するための方法であって、
テレビ又はテレビに結合されたメディアソースを含む第1の電子装置においてビデオデータ及びオーディオデータを受け取るステップと、
前記第1の電子装置と前記第2の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、前記第1の電子装置に関連するクロック情報をモバイル装置である前記第2の電子装置に無線送信するステップと、
前記第1の電子装置のハードウェアプロセッサを用いて、前記ビデオデータに少なくとも部分的に基づいて、前記ビデオデータ
がサイズ
において閾値を下回る場合に前記ビデオを遅延させることを含む第1のモード
と前記ビデオデータ
がサイズ
において前記閾値を上回る場合に前記オーディオデータを圧縮することを含む第2のモード
との間で選択されるオーディオ同期モードをプログラム的に選択するステップと、
前記選択されたオーディオ同期モードに従って、前記第1の電子装置から前記第2の電子装置に前記オーディオデータを送信するステップと、
を含む方法。
【請求項2】
前記第1のモードを選択したことに応答して、前記ビデオデータを遅延させるステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記第2のモードを選択したことに応答して、前記オーディオデータを圧縮するステップをさらに含む、請求項1又は2に記載の方法。
【請求項4】
前記第1のモードを選択したことに応答して、前記オーディオデータを圧縮して前記ビデオデータを遅延させるステップをさらに含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記オーディオ同期モードを選択するステップは、前記ビデオデータ内でビデオゲームを検出したことに応答して前記第2のモードを選択するステップを含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記オーディオ同期モードを選択するステップは、前記無線ネットワークの安定性又は前記無線ネットワークの帯域幅に基づいて前記第2のモードを選択するステップを含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記クロック情報を無線送信するステップは、それぞれがほぼ等しい時間間隔で離間した複数のパケットを送信するステップを含む、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記第1の電子装置のバッファリング容量に基づいて、前記第1のモードの遅延時間を決定するステップをさらに含む、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記遅延時間を決定するステップは、前記第1の電子装置から前記第2の電子装置にパケットが送信される平均送信時間よりも長い遅延時間を選択するステップを含む、請求項8に記載の方法。
【請求項10】
交互配置された前方誤り訂正情報を
オーディオプレーヤに送信するステップをさらに含む、請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記第1の電子装置はビデオプレーヤであり、前記第2の電子装置はオーディオプレーヤであり、前記ビデオプレーヤと前記オーディオプレーヤとの間
に同期クロック
を確立することは、クロックドリフトを考慮するようにオーディオレンダリングの期間後に前記同期クロックを再同期させる
ことを含む、請求項1から9のいずれか1項に記載の方法。
【請求項12】
第1の電子装置と第2の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムであって、
前記システムは第1の電子装置を備え、該第1の電子装置は、
プロセッサ実行可能命令を含むメモリと、
前記プロセッサ実行可能命令を実行するように構成されたハードウェアプロセッサと、
前記ハードウェアプロセッサと通信する無線送信機と、
を含み、前記プロセッサ実行可能命令は、
ビデオデータ及びオーディオデータを受け取り、
前記第1の電子装置と第2の電子装置との間に同期クロックを確立するために無線ネットワークを通じて前記第1の電子装置に関連するクロック情報を前記第2の電子装置に無線送信することを前記無線送信機に行わせ、
前記ビデオデータ
に少なくとも部分的に基づいて
、前記ビデオデータがサイズにおいて閾値を下回る場合に前記ビデオを遅延させることを含む第1のモードと前記ビデオデータがサイズにおいて前記閾値を上回る場合に前記オーディオデータを圧縮することを含む第2のモードとの間で選択されるオーディオ同期モードをプログラム的に選択し、
前記選択されたオーディオ同期モードに従って前記第1の電子装置から前記第2の電子装置に前記オーディオデータを送信することを前記無線送信機に行わせる、
ように構成される、
システム。
【請求項13】
前記第1の装置は、テレビ又はセットトップボックスである、請求項12に記載のシステム。
【請求項14】
前記オーディオ同期モードは、
前記第1のモード及び
前記第2のモードから選択される、請求項12又は13に記載のシステム。
【請求項15】
前記オーディオ同期モードの前記選択は、前記ビデオデータの帯域幅サイズを評価することを含む、請求項14に記載のシステム。
【請求項16】
前記
第2のモードは、前記帯域幅サイズが前記第1の電子装置のバッファリング容量を超えたことに応答して選択される、請求項15に記載のシステム。
【請求項17】
プロセッサ実行可能命令を記憶した非一時的物理電子ストレージであって、前記プロセッサ実行可能命令は、プロセッサによって実行されたときに、第1の電子装置と第2の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを実施するように構成され、前記システムは、
第1の電子装置においてビデオ
データ及びオーディオデータを受け取り、
前記第1の電子装置と第2の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、前記第1の電子装置に関連するクロック情報を前記第2の電子装置に無線送信し、
前記ビデオ
データに少なくとも部分的に基づいて
、前記ビデオデータがサイズにおいて閾値を下回る場合に前記ビデオを遅延させることを含む第1のモードと前記ビデオデータがサイズにおいて前記閾値を上回る場合に前記オーディオデータを圧縮することを含む第2のモードとの間で選択されるオーディオ同期モードをプログラム的に選択し、
前記選択されたオーディオ同期モードに従って、前記第1の電子装置から前記第2の電子装置に前記オーディオデータを送信する、
ように構成される、非一時的物理電子ストレージ。
【請求項18】
前記オーディオ同期モードは、
前記第1のモード及び
前記第2のモードから選択される、請求項17に記載の非一時的物理電子ストレージ。
【請求項19】
前記
第2のモードは、前記オーディオデータに非可逆圧縮を適用することを含む、請求項18に記載の非一時的物理電子ストレージ。
【請求項20】
前記
第1のモード又は前記
第2のモードのいずれかにおいて前方誤り訂正が使用される、請求項18又は19に記載の非一時的物理電子ストレージ。
【発明の詳細な説明】
【技術分野】
【0001】
ネットワークシステムは、コンピュータ、スマートホン、タブレット及びテレビなどの様々な接続装置を有することができる。ネットワークに接続された装置は、メディアを再生することができる。例えば、ネットワーク上のコンピュータは、インターネットからメディアをダウンロードして、ディスプレイを通じて映像を表示し、スピーカ又はヘッドホンを通じて音声を出力することができる。最近では、テレビに直接メディアをストリーミングできるネットワーク機能を内蔵したスマートテレビが利用できるようになってきた。上記の及びその他の進歩にもかかわらず、テレビ音声を聴くための事実上のオプションは、依然として有線スピーカに限られている。
【先行技術文献】
【特許文献】
【0002】
【非特許文献】
【0003】
【文献】RFC5109、「一般的前方誤り訂正のためのRTPペイロードフォーマット(RTP Payload Format for Generic Forward Error Correction)」(2007年)
【発明の概要】
【課題を解決するための手段】
【0004】
1つの態様は、第1の電子装置と第2の電子装置との間でオーディオ再生(audio playback)を同期させるモードを選択するための方法を特徴とする。この方法は、テレビ又はテレビに結合されたメディアソースを含む第1の電子装置においてビデオデータ及びオーディオデータを受け取るステップと、第1の電子装置と第2の電子装置との間に同期クロック(synchronized clocks)を確立するために、無線ネットワークを通じて、第1の電子装置に関連するクロック情報をモバイル装置である第2の電子装置に無線送信するステップと、第1の電子装置のハードウェアプロセッサを用いて、ビデオデータに少なくとも部分的に基づいて、ビデオデータのサイズが閾値を下回る場合にビデオを遅延させることを含む第1のモード及びビデオデータのサイズが閾値を上回る場合にオーディオデータを圧縮することを含む第2のモード、から選択されるオーディオ同期モードをプログラム的に選択するステップと、選択されたオーディオ同期モードに従って、第1の電子装置から第2の電子装置にオーディオデータを送信するステップとを含む。
【0005】
1つの態様は、第1の電子装置と第2の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを特徴とする。このシステムは、プロセッサ実行可能命令を含むメモリと、プロセッサ実行可能命令を実行するように構成されたハードウェアプロセッサと、ハードウェアプロセッサと通信する無線送信機とを含む第1の電子装置を備える。プロセッサ実行可能命令は、ビデオデータ及びオーディオデータを受け取り、第1の電子装置と第2の電子装置との間に同期クロックを確立するために無線ネットワークを通じて第1の電子装置に関連するクロック情報を第2の電子装置に無線送信することを無線送信機に行わせ、ビデオデータ、バッファ特性及びネットワーク特性のうちの1つ又は2つ以上に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、選択されたオーディオ同期モードに従って第1の電子装置から第2の電子装置にオーディオデータを送信することを無線送信機に行わせるように構成される。
【0006】
1つの態様は、プロセッサ実行可能命令を記憶した非一時的物理電子ストレージであって、プロセッサ実行可能命令が、プロセッサによって実行されたときに、第1の電子装置と第2の電子装置との間でオーディオ再生を同期させるモードを選択するためのシステムを実施するように構成された、非一時的物理電子ストレージを特徴とする。システムは、第1の電子装置においてビデオに関連するオーディオデータを受け取り、第1の電子装置と第2の電子装置との間に同期クロックを確立するために、無線ネットワークを通じて、第1の電子装置に関連するクロック情報を第2の電子装置に無線送信し、1又は複数のビデオ特性又はネットワーク特性に少なくとも部分的に基づいてオーディオ同期モードをプログラム的に選択し、選択されたオーディオ同期モードに従って、第1の電子装置から第2の電子装置にオーディオデータを送信するように構成される。
【0007】
本明細書では、本開示を要約する目的で、本発明のいくつかの態様、利点及び新規特徴について説明する。必ずしも本発明のいずれか特定の実施形態によってこのような利点を全て実現できるわけではないと理解されたい。従って、本発明は、本明細書で教示するような1つ又は一群の利点を、必ずしも本明細書で教示又は提案できるような他の利点を実現することなく実現又は最適化する形で具体化又は実施することができる。
【図面の簡単な説明】
【0008】
【
図1】ビデオ装置と2つのオーディオ装置との間の同期メディア再生のために構成されたシステム例を示す図である。
【
図2】ビデオ装置とオーディオ装置との間の同期メディア再生のために構成されたシステム例を示す図である。
【
図3】オーディオ送信のための同期モードを選択するプロセス例を示す図である。
【
図4】オーディオ送信のための同期モードを選択するプロセスのさらに詳細な例を示す図である。
【
図5】準アイソクロナスモード(semi-isochronous mode)によるメディア送信処理のプロセス例を示す図である。
【
図6A】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【
図6B】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【
図6C】準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【
図7】決定論的モード(deterministic mode)によるメディア送信処理のプロセス例を示す図である。
【
図8】決定論的モードによる、オーディオを受け取ってレンダリングするプロセス例を示す図である。
【
図9】クロック同期を初期化するプロセス例を示す図である。
【
図10】再同期及びクロックドリフト補正のためのプロセス例を示す図である。
【発明を実施するための形態】
【0009】
序文
通常、テレビは、音声を提供するための内蔵スピーカを含むが、視聴者によっては、無線ヘッドホンで音声を聞きながらテレビを見たいと望む者もいる。この目的でBluetooth(登録商標)無線ヘッドホンを利用することはできるが、Bluetooth(登録商標)無線ヘッドホンはテレビ映像と同期していないことが多いので、Bluetooth(登録商標)プロトコルでは不十分である。従って、視聴者は、聴いているせりふ及びその他の音声が対応する映像内でタイムリーに発生せずにずれてしまうという望ましくない体験に見舞われる。このため、Bluetooth(登録商標)ヘッドホンは消費者に支持されていない。
【0010】
残念ながら、WiFiプロトコル(例えば、IEEE802.11x)を用いたテレビ音声の送信は、この同期問題を十分に解決していない。その主な理由は、無線プロトコルが非同期性だからである。メディアソースとオーディオ受信機は別個のクロックを使用しており、メディアファイルの再生中にこれらのそれぞれのクロック信号が同期せず又は離れて行くことがある。さらに、レイテンシレベルを含む無線ネットワーク性能が変化することによって、オーディオデータが多かれ少なかれ予測できないほど遅延してしまうこともある。
【0011】
本開示のいくつかの実施形態は、1つの装置(例えば、テレビ(TV))上の映像を別の装置(例えば、電話又はタブレット)上で再生されている対応する音声と同期させるための改善された同期技術について説明するものである。例えば、リスナーは、モバイル装置に接続されたヘッドホンを通じて、TVで再生されている対応する映像と正しく(又はほぼ)同期した音声を聴くことができる。テレビ、又はさらに一般的に言えば(セットトップボックス又はコンピュータなどの)あらゆるメディアソースは、モバイル装置にインストールされたモバイルアプリケーションとの同期を実行することができる。これにより、Bluetooth(登録商標)ヘッドホンのユーザが直面する問題点の一部又は全部を解決することができる。
【0012】
さらに、モバイル装置を用いて同期を行うことができるので、メディアソースは、各リスナーのモバイル装置に個々のオーディオストリームを無線で送信することによって異なるリスナーに所望のオーディオを提供することができる。このようにして、各リスナーは、個別のヘッドホンを通じて聴くとともに、ボリューム又はイコライゼーション(例えば、低音域と高音域のバランス)などの個々のオーディオ設定を調整することができる。
【0013】
いくつかの実施形態では、本明細書で説明するシステム及び方法が、決定論的モード及び準アイソクロナスモードという少なくとも2つの異なるモードから選択を行うことによって同期再生を実行することができる。決定論的モードは、他の特徴の中でも特に、ビデオを遅延させ、この既知の遅延に基づいてモバイル装置上でオーディオを再生することを含むことができる。決定論的処理が利用できない時、又は他の基準に基づいている時に使用できる準アイソクロナスモードは、たとえ非可逆圧縮を使用している場合であってもオーディオを圧縮してできる限りの高速送信を可能にすることを含むことができる。これらの再生モードは、ハードウェアのバッファリング能力、ネットワーク性能、又は再生するメディアのタイプなどの1又は2以上の要因に基づいて選択することができる。様々なクロック同期、バッファリング、クロックドリフト補正及びデータ処理方法を使用して同期を改善することもできる。
【0014】
以下の複数の例は、便宜上TV及びスマートホン(例えば、
図1を参照)に関して説明するものであるが、この概念は、一般にメディアソース及びオーディオ受信機(例えば、
図2を参照)にも及ぶと理解されたい。さらに、本明細書で使用する「同期(synchronization)」という用語及びその派生語は、その通常の意味に加えて実際の又は近似的な同期も意味する。説明するシステム及び方法は、既存のシステムよりも良好な同期を実現することができるが、ビデオとオーディオとの間にリスナーが知覚できないわずかな遅延が存在することもある。従って、本明細書で説明する「同期」は、知覚できない遅延を含む近似的同期を含むことができる。たとえネットワーク条件に起因して、場合によってはユーザが知覚できるわずかな遅延がこの同期に存在する場合でも、この遅延は、一般に現在利用できるシステムによって実現される遅延よりも不快ではないと考えられる。
【0015】
システム例の詳細
図1及び
図2に、上述した同期機能を実装できるシステム例の概要を示す。その後の図である
図3~
図10には、
図1及び
図2に示すようなシステムにおいて実行できる同期処理の実施形態を示す。
【0016】
図1に、本明細書で説明する方法のいずれかを実行できる、ビデオ装置と2つのオーディオ装置との間の同期メディア再生のために構成されたシステム例100を示す。システム100は、セットトップボックス101と、テレビシステム103と、モバイル装置105と、モバイル装置107と、無線ローカルエリアネットワーク、又はワイドエリアネットワークの一部とすることができるネットワーク109とを含む。
【0017】
セットトップボックス101は、プロセッサ111と、メディアライブラリ113と、インターフェイス115と、制御インターフェイス117と、ユーザ入力119を受け取るための外部メディアインターフェイス121とを含む。TVシステムは、プロセッサ123と、ビデオバッファ125と、ディスプレイ画面127と、インターフェイス129と、Wi-Fiトランシーバ131とを含む。第1の電話機は、プロセッサ133と、ユーザインターフェイス135と、Wi-Fiトランシーバ137と、無線スピーカ141(任意に有線スピーカ又はヘッドホンを使用することもできる)への送信を行うための無線送信機139とを含む。第2の電話機は、プロセッサ143と、ユーザインターフェイス145と、Wi-Fiトランシーバ147と、オーディオドライバ149と、ヘッドホン153にオーディオを出力できる補助出力部151とを含む。
【0018】
セットトップボックス101は、映画、ビデオクリップ、ビデオストリーム又はビデオゲームなどのメディアのソースを提供する。メディアは、外部メディアインターフェイス121を通じて受け取ることができる。外部メディアインターフェイス121は、同軸接続部、HDMI(登録商標)接続部、DVI接続部、VGA接続部、コンポーネント接続部、ケーブル接続部、Ethernet接続部、無線接続部、或いはインターネット、ゲーム機、コンピュータ、ケーブルプロバイダ又は放送局などに接続する同様のものとすることができる。或いは、セットトップボックス101は、ハードディスク又はBlue-ray(登録商標)ディスク(図示せず)などのローカルコンピュータ可読記憶媒体に記憶されたローカルメディアライブラリ113を有することもできる。
【0019】
ユーザは、リモコン、スマートホン又はその他の装置を用いて、制御インターフェイス117を通じてユーザ入力119を提供することができる。セットトップボックス内の1又は2以上のプロセッサ111はユーザ入力を処理し、インターフェイス115を通じて、選択されたメディア情報をTVシステムに通信することができる。インターフェイス115は、同軸接続部、HDMI(登録商標)接続部、DVI接続部、VGA接続部、コンポーネント接続部、ケーブル接続部、Ethernet接続部、バス、又はTVシステムのインターフェイス129に接続する同様のものとすることができる。
【0020】
TVシステム103は、インターフェイス129を通じて再生用のメディアを受け取る(他の実施形態では、TVシステムがメディアソースである)。1又は2以上のプロセッサ123は、このメディアを処理してオーディオデータ及びビデオデータを操作することができる。ビデオデータは、ビデオバッファ125内にバッファリングした後にディスプレイ画面127においてレンダリングすることができる。しかしながら、ビデオバッファリングの期間及びビデオをバッファリングするか否かは、本明細書で説明する方法に従って実行することができる。オーディオデータは、TVシステム103のWi-Fi接続部131を介し、ネットワーク109を通じて、モバイル装置105のWi-Fi接続部137及びモバイル装置107のWi-Fi接続部147に送信することができる。2つのモバイル装置105、107には、同じオーディオデータ又は異なるオーディオデータを送信することができる。いくつかの実施形態では、2つのモバイル装置105、107に同じオーディオデータを送信することができ、2つの装置105、107は、その後にオーディオパラメータに対してボリューム又はイコライゼーション(例えば、低音域/高音域のバランス、又はさらに詳細なマルチバンド分析)などの調整を個別に行うことができる。いくつかの実施形態では、TVシステム103が、モバイル装置105に英語のオーディオを送信し、モバイル装置107にスペイン語のオーディオを送信することなど、2つの装置105、107に異なる言語のオーディオデータを送信することができる。いくつかの実施形態では、モバイル装置105、107の一方又は両方が、盲人用の強化されたナレーション、個人的に処理されたオーディオ、又はローカルに記憶されたオーディオデータ又は拡張オーディオを出力することができる。
【0021】
モバイル装置105は、Wi-Fi接続部137を通じてオーディオデータを受け取る。1又は2以上のプロセッサ133は、このオーディオデータを処理し、無線インターフェイス139を通じた出力のためにレンダリングして無線スピーカ141を通じて再生されるようにする。モバイル装置105のユーザインターフェイス135は、ユーザとシステム100との相互作用を可能にする。例えば、ユーザは、装置105上のアプリケーションを用いて、再生すべきメディアコンテンツを選択し、開始、停止、早送り、前方スキップ及び巻き戻しなどの再生コマンドを発行し、或いは別様にセットトップボックス101、TVシステム103又はモバイル装置105と相互作用することができる。いくつかの実施形態では、ユーザインターフェイスを用いて装置105上のローカルメディアを選択し、これをTVシステム103などのネットワーク109上の他の装置が再生することもできる。
【0022】
モバイル装置107は、Wi-Fi接続部147を通じてオーディオデータを受け取る。1又は2以上のプロセッサ143は、このオーディオデータを処理し、第2の電話機の補助出力ポート151に接続されたヘッドホン153を通じて再生できるようにオーディオドライバ149を通過させる。モバイル装置107のユーザインターフェイス145は、ユーザとシステム100との相互作用を可能にする。
【0023】
様々な実施形態では、モバイル装置107によって受け取られるオーディオデータが、モバイル装置105によって受け取られるオーディオデータと同じであることも又は異なることもできる。モバイル装置105によって受け取られるオーディオデータとモバイル装置107によって受け取られるオーディオデータとが同じものである場合、システムは、ブロードキャスト構成又はマルチキャスト構成で動作することができる。
【0024】
より一般的なシステム例
図2に、本明細書で説明する方法のいずれかを実行できる、ビデオ装置とオーディオ装置との間の同期メディア再生のために構成されたシステム例200を示す。システムは、メディアソース201と、ネットワーク205を通じてオーディオ受信機207に接続されたメディアプレーヤ203とを含む。メディアソース201は、メディアコンテンツ209を含む。メディアプレーヤ203は、受信機211と、1又は2以上のプロセッサ213と、メモリ、ストレージ、又はメモリとストレージの両デバイス215と、ビデオバッファ217と、ビデオレンダラ219と、無線ブロードキャスタ221とを含む。オーディオ受信機207は、無線受信機223と、プロセッサ225と、メモリ、ストレージ、又はメモリとストレージの両デバイス227と、オーディオ出力部229とを含む。
【0025】
メディアソース201は、メディアプレーヤ203にメディアコンテンツ209を提供する。メディアソース201は、セットトップボックス(例えば、衛星又はケーブル)、ケーブルボックス、テレビ、スマートテレビ、インターネットプロバイダ、放送局、スマートホン、メディアスティック(例えば、Google Chromecast(商標)など)、メディアプレーヤ(例えば、Roku(商標)装置など)、ビデオゲーム機、Blue-ray(登録商標)プレーヤ、別のコンピュータ、メディアサーバ、アンテナ、又はこれらの組み合わせなどとすることができる。いくつかの実施形態では、メディアソース201を、メディアプレーヤ203のハードドライブにローカルに記憶されたメディアライブラリなどのメディアプレーヤ203の一部とすることができ、或いはメディアソース201をメディアプレーヤ203とすることもできる。
【0026】
メディアプレーヤ203は、受信機211を通じて再生のためのメディアコンテンツ209を受け取る。メディアプレーヤは、例えばTV、コンピュータ、又はオーディオビデオ受信機(「AVR」)などとすることができる。1又は2以上のプロセッサ213は、メディアコンテンツを処理してオーディオデータ及びビデオデータを操作することができる。ビデオデータは、ビデオバッファ217にバッファリングした後にビデオレンダラ219においてレンダリングすることができる。いくつかの実施形態では、ビデオレンダラ219を、ディスプレイ画面、モニタ、プロジェクタ、又は仮想現実ヘッドセットなどとすることができる。しかしながら、ビデオバッファリングの期間及びビデオのバッファを使用するか否かは、本明細書で説明する方法に従って決定することができる。いくつかの実施形態では、メディアプレーヤ203が、限られたビデオバッファリングを有することも、又はビデオバッファリングのためのサポート又はハードウェアを完全に欠くこともできる。オーディオデータは、ネットワーク205を介してオーディオ受信機207に無線で送信することができる。
【0027】
オーディオ受信機207は、無線受信機223を通じてオーディオデータを受け取る。1又は2以上のプロセッサ225は、このオーディオデータを処理し、ヘッドホン、有線スピーカ又は無線スピーカなどのオーディオ出力部227を通じた出力のためにレンダリングすることができる。
【0028】
同期プロセス例の概要
図3に、ビデオ及びオーディオを送信するための同期モードを選択するプロセス例300を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェアがプロセス300を実行することができる。
【0029】
ブロック301において、ネットワーク上でビデオプレーヤ(又はその他のメディアソース)及びオーディオプレーヤを識別する。この識別は、例えばビデオプレーヤ及びオーディオプレーヤがネットワークに接続されて一意の接続識別又は接続アドレスを受け取った時に行うことができる。各ビデオプレーヤ及びオーディオプレーヤは、オーディオとビデオの同期再生を容易にするように構成されたアプリケーションを実行することができる。
【0030】
ブロック303において、同期モードを選択するための基準を評価する。例えば、以下で
図4に関して説明する基準を使用することができる。同期モードの例は、限定するわけではないが、決定論的モード及び準アイソクロナスモード(ブロック307を参照)を含む。
【0031】
ブロック305において、ビデオプレーヤとオーディオプレーヤとの間にクロック同期を確立することができる。この同期の確立は、ビデオプレーヤとオーディオプレーヤとの間の一方向又は双方向通信を用いて行うことができる。双方向通信クロック同期システムの1つの例は、Precision Time Protocol(PTP)である。いくつかの実施形態では、ネットワークを通じたビデオプレーヤから1又は2以上のオーディオプレーヤへの一方向ブロードキャストを用いてクロック同期を実行することができる。一方向ブロードキャストに基づいてクロック同期を行う実施形態は、いくつかのタイプの双方向クロック同期スキームに影響を与える非対称アップリンク/ダウンリンクネットワーク時間に基づく計算ミスを避けることができる。さらに、一方向ブロードキャストに基づいてクロック同期を行う実施形態は、各装置が個別に応答するのを待つ代わりに複数の装置との間で1回の同期を実行することができる。クロック同期を確立するための方法例については、以下で
図9に関して説明する。
【0032】
最初、ビデオプレーヤ及びオーディオプレーヤは、互いに同期していない未知のクロックから開始することができる。クロック同期が確立されると、同期クロック信号を用いてビデオプレーヤと1又は2以上のオーディオプレーヤとの間でオーディオ及びビデオ再生を同期させることができる。以下でさらに詳細に説明するように、この同期したクロックを用いて、他のパラメータの中でも特に、遅延期間、再生時間、ステージング時間、マージン時間及びタイムスタンプなどの様々なパラメータの時間設定又は追跡を行うことができる。
【0033】
ブロック307において、評価された基準に基づいて、決定論的同期モード又は準アイソクロナス同期モードを選択する。ブロック309において、選択された同期モードに従ってオーディオ及びビデオデータを送信する。
【0034】
同期モードを選択するためのプロセス例
図4に、オーディオを送信するための同期モード(決定論的又は準アイソクロナス)を選択するプロセス例400を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア(以下、総称的に「システム」と呼ぶ)がプロセス400を実行することができる。この実施形態では、システムが、ブロック401~409に示す複数の基準を評価して、準アイソクロナス同期又は決定論的同期のいずれかを選択する。このプロセスは、メディアソース又はメディアプレーヤが製造後に(例えば、リスナーの家で)実行することができる。1つの実施形態では、システムが一方のモード(例えば、決定論的)をデフォルトとするが、1又は2以上の基準が満たされたことに応答して他方のモードに切り替わる。別の実施形態では、全ての基準が考慮されるわけではない。
【0035】
ブロック401において、システムは、ビデオ装置(又はメディアソース)のバッファが決定論的モードにとって十分であるかどうかを判断する。ビデオによっては、未圧縮の場合に大きすぎてバッファリングできないものもあり、従って決定論的処理のためにこれらのビデオを遅延させることができない(又はビデオ性能が低下するため望ましくない)場合もある。他のビデオは圧縮形式で配信され、バッファリングが容易である。このステップでは、ビデオが圧縮されているかどうかを識別し、対応するバッファサイズを識別することができる。或いは、製造時にシステムのバッファリング能力をメタデータなどに符号化して、決定論的モードを利用できるかどうか、或いは着信ビデオの帯域幅に応じて決定論的モードを利用できる程度を示すこともできる。
【0036】
別の実施形態では、このステップ(401)が、ビデオ装置がバッファリングをサポートしているかどうかを判断することも含む。この判断は、バッファリングハードウェアの存在、或いはバッファリングをサポートするファームウェア及びソフトウェアの能力に基づくことができる。いくつかの実施形態では、この判断を、バッファリング能力の有無が分かっているモデルのリスト内でシステムのモデルを検索することに基づいて行うことができる。いくつかの実施形態では、この判断を、ビデオをバッファリングするための試験コマンドを発行しようと試みることによって行うことができる。ビデオ装置がバッファリングをサポートしていない場合には、ブロック411において準アイソクロナスモードが選択される。
【0037】
ブロック401においてビデオ装置がバッファリングをサポートしている場合、システムは、ブロック403において、バッファリングに適していないものとして分類されるビデオゲームなどの特定のメディアタイプがメディアソースとして検出されたかどうかを判定する。多くのビデオゲームは、ユーザがビデオ内の遅延を一切望まないので、決定論的モードで使用されるビデオバッファリングには適していない。使用するメディアのタイプは、例えば特定のポートを通じてシステムに接続されたビデオゲーム機の存在、システム内で検出された1又は2以上の実行中のプロセス名、或いはこれらの組み合わせなどに基づいて決定することができる。ビデオゲーム(又は他の何らかの特定のタイプのメディア)が検出された場合には、ブロック411において準アイソクロナスモードが選択される。
【0038】
ブロック403において、ビデオゲーム(又はバッファリングに適していない他のメディア)以外のメディアがメディアソースとして検出された場合、ブロック405において、ネットワークの安定性を試験することができる。この試験は、例えばネットワークにピングを送信してピング時間の変動を測定すること、ネットワークを通じてパケットを送信してパケット送信時間の変動を測定すること、及びリモートホストとの間でデータを送受信して送受信速度の変動を測定することなどによって行うことができる。この試験は、ビデオプレーヤからネットワークに対して、メディアプレーヤとオーディオプレーヤとの間で、又はリモートインターネットソースに対して行うことができる。試験測定は、同期クロックに基づくことができる。ネットワーク送信時間が安定していない場合(例えば、変動が一定量又は一定割合を上回る場合、最低速度が一定量を下回る場合など)には、ブロック411において準アイソクロナスモードが選択される。
【0039】
ブロック405において、ネットワーク送信時間が安定している場合、ブロック407においてネットワークの帯域幅を試験する。この試験は、例えばネットワークを通じてオーディオ装置又はその他の宛先に複数のパケット(例えば、オーディオデータに特有の量)を送信することによって行うことができる。データの受信レートを用いて帯域幅を特定することができる。試験測定は、
図3(
図9も参照されたい)に関して上述した同期クロックに基づくことができる。ネットワーク帯域幅が不十分な場合(例えば、平均帯域幅が一定の閾値を下回る場合、最小帯域幅が一定量を下回る場合など)には、ブロック411において準アイソクロナスモードが選択される。
【0040】
ブロック407において、ネットワークが十分な帯域幅を有すると判断された場合、ブロック409において、送信機及び受信機が、ビデオプレーヤとオーディオプレーヤがいずれも決定論的モードを通じた再生をサポートしているかどうかを判断することができる。この判断は、ビデオプレーヤとオーディオプレーヤとの間でクロックが同期しているかどうか、又は同期できるかどうか、並びにビデオプレーヤとオーディオプレーヤの両方におけるアプリケーションによってそれぞれの装置が決定論的モードをサポートするように構成されているかどうかに基づくことができる。サポートされていない場合には、ブロック411において準アイソクロナスモードが選択される。ビデオプレーヤ及びオーディオプレーヤがいずれも決定論的モードのために同期している場合、ブロック413において決定論的モードが選択される。ネットワーク条件は変化するので、
図4に示す1又は2以上のブロックを再び実行してネットワーク条件を再評価し、再生モードを変更することもできる。従って、再生モードは、現実のネットワーク条件に基づいてリアルタイムで変化することができる。
【0041】
準アイソクロナスモードのプロセス例
図5に、準アイソクロナスモードによるメディア処理のプロセス例500を示す。このプロセスは、本明細書で説明するシステムのうちのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア(以下、総称的に「システム」と呼ぶ)が処理500を実行することができる。
【0042】
準アイソクロナスモードは、オーディオの素早い送信及びレンダリングのために選択することができる。準アイソクロナスシステムでは、メディアプレーヤがオーディオデータを圧縮してオーディオプレーヤに送信し、これが妥当な時間遅延内に受け取られた場合にオーディオデータをレンダリングすることができる。
【0043】
準アイソクロナスモードは、ネットワーク接続が混雑していて利用可能な帯域幅が低い時にはデータを圧縮することによって、決定論的モードよりも良好に機能することができる。また、準アイソクロナスは、(いくつかの実施形態では)受け取ったオーディオを特定の遅延時間に再生されるようにバッファリングしないので、ネットワーク速度のばらつきが大きくて目的の宛先に遅延時間よりも前にオーディオパケットが到達しない可能性がある時には、決定論的モードよりも良好に機能することができる。とは言うものの、高速で安定したネットワーク接続を利用できる他のシナリオでは、決定論的モードの方が良好な性能をもたらすことができる。
【0044】
ブロック501において、例えば現在利用できる(TCP/IPなどの)インターネットプロトコルを用いてオーディオデータをパケット化する。
【0045】
ブロック503において、オーディオデータを圧縮する。圧縮オーディオデータは使用帯域幅が少ないので、混雑したネットワークでも高速送信することができる。この圧縮スキームは、可逆的又は非可逆的なものとすることができ、非可逆的アルゴリズムの中には、オーディオ信号の劣化をトレードオフとして(高圧縮率に起因して)高速性能をもたらすことができるものもある。ブロック505において、任意にパケット損失率を測定する。
【0046】
ブロック507において、損失率に基づいて、任意に前方誤り訂正(FEC)パケットを生成する。FECは、本明細書で説明するオーディオ送信などの一方向通信を用いてパケット損失の回復を改善することができる。また、FECは、オーディオデータのレンダリングに必要な時間が短いことによってリクエストを送信した後にペイロードを再送するための時間が十分に残っていない可能性があるという理由でとりわけ有用となり得る。1つの実施形態では、多くのFECアルゴリズムを使用することもできるが、システムは、例えば全体が引用によって本明細書に組み入れられるRFC5109、「一般的前方誤り訂正のためのRTPペイロードフォーマット(RTP Payload Format for Generic Forward Error Correction)」(2007年)に記載されるように1又は2以上のパケットにわたってXOR(排他的OR)演算を適用することによってFECパケットを生成する。ブロック509において、FECパケットをオーディオパケットと交互配置(interleaved)することができる。ブロック511において、パケットを受信機に送信することができる。
【0047】
ブロック513において、TVシステムなどの第1の装置でビデオをレンダリングすることができる。いくつかの実施形態では、バッファリングを伴わずにビデオがレンダリングされる。いくつかの実施形態では、平均又は最小予想送信及び処理時間に基づいて短時間でビデオをバッファリングすることができる。このバッファリング時間は、ネットワーク試験(例えば、
図4のブロック405及び407に関して説明した試験)に基づいて推定することができ、ビデオの時点又はその直後(例えば、1~3フレーム内)にオーディオが再生されるように選択することができる。例えば、ネットワークピングが典型的には200~300msに及び、たまに100msほどの速さである場合、バッファは100ms(プラス任意に最速のオーディオレンダリング時間)とすることができる。
【0048】
図6A、
図6B及び
図6Cに、準アイソクロナスモードによる、オーディオを受け取ってレンダリングするプロセス例600、620及び650をそれぞれ示す。例えば、モバイル装置などのオーディオ受信機上で実行されているソフトウェアが、プロセス600、620及び650を実行することができる。
【0049】
図6Aには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第1のプロセス例600を示す。ブロック601において、オーディオ受信機が圧縮オーディオパケットを受け取る。ブロック603において、受信機は、圧縮オーディオパケットが第1の閾値内に受け取られたかどうかを判定する。圧縮オーディオパケットが第1の閾値内に受け取られなかった場合、ブロック605において、オーディオ受信機が圧縮オーディオパケットを破棄する。第1の閾値は、2つのビデオフレームをTVでレンダリングするのに掛かると思われるおおよその時間(いくつかのシステムでは約66ms)とすることができる。圧縮オーディオパケットが第1の閾値内に受け取られた場合、ブロック607において、オーディオ受信機が圧縮オーディオパケットを保持バッファに記憶する。
【0050】
図6Bには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第2のプロセス例620を示す。ブロック621において、オーディオ受信機が第1のパケットを求めて保持バッファを検索する。第1のパケットは、例えばブロック607において保持バッファに記憶された圧縮オーディオパケットとすることができる。ブロック623において、オーディオ受信機が保持バッファ内で第1のパケットを発見したかどうかを判定する。第1のパケットが発見されなかった場合、ブロック625において、第1のパケットの構築にFEC又は冗長データを利用できるかどうかを判断する。受信機は、冗長データ又はFEC補正データを識別しようと試みることができる。冗長データ又は補正データは、例えばFECパケットなどの以前に送信された誤り訂正パケットから取得することができる。他の考えられる技術の中でも特に、以前の及び後続のパケット内のデータに基づいて失われたパケットデータを予測する曲線適合法を用いて後続のパケットを利用できる場合には、欠落パケットについても補正データを抽出することができる。FECデータを利用できると判断された場合、ブロック629において、FECデータから第1のパケットを復元する。
【0051】
第1のパケットが保持バッファ内で発見された場合又は復元された場合、ブロック631において、パケット到着時間閾値が経過したかどうかを判定する。未だパケット到着時間閾値が経過していない場合、ブロック633において、第1のパケットを解凍して解凍オーディオデータを生成する。ブロック635において、オーディオ受信機のステージングバッファに解凍オーディオデータを追加する。ブロック637において、オーディオ受信機は、パケットインデックスを増分して次のパケットを探す(例えば、第1のパケットを処理した後に第2のパケットを探す)。
【0052】
ブロック625において、第1のパケットを復元するためにFECデータを利用できない場合、ブロック627において、第1のパケットを発見するためのパケット到着時間が経過したかどうかを判定する。未だパケット到着時間が経過していない場合、プロセス620は再びブロック621に進み、第1のパケットを求めて保持バッファを検索し続けることができる。
【0053】
ブロック627又は631のいずれかにおいて、第1のパケットのパケット到着閾値時間が経過した場合、プロセスはブロック639に進んでステージングバッファに無音パケットを挿入する。いくつかの実施形態では、ステージングバッファに無音を挿入する代わりに複製パケットを挿入することができる。2ビデオフレームの遅延などの一定の遅延が過ぎると、オーディオパケットがビデオとの同期から検出可能にずれることができ、従ってオーディオパケットを欠落させることが好ましい行動になり得る。その後、ブロック637においてパケットインデックスを増分させ、次のオーディオパケットについてプロセス620を繰り返すことができる。
【0054】
図6Cには、準アイソクロナスモードによる、オーディオを受け取ってレンダリングする第3のプロセス例650を示す。ブロック651において、ステージングバッファ内の次の項目をレンダリングするための閾値時間が経過したかどうかを判定することができる。ブロック651においてステージングバッファ内の次の項目をレンダリングするための閾値時間が未だ経過していない場合、プロセス650は、閾値時間が経過するまでブロック651を繰り返すことができる。閾値時間が経過すると、ブロック653において、オーディオ受信機がステージングバッファ内の次の項目のレンダリングを開始することができる。例えば、次の項目は、ブロック634においてオーディオ受信機のステージングバッファに追加された解凍オーディオデータとすることができる。その後、プロセスはブロック651に戻ることができる。
【0055】
決定論的モードのプロセス例
図7に、決定論的モードによるメディア処理のプロセス例700を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、メディアソース又はメディアプレーヤ上で実行されているソフトウェア(以下、総称的に「システム」と呼ぶ)が処理700を実行することができる。
【0056】
決定論的モードでは、正常なネットワーク変動の存在時に、ビデオレンダリングの遅延を考慮しながらオーディオの送信及びレンダリングにとって十分な時間を許容する遅延時間を決定することができる。メディアソースは、予定されているオーディオのレンダリングよりも前の時点にオーディオペイロードを送信することができる。オーディオペイロードは、第2の装置に送信されると、再生時刻までバッファリングすることができ、従ってビデオと同期してレンダリングされる。ビデオデータは、オーディオが第2の装置に送信されて処理されている間に第1の装置において再生時刻までバッファリングされ、その後にレンダリングすることができる。メディアソース及び受信装置は、同期クロック信号を用いてオーディオ出力とビデオ出力とを同期させることができる(例えば、
図9及び
図10を参照)。
【0057】
ブロック701において、遅延時間を決定する。遅延時間は、オーディオ装置がオーディオパケットを受け取り、ビデオ装置によってビデオがレンダリングされるのと同期して遅延した時刻にレンダリングできるように十分に長くすることができる。ビデオバッファ容量によって最長遅延時間を決定することができる。遅延時間は、平均又は最大予想送信及び処理時間よりも長くなるように設定することができる。遅延時間は、平均送信及び処理時間に多様な標準偏差を加えたものよりも長くなるように設定することができる。パケットの大部分を同期してレンダリングできるほど十分に遅延時間が長い場合には、エラーマスキング技術又は誤り訂正技術を用いて残りのわずかなパケットを隠すことができる。
【0058】
遅延時間は、ネットワーク試験(例えば、ブロック
図4のブロック405及び407に関して説明した試験)に基づいて(例えば、製造時に)事前に決定又は推定することができる。例えば、ネットワークピングが典型的には400~500msに及んで、たまに最大900msのラグを伴う場合、遅延時間は、ビデオバッファによってサポートされている場合には900ms(プラス任意にオーディオパケットの受信後にオーディオのレンダリングに掛かる時間)とすることができる。
【0059】
遅延時間は、同期クロックに基づいて測定することができ、タイムスタンプ後に遅延すべき時間の形(例えば、2秒と335マイクロ秒)を取ることができる。いくつかの実施形態では、遅延時間が、オーディオ及びビデオを再生すべき提示時刻の形で設定される(例えば、12:30:00:000pmにビデオがバッファリングされ、12:30:02:335pmに再生が設定される)。オーディオを再生するように構成された複数の装置を特徴とする実施形態では、この測定が、複数の装置全てからの(依然としてバッファリングハードウェアの能力範囲内の)最悪の場合の測定値に基づくことができる。いくつかの実施形態では、遅延時間を0.5秒、1秒、2秒、3秒、4秒、5秒又は6秒、或いは別の同様の時間とすることができる。
【0060】
ブロック703において、遅延時間にわたってビデオを遅延させる。この遅延は、(例えば、
図2のビデオバッファ217などの)ビデオバッファを用いて実行することができる。いくつかの実施形態は、圧縮ビデオをバッファリングする。
【0061】
ブロック705において、遅延した時刻に第1の装置上でビデオを再生することができる。遅延した時刻は、同期クロックに基づいて決定される。いくつかの実施形態では、ビデオの再生が、ビデオを解凍してレンダリングすることを含むことができる。バッファからのビデオ再生は、瞬間的なものではないが非常に高速になり得る。従って、いくつかの実施形態では、さらに改善された性能のためのタイミングパラメータ(例えば、遅延時間)を決定する際に、再生時間のわずかな調整を行うことができる。
【0062】
ブロック707において、オーディオデータをパケット化する。このパケットは、同期クロック、パケットのシーケンス番号、ビットレート、ステージング時間、マージン時間、その他のヘッダ情報、及び圧縮オーディオデータを含むオーディオペイロードに基づいてタイムスタンプと共に形成することができる。タイムスタンプは、メディア装置がパケットを送信する現在の時刻T0として初期化することができる。後続のS個のパケット又はステージング時間については、初期ステージング時間又は初期タイムスタンプに加算(S*D)された後続のタイムスタンプ又はステージング時間を計算することができ、ここでのDはパケットの再生時間を表し、Sは整数である。いくつかの実施形態では、実際の時刻を報告する代わりに後続のタイムスタンプ又はステージング時間を計算すると、アルゴリズムがクロックドリフトを補正するように改善される。例えば、オーディオ装置のクロックによって測定された現在の時刻が、タイムスタンプ又はステージング時間と比べて予想範囲から外れている場合には、クロック再同期を実行してクロックドリフトを補正することができる。
【0063】
ブロック709において、上述したようにFECパケットを生成して、パケット化オーディオデータと交互配置することができる。この交互配置は、ペイロードレベル、パケットレベル又はその他のレベルで行うことができる。FECパケットは、損失率に基づいて生成することができる。
【0064】
ブロック711において、ネットワークを通じて第2の装置にオーディオパケットを送信する。
【0065】
図8に、決定論的モードによる、オーディオを受け取ってレンダリングするプロセス例800を示す。このプロセスは、本明細書で説明するシステムのいずれかが実行することができる。例えば、モバイル装置などのオーディオ受信機上で実行されているソフトウェアがプロセス800を実行することができる。
【0066】
ブロック801において、オーディオパケットを受け取る。例えば、
図2に関して言えば、オーディオ受信機207の無線受信機223が、ネットワーク205を通じて送信されたオーディオパケットを受け取ることができる。
【0067】
ブロック805において、オーディオパケットをアンパックし、任意にオーディオパケットの取り込み時間を決定することができる。取り込み時間は、同期クロックに基づいて測定することができる。様々な実施形態は、異なるレベルのハードウェア/ファームウェア/ソフトウェアにおいてパケットをアンパックすることができる。オーディオパケットをアンパックすることにより、同期クロックに基づくタイムスタンプ、パケットのシーケンス番号、ビットレート、ステージング時間、マージン時間、その他のヘッダ情報及び圧縮オーディオデータを含むオーディオペイロードを特定することができる。
【0068】
ブロック807において、オーディオペイロードのステージング時間を決定する。ステージング時間は、同期クロック信号に基づいて測定することができ、ビデオが再生された又はビデオを再生すべき時間又はフレームを識別する。
【0069】
ブロック809において、オーディオペイロードのマージン時間を決定する。マージン時間は、ステージング時間の前後の、オーディオペイロードをレンダリングできる時間とすることができる。いくつかの実施形態では、マージン時間を決定した後に、これを別個のパケットに含めて(例えば、一連のパケットの開始時に、又は一連のパケットに定期的に挿入して)通信する。マージン時間は、例えば20ミリ秒、30ミリ秒、33ミリ秒、46ミリ秒、50ミリ秒、60ミリ秒、66ミリ秒、80ミリ秒、99ミリ秒又は100ミリ秒、0.5個、1個、1.5個、2個、2.5個又は3個のフレームなどとすることができる。
【0070】
ブロック811において、ステージング時間+(又は-)マージン時間内にオーディオペイロードが取り込まれたかどうかを判定する比較を行う。ブロック811においてステージング時間+マージン時間内にオーディオパケットが取り込まれた場合、ブロック813において、オーディオペイロードをバッファリングして(814)レンダリングする(816)。
【0071】
ブロック811においてステージング時間後であってマージン時間までにオーディオパケットが取り込まれた場合、ブロック815において、冗長データ又は補正データを取得して構築することができる。ブロック815は、依然としてステージング時間+又は-マージン時間内にある時点に決定することができる。冗長又は補正データは、例えばFECパケットなどの以前に送信された誤り訂正パケットから取得することができる。以前の及び後続のパケット内のデータに基づいて失われたパケットデータを予測する曲線適合法を用いて後続のパケットを利用できる場合には、欠落パケットについても補正データを抽出することができる。ブロック817において、冗長又は補正データから構築されたオーディオペイロードをレンダリングする。
【0072】
ブロック815において冗長又は補正データがステージング時間+マージン時間内に利用できない場合には、ブロック819において、失われたパケットの代わりに無音パケット又は以前のパケットの複製をレンダリングすることができる。
【0073】
クロック同期プロセスの例
図9に、クロック同期を初期化する方法例のプロセス例900を示す。
図10には、再同期及びクロックドリフト補正のための方法例のプロセス例100を示す。これらのプロセスは、本明細書で説明するシステムのいずれかが実行することができる。
図9及び
図10は、2013年9月12日に出願された「再生同期(Playback Synchronization)」という名称の米国特許第9,237,324号において考察したものであり、この文献はその全体が引用により本明細書に組み入れられる。
【0074】
方法例900は、無線受信機(例えば、
図2のオーディオ受信機207)を含むいずれかのメディア装置が実行することができる。方法例900は、方法例300のブロック305の一部として、又はメディア装置間のタイミングパラメータの同期が適切である時には常に実行することができる。方法900は、一方向通信に基づくクロック同期の例を示す。メディア装置は、ネットワークを通じてオーディオ受信機に、クロック「単位(ticks)」を含むクロック信号をビーコンメッセージとして一定のレート(例えば、100ms)で繰り返し送信(「フラッディング」)することができる。オーディオ受信機は、ネットワーク性能の変化に起因して、このクロック信号を異なる時点で受け取ることができる。しかしながら、オーディオ受信機は、一連のクロック信号をほぼ一定のレートでいつ受け取るか(例えば、100ms間隔で信号を受け取ると)を決定し、さらなる統計分析を行ってクロック同期を改善する基礎としてこれらのタイミングを使用することができる。オーディオ受信機は、メディアプレーヤにタイミング情報を送信することなくこれを行うことができる。
【0075】
方法例900は、ブロック905から開始してブロック910に進み、受信装置が、新たなメッセージの受信時又は処理時に、実行中の最小オフセット値の維持において使用する最小オフセット変数「MinO」を初期化する。次に、ブロック915において、受信装置は、送信装置からビーコンメッセージを受け取る。次に、ブロック920において、受信装置は、受信装置のクロックが現在示している時間に基づいてタイムスタンプを生成する。このようなタイムスタンプは、「受信機タイムスタンプ」、「R(x)」と呼ぶことができる。ブロック915とブロック920との間に経過した時間は、受信装置によって計算されるクロックオフセット値の固定遅延成分の一部を形成する。従って、方法900の様々な実装は、ブロック920とブロック925との間で行われる動作の数を低減又は最小化しようと努める。
【0076】
ブロック925において、受信装置は、ビーコンメッセージから送信機タイムスタンプ「S(x)」を抽出する。送信機タイムスタンプは、ビーコンメッセージ送信の直前に送信装置によってビーコンメッセージに挿入される。ブロック930において、受信装置は、送信装置が仮想メディアネットワークのメディアソースであるかどうかを判定する。このような場合、方法900はブロック935に進む。次に、受信装置は、送信機タイムスタンプを送信装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換は、これらの2つの装置間で以前に取り決められたオフセットを加算又は減算することを伴うことができる。このような取り決め及び時間領域間の変換は、当業者に周知のいずれかの方法に従って実行することができる。いくつかの代替の実施形態では、ソース装置とメディアノードとが同じ時間領域内でクロックを維持する。このようないくつかの実施形態では、ブロック930、935が存在しない。
【0077】
ブロック935において送信機タイムスタンプを仮想メディアネットワーク領域に変換した後、或いはブロック930において送信側がメディアソースではないと判断した後に、方法900はブロック940に進み、受信装置が、送信機タイムスタンプと受信機タイムスタンプとに基づいて、例えば2つのタイムスタンプ間の差分に基づいてオフセット値を計算する。この現在のオフセット値「CurO」は、送信機クロックと受信機クロックとの間の真のオフセットに、2つのタイムスタンプS(x)及びR(x)が生成されている間にビーコンメッセージが遭遇するあらゆる遅延を加えたものに相当する。上述したように、この遅延は2つの成分を含む。第1の遅延成分は、ネットワークのハードウェアコンポーネント及びソフトウェアコンポーネントを横切るのに掛かる時間に関連する固定遅延であり、例えばメッセージが進む回路及びデータ経路に関連する一定の遅延に、OSがメッセージの送信/受信と関連するタイムスタンプの生成との間に要する時間を加えたものである。このような固定遅延は、レンダリングプロセスの一部として既に考慮されていることもある。第2の遅延成分は、時間と共に変化する遅延に関連する可変ネットワーク遅延である。例えば、Wi-Fiなどの共有メディアネットワークは、送信前にメディアがクリアになるのを待機することがあり、従って異なる時点で異なる遅延を生じることがある。
【0078】
可変遅延はさらなる遅延しか招かない(遅延が除去されることはない)ので、より良好な真のクロックオフセットの推定値は、遅延が最小のメッセージから取得される。従って、方法900は、ビーコンメッセージのフラッディング中に取得された最小オフセット値を真のオフセットの利用可能な最良の推定値として検索する。ブロック945において、受信装置は、現在のオフセットCurOを以前に特定された最小オフセットと比較し、或いは現在のループの反復が、ブロック910において初期化された最小オフセット値MinOに対する最初の反復であるかどうかを判定する。CurOがMinOを下回る場合、CurOは、送信機クロックと受信機クロックとの間の真のオフセットに近い推定値を表すことが分かり、ブロック950において、受信装置がMinOの値にCurOの値を上書きする。
【0079】
ブロック955において、受信装置は、送信装置がビーコンメッセージのフラッディングを完了したかどうかを判断する。例えば、受信装置は、さらなるビーコンメッセージを待っている時に、タイムアウトが発生したかどうかを判定することができ、送信装置がメディアメッセージの送信を開始したと判断することができ、所定数のビーコンメッセージを受け取ったと判断することができ、或いは送信装置がフラッディングの終了を示す特別なメッセージを送信したと判断することができる。様々な実施形態では、受信装置が、所望の精度のオフセットを設定するためにフラッディングが十分であったかどうかを判断する。例えば、受信装置は、ビーコンメッセージの受信間隔を追跡し、測定された間隔と既知の時間間隔との比較に基づいて、所望の精度のオフセット値を生じるほど十分にネットワークが安定したか否かを判断することができる。ネットワークが十分に安定していないかった場合、受信装置は、さらなるフラッディングを実行すべき旨を示すメッセージを送信装置に送信する。様々な修正が明らかであろう。本明細書の教示に照らせば、ビーコンメッセージのフラッディングの十分性を判断するためのこれらの及びその他の方法の様々な組み合わせを使用できることが明らかであろう。
【0080】
さらなるフラッディングが実行されている又は実行される予定であると受信装置が判断した場合、方法900は、ブロック955からブロック915に戻ってさらなるビーコンメッセージを処理する。そうでなければ、方法900はブロック960に進み、受信装置は、決定された最小オフセットに基づいてローカルクロックをリセットする。例えば、受信装置は、現在のクロック値からMinOを減算して、送信装置の実際のクロック値に近いと推定される新たな値にローカルクロックを設定することができる。ネットワークの固定遅延が既知である又は推定されるいくつかの実施形態では、受信装置が、現在のクロック値からMinOを減算して固定遅延値に戻し、計算されたオフセット値の真のクロックオフセット値を分離しようと試みる。いくつかの実施形態では、受信装置がローカルクロックを全く変更せず、代わりに送信装置から受け取ったタイムスタンプとローカルクロックとの比較において使用できるように最小オフセット値MinOを維持することができる。例えば、受信装置は、このようなあらゆる比較の前にタイムスタンプにMinOを加算することができる。他の様々な修正が明らかであろう。その後、方法900は、ブロック965に進んで終了することができる。方法900が完了した時のリセットクロックは、同期クロックとみなすことができる。
【0081】
様々な代替の実施形態では、受信装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットを使用してクロックがリセットされないように保証する支援を行う。例えば、変動の大きなネットワーク遅延の期間にフラッディング期間が含まれている場合、計算されたオフセットが、送信機クロックと受信機クロックとの間の真のオフセット値よりもはるかに大きくなることがある。このようないくつかの実施形態では、最初に受信機が、ブロック940~950において計算した最小オフセットと以前に設定された下限オフセットとを比較して、最小オフセットが下限オフセットよりも大きいかどうかを判定する。大きい場合、受信機は、この最小オフセットに基づくクロックの更新を拒否し、以前に設定された下限を使用し続ける。そうでなければ、最小オフセット値が下限を下回る(従って、より良好な推定値である)ので、受信機は、ブロック960に詳述するようにクロックを更新する。
【0082】
様々な実施形態では、受信装置が方法900を定期的に実行して同期を再確立する。このようないくつかの実施形態では、受信装置が、クロックを元の値にリセットし、記憶されているオフセット値を削除し、又は以前の方法900の実行に基づいて行われたあらゆる変更を「巻き戻す(rolls back)」ことによって、クロックオフセットの決定を「やり直す(start over)」。受信装置は、クロックオフセットを定期的に再設定することにより、送信装置のクロックと受信装置のクロックとの間のクロックドリフトをさらに良好に考慮することができる。
【0083】
本明細書の教示に照らせば、各ビーコンメッセージを受信時に処理するリアルタイムな方法として方法900を説明しているが、様々な代替の実施形態は、ビーコンメッセージをバッチとして処理する方法を利用することが明らかであろう。例えば、このようないくつかの実施形態では、受信装置が、複数のビーコンメッセージを受け取り、受信時にメッセージにタイムスタンプを付与し、受け取ったメッセージを後の時点で順に処理して、ブロック925~960に関して説明した方法と同様に最小オフセットを決定する。
【0084】
上記の方法では、2つの装置間のクロックオフセットの最良の推定値を生成しようと試みているが、この初期フラッディング期間後にネットワーク条件が一時的に改善し、その後にさらに良好な推定値を取得できる可能性もあると理解されたい。従って、初期タイミングパラメータの設定後に方法を使用して、より良好にクロックオフセットを推定しようと試みることもできる。このような方法は、送信装置のクロックと受信装置のクロックとが水晶、温度又はその他のパラメータの差分によってわずかに異なるレートで動作し得るクロックドリフトの可能性に対処することもできる。
【0085】
図10に、再同期及びクロックドリフト補正のための方法例のプロセス例1000を示す。不完全性に起因して、システム内のいずれかの装置のローカルクロックがゆっくりとドリフトすることがある。この方法例は、受信メディア装置がメディアストリーミング中に良好な再生同期を取得するために使用することができる。例示的な方法1000は、受信メディア装置として機能するいずれかのメディア装置が実行することができる。方法例1000は、
図3のブロック309の一部として、又はメディア装置間のタイミングパラメータの同期が適切である時には常に実行することができる。
【0086】
方法例1000は、ブロック1005から開始してブロック1010に進み、受信装置が送信装置からメディアデータパケットを受け取る。次に、ブロック1015において、受信装置は、受信装置のクロックが現在示している時間に基づいてタイムスタンプR(x)を生成する。ブロック1020において、受信装置は、メディアデータメッセージから送信機タイムスタンプ「S(x)」を抽出する。送信機タイムスタンプは、送信装置が送信の直前にメディアデータメッセージに挿入しておくことができる。ブロック1025において、受信装置は、送信装置が仮想メディアネットワークのメディアソースであるかどうかを判断する。このような場合、方法1000はブロック1030に進む。次に、受信装置は、送信機タイムスタンプを送信装置の時間領域から仮想メディアネットワークの時間領域に変換する。このような変換は、これらの2つの装置間で以前に取り決められたオフセットを加算又は減算することを伴うことができる。このような取り決め及び時間領域間の変換は、当業者に周知のいずれかの方法に従って実行することができる。いくつかの代替の実施形態では、ソース装置とメディアノードとが同じ時間領域内でクロックを維持する。このようないくつかの実施形態では、ブロック1020、1030が存在する。
【0087】
ブロック1030において送信機タイムスタンプを仮想メディアネットワーク領域に変換した後、或いはブロック1025において送信側がメディアソースではないと判断した後に、方法1000はブロック1035に進み、受信装置が、送信機タイムスタンプと受信機タイムスタンプとに基づいて、例えば2つのタイムスタンプ間の差分に基づいてオフセット値を計算する。送信機のタイムスタンプが変換されていた場合には、変換されたタイムスタンプをオフセットの計算に使用する。このオフセット値「O」は、送信機クロックと受信機クロックとの間の真のオフセットに、2つのタイムスタンプS(x)及びR(x)が生成されている間にメディアデータメッセージが遭遇する、固定遅延及び可変遅延の両方を含むあらゆる遅延を加えたものに相当する。ブロック1040において、受信装置は、このオフセット値が以前に利用していたものよりも良好なクロック間のオフセット推定値を表すかどうかを判断する。例えば、以前に決定された最小オフセットを用いて受信装置のクロックをリセットする様々な実施形態では、受信装置が、現在のオフセットOがゼロよりも小さいかどうかを判定する。この比較における肯定的な結果は、以前に使用していた最小オフセットが何らかの可変ネットワーク遅延を含み、これをローカルクロックから減算すると、理想的な設定点を「行き過ぎて(overshot)」しまうことによってローカルクロックが送信機のクロックよりも遅れて設定されることを示す。現在のオフセットOは、以前に使用していた最小値よりも小さな(又はゼロの)可変遅延を含むことにより、負の数値になることによってこの行き過ぎを示すことができる。このような場合、現在のオフセットOは、真のクロックオフセットの新たな最良の推定値を示していると判断され、ブロック1045において、このオフセットOを用いて再びローカルクロックをリセットすることにより、以前の行き過ぎを少なくとも部分的に補正することができる。他の実施形態のための様々な修正が明らかであろう。例えば、以前に決定された最小オフセットがローカルクロックの修正に使用されず、代わりにタイムスタンプの比較において使用できるように存続する実施形態では、ブロック1040が、現在のオフセットOが以前の最小オフセットMinOを下回るかどうかを判定し、下回る場合には、ブロック1045において、受信装置がMinOをOに等しく設定する。様々な他の修正が明らかであろう。
【0088】
様々な代替の実施形態では、受信装置が、以前に設定された下限オフセットを利用して、フラッディング期間中に計算された不当に大きなオフセットを使用してクロックがリセットされないように保証する支援を行う。このようないくつかの実施形態では、最初に受信機が、ブロック1035において計算したオフセットと以前に設定された下限オフセットとを比較して、このオフセットが下限オフセットよりも良好な真のオフセットの推定値を表すかどうかを判断する。表す場合、受信機は、この最小オフセットに基づくクロックの更新を拒否し、以前に設定された下限を使用し続ける。そうでなければ、このオフセット値の方が下限よりも良好な推定値であるため、受信機は、ブロック1045に詳述するようにクロックを更新する。
【0089】
次に、ブロック1050において、受信装置は、受け取ったメディアパケットを処理して、例えば適切な時点でメディア出力をレンダリングする。例えば、受信装置は、送信機タイムスタンプ及び受信機タイムスタンプとは別の提示時刻をメディアデータパケットから抽出又は計算することができる。このような提示時刻は、メッセージによって運ばれたメディアデータをレンダリングすべき時点を示す。受信装置は、提示時刻を抽出した後に、提示時刻に一致する時点でメディアデータがレンダリングされるようにする。例えば、受信装置は、ローカル再生装置による再生のためにメディアデータをバッファリングし、又は再生のためにメッセージを別のメディアノードに転送することができる。提示時刻に「一致」する現在時刻は、現在時刻と提示タイムスタンプとの間の同等のものを含むことができるが、他の一致の形を含むこともできると理解されるであろう。例えば、様々な実施形態では、持続する最小オフセット値を現在時刻から差し引いたものが提示タイムスタンプに等しい時に現在時刻が一致する。これに加えて、又はこれとは別に、一致の比較は、固定遅延値の加算、減算又は別の考慮も行う。ローカルクロック、提示タイムスタンプ及びその他の潜在的に利用可能な値に基づいて再生に適した時点を決定する方法は、他にも様々なものが明らかであろう。さらに、現在時刻が最小オフセット値に基づいて提示時刻に一致するという概念は、以前に最小オフセット値によって修正されたことがあるローカルクロックを利用しているものの、それ以外の場合には最小オフセット値を明確に考慮しない比較を含むと理解されるであろう。様々な実施形態は、出力の直前にこのような比較を実行して、適切な時点でデータが出力されるのを確実にする。他の実施形態は、このような比較を用いて、メディアが提示時刻に再生される可能性が高い再生バッファ内の位置にメディアデータを挿入する。このような挿入は、再生タイミングを調整するためにメディアデータの挿入前に「ダミー」データを挿入することを伴うことができる。バッファ内のデータの再生タイミングを制御する方法は、これ以外にも様々なものが明らかであろう。
【0090】
さらなる実施形態
図1に示すように、電話機105は、無線スピーカ141又は有線ヘッドホン153を通じてオーディオを出力することができる。オーディオは、無線スピーカよりも有線ヘッドホンを通じた方が高速にレンダリングすることができる。従って、オーディオ同期中には、このレンダリング時間のばらつきを考慮することができる。例えば、決定論的モードでは、無線スピーカ141を通じた送信及びレンダリングに25ms掛かる場合、電話機1 105は、ステージング時間よりも25ms前に無線スピーカにデータを送信することができる。別の例として、決定論的モードでは、無線スピーカを通じた送信及びレンダリングに可変の25~50msが掛かる場合、電話機1は、オーディオの再生予定よりも少なくとも50ms前に無線スピーカにオーディオを送信するとともにオーディオをいつ再生すべきかを示す遅延時間も送信するように決定論的モードを実行することができる。無線スピーカは、このオーディオを受け取って遅延時間の最後までバッファリングし、その後にオーディオを再生することができる。
【0091】
いくつかの実施形態では、最終的にオーディオがレンダリングされる前に、ネットワークを通じて通信する複数の中間装置にオーディオを通すことができる。送信装置及び受信装置は、最終的なオーディオレンダリングがビデオ再生と同期するように、ネットワークを通じた中間送信ステップ毎に上述した方法を実行することができる。
【0092】
1つの態様は、オーディオプレーヤとビデオプレーヤとの間のマルチモード同期メディア再生のための方法であって、無線ネットワークに接続されたビデオプレーヤと無線ネットワークに接続されたオーディオプレーヤとを識別するステップと、ビデオプレーヤとオーディオプレーヤとの間でクロック信号を同期させるステップと、オーディオ同期モードとして決定論的モード又は準アイソクロナスモードを決定するステップと、オーディオパケットを受け取るステップと、オーディオパケットをアンパックしてタイムスタンプ及びオーディオペイロードを抽出するステップと、同期クロック信号によって測定されたオーディオパケットの受信時間を特定するステップと、オーディオ同期モードに従ってオーディオ出力をレンダリングするステップとを含む方法を特徴とする。
【0093】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、オーディオペイロードを予想再生時刻までバッファリングするステップと、再生時刻にオーディオペイロードをレンダリングするステップとをさらに含む。
【0094】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、予想再生時刻までにオーディオペイロードが利用可能にならないと判断するステップと、予想再生時刻にフィラーパケット(filler packet)をレンダリングするステップとをさらに含む。
【0095】
いくつかの実施形態では、オーディオ同期モードが決定論的モードであり、方法が、少なくとも部分的にタイムスタンプに基づいて、同期クロック信号によって測定された予想再生時刻を決定するステップと、予想再生時刻までにオーディオペイロードが利用可能にならないと判断するステップと、誤り訂正データからオーディオペイロードを構築するステップと、予想再生時刻にオーディオペイロードをレンダリングするステップとをさらに含む。
【0096】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、予想再生時刻を経過していないという判断に応答してオーディオペイロードをレンダリングするステップとをさらに含む。この方法は、予想再生時刻を決定するステップが、タイムスタンプであるステージング時間にマージン時間を加算するステップを含むことをさらに含むことができる。
【0097】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、予想再生時刻を経過したという判断に応答してフィラーパケットをレンダリングするステップとをさらに含む。
【0098】
いくつかの実施形態では、オーディオ同期モードが準アイソクロナスモードであり、方法が、同期クロック信号を用いてオーディオパケット受信時間を決定するステップと、少なくとも部分的にタイムスタンプに基づいて予想再生時刻を決定するステップと、誤り訂正データからオーディオペイロードを構築するステップと、予想再生時刻を経過したという判断に応答して、構築されたオーディオペイロードをレンダリングするステップとをさらに含む。
【0099】
いくつかの実施形態では、方法が、無線ネットワークを試験してネットワークの安定性及びネットワークの帯域幅を特定するステップをさらに含み、ネットワークの安定性及びネットワークの帯域幅に少なくとも部分的に基づいてオーディオ同期モードが決定される。いくつかの実施形態では、方法が、クロック信号を再同期させることによってクロック信号のドリフトを補正するステップをさらに含む。
【0100】
いくつかの実施形態では、ビデオプレーヤとオーディオプレーヤとの間でクロック信号を同期させるステップが、ビデオプレーヤからオーディオプレーヤへの一方向通信を用いて行われる。
【0101】
用語
上述した実施形態では、特定の実施形態に関連して、ビデオとオーディオのマルチモード同期レンダリング(multimode synchronous rendering)のための装置、システム及び方法について説明した。しかしながら、実施形態の原理及び利点は、ビデオとオーディオの同期を改善するためのネットワーク装置にわたる他のあらゆるシステム、装置又は方法に使用することもできると理解されるであろう。実施形態によっては、電話機、スマートTV又はその他の特定の装置を参照して説明したものもあるが、本明細書で説明した原理及び利点は、様々な装置に適用することができると理解されるであろう。開示した実施形態の中には、特定の無線プロトコル又はネットワークを参照して説明したものもあるが、本明細書で説明した原理及び利点は、様々なネットワーク及びプロトコルに適用することができると理解されるであろう。さらに、例示を目的としていくつかの方程式及びタイミングを示したが、本明細書で説明した機能を実現するために他の同様の方程式又はタイミングを実装することもできる。
【0102】
本明細書で説明した原理及び利点は、様々な装置に実装することができる。このような装置の例としては、以下に限定するわけではないが、消費者電子製品、消費者電子製品のコンポーネント、電子試験装置などを挙げることができる。電子装置のコンポーネントは、メモリチップ、メモリモジュール、光ネットワーク又はその他の通信ネットワークの回路、及び駆動回路を含むこともできる。オーディオ又はビデオ能力を有する他のネットワーク内装置の例としては、携帯電話機(例えば、スマートホン)、医療モニタリング装置、自動車電子システムなどの車両電子システム、電話機、テレビ、コンピュータモニタ、コンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、電子レンジ、冷蔵庫、ステレオシステム、カセットレコーダ又はプレーヤ、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ(DVR)、VCR、MP3プレーヤ、ラジオ、カムコーダ、カメラ、デジタルカメラ、ポータブルメモリチップ、コピー機、ファックス機、スキャナ、多機能周辺装置、腕時計、時計などを挙げることができる。さらに、装置は、未完成の製品を含むこともできる。
【0103】
文脈において別途明確に必要としていない限り、明細書及び特許請求の範囲全体を通じて、「含む、備える(comprise、comprising、include、including)」などの単語は、排他的又は網羅的な意味ではなく包含的な意味で解釈すべきであり、すなわちこれらの単語は、「含むけれどもそれに限定されない(including,but not limited to)」という意味で解釈すべきである。本明細書で一般的に使用する「結合された(coupled)」又は「接続された(connected)」という単語は、2又は3以上の要素が直接、或いは1又は2以上の中間要素を介して接続されることを意味する。また、本出願において、「本明細書で(herein)」「上記で(above)」「下記で(below)」及び同様の趣旨の単語を使用している場合、これらの単語は本出願全体を示すものであり、本出願のいずれか特定の部分を示すものではない。詳細な説明における単数又は複数を用いた単語は、文脈上可能な場合にはそれぞれ複数又は単数を含むこともできる。2又は3以上の項目のリストを参照する際の「or」という用語は、リスト内の項目のいずれか、リスト内の項目全て、及びリスト内の項目のいずれかの組み合わせ、といった解釈を全て網羅するように意図される。本明細書に示した全ての数値は、測定誤差の範囲内の同様の値を含むように意図される。
【0104】
さらに、本明細書で使用する、とりわけ「can」、「could」、「might」、「may」、「e.g.」、「for example」及び「such as」などの条件語は、別途明確に言及していない限り、又は使用する文脈内で別様に理解されない限り、一般に特定の特徴、要素及び/又は状態を含む実施形態もあれば、それらを含まない実施形態もあることを伝えるように意図される。
【0105】
本明細書に示した本発明の教示は、必ずしも上述したシステムではない他のシステムに適用することもできる。上述した様々な実施形態の要素及び動作を組み合わせてさらなる実施形態をもたらすこともできる。上述した方法の実施形態に基づく変形例では、いくつかのブロックを省略し、並べ替え、順不同にし、或いは順に又は同時に実行することもできる。
【0106】
本発明のいくつかの実施形態を説明したが、これらの実施形態は一例として示したものにすぎず、本開示の範囲を限定するものではない。実際に、本明細書で説明した新規の方法及びシステムは、他の様々な形で具体化することもできる。さらに、本明細書で説明した方法及びシステムの形には、本開示の趣旨から逸脱することなく様々な省略、置換及び変更を行うこともできる。添付の特許請求の範囲及びその同等物は、このような形又は修正も本開示の範囲及び趣旨に含まれるものとして対象とするように意図される。本明細書で説明したシステム及び方法の様々な例は多くの利点を含むことができ、これらのうちの1つが本発明を規定することはない。むしろ、本発明は特許請求の範囲によって規定される。