5

base64 でエンコードされた 64 ビット double の多くのチャンクを XML ファイルに保存しています。double データはすべて同じように見えます。

double データは現在、エンコードの前に Java 'Deflate' アルゴリズムを使用して圧縮されていますが、ファイル内のバイナリ データの各チャンクには独自の deflate データ ディクショナリがあり、これは大幅に削減したいオーバーヘッドです。「Deflater」クラスには、使用したい「setDictionary」メソッドがあります。

質問は次のとおりです。

1)。複数のデフレート操作に使用できる double (x8 バイト) の複数のセクションに基づいて、独自の単一のカスタム データ ディクショナリを最適に構築する方法、つまりすべての圧縮に同じディクショナリを使用する方法について、誰か提案はありますか? 最も一般的なバイトをディクショナリ配列の最後に配置して、すべてのバイト配列で共通のバイトを探す必要がありますか?

2)。(カスタム) データ ディクショナリをデフレートされたデータから分離し、後でデフレートされたデータに対してディクショナリを設定してから、データを再び膨張させることはできますか?

3)。deflate アルゴリズムはカスタム データ ディクショナリを取得し、独自のわずかに異なるデータ ディクショナリを作成して、特異なデータ ディクショナリを無効にし、特異なデータ ディクショナリを使用することによる潜在的なスペース節約を減らしますか?

4)。私自身が圧縮データからデータ辞書を分離しようとするように、誰かが zlib 圧縮データの構造について詳しく説明できますか?

ファイル内のデータ ディクショナリ用に 1 回だけスペースを使用し、ファイル内の double データの各ブロックにスペースを使用しますが、double データと一緒に保存したくありません。データ ディクショナリをデフレートされたデータから分離したり、個別に保存したりできない場合は、圧縮された各ブロックに独自のディクショナリがあるため、カスタム特異ディクショナリを構築する価値はほとんどないように思われます。これは正しいですか?

4

1 に答える 1