(57)【要約】【課題】  タイミング調整用のバッファメモリのサイズを小さくすることができ、受信側の通信装置の製造コストを低減することができるようにする。【解決手段】  所定のサイズのデータを所定の時間間隔で転送する転送方式を用いて時間調整情報を含むストリームデータを転送する転送装置（５０３）であって、前記時間調整情報を前記転送方式における時間間隔に従って変換する変換手段（６０９）と、変換後の前記時間調整情報に従って前記ストリームデータを転送する転送手段（６０６）とを有する転送装置を提供する。【選択図】      図６
2005216265.tif 000002
【特許請求の範囲】
【請求項１】
所定のサイズのデータを所定の時間間隔で転送する転送方式を用いて時間調整情報を含むストリームデータを転送する転送装置であって、
前記時間調整情報を前記転送方式における時間間隔に従って変換する変換手段と、
変換後の前記時間調整情報に従って前記ストリームデータを転送する転送手段と有することを特徴とする転送装置。
【請求項２】
前記ストリームデータは、ＭＰＥＧ２ＴＳフォーマットに従ってエンコードされたデータであり、前記時間調整情報は、ＭＰＥＧ２ＴＳパケットに含まれるＰＣＲであり、
前記転送装置は、ＰＣＲが含まれるＴＳパケットを判定する手段と、次のＰＣＲを含むＴＳパケットを検出するまで一時保持するバッファ手段と、検出された各ＰＣＲの時間間隔を計算する手段とを有し、各ＰＣＲの時間間隔が該同期期間の整数倍になるようにＰＣＲの値を再計算し、該再計算されたＰＣＲを含むパケットが送信されるべき時刻を該再計算されたＰＣＲによって決定し、決定された時刻に従って該再計算されたＰＣＲを含むパケットを伝送路上に送信することを特徴とする請求項１に記載の転送装置。
【請求項３】
前記転送方式は、ＩＥＥＥ１３９４又はＵＳＢで規定されたアイソクロナス転送であることを特徴とする請求項１又は２に記載の転送装置。
【請求項４】
所定のサイズのデータを所定の時間間隔で転送する転送装置を用いて時間調整情報を含むストリームデータを転送する転送方法であって、
前記転送装置の変換手段により、前記時間調整情報を前記転送方式における時間間隔に従って変換する手順と、
前記転送装置の転送手段により、変換後の前記時間調整情報に従って前記ストリームデータを転送する手順と有することを特徴とする転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ２トランスポートストリーム等のストリームデータを転送するための転送装置及び方法に関する。
【背景技術】
【０００２】
現在、ストリームデータの一例としてＭＰＥＧ２トランスポートストリーム（以下、ＭＰＥＧ２ＴＳ）が知られている（例えば、非特許文献１参照）。ＭＰＥＧ２ＴＳは、１８８バイトのＴＳパケットから構成される。
【０００３】
また現在、ＩＥＥＥ１３９４規格を用いてＭＰＥＧ２ＴＳを転送する転送装置が知られている（例えば、特許文献１参照）。
【０００４】
また現在、ＩＥＥＥ１３９４規格を用いてＭＰＥＧ２ＴＳを転送する場合、ＩＥＣ６１８８３規格を使用することも知られている（例えば、非特許文献２及び３参照）。非特許文献２ではＣＩＰ（Common Isochronous Packet）ヘッダのデータフォーマットを規定し、非特許文献３ではＳＰＨ（Source Packet Header）のデータフォーマットを規定している。ＣＩＰヘッダのデータフォーマットを図１に示す。また、ＳＰＨのデータフォーマットを図２に示す。図２において、CYCLE_COUNTフィールド２０１（１３ビット）は８ｋＨｚのカウンタであり、CYCLE_OFFSETフィールド２０２はオフセット値を格納する。ＳＰＨは、各ＴＳパケットをＭＰＥＧ２ＴＳコーデックに入力するタイミングの調整するのに使用される。
【０００５】
【特許文献１】特開２００１−２８２７１３号公報
【非特許文献１】ISO/IEC 13818-1: Information technology-Generic coding of moving pictures and associated audio information: Systems
【非特許文献２】IEC 61883-1, Consumer audio/video equipment - Digital interface - Part 1: General
【非特許文献３】IEC 61883-4, Consumer audio/video equipment - Digital interface - Part 4: MPEG2-TS data transmission
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＩＥＥＥ１３９４規格及びＩＥＣ６１８８３規格を使用した通信システムでは、図３Ａ乃至図３Ｃに示すように、ＳＰＨとＰＣＲ（Program Clock Reference）とに従ってＴＳパケットの転送を制御している。
【０００７】
図３Ａにおいて、ＴＳパケット３０１及び３０２は、ＰＣＲを有するＴＳパケットである。ＰＣＲは、時間間隔を調整するための情報であり、図４に示すように、９０ｋＨｚのカウンタであるProgram_clock_reference_baseフィールド４０１（３３ビット）と、２７ＭＨｚのカウンタであるProgram_clock_reference_extensionフィールド４０２（６ビット）とを有する。パケット３０１とパケット３０２の時間間隔は、パケット３０１に含まれるＰＣＲとパケット３０２に含まれるＰＣＲの値の差に相当する。
【０００８】
図３Ｂにおいて、ＴＳパケット３０１はＴＳパケット３０３のタイミングでＩＥＥＥ１３９４シリアルバス上に転送され、ＴＳパケット３０２はＴＳパケット３０４のタイミングでＩＥＥＥ１３９４シリアルバス上に送信される。このとき、ＴＳパケット３０３及び３０４の時間間隔は、ＴＳパケット３０１及び３０２の時間間隔を１２５μｓの整数倍に調整される。このとき、各ＴＳパケットには、ＰＣＲの値に従って生成されたＳＰＨが付加されている。
【０００９】
図３Ｃにおいて、受信側の転送装置は、ＳＰＨを用いてＴＳパケット３０５及び３０６の時間間隔をＴＳパケット３０１及び３０２の時間間隔となるように調整する。
【００１０】
しかしながら、このような構成では、ＳＰＨに従ってタイミングのずれを吸収するためのバッファ（タイミング調整用のバッファメモリ）のサイズを大きくする必要があり、受信側の転送装置の製造コストを上昇させるという問題がある。
【００１１】
そこで、本発明は、タイミング調整用のバッファメモリのサイズを小さくすることができ、受信側の通信装置の製造コストを低減することができるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の転送装置は、所定のサイズのデータを所定の時間間隔で転送する転送方式を用いて時間調整情報を含むストリームデータを転送する転送装置であって、前記時間調整情報を前記転送方式における時間間隔に従って変換する変換手段と、変換後の前記時間調整情報に従って前記ストリームデータを転送する転送手段と有する点に特徴を有する。
また、本発明の転送方法は、所定のサイズのデータを所定の時間間隔で転送する転送装置を用いて時間調整情報を含むストリームデータを転送する転送方法であって、前記転送装置の変換手段により、前記時間調整情報を前記転送方式における時間間隔に従って変換する手順と、前記転送装置の転送手段により、変換後の前記時間調整情報に従って前記ストリームデータを転送する手順と有する点に特徴を有する。
【発明の効果】
【００１３】
本発明によれば、タイミング調整用のバッファメモリのサイズを小さくすることができ、受信側の通信装置の製造コストを低減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。図５は、本発明に好適な実施形態の一例であるデータ転送システムの主要な構成要素を示す図である。図５に示すデータ転送システムは、ストリームデータの一例であるＭＰＥＧ２ＴＳ（ＭＰＥＧ−２システムで規定されたトランスポートストリーム）をＵＳＢ（Universal Serial Bus）で規定されたアイソクロナス転送（isochronous transfer）を用いて転送するデータ転送システムである。なお、ＵＳＢについては、Universal Serial Bus。Universal Serial Bus Specification Revision 2.0, April 27, 2000に記載されているので、その詳細な説明は省略する。
【００１５】
図５において、ＤＶＣ（デジタルビデオカメラ）５０１は受信側の転送装置の一例であり、ＰＣ（パーソナルコンピュータ）５０３は送信側の転送装置の一例である。ＤＶＣ５０１及びＰＣ５０３のそれぞれは、ＵＳＢに準拠した通信インターフェース部を有する。従って、ＤＶＣ５０１及びＰＣ５０３のそれぞれは、所定のサイズのデータを所定の時間間隔（１２５μｓ）で転送する転送方式であるアイソクロナス転送（isochronous transfer）を有する。また、ＰＣ５０３はＵＳＢで規定されたホストとして動作し、ＤＶＣ５０１はＵＳＢで規定されたデバイスとして動作する。ＵＳＢケーブル５０２は、ＤＶＣ５０１とＰＣ５０２との間を接続する通信ケーブルである。
【００１６】
図９は、ＭＰＥＧ２ＴＳのデータフォーマットを示す図である。図９において、９０１はＴＳパケットであり、９０２はＴＳパケットのヘッダである。ＭＰＥＧ２ＴＳは、図９に示すように、複数のＴＳパケットから構成される。９０３はアダプテーションフィールド、９０４は5Flagsフィールド、９０５はオプショナルフィールド、９０６はＰＣＲフィールドである。ＰＣＲフィールド９０６には、ＰＣＲ（Program_Clock_Reference）が格納されている。
【００１７】
図６は、送信側の転送装置の一例であるＰＣ５０３の主要な構成要素を示す図である。各構成要素は、ハードウェアで構成することも、ソフトウェアで構成することも可能である。ストレージ部６０１（例えば、ハードディスク装置から構成される）は、ストリームデータの一例であるＭＰＥＧ２ＴＳを記憶する。
【００１８】
読み出し部６０２は、ＭＰＥＧ２ＴＳをＴＳパケット（１８８バイト）ごとにストレージ部６０１から読み出す。
【００１９】
バッファ６０４ａ、６０４ｂ及び６０４ｃは、ストレージ部６０１から読み出されたＭＰＥＧ２ＴＳパケットを一時的に記憶する。なお、バッファの数は、２つであっても３つ以上であってもよい。
【００２０】
バッファ選択部６０３及び６０５は、バッファ６０４ａ、バッファ６０４ｂ又はバッファ６０４ｃを選択するバッファ選択部である。
【００２１】
ＵＳＢインターフェース部６０６は、ＵＳＢに準拠した通信インターフェース部であり、第２のバッファ選択部６０５によって選択されたバッファ内のＭＰＥＧ２ＴＳパケットをアイソクロナス転送で転送する。ＵＳＢインターフェース部６０６は、送信タイミング計算部６１０から通知されたタイミングに従って各ＴＳパケットを転送する。
【００２２】
ＰＣＲ検出部６０７は、読み出し部６０２によって読み出されたＴＳパケットがＰＣＲ（Program_Clock_Reference）を含むＴＳパケットであるか否かを判定する。読み出し部６０２によって読み出されたＴＳパケットがＰＣＲ（Program_Clock_Reference）を含むＴＳパケットである場合、ＰＣＲ検出部６０７は、そのＴＳパケットのＰＣＲを読み出し、読み出したＰＣＲをＰＣＲ間隔計算部６０８に供給する。
【００２３】
ＰＣＲ間隔計算部６０８は、各ＰＣＲに記述されている時刻情報から各ＰＣＲの時間間隔を計算し、計算した時間間隔をＰＣＲ再計算部６０９に供給する。
【００２４】
ＰＣＲ再計算部６０９は、ＰＣＲ間隔計算部６０８によって計算された時間間隔をアイソクロナス転送の１サイクル（１２５μｓ）の整数倍に再計算する。
【００２５】
送信タイミング計算部６１０は、ＰＣＲ再計算部６０９によって再計算された時間間隔に従って各ＴＳパケットの送信すべきタイミングを計算し、計算したタイミングをＵＳＢインターフェース部６０６に通知する。
【００２６】
図７は、受信側の転送装置の一例であるＤＶＣ５０１の主要な構成要素を示す図である。ＣＰＵ（Central Processing unit）７０１は、ＤＶＣ５０１の動作を制御する。
【００２７】
ＭＰＥＧ２ＴＳコーデック７０２は、ＭＰＥＧ２ＴＳのエンコード及びデコードを行う。
【００２８】
ＵＳＢインターフェース部７０３は、ＵＳＢに準拠した通信インターフェース部であり、ＵＳＢインターフェース部６０６から送信されたＭＰＥＧ２ＴＳを受信し、受信したＭＰＥＧ２ＴＳをＭＰＥＧ２ＴＳコーデック７０２に転送する。
【００２９】
データバス７０４は、ＵＳＢインターフェース部７０３とＭＰＥＧ２ＴＳコーデック７０２との間を接続するデータバスであり、ＭＰＥＧ２ＴＳの転送レートよりも大きな転送レートを有している。
【００３０】
図８は、ＵＳＢインターフェース部７０３で行われるタイミング調整処理を説明するための図である。ＰＣ５０３からアイソクロナス転送で転送されたＴＳパケットは、ＳＩＥ−ＦＩＦＯ８０２に格納される。ＵＳＢインターフェース部７０３は、ＴＳパケットの終端を検出した場合、ＳＩＥ−ＦＩＦＯ８０２内のＴＳパケットをＣＰＵ−ＦＩＦＯ８０１に転送する。但し、ＳＩＥ−ＦＩＦＯ８０２からＣＰＵ−ＦＩＦＯ８０１への転送は、ホストであるＰＣ５０３から次のＳＯＦが受信されるまでの間に完了させ、ＴＳパケットのタイミングを調整するものとする。ここで、uSOF（Start of micro Frame）は、１２５μｓの時間間隔の最初を示すデータであり、ホストとデバイスとの間の時間の調整に使用されるデータである。このように構成することにより、１２５μｓ内で生じるずれを小さくすることができる。ＵＳＢインターフェース部７０３は、ＣＰＵ−ＦＩＦＯ８１０内のＴＳパケットを１２５μｓの時間間隔でＭＰＥＧ２ＴＳコーデック７０２に転送する。
【００３１】
次に、図５に示すデータ転送システムにおいて実行されるストリームデータの転送方法について説明する。読み出し部６０２は、ストレージ部６０１に格納されているＭＰＥＧ２ＴＳをＴＳパケット（１８８バイト）ごとに読み出す。読み出された１８８バイトのＴＳパケットは、バッファ６０４ａ、６０４ｂ又は６０４ｃに格納される。このとき、ＰＣＲ検出部６０７は、ＴＳパケット９０１のヘッダ９０２にＰＣＲフィールド９０６が存在するか否かを判定する。そして、ＰＣＲフィールド９０６が存在する場合には、ＰＣＲフィールド９０６から取り出したＰＣＲを用いて式（１）を計算する。
PCR(i)=PCR_base(i) * 300 + PCR_ext(i)  ----------------------------(1)
ここで、PCR_base(i)はＰＣＲ内のProgram_clock_reference_base (33 bits)であり、PCR_ext(i)はＰＣＲ内のProgram_clock_reference_extension (6bits)である。
【００３２】
読み出し部６０２は、ＰＣＲ検出部６０７が次のＰＣＲを含むＴＳパケットを検出するまで、ストレージ部６０１から読み出したＴＳパケットをバッファ６０４ａに転送し続ける。
【００３３】
ＰＣＲ検出部６０７が次のＰＣＲを含むＴＳパケットを検出した場合、検出されたＰＣＲを式（１）に従ってPCR(i+1)に保持する。このとき、バッファ選択部６０３は、ＰＣＲ検出部６０７からの指示に従ってバッファ６０４ｂを選択する。さらに、次のＰＣＲを含むＴＳパケットが検出された場合、バッファ選択部６０３は、ＰＣＲ検出部６０７からの指示に従ってバッファ６０４ｃを選択する。
【００３４】
図１１は、バッファ６０４ａ及び６０４ｂの状態を説明する図である。バッファの先頭にはＰＣＲを含むＴＳパケット１１０１、１１０３が保持され、以降にはＰＣＲを含まないＴＳパケット１１０２、１１０４が保持される。これまでの説明に従うと、ＴＳパケット１１０１のＰＣＲはPCR(i)に保持され、ＴＳパケット１１０３にはPCR(i+1)が保持される。ＵＳＢマイクロフレームは１２５μｓであるので、各パケットをＵＳＢマイクロフレームに合わせて伝送すると、PCR(i)とPCR(i+1)との間の値と、実際のＰＣＲを含むＴＳパケットの伝送間隔には、最大で１２５μｓ未満の誤差が生じ、結果この誤差がＰＣＲのずれとなる。これを回避するためには、実際にＰＣＲを含むＴＳパケットが伝送路上に送信された際に発生しうる誤差を考慮すると、各ＰＣＲの時間間隔が１２５μｓの整数倍になるようにＰＣＲの値を修正すれば良い。このことから、修正されるべきＰＣＲを求めるために、次にＰＣＲ間隔計算部６０８は、PCR(i)とPCR(i+1)の差分を計算する。
Intvl_PCR(i) = PCR(i+1) - PCR(i)  ---------------------------------(2)
【００３５】
ＰＣＲ再計算手段６０９は、Intvl_PCR(i)の値をＵＳＢで規定されたアイソクロナス転送の１サイクル（１２５μｓ）の整数倍になるように再計算する。この再計算は、式(３)を用いて行われる。
Smoothed_Intvl_PCR(i) = Intvl_PCR(i) - MOD(Intvl_PCR(i), 3375)  ---(3)
ここで、３３７５は、１２５μｓを２７ＭＨｚクロックに換算した値である。また、ＭＯＤ（）は剰余を計算する関数である。
【００３６】
ＰＣＲの値は、２７ＭＨｚの解像度で表現されるので、式(３)によって、Intvl_PCR(i)の値を１２５μｓの整数倍にするように修正できる。
【００３７】
CarriedErrorは、式（３）のIntvl_PCR(i)の値を１２５μｓの整数倍にするときに発生した誤差の累計である。CarriedErrorは、式（４）によって計算される。初期状態であるとき、CarriedErrorは０である。
CarriedError += MOD(Intvl_PCR(i), 3375)  --------------------------(4)
【００３８】
ＰＣＲ再計算部６０９は、式（５）によって再計算された値から新しいＰＣＲを生成し、元のＰＣＲを新しいＰＣＲに書き替える。
New_PCR(i+1) = PCR(i) + Smoothed_Intvl_PCR(i)  --------------------(5)
ここで、PCR(i)とNew_PCR(i+1)との間の時間間隔は、１２５μｓの整数倍となる。
【００３９】
このとき、ＰＣＲ再計算部６０９は、PCR(i)とPCR(i+1)との間の時間間隔を１２５μｓの整数倍にするときに発生した誤差の累計を考慮する必要がある。ＰＣＲ再計算部６０９は、式(６)が成立する場合（CarriedErrorの値が３３７５よりも大きい場合）、式(７−１)及び式（７−２）を計算する。これにより、誤差が修正される。
CarriedError >= 3375  ---------------------------------------------(6)
New_PCR(i+1) = New_PCR(i+1) + 3375  -----------------------------(7-1)
CarriedError -= 3375  -------------------------------------------(7-2)
【００４０】
再計算されたNew_PCR(i+1)の値は、PCR(i+1)の値となり、次のＰＣＲであるPCR(i+2)を修正するために用いられる。
【００４１】
次に、PCR(i) を含むＴＳパケットと、PCR(i+1)を含むＴＳパケットを送信するタイミングを説明する。送信タイミング計算部６１０は、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットの一つ前のＴＳパケットまでのＴＳパケットの総数Num_TS_PACKET(i)と、再計算後の時間間隔（つまり、１２５μｓの整数倍）とに従って、各ＵＳＢマイクロフレームで送信されるべきＴＳパケットの数とタイミングとを計算する。
【００４２】
Num_Microfrm(i)は、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットが送信されるまでの間に存在するＵＳＢマイクロフレームの数である。Num_Microfrm(i)は、式(８)によって計算される。
Num_Microfrm(i) = (New_PCR(i+1) - PCR(i)) / 3375  -----------------(8)
TransPktA(i) = (INT)(Num_TS_PACKET(i) / Num_MicroFrm(i))  -------(9-1)
TransPktB(i) = TransPktA(i) + 1  --------------------------------(9-2)
NumOfTranspktB(i) = MOD(Num_TS_PACKET(i), Num_MicroFrm(i))  -----(9-3)
NumOfTranspktA(i) = Num_MicroFrm(i) - NumOfTranspktB(i)  --------(9-4)
ここで、TransPktA(i)及びTransPktB(i)は、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットまでの間に各ＵＳＢマイクロフレームにおいて送信されるＴＳパケットの数である。
【００４３】
式（９−１）におけるＩＮＴ（）は、小数点以下を破棄する関数である。例えば、Num_TS_PACKET(i)＝３０、Num_MicroFrm(i)＝２５である場合、TransPktA(i)＝１、TransPktB(i)＝２となり、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットまでが送信されるの間の各ＵＳＢマイクロフレームにおいては、あるＵＳＢマイクロフレームでは２つのＴＳパケットが一つのＵＳＢアイソクロナスパケットとして、あるＵＳＢマイクロフレームでは１つのＴＳパケットが一つのＵＳＢアイソクロナスパケットとして送信されることを示している。
【００４４】
また、NumOfTranspktA(i)は、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットまでの間でのTransPktA(i)の送信回数であり、NumOfTranspktB(i)はPCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットまでが送信されるの間におけるTransPktB(i)の送信回数である。例えば、Num_TS_PACKET(i)＝３０、Num_MicroFrm(i)＝２５である場合、NumOfTranspktA(i)＝２０、NumOfTranspktB(i)＝５となり、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットが送信されるまでの間の２５ＵＳＢマイクロフレーム内において、１ＵＳＢマイクロフレームで１ＴＳパケットを送信する回数が２０回、１ＵＳＢマイクロフレームで２ＴＳパケットを送信する回数が５回となる。
【００４５】
これらの値と、図１０に示すプログラムとに従って、TransPktA(i)及びTransPktB(i)のタイミングを設定する。図１０において、TimTable１００１は、ＵＳＢインターフェース部６０６を介して外部に転送するときのデータを指示するためのテーブルであり、pktType１００１−１とuSOF１００１−２をメンバとして保持している。ここで、pktType１００１−１は各マイクロフレーム内に何個のＴＳパケットを送信するかを示しており、これまでの説明から、TransPktA(i)かTransPktB(i)が設定される。uSOF（マイクロスタートオブフレーム）は、どのマイクロフレームで送信されるパケットかを示している。従って、TimTable１００１は、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットの一つ前までのＴＳパケットが送信されるべき間隔を指定するテーブルである。１００２のGET_CUR_uSOFによって与えられる値は、ＵＳＢホストコントローラがuSOF送信毎にインクリメントする内部カウンタの現在値を返すものである。また、１００２のGET_CUR_uSOF関数は、説明の便宜上、初期化後の初回呼び出しときのみ、内部カウンタ値を返し、以降は、１０１１のADD_CUR_uSOFにて設定されたNum_MicroFrm(i)をインクリメントした値だけ返すものとする。
【００４６】
１００３のXは計算用の変数であり０に初期化される。次に１００４のループ式を用いて、TimTable１００１を作成する。ここで、PCR(i)を含むＴＳパケットからPCR(i+1)を含むＴＳパケットの一つ前までのＴＳパケットが送信されるべきuSOFインターバルの数、すなわちトータルの送信回数はNum_MicroFrm(i)で示されている。TransPktA(i)によって示されるＴＳパケット送信の回数はNumOfTranspktA(i)、TransPktB(i)によって示されるＴＳパケット送信の回数はNumOfTranspktB(i)となる。ステップ１００５からステップ１００９までの処理は、トータル送信回数Num_MicroFrm(i)の中で、NumOfTranspktB(i)によって示される回数分だけTransPktB(i)を送信する場合のロジック例である。無論、このロジックは図１０に示されるものに限らない。ステップ１００５において、NumOfTranspktB(i)をXに加算し、ステップ１００６においてXがNum_MicroFrm(i)以上になったときだけ、TransPktB(i)を送信するようにTimTableに設定している。それ以外はTransPktA(i)が送信されるように設定する。ステップ１０１０では、内部的に保持される、内部カウンタ値を参照してＵＳＢインターフェース部６１０が送信するタイミングを決定するために利用するタイミング情報が任意の遅延delayを伴って設定される。すなわち、TimTableは一時バッファ６０４に保持されるＴＳパケットデータの送信タイミングを１２５μｓ単位で厳密に指定する。このようにして生成されたTimTableを元にＵＳＢインターフェース部６０６は、指示されたタイミング、すなわち、TimTableが保持するメンバuSOFとpktTypにしたがって、各パケットを指定タイミングで送信する。
【００４７】
図１２は、ＵＳＢインターフェース部６０６で実行される転送処理を説明するためのフローチャートである。
【００４８】
ステップ１２０１：１２５μｓでカウントされるマイクロフレーム内部カウンタ値を取得する。
【００４９】
ステップ１２０２：マイクロフレーム内部カウンタ値とTimTable[N].uSOFによって示される値が一致してなければ、再びマイクロフレーム内部カウンタ値の取得に遷移し、一致していれば、ステップ１２０３に遷移する。
【００５０】
ステップ１２０３：TimTable[N].pktTypeによって示される数だけＴＳパケットをひとつのＵＳＢアイソクロナスパケットとしてバス上に送信する。
【００５１】
ステップ１２０４：TimTableのINDEXであるNをインクリメントする。
【００５２】
ステップ１２０５：一時バッファ６０４に保存されるすべてのＴＳパケットの送信が完了したか否かを判定し、終了していたら、１バッファ分の転送を終了する。一時バッファ内のすべてのデータを送信し終えると、第２のバッファ選択部６０５を次のバッファに接続し、次のデータの送信を行う。
【００５３】
受信側の転送装置であるＤＶＣ５０１は、ＳＩＥ−ＦＩＦＯ８０２にてパケットを受信し、ＣＰＵ−ＦＩＦＯ８０１パケットが転送されると、パケットデータを内部バスに送信する。ここで、図１３ＡはＵＳＢ上の各マイクロフレーム上のＴＳパケットの伝送状態を示しており、１３０１はＳＯＦパケット、１３０２と１３０３はＰＣＲを含んだＴＳパケットであり、これらのＰＣＲは前述の方法によって、１２５μｓの整数倍にＰＣＲ間の間隔がなるように修正されたものである。図１３Ａの状態では、ＳＯＦパケットから各ＴＳパケットまでの間隔は一定であるのでＴＳパケット１３０２及び１３０３内のＰＣＲの時間間隔と実際の伝送間隔は等しい。
【００５４】
図１３Ｂも同様に、ＵＳＢ上の各マイクロフレームにおけるＴＳパケットの伝送状態を示しているが、図１３Ｂに示すように１３０３のＰＣＲを含むＴＳパケットが１３０４に示す分だけ遅延が発生した場合には、ＰＣＲにずれが発生してしまう。
【００５５】
そこで、図１４ＣにあるようにＣＰＵ−ＦＩＦＯ８０１から内部バスへの転送タイミングを次に受信するＳＯＦパケットに同期して行えば、マイクロフレーム内にて発生する遅延ずれを吸収でき、１４０１によって示される伝送期間とＴＳパケット１３０２及び１３０３のＰＣＲの時間間隔は等しくなる。すなわち、受信側においては、ＣＰＵ−ＦＩＦＯ８０１にあるデータをuSOF毎に内部バスに送信することで、１２５μｓの整数倍にした各ＰＣＲの時間間隔を正確に再現できる。
【００５６】
このように、本実施形態によれば、送信側の転送装置においてはＰＣＲの時間間隔を１２５μｓの整数倍になるように送信することができるので、受信側の転送装置におけるタイミング調整用のバッファメモリのサイズを小さくすることができ、受信側の通信装置の製造コストを低減することができるようにする。
【００５７】
また、本実施形態によれば、受信したＴＳパケットをＭＰＥＧ２ＴＳコーデック７０２に転送するタイミングをＳＯＦによって調整することができるので、１２５μｓ内に生じたずれを調整することができる。
【００５８】
なお、本発明は、所定のサイズのデータを所定の時間間隔で転送する転送方式を有する通信システムであれば、ＵＳＢ以外の通信システム（例えば、ＩＥＥＥ１３９４）で実施することもできる。
【００５９】
本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００６０】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６２】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６４】
【図１】ＣＩＰヘッダのデータフォーマットを示した図である。
【図２】ＳＰＨのデータフォーマットを示した図である。
【図３】ＩＥＥＥ１３９４規格及びＩＥＣ６１８８３規格を使用した通信システムにおけるＴＳパケットの転送方法を説明する図である。
【図４】ＭＰＥＧ２ＴＳヘッダに含まれるＰＣＲフィールドのデータフォーマットを示した図である。
【図５】本発明に好適な実施形態の一例であるデータ転送システムの主要な構成要素を示す図である。
【図６】送信側の転送装置の主要な構成要素を示す図である。
【図７】受信側の転送装置の主要な構成要素を示す図である。
【図８】受信側の転送装置のＵＳＢインターフェース部で行われるタイミング調整処理を説明するための図である。
【図９】ＭＰＥＧ２ＴＳのヘッダフォーマット概略図である。
【図１０】ＴＳパケットの送信タイミングを計算するためのプログラムの一例を示す図である。
【図１１】バッファに蓄積されるＴＳパケットの状態を示す図である。
【図１２】送信側の転送装置のＵＳＢインターフェース部で実行される転送処理を説明するためのフローチャートである。
【図１３】ＴＳパケットを送信するタイミングを説明するための図である。
【図１４】ＴＳパケットを送信するタイミングを説明するための図である。
【符号の説明】
【００６５】
５０１              ＤＶＣ
５０２              ＵＳＢケーブル
５０３              ＰＣ
６０１              ストレージ部
６０２              読み出し部
６０４ａ〜６０４ｃ  バッファ
６０３、６０５      バッファ選択部
６０６              ＵＳＢインターフェース部
６０７              ＰＣＲ検出部
６０８              ＰＣＲ間隔計算部
６０９              ＰＣＲ再計算部
６１０              送信タイミング計算部
７０１              ＣＰＵ
７０２              ＭＰＥＧ２ＴＳコーデック
７０３              ＵＳＢインターフェース部
７０４              データバス
【図１】
2005216265.tif 000003
【図２】
2005216265.tif 000004
【図３】
2005216265.tif 000005
【図４】
2005216265.tif 000006
【図５】
2005216265.tif 000007
【図６】
2005216265.tif 000008
【図７】
2005216265.tif 000009
【図８】
2005216265.tif 000010
【図９】
2005216265.tif 000011
【図１０】
2005216265.tif 000012
【図１１】
2005216265.tif 000013
【図１２】
2005216265.tif 000014
【図１３】
2005216265.tif 000015
【図１４】
2005216265.tif 000016