(57)【要約】【課題】ビデオ表示システム、及びテレビ表示画面上への提示のために画像データをダブルバッファリングする方法を提供する。【解決手段】コントローラにおいて第１の画像データを受信し、該第１の画像データに基づいてカラールックアップテーブルを生成し、コントローラから前記ビデオ表示ユニットに、該カラールックアップテーブルを伝送し、コントローラからビデオ表示ユニットに、第１の画像データを伝送し、コントローラにおいて第２の画像データを受信し、該第２の画像データを第１の画像データと比較し、第１の画像データと第２の画像データとの差を示す第３の画像データを生成し、コントローラからビデオ表示ユニットに該第３の画像データを伝送することを含む。【選択図】図１２
2009219148.tif 000002
【特許請求の範囲】
【請求項１】
テレビ表示画面と、
該テレビ表示画面と通信可能に接続されたテレビアダプタであって、
該テレビ表示画面に現在表示されている画像データを保持するよう構成された画面上表示バッファと、
前記テレビ表示画面に表示されることになる画像データを保持するよう構成された画面外表示バッファと、
を含み、コマンドにより、前記画面外表示バッファと前記画面上表示バッファとの間でデータをスワップするよう構成されたテレビアダプタと
を備える、ビデオ表示システム。
【請求項２】
前記テレビ表示アダプタは、さらに、カラールックアップテーブルおよび画像データを受信し、さらに前記表示バッファの１つに該画像データを格納するよう構成されたＩＥＥＥ１３９４インタフェースを含み、前記ＩＥＥＥ１３９４インタフェースは、前記画面上表示バッファおよび前記画面外表示バッファの両方に通信可能に接続される、請求項１記載のビデオ表示システム。
【請求項３】
前記画像データはバッファ制御フラッグを含み、前記テレビアダプタは制御フラッグを分析して、それに応答して、前記画面外表示バッファにおける画像データを前記テレビ表示画面上に提示するよう構成される、請求項２記載のビデオ表示システム。
【請求項４】
前記テレビアダプタおよび前記テレビ表示画面は、物理的な単一ユニットに収容される、請求項１記載のビデオ表示システム。
【請求項５】
テレビ表示画面上への提示のために画像データをダブルバッファリングする方法であって、
第１のバッファ制御フラッグを含む第１の画像データを受信するステップであって、該第１のバッファ制御フラッグは、該第１の画像データを画面上表示バッファに配向するよう構成される、ステップと、
前記画面上表示バッファにおける前記第１の画像データをテレビ表示画面上に提示するステップと、
第２のバッファ制御フラッグを含む第２の画像データを受信するステップであって、該第２のバッファ制御フラッグは該第２の画像データを画面外表示バッファに配向するよう構成された、ステップと、
第３のバッファ制御フラッグを含む第３の画像データを受信するステップであって、前記画面外表示バッファにおける前記第２の画像データを前記テレビ表示画面上に提示するよう構成される、ステップと
を含む、テレビ表示画面上への提示のために画像データをダブルバッファリングする方法。
【請求項６】
前記第２の画像データを前記画面外表示バッファから前記画面上表示バッファにコピーするステップをさらに含む、請求項５記載の方法。
【請求項７】
交互に前記画面外バッファ用の画像データおよび第３のバッファ制御フラッグの連続したパターンを含む画像データを受信するステップと、
該画像データの連続したパターンの受信に応答して、アニメ化された画像を前記テレビ表示画面に表示するステップと、
をさらに含む、請求項５記載の方法。
【請求項８】
カラールックアップテーブルを受信するステップをさらに含み、前記画像データを前記テレビ表示画面に表示するステップは、前記テレビ表示画面上に提示される特定の画像データピクセルに対応したカラー値を、前記カラールックアップテーブルから検索するステップを含む、請求項５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コントローラからビデオ表示ユニットに画像データを転送する方法、ビデオ表示ユニットアダプタ、ビデオ表示システム、並びにテレビ表示画面上への提示のために画像データをダブルバッファリングする方法に関し、特に、ホームエンターテイメントシステムの分野に関し、ホームエンターテイメントシステムにおける通信および制御技術に関する。
【背景技術】
【０００２】
これまで、ホームエンターテイメントシステムは、単にテレビセット（ＴＶ）およびビデオカセットレコーダ（ＶＣＲ）からなることが多かった。１つまたは２つの同軸または複合ケーブルが、入力から出力、および／または出力から入力にＴＶおよびＶＣＲを相互接続していた。しかし、近年、ホームエンターテイメントシステムはますます複雑になってきている。
【０００３】
家庭用電子機器、たとえばコンパクトディスク（ＣＤ）プレーヤ、デジタルビデオディスク（ＤＶＤ）プレーヤ、ゲームシステム、サラウンドサウンドオーディオシステム、手持ち型ビデオカメラ等が向上したため、消費者は追加の装置を自身のホームエンターテイメントシステムに接続せざるをえなかった。新しい装置を追加する度に、少なくとも２本のワイヤ（通常、電源ワイヤおよび入出力ワイヤ）を各種装置から、または各種装置へ蛇行する複雑な蜘蛛の巣状のワイヤに追加した。
【０００４】
当初、各種装置間の相互接続の複雑性を低減するために、スイッチボックスが採用された。たとえば、単純な「Ａ／Ｂ」スイッチボックスにより、ユーザが、装置間で同軸ケーブルを引き抜いて再び連結させる必要なく、１つの入力または別の入力を選択的に選ぶことができる。しかし、ホームエンターテイメントシステムにおける装置の数が増えるにつれ、装置を相互接続するためのＡ／Ｂスイッチボックスの使用は面倒かつ非効率的になってきた。
【０００５】
特筆すべきは、消費者が一般に、ホームエンターテイメント装置の機能性および精巧さが増大するにつれ、各装置を操作するのに必要な膨大な数のコンポーネントのリモートコントローラを処分するために、より少数のワイヤ、より単純な相互接続方式を望むことである。実際、大部分のリモートコントローラの「機能」はまったく使用されない（たとえば、"The Complexity Problem:  Industrial Design", Atlantic Monthly, Vol. 271, No. 3, March 1993, p. 96を参照のこと）。他に理由がない場合、これは、各装置の制御および操作に関連する順序および／またはステップの数が異なるためである。
【０００６】
上記の制御問題に対する解決策の１つは、Schindler他による米国特許第５，６７５，３９０号（「３９０号特許」）に提案されている。３９０号特許の図１に示されているように、エンターテイメントシステムは、パーソナルコンピュータによって中心制御される。Schindler他のシステムによれば、制御は、「ハブおよびスポーク（hub and spoke）」または「スター」型通信トポロジを採用した（すなわち、すべての通信がパーソナルコンピュータ（またはハブ）を介する）パーソナルコンピュータにまとめられている。この構成により、各装置はパーソナルコンピュータへの各自の専用接続が必要である。このような解決策は、密接に統合された家庭用電子機器および知識のあるコンピュータユーザに対しては有効である。しかし、従来採用されるよりもさらにより多数の相互接続用ワイヤが必要である（３９０号特許の図７に示されるＩ／Ｏプラグの数に留意する）。さらに、このようなシステムには拡張性がない。すなわち、新たな装置をシステムに追加しようとする際、追加の対応アダプタ／コントローラをパーソナルコンピュータに追加しなければならない。
【０００７】
同様の解決策が、Freadmanによる米国特許第５，７２２，０４１号（「０４１号特許」）に提案されている。０４１号特許の図２は、Freadmanのホームエンターテイメントシステムを最もよく示している。Schindler他と同様に、制御はパーソナルコンピュータに中心的に置かれる。メディア供給は、多重チャネルモデムとアナログ無線周波数ミキサを組み合わせたものを介して行われ、これは同軸ケーブルを介して多数の端末装置に接続される。ワイヤの数の低減は達成されるが、装置間で共有される機能は最小限である、すなわち、一方の装置はもう一方の装置を制御しない（逆の場合も同様）。
【０００８】
特に、ホームエンターテイメントシステムネットワークを制御するために、ユーザに操作されるパーソナルコンピュータを追加しても、本質的には複雑性は低減されない。実際、複雑性を増大させる場合もある。コンピュータ制御が面倒でないにしても、困難であることが多い。一般に、ハードウェアおよびソフトウェアコンポーネントを通信するよう構成するとともに、装置を適切に初期化する必要がある。周辺機器（たとえばＶＣＲ、ＴＶ等）あるいはコンピュータ自体をアップグレードするには、システムのオペレーティングソフトウェアを完全にオーバーホールする必要がある場合があり、これによってシステム性能に不適合性および不確実性が導入されてしまう。
【０００９】
より複雑なホームエンターテイメントシステムにおける膨大な数の相互接続用ワイヤに対する１つの解決策は、ＩＥＥＥ１３９４−１９９５標準およびその拡張である（extension）ＩＥＥＥ１３９４ａ、およびＩＥＥＥ１３９４ｂであり、これらを本明細書において「ＩＥＥＥ１３９４」と呼ぶ。一実施の形態において、ＩＥＥＥ１３９４ケーブルは、６撚線ケーブルであり、１本の撚線は電源用、１本の撚線は接地用、２本の撚線はデータ用、２本の撚線はデータストランドを同期するために使用されるストローブ用である。代替の実施の形態では、電源および接地用撚線を省いた４撚線ケーブルを使用してもよい。ＩＥＥＥ１３９４ケーブルは電磁妨害雑音を防ぐシールドも備える。核心として、ＩＥＥＥ１３９４ケーブルは本質的に、このワイヤに関しては最大４００メガビット／秒のデータ速度を有する高性能シリアルバスである。
【００１０】
有利なことに、ＩＥＥＥ１３９４バスは、コンポーネント電子機器がＩＥＥＥ１３９４ケーブルを介して電力を受け取るとともに通信するよう設計されうるため、大部分の装置に必要とされる接続をバックプレーンバス環境において１本のケーブルに低減するので、ホームエンターテイメントシステムにおける膨大な数のワイヤに対する必要性を低減する。ＩＥＥＥ１３９４−１９９５標準は、ＩＥＥＥ１３９４バスを実施するための物理層、リンク層、およびトランザクション層の態様についての仕様を提供し、これには、バスリセット、バス調停（bus arbitration）、ノード構成、標準パケット構造、パケット伝送の初期化、非同期パケットの送受信、等時性パケット（isochronous packets）の送受信、トランザクション制御、および誤り検出および修正等の機能の提供を含む。
【００１１】
ＩＥＥＥ１３９４バスを介した通信は、純粋にデジタルであるという点において、多くの従来技術とは異なっている。特に、ＩＥＥＥ１３９４上で搬送されるデータはソース（たとえばＣＤ−ＲＯＭ）からデジタルであるか、あるいはＩＥＥＥ１３９４バスに配置される前にアナログデジタル変換器によって変換されなければならない。さらに、ＩＥＥＥ１３９４ベースのシステムでの通信はピアツーピア（peer-to-peer）、すなわちＩＥＥＥ１３９４バス上の各装置（別称はノード）が、（たとえば、クライアントサーバ型構成で必要とされるように）通信／制御要求を中央装置／ノードを介して処理する必要なく、他の任意のノードと通信できる。ＩＥＥＥ１３９４ベースのシステムでは、コントローラは任意のノードに存在するため、ある意味では、ＩＥＥＥ１３９４バス自身がコントローラとなる。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＩＥＥＥ１３９４の提唱者に対する挑戦は、動作の下位層、すなわち物理層、リンク層、およびトランザクション層では大したことはないが（プロトコルとデータパケット構造間のブリッジは競合領域であり続けるが）、それよりもむしろ、アプリケーション層等のネットワークプロトコル層の上位層においてである。高精細テレビ（ＨＤＴＶ）等の放送テレビおよびケーブル産業における最近の発達、およびケーブル放送産業における統合により、消費者が利用できるサービスおよびコンテントの数が幾何級数的に拡大された。このため、ホームエンターテイメント装置間での相互運用性が、共通および／または標準機能性である使い易さ、および拡張性と同様に強く望まれている。上記のように、ＩＥＥＥ１３９４ベースのホームエンターテイメントシステムにおいてそれぞれ接続かつ支援されうる装置およびサービスの拡張アレイを制御かつ管理するシステムが必要とされている。
【００１３】
この発明は上述した点に鑑みてなされたもので、コントローラからビデオ表示ユニットに画像データを転送する方法、ビデオ表示ユニットアダプタ、ビデオ表示システム、並びにテレビ表示画面上への提示のために画像データをダブルバッファリングする方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
また、この発明に係るビデオ表示システムは、テレビ表示画面と、該テレビ表示画面と通信可能に接続されたテレビアダプタであって、該テレビ表示画面に現在表示されている画像データを保持するよう構成された画面上表示バッファと、前記テレビ表示画面に表示されることになる画像データを保持するよう構成された画面外表示バッファとを含み、コマンドにより、前記画面外表示バッファと前記画面上表示バッファとの間でデータをスワップするよう構成されたテレビアダプタとを備えるものである。
【００１５】
また、前記テレビ表示アダプタは、さらに、カラールックアップテーブルおよび画像データを受信し、さらに前記表示バッファの１つに該画像データを格納するよう構成されたＩＥＥＥ１３９４インタフェースを含み、前記ＩＥＥＥ１３９４インタフェースは、前記画面上表示バッファおよび前記画面外表示バッファの両方に通信可能に接続されるものである。
【００１６】
また、前記画像データはバッファ制御フラッグを含み、前記テレビアダプタは制御フラッグを分析して、それに応答して、前記画面外表示バッファにおける画像データを前記テレビ表示画面上に提示するよう構成されるものである。
【００１７】
また、前記テレビアダプタおよび前記テレビ表示画面は、物理的な単一ユニットに収容されるものである。
【００１８】
また、この発明に係るテレビ表示画面上への提示のために画像データをダブルバッファリングする方法は、第１のバッファ制御フラッグを含む第１の画像データを受信するステップであって、該第１のバッファ制御フラッグは、該第１の画像データを画面上表示バッファに配向するよう構成される、ステップと、前記画面上表示バッファにおける前記第１の画像データをテレビ表示画面上に提示するステップと、第２のバッファ制御フラッグを含む第２の画像データを受信するステップであって、該第２のバッファ制御フラッグは該第２の画像データを画面外表示バッファに配向するよう構成された、ステップと、第３のバッファ制御フラッグを含む第３の画像データを受信するステップであって、前記画面外表示バッファにおける前記第２の画像データを前記テレビ表示画面上に提示するよう構成される、ステップとを含むものである。
【００１９】
また、前記第２の画像データを前記画面外表示バッファから前記画面上表示バッファにコピーするステップをさらに含むものである。
【００２０】
また、交互に前記画面外バッファ用の画像データおよび第３のバッファ制御フラッグの連続したパターンを含む画像データを受信するステップと、該画像データの連続したパターンの受信に応答して、アニメ化された画像を前記テレビ表示画面に表示するステップとをさらに含むものである。
【００２１】
また、カラールックアップテーブルを受信するステップをさらに含み、前記画像データを前記テレビ表示画面に表示するステップは、前記テレビ表示画面上に提示される特定の画像データピクセルに対応したカラー値を、前記カラールックアップテーブルから検索するステップを含むものである。
【発明の効果】
【００２２】
以上のように、この発明によれば、ビデオ表示システム、及びテレビ表示画面上への提示のために画像データをダブルバッファリングする方法を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】例示的なＩＥＥＥ１３９４モジュールアーキテクチャを示す説明図である。
【図２】例示的なＩＥＥＥ１３９４ネットワークトポロジを示す説明図である。
【図３】例示的なケーブルベースのＩＥＥＥ１３９４トポロジを示す説明図である。
【図４】例示的なＩＥＥＥ１３９４ノードプロトコルスタックを示す説明図である。
【図５】ＩＥＥＥ１３９４ベースのネットワークで、多数の外部サービスプロバイダをブリッジするホームゲートウェイを示す説明図である。
【図６】図５のホームゲートウェイの機能ブロック図である。
【図７】ハードウェアコンポーネントを示す、ホームゲートウェイの代替ブロック図である。
【図８】ホームゲートウェイのファームウェアスタックを示すブロック図である。
【図９】図５のＩＥＥＥ１３９４ベースのホームエンターテイメントシステムネットワークを介するＭＰＥＧ移送（MPEG transport）についてのプロトコルスタックを示す説明図である。
【図１０】図５のホームエンターテイメントシステムネットワークを介したＩＰルーティングについてのプロトコルスタックを示す説明図である。
【図１１】図５のホームエンターテイメントシステムネットワークを介したＩＰプラグアンドプレイおよびＤＮＳ／ＤＨＣＰルーティングについてのプロトコルスタックを示す説明図である。
【図１２】図５のホームエンターテイメントシステムの装置間でのビットマップ表示データ転送についてのプロトコルスタックを示す説明図である。
【図１３】好ましいビットマップ転送プロトコルを示すフローチャートである。
【図１４】ビットマップ転送プロトコルに採用される好ましいカラールックアップテーブル構造を示す説明図である。
【図１５】好ましい画像データ構造を示す説明図である。
【図１６】アドレスマッピングテーブルを示す説明図である。
【図１７】ダブルバッファリングに好ましいハードウェアアーキテクチャのブロック図である。
【図１８】ビットマップ転送データのダブルバッファリング方法を示すフローチャートである。
【発明を実施するための形態】
【００２４】
この発明の第１の態様によれば、コントローラとビデオ表示ユニットの間で、たとえばＩＥＥＥ１３９４インタフェースを介して接続されたセットトップボックスとテレビセットそれぞれ等でビットマップ表示データを伝送する方法が提供され、該方法は、コントローラにおいて第１の画像データを受信（たとえばケーブルすなわち撚対線）し、該第１の画像データに基づいてカラールックアップテーブルを生成し、コントローラからビデオ表示ユニットに、該カラールックアップテーブルを伝送し、コントローラからビデオ表示ユニットに、第１の画像データを伝送し、コントローラにおいて第２の画像データを受信し、該第２の画像データを第１の画像データと比較し、第１の画像データと第２の画像データとの差を示す第３の画像データを生成し、コントローラからビデオ表示ユニットに該第３の画像データを伝送することを含む。
【００２５】
この発明の好ましい実施の形態は、添付図面の図に限定としてではなく例として示される。図面において、同一の参照符号は同一のコンポーネントを指す。
【００２６】
本明細書にすべて参照として組み込まれるＩＥＥＥ１３９４−１９９５標準は、以下の説明および添付図面における図についての背景情報を説明、教示、かつ提供する。特に、ＩＥＥＥ１３９４−１９９５標準の選択した一部を図１乃至図４を参照して説明する。
【００２７】
ＩＥＥＥ１３９４概観
図１は、複数のアドレス指定可能なノード１０４を備えた例示的なＩＥＥＥ１３９４モジュール１００を示す。各ノード１０４は、ローカルバス１２８を介して相互接続されたプロセッサユニット１０８とＩ／Ｏユニット１１２とを含みうる。あるいは、ノード１０４は、メモリユニット１１６を含んでもよい。各ノード１０４は、バスコネクタ１２４それぞれを介してＩＥＥＥ１３９４キャリア１２０に接続される。
【００２８】
図２は、例示的なＩＥＥＥ１３９４の物理的なネットワークトポロジ２００を示し、このトポロジ２００は、それぞれＩＥＥＥ１３９４「ケーブル環境」２１２にブリッジされた２つのＩＥＥＥ１３９４「バックプレーン環境（backplane environments）２１６」を含む。
【００２９】
バックプレーン環境２１６において、物理的なトポロジは、マルチドロップバス２１５である。物理的な媒体は、バックプレーンの長さに延びるとともに、複数のＩＥＥＥ１３９４ノード１０４を接続するため、そこに分散されたコネクタを有する２本のシングルエンド伝導体である。
【００３０】
ケーブル環境２１２において、物理的なトポロジは、有限の分岐および範囲を有する「非循環（noncycle）」ネットワーク（閉ループが支援されていないことを意味する）である。各ＩＥＥＥ１３９４ケーブル２２０は、異なるノード１０４上のポート２０８を共に接続する。各ポート２０８は、通常、ターミネータ、トランシーバ、および調停論理回路（図示せず）を含む。ケーブル２２０およびポート２０８は、部分的にそこで発生した信号を隣接ノード１０４に中継するケーブル中継器として機能する。この中継機能により、ケーブル環境２１２のノード１０４が単一の論理バスをシミュレートできる。たとえば、バックプレーン環境２１６あるいはケーブル環境２１２において、２つの異なるＩＥＥＥ１３９４バスがともに接続されている場合、異なるネットワーク環境間で通信を変換するために、ブリッジ２０４が使用される。
【００３１】
ＩＥＥＥ１３９４標準に従うと、ＩＥＥＥ１３９４ネットワーク２００によって、６４ビットアドレス指定方式が採用される。各アドレスの上位１６ビットは、「node_ID（ノードＩＤ）」を表す。node_IDの最上位１０ビットは、ＩＥＥＥ１３９４ネットワーク２００全体における特定の論理バス、すなわち「bus_ID（バスＩＤ）」（たとえば、バス２１５）を識別する。このため、ＩＥＥＥ１３９４ネットワーク２００において最大１０２３本のバスを採用できる。node_IDの次の最上位６ビットは、特定ノードの物理アドレスすなわち「physical_ID（物理ＩＤ）」を表す。特定のＩＥＥＥ１３９４バス（たとえばバス２１５）上に、別個にアドレス指定可能な６３個のノード（たとえばノード１０４）が存在できる。アドレス空間の残りの４８ビットの様々な部分は、特定バスまたは特定ノードのいずれかである特定の資源に割り当てられる。
【００３２】
図３は、例示的なＩＥＥＥ１３９４ケーブルトポロジ３００を示す。この構成によれば、多数のノード１０４が、各ＩＥＥＥ１３９４ケーブル３０４によってポート２０８間で共に「デージーチェーン（daisy-chained）」接続されている。各ノード１０４は中継器として作用し、１つのポート２０８と次のポートの間で信号を中継して、信号を各ノード１０４間でケーブル３０４を介して伝送できるようにする。
【００３３】
図４は、例示的なＩＥＥＥ１３９４ノード１０４内のハードウェアおよびソフトウェアコンポーネント間の関係を示すプロトコルスタック４００を示す。特に、プロトコルスタック４００において、４つの層、すなわちトランザクション層４０４、リンク層４０８、物理層４１２、およびシリアルバス管理層４１６を示している。アプリケーション層などのさらなる層（図示せず）をプロトコルスタック４００に含めてもよい。
【００３４】
特に、トランザクション層４０４は、バストランザクションを行うよう完全な要求応答プロトコルを規定して、読み込み、書き込み、およびロック動作を支援する。トランザクション層４０４は、等時性管理データがシリアルバス管理層４１６に到達するための経路も提供する。
【００３５】
リンク層４０８は、トランザクション層４０４に対する要求確認サービス（すなわち「承認データグラム」）を有する一方向データ転送を提供する。より詳細には、リンク層４０８は、パケットの送受信のためのアドレス指定、データチェック、およびデータフレーム指示を提供するとともに、また、等時性データ転送サービスをアプリケーションに対して直接提供する。これには、タイミング信号および同期信号（たとえば「サイクル信号」）の生成が含まれる。
【００３６】
物理層４１２は、リンク層４０８によって使用される論理記号をＩＥＥＥ１３９４ケーブルに出力するための電気信号に翻訳する。物理層４１２はまた、一度に１つのノードだけがデータを送信していることを保証するために、調停サービスも提供する。好ましい実施の形態では、物理層４１２は、データ再同期および中継サービスならびに自動バス初期化を提供する。
【００３７】
シリアルバス管理層４１６は、バス管理、等時性資源管理、およびノード制御を提供する。たとえば、図２のケーブル環境２１２において、シリアルバス管理層４１６の等時性資源マネージャ４２０は、各ノード１０４に必要な資源を認めて、効率的で整然とした等時性動作に必要な等時性資源、チャネル、および帯域幅を協働して割り当て、また割り当て解除する。
【００３８】
バスマネージャ４２４は、性能最適化、電力および速度管理、およびトポロジ管理等のサービスをバス上の他のノード１０４に提供する。最後に、ノードコントローラ４２８は、バス上のノード１０４が必要とするすべての制御および状態レジスタを管理するとともに、物理層４１２、リンク層４０８、トランザクション層４０４、および１つ以上の他のアプリケーション層（図示せず）と通信する。
【００３９】
ホームエンターテイメントおよびホームオフィスシステム
図５は、多数の外部サービスプロバイダを好ましいホームエンターテイメントおよびホームオフィスシステムネットワーク（以下、「ホームエンターテイメントシステムネットワーク」と呼ぶ）５００にブリッジしているホームゲートウェイ５０４を示す。ホームエンターテイメントシステムネットワーク５００は、好ましくは（図２および図３を参照して上述した）ケーブル環境に構成される、ＩＥＥＥ１３９４バス５６８によって接続される。特に、一連のデージーチェーン接続されたＩＥＥＥ１３９４ケーブル５０２は、ＩＥＥＥ１３９４バス５６８を形成するために、ホームエンターテイメントネットワークシステム５００の各種電子機器コンポーネントのポート間を相互接続する。たとえば、ＴＶ５０８、ステレオ５１２、ＶＣＲ５１６、およびＤＶＤ５２０が、１つのチェーン５６０に接続される。別のチェーン５６４では、パーソナルコンピュータ５２４、プリンタ５２８、およびデジタルカメラ５３４が接続されている。
【００４０】
電子機器コンポーネントの各チェーン５６０および５６４それぞれは、１つ以上の外部ネットワークと各内部ネットワークチェーン５６０および５６４との間のブリッジとして（すなわち、２つの異なるバス環境間のブリッジではなく）作用するホームゲートウェイ５０４に接続される。たとえば、ホームゲートウェイ５０４は、衛星受信器５４０を介して衛星５８２から、アンテナ５４４を介して放送タワー５８６からのメディア供給、ならびに同軸ケーブル受信器５４８、光ファイバケーブル受信器５５２、または電話ケーブル受信器５５６をそれぞれ介して局所陸線５９２（たとえば、銅の撚対線、同軸または光ファイバケーブル）からの供給を受信することができる（注意：各種受信器はホームゲートウェイ５０４の外側に示されているが、実際の受信器またはレセプタクルは同様にホームゲートウェイ５０４内に収容されてもよい。各種受信器は、説明の目的でホームゲートウェイ５０４の外側に示されているにすぎない）。
【００４１】
ＴＶ５０８は、テレビ画面上に表示するために、データをＩＥＥＥ１３９４バス５０２からＮＴＳＣ（（米国の）テレビ方式審議委員会）および／またはＡＴＳＣ（Advanced Television Systems Committee）ビデオ信号に変換する、内部テレビアダプタを備えることが好ましい。代替の好ましい実施の形態において、テレビアダプタは、ＴＶ５０８とＩＥＥＥ１３９４ケーブル５０２の間を接続する外部装置である。いずれの実施の形態においても、テレビアダプタは、現在表示されていないが将来表示される画像データ用の画面外バッファと、テレビ画面に現在表示されている画像データ用の画面内バッファとを備えることが好ましい。さらに、テレビアダプタは、ＶＣＲ、ＤＶＤプレーヤ、またはデジタルカメラ等の、テレビに接続される補助装置に組み込まれてもよい。
【００４２】
ホームゲートウェイ
図６は、ホームゲートウェイ５０４ならびにホームゲートウェイ５０４に通信可能に接続されたコンポーネントの機能ブロック図を示す。
【００４３】
ゲートウェイ５０４は、それを介して各サービスが提供されるアクセスネットワーク６４４を介して通信するために、１つ以上のインタフェースを備える。たとえば、インターネットアクセスプロバイダ（「ＩＡＰ」）またはインターネットサービスプロバイダ（「ＩＳＰ」）６４０から、またはビデオサービスプロバイダ（「ＶＳＰ」）６４８からのサービスは、各ホームゲートウェイインタフェース、たとえば無線インタフェース「地上放送Ｉ／Ｆ」６５０、「衛星Ｉ／Ｆ」６５２、非同期デジタル加入者線インタフェース「ＡＤＳＬ Ｉ／Ｆ」６５６、非同期転送モードインタフェース「ＡＴＭ Ｉ／Ｆ」６６０、またはハイブリッドファイバ同軸インタフェース「ＨＦＣ Ｉ／Ｆ」６６４を、適切なネットワークリンク（たとえば地上リンク６１８、衛星リンク６２０、電話リンク６２４、ファイバリンク６２８、または同軸リンク６３２それぞれ）を介してアクセスネットワーク６４４に接続することによって、提供されうる。好ましい一実施の形態によると、ホームゲートウェイ５０４上のアダプタスロットが１つ以上の上記インタフェースを受ける。このような実施の形態は、新しいまたはアップグレードされた通信技術／ハードウェアがホームエンターテイメントシステム５００に接続される場合に、柔軟な再構成を提供する。
【００４４】
様々なアプリケーション、たとえばインターネットサーフィン、ＭＰＥＧビデオストリーム（標準または高精細テレビ）、ネットワーク上でのゲーム、電子的番組ガイド「ＥＰＧ」、およびホームネットワーク制御などがＩＡＰ／ＩＳＰ６４０および／またはＶＳＰ６４８からアクセスネットワーク６４４上で可能である。したがって、ホームゲートウェイ５０４は、ホームユーザＩＰルーティング６６８、ＭＰＥＧ２ストリーム処理（画面上表示「ＯＳＤ」およびＥＰＧ処理を含む）６７２、アクセスネットワーク通信制御６７６、ホームネットワーク制御／管理６８０、およびゲーム、ホームオートメーション、およびディレクトリサービス等他の存在しているかまたはダウンロード可能な機能６８２を可能にするため、ハードウェアおよびソフトウェアを含む。このため、ホームゲートウェイ５０４のためのファームウェアスタックを図８を参照して後述する。上記に参照した機能実施のためのプロトコルスタックは、図９乃至図１２を参照して後述される。
【００４５】
１３９４インタフェース６８４は、ホームゲートウェイ５０４に必要なコンポーネントであり、図９〜図１２を参照して説明されるネットワークプロトコルとともに使用される。１３９４インタフェース６８４は、外部ネットワークプロトコルと、内部ネットワークを形成するＩＥＥＥ１３９４準拠バスとの間のブリッジとして作用する。たとえば、１３９４Ｉ／Ｆ６８４は、パーソナルコンピュータ５２４とＴＶアダプタ６０４（これは一実施の形態において、テレビ６０８用に、ＩＥＥＥ１３９４データをアナログまたはデジタル信号に変換する）の間で、１３９４リンク６１２に渡ってＩＰを、また１３９４リンク６１６に渡ってＭＰＥＧを支援する。
【００４６】
図７に示すように、ホームゲートウェイ５０４の一実施の形態は、電源回路７４８、リセット回路７５２、クロック回路７５６、中央演算処理装置「ＣＰＵ」７０４、ローカルバス７０６、ＰＣＩブリッジおよび周辺機器コントローラ７０８、不揮発性メモリ（たとえばＲＯＭ７１２およびＦＬＡＳＨ７１６）、揮発性メモリ（たとえばＤＲＡＭ７２０）、ＲＳ２３２相互接続、およびＰＣＩバス７２４を備える。ＰＣＩバス７２４に接続されるのは、ホームゲートウェイ５０４にＡＴＭブリッジおよび他の機能性を提供するＡＴＭ ＬＳＩインタフェース７２８と、光キャリア３（「ＯＣ−３」）レベルポートに接続される同期光ネットワーク（「ＳＯＮＥＴ」）インタフェース７３２と、１３９４ＬＩＮＫ ＬＳＩ７３６と、３つのＩＥＥＥ１３９４ポートを有する１３９４ＰＨＹ ＬＳＩと、レジスタ、ＬＥＤおよびディップスイッチユニット７４４と、である。
【００４７】
市販されているハードウェアコンポーネントを、ホームゲートウェイ５０４に採用することが好ましい。たとえば、目下好ましいハードウェアコンポーネントの仕様を表１に記載する。
【００４８】
【表１】
2009219148.tif 000003
【００４９】
ＣＰＵ７０４、ＲＯＭ７１２、ＦＬＡＳＨ７１６、ＲＳ２３２ ７２４、およびＤＲＡＭ７２０は、ＰＣＩブリッジおよび周辺機器コントローラ７０８、およびローカルバス７０６を介して互いに通信可能に接続される。ＰＣＩブリッジおよび周辺機器コントローラ７０８は、ＰＣＩバス７２４にも接続される。ＰＣＩバス７２４は、ＡＴＭ ＬＳＩ７２８と、１３９４ＬＩＮＫ ＬＳＩ７３６と、レジスタ、ＬＥＤおよびディップスイッチユニット７４４とに接続される。
【００５０】
図８は、ホームゲートウェイ５０４に採用されるファームウェアスタック８００を示す。オペレーティングシステム（ＯＳ）カーネル８０４が、ファームウェアスタック８００の中心に存在し、サービスコントローラ８０８、システム管理８１２、ＡＴＭドライバ８１６、１３９４ドライバ８２０と通信する。ＡＴＭドライバ８１６は、サービスコントローラ８０８、１３９４ドライバ８２０および各種ハードウェアコンポーネント８２４（すなわち、ホームエンターテイメントシステム５００における物理的な電子機器コンポーネント）と通信する。同様に、１３９４ドライバ８２０は、サービスコントローラ８０８、ＡＴＭドライバ８１６、およびハードウェア８２４と通信する。
【００５１】
システム管理８１２は、初期化、自己診断、システム健康チェック、およびデバッグする機能を含む。サービスコントローラ８０８は、ＭＰＥＧ ＴＳおよびＥＰＧフィルタリング、およびマルチキャスティングと、ＩＰルーティングおよび端末機能と、１３９４バス上でのＭＰＥＧおよびＡＴＭ上でのＭＰＥＧ、ならびに１３９４バス上でのＩＰおよびＡＴＭ上でのＩＰと、アドレスマッピングと、ホームネットワークサービスコマンドおよび制御（たとえば、ＭＰＥＧサービス制御、ＴＶ画像制御、遠隔処理、およびカメラ制御）と、他の機能（たとえば、ゲーム、ホームオートメーション、およびディレクトリサービス）とを含む。
【００５２】
１３９４ドライバ８２０は、非同期データ伝送と、等時性データ伝送と、物理層制御パケット伝送と、バスのリセットおよび制御と、ルートおよびサイクルマスタ処理と、構成状態レジスタおよび構成ＲＯＭ処理と、バス管理と、アドレスマッピングテーブル更新とを実現する。一方で、ＡＴＭドライバ８１６は、ＡＴＭパケット伝送と、ＡＴＭ永久仮想接続（「ＰＶＣ」）の確立および解放とを実現する。
【００５３】
ＯＳカーネル８０４は、タスク切り換えと、メッセージキューおよび送出と、割り込み処理と、タイマ管理と、メモリ管理とを提供する。また、ＯＳカーネル８０４は、ホームゲートウェイ５０４の制御に使用される電子装置の相互運用機能も提供する。
【００５４】
ハードウェア８２４は、ファームウェアスタック８００の物理層、すなわち最下層を表す。
【００５５】
プロトコルスタック
図９〜図１２は、ホームエンターテイメントシステムネットワークに関する、各外部ネットワーク、ホームゲートウェイ、および内部ネットワーク間に採用されるプロトコルスタックの様々な態様を示す。図９〜図１１は、ホームゲートウェイ５０４に関する。図１２は、ホームエンターテイメントシステムネットワークに配置された家庭用電子装置間のプロトコルスタックに関する。
【００５６】
図９〜図１２には、外部ネットワーク９０４、ブリッジ９０８、および内部ネットワーク（すなわちＩＥＥＥ１３９４バス）９１２が共通して示されている。外部ネットワーク９０４は、ＭＰＥＧネットワーク９１６（たとえばデジタルビデオサービスプロバイダ）およびＩＰネットワーク９２０（たとえば「インターネット」）を含みうる。アクセスネットワーク９２４は、ＭＰＥＧネットワーク９１６およびＩＰネットワーク９２０の両方に接続される。一実施の形態によれば、アクセスネットワーク９２４は、たとえばアメリカオンライン（America Online）あるいは＠Ｈｏｍｅ等のインターネットアクセスプロバイダ（「ＩＡＰ」）である。外部ネットワーク９０４は、ブリッジ９０８を介して内部ネットワーク９１２に接続されている。ブリッジ９０８は好ましくは、ホームゲートウェイ５０４である。ホームゲートウェイ５０４は、外部ネットワーク９２４からのデータおよび信号を、ＡＴＭパケットから、内部ネットワーク９１２に転送可能なＩＥＥＥ１３９４フォーマットに変換する。内部ネットワーク９１２は、テレビアダプタ９３２と、標準または高精細テレビ９３６（あるいは、１３９４ノードおよびテレビを組み込んだ単一ユニット）と、パーソナルコンピュータ９４６とを含む。プロトコルスタックは、図９〜図１２において、システム全体のうちでそれらが対応する部分の下に示されている。
【００５７】
図９は、ＭＰＥＧネットワーク９１６からＴＶアダプタ９３２へのＡＴＭデータ伝送に従ったプロトコルスタック９００を示す。
【００５８】
ＭＰＥＧデータは、ＭＰＥＧネットワーク９１６においてＭＰＥＧ ＴＳ（「移送ストリーム」）プロトコルまたは制御コマンド（「ＣＴＲＬ ＣＯＭ」）９５６からＡＴＭアダプションレイヤ５（「ＡＡＬ５」）９５２にフォーマットされる。ＡＡＬ５から、データはＡＴＭデータ９４８に変換されて、ＡＴＭデータ９４８から同期光ネットワーク「ＳＯＮＥＴ」プロトコル９４４に変換される。最下層では、その高い信頼性によりＡＴＭネットワークが好ましいが、代替の実施の形態において異なるキャリア（たとえば、ＡＴＭレイヤを置換することによって）を採用してもよい。
【００５９】
アクセスネットワーク９２４から、データはホームゲートウェイ５０４で受信される。ホームゲートウェイ５０４において、外部ネットワークからの通信が、ＡＴＭプロトコルからＩＥＥＥ１３９４プロトコルに変換（または「ブリッジ」）される。ＩＥＣ６１８８３ ９６４を含むさらなるプロトコルレイヤ変換が図９に示されるが、ＩＥＣ６１８８３ ９６４は、ＩＥＥＥ１３９４通信用にＭＰＥＧデータをフォーマットするものであり、「Digital Interface for Consumer Audio/Visual Equipment」と題する国際電気標準会議標準６１８８３にさらに記載されており、ＩＥＣ（www.iec.org）から公的に入手可能である。ＩＥＥＥ１３９４プロトコル９６８は、ＩＥＥＥ１３９４−１９９５標準に記載されている。
【００６０】
ゲートウェイ９０８から、データはＩＥＥＥ１３９４プロトコルを介して内部ネットワーク９１２に送信され、ここで、該データは、ビデオ表示ユニットでの提示／再生のために、続いてＭＰＥＧ移送ストリームにまた変換される。さらに、ＴＶアダプタ９３２で該データを、標準または高精細テレビセットにオーディオ／ビジュアルデータを提供することができるアナログ信号に変換することが可能である。しかし、ＴＶ９３６はＭＰＥＧデータを支援可能であることが好ましい。
【００６１】
図１０は、ＩＰネットワーク９２０からＰＣ９４６へのＩＰデータ伝送に従うプロトコルスタック１０００を示す。伝送制御プロトコル（「ＴＣＰ」）またはユーザデータグラムプロトコル（「ＵＤＰ」）１００８は、公的に入手可能な文書、インターネットＲＦＣ７９３およびインターネットＲＦＣ７６８それぞれに記載されているものであり、インターネットＲＦＣ７９１に記載されているインターネットプロトコル（「ＩＰ」）１００４上に階層化されている。これは、インターネット（たとえばインターネットまたはワールドワイドウェブ）からのパケットデータの伝送を容易にする。ホームゲートウェイ５０４およびＰＣ９４６において、１３９４プロトコル１０１２上のＩＰ（Peter JohanssonによるＩＥＴＦ：Internet Engineering Task Force文書「Ipv4 over IEEE1394」に記載されており、「http://www.ietf.org」において入手可能）を採用する。ＩＥＴＦ文書「Ipv4 over IEEE1394」全体を本明細書に参照として組み込む。プロトコルスタック１０００は、ワールドワイドウェブおよびインターネット上でのコンテントの発見すなわち探索に特に有利である。
【００６２】
図１１は、ＩＰネットワーク９２０からＰＣ９４６へのＴＣＰ／ＩＰデータ伝送についてのプロトコルスタック１１００を示す。自動セットアップおよびＩＰアドレス割り当てを容易にするために、プロトコルスタック１１００は、インターネットＲＦＣ１０３４および１０３５に記載されているドメイン名システム（「ＤＮＳ」）と、ダイナミックホスト構成プロトコル（「ＤＨＣＰ」）を支援する。
【００６３】
図１２は、インターネットネットワーク９１２を介した装置間（たとえばホームゲートウェイ５０４またはＰＣ９４６からＴＶアダプタ９３２へ）のビットマップ伝送についてのプロトコルスタック１２００を示す。プロトコルスタック１２００は、上述していないさらなるプロトコル「ＤＤ−Ｃｏｎｎｅｃｔ ＡｓｙＢｍｐ」１２０４を採用している。「ビットマップ伝送」プロトコルは、さらに詳細に後述する。「ＡＰ」プロトコル１２０８は、単にアプリケーション層で使用される特定のプロトコル（たとえば表示装置プロトコルまたはマウスプロトコル）にすぎない。
【００６４】
ビットマップ転送
システム資源、たとえば、ＩＥＥＥ１３９４ケーブル帯域幅への需要を低減するために、内部ネットワーク９１２内の１つの装置（すなわちパーソナルコンピュータ９４６またはホームゲートウェイ５０４）から第２の装置（すなわちテレビ）への画像データの送信に、「ビットマップ転送」と呼ばれる非同期プッシュプロトコルを採用することが好ましい。ビットマップ転送は、ＩＥＥＥ１３９４非同期モード機能上に階層化される。
【００６５】
より詳細には、たとえば、ディスプレイモニタ上の各画像ピクセル（または領域）毎のカラーデータ（たとえば赤、緑、青）レベルを表す画面上表示（「ＯＳＤ」）情報が、まずビットマップフォーマットに配置される。一実施の形態において、１２ビットカラーピクセルデータが採用されるが、代替の実施の形態では、２４ビットカラーピクセルデータが採用され、後者はより高い色解像度を提供するが、処理速度およびデータ記憶空間が犠牲になる。
【００６６】
ビットマップ転送（「ＤＤ−ＡｓｙＢｍｐ」とも呼ばれる）についての好ましい一連のステップを図１３に示し、図１４および図１５を参照して以下に説明する。説明のために、以下の説明はコントローラ、たとえば図６に示すホームゲートウェイ５０４と、たとえばまた図６に示すＴＶアダプタ６０４のビデオ表示ユニットとを参照して説明する。別の実施の形態において、コントローラはパーソナルコンピュータ（たとえば図５に示すパーソナルコンピュータ５２４）で実施されうる。以下の方法において、別記しない限りステップはコントローラによって実行される。
【００６７】
まず、ステップ１３０４において、第１画像データがコントローラにおいて受信される。第１の画像データは、ビットマップ画像等の固定フォーマットのデータ構造であることが好ましい。ビットマップ画像は複数のロケーションを含み、各ロケーションはそれに割り当てられた一意のカラー（たとえば、６：３：３：４（ＹＵＶアルファ）ビットおよび８：８：８：８（ＹＵＶアルファ）ビット等、α値のためのさらなる４ビットまたは８ビットを含む、Ｙ、Ｃb、Ｃrフォーマットでの１２ビットまたは２４ビットカラー情報）を有する。第１の画像データは、ステップ１３０８においてメモリに格納される。
【００６８】
次に、ステップ１３１２において、コントローラは、第１の画像データで検出された一意のカラーに基づいて、カラールックアップテーブル（図１４を参照して後述）を生成する。なお、カラールックアップテーブルは、ピクセルロケーション情報と無関係であり、画像データに含まれるカラーデータだけに関連する。一実施の形態によれば、カラールックアップテーブルの生成には、第１の画像データから複数の一意のカラーを抽出するステップと、第１の画像データから抽出した複数の一意のカラーそれぞれに一意のキー値を割り当てるステップと、次に、カラールックアップテーブルに一意のキー値と対応するカラー情報を組み入れるステップと、が含まれる。
【００６９】
ステップ１３１６において、カラールックアップテーブルはビデオ表示ユニットに伝送される。次に、ステップ１３２０において、第１の画像データはビデオ表示ユニットに伝送される。画像データの構造は、図１５を参照して後述される。
【００７０】
ステップ１３２４において、コントローラは新たな画像データを受信する。ステップ１３２８において、画像カウンタが増分される。ステップ１３３２において、画像カウンタが、新たな画像データを単に転送するだけか、または比較して画像変更情報を生成するかを決定するためにテストされる。現在の好ましい実施の形態において、Ｎ個の画像を受信した後毎に、新たなカラールックアップテーブルを生成する。Ｎの値を、ある期間（ミリ秒）に対応するよう同調させることもできる。したがって、画像カウンタがＮよりも大きければ、コントローラはステップ１３３２の後にステップ１３１２に戻る。ステップ１３３２においてテストが成功であれば、使用される画像カウンタに応じて、画像カウンタをリセットすべきである。画像カウンタがＮ以下である場合、プロセスはステップ１３３６に続く。
【００７１】
ステップ１３３６において、新たな画像データと前に格納された画像データを比較する。これらの画像、または目下関心のある領域が同じである場合、コントローラからビデオ表示ユニットに変更を送信する必要はない。したがって、コントローラはステップ１３２４に戻り、次の新たな画像データを待つ。しかし、これらの画像が同じでない場合、ステップ１３４０において、新たな画像データのカラーが、カラールックアップテーブルのカラーと比較される。
【００７２】
ステップ１３４０での比較の結果、カラーが同じでない場合、新たなカラールックアップテーブルがステップ１３４４において生成され、ステップ１３４８においてビデオ表示ユニットに伝送される。しかし、カラーが同じである場合、プロセスはステップ１３４０からステップ１３５２に続く。
【００７３】
ステップ１３５２において、画像本体データが、格納された画像データと受信した新たな画像データ間の変更を反映して生成される。ステップ１３５６において、画像本体データとともに画像本体データディクショナリがコントローラからビデオ表示ユニットに伝送される。ステップ１３６０において、受信した新たな画像データ（すなわちステップ１３２４においてコントローラによって）がメモリに格納され、プロセスはステップ１３２４に戻り、ここで次の新たな画像データを受信する。
【００７４】
現在の好ましい実施の形態において、上述したビットマップ転送方法は、非同期プッシュモードにおいてＩＥＥＥ１３９４バスを介して行われる。したがって、各伝送後に、データが適切にその宛先で受信されるよう保証するために、承認信号がビデオ表示ユニットからコントローラに戻されることが好ましい。
【００７５】
カラールックアップテーブル
例示的なカラールックアップテーブルを図１４に示す。カラールックアップテーブル１４００は、少なくとも２つの構造要素を含む。まず、カラールックアップテーブル１４００は、一意のキー値列１４０４を含み、次にカラー指示値列１４０８を含む。現在の好ましい実施の形態によれば、一意のキー値列１４０４は、８ビットエントリを保持し、これは２５６色、すなわち２５６色指示行１４４０を一意に識別する。カラー指示値列１４０８は１６ビットエントリ（１２ビットのカラー情報１４４４および４ビットの予備空間１４４８）を保持し、これはＲＧＢまたはビデオ表示ユニットで同様に符号化されたカラー画像の生成に必要な特定のカラーコードを一意に識別する。代替の実施の形態では、カラー指示列１４０８は、３２ビットエントリ（２４ビットのカラー情報および８ビットの予備空間）を保持する。同様に、一意のキー値列１４０４は、カラールックアップテーブルにより多数の異なったカラーを表現するよう、より大きくてもよい。
【００７６】
現在の好ましい実施の形態において、カラールックアップテーブル１４００はさらに、後続するデータすなわちここではカラー指示フィールドについての情報であるデータディクショナリ１４１２を含む。データディクショナリ１４１２は、データ構造識別子フィールド１４１６、たとえば現在のデータ構造はカラールックアップデータであることを示す１バイトの値と、カラーテーブルが適用される全体画像の断片を識別するパレット断片数フィールド１４２０と、全体画像における断片数を識別する断片数値フィールド１４２４と、各カラー指示列におけるビット数を識別するパレットビット幅値フィールド１４２８とを含む。最後に、２バイト（バイト１４３２および１４３６）が、目下好ましいデータディクショナリ１４１２内に確保される。
【００７７】
データディクショナリ１４１２は約６バイト長であり、カラー指示フィールド（すべて一緒に）は約５１２バイト長である。データディクショナリ１４１２は一般に、すぐカラー指示行１４４０に続く。
【００７８】
画像データ構造
コントローラによってビデオ表示ユニットに伝送される画像データの構造を図１５に示す。画像データ構造１５００は、２つの部分、すなわち画像データデータディクショナリ１５０４および画像データ本体１５０８を含む。
【００７９】
画像データデータディクショナリ１５０４は、受信側にデータ構造が画像データであると教える画像データ識別子フィールド１５１２と、画像データ本体の構造（たとえば、画像データ本体１５０８に表されるピクセル数）を示すピクセルブロックサイズフィールド１５１６と、カラーモードフィールド１５２０（たとえば、８ビットピクセルインデックス、１６ビットカラー情報、または３２ビットカラー情報）と、ピクセルブロックアルファフィールド１５２４と、ピクセル位置の座標、たとえば左上位置１５２８、右上位置１５３２、左下位置１５３６、および右下位置１５４０を示す１６ビットのｘ、ｙ符号化値と、を含む。あるいは、ピクセル位置の座標は、特定の予め定義された関心のある領域を示す単一の値であってもよい。２つの予備バイトをデータディクショナリ１５０４に含めてもよく、これら２つのバイトは予備バイト１５４４および１５４８として図示されている。上記において別記してある場合を除き、画像データデータディクショナリ１５０４の好ましいフィールドサイズは８ビットである。
【００８０】
画像データ本体１５０８は、目下３つの異なる実施の形態を有しうる。ピクセルブロックサイズフィールド１５１６およびカラーモードフィールド１５２０は、画像データ本体が３つの実施の形態のうちのどの形態をとるかを定義する。たとえば、画像データ本体１５０８は、８ビットピクセルインデックス、１６ビットカラー情報、または３２ビットカラー情報を含むことができる。１６および３２ビットカラー情報フォーマットは、カラー情報が画像データ本体１５０８に含まれているという点を除き、図１４を参照して説明したカラー指示列１４０８とほぼ同じである。しかし、この発明の利点の１つによれば、カラー情報は、画像データ本体１５０８の構造として８ビットピクセルインデックスを採用することにより、圧縮される。
【００８１】
８ビットピクセルインデックスの実施の形態によれば、画像データを完全にビデオ表示ユニットに運ぶのに必要なのは、たった７６８（たとえば３２ｘ２４ピクセル）バイト（たとえばバイト１５５２）の画像データ本体１５０８である。したがって、カラー情報における冗長性は、カラールックアップテーブル１４００および８ビットピクセルインデックスを組み合わせて使用することにより、画像データ本体１５０８から取り除かれる。８ビットピクセルインデックスは、各カラールックアップ値が現画像における特定のピクセルを表す複数のカラールックアップ値を含む。カラールックアップ値は、カラールックアップテーブル１４００における特定の一意のキー値１４５２に対応する。したがって、画像データ本体１５０８のサイズが、たとえば７６８バイトに固定されている場合、８ビットピクセルインデックスの実施の形態は、１６ビットカラー情報の実施の形態よりも２倍多くの画像ピクセル情報と、また３２ビットカラー情報の実施の形態よりも４倍多くの画像ピクセル情報と通信できる。
【００８２】
ダブルバッファリング
図１７は、本明細書において「ダブルバッファリング」と呼ばれる、一意のビットマップ転送技術を行うのに目下好ましいハードウェア３１００のブロック図である。図１８は、ダブルバッファリングが採用される場合の、ビットマップ転送プロトコルの受信側で行われるステップを示すフローチャートである。
【００８３】
まず、図１７に目を向けると、中央サーバ３１０４が、ビデオまたはインターネットサービスプロバイダからホームエンターテイメントネットワークシステム５００にＭＰＥＧストリーム等のデータを送信する。
【００８４】
ビデオ表示アダプタ３１０８は、ホームゲートウェイ５０４、ＶＣＲ、ＤＶＤプレーヤ等の多数の家庭用電子機器のいずれであってもよい。図示において、ビデオ表示アダプタ３１０８は、好ましくはＡＴＭインタフェースである第１のインタフェース３１２４と、第１のインタフェース３１２４に接続された、好ましくはＩＥＥＥ１３９４準拠ノードであるコントローラ３１２８と、コントローラ３１２８に接続された、好ましくはＩＥＥＥ１３９４バスインタフェースである第２のインタフェース３１３２とを含む。ビデオ表示アダプタ３１０８コンポーネントは、ローカルバス３１５６を介して接続されている。さらに、コントローラ３１２８は、ＲＯＭ（図示せず）等のコンピュータ読み取り可能な記録媒体からの命令シーケンスを実行するよう構成される。命令シーケンスは、図１８を参照して後述される。最後に、ビデオ表示アダプタ３１０８は、ＡＴＭ通信リンク３１１６を介して中央サーバ３１０４に通信可能に接続される。
【００８５】
ビデオ表示ユニット３１１２は、好ましくはＩＥＥＥ１３９４通信リンク３１２０を介してビデオ表示アダプタ３１０８に通信可能に接続される。ビデオ表示ユニット３１１２は２つの大まかな部分、すなわちテレビアダプタ３１４８およびテレビ表示画面３１５２を含む。しかし、代替の実施の形態によれば、テレビアダプタ３１４８は単一のビデオ表示ユニット、すなわち同じ物理的なパッケージの一部である必要はない。むしろ、テレビアダプタ３１４８はスタンドアロン型ユニットであってもよく、またはホームゲートウェイ５０４等のビデオ表示アダプタ３１０８内に内蔵されてもよい。
【００８６】
テレビアダプタ３１４８は、ＩＥＥＥ１３９４通信リンク３１２０を受信するためのインタフェース３１３６と、２つの表示バッファ、すなわち画面上表示バッファ３１４０および画面外表示バッファ３１４４とを含むことが好ましい。インタフェース３１３６、画面上表示バッファ３１４０、および画面外表示バッファ３１４４は、ローカルバス３１６０を介して通信可能に接続されている。一実施の形態によれば、制御論理が、テレビアダプタ３１４８におけるＩＥＥＥ１３９４ノード（図示せず）によって実施される。代替の実施の形態では、制御論理がフィールドプログラマブルゲートアレイ「ＦＰＧＡ」、またはトランジスタトランジスタ論理「ＴＴＬ」回路によって実施される。
【００８７】
画面上表示バッファ３１４０が、現在テレビ表示画面３１５２に提示されている画像データを格納するよう構成される一方、画面外表示バッファ３１４４は、将来テレビ表示画面３１５２に表示される画面データを格納するよう構成される。したがって、テレビ表示画面３１５２は、リンク３１６４を介して画面上表示バッファ３１４０に接続される。しかし、代替の実施の形態では、画面上表示バッファ３１４０および画面外表示バッファ３１４４の両方をテレビ表示画面３１５２に接続して、テレビ表示画面３１５２に提示される画像データをいずれかのバッファから提示することができる。
【００８８】
以下のダブルバッファリング方法の説明に関して、図１５に示される予備バイト１５４４はここではバッファ制御レジスタとして使用されることに留意する。バッファ制御レジスタは、ダブルバッファリンクに関する情報を通信する多数のフラグの１つを保持する。たとえば、１つのフラグは画面上表示バッファフラグであり、もう１つのフラグは画面外表示バッファフラグであり、第３のフラグはスワップフラグである。これらのフラグは、より詳細に本明細書で説明する。
【００８９】
図１８は、この発明の好ましい実施の形態によるビットマップ転送データのダブルバッファリング方法を示す。ステップ３２０４において、カラールックアップテーブル１４００がテレビアダプタ３１４８によって受信され、メモリ（図示せず）に格納される。次に、ステップ３２０８において、画像データ１５００がテレビアダプタ３１４８によって受信される。ステップ３２１２から３２２０において、画像データデータディクショナリ１５０４を分析して、バッファ制御レジスタの値を決定する。
【００９０】
バッファ制御レジスタ１５４４の値が、画像データ本体１５０８に含まれる画像データが画面上表示バッファ中に配置されるべきであることを示す場合、プロセスはステップ３２２４に進み、ここで、画像データ本体１５０８における画像データが画面上表示バッファ３１４０に格納される。次に、画面上表示バッファ３１４０内の画像データがテレビ表示画面３１５２に提示される。通常は、画像データのテレビ表示画面３１５２への提示は、ステップ３２０４において受信したカラールックアップテーブル１４００からのカラー値の検索が含まれる。ある環境においては、カラールックアップテーブル１４００は、テレビアダプタ３１４８が受信した単一の画像データ１５００毎に受信されるのではなく、むしろ、カラールックアップテーブル１４００は、連続した画像データ１５００間で共用される。
【００９１】
バッファ制御レジスタ１５４４の値が、画像データ本体１５０８に含まれる画像データが画面外表示バッファ３１４４中に配置されるべきであることを示す場合、プロセスはステップ３２３２に進み、ここで、画像データ本体１５０８における画像データが画面外表示バッファ３１４４に格納される。
【００９２】
バッファ制御レジスタ１５４４の値が「スワップ」を示す場合、テレビアダプタ３１４８は画像データ本体１５０８を受信しない。むしろ、ステップ３２３６において、画面外表示バッファ３１４４に含まれる画像データが画面上表示バッファ３１４０にコピーされる。次に、プロセスは上述したようにステップ３２２８に進む。
【００９３】
ステップ３２３２および３２２８の後、またバッファ制御レジスタからの無効フラグの後も同様に、該方法の本反復は終了し、プロセスは再びステップ３２０４あるいはステップ３２０８に続くことが可能である。
【００９４】
画面上表示バッファ３１４０、画面外表示バッファ３１４４用の画像データの後に、「スワップ」フラグを連続して受信することで、テレビ表示画面３１５２にアニメーションの知覚が作り出される。本技術は、広告用に、ならびにバナーまたはテキストのスクロール用に、オブジェクトのアニメ化された動きの表示に有用である。なお、バッファ制御レジスタ１５４４はコントローラ３１２８によって制御されるため、アニメーション効果のタイミングもコントローラ３１２８によって制御される。
【００９５】
アドレスマッピング
図１６は、例示的なアドレスマッピングテーブル１６００を示す。アドレスマッピングテーブル１６００は、少なくとも４つの列と、ホームエンターテイメントネットワークシステム５００上にある装置と同じ数の行を有することが好ましい。アドレスマッピングテーブル１６００は好ましくは、３つの別個のセクションに区分けされる。第１のセクション１６２０はＩＥＥＥ１３９４サービスデータを含み、第２のセクション１６２４はＭＰＥＧサービスデータを含み、第３のセクション１６２８はＩＰサービスデータを含む。アドレスマッピングテーブル１６００は物理的には単一のテーブルであるが、各セクションは情報について自身の「ミニテーブル」を有する。
【００９６】
ＩＥＥＥ１３９４セクション１６２０では、第１列はノードユニークＩＤ列１６０４であり、該ノードユニークＩＤはノード１０４のハードウェアまたはＲＯＭに永久的に符号化される。次の群の列は、ノード属性列１６０２である。ノード属性列は、ノードに格納されているユーザが選択した／プログラムした名称によって特定ノードを識別する共通名列１６０８と、動的に割り当てられる１６ビットのnode_IDを含むnode_ID列１６１２と、ノードタイプ列１６１６と、ＩＰアドレス列１６１８とを含む。
【００９７】
ＭＰＥＧサービスセクション１６２４では、第１列はＡＴＭ  ＶＰＩ／ＶＣＩ列１６３２であり、次の列はプログラム情報列１６３６であり、第３列はＩＥＥＥ１３９４等時性チャネル列１６４０であり、最後の列はノードユニークＩＤ列１６０４である。
【００９８】
ＩＰサービスセクション１６２８では、第１列はＡＴＭ  ＶＰＩ／ＶＣＩ列１６３２であり、次の列はＩＰアドレス列１６１８であり、第３列はnode_ID列１６１２であり、最後の列はノードユニークＩＤ列１６０４である。
【００９９】
バスリセットが発生すると、アドレスマッピングテーブル１６００がＩＥＥＥ１３９４ドライバ（たとえば図８に示すＩＥＥＥ１３９４ドライバ８１６）よって生成される。ＩＥＥＥ１３９４ドライバは、ＩＥＥＥ１３９４バス（たとえば、図５に示すＩＥＥＥ１３９４バス５６８）における各ノードから、該ノードのノードユニークＩＤおよび他の情報を識別する応答を受信する。ノードから受信した情報に基づいて、ＩＥＥＥ１３９４ドライバは該ノードユニークＩＤをアドレスマッピングテーブル１６００に追加し、それからさらなる情報（たとえば共通名、ノード容量、およびＩＰアドレス）について特定ノードを照会する。ＩＥＥＥ１３９４ドライバは、該ノードについてnode_ID列１６１２に値を割り当てる。
【０１００】
本明細書に記載した方法およびプロセスは、特定のハードウェア構成においてではなく、むしろ、永続ディスク、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、揮発性メモリ（たとえばランダムアクセスメモリ「ＲＡＭ」）、または不揮発性メモリ（フラッシュメモリや読み取り専用メモリ「ＲＯＭ」等）等のコンピュータ読み取り可能な記録媒体に格納された、１つまたは複数の命令シーケンスを実行する１つまたは複数のプロセッサによって行われることが好ましい。しかし、この発明のより広義の精神において、本明細書に記載した方法およびプロセスの様々な態様を、ＴＴＬ論理、またはゲートアレイ等のハードウェアコンポーネントを介して実施できる。さらに、ソフトウェアコンポーネントのファームウェアレベルの好み、たとえば、一般にＲＯＭに格納されるソフトウェアコンポーネントの低レベルプログラム実施、またはソフトウェアコンポーネントのアプリケーションレベルの好み、たとえばファームウェア、オペレーティングシステムカーネル、および／またはサーバプロセス上で実行されるソフトウェアコンポーネントの高レベルプルグラム実施、が望ましい場合、好みが特定される。好みが特定されていない場合、いずれの実施レベルも許容可能である。したがって、本明細書に含まれる文書での説明および添付図面は限定としてではなく例示的なものと認識されるべきである。
【符号の説明】
【０１０１】
１０８  プロセッサ、１１６  メモリ、２０４  ブリッジ、４０８  リンク層、４１２  物理層、４１６  シリアルバス管理、４２０  等時性資源マネージャ、４２４  バスマネージャ、４２８  ノードコントローラ、５０４  ホームゲートウェイ、６０４  ＴＶアダプタ、６１２  １３９４上ＩＰ、６１６  １３９４上ＭＰＥＧ、６１８  地上、６２０  衛星、６２４  電話、６２８  ファイバ、６３２  同軸、６４４  アクセスネットワーク、６４８  ビデオサービスプロバイダ、６５０  地上放送Ｉ／Ｆ、６６８  家庭使用ＩＰルータ機能、６７２  ＭＰＥＧ２ストリーム処理機能、６７６  アクセスネットワーク接続機能、６８０  ホームネットワーク制御／管理機能、６８２  他の存在する／ダウンロード可能な機能、７０８  ＰＣＩブリッジおよび周辺機器コントローラ、７４４  レジスタ、７４８  電源、７５２  リセット、７５６  クロック、８０４  ＯＳカーネル、８０８  サービスコントローラ、８１６  ＡＴＭドライバ、８２０  １３９４ドライバ、８２４  ハードウェア、９１６  ＭＰＥＧネットワーク、９２０  ＩＰネットワーク、９２４  アクセスネットワーク、９３２  ＴＶアダプタ、１０１２  １３９４上ＩＰ、１２０８  ＡＰ（ビットマップグラフィックス）、３１０４  中央サーバ、３１２８  コントローラ、３１４０  画面上バッファ、３１４４  画面外バッファ、３１５２  表示画面。
【図１】
2009219148.tif 000004
【図２】
2009219148.tif 000005
【図３】
2009219148.tif 000006
【図４】
2009219148.tif 000007
【図５】
2009219148.tif 000008
【図６】
2009219148.tif 000009
【図７】
2009219148.tif 000010
【図８】
2009219148.tif 000011
【図９】
2009219148.tif 000012
【図１０】
2009219148.tif 000013
【図１１】
2009219148.tif 000014
【図１２】
2009219148.tif 000015
【図１３】
2009219148.tif 000016
【図１４】
2009219148.tif 000017
【図１５】
2009219148.tif 000018
【図１６】
2009219148.tif 000019
【図１７】
2009219148.tif 000020
【図１８】
2009219148.tif 000021