1

圧縮ツールがロスレス圧縮を改善できるように支援する方法についてアドバイスを求めています。

さまざまなセンサーからのセンサー読み取り値を含む大きなファイル (>100 メガ) が多数あります。さまざまなセンサーからのサンプルは、ビット サイズ (16 ビット、24 ビット、32 ビット) と周波数 (70Hz ~ 250Hz) が異なります。私が知っている一般的なコンプレッサー (zip、gzip、bzip2) を使用すると、元のファイル サイズの約 70% の圧縮ファイルを取得できます。これらのバイトがこのタイプのサンプルであり、それらのバイトが別のサンプルタイプであると圧縮ツールに伝えることができれば、圧縮が向上する可能性があるように思えますが、これを可能にするものは何も知りません。

4

1 に答える 1

1

ステップ 0 は、データをバイナリでコーディングすることです。(2 バイトで 16 ビット、3 バイトで 24 ビットなど) 既にそれを行っていることを願っています。

ステップ1は、違いを使用することです。あなたの説明から、連続した値はあまり変わらないと思います。したがって、差は小さく、多くの先行ゼロ ビットがあります。それを試してから、汎用コンプレッサーを試してください。

ステップ 2 では、可変長整数コーディングを使用します。各バイトの上位ビットは、各整数の範囲を決定します。整数の最初のバイトの上位ビットは常にゼロです。同じ整数の後続のすべてのバイトの上位ビットは 1 です。各バイトの下位 7 ビットから整数を構築します。(私は最初のバイトを最下位ビットにしますが、最上位ビットの順序にすることもできます。) これにより、わずかな違いが 1 バイトにコード化されます。また、このコーディングはサンプル内の任意の数のビットを処理するため、アプリケーションで便利です。これを試してから、汎用コンプレッサーを試してください。

ステップ 3 は、より良い予測子のための波形のより詳細な分析かもしれません。ステップ 1 では、単純に最後の値を予測子として使用します。次の値の予測子として、前のn値のより複雑な関数を使用できます。これが役立つかどうかは、データに大きく依存します。

于 2013-02-09T00:36:41.657 に答える