圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
2006/11/21(火) 15:24:40
clamav のソースに libalamav/unrar/ に rar 展開ソースは入っているが
パスワード展開には対応していないな。。。
601599
垢版 |
2006/11/24(金) 00:17:06
>>600
どうも。
人いないんですかねこのスレ。
winrarのサイトでもうちょっ新しいunrarsrc-3.6.8.tar.gzがありました。
MacOSXのソフトでもunrarを使っているようなので、これで良いのかもしれません。
2006/11/28(火) 00:16:52
ttp://www.uploda.org/uporg596558.bin.html

何の画像形式が、ご存知の方いらっしゃいませんか?
2006/11/28(火) 01:51:24
>>602
fileさんによると
> uporg596558.bin: Hitachi SH big-endian COFF object, not stripped
だってよ? 画像じゃなくて実行ファイルじゃ

と思ったが中身見てみると確かに32bitの色情報くさい感じはするな。
適当に作画させてみたらどうか?
604603
垢版 |
2006/11/28(火) 03:00:22
なんやよくわからんが顔色の悪いおなごが出てきたぞ
ttp://www.uploda.org/uporg596801.png.html

640x480の32bit生データなんだがどうも縦16でblock化(?)されているらしく、
そのままbmpのヘッダ付けただけだとだめっぽい。
とりあえず↑のは512x608にして、mspaint使って手動で再構成してみたが、
横512なあたり考えると3D作画エンジン用のテクスチャかなんかかの。
こんなバカなことせんでもなんかのツールにぶちこんだら普通に表示されるような気がするようなしないような。
詳しい人フォロー頼む。3D関係は全然ワカラン。

っか、圧縮なんかされてねーからぶっちゃけスレ違いな気ガス




ところで画像の詳細を教えてもらおうか
2006/11/28(火) 23:38:27
>>603
ありがとうございます
参考にします
2006/12/15(金) 18:02:11
遅レス気味だけと >>599
http://p7zip.sf.net のソース読んでいたら、
7zip/Crypto/ 以下に rar やら zip でパスワード付けた時の処理があった。
各圧縮ファイル形式のファイルヘッダや通常の解凍などは
7zip/Archive/ 以下だったりするけど。
2007/01/06(土) 23:01:26
Deflateの展開ルーチンを自前で実装しようとしてるんだけど、
これってひょっとして全部リトルエンディアンなの?
しかもハフマンは右(LSB)から1bitずつ読むわけ?
なんか統一感が無くて判り辛いよ。
なんでこれが普及したんだろ。
2007/01/11(木) 19:32:55
てすと
2007/04/06(金) 10:41:33
unzip32.dll はAES暗号化されたファイルに対応しているんでしょうか。
詰まってしまいました。
未対応なら他の方法を考えるんですが。
610デフォルトの名無しさん
垢版 |
2007/04/09(月) 15:13:03
age
611デフォルトの名無しさん
垢版 |
2007/04/20(金) 01:57:42
動画圧縮に関してはここでいいのかな?

H.264の詳細は、一般人でも入手出来ますか?
何をやってるかは大体は情報が手に入るんだけど、実装できるレベルの資料がない・・・。
2007/04/21(土) 00:52:25
>>611
http://www.itu.int/rec/T-REC-H.264/en
http://www.itu.int/rec/T-REC-H.264.2/en
http://www.compression-links.info/MPEG-4_AVC_H264
http://www.mpegla.com/avc
etc.
613599
垢版 |
2007/04/28(土) 23:41:12
>>606
ありがとうございます。
ソースを読むにはまずc++を勉強しないといけないのかな。cしかやった事ない√|○
2007/04/29(日) 07:49:00
>>613
クラスとSTLの勉強だけだ、おれなんてC++からはじめたし
2007/05/19(土) 14:37:33
英単語辞書を圧縮された状態で検索に使いたいのですけど、
辞書順にソートされた文字列のリストを、検索可能なままで
高圧縮できるアルゴリズムってありますか?

BPEしてcommon prefixを削除すれば、1/3までは小さくは
できたのですが、もっと効率いいのがあれば
2007/05/20(日) 00:10:18
ランダムアクセス可能な圧縮方式は局所性を利用できないから
必然的に圧縮率が落ちるよ。
ブロックソートなんかはソート済みデータには弱いから多分ダメ。
PPMは遅い。
今のままで十分かと。
もうやってるかもしれんがprefix毎にブロックにすると圧縮率が良くなる。
prefixでソートされてるんだから辞書全体に対してsuffixを登録して
prefix単位でブロックを作るのがいいかも。
617デフォルトの名無しさん
垢版 |
2007/05/20(日) 00:19:10
>>616
>ブロックソートなんかはソート済みデータには弱いから多分ダメ。

