圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
05/02/11 10:42:32
なんか圧縮のことよくわからなくてはじめてここに来たんだけど、
とりあえず3バイト連続する同じデータがあれば2バイトに圧縮したらOKなんですね。
あと連続するパターン見つけるんだろうけど、俺がプログラム書いたらそんなの
時間かかってぐっちゃぐちゃでめっちゃめちゃでアウトだ
05/02/11 20:20:42
>>353
専門書も扱っている本屋へ行って、圧縮とかアルゴリズムとか、の本を買うと良い。

パターン検索は >>351-352 のキーワードを参考に。
05/02/12 17:46:17
>>352
それだとハッシュ使う特許に引っかかる可能性が残ると思われ。
05/02/12 18:02:28
圧縮率上げる工夫よりも特許を回避する方に労力を費やしてる矛盾
05/02/12 18:12:25
>>353
unsigned char c = in[i];
int count = 0;
while (c == in[++i]) count++;
out[j++] = c;
out[j++] = count;

こんな感じのルーチンで出来る。
05/02/13 08:34:10
>>355
ハッシュとは別の論文で発表されていたから、大丈夫だとは思うがどうだろう。
Bell and Kurp, 1991. だったかな?
05/02/13 11:50:47
>>358
ハッシュの特許に触れるか、だけが問題で
ハッシュと同じ論文で発表されたかは問題にはならないと思われ。

ちなみに、その論文の方法が特許化されてないのは確認済み?
05/02/15 22:29:54
とりあえず何も考えずに zlib 使っとくのが一番現実的なのかね。
仮に問題があったとしても、みんな闘ってくれるはず。きっと。多分。
05/02/16 02:46:58
>>360
zlibに採用されているハッシュ法って、まんま>>352 >>358 だよね
3文字でインデックスしたチェインリストを順に読むわけだから…
362デフォルトの名無しさん
垢版 |
05/02/18 12:41:14
installshield の cab 形式への圧縮が出来るツールってないですか?
既存のcabを展開して、パッチを当てて、また再圧縮したいんですけど・・
05/02/18 13:08:11
>>340
UpdateResource()を使うのもありかもね。
05/02/18 16:38:46
>>361
zlibとかのは先頭3文字を加工して使ってるからなぁ。
ハッシュでないというのは通らんと思うぞ。

加工せず使うなら、なんとかなるかもしれんが
3文字だとテーブルだけで16M*sizeof(テーブルの要素)バイトかかる。
05/02/18 18:26:13
デコードするだけなら引っかからないんでしょ?
普通のアプリなら解凍できれば十分だし
366みゆき
垢版 |
05/02/23 21:19:47
100個くらいあるファイルを、それぞれ違うパスワード(予めエクセル等でファイル名とパスワードの対応は作成しておきます)でzip圧縮したいのですが、やり方がわかりません。
エクセルのVBAで、UNZIP32.DLLを使えば良い、というのは想像出来るのですが、記述方法がわかりません。

