(57)【要約】  【構成】  クライアントからの転送要求は、ネットワークコントローラ５４によって受け付けられる。ＣＰＵ４８は、受け付けられた転送要求に従う画像データを、ネットワークコントローラ５４が有する５つのソケットのうち空き状態のソケットを介して要求元のクライアントに転送する。ＣＰＵ４８はまた、同時に実行されている転送動作の数がネットワークコントローラ５４のソケット数および要求元のクライアントのソケット数の両方を下回るか否かを判別する。転送動作は、判別結果が肯定的であるときに許容される。  【効果】  ネットワークコントローラおよびクライアントの各々のソケット数を考慮した最適なデータ転送制御が実現される。【選択図】  図２
2006140545.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ個（Ｍ：２以上の整数）の第１ソケットを有するデータ処理装置へのデータ転送を要求する転送要求を受け付ける受付手段、
Ｎ個（Ｎ：２以上の整数）の第２ソケット、
前記受付手段によって受け付けた転送要求に従うデータを前記Ｎ個の第２ソケットのうち空き状態の第２ソケットを介して前記データ処理装置に転送する転送手段、
前記転送手段によって同時に実行されている転送動作の数が前記Ｍおよび前記Ｎの両方を下回るか否かを判別する判別手段、および
前記判別手段の判別結果が肯定的であるとき前記転送手段の転送動作を許容する制御手段を備える、データ転送装置。
【請求項２】
前記Ｍおよび前記Ｎのうち小さい方の数値に相当する数のメモリエリアを内部メモリに形成する形成手段、および
前記形成手段によって形成されたメモリエリアを前記転送手段によって同時に実行される転送動作にそれぞれ割り当てる割り当て手段をさらに備える、請求項１記載のデータ転送装置。
【請求項３】
複数チャネルのデータを取り込む取り込み手段をさらに備え、
前記転送要求は前記複数チャネルのいずれか１つを示すチャネル情報を含み、
前記転送手段は前記チャネル情報に対応するデータを抽出する抽出手段を含む、請求項１または２記載のデータ転送装置。
【請求項４】
前記転送手段は前記抽出手段によって抽出されたデータを圧縮する圧縮手段をさらに含む、請求項３記載のデータ転送装置。
【請求項５】
前記取り込み手段は前記複数チャネルの各々のデータを所定量ずつ多重する多重手段を含み、
前記抽出手段によって抽出されるデータの量は前記所定量に相当する、請求項３または４記載のデータ転送装置。
【請求項６】
前記取り込み手段は前記複数チャネルの各々を所定順序で選択する選択手段を含み、
前記抽出手段は前記転送要求に従うチャネルのデータが現れるまで待機する、請求項３ないし５のいずれかに記載のデータ転送装置。
【請求項７】
前記受付手段は前記転送要求を前記データ処理装置から受け付ける、請求項１ないし６のいずれかに記載のデータ転送装置。
【請求項８】
前記データ処理装置は前記転送要求に先立ってアクセス要求を発行し、
前記アクセス要求に応答して前記データ処理装置が有する第１ソケットの数を検出する検出手段をさらに備える、請求項１ないし７のいずれかに記載のデータ転送装置。
【請求項９】
前記転送手段によって転送されるデータは監視カメラによって撮影された被写界の画像データである、請求項１ないし８のいずれかに記載のデータ転送装置。
【請求項１０】
データ転送装置のプロセサによって実行されるデータ転送プログラムであって、
Ｍ個（Ｍ：２以上の整数）の第１ソケットを有するデータ処理装置へのデータ転送を要求する転送要求を受け付ける受付ステップ、
前記受付ステップによって受け付けた転送要求に従うデータをＮ個（Ｎ：２以上の整数）の第２ソケットのうち空き状態の第２ソケットを介して前記データ処理装置に転送する転送ステップ、
前記転送ステップによって同時に実行されている転送動作の数が前記Ｍおよび前記Ｎの両方を下回るか否かを判別する判別ステップ、および
前記判別ステップの判別結果が肯定的であるとき前記転送ステップの転送動作を許容する制御ステップを備える、データ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ転送装置に関し、特にたとえば監視カメラシステムに適用され、転送要求に応答して所望のデータを転送する、データ転送装置に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例が、特許文献１に開示されている。この従来技術によれば、画像データを一時的に格納するためのメモリバンクＭ１〜Ｍｎが、フレームメモリに形成される。メモリバンクＭ１〜Ｍｎの使用状態は、バンクリストによって管理される。画像データが入力されると、空き状態のメモリバンクがバンクリストに基づいて検出される。入力された画像データは、検出されたメモリバンクに書き込まれる。メモリバンクに格納された画像データは、その後モニタに向けて出力される。
【特許文献１】特開平５−１９１８０１号公報［H04N 7/137, 5/907, 5/93］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術では、メモリバンクとモニタとがバスによって接続される。このため、メモリバンクの使用状態を把握できれば、データ転送の的確な制御が可能となる。これに対して、データの出力先がインターネットやイントラネットのような通信回線を介する装置であれば、メモリバンクの使用状態以外のパラメータにも注目しなければ、データ転送処理が破綻する可能性がある。
【０００４】
それゆえに、この発明の主たる目的は、通信回線を介して接続された装置へのデータ転送動作を的確に制御することができる、データ転送装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明に従うデータ転送装置は、Ｍ個（Ｍ：２以上の整数）の第１ソケットを有するデータ処理装置へのデータ転送を要求する転送要求を受け付ける受付手段、Ｎ個（Ｎ：２以上の整数）の第２ソケット、受付手段によって受け付けた転送要求に従うデータをＮ個の第２ソケットのうち空き状態の第２ソケットを介してデータ処理装置に転送する転送手段、転送手段によって同時に実行されている転送動作の数がＭおよびＮの両方を下回るか否かを判別する判別手段、および判別手段の判別結果が肯定的であるとき転送手段の転送動作を許容する制御手段を備える。
【０００６】
データ処理装置は、Ｍ個の第１ソケットを有する。受付手段は、このようなデータ処理装置へのデータ転送を要求する転送要求を受け付ける。転送手段は、受付手段によって受け付けた転送要求に従うデータをＮ個の第２ソケットのうち空き状態の第２ソケットを介してデータ処理装置に転送する。また、判別手段は、転送手段によって同時に実行されている転送動作の数がＭおよびＮの両方を下回るか否かを判別する。転送手段の転送動作は、判別手段の判別結果が肯定的であるときに制御手段によって許容される。
【０００７】
したがって、Ｍ＞Ｎの場合は、同時に実行される転送動作の数がＮに達するまで、さらなる転送動作が許容される。一方、Ｍ≦Ｎの場合は、同時に実行される転送動作の数がＭに達するまで、さらなる転送動作が許容される。このような転送制御によって、第１ソケットの数および第２ソケットの数を考慮した最適なデータ転送制御が実現される。
【０００８】
請求項２の発明に従うデータ転送装置は、請求項１に従属し、ＭおよびＮのうち小さい方の数値に相当する数のメモリエリアを内部メモリに形成する形成手段、および形成手段によって形成されたメモリエリアを転送手段によって同時に実行される転送動作にそれぞれ割り当てる割り当て手段をさらに備える。これによって、内部メモリの容量の効率的な利用が可能となる。
【０００９】
請求項３の発明に従うデータ転送装置は、請求項１または２に従属し、複数チャネルのデータを取り込む取り込み手段をさらに備え、転送要求は複数チャネルのいずれか１つを示すチャネル情報を含み、転送手段はチャネル情報に対応するデータを抽出する抽出手段を含む。
【００１０】
請求項４の発明に従うデータ転送装置は、請求項３に従属し、転送手段は抽出手段によって抽出されたデータを圧縮する圧縮手段をさらに含む。データ圧縮によって転送量が抑制される。
【００１１】
請求項５の発明に従うデータ転送装置は、請求項３または４に従属し、取り込み手段は複数チャネルの各々のデータを所定量ずつ多重する多重手段を含み、抽出手段によって抽出されるデータの量は所定量に相当する。
【００１２】
請求項６の発明に従うデータ転送装置は、請求項３ないし５のいずれかに従属し、取り込み手段は複数チャネルの各々を所定順序で選択する選択手段を含み、抽出手段は転送要求に従うチャネルのデータが現れるまで待機する。
【００１３】
請求項７の発明に従うデータ転送装置は、請求項１ないし６のいずれかに従属し、受付手段は転送要求をデータ処理装置から受け付ける。
【００１４】
請求項８の発明に従うデータ転送装置は、請求項１ないし７のいずれかに従属し、データ処理装置は転送要求に先立ってアクセス要求を発行し、アクセス要求に応答してデータ処理装置が有する第１ソケットの数を検出する検出手段をさらに備える。
【００１５】
請求項９の発明に従うデータ転送装置は、請求項１ないし８のいずれかに従属し、転送手段によって転送されるデータは監視カメラによって撮影された被写界の画像データである。
【００１６】
請求項１０の発明に従うデータ転送プログラムは、データ転送装置のプロセサによって実行されるデータ転送プログラムであって、Ｍ個（Ｍ：２以上の整数）の第１ソケットを有するデータ処理装置へのデータ転送を要求する転送要求を受け付ける受付ステップ、受付ステップによって受け付けた転送要求に従うデータをＮ個（Ｎ：２以上の整数）の第２ソケットのうち空き状態の第２ソケットを介してデータ処理装置に転送する転送ステップ、転送ステップによって同時に実行されている転送動作の数がＭおよびＮの両方を下回るか否かを判別する判別ステップ、および判別ステップの判別結果が肯定的であるとき転送ステップの転送動作を許容する制御ステップを備える。
【００１７】
請求項１と同様、第１ソケットの数および第２ソケットの数を考慮した最適なデータ転送制御が実現される。
【発明の効果】
【００１８】
この発明によれば、Ｍ＞Ｎの場合は、同時に実行される転送動作の数がＮに達するまで、さらなる転送動作が許容される。一方、Ｍ≦Ｎの場合は、同時に実行される転送動作の数がＭに達するまで、さらなる転送動作が許容される。このような転送制御によって、第１ソケットの数および第２ソケットの数を考慮した最適なデータ転送制御が実現される。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２０】
図１を参照して、この実施例の監視カメラシステム１００は、９つの監視カメラ６０ａ〜６０ｉが接続されたサーバ１０を含む。サーバ１０は、インターネット８０を介してクライアント７０ａおよび７０ｂと接続される。クライアント７０ａまたは７０ｂがサーバ１０に向けて転送要求を発行すると、監視カメラ６０ａ〜６０ｉのいずれか１つによって撮影された被写界の画像データが、サーバ１０から出力される。出力された画像データは、インターネット８０を介して、転送要求を発行したクライアントに転送される。
【００２１】
サーバ１０は、詳しくは図２に示すように構成される。監視カメラ６０ａ〜６０ｉは、ＣＨ１〜ＣＨ９の画像データをそれぞれ出力する。出力された９チャネルの画像データは、デコーダ１４ａ〜１４ｉによってそれぞれデコードされる。デコードされた９チャネルの画像データは、マルチプレクサ１２に設けられたＤ１−Ｉ／Ｆ２６ａ〜２６ｉによって、Ｄ１規格に対応するデータ形式にそれぞれ変換される。変換された９チャネルの画像データは、互いにフレーム同期が確保された状態でＤ１−Ｉ／Ｆ２６ａ〜２６ｉからそれぞれ出力され、バスＢ１を介してＳＤＲＡＭコントローラ２８および３０の各々に与えられる。
【００２２】
ＳＤＲＡＭコントローラ２８は、信号発生器（図示せず）から垂直同期信号Ｖｓｙｎｃが発生する毎にＣＨ１→ＣＨ２→ＣＨ３→ＣＨ４→ＣＨ５→ＣＨ６→ＣＨ７→ＣＨ８→ＣＨ９→ＣＨ１→…の順で循環的にチャネルを切り換え、選択されたチャネルに属する１フレームの画像データをＳＤＲＡＭ１６に書き込む。ＳＤＲＡＭ１６は図３に示すように９つのメモリバンク１６ａ〜１６ｉを有し、９チャネルの画像データはこの９つのメモリバンク１６ａ〜１６ｉにそれぞれ書き込まれる。ＳＤＲＡＭコントローラ２８はまた、モニタ画面のラスタ走査に対応する順序でメモリバンク１６ａ〜１６ｉから画像データを読み出し、読み出された画像データに間引き処理を施す。
【００２３】
間引き処理によって解像度が低減された画像データは、Ｄ１−Ｉ／Ｆ３２を介してマルチプレクサ１２から出力され、ビデオレコーダ２０に設けられたＤ１−Ｉ／Ｆ３６に与えられる。Ｄ１−Ｉ／Ｆ３６は、与えられた画像データをバスＢ２を通してＳＤＲＡＭコントローラ４２に入力し、ＳＤＲＡＭコントローラ４２は、入力された画像データをＳＤＲＡＭ２４に書き込む。図５を参照して、ＳＤＲＡＭ２４は表示画像エリア２４ａを有し、Ｄ１−Ｉ／Ｆ３６からの画像データはこの表示画像エリア２４ａに書き込まれる。Ｄ１−Ｉ／Ｆ４６は、表示画像エリア２４ａに格納された画像データをＳＤＲＡＭコントローラ４２を介して読み出し、読み出された画像データをモニタ５６に向けて出力する。この結果、９チャネルの監視画像が図４に示す要領でモニタ画面に表示される。
【００２４】
図２に戻って、マルチプレクサ１２に設けられたＳＤＲＡＭコントローラ３０も、垂直同期信号Ｖｓｙｎｃが発生する毎にＣＨ１→ＣＨ２→ＣＨ３→ＣＨ４→ＣＨ５→ＣＨ６→ＣＨ７→ＣＨ８→ＣＨ９→ＣＨ１→…の順で循環的にチャネルを切り換え、選択されたチャネルに属する１フレームの画像データをＳＤＲＡＭ１８に書き込む。図３に示すように、ＳＤＲＡＭ１８もまた９つのメモリバンク１８ａ〜１８ｉを有する。９チャネルの画像データは、この９つのメモリバンク１８ａ〜１８ｉにそれぞれ書き込まれる。
【００２５】
ＳＤＲＡＭコントローラ３０は、メモリバンク１８ａ〜１８ｉに順次アクセスし、書き込み時と同じ順序で９チャネルの画像データを読み出す。画像データは、垂直同期信号Ｖｓｙｎｃが発生する毎に、ＣＨ１→ＣＨ２→ＣＨ３→ＣＨ４→ＣＨ５→ＣＨ６→ＣＨ７→ＣＨ８→ＣＨ９→ＣＨ１→…の順で１フレームずつ読み出される。読み出された画像データは、Ｄ１−Ｉ／Ｆ３４を介してマルチプレクサ１２から出力され、ビデオレコーダ２０のＤ１−Ｉ／Ｆ３８に与えられる。Ｄ１−Ｉ／Ｆ３８は、与えられた画像データをＳＤＲＡＭコントローラ４２を通してＳＤＲＡＭ２４の入力画像エリア２４ｂ（図５参照）に書き込む。入力画像エリア２４ｂは、各々が１フレームに相当する容量を有するメモリバンク１および２を有し、メモリバンク１および２の各々に格納された画像データは、後続の画像データによって上書きされる。
【００２６】
操作パネル５８によってチャネル指定操作および記録開始操作が行われると、ＣＰＵ４８は、指定チャネルの画像データが入力画像エリア２４ｂに格納されるタイミングで、ＪＰＥＧコーデック４４およびＩＤＥ−Ｉ／Ｆ４０に圧縮命令および記録命令をそれぞれ与える。
【００２７】
圧縮命令には、指定チャネルの画像データが格納されたメモリバンクの先頭アドレスが読み出しアドレスとして割り当てられ、記録画像エリア２４ｃ内のアドレスが書き込みアドレスとして割り当てられる。また、記録命令には、圧縮命令に割り当てられた書き込みアドレスと同じアドレスが、読み出しアドレスとして割り当てられる。
【００２８】
ＪＰＥＧコーデック４４は、指定チャネルに属する１フレームの画像データをＳＤＲＡＭコントローラ４２を通して入力画像エリア２４ｂから読み出し、読み出された画像データをＪＰＥＧ方式で圧縮し、そして圧縮画像データをＳＤＲＡＭコントローラ４２を通して記録画像エリア２４ｃに書き込む。ＩＤＥ−Ｉ／Ｆ４０は、記録画像エリア２４ｃに格納された圧縮画像データをＳＤＲＡＭコントローラ４２を通して読み出し、読み出された圧縮画像データをＨＤＤ２２に与える。圧縮画像データは、ＨＤＤ２２によってハードディスク（図示せず）に記録される。
【００２９】
ネットワークコントローラ５４は、クライアント７０ａまたは７０ｂによって発行された転送要求をインターネット８０を介して受け付けたとき、この転送要求を拡張バスＩ／Ｆ５２およびバスＢ３を介してＣＰＵ４８に与える。転送要求には、要求元アドレス情報と要求チャネル情報とが含まれる。
【００３０】
ＣＰＵ４８は、要求チャネル情報が示すチャネルつまり要求チャネルの画像データが入力画像エリア２４ｂに格納されるタイミングで、ＪＰＥＧコーデック４４に向けて圧縮命令を発行する。圧縮命令には、要求チャネルの画像データが格納されたメモリバンクの先頭アドレスが読み出しアドレスとして割り当てられ、転送画像エリア２４ｄ内のアドレスが書き込みアドレスとして割り当てられる。
【００３１】
ＪＰＥＧコーデック４４は、上述と同様、要求チャネルに属する１フレームの画像データをＳＤＲＡＭコントローラ４２を通して入力画像エリア２４ｂから読み出し、読み出された画像データをＪＰＥＧ方式で圧縮し、そして圧縮画像データをＳＤＲＡＭコントローラ４２を通して転送画像エリア２４ｄに書き込む。
【００３２】
要求チャネルに対応する１フレームの圧縮画像データが転送画像エリア２４ｄに確保されると、ＣＰＵ４８は、ネットワークコントローラ５４に向けて転送命令を発行する。転送命令には、圧縮命令に書き込みアドレスとして割り当てられたアドレスが読み出しアドレスとして割り当てられ、要求元アドレス情報が示すアドレスが転送先アドレスとして割り当てられる。
【００３３】
ネットワークコントローラ５４は、拡張バスＩ／Ｆ５２，バスＢ３およびＳＤＲＡＭコントローラ４２を介してＳＤＲＡＭ２４にアクセスし、転送要求に割り当てられた読み出しアドレスに従って転送画像エリア２４ｄから１フレームの圧縮画像データを読み出す。ネットワークコントローラ５４はまた、読み出された圧縮画像データを転送要求に割り当てられた転送先アドレスに転送する。こうして、要求チャネルに属する１フレームの圧縮画像データが、転送要求を発行したクライアントに転送される。
【００３４】
ただし、インターネット８０を介したデータ転送には、TCP/IPに基づくプロセス間通信インタフェースが用いられる。このインタフェースは、アプリケーション層とトランスポート層との間に定義されるAPI（Application Programming Interface）に相当し、“ソケット”，“ソケット・インタフェース”または“ソケットＡＰＩ”と呼ばれる。１回のデータ転送処理には、１つのソケットが必要となる。このため、Ｎ個のデータ転送処理を同時に実行するには、転送元の装置および転送先の装置のいずれもが、Ｎ個のソケットを備える必要がある。
【００３５】
この実施例では、サーバ１０つまりネットワークコントローラ５４は５つのソケットを有し、クライアント７０ａは４つのソケットを有し、そしてクライアント７０ｂは６つのソケットを有する。したがって、サーバ１０とクライアント７０ａとの間で同時に実行できるデータ転送処理は４つに限られ、サーバ１０とクライアント７０ｂとの間で同時に実行できるデータ転送処理は５つに限られる。
【００３６】
このように、インターネット８０のような通信回線を介したデータ転送処理には、単一の装置内でのデータ転送処理に課せられる制限とは異なる制限が課せられる。そこで、この実施例では、サーバ１０，クライアント７０ａおよび７０ｂの各々が有するソケットの数に基づいて、以下に述べるようなデータ転送制御を実行するようにしている。
【００３７】
ＣＰＵ４８は、データ転送に関連して、図８に示す要求受付タスク，図９に示すタスク管理タスク，および図１０〜図１１に示す転送タスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ５０に記憶される。また、これらのタスクは、μＩＴＲＯＮのようなマルチタスクＯＳの制御の下で実行される。
【００３８】
図８を参照して、ステップＳ１ではネットワークコントローラ５４を通してアクセス要求を受け付けたか否かを判別する。ここでＹＥＳであればステップＳ３に進み、要求元が正当なクライアントであるか否かを認証するための認証処理を実行する。さらに、要求元が正当なクライアントつまり図１に示すクライアント７０ａまたは７０ｂであれば、要求元のクライアントが有するソケットの数を検出する。
【００３９】
ステップＳ５では、ステップＳ３で検出されたソケット数に基づいてメモリバンク数を決定し、決定した数のメモリバンクを図５に示す画像転送エリア２４ｄに形成する。要求元のソケット数がネットワークコントローラ５４のソケット数よりも多ければ、ネットワークコントローラ５４のソケット数に相当する数のメモリバンクが画像転送エリア２４ｄに形成される。これに対して、要求元のソケット数がネットワークコントローラ５４のソケット数以下であれば、要求元のソケット数に相当する数のメモリバンクが画像転送エリア２４ｄに形成される。
【００４０】
したがって、クライアント７０ａがアクセスしたときは、４つのメモリバンクが画像転送エリア２４ｄに形成される。また、クライアント７０ｂがアクセスしたときは、５つのメモリバンクが画像転送エリア２４ｄに形成される。
【００４１】
続くステップＳ７では、形成されたメモリバンクを管理するバンクリスト２４ｂ（図７参照）をＳＤＲＡＭ２４のワークエリア２４ｅに作成する。ステップＳ９では図９に示すタスク管理タスクを起動し、ステップＳ１１では後述する変数Ｌｗを初期化する。ステップＳ１３ではクライアント７０から転送要求が与えられたか否かを判別し、ステップＳ２３ではクライアント７０からアクセス終了要求が与えられたか否かを判別する。アクセス終了要求が与えられると、ステップＳ２３でＹＥＳと判断し、ステップＳ１に戻る。
【００４２】
転送要求が与えられたときはステップＳ１３からステップＳ１５に進み、ＳＤＲＡＭ２４のワークエリア２４ｅに形成された要求リスト２４ｔ（図６参照）に転送要求を書き込む。転送要求に含まれる要求元アドレス情報および要求チャネル情報のいずれも、インデックス番号Ｌｗに対応するコラムに書き込まれる。なお、変数Ｌｗは、受け付けた転送要求を書き込むべきコラムのインデックス番号を示す。
【００４３】
ステップＳ１７では変数Ｌｗをインクリメントし、ステップＳ１９では変数Ｌｗが最大インデックス番号Ｌｍａｘを上回ったか否かを判別する。ここでＮＯであれば直接ステップＳ１３に戻り、ＹＥＳであればステップＳ２１で変数Ｌｗを初期化してからステップＳ１３に戻る。したがって、転送要求を書き込むべきコラムは、要求リスト２４ｔ上で循環的に更新される。
【００４４】
図９を参照して、ステップＳ３１では変数Ｌｒ，ＴｓｋおよびＴａｃｔを初期化する。ここで、変数Ｌｒは、処理すべき転送要求が登録されたコラムのインデックス番号を示す変数である。また、変数Ｔｓｋは起動された転送タスクの数を示す変数であり、変数Ｔａｃｔは転送処理を実行中の転送タスクの数を示す変数である。
【００４５】
ステップＳ３３では、要求リスト２４ｔに登録されたが未だ処理されていない転送要求が存在するか否かを判別する。また、ステップＳ３５では、変数Ｔｓｋがネットワークコントローラ５４のソケット数（＝５）を下回るか否かを判別する。ステップＳ３３およびＳ３５のいずれもＹＥＳと判断されると、ステップＳ３７で図１０〜図１１に示す転送タスクを起動する。ステップＳ３９では、ネットワークコントローラ５４が有する複数のソケットの中から空き状態のソケットを検出し、検出されたソケットの識別番号つまりソケット番号を起動された転送タスクに割り当てる。ステップＳ４１では変数Ｔｓｋをインクリメントし、その後ステップＳ３３に戻る。
【００４６】
したがって、並列的に実行できる転送タスクの最大数は、ネットワークコントローラ５４のソケット数に相当する“５”である。ただし、マルチタスクＯＳに従う処理によれば、マクロ的な視点で眺めると複数のタスクが並列的に実行されるものの、ミクロ的な視点で眺めると複数のタスクのいずれか１つだけが実行される。このため、実際には、１つの転送タスクが準備され、この転送タスクを関数とみなして演算を実行する演算処理が最大で５つ起動する。この実施例では、転送タスクの実行は演算処理の実行と同義である。
【００４７】
図１０を参照して、ステップＳ５１では変数ＴａｃｔをステップＳ３で検出された要求元のソケット数と比較する。変数Ｔａｃｔが要求元のソケット数を下回れば、ステップＳ５１でＹＥＳと判断し、ステップＳ５３で変数Ｔａｃｔをインクリメントする。ステップＳ５５では、転送画像エリア２４ｄに形成された複数のメモリバンクの中から空き状態のメモリバンクを検出し、検出されたメモリバンクを占有する。具体的には、自分に割り当てられたソケット番号を、図７に示すバンクリスト２４ｂのうち空き状態のメモリバンクのコラムに登録する。ステップＳ５７では、変数Ｌｒに割り当てられた要求元アドレス情報および要求チャネル情報を検出する。
【００４８】
ステップＳ５９では変数Ｌｒをインクリメントし、ステップＳ６１では変数Ｌｒが最大インデックス番号Ｌｍａｘを上回ったか否かを判別する。ＮＯと判断されたときは直接ステップＳ６５に進み、ＹＥＳと判断されたときはステップＳ６３で変数Ｌｒを初期化してからステップＳ６５に進む。したがって、転送要求を読み出すべきコラムもまた、転送リスト２４ｔ上で循環的に更新される。
【００４９】
ステップＳ６５では垂直同期信号Ｖｓｙｎｃが発生したか否かを判別し、ステップＳ６７では入力画像エリア２４ｂ（図５参照）に今回書き込まれた画像データのチャネルがステップＳ５７で検出された要求チャネルと一致するか否かを判別する。ステップＳ６５およびＳ６７のいずれもＹＥＳと判断されると、ステップＳ６９以降の処理に進む。
【００５０】
ステップＳ６９では、１フレーム画像を自分が占有するメモリバンクに確保するべく、圧縮命令をＪＰＥＧコーデック４４に向けて発行する。発行される圧縮命令は、入力画像エリア２４ｂに形成されたメモリバンク１および２のうち要求チャネルの画像データが格納されたメモリバンクの先頭アドレスを読み出しアドレスとして含み、転送画像エリア２４ｄに形成されたメモリバンク１〜ｎのうちステップＳ５５で占有したメモリバンクの先頭アドレスを書き込みアドレスとして含む。
【００５１】
ＪＰＥＧコーデック４４は、入力画像エリア２４ｂの指定メモリバンクから要求チャネルに対応する１フレームの画像データを読み出し、読み出された画像データをＪＰＥＧ方式で圧縮し、そして圧縮画像データを転送画像エリア２４ｄの指定メモリバンクに書き込む。
【００５２】
ステップＳ７１では、こうして確保された１フレームの画像データを要求元のクライアントに転送するべく、転送命令をネットワークコントローラ５４に向けて発行する。転送命令は、ＪＰＥＧコーデック４４に向けて発行した圧縮命令に含まれる書き込みアドレスと同じアドレスを読み出しアドレスとして含み、ステップＳ５７で検出された要求元アドレス情報が示すアドレスを転送先アドレスとして含む。転送命令はまた、発行元の転送タスクに割り当てられたソケット番号を含む。
【００５３】
ネットワークコントローラ５４は、拡張バスＩ／Ｆ５２，バスＢ３およびＳＤＲＡＭコントローラ４２を介してＳＤＲＡＭ２４にアクセスし、転送画像エリア２４ｂの指定メモリバンクから１フレームの画像データを読み出す。ネットワークコントローラ５４はまた、読み出された画像データを指定ソケットを介して要求元アドレスに送信する。画像データは、インターネット８０を経て要求元のクライアントに転送される。
【００５４】
ステップＳ７３では、ネットワークコントローラ５４の転送処理が完了したか否かを判別する。ここでＹＥＳであればステップＳ７５に進み、自分が占有しているメモリバンクを開放する。具体的には、自分に割り当てられたソケット番号を図７に示すバンクリスト２４ｂから削除する。ステップＳ７７では変数Ｔａｃｔをディクリメントし、ステップＳ７９では変数Ｔｓｋをディクリメントし、その後処理を終了する。
【００５５】
４つのソケットを有するクライアント７０ａがサーバ１０にアクセスしたとき、画像データの転送動作は、図１２（Ａ）〜図１２（Ｇ）に示すタイミングで実行される。このとき、転送画像エリア２４ｄには４つのメモリバンク１〜４が形成され、４つの転送タスクが起動する。
【００５６】
Ｄ１−Ｉ／Ｆ３８から入力された画像データは、図１２（Ａ）に示す垂直同期信号Ｖｓｙｎｃを基準として、図１２（Ｂ）に示す要領でＳＤＲＡＭ２４の入力画像エリア２４ｂに書き込まれる。クライアント７０ａが図１２（Ｃ）に示すタイミングで転送要求を発行する場合、４つの転送タスクがメモリバンク１〜４をそれぞれ占有する。各々の転送タスクは、自分が担う要求チャネルの画像データが入力画像エリア２４ｂに確保された時点で、データ転送処理を実行する。したがって、各々の転送タスクによって実行されるデータ転送処理の順序は、要求チャネルのチャネル番号に依存する。
【００５７】
この結果、メモリバンク１を占有した転送タスクは図１２（Ｄ）に示すタイミングでデータ転送処理を実行し、メモリバンク２を占有した転送タスクは図１２（Ｅ）に示すタイミングでデータ転送処理を実行する。また、メモリバンク３を占有した転送タスクは図１２（Ｆ）に示すタイミングでデータ転送処理を実行し、メモリバンク４を占有した転送タスクは図１２（Ｇ）に示すタイミングでデータ転送処理を実行する。
【００５８】
６つのソケットを有するクライアント７０ｂがサーバ１０にアクセスしたとき、画像データの転送動作は、図１３（Ａ）〜図１３（Ｈ）に示すタイミングで実行される。このとき、転送画像エリア２４ｄには５つのメモリバンク１〜５が形成され、５つの転送タスクが起動する。
【００５９】
Ｄ１−Ｉ／Ｆ３８から入力された画像データは、図１３（Ａ）に示す垂直同期信号Ｖｓｙｎｃを基準として、図１３（Ｂ）に示す要領でＳＤＲＡＭ２４の入力画像エリア２４ｂに書き込まれる。クライアント７０ｂが図１３（Ｃ）に示すタイミングで転送要求を発行する場合、５つの転送タスクがメモリバンク１〜５をそれぞれ占有する。各々の転送タスクは、自分に割り当てられた要求チャネルの画像データが入力画像エリア２４ｂに確保された時点で、データ転送処理を実行する。
【００６０】
したがって、メモリバンク１を占有した転送タスクは図１３（Ｄ）に示すタイミングでデータ転送処理を実行し、メモリバンク２を占有した転送タスクは図１３（Ｅ）に示すタイミングでデータ転送処理を実行する。また、メモリバンク３を占有した転送タスクは図１３（Ｆ）に示すタイミングでデータ転送処理を実行し、メモリバンク４を占有した転送タスクは図１３（Ｇ）に示すタイミングでデータ転送処理を実行し、メモリバンク５を占有した転送タスクは図１３（Ｈ）に示すタイミングでデータ転送処理を実行する。
【００６１】
以上の説明から分かるように、クライアント７０ａは４つのソケットを有し、クライアント７０ｂは６つのソケットを有する。また、ネットワークコントローラ５４は、５つのソケットを有する。クライアント７０ａまたは７０ｂからの転送要求は、ネットワークコントローラ５４によって受け付けられる。ＣＰＵ４８は、受け付けられた転送要求に従う画像データを、ネットワークコントローラ５４が有する５つのソケットのうち空き状態のソケットを介して要求元のクライアントに転送する(S69, S71)。
【００６２】
ＣＰＵ４８はまた、同時に実行されている転送動作の数がネットワークコントローラ５４のソケット数および要求元のクライアントのソケット数の両方を下回るか否かを判別する(S35, S51)。転送動作は、判別結果が肯定的であるときに許容される(S37, S53, S55)。
【００６３】
したがって、クライアント７０ａからの転送要求を受け付けたときは、同時に実行される転送動作の数が“４”に達するまで、さらなる転送動作が許容される。一方、クライアント７０ｂからの転送要求を受け付けたときは、同時に実行される転送動作の数が“５”に達するまで、さらなる転送動作が許容される。このような転送制御によって、要求元のクライアントのソケット数およびネットワークコントローラ５４のソケット数を考慮した最適なデータ転送制御が実現される。
【００６４】
なお、この実施例では、監視カメラによって撮影された被写界の画像データを転送するようにしているが、転送すべきデータは画像データに限られない。つまり、画像データに代えて音声データやプログラムデータを転送するようにしてもよい。
【００６５】
また、この実施例では、転送要求を外部のクライアントから受け付けるようにしているが、転送要求はサーバの操作パネルを通して受け付けるようにしてもよい。この場合、転送先のクライアントのソケット数をも操作パネルを通して入力することで、最適なデータ転送制御が実現される。
【図面の簡単な説明】
【００６６】
【図１】この発明の一実施例の構成を示す図解図である。
【図２】図１実施例に適用されるサーバの構成の一例を示すブロック図である。
【図３】図１実施例に適用されるＳＤＲＡＭのマッピング状態の一例を示す図解図である。
【図４】図１実施例に適用されるモニタに表示される画像の一例を示す図解図である。
【図５】図１実施例に適用されるＳＤＲＡＭのマッピング状態の他の一例を示す図解図である。
【図６】図１実施例に適用される要求リストの一例を示す図解図である。
【図７】図１実施例に適用されるバンクリストの一例を示す図解図である。
【図８】図１実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図９】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１０】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１１】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１２】（Ａ）は垂直同期信号の発生タイミングの一例を示す波形図であり、（Ｂ）は入力画像データのチャネル切換タイミングの一例を示す図解図であり、（Ｃ）は転送要求の受け付けタイミングの一例を示す図解図であり、（Ｄ）はバンク１へのアクセス動作の一例を示すタイミング図であり、（Ｅ）はバンク２へのアクセス動作の一例を示すタイミング図であり、（Ｆ）はバンク３へのアクセス動作の一例を示すタイミング図であり、そして（Ｇ）はバンク４へのアクセス動作の一例を示すタイミング図である。
【図１３】（Ａ）は垂直同期信号の発生タイミングの一例を示す波形図であり、（Ｂ）は入力画像データのチャネル切換タイミングの一例を示す図解図であり、（Ｃ）は転送要求の受け付けタイミングの一例を示す図解図であり、（Ｄ）はバンク１へのアクセス動作の一例を示すタイミング図であり、（Ｅ）はバンク２へのアクセス動作の一例を示すタイミング図であり、（Ｆ）はバンク３へのアクセス動作の一例を示すタイミング図であり、（Ｇ）はバンク４へのアクセス動作の一例を示すタイミング図であり、そして（Ｈ）はバンク５へのアクセス動作の一例を示すタイミング図である。
【符号の説明】
【００６７】
１０  …サーバ
１４  …マルチプレクサ
１６，１８，２４  …ＳＤＲＡＭ
２８，３０，４２  …ＳＤＲＡＭコントローラ
４８  …ＣＰＵ
５４  …ネットワークコントローラ
７０ａ，７０ｂ  …クライアント
８０  …インターネット
１００  …監視カメラシステム
【図１】
2006140545.tif 000003
【図２】
2006140545.tif 000004
【図３】
2006140545.tif 000005
【図４】
2006140545.tif 000006
【図５】
2006140545.tif 000007
【図６】
2006140545.tif 000008
【図７】
2006140545.tif 000009
【図８】
2006140545.tif 000010
【図９】
2006140545.tif 000011
【図１０】
2006140545.tif 000012
【図１１】
2006140545.tif 000013
【図１２】
2006140545.tif 000014
【図１３】
2006140545.tif 000015