2017-04-22 2 views
1

私は圧縮アルゴリズムに関してはそれほど精通していません。C++とSharpZipLib

私はcompresに、前述のライブラリを使用して、データのチャンクを解凍C#コードの部分を持っています。それは圧縮レベル3を使用しますが、それ以外の最も基本的な実装です。

これで、C++を使用して同じデータを作成したいと考えています。それはzip形式なので、私たちはdeflateアルゴリズムについて話していますよね?

は、私はZIP圧縮を扱う任意のC++ライブラリは、そのアルゴリズムを使用し、それがC#バージョンとの互換性だということを前提とする修正アム?レベル3の圧縮はzip標準ですか、それともC#lib固有のものですか?

私のコードにライブラリを探しているし、実装する際に基本的に、私は、どちらかといえば、のために外を見るために何がありますか?

答えて

1

これはジップ形式なので、収縮アルゴリズムについて説明しています。

すべての.zipファイルがDEFLATEアルゴリズムを使用しているわけではありません。 ZIP仕様は、それがサポートするさまざまな圧縮方法の多数を示しています

4.4.5 compression method: (2 bytes) 

    0 - The file is stored (no compression) 
    1 - The file is Shrunk 
    2 - The file is Reduced with compression factor 1 
    3 - The file is Reduced with compression factor 2 
    4 - The file is Reduced with compression factor 3 
    5 - The file is Reduced with compression factor 4 
    6 - The file is Imploded 
    7 - Reserved for Tokenizing compression algorithm 
    8 - The file is Deflated 
    9 - Enhanced Deflating using Deflate64(tm) 
    10 - PKWARE Data Compression Library Imploding (old IBM TERSE) 
    11 - Reserved by PKWARE 
    12 - File is compressed using BZIP2 algorithm 
    13 - Reserved by PKWARE 
    14 - LZMA (EFS) 
    15 - Reserved by PKWARE 
    16 - Reserved by PKWARE 
    17 - Reserved by PKWARE 
    18 - File is compressed using IBM TERSE (new) 
    19 - IBM LZ77 z Architecture (PFS) 
    97 - WavPack compressed data 
    98 - PPMd version I, Rev 1 

は、私はZIP圧縮を扱う任意のC++ライブラリは、そのアルゴリズムを使用していることを前提とし、それがC#バージョンとの互換性だとする正しいですか?

DEFLATE 、その広範な使用にほぼすべての圧縮ライブラリに実装されなければならないのにそれは、彼らがサポートするかを決定するために、ライブラリの作者まで本当にです。すべてのライブラリがSharpZipLibと互換性があるわけではありません。なぜなら、異なるプログラマーは、コードを最適に整理する方法が異なるからです。

レベル3圧縮はzip標準ですか、それともC#lib固有のものですか?

これは、標準の一部です。

4 - The file is Reduced with compression factor 3 

私のコードにライブラリを探しているし、実装する際に基本的に、私は、どちらかと言えば、のために外を見るために何がありますか?

使用する圧縮方式がライブラリでサポートされていることを確認し、APIが理解できることを確認し、ライブラリの速度を確認するために使用するライブラリのベンチマークを見つけようとします。ディスクの読み取りと書き込み以外のジップデータを使用する必要がある場合は、ライブラリがストリームやバイトバッファに書き込んでネットワーク経由で送信できることを確認してください。

LinkをZIP仕様に変更しました。

0

圧縮レベルは、圧縮時に選択された速度対圧縮比のトレードオフです。デコンプレッサが圧縮解除する能力には何の影響もありません。

ジップファイルに収縮したエントリが含まれている可能性があります。あなたは、任意のunzipperを使用して内容をリストし、調べることができます。

関連する問題