圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
301295
垢版 |
NGNG
図解入門 よくわかる最新データ圧縮技術の基本と仕組み
―情報圧縮技術とアルゴリズムの基礎講座
How‐nual Visual Guide Book

圧縮アルゴリズム―符号化の原理とC言語による実装 C magazine

上二つの本を購入することにしました。
みなさんありがとうございました。
NGNG
>>296 >>301
よくわかる〜 はさわりしか書いてないので、物足りなくなったら原論文を当たるとよいでしょう
ただ、オリジナルの論文では正確なところがわからないこともあるので、
解説的な論文を読むのもいいでしょう
NGNG
突っ込みたい。「さわり」を突っ込みたいー。
NGNG
昔買った、文書データ圧縮アルゴリズム入門 というのは様々な圧縮方法が書いてあって
よかったけど、今は絶版らしい。
NGNG
>>304
ttp://www.cqpub.co.jp/hanbai/books/36/36721.htm
漏れが圧縮にハマるきっかけになった名著。絶版でなければ、>>301で不足してる分はこれが補ってくれると思うんだが…
復刊.comでリクエストするか、それとも改訂版をリクエストするか?
NGNG
改訂版のほうが良いんじゃないかな
307デフォルトの名無しさん
垢版 |
NGNG
掲示板を作りました
http://scs.dip.jp
情報通信に関する学術的および技術的な議論の場を
提供することを目的としています。
勉強するためのテキストの紹介、技術的な質問、
産業界の動向、議論などご自由にお使いください。
NGNG
ランタイムライブラリ含まない大きさが2kバイトぐらいの
小さくて展開の速い圧縮ありませんか?
圧縮する対象は主にexeとかの実行イメージです。

今はひそかにスライド辞書(LZ77)を使ってますが
アルゴリズム同じだと特許に触れるんでしょうか。
せっかく苦労して作ったのにやだなあ。
NGNG
>>308
子供は早く寝ろ
NGNG
LZ77なら全く問題なし
NGNG
>>310
富士通はLZ77+ハッシュ使うとダメって言ってるし、
LHA作者の奥村教授はLZ77+ツリー使うとダメって言ってるが。
NGNG
LZ77+何か:×の可能性が高い
LZ77のみ :D
って事
NGNG
文字化けしてたらスマソ
Dは○
314デフォルトの名無しさん
垢版 |
NGNG
LZ77 + 普通のハフマンは×ですか?(LHAではないです)
ハフマンって圧縮以上に見た目のランダム性上がるから
使いでがあるんですが。

というかLZ77のみは可ですか。
とりあえずLZ77だけでいきます。


こういう思いつきそうな事を特許で縛るのって卑怯ですよね。
そういえば、バイオハザードの視点固定は特許になったのかな。
あれも酷いですよね。
NGNG
>>314
> というかLZ77のみは可ですか。
LZ77のみっつーか LZ77 + 単純検索だけでhashもツリーも使ってないなら、たぶん可。
LZ77 + 自分でゼロから考えた高速化をしてる場合は特許の調査をしてみんとわからん。

hashとかツリーとか言われて理解できないようなら、たぶん不可。
一般にwebや本に書かれてるLZ77のプログラムは、全てhashかツリーを使ってるから。
NGNG
>>314
誰でも思いつきそうで、特定の誰かが思いつくものは多々ありますが、結局早い者勝ちです。
それに、もう20年近く前に「開発され尽くした」といわれた手法に、
いまさらどうこう言ってもしょうがないかと。
LZW同様、ぞくぞく特許が切れつつあるので、ちゃんと調べるなら、使うことができますよ。

あと、LZ77の大多数の特許は、圧縮時の手法(ハッシュも木も)なので、
LZ77オリジナルと同じ圧縮後データをもち、展開するだけなら、特許は全く関係ないわけです。
NGNG
> ちゃんと調べるなら、使うことができますよ。
ちゃんと調べるならって、>>314 には使えないって遠まわしに言ってるだけのような。
NGNG
>>317
特許専門の弁護士やら技術者やらを用意しても回避困難
一般人ならなおさら
NGNG
・ソース非公開
・リバースエンジニアリング、解析を禁止
しておけば大丈夫。
特許の有効期限分経過してからソースは公開すればいい。
後で特許とられても、先に実装が存在する場合は特許が成立しないので、
この場合も安全となる。
NGNG
> 特許の有効期限分経過してからソースは公開すればいい。
特許が無効になるまでの期間分の特許料払わなきゃいかんと思うが。

> 後で特許とられても、先に実装が存在する場合は特許が成立しないので、
実装が存在しただけで公知と言えるのかは疑問。
NGNG
>>320
>> 特許の有効期限分経過してからソースは公開すればいい。
>特許が無効になるまでの期間分の特許料払わなきゃいかんと思うが。

特許の存在を知らなかったといえば回避できる。

>実装が存在しただけで公知と言えるのかは疑問。

公知でなくとも存在を証明できれば問題ない。
そのためにはネット上で配布などをあらかじめ利用する。
NGNG
> 特許の存在を知らなかったといえば回避できる。
著作権じゃないんだから……
それが通るなら特許なんて法制度はあっというまに崩壊するな。

> 公知でなくとも存在を証明できれば問題ない。
改竄が比較的容易なネットでの配布が法的にどーゆー位置づけになるか、って問題と
実装だけで存在を証明できるかって問題が……
NGNG
>>319 >>321
特許は、
知らなかったでは回避できないし、
その期間分を遡って賠償も請求されるし、
(著作権と異なり)偶然一致した場合でも侵害したことになる。

ネット上での公開は、現在は灰色。
ソースコードを登録機関に提出しておくべし。


