トップページ⇒tech
992コメント329KB

【2ch】圧縮アルゴリズム【オリジナル】

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
おい、おまえら圧縮ソフト作ってみませんか?
中途半端に圧縮されて拡張子が.2ch
0116デフォルトの名無しさんNGNG
>>109
あと復号方法も考慮に入れてません(アカシックレコードが必要)
0117デフォルトの名無しさんNGNG
>>115
MTFは情報源の特性(無記憶とか定常とか)によって左右されるから気をつける。
最近、EffrosらによってBWTの冗長度が理論的に証明されたけど、
そこではMTFについてかなり細かく(実はそうでもないが)分析がされてたよ。
0118デフォルトの名無しさんNGNG
円周率使用したって、圧縮にはらなんだろw
0119デフォルトの名無しさんNGNG
>>111 それだと逆に増えそう・・・
0120デフォルトの名無しさんNGNG
じゃあ円周率のほかにexp(素数)も使ってくれ
0121デフォルトの名無しさんNGNG
public: searchBit()
 if (assyukuPattern == 0) {
  int i;
  while(searchPI(i++))
   ;
 } else {
  int j;
  long sosuu;
  while((long = getSosuu(j++)) != 0)
   int i;
   while(searchExp(i++, Sosuu)
    ;
  }
  put("ok");
}

private: getSosuu() {
//preaseWrite
}

private: searchPI() {
//preaseWrite
}

private: searchExp() {
//preaseWrite
}
0122デフォルトの名無しさんNGNG
>>119
圧縮可能だったら、圧縮するんだよ。無理ならやらなければいい。
それにたとえ確立が低くても、LZHやZIPが圧縮できたら神だろ?
0123デフォルトの名無しさんNGNG
>>121
素数は http://pc3.2ch.net/test/read.cgi/tech/1018657457/ に頼め
0124デフォルトの名無しさんNGNG
擬似コード

long searchBit(bit* data, long assyukuPattern)
//とにかく探す
 int i;
 if (assyukuPattern == 0) {
  searchPI(i++);
 } else {
  searchExpSosuu(&data, i++, assyukuPattern)
 }
 return i;
}

long searchPI(bit* data, long offset) {
//PIを検索する
}

long searchExpSosuu(bit* data, long offset, long sosuuno) {
//expSosuuを検索する
}

long expSosuu(long n) {
//getSosuuで取得した素数を(1/2)乗し、PIと同じく無限小数化する
}

long getSosuu(long n) {
//n番目の素数を返す(もちろんテーブルを引く)
}

0125デフォルトの名無しさんNGNG
作れ
0126デフォルトの名無しさんNGNG
>>119
> それにたとえ確率が低くても、LZHやZIPが圧縮できたら神だろ?
限りなく低いので却下
0127デフォルトの名無しさんNGNG
>>114
いや、だから初期状態のテーブルはプログラム側でもって、圧縮したファイルには
入れないんでしょう。
0128デフォルトの名無しさんNGNG
URRって圧縮には使えないのかな?
0129デフォルトの名無しさんNGNG
>>119
PPMZとかで再圧縮した方がはるかに縮みそうだ。

