データロガーに利用される低パフォーマンス、低RAM サイズのマイコンでも圧縮システムを利用し、ストレージサイズの削減をすることができ、より低コストの量産を実現
エッジデバイスでセンシングしたデータを圧縮転送することで、転送データ帯域幅の削減、転送時間の削減による省電力化、パケットサイズを削減できることによる運用コストの削減
IoT エッジデバイスと同様に、ウェアラブル医療機器・健康管理機器・モバイルデバイスなどで、データ圧縮・ストリーム圧縮利用により、データ転送帯域幅の削減や省電力化を図ることができます。
データ転送距離により制約のある帯域幅でのデータ転送通信時間を大幅に削減することができます。
データ送信に必要な帯域幅を削減するストリーム圧縮を利用する事でネットワーク機器に適合することができます。
家電デバイスやパーソナルアシスト機器などで、Bluetooth、Zigbee など低消費電力通信を利用したデータ転送やファームウェアアップデートなどにおいて、大幅なデータ転送帯域幅の削減をすることができ、より短時間にデータ転送、ファームウェアアップデートを実現できます。
「emCompress ToGo」で利用されるSEGGER 社独自可逆圧縮アルゴリズムの高い圧縮率
利用できるマイコンRAM リソースに合わせて、ウィンドウサイズを大きくすることにより、パフォーマンスを向上することができます。例としてCortex-M7(200MHz)で256Byte のウインドウサイズのRAM to RAM 圧縮パフォーマンスは、約400KByte/sec となります。またRAM に追加の作業バッファを利用する拡張機能により、約1,500KB/sec の圧縮速度を実現することができます。
解凍機能においては、ウインドウサイズなどのパラメータはパフォーマンスに大きな影響を与えません。
例としてCortex-M7(200MHz)でRAM to RAM の解凍を利用すると約6.3MB/sec の圧縮データ入力、約13MB/sec の解凍データ出力となります。ストリーム解凍API を利用して、逐次解凍する場合は、約4.3MB/sec の圧縮データ入力、約9MB/sec の解凍データ出力となります。
■ RAM 使用量
SEGGER SMASH 圧縮解凍アルゴリズムでは、非圧縮部分を「ウィンドウ」として扱います。ストリーム圧縮の場合は、一度に2KB 以下のブロックを圧縮します。(最小設定256Byte)
■ ROM 使用量
解凍・圧縮には、それぞれRAMtoRAM API とストリームAPI の2 つの解凍エンジン(API)が用意されています。
RAMtoRAM 解凍API の実装ROMサイズは、約370Byte。ストリーム解凍API の実装ROMサイズは、約540Byte となります。
RAMtoRAM 圧縮API の実装ROMサイズは、約1.1KByte。ストリーム圧縮API の実装ROMサイズは、約1.28KByte となります。
PC 用評価ソフトウェアパッケージ
SEGGER 社独自圧縮・解凍システムの圧縮率などを評価できるパッケージは無償でダウンロード出来ます。
ファイル名 | 内容 |
---|---|
ShowStats.bat | 同梱されているサンプルファイルをウインドウサイズパラメータ8 ~12 でSmash.exe 実行するWindows バッチファイル |
Smash.exe | Windows でのSMASH 圧縮エンジン実行ファイル |
Unsmash.exe | Windows でのSMASH 解凍エンジン実行ファイル |
Blog.txt | サンプルファイル:SEGGER 社テクニカルブログ |
Firmware.bin | サンプルファイル:マイコン用ファームウェア |
Firmware.hex | サンプルファイル:ファームウェアHEX サンプル |
FPGA.bin | サンプルファイル:FPGA ビットストリームサンプル |
Index.htm | サンプルファイル:SEGGER 社ウェブサイト |
MIDI.mid | サンプルファイル:標準的な.midi ファイル |
組込みシステム用評価ソフトウェアパッケージ
「emCompress 評価可能評価ボード」の他、SEGGER Embedded Studio を利用して利用シミュレーションも可能です。「メモリからメモリ」「関数から関数」「メモリから関数」などの組み合わせ結果をシミュレーションプロジェクトでテストができます。
ターゲット・シミュレータ用簡単なステップで実現
1.「Start.emProject」を開きます。
2.アクティブなビルド構成を「Decode_Release」または「Encode_Release」で選択し、プロジェクトをビルド
3.デバッグセッションを実行
4.デバッグターミナルにサンプルアプリケーションの圧縮または解凍の結果が表示
ストリーミングデータで利用できますか?
はい、利用可能です。サンプルプロジェクトで利用方法を確認いただけます。
ユーザアプリケーションで、圧縮して保存というような操作は可能ですか?
はい、利用可能です。
大きなファイルサイズの全体を解凍するのではなく、ファイルの一部を抽出する方法はありますか?
はい、チャンク(データの抽出量)サイズを予め設定する必要はありますが、可能です。サンプルプロジェクトで利用方法を確認いただけます。
圧縮時に都度パラメータを選択する必要はありますか?
特に設定する必要はありませんが、ウインドウサイズは、アプリケーション全体のRAM 利用状況からパラメータ設定することもできます。