別に弱くは無いよ。
原理的にはPPMと同じ。
2007/05/20(日) 02:58:38
>>615
FM-index とかどうよ?
2007/05/20(日) 10:49:08
>原理的にはPPMと同じ。
んなこたーない。
620617
垢版 |
2007/05/21(月) 10:17:01
>>619
その辺のことはDO++が説明してたよ。
アルゴリズムとしては違うけど、結局圧縮しているものが同じってこと。
2007/05/21(月) 19:58:43
abcdeという文字に対して
abcdからeを符号化するのがPPM
bcdeからaを符号化するのがBWT
という意味では同じかもしれんけど
BWTは決められたブロック内の情報のみ
PPMはそれまでに出現した情報のみである点が違う。
つまり任意のシンボルが参照できる情報の範囲と質が大分違う。
622617
垢版 |
2007/05/22(火) 10:03:19
>>621
>BWTは決められたブロック内の情報のみ
>PPMはそれまでに出現した情報のみである点が違う。
>つまり任意のシンボルが参照できる情報の範囲と質が大分違う。

範囲なんて調整次第。
PPMだって現実に実装するときはブロックに分けることになるから。

違いは、
BWTはPPMでは未来の出現に相当する部分の情報も使う。
PPMは、それまでに出現した過去のみの情報を使う。
ってぐらい。
ただ、未来の出現といっても、時系列情報を失うので、BWTが特に優位というわけでもない。
2007/05/22(火) 13:09:12
結局何が言いたいのかよく分からん。
やっぱりPPMとブロックソートは違うものだって結論に変わりはなさそう。
624617
垢版 |
2007/05/22(火) 13:14:26
>>623
616の指摘はおかしいということ
2007/05/22(火) 15:13:05
ソート済みデータのベンチマーク
ttp://www.maximumcompression.com/data/dict.php
2007/05/22(火) 15:15:13
BZIP2がPKZIPに負けてる。
2007/05/25(金) 18:23:12
大量の単語がソートされているならLZ77が強いんじゃね?
2007/05/28(月) 20:23:27
可逆圧縮で、圧縮率より高速性を重視したアルゴリズムでいいのありませんか?
特許に抵触しないフリーなやつでお願いします。
2007/05/28(月) 20:41:10
>>628
最近のCPUはめっちゃ速いから、ファイルアクセスやってる間に
だいたい圧縮処理が終わっちまうんじゃね?
2007/05/28(月) 22:26:53
lzo とか?
2007/05/28(月) 22:44:08
zlibって特許まみれ?
2007/05/28(月) 23:58:41
探せばなんかに引っ掛かったりするかもな。
2007/07/08(日) 12:59:07
圧縮
        ______
      / //    /|
      | ̄/  ̄ ̄,:|//!
      |/_,,..,,,,_ ./ .!/|
      | ./ ,' 3/`ヽ::|っ.!
      | l /⊃ ⌒.|つ|
      |/ー---‐'''''"|/
        ̄ ̄ ̄ ̄ ̄
解凍
        、ゞヾ'""''ソ;μ,
       ヾ  ,'3     彡
       ミ         ミ
       彡        ミ
       /ソ,, , ,; ,;;:、ヾ`

エラー
      _,,..,,,,,,..,,,,,..,,,,,,..,,..,,,,,,..,,,,,,,,..,,,,_
     / ,' 3,' 3,' 3,' 3,' 3,' 3' 3,' 3,  `ヽーっ
     l   ⊃⊃⊃⊃⊃⊃⊃⊃⊃. ⌒_つ
      `'ー---‐---‐---‐---‐---‐'''''"

