(57)【要約】【課題】ゼロ値を含むログデータの圧縮率を向上できるデータ圧縮プログラムを提供することを目的とする。【解決手段】データ圧縮プログラムは、一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、選択したパターンデータを識別する識別情報を含む圧縮データを出力する、処理をコンピュータに実行させる。【選択図】図８
2017216644.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、
前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、
選択したパターンデータを識別する識別情報を含む圧縮データを出力する、
処理をコンピュータに実行させるためのデータ圧縮プログラム。
【請求項２】
前記パターンデータを選択する処理は、前記ログデータに含まれる数値データが１６進数表記である場合、前記ログデータと１６進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、
ことを特徴とする請求項１に記載のデータ圧縮プログラム。
【請求項３】
前記パターンデータを選択する処理は、前記ログデータに含まれる数値データが１６進数表記である場合、前記数値データがゼロ値データであるか否かに基づいて、前記ログデータから２進数表記のビットデータを生成し、前記ビットデータと２進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、
ことを特徴とする請求項１に記載のデータ圧縮プログラム。
【請求項４】
前記記憶部は、前記ログデータに出現するゼロ値データの出現傾向に応じたパターンデータを記憶する、
ことを特徴とする請求項１から３のいずれか１項に記載のデータ圧縮プログラム。
【請求項５】
前記ログデータは、所定値以上のゼロ値データを含む、
ことを特徴とする請求項１から４のいずれか１項に記載のデータ圧縮プログラム。
【請求項６】
一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、
前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、
選択したパターンデータを識別する識別情報を含む圧縮データを出力する、
処理をコンピュータが実行するデータ圧縮方法。
【請求項７】
一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する選択手段と、
前記選択手段が選択したパターンデータを識別する識別情報を含む圧縮データを出力する出力手段と、
を有するデータ圧縮装置。
【請求項８】
ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、
抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、
選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、
前記数値データに前記ゼロ値データを補填した復元データを出力する、
処理をコンピュータに実行させるためのデータ復元プログラム。
【請求項９】
ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、
抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、
選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、
前記数値データに前記ゼロ値データを補填した復元データを出力する、
処理をコンピュータが実行するデータ復元方法。
【請求項１０】
ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出する抽出手段と、
前記抽出手段が抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択する選択手段と、
前記選択手段が選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填する補填手段と、
前記数値データに前記ゼロ値データを補填した復元データを出力する出力手段と、
を有するデータ復元装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、データ圧縮プログラム、データ圧縮方法、データ圧縮装置、データ復元プログラム、データ復元方法、及びデータ復元装置に関する。
【背景技術】
【０００２】
列方向に相関がある周期的な１組のバイト値を行ごとに符号化して、情報量を圧縮する技法が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１４４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した技法では処理対象の行に属する各バイト値と直前の行に属する各バイト値を１バイトごとに比較し、比較結果に基づいて、情報量が圧縮されている。具体的には、各バイトの一致と不一致を一致「０」と不一致「１」の１ビットで表すビットマスクと不一致に該当するバイト値を利用して、情報量が圧縮されている。したがって、例えば処理対象の行に８００バイト分のバイト値が属していれば、８００ビット、すなわち、１００バイトのビットマスクと不一致に該当するバイト値を利用して、情報量が圧縮される。
【０００５】
ここで、行のごく一部、例えば上述した８００バイト分のバイト値の中で１バイトだけが不一致である場合、８００バイトは一致「０」が大部分である１００バイトのビットマスクと不一致に該当する１バイトのバイト値、すなわち合計１０１バイトに圧縮される。しかしながら、この場合、圧縮率としては１割程度にしかならないという問題がある。
【０００６】
そこで、１つの側面では、ゼロ値を含むログデータの圧縮率を向上できるデータ圧縮プログラム、データ圧縮方法、及びデータ圧縮装置を提供することを目的とする。また、データ圧縮プログラム、データ圧縮方法、又はデータ圧縮装置によって圧縮されたログデータを復元できるデータ復元プログラム、データ復元方法、及びデータ復元装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書に開示のデータ圧縮プログラムは、一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、選択したパターンデータを識別する識別情報を含む圧縮データを出力する、処理をコンピュータに実行させるためのデータ圧縮プログラムである。
【０００８】
本明細書に開示のデータ圧縮方法は、一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、選択したパターンデータを識別する識別情報を含む圧縮データを出力する、処理をコンピュータが実行するデータ圧縮方法である。
【０００９】
本明細書に開示のデータ圧縮装置は、一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する選択手段と、前記選択手段が選択したパターンデータを識別する識別情報を含む圧縮データを出力する出力手段と、を有するデータ圧縮装置である。
【００１０】
本明細書に開示のデータ復元プログラムは、ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、前記数値データに前記ゼロ値データを補填した復元データを出力する、処理をコンピュータに実行させるためのデータ復元プログラムである。
【００１１】
本明細書に開示のデータ復元方法は、ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、前記数値データに前記ゼロ値データを補填した復元データを出力する、処理をコンピュータが実行するデータ復元方法である。
【００１２】
本明細書に開示のデータ復元装置は、ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出する抽出手段と、前記抽出手段が抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択する選択手段と、前記選択手段が選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填する補填手段と、前記数値データに前記ゼロ値データを補填した復元データを出力する出力手段と、を有するデータ復元装置である。
【発明の効果】
【００１３】
本明細書に開示のデータ圧縮プログラム、データ圧縮方法、及びデータ圧縮装置によれば、ゼロ値を含むログデータの圧縮率を向上することができる。また、本明細書に開示のデータ復元プログラム、データ復元方法、及びデータ復元装置によれば、データ圧縮プログラム、データ圧縮方法、又はデータ圧縮装置によって圧縮されたログデータを復元することができる。
【図面の簡単な説明】
【００１４】
【図１】図１はデータ圧縮システムの一例である。
【図２】図２はデータ圧縮装置のハードウェア構成の一例である。
【図３】図３はデータ圧縮装置の機能ブロック図の一例である。
【図４】図４（ａ）はログデータの一例である。図４（ｂ）は第１実施形態に係るパターンデータ記憶部の一例である。
【図５】図５はデータ圧縮装置が実行する処理の一例を表すフローチャートである。
【図６】図６は第１実施形態に係る圧縮処理の一例を説明するための図である。
【図７】図７は第２実施形態に係るパターンデータ記憶部の一例である。
【図８】図８は第２実施形態に係る圧縮処理の一例を説明するための図である。
【図９】図９はデータ復元装置の機能ブロック図の一例である。
【図１０】図１０はデータ復元装置が実行する処理の一例を表すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本件を実施するための形態について図面を参照して説明する。
【００１６】
（第１実施形態）
図１はデータ圧縮システムＳの一例である。データ圧縮システムＳは、複数のセンサ１００とデータ圧縮装置２００とを含んでいる。複数のセンサ１００とデータ圧縮装置２００は例えば通信ケーブルＣによって接続されている。各センサ１００は、図１に示すように、例えば河川上流の堤防及びその河川下流の堤防に設置される。より詳しくは、各センサ１００は河川上流の堤防及び河川下流の堤防の川べりなどにそれぞれ設置される。図１では、２つのセンサ１００が示されているが、河川上流の堤防と河川下流の堤防の間に複数のセンサ１００が設置されてもよい。各センサ１００は河川の水位を検出する。例えば、河川上流の堤防に第１検出ポイントとして設置されたセンサ１００は河川上流の水位を検出する。河川下流の堤防に第２検出ポイントとして設置されたセンサ１００は河川下流の水位を検出する。河川の水位がセンサ１００に到達していなければ、センサ１００は水位「０」を検出する。逆に、河川の水位が到達したセンサ１００は河川の水位に応じた数値を検出する。
【００１７】
データ圧縮装置２００は例えば堤防を挟んで河川上流及び河川下流と逆側に配置された観測所１０などに設置されている。データ圧縮装置２００としては例えばサーバ装置がある。データ圧縮装置２００として、例えばPersonal Computer（ＰＣ）、スマートフォン、タブレット端末といった端末装置が利用されてもよい。データ圧縮装置２００は各センサ１００に定期的又は非定期的にアクセスし、各センサ１００が検出した水位を表す数値データを含むログデータを取得する。データ圧縮装置２００は取得したログデータを圧縮して、自身が備える記憶部に格納したり、後述する通信ネットワークＮＷを介して観測所１０と異なる拠点（例えばデータセンターなど）に送信したりする。尚、データ圧縮装置２００の詳細については後述する。
【００１８】
次に、図２を参照して、データ圧縮装置２００のハードウェア構成について説明する。尚、後述するデータ復元装置３００についてはデータ圧縮装置２００のハードウェア構成と基本的に同様の構成を有するため、説明を省略する。
【００１９】
図２はデータ圧縮装置２００のハードウェア構成の一例である。図２に示すように、データ圧縮装置２００は、少なくともCentral Processing Unit（ＣＰＵ）２００Ａ、Random Access Memory（ＲＡＭ）２００Ｂ、Read Only Memory（ＲＯＭ）２００Ｃ及びネットワークＩ／Ｆ（インタフェース）２００Ｄを含んでいる。データ圧縮装置２００は、必要に応じて、Hard Disk Drive（ＨＤＤ）２００Ｅ、入力Ｉ／Ｆ２００Ｆ、出力Ｉ／Ｆ２００Ｇ、入出力Ｉ／Ｆ２００Ｈ、ドライブ装置２００Ｉの少なくとも１つを含んでいてもよい。ＣＰＵ２００Ａからドライブ装置２００Ｉまでは、内部バス２００Ｊによって互いに接続されている。少なくともＣＰＵ２００ＡとＲＡＭ２００Ｂとが協働することによってコンピュータが実現される。
【００２０】
入力Ｉ／Ｆ２００Ｆには、入力装置７１０が接続される。入力装置７１０としては、例えばキーボードやマウスなどがある。
出力Ｉ／Ｆ２００Ｇには、表示装置７２０が接続される。表示装置７２０としては、例えば液晶ディスプレイがある。
入出力Ｉ／Ｆ２００Ｈには、半導体メモリ７３０が接続される。半導体メモリ７３０としては、例えばUniversal Serial Bus（ＵＳＢ）メモリやフラッシュメモリなどがある。入出力Ｉ／Ｆ２００Ｈは、半導体メモリ７３０に記憶されたプログラムやデータを読み取る。
入力Ｉ／Ｆ２００Ｆ及び入出力Ｉ／Ｆ２００Ｈは、例えばＵＳＢポートを備えている。出力Ｉ／Ｆ２００Ｇは、例えばディスプレイポートを備えている。
【００２１】
ドライブ装置２００Ｉには、可搬型記録媒体７４０が挿入される。可搬型記録媒体７４０としては、例えばCompact Disc（ＣＤ）−ＲＯＭ、Digital Versatile Disc（ＤＶＤ）といったリムーバブルディスクがある。ドライブ装置２００Ｉは、可搬型記録媒体７４０に記録されたプログラムやデータを読み込む。
ネットワークＩ／Ｆ２００Ｄは、例えばＬＡＮポートを備えている。ネットワークＩ／Ｆ２００Ｄは通信ネットワークＮＷと接続される。尚、通信ネットワークとしては例えばインターネットがある。
【００２２】
上述したＲＡＭ２００Ｂには、ＲＯＭ２００ＣやＨＤＤ２００Ｅに記憶されたプログラムがＣＰＵ２００Ａによって格納される。ＲＡＭ２００Ｂには、可搬型記録媒体７４０に記録されたプログラムがＣＰＵ２００Ａによって格納される。格納されたプログラムをＣＰＵ２００Ａが実行することにより、後述する各種の機能が実現され、また、後述する各種の処理が実行される。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【００２３】
次に、図３及び図４を参照して、第１実施形態に係るデータ圧縮装置２００の機能について説明する。
【００２４】
図３はデータ圧縮装置２００の機能ブロック図の一例である。図４（ａ）はログデータの一例である。図４（ｂ）は第１実施形態に係るパターンデータ記憶部２０３の一例である。データ圧縮装置２００は、図３に示すように、データ取得部２０１、行保持部２０２、パターンデータ記憶部２０３、及び選択手段としてのパターンデータ選択部２０４を含んでいる。また、データ圧縮装置２００は、パターンＩＤ出力部２０５、部分データ抽出部２０６、出力手段としての圧縮データ出力部２０７、及び圧縮データ記憶部２０８を含んでいる。尚、圧縮データ記憶部２０８はデータ圧縮装置２００の外部にあってもよい。
【００２５】
データ取得部２０１は各センサ１００にアクセスし、各センサ１００から上述したログデータを定期的に（例えば数時間ごとに）取得する。データ取得部２０１は例えばロガー（又はデータロガー）によって実現される。ログデータは、図４（ａ）に示すように、各センサ１００が所定時刻に検出した水位を表す数値データを１６進数表記「０ｘ」で時刻ごとに含んでいる。図４（ａ）において、ログデータにおける行１は時刻１に検出した数値データを表している。ログデータにおける行２は時刻２に検出した数値データを表している。尚、行については後述する。各時刻に属する複数の数値データの総データ量は所定のサイズに制限されている。第１実施形態では数値データ「００」などを１バイトとして１６バイトに制限されている。
【００２６】
したがって、図４（ａ）に示すように、第１実施形態では、ログデータは１６バイト分の数値データを時刻ごとに含んでいる。１６進数表記「０ｘ」に最も近い第１バイトは例えば河川上流の堤防に設置されたセンサ１００による数値データを表している。１６進数表記「０ｘ」から最も遠い第１６バイトは例えば河川下流の堤防に設置されたセンサ１００による数値データを表している。図４（ａ）では、第１バイトにはいずれの時刻においてもゼロ値データ「００」が格納されている。一方、第１２バイトには時刻１においてはゼロ値データ「００」ではない数値データ「０８」が格納されており、時刻２においては数値データ「０Ａ」が格納されている。尚、以下では、所定のサイズに制限された複数の数値データを行と呼ぶ。したがって、図４（ａ）では行１と行２の２行を含むログデータが示されている。データ取得部２０１は行単位に行保持部２０２に行を入力する。これにより、行保持部２０２はデータ取得部２０１が入力した行を保持する。
【００２７】
パターンデータ記憶部２０３はゼロ値データが出現するパターンデータを記憶する。より詳しくは、図４（ｂ）に示すように、パターンデータ記憶部２０３はパターンデータをパターンＩＤと関連付けて記憶する。パターンＩＤはパターンデータを識別する識別情報である。第１実施形態においてパターンデータは１６進数表記「０ｘ」で表現され、１６バイトの行と同じサイズに設定されている。ここで、図４（ｂ）において、パターンＩＤは「ＰＴＮ１」、「ＰＴＮ２」と示されているが、パターンＩＤが２個であれば１ビットでパターンＩＤを表してもよい。また、パターンＩＤが２５６個であれば８ビットでパターンＩＤを表してもよい。パターンデータは例えばデータ圧縮装置２００を管理する管理者などによって予めパターンデータ記憶部２０３に格納される。尚、パターンデータはログデータに所定値以上出現するゼロ値データの出現傾向に応じていることが望ましい。詳細は後述するが、これにより、圧縮時において余分なゼロ値データは効率的に又は無駄なく除外される。特に、上位バイトにゼロ値データが多いほど、これに対応するパターンデータを利用できれば、圧縮効果をさらに高めることができる。
【００２８】
パターンデータ選択部２０４は行保持部２０２から行を取得し、取得した行に基づいて、ゼロ値データを含み、以下に記載する所定の論理式を満足するパターンデータをパターンデータ記憶部２０３の中から選択する。ここで、Ｏｔは時刻ｔの行、ＯＲは論理和、Ｐｍは選択するｍ番目（但しｍ＝１，２，・・・，Ｍ）のパターンデータ、ＸＯＲは排他的論理和を表している。
論理式：（Ｏｔ  ＯＲ  Ｐｍ）  ＸＯＲ  Ｐｍ  ＝＝０
【００２９】
すなわち、パターンデータ選択部２０４は行に出現するゼロ値データの位置を特定し、ゼロ値データの位置と、パターンデータ記憶部２０３が記憶するパターンデータとを比較する。そして、パターンデータ選択部２０４はゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータを選択する。又は、パターンデータ選択部２０４はゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する。言い換えれば、パターンデータ選択部２０４はゼロ値データが全く出現しないパターンデータを選択対象から除外する。パターンデータ選択部２０４は選択したパターンデータとそのパターンデータを識別するパターンＩＤを含むパターン情報をパターンＩＤ出力部２０５及び部分データ抽出部２０６に出力する。
【００３０】
パターンＩＤ出力部２０５はパターンデータ選択部２０４から出力されたパターン情報の中からパターンＩＤを抽出する。例えば、パターンＩＤ出力部２０５は選択されたパターンデータを識別するパターンＩＤ「ＰＴＮ１」や「ＰＴＮ２」を抽出する。パターンＩＤ出力部２０５は抽出したパターンＩＤを圧縮データ出力部２０７に出力する。
【００３１】
部分データ抽出部２０６は行保持部２０２から行を取得し、取得した行とパターンデータ選択部２０４から出力されたパターン情報とに基づいて、行の一部を部分データとして抽出する。より詳しくは、部分データ抽出部２０６はパターン情報に含まれるパターンデータのゼロ値データと対応する位置のゼロ値データを行の中から除外する。これにより、ゼロ値データ以外の数値データが残存する。言い換えれば、パターンデータのゼロ値データ以外の数値データ（例えば「Ｆ」）と対応する位置のゼロ値データは行の中から除外されずに残存する。すなわち、行に含まれるゼロ値データの中には除外されるゼロ値データもあれば、除外されないで残存するゼロ値データもある。除外されるゼロ値データか残存するゼロ値データかは、パターンデータに基づいて決定される。部分データ抽出部２０６は残存する数値データを部分データとして圧縮データ出力部２０７に出力する。
【００３２】
圧縮データ出力部２０７はパターンＩＤ出力部２０５から出力されたパターンＩＤと部分データ抽出部２０６から出力された部分データを一組にして、圧縮データとして出力する。圧縮データ出力部２０７は出力した圧縮データを圧縮データ記憶部２０８に格納してもよい。これにより、圧縮データ記憶部２０８は圧縮データを記憶する。
【００３３】
次に、図５を参照して、データ圧縮装置２００の動作について説明する。
【００３４】
図５はデータ圧縮装置２００が実行する処理の一例を表すフローチャートである。まず、データ取得部２０１がセンサ１００からログデータを取得すると、データ取得部２０１はログデータに含まれる行を行保持部２０２に入力する（ステップＳ１０１）。より詳しくは、データ取得部２０１は１行分の行を入力する。これにより、行保持部２０２は１行分の行を保持する。
【００３５】
ステップＳ１０１の処理が完了すると、次いで、パターンデータ選択部２０４は行保持部２０２から行を取得し、ゼロ値データの位置を特定する（ステップＳ１０２）。ステップＳ１０２の処理が完了すると、次いで、パターンデータ選択部２０４は、特定したゼロ値データの位置とパターンデータ記憶部２０３が記憶するパターンデータとを比較し、パターンデータを選択する（ステップＳ１０３）。より詳しくは、パターンデータ選択部２０４は、ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する。
【００３６】
ステップＳ１０３の処理が完了すると、次いで、パターンＩＤ出力部２０５はパターンＩＤを出力する（ステップＳ１０４）。より詳しくは、パターンＩＤ出力部２０５はパターンデータ選択部２０４が選択したパターンデータと関連付けられたパターンＩＤを出力する。
【００３７】
ステップＳ１０４の処理が完了すると、次いで、部分データ抽出部２０６は部分データを出力する（ステップＳ１０５）。より詳しくは、部分データ抽出部２０６はパターンデータ選択部２０４が選択したパターンデータのゼロ値データと対応する位置のゼロ値データを行の中から除外して残存した数値データを抽出し、部分データとして出力する。
【００３８】
ステップＳ１０５の処理が完了すると、圧縮データ出力部２０７は圧縮データを出力する（ステップＳ１０６）。より詳しくは、圧縮データ出力部２０７はパターンＩＤ出力部２０５から出力されたパターンＩＤと部分データ抽出部２０６から出力された部分データを一組にして、圧縮データとして出力する。
【００３９】
ステップＳ１０６の処理が完了すると、データ取得部２０１は全行終了したか否かを判断する（ステップＳ１０７）。すなわち、データ取得部２０１はログデータの中に圧縮未処理の行が存在するか否かを判断する。データ取得部２０１は全行終了していないと判断した場合（ステップＳ１０７：ＮＯ）、ステップＳ１０１の処理を再び実行する。これにより、データ取得部２０１は次の行を行保持部２０２に入力し、後続のステップＳ１０２からＳ１０６までの処理が実行される。一方、データ取得部２０１は全行終了したと判断した場合（ステップＳ１０７：ＹＥＳ）、処理を終了する。
【００４０】
図６は第１実施形態に係る圧縮処理の一例を説明するための図である。データ取得部２０１がログデータを取得すると、パターンデータ選択部２０４は行ごとに行とパターンデータとを比較して、ゼロ値データを含み、かつ、上述した論理式を満足するパターンデータを選択する。
【００４１】
ここで、パターンデータ選択部２０４は行とパターンデータとを比較する際、行におけるバイトが００のときは０に、バイトが００以外のときはＦに変換した行Ｏｔに基づいて比較する。尚、ｔは時刻に相当する。この結果、ゼロ値データを含み、かつ、上述した論理式を満足するパターンデータとして、パターンＩＤ「ＰＴＮ１」のパターンデータが選択される。したがって、パターンＩＤ出力部２０５はパターンＩＤ「ＰＴＮ１」を出力する。
【００４２】
一方、部分データ抽出部２０６は選択されたパターンデータに基づいて、行におけるバイトが００の部分を除外した残りの部分を抽出し、部分データとして出力する。したがって、行１であれば、第１２バイトの「０８」、第１４バイトの「０５」、及び第１６バイト「００」が抽出されて部分データとして出力される。行２であれば、第１２バイトの「０Ａ」、第１４バイトの「０６」、及び第１６バイト「０１」が抽出されて部分データとして出力される。パターンＩＤと部分データが出力されると、圧縮データ出力部２０７はパターンＩＤと部分データを組みにして、圧縮データとして出力する。したがって、ログデータにおける行１は（ＰＴＮ１，０ｘ０８０５００）の圧縮行１に圧縮されて出力される。ログデータにおける行２は（ＰＴＮ１，０ｘ０Ａ０６０１）の圧縮行２に圧縮されて出力される。仮にＰＴＮ１が１バイトであれば、圧縮行１及び圧縮行２はいずれも４バイトとなり、１６バイトから１割以下に圧縮される。
【００４３】
以上、第１実施形態によれば、データ圧縮装置２００は、パターンデータ選択部２０４と圧縮データ出力部２０７を備えている。パターンデータ選択部２０４は取得したログデータに出現するゼロ値データの位置を特定し、ゼロ値データの位置と、パターンデータ記憶部２０３が記憶するパターンデータとを比較する。その後、パターンデータ選択部２０４はゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータを選択する。又は、パターンデータ選択部２０４はゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する。そして、圧縮データ出力部２０７はパターンデータ選択部２０４が選択したパターンデータを識別するパターンＩＤを含む圧縮データを出力する。ログデータに含まれるゼロ値データの一部の残存及び出力を許容することにより、ゼロ値を含むログデータの圧縮率を向上することができる。
【００４４】
仮に、行の大部分、例えば上述した８００バイト分のバイト値の中で７９０バイトが不一致である場合、８００バイトは１００バイトのビットマスクと不一致に該当する７９０バイトのバイト値、すなわち合計８９０バイトに伸張する。しかしながら、第１実施形態で説明した圧縮処理によれば、このような場合であっても、情報量の増加を抑えることができる。
【００４５】
（第２実施形態）
続いて、図７及び図８を参照して、本件の第２実施形態について説明する。
図７は第２実施形態に係るパターンデータ記憶部２０３の一例である。
【００４６】
第１実施形態では、図４（ｂ）を参照して説明したように、パターンデータは１６進数表記「０ｘ」で表現されていたが、第２実施形態では、図７に示すように、２進数表記「０ｂ」でパターンデータが表現されている。このように、２進数表記「０ｂ」のパターンデータが利用されてもよい。尚、第２実施形態に係るパターンデータのサイズは行がＮバイトである場合には、Ｎビットとすることができる。したがって、行が１６バイトである場合には、１６ビットのパターンデータが採用される。
【００４７】
図８は第２実施形態に係る圧縮処理の一例を説明するための図である。第１実施形態でも説明したように、データ取得部２０１がログデータを取得すると、パターンデータ選択部２０４は行ごとに行とパターンデータとを比較して、ゼロ値データを含み、かつ、以下に記載する論理式を満足するパターンデータを選択する。尚、Ｘｔは時刻ｔの行、ＯＲは論理和、Ｐｍは選択するｍ番目（但しｍ＝１，２，・・・，Ｍ）のパターンデータ、ＸＯＲは排他的論理和を表している。
論理式：（Ｘｔ  ＯＲ  Ｐｍ）  ＸＯＲ  Ｐｍ  ＝＝０
【００４８】
ここで、パターンデータ選択部２０４は行とパターンデータとを比較する際、行を解析し、行におけるバイトが００のときは０に、バイトが００以外のときは１に変換した行Ｘｔに基づいて比較する。第１実施形態でも説明したように、ｔは時刻を表している。この結果、ゼロ値データを含み、かつ、上述した論理式を満足するパターンデータとして、パターンＩＤ「ＰＴＮ１」のパターンデータが選択される。したがって、パターンＩＤ出力部２０５はパターンＩＤ「ＰＴＮ１」を出力する。
【００４９】
一方、部分データ抽出部２０６は選択されたパターンデータに基づいて、行におけるバイトが００の部分を除外した残りの部分を抽出し、部分データとして出力する。したがって、行１であれば、第１２バイトの「０８」、第１４バイトの「０５」、及び第１６バイト「００」が抽出されて部分データとして出力される。行２であれば、第１２バイトの「０Ａ」、第１４バイトの「０６」、及び第１６バイト「０１」が抽出されて部分データとして出力される。パターンＩＤと部分データが出力されると、圧縮データ出力部２０７はパターンＩＤと部分データを組みにして、圧縮データとして出力する。したがって、第１実施形態と同様に、ログデータにおける行１は（ＰＴＮ１，０ｘ０８０５００）の圧縮行１に圧縮される。ログデータにおける行２は（ＰＴＮ１，０ｘ０Ａ０６０１）の圧縮行２に圧縮される。
【００５０】
以上、第２実施形態によれば、２進数表記「０ｂ」でパターンデータが表現されていても、ゼロ値を含むログデータの圧縮率を向上することができる。
【００５１】
（第３実施形態）
続いて、図９及び図１０を参照して、本件の第３実施形態について説明する。
図９はデータ復元装置３００の機能ブロック図の一例である。データ復元装置３００としては例えばサーバ装置や端末装置が利用される。データ復元装置３００は、図９に示すように、圧縮データ記憶部３０１、圧縮データ取得部３０２、抽出手段としてのパターンＩＤ抽出部３０３、及び選択手段としてのパターンデータ選択部３０４を含んでいる。また、データ復元装置３００は、パターンデータ記憶部３０５、補填手段としてのゼロ値データ補填部３０６、出力手段としての復元データ出力部３０７、及び復元データ記憶部３０８を含んでいる。尚、圧縮データ記憶部３０１及び復元データ記憶部３０８はデータ復元装置３００の外部にあってもよい。
【００５２】
圧縮データ記憶部３０１は圧縮データを記憶する。圧縮データとしては、第１実施形態及び第２実施形態で説明した圧縮データがある（図６及び図８参照）。例えばデータ圧縮装置２００から送信された圧縮データを圧縮データ記憶部３０１が記憶してもよい。圧縮データ取得部３０２は圧縮データ記憶部３０１から圧縮データを取得し、パターンＩＤ抽出部３０３及びゼロ値データ補填部３０６に出力する。
【００５３】
パターンＩＤ抽出部３０３は圧縮データ取得部３０２から出力された圧縮データからパターンＩＤを抽出する。例えば圧縮データ（ＰＴＮ１，０ｘ０８０５００）が出力された場合、パターンＩＤ抽出部３０３はパターンＩＤ「ＰＴＮ１」を抽出する。パターンＩＤ抽出部３０３は抽出したパターンＩＤをパターンデータ選択部３０４に出力する。
【００５４】
パターンデータ選択部３０４はパターンＩＤ抽出部３０３から出力されたパターンＩＤに基づいてパターンデータ記憶部３０５の中からパターンデータを選択する。ここで、パターンデータ記憶部３０５は第１実施形態及び第２実施形態で説明したように、１６進数表記で表現されたパターンデータ（図４（ｂ）参照）、又は２進数表記で表現されたパターンデータ（図７参照）のいずれかを記憶している。パターンデータ選択部３０４はパターンデータ記憶部３０５が記憶するパターンデータの中からパターンＩＤと関連付けられたパターンデータを選択し、ゼロ値データ補填部３０６に出力する。
【００５５】
ゼロ値データ補填部３０６は圧縮データ取得部３０２から出力された圧縮データとパターンデータ選択部３０４から出力されたパターンデータとに基づいて、ゼロ値データを補填する。具体的には、パターンデータに出現するゼロ値データとゼロ値データ以外の数値データ（例えば「Ｆ」又は「１」）の位置に従って、圧縮データに含まれる部分データにゼロ値データを補填する。すなわち、「Ｆ」や「１」に対応する位置には部分データを順に配置し、残りの位置にはゼロ値データを配置する。ゼロ値データ補填部３０６はゼロ値データを補填した部分データを復元データ出力部３０７に出力する。
【００５６】
復元データ出力部３０７はゼロ値データを補填した部分データを復元データとして出力する。復元データは圧縮前のログデータに相当する。復元データ出力部３０７は例えば復元データを復元データ記憶部３０８に格納する。これにより、復元データ記憶部３０８は復元データ、すなわち、ログデータを記憶する。復元データ出力部３０７は復元データをデータ復元装置３００の外部に設置された別の装置に送信してもよい。
【００５７】
次に、図１０を参照して、データ復元装置３００の動作について説明する。
【００５８】
図１０はデータ復元装置３００が実行する処理の一例を表すフローチャートである。まず、圧縮データ取得部３０２は圧縮データ記憶部３０１から圧縮データを取得する（ステップＳ２０１）。より詳しくは、圧縮データ取得部３０２は１行分の圧縮データを取得する。
【００５９】
ステップＳ２０１の処理が完了すると、次いで、パターンＩＤ抽出部３０３はパターンＩＤを抽出する（ステップＳ２０２）。より詳しくは、パターンＩＤ抽出部３０３は圧縮データ取得部３０２が取得した１行分の圧縮データの中からパターンＩＤを抽出する。
【００６０】
ステップＳ２０２の処理が完了すると、次いで、パターンデータ選択部３０４はパターンデータを選択する（ステップＳ２０３）。より詳しくは、パターンＩＤ抽出部３０３が抽出したパターンＩＤに基づいて、パターンデータ記憶部３０５の中からパターンＩＤに応じたパターンデータを選択する。
【００６１】
ステップＳ２０３の処理が完了すると、次いで、ゼロ値データ補填部３０６はパターンデータに基づいて部分データにゼロ値データを補填する（ステップＳ２０４）。ステップＳ２０４の処理が完了すると、復元データ出力部３０７は復元データを出力する（ステップＳ２０５）。より詳しくは、復元データ出力部３０７はゼロ値データが補填された部分データを復元データとして出力する。
【００６２】
ステップＳ２０５の処理が完了すると、圧縮データ取得部３０２は全行終了したか否かを判断する（ステップＳ２０６）。すなわち、圧縮データ取得部３０２は圧縮データ記憶部３０１の中に復元未処理の行が存在するか否かを判断する。圧縮データ取得部３０２は全行終了していないと判断した場合（ステップＳ２０６：ＮＯ）、ステップＳ２０１の処理を再び実行する。これにより、圧縮データ取得部３０２は次の１行分の圧縮データを復元対象として取得し、後続のステップＳ２０２からＳ２０５までの処理が実行される。一方、圧縮データ取得部３０２は全行終了したと判断した場合（ステップＳ２０６：ＹＥＳ）、処理を終了する。
【００６３】
以上、第３実施形態に係るデータ復元装置３００よれば、第１実施形態又は第２実施形態で説明した圧縮処理により圧縮データとして圧縮されたログデータを復元することができる。
【００６４】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、定期的にログデータを取得したが、特定のイベントが発生した際に取得するなど非定期的にログデータを取得するようにしてもよい。また、ログデータに複数の数値データが含まれる場合を説明したが、ログデータに含まれる数値データは１つであってもよい。同様に、パターンデータに複数の数値データが含まれる場合を説明したが、ログデータに含まれる数値データは１つであってもよい。
【００６５】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、選択したパターンデータを識別する識別情報を含む圧縮データを出力する、処理をコンピュータに実行させるためのデータ圧縮プログラム。
（付記２）前記パターンデータを選択する処理は、前記ログデータに含まれる数値データが１６進数表記である場合、前記ログデータと１６進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、ことを特徴とする付記１に記載のデータ圧縮プログラム。
（付記３）前記パターンデータを選択する処理は、前記ログデータに含まれる数値データが１６進数表記である場合、前記数値データがゼロ値データであるか否かに基づいて、前記ログデータから２進数表記のビットデータを生成し、前記ビットデータと２進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、ことを特徴とする付記１に記載のデータ圧縮プログラム。
（付記４）前記記憶部は、前記ログデータに出現するゼロ値データの出現傾向に応じたパターンデータを記憶する、ことを特徴とする付記１から３のいずれか１項に記載のデータ圧縮プログラム。
（付記５）前記ログデータは、所定値以上のゼロ値データを含む、ことを特徴とする付記１から４のいずれか１項に記載のデータ圧縮プログラム。
（付記６）一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択し、選択したパターンデータを識別する識別情報を含む圧縮データを出力する、処理をコンピュータが実行するデータ圧縮方法。
（付記７）一又は複数の数値データを含むログデータを取得した場合、前記ログデータに出現する一又は複数のゼロ値データの位置を特定し、前記ゼロ値データの位置と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータとを比較して、前記ゼロ値データの位置と対応する位置すべてにゼロ値データが出現するパターンデータ、又は、前記ゼロ値データの位置と対応する位置の一部にゼロ値データが出現し、前記対応する位置の残部にゼロ値データ以外の数値データが出現するパターンデータを選択する選択手段と、前記選択手段が選択したパターンデータを識別する識別情報を含む圧縮データを出力する出力手段と、を有するデータ圧縮装置。
（付記８）前記選択手段は、前記ログデータに含まれる数値データが１６進数表記である場合、前記ログデータと１６進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、ことを特徴とする付記７に記載のデータ圧縮装置。
（付記９）前記選択手段は、前記ログデータに含まれる数値データが１６進数表記である場合、前記数値データがゼロ値データであるか否かに基づいて、前記ログデータから２進数表記のビットデータを生成し、前記ビットデータと２進数表記のパターンデータとの論理和を求め、前記論理和と前記パターンデータとの排他的論理和がゼロになるパターンデータを選択する、ことを特徴とする付記７に記載のデータ圧縮装置。
（付記１０）前記記憶部は、前記ログデータに出現するゼロ値データの出現傾向に応じたパターンデータを記憶する、ことを特徴とする付記７から９のいずれか１項に記載のデータ圧縮装置。
（付記１１）前記ログデータは、所定値以上のゼロ値データを含む、ことを特徴とする付記７から１０のいずれか１項に記載のデータ圧縮装置。
（付記１２）ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、前記数値データに前記ゼロ値データを補填した復元データを出力する、処理をコンピュータに実行させるためのデータ復元プログラム。
（付記１３）ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出し、抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択し、選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填し、前記数値データに前記ゼロ値データを補填した復元データを出力する、処理をコンピュータが実行するデータ復元方法。
（付記１４）ゼロ値データが出現するパターンの識別情報を含む圧縮データを取得した場合、前記識別情報を抽出する抽出手段と、前記抽出手段が抽出した前記識別情報と、記憶部が予め記憶する一又は複数の数値データを含むパターンデータと関連付けられた識別情報とを比較して、抽出した前記識別情報に応じたパターンデータを選択する選択手段と、前記選択手段が選択したパターンデータに基づいて、前記圧縮データに含まれる一又は複数の数値データに前記ゼロ値データを補填する補填手段と、前記数値データに前記ゼロ値データを補填した復元データを出力する出力手段と、を有するデータ復元装置。
【符号の説明】
【００６６】
Ｓ  データ圧縮システム
１００  センサ
２００  データ圧縮装置
２０１  データ取得部
２０２  行保持部
２０３  パターンデータ記憶部
２０４  パターンデータ選択部
２０５  パターンＩＤ出力部
２０６  部分データ抽出部
２０７  圧縮データ出力部
２０８  圧縮データ記憶部
３００  データ復元装置
３０１  圧縮データ記憶部
３０２  圧縮データ取得部
３０３  パターンＩＤ抽出部
３０４  パターンデータ選択部
３０５  パターンデータ記憶部
３０６  ゼロ値データ補填部
３０７  復元データ出力部
３０８  復元データ記憶部
【図１】
2017216644.tif 000003
【図２】
2017216644.tif 000004
【図３】
2017216644.tif 000005
【図４】
2017216644.tif 000006
【図５】
2017216644.tif 000007
【図６】
2017216644.tif 000008
【図７】
2017216644.tif 000009
【図８】
2017216644.tif 000010
【図９】
2017216644.tif 000011
【図１０】
2017216644.tif 000012