私は、データの小さなまとまりを圧縮するiOSアプリを持っています。私はLZ4モードで実行しているcompression_encode_bufferを使って、自分のニーズに十分に速いようにします。iOSのcompression_encode_bufferからLZ4の出力をデコードする
後で、アップル以外のデバイスでファイルを作成してデコードしました。以前はZLIB圧縮モードを使用していましたが、System.IO.Compression.DeflateStreamを使用してC#で正常にデコードできました。
しかし、私はLZ4出力で時間があります。 LZ4のドキュメントhereに基づいて、Appleはストリームを複数のブロックに分割します。各ブロックは4バイトのマジックナンバー、4バイトの圧縮解除サイズ、4バイトの圧縮サイズで始まります。すべてのことが意味を成しています。ファイルを構文解析して、生のLZ4チャンクにすることができます。バッファーiOSの各チャンクは約65,635バイトに圧縮解除され、私の場合は約10個あります。
しかし:私は残っているLZ4チャンクをどうすればいいのかわかりません。私はLZ4netのLZ4.LZ4Stream、LZ4netのLZ4.LZ4Codec(最初のブロックを管理していますが、2番目のブロックでフィードすると失敗します)でデコードしようとしました。また、データをデコードするためにいくつかのC++ライブラリを試しました。それぞれは、iOS圧縮関数が非標準的な方法でエンコードしたヘッダーを探しているようです。