お知恵をお貸しください。よろしくお願いいたします。
05/02/23 21:45:51
普通にコマンドライン呼び出せばいいんちゃう・・・?
368366
垢版 |
05/02/23 22:55:32
解決しました!!
369デフォルトの名無しさん
垢版 |
05/02/24 09:52:03
どうやって解決したのか書けよ
370みゆき
垢版 |
05/02/24 11:56:21
誰か366を語って書き込みしたようです。まだ解決してません。
よろしくお願いいたします。
05/02/24 11:59:46
zipファイルにパスワード付けるのは安全ですか?
05/02/24 12:33:40
>>371
はい
05/02/24 12:35:58
>>371
危険です
なぜなら371はパスワード掛けてみたはいいもののそのパスワードを忘れてしまうでしょう
05/02/24 12:54:42
>>371
zipパスワード検出プログラムが出回ってるから気休めにしかならない
本気で保護を考えてるなら止めといた方がいい
05/02/24 12:56:00
そういうときのために、ファイル名をパスワードにしておくとよいよね。
05/02/24 13:31:00
zipそのものを暗号化してしまえ
377デフォルトの名無しさん
垢版 |
05/03/04 20:56:00
zlibでzip圧縮されたデータ(ファイルにはなってない)を受け取って
解凍しようとしてるんですが、失敗するときがあります。
で、データが正しいかバイナリデータを出力してみてみたのですが
先頭からみると↓こんな感じになってます。
---------------------
78 9C EC 5A CB 6F 1C C9 79 AF 67 77 F5 6B 1E 1C
52 5A 91 94 28 52 94 B4 14 F7 41 AD 76 B5 F1 CA
2B 6E E0 83 45 1D 12 84 30 10 60 15 C0 87 24 F0
D9 B0 BD 57 55 F7 F4 3C 49 59 4B 2A 36 10 CA 46
80 2C 95 E4 60 3A 08 90 E5 DE BC 02 F2 4F 24 B9
E4 E0 3D AE 03 04 F0 4A 39 65 F2 7D 55 DD 3D ・・・
---------------------
http://www.futomi.com/lecture/japanese/rfc1950.html
http://www.futomi.com/lecture/japanese/rfc1951.html
をみるとzipの先頭データは8かFかってことっぽいので
このデータはzip圧縮されたデータとしてはおかしいと
思っていいのでしょうか?
05/03/05 01:04:40
>377
>をみるとzipの先頭データは8かFかってことっぽいので
どうしてそういう結論になる。
先頭バイトが 0x78 なんだから、CM=8, CINFO=7 でウィンドウサイズ 32k の deflate じゃないの?
あと、zlib も zip も deflate を使っているかもしれないが、zip圧縮という言い方は語弊が
あるのではないだろうか。
05/03/05 02:35:46
>>378
二桁目がCMなんですね
ドキュメントをよく理解できてませんでした。

>zip圧縮という言い方は語弊が
このへんはよくわかってないです。紛らわしくて申し訳ないです
05/03/05 14:07:03
>379
バイトの並びとビットの並びに注意しよう。
リンク先の zlib の資料でも「2.1. 全般的な規約」に書いてあるよね?

>>zip圧縮という言い方は語弊が
>このへんはよくわかってないです。紛らわしくて申し訳ないです
俺もよく分からんが、
・zlib はライブラリおよびフォーマットの名前
・zip はフォーマットの名前
・deflate は圧縮アルゴリズムおよびそのフォーマットの名前
ってことでいいの?教えてエロい人!
05/03/05 21:26:07
deflate 圧縮アルゴリズム
zlib 圧縮ファイルフォーマット
zip 圧縮形式の名称及び拡張子

こんな感じか?
05/03/05 22:59:22
zlibは圧縮ライブラリの名前でいいと思うけど
05/03/08 08:24:49
deflate アルゴリズム
zlib バイトストリームを圧縮するライブラリ。ファイルの概念は無い。
zip 複数のファイルを圧縮したアーカイブファイルのフォーマット。

じゃないの?
05/03/08 11:58:14
>>383
それが正解
05/03/09 12:30:08
>>383
意味なんて人それぞれ。
zipを圧縮フォーマット(たぶんdeflate)の意味で使う奴もいる。

俺は deflate はフォーマットだと思うけど、アルゴリズムだと言う奴もいるしね。
deflate がアルゴリズムなら、zlib の deflate と 7zip の deflate は
同じアルゴリズムを使用してる事になるけど、俺は別のアルゴリズムだと思ってるから。
05/03/09 13:18:54
↑こういう意識のやつはこの業界に必要ない
05/03/09 13:40:23
↑オレ用語が否定されてムキになってる人?
05/03/09 21:12:40
deflateはRFCで記述された通りでいいんじゃないか?
05/03/10 00:35:45
どっちでもいい。
2005/05/17(火) 22:42:40
今、圧縮解凍ツール作ってるんですけど、
unlha32で、既にある書庫にファイルを新規に圧縮して追加したいんですけど
コマンドがわかりません。どなたか教えていただけないでしょうか?

