圧縮・復元 相談室

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
アルゴリズムは別スレで
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
てい
2010/03/10(水) 17:39:36
ありがとうございました
でもなんで 2.71828182845904523536028・・・ みたいな変な数字なんだろ
2010/03/10(水) 17:43:26
e = 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + ・・・・
だからさ
2010/03/10(水) 18:03:19
それは自然対数の底だな。

分野によって10(工学関係とか)2(情報関係とか)が底のこともある。
2とかそれ以外が底だったら普通は明示される。
たいてい10かeが底で、底がeの対数は特にlogではなくlnと書かれたりする
(その場合logで示されるのは底が10)。

ネイピア数(ないしオイラー数)eは (1 + (1 / n)) ** n ( ** は冪乗)の n を∞にした
時の極限(ほかにもいろいろな定義はあるが)。いろいろな性質がある。

たとえば、y = e ** x というグラフの傾きは e ** x であるとか。
2010/03/10(水) 18:47:51
logって何が便利なの?
2010/03/10(水) 18:53:07
高校で習うよ
2010/03/10(水) 18:54:06
eとかlogとかって圧縮復元に役に立つの?
2010/03/10(水) 18:57:36
729の役には立たないよ
2010/03/10(水) 21:02:01
>>727
例えば10進数で81桁の数値は64進数だと何桁必要か計算するときにlogを使う。
2010/03/11(木) 13:26:56
64進数とか要らないなw
2010/03/11(木) 20:41:09
Base64なんかはある意味64進数といえなくもない
2010/03/20(土) 17:05:41
位取りの概念がないじゃない
2010/03/21(日) 11:57:06
は?馬鹿ですか?
736デフォルトの名無しさん
垢版 |
2010/09/17(金) 23:12:57
ぼくではない
2010/11/10(水) 20:50:47
"Move To Front" の改良 良になっていると思います
 過去2Byte値から今の1Byte値を"Move To Front"するテーブルを選ぶ
  詳しい処理はソースを見てください
http://gmdev.xrea.jp/
   [標準10MB] [148.zip]  実験用実行アプリ Delphi4 ソース付き 

注意
 実行アプリのウイルスチェックはしてません 
 感染は無いと思いますが自己責任ということで
2010/11/10(水) 23:18:20
学生さんかな?
ここで晒してもしょうがないと思うのだけど…
MTFの改良とか一度は考えるよね
実際にやってみると大したこと無くてがっかりっていう
この手のやつをRecency Rankingというのだけど
頻度が考慮されないから算術符号やハフマン符号と比べるとだめなんだな
もっともっと勉強してちょうだい
2010/11/11(木) 00:25:01
再帰順位符号化法は、理論的にはエントロピーを達成できるよ!できるよ!
2011/07/03(日) 13:21:22.14
なんだ、ただのゴミか
2011/07/07(木) 21:50:49.65
「容量無限のHDD」実現の可能性も、新たな物理現象が発見される - GIGAZINE
http://gigazine.net/news/20110704_limitless_hdd/
2011/07/07(木) 22:30:26.96
LHCでブラックホール圧縮したほうが簡単。
2011/07/07(木) 23:25:05.99
>>741
昔に流行ったπ(円周率)圧縮と原理は同じ
2011/07/08(金) 00:41:50.33
それとは違うだろ
2011/07/08(金) 01:54:35.69
>>741
圧縮と関係ないから。
2011/07/18(月) 16:25:30.65
アキレスと亀みたいな無限圧縮理論があったろ。
あれと似てるねって話だろう。
747デフォルトの名無しさん
垢版 |
2011/08/20(土) 12:26:41.97
基本的なことを教えてください。

@1Mバイトのランダムなデータ列と2Mバイトのランダムなデータ列をファイルにしてzipにしました。
  圧縮率はどっちが高いですか?

A1Mバイトのランダムなデータ列と1Mバイトの数列(0,1,2・・・ffH・・・)をファイルにしてzipにしました。
  圧縮率はどっちが高いですか?

B1Mバイトの数列(0,1,2・・・ffH・・・)と2Mバイトの同じ数列(0,1,2・・・ffH・・・)をファイルにしてzipにしました。
  圧縮率はどっちが高いですか?

