プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。

素朴な疑問なのですが、compressでファイルを圧縮すると肥大してしまうことがあるのですがなぜなのでしょうか?
教えてください。

A 回答 (3件)

もともと情報量が大きい割りにサイズが小さいファイル (言い換えれば圧縮率が低いファイル) を圧縮すると圧縮によるオーバーヘッドが加わり大きくなってしまうことがあります。



また、compress は Unix でよく使われている gzip や bzip2 などと比べてもかなり圧縮率が悪いのでそういう傾向は出やすい思います。

ちなみに、compress は速度面でも gzip よりも遅いためか Solaris 7 からは高速な zip (Info-ZIP) が標準インストールされるようになり、主として使用されるようになりました。
    • good
    • 0
この回答へのお礼

回答ありがとう御座います。
compressよりgzipの方が遅い気がします。
gzipの方が圧縮率は高いですね。本来の圧縮処理を
優先にしていますので、gzipを試してみようかと思います。
ありがとう御座います。

お礼日時:2005/11/14 13:49

アルゴリズムの問題じゃないでしょうか。


もっとも簡単な圧縮の原理は連続するデータを、記号化する事にあります。

たとえば単純に文字列を、文字と連続回数に変換するアルゴリズムの場合。
AAAAA→A5  3バイト圧縮
A→A1    1バイト肥大
となります。

普及してる圧縮アルゴリズムなら肥大する事はそうそうないと思いますが。
JPEG、GIF等のすでに圧縮されているファイルをさらに圧縮しようとすると肥大する可能性はあると思います。
    • good
    • 0
この回答へのお礼

回答ありがとう御座います。
わかり易い説明でした。

お礼日時:2005/11/14 13:46

元のファイルが既にデータ圧縮が行なわれている場合(例えばjpeg形式の画像ファイルなど)には、compressなどにより付帯情報がつく分ファイルサイズが大きくなることはあったかと思います。



(元のファイルよりサイズが大きくなった場合には、元のファイルを残して、compressした一時ファイルのコピーをしない、というような挙動をしたような記憶があるのですが、違ってましたっけ?)
    • good
    • 0
この回答へのお礼

回答ありがとう御座います。
>(元のファイルよりサイズが大きくなった場合には、元のファイルを残して、compressした一時ファイルのコピーをしない、というような挙動をしたような記憶があるのですが、違ってましたっけ?)
オプションで-fと記述すると、元のファイルより肥大してしまっても強制的にcompressを実施します。

お礼日時:2005/11/14 11:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!