深刻なエラー
    _,,..,,,,_
   ./ 。  `ヽーっ
   l o 3  ⌒_つ
    `'ー---‐'''''"
2007/07/25(水) 08:05:28
圧縮アルゴリズムの性能の評価ってどうやるの?

c_i が元の符号(符号長 n で固定)で d_i をその圧縮後の符号として
Σ len(d_i)/Σ len(c_i)
とか計算したら大体どんな圧縮法でも大体1より
ちょっと大きくなるくらいになるよね?
635デフォルトの名無しさん
垢版 |
2007/08/10(金) 18:57:30
現行ツールだと大抵、自己展開CAB(exe)を実行せずに強制展開出来る、
あるいは拡張子を.CABに変えると出来たりするんだが…

それでも展開しにくいファイル、というのはあって、
ツールによって展開出来たり出来なかったりする。

で、そういうファイルを調べてみたら、ヘッダ("MSCF〜")らしきものが複数あって、
最初のヘッダは不正で、3番目のヘッダが正解だった。
単にファイルの先頭からヘッダらしきものまで読み飛ばすだけだと、
こういうのに対応出来ないわけだ。

これ、確実な調べ方あるんだろうか?
それともヘッダらしきものを総当りで調べるんだろか?
636デフォルトの名無しさん
垢版 |
2007/10/15(月) 02:36:44
ここでの質問でいいのかわからないのですが、

フォルダ(ディレクトリ)をアーカイブファイルで保存・管理することを考えています。
そのとき、アーカイブのデータを使って元のフォルダの差異が知りたいのですが、
なにかうまい方法(「展開して差分」以外で)はあるでしょうか。

例えばフォルダAとフォルダBの内容が等しいかどうか(具体的には再帰的にファイル
内容の差分(Unix なら diff -r)をとって差があるかどうか)を、対応するアーカイブAと
アーカイブBの差から知りたいのです。
フォルダAとフォルダBの内容が等しい <=> アーカイブデータが等しい
となるようなアーカイブができるとうれしいのですが。

一般的なアーカイブフォーマットにはメタデータ(タイムスタンプ等)が含まれたりして、
アーカイブの単純な差分では駄目なようです。上記の目的のためにはタイムスタンプ等
はいりません。

よろしくお願いします。
2007/10/15(月) 03:34:02
アーカイブファイル内のディレクトリ情報から、サイズとCRCを
比較するだけでいいと思うが。

で、ここがプログラム板だということは分かっているんだろうか?
2007/10/15(月) 10:11:49
11
12
1121
122111
112213
2007/10/15(月) 11:53:08
昨日の平成教育委員会にやってた google入社試験からの問題か
2007/10/15(月) 12:29:08
連長圧縮?
2007/10/15(月) 12:33:29
連長っちゃ連長だけど、ぜんぜん圧縮できてない
2007/10/15(月) 20:06:04
>>639
いつのまにそんなの取り上げるようになったんだww
2007/10/17(水) 04:34:09
俺時間内に解けなかった
どうしようorz
2007/10/18(木) 02:32:30
12221131
1123123111
12213111213113
11221131132111311231
なんか3が出てきた時点で急速に発散
2007/10/31(水) 03:22:23
だれかgzipを解凍する簡単なコードを見せてくれませんか?
646デフォルトの名無しさん
垢版 |
2007/10/31(水) 04:27:38
DLLつかえ
2007/10/31(水) 08:53:09
どるるるるるるるるるるうるるるうう
2007/10/31(水) 16:23:27
自前でやりたい。
2007/11/09(金) 12:30:47
zlib を見よ!
650デフォルトの名無しさん
垢版 |
2008/02/21(木) 20:27:21
ラプラスで画像ファイル(ビデオ)を圧縮しても容量が小さくならないのは、
どうしてですか?
2008/02/21(木) 20:29:39
むしろ大きくなってるだろ
2008/02/21(木) 23:07:20
はたして、容量が小さくなってないものを「圧縮した」と言うのだろうか。
2008/02/22(金) 03:07:19
可逆で圧縮率と解凍速度に優れたフォーマットって何になりますか?
2008/02/22(金) 08:45:44
>>650
ラプラスって、ラプラス変換? あれは圧縮とは別次元だぞ。
例えば、CR(コンデンサー+抵抗)の回路などで作った
フィルターの特性を一次式に変換するとかそういう奴でしょう。

確かに、フィルターかましたり、
わざと見えないくらいのノイズを載せたりして
圧縮効率を上げる技はあるけど、
常に圧縮率が良くなるという話でもなかったりします。
2008/02/22(金) 08:58:12
GB単位で圧縮かまさなければ速度なんて今は殆ど問題にならんような
BWTとかPPM系でもそこそこの速度で動くでしょ

それよりマルチコアが一般的になったからマルチスレッド動作可能なのを考えたい
まあデータを分割して既存のアルゴリズム適用すればいいだけの話だけど
656デフォルトの名無しさん
垢版 |
2008/02/29(金) 03:42:53
C#でzip32j.dllを使用して以下のような構成の圧縮を行いたい場合は
どうすれば良いでしょうか?
c:\aaa\bbb\ccc\ddd\file.txt
とある場合に、cccフォルダ以下を圧縮したいのですができません。

オプションで-rを指定するとaaaフォルダから圧縮され、
-rjを指定するとccc以下のテキストが指定した作成したzipファイル
直下に格納されます。
ちなみに、コマンドラインの圧縮対象には「c:\aaa\bbb\ccc」を
指定しています。
657デフォルトの名無しさん
垢版 |
2008/10/10(金) 08:59:48
10万ファイル格納されているZIPファイルのファイル一覧を、待ち時間無しで取得する方法ありますか。
定番のUNZIP32.DLLでは書庫をOPENするのにとても時間掛かります。
最近出たINFO-ZIP最新版だと軽いですか?
2008/10/10(金) 09:08:16
ZIPフォーマット調べて、自分で読んでみりゃいいじゃん

ファイルの一覧取るくらいなら、圧縮とか気にしなくていいし
659デフォルトの名無しさん
垢版 |
2008/10/10(金) 09:12:02
>>685
すみません。ひとつひとつファイル名を取得して、あと個々に(メモリ上へ) 解凍もしたいんです。
速度が出ていいやつありませんか? UNZIP32.DLLはオープンに時間掛かるのでは除外します。
660デフォルトの名無しさん
垢版 |
2008/10/10(金) 09:14:45
Zipフォーマットは複数合ってすべてに対応するのは、自作では厳しいです。
661657
垢版 |
2008/10/10(金) 10:36:48
自己解決しました
UNZIP32では、1分待っても反応無しのが
7-zipにしたところ30秒で済み
XacRettではなんと0.3秒でopenデキマシタ。
662657
垢版 |
2008/10/10(金) 10:45:38
XacRettはopen速いですが、個々のファイルの取得が超掛かります。使い物になりませんでした。
2008/10/10(金) 13:51:38
だから世にあるフォーマットの仕様を確認すれば違いが判るじゃん。
得手不得手ってのがあるんだしさ。
664657
垢版 |
2008/10/10(金) 16:22:18
使えねえやつらだな。
2008/10/10(金) 16:26:37
使う側だからね。
2008/11/04(火) 10:09:01
UN○○32.DLLってOSが64bitでも動くの?
2008/11/04(火) 17:11:11
x64のOSをまず使ってみてから、その愚かな質問についてあらためて考えるんだな
668667
垢版 |
2008/11/05(水) 00:20:40
(…ふー、うまくごまかせた)
669デフォルトの名無しさん
垢版 |
2008/11/05(水) 19:45:49
>>666
OSが64ビットLinuxだったら動かない。
……と言うボケは置いておいて。

XPは知らんがVistaではとりあえず動く。
動くけどそのDLLを使うソフトも32ビットじゃなくちゃダメ。
もっともそのDLL使うと明言していて64ビットで作ってる馬鹿はいないはずだが。

2008/11/11(火) 16:36:21
結局のところ、lzwは使っても特許的に問題ないですか?
2008/11/12(水) 08:43:01
パテントの有効期限切れて、更新ははしなかったらすいが > うにしす
ただ前も言うことをコロコロと変えているので、安心とは言えない気がする
2008/11/12(水) 19:40:18
サブマリン特許ですね!
2009/01/08(木) 08:17:56
>>634普通は1よりべらぼうに大きくなるだろエントロピー的に考えて・・・
1よりちょっと大きいだけって、ほとんど圧縮出来てないんじゃね?
2009/01/10(土) 17:54:00
ttp://www.highcelight.com/extraction/
上のように、復元したものの文字列を直すフリーソフトってありませんか?
メモ帳のものを復元できたと思ったら、文字化けしていました。
2009/01/10(土) 21:09:51
それは復元できてないだけです
2009/01/16(金) 15:05:14
スレチかも知れませんが
.ewaという拡張子で暗号化・圧縮・分割・結合する
海外のソフトウェアを知りませんか?
1990年代後半に使われた物らしいですが
ソフト名がわからず困っています
2009/01/16(金) 20:15:40
イタチなのでソフトウェア板に行って下さい
2009/01/28(水) 22:44:59
Windows上で動作するゲームを作っているのですが
そのゲームで使う画像・音声ファイルを、どうやって1つのファイルに格納しようか迷っています

最初は自分でフォーマット決めて、各ファイルを順々に詰めていけばいいかと思ってたんですが
よく考えたらtarや無圧縮zipなどを使った方が
既存のライブラリを使える分、もっと楽だということに気づきました

こうした用途に向いているのは、どの圧縮形式でしょうか?
2009/01/28(水) 23:10:42
自分が一番扱いやすいフォーマットでいいんじゃね?
2009/01/29(木) 01:49:37
圧縮せずに、ただまとめるだけなら、自分でやったほうがいいと思う。
2009/01/29(木) 07:53:37
tar一択だろフォーマット的に考えて・・・まさにその為のフォーマットなんだし。
ただ、自分でやった方が高速軽量になると思う。
単にまとめるだけにしては高機能杉るんだよtarは。
682デフォルトの名無しさん
垢版 |
2009/01/29(木) 08:23:15
ゲームでところどころ取り出すのにはtar向かないフォーマットだった気がするが?
tarはソリッド圧縮的な扱いでそういうの苦手だった気がするが
最近はその辺を改良したtarがあるのか?

そういう意味では個別抜き出しできそうなフォーマットで無圧縮使えばいい。
ライセンス的にLGPLで問題ないなら7-zipが明確。Zipはライセンス料発生するかもしれない。
2009/01/29(木) 14:29:22
ここの>>570にのってるliblzfが個人的にお勧め。
BSDライセンスでコードも短い。圧縮は64k毎のデータの圧縮を連結している感じ。
ライセンスがある程度自由だと、自作のファイルフォーマットに組み込みやすい。
684678
垢版 |
2009/01/30(金) 09:53:21
ご意見ありがとうございます!
まとめると

1. 自分で詰め込む
2. 7-zipやliblzfを用いる

の2種類が適切なようですね。調べつつ考えてみます
2009/01/30(金) 10:29:49
>>684
osaskのsar
2009/01/30(金) 12:41:08
>>685
仕様やライブラリが公開されていないようなのですが
どこかに置いてあるのでしょうか?
2009/03/09(月) 12:54:48
どうでもいいメモ。NTFSの圧縮形式はLZNT1であり、既にリバエンされている。
http://cs.fit.edu/~mmahoney/compression/text.html#6368
…ロシア語読めなさ杉ワロタ
2009/03/15(日) 10:42:47
ははは
689デフォルトの名無しさん
垢版 |
2009/09/14(月) 14:40:40
独自でサバクラを作成ししています。
サーバからクライアントにZip圧縮したバイナリデータを送信して、クライアントのメモリ上で解凍する必要があります。
(ファイルにはしないで、ストリームデータです。)
このときに使用できるdllやライブラリを探しているのですがご存知の方はいないでしょうか?
unzip32.dllでは無理ですよね。

環境はWindwsXpです。
2009/09/14(月) 16:47:04
unzip32でもできると思う
2009/11/08(日) 01:21:00
rarにzlibみたいなライブラリ無いの?
rar3形式かどうか判定出来るだけでも機能が欲しい。
hexdumpしてみたけど、RAR3みたいなバージョン文字列は無い様なので、同じバイトコード列かどうか判定するしかない?
眺めた感じだと、1バイト目から16バイト目までのバイト列と、45バイト目から48バイト目までのバイト列で判定すればいいの仮名?
2009/11/08(日) 10:20:25
>>691
unrar.dllでReadHeader(Ex)を使い、RARHeaderData::UnpVerの値を読んでやると分かるかもしれません。
2009/12/05(土) 01:34:53
可変長の符号をファイルに出力したいのですが
どのようにすればいいでしょうか?

例.値(10進)「3 3 6 3 6 2」

3・・・00
6・・・01
2・・・100

出力後のファイル(2進)「0000010001100」

最低1バイト単位でファイルに出力したいのですがググっても分かりません・・・
因みにVS C++ です。
スレチを承知ですが、宜しくお願いします。
2009/12/05(土) 02:04:27
c++スレへどうそ
2009/12/05(土) 02:33:55
http://pc12.2ch.net/test/read.cgi/tech/1258158172/
C/C++の宿題片付けます 132代目
696デフォルトの名無しさん
垢版 |
2009/12/11(金) 03:16:25
一般的なソフトで
250kb程度のJPG画像の可逆圧縮で圧縮したら一般的にどの程度なんだろ?
原本JPG->204704byte
rar->204697byte
zip->203342byte
作ったやつ->152822byte

俺最高wwww
2009/12/11(金) 13:43:46
どんなjpgかによる。
単色なら数バイトに出来るんじゃね。
2009/12/11(金) 13:48:09
>>1
zlibのソースを見るといいですよ。
699デフォルトの名無しさん
垢版 |
2009/12/11(金) 23:34:00
>>697
お前は単色の白や黒が一般的なのか(笑)
■ このスレッドは過去ログ倉庫に格納されています