(57)【要約】【課題】データ圧縮装置，方法，プログラムに関し、データ圧縮処理の可逆性を確保しつつ消費電力を減少させる。【解決手段】測定対象の振動状態を符号化した所定桁数のデータを時系列で取得する取得部１と、取得部１で取得されたデータに圧縮処理を施す圧縮部２とを備える。圧縮部２は、所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、第一桁数の上位桁を削除する処理を実施する。一方、第一桁数の上位桁が有意な情報を含む場合には、固有の符号を最上位桁に付加する処理を実施する。【選択図】図３
2017028555.tif 000002
【特許請求の範囲】
【請求項１】
測定対象の振動状態を符号化した所定桁数のデータを時系列で取得する取得部と、
前記取得部で取得された前記データに圧縮処理を施す圧縮部とを備え、
前記圧縮部が、前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除し、前記第一桁数の上位桁が有意な情報を含む場合に、固有の符号を最上位桁に付加する前記圧縮処理を実施する
ことを特徴とするデータ圧縮装置。
【請求項２】
前記圧縮部が、時系列で隣接する前記データの差分に対して前記圧縮処理を施す
ことを特徴とする、請求項１記載のデータ圧縮装置。
【請求項３】
前記圧縮部が、時系列の前記データの分散値に基づいて前記第一桁数を設定する
ことを特徴とする、請求項１又は２記載のデータ圧縮装置。
【請求項４】
前記圧縮部が、時系列で隣接する前記データの差分が所定値未満となる回数に基づいて前記分散値を推定する
ことを特徴とする、請求項３記載のデータ圧縮装置。
【請求項５】
前記固有の符号が、前記所定桁数から前記第一桁数を減じた桁数を有する
ことを特徴とする、請求項１〜４の何れか１項に記載のデータ圧縮装置。
【請求項６】
測定対象の振動状態を符号化してなる所定桁数のデータを時系列で取得する取得工程と、
前記取得工程で取得された前記データに圧縮処理を施す圧縮工程とを備えたデータ圧縮方法において、
前記圧縮工程が、
前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除する削除工程と、
前記第一桁数の上位桁が有意な情報を含む場合に、前記所定桁数から前記第一桁数を減じた第二桁数を有する固有の符号を最上位桁に付加する付加工程とを含む
ことを特徴とするデータ圧縮方法。
【請求項７】
測定対象の振動状態を符号化してなる所定桁数のデータを時系列で取得し、当該データを圧縮する処理をコンピュータに実行させるデータ圧縮プログラムであって、
前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除し、
前記第一桁数の上位桁が有意な情報を含む場合に、前記所定桁数から前記第一桁数を減じた第二桁数を有する固有の符号を最上位桁に付加する
処理をコンピュータに実行させる、データ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定対象の振動状態を符号化したデータの圧縮に係る装置，方法，プログラムに関する。
【背景技術】
【０００２】
従来、振動センサーが内蔵された通信端末をノードとするセンサーネットワークにおいて、センサーノード間で授受されるデータ量を圧縮するための各種手法が提案されている。例えば、ハフマン符号を利用した圧縮手法は、出現頻度の高い情報源アルファベット（情報を表す記号）に短い符号を割り当てて符号化するものであり、平均符号長が最小となる可逆圧縮を実現することができる。また、PCM（Pulse Code Modulation，パルス符号変調）やADPCM（Adaptive Differential Pulse Code Modulation，適応的差分パルス符号変調）による圧縮手法は、非可逆ながらデータの圧縮率を高めることができる。
【０００３】
また、複数の圧縮手法を組み合わせることで、圧縮率の向上を図る技術も検討されている。例えば、ハフマン符号を利用した圧縮手法だけでなく、アルファ符号やガンマ符号などを用いた圧縮手法を用意し、複数の圧縮手法の一つを選択してデータを圧縮するとともに、選択された圧縮手法の種類を示すパラメーターを圧縮後のデータに追加することが考えられる。このように、複数の圧縮手法を組み合わせることで、データの圧縮率をさらに向上させうる（特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2012-134858号公報
【特許文献２】特開2006-259937号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年のネットワーク環境は、IoT（Internet of Things）化やM2M（Machine to Machine）化が進行しつつあり、センサーノードから発信される情報量が増大傾向にあることから、センサーノードでの電力消費量も上昇することが予想されている。しかしながら、センサーノードは必ずしも電力インフラが整備された場所に設置されるわけではなく、内蔵バッテリーやボタン電池の電力で長時間稼働させたい場合もある。そのため、単純に圧縮率が高い圧縮手法を採用したのでは、圧縮処理にかかる演算時間が長期化し、消費電力の増大を招きうる。また、複数の圧縮手法の中から適切な手法を探索するような技術についても同様であり、探索の演算処理の負担が増大するほど電力面で不利となる。一方、消費電力を削減すべく非可逆圧縮の手法を採用すれば、その代償として情報の劣化が不可避となる。
【０００６】
本件の目的の一つは、上記のような課題に鑑みて創案されたものであり、データ圧縮処理の可逆性を確保しつつ消費電力を減少させたデータ圧縮装置，データ圧縮方法，データ圧縮プログラムを提供することである。また、この目的に限らず、後述する「発明を実施するための形態」に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも、本件の他の目的として位置づけることができる。
【課題を解決するための手段】
【０００７】
以下に説明されるデータ圧縮装置は、測定対象の振動状態を符号化した所定桁数のデータを時系列で取得する取得部と、前記取得部で取得された前記データに圧縮処理を施す圧縮部とを備える。前記圧縮部は、前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除し、前記第一桁数の上位桁が有意な情報を含む場合に、固有の符号を最上位桁に付加する前記圧縮処理を実施する。
【発明の効果】
【０００８】
可逆圧縮処理の消費電力を減少させることができる。
【図面の簡単な説明】
【０００９】
【図１】データ圧縮装置が適用されるセンサーネットワークの概略図である。
【図２】データ圧縮装置のハードウェア構成を例示する図である。
【図３】データ圧縮プログラムの機能を例示するブロック図である。
【図４】データ圧縮装置で取得される振動データの構造を説明するための図である。
【図５】（Ａ）は振動データの値（情報源アルファベット）と出現確率との関係を示すグラフ、（Ｂ）は振動データの差分値と出現確率との関係を示すグラフ、（Ｃ）は比較例としての正規分布を与える確率密度関数のグラフである。
【図６】（Ａ）は正規分布を与える確率密度関数のグラフにおいて、分散値σを変更したときの形状変化を説明するためのグラフ、（Ｂ）は分散値σとx=0の出現数との関係を示すグラフである。
【図７】（Ａ）は下位桁数Yに対応する固定表現幅と例外処理確率との関係を説明するためのグラフ、（Ｂ）は分散値σと平均符号長との関係を説明するためのグラフ、（Ｃ）は分散値σと例外処理確率との関係を説明するためのグラフである。
【図８】（Ａ），（Ｂ）はデータ列の圧縮手法を説明するための図である。
【図９】データ圧縮方法を説明するためのフローチャートである。
【図１０】平均符号長とx=0の出現数との関係を示すグラフである。
【発明を実施するための形態】
【００１０】
図面を参照して、実施形態としてのデータ圧縮装置，データ圧縮方法，データ圧縮プログラムについて説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態をその趣旨を逸脱しない範囲で種々変形して（実施形態，変形例を組み合わせて）実施することができる。
【００１１】
［１．概要］
本実施形態のデータ圧縮装置，データ圧縮方法，データ圧縮プログラムは、測定対象の振動状態に対応する振動データに可逆圧縮処理を施して出力するものであり、例えば振動測定で得られた情報を保存しつつデータサイズを圧縮するために用いられる。圧縮処理の対象となる振動データとしては、例えば振動の変位や速度，加速度に対応するデータや角速度，音圧（音声）に対応するデータなどが挙げられる。また、圧縮処理の対象となる振動データには、振動センサーで検出された生データ（例えば、振動状態に対応するパラメーターを直接的に符号化したもの）だけでなく、生データに前処理を施して得られる加工データも含まれる。
【００１２】
符号化された振動データには、有意な情報（意味のある情報）と有意でない情報（意味のない情報）とが含まれているため、有意でない情報を取り除くことで可逆的に振動データの量を削減できる。しかし、有意な情報と有意でない情報とを識別するための演算処理が複雑化するにつれて演算処理時間が長期化しやすく、電力消費量が増大する。一方、有意な情報と有意でない情報との識別精度が不十分であれば、振動データの可逆性を確保できなくなる。そこで、本実施形態では、簡素な構成でデータ圧縮処理の可逆性を確保できるようにしたデータ圧縮装置，データ圧縮方法，データ圧縮プログラムを提案する。
【００１３】
本実施形態のデータ圧縮装置１０は、図１に示すアドホック型のセンサーネットワーク３０に適用される。データ圧縮装置１０は、振動センサーが内蔵された通信端末であり、自律的に形成されるネットワークのノードとして機能する。それぞれのデータ圧縮装置１０は、それ自身が設置された位置において、測定対象の振動状態を符号化した振動データを検出，算出するとともに、その振動データを可逆的に圧縮した圧縮データを無線信号として出力する。
【００１４】
図１では、データ圧縮装置１０が建造物３１（工場）や工場内の工作機械３２，搬送車両３３，電子機器３４などに取り付けられたセンサーネットワーク３０を例示する。このセンサーネットワーク３０は、管理端末（ゲートウェイ端末）として機能する中継装置３５を介して、インターネット，携帯電話機用の無線通信網，その他のディジタル無線通信網などを含む有線又は無線のネットワークに接続される。センサーネットワーク３０内で取得された圧縮データは、これらの各種ネットワーク上に設けられた管理システム（図示せず）へと伝達され、建造物３１の振動騒音解析や工作機械３２，搬送車両３３，電子機器３４の作動状態の解析などに利用される。
【００１５】
［２．ハードウェア］
データ圧縮装置１０のハードウェア構成を図２に例示する。データ圧縮装置１０には、センサー１１，通信装置１２，記録媒体ドライブ１３，コントローラー２０が内蔵され、図示しない電力源（例えば、バッテリーやボタン電池など）からの電力供給を受けて作動する。センサー１１は、測定対象の振動状態に対応する振動データを検出，算出するものであり、例えば変位センサー，速度センサー，加速度センサー，ジャイロセンサー，マイクロフォンなどである。センサー１１は、振動状態に対応する変位，速度，加速度，角速度，音圧などの情報を符号化して、所定桁数のデータとして所定周期で出力する機能を持つ。センサー１１のセンシング周期は、少なくとも測定対象が振動する周期の半分以下の周期となるように設定されることが好ましい。
【００１６】
通信装置１２は、所定の通信技術規格に基づき、他のデータ圧縮装置１０や中継装置３５との間で無線通信を行うものである。通信装置１２は、少なくともコントローラー２０から伝達された情報を送信する機能（送信機能）を持つ。また、好ましくは、他のデータ圧縮装置１０や中継装置３５から伝達された情報をコントローラー２０に伝達する機能（受信機能）を併せ持つ。なお、データ圧縮装置１０間の通信機能は、無線通信に代えて有線通信を用いても実現可能である。この場合、通信装置１２は、所定の通信技術規格に基づき、他のデータ圧縮装置１０や中継装置３５との間で有線通信を行うものとすればよい。
【００１７】
記録媒体ドライブ１３は、光ディスクや半導体メモリなどの記録媒体１４（リムーバブルメディア）に記録，保存された情報を読み取り、あるいは任意の情報を書き込むリーダライタ装置である。本実施形態の記録媒体ドライブ１３は、記録媒体１４に記録，保存されているプログラムを読み取り、そのプログラムの内容をコントローラー２０へと伝達する機能と、コントローラー２０が出力する情報を記録媒体１４に記録，保存する機能とを併せ持つ。
【００１８】
コントローラー２０は、プロセッサ２１（中央処理装置），メモリ２２（メインメモリ，主記憶装置），補助記憶装置２３，インタフェース装置２４などを内蔵する制御器である。これらの各装置２１〜２４は、内部バス２５を介して互いに通信可能に接続される。プロセッサ２１は、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）などを内蔵する中央処理装置である。また、メモリ２２は、プログラムや作業中のデータが格納される記憶装置であり、例えばROM（Read Only Memory），RAM（Random Access Memory）がこれに含まれる。
【００１９】
補助記憶装置２３は、メモリ２２よりも長期的に保持されるデータやファームウェアが格納されるメモリ装置であり、例えばフラッシュメモリやEEPROM（Electrically Erasable Programmable Read-Only Memory）などの不揮発性メモリがこれに含まれる。また、インタフェース装置２４は、コントローラー２０の内外における入出力（Input and Output；I/O）を司るものである。コントローラー２０は、インタフェース装置２４を介して、センサー１１，通信装置１２，記録媒体ドライブ１３のそれぞれに接続される。
【００２０】
［３．ソフトウェア］
図３は、コントローラー２０のプロセッサ２１で実行されるデータ圧縮プログラムＰの処理内容を説明するためのブロック図である。これらの処理内容は、アプリケーションプログラムとして補助記憶装置２３，記録媒体１４などに記録され、メモリ２２上に展開されて実行される。ここで実行される処理内容を機能的に分類すると、データ圧縮プログラムＰには、取得部１，圧縮部２，出力部９が設けられる。また、圧縮部２の機能を細分化すると、圧縮部２の内部には、差分算出部３，分散算出部４，桁数設定部５，判定部６，削除部７，付加部８が設けられる。
【００２１】
取得部１は、測定対象の振動状態を符号化した所定桁数のデータを時系列で取得するものである。ここでは、センサー１１から伝達される個々の振動データが時系列に配列され、メモリ２２上の圧縮用データメモリ（データ記憶領域）に記録される。ここで、ある時刻にセンサー１１で検出された振動状態に対応する振動データ（一個の振動データ）のうち、最上位のビットから数えてX桁分の部位のことを「上位桁」と呼ぶ。また、最下位のビットから数えてY桁分の部位のことを「下位桁」と呼ぶ。
【００２２】
一個の振動データの総桁数（所定桁数）がZ桁であるとき、上位桁の桁数X（第一桁数，上位桁数）と下位桁の桁数Y（第二桁数，下位桁数）との和はZである（X+Y=Z）。すなわち、下位桁は、総桁数Zから上位桁数Xを減じた桁数Yを持つ。なお、上位桁数Xの値は、0以上かつ振動データの総桁数Z未満の値を持つ整数とする（0≦X＜Z）また、下位桁数Yの値は、振動データの総桁数Z以下の自然数とする（0＜Y≦Z）。ここで、圧縮用データメモリ上に記録される振動データの配列状態を、図４に例示する。この例では、一個の振動データが16ビット（2バイト）の二進数で符号化されており、振動データの総桁数Zは16である。
【００２３】
圧縮部２は、取得部１で取得された振動データに圧縮処理を施すものである。ここでは、あらかじめ設定された桁数Xの上位桁に有意な情報が含まれているか否かが判定されるとともに、その判定結果に応じて振動データが加工される。この判定は、判定部６で実施される。判定で用いられる桁数Xは、例えば分散算出部４で算出された分散値σに基づいて、桁数設定部５で設定される。また、圧縮対象は、例えば取得部１で取得された振動データであり、あるいはその差分データである。差分データは、差分算出部３で算出される。
【００２４】
上記の判定の結果、上位桁に有意な情報が含まれていない場合には、削除部７において上位桁が削除される。一方、上位桁に有意な情報が含まれている場合には上位桁がそのまま残され、付加部８において最上位桁に例外処理コードが付加される。なお、センサー１１の特性により、上位桁は下位桁と比較して有意な情報を含まない確率が高い。したがって、有意な情報が含まれていない上位桁を削除することで、データ量を削減可能である。しかし、上位桁が削除された振動データと削除されていない振動データとを闇雲に混在させるとこれらの識別が困難となり、可逆性が損なわれるおそれが生じる。そこで、上位桁が削除されていない振動データのみに対して例外処理コードを付加することで、これらを識別する。以下、圧縮部２の機能について詳述する。
【００２５】
差分算出部３は、時系列で隣接する振動データの差分値を算出するものである。ここで、振動データの情報源アルファベット（振動データの値）とその出現確率との関係を、図５（Ａ）に例示する。振動データの分布は、平均値の周囲において比較的広い範囲に分散した分布となる。これに対して、振動データの差分値の分布は、図５（Ｂ）に示すように正規分布に近い分布となる。なお、図５（Ｃ）は正規分布を与える確率密度関数のグラフを示す比較例であり、図５（Ｂ）の分布形状に類似した形状を示すことが読み取れる。このように、振動データの差分値を算出することでデータのランダム性が増加し、正規分布のモデルを用いた分散の推定精度が向上する。
【００２６】
分散算出部４は、振動データの分散値σ又は振動データの差分値の分散値σを、推定，算出するものである。ここでは、例えば情報源アルファベットの出現確率を正規分布とみなして、その分散値σが算出される。分散値σの算出精度を向上させる上では、振動データそのものを使用するよりも、その差分値を使用することが好ましい。ここで算出された分散値σは、上位桁数X，下位桁数Yを決定する際に参照される。以下、振動データ及びその差分値を総称して「入力データ」と呼ぶ。
【００２７】
分散値σの算出手法として二通りの手法を例示する。第一の手法は、入力データの平均値との差を二乗したものの算術平均を求める手法である。分散値σは、例えば以下の式１で求めることができる。式１中のnは入力データ数，xiはi番目の入力データ，μは入力データの平均値である。
【数１】
2017028555.tif 000003
【００２８】
第二の手法は、入力データの値が0となる回数Nを計測することで分散値σを推定する手法である。図６（Ａ）に示すように、確率密度関数におけるX=μ=0での値（最大値に相当するもの）は、分散値σが減少するにつれて、増大する特性を持つ。したがって、x=0の出現数（入力データの値が0となる回数N）を計測することで、分散値σを推定することが可能となる。この場合、図６（Ｂ）に示すように、x=0が出現した回数Nと分散値σとの関係をマップ，グラフ，テーブルなどにあらかじめ記憶させておけばよい。ここで推定された分散値σの情報は、桁数設定部５に伝達される。
【００２９】
桁数設定部５は、上位桁数Xと下位桁数Yとを設定するものである。ここでは、少なくとも桁数X，Yの何れか一方が設定される。これらの桁数X，Yの値は、あらかじめ設定された固定値であってもよいし、振動データの内容に応じて設定される可変値であってもよい。後者の場合、分散算出部４で算出された分散値σに基づいて桁数X，Yを設定してもよい。なお、上位桁数Xが設定された場合、下位桁数YはZ-Xと等しい値となる。同様に、下位桁数Yが設定された場合、上位桁数XはZ-Y桁となる。したがって、桁数設定部５は、少なくとも上位桁数及び下位桁数の何れか一方を設定する機能を持つものであればよい。
【００３０】
入力データの分布が正規分布に従うと仮定した場合、削除されずに保存される下位桁数Yが大きくなるほど、その下位桁数Yでカバーされる情報源アルファベットの数が多くなるため、例外処理の確率（上位桁が有意な情報を含む確率）が低下する。例えば、下位桁数Yが増加するほど、下位桁で表現可能な情報源アルファベット数が増加し、図７（Ａ）中に示す固定表現幅が拡幅される。これに応じて、固定表現幅から外れた範囲に対応する部位（例外処理の対象）が減少する。一方、下位桁Yを増加させれば上位桁数Xが減少するため、データの圧縮効率はやや低下する。したがって、データの圧縮効率を考慮した上で、上位桁数X，下位桁数Yを設定することが好ましい。
【００３１】
分散値σに基づく具体的な桁数X，Yの設定手法としては、分散値σと桁数Yとの関係を数式，マップ，グラフ，テーブルなどにあらかじめ記憶させておくことが考えられる。例えば、図７（Ｂ）に示すようなグラフに基づき、分散値σに対応する桁数Yを設定すればよい。このグラフ中には、下位桁を6桁〜9桁のそれぞれに設定したときの平均符号長の変化が重畳して表示されている。グラフの横軸は分散値σ（対数表示）であり、縦軸は平均符号長である。平均符号長は、分散値σが小さい（分散の幅が広い）ほど、下位桁数Yに漸近するように変化する。一方、平均符号長が桁数Yにほぼ一致する分散値σの領域は、下位桁数Yが増大するにつれて拡大される。
【００３２】
ここで、桁数Yが6桁の場合のグラフと7桁の場合のグラフとが交わる点の分散値σをσ1とおく。同様に、7桁及び8桁のグラフの交点に相当する分散値σをσ2とおき、8桁及び9桁のグラフの交点に相当する分散値σをσ3とおく。平均符号長を最小とするためには、分散値σがσ1未満であるときに下位桁数Yを6桁（上位桁数Xを10桁）に設定すればよい。また、分散値σがσ1〜σ2の範囲内ならば下位桁数Yを7桁（上位桁数Xを9桁）に、σ2〜σ3の範囲内ならば下位桁数Yを8桁（上位桁数Xを8桁）に、σ3以上ならば9桁（上位桁数Xを7桁）に設定すればよい。このように、平均符号長が最小となる下位桁数Yを分散値σに応じて選択することで、データの圧縮効率が向上する。
【００３３】
また、図７（Ｃ）に示すようなグラフに基づき、分散値σに対応する桁数Yを設定してもよい。このグラフ中には、下位桁を6桁〜9桁のそれぞれに設定したときの例外処理確率（上位桁が削除される確率）の変化が重畳して表示されている。グラフの横軸は分散値σ（対数表示）であり、縦軸は例外処理確率である。例外処理確率は、分散値σが大きいほど増大するものの、固定表現幅となる下位桁数Yが大きいほど増大しにくく、より分散値σの大きな入力データにも対応できる。
【００３４】
ここで、例外処理確率が所定確率Vとなる分散について、下位桁が6桁〜8桁のそれぞれの場合における分散値σをσ4，σ5，σ6とおく。例外処理確率を所定確率以下に抑えるためには、分散値σがσ4未満であるときに下位桁数Yを6桁（上位桁数Xを10桁）に設定すればよい。また、分散値σがσ4〜σ5の範囲内ならば下位桁数Yを7桁（上位桁数Xを9桁）に、σ5〜σ6の範囲内ならば下位桁数Yを8桁（上位桁数Xを8桁）に、σ6以上ならば9桁（上位桁数Xを7桁）に設定すればよい。このようにして設定された桁数X，Yの情報は、判定部６に伝達される。
【００３５】
判定部６は、個々の振動データについて、桁数Xの上位桁に有意な情報が含まれているか否かを判定するものである。ここでいう「有意な情報を含む」とは、測定対象が振動していない状態を符号化したときと比較して、異なる値を持つこと（すなわち、値が変化していること）を意味する。例えば、振動の変位，速度，加速度，角速度などに相当する値を符号化する手法を採用している場合、図４に示すように上位桁であるX桁内のビット値が全て0ならば「有意な情報を含まない」と判定する。これに対し、上位桁であるX桁内にビット値が1の桁が存在するならば「有意な情報を含む」と判定する。ここでの判定結果は削除部７，付加部８に伝達される。
【００３６】
削除部７は、判定部６が「桁数Xの上位桁に有意な情報を含まない」と判定した振動データに対し、その上位桁を削除した情報を出力するものである。ここでは、図８（Ａ）に示すように、「有意な情報を含まない」と判定された振動データのうち、桁数Xの上位桁（すなわち、最上位桁から数えて桁数X分の情報）が取り除かれ、残りの下位桁（Y桁）の情報が出力部９へと伝達される。
【００３７】
付加部８は、判定部６が「桁数Xの上位桁に有意な情報を含む」と判定した振動データに対し、その最上位桁に固有の符号を付加した情報を出力するものである。ここでは、図８（Ｂ）に示すように、「有意な情報を含む」と判定された振動データの上位桁，下位桁がそのまま残され、最上位桁にY桁の例外処理コードが追加された後に、その情報が出力部９へと出力される。
【００３８】
例外処理コードの桁数は、下位桁数Yと同一桁数（すなわち、総桁数Zから上位桁数Xを減じた桁数）に設定される。また、例外処理コードの値は、少なくとも下位桁が取りうる範囲に含まれない値（下位桁と重複しない値）とされる。例えば、下位桁数が二進数表示で6桁（6ビット）のとき、下位桁の取りうる範囲が000000〜111110であるとする。この場合、例外処理コードの値は111111に設定される。また、下位桁の取りうる範囲が000000〜111000であれば、例外処理コードは111001〜111111の範囲内で任意に設定可能である。
【００３９】
出力部９は、削除部７及び付加部８から伝達された情報を「圧縮後の振動データ（圧縮データ）」として出力するものである。ここで出力された圧縮後の振動データは、通信装置１２を介してセンサーネットワーク３０に送信される。振動データの圧縮効率に関して、仮に全ての振動データの上位桁に有意な情報が含まれない場合には、総桁数Zに対する上位桁数Xの割合に応じたデータ圧縮率が得られる。また、図７（Ｃ）に示すように、例外処理確率が所定確率V以下となるように下位桁数Yが設定されている場合には、総桁数Zに対する上位桁数Xの割合と所定確率Vとに応じたデータ圧縮率が得られる。
【００４０】
［４．フローチャート］
図９は、データ圧縮装置１０で実行されるデータ圧縮プログラムＰの手順（データ圧縮方法の手順）を例示するフローチャートである。ここでは、振動データの差分データに基づいて分散値σを算出し、その差分データに対して圧縮処理を施す場合について説明する。
ステップＡ１では、コントローラー２０のメモリ２２上に圧縮用データメモリが準備される。ここでは、例えば16桁の符号からなる所定数（例えば、数百から数十万）の振動データを記憶することのできるメモリ領域が確保される。続くステップＡ２では、センサー１１から伝達される複数の振動データを取得部１が取得し、圧縮用データメモリ上に記録する。
【００４１】
ステップＡ３では、全ての振動データを対象として、時系列で隣接する振動データの差分データを差分算出部３が算出し、これを圧縮用データメモリ上に上書き保存する。また、ステップＡ４では、差分データの値が0となった回数Nを分散算出部４が計測し、その回数Nに対応する分散値σを推定する。続くステップＡ５では、分散値σに基づき、桁数設定部５が上位桁数Xと下位桁数Yとを設定する。これにより、削除対象となりうるビット幅（上位桁数X）と、少なくとも圧縮処理の前後で保存される固定ビット幅（下位桁数Y）とが決定される。
【００４２】
ステップＡ６では、圧縮用データメモリ上に記録されている多数の差分データのうち、先頭の差分データ（例えば、最も古い時刻に対応する差分データ）が、出力用データメモリに移送される。また、ステップＡ７では、前ステップで出力用データメモリに追加された差分データが桁数Yの下位桁に収まる値であるか否かが判定される。すなわち、その差分データのうち、桁数Xの上位桁に有意な情報が含まれているか否かが判定される。ここで、例えば上位桁のビット値が全て0である場合には「値が下位桁に収まる（上位桁に有意な情報が含まれていない）」と判断されてステップＡ８に進む。一方、ステップＡ７において、上位桁のビット値に1が含まれていた場合には「値が下位桁に収まらない（上位桁に有意な情報が含まれている」と判断されてステップＡ９に進む。
【００４３】
ステップＡ８に進んだ場合、削除部７がその差分データの上位桁を削除してステップＡ１０に進む。また、ステップＡ９に進んだ場合には、付加部８がその差分データの最上位桁に例外処理コードを付加してステップＡ１０に進む。これらのステップに続くステップＡ１０では、上位桁が削除された6桁の符号、又は、例外処理コードが付加された22桁の符号が出力用データメモリ上に記録された状態となり、圧縮後のデータの値が確定する。また、ステップＡ１１では、全ての差分データに対する圧縮処理が完了したか否かが判定され、未完了の場合にはステップＡ６に進む。これにより、古い時刻に対応する差分データから新しい時刻に対応する差分データまでの全データに対する圧縮処理が繰り返し実施される。全ての差分データに対する圧縮処理が完了すると、本フローは終了する。
【００４４】
なお、差分データに圧縮処理を施す代わりに、センサー１１から伝達された振動データに圧縮処理を施す場合には、ステップＡ３で算出された差分データを圧縮用データメモリに上書き保存せず、元の振動データを保持させればよい。この場合、ステップＡ７において、個々の振動データが桁数Yの下位桁に収まる値であるか否かを判定する。また、ステップＡ８では、振動データの上位桁を削除する処理を実施し、ステップＡ９では、振動データの最上位桁に例外処理コードを付加する処理を実施する。このような処理を繰り返すことで、全ての振動データに対する圧縮処理が実施される。
【００４５】
また、圧縮対象が差分データではなく振動データである場合には、ステップＡ３〜Ａ４の処理を省略することも可能である。ただし、差分データに基づいて分散値σを算出する場合には、その限りではない。また、上位桁数X及び下位桁数Yをあらかじめ設定された固定値とする場合には、少なくともステップＡ５の処理を省略することが可能である。この場合、圧縮対象が差分データでなければ、ステップＡ３〜Ａ５の処理を省略することができる。
【００４６】
［５．作製例］
図９に示す振動データの圧縮シーケンスのうち、ステップＡ３〜Ａ４の処理を省略したものを実装した振動測定デバイスを作製した。この振動測定デバイスには、測定，無線通信，圧縮演算を行うマイコンと、振動の加速度を検出する加速度センサーとを内蔵させた。マイコンの作動電圧は3.3[V]である。また、測定動作時のマイコン消費電流が4.98[mA]であり、センサーの消費電流が0.14[mA]である。一回の測定での動作時間は、2.56[s]である。
【００４７】
一方、無線通信動作時のマイコン消費電流は17.0[mA]であり、通信速度は250[kbps]である。マイコンのプロセッサーは、32[MHz]で動作する16ビットコアのプロセッサーであり、演算動作時のマイコン消費電流は4.98[mA]である。加速度センサーで検出される振動データは10ビットADC（Analog/Digital Converter）によるデジタルデータだが、通常は取り扱いの都合上、2バイトで取り扱うことが多いため、無圧縮状態で16ビットとした。
【００４８】
総数が8192点の振動データに対し、圧縮処理を施さずに10ビットデータを伝送した場合における振動測定デバイスの動作電力は、圧縮にかかる演算がゼロとなり、211.5[mJ]となる。一方、圧縮処理を施した場合には、圧縮演算で１データあたり5演算ステップがかかるとして、123.6[mJ]となる。したがって、全体で58.4[%]まで電気量が削減される。このうち、圧縮演算及び無線通信にかかる電力は、無圧縮時に168.3[mJ]であるのに対し、圧縮時には80.4[mJ]となり、47.8[%]まで電力が削減されることが確認された。
【００４９】
次に、図９に示す振動データの圧縮シーケンスを実装した振動測定デバイスを作製した。この振動測定デバイスは、図９中のステップＡ３〜Ａ４の処理が省略されないものである。この振動測定デバイスにおいて、差分データに圧縮処理を施した場合の消費電力を測定した。圧縮処理における振動測定デバイスの動作電力は、差分の演算処理を含めて１データあたり7演算ステップがかかるとして、113.1[mJ]となる。したがって、全体で53.4[%]まで電気量が削減される。このうち、圧縮電算及び無線通信にかかる電力は、無圧縮時に168.3[mJ]であるのに対し、圧縮時には69.9[mJ]となり、41.5[%]まで電力が削減されることが確認された。
【００５０】
［６．作用，効果］
（１）上記のデータ圧縮方法及びデータ圧縮プログラムＰが実行されるデータ圧縮装置１０では、入力データの上位桁に意味のある情報が含まれていなければ、その上位桁が削除される。また、上位桁に意味のある情報が含まれている場合には、最上位桁に例外処理コードが付加される。このとき、積算や小数点演算のような高負荷な演算は不要である。このような単純な方式のデータ圧縮処理により、完全可逆圧縮処理でありながら、圧縮処理による演算時間と電力消費とを抑えることができ、通信による電力を削減することができる。
【００５１】
例えば、振動データのエントロピーの109[%]程度まで情報量を圧縮することができ、ハフマン符号を利用した圧縮手法と同程度の圧縮率を実現することができる。また、発明者の試算によれば、8192個の16ビット長振動データを時系列に並べた振動データ列のエントロピーが6.09ビットである場合、通信電力の削減効果により動作時全体で41.5[%]まで消費電気量を削減することができる。この演算コストは、ハフマン符号を利用した圧縮手法と比較して約1/3程度である。このように、従来よりも省電力の振動測定デバイスを実現することができ、振動測定デバイスに内蔵されるバッテリー，電池の長寿命化や測定頻度の向上，環境発電技術の適用に大きく寄与するものとなる。
【００５２】
また、通信電力の削減効果により、測定頻度を約2.4倍まで増大させることができる。このことから、よりサンプリングレートの高いセンサー１１をデータ圧縮装置１０に内蔵させることが可能となり、振動状態の検出精度を向上させることができる。したがって、振動，騒音や作動状態の解析精度を向上させることができるとともに、IoTシステムやM2Mシステムに対応した通信端末を提供することができる。
【００５３】
（２）時系列で隣接する振動データの差分に相当する差分データを算出することで、データのばらつき（分散）を小さくすることができる。これにより、圧縮処理における下位桁数Yを小さくすることができ、圧縮効率を高めることができる。また、差分データのヒストグラムは振動データのヒストグラムよりも0の値に集中しやすい特性を持ち、分布が正規分布に近づく。したがって、差分データを用いることで、正規分布のモデルを用いた分散の推定精度を向上させることができる。
【００５４】
（３）入力データ（振動データや差分データ）の分散値σに基づいて上位桁数X及び下位桁数Yを設定することで、下位桁に有意な情報が包含される確率を適正化することができる。このことは、圧縮処理の過程で例外処理コードが付与される確率を適正化できることを意味する。つまり、有意な情報がなるべく上位桁にはみ出しにくくなるように、下位桁数Yを設定することができ、データ圧縮効率を向上させることができる。例えば、図７（Ｂ）に示すように、平均符号長が最小となる下位桁数Yを分散値σに応じて選択することで、データの圧縮効率を向上させることができる。
【００５５】
（４）入力データの値が0となる回数Nに基づいて分散値σを推定する手法を採用した場合には、図６（Ｂ）に示すような対応関係を用いて簡単に分散値σを算出することができる。これにより、例えば式１を用いて分散値σを算出するような、比較的負荷の高い演算処理を省略することができ、圧縮処理による演算時間と電力消費とを抑制することができる。
【００５６】
（５）例外処理コードの桁数は、下位桁数Yと同一桁数（すなわち、総桁数Zから上位桁数Xを減じた桁数）に設定される。これにより、圧縮後のデータ量を過度に増加させることなく、上位桁が削除されたデータと固有の符号が付加されたデータとを容易に判別することができる。したがって、圧縮処理の可逆性を確保しつつ、データ圧縮効率を向上させることができる。
【００５７】
［７．変形例］
上述の実施形態では、センサー１１，通信装置１２が内蔵されたデータ圧縮装置１０を例示したが、これらを別体に設けることも可能である。すなわち、別体のセンサー１１をデータ圧縮装置１０の外部に接続する装置構成としてもよいし、別体の通信装置１２をデータ圧縮装置１０の外部に接続する装置構成としてもよい。少なくとも、コントローラー２０が振動データを取得可能であり、かつ、圧縮データを出力可能であればよい。なお、出力方式は無線方式に限定されず、有線であってもよい。また、出力先はデータ圧縮装置１０の外部に限定されるものではなく、補助記憶装置２３や記録媒体１４であってもよい。
【００５８】
また、上述の実施形態では、データ圧縮プログラムＰがデータ圧縮装置１０のメモリ２２，補助記憶装置２３，記録媒体１４などに記録，保存されているものとしたが、データ圧縮プログラムＰが記録，保存される場所は任意に設定可能である。例えば、データ圧縮装置１０が接続されるセンサーネットワーク３０上に配置された外部記憶装置やコンピュータなどにデータ圧縮プログラムＰを実装してもよい。また、データ圧縮プログラムＰを複数のコンポーネントに分割し、各々を別の場所に記録，保存することも可能である。
【００５９】
また、上述の実施形態では、図７（Ｂ），（Ｃ）に示すように、分散値σに基づいて桁数X，Yを設定する手法について説明したが、分散値σの算出を省略し、入力データのばらつきの度合いから桁数X，Yを設定することも可能である。例えば、図１０に示すように、入力データの値が0となる回数Nと下位桁数Yとの関係をマップ，グラフ，テーブルなどにあらかじめ記憶させておくことが考えられる。
【００６０】
図１０は、10ビットの入力データの観測回数と平均符号長との関係を示すグラフである。同図中には、固定表現幅に相当する下位桁を6桁〜9桁のそれぞれに設定したときの平均符号長を重畳して示す。また、図中の破線はエントロピー（最小情報量の期待値）を示す。情報量を最小とするためには、グラフが破線の近くに位置する平均符号長を選択すればよい。すなわち、x=0の出現数（入力データの値が0となる回数）がN1未満である場合に下位桁を9桁とし、N1〜N2の範囲内ならば8桁、N2〜N3の範囲内ならば7桁、N3以上ならば6桁に設定すればよいことがわかる。このように、分散値σの算出を省略した場合であっても、入力データのばらつきの度合いから桁数X，Yを設定することで、上述の実施形態と同様の効果を奏するものとなる。
【００６１】
［８．付記］
以上の変形例を含む実施形態に関し、さらに以下の付記を開示する。
［８−１．データ圧縮装置］
（付記１）
測定対象の振動状態を符号化した所定桁数のデータを時系列で取得する取得部と、
前記取得部で取得された前記データに圧縮処理を施す圧縮部とを備え、
前記圧縮部が、前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除し、前記第一桁数の上位桁が有意な情報を含む場合に、固有の符号を最上位桁に付加する前記圧縮処理を実施する
ことを特徴とするデータ圧縮装置。
（付記２）
前記圧縮部が、時系列で隣接する前記データの差分に対して前記圧縮処理を施す
ことを特徴とする、付記１記載のデータ圧縮装置。
（付記３）
前記圧縮部が、時系列の前記データの分散値に基づいて前記第一桁数を設定する
ことを特徴とする、付記１又は２記載のデータ圧縮装置。
（付記４）
前記圧縮部が、時系列で隣接する前記データの差分が所定値未満となる回数に基づいて前記分散値を推定する
ことを特徴とする、付記３記載のデータ圧縮装置。
（付記５）
前記固有の符号が、前記所定桁数から前記第一桁数を減じた桁数を有する
ことを特徴とする、付記１〜４の何れか１項に記載のデータ圧縮装置。
【００６２】
［８−２．データ圧縮方法］
（付記６）
測定対象の振動状態を符号化してなる所定桁数のデータを時系列で取得する取得工程と、
前記取得工程で取得された前記データに圧縮処理を施す圧縮工程とを備えたデータ圧縮方法において、
前記圧縮工程が、
前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除する削除工程と、
前記第一桁数の上位桁が有意な情報を含む場合に、前記所定桁数から前記第一桁数を減じた第二桁数を有する固有の符号を最上位桁に付加する付加工程とを含む
ことを特徴とするデータ圧縮方法。
（付記７）
前記圧縮工程で、時系列で隣接する前記データの差分に対して前記圧縮処理を施す
ことを特徴とする、付記６記載のデータ圧縮方法。
（付記８）
前記圧縮工程で、時系列の前記データの分散値に基づいて前記第一桁数を設定する
ことを特徴とする、付記６又は７記載のデータ圧縮方法。
（付記９）
前記圧縮工程で、時系列で隣接する前記データの差分が所定値未満となる回数に基づいて前記分散値を推定する
ことを特徴とする、付記８記載のデータ圧縮方法。
（付記１０）
前記固有の符号が、前記所定桁数から前記第一桁数を減じた桁数を有する
ことを特徴とする、付記６〜９の何れか１項に記載のデータ圧縮方法。
【００６３】
［８−３．データ圧縮プログラム］
（付記１１）
測定対象の振動状態を符号化してなる所定桁数のデータを時系列で取得し、当該データを圧縮する処理をコンピュータに実行させるデータ圧縮プログラムであって、
前記所定桁数よりも小さい第一桁数の上位桁が有意な情報を含まない場合に、前記第一桁数の上位桁を削除し、
前記第一桁数の上位桁が有意な情報を含む場合に、前記所定桁数から前記第一桁数を減じた第二桁数を有する固有の符号を最上位桁に付加する
処理をコンピュータに実行させる、データ圧縮プログラム。
（付記１２）
時系列で隣接する前記データの差分を圧縮する
処理をコンピュータに実行させる、付記１１記載のデータ圧縮プログラム。
（付記１３）
時系列の前記データの分散値に基づいて前記第一桁数を設定する
処理をコンピュータに実行させる、付記１１又は１２記載のデータ圧縮プログラム。
（付記１４）
時系列で隣接する前記データの差分が所定値未満となる回数に基づいて前記分散値を推定する
処理をコンピュータに実行させる、付記１３記載のデータ圧縮プログラム。
（付記１５）
前記固有の符号が、前記所定桁数から前記第一桁数を減じた桁数を有する
処理をコンピュータに実行させる、付記１１〜１４の何れか１項に記載のデータ圧縮プログラム。
（補足）
上記の付記における「第一桁数の上位桁が有意な情報を含まない場合」とは、「測定対象が振動していない状態を符号化したときと比較して値が変化していない場合」であり、例えば「第一桁数の上位桁の値が全て0である場合」である。また「固有の符号」とは、「所定桁数から第一桁数を減じた第二桁数の下位桁（固定されている桁）が取りうる範囲に含まれない値を持つ符号」である。
固有の符号とは、削除対象とならない下位桁（所定桁数から第一桁数を減じた第二桁数の下位桁）と重複しない値を持つ符号を意味する。すなわち、固有の符号とは、下位桁が取りうる範囲に含まれない値を持つ符号を意味する。例えば、下位桁数が二進数表示で６桁のとき、下位桁の取りうる範囲が000000〜111110であるとする。この場合、固有の符号は111111に設定される。また、下位桁の取りうる範囲が000000〜111000であれば、固有の符号は111001〜111111の範囲内で任意に設定可能である。
また、前記固有の符号は、削除対象とならない下位桁と同一の桁数を持つ。
なお、上記の付記３，８，１３において、平均符号長が最小となる前記第一桁数を前記分散値に応じて選択することが好ましい。
【符号の説明】
【００６４】
１  取得部
２  圧縮部
３  差分算出部
４  分散算出部
５  桁数設定部
６  判定部
７  削除部
８  付加部
９  出力部
１０  データ圧縮装置
１１  センサー
１２  通信装置
Ｐ  データ圧縮プログラム
X  上位桁数
Y  下位桁数
Z  総桁数
【図１】
2017028555.tif 000004
【図２】
2017028555.tif 000005
【図３】
2017028555.tif 000006
【図４】
2017028555.tif 000007
【図５】
2017028555.tif 000008
【図６】
2017028555.tif 000009
【図７】
2017028555.tif 000010
【図８】
2017028555.tif 000011
【図９】
2017028555.tif 000012
【図１０】
2017028555.tif 000013