・既存の書庫ファイル(c:\work\abcd.lzh)
a/aaaa.txt
a/b/bbbb.txt
a/b/c/cccc.txt

a/b/c/d/dddd.txt を追加したい

・圧縮前のファイル
c:\temp\dddd.txt
2005/05/18(水) 00:17:41
a
2005/05/18(水) 00:45:04
>>391
追加圧縮はできるんですけど、書庫内のディレクトリ指定がうまくいかなくて困っています。(;_;)
2005/05/18(水) 15:48:52
Unixで暗号化ZIPファイルをプロンプトを出さずにCプログラムから作成する方法を教えてください 
2005/05/18(水) 23:32:38
キーをテキストに書き出す
テキストを読む
以下略
2005/05/22(日) 15:43:51
30 30 30 30 30 30 30 30 30 30 を圧縮すると(16進表記)
30 30 30 30 30 30 30 30 30 30 のままで

30(ASCIIで'0')を20個つなげたやつを圧縮すると
05 30 EE FF 30 となった圧縮形式があったんだが、これなんだっけ?

ヘッダとかついてないのかね。
396デフォルトの名無しさん
垢版 |
2005/05/22(日) 15:57:49
あげ
397デフォルトの名無しさん
垢版 |
2005/05/25(水) 11:34:46
UNZIP32.DLLやUnGCA32.dllでパスワードがかけられてるファイルかどうか見る方法をおしえて
2005/05/25(水) 21:53:48
書庫のヘッダに書いてあるよ
399デフォルトの名無しさん
垢版 |
2005/05/26(木) 14:24:32
パスワード付きZIPをパスワードWindowを開かずに作成する方法を教えてください
2005/05/26(木) 19:18:10
コマンドラインで入れる
401デフォルトの名無しさん
垢版 |
2005/05/27(金) 02:50:42
もう少し詳しく教えてください
402デフォルトの名無しさん
垢版 |
2005/05/27(金) 07:48:48
ソフトウェア板かwindows板の話題だと思うんだそれは。

実装でもアルゴリズム概念を聞いている訳でもなし。
2005/05/28(土) 02:00:36
>>402
ま、巷じゃ「圧縮がわかる本」とかいって圧縮ツールの使い方だけ教えてるのが何百冊も出てるしな…
2005/05/28(土) 02:22:08
漏れもいっちょ書いてみるか!
2005/05/29(日) 11:44:42
>>399 無理
406デフォルトの名無しさん
垢版 |
2005/06/25(土) 07:17:01
統合アーカイバのDLLを使ってプログラミングをしているのですが、静的インポートの場合、付属のインポートライブラリを使用しますよね?
これってVC++(MS-LINK)用COFFのようですが、BCC++(ILINK32)でうまく使えないみたいなんですが・・・?(UNZIP32.DLL)
BC++付属のCOFF2OMFで変換するも、デフォルトでは利用できず、-lib:stスイッチで変換しました。
しかし名前インポートができず、オーディナルになってしまいます。
BCC++で名前インポートするにはどうしたらよいでしょうか?
407406
垢版 |
2005/06/25(土) 08:55:05
って、しまった!全然間違えた!

MASM + MS-LINKでそのままリンクすると序数インポートになってしまうんだった。

<<X.ASM>>
        .386
        .model  flat,stdcall
        .code
start:
        call    UnZipGetVersion
        ret
        end     start

<<ビルド法>>
ml /c /coff x.asm
link /subsytem:console x unzip32.lib