・・・はず、有識者もとむ(特許出しているくせに、未熟ですまぬ)・・・
324デフォルトの名無しさん
垢版 |
NGNG
じゃあ組み込むのは展開部分のみなんで関係ないですね
NGNG
>>323
回避できる。例えばGIF関連では、期限が切れた今現在、過去に上って請求されることは無い。
ポイントは、経過したことと、相手に請求されていないこと。
期限が切れてしまえば、知らなかったで済む。大抵は時効だ。

ソースコードの提出は、逆に自分を危険に晒す。
自分が権利を主張しないなら、バイナリが存在すれば、それで十分。
バイナリ自体が、アセンブリ言語のソースになる。
NGNG
>>322
お前は馬鹿か。特許制度が、どういう理念で作られたかわかっていないな。
著作権などの法制度とは全く異なる。もともと技術が隠されるのを防ぐためだ。
NGNG
>>325
無根拠で知らなかったで済むとか言われても……

それに Unisys が現実に特許料を請求するかは別にして、
今現在でも Unisys は2004年6月(だっけ?)までの特許料を請求する権利を持ち続けてるだろ。

あとバイナリ自体がアセンブリ言語のソースって考え方なら
バイナリもソースコードと同程度に危険なはずだが。
NGNG
>>324
奥村教授を信じるなら、LZ77の展開部分だけなら大丈夫だと思われ?
ハフマンの展開部分も大丈夫か、ハフマンの展開部分とLZ77の展開部分くっつけて大丈夫かは知らんが。
329デフォルトの名無しさん
垢版 |
NGNG
>>326
特許の目的は人類の知的財産の共有が目的だよ
みんなで一歩一歩進みましょう。
って感じの。

特許対象となるようなすばらしいアイデアはみんなのものです。
でも、発明人にもなにかおいしいことがないといけないので
20年間は発明を特許で保護されるわけです。

あんまり恥ずかしいこといわないでね。
330デフォルトの名無しさん
垢版 |
NGNG
no patent!!
no patent!!
331デフォルトの名無しさん
垢版 |
NGNG
ん?LZWはもう使って大丈夫なんですか?
NGNG
解禁です。
あの子のへあーも
NGNG
>>331
>>275-276,>>281
NGNG
× >>281
>>282
NGNG
rarて何使ってるの?
最近の圧縮アルゴリズムはさっぱりわからん
336デフォルトの名無しさん
垢版 |
05/01/25 16:00:11
自己解凍書庫ってのは『解凍Exe』+『圧縮データ』って形になってると思うんですが
『解凍Exe』はどのようにして『圧縮データ』の位置を取得してるんでしょう?
05/01/25 16:46:35
自分のサイズがわかってればいいんじゃない?
05/01/25 19:10:43
ここに詳しい人がいる
http://pc5.2ch.net/test/read.cgi/tech/1039513920/
05/01/25 20:59:47
>>335
とりあえず

 r a r は 最 近 で き た 圧 縮 形 式 で は な い w
340デフォルトの名無しさん
垢版 |
05/01/25 21:03:48
>自分のサイズがわかってればいいんじゃない?
ふむ...
『解凍Exe』内部にハードコードで書込んでおく。ってのも有りか...しかしなんかイヤな感じが

統合アーカイバとかの自己解凍書庫てどーゆー作りになってんだろ?
05/01/25 21:10:29
>>340
良くわからんけどID3みたいにファイル末尾に前のブロックの末尾位置だの
最終ブロックないのデータの先頭位置だののテーブル持ってるんじゃない?
05/01/25 21:49:39
>>341
おいおい憶測で物言うのもいい加減にしろよ。
ストリームでもなければ末尾にヘッダを置く意味がない。
自己解凍書庫の作成はあらかじめ用意した解凍ロジック付きexeの
PEヘッダに適当なデータセクションを追加修正すれば終わり。
解凍ロジックはデータセクションで定めた決めうちベースアドレスから
データを読み取るだけでOK。
PEの仕組みとローダの知識が多少あればできる。
343sage
垢版 |
05/01/28 01:13:21
ソースコードが移植可能なライセンス携帯で、3kbぐらいのオブジェクトサイズの
圧縮ライブラリ知りませんか?ちょっとSymbianに乗せるアプリに実装したい
と考えています。
05/01/28 01:17:54
>>343
Huffman自作しなされ。以上
05/01/28 03:00:24
344の意訳

知りません。でも知らないって言うの恥ずかしいから煽ります。
05/01/28 10:44:41
MPGかWAVからAFSファイルを作りたいんだけど、ツールないですか?
05/01/28 11:11:10
>>346
板違い

ソフトウェア
http://pc5.2ch.net/software/
05/01/29 21:18:14
Lhaplusの作者のWebページどこへいっちゃたんだろ?
Lhaplusってあれだね、ファイル数が多いといつまで待っても
圧縮が始まらんねw
05/01/29 23:00:14
> Lhaplusの作者のWebページどこへいっちゃたんだろ?
ttp://park14.wakwak.com/~schezo/
350348
垢版 |
05/01/30 17:00:43
>>349
サンクス。
lhaplusをver1.50β11にしたらサクッとスタートしてくれました。
05/02/03 18:05:41
LZ77の圧縮にハッシュも木も使ったらまずいってどうすりゃいいんだ?
LZ77を少し改造してLZ77じゃありませんよ〜とかいったらOKなんだろうか。
05/02/04 03:39:17
>>351
2-3文字をインデクスするリストを使えばいい
木とほぼ同程度の速度で動く

・・・ぶっちゃけ、2-3文字のハッシュと同じなんだがなw
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
もう少し詳しく教えてください
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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