次の特性を持つバイナリ (16 進データ) の組み込みシステムなど、リソースが制限された環境向けに最適化された FAST 解凍ルーチンが必要です。
- データは 8 ビット (バイト) 指向です (データ バスは 8 ビット幅)。
- バイト値の範囲は 0 ~ 0xFF で均一ではありませんが、各 DataSet にはポアソン分布 (ベル カーブ) があります。
- データセットは高度に固定されており (フラッシュに焼き付けられる)、各セットが 1 - 2MB を超えることはめったにありません
圧縮には必要なだけの時間がかかる場合がありますが、組み込みシステム (3Mhz - 12Mhz コア、2k バイト RAM) のような制限されたリソース環境で実行されるため、メモリ フットプリントが最小の最悪のシナリオでは、1 バイトの解凍に 23uS かかります。 .
適切な減圧ルーチンは何ですか?
基本的なランレングス エンコーディングは無駄が多すぎるようです。圧縮データにヘッダー セットを追加して、未使用のバイト値を使用して繰り返しパターンを表現すると、驚異的なパフォーマンスが得られることがすぐにわかります。
ほんの数分しか投資していない私と一緒に、このようなものを愛する人々からのはるかに優れたアルゴリズムがすでに存在しているに違いありません?
基本的なRLEと比較してパフォーマンスを比較できるように、PCで試してみる「すぐに使える」例をいくつか用意したいと思います。