私はVC++を持ってないのではっきりとはわかりませんが、リンカが同じなのでVC++でも名前インポートにはならないですよね・・・?
名前インポートにするにはどうしたら・・・?
2005/06/25(土) 09:32:50
>407
各処理系のスレで聞いた方がいいと思う。
2005/06/25(土) 09:34:51
implib
2005/06/25(土) 09:58:18
名前でのインポートにこだわる訳は?
411407
垢版 |
2005/06/25(土) 22:28:30
>>409
IMPLIBなら確かに付属のインポートライブラリはいらないですが・・・MS-LINKはOBJ型ライブラリが使えないようなんですが・・・?

>>410
オーディナルのインポートって信用できないんですよね・・・
DLLのバージョンが上がると変わらない保証ってないじゃないですか・・・?
2005/06/25(土) 22:50:29
>>411
BCCで使うのになんでMS-LINKが出てくるんだ? わけ分からん
MS-LINKなら付属のLIB使えば済む話だろ
413411
垢版 |
2005/06/25(土) 23:01:26
>>412
ですから間違えました。BCCじゃなくてMASMです。
2005/06/25(土) 23:07:26
ヒント: /coffオプション
2005/06/26(日) 01:30:55
完全に特許に引っかからない技術を教えてクレイ
2005/06/26(日) 03:21:54
>>415
特許の期限が切れたもの
2005/06/26(日) 07:12:59
>>415
bzip2,gzip
2005/06/26(日) 07:29:29
完全と言い切れるものは多分ないんじゃないかな。
知られてないだけで、所謂サブマリン特許の類のパテントが存在するかも知れないし。
bzip2のBWTも発案者が特許を取らないといっているだけだし。

圧縮ソフト作るのって床から刃の出ている廊下を歩くような感じだよ。
時々踏むと刃のでる罠が仕掛けてあったりして。
最初にアルゴリズムに特許を与えたバカは誰なんだろう。
2005/06/26(日) 10:33:39
>418
アルゴリズム特許は暗号が初めてじゃないっけ
それならこれもそれならこれもとずるずる範囲が広がっていった。

暗号の場合は納得できるんだけどねー
2005/06/26(日) 15:19:36
フラクタル圧縮もダメなんでしたっけ
2005/06/26(日) 17:41:04
>418 >419
線形計画法のカーマーカー法じゃないの?
>カーマーカー特許とソフトウェア―数学は特許になるか 中公新書
>ttp://www.amazon.co.jp/exec/obidos/ASIN/412101278X/249-7663900-1232317
元々の圧縮アルゴリズムはともかく、○○+ハッシュとかいうのになってくるとどんどん納得できなく
なっていくんだが。
422419
垢版 |
2005/06/26(日) 20:43:13
>421
すまんこった、カーマーカー法が最初の特許アルゴリズムだった。
ほら吹いてしまいました。ごめんさない。
423デフォルトの名無しさん
垢版 |
2005/07/01(金) 09:17:37
Info-ZIP社のZIP32.DLLって商用で使用するにはライセンスがいるのでしょうか?
UNZIP32はいるみたいなのですが。HP読んでもわからない・・・
2005/07/02(土) 03:14:07
zip32.dllは知らんが、zlibならいらないはず。
425413
垢版 |
2005/07/02(土) 07:57:25
>>414
どの/coffですか?
mlなら/coffつけてますが?>>407
2005/10/12(水) 02:59:27
hosyu
427デフォルトの名無しさん
垢版 |
2005/10/25(火) 10:46:17
質問です。
DEFLATE圧縮では元データはバイトごとに圧縮されるのですか?
それとも6ビットや5ビットなどビット単位ですか?
RFCと一緒にzlibやgzipのソースを読んでいるのですが
自分の読解力ではわかりません。
2005/10/25(火) 11:33:32
バイト単位
429427
垢版 |
2005/10/25(火) 11:37:52
>>428
バイト単位ですか。ありがとうございます。
その線で読んでみます。
2005/10/25(火) 11:44:07
ソース読んで理解できないなら>>298
431427
垢版 |
2005/10/25(火) 12:56:37
>>430
やっぱりその本を買った方がよさそうですね。
今から買ってきます。
2005/10/30(日) 11:38:36
書庫が1バイト足りずに破損している場合、末尾に00を付加するという話を聞いたんですがどうやって付加するんでしょうか?
調べようと思ったんですが検索ワードが思いつかない…
2005/10/30(日) 14:54:09
>432
君が何を聞きたいかが理解できない。
とりあえず付加するのは誰?
特定のソフトの話か、特定のファイル形式の話?
2005/10/30(日) 18:22:37
>>433
漏れの予想では、ファイルの末尾に00を付加させるのに、
どんな関数orAPIをコールすれば良いか判らない

