(57)【特許請求の範囲】
【請求項１】
第１の制御局から第１の音声発生局に第１のプレイバック実行ファイルを無線で送信するステップであって、前記第１のプレイバック実行ファイルは、前記第１の制御局のコード化フォーマットに基づいて生成される、該ステップと、
前記第１の音声発生局に前記第１のプレイバック実行ファイルを記憶するステップと、
前記第１の制御局から前記第１の音声発生局にデジタル音声情報を無線で送信するステップであって、前記デジタル音声情報は、前記第１の制御局において、プレイバックソースフォーマットを有するプレイバックソースを、前記プレイバックソースフォーマットから前記コード化フォーマットに変換することによって生成される、該ステップと、
前記第１の音声発生局内でプレイバックプロセッサを用いて前記デジタル音声情報を復号するステップとを含み、
前記第１のプレイバック実行ファイルが、前記プレイバックプロセッサが前記コード化フォーマットに従って前記デジタル音声情報を復号するように前記プレイバックプロセッサを制御することを特徴とする方法。
【請求項２】
前記デジタル音声情報に応えて、前記プレイバックプロセッサを用いてデジタル音声サンプルを生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の音声発生局内で前記デジタル音声サンプルをアナログ出力信号に変換するステップをさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記アナログ出力信号を増幅するステップと、
前記増幅されたアナログ出力信号を用いてスピーカを駆動するステップとをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記プレイバックプロセッサを用いて前記デジタル音声情報を復号する前記ステップが、定められた周波数範囲と関連付けられたデジタル音声サンプルを前記デジタル音声情報から抽出するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１の制御局内で発生する第１のクロック信号に応えて、前記第１の制御局から前記デジタル音声情報を送信するステップと、
前記第１の音声発生局内で発生する第２のクロック信号に応えて、前記第１の音声発生局を用いて前記デジタル音声情報を受信するステップと、
前記第１のクロック信号及び前記第２のクロック信号を同期させるステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第１の音声発生局から前記第１の制御局に構成情報を送信するステップと、
前記構成情報に応えて前記第１の制御局で前記第１のプレイバック実行ファイルを生成するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記構成情報が、前記第１の音声発生局の動作特性を定義することを特徴とする請求項７に記載の方法。
【請求項９】
前記構成情報が、前記第１の音声発生局のプレイバックチャネルを識別することを特徴とする請求項８に記載の方法。
【請求項１０】
前記構成情報が、前記第１の音声発生局と関連付けられた処理遅延を含むことを特徴とする請求項８に記載の方法。
【請求項１１】
相補周波数して、前記デジタル音声情報を送信するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記第１の制御局から第２の音声発生局に第２のプレイバック実行ファイルを無線で送信するステップであって、前記第２のプレイバック実行ファイルは、前記第１の制御局の前記コード化フォーマットに基づいて生成される、該ステップと、
前記第２の音声発生局に前記第２のプレイバック実行ファイルを格納するステップと、
前記第１の制御局から前記第２の音声発生局に前記デジタル音声情報を無線で送信するステップと、
前記第２の音声発生局内で第２のプレイバックプロセッサを用いて前記デジタル音声情報を復号するステップとをさらに含み、
前記第２のプレイバック実行ファイルが、前記第２のプレイバックプロセッサが前記コード化フォーマットに従って前記デジタル音声情報を復号するように前記第２のプレイバックプロセッサを制御することを特徴とする請求項１に記載の方法。
【請求項１３】
前記第１のプレイバック実行ファイルが、前記第２のプレイバック実行ファイルと異なることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記第１のプレイバックプロセッサ及び前記第２のプレイバックプロセッサによって提供される復号されたデジタル音声情報を、共通クロックに同期させるステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第１のプレイバック実行ファイルが、前記第１の制御局から前記第１の音声発生局に無線送信された後に、第２のプレイバック実行ファイルが、前記第１の制御局から前記第２の音声発生局に無線で送信されることを特徴とする請求項１２に記載の方法。
【請求項１６】
前記第１の音声発生局から前記第１の制御局に構成情報を送信するステップと、次いで
前記第２の音声発生局から前記第１の制御局に構成情報を送信するステップと、
前記第１の音声発生局及び前記第２の音声発生局から受信される前記構成情報に応えて、前記第１の制御局内で前記第１のプレイバック実行ファイル及び前記第２のプレイバック実行ファイルを生成するステップとをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１７】
前記第１の制御局から前記第１の音声発生局に第２のプレイバック実行ファイルを無線で送信するステップであって、前記第２のプレイバック実行ファイルは、前記コード化フォーマットに基づいて生成される、該ステップと、
前記第１の音声発生局に前記第２のプレイバック実行ファイルを格納するステップと、
前記第１の制御局から前記第１の音声発生局に第２のデジタル音声情報を無線で送信するステップであって、前記第２のデジタル音声情報は、前記第１の制御局において、第２のプレイバックソースフォーマットを有する第２のプレイバックソースを、前記第２のプレイバックソースフォーマットから前記コード化フォーマットに変換することによって生成される、該ステップと、
前記第１の音声発生局内で前記プレイバックプロセッサを用いて前記第２のデジタル音声情報を復号するステップとをさらに含み、
前記第２のプレイバック実行ファイルが、前記プレイバックプロセッサが前記コード化フォーマットに従って前記第２のデジタル音声情報を復号するように前記プレイバックプロセッサを制御することを特徴とする請求項１に記載の方法。
【請求項１８】
第２の制御局から前記第１の音声発生局に第２のプレイバック実行ファイルを無線で送信するステップであって、前記第２のプレイバック実行ファイルは、前記コード化フォーマットに基づいて生成される、該ステップと、
前記第１の音声発生局に前記第２のプレイバック実行ファイルを格納するステップと、
前記第２の制御局から前記第１の音声発生局に第２のデジタル音声情報を無線で送信するステップであって、前記第２のデジタル音声情報は、前記第２の制御局において、第２のプレイバックソースフォーマットを有する第２のプレイバックソースを、前記第２のプレイバックソースフォーマットから前記コード化フォーマットに変換することによって生成される、該ステップと、
前記第１の音声発生局内で、前記プレイバックプロセッサを用いて前記第２の制御局によって送信される前記第２のデジタル音声情報を復号するステップとをさらに含み、
前記第２のプレイバック実行ファイルが、前記プレイバックプロセッサが前記コード化フォーマットに従って前記第２の制御局によって送信される前記第２のデジタル音声情報を復号するように前記プレイバックプロセッサを制御することを特徴とする請求項１に記載の方法。
【請求項１９】
前記第１の制御局から前記第１の音声発生局への前記デジタル音声情報の前記送信と関連付けられたパラメータを識別するプレイバックシステム情報を、前記第１の制御局に格納するステップと、
前記第１の制御局から前記第２の制御局に前記プレイバックシステム情報を転送するステップとをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
第１のクロック信号に応えて、前記第１の音声発生局に前記デジタル音声情報を格納するステップと、
前記第１のクロック信号よりも速い第２のクロック信号に応えて、前記プレイバックプロセッサ内で前記デジタル音声情報を処理するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２１】
認知ラウドスピーカシステムであって、
デジタル音声情報及び複数のプレイバック実行ファイルを無線で送信する送受信機を有する制御局であって、前記複数のプレイバック実行ファイルのそれぞれは、前記制御局のコード化フォーマットに基づいて生成され、前記デジタル音声情報は、前記制御局において、プレイバックソースフォーマットを有するプレイバックソースを、前記プレイバックソースフォーマットから前記コード化フォーマットに変換することによって生成される、該制御局と、
前記制御局から無線で送信される前記デジタル音声情報及び前記複数のプレイバック実行ファイルのなかの対応する１つのプレイバック実行ファイルを受信する送受信機をそれぞれが有する、複数の音声発生局とを備え、
前記複数の音声発生局の各々は、前記対応する１つのプレイバック実行ファイルによって制御されて、前記コード化フォーマットに従って前記デジタル音声情報を復号するプレイバックプロセッサを有し、
前記各音声発生局が、前記受信されたデジタル音声情報に応えて可聴出力を生成し、
前記音声発生局の各送受信機が、前記制御局に構成情報を無線で送信するようにしたことを特徴とする認知ラウドスピーカシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本願は、２０１０年５月３日に出願され、本明細書中で参考として援用する「Concept of Cognitive-Loudspeaker System」と題する米国仮特許出願第６１／３３０，６４０号に基づく優先権を主張する。
【０００２】
（技術分野）
本発明は、デジタル音源用の音声発生装置に関する。
【背景技術】
【０００３】
図１は、従来のデジタル音声プレイバックシステム１００のブロック図であり、デジタル音源１０１と、音声プロセッサ１０２と、ラウドスピーカ１１１〜１１３とが含まれている。デジタル音源１０１は、音声プロセッサ１０２にデジタル音声ビットストリームを提供する。デジタル音声ビットストリームは、例えば、ＨＤＭＩケーブルを介して、または無線送信プロトコル（ＷｉＦｉ）を使用して送信されることができる。デジタル音声ビットストリームは、インターネットラジオ、デジタルラジオ、またはパーソナルメディア装置等の音源によって提供されることができる。デジタル音声ビットストリームは、代わりに、インターネット、ブルーレイディスク、ＤＶＤ、またはＤＶＢからのストリーミングビデオ等のオーディオ・ビデオ源によって交互に提供されることができる。
【０００４】
音声プロセッサ１０２は、デジタル音源１０１からデジタル音声ビットストリームを受信する音声デコーダ（復号器）１２０を含む。デジタル音声ビットストリームは、三次元（３Ｄ）サウンドエフェクトを再現するために複数のチャネルで再生（プレイバック）される。マルチチャネルプレイバックシステムの例は、従来の２チャネルステレオシステム、５．１チャネルシステム（例えば、ドルビーＡＣ３符号化）、及びドルビーサラウンド７．１チャネルシステムを含む。これらのマルチチャネルシステムでは、各チャネルは異なる空間位置で再生される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
デジタル音声ビットストリームは、通常、高度に圧縮されたビットストリームで符号化される。多様なチャネルのための情報の大部分は、各追加チャネルに対するビットレートの線形的な増加を回避するために、デジタルビットストリームになんらかの余分な情報が入った単一のチャネルとしてコード化される。したがって、音声デコーダ１２０を使用してデジタル音声ビットストリームを復号し、各チャネルを再現する。音声デコーダ１２０は、各チャネルを同期するために音声サンプルクロックも生成する。音声サンプルクロックは、通常、２０〜２０ｋＨｚの音声スペクトルに基づき、４４ｋＨｚの周波数を有する。各チャネルのサンプルクロックの同期が合わないと、音声品質及び効果が悪化する。
【０００６】
音声プロセッサ１０２はまた、各チャネルに対してデジタル／アナログ（Ｄ／Ａ）変換器１２１〜１２３を含む。各Ｄ／Ａ変換器１２１〜１２３は、音声デコーダ１２０から、関連付けられたチャネル及び音声サンプルクロックのための復号されたデジタルビットストリームを受信する。それに応じて、各Ｄ／Ａ変換器１２１〜１２３は、関連付けられたチャネルにアナログ出力信号を提供する。電力増幅器１３１〜１３３は、各Ｄ／Ａ変換器１２１〜１２３からアナログ出力信号を受信する。それに応じて、電力増幅器１３１〜１３３が、増幅されたアナログ出力信号をスピーカケーブルを介してスピーカ１１１〜１１３にそれぞれ駆動する。
【０００７】
（集中音声プロセッサモデルを実装する）典型的なデジタル音声システムでは、音声デコーダ１２０、Ｄ／Ａ変換器１２１〜１２３及び電力増幅器１３１〜１３３が同じボックス内に含まれている。このタイプの装置の例は、オーディオ／ビデオ（Ａ／Ｖ）プロセッサ、メディアサーバクライアント及びメディアデバイスを含む。一般に、音声プロセッサ１０２は、チャネルの全てに所要電力増幅を提供することが要求される。その結果、音声プロセッサ１０２は、相対的に高価な装置となる。さらに、音声プロセッサ１０２はプリセット信号処理及び復号機能を実装し、それがこの装置の将来の拡張を制限し得る。さらに、音声プロセッサ１０２を各関連付けられたラウドスピーカ１１１〜１１３に接続するために、スピーカワイヤが必要とされる。チャネル数が増加すると、必要なスピーカワイヤ数も増加する。市場調査によれば、スピーカワイヤのルーティングがサラウンドサウンドシステムの採用の大きな障害となっていることが示されている。
【０００８】
アクティブラウドスピーカモデルでは、電力増幅器１３１〜１３３は、音声プロセッサ１０２内ではなく、ラウドスピーカ１１１〜１１３と同じボックス内に含まれる。ただし、このモデルは、依然として上述した問題を示している。
【０００９】
ラウドスピーカの音声品質は多くの要因に影響され、そのような要因として、全体周波数応答、ドライバ数、クロスオーバ回路、動作周波数範囲全体でのドライバの精度及びインピーダンス、エンクロージャ特性、電力増幅の精度マッチング、スピーカケーブル及び電力増幅器での損失が挙げられる。ラウドスピーカの音質を改善するための従来の電気機械的な方法は、非常に高価である。例として、各音声チャネルに対して非常に高い電流及び低歪み電力増幅器を提供する（一体式）；高度に最適化されたクロスオーバ回路により音声スペクトルを複数の周波数バンドに分離し、高度に最適化されたドライバ装置を使用して各バンドを別々に駆動する；大規模なコンピュータ支援設計（ＣＡＤ）法を適用して、周波数応答、位相、エンクロージャボックスの着色及び入力インピーダンスを含むラウドスピーカパラメータを最適化する；非常に高価な材料を使用して、ラウドスピーカ筺体を構築する；超低損失スピーカケーブルを使用する、が含まれる。
【００１０】
典型的な５．１ホームシアターシステムは、音声プロセッサ１０２からの２対のワイヤを部屋の後方の１対のサラウドスピーカに接続する必要がある。上述したように、このことは、サラウンドサウンドシステムの採用に非常に重大な不都合を招く。この問題を解決するために利用可能な１つの解決策が、ワイヤレススピーカ技術である。ワイヤレススピーカは、物理的なスピーカケーブルの代わりに、間に見えない電波を使用して、部屋の前方にある音声プロセッサ１０２から部屋の後方にあるサラウドスピーカまで音声を運ぶ。
【００１１】
この場合、音声プロセッサ１０２は無線送信機を含まなければならず、望ましくないことに、この装置の費用及び複雑さを増加させる。通常は部屋の後方近く（例えばソファの下）に小型の電力増幅器／ＲＦ受信機が配置され、この電力増幅器／ＲＦ受信機から数フィート離れたサラウドスピーカまでスピーカワイヤが配線される。したがって、このシステムでは依然としてスピーカワイヤを使用しなければならない。音声チャネル（つまり、サラウドスピーカを通して再生される音声チャネル）のサブセットは、ワイヤレスインタフェースを介して音声プロセッサ１０２から遠隔電力増幅器／ＲＦ受信機に送信され、サラウドスピーカを通して再生される。音声チャネルのサブセットを無線で送信することによって、スピーカケーブルを通じて残りの音声チャネルを送信する間に、音質及びサラウンド効果が大幅に悪化することがあることに留意されたい。
【００１２】
したがって、従来の音声システムの上述した欠陥を克服する音声システムがあれば望ましいであろう。
【課題を解決するための手段】
【００１３】
したがって、本発明は、複数の音声発生局とワイヤレスでかつ双方向で通信するアクティブ制御局を含む認知ラウドスピーカシステム（cognitive loudspeaker system）を提供する。制御局及び音声発生局は、最初に導体クロック（conductor clock）に同期される。セットアッププロセス中、音声発生局からアクティブ制御局に構成情報（チャネル識別及び処理遅延を含む）が送信される。受信した構成情報に応えて、アクティブ制御局は、音声発生局のそれぞれにプレイバック実行ファイルを生成する。アクティブ制御局は、音声発生局にプレイバック実行ファイルを無線で送信する。
【００１４】
セットアッププロセスが完了した後、アクティブ制御局は、（デジタル音源から受信される）デジタル音声情報を音声発生局に無線で送信する。各音声発生局内では、受信されたデジタル音声情報の復号及び処理を制御するために、以前に受信したプレイバック実行ファイルが使用される。各音声発生局は、受信したデジタル音声情報（及び関連付けられたプレイバック実行ファイル）に応えて、デジタル音声出力サンプルを生成する。デジタル音声サンプルは、アナログ出力信号に変換され、増幅されてスピーカを通じて再生される。
【００１５】
本発明の一実施形態に従って、アクティブ制御局は、各音声発生局内に仮想デコーダを確立する。これは、多様なソースからの再生を可能にする。各音声発生局内において、クロスオーバフィルタリング、補償及び等化（イコライゼーション）を個々に実現することができる。仮想デコーダは、認知ラウドスピーカシステムを、新しいコード化プロトコルを処理するように容易に修正／更新することができる。
【００１６】
本発明の別の実施形態に従い、ハンドオーバプロセスを用いてアクティブ制御局を別の制御局に切り換えることができる。
【００１７】
本発明は、以下の説明及び図面を考慮してより完全に理解されるであろう。
【図面の簡単な説明】
【００１８】
【図１】従来のデジタル音声プレイバックシステムのブロック図である。
【図２】本発明の一実施形態に係る認知ラウドスピーカシステムのブロック図である。
【図３】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムにおいて用いられる送受信機のブロック図である。
【図４】本発明の一実施形態に係る、図３の送受信機によって実装される周波数計画を示すブロック図である。
【図５】本発明の一実施形態に係る、第１の認知ラウドスピーカシステムに関連付けられた第１の導体クロック信号及び第２の認知ラウドスピーカシステムに関連付けられた第２の導体クロック信号を示す波形図である。
【図６】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムのアクティブ制御局を示すブロック図である。
【図７】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムの音声発生局のブロック図である。
【図８】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムの制御局音声発生局間で通信するために用いられる使用されるメッセージユニットのブロック図である。
【図９Ａ】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムを作動させるために用いられるメッセージユニットセットを定義する表を示す。
【図９Ｂ】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムを作動させるために用いられるメッセージユニットセットを定義する表を示す。
【図９Ｃ】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムを作動させるために用いられるメッセージユニットセットを定義する表を示す。
【図９Ｄ】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムを作動させるために用いられるメッセージユニットセットを定義する表を示す。
【図１０】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムによって実装される構成ルーチンの流れ図である。
【図１１】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムによって実装されるセットアップルーチンの流れ図である。
【図１２】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムによって実装される制御局ハンドオーバプロセスの流れ図である。
【図１３】本発明の一実施形態に係る、図７の音声発生局に含まれる音声発生論理回路ブロック図である。
【図１４】本発明の一実施形態に係る、図２の認知ラウドスピーカシステムのソフトウェアアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００１９】
一般に、本発明は、デジタル音源から再生するための認知ラウドスピーカシステムを提供する。認知ラウドスピーカシステムは、アクティブ制御局（ＣＳ）と、１若しくは複数の音声発生局（ＳＰＳ）とを含み、音声発生局は、システムのラウドスピーカを含む。認知ラウドスピーカシステムの多様な構成要素は、同期させた超広帯域（ＵＷＢ）インタフェースを介して無線で通信する。アクティブ制御局は、音声発生局にフレキシブルに関連付けることができる。制御局ハンドオーバプロセスを用いて非アクティブ制御局をアクティブ制御局になるように切り替えることができるが、これについては以下にさらに詳細に説明する。音声発生局は、音声コード化に関して中立的である。つまり、アクティブ制御局は、各音声発生局内に仮想デコーダを確立する。これは、多様なソースからの再生を可能にする。各音声発生局内において、クロスオーバフィルタリング、補償及び等化を個々に実現することができる。ラウドスピーカ設置及び室内音響のための等化も、認知ラウドスピーカシステムによって実現することができる。
【００２０】
以下により詳細に説明するように、本発明の認知ラウドスピーカシステムは、システムアーキテクチャと、無線通信アーキテクチャと、ソフトウェア構成要素のフレームワークと、無線インタフェースを通して多くの物理的に分離した音声チャネルを同期させる方法と、音声プレイバック信号処理に構成要素に特定の信号処理を追加できるようにする方法と、デジタル音声プレイバックシステムの構成、セットアップ、再生、リソース共用及び更新のための使用モデルとを含む。
【００２１】
図２は、本発明の一実施形態に係る認知ラウドスピーカシステム（ＣＬＳ）２００のブロック図である。ＣＬＳ２００は、制御局２０１〜２０３と、制御局ハンドオーバ論理回路２０５と、複数の音声発生局２１０〜２１７とを含む。（例えば、７．１サラウンドサウンドを実装するために）８つの音声発生局２１０〜２１７が示されているが、他の実施形態では他の数の音声発生局を使用できることが理解される。各音声発生局２１０〜２１７は、音声発生論理回路（ＳＰＬ）と、１若しくは複数の電力増幅器（ＰＡ）と、１若しくは複数のラウドスピーカとを含む。例えば、音声発生局２１０は、音声発生論理回路２２１と、電力増幅器２２２〜２２３と、スピーカ２２４〜２２５とを含む。各音声発生局２１０〜２１６は２つの電力増幅器及び２つのスピーカを含み、音声発生局２１７は１つの電力増幅器及び１つのスピーカ（例えばサブウーファー）を含むが、音声発生局２１０〜２１７が、他の実施形態では他の数の電力増幅器／スピーカを有し得ることを理解されたい。
【００２２】
通常、ラウドスピーカは、特定の周波数を処理するための対応するドライバ装置、例えば２ウェイまたは３ウェイスピーカ等を有することになる。これは、実際には音声発生の物理的特性によって制限される。本発明の一実施形態に従って、図２に示されている音声発生論理回路（ＳＰＬ）は、効率的なデジタルクロスオーバ回路として動作する。音源の大部分は、周波数領域内で送られる。図示されている実施形態ではＳＰＳ２１７が「．１チャンネル」を実装し、それによってＬＦＥ（低周波効果）（例えばサブウーファーボックス）を提供することに留意されたい。
【００２３】
デジタル音声ストリームの再生を実現するためには、１つの制御局（例えば制御局２０１）のみが必要とされる。ただし、制御局ハンドオーバ論理回路２０５が複数の制御局間で再生を容易に切り替えることを可能にする。本明細書で説明されている種々の実施形態では、制御局２０１は、最初に、アクティブ制御局として動作する。他の制御局２０２〜２０３は、ハンドオーバプロセスを通じてアクティブ制御局として制御局２０１に取って代ることができるが、これについては以下にさらに詳細に説明する。
【００２４】
制御局２０１〜２０３は、音声発生局２１０〜２１７と無線で通信する。一実施形態に従って、認知ラウドスピーカシステム２００の無線特性には、以下のものが含まれる。音声コード化のための１００Ｍｂ／秒（またはそれ以下）、５メートル範囲、（アクティブ制御局２０１及びＳＰＳ２１０〜２１７のために）利用可能なＡＣ電力、低移動度、見通し内伝搬（一部屋）、低遅延、或る範囲内での正確な多点同期、２地点間デュプレックス通信、一点から多点への一斉送信、（セキュリティが問題とならないように）一時データ、高密度共同住宅内での複数の認知ラウドスピーカネットワークの共存をサポートするための単一ＭＡＣ層、他のメディア再生のためのフック、異なる領域の異なるスペクトル要件で機能する能力。
【００２５】
一実施形態に従って、認知ラウドスピーカシステム２００内での無線通信は、超広帯域（ＵＷＢ）周波数スペクトルを用いて実現される。ＵＷＢは、ＦＣＣによって商業目的に使用できるようにされた無認可広帯域周波数スペクトルである。ＵＷＢ周波数スペクトルを使用することによって、認知ラウドスピーカシステム２００によって実装される回路は、ビットレート、範囲及びチャネル環境に関して比較的単純なものとすることができる。より具体的には、制御局２０１〜２０３及び音声発生局２１０〜２１７内にインパルス無線送受信機を実装することにより、マルチチャネル音声再生に不可欠な、拡張可能な超低ジッタの低遅延同期システムを確立することができる。別の実施形態では、異なる周波数スペクトルを用いて、認知ラウドスピーカシステム２００内で無線通信を実現することができる。
【００２６】
図３は、本発明の一実施形態に係る、図２の認知ラウドスピーカシステムにおいて用いられるＵＷＢ送受信機（ＣＬＳ ＰＨＹ）３００のブロック図である。各音声発生ステーション２１０〜２１７のみならず、各制御局２０１〜２０３に、送受信機３００と同一の送受信機が含まれる。送受信機３００は、アンテナ３０１と、低雑音増幅器（ＬＮＡ）３０２と、電力増幅器（ＰＡ）３０３と、ＵＷＢ周波数範囲で動作する必要がある信号ミキサ回路３０４〜３０５とを含む。送受信機３００はまた、データ復元回路３０６〜３０７と、デジタイザ３０８と、周波数合成器３１０〜３１１と、周波数ホッピングシーケンス制御論理ブロック３１２〜３１３と、スイッチ３１５〜３１６と、マルチプレクサ３２１〜３２５と、パルス整形論理回路３３０と、チャネル同期回路３３５と、クロック発生回路３４０と、分周器／デューティサイクルコントローラ３４５と、遅延ロック３５０と、データ入力レジスタ３５５と、データ出力レジスタ３６０とを含む。
【００２７】
クロック発生回路３４０は、認知ラウドスピーカシステム２００が同期的に動作することを可能にする導体クロック信号を発生させる。説明されている実施形態では、導体クロック信号は２５０ＭＨｚの周波数を有するが、他の実施形態では他のクロック周波数を実現することができる。分周器／デューティサイクルコントローラ３４５は、導体クロックで分割機能を実行し、分割された導体クロックのデューティークロックを制御して、システムクロック信号を発生させる。
【００２８】
２５０ＭＨｚの導体クロック信号を分割する論理的根拠は、このクロック信号によって提供される最大ビットレートが２５０Ｍｂ／秒であることである。しかしながら、音声データのビットレートはこの２５０Ｍｂ／秒よりもはるかに低い。導体クロックのデューティサイクルを削減することによって、（例えば高密度都市地域において）他の近傍のＣＬＳシステムがある場合に符号間干渉（ＩＳＩ）の可能性が減る。上記の使用可能な帯域幅を用いて、ビデオストリーム等の他のデータを送信することもできる。ビットレートとＩＳＩとの間にはトレードオフの関係があることに留意されたい。
【００２９】
システムクロック信号は、導体クロック信号Ｎサイクル毎に（Ｎは１以上の整数）、効果的に、導体クロック信号の一部中にデータ送信が生じることを可能にする。これにより、導体クロック信号の異なるサイクル中に異なるシステムがデータを送信できるので、複数の認知ラウドスピーカシステムが互いに近接して動作できるようになる。また、これはＩＳＩも減らす。
【００３０】
音声チャネルの全てを同期させるために依存される１つの主要因が、単純なパルス無線である。以前の信号からの干渉を補正しようと試みるための信号処理はない。周波数ホッピングは、ＩＳＩの大部分を排除する。しかし、デューティサイクルを低くすると、近傍の他のＣＬＳシステムのみならず自身の送信からの干渉の可能性を大幅に減らすことにもなる。
【００３１】
システムクロック信号は送受信機３００の送信機能を制御し、そのような機能には、データ出力レジスタ３６０への出力データ値のラッチ、周波数ホッピングシーケンス制御論理回路３１３の遷移、パルス整形論理回路３３０を通る出力データの経路指定、出力スイッチ３１６の動作が含まれる。送信された信号に、ＵＷＢ無線仕様の要件に従って５００ＭＨｚスペクトルを占有させるために、パルス整形論理回路３３０が用いられる。
【００３２】
遅延ロック回路３５０は、システムクロック信号を遅延させて遅延システムクロック信号を発生させる。この遅延システムクロック信号は、送受信機３００によって実装される送信機能と受信機能との間にオフセットを提供する。送信機回路内の導体クロックが受信機回路内の導体クロックと同期されることを保証するために、この遅延が選択される。遅延システムクロック信号は送受信機３００の受信機能を制御し、そのような機能には、入力レジスタ３５５への入力データ値のラッチ、周波数ホッピングシーケンス制御論理回路３１２の遷移、入力スイッチ３１５の動作が含まれる。以下にさらに詳細に説明するように、チャネル同期論理回路３３５は、遅延ロック回路３５０によって導入される遅延を制御する。
【００３３】
一般的に、クロックシステムは、受信機回路が送信機から正しくデータを受信できるように同期される。ＳＰＳ２１０〜２１７は全て、同じプレイバックストリームを同期的に受信する。以下にさらに詳細に説明するように、全てのＳＰＳのサンプルクロックは、アクティブ制御局２０１によって送信されるメッセージユニットに応えて、同期的に起動される。ＳＰＳ２１０〜２１７内のサンプルクロックのドリフトは、アクティブ制御局２０１によって送信されるタイミング情報により妨げられる。以下にさらに詳細に説明するように、各ＳＰＳ２１０〜２１７は、専用のクロックシステムに応えて動作するプレイバックプロセッサを含む。
【００３４】
周波数合成器３１０〜３１１は、送受信機３００によって実装される周波数計画（周波数プラン）のための周波数トーン全てを生成する。説明されている実施形態では、周波数合成器３１０及び３１１はそれぞれ、８つの周波数トーンを生成することができる。周波数ホッピングシーケンス制御論理回路３１２〜３１１は、周波数ホッピングのシーケンスを制御する状態機械を含む。より具体的には、周波数ホッピングシーケンス制御論理回路３１３は、マルチプレクサ３２３が、周波数合成器３１０によって生成される周波数トーンのうちの１つをマルチプレクサ３２５に経路指定し、マルチプレクサ３２４が、周波数合成器３１１によって生成される周波数トーンのうちの１つをマルチプレクサ３２５に経路指定するように、マルチプレクサ３２３及び３２４を制御する。通常、マルチプレクサ３２３及び３２４によって経路指定される周波数トーンは、それぞれ論理「０」及び論理「１」のデータ値を表す。
【００３５】
マルチプレクサ３２５は、データ出力レジスタ３６０内でラッチされるデータ出力値によって制御される。データ出力値が論理「０」値を有する場合、マルチプレクサ３２５は、マルチプレクサ３２３（周波数合成器３１０）によって提供される周波数トーンを経路指定する。一方で、データ出力値が論理「１」値を有する場合、マルチプレクサ３２５は、マルチプレクサ３２４（すなわち周波数合成器３１１）によって提供される周波数トーンを経路指定する。パルス整形論理回路３３０は、ＦＣＣ要件に合うように、マルチプレクサ３２５によって経路指定される周波数トーンを整形する。より具体的には、パルス整形論理回路３２５は、システムクロック信号によって指定される持続期間（パルス幅）を有する周波数トーンを生成する。パルス整形論理回路３３０によって提供されるパルス化周波数トーンは、電力増幅器３０３に提供される。増幅されたパルス化周波数トーンをアンテナ３０１に送るために出力スイッチ３１６が閉じられ、それによって、アンテナ３０１は論理「０」データ値または論理「１」データ値を表す無線ＵＷＢ信号を送信する。出力スイッチ３１６が閉じられている間、入力スイッチ３１５は開いていることに留意されたい。スイッチ３１５〜３１６は、送受信機３０１が送信機として動作している（出力スイッチ３１６が閉じている）のか受信機として動作している（入力スイッチ３１５が閉じている）のかを指定するメッセージユニット（後述）に応じて動作する。
【００３６】
送受信機３００の受信機側では、入力周波数トーンがアンテナ３０１によって受信され、入力スイッチ３１５及び低雑音増幅器３０２を介して信号ミキサ回路３０４及び３０５に経路指定される。信号ミキサ回路３０４及び３０５はそれぞれ信号ミキサ３０４１〜３０４２及び３０５１〜３０５２を含み、これらは低雑音増幅器３０２から入力周波数トーンを受信する。
【００３７】
周波数ホッピングシーケンス制御論理回路３１２は、マルチプレクサ３２１が、周波数合成器３１０によって生成される周波数トーンのうちの１つを信号ミキサ回路３０４に経路指定し、マルチプレクサ３２２が、周波数合成器３１１によって生成される周波数トーンのうちの１つを信号ミキサ回路３０５に経路指定するように、マルチプレクサ３２１及び３２２を制御する。マルチプレクサ３２１によって経路指定される周波数トーンは、アンテナ３０１によって受信される論理「０」値を有する周波数トーンと同じ周波数を有するが、マルチプレクサ３２２によって経路指定される周波数トーンは、アンテナ３０１によって受信される論理「１」値を有する周波数トーンと同じ周波数を有する。マルチプレクサ３２１によって経路指定される周波数トーンは、信号ミキサ３０４１に提供される。マルチプレクサ３２１によって経路指定される周波数トーン３２１も９０°シフト（遅延）され、シフトされた周波数トーンは信号ミキサ３０４２に印加される。同様に、マルチプレクサ３２２によって送られる周波数トーンは、信号ミキサ３０５１に提供される。また、マルチプレクサ３２２によって送られる周波数トーン３２１は、９０度シフト（遅延）され、シフトされた周波数トーンが信号ミキサ３０５２に向けられる。
【００３８】
信号ミキサ３０４１及び３０４２の出力は、データ復元回路３０６内の積算器３０６１及び３０６２にそれぞれ提供される。同様に、信号ミキサ３０５１及び３０５２の出力は、データ復元回路３０７内の積算器３０７１及び３０７２にそれぞれ提供される。積算器３０６１及び３０６２の出力は、データ復元回路３０６内の加算器３６３３に提供され、積算器３０７１及び３０７２の出力は、データ復元回路３０７内の加算器３０７３に提供される。アンテナ３０１によって受信される周波数トーンが、マルチプレクサ３２１によって経路指定される周波数トーンに一致する場合、加算器３０６３の出力は、デジタイザ３０８によって検出されるのに十分な量のエネルギーを有する出力信号を提供することによって、この一致を示すことになる。一方で、アンテナ３０１によって受信される周波数トーンが、マルチプレクサ３２２によって経路指定される周波数トーンに一致する場合、加算器３０７３の出力は、デジタイザ３０８によって検出されるのに十分な量のエネルギーを有する出力信号を提供することによって、この一致を示す。
【００３９】
加算器３０６３の出力も加算器３０７３の出力も、デジタイザ３０８によって検出されるのに十分なエネルギーを有していない場合には、受信機回路は、関連付けられた送信機回路と適切に同期されていない。加算器３０６３の出力及び加算器３０７３の出力がともに、デジタイザ３０８によって検出されるのに十分なエネルギーを有する場合には、（干渉によって生じ得る）エラー状態が示される。
【００４０】
加算器３０６３及び３０７３の両出力は、デジタイザ３０８に提供される。アンテナ３０１によって受信される入力周波数トーンが、マルチプレクサ３２１によって経路指定される周波数トーンに一致する（すなわち、加算器３０６３によって提供される出力信号においてエネルギーが検出される）場合、デジタイザ３０８はデータ入力レジスタ３５５に論理「０」値を提供する。一方で、アンテナ３０１によって受信される周波数入力トーンが、マルチプレクサ３２２によって経路指定される周波数トーンに一致する（すなわち、加算器３０７３によって提供される出力信号においてエネルギーが検出される）場合、デジタイザ３０８はデータ入力レジスタ３５５に論理「１」値を提供する。デジタイザ３０８によって提供されるデータ値は、遅延システムクロック信号に応えて、データ入力レジスタ３５５内にラッチされる。デジタイザ３０８によって検出されるデータ値も同様に、チャネル同期論理回路３３５に提供され、それが遅延ロック３５０を制御してシステムクロック信号に適切な遅延を導入し、それによって遅延システムクロック信号を発生させる。
【００４１】
一実施形態に従って、受信データ（すなわちメッセージユニット）に同期データ（「sync_data」）が埋め込まれている。このsync_dataは、送信機回路及び受信機回路の両者に既知のコードシーケンスである。送信機回路は、メッセージユニットを送信するときにこのコードシーケンスを送信することになり、受信機回路は、受信データがsync_dataに揃えられるように遅延システムクロック信号の遅延を調整することになる。送信機及び受信機の両者は、一定の時間間隔内に１ビットのデータが送信されることを期待するので、受信機回路は、データ復元回路３０６及び３０７によって提供される信号においてデジタイザ３０８が最大エネルギーを検出できるように、遅延システムクロック信号の遅延を調整する。
【００４２】
一実施形態に従って、インパルス送受信機３００は、相補的周波数ホッピングパルス変調（ＣＦＨＰＭ）方式を実装する。周波数ホッピングのタイミングは、２５０ＭＨｚの導体クロック信号の一部分に同期される。論理「０」値及び論理「１」値を表すために、異なる一連の相補的周波数ホッピング計画が使用される。論理「０」及び論理「１」値は、関連付けられた周波数ホッピング計画によって変調される。送受信機３００の送信機側は、関連付けられたデータビットの論理状態に基づいて、変調パルスを送信する。送受信機３００の受信機側は、データを受信できる前に、導体クロック信号及び送信機の周波数ホッピングシーケンスに同期する必要がある。以下にさらに詳細に説明するように、この受信機側での同期は、送信機によって送信されるメッセージユニット内のビーコン及び「sync_data」パターンへのロックによって達成される。導体クロックを分割し、複数の周波数ホッピングシーケンス計画を提供することによって、近接する他の認知ラウドスピーカシステムとの共存が可能である。
【００４３】
図４は、本発明の一実施形態に係る送受信機３００によって実装される周波数計画４００を示すブロック図である。周波数計画４００は、周波数表４０１及び周波数計画４０１Ａ〜４０１Ｄを含む。周波数表４０１によって示されているように、周波数計画４０１Ａ〜４０１Ｄを実装するために１１個の周波数トーンｂ１〜ｂ１１が利用可能である。周波数合成器３１０は、周波数トーンｂ１、ｂ２、ｂ３、ｂ４、ｂ５、ｂ８、ｂ９及びｂ１０を生成することができる。周波数合成器は、周波数トーンｂ１、ｂ２、ｂ４、ｂ６、ｂ７、ｂ８、ｂ９、ｂ１０及びｂ１１を生成することができる。周波数トーンｂ１〜ｂ１１は、周波数表４０１によって示されているように、３４３２ＭＨｚ〜１０２９６ＭＨｚまで様々である。
【００４４】
周波数計画４０１Ａ〜４０１Ｄは、周波数トーンｂ１〜ｂ１１を使用して論理「０」値及び論理「１」値を表す様々な方法を定義する。周波数トーン表示は、送信／受信される連続ビットごとに変化（すなわち「ホッピング」）する。したがって、第１のビットは、第１の周波数表示（frequency designation）「hop_0」を使用して符号化され、第２のビットは、第２の周波数表示「hop_1」を使用して符号化され、第３のビットは、第３の周波数表示「hop_2」を使用して符号化され、第４のビットは、第４の周波数表示「hop_3」を使用して符号化される。このパターンは、以後のビットに対して繰り返され、第５のビットは、第１の周波数表示「hop_0」を使用して符号化され、第６のビットは、第２の周波数表示「hop_1」を使用して符号化され、以下同様である。
【００４５】
例えば、周波数計画４０１Ａを用いるとき、第１のビットは、論理「０」値が周波数トーンｂ１（すなわち３４３２ＭＨｚ信号）によって表されかつ論理「１」値が周波数トーンｂ７（すなわち８１８４ＭＨｚ信号）によって表されている表４０１Ａの「hop_0」を用いて符号化される。それゆえ、表４０１Ａの「hop_0」を用いて符号化するときに、周波数ホッピングシーケンス制御論理回路３１３は、マルチプレクサ３２３及び３２４がそれぞれ周波数トーンｂ１及びｂ７を経路指定するようにする。（同様に、表４０１Ａの「hop_0」を用いて符号化するときに、周波数ホッピングシーケンス制御論理回路３１２は、マルチプレクサ３２１及び３２２がそれぞれ周波数トーンｂ１及びｂ７を経路指定するようにする。第２のビットは、論理「０」値が周波数トーンｂ５（すなわち７１２８ＭＨｚ信号）によって表されかつ論理「１」値が周波数トーンｂ２（すなわち３９６０ＭＨｚ信号）によって表されている表４０１Ａの「hop_1」を用いて符号化される。第３のビットは、論理「０」値が周波数トーンｂ９（すなわち９２４０ＭＨｚ信号）によって表されかつ論理「１」値が周波数トーンｂ８（すなわち８７１２ＭＨｚ信号）によって表されている表４０１Ａの「hop_2」を用いて符号化される。第４は、論理「０」値が周波数トーンｂ３（すなわち４４８８ ＭＨｚ信号）によって表されかつ論理「１」値が周波数トーンｂ４（すなわち６６００ ＭＨｚ信号）によって表されている表４０１Ａの「hop_3」を使用して符号化される。周波数計画４０１Ａの場合、周波数合成器３１０は、周波数トーンｂ１、ｂ５、ｂ９及びｂ３を生成することだけを要求され、周波数合成器３１１は、周波数トーンｂ７、ｂ２、ｂ８及びｂ４を生成することだけを要求されていることに留意する。
【００４６】
周波数計画４０１Ａを用いて「01110100」のデータストリームを送信するとすれば、以下の周波数トーンのシーケンス、すなわちｂ１、ｂ２、ｂ８、ｂ４、ｂ１、ｂ２、ｂ９及びｂ３が、周波数合成器３１０及び３１１からアンテナ３０１に送信されることになる。周波数計画４０１Ｂを用いて同じデータストリームを送信するとすれば、以下の周波数トーンのシーケンス、すなわちｂ２、ｂ４、ｂ６、ｂ１、ｂ２、ｂ４、ｂ１０及びｂ５が送信されることになる。周波数計画４０１Ｃを用いて同じデータストリームを送信するとすれば、以下の周波数トーンのシーケンス、すなわちｂ３、ｂ６、ｂ４、ｂ１０、ｂ３、ｂ６、ｂ５及びｂ２が送信されることになる。周波数計画４０１Ｄを用いて同じデータストリームを送信するとすれば、以下の周波数トーンのシーケンス、すなわちｂ４、ｂ７、ｂ１、ｂ６、ｂ４、ｂ７、ｂ２及びｂ９が送信されることになる。
【００４７】
互いに異なる周波数計画４０１Ａ〜４０１Ｄは、互いに異なる認知ラウドスピーカシステムが（例えば高密度共同住宅内で）近接して共存することを可能にする。セットアッププロセス（後述）中、アクティブ制御局２０１は、任意の他の認知ラウドスピーカネットワークの存在を検出することになる。それに応じて、アクティブ制御局２０１は、未使用の周波数計画を選択し、制御局がシステム２００内の音声発生局２１０〜２１７の全てと首尾よく通信できるようになるまで、導体クロック信号の位相／デューティサイクルを調整することになる。以下に説明するように、認知ラウドスピーカシステム２００内の各構成要素は、構成プロセス中に確立される共通のネットワークＩＤを共用することになる。各構成要素は、異なるネットワークＩＤを有する認知ラウドスピーカシステムによって送信されたデータを無視することになる。
【００４８】
図５は、第１の認知ラウドスピーカシステム（Network_A）に関連付けられた第１の導体クロック信号CLK_Aと、第２の認知ラウドスピーカシステム（Network_B）に関連付けられた第２の導体クロック信号CLK_Bとを示す。第１の認知ラウドスピーカシステム（Network_A）は周波数計画４０１Ａを実装し、第２のラウドスピーカシステム（Network_B）は周波数計画４０１Ｂを実装する。さらに、第１の認知ラウドスピーカシステム（Network_A）が第２の認知ラウドスピーカシステム（Network_B）と同じ期間中にアクティブに送信しないように、導体クロック信号CLK_Bは導体クロック信号CLK_Aに対して位相がずれるように調整される。図５の例では、導体クロック信号の各第５のサイクル中にのみデータが送信されるようにデューティサイクルが選択されている。
【００４９】
図６は、本発明の一実施形態に係るアクティブ制御局２０１を示すブロック図である。制御局２０１は送受信機６００を含み、送受信機６００は図３の送受信機３００と同一である。制御局２０１は、制御ソフトウェア６０１と、標準通信チャネル６０２と、同期論理回路６０３と、デジタルソース６０４と、他のマルチメディアドライバ６０５も含む。
【００５０】
標準通信チャネル６０２は、例えば、ＷｉＦｉやブルーツース等の標準無線通信リンクであってよい。標準通信チャネル６０２は、制御局ハンドオーバプロセスを実装するために使用されるが、これについては以下にさらに詳細に説明する。一般に、制御局ハンドオーバプロセスにより、認知ラウドスピーカシステム２００の制御を或る制御局（例えば制御局２０１）から別の制御局（例えば制御局２０２）に移すことができる。標準通信チャネル６０２は、プレイバックソースの通信リンクとして用いられることもできる。
【００５１】
送受信機６００は、プレイバック同期マスタとして動作し、さらにまた、アクティブ制御局２０１と音声発生局２１０〜２１７との間の通信リンクとしても機能する。送受信機６００は、他の制御局２０２〜２０３への通信リンクとして機能することもできる。以下にさらに詳細に説明するように、送受信機６００は、構成データ、プレイバック実行ファイル及びデジタルプレイバックストリームを音声発生局２１０〜２１７に送信する。送受信機６００はまた、セットアッププロセス中に音声発生局２１０〜２１７から情報を受信する。
【００５２】
デジタルソース６０４はプレイバックソースであり、プレイバックソースは、例えばインターネットからの音声ストリーミング、ホームネットワークまたはレガシーデジタルディスクプレーヤーからのアーカイブ（保存）された音楽を含み得る。デジタルソース６０４のフォーマットは、例えば、ＭＰ３、ＡＣ３、ＡＡＣ、２４ｂ／１９２ｋＨｚのＬＰＣＭまたはＦＬＡＣであってよい。デジタルソース６０４は、仮想コーダソフトウェアを通じて可能性のある全てのソースフォーマットを再生することができるが、これについては以下にさらに詳細に説明する。
【００５３】
制御局制御ソフトウェア６０１は、構成ルーチンを実装し、プレイバック実行ファイルをコンパイルし、セットアップルーチンを実装し、デジタルプレイバックストリームを一斉送信し、制御局ハンドオーバルーチンを制御し、プレイバック制御を以下にさらに詳細に説明する方法で実装する。
【００５４】
マルチメディアドライバ６０５により、認知ラウドスピーカの概念をビデオストリーム等の他の媒体データの再生に適用することができる。マルチメディアドライバ６０５とともに使用するために、同期回路６０３が提供される。認知ラウドスピーカシステム２００は、他の媒体（たいがいはビデオストリーム）と併用することが可能である。しかし、信号処理時間及び音声チャネルごとの配置遅延に対処するために、多少の遅延が生じる。アクティブ制御局２０１は、全音声チャネルを、遅延が最長のチャネルに対して待たせることによって、音声チャネルの全てを同期させることができる。これは、各チャネルの出力を相応に遅延させることによって達成される。アクティブ制御局２０１は、音源にどのくらいの遅延が課されるかに関する情報を有しているので、この遅延を、プレイバックコンテンツが同期されるように、他のコンテンツストリーム（例えばビデオストリーム等）に加える必要もある。同期回路６０３は、この必要な遅延を他のコンテンツストリームに導入する。
【００５５】
制御局２０１〜２０３のいずれも、ＳＰＳ２１０〜２１７を駆動することができる。しかし、これらの制御局２０１〜２０３のうちの１つのみが所与の時間にアクティブであり得る。制御局２０１〜２０３の調整は、ＣＳハンドオーバプロセス２０５を通じて実施され、これについては以下にさらに詳細に説明する。
【００５６】
アクティブ制御局２０１は、例えば、テレビ受像機、Ａ／Ｖプロセッサ（電力増幅または物理的な接続が必要とされない）、セットトップボックス、パソコン、ネットワーク化されたホームエンターテインメントクライアントまたは個人向け娯楽機器であってよい。
【００５７】
アクティブ制御局２０１によって実装される一般的な機能には、以下のものが含まれる。制御局２０１は、ＳＰＳ２１０〜２１７の構成及びセットアップを制御し得る。制御局２０１は、ＣＳハンドオーバプロセスを通じて「アクティブ制御局」の役割を獲得し、委譲し、放棄し得る。制御局２０１は、導体クロック信号を用いてプレイバックシステムの同期ポイントになる。制御局２０１は、デジタルプレイバックデータをＳＰＳ２１０〜２１７に中継する。制御局２０１は、プレイバックフォーマットトランスコーディングを実行する。制御局２０１はまた、ソース選択、音量、等化、停止、一時停止、早送り、電源投入及びシャットダウンを含むプレイバックシステムの様々な基本動作機能を制御する。
【００５８】
図７は、本発明の一実施形態に係るＳＰＳ２１０のブロック図である。ＳＰＳ２１０〜２１７は、説明されている実施形態のＳＰＳ２１０と実質的に同一である。ＳＰＳ２１０は、音声発生論理回路（ＳＰＬ）２２１と、電力増幅器２２２及び２２３と、ラウドスピーカ２２４〜２２５とを含む。ＳＰＬ２２１は送受信機７００を含み、送受信機７００は図３に関連して上述した送受信機３００と同一である。ＳＰＬ２２１はまた、ローカルファームウェア７０１と、プレイバック実行ファイル７０２と、プレイバックストリームバッファ７０３と、プレイバックプロセッサ７０４と、出力サンプルバッファ７０５と、プレイバックタイミング制御７０６と、サンプル出力チャネル７０１〜７０８と、デジタル／アナログ変換器７１０〜７１１とを含む。
【００５９】
説明されている例に従って、ＳＰＳ２１０は、単一のエンクロージャ内でラウドスピーカ２２４〜２２５に関連付けられている。異なる周波数範囲に対して複数の電力増幅器２２２〜２２３が提供される。例えば、電力増幅器２２２は低周波アナログ信号を駆動することができるが。電力増幅器２２３は高周波アナログ信号を駆動することができる。以下に説明するように、ＳＰＬ２２１は、チャネル識別、配置（プレースメント）情報、装置特性（等化要件、計算能力等）、リアルタイムオペレーティングシステム（ＲＴＳ）、ＡＰＩライブラリ及びローカル信号処理コードのための不揮発性記憶装置を提供する。さらに、ＳＰＬ２２１は、アクティブ制御局２０１の導体クロックに同期し、アクティブ制御局２０１から構成情報を受け入れる。ＳＰＬ２２１はまた、アクティブ制御局２０１と通信してプレイバックシステムをセットアップし、アクティブ制御局２０１から一斉送信されるプレイバックストリームのためのＶ（記憶領域）を提供し、プレイバック実行ファイル７０２からの命令によりプレイバックストリームを復号する。ＳＰＬ２２１はまた、クロスオーバ、補償及び等化のためのローカル信号処理を実行し、出力信号をバッファに格納し、同期出力サンプルを生成し、出力サンプルのデジタル−アナログ変換を実行し、アナログ信号を電力増幅器２２２〜２２３へ駆動する。
【００６０】
通常、送受信機７００は、アクティブ制御局２０１への通信リンクとして動作する。送受信機７００は、ＳＰＳ２１０がプレイバック同期スレーブとして動作するように、アクティブ制御局２０１の導体クロック信号に位相固定される。送受信機７００は、アクティブ制御局２０１から、構成データ、プレイバック実行ファイル情報及び／またはデジタルプレイバックストリームを受信する。トランシーバ７００はまた、構成ルーチン及びセットアップルーチン中に情報をアクティブ制御局２０１に送信するが、これについては以下にさらに詳細に説明する。
【００６１】
ファームウェア７０１は、ＳＰＳ２１０の不揮発性実行ファイル及び情報を含む。一実施形態に従って、ファームウェア７０１は、標準化された部分と、メーカー定義部分と、ユーザ定義部分とを含む。
【００６２】
ファームウェア７０１の標準化された部分は、ＳＰＳ２１０の動作を制御するためのリアルタイムオペレーティングシステム（ＲＴＯＳ）と、プレイバック実行ファイル７０２をコンパイルするために使用されるアプリケーションプログラムインタフェース（ＡＰＩ）とを含む。ＳＰＳ２１０を異なる命令セットアーキテクチャ（ＩＳＡ）に構築できることが可能であるので、標準化されたＡＰＩがあれば、任意の特定のアーキテクチャへの依存を取り除くであろう。プレイバック実行ファイル７０２は、関連付けられた記憶要件を最小限に抑えかつセットアップルーチンを実行するために要する時間を最小限に抑えるのにきわめて効率的である。
【００６３】
ファームウェア７０１のメーカー定義部分は、ＳＰＳ固有信号処理用の実行ファイルを含み、以下の情報、すなわち、プレイバックプロセッサ７０４のサイクル時間、ＡＰＩによって消費されるサイクル数、ＳＰＳ固有信号処理によって消費されるサイクル数及びＳＰＳの周波数範囲（例えば、ＳＰＳはサブウーファーであってよい）を維持するための手段を含む。
【００６４】
ファームウェア７１０のユーザ定義部分は、プレイバックチャネル識別、ＳＰＳ２１０の配置情報及び室内音響情報を含む。この情報は、認知ラウドスピーカシステム２００が電源投入されているときに、セットアップルーチン中にアクティブ制御局２１０に転送される。この情報はまた、制御局ハンドオーバプロセス２０５中に次のアクティブ制御局に渡される。
【００６５】
ファームウェア７０１は、アクティブ制御局２０１によって実装される構成ルーチンを通して更新することができ、これについては以下にさらに詳細に説明する。
【００６６】
プレイバック実行ファイル７０２は、アクティブ制御局２０１から受信されるプレイバックストリームを復号するためにＳＰＳ２１０によって使用されるソフトウェアオブジェクトである。プレイバック実行ファイル７０２は、（ＳＰＳ２１０〜２１７のそれぞれから受信される）以下の入力、すなわち、復号アルゴリズム、チャネル所有権、各ＳＰＳの能力（例えば、メインステレオチャネルの１９２ｋＨｚサンプリングレート及び他のチャネルの４８ｋＨｚサンプリングレート）、各チャネルの感度、室内音響の等化要件、システムレベル同期の遅延要件、及びローカル信号処理のためのエントリポイント（すなわち、ローカル信号処理プログラムがプレイバック実行ファイル７０２またはローカル信号処理ＡＰＩに統合されるべき場所）に基づき、アクティブ制御局２０１によってコンパイルされる。別の実施形態では、ＳＰＳ２１０の不揮発性記憶装置を用いて共通のプレイバック実行ファイルを記憶することができ、共通のプレイバック実行ファイルはセットアッププロセス中にプレイバック実行ファイル７０２にロードされ、それによってセットアッププロセスを加速することができる。
【００６７】
各ＳＰＳに対するプレイバック実行ファイル７０２は、異なっていてよい。アクティブ制御局２０１は、セットアッププロセス（後述）中にプレイバック実行ファイル７０２を各ＳＰＳにダウンロードする。各ＳＰＳは、出力サンプルに対して独自のローカル信号処理を実行することができる。ＳＰＳ２１０は、セットアッププロセス中に、その信号処理を実行するために要した時間をアクティブ制御局２０１に報告する。アクティブ制御局２０１は、信号処理のタイミング要件を収集し、プレイバックチャネルの全てが同期されるように各ＳＰＳ内で追加される必要がある遅延を計算する。アクティブ制御局２０１は、セットアッププロセスの一部として各ＳＰＳに遅延要件を送信することになる。
【００６８】
認知ラウドスピーカシステム２００は、プレイバックストリームの構文（シンタックス）を定義しない。（プレイバックストリームを送信する）アクティブ制御局２０１は、プレイバックストリームを復号するためにＳＰＳによって実行され得るプレイバック実行ファイル７０２をコンパイルし、各サンプルに対する計算をタイミング良く完了しなければならない。プレイバック実行ファイル７０２の１つの形態は仮想デコーダである。認知ラウドスピーカシステム２００は、高度にプログラム可能なシステムである。各制御局設計者は、自身の製品を差別化するために、独自のプレイバック実行ファイル及びプレイバックストリームを開発することが可能である。他方、一部の制御局設計者は、汎用のプレイバック実行ファイル及びプレイバックストリームフォーマットを開発することができる。このセットアップにより、このシステムにおいてソフトウェア変換だけで任意のデジタル音声フォーマットを再生することができる。これは、ソフトウェア仮想化に幾分か似ている。
【００６９】
これを行う理由はいくつかある。第１に、ユーザはコンテンツのフォーマットを気にしたり、所有する装置が時代遅れになることを心配したり必要がない。さらに、ソフトウェアコーダを販売（ＩＰライセンス供与）する費用は、ハードウェアコーダを販売するよりもはるかに安価である。
【００７０】
プレイバックストリームを送信する前に、アクティブ制御局２０１は、プレイバック実行ファイル７０２をセットアップし、ＳＰＳ２１０〜２１７の全てを同期させる必要がある。プレイバックストリームの１コピーのみがアクティブ制御局２０１から一斉送信される。プレイバックストリームは、送受信機７００によって受信され、プレイバックストリームバッファ７０３に転送される。プレイバックストリームバッファ７０３は、その後、プレイバックストリームをプレイバックプロセッサ７０４に送信する。各ＳＰＳ２１０〜２１７内のプレイバックプロセッサ７０４は、プレイバックストリームバッファ７０３から受信されたプレイバックストリームを処理するために、自身のバージョンのプレイバック実行ファイル７０２及びローカル信号処理コードを実行する。プレイバックプロセッサ７０４はプレイバックストリームをデジタル出力サンプルに変換し、デジタル出力サンプルは出力サンプルバッファ７０５内に格納される。プレイバックプロセッサ７０４はまた、（アクティブ制御局２０１によって送信される情報に応えて、）以下のＳＰＳ動作、すなわち、電源オン、スリープ、シャットダウン、アクティブＣＳへの同期、セットアップルーチン、構成ルーチン、プレイバックストリーム処理及びプレイバック制御をサポートするために、単純なＲＴＯＳを実行する。
【００７１】
プレイバックプロセッサ７０４のための可能なアーキテクチャには、乗加算パイプラインを備えたＲＩＳＣコアと、命令用及びデータ用に分割されたＲＡＭを持つハーバードアーキテクチャとが含まれる。一実施形態に従って、プレイバックプロセッサ７０４は、２５０ＭＨｚ〜２ＧＨｚのサイクルタイムで動作し、導体クロック及びサンプリングクロックに非同期にラン（実行）する。
【００７２】
出力サンプルバッファ７０５は、プレイバックプロセッサ７０４によって提供される出力サンプルを一時的に格納するので、全てのチャネル（例えばＳＰＳ２１０〜２１７）からの再生を同期させることができる。プレイバックプロセッサ７０４は、プレイバックプロセッサ７０４のクロック領域内の出力サンプルバッファ７０５に書き込みを行う。出力サンプルバッファ７０５は、或るサンプルクロック周波数で出力チャネル７０７〜７０８に読み出される。デジタルクロスオーバ機能を実装するために、各サンプルリングポイントにおいて２つ以上のサンプルの書き込みまたは読み出しを行うことができる。サンプル出力チャネル７０７〜７０８は、コンフィギュラブル（設定で変えられる）である。サンプル出力チャネル７０７〜７０８は、Ｄ／Ａ変換器７１０〜７１１を駆動する。一実施形態に従って、出力サンプルバッファ７０５は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）装置によって実装されることができる。
【００７３】
Ｄ／Ａ変換器７１０〜７１１は、認知ラウドスピーカシステム２００内でデジタル−アナログ変換のみを行う。Ｄ／Ａ変換器７１０〜７１１は、費用／性能の差別化を達成するように様々な方法で実装されることができる。例えば、低コスト単一チップＳＰＳ実装のために、低サンプリングクロック周波数の、組み込み単独出力チャネル（Ｄ／Ａ変換器）を用いることができる。あるいは、ハイエンドラウドスピーカのために、ドライバ装置ごとに、高解像度、高サンプリングレート及び低雑音のＤ／Ａ変換器を用いることができる。
【００７４】
電力増幅器２２２〜２２３は、それぞれＤ／Ａ変換器７１０〜７１１のアナログ出力に結合される。電力増幅器２２２〜２２３は、プレイバック信号経路内の唯一のアナログ回路である。デジタルソースのための最良の音質を得るために、デジタル領域とアナログ領域との間での変換の数を最小限に抑えることが重要であることに留意されたい。したがって、この意味では、認知ラウドスピーカシステム２００は最適であり、その理由は、このシステム２００は１回のＤ／Ａ変換で任意のデジタルソースを再生することができるためである。
【００７５】
電力増幅器２２２〜２２３は、ラウドスピーカ２２４〜２２５をそれぞれ駆動する。電力増幅器２２２〜２２３は、性能及び費用についてＳＰＳを最適化するために、ラウドスピーカ２２４〜２２５と関連して設計される。認知ラウドスピーカシステム２００は広い設計空間を提供し、それにより、ラウドスピーカ及び家庭用電化製品のメーカは、性能及び／またはコストに対して高度に最適化されるシステムを設計することができる。
【００７６】
図８は、本発明の一実施形態に係る認知ラウドスピーカシステム２００の制御局２０１〜２０２とＳＰＳ２１０〜２１７との間で通信するために用いられるメッセージユニット８００のブロック図である。認知ラウドスピーカシステム２００は、以下の通信モデル、すなわち、制御局から１つのＳＰＳへの２地点間送信と、ＳＰＳから制御局への２地点間送信と、制御局から複数のＳＰＳへの一斉送信とを実装する。これらの通信は、メッセージユニット８００を通じて行われる。３つの通信モデル全てに関して、通信の最初のメッセージユニットは制御局によって開始される。メッセージユニット８００の枠内で、同期層、エラー訂正層、プロトコル層及びより高いアプリケーション層が構築される。
【００７７】
メッセージユニット８００は、固定フォーマットパケットである。説明されている例では、メッセージユニット８００は、２５６ビットの幅（すなわちm_unit[255:0]）を有する。メッセージユニット８００のビットは、以下のように定義される。
【００７８】
メッセージユニットビットm_unit[0]は、メッセージユニット８００の始まりを示すビーコンである。該ビーコンは、位相同期のための擬似コードシーケンスによって変調され、サンプルクロック信号の始まりを識別する。
【００７９】
メッセージユニットビットm_unit[1:31]は、メッセージユニット８００のコンテキストを定義するコマンドを識別する。メッセージユニットビットm_unit[1:31]は、常に制御局によって生成される。
【００８０】
メッセージユニットビットm_unit[32:79]は、データフローの方向がアクティブ制御局２０１からＳＳＰ２１０〜２１７に流れるときに、同期情報または同期データを搬送する第１のメッセージフィールドを表す。データフローの方向が（衝突を回避するために）ＳＰＳからアクティブ制御局２０１に流れるときには、この第１のメッセージフィールドは空／サイレントである。
【００８１】
メッセージユニットビットm_unit[80:207]は、データフローの方向がアクティブ制御局２０１からＳＰＳ２１０〜２１７に流れるときに、同期情報または同期データを搬送する第２のメッセージフィールドを表す。データフローの方向がＳＰＳからアクティブ制御局２０１に流れるときには、この第２のメッセージフィールドは同期情報または同期データを搬送する。
【００８２】
メッセージユニットビットm_unit[208:255]は、データフローの方向がアクティブ制御局からＳＰＳ２１０〜２１７に流れるときに、同期情報または同期データを搬送する第３のメッセージフィールドを表す。データフローの方向が（衝突を回避するために）ＳＰＳからアクティブ制御局２０１に流れるときには、この第３のメッセージフィールドは空／サイレントである。
【００８３】
図９Ａ、図９Ｂ、図９Ｃ及び図９Ｄは、本発明の一実施形態に従って、メッセージユニット８００によって実装される様々なメッセージの詳細な説明を提供する表を示す。
【００８４】
ここで、認知ラウドスピーカシステム２００のための構成ルーチンについて説明する。構成ルーチンは、以下の理由、すなわち、新しいシステムセットアップが必要である、プレイバックシステムへのＳＰＳの追加または削除が必要である、ＳＰＳの配置の変更が必要である、またはＳＰＳのファームウェアの更新が必要である、のうちの１若しくは複数のために、ＳＰＳ２１０〜２１７に格納された不揮発性データを変更するために用いられるプロセスである。構成プロセスは、アクティブ制御局２０１と１つのＳＰＳとの２地点間通信を含む。ＳＰＳにおいて構成を有効（イネーブル）／無効（ディセーブル）にするために或るメカニズムが提供され、それによって、ＳＰＳが予期しない形で構成されないようにする。このメカニズムは、以下にさらに詳細に説明するように、ＳＰＳ上のモード設定スイッチ、または無線インタフェースプロトコルを含むことができる。
【００８５】
通常は、ベンダー／メーカー固有の構成と、標準構成とを含む２種類の構成がある。ベンダー／メーカー固有の構成は、例えばファームウェアの更新を行うために用いられる。標準構成のデータには、ＳＰＳチャネルＩＤ、次のＳＰＳチャネルＩＤ、または最後のチャネルインジケータ、プレイバックシステムＩＤ、チャネルの感度（すなわち、信号レベルの関数としての音圧）、第１のチャネルに対するＳＰＳの相対座標及び、ＳＰＳの音響環境が含まれる。
【００８６】
図１０は、本発明の一実施形態に係る、認知ラウドスピーカシステム２００によって実装される構成ルーチン１０００の流れ図である。ステップ１００１では、構成プロセスは、（例えばＳＰＳ上でスイッチを切り替えることによって）ＳＰＳ内で有効にされる。ステップ１００１では、１つのＳＰＳのみが有効にされる。
【００８７】
ステップ１００２では、アクティブ制御局２０１は、「sync_to_CS」メッセージユニットを送信する。図９Ａによって示されているように、「sync_to_CS」メッセージユニットは、メッセージユニットの３つのメッセージフィールドm_unit[32:255]においてアクティブ制御局２０１によって駆動される同期データ（「sync_data」）を含む。このメッセージは、一定期間にわたってアクティブ制御局２０１によって繰り返し一斉送信され、それによって、有効化済みＳＰＳをアクティブ制御局２０１に同期させる。プレイバックシステムに組み込まれていない有効化済みＳＰＳは、「sync_to_CS」メッセージユニットを受信すると、アクティブ制御局２０１と同期しようと試みることになる。アクティブ制御局２０１は、無線環境を調査し、この時点で別の近傍の認知ラウドスピーカシステムとの干渉を回避するために周波数ホッピング計画及びデューティサイクルを選択することができることに留意されたい（例えば、図５を参照）。ステップ１００３では、有効化済みＳＰＳは、アクティブ制御局２０１に同期される。
【００８８】
ステップ１００４では、アクティブ制御局２０１は、「set_config_on」メッセージユニットを送信する。図９Ｂによって示されているように、「set_config_on」メッセージユニットは、３つのメッセージフィールドm_unit[32:255]においてアクティブ制御局２０１によって駆動される「sync_data」を含む。「set_config_on」メッセージユニットを受信すると、ＳＰＳは構成状態に設定される（ステップ１００５）。本実施形態では、複数のＳＰＳのうちの１つのみにおいて構成メカニズムが有効にされると仮定する。このときに、当該ＳＰＳは、制御局から構成メッセージを受信する準備ができている。
【００８９】
上述したように、ＳＰＳを手動で選択することができる。例えば、ユーザは、左右のチャネルスピーカをより良好なスピーカに置き換えることができる。この場合、ユーザにとって必要なのは、１対の新しいスピーカを構成することだけである。別の例では、ユーザが５．１システムから７．１システムへの増加を希望する場合、ユーザは隣接するチャネルだけでなく新しいスピーカも構成する必要がある。
【００９０】
ステップ１００６では、アクティブ制御局２０１は、１若しくは複数の「std_config_msg」メッセージユニット及び／または１若しくは複数の「vsp_config_msg」メッセージユニットを送信する。図９Ｂによって示されているように、各「std_config_msg」メッセージユニットは、３つのメッセージフィールドm_unit[32:255]において標準構成メッセージを含む。この標準構成メッセージには、チャネルＩＤ、プレイバックシステムＩＤ、制御局がプレイバックシステム内において各ＳＰＳのアドレスを指定することを可能にするためのリンクリスト、及びプレイバックシステム内でのＳＰＳの座標を含む重要な構成データが含まれる。図９Ｂによって示されているように、各「vsp_config_msg」メッセージユニットは、ベンダー固有の構成メッセージを含む。このベンダー固有の構成メッセージは、例えば、ＳＰＳのためのファームウェア更新を含み得る。説明されている実施形態では、メッセージフォーマット、コンテンツ及び関連ドライバソフトウェアは、ＳＰＳベンダーによって完全に定義されていることに留意されたい。
【００９１】
ステップ１００７では、ＳＰＳは、受信した構成メッセージユニットをバッファに格納する。ステップ１００８では、アクティブ制御局２０１は、「commit_config」メッセージユニットを有効化済みＳＰＳに送信する。「commit_config」メッセージユニットは、３つのメッセージフィールドm_unit[32:255]において制御局によって駆動されるsync_dataを含む。「commit_config」メッセージユニットの受信に応えて、有効化済みＳＰＳは、バッファに格納された構成データを不揮発性記憶装置内にコミットする（入れる）（ステップ１００９）。
【００９２】
ステップ１０１０では、アクティブ制御局２０１は、複数の「sync_to_SPS」メッセージユニットを有効化済みＳＰＳに送信する。「sync_to_SPS」メッセージユニットの機能は、アクティブ制御局２０１を有効化済みＳＰＳに同期させることである。この「sync_to_SPS」メッセージユニットは、第２のメッセージフィールド（m_unit[32:79]）においてアクティブ制御局２０１によって駆動されるsync_dataを含むが、第１及び第３のメッセージフィールド（m_unit[1:31]及びm_unit[208:255]）においてはサイレント／空である。「sync_to_SPS」メッセージユニットを処理するために、複数のＳＰＳのうちの１つのみが有効にされる。このＳＰＳは、アクティブ制御局２０１によって送信される「sync_to_SPS」メッセージユニットの受信に応えて、戻り「sync_to_SPS」メッセージユニットをアクティブ制御局２０１に駆動する（ステップ１０１１）。この「sync_to_SPS」メッセージユニットは、第２のメッセージフィールド（m_unit[32:79]）においてアクティブ制御局２０１によって駆動されるsync_dataを含むが、第１及び第３のメッセージフィールド（m_unit[1:31]及びm_unit[208: 255]）においてはサイレント／空である。アクティブ制御局２０１は、この戻り「sync_to_SPS」メッセージユニットを検出し、この信号への同期を試みる（ステップ１０１２）。アクティブ制御局２０１は「sync_to_SPS」メッセージを送信し続けることになり、ＳＰＳはアクティブ制御局２０１がＳＰＳに同期されるまで「sync_to_SPS」メッセージを戻し続けることになることに留意されたい。
【００９３】
ステップ１０１３では、アクティブ制御局２０１は、「commit_status_chk」メッセージユニットを有効化済みＳＰＳに送信する。「commit_status_chk」メッセージユニットは、有効化済みＳＰＳのコミットステータス（つまり、以前にバッファに格納された構成メッセージが有効化済みＳＰＳの不揮発性記憶装置にコミットされているかどうか）をポーリングするために、アクティブ制御局２０１によって使用される。「commit_status_chk」メッセージユニットを受信すると、ＳＰＳは、「commit_status_chk」メッセージユニットを制御局に戻し、この戻りメッセージユニットは、コミットステータス（第２のメッセージフィールド（m_unit[80:207]）における「行われた（done）」または「行われていない（not done）」）を含む。
【００９４】
アクティブ制御局２０１は、有効化済みＳＰＳによって送信されたコミットステータスを受信する（ステップ１０１５）。アクティブ制御局２０１によって受信されたコミットステータスが「行われていない」の場合には、処理はステップ１０１３に戻る。アクティブ制御局２０１によって受信されたコミットステータスが「行われた」であるが、より多くの処理されるべき構成データがある場合には、処理はステップ１００６に戻り、追加の構成情報が有効化済みＳＰＳに提供される。アクティブ制御局２０１によって受信されたコミットステータスが「行われた」であり、処理されるべき構成データがこれ以上ない場合には、アクティブ制御局２０１は、「config_done」メッセージユニットを有効化済みＳＰＳに送信する。「config_done」メッセージユニットに応えて、ＳＰＳは構成ルーチンを終了し（ステップ１０１６）、このＳＰＳのための構成モードを無効にし（ステップ１０１７）、それによってこのＳＰＳのための構成プロセスを完了する。或る特定の実施形態では、ＳＰＳは、「config_done」メッセージユニットを受信するとインジケータライトまたはインジケータトーンを有効にし、それによってユーザにＳＰＳ上のモード設定スイッチを切り替えるように指示し、それによってＳＰＳのための構成モードを無効にすることができる。構成プロセスは、例えば新しいシステムのセットアップや既存のシステムの更新等のために、必要に応じて実行される。
【００９５】
構成ルーチンが完了した後、セットアップルーチンをランすることができる。ここで、セットアップルーチンについて説明する。アクティブ制御局２０１は、システム２０１の電源投入時及びアクティブ制御局が切り替えられて新しいアクティブ制御局がプレイバック実行ファイル７０２を更新する必要があるたびに、セットアップルーチンを実行する。
【００９６】
通常、セットアップルーチンは、各ＳＰＳに対して種々の情報を識別するために使用され、そのような情報として、チャネルＩＤ、次のチャネルＩＤ、プレイバックシステムＩＤ、チャネルの感度、プレイバックシステム内でのＳＰＳの座標、ＳＰＳの音響環境、ＳＰＳの機能（例えば、解像度、実行パイプライン速度及びソフトウェア機能プロファイル）、ＳＰＳのローカル信号処理のタイミング要件が挙げられる。この情報と、各利用可能なプレイバックチャネルにおいてソースを復号する上での計算要件とに基づいて、アクティブ制御局２０１は、各チャネル（ＳＰＳ）に対して種々のデータを生成し、そのようなデータとして、プレイバック実行ファイル７０２、全てのプレイバックチャネルを同期できるようにするバッファ格納要件、ＳＰＳの誤配置を補償するための等化（レベル及びタイミング）、プレイバックシステムを同期させるための再生されるべきサンプルに対する遅延要件が挙げられる。アクティブ制御局２０１は、次に、２地点間接続を確立して上記データを各ＳＰＳにダウンロードすることになる。このデータを各ＳＰＳにダウンロードした後、アクティブ制御局２０１は、プレイバックシステムを準備完了状態に設定することになるので、ＳＰＳは、その後にアクティブ制御局２０１から一斉送信されるプレイバックストリームを復号することができる。
【００９７】
アクティブ制御局内での変更に起因してセットアップルーチンが実行される場合、新しいアクティブ制御局は、各ＳＰＳのプレイバック実行ファイル７０２をコンパイルし直す必要がある場合があることに留意されたい。アクティブ制御局から別の制御局へのハンドオーバがある（例えば、制御局２０２が新しいアクティブ制御局になる）場合には、実行状態情報が以前のアクティブ制御局から新しいアクティブ制御局に送信される。この実行状態情報は、認知ラウドスピーカシステム２００の現在のプログラム状態を含む。新しいアクティブ制御局は、この実行状態情報及び新しい復号要件に基づいてセットアップルーチンが実行されなければならないかどうかを決定することになる。
【００９８】
図１１は、本発明の一実施形態に従って、制御局及びＳＰＳによって実装されるセットアップルーチンを示す流れ図１１００である。セットアップルーチンが起動された後（ステップ１１０１）、ＣＳは「sync_to_CS」メッセージユニットを送信する（ステップ１１０２）ので、全ＳＰＳがアクティブ制御局に同期される。アクティブ制御局は次に、「set_SPS_sleep」メッセージユニットをＳＰＳに送信する（ステップ１１０３）。図９Ｂによって示されているように、「set_SPS_sleep」メッセージユニットは、第１及び第３のメッセージフィールド（m_unit[32:39]及びm_unit[208:251]）においてアクティブ制御局によって駆動されるsync_dataと、第２のメッセージフィールド（m_nit[80:207]）においてSPS_channel識別子とを含む。ステップ１１０３中に送信された「set_SPS_sleep」メッセージユニットのSPS_channel識別子は、ＳＰＳ２１０〜２１７の全てを指定する。この「set_SPS_sleep」メッセージユニットの検出に応えて、ＳＰＳ２１０〜２１７の全てがスリープに設定される。いったんスリープ状態になると、ＳＰＳは、アクティブ制御局２０１からスリープ解除（wake up）メッセージユニットを受信するまで、非アクティブのままとなる。
【００９９】
ステップ１１０４では、変数「next_SPS」が、channel_0に等しい値に設定され、ここで、channel_0は、システム２００（例えば、左前方のスピーカチャネルとして動作するＳＰＳ２１０）の所定のＳＰＳ（すなわちデフォルトチャネル）を識別する。ステップ１１０５では、変数「current_SPS」が、「next_SPS」値（つまり、channel_0）に等しい値に設定される。ステップ１１０６では、アクティブ制御局２０１が「set_SPS_awake」メッセージユニットを送信する。図９ｃに示されているように、「set_SPS_awake」メッセージユニットは、第１及び第３のメッセージフィールド（m_unit[32:79]及びm_unit[208:255]）においてアクティブ制御局によって駆動されるsync_dataと、第２のメッセージフィールド（m_unit[80:207]）においてSPS_channel識別子とを含む。ステップ１１０６中に送信された「set_SPS_awake」メッセージユニットのSPS_channel識別子は、「current_SPS」値によって識別されるＳＰＳ（例えばＳＰＳ２１０）を指定する。「set_SPS_awake」メッセージユニットの検出に応えて、識別されたＳＰＳ２１０は呼び起され、このＳＰＳのためのセットアッププロセスを続行する。
【０１００】
スリープ解除時、ＳＰＳ２１０は「sync_to_SPS」メッセージユニットを送信し、アクティブ制御局２０１を識別されたＳＰＳ２１１と同期させる（ステップ１１０７）。識別されたＳＰＳ２１０は、次に、「setup_msg_2CS」メッセージユニットをＣＳに送信する（ステップ１１０８）。図９Ｃによって示されているように、「setup_msg_2CS」メッセージユニットは、第１及び第３のメッセージフィールドにおいてサイレントであり、第２のメッセージフィールドにおいてセットアップデータを含む。セットアップデータは、ＳＰＳに関連するプロファイル情報を含み、例えば、性能、サンプリングレート、解像度、ローカル信号処理に要する時間及びＡＰＩバージョンが含まれる。セットアップデータはまた、プレイバックシステムＩＤ、ＳＰＳのチャネルＩＤ、次のＳＰＳのチャネルＩＤ、ＳＰＳがシステムの最後のＳＰＳであるかどうかの表示も含む。全セットアップデータが識別されたＳＰＳ２１０からアクティブ制御局２０１に送信されるまで、ステップ１１０９からステップ１１０８に戻るループ（繰り返し）処理が行われる。識別されたＳＰＳ２１０の全セットアップデータがアクティブ制御局２０１に送信された後（ステップ１１０９、Yes分岐）、アクティブ制御局２０１は「set_SPS_sleep」メッセージユニットを識別されたＳＰＳ２１０に送信する。この「set_SPS_sleep」は、「current_SPS」値（例えば、ＳＰＳ２１０）に関連するチャネルを識別するSPS_channel識別子を含む。「set_SPS_sleep」メッセージの検出に応えて、このＳＰＳ２１０はスリープに設定される。
【０１０１】
ステップ１１０８中に取り出されたセットアップデータから、アクティブ制御局２０１は、変数「current_SPS」によって識別されたＳＰＳがシステム２００の最後のチャネルを表すかどうかを判定する（ステップ１１１１）。否の場合、処理はステップ１１０５に戻り、ここで変数「current_SPS」はステップ１１０８中に取り出された変数「next_SPS」に等しい値に設定される。その後、ステップ１１０６〜１１１０が繰り返され、次のＳＰＳのセットアップデータが上述した方法でアクティブ制御局２０１に提供される。
【０１０２】
全ＳＰＳ２１０〜２１７のセットアップデータがアクティブ制御局２０１に送信されたとき、この制御局２０１は、全チャネル／ＳＰＳのためのプレイバック実行ファイル７０２をコンパイルする（ステップ１１１２）。このステップでは、アクティブ制御局２０１は、プレイバックストリームの再生が全ＳＰＳ２１０〜２１７内で同期されるように、種々のＳＰＳによって導入される遅延を決定する。ステップ１１１３では、変数「next_SPS」は再びchannel_0に等しい値に設定され、ここで、channel_0はＳＰＳ２１０を識別する。ステップ１１１４では、変数「current_SPS」は「next_SPS」値に等しい値に設定される。ステップ１１１５では、アクティブ制御局２０１は「set_SPS_awake」メッセージユニットを送信することにより、「current_SPS」値によって識別されるＳＰＳ（例えばＳＰＳ２１０）のスリープ状態を解除する。「set_SPS_awake」メッセージの検出に応えて、識別されたＳＰＳ２１０はスリープ解除され、このＳＰＳのためのセットアッププロセスを継続する。
【０１０３】
現在のＳＰＳ２１０のスリープ解除後に、アクティブ制御局２０１は「setup_msg_2SPS」メッセージユニットを現在のＳＰＳに送信する（ステップ１１１６）。図９Ｃによって示されているように、「setup_msg_2CS」メッセージユニットは、第１、第２及び第３のメッセージフィールド（m_unit[32:255]）においてセットアップデータを含む。セットアップデータは、サンプリングクロックレート、サンプルの解像度、サンプルのタイミング（サンプルクロックサイクルの遅延）及びプレイバックストリームを復号するための実行ファイルオブジェクトを含む。
【０１０４】
全セットアップデータがアクティブ制御局２０１から現在のＳＰＳ２１０に送信されるまで、ステップ１１１７からステップ１１１６に戻るループ（繰り返し）処理が行われる。全セットアップデータがアクティブ制御局２０１から現在のＳＰＳ２１０に送信された後（ステップ１１１７、Yes分岐）、アクティブ制御局は「set_SPS_sleep」メッセージユニットを現在のＳＰＳ２１０に送信する（ステップ１１１８）。この「set_SPS_sleep」は、「current_SPS」値に関連付けられたチャネル（例えばＳＰＳ２１０）を識別するSPS_channel識別子を含む。「set_SPS_sleep」メッセージの検出に応えて、この現在のＳＰＳ２１０はスリープに設定される。
【０１０５】
アクティブ制御局２０１は、変数「current_SPS」によって識別されたＳＰＳがシステム２００の最後のチャネルを表すかどうかを判定する。否の場合、処理はステップ１１１４に戻り、ここで変数「current_SPS」はシステムの次のＳＰＳを識別するために更新される。その後、ステップ１１１５〜１１１８が繰り返され、アクティブ制御局２０１は上述した方法で次のＳＰＳにセットアップデータを提供する。
【０１０６】
アクティブ制御局２０１が、全ＳＰＳ２１０〜２１７のためにセットアップデータを送信したとき、ＣＳは「set_SPS_awake」メッセージユニットを送信する（ステップ１１２０）。ステップ１１２０中に送信された「set_SPS_awake」メッセージユニットのＳＰＳ識別フィールドは、全ＳＰＳ２１０〜２１７を識別する。この「set_SPS_awake」メッセージの検出に応えて、全ＳＰＳ２１０〜２１７はスリープ解除され、それによってシステム２００をプレイバックモードに設定する。この時点でセットアップルーチンは完了する（ステップ１１２１）。
【０１０７】
ここで、制御局ハンドオーバプロセス（これはＣＳハンドオーバ論理回路２０５によって実現される）について説明する。任意の所与の時間に、アクティブ制御局は１つしかない。上述した例では、制御局２０１がアクティブ制御局であると仮定される。他の制御局（例えば制御局２０２）は、アクティブ制御局の役割が移譲されることを要求することができる。これは、制御局ハンドオーバプロセスを通じて達成される。互いに異なる制御局間でのハンドオーバのために必要な通信は、別のチャネル（例えばＷｉＦｉまたはブルーツース）を介して行われる。
【０１０８】
図１２は、本発明の一実施形態に係る制御局ハンドオーバプロセス２０５の流れ図である。ステップ１２０１では、現在のアクティブ制御局２０１と次のアクティブ制御局２０２との間に（例えばＷｉＦｉまたはブルーツースを介して）通信リンクが確立される。次のアクティブ制御局２０２は、次に、アクティブ制御局として後を引き継ぐための要求を送信する（ステップ１２０２）。それに応じて、現在のアクティブ制御局２０１は、プレイバックシステムの動作を一時停止し（ステップ１２０３）、プレイバックシステム状態情報を次のアクティブ制御局２０２に転送し（ステップ１２０４）、「cs_handover」メッセージユニットをＳＰＳ２１０〜２１７に一斉送信する（ステップ１２０５）。図９Ｄによって示されているように、「cs_handover」メッセージユニットは、３つのメッセージフィールド全て（m_unit[31:255]）においてsyncデータを含む。メッセージユニットを誤って復号する可能性が最小限に抑えられることを保証するために、特別なsync_dataパターンが使用される。「cs_handover」メッセージユニットは、現在のアクティブ制御局２０１がその責任を放棄する前に現在のアクティブ制御局２０１によって送信される最後のメッセージである。「cs_handover」メッセージユニットの検出に応えて、ＳＰＳ２１０〜２１７は、同期クロックをリセットし、制御局２０１への同期を再確立し、その後スリープに入ることになる。
【０１０９】
現在のアクティブ制御局２０１は、その後、信号を次のアクティブ制御局２０２に送り、アクティブ制御局として後を引き継ぐように次のアクティブ制御局に指示する（ステップ１２０６）。次のアクティブ制御局は、現在のプレイバックシステム状態と、新しいアクティブ制御局の新しい要件（もしあれば）とに基づいて、プレイバックシステム２００を再起動する方法を決定することになる（ステップ１２０７）。新しいアクティブ制御局２２０は、単にＳＰＳ２１０〜２１７をスリープ解除することが可能である場合がある。代わりに、新しいアクティブ制御局２０２は、図１０に関連して上述したようにプレイバック実行ファイル７０２を再生する必要がある場合がある。
【０１１０】
ここで、プレイバックタイミング制御について説明する。図１３は、ＳＰＬ２２１のブロック図であり、プレイバックタイミング制御論理回路７０６をさらに詳細に示している。プレイバックタイミング制御論理回路７０６は、クロック制御回路１３０２、位相ロックループ１３０３、サンプルクロック発生器１３０４及び遅延論理回路１３０５を含む。
【０１１１】
アクティブ制御局２０１は、「start_sample_clk」メッセージユニットをＳＰＳ２１０〜２１７に送信する。図９Ｄに示されているように、「start_sample_clk」メッセージユニットは、第１のメッセージフィールド（m_unit[32:79]）においてサンプルクロック周波数値と、第２及び第３のメッセージフィールド（m_unit[80:255]）において「sync_data」とを含む。サンプルクロック周波数値は、ＳＰＳ２１０〜２１７内で発生するサンプルロックの周波数を指定する。
【０１１２】
各ＳＰＳ内で、クロック制御回路１３０２は、受信された「start_sample_clk」メッセージユニットを検出する。それに応じて、クロック制御回路１３０２によって、サンプルクロック発生器１３０４は、「start_sample_clk」信号のサンプルクロック周波数値によって指定される周波数を有するサンプルクロック信号を発生させる。サンプルクロック発生器１３０４は、送受信機７００の導体クロック信号を数えることによって、デジタル的にサンプルクロックを発生させる。すなわち、サンプルクロック発生器１３０４は、数えられた導体クロック信号のＭサイクルごとに、サンプルクロックを切り替える。上述したように、送受信機７００の導体クロック信号は、アクティブ制御局２０１内の送受信機６００の導体クロック信号に同期される。図示されている実施形態では、クロック制御回路１３０２は、送受信機７００の導体クロック信号をサンプルクロック発生器１３０４に提供する。
【０１１３】
「start_sample_clk」メッセージユニットの受信に応えて、クロック制御回路１３０２はまた、送受信機７００によって受信された以後のメッセージユニットのビーコンを検出し、サンプルクロック信号をこれらのビーコンに同期させる。このようにして、ＳＰＳ２１０〜２１７の送受信機７００は、アクティブ制御局２０１の送受信機６００に位相ロックされ、さらに、アクティブ制御局２０１から一斉送信されたメッセージユニットのビーコンにコードロックされる。ＳＰＳ２１０〜２１７内のサンプルクロックは同時に開始し、アクティブ制御局２０１とＳＰＳ２１０〜２１７との間の位相ロック機構が導体クロックのクロックドリフトを妨げるので、ひいてはサンプルクックのクロックドリフトも必然的に妨げられる。
【０１１４】
プレイバックシステム同期遅延論理回路１３０５は、サンプルクロック信号に遅延を導入し、それによって遅延サンプルクロック信号を生じさせる。導入される遅延は、サンプルクロック信号のサイクル数に等しい。全ＳＰＳ２１０〜２１７にわたって出力サンプリング（後述）が同期されるように、各ＳＰＳ２１０〜２１７内で特定の遅延サイクル数が個別に選択される。各ＳＰＳによって導入される遅延は、セットアップルーチン中にアクティブ制御局２０１によって確立される。より具体的には、アクティブ制御局２０１から以前にダウンロードされたプレイバック実行ファイル７０２は、遅延論理回路１３０５によって導入される遅延を定義する情報を含む。このようにして、各ＳＰＳ内での出力サンプリングは、サンプルクロックの或るサイクルの一部内に同期している。
【０１１５】
再生を実現するために、アクティブ制御局２０１は、「playback_msg」メッセージユニットをＳＰＳ２１０〜２１７に送信する。全ＳＰＳ２１０〜２１７は、同じ「playback_msg」メッセージユニットを受信する。「playback_msg」の始まりは、所定の擬似ランダムコードから構成されているビーコンを含む。図９ｃに示されているように、「playback_msg」メッセージユニットの３つのメッセージフィールドは、プレイバックデータ（playback material）のコンテンツを含む。プレイバックデータの層及びフォーマットは、プレイバックメッセージ及びプレイバック実行ファイル７０２の上のソフトウェア層によって定義される。上述したように、アクティブ制御局２０１内の送受信機６００及びＳＰＳ２０１〜２１７内の送受信機７００は全て、導体クロック信号の周波数（例えば、説明されている実施形態では２５０ＭＨｚ）で動作する。
【０１１６】
導体クロックは、「playback_msg」メッセージユニットをプレイバックストリームバッファ７０３内にクロックするために使用される。
【０１１７】
ＳＰＳにおいてプレイバックプロセッサクロックを発生させるために、個別のＰＬＬ１３０３が使用される。このクロックは、要求される復号及び信号処理をタイムリーに終了するための演算能力を満たすように調整することができる。説明されている例では、プレイバックプロセッサクロックは、約５００ＭＨｚ〜２ＧＨｚの範囲の周波数を有する。プレイバックプロセッサクロックは、プレイバックストリームバッファ７０３からプレイバックプロセッサ７０４へプレイバックデータをクロックするために使用される。プレイバックプロセッサ７０４は、プレイバックプロセッサクロックに応えて動作する。より具体的には、プレイバックプロセッサ７０４は、ＳＰＳに関連付けられたチャネルのためのデジタルプレイバックデータを抽出するために、「playback_msg」メッセージユニットのメッセージフィールドに含まれるプレイバックデータを処理する。プレイバックプロセッサ７０４は、以前に構成されたプレイバック実行ファイル７０２によって提供された情報に従って動作することに留意されたい。プレイバック実行ファイル７０２は、プレイバックストリームを処理するために使用されるプログラムである。プレイバック実行ファイル７０２及びプレイバックストリームは、完全にフレキシブルかつプログラム可能である。したがって、十分な処理能力及び処理機能を備えた任意のプログラム可能装置を用いて、プレイバックプロセッサ７０４を実装することができる。プレイバックプロセッサ７０４は、ＡＲＭプロセッサ、ＰＰＣ、またはカスタム命令セットプロセッサであってよい。ＣＬＳを何らかの特定の命令セットアーキテクチャに結び付ける必要がないことに留意されたい。したがって、本実施形態がソフトウェア層及びＡＰＩを含むのはそういう理由からである。このソフトウェアインフラストラクチャは、高度にプログラム可能であり、プロセッサアーキテクチャに依存していない。
【０１１８】
プレイバックプロセッサ７０４は、抽出されたプレイバックデータを出力サンプルバッファ７０５に送信する。デジタルプレイバックデータは、プレイバックプロセッサクロックに応えて、出力サンプルバッファ７０５内にラッチされる。プレイバックプロセッサクロックはサンプルクロックより高速であることに留意されたい。プレイバックプロセッサ７０４は、サンプルクロックの１サイクル当たり１サンプルを生成するのに十分なスループットを有する。処理ステップのデータ依存性及び、再生実行ファイルとローカル処理ルーチンとの間でのソフトウェア分割の容易さのおかげで、ユーザは、必要に応じて、ＳＰＳ内でかなりのローカル処理を実行するために信号プロセッサのパイプラインを実装することができる。この場合、ＳＰＳはサンプルクロックの１サイクル当たり１サンプルを生成するが、初期サンプルを作成するために２サンプルクロックサイクル以上掛かることがある。別の実施形態では、プレイバックプロセッサ７０４は、比較的低速で動作するがより多くの計算資源を含む例えばＦＰＧＡ装置等の装置とともに実装されることができる。ＣＬＳ２００は、任意のＳＰＳが、１サンプルクックサイクル当たり１サンプルを生成するスループットを維持できる限り、サンプルを作成するために１サンプルクロックよりも長く掛かることを許容する。出力サンプルバッファ７０５は、全てのチャネルが同期されるように、より高速のＳＰＳを遅延させるのに十分なエントリを提供するように設計される。
【０１１９】
プレイバックデータは、遅延サンプルクロック信号に応えて、出力サンプルバッファ７０５からＤ／Ａ変換器７１０〜７１１を通って転送される。
【０１２０】
図１４は、本発明の一実施形態に係る、認知ラウドスピーカシステム２００のソフトウェアアーキテクチャ１４００を示すブロック図である。
【０１２１】
アクティブ制御局２０１内のソフトウェアアーキテクチャ１４００は、システムプラットホーム１４０１と、構成ドライバ１４０２と、プレイバック実行ファイルコンパイラ１４０３と、仮想コーダ１４０４と、プレイバックストリームジェネレータ１４０５と、プレイバック制御マネージャ１４０６とを含む。システムプラットホーム１４０１は、アクティブ制御局２０１のベンダーによって提供される。制御局ソフトウェアは、このプラットホーム１４０１の上部でランする。
【０１２２】
構成ドライバ１４０２は、ＳＰＳの構成を制御するためにソフトウェアを含む。これは、アクティブ制御局２０１の任意選択の機能である。一実施形態では、構成ドライバ１４０２は標準的な構成を実装しているので、任意の制御局が任意のＳＰＳを構成することができる。別の実施形態では、構成ドライバ１４０２は、ベンダー／メーカー固有の構成を実装することができる。この実施形態では、任意のＳＰＳメーカーによって提供されるソフトウェアを制御局構成マネージャに統合することができるように、ソフトウェアインタフェースが標準化されている。
【０１２３】
プレイバック実行ファイルコンパイラ１４０３は、上述した方法でプレイバックシステムのセットアップルーチン及びハンドオーバルーチンを制御する。プレイバック実行ファイルコンパイラ１４０３は、以下の入力に基づいて、すなわち、セットアップルーチンまたはハンドオーバルーチン中に収集される全ＳＰＳからの構成及び要件、プレイバックシステムの仮想コーダ層及びプレイバックソースフォーマットに基づいて、ＳＰＳ２１０〜２１７のプレイバック実行ファイルをコンパイルする。
【０１２４】
プレイバックストリームジェネレータ１４０５は、ＳＰＳ２１０〜２１７へのプレイバックストリームの配信を制御する。プレイバックストリームジェネレータ１４０５は、プレイバックシステムの仮想コーダ層及びプレイバックソースに基づいて、プレイバックストリームを生成する。
【０１２５】
プレイバック制御マネージャ１４０６は、プレイバックシステムを制御するためのユーザインタフェースを提供する。プレイバック制御マネージャ１４０６は、ユーザ制御を実現するために、ＳＰＳ２１０〜２１７への制御メッセージを生成する。プレイバック実行ファイル内にフックが提供され、これらの要求を処理する。例えば、プレイバック制御マネージャ１４０６は「ctrl_msg」メッセージユニットを送信し、「ctrl_msg」メッセージユニットは、第１及び第３のメッセージフィールドにおいてsync_dataと、第２のメッセージフィールドにおいて制御メッセージとを含む（図９Ｄを参照）。制御メッセージは、プレイバックシステム（プレイバックシステムＩＤ）及びＳＰＳ（ＳＰＳ ＩＤ）を識別する。この制御メッセージは、例えば、プレイバックシステムの音量、タイミング遅延及び他の動作を制御する。標準的な制御メッセージは、例えば、コンテンツインジケータの開始、コンテンツ識別子の終了、音量制御、タイミング遅延制御、スリープ制御及びシャットダウン制御を含むことができる。
【０１２６】
各ＳＰＳ２１０〜２１７内のソフトウェアアーキテクチャ１４００は、出力サンプルバッファソフトウェア１４１１と、実行パイプライン１４１２と、命令セットアーキテクチャ１１３と、ＡＰＩ１４１４と、ＳＰＳリアルタイムオペレーティングシスエム（ＲＴＯＳ）１４１５と、仮想デコーダ１４１６と、ローカル信号処理ソフトウェア１４１７と、プレイバック実行ファイルソフトウェア１４１８と、ＳＰＳファームウェア１４１９と、ＳＰＳ特性及び構成ソフトウェア１４２０とを含む。
【０１２７】
出力サンプルバッファソフトウェア１４１１は、認知ラウドスピーカシステム２００と諸ラウドスピーカとの間のインタフェースを提供する。
【０１２８】
実行パイプライン１４１２は、計算のために、パイプライン、メモリ及びコプロセッサを含む。
【０１２９】
命令セットアーキテクチャ（ＩＳＡ）１４１３は、実行パイプライン１４１２の命令セットである。本発明の一態様に従って、認知ラウドスピーカシステム２００のアーキテクチャは、いかなる特定のＩＳＡにも結び付けられていない。
【０１３０】
認知ラウドスピーカＡＰＩ１４１４は、パワーＰＣ（powerPC）、ＡＲＭ、インテル（Intel）またはカスタムＩＳＡ等の多様なＩＳＡによって認知ラウドスピーカシステム２００を実装することができるようにする標準化ソフトウェアインタフェースである。
【０１３１】
ＳＰＳ ＲＴＯＳ１４１５は、ＳＰＳの構成、セットアップ、再生及びユーザ制御を制御するためのオペレーティングシステムである。
【０１３２】
ローカル信号処理ソフトウェア１４１７は、ＳＰＳに固有であり、補正及び補償、等化及びクロスオーバの各機能を実行する。各ＳＰＳ内のローカル信号処理ソフトウェア１４１７は、アクティブ制御局２０１が全てのチャネルのサンプリングタイミングを同期させることができるように、そのローカル処理の実行時間を、ＳＰＳ特性及び構成ソフトウェア１４２０に知らせる。
【０１３３】
プレイバック実行ファイルソフトウェア１４１８は、セットアップルーチンまたはハンドオーバルーチンの間にアクティブ制御局２０１からダウンロードされるプレイバック実行ファイルを含む。各ＳＰＳは、アクティブ制御局２０１によって一斉送信される１つのプレイバックストリームを処理するために、自身のバージョンのプレイバック実行ファイルを有する。
【０１３４】
ＳＰＳファームウェア１４１９は、ＯＳコード、構成及び特性を記憶するために、不揮発性記憶装置を含む。
【０１３５】
ＳＰＳ特性及び構成ソフトウェア１４２０は、ＣＳがプレイバックシステムをセットアップするために、セットアップルーチン中にアクティブ制御局２０１に転送されるべき情報を含む。以下の情報、すなわち、チャネルＩＤ、次のチャネルＩＤ、プレイバックシステムＩＤ、プレイバックシステム内のＳＰＳの座標、ＳＰＳの機能（例えば、解像度、実行パイプライン速度、ＡＰＩプロファイル）、及びローカル信号処理のタイミング要件が必要である。
【０１３６】
コーダの仮想化は、アクティブ制御局２０１内の仮想エンコーダ（符号器）１４０４及びＳＰＳ内の仮想デコーダ（復号器）１４１６によって実現される。コーダの仮想化により、プレイバックソースの形式に関係なく、仮想エンコーダ１４０４／仮想デコーダ１４１４によって定義されるフォーマットで再生を行うことができる。このソフトウェア層は、認識ラウドスピーカＡＰＩ１４１４の上に構築される。仮想エンコーダ１４０４は、ＳＰＳのために仮想デコーダをコンパイルし、種々のプレイバックフォーマットを仮想コードフォーマットに変換する。これらの役割は、リアルタイムで、または前処理中に行うことができる。仮想デコーダ１４１６は、セットアップルーチンの一部としてアクティブ制御局２０１からＳＰＳにダウンロードされる。仮想デコーダ１４１６は、アクティブ制御局２０１によって送信されたプレイバックストリームを復号する。
【０１３７】
コーダの仮想化の論理的根拠について以下に説明する。第１に、コーダの仮想化は信号処理の複雑さを減らす。ＬＰＣＭは時間領域コードであるが、ＭＰ３、ＡＡＣ、及びＡＣ３は周波数領域コードである。ローカル信号処理及び室内音響処理は、主に周波数領域において実行される。したがって、プレイバック実行ファイルを特定のフォーマットにハードコーディングすることは、異なるフォーマットを再生のために有効にしなければならない場合に、不必要なステップ及び変換を要求することになる。
【０１３８】
さらに、コーダの仮想化は、システム２００内におけるフォーマット独立性を提供する。新しいフォーマットを有するデジタルストリームの再生を有効にするために、仮想エンコーダ１４０４内に新しい変換器があれば十分である。
【０１３９】
さらに、コーダの仮想化は、より効率的なセットアップルーチン及びハンドオーバルーチンを提供する。さらに、コーダの仮想化は、アクティブ制御局２０１とＳＰＳとの間のソフトウェア層が認知ラウドスピーカシステム２００の展開を促進できるように、このソフトウェア層の標準化を容易にする。さらに、コーダの仮想化は、ソース復号処理とローカル信号処理との統合を容易にする。
【０１４０】
コーダの仮想化はまた、コーダをソースのコンテンツに対して最適化させる。例えば、ハイファイステレオ・クラシック／ジャズの再生のため及び７．１サラウンドサウンド再生のために、互いに異なる仮想コーダを実装することができる。
【０１４１】
最後に、ソフトウェアコーダの費用はハードウェアコーダの費用よりもはるかに安価であるため、コーダの仮想化は費用の節減になる。アクティブ制御局２０１においては１つのソフトウェアコーダしか必要とされないことに留意されたい。
【０１４２】
認知ラウドスピーカシステム２００は、従来のデジタル音声システムを以下のように改良する。認知ラウドスピーカシステム２００は、改良されたシステム分割を提供する。すなわち、システム２００により、全てのラウドスピーカ固有の動作をラウドスピーカ自体に押し戻すことができる。プレイバック機能は主に、任意の互換性のあるＣＳ装置からのソフトウェアによって制御される。これらのシステム構成要素間の通信及び同期は、単純な無線インタフェースを通じて行われる。その結果、ＣＳ−ＳＰＳモデルは、ラップトップ、携帯電話またはテレビ等の、任意の互換性のある大量に出回っている装置がプレイバックシステムを直接的に駆動することを可能にする。さらに、ソフトウェアによって定義されたデコーダはコード化の仮想化を可能にし、それにより、任意のデジタルフォーマットを有する音声がシステム２００によって再生される。新しいコード化フォーマットを実装するためにシステムハードウェアを変更する必要はない。
【０１４３】
さらに、各ラウドスピーカは、自立したシグナルプロセッサ兼プレイバック装置である。その結果、メーカーは、製品の価格及び性能を最適化するツールをより多く有する。さらに、各ラウドスピーカ（ＳＰＳ）は自立したシグナルプロセッサ及びプレイバック装置であるため、ラウドスピーカをプレイバックシステム２００に容易に追加及び削除することができる。
【０１４４】
ユーザの視点から見れば、認知ラウドスピーカシステム２００は、家庭で任意の装置から任意のコンテンツを再生する自由を提供する。例えば、ラップトップコンピュータから最高級のクラシック音楽を再生することができ、セットトップボックスまたはテレビから１０．２サラウンドサウンド映画を再生することができる。システム２００はまた、低い価格で高い性能を提供する。各ラウドスピーカは、信号経路全体に対して高度に最適化されており、それによって音質を改善し、価格を大幅に引き下げる。高価で複雑なＡＶプロセッサ及び関連する増幅回路を含む必要はない。新しいコード化規格が出現したときには、従来のＡＶプロセッサは時代遅れになることに留意されたい。システム２００ではそれが当てはまらず、コーダの仮想化がこの陳腐化を解消する。
【０１４５】
認知ラウドスピーカシステム２００はまた、プレイバックシステムの信号経路全体で１つのＤ／Ａ変換という利点を持つので、音質の劣化が少ない。さらに、システム２００は、ハイエンドのラウドスピーカとローエンドのラウドスピーカとを、これらのスピーカがどのように駆動されるかを気にせずに、同じシステム２００内に混在させることができる。システム２００は、高度に最適化された信号処理が、音声及び経験を最適化できるようにする。
【０１４６】
認知ラウドスピーカシステム２００は、ラウドスピーカ（ＳＰＳ）をアクティブ制御局に接続するためにスピーカケーブルを必要としないため、システム２００を含む部屋はよりきれいに見えるであろう。このことは、将来のホームシアターシステム（例えば、ステレオ５．１、７．１、１０．２、２２．２）においてラウドスピーカの数が増加するときに、特に当てはまる。さらに、システム２００は、単にシステム内のソフトウェアを修正するだけで、より多くの機能の導入及びユーザインタフェースの改善を可能にする。
【０１４７】
認知ラウドスピーカシステム２００は、以下の理由で実行可能な技術である。第１に、トランジスタが安く高速になっている。さらに、システム２００内でより多くのチャネルを処理するために必要とされる演算能力は、チャネル数により調整される。さらに、システム２００内での音声コード化のために適度なビットレート（例えば、２４ビット×１９２ｋＨｚのステレオＬＰＣＭコード化の場合、１０Ｍｂ未満）があり、チャネル数が増加するときにチャネルをマトリックス化することによって、ビットレートは大幅に増加しない。さらに、システム２００は、適度な計算要件（例えば、プレイバックプロセッササイクルの半分を使用できると仮定して、２ＧＨｚの処理クロック及び１９２ｋＨｚのサンプリングクロックを実装するとき、１サンプルあたり５０００命令サイクル）を有する。さらに、システム２００の電力消費は、二次的な問題である。
【０１４８】
さらに、システム２００は、良好な無線インタフェース環境を実現し、既存の無線技術によって容易にサポートされることができる。単一ソースの一斉送信及び二地点間通信は非常に単純であるので、システム２００では複雑なＭＡＣ層は必要ない。システム２００内のプレイバックは一時データから構成されているため、セキュリティは気にしなくてよい。ラウドスピーカはリスニングルーム内に最もありそうな固定物であり、よって移動性は問題ではない。ＳＰＳが別の部屋または非常に奇妙な形状の室内に設置されることは考えにくいため、マルチパス干渉は軽微なはずである。プレイバックシステム２００は屋内に配置される可能性が最も高く、プレイバックシステム構成部品は恐らく互いから５メートル以内に位置する。
【０１４９】
認知ラウドスピーカシステム２００は、メーカーがより低価格かつ高性能のメディアデバイスを製造することを可能にする。システム２００は、音声標準及びコード化に関して中立的である。システム２００は、相互接続のためのワイヤを１００％含まず、他の無線システムと共存することができる。システム２００は、任意の互換性のあるプレーヤーにシームレスに接続することができ、（ソース、ラウドスピーカ数、ラウドスピーカの変更を）更新するのが容易であり、ハイファイ音楽及びマルチチャネルサラウンドサウンド再生の両者に最適な性能を提供する。システム２００は、１つの計算フレームワーク内で、ソース復号、室内音響等化及びラウドスピーカ特性補償の統合を可能にする。システム２００はまた、音源配給業者が音質のためにコード化を最適化できるようにする。システム２００はまた、ビデオまたは他の媒体を再生システムに組み込むことを可能にする。
【０１５０】
システム２００は、以下の理由で、従来のシステムよりもはるかに費用効果が高い。音声コード化は音声信号を複数の周波数バンドに分離するので、クロスオーバ回路を有する必要がない。ドライバ装置の不足、ラウドスピーカと電力増幅器とのインピーダンスマッチング、またはエンクロージャの特性は、ＤＳＰアルゴリズムによって補正されることができる。部屋の特性及びチャネル配置は、各ＳＰＳにおけるローカル信号処理によって補償されることができる。この種の最適化に必要なのは、各チャネルのためのシグナルプロセッサ、ラウドスピーカにおかる各シグナルプロセッサがサンプルクロック内に同期されること、各ラウドスピーカモデルまたはスピーカの各コピーに対する固有パラメータ、部屋の特性及び配置特性のための各チャネルに対する固有パラメータである。
【０１５１】
本発明についていくつかの実施形態と関連して説明してきたが、本発明は、開示されている実施形態に制限されるものではなく、多様な変形形態が可能であることが理解されよう。そして、そのような変形形態は当業者に明らかであろう。したがって、本発明は、以下の特許請求の範囲によってのみ制限される。
【図１】
0005847804.tif 000002
【図２】
0005847804.tif 000003
【図３】
0005847804.tif 000004
【図４】
0005847804.tif 000005
【図５】
0005847804.tif 000006
【図６】
0005847804.tif 000007
【図７】
0005847804.tif 000008
【図８】
0005847804.tif 000009
【図９Ａ】
0005847804.tif 000010
【図９Ｂ】
0005847804.tif 000011
【図９Ｃ】
0005847804.tif 000012
【図９Ｄ】
0005847804.tif 000013
【図１０】
0005847804.tif 000014
【図１１】
0005847804.tif 000015
【図１２】
0005847804.tif 000016
【図１３】
0005847804.tif 000017
【図１４】
0005847804.tif 000018