圧縮・復元 相談室
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGもう惚れ済みですが何か?
7-zip [ ttp://7-zip.org/ ] とか、
ppmd(1) [ ttp://packages.debian.org/unstable/utils/ppmd.html ] とか。
0155デフォルトの名無しさん
NGNGそれともbyteごとなんでしょうか。
よく見る解説ページでは"aaabcccddddff"とかって
アルファベットだったりと概念的なものばかりでよくわからんのですが…
0156デフォルトの名無しさん
NGNG一般に圧縮ではバイト(あるいはそれ以上の大きさ)が用いられる。
あと、圧縮の説明にアルファベットがよく使われるのは”見える”からだと思われ。
0157155
NGNGじゃあ何を判断にくぎってるんですか?たとえば
125 124 209 300 125 124 200 111
とかって画像データ があったとすると
125 124 が2つ
209 が1つ
300 が1つ
200 が1つ
111 が1つ
ってのと
125 124 20 が2つ
9 300 が1つ
0 111
0158155
NGNG125 124 20 が2つ
9 300 が1つ
0 111 が1つ
の二通りにできますよね。じっさいのところどうやってるんでしょうか?
0159デフォルトの名無しさん
NGNGその違いが辞書の違い、すなわち、手法の違い。
LZ'77, LZ'78 くらいでよいから、参考書で勉強すべし。
0160155
NGNGありがとうございました
0161デフォルトの名無しさん
NGNGへたれなのでアルゴリズムパクリたいのですが。
0162デフォルトの名無しさん
NGNGおまいは奥村先生の「最新アルゴリズム事典」を枕にして勉強しる。
0163デフォルトの名無しさん
NGNGおまいは奥村先生に足を向けて寝ていはいけない。
http://www.matsusaka-u.ac.jp/%7Eokumura/algo/
0164デフォルトの名無しさん
NGNG奥村先生のソースコードは落としましたがあれは本当にLZSSの基本実装みたいな形ですよね?
だもんで速度的にちょっといけてないかなーとへたれ心に思ってみてり。
因みにツリーを使わずハッシュを使うと特許に触れるんでしたっけ?
0165デフォルトの名無しさん
NGNGLHA, gzip はハッシュを使って実装されている。
つーか、へたれを自称する人は基本をおろそかにしてはいけない。
とりあえず、LHA か gzip のソースを読んでみてわからなかったら、
素直に奥村先生を拝むこと。
0166デフォルトの名無しさん
NGNGこれはどうだ?
http://www.ingnet.or.jp/~kojif/mu/comp/
0167161
NGNGへたれだからこそコピペなんだよ!
ハッシュ化するのは問題ないんですね。少し勉強して奥村先生コードに手を加えるか…。
>>166
確か最初に落としたけど研究目的以外はx(メッ)なんすヨ。
0168デフォルトの名無しさん
NGNGLZSS系列だとツリー使っても特許の地雷だらけなのよね。
ハッシュ使っても地雷だらけ、ってのは変わらんけど。
0169デフォルトの名無しさん
NGNG特許の有効期限、いつになったら切れるんだ?
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG不便でしようがありませんよ!
どこかに解析資料とかないでしょうか
0172デフォルトの名無しさん
NGNGこんなのとか。
ttp://www.stuffit.com/win/sdk/index.html
0173デフォルトの名無しさん
NGNG長いよねぇ
0174デフォルトの名無しさん
NGNGありがとう
登録制なのか…やだなぁ
0175デフォルトの名無しさん
NGNGこの本とかはどうだろ?
0176C+++
NGNG激しくワロタ(笑)。
0177デフォルトの名無しさん
NGNGttp://www.speakeasy.org/~russotto/arseniccomp.html
0178デフォルトの名無しさん
NGNG海外にいなかったっけ?
0179デフォルトの名無しさん
NGNG1/100に圧縮できるってヤツか?
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG(コードサイズが小さくて、
符号化・復号化だけで余計な機能がなく、
復号が速いやつ)
ない?
アプリにこっそり組み込んで使いたいんだが。
0186デフォルトの名無しさん
NGNGZeoSyncキターw
懐かしいな。
0187デフォルトの名無しさん
NGNG奥村LZSSでもつかっとけ
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGMS-COMPRESSを呼び出すのが簡単かつ確実
0190デフォルトの名無しさん
NGNGWinでもAIXでも使えるのをおながいします。
0191185
NGNGちょっと遅いけどすげー小さいので。
ちなみに190は偽物です。
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG7行のだと、Huffman, rangecoder, LZ77系, RLEなら、
それぞれ2つ以上の実装が出ていたはず。
LZ78とかBPEとかもあった。
0194デフォルトの名無しさん
NGNGこれかな?
http://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGの取れた圧縮アルゴリズムってなんでしょう?
XML → 無駄なコード削除 → ブロックソーティング → MFT → ランレングス
でやってみたんですが、圧縮率は満足なもののブロックソーティングが遅すぎて
使えませんでした。もちろん、高速化は可能だと思うのですが…
0197デフォルトの名無しさん
NGNGまずbzip2で試してみて、それでも遅ければブロックソートは向いてない、
十分な速度ならブロックソートの高速化が甘いかと。
ブロックソートの高速化についてはこちらなど
M.Hiroi's Home Page ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/
white page ttp://homepage3.nifty.com/wpage/
0198じんばん
NGNGどこか良いサイトあれば教えてください。
jarでなくてgzipの話です、念のため。
0199デフォルトの名無しさん
NGNGいきなりJavaソースを探すのではなく、
C/C++をJavaに翻訳することを薦める。
0200じんばん
NGNGjavaには、圧縮関連のインタフェースが提供されているはずなのですが。。
圧縮クラスだとか圧縮メソッドのような。。
0201デフォルトの名無しさん
NGNG> 標準的な ZIP ファイル形式および GZIP ファイル形式を読み取ったり、書き出したりするためのクラスを提供します。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/zip/package-summary.html
0202じんばん
NGNG0203じんばん
NGNGttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5688&forum=12
0204デフォルトの名無しさん
NGNGストリーミングに向いた、圧縮方法を教えてください。
0205デフォルトの名無しさん
NGNGうぐっ!
書き損ねた。>>204は携帯電話によく搭載されてるSMAFみたいな
奴を考えてます。
0206デフォルトの名無しさん
NGNGあえて言うなら、ストリーミングにはデータ欠損が付き物なので
データが足りなくても質を下げて再生できるようなフォーマットが必要だろう。
最初の数パケットで数フレーム分を荒く再生できるとか。
0207デフォルトの名無しさん
NGNGすると、圧縮しないほうがいいってことでしょうか?
0208デフォルトの名無しさん
NGNGアルゴリズムよりも実装の問題だという事。
圧縮は当然する。
しないと送受信が間に合わないでしょ。
といっても具体的に知っている訳じゃないので一般論でしかないけどね。
とりあえずmpegとか調べてみては如何かな?
0209デフォルトの名無しさん
NGNG「携帯 ムービー フォーマット」でググればそれらしい形式が出てくるんだから
更にそれらのフォーマットを調べれば済むんじゃないかなぁ。
0210デフォルトの名無しさん
NGNGbackup[1]という名前のフォルダの中に次のようなファイルが入っているとします。
regcopy.exe
help.chm
online.htm
readme.txt
別のbackup[2]というフォルダの中にもbackup[1]と全く同じファイルが入っているとします。
このbackup[1]とbackup[2]のフォルダをそれぞれLZH形式に圧縮します。
圧縮したこれら2つのファイルのバイナリを比較したところバイナリが一致しません。
上記4つの各ファイルのバイナリは一致しているのに、なぜ圧縮すると圧縮ファイルのバイナリが一致しなくなるのでしょうか?
宜しくお願いします。m(゚д゚)m
0211デフォルトの名無しさん
NGNGフォルダごと圧縮してるなら、フォルダの名前が違うから。
0212210
NGNGいや、最初はそれが原因かと思ったので、フォルダ名を同じにして圧縮してみたんですが、
やはりバイナリが一致しないんですよ。
どうやら、フォルダ名はバイナリに反映されないようですね。
今度はZIP形式に圧縮し直して試してみたんですが、やはりバイナリが一致しません。
うーん、、何故?なぜなんだろう。。
0213デフォルトの名無しさん
NGNGタイムスタンプも統一(偽造)してやってみて。
0214210
NGNGレスありがとうございます。
タイムスタンプは一致させているんですが、やはりバイナリが一致しません。
どうやら、ファイルの圧縮順が違ってみたいです。
例えば、backup[1]では、
regcopy.exe→help.chm→online.htm→readme.txt
のような順で圧縮処理しているのに対し、backup[2]では、
help.chm→online.htm→readme.txt→regcopy.exe
のような順で圧縮処理しているようなのです。
つまり、圧縮書庫内に格納されているファイル順が異なるため、バイナリが一致しないようなのです。
そこで、フォルダ内のファイルを名前順で並べかえてから圧縮したのですが、圧縮順は変わらないままです。
何か良い方法はないものでしょうか?
OS:WinME
アーカイバ:Easy圧縮
0215デフォルトの名無しさん
NGNGそれを制御するのはWindowsでは難しいだろうな。
ところで個人的には「どうしてそうしたいのか」が不明なんだが。
0216210
NGNGなるほど、やはりファイルシステム依存でしたか。
アーカイバ側の設定で名前順でソートしたらバイナリ一致確認できました。
>ところで個人的には「どうしてそうしたいのか」が不明なんだが。
書庫内の格納順が名前順になってないと、解凍後に名前順に並べ替えないといけないんですよ。
これって気になりませんか?
0217デフォルトの名無しさん
NGNG内部処理がどうなってようが気にならんがね。
実際FATだかNTFSだかがどんな順番で格納してるかなんか
気にしてないだろ? もちろんファイラで一覧表示するときは
なんかの基準でソートされてないと見づらいけどね。
アーカイブも同じだと思う。実際にどの順で格納されてようが
別に気にならないな。中に何が入ってるか表示するときに
ソートすればいいだけの話だから。
0218デフォルトの名無しさん
NGNG勝手に並べ替えされると「あぁ、名前順に格納されてるのか」とか考えるバカが出るような気もするが。
0219デフォルトの名無しさん
NGNGLZH圧縮ファイルに出力したいんだけどやっぱハフマン法とか勉強しなきゃできないん?
0220デフォルトの名無しさん
NGNGzlibならそういう使い方もできるんだが、LHAでは聞いたことないな。
LHAという縛りがあるなら勉強してクローン作るしかないかもしらん。
LHAじゃなくても良くて単に圧縮したいだけならzlibが使えると思う。
0221デフォルトの名無しさん
NGNGレスサンクス
LZH圧縮しる!っていわれてるんで参考書でも買ってきて勉強しマフ
0222デフォルトの名無しさん
NGNGunlha32.dll で UnlhaCompressMem とか使えばできなかったっけ?
0223デフォルトの名無しさん
NGNG情報サンクス
ちょっと試してみますた
メモリ圧縮は可能だけど解凍ソフトで解凍してもファイルが出来ないよ・・orz
やはり自作しるしかないのか・・はぁ・・
0224223
NGNGこれでデータ長がDWORDの設定範囲を超えるデータを
1ファイルにまとめることが可能なら・・・これで十分いけそうでつ
>>220さん
>>222さん
ありがたう!
0225デフォルトの名無しさん
NGNG解凍後にいろいろ処理をしたいのですが、既存のをそのまま使うのは
無理そうなんです。
解凍後に指定のEXEファイルを実行、というのでは解凍中のエラー時の
処理などがカスタマイズできないので使えないんです。
0226login:Penguin
NGNGmakeとかantとかを強制させるとか
0227デフォルトの名無しさん
NGNGinstallshield(?)を参考にしる
0228デフォルトの名無しさん
NGNGプログラムの参考にはならないだろうが、
DGCAが、自動解凍後に任意のプログラムを実行する機能を持っている。
0229デフォルトの名無しさん
NGNGそんなんlhaだって持ってるぞ。
っつーか普通は持ってるんじゃないか?
0230デフォルトの名無しさん
NGNG% lha --version
lha for unix version 1.14g
% lha
...
LHa for UNIX V 1.14i Modified 2000 Tsugio Okamoto
ごめん。よくわかんない。
DOS版にはそういう機能があるの???
0231デフォルトの名無しさん
NGNGそもそもunix版では自己解凍書庫つくれんだろーが。
0232デフォルトの名無しさん
NGNGsharの仕組みを導入して何でも自己解凍化してしまえばok
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGそれに圧縮率だけなら既存のでもシャノン限界に肉薄しているのがあるし、
圧縮速度やメモリ効率や使い勝手も優れてないとこれから普及するのは難しい。
0238デフォルトの名無しさん
NGNG圧縮したり,展開したりする必要があるんだが,
統合アーカイバプロジェクトにあるような
圧縮展開ライブラリは「ことごとく」,
ファイルから入れて,ファイルに出すような,
API しか用意していない.
バッファで使えるようなライブラリ知らない?
0239デフォルトの名無しさん
NGNG少なくとも unlha32.dll と unzip32.dll はメモリから圧縮、解凍できるが。
っつか、>>222 で既出。
0240デフォルトの名無しさん
NGNGlnlha32.dll では圧縮したデータを直接バッファに
出すことはできない
unzip32.dll では圧縮そのものができない
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG例えばバイナリは1バイトで必ず0〜255の値しか取らないじゃないですか。
それを圧縮したら戻らなくなっちゃう気がするんですけど…
0243デフォルトの名無しさん
NGNGまずはこの辺読めば?
ttp://homepage1.nifty.com/snap/room03/c02/comp/comp.html
0244デフォルトの名無しさん
NGNGそれなら、バッファにあるデータをバッファに圧縮、展開と書かないと分からないよ。
展開はともかく、圧縮データをバッファに吐くのは
圧縮できなくてデータが増える事も考慮すると、ちと面倒くさいね。
0245デフォルトの名無しさん
NGNGなんとなくわかりました。ありがとうございます。
0246デフォルトの名無しさん
NGNGほとんどわかってないぞお前。
0247デフォルトの名無しさん
NGNGそこはLZ78符号 ≒ LZ77符号 >> 算術符号 > ハフマン符号 >> 連長符号
みたいな比較をしていて解説としてはちょっとおかしいぞ。
LZ符号と算術・ハフマン符号を比較するのは無理がある。
0248デフォルトの名無しさん
NGNG> 展開はともかく、圧縮データをバッファに吐くのは
> 圧縮できなくてデータが増える事も考慮すると、ちと面倒くさいね
ん? 意味わからん
ちぢまない最悪のケースを考慮して,
バッファを用意させればいいだけの話じゃないか
0249デフォルトの名無しさん
NGNG最悪のケースを調べるのが面倒くさいって事。
deflate でやるなら deflate のフォーマットを調べないと最悪のケースはわからん。
適当にやると不具合が出たときに泣きを見ることになる。
0250デフォルトの名無しさん
NGNG解凍速度優先型らしいけど、ホントにゲームに使ってる方いらっしゃる?
0251デフォルトの名無しさん
NGNG日本語を含む文字列(char型の配列)を圧縮して、
出力がバイナリでない圧縮方法はないですか?
ランレングス法は通常のテキストだとあんまり意味がないもんで。
0252デフォルトの名無しさん
NGNGそんな特異な圧縮方法はありそうにない。
ってか、ほとんど仕様が決まってるじゃん。自前で用意しる!
■ このスレッドは過去ログ倉庫に格納されています