>>128
URR って「万能数値表現法」のこと?
ちょっと資料読んでみたけど、算術符号や、(二分)木による数値圧縮法、
などが近い考えなのではないかとふとおもた。
0130デフォルトの名無しさんNGNG
っていうかプログラムがローマ字なのに萎えた
0131デフォルトの名無しさんNGNG
円周率、素数とか言ってる奴は間違いなく偏差値40以下の高卒(藁

圧縮可能ならと言ってるが、その情報を付加するんだから情報量は基本的に増える
ことになるんだよ。円周率やら素数やら増やせば増やすほどな
それらのパターンを増やし、全ての情報パターンを表せるようになったときに
圧縮前のデータとおなじビット数が必要になることに気がつくんだよ(藁

くだらんこと言ってないで確率統計でもやってろ痴呆
0132デフォルトの名無しさんNGNG
口は悪いがまったく131の言うとおりだ
0133デフォルトの名無しさんNGNG
今日は自作自演が多いですね。
0134デフォルトの名無しさんNGNG
>>131
ネタにマジレスするなよ…
0135デフォルトの名無しさんNGNG
>>134
オマエモナー
0136デフォルトの名無しさんNGNG
もう現在の圧縮率で限界近いからな
あとがんばっても5%も減らないだろ
0137デフォルトの名無しさんNGNG
シャノンのどうたらってやつ?
でも、BWTはアレを無視した手法強引にエントロピーを低下させてるんでしょ?
0138デフォルトの名無しさんNGNG
どーでもいいけど非可逆圧縮でいいんじゃない?
圧縮くわしくないけどさ
とくに2chのログなんてかなり省略できると思う

↑を圧縮


非可逆圧縮でよくない?
圧縮シラネーヨ
特に2chのログナンテカナリ省略デキルサ

0139デフォルトの名無しさんNGNG
>>138
下のやつを展開するとどうなるんですか?
0140デフォルトの名無しさんNGNG
ヤパーリ、2ch専用の圧縮形式なんだから2chの性質を使わないとな〜。

人工無能を搭載してありがちな反応を数パターン予測して、
その中から一致するパターンがあればそのパターン番号を出力、
失敗したら通常の圧縮って手もあるな。

つまり、擬似コードで書くとこんな感じな。

void 圧縮(前レス, レス) {
 array= 人工無能(前レス);
 for(i=0; i< array.size; i++) {
  if(レス== array[i]) {
   出力(i);
   (・∀・)カエレ!;
  }
 }
 出力(予測シパーイ);
 出力(通常圧縮(レス));
 (・∀・)カエレ!;
}
0141デフォルトの名無しさんNGNG
やっぱ2ch独特の定型文をテーブルで持つのが良いのでは.
この場合,圧縮率の高いスレは内容の少ない糞スレである確率が高い.
0142デフォルトの名無しさんNGNG
>>141
 原文と一緒に圧縮して何%圧縮出来たかで 作者が同一か判定するというのがあったけど
 圧縮率でクソスレ率を出すのも面白いかもね。

0143デフォルトの名無しさんNGNG
>>137
ワラタ。むちゃくちゃ言うなよ。
エントロピーとエントロピーレートは似て非なるもの。
0144思いつきおとこNGNG
「あいうえおかきくけこさしすせそたちつてと」
 を
「とてつちたそせすしさこけくきかおえういあ」
 の反対と見るようなロジックってありました?
0145デフォルトの名無しさんNGNG
とりあえず圧縮して「.2ch」になれば圧縮比なんてどうでもいいって。
つーかlzhでいいです。
0146デフォルトの名無しさんNGNG
>>145
よくないです・・・・・lzhが拡張子だと、デフォルトではunlhaの方に渡されちゃうよ。
0147デフォルトの名無しさんNGNG
>>146
そりゃ環境依存だ。うちではlzhには何の関連付けもしていない。
unixだと関係ないしな〜
0148デフォルトの名無しさんNGNG
>>147
まぁ結局そうなんですが、やはり.lzhは避けた方がいいのでは。
0149 NGNG
あのさ、サーバーでごみのようにあるdatをlzhで圧縮すると
負荷がかかりまくるでしょうが。
単純にhttp://をEsc文字 <a href= を \
アラーム文字 とかでいいと思うんだけどなー
0150デフォルトの名無しさんNGNG
>>149
あふぉだな
そんなくだらんことしないでgzipしたほうが圧縮率あがるんだよヴォケ
殆どgzipで転送してんだからくだらん加工してサーバーに余計な負荷かけるな史ね
0151デフォルトの名無しさんNGNG
ダウソ症の>>150がいるスレはここですか?
0152デフォルトの名無しさんNGNG
>>150
うわー、おっかなーい。藁
0153デフォルトの名無しさんNGNG
>>150
はいはい。怖い怖い。
ぶるぶる〜



藁
0154 NGNG
いや、まじめに考えようYO!
0155デフォルトの名無しさんNGNG
>>151=>>152=>>153
0156デフォルトの名無しさんNGNG
>>155
151と152と153を同一フレーズに圧縮したら非可逆になっちまうだろうが。
まあ展開結果は「クソレス3件」だけでも構わんがな。
0157デフォルトの名無しさんNGNG
>>156
真面目に考えんなYO。
つーか思いついた。
2ch語を特定の数字に置き換えんの。
1,オマエモナー 2,YO 3,逝ってよし 4,1よ 5,藁・・・・・(2ch語続く)

だれか作ってくださいお願いします。,5,
0158デフォルトの名無しさんNGNG
>>157
>>95
0159デフォルトの名無しさんNGNG
どうやら小学生がいるな。
特定の文字を数字にしたら
今度は数字を符号化しないといけなくなるじゃん。
0160不マジレスNGNG
予約語が256個あって、1バイトで置き換え。
それ以外は原文字のままで1バイトずつ。
で、それら8個集めて別のフラグバイトにどっちかを示すビットを立てていく。
0161デフォルトの名無しさんNGNG
>>160
全部 9bits にするぐらいなら予約語を escape した方が縮むんじゃ…
よっぽど頻繁に出てくればともかく、平文が 9/8 に膨らむと大きそう。
0162デフォルトの名無しさんNGNG
>>155
お前は自作自演を見破れないのか?
0163がいしゅつだったらスマソNGNG
LZSSベース。
ただし、ファイルの先頭より前の部分に2chで頻出する文脈を詰めておき、
そこを初期のスライド窓の位置とする。

圧縮・展開ソフトが固定データを持ってなきゃいけないのが重大な欠点か。
0164デフォルトの名無しさんNGNG
>>163の方法でいいと思うよ
0165デフォルトの名無しさんNGNG
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____
0166デフォルトの名無しさんNGNG
共和政なのか…
0167デフォルトの名無しさんNGNG
>>138 辺りみたいに、不可逆にしてみるとか…
圧縮時はその時点での 2ch から頻度表作って詰めて、
展開時には初期の辞書で置き換えられた部分は無視するの。
…無視するなら、圧縮前に削除しちゃった方がいいか…
0168デフォルトの名無しさんNGNG
というか全部あぼーん
0169デフォルトの名無しさんNGNG
万一のときに聞いておきたいんですが
圧縮アルゴリズムを発見(発明)した時、
特許とかの申請はどういう風になるんですか?
0170デフォルトの名無しさんNGNG
トウキョウトッキョキョカキョク
0171デフォルトの名無しさんNGNG
リャクシテT.T.K.
0172デフォルトの名無しさんNGNG
http://tmp.2ch.net/test/read.cgi/sisou/1032255483/l50
0173デフォルトの名無しさんNGNG
>>169
「情報処理」にソフトウェアやアルゴリズムの特許についての話が連載中。読め。
0174デフォルトの名無しさんNGNG
別に圧縮しなくても 2ch ってヘッダ付けるだけでいいじゃん
0175 NGNG
>>169
そんなことも知らない奴には発明なんて無理
0176デフォルトの名無しさんNGNG
>165-166 ワラタ
0177デフォルトの名無しさんNGNG
>169
とりあえず2chにアルゴリズムをUP汁。そして各所からリンクを張られろ。
どこかの香具師が勝手に特許とっても申請前に既に一般に知られていれば
特許を無効にできると思われ。
0178デフォルトの名無しさんNGNG
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン民主主義人民共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____

0179デフォルトの名無しさんNGNG
>>177
>>とりあえず2chにアルゴリズムをUP汁。
これが一番危険と思うんですよね
2chに書き込んだのはすべて2chのものってことになってますから。
まずどっかのサーバーにウプした時点で著作権だけは保持できるはずなんですので
そのあとここに書き込むかもしれません。(まぁ無理かな、いちをおテスト中です)
0180177NGNG
>179
>2chに書き込んだのはすべて2chのものってことになってますから。
そうなのか、知らなかったよ。
じゃあジオとかを避けて適当にUPしてそのURLを2chに晒すのがいい鴨な。

以前、会社でPGやってる香具師が、退職時に自分の作ったコードを
自由に使えるようにする為に、会社で使う前に自分のHPにUPしてた
という話を聞いたことがあるよ。
0181デフォルトの名無しさんNGNG
>2chに書き込んだのはすべて2chのものってことになってますから。

んなわけねーだろ。というわけで晒しあげ。
0182デフォルトの名無しさんNGNG
掲示板の書き込みの著作権は管理人に帰属するとか。
0183デフォルトの名無しさんNGNG
そんな訳ねーだろ、って判例出てなかったっけ?>>182
0184デフォルトの名無しさんNGNG
著作権は作った時点でお前のものだアフォ。中学からやりなおして来い。

それに今話してるのは特許の話しだろ。小学生からやりなおして来い。
0185デフォルトの名無しさんNGNG
確認したいんですが
圧縮アルゴリズムが違うものでの圧縮は一回は効果ありますよね?
たとえばlzh形式をbzip2で圧縮できたりとか、、。
0186デフォルトの名無しさんNGNG
>>185
圧縮に関するすべての勉強をやり直せ。話はそれからだ。
0187デフォルトの名無しさんNGNG
ん〜
あほばっか

指摘されてるほうねw
0188デフォルトの名無しさんNGNG
>>178
タモンって誰よ?
0189EXE系の人NGNG
>>185
確かに効果あるが
その効果はバイト単位(一部を除き)でしか確認できないと思う
逆に増えることもある思う

0190デフォルトの名無しさんNGNG
>>189
オマエも勉強を…
0191デフォルトの名無しさんNGNG
$ md5sum.exe xyzzy-0.2.2.230.lzh
9ca53116f068eed6de59ac6540f1a036 xyzzy-0.2.2.230.lzh
$ bzip2 xyzzy-0.2.2.230.lzh
$ ls -l xyzzy-0.2.2.230.lzh.bz2
-rw-r--r-- 1540494 xyzzy-0.2.2.2lzh.bz2
$ bunzip2 xyzzy-0.2.2.230.lzh.bz2
$ md5sum.exe xyzzy-0.2.2.230.lzh
9ca53116f068eed6de59ac6540f1a036 xyzzy-0.2.2.230.lzh
$ ls -l xyzzy-0.2.2.230.lzh
-rw-r--r-- 1544223 xyzzy-0.2.2.230.lzh

>>190
んじゃこれをわかりやすいように馬鹿に説明してみてください。
0192デフォルトの名無しさんNGNG
>>191
KB単位で効果があるように見受けられるが?
ってゆーか何でわざわざMD5?
0193デフォルトの名無しさんNGNG
LZHはヘッダ部分が随分冗長な構成になっている。
そのため、SOLID圧縮が有効であることからわかるように、
bzip2などで再圧縮すると、そのヘッダ部分でわずかながら圧縮される。

しかし圧縮部分自体は、LZSS+Huffmanという構成で、
特にHuffmanがエントロピー符号であることから、再圧縮効果は期待できない。
0194193じゃないけどNGNG
>>191は、>>193でわかったのだろうか
0195デフォルトの名無しさんNGNG
わかりました。
サンクスです。理論的に意味がないというわけですね
0196デフォルトの名無しさんNGNG
脳みそが圧縮されてる人の集うスレ
0197デフォルトの名無しさんNGNG
俺の脳は8bit
0198デフォルトの名無しさんNGNG
俺の脳は140億ビット(人間はこれぐらいだって言われてなかったっけ?
0199デフォルトの名無しさんNGNG
脳みそなんて2bitあれば十分なんです。偉い人にはそれがわかるのです。
0200デフォルトの名無しさんNGNG
>>198
記憶容量と処理能力は別物だと思われ。
もし、しなぷすの結合のオンオフが1ビットに等価ならば、
2^140億の組み合わせがあるわけで・・・
0201デフォルトの名無しさんNGNG
それなりの会社にはimidasが置いてある筈です。
imidas2002のパソコンカテゴリに答えが書いてあったはず
0202デフォルトの名無しさんNGNG
ところで本題に戻すけど、

AAの圧縮なら、その絵のキャラクタインデックスとポーズを符号化するのはどう?
意味が通じればいいので、非可逆でよいわけだし、
キャラクタインデックスに20ビット、ポーズに12ビットもあれば十分。
セリフ部分やその他の特殊効果に費やすビット数を除けば、
32ビットから48ビットもあれば、AAを表現できそうだ。

例:
(ギコ猫、左向き、セリフ「逝ってよし」)
とか、
(モナー、上半身と下半身分離、ポインタ>>1)+(斬鉄剣モナー、左右、擬音「ザシュッ」)
とか。
0203デフォルトの名無しさんNGNG
大体誰が、非可逆でいいって言ったんだ?
0204デフォルトの名無しさんNGNG
>>193
エントロピー符号という用語は初めて知ったよ。

ちょっとぐぐってみたんだけど定義が良く分からないので
もしよければ教えて下さい。
0205デフォルトの名無しさんNGNG
>>204
エントロピーを達成するような符号を、エントロピー符号という。
エントロピーとは、理論的に達成可能な圧縮限界のこと。
確率 p[i] が与えられているときに H(P) = -Σp[i] log p[i] がエントロピー。

エントロピーレートを漸近的に達成する符号で、
a priori な知識なしに達成するものを、ユニバーサル符号という。
エントロピーレートとは、1記号当たりの漸近的なエントロピー。

Shannon情報理論を扱った本なら、一番最初に書いてあるから読むべし。
つーか、圧縮を知りたいなら、まずエントロピーありきだから、
エントロピーを知らないと、「1/100圧縮」や「何でも圧縮」といった、
とんでも圧縮法を提案してたたかれることになる。
0206知ったか厨NGNG
エントロピーは常に増大する
0207デフォルトの名無しさんNGNG
>>206
それは物理学の方だね!
局所的にエントロピーを減らすことは出来ても、
系全体では必ず単調非現象にあるんだね!
0208デフォルトの名無しさんNGNG
もしかしてここは学生さんしかいませんか?
0209デフォルトの名無しさんNGNG
>>205
サンクスコ

でもハフマン法の平均符号長(L)ってエントロピー(H)に対して
H≦L<H+1
だからエントロピーを達成できない場合もあるのでは?
0210デフォルトの名無しさんNGNG
>>209
対象が無限長なら大丈夫。
0211デフォルトの名無しさんNGNG
>>210
対象が無限長、という条件だけでは不十分と思われ。
例えばAとBという二つの記号からなる情報源を符号化すると
0と1になって圧縮しようがない罠。
0212デフォルトの名無しさんNGNG
昨日、講義でエントロピーを習ったよ! 情報理論だっけかな?
そんときは -p*log_2 p は情報量みたいな言い方してた.

まだ,勉強してないからあれだけど
「エントロピーとは、理論的に達成可能な圧縮限界のこと。」
なんていわれると激しく違和感を感じる.


0213デフォルトの名無しさんNGNG
世界を震撼させるかもしれない圧縮アルゴリズム
をあと一週間で発表します、今デコーダーの作成中です
期待してください。
0214デフォルトの名無しさんNGNG
>>211
Huffman符号は整数長の符号しか構成できないので、
メール欄にある通り、アルファベット拡大が必要ですな。こりゃまた失礼。
0215デフォルトの名無しさんNGNG
あげ
■ このスレッドは過去ログ倉庫に格納されています