圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
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
遠慮なく頂きます
453デフォルトの名無しさん
垢版 |
2006/02/09(木) 06:24:45
前スレ

圧縮アルゴリズム考えたんですが
http://pc8.2ch.net/test/read.cgi/tech/1041803200/


テンプレは >>1-3 あたりには無い。
454デフォルトの名無しさん
垢版 |
2006/02/10(金) 23:16:40
乗っ取るの?
455デフォルトの名無しさん
垢版 |
2006/02/26(日) 18:38:09
圧縮アルゴリズム2
http://pc8.2ch.net/test/read.cgi/tech/1140946646/
2006/02/27(月) 10:56:10
圧縮アルゴリズム考えたんですが

まずデータの中にフラグの立ったビットがいくつか数えます。
そしてデータは0と1を並べ変えたものと考えます。
あとはそれを使って先頭ビットから1なら
(そこから先のビット数)C(そこから先の立ちビット数)
を計算して足していきます。
つまり圧縮するデータを0と1の並べ替えとしたときに、
それらを辞書順に並べて上から何番目かを数えるということをします。

例)8ビット中3ビット立ってるとして
10001100
最初1なので
7C2
を計算。0は読み飛ばし次の1でも
3C1
を計算。これ以上は変わらないので終わり。
で、上の二つを足す
7*6/2*1+3/1=24
あとはこの数と圧縮前のファイルサイズと立ちビットの数だけ出力すれば復元可能。

