Skip to content

sensor_data_compress_format

NewNotMoon edited this page Feb 8, 2016 · 1 revision

センサデータ圧縮フォーマット

通信圧縮について

Bluetooth通信速度が解析に支障をきたすため、速度改善を目的としたデータ圧縮を行う。

フォーマット

独自形式。 センサーデータ送信に使用される文字は以下の限定された文字から構成される。 // 通信データフォーマットに関する記事もまとめる

  • 0...9までの数値
  • マイナス
  • ピリオド
  • カンマ

本来、UTF-8のバイト列をそのまま送信していたため、文字数nに対し、8n byteのデータ量であった。 しかし、構成文字は13種類である。これを表現するのに必要なデータサイズは4bitで十分であるため、各文字にコードを割当、二文字で1byteとして送信することで、50%の圧縮が可能になる。 単純な圧縮だが、通信量が多いため50%になるだけでかなり速度が改善される。

対応表

0 1 2 3 4 5 6 7 8 9 a b c d
NUL 0 1 2 3 4 5 6 7 8 9 - . ,

データはバイト列(8bit)で送信されるため、上位4bitに1文字目、下位4bitに2文字目を割り当てる。

圧縮されたバイトデータ10010001を展開する。

上位4bit 下位4bit
1001(2) 0001(2)
9(10) 1(10)

上位4bitは9であるため、対応表より「8」 下位4bitは1であるため、対応表より「0」

よって、80となる。