JP3977594B6 - データフレームの表示時間算出方法及びデータストリーム送信装置 - Google Patents
データフレームの表示時間算出方法及びデータストリーム送信装置 Download PDFInfo
- Publication number
- JP3977594B6 JP3977594B6 JP2000536201A JP2000536201A JP3977594B6 JP 3977594 B6 JP3977594 B6 JP 3977594B6 JP 2000536201 A JP2000536201 A JP 2000536201A JP 2000536201 A JP2000536201 A JP 2000536201A JP 3977594 B6 JP3977594 B6 JP 3977594B6
- Authority
- JP
- Japan
- Prior art keywords
- packet
- value
- data
- display time
- data stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【0001】
【発明の技術分野】
本発明は、機器間で情報を転送する分野に関する。特に、本発明は、IEEE1394シリアルバス(1995年版)ネットワーク上の機器間で時間変動が許容されない情報(time sensitive information)を転送する分野に関する。
【0002】
【発明の背景技術】
IEEE1394規格(1995年版)、すなわち「高性能シリアルバスに対する1394規格(1995年版)」は、非同期フォーマットのデータ転送とアイソクロノスフォーマットのデータ転送(asynchronous and isochronous format data transfer)の両方をサポートする安価な高速シリアルバスアーキテクチャを実現した国際規格である。アイソクロノスデータ転送は、リアルタイム転送であり、送信アプリケーションと受信アプリケーションの両方における重要なインスタンス(significant instance)間の時間間隔(time interval)が同じ継続時間(duration)を有する。アイソクロノス的に転送されるデータの各パケットは、それ自身が有する周期( time period )で転送される。データのアイソクロノス的転送の理想的なアプリケーションの具体例としては、ビデオレコーダからテレビジョン受信機へのデータ転送がある。ビデオレコーダは、映像及び音声を記録するとともに、データを離散的な固まり(chunk)、すなわちパケットとして保存する。そして、ビデオレコーダは、記録された映像及び音声を表す各パケットを、テレビジョン受信機での表示によって制限される周期で転送する。IEEE1394規格のバスアーキテクチャ(1995年版)は、アプリケーション間にアイソクロノスデータ転送のための複数のチャンネル(multiple channel)を提供する。データが適切なアプリケーションによって受信されることを保証するために、6ビットのチャンネル番号が、データとともに報知される。これによって、複数のアプリケーションは、アイソクロノスデータをバス構造を介して同時に送信することができる。非同期転送は、伝統的なデータ転送動作であり、転送元から転送先に大量のデータを、できるだけ速く転送するものである。
【0003】
IEEE1394規格(1995年版)は、ディジタル機器を相互接続する高速シリアルバスを提供するとともに、汎用のI/O接続を提供する。IEEE1394規格(1995年版)は、アプリケーションのディジタルインタフェースを定義するものであり、これによって、アプリケーションは、ディジタルデータをバスを介して送信する前に、アナログデータに変換する必要がない。同様に、受信アプリケーションは、バスからアナログデータでなく、ディジタルデータを受信するので、アナログデータをディジタルデータに変換する必要はない。IEEE1394規格(1995年版)によって規定されるケーブルは、そのような機器を接続するために用いられている他の嵩張ったケーブルと比較して、サイズが非常に細い。IEEE1394規格(1995年版)のバスが活線状態においても、機器を取り付けたり、取り外したりすることができる。機器が取り付けられたり、取り外されたりすると、バスは、それ自体を自動的に再構成し、既存のノード間でデータを転送する。ノードは、バス構造上の固有のアドレスを有する論理構成体(logical entity)とみなされる。各ノードは、識別ROM( identification ROM )と、標準化された制御レジスタ(control register)のセットと、それ自身のアドレス空間(address space)とを有する。
【0004】
IEEE1394規格(1995年版)のケーブル環境(cable environment)は、ポイントツーポイントリンクで接続されたノードのネットワークであり、各ノードの物理的接続におけるポートと、これらのポート間のケーブルとを含んでいる。IEEE1394シリアルバス(1995年版)のケーブル環境における物理的トポロジは、分岐が有限であり、複数のポートが環状に接続されないネットワークである。このケーブル環境における主な制約は、ノードが閉ループを形成することなく、互いに接続されなければならないということである。
【0005】
IEEE1394規格(1995年版)のケーブルは、異なるノード上のポートを互いに接続する。各ポートは、終端器(terminator)と、送受信機(transceiver)と、単純な論理回路(simple logic)とを含んでいる。ノードは、その物理的接続において複数のポートを備えることができる。ケーブルとポートは、ノード間のバス中継器(bus repeater)として機能し、1つの論理的バスが実現される。各ノードにおけるケーブルの物理的接続は、1つ以上のポートと、調停論理回路(arbitration logic)と、再同期回路(resynchronizer)と、エンコーダ(encoder)とを含んでいる。各ポートは、ケーブル媒体インタフェースを備え、そこにケーブルのコネクタが接続される。調停論理回路は、ノードがバスにアクセスするのを調停する。再同期回路は、受信データストローブによってエンコードされたデータビットから、ノード内のアプリケーションによって使用される局部クロックに同期したデータビットを生成する。エンコーダは、このノードによって送信されるデータ又は再同期回路によって受信されたデータのうちの他のノード宛のデータを、IEEE1394シリアルバス(1995年版)を介して伝送するために、データストローブのフォーマットにエンコードする。これらの電気部品(component)を用いることによって、ケーブル環境における物理的なポイントツーポイントのトポロジは、システムのより高いレイヤにとって望ましい仮想的な同報通信バス(virtual broadcast bus)とみなされる。これは、物理的接続における1つのポートで受信される全てのデータを局部クロックに同期させ、物理的接続における他の全てのポートから中継して出力することによって、実現される。
【0006】
2つの機器間でアイソクロノスデータを転送するとき、アイソクロノスデータの各パケットには、パケットの転送サイクルにおける現在のバスタイム(bus time)がタイムスタンプとして付けられる(time-stamped)。受信機器においてパケットが正しい転送サイクルで受信されないときは、パケットは、通常、その受信機器において破棄され、データは失われる。これは、特に、時間変動が許容されないビデオデータを伝送するときに起こる。ビデオデータのフレームを伝送するとき、ビデオデータの受信フレームの最初のパケットは、そのパケットのタイムスタンプ値と比較して、認められた時間の境界(recognized boundary of time)内で受信されなければならない。フレームの最初のパケットがこの時間の境界の外側で受信されたときは、フレーム全体が、通常、その受信機器で破棄され、処理されない。
【0007】
このタイムスタンプ値は、送信機器内におけるサイクルタイムレジスタから得られ、ノードの現在のバスタイミングを維持する。サイクルタイムレジスタは、互いに現在のサイクルを表す値を形成するsecond_countフィールドと、cycle_countフィールドとを有する。このサイクル値は、cycle_offsetフィールドからのキャリ毎にインクリメントされる。cycle_offsetフィールドは、システムクロックの変化点(transition of system clock)で更新される。cycle_offsetフィールド内の値は、その値が3071になった後の変化点においてゼロにされ、cycle_countフィールド内の値はインクリメントされる。cycle_offsetフィールド内の値は、現在のアイソクロノスサイクルの小数部(fractional part)である。ノード内のアプリケーションからデータを送信するとき、アプリケーションは、サイクルタイムレジスタから現在のバスタイミングを得なければならなく、そして、現在のバスタイミング値をパケットにロードし、そのパケットをIEEE1394シリアルバス(1995年版)を介して受信ノードに送信する。送信ノードにおいて、サイクルタイムレジスタから現在のバスタイミング値が出力される時間と、アプリケーションがサイクルタイムレジスタから現在のバスタイミング値が供給されてパケットに挿入され、実際にパケットがIEEE1394シリアルバス(1995年版)ネットワークを介して送信されるまでの時間との間には相当な遅延がある。この遅延が大きいときは、アプリケーションによって受信される現在のバスタイミング値は破棄される(obsolete)とともに、適切な時間の境界の外側とされ、この時間で実際に伝送されているパケットは、受信機器で無効なものとされる。
【0008】
パケットが受信機器によって正しく処理され、無効にされないためには、送信されたパケットが受信機器において適切な時間の境界内で受信されることを保証する方法及び装置が必要である。また、IEEE1394シリアルバス(1995年版)上のノードからのアイソクロノスパケットの実際の送信に対応した現在のバスタイミング値を予測する方法及び装置が必要である。
【0009】
【発明の開示】
IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットにタイムスタンプを予測的に付けるために、受信ノードにアイソクロノスデータパケットのストリームを送信するアプリケーションは、最初に、多数のパケットからそれぞれ構成される幾つかのダミーフレームを送信する。例えば、これらのアイソクロノスデータパケットは、ビデオデータのフレームを構成するものである。アプリケーションは、これらのダミーパケットから、各パケットの共通アイソクロノスパケット(common isochronous packet:以下、CIPという)ヘッダ内のタイムスタンプ値を得る。アプリケーションは、これらの得られたタイムスタンプ値を用いて、送信する各データフレームの表示時間値を算出する。これから送信するビデオフレームの表示時間値を、送信キュー( transmit queue )に入れる前に、送信したビデオフレームから得られるタイムスタンプ値を用いて算出する。一旦フレームの表示時間値が算出されると、その値は、アプリケーションによって、そのフレーム内の最初のパケットのCIPヘッダに挿入される。表示時間値が挿入されたフレームは、IEEE1394シリアルバス(1995年版)ネットワーク上の受信ノードに送信するために、送信キューに送られる。
【0010】
【発明を実施するための最良の形態】
図1は、具体的なIEEE1394シリアルバス(1995年版)ネットワークを示すブロック図であり、IEEE1394シリアルバス(1995年版)ネットワークは、コンピュータ装置(computer system)とビデオカメラとを含んでいる。コンピュータ装置10は、付随の表示装置(associated display)12を備え、IEEE1394シリアルバス(1995年版)のケーブル16によって、ビデオカメラ14に接続されている。ビデオデータと付随のデータは、IEEE1394シリアルバス(1995年版)のケーブル16を介して、ビデオカメラ14とコンピュータ装置10間で伝送される。
【0011】
図2は、コンピュータ装置10の内部構成を示すブロック図である。コンピュータ装置10は、中央処理装置(central processor unit:CPU)20と、メインメモリ30と、ビデオメモリ22と、大容量記憶装置(mass storage device)32と、IEEE1394規格(1995年版)のインタフェース回路28とを備え、これらの全ては、従来の双方向システムバス34によって互いに接続されている。インタフェース回路28は、物理インタフェース回路(physical interface circuit)42を備え、IEEE1394シリアルバス(1995年版)上の情報を送受信する。物理インタフェース回路42は、IEEE1394シリアルバス(1995年版)のケーブル16を介してビデオカメラ14と接続されている。この実施例において、インタフェース回路28は、コンピュータ装置10におけるIEEE1394規格(1995年版)のインタフェースカード(interface card)として実現されている。なお、当業者にとって、インタフェース回路28をマザーボードに実装する等の他の適切な形態でコンピュータ装置10内に実現することができることは、明らかである。大容量記憶装置32は、磁気、光又は光磁気のストレージ技術、あるいは他の利用可能なストレージ技術を用いた固定及び取り外し可能な媒体を有する。システムバス34は、ビデオメモリ22とメインメモリ30の全ての記憶領域をアドレッシングするためのアドレスバスを含んでいる。また、システムバス34は、CPU20、メインメモリ30、ビデオメモリ22、大容量記憶装置32、インタフェース回路28間でデータを転送するためのデータバスを含んでいる。
【0012】
また、コンピュータ装置10には、キーボード38と、マウス40と、付随の表示装置12とを含む多くの周辺入出力装置(peripheral input and output device)が接続されている。キーボード38は、CPU20に接続されており、ユーザはデータ及び制御命令(control command)をコンピュータ装置10に入力することができる。従来のマウス40は、キーボード38に接続されており、カーソル制御機器(cursor control device)として、表示装置12上に表示されたグラフィックイメージ(graphic image)を操作するためのものである。
【0013】
ビデオメモリ22のポートは、ビデオマルチプレックス及びシフト回路24に接続されており、ビデオマルチプレックス及びシフト回路24はビデオアンプ26に接続されている。ビデオアンプ26は、表示装置12を駆動する。ビデオマルチプレックス及びシフト回路24とビデオアンプ26は、ビデオメモリ22内に記憶されている画素データを、表示装置12での使用に適したラスタ信号に変換する。
【0014】
図3は、IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。このデータパケットのフォーマットも、IEC1883規格に準拠している。data_lengthフィールドは、共通アイソクロノスパケット(CIP)ヘッダ内のバイト数も含む、データフィールド内のデータのバイト数を表す値を有する。channelフィールドは、アイソクロノスパケットが伝送されるチャンネル番号を含んでいる。tCodeフィールドは、パケットのトランザクションコードを含んでいる。パケットがアイソクロノスデータパケットのときは、tCodeフィールドの値は、Ah又はChである。syフィールドは、現在のアイソクロノスパケット内のデータをあるアプリケーションの特別なイベント(specific event)に同期させるアプリケーションにおいて用いられる同期フラグが含まれている。sourceIDフィールドは、パケットを送信しているノードの物理的な識別コード(physical identifying code)を表す6ビットの値を含んでいる。他のCIPヘッダフィールド(other CIP header field)内の値は、パケットで伝送されるデータのフォーマットに依存する。データフィールド(data field)は、それが存在するときは、パケットで伝送されるコンテンツデータ(content data)を含んでいる。
【0015】
図4は、アイソクロノスデータパケット内におけるCIPヘッダのフォーマットを示す図である。CIPヘッダ内におけるSIDフィールドは、送信ノードのソースノードID(source node ID)の値を含んでいる。DBSフィールドは、データブロックの大きさをクワッドレッド(quadlet)で表す値を含んでいる。FNフィールドは、ソースパケット(source packet)をデータブロックに分割した際のブロック数を表す端数(fraction number)を含んでいる。QPCフィールドは、分割されたデータブロックの大きさを等しくするためにソースパケットに加えられたダミーデータのクワッドレッド数を表す値を含んでいる。FNフィールドが、ソースパケットが分割されないことを示しているときは、QPCフィールドは、ゼロの値を含む。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるか否かを表す。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるときは、論理「1」に設定される。RSVフィールドは、将来の拡張のために確保されている。DBCフィールドは、損失したブロックを検出するためのデータブロックの連続カウンタ(continuity counter)である。FMTフィールドは、パケットのフォーマットを識別するためのフォーマット識別子を含んでいる。FDFフィールドは、フォーマットに依存したフィールドであり、パケットのフォーマットに依存している。SYTフィールドは、送信機と受信機を同期させるために用いられる。
【0016】
IEEE1394シリアルバス(1995年版)ネットワーク上でアイソクロノスデータを伝送するとき、SYTフィールドは、フレームの表示時間(presentation time)のタイムスタンプ値(time stamp value)を含んでいる。受信ノードは、このタイムスタンプ値を用いて、ビデオデータの正しい時間の境界(correct boundary of time for video data)内においてデータが表示されることを確実にする。上述したように、フレームが正しい時間の境界内に入らないときは、受信機器は、全フレームを無効にする。
【0017】
送信データが適切なタイムスタンプ値を含むことを保証するために、本発明を適用したアプリケーションは、最初に、ダミーデータを含む幾つかのフレーム(以下、ダミーフレーム( dummy data frame )という)を送信することによって、タイムスタンプ値を算出する。データフレームは、多くのアイソクロノスパケットからなる。フレーム当たりのアイソクロノスパケット数は、送信データの種類に依存する。ビデオでは、ビデオデータを含むフレーム(以下、単にデータフレーム又はビデオフレーム( video frame )という)は、ディジタルビデオの1フレームとしてもよい。最初のダミーフレームが送信された後、この最初のダミーフレーム内の最後に送信されたパケットのタイムスタンプ値が得られる。この値から、タイムスタンプ値が得られたダミーフレームより数フレーム後のビデオフレームの最初のパケットに対する新たなタイムスタンプ値、すなわち表示時間値が算出される。本発明の好ましい実施例においては、タイムスタンプ値が得られたデータフレームより4フレーム後の、すなわちダミーフレームの好ましい数より1少ない数のフレームの後のビデオフレームの表示時間値が、算出される。この表示時間値は、一旦算出されると、適切なデータフレーム内の最初のパケットのCIPヘッダのSYTフィールドに書き込まれ、IEEE1394シリアルバス(1995年版)上の受信ノードに送信するために、送信キューに送られる。
【0018】
図5は、本発明に基づき、アイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。処理はステップ50から開始し、コンピュータ装置10内のアプリケーションは、アイソクロノスデータストリームをビデオカメラ14に送信する準備をする。ステップ52において、アプリケーションは、ダミーフレームをアイソクロノス送信キューに入れる。各ダミーフレームは、ダミーデータのIEEE1394規格(1995年版)の数多くのアイソクロノスパケットからなる。ダミーフレーム当たりのダミーパケットの数は、送信データの種類によって決定される。ステップ54において、アプリケーションは、ダミーフレームをコンピュータ装置10からIEEE1394シリアルバス(1995年版)ネットワーク16を介してビデオカメラ14に送信し始める。本発明の好ましい実施例においては、5つのダミーフレームが、実際の(actual)ビデオデータを含んでいる実際のデータフレームがビデオカメラ14に送信される前に、送信される。なお、アプリケーションによって送信されるダミーフレームの数は、適切な数とすることができる。ステップ56において、アプリケーションは、ダミーフレームが送信されたことの通知を受けるまで、待機する。
【0019】
最初のダミーフレームが送信された後、アプリケーションは、IEEE1394規格(1995年版)のインタフェース回路28から、このダミーフレーム内の最後のパケットのタイムスタンプ値を得る。ステップ58において、このタイムスタンプ値から、最初の実際のデータフレーム内の最初の実際のパケット(real packet)に対する表示時間値が算出される。最初の実際のデータフレームは、6番目の送信フレームであり、5つのダミーフレームの後に送信される。この表示時間値( PresentationTime )は、以下の式を用いて算出される。
【0020】
PresentationTime=((# of Dummy Frames-1)*DataFrameXmtTimeLength)
+TimeStamp+PresentationTimeFactor
DataFrameXmtTimeLength値は、各データフレームの時間の長さを表し、データフレーム当たりのアイソクロノスパケット数にパケット当たりのアイソクロノス転送時間を乗じることによって算出される。パケット当たりのアイソクロノス転送時間は、IEEE1394規格(1995年版)にあるように、パケット当たりの固定された値である。タイムスタンプ値が得られた最初のダミーフレームと表示時間値が算出された実際のデータフレーム間に送信されるフレーム数を表す適切な時間を加算するために、DataFrameXmtTimeLength値には、ダミーフレーム数より1少ない値が乗じられる。TimeStamp値は、データフレーム内の前のパケット(previous packet)の送信から導かれるタイムスタンプ値である。最初の実際のビデオフレームのTimeStamp値は、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムに等しい。本発明の好ましい実施例においては、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムからのサイクルカウント値(cycle count value)だけが、TimeStamp値として用いられる。パケットの表示時間値を算出するのに、パケットが送信されるサイクルだけが必要であるので、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムにおけるサイクルオフセット値は、用いられない。サイクルにおけるオフセット時間は、表示時間値を算出するために必要とされない。なお、当業者にとって、全てのサイクルタイム値はTimeStamp値として代わりに用いることができることは、明らかである。PresentationTimeFactor値は、タイムスタンプ値を表示時間の適切な値に変換するのに用いられるアイソクロノスサイクル単位(unit of isochronous cycle)の要素である。PresentationTimeFactor値は、特定の実現方法(specific implementation)に依存し、システムの実現方法及び動作特性によって変化する。PresentationTimeFactor値は、2つの要素からなり、以下の式を用いて算出される。
【0021】
PresentationTimeFactor=tdiff+TransmissionDelayLimit
tdiff値は、パケットが送信されたときの実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の差を表している。パケットが送信された実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の遅延は、特定のハードウェアの実現方法によって決まる。ハードウェアが、パケットが送信された実時間を返すことをサポートしているときは、tdiff値はゼロに等しい。TransmissionDelayLimit値は、オーディオ/ビデオ機器によって伝送されるパケットに許容される最大サイクル数に等しい。この値は、特定のハードウェア機器のための「民生用ディジタルVCRの仕様(Specifications of Consumer-Use digital VCRs)」において、記述されている。例えば、この値は、450μs又は3サイクルである。
【0022】
データフレームの表示時間値が一旦算出されると、このデータフレームにタイムスタンプを付ける(time stamp)ことができる。ステップ60において、表示時間値が、データフレーム内に含まれている最初のアイソクロノスデータパケットのSYTフィールドに書き込まれる。ステップ62において、データフレームは、IEEE1394シリアルバス(1995年版)ネットワークを介して伝送するために送信キューに入れられる。そして、ステップ64において、送信データストリーム内に入れるデータフレームが更にあるかが判定される。送信するデータフレームが更にあるときは、送信する各データフレーム毎にステップ56〜62が繰り返され、各データフレームの表示時間の適切な値が、表示時間値を算出する対象のフレームの4フレーム前に送信されたフレームから得られるタイムスタンプ値に基づいて、計算される。全てのデータフレームにタイムスタンプが適切に付けられ、送信キューに入れられると、ステップ66において処理が終了する。
【0023】
図6は、実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスフレームの伝送ストリームの構成を示す図である。5つのダミーフレーム80,82,84,86,88は、実際のビデオフレーム90,92の前に、順次送信される。アプリケーションは、5つのダミーフレーム80,82,84,86,88から、データストリーム内の実際のビデオフレーム90,92の表示時間値を算出する。上述したように、実際のビデオフレーム90の表示時間値は、最初のダミーフレーム80から得られるタイムスタンプ値を用いて算出される。同様に、2番目の実際のビデオフレーム92の表示時間値は、2番目のダミーフレーム82から得られるタイムスタンプ値を用いて算出される。一旦ビデオフレームの表示時間値が算出されると、この表示時間値は、ビデオフレーム内における最初のパケットのCIPヘッダのSYTフィールドに書き込まれる。ビデオフレーム内の残りのパケットは、従来の方法により、ビデオフレームが送信されるサイクルの現在のバスタイミングによってタイムスタンプが付けられる。ビデオフレームの表示時間値が算出され、CIPヘッダのSYTフィールドに書き込まれると、ビデオフレームは、適切な時間にIEEE1394シリアルバス(1995年版)を介して受信ノードに伝送するために、送信ノードの送信キューに加えられる。
【0024】
この処理は、データストリーム内の各データフレームに対して、データストリーム内の全てのデータフレームがコンピュータ装置10からビデオカメラ14に伝送されるまで、繰り返される。このように、データフレームの適切なタイムスタンプ値を算出し、その値を、データフレーム内における最初のパケットのCIPヘッダのSYTフィールドに挿入することによって、アプリケーションは、ビデオカメラ14によって受信されたときに、ビデオデータのフレームが正しく処理され、無効にされないことを保証する。
【0025】
本発明の好ましい実施例は、コンピュータ装置10内のソフトウェアアプリケーションからIEEE1394シリアルバス(1995年版)ネットワークを介してビデオカメラ14にアイソクロノスデータを伝送するものである。しかしながら、適切に構成された2つのアプリケーション及び/又は機器間で時間変動が許容されない(time sensitive)データフレーム及びデータパケットを伝送する際に、タイムスタンプ値が、受信されたときに、伝送されるデータのフレーム又はパケットのサイクルに対して適切であることを確実にするために、本発明を適用することができることは、当業者にとって明らかである。本発明の好ましい実施例では、全てのフレームに対するタイムスタンプ値が算出され、フレームの最初のパケットに書き込まれる。パケットがビデオフレームの一部であるかないかに関わらず、複数のパケットのそれぞれにタイムスタンプを適切に付けるために、本発明を適用することができることは、当業者にとって明らかである。
【0026】
発明の構成及び動作の原理を容易に理解できるように、本発明を具体的な実施例を用いて詳細に説明したが、特許請求の範囲は、このような具体的な実施例に限定されるものではない。発明の趣旨及び範囲から逸脱することなく、説明のために選択された実施例に変更を加えることができることは、当業者にとって明らかである。
【図面の簡単な説明】
【図1】 コンピュータ装置とビデオカメラとを含むIEEE1394シリアルバス(1995年版)ネットワークの構成を示すブロック図である。
【図2】 コンピュータ装置の内部構成を示すブロック図である。
【図3】 IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。
【図4】 アイソクロノスデータパケット内におけるCIPヘッダのフォーマットを示す図である。
【図5】 本発明に基づきアイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。
【図6】 実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスビデオフレームの伝送ストリームの構成を示す図である。
【発明の技術分野】
本発明は、機器間で情報を転送する分野に関する。特に、本発明は、IEEE1394シリアルバス(1995年版)ネットワーク上の機器間で時間変動が許容されない情報(time sensitive information)を転送する分野に関する。
【0002】
【発明の背景技術】
IEEE1394規格(1995年版)、すなわち「高性能シリアルバスに対する1394規格(1995年版)」は、非同期フォーマットのデータ転送とアイソクロノスフォーマットのデータ転送(asynchronous and isochronous format data transfer)の両方をサポートする安価な高速シリアルバスアーキテクチャを実現した国際規格である。アイソクロノスデータ転送は、リアルタイム転送であり、送信アプリケーションと受信アプリケーションの両方における重要なインスタンス(significant instance)間の時間間隔(time interval)が同じ継続時間(duration)を有する。アイソクロノス的に転送されるデータの各パケットは、それ自身が有する周期( time period )で転送される。データのアイソクロノス的転送の理想的なアプリケーションの具体例としては、ビデオレコーダからテレビジョン受信機へのデータ転送がある。ビデオレコーダは、映像及び音声を記録するとともに、データを離散的な固まり(chunk)、すなわちパケットとして保存する。そして、ビデオレコーダは、記録された映像及び音声を表す各パケットを、テレビジョン受信機での表示によって制限される周期で転送する。IEEE1394規格のバスアーキテクチャ(1995年版)は、アプリケーション間にアイソクロノスデータ転送のための複数のチャンネル(multiple channel)を提供する。データが適切なアプリケーションによって受信されることを保証するために、6ビットのチャンネル番号が、データとともに報知される。これによって、複数のアプリケーションは、アイソクロノスデータをバス構造を介して同時に送信することができる。非同期転送は、伝統的なデータ転送動作であり、転送元から転送先に大量のデータを、できるだけ速く転送するものである。
【0003】
IEEE1394規格(1995年版)は、ディジタル機器を相互接続する高速シリアルバスを提供するとともに、汎用のI/O接続を提供する。IEEE1394規格(1995年版)は、アプリケーションのディジタルインタフェースを定義するものであり、これによって、アプリケーションは、ディジタルデータをバスを介して送信する前に、アナログデータに変換する必要がない。同様に、受信アプリケーションは、バスからアナログデータでなく、ディジタルデータを受信するので、アナログデータをディジタルデータに変換する必要はない。IEEE1394規格(1995年版)によって規定されるケーブルは、そのような機器を接続するために用いられている他の嵩張ったケーブルと比較して、サイズが非常に細い。IEEE1394規格(1995年版)のバスが活線状態においても、機器を取り付けたり、取り外したりすることができる。機器が取り付けられたり、取り外されたりすると、バスは、それ自体を自動的に再構成し、既存のノード間でデータを転送する。ノードは、バス構造上の固有のアドレスを有する論理構成体(logical entity)とみなされる。各ノードは、識別ROM( identification ROM )と、標準化された制御レジスタ(control register)のセットと、それ自身のアドレス空間(address space)とを有する。
【0004】
IEEE1394規格(1995年版)のケーブル環境(cable environment)は、ポイントツーポイントリンクで接続されたノードのネットワークであり、各ノードの物理的接続におけるポートと、これらのポート間のケーブルとを含んでいる。IEEE1394シリアルバス(1995年版)のケーブル環境における物理的トポロジは、分岐が有限であり、複数のポートが環状に接続されないネットワークである。このケーブル環境における主な制約は、ノードが閉ループを形成することなく、互いに接続されなければならないということである。
【0005】
IEEE1394規格(1995年版)のケーブルは、異なるノード上のポートを互いに接続する。各ポートは、終端器(terminator)と、送受信機(transceiver)と、単純な論理回路(simple logic)とを含んでいる。ノードは、その物理的接続において複数のポートを備えることができる。ケーブルとポートは、ノード間のバス中継器(bus repeater)として機能し、1つの論理的バスが実現される。各ノードにおけるケーブルの物理的接続は、1つ以上のポートと、調停論理回路(arbitration logic)と、再同期回路(resynchronizer)と、エンコーダ(encoder)とを含んでいる。各ポートは、ケーブル媒体インタフェースを備え、そこにケーブルのコネクタが接続される。調停論理回路は、ノードがバスにアクセスするのを調停する。再同期回路は、受信データストローブによってエンコードされたデータビットから、ノード内のアプリケーションによって使用される局部クロックに同期したデータビットを生成する。エンコーダは、このノードによって送信されるデータ又は再同期回路によって受信されたデータのうちの他のノード宛のデータを、IEEE1394シリアルバス(1995年版)を介して伝送するために、データストローブのフォーマットにエンコードする。これらの電気部品(component)を用いることによって、ケーブル環境における物理的なポイントツーポイントのトポロジは、システムのより高いレイヤにとって望ましい仮想的な同報通信バス(virtual broadcast bus)とみなされる。これは、物理的接続における1つのポートで受信される全てのデータを局部クロックに同期させ、物理的接続における他の全てのポートから中継して出力することによって、実現される。
【0006】
2つの機器間でアイソクロノスデータを転送するとき、アイソクロノスデータの各パケットには、パケットの転送サイクルにおける現在のバスタイム(bus time)がタイムスタンプとして付けられる(time-stamped)。受信機器においてパケットが正しい転送サイクルで受信されないときは、パケットは、通常、その受信機器において破棄され、データは失われる。これは、特に、時間変動が許容されないビデオデータを伝送するときに起こる。ビデオデータのフレームを伝送するとき、ビデオデータの受信フレームの最初のパケットは、そのパケットのタイムスタンプ値と比較して、認められた時間の境界(recognized boundary of time)内で受信されなければならない。フレームの最初のパケットがこの時間の境界の外側で受信されたときは、フレーム全体が、通常、その受信機器で破棄され、処理されない。
【0007】
このタイムスタンプ値は、送信機器内におけるサイクルタイムレジスタから得られ、ノードの現在のバスタイミングを維持する。サイクルタイムレジスタは、互いに現在のサイクルを表す値を形成するsecond_countフィールドと、cycle_countフィールドとを有する。このサイクル値は、cycle_offsetフィールドからのキャリ毎にインクリメントされる。cycle_offsetフィールドは、システムクロックの変化点(transition of system clock)で更新される。cycle_offsetフィールド内の値は、その値が3071になった後の変化点においてゼロにされ、cycle_countフィールド内の値はインクリメントされる。cycle_offsetフィールド内の値は、現在のアイソクロノスサイクルの小数部(fractional part)である。ノード内のアプリケーションからデータを送信するとき、アプリケーションは、サイクルタイムレジスタから現在のバスタイミングを得なければならなく、そして、現在のバスタイミング値をパケットにロードし、そのパケットをIEEE1394シリアルバス(1995年版)を介して受信ノードに送信する。送信ノードにおいて、サイクルタイムレジスタから現在のバスタイミング値が出力される時間と、アプリケーションがサイクルタイムレジスタから現在のバスタイミング値が供給されてパケットに挿入され、実際にパケットがIEEE1394シリアルバス(1995年版)ネットワークを介して送信されるまでの時間との間には相当な遅延がある。この遅延が大きいときは、アプリケーションによって受信される現在のバスタイミング値は破棄される(obsolete)とともに、適切な時間の境界の外側とされ、この時間で実際に伝送されているパケットは、受信機器で無効なものとされる。
【0008】
パケットが受信機器によって正しく処理され、無効にされないためには、送信されたパケットが受信機器において適切な時間の境界内で受信されることを保証する方法及び装置が必要である。また、IEEE1394シリアルバス(1995年版)上のノードからのアイソクロノスパケットの実際の送信に対応した現在のバスタイミング値を予測する方法及び装置が必要である。
【0009】
【発明の開示】
IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットにタイムスタンプを予測的に付けるために、受信ノードにアイソクロノスデータパケットのストリームを送信するアプリケーションは、最初に、多数のパケットからそれぞれ構成される幾つかのダミーフレームを送信する。例えば、これらのアイソクロノスデータパケットは、ビデオデータのフレームを構成するものである。アプリケーションは、これらのダミーパケットから、各パケットの共通アイソクロノスパケット(common isochronous packet:以下、CIPという)ヘッダ内のタイムスタンプ値を得る。アプリケーションは、これらの得られたタイムスタンプ値を用いて、送信する各データフレームの表示時間値を算出する。これから送信するビデオフレームの表示時間値を、送信キュー( transmit queue )に入れる前に、送信したビデオフレームから得られるタイムスタンプ値を用いて算出する。一旦フレームの表示時間値が算出されると、その値は、アプリケーションによって、そのフレーム内の最初のパケットのCIPヘッダに挿入される。表示時間値が挿入されたフレームは、IEEE1394シリアルバス(1995年版)ネットワーク上の受信ノードに送信するために、送信キューに送られる。
【0010】
【発明を実施するための最良の形態】
図1は、具体的なIEEE1394シリアルバス(1995年版)ネットワークを示すブロック図であり、IEEE1394シリアルバス(1995年版)ネットワークは、コンピュータ装置(computer system)とビデオカメラとを含んでいる。コンピュータ装置10は、付随の表示装置(associated display)12を備え、IEEE1394シリアルバス(1995年版)のケーブル16によって、ビデオカメラ14に接続されている。ビデオデータと付随のデータは、IEEE1394シリアルバス(1995年版)のケーブル16を介して、ビデオカメラ14とコンピュータ装置10間で伝送される。
【0011】
図2は、コンピュータ装置10の内部構成を示すブロック図である。コンピュータ装置10は、中央処理装置(central processor unit:CPU)20と、メインメモリ30と、ビデオメモリ22と、大容量記憶装置(mass storage device)32と、IEEE1394規格(1995年版)のインタフェース回路28とを備え、これらの全ては、従来の双方向システムバス34によって互いに接続されている。インタフェース回路28は、物理インタフェース回路(physical interface circuit)42を備え、IEEE1394シリアルバス(1995年版)上の情報を送受信する。物理インタフェース回路42は、IEEE1394シリアルバス(1995年版)のケーブル16を介してビデオカメラ14と接続されている。この実施例において、インタフェース回路28は、コンピュータ装置10におけるIEEE1394規格(1995年版)のインタフェースカード(interface card)として実現されている。なお、当業者にとって、インタフェース回路28をマザーボードに実装する等の他の適切な形態でコンピュータ装置10内に実現することができることは、明らかである。大容量記憶装置32は、磁気、光又は光磁気のストレージ技術、あるいは他の利用可能なストレージ技術を用いた固定及び取り外し可能な媒体を有する。システムバス34は、ビデオメモリ22とメインメモリ30の全ての記憶領域をアドレッシングするためのアドレスバスを含んでいる。また、システムバス34は、CPU20、メインメモリ30、ビデオメモリ22、大容量記憶装置32、インタフェース回路28間でデータを転送するためのデータバスを含んでいる。
【0012】
また、コンピュータ装置10には、キーボード38と、マウス40と、付随の表示装置12とを含む多くの周辺入出力装置(peripheral input and output device)が接続されている。キーボード38は、CPU20に接続されており、ユーザはデータ及び制御命令(control command)をコンピュータ装置10に入力することができる。従来のマウス40は、キーボード38に接続されており、カーソル制御機器(cursor control device)として、表示装置12上に表示されたグラフィックイメージ(graphic image)を操作するためのものである。
【0013】
ビデオメモリ22のポートは、ビデオマルチプレックス及びシフト回路24に接続されており、ビデオマルチプレックス及びシフト回路24はビデオアンプ26に接続されている。ビデオアンプ26は、表示装置12を駆動する。ビデオマルチプレックス及びシフト回路24とビデオアンプ26は、ビデオメモリ22内に記憶されている画素データを、表示装置12での使用に適したラスタ信号に変換する。
【0014】
図3は、IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。このデータパケットのフォーマットも、IEC1883規格に準拠している。data_lengthフィールドは、共通アイソクロノスパケット(CIP)ヘッダ内のバイト数も含む、データフィールド内のデータのバイト数を表す値を有する。channelフィールドは、アイソクロノスパケットが伝送されるチャンネル番号を含んでいる。tCodeフィールドは、パケットのトランザクションコードを含んでいる。パケットがアイソクロノスデータパケットのときは、tCodeフィールドの値は、Ah又はChである。syフィールドは、現在のアイソクロノスパケット内のデータをあるアプリケーションの特別なイベント(specific event)に同期させるアプリケーションにおいて用いられる同期フラグが含まれている。sourceIDフィールドは、パケットを送信しているノードの物理的な識別コード(physical identifying code)を表す6ビットの値を含んでいる。他のCIPヘッダフィールド(other CIP header field)内の値は、パケットで伝送されるデータのフォーマットに依存する。データフィールド(data field)は、それが存在するときは、パケットで伝送されるコンテンツデータ(content data)を含んでいる。
【0015】
図4は、アイソクロノスデータパケット内におけるCIPヘッダのフォーマットを示す図である。CIPヘッダ内におけるSIDフィールドは、送信ノードのソースノードID(source node ID)の値を含んでいる。DBSフィールドは、データブロックの大きさをクワッドレッド(quadlet)で表す値を含んでいる。FNフィールドは、ソースパケット(source packet)をデータブロックに分割した際のブロック数を表す端数(fraction number)を含んでいる。QPCフィールドは、分割されたデータブロックの大きさを等しくするためにソースパケットに加えられたダミーデータのクワッドレッド数を表す値を含んでいる。FNフィールドが、ソースパケットが分割されないことを示しているときは、QPCフィールドは、ゼロの値を含む。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるか否かを表す。SPHフラグは、ソースパケットがソースパケットヘッダを含んでいるときは、論理「1」に設定される。RSVフィールドは、将来の拡張のために確保されている。DBCフィールドは、損失したブロックを検出するためのデータブロックの連続カウンタ(continuity counter)である。FMTフィールドは、パケットのフォーマットを識別するためのフォーマット識別子を含んでいる。FDFフィールドは、フォーマットに依存したフィールドであり、パケットのフォーマットに依存している。SYTフィールドは、送信機と受信機を同期させるために用いられる。
【0016】
IEEE1394シリアルバス(1995年版)ネットワーク上でアイソクロノスデータを伝送するとき、SYTフィールドは、フレームの表示時間(presentation time)のタイムスタンプ値(time stamp value)を含んでいる。受信ノードは、このタイムスタンプ値を用いて、ビデオデータの正しい時間の境界(correct boundary of time for video data)内においてデータが表示されることを確実にする。上述したように、フレームが正しい時間の境界内に入らないときは、受信機器は、全フレームを無効にする。
【0017】
送信データが適切なタイムスタンプ値を含むことを保証するために、本発明を適用したアプリケーションは、最初に、ダミーデータを含む幾つかのフレーム(以下、ダミーフレーム( dummy data frame )という)を送信することによって、タイムスタンプ値を算出する。データフレームは、多くのアイソクロノスパケットからなる。フレーム当たりのアイソクロノスパケット数は、送信データの種類に依存する。ビデオでは、ビデオデータを含むフレーム(以下、単にデータフレーム又はビデオフレーム( video frame )という)は、ディジタルビデオの1フレームとしてもよい。最初のダミーフレームが送信された後、この最初のダミーフレーム内の最後に送信されたパケットのタイムスタンプ値が得られる。この値から、タイムスタンプ値が得られたダミーフレームより数フレーム後のビデオフレームの最初のパケットに対する新たなタイムスタンプ値、すなわち表示時間値が算出される。本発明の好ましい実施例においては、タイムスタンプ値が得られたデータフレームより4フレーム後の、すなわちダミーフレームの好ましい数より1少ない数のフレームの後のビデオフレームの表示時間値が、算出される。この表示時間値は、一旦算出されると、適切なデータフレーム内の最初のパケットのCIPヘッダのSYTフィールドに書き込まれ、IEEE1394シリアルバス(1995年版)上の受信ノードに送信するために、送信キューに送られる。
【0018】
図5は、本発明に基づき、アイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。処理はステップ50から開始し、コンピュータ装置10内のアプリケーションは、アイソクロノスデータストリームをビデオカメラ14に送信する準備をする。ステップ52において、アプリケーションは、ダミーフレームをアイソクロノス送信キューに入れる。各ダミーフレームは、ダミーデータのIEEE1394規格(1995年版)の数多くのアイソクロノスパケットからなる。ダミーフレーム当たりのダミーパケットの数は、送信データの種類によって決定される。ステップ54において、アプリケーションは、ダミーフレームをコンピュータ装置10からIEEE1394シリアルバス(1995年版)ネットワーク16を介してビデオカメラ14に送信し始める。本発明の好ましい実施例においては、5つのダミーフレームが、実際の(actual)ビデオデータを含んでいる実際のデータフレームがビデオカメラ14に送信される前に、送信される。なお、アプリケーションによって送信されるダミーフレームの数は、適切な数とすることができる。ステップ56において、アプリケーションは、ダミーフレームが送信されたことの通知を受けるまで、待機する。
【0019】
最初のダミーフレームが送信された後、アプリケーションは、IEEE1394規格(1995年版)のインタフェース回路28から、このダミーフレーム内の最後のパケットのタイムスタンプ値を得る。ステップ58において、このタイムスタンプ値から、最初の実際のデータフレーム内の最初の実際のパケット(real packet)に対する表示時間値が算出される。最初の実際のデータフレームは、6番目の送信フレームであり、5つのダミーフレームの後に送信される。この表示時間値( PresentationTime )は、以下の式を用いて算出される。
【0020】
PresentationTime=((# of Dummy Frames-1)*DataFrameXmtTimeLength)
+TimeStamp+PresentationTimeFactor
DataFrameXmtTimeLength値は、各データフレームの時間の長さを表し、データフレーム当たりのアイソクロノスパケット数にパケット当たりのアイソクロノス転送時間を乗じることによって算出される。パケット当たりのアイソクロノス転送時間は、IEEE1394規格(1995年版)にあるように、パケット当たりの固定された値である。タイムスタンプ値が得られた最初のダミーフレームと表示時間値が算出された実際のデータフレーム間に送信されるフレーム数を表す適切な時間を加算するために、DataFrameXmtTimeLength値には、ダミーフレーム数より1少ない値が乗じられる。TimeStamp値は、データフレーム内の前のパケット(previous packet)の送信から導かれるタイムスタンプ値である。最初の実際のビデオフレームのTimeStamp値は、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムに等しい。本発明の好ましい実施例においては、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムからのサイクルカウント値(cycle count value)だけが、TimeStamp値として用いられる。パケットの表示時間値を算出するのに、パケットが送信されるサイクルだけが必要であるので、最初のダミーフレームにおいて送信された最後のアイソクロノスパケットのサイクルタイムにおけるサイクルオフセット値は、用いられない。サイクルにおけるオフセット時間は、表示時間値を算出するために必要とされない。なお、当業者にとって、全てのサイクルタイム値はTimeStamp値として代わりに用いることができることは、明らかである。PresentationTimeFactor値は、タイムスタンプ値を表示時間の適切な値に変換するのに用いられるアイソクロノスサイクル単位(unit of isochronous cycle)の要素である。PresentationTimeFactor値は、特定の実現方法(specific implementation)に依存し、システムの実現方法及び動作特性によって変化する。PresentationTimeFactor値は、2つの要素からなり、以下の式を用いて算出される。
【0021】
PresentationTimeFactor=tdiff+TransmissionDelayLimit
tdiff値は、パケットが送信されたときの実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の差を表している。パケットが送信された実際のサイクルタイムとハードウェアがパケットを送信したときに実際に報告されるサイクルタイム間の遅延は、特定のハードウェアの実現方法によって決まる。ハードウェアが、パケットが送信された実時間を返すことをサポートしているときは、tdiff値はゼロに等しい。TransmissionDelayLimit値は、オーディオ/ビデオ機器によって伝送されるパケットに許容される最大サイクル数に等しい。この値は、特定のハードウェア機器のための「民生用ディジタルVCRの仕様(Specifications of Consumer-Use digital VCRs)」において、記述されている。例えば、この値は、450μs又は3サイクルである。
【0022】
データフレームの表示時間値が一旦算出されると、このデータフレームにタイムスタンプを付ける(time stamp)ことができる。ステップ60において、表示時間値が、データフレーム内に含まれている最初のアイソクロノスデータパケットのSYTフィールドに書き込まれる。ステップ62において、データフレームは、IEEE1394シリアルバス(1995年版)ネットワークを介して伝送するために送信キューに入れられる。そして、ステップ64において、送信データストリーム内に入れるデータフレームが更にあるかが判定される。送信するデータフレームが更にあるときは、送信する各データフレーム毎にステップ56〜62が繰り返され、各データフレームの表示時間の適切な値が、表示時間値を算出する対象のフレームの4フレーム前に送信されたフレームから得られるタイムスタンプ値に基づいて、計算される。全てのデータフレームにタイムスタンプが適切に付けられ、送信キューに入れられると、ステップ66において処理が終了する。
【0023】
図6は、実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスフレームの伝送ストリームの構成を示す図である。5つのダミーフレーム80,82,84,86,88は、実際のビデオフレーム90,92の前に、順次送信される。アプリケーションは、5つのダミーフレーム80,82,84,86,88から、データストリーム内の実際のビデオフレーム90,92の表示時間値を算出する。上述したように、実際のビデオフレーム90の表示時間値は、最初のダミーフレーム80から得られるタイムスタンプ値を用いて算出される。同様に、2番目の実際のビデオフレーム92の表示時間値は、2番目のダミーフレーム82から得られるタイムスタンプ値を用いて算出される。一旦ビデオフレームの表示時間値が算出されると、この表示時間値は、ビデオフレーム内における最初のパケットのCIPヘッダのSYTフィールドに書き込まれる。ビデオフレーム内の残りのパケットは、従来の方法により、ビデオフレームが送信されるサイクルの現在のバスタイミングによってタイムスタンプが付けられる。ビデオフレームの表示時間値が算出され、CIPヘッダのSYTフィールドに書き込まれると、ビデオフレームは、適切な時間にIEEE1394シリアルバス(1995年版)を介して受信ノードに伝送するために、送信ノードの送信キューに加えられる。
【0024】
この処理は、データストリーム内の各データフレームに対して、データストリーム内の全てのデータフレームがコンピュータ装置10からビデオカメラ14に伝送されるまで、繰り返される。このように、データフレームの適切なタイムスタンプ値を算出し、その値を、データフレーム内における最初のパケットのCIPヘッダのSYTフィールドに挿入することによって、アプリケーションは、ビデオカメラ14によって受信されたときに、ビデオデータのフレームが正しく処理され、無効にされないことを保証する。
【0025】
本発明の好ましい実施例は、コンピュータ装置10内のソフトウェアアプリケーションからIEEE1394シリアルバス(1995年版)ネットワークを介してビデオカメラ14にアイソクロノスデータを伝送するものである。しかしながら、適切に構成された2つのアプリケーション及び/又は機器間で時間変動が許容されない(time sensitive)データフレーム及びデータパケットを伝送する際に、タイムスタンプ値が、受信されたときに、伝送されるデータのフレーム又はパケットのサイクルに対して適切であることを確実にするために、本発明を適用することができることは、当業者にとって明らかである。本発明の好ましい実施例では、全てのフレームに対するタイムスタンプ値が算出され、フレームの最初のパケットに書き込まれる。パケットがビデオフレームの一部であるかないかに関わらず、複数のパケットのそれぞれにタイムスタンプを適切に付けるために、本発明を適用することができることは、当業者にとって明らかである。
【0026】
発明の構成及び動作の原理を容易に理解できるように、本発明を具体的な実施例を用いて詳細に説明したが、特許請求の範囲は、このような具体的な実施例に限定されるものではない。発明の趣旨及び範囲から逸脱することなく、説明のために選択された実施例に変更を加えることができることは、当業者にとって明らかである。
【図面の簡単な説明】
【図1】 コンピュータ装置とビデオカメラとを含むIEEE1394シリアルバス(1995年版)ネットワークの構成を示すブロック図である。
【図2】 コンピュータ装置の内部構成を示すブロック図である。
【図3】 IEEE1394シリアルバス(1995年版)ネットワーク上を伝送されるアイソクロノスデータパケットのフォーマットを示す図である。
【図4】 アイソクロノスデータパケット内におけるCIPヘッダのフォーマットを示す図である。
【図5】 本発明に基づきアイソクロノスデータフレームにタイムスタンプを予測的に付ける処理を示すフローチャートである。
【図6】 実際のビデオフレームの前に幾つかのダミーフレームを有するアイソクロノスビデオフレームの伝送ストリームの構成を示す図である。
Claims (28)
- データを伝送するデータフレームの表示時間値を算出するデータフレームの表示時間算出方法において、
上記データフレームを送信する前に、データを伝送しない幾つかの先行フレームを送信するステップと、
上記先行フレームからタイムスタンプ値を得るステップと、
上記タイムスタンプ値を用いて、上記データフレームの表示時間値を決定するステップとを有するデータフレームの表示時間算出方法。 - 上記表示時間値を決定するステップは、上記タイムスタンプ値に、上記幾つかの先行フレームを送信するのにかかる時間を表する値を加算することを特徴とする請求項1記載のデータフレームの表示時間算出方法。
- 上記表示時間値を上記データフレームに挿入するステップを有する請求項1記載のデータフレームの表示時間算出方法。
- 上記表示時間値を上記データフレームの最初のパケットに挿入することを特徴とする請求項3記載のデータフレームの表示時間算出方法。
- 上記先行フレームの数は、4であることを特徴とする請求項1記載のデータフレームの表示時間算出方法。
- 上記先行フレームは、ダミーフレームであることを特徴とする請求項1記載のデータフレームの表示時間算出方法。
- 複数のパケットを含むデータストリームを送信するデータストリーム送信方法において、
先行パケットを送信し、該先行パケットからタイムスタンプ値を得て、該タイムスタンプ値を用いて、送信するパケットの表示時間値を算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップとを有するデータストリーム送信方法。 - 上記表示時間値を算出するステップは、上記先行パケットからのタイムスタンプ値に、該先行パケットと上記送信するパケット間の多数のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項7記載のデータストリーム送信方法。
- 上記送信するパケットは、ビデオフレームの一部であることを特徴する請求項8記載のデータストリーム送信方法。
- 上記送信するパケットは、ビデオフレーム内の最初のパケットであることを特徴とする請求項9記載のデータストリーム送信方法。
- 複数のパケットを含むデータストリームを送信するデータストリーム送信方法において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する1つ以上のダミーパケットを、送信ノードから送信するステップと、
上記ダミーパケットの後に送信するパケットの表示時間値を、既に送信された多数のダミーパケット及びパケットからのタイムスタンプ値を用いて算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップと、
上記表示時間値が挿入されたパケットを上記送信ノードから受信ノードに伝送するステップを有するデータストリーム送信方法。 - 上記データストリーム内の複数のパケットは、1つ以上のフレームにグループ化されることを特徴とする請求項11記載のデータストリーム送信方法。
- 上記表示時間値を算出するステップ及び表示時間値を挿入するステップは、各フレームの最初のパケットに対して繰り返されることを特徴とする請求項12記載のデータストリーム送信方法。
- 上記表示時間値を算出するステップは、上記既に送信されたパケットからのタイムスタンプ値に、該既に送信されたパケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項13記載のデータストリーム送信方法。
- 上記データストリームは、アイソクロノスデータストリームであることを特徴とする請求項14記載のデータストリーム送信方法。
- 上記送信ノードと受信ノードは、IEEE1394シリアルバス(1995年版)ネットワークによって互いに接続されていることを特徴とする請求項15記載のデータストリーム送信方法。
- 上記表示時間値は、上記パケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項16記載のデータストリーム送信方法。
- 複数のパケットを含むデータストリームを送信するデータストリーム送信装置において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する複数のパケットを、送信ノードから受信ノードに送信する送信回路と、
先行パケットからタイムスタンプ値を得て、該タイムスタンプ値を用いて、該先行パケットから多数のパケットの後に送信するパケットの表示時間値を算出し、該表示時間値を該送信するパケットに挿入した後、該表示時間値が挿入されたパケットを送信する制御アプリケーションとを有するデータストリーム送信装置。 - 上記送信回路は、上記送信するパケットを、上記制御アプリケーションによって上記表示時間値が挿入された後に、送信することを特徴する請求項18記載のデータストリーム送信装置。
- 上記表示時間値は、上記先行パケットから得られたタイムスタンプ値に、該先行パケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することによって算出されることを特徴とする請求項19記載のデータストリーム送信装置。
- 上記データストリーム内の複数のパケットは、1つ以上のフレームにグループ化されることを特徴とする請求項20記載のデータストリーム送信装置。
- 上記制御アプリケーションは、各フレームの最初のパケットの表示時間値のみを算出することを特徴とする請求項21記載のデータストリーム送信装置。
- 上記データストリームは、アイソクロノスデータストリームであることを特徴とする請求項21記載のデータストリーム送信装置。
- 上記送信ノードと受信ノードは、IEEE1394シリアルバス(1995年版)ネットワークによって互いに接続されていることを特徴とする請求項23記載のデータストリーム送信装置。
- 上記表示時間値は、上記送信するパケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項24記載のデータストリーム送信装置。
- 1つ以上のフレームにグループ化される複数のパケットを含むデータのアイソクロノスストリームを、送信ノードからIEEE1394シリアルバス(1995年版)を介して受信ノードに伝送するデータのアイソクロノスストリーム伝送方法において、
送信される時刻を表すタイムスタンプ値をそれぞれ有する1つ以上のダミーパケットを、上記送信ノードから上記受信ノードに送信するステップと、
上記ダミーパケットの後に送信するパケットの表示時間値を、既に送信された多数のダミーパケット及びパケットからのタイムスタンプ値を用いて算出するステップと、
上記算出した表示時間値を、上記送信するパケットに挿入するステップと、
上記表示時間値が挿入されたパケットを上記送信ノードから上記受信ノードに伝送するステップと、
上記表示時間値を算出するステップ及び表示時間値を挿入するステップを、各フレーム における最初のパケットに対して繰り返すステップとを有するデータのアイソクロノスストリーム伝送方法。 - 上記表示時間値を算出するステップは、上記既に送信されたパケットからのタイムスタンプ値に、該既に送信されたパケットと上記送信するパケット間のパケットを送信するのにかかる時間を表す値を加算することを特徴とする請求項26記載のデータのアイソクロノスストリーム伝送方法。
- 上記表示時間値は、上記送信するパケットの共通アイソクロノスパケットヘッダにおけるSYTフィールドに挿入されることを特徴とする請求項27記載のデータのアイソクロノスストリーム伝送方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US90/037,397 | 1998-03-09 | ||
US09/037,397 | 1998-03-09 | ||
US09/037,397 US6680944B1 (en) | 1998-03-09 | 1998-03-09 | Apparatus for and method of predictive time stamping of isochronous data packets transmitted over an IEEE 1394-1995 serial bus network |
PCT/US1999/004793 WO1999046937A1 (en) | 1998-03-09 | 1999-03-05 | Apparatus and method for predictive time stamping of isochronous data packets |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002507100A JP2002507100A (ja) | 2002-03-05 |
JP3977594B2 JP3977594B2 (ja) | 2007-09-19 |
JP3977594B6 true JP3977594B6 (ja) | 2007-12-12 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7561576B2 (en) | Apparatus for and method of predictive time stamping of isochronous data packets transmitted over an IEEE 1394-1995 serial bus network | |
US6570945B1 (en) | Reception interface unit in transmission system | |
US20050002402A1 (en) | Real-time transport protocol | |
US6363428B1 (en) | Apparatus for and method of separating header information from data in an IEEE 1394-1995 serial bus network | |
US6633578B1 (en) | Transmission interface unit in transmission system | |
US20120023357A1 (en) | Cyclemaster synchronization in a distributed bridge | |
JP4009022B2 (ja) | データ伝送方法及びデータ伝送装置 | |
JP4147524B2 (ja) | 通信方法、送信方法、受信方法及び通信装置 | |
US6405275B1 (en) | IEEE1394 common isochronous packet (CIP) enhancements for host controllers | |
JP3977594B6 (ja) | データフレームの表示時間算出方法及びデータストリーム送信装置 | |
KR100673802B1 (ko) | 전송 방법, 전송 시스템 및 전송기 | |
JPH10257096A (ja) | データ転送方法及び装置 | |
JP2001057567A (ja) | 伝送路間のブリッジシステム及び方法 | |
JP2000278275A (ja) | パケット転送装置 | |
JPH10285241A (ja) | 信号処理回路 | |
US6367026B1 (en) | Unbalanced clock tree for a digital interface between an IEEE 1394 serial bus system and a personal computer interface (PCI) | |
JPH10257080A (ja) | データ転送方法及び装置 | |
JP3676618B2 (ja) | パケット転送装置、及びデータ記録媒体 | |
JP2000278277A (ja) | パケット転送装置 | |
JP2000278326A (ja) | パケット転送装置 | |
JP2000276441A (ja) | パケット転送装置 | |
JP2000278353A (ja) | パケット転送装置 | |
JP2001237852A (ja) | 情報監視装置 | |
JP2000278276A (ja) | パケット転送装置 | |
JP2005267653A (ja) | パケット転送装置、及びデータ記録媒体 |