こいつはすげぇやとオモて作ったら799バイトのデータを50分かけて圧縮して何番目のデータかの数値だけで2972バイト悔いました。
C(コンビネーション)て恐ろしいな
2006/02/28(火) 00:49:54
俺を圧縮してみろ!!
2006/02/28(火) 09:12:37
>>456
Lynch-Davisson 符号とか数え上げ符号を調べてみて
459デフォルトの名無しさん
垢版 |
2006/02/28(火) 10:27:28
圧縮にはならないって事か?調べたけどあまり無くて分からなかった
2006/02/28(火) 16:19:05
10年くらい前、bzip で使われている
ブロックソートが何故圧縮にいいのか証明されていない、
と聞いた気がするんだけど、今はもう証明されているの?
2006/03/01(水) 03:29:22
( >>460 http://www.google.com/search?q=BWT+MTF&lr= )
2006/03/01(水) 03:52:31
>>460
有村 とか Effros の論文読んでみて
2006/03/01(水) 04:02:46
>>456 >>459
Schalkwijk の数え上げ符号

長さ n のバイナリ文字列中に 1 の個数が w 個あるものを考える
このとき、インデクス i

  i = Σj=1,n x[j] n-j C w[j]

を用いて1対1に対応付けすることができる。ただし、w[j] = Σi=j, n x[i]

符号化は、まず、1 の個数 w を ceil(log n) ビットの2進数で出力する
次に、インデクス i を ceil(log k C w) ビットの2進数で出力する
なお、ceil() は切り上げ

この符号化は、1記号あたりエントロピーまで漸近的に圧縮可能
2006/03/01(水) 14:26:02
>>463ごめん後半からわかんなかった…

ところでJAVAでLZWとLZ77とHUFFMANとDEFLATEを説明サイト見ながら自分なりの解釈で作ったんだけど
76Kbのビットマップをデフレで圧縮したら44Kbになったのね。
で、7zのZIPで圧縮したら37Kbになったのよ。
これって何がいけないの?Lhacaも7zより圧縮率悪いけど
どういう工夫すれば縮むようになるん?

教えてエロい人!
465デフォルトの名無しさん
垢版 |
2006/03/02(木) 18:09:48
AGE
466デフォルトの名無しさん
垢版 |
2006/03/02(木) 23:20:46
ハフマン圧縮について教えてください。

よくあるのは、出現率の低いものを2個取り出して、その和をつくり、さらに残ったなかから一番出現率が小さいものをとりだし、
これと、先ほどの和の結果との和をとり・・・
という説明です。

でもなんか要するに出現数のおおい順にソートして(出現ゼロ回のものは無視する)
A,D,B,C,・・・みたいに配列に入れます。
そして順に、1,10,110,1110,11110・・・
と符号をふればいいだけのように思えてしまいます。
なぜ小さいものを取り出して和を作り、さらに小さいのと和をつくり・・みたいなことをする必要があるのでしょうか?
467デフォルトの名無しさん
垢版 |
2006/03/02(木) 23:35:09
最初俺もそう思ったけど、ちょっと考えたらそれじゃ意味ないことに気づいたんだよ
なんでかって?忘れたなぁ…
2006/03/03(金) 00:01:40
>>466
それは unary 符号(単進符号、一進符号)というもの

符号が最適になるには条件というものがあって、
unary の場合、記号の出現確率が 1/2, 1/4, 1/8, ... となる場合にのみ最適な符号を構成できる
一方、Huffmanはどんな出現確率の記号群に対してでも最適な符号を構成できる
469466
垢版 |
2006/03/03(金) 00:41:32
なるほど。よくわからないけど間違っていたことだけはわかりましたw
ありがとうございます!!!!!!!!!
470デフォルトの名無しさん
垢版 |
2006/03/04(土) 00:41:35
JAVAでLZWとLZ77とHUFFMANとDEFLATEを説明サイト
教えてくれ俺もみたい
471デフォルトの名無しさん
垢版 |
2006/03/04(土) 10:02:12
データ圧縮法概説
というところ。その名の通り原理や概念を解説しているだけでJAVAどころか
プログラミングにすらふれていない。
でも説明は分かりやすいからJAVAでも作れた。
472デフォルトの名無しさん
垢版 |
2006/03/04(土) 21:26:39
データ圧縮法概説
ないよ
どうすればいいの?
2006/03/04(土) 21:37:29
Internet Archive
2006/03/04(土) 21:39:06
つーか、ちょっとリンクを追いかけていけば生きてるサイトにたどり着いたぞ
2006/03/04(土) 21:54:37
どうやっておいかけるの?
476デフォルトの名無しさん
垢版 |
2006/03/04(土) 23:53:49
我楽多頓陳館で検索。
管理人は一人で何役もこなすアニメ好きの54歳
世露死苦!!
477デフォルトの名無しさん
垢版 |
2006/03/05(日) 14:04:16
見つかった?
2006/03/05(日) 19:46:29
今zip圧縮のサンプル作ってる
2006/03/05(日) 20:51:59
それはzlibとか使って?それとも圧縮部も自作?
自作だったら性能を上げる工夫とか教えてほしいです。
2006/03/06(月) 00:58:20
圧縮部分も自作です。組み込みに乗せるから
パフォーマンスそこそこでだいたい2kから10kいないの
zlibを作成しようとしてます。なので性能よりもマシン語
の吐かせた内容をコンパクトにすることに命をかけています。
私も工夫とかよく解らない部分が多いため、IEEEの論文などをいくつか入手し
勉強をしているところです。アルゴリズム的に速度を上げる方法と
コーディングレベルで最適化する方法2つの視点で最適化について
考えていますがまだ道のりは厳しいです
2006/03/06(月) 01:23:44
特許まわりはどうなのかしら?
482デフォルトの名無しさん
垢版 |
2006/03/06(月) 13:05:55
現在猿でも分かるC言語講座をみながらJAVAでブロックソートとMTFとレンジコード制作二日目。
Cはよく分からんがブロックソートの符号化とMTFの符号化・復号化が完成
ブロックソートの復号がうまく行かない…
483デフォルトの名無しさん
垢版 |
2006/03/07(火) 01:43:41
Huffman圧縮で質問です。
記号が一回しか登場せず、2分木が1つも作成できないような場合、
その記号にはどんな符号を割り当てるのですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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