できれば、経験的な結果ではなくて、数学的?技術的結果を知りたいです。(経験的結果ももしあれば知りたいです)
よろしくお願いします。
当方ハード屋です。簡単なプログラミングはできるぐらいのキャリアです。
2011/08/20(土) 12:41:46.03
>>747
zipなら自分でやってみればいい。
zipじゃないなら、圧縮率がどうなるかは圧縮アルゴリズムによる。
749デフォルトの名無しさん
垢版 |
2011/08/20(土) 12:45:01.97
>>748
レスどうも。

やっぱりやってみないとわからんものですか・・・
理論的にはどう考えたらいいのかを、聞きたかったんですが。
2011/08/20(土) 12:51:08.48
>>747
ランダムデータは多分全く圧縮出来ない
数列が00hからffhの方はもの凄く縮む
123は全て後者の圧縮率が高いよ
>>748の通り実験あるのみ
751デフォルトの名無しさん
垢版 |
2011/08/20(土) 13:03:32.15
>>750
レス、どうも。

『データ量が多いほうが圧縮率が高くなる傾向がある』

と考えていいのでしょうか?
また質問ですみません。
2011/08/20(土) 13:11:59.31
>>751
いや、zipはLZ法といって
同じパターンを検出して別の符号で置き換えるという仕組みになってる
ランダムデータは繰り返しがないから圧縮出来ないし
数列の方は00h-ffhが繰り返されるからそこで縮むのよ
753デフォルトの名無しさん
垢版 |
2011/08/20(土) 13:27:20.28
>>752
レス、どうも。

よくわかりました。
この場合ランダムデータと言えるか疑問ですが、
もし、ランダムデータでもちょっとでも繰り返しパターンが現れたとして、その大きさも出現率もランダムだとして、この場合少しは圧縮できると思います。
その場合は、

『データ量が多いほうが圧縮率が高くなる傾向がある』

とは理論的に言えないのでしょうか?
実験をして臨床的に?測定はできるでしょうが、まずは頭の中で整理したいので、よろしくお願いします。
2011/08/20(土) 13:36:12.73
>>753
データ(情報源)次第としか言いようがないんだけど
データ量が増えるほど参照可能なデータが増えるので圧縮率は上がる
と言える
ので理屈としてはそれであってる
言うまでもなく計算量は増えるけども
755デフォルトの名無しさん
垢版 |
2011/08/20(土) 14:12:35.01
>>754
ありがとうございます。

ですよね。ランダムデータの共通概念を確認してから話すべきでした。
失礼しました。
2011/08/20(土) 16:35:41.98
圧縮について理論的な裏付けを探しているなら、
次のキーワードについて調べてみるとよいでしょう。
初等的な情報理論の参考書に出ているものです。

情報源(符号化)
エントロピー
ユニバーサル
エルゴード性
エントロピーレート
2011/08/20(土) 17:20:35.51
>>756
どうも。

わからないところが出てきたら、また教えてください。
2011/08/21(日) 00:44:08.36
>>749
やってみないとわからないというより、何を目的に聞いているのかわからないから、答えにくい。
圧縮もzip(LZ法+ハフマン)に限る話なのか、あらゆるアルゴリズムを検討するかによっていろいろ変わってくる。

情報理論的にランダムデータは統計的には圧縮できない。
(圧縮できるケースも0ではないが、できないケースがそれをはるかに上回る)
2011/09/08(木) 00:22:45.54
解凍速度重視でデコーダー書いてアセンブリ出力見て無駄が減り
実測でも速くなってるとお茶が美味い、でへへ
2011/09/22(木) 01:47:33.31
>>510-512関連での質問なのですが、
もし対象のファイルが複数あり、それぞれ違うドライブの場合、
どのように対応すればよいのでしょうか?
2011/10/04(火) 04:33:33.93
7zなら、パスを列挙したリストファイルを渡して圧縮させるコマンドが無かったか?
2011/10/19(水) 17:21:06.75
zip32j.dllで同じファイルを圧縮しても、
出来るzipのCRCが毎回違うってのは正常?

WinRAR使うと毎回CRCは同じなんだが
2011/10/19(水) 17:53:00.10
圧縮ルーチンの中で乱数使ってるんじゃないかな
解凍後のCRCが一致してれば問題なし
2011/10/19(水) 18:29:03.25
>>762
できたzipファイルのCRC、圧縮されたエントリのCRC
どっち?

前者なら最終アクセス時間も記録してるとかって可能性もあるよ。
後者だと理由がサッパリわからんけど。
2011/10/19(水) 19:09:18.86
>>763
なるほど。
確かに解凍後のファイルのCRCは一致してるんで、
実用上問題は無いんですが、ちと気になったもので。
これ常識なのかな、と。

