bzip2はブロック単位でデータを圧縮します。各ブロックはマジックナンバー1AY&SYで始まります。bzip2ブロックの非圧縮データのサイズはどのように知ることができますか?
各ブロックの背後にある非圧縮データのサイズを調べることはできますか?
する方法の1つは、bzip2ファイルblock-by-blockを解凍し、解凍された各ブロックのサイズを見つけることです。 BUT私は圧縮解除を伴わない方法を見つけようとしており、圧縮時間中に圧縮されていないブロックのサイズを知ることができます。
解凍ツールに解凍ブロックの最大サイズを教えて、十分なメモリを割り当てる必要があるというケースがあります。圧縮解除は組み込みプラットフォームで行われるため、リソースは限られています。
ブロックのbzip2ヘッダー形式には、圧縮解除されたブロックのサイズに関する情報も含まれていません。 bzip2ファイル形式については、wikipedia pageを参照してください。
注:私はCで開発されたコンソールアプリケーションでbzip2を使用しており、LinuxとWindowsの両方で動作するため、Cのコードに関して解決策が必要です。
おそらく、この情報を利用できるようにbzip2のソースコードを変更できますか?あなたが操作すべきコード内の領域を知っていれば? –
はい、それを変更することができます。あなたはあなたがすでにやろうとしていることの例を得て、あなたの質問に投稿するべきです。 – Harry
私はコードを調べましたが、方法を見つけることができませんでした。誰かが方法を知っているかどうか尋ねる理由です。 –