圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
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
お前は単色の白や黒が一般的なのか(笑)
2009/12/11(金) 23:43:32
>>699
うるさーい。
2009/12/12(土) 03:57:21
256色減色アプリでも作ったほうがいいだろ。モノクロ256階調アプリでもいいけど。
2009/12/12(土) 04:19:52
実際に画像ファイルの統計を取ったら単色の白や黒の比率はかなり高そうだな。
某人気漫画家の作品のような状態で放置されたファイルもたくさんあるだろうし。
2009/12/12(土) 20:47:38
個人のストレージ節約には使えても
配布のためには用を為さないな
2009/12/12(土) 21:22:54
配布なら尚更サイズ小さく出来たほうがメリット大きい。
2009/12/12(土) 21:52:21
圧縮解凍プログラム作った時の疑問点なんですが、最初unzip32.dllを使用していて解凍したのですが、
必ず解凍確認ダイアログが表示されてしまうので、7zip.dllに乗り換えました。
解凍確認ダイアログ消す方法ってあるんですかね?
2009/12/12(土) 22:26:14
>>704
や、単なるモノクロ絵を配布はあまりしないだろうという話
2009/12/13(日) 10:02:01
>>705
「解凍確認ダイアログ」というのがよく分からないので、間違っていたらすみません。
展開時の上書き確認ダイアログのことであれば、(統合アーカイバの)unzip32.dllでは-oスイッチで自動上書きにできるかと思います。
展開時の進捗状況を表示するダイアログのことであれば、(統合アーカイバの)unzip32.dllでは--iスイッチで消せるかと思います。

7zip.dllが7-zip32.dllなのか7z.dllなのか、あるいは他のdllなのかも分かりませんが、
7-zip32.dllであれば、それぞれ-aoスイッチと-hideスイッチが該当するかと思います。
info-zipのunzip32.dllや7z.dllについてもおそらくその類のダイアログを表示しない方法はあると思います。
的外れな回答をしていたらすみません。
2009/12/15(火) 23:33:39
>>707
的外れではなく、合っていますw
「解凍確認ダイアログ」というのは、解凍終了しました等、解凍した(何か動作した)と分かるようなPOPUP画面の事です。
自動上書き、進行状況非表示を引数で指定したのですが、進行状況を表示するための空のPOPUP画面がどうしても消えませんでした。(進行状況自体は消えましたが)
readmeを見たのですが、
それらしきオプションもなく断念しました。
2009/12/16(水) 20:27:47
>>708
すみません。開発者用sdkのUNZIP32S.txtに次のように書かれていました。
> また、標準で結果窓が表示されるようになってます。これを禁止するには以下のレジストリに ShowResult と言う DWORD 値を作成し、0に設定してください。0 のかわりに 0xFFFFFFFF とすると、エラーがあったときだけ結果窓が表示されます。
> HKEY_CURRENT_USER\Software\ArchiverDll\UNZIP32\Settings\
UNZIP32.APIに記されている内容によれば、この設定は初期値でoffになっているようですが、何かの拍子に設定が変えられてしまっていませんでしょうか。
2010/01/09(土) 05:12:02
データ復活/完全削除 【無料版】

これもうダウンロードできないけど

持っている人いないかな?
2010/01/09(土) 17:32:12
ソフトウェア板で聞けよ
ここは作る方の板だ
2010/01/09(土) 19:02:46
資料にするんだろ
2010/01/09(土) 21:17:11
それならそれでスレ違いだな
2010/01/09(土) 21:32:01
わざわざスレチ教えるなんてやさしい奴ら

でも「データ復活/完全削除」超えるフリー無いな
715デフォルトの名無しさん
垢版 |
2010/03/08(月) 15:02:33
新しい圧縮方法考えてみた。0と1が何個続くかをデータにする。
1bit目は開始するbit
1000→113
0110→0121 となる
7以上は0をはさむ(7かどうかは未定)
0101 1000 0000 0010
なら
0111270211
3桁ずつに分け、3の倍数にならなければ0を付与する
011 127 021 100
3桁(999)は10bit(1023)あれば足りるから
0101 1000 0000 0010

0000001011 0001111111 0000010101 0001100100
となる

 あ…ありのまま 今 起こった事を話すぜ!
 『自作の新圧縮方式を試していたら
いつのまにか容量が増えていた』

 な… 何を言ってるのか わからねーと思うが
俺にもわからねえ
2010/03/08(月) 15:29:45
>>715
それ、どう見てもランレングスだと思うけど。
新しいどころか、何十年前の話だ。
2010/03/08(月) 16:25:31
1000→113
この時点でおかしいw
2010/03/08(月) 16:27:38
自然対数の底とかなんとか
2010/03/09(火) 13:06:30
>>716
全く同じでワロタ・・結構いいと思ったんだけどなぁ・・
>>717
113は
一文字目が'1'で始まる、二文字目は一文字目の数字が'1'つ続く、
三文字目は前と反転しているビットが'3'文字続く、の意味
そんなことしなくてもwikipediaみたいに・・

そもそもとっくにあるものの劣化版なのでどうでもいいな・・
2010/03/09(火) 20:44:27
0 と 1 なら、数え上げ符号にしておけとあれほど・・・
2010/03/10(水) 14:11:25
>自然対数の底とかなんとか

これって良く見るけど
そこ?
てい?
どっちですか
2010/03/10(水) 15:05:29
高校で習うよ
2010/03/10(水) 16:52:42
てい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況