(57)【特許請求の範囲】
【請求項１】
ストリームデータを受信するチャンネルごとに設けられている複数のストリームバッファ（１１、２０、３０、４０、５０、６０）と、
複数の前記ストリームバッファ（１１、２０、３０、４０、５０、６０）から同じタイミングで読み出したストリームデータを用いてデータ処理を行うデータ処理部（１０）と、を備え、
それぞれの前記ストリームバッファ（１１、２０、３０、４０、５０、６０）は、
受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯメモリ（１２）と、
前記ＦＩＦＯメモリ（１２）へ受信したストリームデータを書き込むタイミングを調整することで各チャンネルのストリームデータを同期させる同期回路（１３、２１、３１、３２、３３、４１、５１、６１）と、によって構成されており、
前記同期回路（１３）は、
同期すべきストリームデータのうち最も早いタイミングでストリームデータが受信されるチャンネルを基準とし、当該基準としたチャンネルからストリームデータがどの程度遅れて受信されているかを正の値で示す値であって校正作業時に各チャンネルで個別に設定されるオフセット値が設定されるオフセットレジスタ（１４）と、
前記オフセットレジスタ（１４）に設定されているオフセット値をストリームデータの周期に同期して減算する減算器（１５）と、
前記オフセットレジスタ（１４）のオフセット値が予め定められている基準値と一致しない場合には、前記減算器（１５）によるオフセット値の減算を有効化するとともに、受信したストリームデータの前記ＦＩＦＯメモリ（１２）への書き込みを規制する一方、前記オフセットレジスタ（１４）のオフセット値が前記基準値と一致する場合には、前記減算器（１５）によるオフセット値の減算を無効化するとともに、受信したストリームデータの前記ＦＩＦＯメモリ（１２）への書き込みを許可するゲート回路（１６）と、
により構成されていることを特徴とするストリーム処理装置。
【請求項２】
ストリームデータを受信するチャンネルごとに設けられている複数のストリームバッファ（１１、２０、３０、４０、５０、６０）と、
複数の前記ストリームバッファ（１１、２０、３０、４０、５０、６０）から同じタイミングで読み出したストリームデータを用いてデータ処理を行うデータ処理部（１０）と、を備え、
それぞれの前記ストリームバッファ（１１、２０、３０、４０、５０、６０）は、
受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯメモリ（１２）と、
前記ＦＩＦＯメモリ（１２）へ受信したストリームデータを書き込むタイミングを調整することで各チャンネルのストリームデータを同期させる同期回路（１３、２１、３１、３２、３３、４１、５１、６１）と、によって構成されており、
前記同期回路（１３、２１）は、
同期すべきストリームデータのうち最も遅いタイミングでストリームデータが受信されるチャンネルを基準とし、当該基準としたチャンネルからストリームデータがどの程度進んで受信されているかを負の値で示す値であって校正作業時に各チャンネルで個別に設定されるオフセット値が設定されるオフセットレジスタ（１４）と、
前記オフセットレジスタ（１４）に設定されたオフセット値をストリームデータの周期に同期せずに加算する加算器（２２）と、
ダミーデータを記憶するダミーデータバッファ（２４）と、
前記オフセットレジスタ（１４）のオフセット値が予め定められている基準値と一致しない場合には、前記加算器（２２）によるオフセット値の加算を有効化するとともに、前記ＦＩＦＯメモリ（１２）に書き込むデータを前記ダミーデータバッファ（２４）に記憶されているダミーデータに切り替えて、ダミーデータを１つ書き込む毎にオフセット値を１加算しながらオフセット値が前記基準値と一致するまでダミーデータを前記ＦＩＦＯメモリ（１２）に繰り返し書き込む一方、前記オフセットレジスタ（１４）のオフセット値が前記基準値と一致する場合には、前記加算器（２２）によるオフセット値の加算を無効化するとともに、前記ＦＩＦＯメモリ（１２）に書き込むデータを受信したストリームデータに切り替えて、受信したストリームデータを、ストリームデータの周期に同期して前記ＦＩＦＯメモリ（１２）に書き込むゲート回路（２３）と、
により構成されていることを特徴とするストリーム処理装置。
【請求項３】
ストリームデータを受信するチャンネルごとに設けられている複数のストリームバッファ（１１、２０、３０、４０、５０、６０）と、
複数の前記ストリームバッファ（１１、２０、３０、４０、５０、６０）から同じタイミングで読み出したストリームデータを用いてデータ処理を行うデータ処理部（１０）と、を備え、
それぞれの前記ストリームバッファ（１１、２０、３０、４０、５０、６０）は、
受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯメモリ（１２）と、
前記ＦＩＦＯメモリ（１２）へ受信したストリームデータを書き込むタイミングを調整することで各チャンネルのストリームデータを同期させる同期回路（１３、２１、３１、３２、３３、４１、５１、６１）と、によって構成されており、
前記同期回路（３１）は、
同期すべきストリームデータが校正作業時に予め基準として選択されているチャンネルから遅れて受信される場合には正の値が設定され、同期すべきストリームデータが基準として選択されているチャンネルから進んで受信される場合には負の値が設定される値であって受信されるストリームデータの基準として選択されているチャンネルからのずれを示す値であって校正作業時に各チャンネルで個別に設定されているオフセット値が設定されるオフセットレジスタ（１４）と、
前記オフセットレジスタ（１４）に設定されているオフセット値をストリームデータの周期に同期して減算する減算器（１５）と、前記オフセットレジスタ（１４）のオフセット値が予め定められている基準値と一致しない場合には、前記減算器（１５）によるオフセット値の減算を有効化するとともに、受信したストリームデータの前記ＦＩＦＯメモリ（１２）への書き込みを規制する一方、前記オフセットレジスタ（１４）のオフセット値が前記基準値と一致する場合には、前記減算器（１５）によるオフセット値の減算を無効化するとともに、受信したストリームデータの前記ＦＩＦＯメモリ（１２）への書き込みを許可するゲート回路（１６）と、を有し、前記オフセット値が正の値に設定されている場合に前記オフセットレジスタ（１４）に設定されているオフセット値分の受信データを削除することで、基準として選択されているチャンネルのストリームデータと同期させるダウンカウンタ型同期回路（３２）と、
ダミーデータを記憶するダミーデータバッファ（２４）と、前記オフセットレジスタ（１４）に設定されたオフセット値をストリームデータの周期に同期せずに加算する加算器（２２）と、前記オフセットレジスタ（１４）のオフセット値が予め定められている基準値と一致しない場合には、前記加算器（２２）によるオフセット値の加算を有効化するとともに前記ＦＩＦＯメモリ（１２）に書き込むデータを前記ダミーデータバッファ（２４）に記憶されているダミーデータに切り替えて、ダミーデータを１つ書き込む毎にオフセット値を１加算しながらオフセット値が前記基準値と一致するまでダミーデータを前記ＦＩＦＯメモリ（１２）に繰り返し書き込む一方、前記オフセットレジスタ（１４）のオフセット値が前記基準値と一致する場合には、前記加算器（２２）によるオフセット値の加算を無効化するとともに前記ＦＩＦＯメモリ（１２）に書き込むデータを受信したストリームデータに切り替えて、受信したストリームデータを、ストリームデータの周期に同期して前記ＦＩＦＯメモリ（１２）に書き込むゲート回路（２３）と、を有し、前記オフセット値が負の値に設定されている場合に前記オフセットレジスタ（１４）に設定されたオフセット値分のダミーデータを挿入することで、基準として選択されているチャンネルのストリームデータと同期させるアップカウンタ型同期回路（３３）と、
前記オフセットレジスタ（１４）に設定される前記オフセット値の正負に応じて、ＦＩＦＯメモリ（１２）にデータを書き込む際に用いる回路を、前記ダウンカウンタ型同期回路（３２）または前記アップカウンタ型同期回路（３３）のいずれかに切り替える切替器（３４）と、
により構成されていることを特徴とするストリーム処理装置。
【請求項４】
ストリームデータは、データの順序を表すインデックス値を含んでおり、
前記同期回路（２１、３１、４１）は、連続して受信した少なくとも２つ以上のストリームデータのインデックス値を記憶するインデックスバッファ（４２）と、前記インデックスバッファ（４２）に記憶されているインデックス値に基づいて前記オフセットレジスタ（１４）に設定するオフセット値を演算する演算器（４３）とを有し、前記演算器（４３）で演算したオフセット値を前記オフセットレジスタ（１４）に設定し、
演算器（４３）は、前記インデックスバッファ（４２）に記憶されている直近のインデックス値をその前に記憶されているインデックス値から減算した後、１を加算した値をオフセット値として演算することを特徴とする請求項２または３記載のストリーム処理装置。
【請求項５】
ストリームデータは、データの順序を表すインデックス値を含んでおり、
前記同期回路（２１、３１、４１、５１）は、連続して受信した少なくとも２つ以上のストリームデータのインデックス値の差分値が２以上である場合、差分値に相当する数のダミーデータを挿入することで、各チャンネルのストリームデータを同期させることを特徴とする請求項２から４のいずれか一項記載のストリーム処理装置。
【請求項６】
前記同期回路（２１、３１、４１、５１）は、連続して受信した少なくとも２つ以上のストリームデータのインデックス値を記憶するインデックスバッファ（４２）と、連続して受信した少なくとも２つ以上のストリームデータを記憶するデータバッファ（５２）と、前記インデックスバッファ（４２）に記憶されているインデックス値を比較して差分を検出する比較器（５４）とを有し、前記インデックスバッファ（４２）に記憶されている直近のインデックス値とその前に記憶されているインデックス値との差分が２以上であった場合、差分値に相当する数のダミーデータとして、前記データバッファ（５２）に記憶されているストリームデータのうち、連続して記憶されている２つのストリームデータのインデックス値の差分が１となるストリームデータであって最も直近に記憶されているストリームデータを、前記ＦＩＦＯメモリ（１２）に書き込むことを特徴とする請求項５記載のストリーム処理装置。
【請求項７】
ストリームデータは、データの順序を表すインデックス値を含んでおり、
前記同期回路（１３、２１、３１、３２、３３、４１、５１、６１）は、連続して受信した少なくとも２つ以上のストリームデータのインデックス値を記憶するインデックスバッファ（４２）を有し、受信したストリームデータのインデックス値とその直前に受信したストリームデータのインデックス値とが一致する場合には、今回受信したストリームデータの前記ＦＩＦＯメモリ（１２）への書き込みを規制することを特徴とする請求項１から６のいずれか一項記載のストリーム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続的に受信されるストリームデータを処理するストリーム処理装置に関する。
【背景技術】
【０００２】
従来、例えば音楽データや映像データ、あるいはセンサ等から出力されるデータなど、連続的に受信されるストリームデータを処理するストリーム処理装置がある。このようなストリーム処理装置は、ストリームデータを連続的に受信することから、受信したストリームデータを例えば先入れ先出し方式で記憶するＦＩＦＯメモリで構成されたバッファに一時的にストリームデータを記憶し、記憶されているストリームを読み出してデータ処理部で処理している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２３７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のチャンネルで受信したストリームデータを用いて処理する場合には、チャンネル間でストリームデータを受信するタイミングにずれが生じることがあり、処理対象となるストリームデータをデータ処理部で同期させる必要があった。その結果、データ処理部の負荷が大きくなったり、必要なメモリ容量が大きくなったりするという問題があった。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部の負荷や必要なメモリ容量を削減することができるストリーム処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した発明によれば、ストリーム処理装置は、ストリームデータを受信するチャンネルごとに設けられている複数のストリームバッファと、複数のストリームバッファから同じタイミングで読み出したストリームデータを用いてデータ処理を行うデータ処理部と、を備えている。そして、それぞれのストリームバッファは、受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯメモリと、ＦＩＦＯメモリへ受信したストリームデータを書き込むタイミングを調整することで各チャンネルのストリームデータを同期させる同期回路とによって構成されている。
【０００７】
これにより、データ処理部においては、各ストリームデータの同期させるソフトウェア的な同期処理を行う必要がない。そして、ソフトウェア的な同期処理を行う必要が無いことからデータ処理部の負荷が増大することはなく、また、同期処理のためのメモリ容量を確保する必要も無い。したがって、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部の負荷や必要なメモリ容量を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態によるストリーム処理装置を適用したデータ処理システムの構成を模式的に示す図
【図２】センサの検出点の例を模式的に示す図
【図３】ストリームデータに生じるずれを模式的に示す図
【図４】比較例としての従来型ストリーム処理装置の電気的構成を模式的に示す図
【図５】ストリーム処理装置の電気的構成を模式的に示す図
【図６】ストリームバッファの電気的構成を模式的に示す図
【図７】ストリームバッファの動作態様を模式的に示す図
【図８】他のチャンネルのストリームバッファの動作態様を模式的に示す図
【図９】ストリーム処理装置の動作態様を模式的に示す図
【図１０】第２実施形態によるストリームデータに生じるずれを模式的に示す図
【図１１】ストリームバッファの電気的構成を模式的に示す図
【図１２】ストリームバッファの動作態様を模式的に示す図
【図１３】ストリーム処理装置の動作態様を模式的に示す図
【図１４】第３実施形態によるストリームバッファの電気的構成を模式的に示す図
【図１５】第４実施形態におけるストリームバッファの動作態様を模式的に示す図
【図１６】トリームバッファの電気的構成を模式的に示す図
【図１７】第５実施形態におけるストリームバッファの動作態様を模式的に示す図
【図１８】トリームバッファの電気的構成を模式的に示す図
【図１９】第６実施形態におけるストリームバッファの動作態様を模式的に示す図
【図２０】トリームバッファの電気的構成を模式的に示す図
【発明を実施するための形態】
【０００９】
以下、本発明の複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に共通する部位には同一符号を付し、その詳細な説明は省略する。
（第１実施形態）
以下、第１実施形態について、図１から図９を参照しながら説明する。
【００１０】
図１に示すように、本実施形態のストリーム処理装置１は、センサユニット２から出力されるストリームデータを受信して処理する。このセンサユニット２は、複数個、例えば本実施形態では４個のセンサ２Ａ〜センサ２Ｄを備えており、各センサ２Ａ〜２Ｄからそれぞれストリームデータが出力される。以下、便宜的に、センサ２Ａから出力されるストリームデータをチャンネル０（ＣＨ［０］）のストリームデータと称し、同様に、センサ２Ｂ〜２Ｄから出力されるストリームデータをそれぞれチャンネル１〜３（ＣＨ［１］〜ＣＨ［３］）のストリームデータとも称して説明する。
【００１１】
各センサ２Ａ〜２Ｄは、本実施形態ではいわゆるレーザ距離計を想定しており、図２に示すように、センサユニット２を中心として矢印Ｒにて示す走査方向に向かって、３６０°の範囲を水平方向に走査する。そして、各センサ２Ａ〜２Ｄは、各測定点Ｐ０〜Ｐｋ（ｋは任意の整数）における対象物（図示省略）までの距離を計測し、その計測結果をストリームデータとして出力する。つまり、各センサ２Ａ〜２Ｄは、各測定点Ｐ０〜Ｐｋの計測結果を、時系列で順次出力する。なお、センサユニット２は、必ずしも３６０°の全周を計測する必要は無いし、計測される各測定点Ｐ０〜Ｐｋの数（ｋ）は、任意に設定することができる。
【００１２】
そして、ストリーム処理装置１は、各センサ２Ａ〜２Ｄから出力されるストリームデータ、つまり、本実施形態では各高さの計測結果にもとづいて、例えば障害物等の物体を検出するデータ処理を行う。
さて、ストリーム処理装置１は、各測定点Ｐ０〜Ｐｋにおける物体を検出する必要があることから、基本的には、同一の測定点に対する検出結果を用いてデータ処理を行うことになる。しかし、各センサ２Ａ〜２Ｄは、それぞれ異なる位置に設けられるため、設置時の取り付け誤差や、電源がオンされてからストリームデータを出力するまでの起動時間の個体差等により、各ストリームデータ間にずれが生じることがある。
【００１３】
具体的には、図３に示すように、例えばＣＨ［１］のストリームデータの「３」（測定点Ｐ３のデータを意味している）を便宜上の基準データとした場合、ＣＨ［０］のストリームデータは、基準データから２データ（２つの測定点）分のずれが生じている。また、ＣＨ［２］のストリームデータは、基準データから３データ（３つの測定点）分のずれが生じている。また、ＣＨ［４］のストリームデータは、基準データから１データ（１つの測定点）分のずれが生じているとともに、データそのものが時間ｔｄ分だけずれている。
【００１４】
このように、複数のチャンネルからストリームデータを受信する場合には、上記したような例えば３データ分のずれなどの計測位置のずれ（以下、便宜的に空間的なずれとも称する）や、時間ｔｄ分のずれ（以下、便宜的に時間的なずれとも称する）が生じることがある。
【００１５】
さて、図４に比較例として示すような従来型の装置（以下、便宜的に従来型ストリーム処理装置１００と称する）は、データ処理を行う従来型データ処理部１０１と、ストリームデータを一時的に記憶するＦＩＦＯメモリ（図４には、ＦＩＦＯ１０２と示す）を備えている。この従来型ストリーム処理装置１００では、ストリームデータは、受信されるごとに時系列で順次ＦＩＦＯ１０２に記憶される。なお、図４に示している四角系の枠で囲んだ０、１・・・５等の数値は、上記した測定点の位置（Ｐ０、Ｐ１、・・・Ｐ５等）に対応するデータであることを示している。
【００１６】
この場合、上記した時間的なずれはＦＩＦＯ１０２で吸収されるものの、従来型データ処理部１０１では、同じタイミングで受信した各チャンネルのストリームデータが例えば「１」、「３」、「０」、「２」であった場合、ＦＩＦＯ１０２から読み出したストリームデータも「１」、「３」、「０」、「２」になる。つまり、上記した空間的なずれは、ＦＩＦＯ１０２では吸収することができなかった、その結果、空間的なずれが生じているストリームデータを処理するためには、まず各ストリームデータを同期させるための同期処理をソフトウェア的に行う必要があり、その同期処理および同期処理のためにメモリ容量を必要とすることから、負荷やメモリ容量の増大を招いていた。そこで、本実施形態のストリーム処理装置１は、以下のようにして負荷および必要とするメモリ容量の低減を図っている。
【００１７】
本実施形態のストリーム処理装置１は、図５に示すように、データ処理部１０と、各チャンネルに対応して設けられている複数個（ｎ個）のストリームバッファ１１とを備えている。なお、ストリームバッファ１１の数は、任意に設定すればよい。
データ処理部１０は、図示しないＣＰＵ、ＲＯＭおよびＲＡＭ等を有するマイクロコンピュータで構成されており、ＲＯＭ等に記憶されているプログラムを実行することで、ストリーム処理装置１を制御する。
【００１８】
各ストリームバッファ１１は、受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯ１２（ＦＩＦＯメモリに相当する）と、受信したストリームデータをＦＩＦＯ１２へ書き込むタイミングを調整して各チャンネルのストリームデータを同期させる同期回路１３を備えている。
【００１９】
この同期回路１３は、図６に示すように、オフセットレジスタ１４、減算器１５、およびゲート回路１６を備えている。つまり、同期回路１３は、論理回路等のハードウェアで基本的に実現されているとともに、その動作がデータ処理部１０から独立して行われる構成となっている。
【００２０】
オフセットレジスタ１４は、他のチャンネルのストリームデータとのずれに相当するオフセット値が設定される。このオフセット値は、ストリーム処理装置１が設置される際の校正作業（キャリブレーション作業）時に設定される。具体的には、各センサ２Ａ〜２Ｄの検査する際に、その空間的なずれが測定され、そのずれを示す値がオフセット値として設定される。本実施形態では、あるチャンネルを基準とした場合において、他のチャンネルのストリームデータがどの程度遅れて受信されているかに基づいて、オフセット値が設定される。
【００２１】
このため、例えば図３に例示したような空間的なずれが測定された場合、ＣＨ［０］に対応するストリームバッファ１１のオフセットレジスタ１４には、オフセット値として２が設定される。同様に、ＣＨ［１］の場合にはオフセット値として０が設定され、ＣＨ［２］の場合にはオフセット値として３が設定され、ＣＨ［３］の場合にはオフセット値として１が設定される。なお、各オフセット値は、同期回路に記憶させる構成としてもよいし、ストリーム処理装置１が起動するごとにデータ処理部１０等から与える構成としてもよい。
【００２２】
減算器１５は、ストリームデータを受信するタイミングに合わせて、オフセットレジスタ１４に設定されたオフセット値を減算する。具体的には、例えばＣＨ［０］の場合、減算器１５は、オフセット値を２→１→０のように１ずつ減算する。なお、図示は省略するが、オフセットレジスタ１４にはストリームデータの周期に対応するクロック信号が入力されており、減算器１５による減算が有効化されている状態では、つまり、そのクロックに応じて減算が行われることになる。
【００２３】
ゲート回路１６は、オフセットレジスタ１４のオフセット値が予め定められている基準値（本実施形態では、０）と一致しない場合には、減算器１５によるオフセット値の減算を有効化するとともに、受信したストリームデータのＦＩＦＯ１２への書き込みを規制する。一方、ゲート回路１６は、オフセットレジスタ１４のオフセット値が基準値（０）と一致する場合には、減算器１５によるオフセット値の減算を無効化するとともに、受信したストリームデータのＦＩＦＯ１２への書き込みを許可する。この同期回路１３は、比較器１７と、２つのＡＮＤゲート１８、１９により構成されている。
【００２４】
次に、上記した構成の作用について、同期回路１３の詳細とともに説明する。
まず、本実施形態で対象とするストリームデータのデータ形式について説明する。ストリームデータは、データ本体（図６には、S_DATAと示す）と、データが存在することを示すデータ有効信号（図６には、S_ENと示す）とが受信される。データ有効信号は、Ｈレベルであるとき有効なデータが存在することを示し、Ｌレベルであるとき有効なデータが存在しないことを示す信号である。
【００２５】
受信されるストリームデータのうちデータ本体（S_DATA）は、ＦＩＦＯ１２のデータ入力（図６では、DATA_INと示す）に接続されている。また、データ有効信号（S_EN）は、ゲート回路１６のＡＮＤゲート１９の一方の入力端子に接続されている。
ＡＮＤゲート１９は、他方の入力端子が比較器１７に接続されている。この比較器１７は、オフセットレジスタ１４の現在のオフセット値と基準値（０）とを比較し、両者が一致する場合にはＨレベル、両者が一致しない場合にはＬレベルを出力する。一方、ＡＮＤゲート１９は、比較器１７の出力とデータ有効信号とがともにＨレベルであるとき、Ｈレベルを出力する。
【００２６】
このとき、ＦＩＦＯ１２は、書き込み許可信号（図６では、WR_ENと示す）がオンされると、つまり、ＡＮＤゲート１９の出力がＨレベルになると、書き込みが許可される。また、ＦＩＦＯ１２は、書き込み許可信号がオフされると、つまり、ＡＮＤゲート１９の出力がＬレベルになると、書き込みが規制される。このように、ＡＮＤゲート１９は、ＦＩＦＯ１２の書き込み許可信号をオン／オフすることで、ストリームデータのＦＩＦＯ１２への書き込みを制御している。
【００２７】
ゲート回路１６のもう一方のＡＮＤゲート１８は、データ有効信号（S_EN）と比較器１７の反転出力とが入力されている。このため、ＡＮＤゲート１８は、オフセットレジスタ１４の現在のオフセット値が基準値（０）と一致せず、且つ、データ有効信号（S_EN）がＨレベルのとき、Ｈレベルを出力する。このＡＮＤゲート１８の出力は、オフセットレジスタ１４の更新有効信号（図６ではENと示す）として機能する。このため、ＡＮＤゲート１８の出力がＨレベルのとき、オフセット値の更新が許可される。より具体的に言えば、オフセット値が０ではなく、且つ、ストリームデータを受信したタイミングで、減算器１５による減算が有効化され、オフセット値の更新が行われる。
【００２８】
一方、ＡＮＤゲート１８は、一旦オフセット値が０まで減算されると、それ以降は、ストリームデータの受信にかかわらずＬレベルを出力することになる。つまり、本実施形態においてオフセット値が減算されるのは、ストリームデータの受信が開始された当初の期間になる。
【００２９】
次に、このような同期回路１３を有するストリームバッファ１１の動作態様の詳細について説明する。なお、各チャンネルの同期回路１３は実質的に同様の動作を行うことから、ここでは、図７に示すようにＣＨ［０］を例にして詳細を説明する。
図７に示すストリームデータは、図３に示した４つのストリームデータのうちＣＨ［０］のストリームデータに対応しており、基準データ（ＣＨ［１］のストリームデータの「３」のデータ）に対して２データ分のずれが生じているものである。また、説明の簡略化のために、図７に示す時刻Ｔ１〜時刻Ｔ６までの間ではデータ処理部１０によるＦＩＦＯ１２からのデータの読み出しは行われていないものとする。
【００３０】
ＣＨ［０］のストリームデータを受信するストリームバッファ１１は、時刻Ｔ０において受信準備が完了し、オフセット値として空間的なずれを示す２が設定されたとする（図３参照）。なお、ＣＨ［０］のストリームデータの受信態様は、時刻Ｔ０より後の時刻Ｔ１において測定点Ｐ１のデータ（図７には１と示す）が受信され、時刻Ｔ２において測定点Ｐ２のデータ（図７には１と示す）が受信され、時刻Ｔ３において測定点Ｐ３のデータ（図７には２と示す）が受信され、時刻Ｔ４において測定点Ｐ４のデータ（図７には３と示す）が受信され、時刻Ｔ５において測定点Ｐ５のデータ（図７には４と示す）が受信され、時刻Ｔ６において測定点Ｐ６のデータ（図７には５と示す）が受信されるものとする。以下、測定点Ｐ１のデータを、便宜的に「１」のデータとも称する。
【００３１】
この場合、同期回路１３は、時刻Ｔ１において「１」のデータが受信されると、オフセット値（２）と基準値（０）とが一致しないことから、比較器１７の出力がＬレベルになり、ＡＮＤゲート１８の出力がＨレベルになることで、減算器１５による減算が有効化される。これにより、オフセットレジスタ１４に設定されているオフセット値が減算され、２→１に更新される。このとき、ＡＮＤゲート１９の出力はＬレベルであるので、ＦＩＦＯ１２への書き込みは規制される。つまり、時刻Ｔ１で受信した「１」のデータは、ＦＩＦＯ１２には書き込まれない。
【００３２】
次に、時刻Ｔ２において「２」のデータが受信されると、同期回路１３では、受信した時点におけるオフセット値（１）と基準値（０）とが一致しないことから、減算器１５による減算が有効化されてオフセット値が１→０に更新されるとともに、「２」のデータのＦＩＦＯ１２への書き込みが規制される。このため、時刻Ｔ２で受信した「２」のデータも、ＦＩＦＯ１２には書き込まれない。
【００３３】
さて、時刻Ｔ３において「３」のデータが受信されると、同期回路１３では、受信した時点におけるオフセット値（０）と基準値（０）とが一致することから、ＡＮＤゲート１８の出力がＬレベルになり、減算器１５による減算が無効化される。そのため、以降は、オフセット値の更新が行われなくなる。その一方、ＡＮＤゲート１９の出力はＨレベルになることから、ＦＩＦＯ１２への書き込みは許可される。このため、時刻Ｔ３で受信した「３」のデータは、ＦＩＦＯ１２に記憶されることになる。
【００３４】
そして、時刻Ｔ４〜時刻Ｔ６においても、同様にオフセット値（０）と基準値（０）とが一致することから、ＦＩＦＯ１２への書き込みが許可される。その結果、時刻Ｔ６におけるＦＩＦＯ１２の記憶態様としては、読み出し側（データ処理部１０側）の先頭つまり最も先に書き込まれ、且つ、最も先に読み出されるデータとして「３」のデータが記憶され、その次に「４」のデータ、「５」のデータ、「６」のデータが時系列で順次記憶されることになる。
【００３５】
これにより、ＦＩＦＯ１２に記憶された状態において各チャンネルの同期がとれ、データ処理部１０が同じタイミングで読み出したデータは、同じ測定点（図２参照）を示すデータになる。
このように、ストリームバッファ１１は、受信準備が完了すると、オフセット値（今回は２）に対応する数のデータ（「１」のデータと「２」のデータの２つ）がキャンセルされ、ＦＩＦＯ１２に最初に書き込まれるデータが「３」のデータ、つまりは、基準データと同じ測定点のデータになるように、ストリームデータを書き込むタイミングを調整して同期させている。
【００３６】
また、他のチャンネルのストリームバッファ１１も、同様である。具体的には、図８に示すように、ＣＨ［１］のストリームバッファ１１では、自身のチャンネルが基準データであることからオフセット値には０が設定され（図３参照）、時刻Ｔ０で受信準備が完了したとすると、最初に受信したデータ（図８では「３」のデータ）からＦＩＦＯ１２への書き込みが許可される。このため、ＦＩＦＯ１２には、「３」のデータが先頭に記憶され、続いて「４」のデータとなるように時系列で順次データが記憶される。
【００３７】
また、ＣＨ［２］のストリームバッファ１１では、オフセット値には３が設定されることから（図３参照）、最初に受信したデータ（「０」のデータ）から３データ分ずれた「３」のデータがＦＩＦＯ１２の先頭に記憶される。同様に、ＣＨ［３］のストリームバッファ１１では、オフセット値には１が設定されることから（図３参照）、最初に受信したデータ（「２」のデータ）から１データ分ずれた「１」のデータがＦＩＦＯ１２の先頭に記憶される。
【００３８】
このように、本実施形態のストリーム処理装置１では、図９に示したように受信準備が完了してから最初に受信したデータがＣＨ［０］では「１」のデータ、ＣＨ［１］では「３」のデータ、ＣＨ［２］では「０」のデータ、ＣＨ［３］では「２」のデータのように各チャンネルでずれが生じている場合であっても、各ストリームバッファ１１においてチャンネル間の同期がとられる。その結果、ＦＩＦＯ１２には空間的なずれが無いデータが記憶され、データ処理部１０は、同期処理を行わなくても、ずれの無いデータを用いてデータ処理を行うことができる。
【００３９】
以上説明した実施形態によれば、次のような効果を得ることができる。
ストリーム処理装置１は、ストリームデータを受信するチャンネルごとに設けられている複数のストリームバッファ１１と、複数のストリームバッファ１１から同じタイミングで読み出したストリームデータを用いてデータ処理を行うデータ処理部１０と、を備えている。そして、それぞれのストリームバッファ１１は、受信したストリームデータを先入れ先出し方式で記憶するＦＩＦＯ１２（ＦＩＦＯメモリ）と、ＦＩＦＯ１２へ受信したストリームデータを書き込むタイミングを調整することで各チャンネルのストリームデータを同期させる同期回路１３と、によって構成されている。
【００４０】
このため、データ処理部１０においては、各ストリームデータを同期させるためのソフトウェア的な同期処理を行う必要がない。そして、ソフトウェア的な同期処理を行う必要が無いことからデータ処理部１０の負荷が増大することはなく、また、同期処理のためのメモリ容量を確保する必要も無い。したがって、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。
【００４１】
また、本実施形態の場合、同期回路１３は、他のチャンネルのストリームデータとのずれに相当するオフセット値が設定されるオフセットレジスタ１４と、ストリームデータを受信するタイミングに合わせてオフセットレジスタ１４に設定されたオフセット値を減算する減算器１５と、オフセットレジスタ１４のオフセット値が予め定められている基準値と一致しない場合には、減算器１５によるオフセット値の減算を有効化するとともに受信したストリームデータのＦＩＦＯ１２への書き込みを規制する一方、オフセットレジスタ１４のオフセット値が基準値と一致する場合には、減算器１５によるオフセット値の減算を無効化するとともに受信したストリームデータのＦＩＦＯ１２への書き込みを許可するゲート回路１６と、により構成されている。
これにより、同期回路１３を簡単な構成で実現することができるとともに、データ処理部１０から独立して作動するハードウェアで実現していることから、処理やメモリ容量の増大を招くことがない。
【００４２】
（第２実施形態）
以下、第２実施形態について、図１０から図１５を参照しながら説明する。
第１実施形態の場合、基準データに対して他のチャンネルのストリームデータがどの程度遅れて受信されるのかに基づいてオフセット値が設定した。これに対して、本実施形態の場合、基準データに対して他のチャンネルのストリームデータがどの程度進んで受信されるかに基づいてオフセット値を設定する。
【００４３】
図１０に示すように、本実施形態では、ＣＨ［２］のストリームデータを基準データとして採用する。なお、この図１０に示す受信態様は、第１実施形態の受信態様（図３参照）と同一の態様になっている。
この図１０においてＣＨ［２］の「３」のデータを基準データとした場合、ＣＨ［０］の「３」のデータは、基準データよりも１データ分進んで受信されている。同様に、ＣＨ［１］の「３」のデータは、基準データよりも３データ分進んで受信されており、ＣＨ［３］の「３」のデータは、基準データよりも２データ分進んで受信されている。
【００４４】
このため、図４に示したような従来型ストリーム処理装置１００の場合には、時刻Ｔ１０で受信準備が完了したとすると、ＦＩＦＯ１２には、読み出し側の先頭では各チャンネルのデータが「１」、「３」、「０」、「２」のようにずれが生じることになる。
そこで、本実施形態では、基準データよりも進んで受信されるデータの数をオフセット値に設定することでチャンネル間を同期させるとともに、同期がとれていない期間をダミーデータで補填する。
【００４５】
図１１に示すように、本実施形態のストリームバッファ２０は、同期回路２１を備えている。この同期回路２１は、オフセットレジスタ１４、加算器２２、ゲート回路２３、およびダミーデータバッファ２４を備えている。つまり、同期回路２１は、論理回路等のハードウェアで基本的に実現されているとともに、その動作がデータ処理部１０から独立して行われる構成となっている。
【００４６】
オフセットレジスタ１４は、他のチャンネルのストリームデータとのずれに相当するオフセット値が、例えばキャリブレーション作業時等に設定される。オフセット値は、基準データに対するずれを示す値であり、図１０に示した受信態様の場合、ＣＨ［０］のオフセット値には−１、ＣＨ［１］のオフセット値には−３、ＣＨ［２］のオフセット値には０、ＣＨ［３］のオフセット値には−２がそれぞれ設定されることになる。
【００４７】
加算器２２は、オフセットレジスタ１４に設定されたオフセット値を加算する。具体的には、例えばＣＨ［０］の場合、オフセット値を−１→０のように１ずつ加算する。
ゲート回路２３は、オフセットレジスタ１４のオフセット値が予め定められている基準値（本実施形態では０）と一致しない場合には、加算器２２によるオフセット値の加算を有効化するとともに、ＦＩＦＯ１２に書き込むデータをダミーデータバッファ２４に記憶されているダミーデータに切り替える一方、オフセットレジスタ１４のオフセット値が基準値と一致する場合には、加算器２２によるオフセット値の加算を無効化するとともに、ＦＩＦＯ１２に書き込むデータをストリームデータに切り替える。この同期回路２１は、比較器１７、セレクタ２５、ＯＲゲート２６およびＮＯＴゲート２７により構成されている。
【００４８】
ダミーデータバッファ２４は、各チャンネルの同期がとれていない期間においてストリームデータの代わりにＦＩＦＯ１２に書き込まれるダミーデータ（値＝Ｘ）を記憶している。なお、本実施形態では、１種類のダミーデータが記憶されている。このダミーデータバッファ２４は、不揮発性の記憶手段で構成してもよいが、揮発性の記憶手段で構成して、起動時等にデータ処理部１０等からダミーデータを設定するようにしてもよい。また、ダミーデータの値（Ｘ）は、ダミーデータであることを識別可能な値に設定するとよい。
【００４９】
次に、上記した構成の作用について、同期回路２１の詳細とともに説明する。
受信したストリームデータのデータ本体（S_DATA）は、セレクタ２５のＨ入力側（図１１にはＨと示す）に接続されている。このセレクタ２５のＬ入力側には、ダミーデータバッファ２４が接続されている。そして、セレクタ２５の出力は、ＦＩＦＯ１２のデータ入力（DATA_IN）に接続されている。このセレクタ２５は、比較器１７によって切り替えられる。
【００５０】
比較器１７は、オフセットレジスタ１４のオフセット値が基準値（本実施形態では０）と一致する場合にはＨレベルを出力する一方、オフセット値が基準値と一致しない場合にはＬレベルを出力する。このため、ＦＩＦＯ１２に書き込まれるデータは、オフセット値が基準値と一致するか否かによって、ストリームデータまたはダミーデータのいずれかに切り替えられる。
【００５１】
このとき、ＦＩＦＯ１２の書き込み許可信号（WR_EN）はＯＲゲート２６によって生成される。このＯＲゲート２６は、データ有効信号（S_EN）と比較器１７の反転出力とが入力されているため、ダミーデータ側に切り替えられている場合であっても、つまり、比較器１７がＬレベルを出力している場合であっても、データ有効信号（S_EN）がＨレベルになればＦＩＦＯ１２への書き込みが許可される。
【００５２】
また、ダミーデータ側に切り替えられている場合には、つまり、比較器１７がＬレベルを出力してＮＯＴゲート２７からはＨレベルが出力されている場合には、オフセットレジスタ１４の更新有効信号（EN）がＨレベルであることから、加算器２２によるオフセット値の更新が有効化される。
次に、このような同期回路２１を有するストリームバッファ２０の動作態様の詳細について、図１２を参照しながら説明する。なお、各チャンネルの同期回路２１は実質的に同様の動作を行うことから、ここでは、ＣＨ［０］を例にして説明する。
【００５３】
図１２に示すストリームデータは、図１０に示した４つのストリームデータのうちＣＨ［０］のストリームデータに対応しており、基準データ（ＣＨ［２］のストリームデータの「３」のデータ）に対して１データ分のずれが生じているものである。なお、説明の簡略化のために、図１２に示す時刻Ｔ１０〜時刻Ｔ１６までの間ではデータ処理部１０によるＦＩＦＯ１２からのデータの読み出しは行われていないものとする。
【００５４】
ＣＨ［０］のストリームデータを受信するストリームバッファ１１は、時刻Ｔ１０において受信準備が完了すると、基準データよりも１データ分進んでデータが受信されることから、オフセット値として空間的なずれを示す−１が設定される。なお、ＣＨ［０］でのストリームデータの受信態様は、時刻Ｔ１０より後の時刻Ｔ１１において「１」のデータが受信され、時刻Ｔ１２において「２」のデータが受信され、時刻Ｔ１３において「３」のデータが受信され、時刻Ｔ１４において「４」のデータが受信され、時刻Ｔ１５において「５」のデータが受信され、時刻Ｔ１６において「６」のデータが受信されるものとする。
【００５５】
同期回路２１の動作態様としては、オフセット値が設定されると、設定されたオフセット値（−１）と基準値（０）とが一致しないことから、比較器１７の出力がＬレベルになり、ＮＯＴゲート２７の出力がＨレベルになって加算器２２による加算が有効化される。このとき、比較器１７の出力は反転されてＯＲゲート２６に入力されることから、ＦＩＦＯ１２の書き込み有効信号（WR_EN）はＨレベルになる。つまり、同期回路２１は、ダミーデータの書き込みを許可する。また、このとき、同期回路２１は、セレクタ２５がダミーデータ側になっていることから、ＦＩＦＯ１２には、ダミーデータ（Ｘ）が書き込まれる。
【００５６】
そして、同期回路２１は、オフセット値が基準値になるまで、オフセット値の加算およびダミーデータの書き込みを繰り返す。このとき、オフセット値が加算（更新）されるごとに、ダミーデータが書き込まれる。なお、ＣＨ［０］の場合、最初に設定されたオフセット値が−１であることから、同期回路２１は、１つのダミーデータをＦＩＦＯ１２に書き込むことになる。また、同期回路２１は、オフセット値が基準値になると以降は加算が無効化されることから、それ以上のダミーデータの書き込みは行わない。
【００５７】
その後、時刻Ｔ１１において「１」のデータが受信されると、同期回路２１は、オフセット値が既に基準値になっていることから、セレクタ２５が受信したストリームデータ側になっており、ストリームデータがＦＩＦＯ１２に書き込まれることになる。同様に、時刻Ｔ１２〜Ｔ１６においてそれぞれデータが受信されると、同期回路１３は、オフセット値が基準値であることから、それぞれの時刻でＦＩＦＯ１２への書き込みを許可する。
【００５８】
その結果、例えば時刻Ｔ１６におけるＦＩＦＯ１２の記憶態様としては、読み出し側の先頭から順にダミーデータ（Ｘ）、「１」のデータ、「２」のデータ、「３」のデータ、「４」のデータ、「５」のデータ、「６」のデータのように、ダミーデータと時系列で受信したデータが記憶される。
【００５９】
同様に、オフセット値として−３が設定されたＣＨ［１］の場合、ＦＩＦＯ１２に３つのダミーデータ（Ｘ）が記憶された後、時刻Ｔ１１で受信した「３」のデータ（図１０参照）から順に時系列でストリームデータが記憶される。また、オフセット値として０が設定されたＣＨ［２］の場合、ダミーデータは記憶されず、時刻Ｔ１１に受信した「０」のデータから順に時系列でストリームデータが記憶され、オフセット値として−２が設定されたＣＨ［３］の場合、ＦＩＦＯ１２に２つのダミーデータ（Ｘ）が記憶された後、時刻Ｔ１１に受信した「２」のデータから順に時系列でストリームデータが記憶される。
【００６０】
これにより、図１３に示すように、ＦＩＦＯ１２に記憶された状態において各チャンネルを同期させることができ、データ処理部１０が同じタイミングで読み出すデータは、同じ測定点（図２参照）を示すデータになる。
このように、本実施形態では、図１０に示したように受信準備が完了してから最初に受信したデータがＣＨ［０］では「１」のデータ、ＣＨ［１］では「３」のデータ、ＣＨ［２］では「０」のデータ、ＣＨ［３］では「２」のデータのように各チャンネルでずれが生じている場合であっても、ＦＩＦＯ１２に記憶した時点でチャンネル間を同期させることができる。このため、データ処理部１０において各チャンネルを同期させるための同期処理を行う必要はない。
【００６１】
以上説明した実施形態によれば次のような効果を得ることができる。
ストリーム処理装置１は、ストリームバッファ２０により各チャンネル間を同期させることができるため、ＦＩＦＯ１２には空間的なずれが無いデータが記憶され、データ処理部１０は、同期処理を行わなくても、ずれの無いデータを用いてデータ処理を行うことができる。したがって、上記した第１実施形態と同様に、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。
【００６２】
また、本実施形態のストリーム処理装置１の同期回路２１は、オフセットレジスタ１４と、オフセットレジスタ１４に設定されたオフセット値を加算する加算器２２と、ダミーデータを記憶するダミーデータバッファ２４と、オフセットレジスタ１４のオフセット値が予め定められている基準値と一致しない場合には、加算器２２によるオフセット値の加算を有効化するとともに、ＦＩＦＯ１２に書き込むデータをダミーデータバッファ２４に記憶されているダミーデータに切り替える一方、オフセットレジスタ１４のオフセット値が基準値と一致する場合には、加算器２２によるオフセット値の加算を無効化するとともに、ＦＩＦＯ１２に書き込むデータを受信したストリームデータに切り替えるゲート回路２３とを備えている。
【００６３】
これにより、同期回路２１を簡単な構成で実現することができるとともに、データ処理部１０から独立して作動するハードウェアで実現していることから、処理やメモリ容量の増大を招くことがない。
【００６４】
（第３実施形態）
以下、第３実施形態について、図１４を参照しながら説明する。第３実施形態では、実質的に、第１実施形態と第２実施形態とを組み合わせた構成となっている。
図１４に示すように、本実施形態のストリーム処理装置１のストリームバッファ３０の同期回路３１は、オフセットレジスタ１４、ダウンカウンタ型同期回路３２、アップカウンタ型同期回路３３、セレクタ３４、および比較器３５を備えている。
【００６５】
ダウンカウンタ型同期回路３２は、実質的に第１実施形態の同期回路１３に相当するものであり、最初に設定されたオフセット値を減算し、当該オフセット値に応じてＦＩＦＯ１２への書き込みを制御することで、各チャンネルを同期させるものである。つまり、ダウンカウンタ型同期回路３２は、オフセット値分の要素を削除する要素を削除することで各チャンネルを同期させる要素削除型の構成になっている。本実施形態の場合、削除する要素としては、後述するように受信したストリームデータである。
【００６６】
一方、アップカウンタ型同期回路３３は、実質的に第２実施形態の同期回路２１に相当するものであり、最初に設定されたオフセット値を加算し、当該オフセット値に応じてＦＩＦＯ１２への書き込みを制御することで、各チャンネルを同期させるものである。つまり、アップカウンタ型同期回路３３は、オフセット値分の要素を追加する要素を削除することで各チャンネルを同期させる要素追加型の構成になっている。本実施形態の場合、挿入する要素としては、後述するようにダミーデータである。なお、後述する第５実施形態では、挿入する要素として受信したストリームデータデータを採用している。
【００６７】
同期回路３１は、オフセット値を比較する比較器３５からの出力に応じて切り替わるセレクタ３４によって、ダウンカウンタ型同期回路３２およびアップカウンタ型同期回路３３のいずれを同期に用いるかを切り替える。換言すると、同期回路３１は、最初に設定したオフセット値の正負に応じて、ＦＩＦＯ１２へストリームデータを書き込む際の経路を、ダウンカウンタ型同期回路３２またはアップカウンタ型同期回路３３のいずれに切り替える。
【００６８】
セレクタ３４を切り替える比較器３５は、オフセットレジスタ１４のオフセット値と０とを比較し、オフセット値が０より小さければＬレベルを出力し、オフセット値が０以上であればＨレベルを出力する。そして、セレクタ３４は、比較器３５がＬレベルを出力した場合には、つまり、最初に設定されたオフセット値が負の値である場合には、用いる回路をアップカウンタ型同期回路３３側に切り替える。一方、セレクタ３４は、比較器３５がＨレベルを出力した場合には、つまり、最初に設定されたオフセット値が正の値である場合には、用いる回路をダウンカウンタ型同期回路３２側に切り替える。
【００６９】
このため、負のオフセット値が設定された場合には、上記した第２実施形態と同様に、オフセット値が基準値（本実施形態では０）になるまで、オフセット値の加算およびＦＩＦＯ１２へのダミーデータの書き込みが行われる一方、オフセット値が基準値になると、ストリームデータがＦＩＦＯ１２へ書き込まれるようになる。これにより、上記した図１２や図１３に示したような態様で、ダミーデータおよびストリームデータがＦＩＦＯ１２に記憶されて、各チャンネル間を同期させることができる。
【００７０】
これに対して、正のオフセット値が設定された場合には、上記した第１実施形態と同様に、オフセット値が基準値（本実施形態では０）になるまで、オフセット値の減算およびＦＩＦＯ１２への書き込みが規制される一方、オフセット値が基準値になると、ＦＩＦＯ１２への書き込みが許可される。これにより、上記した図７〜９に示したような態様で、ストリームデータがＦＩＦＯ１２に記憶されて、各チャンネル間を同期させることができる。
【００７１】
このように、本実施形態の構成であっても、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。また、上記した第１実施形態および第２実施形態と同様に、同期回路３１を簡単な構成で実現することができるとともに、データ処理部１０から独立して作動するハードウェアで実現していることから、処理やメモリ容量の増大を招くことがない。
また、本実施形態のようにダウンカウンタ型同期回路３２とアップカウンタ型同期回路３３とを設け、オフセット値の正負におうじて自動的に用いる回路を切り替えることにより、汎用性を向上させることができる。
【００７２】
（第４実施形態）
以下、第４実施形態について、図１５および図１６を参照しながら説明する。なお、本実施形態は、上記した第２実施形態を拡張した構成となっている。
【００７３】
まず、ストリームデータの受信態様について説明する。本実施形態の場合、ストリームデータには、データの順序を表すインデックス値（以下、ＩＮＤＥＸ値と称する）が付された状態で受信される。そのため、ストリームデータを受信すれば、時系列的に正しく送信されているか否かを把握することができる。なお、ＩＮＤＥＸ値は、例えば時刻を示す値（時間的な位置を示す値）や通し番号、あるいは図１に示した測定点（空間的な位置を示す値）などを採用することができる。本実施形態では、測定点をＩＮＤＥＸ値として採用している。
【００７４】
さて、図１５に示すように、時刻Ｔ３０において「１」のデータ（ＩＮＤＥＸ値＝１のデータ）が受信され、時刻Ｔ３１において「２」のデータ（ＩＮＤＥＸ値＝２のデータ）が受信され、時刻Ｔ３２において「３」のデータ（ＩＮＤＥＸ値＝３のデータ）が受信され、時刻Ｔ３３において「５」のデータ（ＩＮＤＥＸ値＝５のデータ）が受信され、時刻Ｔ３４において「６」のデータ（ＩＮＤＥＸ値＝６のデータ）が受信され、時刻Ｔ３５において「７」のデータ（ＩＮＤＥＸ値＝７のデータ）が受信されるとする。
【００７５】
つまり、この受信態様では、受信経路の障害やノイズあるいは出力側（例えばセンサユニット２側）の故障等のなんらかの要因によって、ＩＮＤＥＸ値＝４のデータが無い状態でストリームデータが受信されることになる。
この場合、上記した第２実施形態等のように最初に各チャンネルを同期させたとしても、動作中に同期がとれなくなる要因（ＩＮＤＥＸ値＝４のデータの欠落）が生じていることから、受信したストリームデータをそのままＦＩＦＯ１２に書き込むと、他のチャンネルとの同期がとれなくなる。そこで、本実施形態では、データの欠落等によりＩＮＤＥＸ値が不連続となる状況が発生した場合には、以下のようにして各チャンネルの同期をとっている。
【００７６】
図１６に示すように、本実施形態のストリーム処理装置１のストリームバッファ４０は、同期回路４１とＦＩＦＯ１２とを備えている。この同期回路４１は、実質的に第２実施形態の同期回路２１と同様の構成（以下、便宜的に書き込み制御ブロックとも称する）に加えて、インデックスバッファ４２（４２ａ、４２ｂ）、および演算器４３を備えている。
【００７７】
インデックスバッファ４２は、連続して受信した少なくとも２つ以上のストリームデータのインデックス値を記憶する。本実施形態の場合、受信したストリームデータのＩＮＤＥＸ値は、一方のインデックスバッファ４２ａに書き込まれ、その際、インデックスバッファ４２ａに書き込まれていた前回のＩＮＤＥＸ値は、インデックスバッファ４２ｂに書き込まれる。このため、インデックスバッファ４２ａとインデックスバッファ４２ｂに書き込まれているＩＮＤＥＸ値を比較することにより、ＩＮＤＥＸ値が連続しているか否かを判定することができる。
【００７８】
演算器４３は、直近の２つのストリームデータのＩＮＤＥＸ値を記憶しているインデックスバッファ４２（４２ａ、４２ｂ）のＩＮＤＥＸ値に基づいて、オフセットレジスタ１４に設定するオフセット値を演算する。本実施形態の場合、演算器４３は、インデックスバッファ４２ａに書き込まれているＩＮＤＥＸ値（以下、便宜的にＮ番目のＩＮＤＥＸ値と称する）と、インデックスバッファ４２ｂに書き込まれているＩＮＤＥＸ値（以下、便宜的にＮ−１番目のＩＮＤＥＸ値と称する）とに基づいて、それらの差分値＋１の値を、オフセット値として演算する。
【００７９】
具体的には、演算器４３は、例えばＮ番目のＩＮＤＥＸ値が「５」であり、Ｎ−１番目のＩＮＤＥＸ値が「４」であった場合、４−５＋１＝０をオフセット値として演算する。また、演算器４３は、後述するようにＮ番目のＩＮＤＥＸ値が「５」であり、Ｎ−１番目のＩＮＤＥＸ値が「３」であった場合には、３−５＋１＝−１をオフセット値として演算する。そして、同期回路４１は、演算器４３で演算したオフセット値をオフセットレジスタ１４に設定する。
【００８０】
次に上記した構成の作用について説明する。
図１５に示すように、時刻Ｔ３０において「１」のデータを受信し、時刻Ｔ３１において「２」のデータを受信した場合、演算器４３により演算されるオフセット値は０−１＋１＝０となる。この場合、同期回路４１の動作態様は、オフセット値が基準値（本実施形態では０）と一致することから、書き込み制御ブロックにおいて受信したストリームデータのＦＩＦＯ１２への書き込みが許可される。また、時刻Ｔ３２において「３」のデータを受信した場合も、演算されるオフセット値が０になることから、受信したストリームデータがＦＩＦＯ１２に書き込まれることになる。
【００８１】
さて、時刻Ｔ３３において「５」のデータを受信した場合、オフセット値は、３−５＋１＝−１として演算される。そして、−１のオフセット値がオフセットレジスタ１４に設定されることで、上記した第２実施形態と同様に、セレクタ２５によってＦＩＦＯ１２のデータ入力がダミーデータバッファ２４側に切り替えられ、ファミーデータ（Ｘ）がＦＩＦＯ１２に書き込まれる。このとき、オフセット値が加算されて０になる。このため、受信した「５」のデータが引き続いてＦＩＦＯ１２に書き込まれる。
【００８２】
その後、時刻Ｔ３４において「６」のデータを受信した場合は、演算されるオフセット値が０になることから、受信したストリームデータがＦＩＦＯ１２に書き込まれる。また、時刻Ｔ３５において「７」のデータを受信した場合も、演算されるオフセット値が０になることから、受信したストリームデータがＦＩＦＯ１２に書き込まれる。
【００８３】
このような同期回路４１の動作によって、例えば時刻Ｔ３５の時点では、ＦＩＦＯ１２の記憶態様は、読み出し側の先頭から順に「１」のデータ、「２」のデータ、「３」のデータ、ダミーデータ、「５」のデータ、「６」のデータ、「７」のデータが記憶されることになる。つまり、例えば「４」のデータが欠落している場合であれば、その欠落は、ダミーデータによって補填される。
【００８４】
これにより、データが欠落したチャンネルと他のチャンネルとの間にずれが生じることが防止される。すなわち、各チャンネル間を同期させることができる。なお、図１５ではＣＨ［０］を例示しているが、他のチャンネルについても同様である。
このように、本実施形態の構成であっても、上記した第２実施形態等と同様に、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。
【００８５】
また、本実施形態の場合、ＩＮＤＥＸ値に基づいてデータの欠落を検出し、データが欠落した場合には、欠落したデータ分のダミーデータをＦＩＦＯ１２に記憶させている。これにより、連続的にストリームデータを受信している動作中においても、各チャンネル間でデータにずれが生じることが防止され、各チャンネル間を同期させることができる。
【００８６】
（第５実施形態）
以下、第５実施形態について、図１７および図１８を参照しながら説明する。なお、本実施形態は、上記した第４実施形態を拡張した構成となっているため、重複する部分の詳細な説明は省略する。
【００８７】
本実施形態のストリームデータの受信態様は、図１７に示すように実質的に第４実施形態と同様のものであり、時刻Ｔ４０において「１」のデータが受信され、時刻Ｔ４１において「２」のデータが受信され、時刻Ｔ４２において「３」のデータが受信され、時刻Ｔ４３において「５」のデータが受信され、時刻Ｔ４４において「６」のデータが受信され、時刻Ｔ４５において「７」のデータが受信されるものとする。また、ストリームデータにはＩＮＤＥＸ値が付されているものとする。また、本実施形態では、測定点がＩＮＤＥＸ値として付されている。
【００８８】
この場合、「４」のデータが欠落していることになるが、「３」のデータは「４」のデータの近傍の測定結果（図２参照）であることから、「３」のデータと「４」のデータとは概ね近似したデータになるものと推測される。なお、データが近似するか否かはストリームデータの種類によっても異なるが、例えば温度センサ等から出力されるデータであれば、概ね近似すると考えられる。
【００８９】
さて、上記した第２実施形態等のように最初に各チャンネルを同期させたとしても、動作中に同期がとれなくなる要因（ＩＮＤＥＸ値＝４のデータの欠落）が生じていることから、受信したストリームデータをそのままＦＩＦＯ１２に書き込むと、他のチャンネルとの同期がとれなくなる。つまり、本実施形態でいえば、異なる測定点のデータが、同一測定点のデータとしてデータ処理されてしまう。
【００９０】
そこで、本実施形態では、データの欠落等によりＩＮＤＥＸ値が不連続となる状況が発生した場合には、以下のようにして各チャンネルを同期させている。より詳細には、連続して受信した少なくとも２つ以上のストリームデータのインデックス値の差分値が２以上である場合、差分値に相当する要素を挿入することで、各チャンネルのストリームデータを同期させている。本実施形態では、要素として、受信したストリームデータを採用している。
【００９１】
図１７に示すように、本実施形態のストリーム処理装置１のストリームバッファ５０は、同期回路５１とＦＩＦＯ１２とを備えている。この同期回路５１は、実質的に第４実施形態の同期回路４１と同様の構成（以下、便宜的に書き込み制御ブロックと称する）に加えて、２つのデータバッファ５２（５２ａ、５２ｂ）、セレクタ５３、および比較器５４を備えている。
【００９２】
データバッファ５２は、連続して受信した少なくとも２つ以上のストリームデータを記憶する。本実施形態の場合、受信したストリームデータは、一方のデータバッファ５２ａに書き込まれ、その際、データバッファ５２ａに書き込まれていた前回のデータは、データバッファ５２ｂに書き込まれる。このため、データバッファ５２ａとデータバッファ５２ｂには、連続して受信された２つのデータが記憶されることになる。以下、データバッファ５２ａに書き込まれているデータを便宜的にＤ［Ｎ］とも称し、データバッファ５２ｂに書き込まれているデータを便宜的にＤ［Ｎ−１］とも称する。
【００９３】
セレクタ５３は、ＦＩＦＯ１２のデータ入力を、書き込み制御ブロック側とデータバッファ５２側とに切り替える。この切り替えは、比較器５４により行われる。この比較器５４は、インデックスバッファ４２ａ、４２ｂのＩＮＤＥＸ値を比較し、ＩＮＤＥＸ値の差が２以上である場合に、データバッファ５２側に切り替える。
【００９４】
次に上記した構成の作用について説明する。
図１７に示すように、本実施形態のストリームデータの受信態様は、上記した第４実施形態と同一である。そのため、詳細な説明は省略するが、時刻Ｔ４０から時刻Ｔ４２の期間では演算器４３によって演算されるオフセット値が０になるので、ＦＩＦＯ１２には受信したストリームデータが書き込まれる。
【００９５】
さて、時刻Ｔ４３において「５」のデータを受信した場合、オフセット値は、３−５＋１＝−１として演算されるため、セレクタ２５によって経路がダミーデータバッファ２４側に切り替えられる。
【００９６】
ただし、ＩＮＤＥＸ値の差分が２以上であるので、つまり、欠落したデータが存在するので、セレクタ５３により、ＦＩＦＯ１２のデータ入力は、データバッファ５２側に切り替えられる。この時刻Ｔ４３の時点では、データバッファ５２ａには時刻Ｔ４３に受信した「５」のデータが記憶され、データバッファ５２ｂには時刻Ｔ４２に受信した「３」のデータが記憶されている。このため、ＦＩＦＯ１２には、データバッファ５２ｂに記憶されている「３」のデータが書き込まれる。そして、「３」のデータが書き込まれた時点でオフセット値が０になることから、受信した「５」のデータが続いてＦＩＦＯ１２に書き込まれる。
【００９７】
その後、時刻Ｔ４４や時刻Ｔ４５においては、演算されるオフセット値が０であり、ＩＮＤＥＸ値の差分も１であることから、受信した「６」のデータや「７」のデータがそのままＦＩＦＯ１２に書き込まれる。
このような同期回路５１の動作によって、例えば時刻Ｔ４５の時点では、ＦＩＦＯ１２の記憶態様は、読み出し側の先頭から順に「１」のデータ、「２」のデータ、「３」のデータ、「３」のデータ、「５」のデータ、「６」のデータ、「７」のデータが記憶されることになる。つまり、例えば「４」のデータが欠落している場合であれば、その欠落は、直近に受信し、ＩＮＤＥＸの差分が１となっている「３」のデータにより補填される。
【００９８】
これにより、データが欠落したチャンネルと他のチャンネルとの間にずれが生じることが防止される。すなわち、各チャンネル間を同期させることができる。なお、図１７ではＣＨ［０］を例示しているが、他のチャンネルについても同様である。
このように、本実施形態の構成であっても、上記した第４実施形態等と同様に、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。また、ＩＮＤＥＸ値に基づいてデータの欠落を検出しているので、連続的にストリームデータを受信している動作中においても、各チャンネル間でデータにずれが生じることが防止される。
そして、本実施形態の場合、例えば「４」のデータが欠落した場合にはそれに近似すると推測される「３」のデータで補填するので、ストリームデータの種類によっては、そのままデータ処理に用いることができる。
【００９９】
（第６実施形態）
以下、第６実施形態について、図１９および図２０を参照しながら説明する。なお、以下では上記した第１実施形態のようなダウンカウンタ型の同期回路と組み合わせた例を示すが、第２〜第５実施形態のようなアップカウンタ型の同期回路と組み合わせてもよい。
【０１００】
図１９に示すように、本実施形態のストリームデータの受信態様は、時刻Ｔ５０において「１」のデータが受信され、時刻Ｔ５１において「２」のデータが受信され、時刻Ｔ５２において「３」のデータが受信され、時刻Ｔ５４において「４」のデータが受信され、時刻Ｔ５４において再度「４」のデータが受信され、時刻Ｔ５５において「５」のデータが受信され、時刻Ｔ５６において「６」のデータが受信されるものとする。また、ストリームデータにはＩＮＤＥＸ値が付されているものとする。また、本実施形態では、測定点がＩＮＤＥＸ値として付されている。
【０１０１】
この場合、「４」のデータを重複して受信していることから、そのままＦＩＦＯ１２に書き込むと、他のチャンネルとの同期がとれなくなる。つまり、本実施形態でいえば、異なる測定点のデータが、同一測定点のデータとしてデータ処理されてしまう。
そこで、本実施形態では、データの重複によりＩＮＤＥＸ値が不連続となる状況が発生した場合には、以下のようにして各チャンネルを同期させている。
図２０に示すように、本実施形態のストリーム処理装置１のストリームバッファ６０は、同期回路６１とＦＩＦＯ１２とを備えている。この同期回路５１は、実質的に第１実施形態のダウンカウンタ型の同期回路１３と同様の構成（以下、便宜的に書き込み制御ブロックと称する）に加えて、２つのインデックスバッファ４２（４２ａ、４２ｂ）、比較器６２、ＡＮＤゲート６３を備えている。
【０１０２】
インデックスバッファ４２は、実質的に第３実施形態と同一の作動をするものであり、連続して受信した少なくとも２つ以上のストリームデータのインデックス値を記憶する。また、受信したストリームデータのＩＮＤＥＸ値は、一方のインデックスバッファ４２ａに書き込まれ、その際、インデックスバッファ４２ａに書き込まれていた前回のＩＮＤＥＸ値は、インデックスバッファ４２ｂに書き込まれる。
比較器６２は、インデックスバッファ４２ａに書き込まれているＩＮＤＥＸ値とインデックスバッファ４２ｂに書き込まれているＩＮＤＥＸ値とを比較し、両者が一致する場合にはＨレベルを出力する一方、両者が一致しない場合にはＬレベルを出力する。
【０１０３】
この比較器６２の出力は、反転されてＡＮＤゲート６３に入力されている。また、ＡＮＤゲート６３には、書き込み制御ブロックのＡＮＤゲート１９の出力が入力される。なお、ＡＮＤゲート１９の出力は、第１実施形態で説明しているので詳細は省略するが、オフセット値が基準値（本実施形態では０）と一致すればデータ有効信号（S_EN）に応じてＨレベルになり、オフセット値と基準値とが一致しなければデータ有効信号（S_EN）が入力されてもＬレベルになる。このＡＮＤゲート６３の出力は、ＦＩＦＯ１２の書き込み許可信号（WR_EN）に接続されている。
【０１０４】
そのため、同期回路６１では、インデックスバッファ４２ａ、４２ｂに同一のＩＮＤＥＸ値が記憶されている場合には、ＦＩＦＯ１２の書き込み許可信号（WR_EN）がＬレベルとなり、ＦＩＦＯ１２への書き込みが規制される。
次に上記した構成の作用について説明する。
同期回路６１は、図１９に示す受信態様の場合、時刻Ｔ５０〜時刻Ｔ５３の期間では、連続して受信したストリームデータのＩＮＤＥＸ値（本実施形態では、測定点）が同一ではないので、受信したストリームデータがＦＩＦＯ１２に書き込まれることになる。
【０１０５】
これに対して、同期回路６１は、時刻Ｔ５４において「４」のデータを受信した場合、その前の時刻Ｔ５３においもて同一のＩＮＤＥＸ値となる「４」のデータを受信していることから、時刻Ｔ５４で受信した「４」のデータの書き込みを規制する。
その後、同期回路６１は、時刻Ｔ５５において「５」のデータを受信すると、ＩＮＤＥＸ値が同一でないことから、ＦＩＦＯ１２への書き込みを許可する。また、時刻Ｔ５６において「６」のデータを受信した場合も、ＩＮＤＥＸ値が同一でないことから、ＦＩＦＯ１２への書き込みが許可される。
【０１０６】
このような同期回路６１の動作によって、例えば時刻Ｔ５６の時点では、ＦＩＦＯ１２の記憶態様は、読み出し側の先頭から順に「１」のデータ、「２」のデータ、「３」のデータ、「４」のデータ、「５」のデータ、「６」のデータが記憶されることになる。つまり、例えば「４」のデータが重複していた場合には、重複したデータの書き込みが規制され、そのデータはキャンセル（破棄）される。
【０１０７】
これにより、データが重複するような場合において他のチャンネルとの間にずれが生じることが防止される。すなわち、各チャンネル間を同期させることができる。なお、図１９ではＣＨ［０］を例示しているが、他のチャンネルについても同様である。
このように、本実施形態の構成であっても、上記した第２実施形態等と同様に、複数のチャンネルで受信したストリームデータを用いて処理する構成において、データ処理部１０の負荷や必要なメモリ容量を削減することができる。
【０１０８】
また、本実施形態の同期回路６１は、２つのインデックスバッファ４２（４２ａ、４２ｂ）を有し、受信したストリームデータのインデックス値とその直前に受信したストリームデータのインデックス値とが一致する場合には、今回受信したストリームデータのＦＩＦＯ１２への書き込みを規制する。これにより、連続的にストリームデータを受信している動作中においてデータが重複したような場合であっても、各チャンネル間でデータの順序にずれが生じることが防止される。したがって、各チャンネル間を同期させることができる。
【０１０９】
（その他の実施形態）
本発明は、上記した実施形態で例示したものに限定されるものではなく、その要旨を逸脱しない範囲で任意に変形あるいは拡張することができる。
実施形態で例示したハードウェア構成は、要部を機能的に示したものであり、これに限定されない。例えば、ＦＩＦＯ１２へ書き込むための詳細なタイミングの制御等も勿論行われている。つまり、各実施形態で示したそれぞれの同期回路は、実質的に同様の処理ができれば、異なる論理回路で実現してもよい。また、各信号の出力レベルやその極性は、実施形態で例示したものに限定されない。例えば、有効／無効を切り替える信号レベルは実施形態とは逆の極性であってもよい。勿論、極性が異なる場合には、その極性に応じた論理回路を用いればよい。
【０１１０】
各実施形態で例示したインデックスバッファ４２およびデータバッファ５２の数は一例であり、２つ以上の各データを記憶することができればこれに限定されない。
ストリームデータは、連続的に受信されるものであればよく、映像データや音楽データ等であってもよい。
【符号の説明】
【０１１１】
図面中、１はストリーム処理装置、１１、２０、３０、４０、５０、６０はストリームバッファ、１３、２１、３１、４１、５１、６１は同期回路、１２はＦＩＦＯ、１４はオフセットレジスタ、１５は減算器、１６、２３はゲート回路、２２は加算器、２４はダミーデータバッファ、３２はダウンカウンタ型同期回路、３３はアップカウンタ型同期回路、４２、４２ａ、４２ｂはインデックスバッファ、４３は演算器、５２、５２ａ、５２ｂはデータバッファ、５４は比較器を示す。
【図１】
0006477155.tif 000002
【図２】
0006477155.tif 000003
【図３】
0006477155.tif 000004
【図４】
0006477155.tif 000005
【図５】
0006477155.tif 000006
【図６】
0006477155.tif 000007
【図７】
0006477155.tif 000008
【図８】
0006477155.tif 000009
【図９】
0006477155.tif 000010
【図１０】
0006477155.tif 000011
【図１１】
0006477155.tif 000012
【図１２】
0006477155.tif 000013
【図１３】
0006477155.tif 000014
【図１４】
0006477155.tif 000015
【図１５】
0006477155.tif 000016
【図１６】
0006477155.tif 000017
【図１７】
0006477155.tif 000018
【図１８】
0006477155.tif 000019
【図１９】
0006477155.tif 000020
【図２０】
0006477155.tif 000021