(57)【特許請求の範囲】
【請求項１】
データを伝送するデータフレームの表示時間値を算出するデータフレームの表示時間算出方法において、
上記データフレームを送信する前に、データを伝送しない幾つかの先行フレームを送信するステップと、
上記先行フレームからタイムスタンプ値を得るステップと、
上記タイムスタンプ値を用いて、上記データフレームの表示時間値を決定するステップとを有するデータフレームの表示時間算出方法。
【請求項２】
上記表示時間値を決定するステップは、上記タイムスタンプ値に、上記幾つかの先行フレームを送信するのにかかる時間を表する値を加算することを特徴とする請求項１記載のデータフレームの表示時間算出方法。
【請求項３】
上記表示時間値を上記データフレームに挿入するステップを有する請求項１記載のデータフレームの表示時間算出方法。
【請求項４】
上記表示時間値を上記データフレームの最初のパケットに挿入することを特徴とする請求項３記載のデータフレームの表示時間算出方法。
【請求項５】
上記先行フレームの数は、４であることを特徴とする請求項１記載のデータフレームの表示時間算出方法。
【請求項６】
上記先行フレームは、ダミーフレームであることを特徴とする請求項１記載のデータフレームの表示時間算出方法。
【請求項７】
複数のパケットを含むデータストリームを送信するデータストリーム送信方法において、
先行パケットを送信し、該先行パケットからタイムスタンプ値を得て、該タイムスタンプ値を用いて、送信するパケットの表示時間値を算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップとを有するデータストリーム送信方法。
【請求項８】
上記表示時間値を算出するステップは、上記先行パケットからのタイムスタンプ値に、該先行パケットと上記送信するパケット間の多数のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項７記載のデータストリーム送信方法。
【請求項９】
上記送信するパケットは、ビデオフレームの一部であることを特徴する請求項８記載のデータストリーム送信方法。
【請求項１０】
上記送信するパケットは、ビデオフレーム内の最初のパケットであることを特徴とする請求項９記載のデータストリーム送信方法。
【請求項１１】
複数のパケットを含むデータストリームを送信するデータストリーム送信方法において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する１つ以上のダミーパケットを、送信ノードから送信するステップと、
上記ダミーパケットの後に送信するパケットの表示時間値を、既に送信された多数のダミーパケット及びパケットからのタイムスタンプ値を用いて算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップと、
上記表示時間値が挿入されたパケットを上記送信ノードから受信ノードに伝送するステップを有するデータストリーム送信方法。
【請求項１２】
上記データストリーム内の複数のパケットは、１つ以上のフレームにグループ化されることを特徴とする請求項１１記載のデータストリーム送信方法。
【請求項１３】
上記表示時間値を算出するステップ及び表示時間値を挿入するステップは、各フレームの最初のパケットに対して繰り返されることを特徴とする請求項１２記載のデータストリーム送信方法。
【請求項１４】
上記表示時間値を算出するステップは、上記既に送信されたパケットからのタイムスタンプ値に、該既に送信されたパケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項１３記載のデータストリーム送信方法。
【請求項１５】
上記データストリームは、アイソクロノスデータストリームであることを特徴とする請求項１４記載のデータストリーム送信方法。
【請求項１６】
上記送信ノードと受信ノードは、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークによって互いに接続されていることを特徴とする請求項１５記載のデータストリーム送信方法。
【請求項１７】
上記表示時間値は、上記パケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項１６記載のデータストリーム送信方法。
【請求項１８】
複数のパケットを含むデータストリームを送信するデータストリーム送信装置において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する複数のパケットを、送信ノードから受信ノードに送信する送信回路と、
先行パケットからタイムスタンプ値を得て、該タイムスタンプ値を用いて、該先行パケットから多数のパケットの後に送信するパケットの表示時間値を算出し、該表示時間値を該送信するパケットに挿入した後、該表示時間値が挿入されたパケットを送信する制御アプリケーションとを有するデータストリーム送信装置。
【請求項１９】
上記送信回路は、上記送信するパケットを、上記制御アプリケーションによって上記表示時間値が挿入された後に、送信することを特徴する請求項１８記載のデータストリーム送信装置。
【請求項２０】
上記表示時間値は、上記先行パケットから得られたタイムスタンプ値に、該先行パケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することによって算出されることを特徴とする請求項１９記載のデータストリーム送信装置。
【請求項２１】
上記データストリーム内の複数のパケットは、１つ以上のフレームにグループ化されることを特徴とする請求項２０記載のデータストリーム送信装置。
【請求項２２】
上記制御アプリケーションは、各フレームの最初のパケットの表示時間値のみを算出することを特徴とする請求項２１記載のデータストリーム送信装置。
【請求項２３】
上記データストリームは、アイソクロノスデータストリームであることを特徴とする請求項２１記載のデータストリーム送信装置。
【請求項２４】
上記送信ノードと受信ノードは、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークによって互いに接続されていることを特徴とする請求項２３記載のデータストリーム送信装置。
【請求項２５】
上記表示時間値は、上記送信するパケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項２４記載のデータストリーム送信装置。
【請求項２６】
１つ以上のフレームにグループ化される複数のパケットを含むデータのアイソクロノスストリームを、送信ノードからＩＥＥＥ１３９４シリアルバス（１９９５年版）を介して受信ノードに伝送するデータのアイソクロノスストリーム伝送方法において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する１つ以上のダミーパケットを、上記送信ノードから上記受信ノードに送信するステップと、
上記ダミーパケットの後に送信するパケットの表示時間値を、既に送信された多数のダミーパケット及びパケットからのタイムスタンプ値を用いて算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップと、
上記表示時間値が挿入されたパケットを上記送信ノードから上記受信ノードに伝送するステップと、
上記表示時間値を算出するステップ及び表示時間値を挿入するステップを、各フレームにおける最初のパケットに対して繰り返すステップとを有するデータのアイソクロノスストリーム伝送方法。
【請求項２７】
上記表示時間値を算出するステップは、上記既に送信されたパケットからのタイムスタンプ値に、該既に送信されたパケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項２６記載のデータのアイソクロノスストリーム伝送方法。
【請求項２８】
上記表示時間値は、上記送信するパケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項２７記載のデータのアイソクロノスストリーム伝送方法。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、機器間で情報を転送する分野に関する。特に、本発明は、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上の機器間で時間変動が許容されない情報（time sensitive information）を転送する分野に関する。
【０００２】
【発明の背景技術】
ＩＥＥＥ１３９４規格（１９９５年版）、すなわち「高性能シリアルバスに対する１３９４規格（１９９５年版）」は、非同期フォーマットのデータ転送とアイソクロノスフォーマットのデータ転送（asynchronous and isochronous format data transfer）の両方をサポートする安価な高速シリアルバスアーキテクチャを実現した国際規格である。アイソクロノスデータ転送は、リアルタイム転送であり、送信アプリケーションと受信アプリケーションの両方における重要なインスタンス（significant instance）間の時間間隔（time interval）が同じ継続時間（duration）を有する。アイソクロノス的に転送されるデータの各パケットは、それ自身が有する周期（time period）で転送される。データのアイソクロノス的転送の理想的なアプリケーションの具体例としては、ビデオレコーダからテレビジョン受信機へのデータ転送がある。ビデオレコーダは、映像及び音声を記録するとともに、データを離散的な固まり（chunk）、すなわちパケットとして保存する。そして、ビデオレコーダは、記録された映像及び音声を表す各パケットを、テレビジョン受信機での表示によって制限される周期で転送する。ＩＥＥＥ１３９４規格のバスアーキテクチャ（１９９５年版）は、アプリケーション間にアイソクロノスデータ転送のための複数のチャンネル（multiple channel）を提供する。データが適切なアプリケーションによって受信されることを保証するために、６ビットのチャンネル番号が、データとともに報知される。これによって、複数のアプリケーションは、アイソクロノスデータをバス構造を介して同時に送信することができる。非同期転送は、伝統的なデータ転送動作であり、転送元から転送先に大量のデータを、できるだけ速く転送するものである。
【０００３】
ＩＥＥＥ１３９４規格（１９９５年版）は、ディジタル機器を相互接続する高速シリアルバスを提供するとともに、汎用のＩ／Ｏ接続を提供する。ＩＥＥＥ１３９４規格（１９９５年版）は、アプリケーションのディジタルインタフェースを定義するものであり、これによって、アプリケーションは、ディジタルデータをバスを介して送信する前に、アナログデータに変換する必要がない。同様に、受信アプリケーションは、バスからアナログデータでなく、ディジタルデータを受信するので、アナログデータをディジタルデータに変換する必要はない。ＩＥＥＥ１３９４規格（１９９５年版）によって規定されるケーブルは、そのような機器を接続するために用いられている他の嵩張ったケーブルと比較して、サイズが非常に細い。ＩＥＥＥ１３９４規格（１９９５年版）のバスが活線状態においても、機器を取り付けたり、取り外したりすることができる。機器が取り付けられたり、取り外されたりすると、バスは、それ自体を自動的に再構成し、既存のノード間でデータを転送する。ノードは、バス構造上の固有のアドレスを有する論理構成体（logical entity）とみなされる。各ノードは、識別ＲＯＭ（identification ROM）と、標準化された制御レジスタ（control register）のセットと、それ自身のアドレス空間（address space）とを有する。
【０００４】
ＩＥＥＥ１３９４規格（１９９５年版）のケーブル環境（cable environment）は、ポイントツーポイントリンクで接続されたノードのネットワークであり、各ノードの物理的接続におけるポートと、これらのポート間のケーブルとを含んでいる。ＩＥＥＥ１３９４シリアルバス（１９９５年版）のケーブル環境における物理的トポロジは、分岐が有限であり、複数のポートが環状に接続されないネットワークである。このケーブル環境における主な制約は、ノードが閉ループを形成することなく、互いに接続されなければならないということである。
【０００５】
ＩＥＥＥ１３９４規格（１９９５年版）のケーブルは、異なるノード上のポートを互いに接続する。各ポートは、終端器（terminator）と、送受信機（transceiver）と、単純な論理回路（simple logic）とを含んでいる。ノードは、その物理的接続において複数のポートを備えることができる。ケーブルとポートは、ノード間のバス中継器（bus repeater）として機能し、１つの論理的バスが実現される。各ノードにおけるケーブルの物理的接続は、１つ以上のポートと、調停論理回路（arbitration logic）と、再同期回路（resynchronizer）と、エンコーダ（encoder）とを含んでいる。各ポートは、ケーブル媒体インタフェースを備え、そこにケーブルのコネクタが接続される。調停論理回路は、ノードがバスにアクセスするのを調停する。再同期回路は、受信データストローブによってエンコードされたデータビットから、ノード内のアプリケーションによって使用される局部クロックに同期したデータビットを生成する。エンコーダは、このノードによって送信されるデータ又は再同期回路によって受信されたデータのうちの他のノード宛のデータを、ＩＥＥＥ１３９４シリアルバス（１９９５年版）を介して伝送するために、データストローブのフォーマットにエンコードする。これらの電気部品（component）を用いることによって、ケーブル環境における物理的なポイントツーポイントのトポロジは、システムのより高いレイヤにとって望ましい仮想的な同報通信バス（virtual broadcast bus）とみなされる。これは、物理的接続における１つのポートで受信される全てのデータを局部クロックに同期させ、物理的接続における他の全てのポートから中継して出力することによって、実現される。
【０００６】
２つの機器間でアイソクロノスデータを転送するとき、アイソクロノスデータの各パケットには、パケットの転送サイクルにおける現在のバスタイム（bus time）がタイムスタンプとして付けられる（time-stamped）。受信機器においてパケットが正しい転送サイクルで受信されないときは、パケットは、通常、その受信機器において破棄され、データは失われる。これは、特に、時間変動が許容されないビデオデータを伝送するときに起こる。ビデオデータのフレームを伝送するとき、ビデオデータの受信フレームの最初のパケットは、そのパケットのタイムスタンプ値と比較して、認められた時間の境界（recognized boundary of time）内で受信されなければならない。フレームの最初のパケットがこの時間の境界の外側で受信されたときは、フレーム全体が、通常、その受信機器で破棄され、処理されない。
【０００７】
このタイムスタンプ値は、送信機器内におけるサイクルタイムレジスタから得られ、ノードの現在のバスタイミングを維持する。サイクルタイムレジスタは、互いに現在のサイクルを表す値を形成するsecond_countフィールドと、cycle_countフィールドとを有する。このサイクル値は、cycle_offsetフィールドからのキャリ毎にインクリメントされる。cycle_offsetフィールドは、システムクロックの変化点（transition of system clock）で更新される。cycle_offsetフィールド内の値は、その値が３０７１になった後の変化点においてゼロにされ、cycle_countフィールド内の値はインクリメントされる。cycle_offsetフィールド内の値は、現在のアイソクロノスサイクルの小数部（fractional part）である。ノード内のアプリケーションからデータを送信するとき、アプリケーションは、サイクルタイムレジスタから現在のバスタイミングを得なければならなく、そして、現在のバスタイミング値をパケットにロードし、そのパケットをＩＥＥＥ１３９４シリアルバス（１９９５年版）を介して受信ノードに送信する。送信ノードにおいて、サイクルタイムレジスタから現在のバスタイミング値が出力される時間と、アプリケーションがサイクルタイムレジスタから現在のバスタイミング値が供給されてパケットに挿入され、実際にパケットがＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークを介して送信されるまでの時間との間には相当な遅延がある。この遅延が大きいときは、アプリケーションによって受信される現在のバスタイミング値は破棄される（obsolete）とともに、適切な時間の境界の外側とされ、この時間で実際に伝送されているパケットは、受信機器で無効なものとされる。
【０００８】
パケットが受信機器によって正しく処理され、無効にされないためには、送信されたパケットが受信機器において適切な時間の境界内で受信されることを保証する方法及び装置が必要である。また、ＩＥＥＥ１３９４シリアルバス（１９９５年版）上のノードからのアイソクロノスパケットの実際の送信に対応した現在のバスタイミング値を予測する方法及び装置が必要である。
【０００９】
【発明の開示】
ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上を伝送されるアイソクロノスデータパケットにタイムスタンプを予測的に付けるために、受信ノードにアイソクロノスデータパケットのストリームを送信するアプリケーションは、最初に、多数のパケットからそれぞれ構成される幾つかのダミーフレームを送信する。例えば、これらのアイソクロノスデータパケットは、ビデオデータのフレームを構成するものである。アプリケーションは、これらのダミーパケットから、各パケットの共通アイソクロノスパケット（common isochronous packet：以下、ＣＩＰという）ヘッダ内のタイムスタンプ値を得る。アプリケーションは、これらの得られたタイムスタンプ値を用いて、送信する各データフレームの表示時間値を算出する。これから送信するビデオフレームの表示時間値を、送信キュー（transmit queue）に入れる前に、送信したビデオフレームから得られるタイムスタンプ値を用いて算出する。一旦フレームの表示時間値が算出されると、その値は、アプリケーションによって、そのフレーム内の最初のパケットのＣＩＰヘッダに挿入される。表示時間値が挿入されたフレームは、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上の受信ノードに送信するために、送信キューに送られる。
【００１０】
【発明を実施するための最良の形態】
図１は、具体的なＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークを示すブロック図であり、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークは、コンピュータ装置（computer system）とビデオカメラとを含んでいる。コンピュータ装置１０は、付随の表示装置（associated display）１２を備え、ＩＥＥＥ１３９４シリアルバス（１９９５年版）のケーブル１６によって、ビデオカメラ１４に接続されている。ビデオデータと付随のデータは、ＩＥＥＥ１３９４シリアルバス（１９９５年版）のケーブル１６を介して、ビデオカメラ１４とコンピュータ装置１０間で伝送される。
【００１１】
図２は、コンピュータ装置１０の内部構成を示すブロック図である。コンピュータ装置１０は、中央処理装置（central processor unit：ＣＰＵ）２０と、メインメモリ３０と、ビデオメモリ２２と、大容量記憶装置（mass storage device）３２と、ＩＥＥＥ１３９４規格（１９９５年版）のインタフェース回路２８とを備え、これらの全ては、従来の双方向システムバス３４によって互いに接続されている。インタフェース回路２８は、物理インタフェース回路（physical interface circuit）４２を備え、ＩＥＥＥ１３９４シリアルバス（１９９５年版）上の情報を送受信する。物理インタフェース回路４２は、ＩＥＥＥ１３９４シリアルバス（１９９５年版）のケーブル１６を介してビデオカメラ１４と接続されている。この実施例において、インタフェース回路２８は、コンピュータ装置１０におけるＩＥＥＥ１３９４規格（１９９５年版）のインタフェースカード（interface card）として実現されている。なお、当業者にとって、インタフェース回路２８をマザーボードに実装する等の他の適切な形態でコンピュータ装置１０内に実現することができることは、明らかである。大容量記憶装置３２は、磁気、光又は光磁気のストレージ技術、あるいは他の利用可能なストレージ技術を用いた固定及び取り外し可能な媒体を有する。システムバス３４は、ビデオメモリ２２とメインメモリ３０の全ての記憶領域をアドレッシングするためのアドレスバスを含んでいる。また、システムバス３４は、ＣＰＵ２０、メインメモリ３０、ビデオメモリ２２、大容量記憶装置３２、インタフェース回路２８間でデータを転送するためのデータバスを含んでいる。
【００１２】
また、コンピュータ装置１０には、キーボード３８と、マウス４０と、付随の表示装置１２とを含む多くの周辺入出力装置（peripheral input and output device）が接続されている。キーボード３８は、ＣＰＵ２０に接続されており、ユーザはデータ及び制御命令（control command）をコンピュータ装置１０に入力することができる。従来のマウス４０は、キーボード３８に接続されており、カーソル制御機器（cursor control device）として、表示装置１２上に表示されたグラフィックイメージ（graphic image）を操作するためのものである。
【００１３】
ビデオメモリ２２のポートは、ビデオマルチプレックス及びシフト回路２４に接続されており、ビデオマルチプレックス及びシフト回路２４はビデオアンプ２６に接続されている。ビデオアンプ２６は、表示装置１２を駆動する。ビデオマルチプレックス及びシフト回路２４とビデオアンプ２６は、ビデオメモリ２２内に記憶されている画素データを、表示装置１２での使用に適したラスタ信号に変換する。
【００１４】
図３は、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。このデータパケットのフォーマットも、ＩＥＣ１８８３規格に準拠している。data_lengthフィールドは、共通アイソクロノスパケット（ＣＩＰ）ヘッダ内のバイト数も含む、データフィールド内のデータのバイト数を表す値を有する。channelフィールドは、アイソクロノスパケットが伝送されるチャンネル番号を含んでいる。tCodeフィールドは、パケットのトランザクションコードを含んでいる。パケットがアイソクロノスデータパケットのときは、tCodeフィールドの値は、Ａｈ又はＣｈである。syフィールドは、現在のアイソクロノスパケット内のデータをあるアプリケーションの特別なイベント（specific event）に同期させるアプリケーションにおいて用いられる同期フラグが含まれている。sourceIDフィールドは、パケットを送信しているノードの物理的な識別コード（physical identifying code）を表す６ビットの値を含んでいる。他のＣＩＰヘッダフィールド（other CIP header field）内の値は、パケットで伝送されるデータのフォーマットに依存する。データフィールド（data field）は、それが存在するときは、パケットで伝送されるコンテンツデータ（content data）を含んでいる。
【００１５】
図４は、アイソクロノスデータパケット内におけるＣＩＰヘッダのフォーマットを示す図である。ＣＩＰヘッダ内におけるSIDフィールドは、送信ノードのソースノードＩＤ（source node ID）の値を含んでいる。DBSフィールドは、データブロックの大きさをクワッドレッド（quadlet）で表す値を含んでいる。FNフィールドは、ソースパケット（source packet）をデータブロックに分割した際のブロック数を表す端数（fraction number）を含んでいる。QPCフィールドは、分割されたデータブロックの大きさを等しくするためにソースパケットに加えられたダミーデータのクワッドレッド数を表す値を含んでいる。FNフィールドが、ソースパケットが分割されないことを示しているときは、QPCフィールドは、ゼロの値を含む。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるか否かを表す。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるときは、論理「１」に設定される。RSVフィールドは、将来の拡張のために確保されている。DBCフィールドは、損失したブロックを検出するためのデータブロックの連続カウンタ（continuity counter）である。FMTフィールドは、パケットのフォーマットを識別するためのフォーマット識別子を含んでいる。FDFフィールドは、フォーマットに依存したフィールドであり、パケットのフォーマットに依存している。SYTフィールドは、送信機と受信機を同期させるために用いられる。
【００１６】
ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上でアイソクロノスデータを伝送するとき、SYTフィールドは、フレームの表示時間（presentation time）のタイムスタンプ値（time stamp value）を含んでいる。受信ノードは、このタイムスタンプ値を用いて、ビデオデータの正しい時間の境界（correct boundary of time for video data）内においてデータが表示されることを確実にする。上述したように、フレームが正しい時間の境界内に入らないときは、受信機器は、全フレームを無効にする。
【００１７】
送信データが適切なタイムスタンプ値を含むことを保証するために、本発明を適用したアプリケーションは、最初に、ダミーデータを含む幾つかのフレーム（以下、ダミーフレーム（dummy data frame）という）を送信することによって、タイムスタンプ値を算出する。データフレームは、多くのアイソクロノスパケットからなる。フレーム当たりのアイソクロノスパケット数は、送信データの種類に依存する。ビデオでは、ビデオデータを含むフレーム（以下、単にデータフレーム又はビデオフレーム（video frame）という）は、ディジタルビデオの１フレームとしてもよい。最初のダミーフレームが送信された後、この最初のダミーフレーム内の最後に送信されたパケットのタイムスタンプ値が得られる。この値から、タイムスタンプ値が得られたダミーフレームより数フレーム後のビデオフレームの最初のパケットに対する新たなタイムスタンプ値、すなわち表示時間値が算出される。本発明の好ましい実施例においては、タイムスタンプ値が得られたデータフレームより４フレーム後の、すなわちダミーフレームの好ましい数より１少ない数のフレームの後のビデオフレームの表示時間値が、算出される。この表示時間値は、一旦算出されると、適切なデータフレーム内の最初のパケットのＣＩＰヘッダのSYTフィールドに書き込まれ、ＩＥＥＥ１３９４シリアルバス（１９９５年版）上の受信ノードに送信するために、送信キューに送られる。
【００１８】
図５は、本発明に基づき、アイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。処理はステップ５０から開始し、コンピュータ装置１０内のアプリケーションは、アイソクロノスデータストリームをビデオカメラ１４に送信する準備をする。ステップ５２において、アプリケーションは、ダミーフレームをアイソクロノス送信キューに入れる。各ダミーフレームは、ダミーデータのＩＥＥＥ１３９４規格（１９９５年版）の数多くのアイソクロノスパケットからなる。ダミーフレーム当たりのダミーパケットの数は、送信データの種類によって決定される。ステップ５４において、アプリケーションは、ダミーフレームをコンピュータ装置１０からＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク１６を介してビデオカメラ１４に送信し始める。本発明の好ましい実施例においては、５つのダミーフレームが、実際の（actual）ビデオデータを含んでいる実際のデータフレームがビデオカメラ１４に送信される前に、送信される。なお、アプリケーションによって送信されるダミーフレームの数は、適切な数とすることができる。ステップ５６において、アプリケーションは、ダミーフレームが送信されたことの通知を受けるまで、待機する。
【００１９】
最初のダミーフレームが送信された後、アプリケーションは、ＩＥＥＥ１３９４規格（１９９５年版）のインタフェース回路２８から、このダミーフレーム内の最後のパケットのタイムスタンプ値を得る。ステップ５８において、このタイムスタンプ値から、最初の実際のデータフレーム内の最初の実際のパケット（real packet）に対する表示時間値が算出される。最初の実際のデータフレームは、６番目の送信フレームであり、５つのダミーフレームの後に送信される。この表示時間値（PresentationTime）は、以下の式を用いて算出される。
【００２０】
PresentationTime=((# of Dummy Frames-１)*DataFrameXmtTimeLength)
+TimeStamp+PresentationTimeFactor
DataFrameXmtTimeLength値は、各データフレームの時間の長さを表し、データフレーム当たりのアイソクロノスパケット数にパケット当たりのアイソクロノス転送時間を乗じることによって算出される。パケット当たりのアイソクロノス転送時間は、ＩＥＥＥ１３９４規格（１９９５年版）にあるように、パケット当たりの固定された値である。タイムスタンプ値が得られた最初のダミーフレームと表示時間値が算出された実際のデータフレーム間に送信されるフレーム数を表す適切な時間を加算するために、DataFrameXmtTimeLength値には、ダミーフレーム数より１少ない値が乗じられる。TimeStamp値は、データフレーム内の前のパケット（previous packet）の送信から導かれるタイムスタンプ値である。最初の実際のビデオフレームのTimeStamp値は、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムに等しい。本発明の好ましい実施例においては、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムからのサイクルカウント値（cycle count value）だけが、TimeStamp値として用いられる。パケットの表示時間値を算出するのに、パケットが送信されるサイクルだけが必要であるので、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムにおけるサイクルオフセット値は、用いられない。サイクルにおけるオフセット時間は、表示時間値を算出するために必要とされない。なお、当業者にとって、全てのサイクルタイム値はTimeStamp値として代わりに用いることができることは、明らかである。PresentationTimeFactor値は、タイムスタンプ値を表示時間の適切な値に変換するのに用いられるアイソクロノスサイクル単位（unit of isochronous cycle）の要素である。PresentationTimeFactor値は、特定の実現方法（specific implementation）に依存し、システムの実現方法及び動作特性によって変化する。PresentationTimeFactor値は、２つの要素からなり、以下の式を用いて算出される。
【００２１】
PresentationTimeFactor=tdiff+TransmissionDelayLimit
tdiff値は、パケットが送信されたときの実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の差を表している。パケットが送信された実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の遅延は、特定のハードウェアの実現方法によって決まる。ハードウェアが、パケットが送信された実時間を返すことをサポートしているときは、tdiff値はゼロに等しい。TransmissionDelayLimit値は、オーディオ／ビデオ機器によって伝送されるパケットに許容される最大サイクル数に等しい。この値は、特定のハードウェア機器のための「民生用ディジタルＶＣＲの仕様（Specifications of Consumer-Use digital VCRs）」において、記述されている。例えば、この値は、４５０μｓ又は３サイクルである。
【００２２】
データフレームの表示時間値が一旦算出されると、このデータフレームにタイムスタンプを付ける（time stamp）ことができる。ステップ６０において、表示時間値が、データフレーム内に含まれている最初のアイソクロノスデータパケットのSYTフィールドに書き込まれる。ステップ６２において、データフレームは、ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークを介して伝送するために送信キューに入れられる。そして、ステップ６４において、送信データストリーム内に入れるデータフレームが更にあるかが判定される。送信するデータフレームが更にあるときは、送信する各データフレーム毎にステップ５６〜６２が繰り返され、各データフレームの表示時間の適切な値が、表示時間値を算出する対象のフレームの４フレーム前に送信されたフレームから得られるタイムスタンプ値に基づいて、計算される。全てのデータフレームにタイムスタンプが適切に付けられ、送信キューに入れられると、ステップ６６において処理が終了する。
【００２３】
図６は、実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスフレームの伝送ストリームの構成を示す図である。５つのダミーフレーム８０，８２，８４，８６，８８は、実際のビデオフレーム９０，９２の前に、順次送信される。アプリケーションは、５つのダミーフレーム８０，８２，８４，８６，８８から、データストリーム内の実際のビデオフレーム９０，９２の表示時間値を算出する。上述したように、実際のビデオフレーム９０の表示時間値は、最初のダミーフレーム８０から得られるタイムスタンプ値を用いて算出される。同様に、２番目の実際のビデオフレーム９２の表示時間値は、２番目のダミーフレーム８２から得られるタイムスタンプ値を用いて算出される。一旦ビデオフレームの表示時間値が算出されると、この表示時間値は、ビデオフレーム内における最初のパケットのＣＩＰヘッダのSYTフィールドに書き込まれる。ビデオフレーム内の残りのパケットは、従来の方法により、ビデオフレームが送信されるサイクルの現在のバスタイミングによってタイムスタンプが付けられる。ビデオフレームの表示時間値が算出され、ＣＩＰヘッダのSYTフィールドに書き込まれると、ビデオフレームは、適切な時間にＩＥＥＥ１３９４シリアルバス（１９９５年版）を介して受信ノードに伝送するために、送信ノードの送信キューに加えられる。
【００２４】
この処理は、データストリーム内の各データフレームに対して、データストリーム内の全てのデータフレームがコンピュータ装置１０からビデオカメラ１４に伝送されるまで、繰り返される。このように、データフレームの適切なタイムスタンプ値を算出し、その値を、データフレーム内における最初のパケットのＣＩＰヘッダのSYTフィールドに挿入することによって、アプリケーションは、ビデオカメラ１４によって受信されたときに、ビデオデータのフレームが正しく処理され、無効にされないことを保証する。
【００２５】
本発明の好ましい実施例は、コンピュータ装置１０内のソフトウェアアプリケーションからＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークを介してビデオカメラ１４にアイソクロノスデータを伝送するものである。しかしながら、適切に構成された２つのアプリケーション及び／又は機器間で時間変動が許容されない（time sensitive）データフレーム及びデータパケットを伝送する際に、タイムスタンプ値が、受信されたときに、伝送されるデータのフレーム又はパケットのサイクルに対して適切であることを確実にするために、本発明を適用することができることは、当業者にとって明らかである。本発明の好ましい実施例では、全てのフレームに対するタイムスタンプ値が算出され、フレームの最初のパケットに書き込まれる。パケットがビデオフレームの一部であるかないかに関わらず、複数のパケットのそれぞれにタイムスタンプを適切に付けるために、本発明を適用することができることは、当業者にとって明らかである。
【００２６】
発明の構成及び動作の原理を容易に理解できるように、本発明を具体的な実施例を用いて詳細に説明したが、特許請求の範囲は、このような具体的な実施例に限定されるものではない。発明の趣旨及び範囲から逸脱することなく、説明のために選択された実施例に変更を加えることができることは、当業者にとって明らかである。
【図面の簡単な説明】
【図１】  コンピュータ装置とビデオカメラとを含むＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワークの構成を示すブロック図である。
【図２】  コンピュータ装置の内部構成を示すブロック図である。
【図３】  ＩＥＥＥ１３９４シリアルバス（１９９５年版）ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。
【図４】  アイソクロノスデータパケット内におけるＣＩＰヘッダのフォーマットを示す図である。
【図５】  本発明に基づきアイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。
【図６】  実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスビデオフレームの伝送ストリームの構成を示す図である。
【図１】
0003977594.tif 000002
【図２】
0003977594.tif 000003
【図３】
0003977594.tif 000004
【図４】
0003977594.tif 000005
【図５】
0003977594.tif 000006
【図６】
0003977594.tif 000007