そういうレベルの質問だと思う
2005/11/01(火) 00:17:17
板違いの予感。まさかnarがどうとかって話じゃないだろうな。

1 バイトのファイルを作っておいて copy /b とか cat とか、
そんなスキルもないならバイナリエディタ。

ってところだったりして。
2005/11/01(火) 02:01:51
narってなにさ?
2005/11/04(金) 11:05:22
もしかして null ?
2005/11/04(金) 11:16:46
ナルほど
2005/11/04(金) 20:13:26
>>438
誰がうま(ry

>>432, >>435
出てきて釈明しる!
440435
垢版 |
2005/11/04(金) 22:15:29
済まん、あっさりスルーされると思ってた。
「伺か」が使うアーカイブ(実態はzip)の拡張子。
公開終了したアーカイブをWebArchiveから拾ってくるって話。
まあ、オタネタだ。
441435
垢版 |
2005/11/04(金) 22:26:30
補足。
WevArchiveにはファイル末尾の0を切り捨ててしまうというバグ(?)がある。
そのためせっかく昔のアーカイブを見つけてもzipが解凍できないことがある。
末尾に0を付加してやると正常に解凍できるようになる。
というのがこちらで想定した問題のバックグラウンド。
442432
垢版 |
2005/11/04(金) 22:31:07
自己解決したから書き込まなかったんだけど、WebArchiveのzipファイルで〜て事が聞きたかった。
narは良く分からなかったけど、435が書いてくれたからまぁ良いかと思ってた
オレのせいで微妙な話が続いて悪かったです
2005/11/12(土) 12:52:07
zlibの使い方を詳しく丁寧に説明してる日本語サイトを教えてください。
あと、gzip(と可能ならzipも)の中のファイル名を解凍せずに知りたいんですが、できませんか?
2005/11/12(土) 18:30:27
zlib.hの英語を読むのが一番確実だと思うけど。
別に読みにくくは無いし、そんなに長くもないし。
gzio.cも。
2005/11/17(木) 22:59:07
>>443
ヘッダにテキストで書いてあるけど。
2005/11/17(木) 23:36:52
>>445
日本語って言ってるだろうが、馬鹿
2005/11/18(金) 00:43:37
日本語なかったっけ? どっかでzlib.hのコメント日本語訳みたことがあるんだけどどこだったか…
2005/11/18(金) 15:11:28
>>446
日本語読めないのに日本語要求してたんですね。
# 単に駄々をこねてみたかっただけかな? :-P
449443
垢版 |
2005/11/18(金) 23:21:09
ありがとうございました。
日本語訳はこれですね。
ttp://www.sra.co.jp/people/m-kasahr/zlib/zlib-1.1.4-ja.h
2005/12/25(日) 22:34:49
zlib の deflate を利用して
自前でzipファイルを作るプログラムを作ろうと思います。
とりあえず、ここの仕様書を見たのですが、
http://www.pkware.com/business_and_developers/developer/popups/appnote.txt

extra fieldの意味がよくわからないです。
私の場合は、この部分は出力しなくて良いのでしょうか?
451デフォルトの名無しさん
垢版 |
2005/12/26(月) 16:51:16
あげます
2005/12/26(月) 23:35:03
遠慮なく頂きます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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