(57)【特許請求の範囲】
【請求項１】
時系列データから折れ線近似処理された折れ線近似後時系列データを生成する折れ線近似ユニットを備え、
前記折れ線近似ユニットは、
第１値と第２値とをベクトル要素として有する第１評価情報と、前記第１値に対応する第３値と前記第２値に対応する第４値とをベクトル要素として有する判定上限情報と、の外積を出力する第１外積器と、
前記第１評価情報と、前記第１値に対応する第５値と前記第２値に対応する第６値とをベクトル要素として有する判定下限情報と、の外積を出力する第２外積器と、
を含み、
前記第１外積器から出力される第１外積値と、前記第２外積器から出力される第２外積値と、に基づき、前記折れ線近似後時系列データの頂点を決定し、
前記第１値は、前記時系列データ内における、第１データの時刻成分及び第２データの時刻成分の差に基づいて算出され、
前記第２値は、前記時系列データ内における、前記第１データのセンサ成分及び前記第２データのセンサ成分の差に基づいて算出される、
時系列データ圧縮装置。
【請求項２】
前記折れ線近似ユニットは、
前記第１値と、前記第２値及び第７値の和と、をベクトル要素として有する誤差上限情報と、前記判定上限情報と、の外積を出力する第３外積器と、
前記第１値と、前記第２値及び前記第７値の差と、をベクトル要素として有する誤差下限情報と、前記判定下限情報と、の外積を出力する第４外積器と、
を更に含み、
前記第３外積器から出力される第３外積値に基づき、前記判定上限情報のベクトル要素を前記誤差上限情報のベクトル要素に更新するか否かを判定し、
前記第４外積器から出力される第４外積値に基づき、前記判定下限情報のベクトル要素を前記誤差下限情報のベクトル要素に更新するか否かを判定し、
前記第７値は、前記折れ線近似処理における許容誤差を示す、
請求項１記載の時系列データ圧縮装置。
【請求項３】
前記折れ線近似ユニットは、
前記第３値と第７値との乗算値を出力する第１乗算器と、
前記第５値と前記第７値との乗算値を出力する第２乗算器と、
を更に含み、
前記第１外積値と前記第１乗算器から出力される第１乗算値とに基づき、前記判定上限情報のベクトル要素を、誤差上限情報のベクトル要素に更新するか否かを判定し、
前記第２外積値と前記第２乗算器から出力される第２乗算値とに基づき、前記判定下限情報のベクトル要素を、誤差下限情報のベクトル要素に更新するか否かを判定し、
前記第７値は、前記折れ線近似処理における許容誤差を示し、
前記誤差上限情報は、前記第１値と、前記第２値及び前記第７値の和と、をベクトル要素として有し、
前記誤差下限情報は、前記第１値と、前記第２値及び前記第７値の差と、をベクトル要素として有する、
請求項１記載の時系列データ圧縮装置。
【請求項４】
前記第１外積器及び前記第２外積器は、並列に接続される、請求項１記載の時系列データ圧縮装置。
【請求項５】
前記第１値は、整数値である、請求項１記載の時系列データ圧縮装置。
【請求項６】
前記生成された折れ線近似後時系列データに対し、符号化テーブルに基づく可変長符号化処理を実行し、その結果圧縮済みデータを出力する符号化ユニットを更に備える、請求項１記載の時系列データ圧縮装置。
【請求項７】
前記符号化ユニットは、
前記生成された折れ線近似後時系列データに対し、複数の符号化テーブルの各々に基づく可変長符号化処理によって得られる複数の圧縮済みデータの各々に対応する複数の符号長を算出するセレクタと、
前記算出された複数の符号長の中で最も短い符号長に対応する符号化テーブルに基づく可変長符号化処理を実行し、その結果圧縮済みデータを出力する可変長符号化回路と、
を更に含む、請求項６記載の時系列データ圧縮装置。
【請求項８】
前記第４値は、前記時系列データ内における、任意の２つの時刻のセンサ成分の差と、第７値の和と、に基づいて算出され、
前記第６値は、前記時系列データ内における、任意の２つの時刻のセンサ成分の差と、前記第７値の差と、に基づいて算出され、
前記第７値は、前記折れ線近似処理における許容誤差を示す、
請求項１記載の時系列データ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、時系列データ圧縮装置に関する。
【背景技術】
【０００２】
時系列データ圧縮装置として、折れ線近似による圧縮手法を用いる装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２０５６７６号公報
【特許文献２】特許第２９４０２４０号公報
【特許文献３】特許第５４９２２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高スループットで時系列データを圧縮する時系列データ圧縮装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態の時系列データ圧縮装置は、時系列データから折れ線近似処理された折れ線近似後時系列データを生成する折れ線近似ユニットを備える。上記折れ線近似ユニットは、第１値と第２値とをベクトル要素として有する第１評価情報と、上記第１値に対応する第３値と上記第２値に対応する第４値とをベクトル要素として有する判定上限情報と、の外積を出力する第１外積器と、上記第１評価情報と、上記第１値に対応する第５値と上記第２値に対応する第６値とをベクトル要素として有する判定下限情報と、の外積を出力する第２外積器と、を含み、上記第１外積器から出力される第１外積値と、上記第２外積器から出力される第２外積値と、に基づき、上記折れ線近似後時系列データの頂点を決定する。上記第１値は、上記時系列データ内における、第１データの時刻成分及び第２データの時刻成分の差に基づいて算出され、上記第２値は、前記時系列データ内における、上記第１データのセンサ成分及び上記第２データのセンサ成分の差に基づいて算出される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る時系列データ圧縮装置を含む時系列データ圧縮システムの全体構成を示すブロック図である。
【図２】第１実施形態に係る時系列データ圧縮装置に用いられるデータの一例を示すダイアグラムである。
【図３】第１実施形態に係る時系列データ圧縮装置の構成を示すブロック図である。
【図４】第１実施形態に係る時系列データ圧縮装置に用いられるデータの一例を示すダイアグラムである。
【図５】第１実施形態に係る時系列データ圧縮装置に用いられる符号化テーブルの一例を示すダイアグラムである。
【図６】第１実施形態に係る時系列データ圧縮装置に用いられる符号化テーブルの一例を示すダイアグラムである。
【図７】第１実施形態に係る時系列データ圧縮装置の折れ線頂点座標判定機能を説明するための模式図である。
【図８】第１実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの構成を示す回路図である。
【図９】第１実施形態に係る時系列データ圧縮装置の外積回路を示す回路図である。
【図１０】第１実施形態に係る時系列データ圧縮装置の符号化ユニットの構成を示すブロック図である。
【図１１】第１実施形態に係る時系列データ圧縮装置の全体動作の一例を示すフローチャートである。
【図１２】第１実施形態に係る時系列データ圧縮装置の折れ線近似処理の際の動作の一例を示すフローチャートである。
【図１３】第１実施形態に係る時系列データ圧縮装置の可変長符号化処理の際の動作の一例を示すフローチャートである。
【図１４】第２実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの構成を示す回路図である。
【図１５】第２実施形態に係る時系列データ圧縮装置の外積回路を示す回路図である。
【図１６】第２実施形態に係る時系列データ圧縮装置の折れ線近似処理の際の動作の一例を示すフローチャートである。
【図１７】第１実施形態の変形例に係る時系列データ圧縮装置の折れ線頂点座標判定機能を説明するための模式図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係る時系列データ圧縮装置について説明する。
【０００９】
１．１  構成について
１．１．１  全体構成について
第１実施形態に係る時系列データ圧縮装置を含む全体システムの構成例について、図１を用いて説明する。図１は、第１実施形態に係る時系列データ圧縮装置を含む時系列データ圧縮システムの構成を示すブロック図である。
【００１０】
図１に示すように、時系列データ圧縮システム１は、携帯端末２、及びＩｏＴ（Internet of Thing）機器３を備えている。 
携帯端末２は、例えばBluetooth（登録商標）等の無線通信規格によってＩｏＴ機器３と無線通信可能な機器である。携帯端末２は、当該無線通信によって通信可能な程度に圧縮されたデータを取得する旨の要求（データ取得要求）をＩｏＴ機器３に発行する。また、携帯端末２は、当該データ取得要求に応じてＩｏＴ機器３で生成されたデータをＩｏＴ機器３から受信する。
【００１１】
ＩｏＴ機器３は、携帯端末２からのデータ取得要求に応じてデータ（例えば時系列データ）を圧縮し、携帯端末２に転送する機能を有する。ＩｏＴ機器３は、時系列データ圧縮装置１０、フラッシュメモリ２０、及びセンサ３０を備えている。時系列データ圧縮装置１０、フラッシュメモリ２０、及びセンサ３０は、例えばそれらの組み合わせにより１つの半導体装置を構成してもよく、その例としては、ＩｏＴ機器３に内蔵されるアプリケーションプロセッサ等が挙げられる。ＩｏＴ機器３としては、例えば、スマートショッピングにおけるＩＣタグ、ウェアラブル端末、及びデジタル家電等が挙げられる。 
フラッシュメモリ２０は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。フラッシュメモリ２０は、時系列データ圧縮装置１０と接続され、時系列データ圧縮装置１０からデータを書込まれる。フラッシュメモリ２０は、例えばＮＯＲ型フラッシュメモリであるが、これに限られず、ＮＡＮＤ型フラッシュメモリ等のその他の形態のメモリも適用可能である。
【００１２】
センサ３０は、センサデータを時系列にサンプリングし、時系列データを生成する。センサ３０は、時系列データ圧縮装置１０と接続され、時系列データ圧縮装置１０に時系列データを転送する。センサ３０は、例えば加速度計、ジャイロ、及び地磁気センサであり、それぞれ加速度、角速度、及び磁場に関する時系列データを生成する。センサ３０は、これに限らず、温湿度センサ、圧力センサ、及び心電センサ等種々のセンサが適用可能であり、それぞれ温湿度、圧力、心拍数等に関する時系列データを生成可能である。
【００１３】
時系列データ圧縮装置１０は、時系列データを圧縮して圧縮済みデータを生成し、当該圧縮済みデータを携帯端末２に転送する。時系列データ圧縮装置１０は、システムバス１１、プロセッサ（ＣＰＵ）１２、システムメモリ１３、データ圧縮回路１４、外部入出力インタフェース回路１５、フラッシュメモリインタフェース回路１６、及びセンサインタフェース回路１７を備えている。
【００１４】
システムバス１１は、ＣＰＵ１２、システムメモリ１３、データ圧縮回路１４、外部入出力インタフェース回路１５、フラッシュメモリインタフェース回路１６、及びセンサインタフェース回路１７の間の各種データ、命令等の通信経路として機能する。
【００１５】
ＣＰＵ１２は、時系列データ圧縮装置１０全体の動作を制御する。ＣＰＵ１２は、携帯端末２からデータ取得要求を受信した際には、データ圧縮回路１４に、時系列データを圧縮して圧縮済みデータを生成する命令を発行する。また、ＣＰＵ１２は、圧縮済みデータが生成されると、外部入出力インタフェース回路１５に対し、圧縮済みデータを携帯端末２に転送する命令を発行する。また、ＣＰＵ１２は、例えば、フラッシュメモリ２０に圧縮済みデータを書込むための命令を発行してもよい。
【００１６】
システムメモリ１３は、例えばＤＲＡＭ等の半導体メモリであり、センサ３０から転送された時系列データ、及びデータ圧縮回路１４から転送された圧縮済みデータの一時保存領域として使用される。また、システムメモリ１３は、例えば、フラッシュメモリ２０を管理するためのファームウェア等を保持する。
【００１７】
データ圧縮回路１４は、例えば内蔵するクロックに基づいて動作する。データ圧縮回路１４は、ＣＰＵ１２から発行された圧縮済みデータを生成する旨の命令に応じて、システムメモリ１３に格納された時系列データを読み出し、当該時系列データに基づいて圧縮済みデータを生成する。データ圧縮回路１４は、生成した圧縮済みデータを、システムメモリ１３に格納する。
【００１８】
外部入出力インタフェース回路１５は、時系列データ圧縮装置１０と、携帯端末２との間の無線通信を司る。時系列データ圧縮装置１０と携帯端末２との間の無線通信には、例えば、Bluetooth（登録商標）等の無線通信規格が適用可能である。外部入出力インタフェース回路１５は、携帯端末２から受信したデータ取得要求を、システムバス１１を介してＣＰＵ１２へ転送する。また、外部入出力インタフェース回路１５は、ＣＰＵ１２からの命令に応答して、システムメモリ１３内の圧縮済みデータを、システムバス１１を介して携帯端末２へ転送する。
【００１９】
フラッシュメモリインタフェース回路１６は、例えばフラッシュメモリ用バスを介してフラッシュメモリ２０と接続され、時系列データ圧縮装置１０とフラッシュメモリ２０との間の通信を司る。フラッシュメモリインタフェース回路１６は、ＣＰＵ１２から受信した命令をフラッシュメモリ２０に転送する。また、フラッシュメモリインタフェース回路１６は、データの書込み時には、システムメモリ１３内の書込み用データをフラッシュメモリ２０へ転送する。更に、フラッシュメモリインタフェース回路１６は、データの読出し時には、フラッシュメモリ２０から読み出されたデータを、システムバス１１を介してシステムメモリ１３へ転送する。
【００２０】
センサインタフェース回路１７は、例えばシリアルバスを介してセンサ３０と接続され、時系列データ圧縮装置１０とセンサ３０との間の通信を司る。センサインタフェース回路１７は、センサ３０から送信される時系列データを、システムバス１１を介してシステムメモリ１３へ転送する。
【００２１】
図２は、第１実施形態に係る時系列データ圧縮装置に用いられるデータの一例を示すダイアグラムである。図２（ａ）は、時系列データの一例を示し、図２（ｂ）は、圧縮済みデータの一例を示している。
【００２２】
図２（ａ）に示すように、時系列データ１００ａは、時刻データＴと、当該時刻データＴが示す時刻に取得されたセンサデータＸ（Ｔ）とが対応付けられた２次元の座標データ（Ｔ、Ｘ（Ｔ））の組が時系列に、例えば昇順に並ぶ。図２（ａ）の例では、時系列データ１００ａは、時刻０から時刻３１までの３２点の座標データが含まれるが、これに限らず、１６点、６４点等、任意の数の座標データが含まれていてもよい。時刻データＴは、例えば、整数値であり、センサデータＸ（Ｔ）に対応するインデックスであってもよい。センサデータＸ（Ｔ）は、例えば実数値であり、時刻データＴに対してビット数が大きい。センサデータＸ（Ｔ）は、例えば１６ビット、又は２４ビット程度のビット数で出力される。
【００２３】
図２（ｂ）に示すように、圧縮済みデータ１００ｂは、時刻データＴに関する情報を含むビット列と、センサデータＸ（Ｔ）に関する情報に対応するビット列との組を含む。各ビット列は、例えば独立に符号化して生成される。
【００２４】
１．１．２  データ圧縮回路の構成について
次に、第１実施形態に係る時系列データ圧縮装置のデータ圧縮回路の構成について、図３を用いて説明する。図３は、第１実施形態に係る時系列データ圧縮装置のデータ圧縮回路の構成を示すブロック図である。
【００２５】
図３に示すように、データ圧縮回路１４は、通信ユニット１４１、折れ線近似ユニット１４２、データバッファ１４３、記憶ユニット１４４、及び符号化ユニット１４５を備えている。
【００２６】
通信ユニット１４１は、例えばＤＡＭＣ（Directed Memory Access Controller）であり、ＣＰＵ１２から発行される時系列データを圧縮する命令を受信する。通信ユニット１４１は、例えば、当該命令に応じて、システムバス１１を介してシステムメモリ１３内の時系列データを読み出す。通信ユニット１４１は、読み出した時系列データを、折れ線近似ユニット１４２に転送する。また、通信ユニット１４１は、圧縮済みデータを符号化ユニット１４５から受信すると、当該圧縮済みデータをシステムメモリ１３に転送する。
【００２７】
折れ線近似ユニット１４２は、時系列データを通信ユニット１４１から受信すると、受信した時系列データについて折れ線近似処理を実行する。具体的には、折れ線近似ユニット１４２は、時系列データ内の座標データの各々が、折れ線の頂点となる座標データ（折れ線頂点座標データ）であるか否かを判定する。折れ線近似ユニット１４２は、判定の結果、折れ線頂点座標データであると判定された座標データを抽出し、当該抽出した折れ線頂点座標データを順次データバッファ１４３に出力する。なお、折れ線近似ユニット１４２が実行する折れ線近似処理の詳細については、後述する。
【００２８】
データバッファ１４３は、折れ線近似ユニット１４２によって順次出力された複数の折れ線頂点座標データを記憶する。データバッファ１４３は、例えば、予め定められた個数の折れ線頂点座標データを１ブロックの折れ線近似後時系列データとして記憶する。折れ線近似後時系列データは、時系列データ内の座標データの一部を折れ線頂点座標データとして含み、例えば、折れ線頂点座標データが時刻について昇順に並ぶ。なお、１ブロックの折れ線近似後時系列データには、例えば、１０点、１６点、３２点、６４点等、任意の数の折れ線頂点座標データが含まれていてもよい。
【００２９】
記憶ユニット１４４は、符号化ユニット１４５から読出し／書込み可能なメモリである。記憶ユニット１４４には、複数の符号化テーブルが予め記憶される。複数の符号化テーブルの各々は、符号化ユニット１４５による符号化処理に応じて読み出される。また、記憶ユニット１４４は、符号化ユニット１４５から圧縮済みデータを書込まれてもよい。
【００３０】
符号化ユニット１４５は、データバッファ１４３に１ブロック分の折れ線頂点座標データが折れ線近似後時系列データとして蓄積されると、当該折れ線近似後時系列データをデータバッファ１４３から読み出す。符号化ユニット１４５は、データバッファ１４３から１ブロック分の折れ線近似後時系列データを読出すと、当該折れ線近似後時系列データに基づき、符号化対象データを生成する。符号化対象データは、例えば隣接データ間の予測誤差データの組である。符号化ユニット１４５は、記憶ユニット１４４に記憶された符号化テーブルを読み出し、生成された符号化対象データに対して当該符号化テーブルに基づく符号化処理を実行する。符号化処理には、可変長符号化方式が適用される。より具体的には、例えば、符号化処理には、ゴロム符号を用いた可変長符号化方式が適用されるが、ゴロム符号に限らず、種々の符号を用いた可変長符号化方式が適用可能である。なお、符号化ユニット１４５は、符号化対象データ内の時刻データに対応する部分、及びセンサデータに対応する部分の各々に対して、互いに独立に符号化処理を実行する。符号化ユニット１４５は、符号化処理の結果生成されたビット列の組を、圧縮済みデータとして通信ユニット１４１に転送する。また、符号化ユニット１４５は、圧縮済みデータを記憶ユニット１４４に書込んでもよい。
【００３１】
図４は、第１実施形態に係る時系列データ圧縮装置に用いられるデータの一例を示すダイアグラムである。図４（ａ）は、折れ線近似後時系列データの一例を示し、図４（ｂ）は、符号化対象データの一例を示している。
【００３２】
図４（ａ）に示すように、折れ線近似後時系列データ１００ｃは、時系列データ１００ａ内の座標データのうち、折れ線頂点座標データとして抽出された座標データのみを含む。図４（ａ）の例では、時刻０から時刻３１までのうち、時刻０、時刻１、時刻４、時刻５、時刻１０、時刻１１、時刻１５、時刻１７、時刻２５、及び時刻３１の計１０点の座標データを折れ線頂点座標データとして含む。つまり、折れ線近似後時系列データ１００ｃは、時系列データ１００ａから１ブロックとして１０点の折れ線頂点座標データを抽出した例である。
【００３３】
図４（ｂ）に示すように、符号化対象データ１００ｄは、例えば、折れ線近似後時系列データ１００ｃ内の隣接する折れ線頂点座標データ間の差として生成される。符号化対象データ１００ｂは、時刻予測誤差データｄＴ、及びセンサ予測誤差データｄＸを含むデータの組（ｄＴ、ｄＸ）が並ぶ。符号化対象データ１００ｄは、折れ線近似後時系列データ１００ｃに対応して生成される。図４（ｂ）の例では、符号化対象データ１００ｄは、１０点の座標データを含む折れ線近似後時系列データ１００ｃから１点少ない９点の座標データを含む。時刻予測誤差データｄＴは、時刻データＴと同様、整数値である。センサ予測誤差データｄＸは、センサデータＸ（Ｔ）と同様、実数値であり、時刻予測誤差データｄＴに対してビット数が大きい。センサ予測誤差データｄＸは、センサデータＸ（Ｔ）と同様、例えば１６ビット、又は２４ビット程度のビット数で出力される。
【００３４】
図５は、第１実施形態に係る時系列データ圧縮装置に適用される符号化テーブルのうち、時刻予測誤差データｄＴに対応する符号化テーブルの一例を示すダイアグラムである。図６は、第１実施形態に係る時系列データ圧縮装置に適用される符号化テーブルのうち、センサ予測誤差データｄＸに対応する符号化テーブルの一例を示すダイアグラムである。図５及び図６に示される符号化テーブル２００ａ及び符号化テーブル２００ｂは、ゴロム符号の符号化テーブルを示す。
【００３５】
図５に示すように、符号化テーブル２００ａは、時刻予測誤差データｄＴが取り得る値と、当該時刻予測誤差データｄＴが取り得る値に割当てられる符号化結果としてのビット列と、当該ビット列の符号長と、を含む。
【００３６】
時刻予測誤差データｄＴが取り得る値は、時刻データＴが整数値である場合、正の整数となるため、１以上の整数が昇順に並ぶ。ビット列及び符号長は、時刻予測誤差データｄＴが取り得る値に対して、パラメタＫ（Ｋは０以上の整数）の値に応じて割り当てられる。図５の例では、時刻予測誤差データｄＴの値が７の場合、パラメタＫとして“０”を選択すると、符号長“７”のビット列“００００００１”が割当てられ、パラメタＫとして“２”を選択すると、符号長“４”のビット列“０１１０”が割当てられる。すなわち、符号化テーブル２００ａは、パラメタＫの数の符号化パターンを有する。
【００３７】
また、ビット列は、プリフィックス及びサフィックスに分けられる。プリフィックスは、ビット列の前半部分に対応し、時刻予測誤差データｄＴの値が大きくなるほど、その符号長が長くなる。また、プリフィックスは、パラメタＫの値が大きくなるほど、同一のプリフィックスが割当てられる時刻予測誤差データｄＴの範囲が広くなる。サフィックスは、ビット列の後半部分に対応し、同一のプリフィックスが割当てられた異なる時刻予測誤差データｄＴを区別する。サフィックスは、パラメタＫの値が大きくなるほど、サフィックスの符号長が長くなる。
【００３８】
すなわち、符号化テーブル２００ａに示されるゴロム符号は、符号化対象データ内の時刻予測誤差データｄＴの値が０に近い範囲で分布する場合、符号化対象データ内の時刻予測誤差データｄＴの組を短いビット列で符号化することができる。
【００３９】
また、図６に示すように、符号化テーブル２００ｂは、センサ予測誤差データｄＸが取り得る値と、当該センサ予測誤差データｄＸが取り得る値に割当てられる符号化結果としてのビット列と、当該ビット列の符号長と、を含む。符号化テーブル２００ｂは、時刻予測誤差データｄＴが取り得る値の代わりにセンサ予測誤差データｄＸの対応値が設定されている点を除いて、図５に示される符号化テーブル２００ａと同一である。センサ予測誤差データｄＸの対応値は、例えば、０、正の整数、及び負の整数が絶対値順に昇順に並ぶ。符号化テーブル２００ｂに設定されるセンサ予測誤差データｄＸの対応値は、例えば、センサ予測誤差データｄＸをセンサデータＸ（Ｔ）の解像度で割った値に対応する。なお、センサ予測誤差データｄＸとセンサ予測誤差データｄＸの対応値との対応関係の設定の仕方は、上述の設定の仕方によらず、任意の設定の仕方が適用可能である。
【００４０】
１．１．３  折れ線近似ユニットの機能構成の詳細について
次に、第１実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの機能構成の詳細について説明する。
【００４１】
１．１．３．１  折れ線近似ユニットの機能について
図７は、第１実施形態に係る時系列データ圧縮装置の折れ線頂点座標判定機能の一例を説明するための模式図である。図７に示すように、折れ線近似処理においては、時系列データ内に、評価座標Ｐｃ（ｃ、Ｘ（ｃ））と、基準座標Ｐｓ（ｓ、Ｘ（ｓ））とが定義される。評価座標Ｐｃは、例えば、時系列データ内の座標データのうち、折れ線頂点座標データを抽出するための評価対象となる座標データであり、時刻データｃ及びセンサデータＸ（ｃ）を含む。基準座標Ｐｓは、例えば、評価座標Ｐｃから過去側において折れ線頂点座標データであると判定された直近の座標データであり、時刻データｓ及びセンサデータＸ（ｓ）を含む。
【００４２】
折れ線近似ユニット１４２は、例えば、折れ線頂点座標データを抽出するための、以下の７つの機能を含む。
【００４３】
機能（１−１）：評価座標Ｐｃと基準座標Ｐｓとを結ぶ線分の傾き（評価値）を示す情報（評価情報）Ｇ０、評価値の許容誤差上限値を示す情報（誤差上限情報）Ｇ１、評価値の許容誤差下限値を示す情報（誤差下限情報）Ｇ２、折れ線判定の傾きの上限値を示す情報（判定上限情報）Ｍ１、及び折れ線判定の傾きの下限値を示す情報（判定下限情報）Ｍ２を設定する機能。
【００４４】
機能（１−２）：評価情報Ｇ０、及び判定上限情報Ｍ１に基づき、評価値が折れ線判定の傾きの上限値を下回っているか否か（判定１−２）を判定する機能。
【００４５】
機能（１−３）：評価情報Ｇ０、及び判定下限情報Ｍ２に基づき、評価値が折れ線判定の傾きの下限値を上回っているか否か（判定１−３）を判定する機能。
【００４６】
機能（１−４）：判定（１−２）の結果及び判定（１−３）の結果のいずれかが否の場合、評価座標Ｐｃの１つ前の時刻の座標データＰ（ｃ−１）を折れ線頂点座標データとして抽出する機能。
【００４７】
機能（１−５）：誤差上限情報Ｇ１、及び判定上限情報Ｍ１に基づき、評価値の許容誤差上限値が折れ線判定の傾きの上限値を下回っているか否か（判定１−５）を判定する機能。
【００４８】
機能（１−６）：誤差下限情報Ｇ２、及び判定下限情報Ｍ２に基づき、評価値の許容誤差下限値が折れ線判定の傾きの下限値を上回っているか否か（判定１−６）を判定する機能。
【００４９】
機能（１−７）：判定（１−５）の結果が真の場合、当該判定上限情報Ｍ１を誤差上限情報Ｇ１で更新し、判定（１−６）の結果が真の場合、当該判定下限情報Ｍ２を誤差下限情報Ｇ２で更新する機能。
【００５０】
誤差上限情報Ｇ１及び誤差下限情報Ｇ２はそれぞれ、図７の例では、評価座標ＰｃのセンサデータＸ（ｃ）に許容誤差値ｅ（ｅは実数値）があった場合における、評価情報Ｇ０の上限及び下限の情報を示す。判定上限情報Ｍ１は、例えば、基準座標Ｐｓから評価座標Ｐｃまでの間の座標において、最も小さい傾きを示す誤差上限情報Ｇ１が適用される。また、判定下限情報Ｍ２は、例えば、基準座標Ｐｓから評価座標Ｐｃまでの間の座標において、最も大きい傾きを示す誤差下限情報Ｇ２が適用される。
【００５１】
なお、許容誤差値ｅは、折れ線近似処理の際に予め設定されている値であり、例えば同一の時系列データに対する折れ線近似処理の間、同一の値が適用される。許容誤差値ｅは、時系列データ毎に固定された値が適用されてもよく、変更されてもよい。
【００５２】
上述の如き機能を奏する折れ線近似処理に用いられる折れ線近似処理アルゴリズムとしては、例えば、第１文献（［FAN/SAPA2］）のアルゴリズムがある。第１文献［FAN/SAPA2］に関する情報は、次の通りである。
【００５３】
［FAN/SAPA2］ McKee, J.J., Evans, N.E., & Owens, F.J., “Efficient implementation of the Fan/SAPA-2 algorithm using fixed point arithmetic”, Automedica. Vol. 16, pp. 109-117. 1994.
なお、第１実施形態に係る折れ線近似ユニットに用いられる折れ線近似処理アルゴリズムでは、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、傾きの値としてのスカラーとしてではなく、２次元ベクトルとして定義される。例えば、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、同次座標系における２次元ベクトルとして定義される。同次座標系は、例えばある線分の傾きαがα＝ｘ／ｔの如き分数表現で表される場合、当該傾きαを示す情報を、第１要素を分子ｘ、第２要素を分母ｔとする座標［ｘ、ｔ］として表現する座標系である。以下の説明では、第１文献［FAN/SAPA2］のアルゴリズムに、上述の同次座標系を適用した折れ線近似処理アルゴリズムを用いるものとして説明する。
【００５４】
つまり、第１実施形態に係る折れ線近似処理アルゴリズムによると、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２は、それぞれ以下のように表される。
【００５５】
Ｇ０＝［Ｘ（ｃ）−Ｘ（ｓ）、ｃ−ｓ］
Ｇ１＝［Ｘ（ｃ）−Ｘ（ｓ）＋ｅ、ｃ−ｓ］
Ｇ２＝［Ｘ（ｃ）−Ｘ（ｓ）−ｅ、ｃ−ｓ］
また、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、便宜的に、それぞれ以下のように表される。
【００５６】
Ｍ１＝［Ｘｍ１、Ｔｍ１］
Ｍ２＝［Ｘｍ２、Ｔｍ２］
また、機能（１−２）、機能（１−３）、機能（１−５）、及び機能（１−６）は、それぞれ以下の判定（１−２）、判定（１−３）、判定（１−５）、及び判定（１−６）を実行し得る構成によって実現される。
【００５７】
判定（１−２）：Ｇ０×Ｍ１＝（Ｘ（ｃ）−Ｘ（ｓ））Ｔｍ１−（ｃ−ｓ）Ｘｍ１＜０
判定（１−３）：Ｇ０×Ｍ２＝（Ｘ（ｃ）−Ｘ（ｓ））Ｔｍ２−（ｃ−ｓ）Ｘｍ２＞０
判定（１−５）：Ｇ１×Ｍ１＝（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）Ｔｍ１−（ｃ−ｓ）Ｘｍ１＜０
判定（１−６）：Ｇ２×Ｍ２＝（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）Ｔｍ２−（ｃ−ｓ）Ｘｍ２＞０
ここで、演算記号“×”は、２次元ベクトル同士の外積演算を示す記号である。
【００５８】
このように、第１実施形態に係る時系列データ圧縮装置１０では、機能（１−２）、機能（１−３）、機能（１−５）、及び機能（１−６）の各々は、１回の外積演算、すなわち２回の乗算を実行し得る２個の乗算器を含む構成によって実現される。
【００５９】
１．１．３．２  折れ線近似ユニットの構成について
図８は、第１実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの構成の一例を説明するための回路図である。図８に示すように、折れ線近似ユニット１４２は、ステージＡ、ステージＢ、及びステージＣの３段のパイプラインを含むパイプライン構造を備える。
【００６０】
ステージＡは、入力データＦＩＦＯ（First In First Out）２０１、及びレジスタ２０２〜２０３を備えている。ステージＡは、ステージＢにおける演算処理及び判定処理に用いられる値が入力データＦＩＦＯ２０１、及びレジスタ２０２〜２０３に設定されるパイプラインである。
【００６１】
ステージＢは、加減算器２０４〜２０６、ΔＴカウンタ２０７、レジスタ２０８〜２１４、外積回路２１５〜２１８、及び判定回路２１９を備えている。ステージＢは、ステージＡにおいて設定された値に基づく加減算器２０４〜２０６及び外積回路２１５〜２１８による演算処理、及び判定回路２１９による判定（１−２）〜（１−３）、及び判定（１−５）〜（１−６）を含む判定処理が再帰的に実行されるパイプラインである。
【００６２】
ステージＣは、出力データＦＩＦＯ２２０を備えている。ステージＣは、ステージＢにおいて実行された判定処理に基づいて、折れ線頂点座標データが出力されるパイプラインである。
【００６３】
入力データＦＩＦＯ２０１は、通信ユニット１４１から時系列データ内を受信し、保持する。入力データＦＩＦＯ２０１は、保持している時系列データ内のセンサデータＸ（Ｔ）を対応する時刻データＴの昇順に出力する。具体的には、入力データＦＩＦＯ２０１は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に時系列データがあった場合、出力されるセンサデータＸ（Ｔ）を時刻の昇順に更新する。出力されるセンサデータＸ（Ｔ）は、評価座標ＰｃのセンサデータＸ（ｃ）としてレジスタ２０８及び加減算器２０４〜２０６の各々に出力される。
【００６４】
レジスタ２０２は、レジスタ２０９からセンサデータＸ（Ｔ）を受信する。レジスタ２０２は、当該センサデータＸ（Ｔ）を受信すると、基準座標ＰｓのセンサデータＸ（ｓ）として保持する。レジスタ２０２は、保持しているセンサデータＸ（ｓ）を、加減算器２０４〜２０６の各々に出力する。
【００６５】
レジスタ２０３は、許容誤差値ｅを予め保持する。レジスタ２０３は、保持している許容誤差値ｅを、加減算器２０５及び２０６の各々に出力する。
【００６６】
加減算器２０４は、入力データＦＩＦＯ２０１から出力されたセンサデータＸ（ｃ）、及びレジスタ２０２から出力されたセンサデータＸ（ｓ）を、それぞれ第１入力値及び第２入力値として受信する。加減算器２０４は、第１入力値に対して第２入力値を減じる減算を実行し、実行結果の値（Ｘ（ｃ）−Ｘ（ｓ））をレジスタ２１０に出力する。
【００６７】
加減算器２０５は、入力データＦＩＦＯ２０１から出力されたセンサデータＸ（ｃ）、レジスタ２０２から出力されたセンサデータＸ（ｓ）、及びレジスタ２０３から出力された許容誤差値ｅを、それぞれ第１入力値、第２入力値、及び第３入力値として受信する。加減算器２０５は、第１入力値に対して第２入力値を減じ、更に第３入力値を加える加減算を実行し、実行結果の値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）をレジスタ２１１に出力する。
【００６８】
加減算器２０６は、入力データＦＩＦＯ２０１から出力されたセンサデータＸ（ｃ）、レジスタ２０２から出力されたセンサデータＸ（ｓ）、及びレジスタ２０３から出力された許容誤差値ｅを、それぞれ第１入力値、第２入力値、及び第３入力値として受信する。加減算器２０５は、第１入力値に対して第２入力値を減じ、更に第３入力値を減じる加減算を実行し、実行結果の値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）をレジスタ２１２に出力する。
【００６９】
ΔＴカウンタ２０７は、レジスタ２０８に保持されているセンサデータＸ（ｃ）に対応する時刻データｃと、レジスタ２０２に保持されているセンサデータＸ（ｓ）に対応する時刻データｓとに基づき、時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）とを保持する。
【００７０】
ΔＴカウンタ２０７は、保持している値（ｃ−ｓ）をノードｎ０〜ｎ２の各々に出力する。ΔＴカウンタ２０７は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に出力される予定の時系列データがあった場合、保持している時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）とをそれぞれ１ずつカウントアップする。ΔＴカウンタ２０７は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に出力される予定の時系列データがなかった場合、保持している時刻データｃを出力データＦＩＦＯ２２０に出力する。ΔＴカウンタ２０７は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果のいずれかが否であると判定された場合、保持している時刻データ（ｃ−１）を出力データＦＩＦＯ２２０に出力すると共に、保持している値（ｃ−ｓ）を値“１”に更新する。
【００７１】
レジスタ２０８は、入力データＦＩＦＯ２０１からセンサデータＸ（ｃ）を受信し、保持する。また、レジスタ２０８は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定された場合、保持しているセンサデータＸ（ｃ）をレジスタ２０９に出力する。また、レジスタ２０８は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に出力される予定の時系列データがあった場合、保持しているセンサデータＸ（ｃ）をレジスタ２０９に出力した後、入力データＦＩＦＯ２０１から新たに出力されたセンサデータＸ（ｃ＋１）を受信し、保持する値を更新する。
【００７２】
レジスタ２０９は、レジスタ２０８からセンサデータＸ（ｃ）を受信するまでは、その１つ前の時刻のセンサデータＸ（ｃ−１）を保持している。レジスタ２０９は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果のいずれかが否であると判定された場合、その際に保持しているセンサデータＸ（ｃ−１）を、レジスタ２０２及び出力データＦＩＦＯ２２０に出力する。
【００７３】
また、レジスタ２０９は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定された場合、センサデータＸ（ｃ）をレジスタ２０８から受信し、保持する値を更新する。また、レジスタ２０９は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に出力される予定の時系列データが無かった場合、更新によって保持しているセンサデータＸ（ｃ）を出力データＦＩＦＯ２２０に出力する。
【００７４】
レジスタ２１０は、加減算器２０４から値（Ｘ（ｃ）−Ｘ（ｓ））を受信し、保持する。レジスタ２１０は、保持している値（Ｘ（ｃ）−Ｘ（ｓ））を、ノードｎ０に出力する。
【００７５】
ノードｎ０には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１０から値（Ｘ（ｃ）−Ｘ（ｓ））がそれぞれ入力される。ノードｎ０では、当該入力された各値が同次座標系のベクトルである評価情報Ｇ０＝［Ｘ（ｃ）−Ｘ（ｓ）、ｃ−ｓ］として統合され、外積回路２１５〜２１６に出力される。
【００７６】
レジスタ２１１は、加減算器２０５から値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）を受信し、保持する。レジスタ２１１は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）を、ノードｎ１に出力する。
【００７７】
ノードｎ１には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１１から値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）がそれぞれ入力される。ノードｎ１では、当該入力された各値が同次座標系のベクトルである誤差上限情報Ｇ１＝［Ｘ（ｃ）−Ｘ（ｓ）＋ｅ、ｃ−ｓ］として統合され、外積回路２１７に出力される。なお、誤差上限情報Ｇ１は、判定回路２１９による判定（１−２）及び判定（１−３）の結果がいずれも真であり、かつ判定（１−５）の結果が否であった場合、レジスタ２１３に出力される。
【００７８】
レジスタ２１２は、加減算器２０６から値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を受信し、保持する。レジスタ２１２は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を、ノードｎ２に出力する。
【００７９】
ノードｎ２には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１２から値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）がそれぞれ入力される。ノードｎ２では、当該入力された各値が同次座標系のベクトルである誤差下限情報Ｇ２＝［Ｘ（ｃ）−Ｘ（ｓ）−ｅ、ｃ−ｓ］として統合され、外積回路２１８に出力される。なお、誤差下限情報Ｇ２は、判定回路２１９による判定（１−２）及び判定（１−３）の結果がいずれも真であり、かつ判定（１−６）の結果が否であった場合、レジスタ２１４に出力される。
【００８０】
レジスタ２１３は、判定上限情報Ｍ１を保持する。レジスタ２１３は、保持する判定上限情報Ｍ１を外積回路２１５及び２１７に出力する。
【００８１】
具体的には、レジスタ２１３は、判定回路２１９による判定（１−２）及び判定（１−３）の結果がいずれも真であり、かつ判定（１−５）の結果が真であった場合、保持する判定上限情報Ｍ１を、ノードｎ１から出力される誤差上限情報Ｇ１で更新する。また、レジスタ２１３は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果のいずれかが否であった場合、保持する判定上限情報Ｍ１をＭ１＝［１、０］に更新する。
【００８２】
レジスタ２１４は、判定下限情報Ｍ２を保持する。レジスタ２１４は、保持する判定下限情報Ｍ２を外積回路２１６及び２１８に出力する。
【００８３】
具体的には、レジスタ２１４は、判定回路２１９による判定（１−２）及び判定（１−３）の結果がいずれも真であり、かつ判定（１−６）の結果が真であった場合、保持する判定下限情報Ｍ２を、ノードｎ２から出力される誤差下限情報Ｇ２で更新する。また、レジスタ２１４は、判定回路２１９による判定（１−２）及び判定（１−３）の結果のいずれかが否であった場合、保持する判定下限情報Ｍ２をＭ２＝［−１、０］に更新する。
【００８４】
外積回路２１５は、ノードｎ０から出力された評価情報Ｇ０、及びレジスタ２１３から出力された判定上限情報Ｍ１をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づいて外積演算を実行する。外積回路２１５は、当該外積演算の結果、評価情報Ｇ０と判定上限情報Ｍ１との外積値が負であるか否かの情報（Ｇ０×Ｍ１の符号情報）を判定回路２１９に出力する。
【００８５】
外積回路２１６は、ノードｎ０から出力された評価情報Ｇ０、及びレジスタ２１４から出力された判定下限情報Ｍ２をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づいて外積演算を実行する。外積回路２１６は、当該外積演算の結果、評価情報Ｇ０と判定下限情報Ｍ２との外積値が正であるか否かの情報（Ｇ０×Ｍ２の符号情報）を判定回路２１９に出力する。
【００８６】
外積回路２１７は、ノードｎ１から出力された誤差上限情報Ｇ１、及びレジスタ２１３から出力された判定上限情報Ｍ１をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づいて外積演算を実行する。外積回路２１７は、当該外積演算の結果、誤差上限情報Ｇ１と判定上限情報Ｍ１との外積値が負であるか否かの情報（Ｇ１×Ｍ１の符号情報）を判定回路２１９に出力する。
【００８７】
外積回路２１８は、ノードｎ２から出力された誤差下限情報Ｇ２、及びレジスタ２１４から出力された判定下限情報Ｍ２をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づいて外積演算を実行する。外積回路２１８は、当該外積演算の結果、誤差下限情報Ｇ２と判定下限情報Ｍ２との外積値が正であるか否かの情報（Ｇ２×Ｍ２の符号情報）を判定回路２１９に出力する。
【００８８】
判定回路２１９は、外積回路２１５から入力されたＧ０×Ｍ１の符号情報に基づき、判定（１−２）を実行する。具体的には、判定回路２１９は、Ｇ０×Ｍ１の符号が負（Ｇ０×Ｍ１＜０）である場合、評価座標Ｐｃと基準座標Ｐｓとを結ぶ線分の傾き（評価値）が折れ線判定の傾きの上限値を下回っている（判定（１−２）の結果は真である）、と判定する。一方、判定回路２１９は、Ｇ０×Ｍ１の符号が０以上（Ｇ０×Ｍ１≧０）である場合、評価値が折れ線判定の傾きの上限値を上回っている（判定（１−２）の結果は否である）、と判定する。また、判定回路２１９は、外積回路２１６から入力されたＧ０×Ｍ２の符号情報に基づき、判定（１−３）を実行する。具体的には、判定回路２１９は、Ｇ０×Ｍ２の符号が正（Ｇ０×Ｍ２＞０）である場合、評価値が折れ線判定の傾きの下限値を上回っている（判定（１−３）の結果は真である）、と判定する。一方、判定回路２１９は、Ｇ０×Ｍ２の符号が０以下（Ｇ０×Ｍ２≦０）である場合、評価値が折れ線判定の傾きの下限値を下回っている（判定（１−３）の結果は否である）、と判定する。すなわち、判定回路２１９は、評価座標Ｐ（ｃ）に対する判定（１−２）の結果及び判定（１−３）の結果がいずれも真である場合、評価座標Ｐ（ｃ）の１つ前の時刻（ｃ−１）の座標Ｐ（ｃ−１）が折れ線頂点座標データでないと判定する。また、判定回路２１９は、評価座標Ｐ（ｃ）に対する判定（１−２）の結果及び判定（１−３）の結果のいずれかが否である場合、座標Ｐ（ｃ−１）が折れ線頂点座標データであると判定する。
【００８９】
また、判定回路２１９は、外積回路２１７から入力されたＧ１×Ｍ１の符号情報に基づき、判定（１−５）を実行する。具体的には、判定回路２１９は、Ｇ１×Ｍ１の符号が負（Ｇ１×Ｍ１＜０）である場合、評価値の許容誤差上限値が折れ線判定の傾きの上限値を下回っている（判定（１−５）の結果は真である）、と判定する。一方、判定回路２１９は、Ｇ１×Ｍ１の符号が０以上（Ｇ１×Ｍ１≧０）である場合、評価値の許容誤差上限値が折れ線判定の傾きの上限値を上回っている（判定（１−５）の結果は否である）、と判定する。すなわち、判定回路２１９は、判定（１−５）の結果が真である場合、判定上限情報Ｍ１を誤差上限情報Ｇ１で更新すべきであると判定し、判定（１−５）の結果が否である場合、判定上限情報Ｍ１を現状のまま維持すべきであると判定する。
【００９０】
判定回路２１９は、外積回路２１８から入力されたＧ２×Ｍ２の符号情報に基づき、判定（１−６）を判定する。具体的には、判定回路２１９は、Ｇ２×Ｍ２の符号が正（Ｇ２×Ｍ２＞０）である場合、評価値の許容誤差下限値が折れ線判定の傾きの下限値を上回っている（判定（１−６）の結果は真である）、と判定する。また、判定回路２１９は、Ｇ２×Ｍ２の符号が０以下（Ｇ２×Ｍ２≦０）である場合、評価値の許容誤差下限値が折れ線判定の傾きの下限値を下回っている（判定（１−６）の結果は否である）、と判定する。すなわち、判定回路２１９は、判定（１−６）の結果が真である場合、判定下限情報Ｍ２を誤差下限情報Ｇ２で更新すべきであると判定し、判定（１−６）の結果が否である場合、判定下限情報Ｍ２を現状のまま維持すべきであると判定する。
【００９１】
出力データＦＩＦＯ２２０は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果のいずれかが否であると判定された場合、ΔＴカウンタ２０７から時刻データ（ｃ−１）を受信すると共に、レジスタ２０９からセンサデータＸ（ｃ−１）を受信する。また、出力データＦＩＦＯ２２０は、判定回路２１９によって判定（１−２）及び判定（１−３）の結果がいずれも真であると判定され、かつ入力データＦＩＦＯ２０１内に出力される予定の時系列データがない場合、ΔＴカウンタ２０７から時刻データｃを受信すると共に、レジスタ２０９からセンサデータＸ（ｃ）を受信する。出力データＦＩＦＯ２２０は、受信した時刻データ及びセンサデータの組を折れ線頂点座標データとしてデータバッファ１４３に出力する。
【００９２】
図９は、第１実施形態に係る時系列データ圧縮装置の外積回路の構成の一例を説明するための回路図である。図９に示すように、外積回路２１５〜２１８は、同一の構成を備えており、例えば乗算器３０１〜３０２、及び比較器３０３を備えている。図９の例では、外積回路２１５〜２１８には、同次座標系のベクトルＢ１＝［Ｘ１、Ｔ１］及びＢ２＝［Ｘ２、Ｔ２］が、それぞれ第１入力ベクトル及び第２入力ベクトルとして入力されている場合を一例として示している。第１入力ベクトルＢ１は、例えば評価情報Ｇ０、誤差上限情報Ｇ１、又は誤差下限情報Ｇ２である。第２入力ベクトルＢ２は、例えば判定上限情報Ｍ１、又は判定下限情報Ｍ２である。
【００９３】
乗算器３０１は、第１入力ベクトルＢ１の第１成分Ｘ１と、第２入力ベクトルＢ２の第２成分Ｔ２とが、それぞれ第１入力値及び第２入力値として入力される。乗算器３０１は、第１入力値Ｘ１及び第２入力値Ｔ２の乗算結果Ｘ１Ｔ２を比較器３０３に出力する。
【００９４】
乗算器３０２は、第２入力ベクトルＢ２の第１成分Ｘ２と、第１入力ベクトルＢ１の第２成分Ｔ１とが、それぞれ第１入力値及び第２入力値として入力される。乗算器３０２は、第１入力値Ｘ２及び第２入力値Ｔ１の乗算結果Ｘ２Ｔ１を比較器３０３に出力する。
【００９５】
比較器３０３は、乗算器３０１から出力された値Ｘ１Ｔ２と、乗算器３０２から出力された値Ｘ２Ｔ１との大小を比較し、その比較結果（Ｂ１×Ｂ２の符号）を出力する。比較器３０３は、比較の結果、値Ｘ１Ｔ２が値Ｘ２Ｔ１よりも小さい場合、Ｂ１×Ｂ２の符号が負（Ｂ１×Ｂ２＜０）であると判定し、例えばＨ（High）レベルの信号をＢ１×Ｂ２の符号情報として判定回路２１９に出力する。一方、比較器３０３は、比較の結果、値Ｘ１Ｔ２が値Ｘ２Ｔ１以上である場合、Ｂ１×Ｂ２の符号が０又は正（Ｂ１×Ｂ２≧０）であると判定し、例えばＬ（Low）レベルの信号をＢ１×Ｂ２の符号情報として判定回路２１９に出力する。
【００９６】
１．１．４  符号化ユニットの機能構成の詳細について
次に、第１実施形態に係る時系列データ圧縮装置１０の符号化ユニットの機能構成の詳細について説明する。
【００９７】
符号化ユニット１４５は、例えば、符号化対象データを符号化し、圧縮済みデータを生成するための、以下の３つの機能を含む。
【００９８】
機能（２−１）：時刻予測誤差データｄＴにパラメタＫの異なる複数の符号化テーブルの各々を適用した場合において生成されるビット列の符号長同士を比較し、時刻予測誤差データｄＴを最短の符号長で符号化するパラメタＫｔを決定する機能。
【００９９】
機能（２−２）：センサ予測誤差データｄＸにパラメタＫの異なる複数の符号化テーブルの各々を適用した場合において生成されるビット列の符号長同士を比較し、センサ予測誤差データｄＸを最短の符号長で符号化するパラメタＫｘを決定する機能。
【０１００】
機能（２−３）：機能（２−１）で決定されたパラメタＫｔの符号化テーブルと、機能（２−２）で決定されたパラメタＫｘの符号化テーブルとを符号化対象データに適用して、圧縮済みデータとして出力する機能。
【０１０１】
符号化ユニット１４５は、このような機能（２−１）〜（２−３）を含むことにより、符号化対象データの性質に依らず、圧縮済みデータのデータサイズが最も小さくなるパラメタＫｔ及びパラメタＫｘの符号化テーブルを選択する。そして、符号化ユニット１４５は、上述の如き最適なパラメタＫｔ及びパラメタＫｘの選択を、１ブロックごとに適応的に変更し、符号化処理を実行する。
【０１０２】
図１０は、第１実施形態に係る時系列データ圧縮装置の符号化ユニットの一例を説明するためのブロック図である。図１０に示すように、符号化ユニット１４５は、変換回路４０１、セレクタ４０２、及び可変長符号化回路４０３を備えている。
【０１０３】
変換回路４０１は、データバッファ１４３から１ブロック分の折れ線近似後時系列データを読み出し、当該折れ線近似後時系列データを符号化対象データに変換する。変換回路４０１は、符号化対象データをセレクタ４０２及び可変長符号化回路４０３に転送する。
【０１０４】
セレクタ４０２は、符号化対象データを変換回路４０１から受信すると、例えば記憶ユニット１４４からパラメタＫの異なる複数の符号化テーブルを読み出す。セレクタ４０２は、当該読み出した複数の符号化テーブルの各々に基づいて生成される圧縮済みデータの符号長を算出する。つまり、セレクタ４０２は、符号化テーブル内の符号長に関する情報に基づき、圧縮済みデータを生成することなく全てのパラメタＫの場合における符号長を算出する。セレクタ４０２は、算出した複数の符号長を比較し、比較の結果最も短い符号長が算出された最適なパラメタに対応する符号化テーブルを、最適な符号化テーブルとして可変長符号化回路４０３に転送する。
【０１０５】
より具体的には、例えば、セレクタ４０２は、記憶ユニット１４４からパラメタＫの異なる複数の符号化テーブルを順次読出す。セレクタ４０２は、読み出した符号化テーブル内の符号長の情報を参照することにより、可変長符号化処理を実行せずに、可変長符号化処理を実行した場合に得られる圧縮済みデータの符号長を算出する。セレクタ４０２は、当該符号長の算出を、記憶ユニット１４４に保持されている全てのパラメタＫについて実行し、最も符号長が短くなる符号化テーブルを抽出する。なお、符号長算出処理及び最適な符号化テーブルの抽出処理は、符号化対象データの時刻予測誤差データｄＴとセンサ予測誤差データｄＸとについて独立に実行される。すなわち、セレクタ４０２は、例えば、上述の機能（２−１）及び機能（２−２）を有する構成である。
【０１０６】
可変長符号化回路４０３は、変換回路４０１から符号化対象データを、セレクタ４０２から最適な符号化テーブルを、それぞれ受信する。可変長符号化回路４０３は、当該最適な符号化テーブルに基づいて符号化対象データを可変長符号化し、圧縮済みデータを生成する。可変長符号化回路４０３は、生成された圧縮済みデータを通信ユニット１４１に転送する。
【０１０７】
なお、可変長符号化回路４０３は、当該可変長符号化処理を、符号化対象データの時刻予測誤差データｄＴとセンサ予測誤差データｄＸについて独立に実行する。すなわち、可変長符号化回路４０３は、例えば、上述の機能（２−３）を有する構成である。
【０１０８】
１．２  動作について
次に、第１実施形態に係る時系列データ圧縮装置の動作について説明する。
【０１０９】
１．２．１  時系列データ圧縮システム全体の動作について
まず、時系列データ圧縮システム全体の動作について、図１１を用いて説明する。図１１は、第１実施形態に係る時系列データ圧縮システム１の全体動作を示すフローチャートである。
【０１１０】
図１１に示すように、ステップＳ１０において、センサ３０は、時系列データを取得する。センサ３０は、取得した時系列データをセンサインタフェース回路１７に転送する。ＣＰＵ１２は、センサインタフェース回路１７に転送された時系列データを、システムバス１１を介してシステムメモリ１３に書込む。
【０１１１】
ステップＳ３０において、携帯端末２は、ＩｏＴ機器３にデータ取得要求を発行する。時系列データ圧縮装置１０の外部入出力インタフェース回路１５は、当該データ取得要求を受信する。外部入出力インタフェース回路１５は、システムバス１１を介して、データ取得要求をＣＰＵ１２に転送する。
【０１１２】
ＣＰＵ１２は、データ取得要求を受信すると、データ圧縮回路１４に圧縮済みデータを生成する旨の命令を発行する。データ圧縮回路１４の通信ユニット１４１は、当該命令を受信すると、システムメモリ１３から時系列データを読み出して折れ線近似ユニット１４２に転送する。
【０１１３】
ステップＳ５０において、折れ線近似ユニット１４２は、時系列データを受信すると、当該時系列データに対して折れ線近似処理を実行する。折れ線近似ユニット１４２は、折れ線近似処理の結果、時系列データ内の折れ線頂点座標データを抽出し、データバッファ１４３に転送する。データバッファ１４３は、時系列データ内の折れ線頂点座標データを、１ブロックの折れ線近似後時系列データとして記憶する。
【０１１４】
ステップＳ７０において、符号化ユニット１４５は、データバッファ１４３内に蓄積された１ブロックの折れ線近似後時系列データを読出し、可変長符号化処理を実行する。符号化ユニット１４５は、可変長符号化処理の結果、圧縮済みデータを生成し、通信ユニット１４１に転送する。通信ユニット１４１は、圧縮済みデータを受信すると、当該圧縮済みデータをシステムメモリ１３に転送すると共に、圧縮済みデータを生成した旨の応答をＣＰＵ１２に発行する。
【０１１５】
ステップＳ９０において、ＣＰＵ１２は、圧縮済みデータを生成した旨の応答を受信すると、システムメモリ１３から圧縮済みデータを読出し、データ取得要求に対する応答として、外部入出力インタフェース回路１５を介して携帯端末２に転送する。
【０１１６】
以上により、時系列データ圧縮システム１の全体動作が終了する。
【０１１７】
１．２．２  折れ線近似処理の際の動作について
次に、第１実施形態に係る折れ線近似処理の際の動作について、図１２を用いて説明する。図１２は、第１実施形態に係る時系列データ圧縮装置における折れ線近似処理の際の動作を示すフローチャートである。なお、以下の説明では、入力データＦＩＦＯ２０１は、通信ユニット１４１から時系列データを入力されており、レジスタ２０３は、許容誤差値ｅを固定値として予め保持しているものとして説明する。
【０１１８】
図１２に示すように、ステップＳ５１において、折れ線近似ユニット１４２は、ΔＴカウンタ２０７、及びレジスタ２１３〜２１４に保持されている値を初期化する。具体的には、ΔＴカウンタ２０７には時刻データｃ、時刻データ（ｃ−１）、及び値（ｃ−ｓ）の初期値が、レジスタ２１３には判定上限情報Ｍ１の初期値が、レジスタ２１４には判定下限情報Ｍ２の初期値が、それぞれ以下に示す通り設定される。
【０１１９】
ｃ＝１、ｃ−１＝１−１＝０、ｃ−ｓ＝１−０＝１
Ｍ１＝［Ｘｍ１、Ｔｍ１］＝［１、０］
Ｍ２＝［Ｘｍ２、Ｔｍ２］＝［−１、０］
ステップＳ５１は、機能（１−１）を実行するための動作に対応する。
【０１２０】
ステップＳ５２において、折れ線近似ユニット１４２は、時系列データの最初の座標（０、Ｘ（０））を折れ線近似座標データとして出力する。具体的には、入力データＦＩＦＯ２０１は、最初のセンサデータＸ（０）（Ｔ＝０）をレジスタ２０８に出力する。レジスタ２０８は、受信したセンサデータＸ（０）をレジスタ２０９に出力する。レジスタ２０９は、受信したセンサデータＸ（０）を保持すると共に、レジスタ２０２及び出力データＦＩＦＯ２２０に出力する。レジスタ２０２は、受信したセンサデータＸ（０）を基準座標ＰｓのセンサデータＸ（ｓ）（ｓ＝０）として保持する。ΔＴカウンタ２０７は、時刻データ（ｃ−１＝０）を出力データＦＩＦＯ２２０に出力する。出力データＦＩＦＯ２２０は、受信した時刻データ“０”及びセンサデータＸ（０）の組（０、Ｘ（０））を折れ線頂点座標データとしてデータバッファ１４３に出力する。
【０１２１】
ステップＳ５２は、機能（１−４）を実行するための動作に対応する。
【０１２２】
続いて、折れ線近似ユニット１４２は、以降の各座標データが折れ線頂点座標データであるか否かを判定するためのループ処理に入る準備をする。具体的には、入力データＦＩＦＯ２０１は、次のセンサデータＸ（１）（Ｔ＝１）をレジスタ２０８、及び加減算器２０４〜２０６に出力する。レジスタ２０８は、受信したセンサデータＸ（１）を保持する。また、レジスタ２０２は、保持しているセンサデータＸ（０）を加減算器２０４〜２０６に出力する。レジスタ２０３は、保持している許容誤差値ｅを加減算器２０５〜２０６に出力する。
【０１２３】
加減算器２０４は、受信したセンサデータＸ（１）及びセンサデータＸ（０）に基づいて加減算を実行し、値（Ｘ（１）−Ｘ（０））をレジスタ２１０に出力する。レジスタ２１０は、受信した値（Ｘ（１）−Ｘ（０））を保持する。
【０１２４】
加減算器２０５は、受信したセンサデータＸ（１）、センサデータＸ（０）、及び許容誤差値ｅに基づいて加減算を実行し、値（Ｘ（１）−Ｘ（０）＋ｅ）をレジスタ２１１に出力する。レジスタ２１１は、受信した値（Ｘ（１）−Ｘ（０）＋ｅ）を保持する。
【０１２５】
加減算器２０６は、受信したセンサデータＸ（１）、センサデータＸ（０）、及び許容誤差値ｅに基づいて加減算を実行し、値（Ｘ（１）−Ｘ（０）−ｅ）をレジスタ２１２に出力する。レジスタ２１２は、受信した値（Ｘ（１）−Ｘ（０）−ｅ）を保持する。
【０１２６】
以上でループ処理に入る準備が完了し、以降の処理において、ループ処理が実行される。なお、以下の説明では、入力データＦＩＦＯ２０１は、評価座標ＰｃのセンサデータＸ（ｃ）を出力しているものとする。レジスタ２０２は、基準座標ＰｓのセンサデータＸ（ｓ）を保持しているものとする。ΔＴカウンタ２０７は、時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）を保持しているものとする。レジスタ２０８は、センサデータＸ（ｃ）を保持し、レジスタ２０９は、センサデータＸ（ｃ−１）を保持しているものとする。レジスタ２１０〜２１２は、それぞれ値（Ｘ（ｃ）−Ｘ（ｓ））、（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）、及び（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を保持しているものとする。レジスタ２１３は、判定上限情報Ｍ１＝［Ｘｍ１、Ｔｍ１］を保持し、レジスタ２１４は、判定下限情報Ｍ２＝［Ｘｍ２、Ｔｍ２］を保持しているものとする。
【０１２７】
ステップＳ５３において、折れ線近似ユニット１４２は、４つの外積演算を並列して同時に実行する。
【０１２８】
具体的には、ΔＴカウンタ２０７は、保持している値（ｃ−ｓ）をノードｎ０〜ｎ２の各々に出力する。レジスタ２１０は、保持している値（Ｘ（ｃ）−Ｘ（ｓ））をノードｎ０に出力する。レジスタ２１１は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）をノードｎ１に出力する。レジスタ２１２は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）をノードｎ２に出力する。ノードｎ０は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ））を統合し、評価情報Ｇ０＝［Ｘ（ｃ）−Ｘ（ｓ）、ｃ−ｓ］として外積回路２１５及び２１６に出力する。ノードｎ１は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）を統合し、誤差上限情報Ｇ１＝［Ｘ（ｃ）−Ｘ（ｓ）＋ｅ、ｃ−ｓ］として外積回路２１７に出力する。ノードｎ２は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を統合し、誤差下限情報Ｇ２＝［Ｘ（ｃ）−Ｘ（ｓ）−ｅ、ｃ−ｓ］として外積回路２１８に出力する。レジスタ２１３は、保持している判定上限情報Ｍ１を外積回路２１５及び２１７に出力する。レジスタ２１４は、保持している判定下限情報Ｍ２を外積回路２１６及び２１８に出力する。
【０１２９】
外積回路２１５は、受信した評価情報Ｇ０及び判定上限情報Ｍ１に基づいて外積演算Ｇ０×Ｍ１を実行し、Ｇ０×Ｍ１の符号情報を判定回路２１９に出力する。外積回路２１６は、受信した評価情報Ｇ０及び判定下限情報Ｍ２に基づいて外積演算Ｇ０×Ｍ２を実行し、Ｇ０×Ｍ２の符号情報を判定回路２１９に出力する。外積回路２１７は、受信した誤差上限情報Ｇ１及び判定上限情報Ｍ１に基づいて外積演算Ｇ１×Ｍ１を実行し、Ｇ１×Ｍ１の符号情報を判定回路２１９に出力する。外積回路２１８は、受信した誤差下限情報Ｇ２及び判定下限情報Ｍ２に基づいて外積演算Ｇ２×Ｍ２を実行し、Ｇ２×Ｍ２の符号情報を判定回路２１９に出力する。つまり、外積回路２１５〜２１８による４つの外積演算（８つの乗算）は、同時に実行される。
【０１３０】
ステップＳ５４において、折れ線近似ユニット１４２は、判定（１−２）及び判定（１−３）を実行する。具体的には、判定回路２１９は、受信したＧ０×Ｍ１の符号情報に基づき、Ｇ０×Ｍ１が負（Ｇ０×Ｍ１＜０）であるか否かを判定する。また、判定回路２１９は、受信したＧ０×Ｍ２の符号情報に基づき、Ｇ０×Ｍ２が正（Ｇ０×Ｍ２＞０）であるか否かを判定する。判定回路２１９は、判定（１−２）及び判定（１−３）の結果、Ｇ０×Ｍ１＜０かつＧ０×Ｍ２＞０であると判定した場合（ステップＳ５４；ｙｅｓ）、基準座標Ｐｓと評価座標Ｐｃとの間に折れ線は無いと判定し、ステップＳ５７に進む。一方、判定回路２１９は、Ｇ０×Ｍ２≧０又はＧ０×Ｍ２≦０であると判定した場合（ステップＳ５４；ｎｏ）、基準座標Ｐｓと評価座標Ｐｃとの間に出力すべき折れ線頂点座標データがあると判定し、ステップＳ５５に進む。
【０１３１】
ステップＳ５３及びステップＳ５４は、機能（１−２）及び機能（１−３）を実行するための動作に対応する。
【０１３２】
ステップＳ５５において、折れ線近似ユニット１４２は、判定（１−２）及び判定（１−３）の結果に基づき、座標Ｐ（ｃ−１）を新たな基準座標Ｐｓとするための初期化を行う。具体的には例えば、ΔＴカウンタ２０７は、値（ｃ−ｓ）を、レジスタ２１３は、判定上限情報Ｍ１を、レジスタ２１４は、判定下限情報Ｍ２を、それぞれ以下の通り更新する。
【０１３３】
ｃ−ｓ＝ｃ−（ｃ−１）＝１
Ｍ１＝［Ｘｍ１、Ｔｍ１］＝［１、０］
Ｍ２＝［Ｘｍ２、Ｔｍ２］＝［−１、０］
ステップＳ５５は、機能（１−１）を実行するための動作に対応する。
【０１３４】
ステップＳ５６において、折れ線近似ユニット１４２は、折れ線頂点座標データとして座標Ｐ（ｃ−１）を出力する。具体的には例えば、ΔＴカウンタ２０７は、保持している時刻データ（ｃ−１）を、出力データＦＩＦＯ２２０に出力する。また、レジスタ２０９は、保持しているセンサデータＸ（ｃ−１）を、出力データＦＩＦＯ２２０に出力する。出力データＦＩＦＯ２２０は、受信した時刻データ（ｃ−１）及びセンサデータＸ（ｃ−１）の組（ｃ−１、Ｘ（ｃ−１））を折れ線頂点座標データとしてデータバッファ１４３に出力する。
【０１３５】
その後、折れ線近似ユニット１４２は、ステップＳ５３に進む。
【０１３６】
ステップＳ５６は、機能（１−４）を実行するための動作に対応する。
【０１３７】
ステップＳ５７において、折れ線近似ユニット１４２は、センサデータＸ（ｃ）が最終データであるか否かを判定する。具体的には、折れ線近似ユニット１４２は、入力データＦＩＦＯ２０１に出力する予定の時系列データが無い場合、レジスタ２０８に保持されているセンサデータＸ（ｃ）が最終データであると判定し（ステップＳ５７；ｙｅｓ）、ステップＳ５９に進む。判定回路２１９は、入力データＦＩＦＯ２０１に出力する予定のデータがある場合、レジスタ２０８に保持されているセンサデータＸ（ｃ）が最終データではないと判定し（ステップＳ５７；ｎｏ）、ステップＳ５８に進む。
【０１３８】
ステップＳ５８において、折れ線近似ユニット１４２は、判定（１−５）及び判定（１−６）を実行する。
【０１３９】
具体的には、判定回路２１９は、受信したＧ１×Ｍ１の符号情報に基づき、Ｇ１×Ｍ１が負（Ｇ１×Ｍ１＜０）であるか否かを判定する。また、判定回路２１９は、受信したＧ２×Ｍ２の符号情報に基づき、Ｇ２×Ｍ２が正（Ｇ２×Ｍ２＞０）であるか否かを判定する。
【０１４０】
判定回路２１９は、判定（１−５）の結果、Ｇ１×Ｍ１＜０であると判定した場合、レジスタ２１３に保持されている判定上限情報Ｍ１を誤差上限情報Ｇ１で更新する。一方、判定回路２１９は、Ｇ１×Ｍ１≧０であると判定した場合、レジスタ２１３に判定上限情報Ｍ１を引き続き保持させる。
【０１４１】
また、判定回路２１９は、判定（１−６）の結果、Ｇ２×Ｍ２＞０であると判定した場合、レジスタ２１４に保持されている判定下限情報Ｍ２を誤差下限情報Ｇ２で更新する。一方、判定回路２１９は、Ｇ２×Ｍ２≦０であると判定した場合、レジスタ２１４に判定下限情報Ｍ２を引き続き保持させる。
【０１４２】
ΔＴカウンタ２０７は、保持している時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）との各々の値を１ずつカウントアップさせる。
【０１４３】
その後、折れ線近似ユニット１４２は、ステップＳ５３に進む。
【０１４４】
ステップＳ５８は、機能（１−５）、機能（１−６）、及び機能（１−７）を実行するための動作に対応する。
【０１４５】
ステップＳ５９において、折れ線近似ユニット１４２は、最終データであると判定された座標データ（ｃ、Ｘ（ｃ））を折れ線頂点座標データとしてデータバッファ１４３に出力する。具体的には例えば、ΔＴカウンタ２０７は、保持している時刻データｃを、出力データＦＩＦＯ２２０に出力する。また、レジスタ２０８は、保持しているセンサデータＸ（ｃ）をレジスタ２０９に出力する。レジスタ２０９は、受信したセンサデータＸ（ｃ）を出力データＦＩＦＯ２２０に出力する。出力データＦＩＦＯ２２０は、受信した時刻データｃ及びセンサデータＸ（ｃ）の組（ｃ、Ｘ（ｃ））を折れ線頂点座標データとしてデータバッファ１４３に出力する。
【０１４６】
ステップＳ５９は、機能（１−４）を実行するための動作に対応する。
【０１４７】
以上により、折れ線近似動作が終了する。
【０１４８】
なお、上述の通り、ステップＳ５７においてステップＳ５８に進むように判定される場合、ステップＳ５８では、入力データＦＩＦＯ２０１から出力されるセンサデータが更新される。すなわち、ステップＳ５３〜Ｓ５８における一連のループ処理が実行されるたびに、入力データＦＩＦＯ２０１から出力される値が更新される。
【０１４９】
また、ステップＳ５４においてステップＳ５５に進むように判定された場合、ステップＳ５５では、判定上限情報Ｍ１及び判定下限情報Ｍ２に初期値が設定される。このため、ステップＳ５３〜Ｓ５６における一連のループ処理が一度実行されると、次のステップＳ５４においては、必ずステップＳ５７に進むように判定される。
【０１５０】
つまり、ステップＳ５３〜Ｓ５８における一連のループ処理においてステップＳ５５〜Ｓ５６が実行されずにステップＳ５８に到達した場合、入力データＦＩＦＯ２０１は、ステップＳ５３の並列化された乗算処理が１回実行された後に、出力するセンサデータを更新する。一方、ステップＳ５５〜Ｓ５６が実行された場合、入力データＦＩＦＯ２０１は、ステップＳ５３における乗算処理が２回実行された後に、出力するセンサデータを更新する。
【０１５１】
ステップＳ５３における乗算処理は、他の処理と比較して処理時間を要する。このため、入力データＦＩＦＯ２０１は、ステップＳ５５〜Ｓ５６が実行されない場合、データ圧縮回路１４内のクロックが１クロック動作する期間（以下、単に「１クロック」という。）以内で、出力するセンサデータを更新できる。一方、入力データＦＩＦＯ２０１は、ステップＳ５５〜Ｓ５６が実行された場合、ステージＢにおいてパイプラインストールが発生し、出力するセンサデータを１クロック以内に更新できない可能性がある。換言すると、折れ線近似ユニット１４２は、時系列データ内の或る座標データが折れ線頂点座標データであると判定されない限り、１クロック以内で次の座標データの判定処理に進むことができる。
【０１５２】
１．２．３  符号化処理の際の動作について
次に、第１実施形態に係る符号化処理の際の動作について、図１３を用いて説明する。図１３は、第１実施形態に係る時系列データ圧縮装置における符号化処理の際の動作を示すフローチャートである。なお、可変長符号化回路４０３は、例えば、パラメタＫ＝０から昇順に符号化テーブルを適用して可変長符号化処理を実行するものし、以下の説明では、或るパラメタＫ＝Ｋｎにおける符号化テーブルについて可変長符号化を実行する場合の動作について説明する。
【０１５３】
図１３に示すように、変換回路４０１は、データバッファ１４３から折れ線近似後時系列データを読出し、引き続き、ステップＳ７１において、当該読み出した折れ線近似後時系列データに基づき、符号化対象データを生成する。変換回路４０１は、生成した符号化対象データをセレクタ４０２に転送する。
【０１５４】
ステップＳ７２において、セレクタ４０２は、記憶ユニット１４４から複数の符号化テーブルのうちのパラメタＫ＝Ｋｎの符号化テーブルを、時刻予測誤差データｄＴ及びセンサ予測誤差データｄＸの各々について読み出す。
【０１５５】
ステップＳ７３において、セレクタ４０２は、符号化対象データについて、読み出した符号化テーブルの符号長に係る情報を適用し、当該符号化テーブルを適用した場合に生成される圧縮済みデータの符号長を算出する。具体的には、セレクタ４０２は、時刻データに対応するビット列の符号長と、センサデータに対応するビット列の符号長と、の各々を算出する。
【０１５６】
ステップＳ７４において、セレクタ４０２は、算出した符号長が、同一の符号化対象データについてこれまで算出した符号長よりも短いか否かを判定する。具体的には、セレクタ４０２は、パラメタＫ＝Ｋｎが最初のパラメタの場合（Ｋ＝０）、算出した符号長を一時的に記憶する。セレクタ４０２は、パラメタＫ＝Ｋｎが最初のパラメタでなく、それまでに一時的に符号長を記憶している場合、当該記憶していた符号長と、算出した符号長とを比較し、どちらの符号長が短いかを判定する。判定の結果、算出した符号長の方が短いと判定された場合（ステップＳ７４；ｙｅｓ）、セレクタ４０２は、算出した符号長がこれまで算出した符号長の中で最も短いとみなし、ステップＳ７５に進む。一方、算出した符号長の方が短くないと判定された場合（ステップＳ７４；ｎｏ）、セレクタ４０２は、一時的に記憶していた符号長がこれまで算出した符号長の中で最も短いとみなし、一時的に記憶していた符号長を保持し続けると共にステップＳ７６に進む。
【０１５７】
ステップＳ７５において、セレクタ４０２は、一時的に記憶する符号長を、算出した符号長で更新することにより、最適な符号化テーブルを更新する。その後、セレクタ４０２は、ステップＳ７６を実行する。
【０１５８】
ステップＳ７６において、セレクタ４０２は、ステップＳ７２において読み出された符号化テーブルのパラメタＫ＝Ｋｎが最後のパラメタか否かを判定する。パラメタＫ＝Ｋｎが最後のパラメタでない場合（Ｓ７６；ｎｏ）、ステップＳ７２に進み、次のパラメタＫ＝Ｋ（ｎ＋１）について以降のステップＳ７２〜Ｓ７６を再帰的に実行する。一方、パラメタＫ＝Ｋｎが最後のパラメタである場合（Ｓ７６；ｙｅｓ）、セレクタ４０２は、一時的に記憶している符号長が最短の符号長であると判定する。セレクタ４０２は、当該最短の符号長に対応する符号化テーブルを最適な符号化テーブルとして記憶ユニット１４４から可変長符号化回路４０３に転送する。その後、ステップＳ７７に進む。
【０１５９】
ステップＳ７７において、可変長符号化回路４０３は、最適な符号化テーブルに基づき可変長符号化処理を実行し、圧縮済みデータを生成する。具体的には、変換回路４０１は、再度データバッファ１４３から折れ線近似後時系列データを読出し、符号化対象データを生成する。変換回路４０１は、生成した符号化対象データを可変長符号化回路４０３に転送する。可変長符号化回路４０３は、受信した符号化対象データに、最適な符号化テーブルを適用して可変長符号化処理を実行し、圧縮済みデータを生成する。可変長符号化回路４０３は、生成した圧縮済みデータを通信ユニット１４１に送出する。
【０１６０】
なお、ステップＳ７２〜ステップＳ７６に係る再帰処理は、時刻データに係る部分とセンサデータに係る部分について、独立に実行される。このため、ステップＳ７７では、可変長符号化回路４０３には、時刻データ及びセンサデータをそれぞれ最も短い符号長で符号化したパラメタＫｔ及びＫｘの符号化テーブルを最適な符号化テーブルとして受信する。つまり、可変長符号化回路４０３は、時刻データ及びセンサデータのいずれに対しても最適な可変長符号化処理を実行し、圧縮済みデータを生成することができる。
【０１６１】
以上で、符号化処理の動作が終了する。
【０１６２】
なお、ステップＳ７２〜ステップＳ７６は、機能（２−１）及び機能（２−２）を実行するための動作に対応する。
【０１６３】
ステップＳ７７は、機能（２−３）を実行するための動作に対応する。
【０１６４】
１．３  本実施形態に係る効果について
第１実施形態によれば、高スループットで時系列データを圧縮することができる。本効果につき、以下に説明する。
【０１６５】
ＩｏＴ機器は、内蔵されるセンサにおいて時系列データを取得する。センサで取得される時系列データのビット深度は１６〜２４ビット程度であり、画像データ等のビット深度（８〜１０ビット程度）と比較しても非常に深く、大容量となる。取得された大容量の時系列データは、主として携帯端末等の外部機器に転送されることにより利用される。一方、ＩｏＴ機器は、省リソースの観点から、消費電力の低減、及び外部機器との間の通信の狭帯域化が要求されている。このため、ＩｏＴ機器は、大量の時系列データをＩｏＴ機器内で小さいサイズに圧縮した後に送信したい、という需要が高まっている。
【０１６６】
従来のデータ圧縮技術としては、直交変換、パターンマッチング、及び折れ線近似を伴う技術が知られている。このうち、折れ線近似は、直交変換、及びパターンマッチングと比べて、基本的かつ汎用性の高い技術であり、又データ処理量及び占有するワークメモリが少ない、というメリットを有する。
【０１６７】
しかしながら、従来の折れ線近似を伴うデータ圧縮技術は、シーケンシャルな処理のループの中に、計算時間が比較的長い除算を含む。このため、データ量辺りのスループットが上がらず、結果として電源ＯＮ期間が長くなり、省電力化の障害となっていた。すなわち、従来の技術は、高スループットで時系列データを圧縮する、という点において検討の余地がある。
【０１６８】
第１実施形態に係る構成によれば、時系列データ圧縮装置１０は、折れ線近似ユニット１４２において、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２を同次座標系で処理する機能を備える。また、これに伴い、折れ線近似ユニット１４２は、外積回路２１５〜２１８を備える。外積回路２１５〜２１８の各々は、それぞれＧ０×Ｍ１の符号情報、Ｇ０×Ｍ２の符号情報、Ｇ１×Ｍ１の符号情報、及びＧ２×Ｍ２の符号情報を出力する。このような外積回路２１５〜２１８は、折れ線近似処理において同時に演算可能なように、並列に接続されている。これにより、高スループットで時系列データを圧縮することができる。
【０１６９】
補足すると、従来の折れ線判定処理では、或る座標データが折れ線頂点座標データであるか否かを判定する１回のループ処理の中で、少なくとも３回の除算を用いていた。また、当該３回の除算処理は、各々の処理時間が長いだけでなく、並列して実行できなかった。第１実施形態に係る構成によれば、外積回路２１５〜２１８を備えることによって３回の除算に代えて８回の乗算を実行し、従来の技術と同等の機能を実現することができる。また、上述の通り、外積回路２１５〜２１８は、並列に接続されており、各々に入力されるデータは互いに依存関係が無い。このため、外積回路２１５〜２１８による８回の乗算は、並列して同時に処理を行うことにより、乗算１回に要する時間で処理することができる。これにより、時系列データ内の或る座標データが折れ線頂点座標データであるか否かを判定するに際し、概ね１クロック以内で判定することができる。したがって、１ループ処理に要する処理時間を大幅に削減することができ、高スループットで時系列データを圧縮することができる。また、これに伴い、時系列データの圧縮に際して時系列データ圧縮装置１０の電源をＯＮしなければならない期間を低減することができるため、省電力化を図ることができる。
【０１７０】
また、第１実施形態に係る第１の態様によれば、外積回路２１５〜２１８内の乗算器３０１及び３０２に入力されるデータの一方は、時系列データ内の時刻データＴであるようにしている。これにより、乗算器３０１及び３０２の回路規模を小さく抑えることができる。
【０１７１】
補足すると、時刻データＴは、整数値であるためデータサイズが小さい。また、折れ線近似処理によって期待される時系列データの圧縮率は実用上１０倍程度であるので、折れ線頂点座標データは、平均して１０個の座標データにつき１個の割合で抽出される。つまり、時刻データＴのダイナミックレンジは、整数値で１０程度となる。換言すると、乗算器３０１及び３０２に入力される時刻データＴは、高々５ビット程度である。一方、乗算器３０１及び３０２の回路規模は、２つの入力のうちビット長の短い方の影響を強く受ける。このため、乗算器３０１及び３０２の回路規模は、時刻データＴのビット長の影響を受け、小さい回路規模で実装することができる。したがって、３個の除算器を８個の乗算器に置き換えた場合においても、回路規模を低減することができる。
【０１７２】
また、第１実施形態に係る第２の態様によれば、時系列データ圧縮装置１０は、符号化ユニット１４５を備える。符号化ユニット１４５は、折れ線近似後時系列データに基づき、符号化対象データを生成する。符号化ユニット１４５は、生成された符号化対象データに対して、予め記憶された符号化テーブルを用いて可変長符号化処理を実行し、圧縮済みデータを生成するようにしている。これにより、高スループットで時系列データを圧縮することができる。
【０１７３】
補足すると、圧縮済みデータがＩｏＴ機器３から携帯端末２に転送される場合、通信バンド幅が極端に制限されている場合が多い。このため、時系列データは、上述の如き狭帯域においても問題なく通信できるように、折れ線近似処理に加えて、更にデータサイズを更に圧縮させることが望ましい。一方、折れ線近似処理によって生成される折れ線近似後時系列データは、時系列に並ぶ。このため、折れ線近似後時系列データは、隣接する座標データ間に相関があると想定される。当該相関を利用して生成することにより、折れ線近似後時系列データは、１ブロックにわたって０近辺の値の発生頻度の高い符号化対象データに変換することができる。これにより、可変長符号化に適した符号化対象データを生成できる。したがって、符号化ユニット１４５は、符号化対象データに対して可変長符号化方式を適用することにより、高い圧縮率で圧縮済みデータを生成することができる。
【０１７４】
また、第１実施形態に係る第３の態様によれば、記憶ユニット１４４には、複数の符号化テーブルが予め記憶されている。符号化ユニット１４５は、同一の符号化対象データに対して、当該複数の符号化テーブルの各々を適用し、符号化対象テーブル毎に符号長を算出する。そして符号化ユニット１４５は、算出された複数の符号長の中で最も短いものを選択し、当該最短の符号長で符号化し得るパラメタの符号化テーブルに基づき、圧縮済みデータを生成するようにしている。これにより、折れ線近似後時系列データ１ブロック毎に、最も圧縮率の高いパラメタＫの符号化テーブルを選択することができる。
【０１７５】
補足すると、高い圧縮率を得るためのパラメタＫの設定方針としては、例えば以下の３つが考えられる。
【０１７６】
（ａ）事前に典型的なセンサデータに対して圧縮率評価を実施し、当該評価によってパラメタＫを決定する。以後の符号化処理の際に用いるパラメタＫは固定する。
【０１７７】
（ｂ）折れ線近似後時系列データ１ブロックの中で、動的にパラメタＫを変化させる。例えば、直前までに入力されたデータの特性から、適切なパラメタＫの値を予測する。
【０１７８】
（ｃ）同一の時系列データについて、予め用意された複数のパラメタＫの各々を用いて符号化処理を実行し、最も圧縮率の高いパラメタＫを選択する。
【０１７９】
方針（ａ）は、時系列データそのものに対して符号化処理を実行する場合、適切な結果が得られる可能性が高い。しかしながら、第１実施形態では高スループットで時系列データを圧縮する必要があるため、時系列データは、折れ線近似処理によって事前に間引きされる。これにより、折れ線近似後時系列データは、折れ線近似処理におけるパラメタ（例えば許容誤差値ｅ）による影響を受け、時系列データ本来の特性と異なる特性を持つ場合がある。したがって、方針（ａ）により、高い圧縮率を得るパラメタＫを設定することは困難である。
【０１８０】
方針（ｂ）は、符号化対象データ内の或る座標データに対して符号化するパラメタＫを決定する場合に、当該或る座標データの直前までの座標データから当該或る座標データを精度よく予測できる予測関数が用意できれば、高い圧縮率が期待できる。しかしながら、第１実施形態では高スループットで時系列データを圧縮する必要があるため、時系列データは、折れ線近似処理によって事前に間引きされる。これにより、符号化データ内の座標データは、折れ線近似処理によって隣接データ間の時間的距離が離れてしまい、分布の傾向の変化が激しくなる傾向がある。このため、直前の座標データから次の座標データを精度よく予測することが困難であり、圧縮率が低下してしまう可能性が高い。したがって、方針（ｂ）により、高い圧縮率を得るパラメタＫを設定することは困難である。
【０１８１】
方針（ｃ）は、１座標データ毎にパラメタＫを変化させることはできないものの、１ブロック毎にパラメタＫを変化させることができる。また、実際の符号化対象データに対して、全ての符号化テーブルを適用するため、確実に圧縮率の高いパラメタＫを選択することができる。加えて、符号化処理に要する時間が全体処理に要する時間の中で占める割合は、非常に小さい。このため、高スループットで時系列データを圧縮することも可能である。したがって、方針（ｃ）によるパラメタＫを選択することが適切と考えられる。つまり、第１実施形態に係る第２の態様によれば、高スループットで時系列データを圧縮しつつ、高い圧縮率を確保することができる。
【０１８２】
２．第２実施形態
次に、第２実施形態に係る時系列データ圧縮装置について説明する。第２実施形態に係る時系列データ圧縮装置は、第１実施形態に係る時系列データ圧縮装置における折れ線近似処理において重複していた乗算を省略し、必要な乗算数を更に低減させたものである。以下の説明では、第１実施形態と同様の構成についてはその説明を省略し、第１実施形態と異なる部分について適宜説明する。
【０１８３】
２．１  折れ線近似ユニットの機能について
第２実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの機能の詳細について説明する。
【０１８４】
折れ線近似ユニット１４２は、値ｇ０ｍ１、ｇ０ｍ２、ｇ１ｍ１、及びｇ２ｍ２を定義する。値ｇ０ｍ１はＧ０×Ｍ１の外積値、値ｇ０ｍ２はＧ０×Ｍ２の外積値を示す。また、値ｇ１ｍ１は値ｇ０ｍ１と値ｅＴｍ１との和を示し、値ｇ２ｍ２は、値ｇ０ｍ２と値ｅＴｍ２との差を示す。値ｅＴｍ１は、許容誤差値ｅ及び判定上限情報Ｍ１＝［Ｘｍ１、Ｔｍ１］の第２成分Ｔｍ１との積を示し、値ｅＴｍ２は、許容誤差値ｅ及び判定下限情報Ｍ２＝［Ｘｍ２、Ｔｍ２］の第２成分Ｔｍ２との積を示す。
【０１８５】
これにより、折れ線近似ユニット１４２の有する機能（１−２）、機能（１−３）、機能（１−５）、及び機能（１−６）は、それぞれ以下の判定（１−２ａ）、判定（１−３ａ）、判定（１−５ａ）、及び判定（１−６ａ）を実行し得る構成によって実現される。
【０１８６】
判定（１−２ａ）：ｇ０ｍ１＝Ｇ０×Ｍ１＝（Ｘ（ｃ）−Ｘ（ｓ））Ｔｍ１−（ｃ−ｓ）Ｘｍ１＜０
判定（１−３ａ）：ｇ０ｍ２＝Ｇ０×Ｍ２＝（Ｘ（ｃ）−Ｘ（ｓ））Ｔｍ２−（ｃ−ｓ）Ｘｍ２＞０
判定（１−５ａ）：ｇ１ｍ１＝ｇ０ｍ１＋ｅＴｍ１（＝Ｇ１×Ｍ１）＜０
判定（１−６ａ）：ｇ２ｍ２＝ｇ０ｍ２−ｅＴｍ２（＝Ｇ２×Ｍ２）＞０
このように、機能（１−２ａ）、機能（１−３ａ）の各々は、１回の外積演算、すなわち２回の乗算を実行し得る構成によって実現される。また、機能（１−５ａ）、及び機能（１−６ａ）の各々は、それぞれ１回の乗算を実行し得る構成によって実現される。つまり、或る座標データについて折れ線頂点座標データの有無を評価する処理は、合計６回の乗算を実行し得る構成を含む。
【０１８７】
２．２  折れ線近似ユニットの構成について
次に、第２実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの構成の詳細について図１４を用いて説明する。図１４は、第２実施形態に係る時系列データ圧縮装置の折れ線近似ユニットの構成の一例を説明するための回路図である。
【０１８８】
図１４に示すように、第２実施形態に係る折れ線近似ユニット１４２は、第１実施形態に係る折れ線近似ユニット１４２と同様に、入力データＦＩＦＯ２０１、レジスタ２０２、加減算器２０４〜２０６、ΔＴカウンタ２０７、レジスタ２０８〜２１２、及び出力データＦＩＦＯ２２０を備える。また、第２実施形態に係る折れ線近似ユニット１４２は、レジスタ２０３Ａ、レジスタ２１３Ａ〜２１４Ａ、外積回路２１５Ａ〜２１６Ａ、判定回路２１９Ａ、乗算器２２１〜２２２、及び加減算器２２３〜２２４を更に備える。
【０１８９】
レジスタ２０３Ａは、許容誤差値ｅを予め保持する。レジスタ２０３は、保持している許容誤差値ｅを、加減算器２０４〜２０６の各々、及び乗算器２２１〜２２２の各々に出力する。
【０１９０】
ノードｎ０には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１０から値（Ｘ（ｃ）−Ｘ（ｓ））がそれぞれ入力される。ノードｎ０では、当該入力された各値が同次座標系のベクトルである評価情報Ｇ０＝［Ｘ（ｃ）−Ｘ（ｓ）、ｃ−ｓ］として統合され、外積回路２１５Ａ〜２１６Ａに出力される。
【０１９１】
ノードｎ１には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１１から値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）がそれぞれ入力される。ノードｎ１では、当該入力された各値が同次座標系のベクトルである誤差上限情報Ｇ１＝［Ｘ（ｃ）−Ｘ（ｓ）＋ｅ、ｃ−ｓ］として統合される。誤差上限情報Ｇ１は、判定回路２１９Ａによる判定（１−２ａ）及び判定（１−３ａ）の結果がいずれも真であり、かつ判定（１−５ａ）の結果が真である場合、レジスタ２１３Ａに出力される。
【０１９２】
ノードｎ２には、ΔＴカウンタ２０７から値（ｃ−ｓ）が、レジスタ２１２から値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）がそれぞれ入力される。ノードｎ２では、当該入力された各値が同次座標系のベクトルである誤差下限情報Ｇ２＝［Ｘ（ｃ）−Ｘ（ｓ）−ｅ、ｃ−ｓ］として統合される。誤差下限情報Ｇ２は、判定回路２１９Ａによる判定（１−２ａ）及び判定（１−３ａ）の結果がいずれも真であり、かつ判定（１−６ａ）の結果が真である場合、レジスタ２１４Ａに出力される。
【０１９３】
レジスタ２１３Ａは、判定上限情報Ｍ１＝［Ｘｍ１、Ｔｍ１］を保持する。レジスタ２１３Ａは、保持する判定上限情報Ｍ１を外積回路２１５Ａに出力する。また、レジスタ２１３Ａは、判定上限情報Ｍ１の第２成分Ｔｍ１を乗算器２２１に出力する。
【０１９４】
具体的には、レジスタ２１３Ａは、判定回路２１９Ａによる判定（１−２ａ）及び判定（１−３ａ）の結果がいずれも真であり、かつ判定（１−５ａ）の結果が真である場合、保持する判定上限情報Ｍ１を、ノードｎ１から出力される誤差上限情報Ｇ１で更新する。また、レジスタ２１３Ａは、判定回路２１９Ａによって判定（１−２ａ）及び判定（１−３ａ）の結果のいずれかが否であった場合、保持する判定上限情報Ｍ１をＭ１＝［１、０］に更新する。
【０１９５】
レジスタ２１４Ａは、判定下限情報Ｍ２＝［Ｘｍ２、Ｔｍ２］を保持する。レジスタ２１４Ａは、保持する判定下限情報Ｍ２を外積回路２１６Ａに出力する。また、レジスタ２１４Ａは、判定下限情報Ｍ２の第２成分Ｔｍ２を乗算器２２２に出力する。
【０１９６】
具体的には、レジスタ２１４Ａは、判定回路２１９Ａによる判定（１−２ａ）及び判定（１−３ａ）の結果がいずれも真であり、かつ判定（１−６ａ）の結果が真である場合、保持する判定下限情報Ｍ２を、ノードｎ２から出力される誤差下限情報Ｇ２で更新する。また、レジスタ２１４Ａは、判定回路２１９Ａによる判定（１−２ａ）及び判定（１−３ａ）の結果のいずれかが否であった場合、保持する判定下限情報Ｍ２をＭ２＝［−１、０］に更新する。
【０１９７】
外積回路２１５Ａは、ノードｎ０から出力された評価情報Ｇ０、及びレジスタ２１３から出力された判定上限情報Ｍ１をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づく外積演算を実行する。外積回路２１５Ａは、当該外積演算の結果、評価情報Ｇ０と判定上限情報Ｍ１との外積値ｇ０ｍ１を加減算器２２３及び判定回路２１９Ａに出力する。
【０１９８】
外積回路２１６Ａは、ノードｎ０から出力された評価情報Ｇ０、及びレジスタ２１４から出力された判定下限情報Ｍ２をそれぞれ第１入力ベクトル及び第２入力ベクトルとして受信し、当該第１入力ベクトル及び第２入力ベクトルに基づく外積演算を実行する。外積回路２１６Ａは、当該外積演算の結果、評価情報Ｇ０と判定下限情報Ｍ２との外積値ｇ０ｍ２を加減算器２２４及び判定回路２１９Ａに出力する。
【０１９９】
乗算器２２１は、レジスタ２０３Ａから出力された許容誤差値ｅ、及びレジスタ２１３Ａから出力された判定上限情報Ｍ１の第２成分Ｔｍ１を、それぞれ第１入力値及び第２入力値として受信する。乗算器２２１は、第１入力値に対して第２入力値を乗ずる乗算を実行し、実行結果の値ｅＴｍ１を判定回路２１９Ａに出力する。
【０２００】
乗算器２２２は、レジスタ２０３Ａから出力された許容誤差値ｅ、及びレジスタ２１４Ａから出力された判定下限情報Ｍ２の第２成分Ｔｍ２を、それぞれ第１入力値及び第２入力値として受信する。乗算器２２２は、第１入力値に対して第２入力値を乗ずる乗算を実行し、実行結果の値ｅＴｍ２を判定回路２１９Ａに出力する。
【０２０１】
加減算器２２３は、外積回路２１５Ａから出力された値ｇ０ｍ１、及び乗算器２２１から出力された値ｅＴｍ１を、それぞれ第１入力値及び第２入力値として受信する。加減算器２２３は、第１入力値に対して第２入力値を足す加算を実行し、実行結果の値ｇ１ｍ１＝ｇ０ｍ１＋ｅＴｍ１を判定回路２１９Ａに出力する。
【０２０２】
加減算器２２４は、外積回路２１６Ａから出力された値ｇ０ｍ２、及び乗算器２２２から出力された値ｅＴｍ２を、それぞれ第１入力値及び第２入力値として受信する。加減算器２２４は、第１入力値に対して第２入力値を減じる減算を実行し、実行結果の値ｇ２ｍ２＝ｇ０ｍ２−ｅＴｍ２を判定回路２１９Ａに出力する。
【０２０３】
判定回路２１９Ａは、外積回路２１５Ａから入力された外積値ｇ０ｍ１に基づき、判定（１−２ａ）を実行する。具体的には、判定回路２１９Ａは、値ｇ０ｍ１が負（ｇ０ｍ１＜０）である場合、評価値が折れ線判定の傾きの上限値を下回っている（判定（１−２ａ）の結果は真である）、と判定する。一方、判定回路２１９Ａは、値ｇ０ｍ１が０以上（ｇ０ｍ１≧０）である場合、評価値が折れ線判定の傾きの上限値を上回っている（判定（１−２ａ）の結果は否である）、と判定する。また、判定回路２１９Ａは、外積回路２１６Ａから入力された外積値ｇ０ｍ２に基づき、判定（１−３ａ）を実行する。具体的には、判定回路２１９は、値ｇ０ｍ２が正（ｇ０ｍ２＞０）である場合、評価値が折れ線判定の傾きの下限値を上回っている（判定（１−３ａ）の結果は真である）、と判定する。一方、判定回路２１９Ａは、値ｇ０ｍ２が０以下（ｇ０ｍ２≦０）である場合、評価値が折れ線判定の傾きの下限値を下回っている（判定（１−３ａ）の結果は否である）、と判定する。すなわち、判定回路２１９Ａは、評価座標Ｐ（ｃ）に対する判定（１−２ａ）の結果及び判定（１−３ａ）の結果がいずれも真である場合、評価座標Ｐ（ｃ）の１つ前の時刻（ｃ−１）の座標Ｐ（ｃ−１）が折れ線頂点座標データでないと判定する。また、判定回路２１９Ａは、評価座標Ｐ（ｃ）に対する判定（１−２ａ）の結果及び判定（１−３ａ）の結果のいずれかが否である場合、座標Ｐ（ｃ−１）が折れ線頂点座標データであると判定する。
【０２０４】
判定回路２１９Ａは、加減算器２２３から入力された値ｇ１ｍ１に基づき、判定（１−５ａ）を実行する。具体的には、判定回路２１９Ａは、値ｇ１ｍ１が負（ｇ１ｍ１＜０）である場合、評価値の許容誤差上限値が折れ線判定の傾きの上限値を下回っている（判定（１−５ａ）の結果は真である）、と判定する。一方、判定回路２１９Ａは、値ｇ１ｍ１が０以上（ｇ１ｍ１≧０）である場合、評価値の許容誤差上限値が折れ線判定の傾きの上限値を上回っている（判定（１−５ａ）の結果は否である）、と判定する。すなわち、判定回路２１９Ａは、判定（１−５ａ）の結果が真である場合、判定上限情報Ｍ１を誤差上限情報Ｇ１で更新すべきであると判定し、判定（１−５ａ）の結果が否である場合、判定上限情報Ｍ１を現状のまま維持すべきであると判定する。
【０２０５】
判定回路２１９Ａは、加減算器２２４から入力された値ｇ２ｍ２に基づき、判定（１−６ａ）を判定する。具体的には、判定回路２１９Ａは、値ｇ２ｍ２が正（ｇ２ｍ２＞０）である場合、評価値の許容誤差下限値が折れ線判定の傾きの下限値を上回っている（判定（１−６ａ）の結果は真である）、と判定する。また、判定回路２１９Ａは、値ｇ２ｍ２が０以下（ｇ２ｍ２≦０）である場合、評価値の許容誤差下限値が折れ線判定の傾きの下限値を下回っている（判定（１−６ａ）の結果は否である）、と判定する。すなわち、判定回路２１９Ａは、判定（１−６ａ）の結果が真である場合、判定下限情報Ｍ２を誤差下限情報Ｇ２で更新すべきであると判定し、判定（１−６ａ）の結果が否である場合、判定下限情報Ｍ２を現状のまま維持すべきであると判定する。
【０２０６】
図１５は、第２実施形態に係る時系列データ圧縮装置の外積回路２１５Ａ〜２１６Ａの構成の一例を説明するための回路図である。図１５に示すように、外積回路２１５Ａ〜２１６Ａは、同一の構成を備えており、例えば乗算器３０１〜３０２、及び加減算器３０４を備えている。図１５の例では、外積回路２１５Ａ〜２１６Ａには、同次座標系のベクトルＢ１＝［Ｘ１、Ｔ１］及びＢ２＝［Ｘ２、Ｔ２］がそれぞれ第１入力ベクトル及び第２入力ベクトルとして入力されている場合を一例として示している。第１入力ベクトルＢ１は、例えば評価情報Ｇ０である。第２入力ベクトルＢ２は、例えば判定上限情報Ｍ１、又は判定下限情報Ｍ２である。
【０２０７】
乗算器３０１は、第１入力ベクトルＢ１の第１成分Ｘ１と、第２入力ベクトルＢ２の第２成分Ｔ２とが、それぞれ第１入力値及び第２入力値として入力される。乗算器３０１は、第１入力値Ｘ１及び第２入力値Ｔ２の乗算結果Ｘ１Ｔ２を加減算器３０４に出力する。
【０２０８】
乗算器３０２は、第２入力ベクトルＢ２の第１成分Ｘ２と、第１入力ベクトルＢ１の第２成分Ｔ１とが、それぞれ第１入力値及び第２入力値として入力される。乗算器３０２は、第１入力値Ｘ２及び第２入力値Ｔ１の乗算結果Ｘ２Ｔ１を加減算器３０４に出力する。
【０２０９】
加減算器３０４は、乗算器３０１から入力された値Ｘ１Ｔ２と、乗算器３０２から入力された値Ｘ２Ｔ１とに基づく減算を実行し、値（Ｘ１Ｔ２−Ｘ２Ｔ１）を出力する。
【０２１０】
２．３  折れ線近似処理の際の動作について
次に、第２実施形態に係る折れ線近似処理の際の動作について、図１６を用いて説明する。図１６は、第２実施形態に係る時系列データ圧縮装置における折れ線近似処理の際の動作を示すフローチャートである。なお、以下の説明では、許容誤差値ｅは、固定値が適用されているものとして説明する。
【０２１１】
図１６に示すように、ステップＳ５１において、折れ線近似ユニット１４２は、ΔＴカウンタ２０７、及びレジスタ２１３Ａ〜２１４Ａに保持されている値を初期化する。また、ステップＳ５２において、折れ線近似ユニット１４２は、時系列データの最初の座標（０、Ｘ（０））を折れ線近似座標データとして出力する。
【０２１２】
なお、ステップＳ５１は、機能（１−１）を実行するための動作に対応する。ステップＳ５２は、機能（１−４）を実行するための動作に対応する。ステップＳ５１及びステップＳ５２の具体的な動作は、第１実施形態と同様であるため、その説明を省略する。
【０２１３】
続いて、折れ線近似ユニット１４２は、以降の各座標データが折れ線頂点座標データであるか否かを判定するためのループ処理に入る準備をする。具体的には、入力データＦＩＦＯ２０１は、次のセンサデータＸ（１）（Ｔ＝１）をレジスタ２０８、及び加減算器２０４〜２０６に出力する。レジスタ２０８は、受信したセンサデータＸ（１）を保持する。また、レジスタ２０２は、保持しているセンサデータＸ（０）を加減算器２０４〜２０６に出力する。レジスタ２０３Ａは、保持している許容誤差値ｅを加減算器２０５〜２０６及び乗算器２２１〜２２２に出力する。
【０２１４】
加減算器２０４〜２０６は、第１実施形態と同様の動作を実行する。
【０２１５】
以上でループ処理に入る準備が完了し、以降の処理において、ループ処理が実行される。なお、以下の説明では、入力データＦＩＦＯ２０１は、評価座標ＰｃのセンサデータＸ（ｃ）を出力しているものとする。レジスタ２０２は、基準座標ＰｓのセンサデータＸ（ｓ）を保持しているものとする。ΔＴカウンタ２０７は、時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）を保持しているものとする。レジスタ２０８は、センサデータＸ（ｃ）を保持し、レジスタ２０９は、センサデータＸ（ｃ−１）を保持しているものとする。レジスタ２１０〜２１２は、それぞれ値（Ｘ（ｃ）−Ｘ（ｓ））、（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）、及び（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を保持しているものとする。レジスタ２１３Ａは、判定上限情報Ｍ１＝［Ｘｍ１、Ｔｍ１］を保持し、レジスタ２１４Ａは、判定下限情報Ｍ２＝［Ｘｍ２、Ｔｍ２］を保持しているものとする。
【０２１６】
ステップＳ５３ａにおいて、折れ線近似ユニット１４２は、２つの外積演算及び２つの乗算を並列して同時に実行する。
【０２１７】
具体的には、ΔＴカウンタ２０７は、保持している値（ｃ−ｓ）をノードｎ０〜ｎ２の各々に出力する。レジスタ２１０は、保持している値（Ｘ（ｃ）−Ｘ（ｓ））をノードｎ０に出力する。レジスタ２１１は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）をノードｎ１に出力する。レジスタ２１２は、保持している値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）をノードｎ２に出力する。ノードｎ０は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ））を評価情報Ｇ０＝［Ｘ（ｃ）−Ｘ（ｓ）、ｃ−ｓ］として統合する。ノードｎ１は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ）＋ｅ）を誤差上限情報Ｇ１＝［Ｘ（ｃ）−Ｘ（ｓ）＋ｅ、ｃ−ｓ］として統合する。ノードｎ２は、受信した値（ｃ−ｓ）及び値（Ｘ（ｃ）−Ｘ（ｓ）−ｅ）を誤差下限情報Ｇ２＝［Ｘ（ｃ）−Ｘ（ｓ）−ｅ、ｃ−ｓ］として統合する。レジスタ２１３Ａは、保持している判定上限情報Ｍ１を外積回路２１５Ａに出力する。また、レジスタ２１３Ａは、保持している判定上限情報Ｍ１の第２成分Ｔｍ１を乗算器２２１に出力する。レジスタ２１４Ａは、保持している判定下限情報Ｍ２を外積回路２１６Ａに出力する。また、レジスタ２１４Ａは、保持している判定下限情報Ｍ２の第２成分Ｔｍ２を乗算器２２２に出力する。
【０２１８】
外積回路２１５Ａは、受信した評価情報Ｇ０及び判定上限情報Ｍ１に基づいて外積演算Ｇ０×Ｍ１を実行し、外積値ｇ０ｍ１を判定回路２１９Ａ及び加減算器２２３に出力する。外積回路２１６Ａは、受信した評価情報Ｇ０及び判定下限情報Ｍ２に基づいて外積演算Ｇ０×Ｍ２を実行し、外積値ｇ０ｍ２を判定回路２１９Ａ及び加減算器２２４に出力する。乗算器２２１は、受信した許容誤差値ｅ及び判定上限情報Ｍ１の第２成分Ｔｍ１に基づいて乗算を実行し、値ｅＴｍ１を加減算器２２３に出力する。乗算器２２２は、受信した許容誤差値ｅ及び判定下限情報Ｍ２の第２成分Ｔｍ２に基づいて乗算を実行し、値ｅＴｍ２を加減算器２２４に出力する。つまり、外積回路２１５Ａ〜２１６Ａによる２つの外積演算（４つの乗算）と、乗算器２２１〜２２２による２つの乗算と、の合計６つの乗算は、同時に実行される。
【０２１９】
加減算器２２３は、受信した値ｇ０ｍ１及び値ｅＴｍ１に基づいて加算を実行し、値ｇ１ｍ１を判定回路２１９Ａに出力する。加減算器２２４は、受信した値ｇ０ｍ２及び値ｅＴｍ２に基づいて減算を実行し、値ｇ２ｍ２を判定回路２１９Ａに出力する。
【０２２０】
ステップＳ５４ａにおいて、折れ線近似ユニット１４２は、判定（１−２ａ）及び判定（１−３ａ）を実行する。具体的には、判定回路２１９Ａは、受信した値ｇ０ｍ１が負（ｇ０ｍ１＜０）であるか否かを判定する。また、判定回路２１９Ａは、受信した値ｇ０ｍ２が正（ｇ０ｍ２＞０）であるか否かを判定する。判定回路２１９Ａは、判定（１−２ａ）及び判定（１−３ａ）の結果、ｇ０ｍ１＜０かつｇ０ｍ２＞０であると判定した場合（ステップＳ５４ａ；ｙｅｓ）、基準座標Ｐｓと評価座標Ｐｃとの間に折れ線は無いと判定し、ステップＳ５７に進む。一方、判定回路２１９Ａは、ｇ０ｍ１≧０又はｇ０ｍ２≦０であると判定した場合（ステップＳ５４ａ；ｎｏ）、基準座標Ｐｓと評価座標Ｐｃとの間に折れ線頂点座標データがあると判定し、ステップＳ５５に進む。
【０２２１】
ステップＳ５３ａ及びステップＳ５４ａは、機能（１−２）及び機能（１−３）を実行するための動作に対応する。
【０２２２】
ステップＳ５５において、折れ線近似ユニット１４２は、判定（１−２ａ）及び判定（１−３ａ）の結果に基づき、座標Ｐ（ｃ−１）を新たな基準座標Ｐｓとするための初期化を行う。また、ステップＳ５６において、折れ線近似ユニット１４２は、折れ線頂点座標データとして座標Ｐ（ｃ−１）を出力する。その後、折れ線近似ユニット１４２は、ステップＳ５３ａに進む。
【０２２３】
なお、ステップＳ５５は、機能（１−１）を実行するための動作に対応する。ステップＳ５６は、機能（１−４）を実行するための動作に対応する。ステップＳ５５及びステップＳ５６の動作の詳細は、第１実施形態と同様であるため、その説明を省略する。
【０２２４】
ステップＳ５７において、折れ線近似ユニット１４２は、センサデータＸ（ｃ）が最終データであるか否かを判定する。具体的には、折れ線近似ユニット１４２は、入力データＦＩＦＯ２０１に出力する予定の時系列データが無い場合、レジスタ２０８に保持されているセンサデータＸ（ｃ）が最終データであると判定し（ステップＳ５７；ｙｅｓ）、ステップＳ５９に進む。判定回路２１９は、入力データＦＩＦＯ２０１に出力する予定のデータがある場合、レジスタ２０８に保持されているセンサデータＸ（ｃ）が最終データではないと判定し（ステップＳ５７；ｎｏ）、ステップＳ５８ａに進む。
【０２２５】
ステップＳ５８ａにおいて、折れ線近似ユニット１４２は、判定（１−５ａ）及び判定（１−６ａ）を実行する。
【０２２６】
具体的には、判定回路２１９Ａは、受信した値ｇ１ｍ１が負（ｇ１ｍ１＜０）であるか否かを判定する。また、判定回路２１９Ａは、受信した値ｇ２ｍ２が正（ｇ２ｍ２＞０）であるか否かを判定する。
【０２２７】
判定回路２１９Ａは、判定（１−５ａ）の結果、ｇ１ｍ１＜０であると判定した場合、レジスタ２１３Ａに保持されている判定上限情報Ｍ１をノードｎ１から出力される誤差上限情報Ｇ１で更新する。一方、判定回路２１９Ａは、ｇ１ｍ１≧０であると判定した場合、レジスタ２１３Ａに判定上限情報Ｍ１を引き続き保持させる。
【０２２８】
また、判定回路２１９Ａは、判定（１−６ａ）の結果、ｇ２ｍ２＞０であると判定した場合、レジスタ２１４Ａに保持されている判定下限情報Ｍ２をノードｎ２から出力される誤差下限情報Ｇ２で更新する。一方、判定回路２１９Ａは、ｇ２ｍ２≦０であると判定した場合、レジスタ２１４Ａに判定下限情報Ｍ２を引き続き保持させる。
【０２２９】
ΔＴカウンタ２０７は、保持している時刻データｃ及び（ｃ−１）と、値（ｃ−ｓ）との各々の値を１ずつカウントアップさせる。
【０２３０】
その後、折れ線近似ユニット１４２は、ステップＳ５３ａに進む。
【０２３１】
ステップＳ５８ａは、機能（１−５）、機能（１−６）、及び機能（１−７）を実行するための動作に対応する。
【０２３２】
ステップＳ５９において、折れ線近似ユニット１４２は、最終データであると判定された座標データ（ｃ、Ｘ（ｘ））を折れ線頂点座標データとしてデータバッファ１４３に出力する。
【０２３３】
なお、ステップＳ５９は、機能（１−４）を実行するための動作に対応し、Ｓ５９の動作の詳細は、第１実施形態と同様であるため、その説明を省略する。
【０２３４】
以上により、折れ線近似動作が終了する。
【０２３５】
２．４  本実施形態に係る効果について
第２実施形態に係る構成によれば、折れ線近似ユニット１４２は、外積回路２１５Ａ及び２１６Ａを備える。また、折れ線近似ユニット１４２は、乗算器２２１及び乗算器２２２を備える。外積回路２１５Ａは、Ｇ０×Ｍ１の値ｇ０ｍ１を出力し、外積回路２１６Ａは、Ｇ０×Ｍ２の値ｇ０ｍ２を出力する。乗算器２２１は、許容誤差値ｅと判定上限情報Ｍ１の第２成分Ｔｍ１との積の値ｅＴｍ１を出力し、乗算器２２２は、許容誤差値ｅと判定下限情報Ｍ２の第２成分Ｔｍ２との積の値ｅＴｍ２を出力する。このような外積回路２１５Ａ及び２１６Ａと、乗算器２２１及び２２２とは、折れ線近似処理において同時に演算可能なように、並列に接続されている。これにより、回路規模を第１実施形態より更に低減することができる。
【０２３６】
補足すると、第１実施形態に係る構成によれば、外積回路２１５〜２１８を備えることによって８回の乗算を実行することにより、機能（１−１）〜機能（１−７）を実現する構成としていた。この８回の乗算の中には、重複する演算が含まれている。このため、当該重複する演算を省略することにより、更に乗算の回数を減らすことができる。これにより、第２実施形態に係る構成によれば、６回の乗算を実行することにより、同等の機能を実現することができる。このため、必要とする乗算器の個数を２個減じることができる。したがって、回路規模を更に低減することができる。
【０２３７】
３．  変形例等について
実施形態は、上述の第１実施形態及び第２実施形態で述べた形態に限らず、種々の変形が可能である。例えば、上記第１実施形態及び第２実施形態では、第１文献［FAN/SAPA2］に基づく折れ線近似アルゴリズムに同次座標系を適用する例について説明した。しかしながら、実施形態は、第１文献［FAN/SAPA2］に限らず、その他の折れ線近似アルゴリズムについて同次座標系を適用することにより、上記第１実施形態及び第２実施形態と同様の効果を奏することができる。このような場合の例としては、例えば、第１文献［FAN/SAPA2］に代えて、第２文献［TOMEK］を用いる例が一例として挙げられる。
【０２３８】
上述の通り、第１文献［FAN/SAPA2］では、評価座標Ｐｃ（ｃ、Ｘ（ｃ））のセンサデータＸ（ｃ）に許容誤差値ｅを加減することによって、誤差上限情報Ｇ１及び誤差下限情報Ｇ２が算出される。一方、第２文献［TOMEK］では、基準座標Ｐｓ（ｓ、Ｘ（ｓ））のセンサデータＸ（ｓ）に許容誤差値ｅを加減することによって、誤差上限情報Ｇ１及び誤差下限情報Ｇ２が算出される点において第１文献［FAN/SAPA2］と相違する。しかしながら、第２文献［TOMEK］の手法においても、評価情報Ｇ０と、誤差上限情報Ｇ１及び誤差下限情報Ｇ２とに基づき、傾きの大小関係を評価する点においては、第１文献［FAN/SAPA2］と同様である。したがって、上記第１実施形態及び第２実施形態では、第１文献［FAN/SAPA2］に代えて、第２文献［TOMEK］に基づく折れ線近似アルゴリズムが適用可能である。なお、第２文献［TOMEK］に関する情報は、次の通りである。
【０２３９】
［TOMEK］ Tomek I., “Two algorithm for piece-wise linear continuous approximation of functions of one variable”, IEEE Trans. Comput., C-23, t, pp. 445-448, April 1974.
また、上記第１実施形態及び第２実施形態では、評価情報Ｇ０が示す情報が直線の傾きである例について説明した。しかしながら、評価情報Ｇ０は、直線の傾きに限らず、その他の値に基づいて定義されてもよい。例えば、図１７に示すように、評価情報Ｇ０は、或る直線（例えばセンサデータＸ（Ｔ）軸に平行な直線）Ｑ：Ｔ＝ｑと、基準座標Ｐｓ及び評価座標Ｐｃを結ぶ直線との交点Ｐｇ０におけるＸ座標の値であってもよい。これに伴い、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、それぞれ図１７における点Ｐｇ１、点Ｐｇ２、点Ｐｍ１、及び点Ｐｍ２のＸ座標を示す。この場合、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、それぞれの直線の傾きに共通の係数を乗じた値となる。したがって、当該変形例は、評価情報Ｇ０が示す情報が直線の傾きである場合と実質的に同じ計算負荷であり、上記第１実施形態及び第２実施形態と同様の効果が得られる。
【０２４０】
また、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定上限情報Ｍ２は、外積演算Ｇ０×Ｍ１、Ｇ０×Ｍ２、Ｇ１×Ｍ１、及びＧ２×Ｍ２の各々の符号が変化しない範囲において結果が逓倍されるような値が定義されてもよい。
【０２４１】
具体的には、例えば、外積演算Ｇ０×Ｍ１を実行する場合において、評価情報Ｇ０の同次座標成分をＧ０＝［ｋ（Ｘ（ｃ）−Ｘ（ｓ））、（ｃ−ｓ）］（ｋは正の実数）、判定上限情報Ｍ１の同次座標成分をＭ１＝［ｋＸｍ１、Ｔｍ１］と定義した場合においても、外積演算Ｇ０×Ｍ１の符号は変化しない。このように、乗算器３０１及び３０２に入力される値は、外積演算の符号が定性的に変化しない範囲において、時系列データ内の座標データ間の線分の傾きを直接的に示すものでなくてもよい。
【０２４２】
また、例えば、評価情報Ｇ０の同次座標成分をＧ０＝［Ｎ（Ｘ（ｃ）−Ｘ（ｓ））、Ｎ（ｃ−ｓ）］（Ｎは任意の整数）と定義した場合においても、外積演算Ｇ０×Ｍ１の符号は変化しない。このように、乗算器３０１及び３０２に入力される値は、外積演算の符号が定性的に変化しない範囲において、時系列データ内の座標データの値そのものが入力されなくてもよい。
【０２４３】
また、折れ線近似ユニット１４２は、折れ線近似処理の実行に際し、同次座標系を用いる例について説明した。しかしながら、折れ線近似ユニット１４２は、同次座標系に限らず、種々の座標系によるベクトル表現を用いて折れ線近似処理を実行可能である。例えば、評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、傾きα＝ｘ／ｔを示す情報を、第１要素を分母ｔ、第２要素を分子ｘとするベクトル［ｔ、ｘ］として表現する座標系における２次元ベクトルとして定義されてもよい。この場合、機能（１−２）、機能（１−３）、機能（１−５）、及び機能（１−６）による判定は、大小比較の符号が反転する。
【０２４４】
このように、乗算器に入力される評価情報Ｇ０、誤差上限情報Ｇ１、誤差下限情報Ｇ２、判定上限情報Ｍ１、及び判定下限情報Ｍ２は、時系列データ内の時刻データＴ同士の差に基づいて算出される値と、センサデータＸ（Ｔ）同士の差に基づいて算出される値との組を含む。しかしながら、当該値の組は、種々の変形が適用可能である。
【０２４５】
また、時系列データ圧縮装置１０は、データ圧縮回路１４内の記憶ユニット１４４において符号化テーブルを記憶する例を説明したが、これに限られない。例えば、符号化テーブルは、システムメモリ１３に記憶されていてもよい。この場合、符号化ユニット１４５は、符号化処理の実行に際し、通信ユニット１４１を介してシステムメモリ１３に記憶された符号化テーブルを読出す。また例えば、符号化テーブルは、メモリに記憶されずに、可変長符号化回路４０３内で直接計算されるように予め実装されてもよい。
【０２４６】
また、センサ３０は、１個の時系列データ圧縮装置１０に対して１個接続される例を説明したが、これに限らず、複数個接続されていてもよい。この場合、複数のセンサ３０は、独立にシステムメモリ１３に各々のセンサ３０で生成された時系列データを書込む。
【０２４７】
また、フラッシュメモリ２０及びセンサ３０は、ＩｏＴ機器３に含まれる例を説明したが、これに限らず、ＩｏＴ機器３に外付けされてもよい。
【０２４８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２４９】
１…時系列データ圧縮システム、２…携帯端末、３…ＩｏＴ機器、１０…時系列データ圧縮装置、１１…システムバス、１２…ＣＰＵ、１３…システムメモリ、１４…データ圧縮回路、１５…外部入出力インタフェース回路、１６…フラッシュメモリインタフェース回路、１７…センサインタフェース回路、２０…フラッシュメモリ、３０…センサ、１４１…通信ユニット、１４２…折れ線近似ユニット、１４３…データバッファ、１４４…記憶ユニット、１４５…符号化ユニット、２０１…入力データＦＩＦＯ、２０２，２０３，２０８〜２１４…レジスタ、２０４〜２０６，２２３，２２４，３０４…加減算器、２０７…ΔＴカウンタ、２１５〜２１８，２１５Ａ，２１６Ａ…外積回路、２１９，２１９Ａ…判定回路、２２０…出力データＦＩＦＯ、２２１，２２２，３０１，３０２…乗算器、３０３…比較器、４０１…変換回路、４０２…セレクタ、４０３…可変長符号化回路、１００ａ…時系列データ、１００ｂ…圧縮済みデータ、１００ｃ…折れ線近似後時系列データ、１００ｄ…符号化対象データ、２００ａ，２００ｂ…符号化テーブル。
【図１】
0006461029.tif 000002
【図２】
0006461029.tif 000003
【図３】
0006461029.tif 000004
【図４】
0006461029.tif 000005
【図５】
0006461029.tif 000006
【図６】
0006461029.tif 000007
【図７】
0006461029.tif 000008
【図８】
0006461029.tif 000009
【図９】
0006461029.tif 000010
【図１０】
0006461029.tif 000011
【図１１】
0006461029.tif 000012
【図１２】
0006461029.tif 000013
【図１３】
0006461029.tif 000014
【図１４】
0006461029.tif 000015
【図１５】
0006461029.tif 000016
【図１６】
0006461029.tif 000017
【図１７】
0006461029.tif 000018