(57)【要約】【課題】  パケットストリームとして生成されるデータのパケット形式を変換し、ネットワークを介してデータを送信する場合において、パケット間隔のずれに起因する復号信号の乱れを抑制する。【解決手段】  ＴＳパケットからなるトランスポートストリームがＭＰＥＧ２エンコーダＬＳＩ２２から出力される。ＴＳパケットがよりサイズの大きいイーサネットパケットに格納されてネットワークに送出される。イーサネットパケットのパケットストリームに含まれるＴＳパケットの間隔、及び時間基準情報（ＰＣＲ）の間隔を、それぞれトランスポートストリームに含まれるＴＳパケットの間隔及びＰＣＲの間隔とほぼ同一とする。【選択図】  図２
2006217651.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対して情報圧縮処理を施し、第１のパケットにデータを格納するとともに、所定の時間間隔で時間基準情報を格納し、第１のパケットストリームとして出力する情報圧縮手段と、該情報圧縮手段から出力される第１のパケットストリームを、前記第１のパケットよりパケットサイズの大きい第２のパケットに格納し、第２にパケットストリームとしてネットワークに送出するデータ送出手段とを備えるデータ送信装置において、
前記データ送出手段は、前記第１のパケットストリームに含まれる前記第１のパケットの間隔を維持しつつ前記第１のパケットを前記第２のパケットに格納し、前記第２のパケットストリームとしてネットワークに送出することを特徴とするデータ送信装置。
【請求項２】
入力データに対して情報圧縮処理を施し、第１のパケットにデータを格納するとともに、所定の時間間隔で時間基準情報を格納することにより、第１のパケットストリームを生成する情報圧縮ステップと、該生成した第１のパケットストリームを、前記第１のパケットよりパケットサイズの大きい第２のパケットに格納し、第２にパケットストリームとしてネットワークに送出するデータ送出ステップからなるデータ送信方法において、
前記データ送出ステップでは、前記第１のパケットストリームに含まれる前記第１のパケットの間隔を維持しつつ前記第１のパケットを前記第２のパケットに格納し、前記第２のパケットストリームとしてネットワークに送出することを特徴とするデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イーサネットやファーストイーサネットなどのＬＡＮ（Local Area Network）に画像データや音声データを送出するデータ送信装置及び方法に関する。
【背景技術】
【０００２】
ネットワーク画像データ伝送システムは、図９に示すように、画像データ送信装置（以下「サーバ」という）１０１、及び画像データ受信装置（以下「クライアント」という）１０２がイーサネット１００を介して接続されて構成される。サーバ１０１では、入力された映像信号をＭＰＥＧ（Motion Picture Expert Group）２でエンコード処理を行い、このデータをイーサネットパケットに変換してイーサネット１００に送り出す。クライアント１０２では、サーバ１０１と逆の手順により、受信したデータをデコードして、再生画像をモニタ１０３よりに表示するとともに、再生音声を出力する。
【０００３】
図１０は、図９に示すサーバ１０１の回路構成を示したものである。サーバ１０１は、入力ビデオ信号をＭＰＥＧ２で圧縮するＭＰＥＧエンコーダ回路１１１、圧縮されたデータ（トランスポートストリーム、以下ＴＳ）をイーサネット１００に送出するイーサネット回路１１２、装置全体を制御するＣＰＵ（Central Processing Unit）１１３、ＣＰＵ１１３による処理の対象となるデータを格納するＤＲＡＭ（Dynamic Random Access Memory）１１４などにより構成される。
【０００４】
このうちＭＰＥＧエンコーダ回路１１１は、主にＡ／Ｄ変換器（同期信号分離回路、同期回路を含む）１２１と、ＭＰＥＧ２エンコーダＬＳＩ１２２と、ＦＩＦＯ（First In First Out）メモリ１２３と、バスコントロール回路１２４とで構成される。
【０００５】
ここで、入力されたビデオ信号がイーサネット１００に送出されるまでの過程を簡単に説明する。図１０において、入力されたビデオ信号は、Ａ／Ｄ変換器１２１でディジタルデータに変換された後、ＭＰＥＧ２エンコーダＬＳＩ１２２にて圧縮処理され、トランスポートストリーム形式で出力される。このデータは一旦、ＦＩＦＯメモリ１２３に保持され、ＣＰＵ１１３のソフトウェア制御によりＦＩＦＯメモリ１２３から読み出され、バスコントロール回路１２４を通り、ＣＰＵデータバス１１５を介してＤＲＡＭ１１４に書き込まれる。ＤＲＡＭ１１４から読み出されたデータは、ＵＤＰ（User Datagram Protocol）やＩＰ（Internet Protocol）のヘッダ情報が付加されてイーサネット回路１１２に送られ、イーサネットパケットＩＰＣＴごとにイーサネット１００上に送出される。
【０００６】
次に、ＭＰＥＧ２エンコーダＬＳＩ１２２から出力されたトランスポートストリームをＦＩＦＯメモリ１２３に書き込み、書き込んだデータを読み出す動作を説明する。
【０００７】
図１３は、サーバ１０１における各信号のタイミングを示したものである。ＭＰＥＧ２エンコーダＬＳＩ１２２から出力されるトランスポートストリーム（図１３（ｂ）に示すＴＳＤＡＴＡ）は、連続的に出力される場合と、途切れながらバースト的（間欠的）に出力される場合がある。図１３は、トランスポートストリームが途切れながらバースト的に出力される場合を表している。各ＬＳＩメーカが提供するＭＰＥＧ２エンコーダＬＳＩの多くは、データを出力する際に、データに同期する形でＶＡＬＩＤ信号（同図（ａ））とＳＹＮＣ信号（同図（ｂ））を出力している。ＶＡＬＩＤ信号は、データが有効な期間にアクティブとなる信号であり、図中のデータＡやＢ、Ｃが出力される期間に高レベルが出力される。ＳＹＮＣ信号は、１８８バイトで構成されるＴＳ（トランスポートストリーム）パケットの先頭バイトで高レベルとなる信号である。図１３（ｂ）に示すＡやＢ、Ｃは、ＴＳパケットが複数個出力された状態を示している。
【０００８】
図１０のバスコントロール回路１２４は、ＭＰＥＧ２エンコーダＬＳＩ１２２から出力されたＶＡＬＩＤ信号やＳＹＮＣ信号に応じて、ＦＩＦＯメモリ１２３の書き込み制御を行い、ＣＰＵ１１３の命令によりＦＩＦＯメモリ１２３からデータを読み出し、ＣＰＵ１１３が受け取れるタイミングに調整する。
【０００９】
バスコントロール回路１２４から出力されるライトイネーブル信号（以下「ＷＥ信号」という）やリードイネーブル信号（以下「ＲＥ信号」という）は、それぞれＦＩＦＯメモリ１２３のＷＥ端子及びＲＥ端子に接続されており、この信号によってＦＩＦＯメモリ１２３の書き込み・読み出し操作が行われる。
【００１０】
図１３に示すように、ＶＡＬＩＤ信号が高レベルになると、バスコントロール回路１２４は、ＷＥ信号をアクティブ（図では高レベル）にしてＦＩＦＯメモリ１２３にデータを書き込む。この時、バスコントロール回路１２４のライトカウンタは、書き込まれたデータのバイト数をカウントしている（図１３（ｄ）のカウント動作期間ＴＣＯ参照）。ＶＡＬＩＤ信号が低レベルになると、バスコントロール回路１２４は、ＷＥ信号を低レベルにして書き込み動作を止めるとともに、カウント動作を中止し、現在のカウント値を保持する（同図（ｄ）のカウント保持期間ＴＣＨ）。
【００１１】
ＦＩＦＯメモリ１２３に１４６０バイト（値の意味は後述する）が書き込まれると、バスコントロール回路１２４のライトカウンタが１４６０バイトとなり、ＭＰＥＧ割り込み信号ＭＩＲＱが出力される（同図（ｆ）、時刻ｔ１，ｔ２）。このＭＰＥＧ割り込み信号ＭＩＲＱは、ＣＰＵ１１３のハードウェア割り込み端子に入力されており、ＣＰＵ１１３に対して割り込み処理を要求する。割り込みが発生すると、ＣＰＵ１１３上で動作する割り込み処理ルーチンが実行され、バスコントロール回路１２４に対しＦＩＦＯメモリ１２３の読み出し動作を指示する。ＣＰＵ１１３からの命令を受けたバスコントロール回路１２４は、ＲＥ信号を高レベルにしてＦＩＦＯメモリ１２３からデータを読み出す。この後はＣＰＵ１１３によるソフトウェア処理となる。
【００１２】
次にイーサネットパケットの生成と送信方法について説明する。
従来のサーバでは、イーサネットパケットの最大長（１５１８バイト）を越えないようにするため、１５００バイト相当のデータをイーサネットの１パケットとして送信する。従って、ＵＤＰ・ＩＰなどのヘッダを付加することを考慮して、データ領域を１４６０バイトに設定している。
【００１３】
ＣＰＵ１１３上で動作する割り込み処理ルーチンなどのソフトウェアにより、ＦＩＦＯメモリ１２３から読み出されたデータは、一旦ＤＲＡＭ１１４に書き込まれる。このデータに、図１１に示すように、８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダが付加されて、イーサネット回路１１２に送られる。イーサネット回路１１２では、更にこのデータに１４バイトのイーサネットヘッダが付加され、１５００バイト相当（１５０２バイト）の１パケットが出来上がる。これを図１３（ｈ）に示すタイミングでイーサネット１００に送信される。最初の１パケットは、トランスポートストリームＴＳＤＡＴＡのＡとＢで構成され、次のパケットは、Ｂの残りとＣで構成されている。このように、従来のサーバは、ＭＰＥＧ２エンコーダＬＳＩ１２２から出力されたトランスポートストリームＴＳ
ＤＡＴＡを１４６０バイト単位でイーサネットパケットに格納して送り出している。
【００１４】
一方、クライアント１０２は、既に述べたように、イーサネット回路１３２及びＭＰＥＧデコーダ回路１３１で構成されている。このうち、ＭＰＥＧデコーダ回路１３１は、主にＭＰＥＧ２デコーダＬＳＩやメモリ（図示せず）で構成される。ここでは、ＭＰＥＧ２デコーダＬＳＩのクロック同期系を中心に説明する。
【００１５】
ＭＰＥＧ２の規格では、ＡＴＭ（Asynchronous Transfer Mode）などのネットワークによる伝送が想定されており、クロックや制御信号を直接伝送できない伝送路においても、受信側のＭＰＥＧ２デコーダ（以下「デコーダ」という）を送信側のＭＰＥＧ２エンコーダ（以下「エンコーダ」という）に同期させる仕組みが考えられている。それは、ストリーム内にタイムスタンプを付加して伝送するというものであり、ストリーム構造がトランスポートストリームの場合、プログラム時刻基準参照値（Program Clock Reference、以下「ＰＣＲ」という）と呼ばれる。ＴＳパケットには、ペイロードの他にアダプテーションフィールドという領域があり、この中のオプショナルフィールドにＰＣＲが付加されている。これは、エンコーダが符号化時にシステムクロックから算出した時刻情報であり、送信間隔は１００ｍｓｅｃ以下と規格で定められている。
【００１６】
デコーダ回路１３１では、受信したストリームからこのＰＣＲを抜き出し、図１２に示すようなＰＬＬ（Phase Locked Loop）回路により、デコーダ自身のシステムクロックをエンコーダ側のシステムクロックに同期させることができる。ＰＬＬ回路の動作は以下の通りである。
【００１７】
図１２は、ＭＰＥＧ２デコーダＬＳＩに内蔵されるＰＬＬ回路の構成を示したものである。図のＳＴＣ（System Time Clock）は、デコーダ自身の２７ＭＨｚのシステムクロックをＳＴＣカウンタ１４４でカウントして算出される。このＳＴＣカウンタ１４４は、エンコーダ側の基準カウンタと同一構成のものであり、受信したストリームから最初に抜き出されたＰＣＲの値がロードされてカウンタ１４４の初期値が決定される。その後は、ＰＬＬ回路の閉ループにおいてカウント動作を継続する。閉ループ内の比較器１４１では、ＰＣＲがデコーダに到着した時刻に、そのＰＣＲとＳＴＣの現在値とが比較される。その比較結果（誤差分）に応じた電圧がローパスフィルタ１４２を介して２７ＭＨｚＶＣＸＯ（電圧制御クリスタル発振器）１４３に供給され、クロック信号ＣＬ２７Ｍの周波数２７ＭＨｚが調整される。
【００１８】
このように、デコーダ回路１３１は、エンコーダで付加されたＰＣＲを基準にクロックを微調整することによって、エンコーダのシステムクロック周波数に一致させることができる。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述したように、サーバ１０１では、１５００バイト相当のイーサネットパケットごとに送信が行われる。この時のタイミングを示したものが図１３（ｈ）である。ところが、エンコーダ（サーバ側）１１１から送信されたデータがデコーダ（クライアント側）１３１に到着するまでに、当然のことながら遅延時間ＴＤが存在する。仮にこの遅延時間ＴＤが一定であれば、クライアント１０２は、図１３（ｈ）から一定遅延された同図（ｉ）のタイミングでデータを受け取ることになる。クライアント１０２では、このタイミングで受信したイーサネットパケットから１８８バイトのＴＳパケットを取り出してデコーダ１３１に渡すことになる。ここで、ＴＳパケットの到着時刻（ＴＳパケットの時間間隔）に着目すると、同図（ｉ）に示す受信タイミングは、サーバ１０１のエンコーダＬＳＩ１２２から出力されたタイミング（同図（ｂ））と異なっている。ＴＳパケットの時間間隔が変わってしまうと、ＴＳパケット内に付加されているＰＣＲの到着時間間隔も変わってしまう。
【００２０】
デコーダＬＳＩに搭載されたＰＬＬ回路では、ＰＣＲが到着した時刻においてＰＣＲとＳＴＣの比較が行われるため、パケットの時間間隔にずれが生じると比較結果の誤差が増えてしまう。その結果、ＰＬＬ回路が間違った周波数に調整されてしまい、デコーダ１３１のシステムクロックがエンコーダ１１１のシステムクロックに同期しなくなる。この状態がしばらく続くと、クライアント１０２に設けたバッファがオーバフローまたはアンダフローを起こし、デコードした画像が乱れるという問題が発生する。
【００２１】
また既に述べたように、サーバ・クライアント間のデータ伝送には、遅延時間があり、実際のＰＣＲの到着時刻にはこの遅延時間も含まれることになる。クライアント１０２のデコーダＬＳＩに内蔵されるＰＬＬ回路では、デコーダ１３１にＰＣＲが到着した時刻に、ＰＣＲとＳＴＣの比較が行われるため、サーバ・クライアント間の遅延時間が一定であることが求められる。
【００２２】
しかし、イーサネットのようなバス型の伝送路では、この遅延時間は必ずしも一定とは限らず、ある程度ジッタを持っている。このような伝送路では、ＰＣＲの到着時刻、つまりＴＳパケットの到着時刻がジッタによって変動すると、ＰＬＬ回路の比較器１４１におけるＰＣＲとＳＴＣの誤差が生じてしまう。その結果、ＰＬＬ回路が間違った周波数に調整されてしまい、デコーダ１３１のシステムクロックがエンコーダ１１１のシステムクロックに同期しなくなる。この状態がしばらく続くと、クライアント１０２に設けたバッファがオーバフロー、またはアンダフローを起こし、デコードした画像が停止またはスキップするという不具合が発生する。
【００２３】
本発明は上述した点を考慮してなされたものであり、パケットストリームとして生成されるデータのパケット形式を変換し、ネットワークを介してデータを送信する場合において、パケットストリーム生成時に対して送信タイミングにおけるパケット間隔の時間ずれを抑制させたデータ送信装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明は、上記課題を解決するために、以下の１）〜２）に記載手段よりなる。
すなわち、
１）入力データに対して情報圧縮処理を施し、第１のパケットにデータを格納するとともに、所定の時間間隔で時間基準情報を格納し、第１のパケットストリームとして出力する情報圧縮手段と、該情報圧縮手段から出力される第１のパケットストリームを、前記第１のパケットよりパケットサイズの大きい第２のパケットに格納し、第２にパケットストリームとしてネットワークに送出するデータ送出手段とを備えるデータ送信装置において、
前記データ送出手段は、前記第１のパケットストリームに含まれる前記第１のパケットの間隔を維持しつつ前記第１のパケットを前記第２のパケットに格納し、前記第２のパケットストリームとしてネットワークに送出することを特徴とするデータ送信装置。
２）入力データに対して情報圧縮処理を施し、第１のパケットにデータを格納するとともに、所定の時間間隔で時間基準情報を格納することにより、第１のパケットストリームを生成する情報圧縮ステップと、該生成した第１のパケットストリームを、前記第１のパケットよりパケットサイズの大きい第２のパケットに格納し、第２にパケットストリームとしてネットワークに送出するデータ送出ステップからなるデータ送信方法において、
前記データ送出ステップでは、前記第１のパケットストリームに含まれる前記第１のパケットの間隔を維持しつつ前記第１のパケットを前記第２のパケットに格納し、前記第２のパケットストリームとしてネットワークに送出することを特徴とするデータ送信方法。
【発明の効果】
【００２５】
本発明によるデータ送信装置及び方法によれば、入力データに対して情報圧縮処理が施され、第１のパケットにデータが格納されるとともに、所定の時間間隔で時間基準情報が格納され、第１のパケットストリームが生成される。そして生成された第１のパケットストリームが、第１のパケットよりパケットサイズの大きい第２のパケットに格納され、第２にパケットストリームとしてネットワークに送出される。さらに、第１のパケットストリームに含まれる第１のパケットの間隔を維持しつつ第１のパケットが第２のパケットに格納され、第２のパケットストリームとしてネットワークに送出される。したがって、第２のパケットストリーム送出タイミングにおけるパケット間隔の時間ずれが抑制され、パケット間隔の時間ずれに起因する復号信号の乱れが受信装置側で発生することを抑制することができる。
【発明を実施するための最良の形態】
【００２６】
以下本発明の実施の形態を図面を参照して説明する。
（第１の実施形態）
図１は本発明の一実施形態にかかるデータ送信装置の構成を示すブロック図である。図１に示す構成は、図１０に示す従来のデータ送信装置の構成と同様である。すなわち、図１に示すサーバ１は、入力ビデオ信号をＭＰＥＧ２で圧縮するＭＰＥＧエンコーダ回路１１、圧縮されたデータ（トランスポートストリーム）をイーサネット１００に送出するイーサネット回路１２、装置全体を制御するＣＰＵ（Central Processing Unit）１３、処理対象のデータを一時的に格納するＤＲＡＭ（Dynamic Random Access Memory）１４などにより構成される。
【００２７】
このうちＭＰＥＧエンコーダ回路１１は、主にＡ／Ｄ変換器（同期信号分離回路、同期回路を含む）２１と、ＭＰＥＧ２エンコーダＬＳＩ１２と、ＦＩＦＯ（First In First Out）メモリ２３と、バスコントロール回路２４とで構成される。
【００２８】
図１０に示す従来のサーバ１０１では、１５００バイト相当のイーサネットパケットごとに送信を行っていた。そのため、エンコーダＬＳＩ１２２から出力されたトランスポートストリーム（ＴＳ）を１４６０バイトごとに処理することになり、結果的にＴＳパケットの時間間隔が崩れてしまい、クライアントのＰＬＬ回路を誤動作させていた。そこで、本実施形態では、ＴＳパケット（１８８バイト）単位にデータを取り扱い、ＶＡＬＩＤ信号が高レベルとなる期間ごとにイーサネットパケットを生成するようにしている。
【００２９】
図１に示すサーバ１では、バスコントロール回路２４の動作が、図１０に示すパスコントロール回路１２４と異なっている。そこで、バスコントロール回路２４を中心としたハードウェア動作を説明しながら、イーサネットパケットの生成と送信方法について説明する。
【００３０】
図２は、サーバ１のデータタイミングを示すタイミングチャートである。同図（ｂ）のＴＳＤＡＴＡは、ＭＰＥＧ２エンコーダＬＳＩ２２からトランスポートストリームが連続的にではなく、バースト的に出力される状態を示している。同図（ａ）のＶＡＬＩＤ信号は、データが有効な期間にアクティブ（図では高レベル）となる信号であり、同図（ｃ）のＳＹＮＣ信号は、１８８バイトで構成されるＴＳパケットの先頭バイトで高レベルとなる信号である。ＴＳＤＡＴＡのパケット群ＡやＢ、Ｃは、ＴＳパケットが複数個出力された状態を表している。
【００３１】
ＶＡＬＩＤ信号が高レベルになると、ＭＰＥＧ２エンコーダＬＳＩ２２から同図（ｂ）に示すタイミングでＴＳパケット群Ａが出力される。バスコントロール回路２４では、ＶＡＬＩＤ信号が高レベルの間、ライトイネーブル信号（以下「ＷＥ信号」という）をアクティブ（図では高レベル）にしてＦＩＦＯメモリ２３にこのデータを書き込んでいく。この時、バスコントロール回路２４では、ライトカウンタが、書き込んだデータのバイト数をカウントしており、この動作が同図（ｄ）のカウント動作期間ＴＣＯに示されている。
【００３２】
バスコントロール回路２４は、ライトカウンタの値が予め設定した値（例えば、１８８バイト）に達した時、割り込み要求信号ＭＩＲＱを高レベルにする。この割り込み要求信号ＭＩＲＱは、ＣＰＵ１３のハードウェア割り込み端子に接続されており、ＣＰＵ１３に対して割り込み処理を要求する。割り込みが発生すると、ＣＰＵ１３上で動作する割り込み処理ルーチン（図３（ａ）参照）が実行され、ＣＰＵ１３の命令によりバスコントロール回路２４はリードイネーブル信号（以下「ＲＥ信号」という）をアクティブ（高レベル）にしてＦＩＦＯメモリ２３からデータを読み出す。この時、ＶＡＬＩＤ信号を１８８バイトだけ遅らせた信号をＲＥ信号に使用することで、ＴＳパケットの時間間隔を維持したまま、ＦＩＦＯメモリ２３の読み出しを行っている。
【００３３】
一方、ＶＡＬＩＤ信号が低レベルになると、ＷＥ信号を低レベルにして書き込み動作を停止し、ライトカウンタをリセットして次のＶＡＬＩＤ信号に備える（図２（ｄ）のリセット期間ＴＣＲ）。
【００３４】
ＦＩＦＯメモリ２３から読み出されたパケット群Ａは、図１１に示すように、８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダが付加され、イーサネット回路１２に送られる。イーサネット回路１２では、このデータに１４バイトのイーサネットヘッダを付加して、イーサネットパケットとしてネットワーク１００上に送信する。仮に、パケット群Ａが１４６０バイトに満たない場合でも、そのデータからイーサネットパケットを生成して送信する。パケット群Ａが１４６０バイト以上である場合は、複数のイーサネットパケットを生成して送信する。
【００３５】
次にＶＡＬＩＤ信号が高レベルになると、エンコーダＬＳＩ２２からＴＳパケット群Ｂが出力され、同様の手順によりパケット群Ｂによりイーサネットパケットを生成して送信する。
【００３６】
以上の操作により、パケットを送信する際にイーサネット回路１２において送信時間がずれることはあるが、図２（ｈ）に示す送信タイミングは、エンコーダＬＳＩ２２から出力されたタイミング（同図（ｂ））とほぼ等しくなる。従って、送信時にＴＳパケットの時間間隔が大きくずれることがなくなる。
【００３７】
また、サーバ・クライアント間の遅延時間にジッタがない場合、パケットを受信するタイミングは、送信時刻から一定時間ＴＤ遅延された同図（ｉ）に示すタイミングとなる。クライアントは、この受信タイミングから１８８バイトごとにＴＳパケットを取り出すことができるため、ＰＣＲの到着時間間隔を維持したまま、ＴＳパケットをデコーダＬＳＩに渡すことが可能となる。その結果、デコーダＬＳＩに内蔵されたＰＬＬ回路の誤動作を防止することができ、デコーダのシステムクロックがエンコーダ側のシステムクロックに同期しなくなる現象を回避することができる。よって、デコード画像の乱れを最小限に抑えることができる。
【００３８】
次にＣＰＵ１３におけるソフトウェアの動作を説明する。
ＣＰＵ１３上で動作するソフトウェアでは、主にＦＩＦＯメモリ２３の読み出し動作と、イーサネットパケットの生成を行っている。ここでは、図３に示したフローチャートを参照しながら、実際のソフトウェアの動作について説明する。
【００３９】
ＶＡＬＩＤ信号が高レベルになり、ＦＩＦＯメモリ２３に１８８バイトのデータが書き込まれると、割り込み信号ＭＩＲＱが高レベルとなり、割り込み処理ルーチン（図３（ａ）のＭＰＥＧ割り込みルーチン）が実行される。
【００４０】
ステップＳ１１では、ＲＥ信号が高レベルであるかどうかをチェックし、高レベルの場合は、読み出し操作を実行する（ステップＳ１２）。低レベルの場合は、読み出し操作が終了したため、ステップＳ１３に進む。
【００４１】
ステップＳ１２では、バスコントロール回路２４にＦＩＦＯメモリ２３の読出動作を命令する。この命令により、バスコントロール回路２４によってＦＩＦＯメモリ２３からデータが読み出され、ＤＲＡＭ１４上に確保したＭＰＥＧエリアに書き込まれる。その後ステップＳ１１に戻る。
【００４２】
ステップＳ１３では、ＶＡＬＩＤ信号が高レベルである期間に書き込んだデータをすべて読み出したため、ＭＰＥＧ送信アプリケーション（同図（ｂ））をコールして、ＭＰＥＧ割り込みルーチンを終了する。
次に、ＭＰＥＧ割り込みルーチンによってコールされたＭＰＥＧ送信アプリケーション（同図（ｂ））が開始される。
【００４３】
ステップＳ２１では、ＤＲＡＭ１４のＭＰＥＧエリアからデータを１４６０バイト読み出す。１４６０バイトに満たない場合はすべて読み出す。
ステップＳ２２では、このデータに８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダを付加する。
【００４４】
ステップＳ２３では、このデータをイーサネット回路１２のデータ領域に書き込み、送信開始手続きをする。
この後は、イーサネット回路１２によるハードウェア処理となる。更にこのデータに１４バイトのイーサネットヘッダが付加され、１５０２バイトのパケットが生成される。これが１つのイーサネットパケットとしてイーサネット１００に送り出される。
【００４５】
ステップＳ２４では、ＤＲＡＭ１４のＭＰＥＧエリアに書き込まれたデータがあるかどうかチェックし、データが残っているなら、ステップＳ２１に戻って、ＭＰＥＧエリアにデータがなくなるまで、ステップＳ２１〜Ｓ２３の処理を実行し、イーサネットパケットの生成・送信を繰り返す。
【００４６】
ステップＳ２４の答えが否定（ＮＯ）となり、イーサネットパケットがすべて送信されたら、ＭＰＥＧ送信アプリケーションを終了する。
このように、ＶＡＬＩＤ信号を一定時間遅延した信号のタイミングでイーサネットパケットの生成・送信を行うことによって、ＴＳパケットの時間間隔のずれを最小限に抑えることができる。その結果、クライアントでは、ＰＣＲの到着時間のずれを抑制することができるため、デコーダに内蔵されたＰＬＬ回路の誤動作を防ぐことができる。
【００４７】
図４は、本発明の第１の実施形態に適用されるデータ受信装置の回路構成を示したブロック図である。データ受信装置、すなわちクライアント２は、送信されたパケットを受信するイーサネット回路３２と、イーサネット回路３２から受け取ったデータをデコード処理するＭＰＥＧデコーダ回路３１と、回路全体を制御するＣＰＵ３３と、処理対象のデータを一時的に格納するＤＲＡＭ３４とで構成される。
【００４８】
このうち、ＭＰＥＧデコーダ回路３１は、バスコントロール回路４１と、ＦＩＦＯメモリ４２と、ＭＰＥＧ２デコーダＬＳＩ４３と、ジッタ検出回路４４と、リードクロックコントロール回路４５とで構成される。まず、イーサネット回路３２で受信されたイーサネットパケットは、イーサネット、ＩＰ、及びＵＤＰの各プロトコルヘッダを取り除かれ、ＤＲＡＭ３４上に保存される。バスコントロール回路４１は、ＤＲＡＭ３４からデータを読み出してＦＩＦＯメモリ４２に書き込む。ＦＩＦＯメモリ４２から読み出されたデータは、ＭＰＥＧ２デコーダＬＳＩ４３に入力されてデコード処理され映像信号として出力される。
【００４９】
次に、伝送路（イーサネット１００）でジッタが生じた場合の検出方法とデコーダに渡すデータの調整方法を説明する。
【００５０】
図５（ａ）及び（ｂ）は、送信時のイーサネットパケット及び受信したイーサネットパケットのタイミング関係を示したものであり、データＡは遅延時間ＴＤａ経過後に受信され、次のデータＢは、伝送路にジッタが発生したため、遅延時間ＴＤｂ経過後に受信されている。このデータＢを拡大してＴＳパケット単位に見てみると、同図（ｃ）及び（ｄ）に示すように、本来のＴＳパケットに比べてパケット内に付加されたＰＣＲの到着時間が遅れている。このような状態がしばらく続くと、問題点で挙げたようにデコーダのシステムクロックがエンコーダ側に同期しなくなってしまう。
【００５１】
そこで本実施形態では、ジッタ検出回路４４とリードクロックコントロール回路４５を設け、デコーダＬＳＩ４３に渡すデータのタイミングを調整する。
まず、ジッタ検出回路４４では、受信したストリームＴＳ１から第１ＰＣＲ（図６（ｃ））を抜き出す。ジッタ検出回路４４は、図１２に示すＳＴＣカウンタと同様のカウンタを備えており、デコーダＬＳＩ４３から入力された２７ＭＨｚクロックＣＬ２７ＭをカウントしてＳＴＣを生成する。次に、生成したＳＴＣとストリームから抽出した第１ＰＣＲとの比較が行われる。この比較結果（ＳＴＣとＰＣＲの差）は、予め設定しておいたしきい値と比較される。このしきい値には、伝送路にジッタがない環境下で生じるＳＴＣとＰＣＲの誤差値を設定しておく。つまり、ＳＴＣとＰＣＲの比較結果がしきい値に対して大きくずれた場合、伝送路にジッタが生じたことが分かる。
【００５２】
ジッタ検出回路４４は、ジッタを検出するとリードクロックコントロール回路４５にジッタ検出信号ＳＪを出力する。このジッタ検出信号ＳＪは通常低レベルであるが、ジッタを検出した際に高レベルとなる。また、この信号ＳＪと同時にＰＣＲの遅延量に応じて、遅延状況信号ＳＤを出力している。遅延状況信号ＳＤは、抽出したＰＣＲが、ＳＴＣより遅れているときは低レベル、ＳＴＣよりも進んでいるときは高レベルとなる信号である。この他にジッタ検出回路４４には、ＦＩＦＯメモリ４２から読み出されたデータが入力されており、このデータからジッタ補正後のＰＣＲを抽出する。
【００５３】
次に図４に示す装置の、実際の動作を説明する。
図６（ｂ）に示すＳＴＣは、ジッタ検出回路４４における２７ＭＨｚクロックをカウントして算出したＳＴＣの値を表している。同図（ｃ）に示す第１ＰＣＲは、受信ストリームＴＳ１から抽出したＰＣＲの値を示し、同図（ｄ）に示す第２ＰＣＲは、ＦＩＦＯメモリ２４から読み出したストリームＴＳ２から抽出したＰＣＲの値である。尚、ここではＳＴＣ及びＰＣＲの値を簡単な整数で示しているが、実際の値はこれとは異なる。
【００５４】
パケットをいくつか受信すると、デコーダＬＳＩ４３に内蔵されたＰＬＬ回路の効果が現れ、次第にエンコーダとデコーダのシステムクロックの周波数が等しくなっていく。この時、ストリームから抽出した第１ＰＣＲはＳＴＣに近い値になる。しかし、伝送路にジッタが発生すると第１ＰＣＲの到着時刻が遅くなり、その間ＳＴＣカウンタがカウント動作を継続するため、抽出した第１ＰＣＲはＳＴＣの値よりも遅れてしまう。この状態を表したものが図６（ｃ）に示す×期間であり、抽出した第１ＰＣＲが１０の時、ＳＴＣの現在値は８０となっている。この時、ＳＴＣと第１ＰＣＲの差は７０となり、しきい値（設定値を例えば５０とする）を越えているため、ジッタが発生していることが検出される。
【００５５】
このようにジッタが検出されると、ジッタ検出信号ＳＪが高レベルとなり、遅延状況信号ＳＤは低レベルとなる。この情報を得たリードクロックコントロール回路４５は、同図（ａ）に示すように、リードクロックを標準周波数よりも高い周波数（例えば２倍の周波数）に切り替えて出力する。これにより、ＦＩＦＯメモリ４２から読み出されるデータは、通常の２倍の速さになりデコーダＬＳＩ４３に渡すデータの転送レートも上がる。従って、このデータＴＳ２から抽出した第２ＰＣＲも、２倍の速さで１１、１２、１３、１４…と進んでいき、やがて、ＳＴＣの値に追いつきジッタを吸収することができる。第２ＰＣＲとＳＴＣの値が一致したところで、リードクロックを標準周波数に切り替えて通常通りの転送レートに戻す。
【００５６】
このように、ＦＩＦＯメモリ４２のリードクロックの周波数を変えることによって、デコーダＬＳＩ４３に渡すデータから大きなジッタを取り除くことができる。また、ここではリードクロックを標準の２倍の周波数で説明したが、これを４倍、８倍…に設定すれば、より短時間にジッタを吸収することができる。
【００５７】
以上の操作により、伝送路のジッタによってデコーダ内蔵のＰＬＬ回路が誤動作する現象を回避することができる。その結果、デコーダのシステムクロックがエンコーダ側に同期しなくなるという問題が解決できる。
これまでは、伝送路の遅延時間が長くなる場合について説明したが、伝送路の経路が変わって急にサーバ・クライアント間の遅延時間が短くなる場合もある。このような場合、抽出した第１ＰＣＲはＳＴＣの現在値よりも進んでしまう。この時、ジッタ検出信号ＳＪ及び遅延状況信号ＳＤは共に高レベルとなり、リードクロックコントロール回路４５は、ＦＩＦＯメモリ４２のリードクロックを標準よりも低い周波数（例えば１／２倍、１／４倍…など）に切り替えて、通常よりも低い転送レートでＦＩＦＯメモリ４２からデータを読み出し、これをデコーダＬＳＩ４３に入力させる。このように、遅延時間が短くなった場合でも転送レートを調整することによってＰＬＬ回路の誤動作を防ぐことができる。
【００５８】
（第２の実施形態）
本実施形態では、サーバ１を、ＭＰＥＧ２エンコーダＬＳＩからトランスポートストリームが連続的に出力される場合に対応したものとした。回路構成は第１の実施形態と同様であるが、バスコントロール回路２４の動作が異なる。そこで、バスコントロール回路２４を中心としたハードウェア動作を説明しながら、イーサネットパケットの生成と送信方法について述べる。
【００５９】
はじめに、本実施形態におけるイーサネットパケットの送信単位について説明する。
クライアント側のＰＬＬ回路を誤動作させないためには、送信段階からＴＳパケットの時間間隔を維持することが必要である。そこで、本実施形態では、１８８バイトで構成されるＴＳパケットの７個分のデータ（１３１６バイト）から１つのイーサネットパケットを作ることにする。
【００６０】
図７は、本実施形態のサーバ及びクライアントのデータタイミングを示したものである。
同図（ａ）のＴＳＤＡＴＡは、ＭＰＥＧ２エンコーダＬＳＩ２２から途切れなく連続して出力されるＴＳパケットの状態を表しており、１３１６バイト単位にデータを区切って、それぞれＡ、Ｂ、Ｃ、Ｄ、Ｅ…と呼称する。
【００６１】
次に、バスコントロール回路２４によるＦＩＦＯメモリ２３の読み出し動作を説明する。
ＶＡＬＩＤ信号（図示せず）は、ＭＰＥＧ２エンコーダＬＳＩ２２から常にデータが出力されるため、常にアクティブ状態（高レベル）となる。また、図７（ｂ）に示すＳＹＮＣ信号は、１８８バイトのＴＳパケットの先頭バイトで高レベルとなる信号であり、これも途切れなく出力される。
【００６２】
バスコントロール回路２４は、ＶＡＬＩＤ信号が高レベルの間、ＷＥ信号（図示せず）をアクティブ（高レベル）にしてＦＩＦＯメモリ２３にデータを書き込んでいく。ＶＡＬＩＤ信号が常に高レベルのため、ＷＥ信号も高レベルとなり常に書き込みが行われる。
【００６３】
この時、バスコントロール回路２４では、ライトカウンタが書き込んだデータのバイト数をカウントしており、ライトカウンタは、同図（ｃ）に示すように、０から１３１５までカウントし、再び０に戻る動作をする。カウント値が１３１５になると、バスコントロール回路２４は、割り込み要求信号ＭＩＲＱ（同図（ｄ））を高レベルにする。この割り込み要求信号ＭＩＲＱは、ＣＰＵ１４のハードウェア割り込み端子に接続されており、ＣＰＵ１４に対して割り込み処理を要求する。割り込みが発生すると、ＣＰＵ１４上で動作する割り込み処理ルーチン（図８（ａ））が実行され、ＣＰＵ１４の命令によりバスコントロール回路２４は、ＲＥ信号（図７（ｅ））をアクティブ（高レベル）にして、ＦＩＦＯメモリ２３から１３１６バイトのデータを読み出す。尚、ＦＩＦＯメモリ２３のリードクロックは、ライトクロックに対して高い周波数（例えば、ライトクロックの２倍の周波数）のクロックを使用して、ライト側に対して速いスピードで読み出しを行う。これは、次の１３１６バイトの読み出しが行われる前に、ＣＰＵ１４やイーサネット回路１２が、ＵＤＰなどの各プロトコルヘッダを付加するために十分な時間を取れるようにするためである。
【００６４】
ＣＰＵ１４は、ＦＩＦＯメモリ２３から読み出した１３１６バイトのデータに８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダを付加して、これをイーサネット回路１２に渡す。イーサネット回路１２では、このデータに１４バイトのイーサネットヘッダを付加して、イーサネットパケットとしてネットワーク上に送り出す。
【００６５】
以上の操作により、図７（ｆ）に示すように、エンコーダＬＳＩ２２から出力されたＴＳパケット群Ａ、Ｂ、Ｃ…ごとにイーサネットパケットを送信することができる。しかし、ＦＩＦＯメモリ２３のリードクロックの周波数を２倍にしたため、送信するデータの間隔が空いてしまう。よって、データの間隔が空いた分だけ、パケットの到着時刻（ＰＣＲのデコーダ到着時刻）がずれることになる。そこで、第１の実施形態で説明した図４に示すデータ受信装置（クライアント）を用いることによってこのずれを補正する。
【００６６】
イーサネット回路１２でパケットを送信する際、ネットワークの状態や受信パケットの有無などの理由により、送信タイミングが若干ずれる場合がある。また、上述したような理由によりパケット間隔が空いてしまうことがある。図７（ｇ）は、受信時のイーサネットパケットＡ、Ｂ、Ｃ…のタイミングを示しており、パケットの間隔が空いている状態を表している。また、イーサネットなどの伝送路においては、サーバ・クライアント間の遅延時間にジッタが生じる場合があり、同図（ｇ）のデータＢとＤの到着時間が遅くなり、それぞれΔａとΔｂで示すジッタが生じている。
【００６７】
そこで、図４に示すデータ受信装置（クライアント）を用いて、送信タイミングのずれと伝送路のジッタを補正する。図４のクライアントでは、既に説明したように、受信したデータを一旦ＦＩＦＯメモリ４２に保持し、読み出し側のクロック周波数を変化させて、デコーダＬＳＩ４３に入力するデータの転送レートを調整している。図７（ｈ）はその様子を示しており、転送レートの制御は以下のように行われる。
【００６８】
データＡは、前半部分にデータが集中しているため到着時刻が早くなり、ジッタ検出回路４４の比較器において、受信データから抽出した第１ＰＣＲがＳＴＣの現在値よりも進んでいる。この場合、ＦＩＦＯメモリ４２の読み出しクロックを低い周波数に切り替えて、低い転送レート（白い矢印ａ）でデコーダＬＳＩ４３にデータを渡す。やがて、この読み出しデータから抽出した第２ＰＣＲとＳＴＣが一致し到着時刻のずれが補正されたら、元の標準周波数のクロックに戻す。
【００６９】
次のデータＢは、ジッタ発生によりパケットの到着時刻が遅れているため、第１ＰＣＲがＳＴＣの現在値よりも遅れている。この場合、読み出しクロックを高い周波数に切り替えて、高い転送レート（黒い矢印ｂ１）でデコーダＬＳＩ４３に入力させる。やがて第２ＰＣＲとＳＴＣは一致するが、データＢも前半部分にデータが集中しているため、途中から第２ＰＣＲの方が進んでしまう。よって、途中から低い転送レート（白い矢印ｂ２）に切り替える。次のデータＣ、Ｄも同様に、同図（ｈ）に示す矢印のように転送レートを制御する。
【００７０】
このように、イーサネットパケットの送信時刻のずれは、図４のクライアントを用いることによって、デコーダＬＳＩ４３に入力される前の段階で、伝送路のジッタと共にデータのタイミングを補正することができる。その結果、デコーダＬＳＩ４３に内蔵されたＰＬＬ回路の誤動作を防止することができ、デコーダのシステムクロックがエンコーダ側に同期しなくなる現象を回避することができる。よって、デコード画像の乱れを最小限に抑えることができる。
【００７１】
次に、図８に示したフローチャートを参照しながら、本実施形態におけるソフトウェア動作について説明する。
ＦＩＦＯメモリ２３に１３１６バイトのデータが書き込まれると、割り込み要求信号ＭＩＲＱが高レベルとなり、割り込み処理ルーチン（図８（ａ）のＭＰＥＧ割り込みルーチン）が実行される。
【００７２】
ステップＳ３１では、バスコントロール回路２４にＦＩＦＯメモリ２３の読み出し動作を命令する。この命令により、バスコントロール回路２４によってＦＩＦＯメモリ２３から１３１６バイト（ＴＳパケット７個分）のデータが読み出され、ＤＲＡＭ１４上に確保したＭＰＥＧ領域に書き込まれる。
【００７３】
ステップＳ２では、ＭＰＥＧ送信アプリケーション（同図（ｂ））をコールして、ＭＰＥＧ割り込みルーチンを終了する。
次にコールされたＭＰＥＧ送信アプリケーションが開始される。
ステップＳ４１では、ＤＲＡＭ１４のＭＰＥＧエリアから１３１６バイトのデータを読み出す。
【００７４】
ステップＳ４２では、このデータに８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダを付加する。
ステップＳ４３では、このデータをイーサネット回路１２のデータ領域に書き込み、送信開始手続きをする。
【００７５】
この後、イーサネット回路１２によるハードウェア処理となる。このハードウェア処理で、更にこのデータに１４バイトのイーサネットヘッダが付加され、１３５８バイトのパケットになる。これが１つのパケットとしてイーサネットに送り出される。
【００７６】
なお、上述した実施形態では、画像データを例にとって説明したが、音声データについても同様に処理される。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態にかかるデータ送信装置の構成を示すブロック図である。
【図２】図１に示す装置におけるデータ処理のタイミングを説明するためのタイミングチャートである。
【図３】図１に示すＣＰＵで実行される処理（第１の実施形態）のフローチャートである。
【図４】本発明の一実施形態に適用されるデータ受信装置の構成を示すブロック図である。
【図５】ネットワーク上で発生するジッタによるプログラム時刻基準参照値（ＰＣＲ）のタイミングずれを説明するためのタイミングチャートである。
【図６】図４に示す装置におけるデータ処理を説明するためのタイミングチャートである。
【図７】本発明の第２の実施形態におけるデータ処理のタイミングを説明するためのタイミングチャートである。
【図８】図１に示すＣＰＵで実行される処理（第２の実施形態）のフローチャートである。
【図９】一般的なネットワーク画像データ伝送システムの構成を示すブロック図である。
【図１０】図９に示す画像データ送信装置の構成を示すブロック図である。
【図１１】通信プロトコルにしたがったヘッダの付加を説明するための図である。
【図１２】プログラム時刻基準参照値（ＰＣＲ）に基づいてシステムクロックを生成する位相ロックループ回路の構成を示すブロック図である。
【図１３】図１０に示す装置におけるデータ処理のタイミングを説明するためのタイミングチャートである。
【符号の説明】
【００７８】
１  画像データ送信装置（サーバ）
２  画像データ受信装置（クライアント）
１１  ＭＰＥＧエンコーダ回路
１２  イーサネット回路（データ送出手段）
１３  ＣＰＵ（データ送出手段）
１４  ＤＲＡＭ（データ送出手段）
２２  ＭＰＥＧ２エンコーダＬＳＩ（情報圧縮手段）
２３  ＦＩＦＯメモリ（データ送出手段）
２４  バスコントロール回路（データ送出手段）
３１  ＭＰＥＧデコーダ回路
３２  イーサネット回路
３３  ＣＰＵ
３４  ＤＲＡＭ
４１  バスコントロール回路
４２  ＦＩＦＯメモリ（記憶手段）
４３  ＭＰＥＧ２デコーダＬＳＩ
４４  ジッタ検出回路（時間ずれ検出手段）
４５  リードクロックコントロール回路（パケット間隔調整手段）
【図１】
2006217651.tif 000003
【図２】
2006217651.tif 000004
【図３】
2006217651.tif 000005
【図４】
2006217651.tif 000006
【図５】
2006217651.tif 000007
【図６】
2006217651.tif 000008
【図７】
2006217651.tif 000009
【図８】
2006217651.tif 000010
【図９】
2006217651.tif 000011
【図１０】
2006217651.tif 000012
【図１１】
2006217651.tif 000013
【図１２】
2006217651.tif 000014
【図１３】
2006217651.tif 000015