(57)【特許請求の範囲】
【請求項１】
入力される動画像データの情報圧縮処理を行い、該処理後のデータをデータメモリに格納する情報圧縮部と、前記データメモリに格納された画像データを読み出し、パケット化して伝送路に送出する情報送出部と、前記情報圧縮部及び情報送出部の制御を行う制御部とを備える画像データ伝送装置において、
前記画像データのフレーム周期で生成される信号の発生回数をカウントすることにより第１のカウント値を得るハードウェアカウント手段を備え、
前記制御部は、前記情報送出部における１フレーム分のデータ送出処理が終了した回数をカウントすることにより第２のカウント値を得るソフトウェアカウント手段を有し、前記第１のカウント値と、前記第２のカウント値とが異なるときは、前記画像データの伝送路への送出を中断すると共に、前記ハードウェアカウント手段でカウントする第１のカウント値、及び前記ソフトウェアカウント手段でカウントする第２のカウント値をそれぞれ初期値に戻し、かつ前記データメモリに格納されている画像データを消去する処理であるリセットを行うことを特徴とする画像データ伝送装置。
【請求項２】
入力される動画像データの情報圧縮処理を行い、該処理後のデータをデータメモリに格納する情報圧縮部と、前記データメモリに格納された画像データを読み出し、パケット化して伝送路に送出する情報送出部とを備える画像データ伝送装置の制御方法において、
前記画像データのフレーム周期で生成される信号の発生回数をカウントすることにより第１のカウント値を得るステップと、
前記情報送出部における１フレーム分のデータ送出処理が終了した回数をカウントすることにより第２にカウント値を得るステップと、
前記第１のカウント値と、前記第２のカウント値とが異なるときは、前記画像データの伝送路への送出を中断すると共に、前記第１のカウント値、及び前記第２のカウント値をそれぞれ初期値に戻し、かつ前記データメモリに格納されている画像データを消去する処理であるリセットを行うステップとを含むことを特徴とする画像データ伝送装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＡＮ（Local Area Network）に画像データを送出する画像データ伝送装置及びその制御方法に関し、特に、カメラで撮影した動画像などの連続するストリ−ムデータをリアルタイムで送出するものに関する。
【０００２】
【従来の技術】
ネットワーク画像伝送システムは、図９に示すように、伝送装置（サーバ）１０１と、受信装置（クライアント）１０３と、これらを相互に接続するネットワークバス（例えばイーサネットのネットワークバス、以下「イーサネット」という）１０２とで構成される。サーバ１０１は、カメラで撮影した映像信号をＭＰＥＧ（Motion Picture Expert Group）１で圧縮しパケット化してイーサネット１０２に送出する。クライアント１０３では、このデータを受信して伸長し、表示モニタ１０４に表示する。以下にサーバ１０１の構成を説明する。
【０００３】
（１）伝送装置（サーバ）１０１の構成
図１０は、サーバ１０１の回路構成を示したものである。サーバ１０１は、入力ビデオ信号をＭＰＥＧ１に準拠した情報圧縮処理を行うＭＰＥＧエンコーダ回路１１１と、この圧縮されたデータ（エレメンタリーストリーム）をイーサネットに送出するイーサネット回路１１４と、ソフトウェア処理を行い全体的な制御を行うＣＰＵ（Central Processing Unit）１１２、ＤＲＡＭ（Dynamic Random Access Memory）１１３と、データバス１１５とで構成される。
【０００４】
このうちＭＰＥＧエンコーダ回路１１１は、主にＡ／Ｄ変換器（シンクセパレータ、同期回路を含む）１２１と、ＭＰＥＧ１エンコーダＬＳＩ１２２と、ＦＩＦＯ（First In First Out）メモリ１２３と、ＭＰＥＧインターフェース回路１２４とで構成される。
【０００５】
（２）ビデオデータの流れ
ここでは、入力されたビデオ信号がイーサネット１０２に送出されるまでの過程を簡単に説明する。
図１０に示すサーバ１０１の回路構成において、入力されたビデオ信号は、ディジタルデータに変換された後、ＭＰＥＧ１エンコーダＬＳＩ１２２にて圧縮され、エレメンタリーストリームＥＳのフォーマットで出力される。このデータは、一旦ＦＩＦＯメモリ１２３に保持され、ＣＰＵ１１２の制御によりデータバス１１５を介してＤＲＡＭ１１３に書き込まれる。更にここでＵＤＰ（User Datagram Protocol）やＩＰ（Internet Protocol）のヘッダなどの情報が付加されてイーサネット回路１１４に送られ、パケット毎にイーサネット１０２上に送出される。以上がサーバ１０１におけるビデオデータの流れである。
【０００６】
（３）ＦＩＦＯメモリ１２３の書き込み・読み出し動作
ここでは、ＭＰＥＧエンコーダ回路１１１のＦＩＦＯメモリ１２３の書き込み・読み出し動作について説明する。
ＭＰＥＧ１エンコーダＬＳＩ１２２から出力されたエレメンタリーストリームＥＳは、同ＬＳＩ１２２から出力されるライトリセット信号ＷＲやライトイネーブル信号ＷＥによって制御され、ＦＩＦＯメモリ１２３に書き込まれる。
【０００７】
ＦＩＦＯメモリ１２３に書き込まれたデータは、ＭＰＥＧインターフェース回路１２４から出力されるリードリセット信号ＲＲやリードイネーブル信号ＲＥの制御により読み出される。ＭＰＥＧインターフェース回路１２４は、ＣＰＵ１１２のデータバス１１５に接続されており、リードリセット信号ＲＲやリードイネーブル信号ＲＥの出力は、ＣＰＵ（ソフトウェア）１１２の命令にしたがって実行される。
【０００８】
以下に、ＦＩＦＯメモリ１２３の読み出し動作について、図１１のタイミングチャートも参照して説明する。
図１１（ａ）に示されたフレームパルスＦＰは、入力ビデオ信号のフレーム周期で切り替わる信号である。ＭＰＥＧインターフェース回路１２４（図１０参照）はこのフレームパルスＦＰからＭＰＥＧ割り込み要求パルスＭＩＲＱを生成し、出力している。そして、このＭＰＥＧ割り込み要求パルスＭＩＲＱは、ＣＰＵ１１２のハードウェア割り込み端子に入力されており、ＣＰＵ１１２に対し、１フレーム期間に１回ハードウェア割り込みを要求する。割り込みが発生すると、図１２（ａ）に示すＭＰＥＧ割り込みルーチンが実行され、ここでＦＩＦＯメモリ１２３に保持されたエレメンタリーストリームＥＳの読み出し動作が行われる。
【０００９】
ＦＩＦＯメモリ１２３からの読み出しは、割り込み発生ごとに、１つのピクチャ（Ｉピクチャ、ＰピクチャまたはＢピクチャのいずれか）を構成するデータ数だけＦＩＦＯメモリ１２３から読み出す。１つのピクチャを構成するデータ量はフレームごとに異なる。そのため、ＭＰＥＧ１エンコーダＬＳＩ１２２は、ＦＩＦＯメモリ１２３に書き込まれたデータ数を図１１に示すフレーム周期の先頭で、内部レジスタ（以下「ＦＩＦＯリードレジスタ」という）にＸ１バイト、Ｘ２バイト、Ｘ３バイト．．．のように書き込む仕組みを備えている。
【００１０】
（４）イーサネットパケット生成までのプログラム動作
ＦＩＦＯメモリ１２３に保持されたエレメンタリーストリームＥＳを読み出してイーサネットパケットを生成するまでのプログラム動作を、図１１のタイミングチヤートと図１２のフローチャートに沿って説明する。
【００１１】
入力ビデオ信号のフレーム周期で発生するハードウェア割り込み（ＭＰＥＧ割り込み）要求ＭＩＲＱにより、図１２（ａ）に示すＭＰＥＧ割り込みルーチン（フェーズＡ１、図１１参照）がスタートする。
ステップＳ１０１では、ＭＰＥＧ１エンコーダＬＳＩ１２２の内部レジスタであるＦＩＦＯリードレジスタの内容（図１１のＸ１バイト）を読み、現在のフレーム期間内に読み出すべきデータのバイト数を得る。
【００１２】
ステップＳ１０２では、このバイト数だけＦＩＦＯメモリ１２３からデータを読み出し、ＤＲＡＭ１１３上に確保したＭＰＥＧエリアに書き込む。
ステップＳ１０３では、ネットワークプロセス（図１２（ｂ））をコールし、ＭＰＥＧ割り込みルーチンを終了する。
【００１３】
ステップＳ１０３によりネットワークプロセスのフェーズＢ１がスタートする。図１３は、エレメンタリーストリームＥＳからパケットを生成する手順を示したものであり、図１２とともに参照する。
【００１４】
図１２（ｂ）のステップＳ１１１では、図１３に示すように、ＤＲＡＭ１１３のＭＰＥＧエリアから１４６０バイトのデータ（最後に読み出すデータは、１４６０バイト以下の揚合がある）を読み出し、８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダを付加する。
【００１５】
次いでこのデータをイーサネット回路１１４のメモリに書き込み、送信開始手続きを行う（ステップＳ１１２）。この後、イーサネット回路１１４によるハードウェア処理となる。更にこのデータに１４バイトのイーサネットヘッダが付加され（図１３（ｄ））、１５０２バイトのパケットになる。このパケットがイーサネット１０２に送り出される。
【００１６】
図１２（ｂ）のステップＳ１１３では、ＤＲＡＭ１１３のＭＰＥＧエリアに書き込まれたデータがあるかどうかチェックし、データが残っているならステップＳ１１１に戻り、ステップＳ１１１〜Ｓ１１３の処理を繰り返す。このように、イーサネット回路１１４は、連続したデータをパケット（＝１５０２バイト）に分割して順次イーサネット１０２に送出する。
【００１７】
ステップＳ１１３で、ＤＲＡＭ１１３のＭＰＥＧエリアから読み出すデータが無くなった場合は、ネットワークプロセスを終了する。
ネットワークプロセスが終了すると、イーサネット回路１１４では内部のメモリに複数のパケットが保持されており、このパケットをすべて送信し終わると、イーサネット回路１１４はＣＰＵ１１２にハードウェア割り込み要求（以下「イーサネット割り込み要求」という）を出し、再びソフトウェア処理に移る。この時、図１２（ｃ）に示すイーサネット割り込みルーチンがコールされ、以下の処理が行われる。
【００１８】
ステップＳ１２１では、送信終了割り込みかどうか判別し、送信終了割り込みでないときは、直ちに処理を終了する。送信終了割り込みであるときは、イーサネット回路１１４に対し、送信終了手続きを行い（ステップＳ１２２）、パケット送信の時に使用していたイーサネット回路１１４のメモリをクリアし（ステップＳ１２３）、イーサネット割り込みルーチンを終了する。
【００１９】
以上が１フレーーム期間内に行う処理である。次のフレームの割り込みが発生すると、ＭＰＥＧ割り込みルーチンのフェーズＡ２がスタートし、同様にステップＳ１０１から処理を行う。
このようなソフトウェア処理により、ＭＰＥＧ１エンコーダＬＳＩ１２２から随時出力されたエレメンタリーストリームＥＳがパケット化され、イーサネット１０２に送り出される。
【００２０】
【発明が解決しようとする課題】
上記のサーバ１０１では、１）ネットワークが混雑している場合、パケットの衝突が頻繁に発生するため、パケットの再送信を繰り返す、２）ブロードキャストパケットを頻繁に受信した場合、ＣＰＵ１１２で実行されるネットワークの受信処理が忙しくなる、などの原因により、ＣＰＵ１１２の負荷が一時的に増加し、図１２に示したネットワークプロセスやイーサネット割り込みルーチンの処理が遅れて、実行時間が通常よりも長くなり、ＣＰＵ１１２の処理パフォーマンス（リアルタイム性など）が損なわれる。
【００２１】
例えば、ネットワークプロセスＢ１とイーサネット割り込み処理Ｃ１の実行時間が長くなった場合を示すと図１４のようになる。このような場合、図の第２フレーム時にＢ１とＣ１が実行されているため、このタイミングで本来ＭＰＥＧ割り込みルーチンＡ２が実行されるはずが、第３フレームまで、すなわち本来フェーズＡ３が実行されるべきタイミングにずれてしまう。この時、ＭＰＥＧ１エンコーダＬＳＩ１２２のＦＩＦＯレジスタの値は既にＸ３に更新されているため、ＭＰＥＧ割り込みルーチンＡ２はＸ２の値を読むことができない。
【００２２】
つまり、ＭＰＥＧ割り込みルーチンが１フレーム期間に１回実行されないため、本来読み出すデータ数が分からなくなってしまう。このような状態が続くと、ＦＩＦＯメモリ１２３に読み出せなかったデータが蓄積され、やがてＦＩＦＯメモリ１２３の容量をオーバーしてしまう。そのため、連続したストリームデータを読み出すことができなくなり、ＭＰＥＧデータのパケット化が正常に行われず壊れたデータを送信してしまう。その結果、クライアントではこの壊れたデータを受信して伸長するため、表示する再生画像が乱れて復帰できないという不具合が発生する。
【００２３】
本発明はこのような不具合を防止するためになされたものであり、ＣＰＵによるソフトウェア処理の遅れを検出し、画像データの受信側で再生画像が乱れて復帰不能となる事態を回避できるようにした画像データ伝送装置及びその制御方法を提供することを目的とする。
【００２４】
【課題を解決するための手段】
上記目的を達成するため請求項１に記載の発明は、入力される動画像データの情報圧縮処理を行い、該処理後のデータをデータメモリに格納する情報圧縮部と、前記データメモリに格納された画像データを読み出し、パケット化して伝送路に送出する情報送出部と、前記情報圧縮部及び情報送出部の制御を行う制御部とを備える画像データ伝送装置において、前記画像データのフレーム周期で生成される信号の発生回数をカウントすることにより第１のカウント値を得るハードウェアカウント手段を備え、前記制御部は、前記情報送出部における１フレーム分のデータ送出処理が終了した回数をカウントすることにより第２のカウント値を得るソフトウェアカウント手段を有し、前記第１のカウント値と、前記第２のカウント値とが異なるときは、前記画像データの伝送路への送出を中断すると共に、前記ハードウェアカウント手段でカウントする第１のカウント値、及び前記ソフトウェアカウント手段でカウントする第２のカウント値をそれぞれ初期値に戻し、かつ前記データメモリに格納されている画像データを消去する処理であるリセットを行うことを特徴とする。
【００２５】
請求項２に記載の発明は、入力される動画像データの情報圧縮処理を行い、該処理後のデータをデータメモリに格納する情報圧縮部と、前記データメモリに格納された画像データを読み出し、パケット化して伝送路に送出する情報送出部とを備える画像データ伝送装置の制御方法において、前記画像データのフレーム周期で生成される信号の発生回数をカウントすることにより第１のカウント値を得るステップと、前記情報送出部における１フレーム分のデータ送出処理が終了した回数をカウントすることにより第２にカウント値を得るステップと、前記第１のカウント値と、前記第２のカウント値とが異なるときは、前記画像データの伝送路への送出を中断すると共に、前記第１のカウント値、及び前記第２のカウント値をそれぞれ初期値に戻し、かつ前記データメモリに格納されている画像データを消去する処理であるリセットを行うステップとを含むことを特徴とする。
【００２６】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
（第１の実施形態）
図１は本発明の第１の実施形態にかかる画像データ伝送装置の構成を示すブロック図である。この装置は、図１０に示す従来の伝送装置に、ＭＩＲＱカウント回路１６を追加したものである。すなわち、図１に示す伝送装置１は、図１０に示すＭＰＥＧエンコーダ１１１、ＣＰＵ１１２、ＤＲＡＭ１１３、イーサネット回路１１４及びデータバス１１５と、同様の機能を有するＭＰＥＧエンコーダ１１、ＣＰＵ１２、ＤＲＡＭ１３、イーサネット回路１４及びデータバス１５に、ＭＩＲＱカウント回路１６を追加して構成されている。また、ＭＰＥＧエンコーダ１１は、Ａ／Ｄ変換器２１と、ＭＰＥＧ１エンコーダＬＳＩ２２と、ＦＩＦＯメモリ２３と、ＭＰＥＧインターフェース回路２４とで構成される。
【００２７】
ＭＩＲＱカウント回路１６は、ＭＰＥＧインターフェース回路２４がＣＰＵ１２に対して要求するハードウェア割り込み要求ＭＩＲＱの発生回数を数えて、内部レジスタ（以下「ハードカウントレジスタ」という）に保存する。なお、以下の説明では、ＭＩＲＱカウント回路１６を、「ハードウェアカウンタ」ともいう。
【００２８】
例えば、８ビットカウンタを用いてカウントした場合、図２（ｃ）（ｄ）に示すように、カウント値ＨＣは、ハードウェア割り込み要求ＭＩＲＱの立ち上がりエッジごとに１ずつ更新される。ＣＰＵ１２の命令（ソフトウェア）に依存しない独立したハードウェアで行う動作なので、ＣＰＵ１２の処理が忙しくなってもカウント値が狂うことはない。
ただし、ＣＰＵ１２は、このＭＩＲＱカウント回路１６のリセット及びハードカウントレジスタの読み出しが行えるように、データバス１５を介してＭＩＲＱカウント回路１６にアクセスすることができるように構成されている。
【００２９】
（１）ソフトウェアカウンタの実施と比較方法
次に、このＭＩＲＱカウント回路１６とは別にもう１つカウンタを用意する。それはソフトウェアでハードウェア割り込み要求ＭＩＲＱの発生回数を数えるカウンタである。
【００３０】
ハードウェア割り込み要求ＭＩＲＱの発生に対応して、割り込みルーチンであるＭＰＥＧ割り込みルーチンが実行されるため、この割り込みルーチン内でカウント動作を行えば、発生した割り込みの数を数えることができる。このソフトウェアカウンタのカウント値ＳＣは、図２（ｆ）に示すように更新される。
【００３１】
ここで図２（ａ）〜（ｈ）からもわかるように、ＣＰＵ１２の処理が通常通りに行われていれば、ハードウェアカウンタの値ＨＣとソフトウェアカウンタの値ＳＣとは一致する。
しかし、ＣＰＵ１２に一時的に過大な負荷が加わった場合、ＭＰＥＧ割り込みルーチンは、図２（ｉ）に示すように、１フレームに１回実行できないため、同図（ｊ）に示すようにソフトウェアカウンタの値ＳＣは１フレームごとに更新されなくなる。すなわち、実行されない回数だけハードウェアカウンタの値ＨＣからずれていく。
そこで、ＭＰＥＧ割り込みルーチンの実行中にハードウェアカウンタの値を読み、ソフトウェアカウンタの値と比較して、値が異なった場合、ＣＰＵ１２の処理の遅れを検出することができる。
【００３２】
（２）正常状態への復帰方法
上述したように、一旦ＣＰＵ１２の処理が遅れてしまうと、ＦＩＦＯメモリ２３に保持されたエレメンタリーストリームＥＳのフォーマットが壊れてしまうため、不連続なデータを送信し続けてしまう。このような状況になった場合、本実施形態ではデータの送信を中断するとともに、ＦＩＦＯメモリ２３の内容と、ハードウェアカウンタの値ＨＣ及びソフトウェアカウンタの値ＳＣをリセットして初期状態に戻すことを行う。
【００３３】
この操作により、ＦＩＦＯメモリ２３に残った不連続なデータを読み出すことなく、先頭アドレスから書き込み及び読み出しができるようになる。よって、従来のように壊れたデータを送信し続けることがなくなり、受信装置側の画像の乱れを復帰させることができる。
【００３４】
（３）プログラム操作
実際のソフトウェア動作を、図３及び４のフローチャートに沿って説明する。
（ａ）ＭＰＥＧプロセスの動作
図３（ａ）は、ＭＰＥＧプロセスのフローチャートである。ＭＰＥＧプロセスは、主にＭＰＥＧ１エンコーダＬＳＩ２２のスタート・ストップを制御するプログラムであり、電源投入時に開始される。
【００３５】
先ずステップＳ１１では、ＭＰＥＧ１エンコーダＬＳＩ２２の初期化を行う。ここではＬＳＩ自体のハードウェアリセットや内部レジスタ群の初期設定などを行う。また、ＦＩＦＯメモリ２３のライトリセットを行い、ＦＩＦＯメモリ２３の書き込みアドレスを先頭アドレスに戻す。
【００３６】
ステップＳ１２では、ＭＰＥＧ１エンコーダＬＳＩ２２の管理するメモリ領域にマイクロコード（エンコード動作を司るプログラム）をロードする。
ステップＳ１３では、ハードウェアカウンタの値ＨＣを保存するＭＩＲＱカウント回路１６内のハードカウントレジスタの値ＨＣと、ソフトウェアカウンタの値ＳＣ（ＤＲＡＭ１３のエリアＳＣＡに保存される）とをともに０にする。
【００３７】
ステップＳ１４では、ＭＰＥＧインターフェース回路２４を介してＦＩＦＯメモリ２３のリードリセットを行い、読み出しアドレスを先頭アドレスに戻す。
ステップＳ１５では、エンコードスタートもしくはストップ状態を示すエンコードスタートフラグＥＳＦの値を０にセットする。フラグＥＳＦは、ＤＲＡＭ１３上に確保された領域に保存され、ストップ状態の時：０、スタート状態の時：１に設定される。続くステップＳ１６では、エンコード動作を開始するため、ＭＰＥＧハードウェア割り込みを許可し、ＭＰＥＧ１エンコーダＬＳＩ１６にスタート要求の命令を出す。すなわち、エンコードスタートフラグＥＳＦを１にセットする。
これによりエンコード動作が始まり、ＭＰＥＧ割り込みルーチンがフレームごとに実行される。エンコード動作中のＭＰＥＧプロセスの動作は後に述べることにして、先にＭＰＥＧ割り込みルーチンについて説明する。
【００３８】
（ｂ）ＭＰＥＧ割り込みルーチンの動作
図３（ｂ）は、ＭＰＥＧ割り込みルーチンのフローチャートである。ＭＰＥＧプロセスによりエンコードがスタートすると、入力ビデオ信号のフレーム周期でハードウェア割り込み要求ＭＩＲＱが発生し、ＭＰＥＧ割り込みルーチンが実行されフェーズＡ１（図２（ｅ）参照）がスタートする。
【００３９】
ステップＳ２１では、ソフトウェアカウンタの値ＳＣを１だけインクリメントする。ハードウェア割り込み要求ＭＩＲＱが発生しても、ＣＰＵ１２がネットワークプロセスまたはイーサネット割り込みルーチンの実行中であるときは、ＭＰＥＧ割り込み処理は開始されないので、ソフトウェアカウンタの値ＳＣは、インクリメントされない。したがって、ソフトウェアカウンタの値ＳＣは、１フレーム分の画像データの終了回数に対応している。
【００４０】
ステップＳ２２では、ＭＰＥＧ１エンコーダＬＳＩ２２の内部レジスタであるＦＩＦＯリードレジスタの内容（図２（ｂ）のＸ１バイト）を読み、現在のフレーム期間ＴＦＭ内に読み出すべきデータのバイト数を得る。
ステップＳ２３では、このバイト数だけＦＩＦＯメモリ２３からデータを読み出し、ＤＲＡＭ１３上に確保した領域であるＭＰＥＧエリアに書き込む。
【００４１】
ステップＳ２４では、ＭＩＲＱカウント回路１６のハードカウントレジスタからハードウェアカウンタの値ＨＣを読み出す。
ステップＳ２５では、ハードウェアカウンタの値ＨＣと、ソフトウェアカウンタの値ＳＣとが等しいか否かを判別する。その結果両者が一致した場合、ＣＰＵ１２の処理が間に合っていることがわかるので、ＤＲＡＭ１３に格納されるソフトカウントエラーフラグＳＣＥＦを０にセットし（ステップＳ２６）、次いで正常なデータをパケット化するために、ネットワークプロセス（図４（ａ））をコールして、割り込みルーチンを終了する。
【００４２】
一方ステップＳ２５で、ハードウェアカウンタの値ＨＣと、ソフトウェアカウンタの値ＳＣとが一致しない場合は、ＣＰＵ１２の処理に遅れが生じていることを意味するので、ソフトカウントエラーフラグＳＣＥＦを１にセットする。この場合、壊れたデータの送信を防ぐため、ネットワークプロセスのコールをせずに、これ以降の処理を中断する。
【００４３】
（ｃ）ネットワークプロセスの動作
ＣＰＵ１２の処理が間に合っている場合、図４（ａ）に示すネットワークプロセスが実行される。ＭＰＥＧ割り込みルーチンのフェーズＡ１に対応して、ネットワークプロセスのフェーズＢ１（図２（ｅ）（ｇ）参照）がスタートする。
【００４４】
図４（ａ）のステップＳ３１では、図１３に示したように、ＤＲＡＭ１３のＭＰＥＧエリアから１４６０バイトのデータ（最後に読み出すデータは、１４６０バイト以下の場合がある）を読み出し、８バイトのＵＤＰヘッダと２０バイトのＩＰヘッダを付加する。
【００４５】
ステップＳ３２では、このデータをイーサネット回路１４のメモリに書き込み、送信開始の手続きを行う。この後、イーサネット回路１４によるハードウェア処理となる。ハードウェア処理では、更にこのデータに１４バイトのイーサネットヘッダが付加され、１５０２バイトのパケットになる。このパケットがイーサネットに送り出される。
【００４６】
ステップＳ３３では、ＤＲＡＭ１３のＭＰＥＧエリアに書き込まれたデータがあるかどうかチェックし、データが残っているならステップＳ３１に戻り、ステップＳ３１〜Ｓ３３の処理を繰り返す。このように、連続したデータをパケット（＝１５０２バイト）に分割して順次イーサネット２に送出する。ＤＲＡＭ１３のＭＰＥＧエリアから読み出すデータが無くなった場合は、ネットワークプロセスを終了する。
【００４７】
ネットワークプロセスのステップＳ３２が終了すると、イーサネット回路１４では内部のメモリに多数のパケットが保持されており、このパケットをすべて送信し終わると、イーサネット回路１４はＣＰＵ１２にハードウェア割り込み要求ＥＩＲＱを出し、再びソフトウェア処理に移る。この時イーサネット割り込みルーチンがコールされ、フェーズＣ１（図２（ｈ）参照）が開始されて、以下の処理が行われる。
【００４８】
（ｄ）イーサネット割り込みルーチンの動作
ステップＳ４１では、送信終了割り込みか否かを判別し、送信終了割り込み出ないときは直ちに本ルーチンを終了する。送信終了割り込みであるときは、イーサネット回路１４に対し、送信終了の手続きを行う（ステップＳ４２）。次に、パケット送信の時に使用していたイーサネット回路１４のメモリをクリアし（ステップＳ４３）、イーサネット割り込みルーチンを終了する。
【００４９】
以上が１フレーム期間内に行う処理である。次のフレームの割り込みが発生すると、ＭＰＥＧ割り込みルーチンのフェーズＡ２がスタートし、再びＭＰＥＧ割り込みルーチンのステップＳ１１から処理を行う。
このようなソフトウェア処理により、ＭＰＥＧ１エンコーダＬＳＩ２２から随時出力されたエレメンタリーストリームＥＳがパケット化され、イーサネット２に送り出される。
【００５０】
（ｅ）ＭＰＥＧプロセスのエンコード中の動作
エンコード動作中、ＭＰＥＧプロセスは以下の処理を行う。
図３（ａ）のステップＳ１７では、ＤＲＡＭ１３に格納されるソフトカウントエラーフラグＳＣＥＦが１否かを判別し、フラグＳＣＥＦが０の場合は、ソフトウェアカウンタが正常に更新されている、つまりＣＰＵ１２の処理に遅れが生じていないことを示すので、この場合は、何もせずにステップＳ１７を繰り返す。正常な場合はここをループすることになる。
【００５１】
一方フラグＳＣＥＦが１の場合は、図２（ｉ）〜（ｌ）に示すように（ＣＰＵの処理が遅れた場合）に示すように、ハードウェアカウンタの値ＨＣ（同図（ｄ））に対しソフトウェアカウンタの値ＳＣ（同図（ｊ））がずれたことを意味し、ＣＰＵ１２の処理が遅れていることがわかる。この状態になると、ＦＩＦＯメモリ２３から読み出されないデータが蓄積してしまい、メモリの容量をオーバすると、連続したデータを読み出すことができなくなる。このため壊れたデータをイーサネット２に送り続けてしまう。その結果、クライアント（受信装置）で表示された画像は乱れたまま復帰しなくなってしまう。
【００５２】
これを回避するため、図３（ａ）のステップＳ１８では、ＦＩＦＯメモリ２３に蓄積されているデータを一旦クリアする。実際の動作は、ＭＰＥＧインターフェース回路２４にアクセスし、ＦＩＦＯメモリ２３のリードリセットを行うとともに、ＭＰＥＧ１エンコーダＬＳＩ２２を介しＦＩＦＯメモリ２３のライトリセットを行い、さらに、ＭＰＥＧ１エンコーダ２２の内部レジスタであるＦＩＦＯリードレジスタに０を書き込む処理を行う。この処理により、ＦＩＦＯメモリ２３に蓄積された連続性のないデータを読み出さずに、メモリの先頭から再び連続したデータを書き込み・読み出しすることができるようになる。
【００５３】
続くステップＳ１９では、エラー処理が終了したため、ソフトカウントエラーフラグＳＣＥＦを０とし、ステップＳ１７に戻る。
以上のように本実施形態では、２つのカウンタ、すなわちハードウェアカウンタの値ＨＣ及びソフトウェアカウンタの値ＳＣを比較することによって、ＣＰＵ１２の処理の遅れを検出し、これをきっかけに壊れたデータの送信を一時中断するようにしたので、受信装置側（クライアント）の画像乱れを最小限に抑えることができる。
【００５４】
また、ＦＩＦＯメモリ２３のライトリセット及びリードリセットを行い、書き込み・読み出し動作を強制的に先頭アドレスから行うようにしたので、ＦＩＦＯメモリ２３に残った不連続なデータを一掃し、再び連続したデータを送信することが可能となる。この結果、クライアントにおいて、乱れて中断していた画像をいち早く正常に復帰させることができる。
【００５５】
（第２の実施形態）
上述した第１の実施形態では、ＭＰＥＧインターフェース回路２４がＣＰＵ１２に出力するハードウェア割り込み要求ＭＩＲＱをカウントすることでＣＰＵ１２の処理遅れを検出したが、本実施形態では、ハードウェア割り込み要求ＭＩＲＱの代わりに、イーサネット回路１４がＣＰＵ１２に出力するハードウェア割り込み要求ＥＩＲＱをカウントする。
【００５６】
図５に本実施形態における伝送装置（サーバ）の回路構成を示す。これは、図１に示す構成からＭＩＲＱカウント回路１６を削除し、ＥＩＲＱカウント回路１７を追加したものである。また本実施形態では、ハードウェア割り込み要求ＥＩＲＱは、フレームパルスＦＰに同期して１フレームに１回、図６（ｅ）に示されたタイミング（フレーム期間の終了直前）で出力される。このＥＩＲＱカウント回路１７は、イーサネット回路１４がＣＰＵ１２に対して要求するハードウェア割り込み要求ＥＩＲＱの発生回数を数えて、内部レジスタ（ハードカウントレジスタ）に保存する。例えば、８ビットカウンタを用いてカウントした場合、図６（ｆ）に示すように、ハードウェア割り込み要求ＥＩＲＱの立ち上がりエッジごとに１ずつ更新される。ＣＰＵ１２の命令（ソフトウェア）に依存しない独立したハードウェアで行う動作なので、ＣＰＵ１２の処理が忙しくなってもカウント値が狂うことはない。
ただし、ＣＰＵ１２は、このＥＩＲＱカウント回路１７のリセット及びハードカウントレジスタの読み出しが行えるように、データバス１５を介してＥＩＲＱカウント回路１７にアクセスすることができるように構成されている。
【００５７】
（１）ソフトウェアカウンタの実施と比較方法
本実施形態では、ソフトウェアによるカウント動作は、図８に示すイーサネット割り込みルーチンで行う。ハードウェア割り込み要求ＥＩＲＱにより、イーサネット割り込みルーチンが実行されるため、この割り込みルーチン内でカウント動作を行えば、発生したイーサネット割り込み要求ＥＩＲＱの発生回数を数えることができる。このソフトウェアカウンタの動作タイミングは、図６（ｈ）に示すようになる。
【００５８】
従って、ＣＰＵ１２の処理が通常通りに行われていれば、ハードウェアカウンタの値ＨＣとソフトウェアカウンタの値ＳＣは一致する。
しかし、ＣＰＵ１２に一時的に過大な負荷が加わった場合、図６（ｌ）に示すのように、ソフトウェアカウンタの値ＳＣはハードウェアカウンタの値ＨＣからずれていく。
そこで、イーサネット割り込みルーチンの実行中にハードウェアカウンタの値ＨＣを読み、ソフトウェアカウンタの値ＳＣと比較して値が異なった場合、ＣＰＵ１２の処理遅れを検出するようにしている。
【００５９】
（２）正常状態への復帰方法
このような状況になった場合の対処方法として、第１の実施形態と同様に、ＦＩＦＯメモリ２３の内容と、ハードウェアカウンタの値ＨＣ及びソフトウェアカウンタの値ＳＣをリセットして初期状態に戻すことを行う。
【００６０】
この操作により、ＦＩＦＯメモリ２３に残った不連続なデータを読み出すことなく、先頭アドレスから書き込み・読み出しができるようになる。よって、従来のように壊れたデータを送信し続けることがなくなり、クライアントの画像の乱れを復帰させることができる。
【００６１】
（３）プログラム動作
実際のソフトウェア動作を、図７及び８のフローチヤートに沿って説明する。
（ａ）ＭＰＥＧプロセスの動作
本実施形態のＭＰＥＧプロセス（図７（ａ））は、第１の実施形態（図３（ａ））と同一である。
【００６２】
（ｂ）ＭＰＥＧ割り込みルーチンの動作
ＭＰＥＧプロセスによりエンコードがスタートすると、入力ビデオ信号のフレーム周期でハードウェア割り込みが発生し、ＭＰＥＧ割り込みルーチンが実行されフェーズＡ１（図６（ｃ）参照）がスタートする。本実施形態のＭＰＥＧ割り込みルーチンは、図７（ｂ）に示すようにステップＳ２２，Ｓ２３及びＳ２７のみからなる。
【００６３】
すなわちステップＳ２２では、ＭＰＥＧ１エンコーダＬＳＩ２２の内部レジスタであるＦＩＦＯレジスタの内容（図６（ｂ）のＸ１バイト）を読み、現在のフレーム期間ＴＦＭ内に読み出すべきデータのバイト数を得る。次にこのバイト数だけＦＩＦＯメモリ２３からデータを読み出し、ＤＲＡＭ１３上に確保した領域であるＭＰＥＧエリアに書き込む（ステップＳ２３）。そして、ネットワークプロセスをコールして（ステップＳ２７）、ＭＰＥＧ割り込みルーチンを終了する。
【００６４】
（ｃ）ネットワークプロセスの動作
本実施形態のネットワークプロセス（図７（ｃ））は、図４（ａ）に示す第１の実施形態のネットワークプロセスと同一である。したがって、ネットワークプロセスのステップＳ３２が終了すると、イーサネット回路１４では内部のメモリに複数のパケットが保持されており、このパケットが順次送信される。
【００６５】
ただし、本実施形態では、イーサネット回路１４は、ＣＰＵ１２に対してハードウェア割り込み要求ＥＩＲＱを、図６（ｅ）に示すように、フレーム期間ＴＦＭの終了直前のタイミングで出力する。このとき、イーサネット割り込みルーチンがコールされ、フェーズＣ１（図６（ｇ）参照）が開始されて、以下の処理が行われる。
【００６６】
（ｄ）イーサネット割り込みルーチンの動作
ステップＳ５１では、送信終了割り込みか否かを判別する。送信終了割り込みでないときは直ちに処理を終了し、送信終了割り込みであるときは、ソフトウェアカウンタの値ＳＣを１だけインクリメントする（ステップＳ５２）。ハードウェア割り込み要求ＥＩＲＱが発生しても、ＣＰＵ１２がネットワークプロセスまたはイーサネット割り込みルーチンの実行中であるときは、イーサネット割り込みルーチンは開始されないので、ソフトウェアカウンタの値ＳＣは、インクリメントされない。したがって、ソフトウェアカウンタの値ＳＣは、１フレーム分の画像データの終了回数に対応している。
【００６７】
続くステップＳ５３では、ＥＩＲＱカウント回路１７のハードカウントレジスタからハードウェアカウンタの値ＨＣを読み出す。
ステップＳ５４では、ソフトウェアカウンタの値ＳＣと、ハードウェアカウンタの値ＨＣとが等しいか否かを判別する。そして、両者が一致した場合は、ＣＰＵ１２の処理が間に合っていることを示すので、ソフトカウントエラーフラグＳＣＥＦを０にセットする（ステップＳ５５）。一方ソフトウェアカウンタの値ＳＣと、ハードウェアカウンタの値ＨＣとが一致しない場合は、ＣＰＵ１２の処理に遅れが生じていることを示すので、ソフトカウントエラーフラグＳＣＥＦを１にセットする（ステップＳ５６）。
【００６８】
ステップＳ５７では、イーサネット回路１４に対し、送信終了の手続きを行い、次に、パケット送信の時に使用していたイーサネット回路１４のメモリをクリアし（ステップＳ５８）、イーサネット割り込みルーチンを終了する。
以上が１フレーム期間ＴＦＭ内に行う処理である。次のフレームの割り込みが発生すると、ＭＰＥＧ割り込みルーチンのフェーズＡ２が開始され、再びＭＰＥＧ割り込みルーチンのステップＳ１１から処理が行われる。
このようなソフトウェア処理により、ＭＰＥＧ１エンコーダＬＳＩ２２から随時出力されたエレメンタリーストリームをパケット化してイーサネットに送り出される。
【００６９】
（ｅ）ＭＰＥＧプロセスのエンコード中の動作
エンコード動作中、ソフトカウントエラーフラグＳＣＥＦが１にセットされた場合の処理（図７（ａ），ステップＳ１８，Ｓ１９）は、第１の実施形態と同一である。
【００７０】
以上のように、本実施形態においては、フレームパルスＦＰに同期して出力されるイーサネット割り込み要求ＥＩＲＱの発生回数をカウントするＥＩＲＱカウント回路１７を設け、これにより得られるハードウェアカウンタの値ＨＣと、ＣＰＵ１２の処理に遅れが無い場合に、イーサネット割り込み要求ＥＩＲＱに応じて実行されるイーサネット割り込み処理において動作するソフトウェアカウンタの値ＳＣとを比較することによって、ＣＰＵ１２の処理の遅れを検出することができる。したがって、第１の実施形態と同様の効果を得ることができる。
【００７１】
【発明の効果】
以上詳述したように請求項１または２に記載の発明によれば、入力される画像データのフレーム周期で生成される信号の発生回数をカウントすることに得られる第１のカウント値と、画像データを送出する情報送出部における１フレーム分のデータ送出処理が終了した回数をカウントすることにより得られる第２のカウント値とを比較し、第１のカウント値と、第２のカウント値とが異なるときは、伝送路への画像データの送出が中断されるので、情報送出処理の遅れを検出するとともに、壊れたデータの送出が継続されることを防止することができる。その結果、受信装置側の画像乱れを最小限に抑えることができる。さらに情報送出処理の遅れが検出されたときは、第１のカウント値及び第２のカウント値をそれぞれ初期値に戻し、かつデータメモリに格納されている画像データを消去するリセット処理が実行されるので、正常なデータの送信を再開することができる。その結果、受信装置側において、再生画像が乱れた状態から復帰できないという問題を解消し、いち早く正常な画像を表示させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態にかかる画像データ伝送装置の構成を示すブロック図である。
【図２】図１の装置の動作を説明するためのタイミングチャートである。
【図３】図１のＣＰＵで実行される処理のフローチャートである。
【図４】図１のＣＰＵで実行される処理のフローチャートである。
【図５】本発明の第２の実施形態にかかる画像データ伝送装置の構成を示すブロック図である。
【図６】図５の装置の動作を説明するためのタイミングチャートである。
【図７】図５のＣＰＵで実行される処理のフローチャートである。
【図８】図５のＣＰＵで実行される処理のフローチャートである。
【図９】従来の画像伝送システムの構成を示すブロック図である。
【図１０】図９に示す伝送装置の構成を示すブロック図である。
【図１１】図１０の装置の動作を説明するためのタイミングチャートである。
【図１２】図１０のＣＰＵで実行される処理のフローチャートである。
【図１３】画像データの伝送用パケットの生成方法を説明するための図である。
【図１４】従来の装置の問題点を説明するためのタイミングチャートである。
【符号の説明】
１  画像データ伝送装置
１１  ＭＰＥＧエンコーダ
１２  ＣＰＵ（制御部、ソフトウェアカウント手段）
１３  ＤＲＡＭ
１４  イーサネット回路（情報送出部）
１５  データバス
１６  ＭＩＲＱカウント回路（ハードウェアカウント手段）
１７  ＥＩＲＱカウント回路（ハードウェアカウント手段）
２２  ＭＰＥＧ１エンコーダＬＳＩ（情報圧縮部）
【図１】
0003750503.tif 000002
【図２】
0003750503.tif 000003
【図３】
0003750503.tif 000004
【図４】
0003750503.tif 000005
【図５】
0003750503.tif 000006
【図６】
0003750503.tif 000007
【図７】
0003750503.tif 000008
【図８】
0003750503.tif 000009
【図９】
0003750503.tif 000010
【図１０】
0003750503.tif 000011
【図１１】
0003750503.tif 000012
【図１２】
0003750503.tif 000013
【図１３】
0003750503.tif 000014
【図１４】
0003750503.tif 000015