>>764
前者です。

> 最終アクセス時間も記録
これですかね?
2011/10/20(木) 22:51:54.07
スレ違い
767デフォルトの名無しさん
垢版 |
2011/11/29(火) 22:44:34.18
ふと気になってzipの仕様を見ていて疑問に思ったのだけれど、
「中央ディレクトリ」の存在意義ってなんですか?
わざわざローカルファイルヘッダと分離して、しかも書庫末端に配置
させている意味がわからないです。
書庫冒頭ならここを基点にランダムアクセスがしやすい、というのは
想像できるんですが、可変長コメントを終端に許容している時点で
後ろから計算するのも非常にめんどくさいことになってますし。
どうせだし作者にメールでも投げるか、と思ったら作者亡くなってるし。
2011/11/29(火) 23:04:07.92
LZH書庫のゼロ終端と同レベルには必要。
2011/11/29(火) 23:11:50.61
1passで書庫作る場合、中央ディレクトリみたいのをつけようとすると
どうしてもケツにしかつけられないってだけでしょ。
1passで書庫作れるようになってるのはzipの強みの一つだと思うんだが。

例えばlhaはチェックサム書き出すために一旦ヘッダまで戻らなきゃいかんから2passになる。
圧縮データをどっかに保存しておければ1passっぽくできるけど。そのために記憶領域が必要になる。
770767
垢版 |
2011/11/29(火) 23:20:10.21
解凍することだけ考えてて圧縮のこと何も考えてなかった。
なるほど。確かに1passで作れるっていうその点は強みですね。
すごいスッキリしました。ありがとう。
2011/11/29(火) 23:44:11.23
ケツにもコメントの長さつけてくれれば
後ろから読むのが楽だったと思わずにはいられない
2011/11/30(水) 02:12:31.07
ファイル先頭に置くと、ファイルを追加するたびに書庫ファイル全体を
書き直さないといけなくなるよ。
末尾にあれば追加された分と中央ディレクトリ分だけで済む。
2011/11/30(水) 03:49:27.68
インデックスは末尾が当然だな。もしくはシーケンシャルアクセスで良いならTARのようにする。
2011/11/30(水) 13:05:45.71
圧縮と暗号化を両方行いたい場合
先に暗号化してから圧縮すると
圧縮してから暗号化したときに比べて
サイズがかなり大きくなってしまいます
圧縮と暗号化を同時に行うアルゴリズムだと
効率は良くなるのでしょうか?
2011/11/30(水) 13:11:04.03
符号化と暗号化を勉強しろw
2011/11/30(水) 13:22:50.71
>>1
2011/11/30(水) 13:25:01.15
まあアルゴリズムの話はともかく
どうして暗号化ツールには圧縮機能がなくて
圧縮ツールには暗号化機能がないのはなぜ?
2011/11/30(水) 14:22:37.76
君が馬鹿だからそういう疑問が出る。
>>775
2011/11/30(水) 14:57:55.25
一番の問題点は仕様がアホみたいに巨大かつ肥大化を続けてることだろう
2011/11/30(水) 15:28:11.94
モチはモチ屋的な思考する人が多いからじゃねーかと思ったが、
圧縮ソフトは暗号化機能つけてるのも結構あるよね。
2011/11/30(水) 15:44:18.70
圧縮するときの符号化した辞書を暗号化すれば医院で内科医
2011/11/30(水) 15:53:09.43
馬鹿には無理
2011/12/02(金) 05:52:08.41
ちょっとした思いつき
ABCCABBCA
というような並びのデータがあるとして、このままではあまり圧縮に適してないが
これを
ABC
CAB
BCA
と並べて右上から右下斜めに読むと
CBBAAACCB
となって圧縮しやすくなる
これを斜め読みアルゴリズムと名付けた

データを二次元に展開すると読み方は横読み、右下斜め読み、縦読み、左下斜め読みの4種類定義できるが
この4種類を順番に適用して圧縮を繰り返すと、可逆を維持したままファイルサイズをものすごく小さくできるかもしれない
これを回転圧縮法と名付けた

暇な人は論文でも書いてみたらお金になるかも
2011/12/02(金) 06:02:58.46
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88
2011/12/02(金) 11:35:07.19
馬鹿には無理
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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