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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
00011NGNG
おい、おまえら圧縮ソフト作ってみませんか?
中途半端に圧縮されて拡張子が.2ch
0002デフォルトの名無しさんNGNG
可哀想に・・・
0003デフォルトの名無しさんNGNG
ベースはブロックソートで.
GPL以外は認めない!
0004デフォルトの名無しさんNGNG
圧縮対象を .dat ファイルに限定した圧縮とか?
0005デフォルトの名無しさんNGNG
何故、「作ります」 ではなく 「作ってみませんか」 なのだろう。
0006デフォルトの名無しさんNGNG
AAの圧縮に特化したものを作りなさい
00071NGNG
>>6
なるほど。ヨサゲ

作ります。じゃなくて作りませんか?にした理由は
プログラムを始めたばかりで一人では無理そうだったからです。
みなさんで協力していけたらいい物ができるのではないかと。
0008デフォルトの名無しさんNGNG
君は何ができるんだい?
00091NGNG
学校でCを習ってはいますが、できると言えるほど教えてもらってないです。
クラスでは出来る方ですけど。

構造体やポインタなんて全然まだで、配列ができる程度です。
0010デフォルトの名無しさんNGNG
AA圧縮かぁ・・・。ランレングスかけてハフマン符号化するくらい?
0011デフォルトの名無しさんNGNG
スペースが多いし、ランレングスでもけっこう圧縮できるかもな。
>>1は習作として作ってみれ。
00121NGNG
時間はかかるかもしれませんが、頑張ってみます。
0013デフォルトの名無しさんNGNG
俺がカオス理論の授業中に発明した圧縮方法を試すときが来たかな。
0014デフォルトの名無しさんNGNG
AAのみを対象として圧縮プログラムのコンテストを開いてみるとか。
未知のAA5個くらいに対して、一番いい圧縮結果を出したソフトが優勝。
0015デフォルトの名無しさんNGNG
AAの分野においては既存の圧縮アルゴリズムに勝てるものを作るの?
0016デフォルトの名無しさんNGNG
おもしろそう
0017デフォルトの名無しさんNGNG
>>15
うん
0018デフォルトの名無しさんNGNG
一般のデータとAAデータの差異ってどんなのがある?
AA固有の特徴が見つかるとナイスってことだよね?
0019デフォルトの名無しさんNGNG
上でもでていたけど、同じ文字が続けて使われやすいとか、
使われやすい文字が限られてるとかじゃないかな。
0020デフォルトの名無しさんNGNG
半角スペースと全角スペースの連続するある程度のパターンをテーブル化しとくと略せそう。
とにかく所有するテーブルが鍵になるのでは?
0021デフォルトの名無しさんNGNG
テーブルを256個くらいつくっとけば大抵のAAいけるんじゃない?
0022デフォルトの名無しさんNGNG
対象AAとの差異がが少ないAAテーブルのなかのAAの番号と、
そのAAと対象AAとの差分を圧縮した結果をつなげる。

0023デフォルトの名無しさんNGNG
dat圧縮るならレスをぶつ切りにして個々に22の圧縮をかけてつなげる。
あるいは差分を圧縮せずにつなげて全体を圧縮。
0024デフォルトの名無しさんNGNG
gzipより効率のいい圧縮になるとは思えないな・・・
0025デフォルトの名無しさんNGNG
>>24
gzip なんか、全然圧縮率良くないじゃないか。
LHAよりも悪いんだぞ。
bzip はそれらよりももっと良いし。
0026デフォルトの名無しさんNGNG
>>24
AA専用だったらさ、MP3みたく多少劣化しても元絵が判別できればOKということに
すれば、かなり圧縮できたりしないかな?
0027デフォルトの名無しさんNGNG
>>26
似た文字は置き換えちゃうとか?
0028デフォルトの名無しさんNGNG
やっぱ 1 と l と | は一緒扱い?
0029デフォルトの名無しさんNGNG
>>28

AA職人が泣くぞ。
003024NGNG
>>29
そう。それが一番のネックなんですが
0031デフォルトの名無しさんNGNG
>>26
ピクセル単位で命懸けてるAA職人に失礼かと。
003226NGNG
わ。30の24は26の間違いです......鬱氏
>>31
やっぱダメっスか......
0033デフォルトの名無しさんNGNG
31っす。
>>32
うん。俺職人じゃないけど、モナ板住人なんで。
0034デフォルトの名無しさんNGNG
それこそ各 AA に UID ふって、AA サーバに登録・参照できるようにするとか。
0035デフォルトの名無しさんNGNG
>>34
それは圧縮とは言わない。
0036デフォルトの名無しさんNGNG
>>35
お馬 さん
0037デフォルトの名無しさんNGNG
このスレの全文をたった48バイトに圧縮してみますた。

http://pc3.2ch.net/test/read.cgi/tech/1028570486
0038デフォルトの名無しさんNGNG
2ch/tech/1028570486
まで圧縮できないか?
0039デフォルトの名無しさんNGNG
pc3/tech/1028570486かな。
tech/1028570486までは逝ける。
1028570486はlong intで表現できるからtech(4byte)。
tech等はテーブルを持ってindexは1byteで表現しちまおう。
よって、このスレは5byteで表現できる。
0040デフォルトの名無しさんNGNG
某板には英文字のスレがあるのだが。
0041デフォルトの名無しさんNGNG
じゃあ、16進でスレ番号は5byteで
0042デフォルトの名無しさんNGNG
あとはレス番号が 1-1000 なので 10bit で扱える。
これで、少なくとも 2ch に存在するAAなら7byteで表現化農家
0043デフォルトの名無しさんNGNG
昔のスレには、10000レスとかあるが。無視かえ?
0044デフォルトの名無しさんNGNG
板1byte:スレ:5byte:レス:2byteで8byte。
0045デフォルトの名無しさんNGNG
マジな質問で悪いんだけど、結構最近のモノも含めた圧縮理論を勉強する上でわかりやすい本ってないかな?
オススメあったら教えて。

馬鹿でもなんとなくわかる本希望で
0046デフォルトの名無しさんNGNG
>45
Cマガの先月(7月)号
0047デフォルトの名無しさんNGNG
圧縮扱ってる本て少ないしな。
素直にデータ圧縮ハンドブック読んでおくのがいいかと。
0048デフォルトの名無しさんNGNG
>>45
英語でも良いなら
Kluwer Academic Publishers "Compression and coding algorithms"
がおすすめ。

日本語は参考になる本が少ないからな〜
データ圧縮ハンドブック と C MAGAZINE 以外には、
文書データ圧縮アルゴリズム入門くらいしかないが、絶版だし。

そもそも、圧縮自体が研究が進みすぎて下火になっているという罠。
画像圧縮の方は盛んだけどな。
何か画期的な圧縮法を>>45が発明することを期待する。
0049デフォルトの名無しさんNGNG
textだけど二次元的なつながりで考えて圧縮、ってのは面白いかもね。 でも圧縮関係の思いつきはほとんどが特許とられてる気もするが。
0050デフォルトの名無しさんNGNG
線画に変換してから圧縮。解凍時にオートトレース。とかは駄目?
0051デフォルトの名無しさんNGNG
>>50
その方が、圧縮率が悪くなりそうだよ。
基本パターンやカッコなどの対応をあらかじめ学習しておくのがAA向きか。
0052デフォルトの名無しさんNGNG
オートトレースで済むなら職人はイラン。
0053デフォルトの名無しさんNGNG
>>52
小さいサイズのAAなら職人技が光るけど、
大きいサイズだとツールを使ったものも多いよね。
0054開発者 ◆GODLHAg2 NGNG
LZHアルゴリズム開発者ですが何か?
0055デフォルトの名無しさんNGNG
というか、AAが対象というか、可読文字のみが圧縮対象となるから
0056デフォルトの名無しさんNGNG
>>54
ああ特許の件で何も影響力が無かったカスか、まあいらっしゃい
0057デフォルトの名無しさんNGNG
>1
いっそのことマイナーな圧縮アルゴリズム使ってみないか?
おれはBPEぐらいしか知らんが。
0058デフォルトの名無しさんNGNG
JPEGの圧縮ってどうやってるんですか?
0059デフォルトの名無しさんNGNG
逆手に持って絞ります。
0060デフォルトの名無しさんNGNG
モナー系に限定すれば、( ´∀`)とか( ・∀・)が大量に出てくるから、
かなり圧縮できそう。
006158NGNG
くっ、この糞スレを利用して
JPEG圧縮プルグラムを作ろうとしたがやはり無理か。
0062開発者 ◆GODLHAg2 NGNG
>>61
そんなことは俺が許さん!!!!(嘘
006358NGNG
>>62
何で?
006458NGNG
ネタをネタと見抜ける物でないと(略

鬱出汁脳。
0065デフォルトの名無しさんNGNG
ネット上にある、違法でない巨大ファイル(RedHatのISOなど)を利用して圧縮←遅いのでHDに一回DWN
([ISOと圧縮対象ファイル]の[同じデータ]を探してISOのデータアドレスをアーカイブに書く)
回答時はネットに接続して、ISO参照の部分だけISOから抜き取って解凍。
DQNだと思われなら無視なされて結構です。
0066デフォルトの名無しさんNGNG
>>65
なに言ってんだかさっぱりだけど
恒常性の無いデータなんか
使いモンにならんぞなモシ
0067デフォルトの名無しさんNGNG
>>65
DQN
どうせなら辞書鯖用意して巨大共通辞書ファイル置くってのはどうか。
0068デフォルトの名無しさんNGNG
>65
そのISOファイルへのポインタが消費するバイト数 >
ISOファイルを利用することによって節約できるバイト数

になる予感。
006967NGNG
用意するもの
・巨大鯖
・クライアント
・高速回線
ユーザがファイル圧縮を選択するとファイル内容が巨大鯖に転送されます。
……書いてて面倒くさくなってきたので続きはTHComp参照。
案外実現できそうな気がしない?
0070デフォルトの名無しさんNGNG
思い出した・・・この流れ・・・
昔導き出された結論はこうだ・・・
「インデックスのサイズが圧縮元のサイズと同じになる」
0071デフォルトの名無しさんNGNG
10年ほど前のある論文で、文字化された全世界の文章全てを圧縮すると
18GBに収まるってのがあった
この辞書を各クライアントが持つってのはどうかな?

当時は夢の容量だったから、だからどうしたレベルだったけど今ならいけそうだね
0072デフォルトの名無しさんNGNG
「文章」圧縮だけなら、それでもいいけどね。
0073デフォルトの名無しさんNGNG
>>57
BPEって特許からむのかな。
Cマガの記事は読んでないのでよく知らないけど、
セクションサイズを可変にするのはダメ?
255種類のByteが出現するまで読み込んで、
その中で最も多いペアを出現していない残りの1種類のByteに置き換える。
セクションのデリミタとしてもう1Byte予約しておかないとダメか。
007457NGNG
>73
俺もCマガの記事は読んだこと無いけどBPEの作者は特許取らない
ような事を言ってたらしいよ。

たしかBPEでは200種のByteが出てくるまで読みこんで(これを1ブロックとする)
その中から最多頻度のペアから順次残りの56種に割り当てて
圧縮していって圧縮が効かなくなるか256種使いきるまでやって
ペア表(軽く圧縮)・ブロックサイズ・圧縮データの組を順次出力してたと思う。

BPEが実際に使われた例は1しか知らないな。(除自作プログラム)
0075デフォルトの名無しさんNGNG
>>74
なるほど。そもそもブロックサイズは固定じゃなかったのか。
適当に前処理すれば圧縮率上がりそうな感じするね。
007657NGNG
こんな前処理を考えてみた。
 ブロックソーティング→ランレングス圧縮→BPE(Byte Pair Encoding)

※ランレングス圧縮を間にはさむのは、ブロックソートすると同値の連続が多くなり、
 それをそのままBPEするとその連続の個所で無駄にペアが消費されるから。

でも本当に圧縮率が上がるかどうかは不明(汗
0077デフォルトの名無しさんNGNG
RLE→BPE は太るよね。
それをやるなら普通に BWT→MTF→BPE なのかな。

BPEってもっと効率の良いブロックサイズを決定する方法がある気がする。
007857NGNG
>>77
>RLE→BPE は太るよね。

あ、RLEでビット単位の操作が入るようなのだとBPEは効きにくくなるな。
テキスト専用の圧縮にするなら0x00を長さ表示の開始コードに割り当てれば
実際の圧縮の場合は問題無いかも。
#それとも、まだ勘違いしてる?

>それをやるなら普通に BWT→MTF→BPE なのかな。

あと、ここ↓の2.14.15をみるとBWT→MTFよりMTF→BWTの方がいいみたい。
 http://www.ingnet.or.jp/~kojif/mu/comp/bwt.htm

>BPEってもっと効率の良いブロックサイズを決定する方法がある気がする。

このへんは良い方法思いつかないな。
以前自分で作った(拾ったコードを改変した)やつではデフォルトのパラメータ使ってたし。
0079デフォルトの名無しさんNGNG
> #それとも、まだ勘違いしてる?
BWT→RLEの時点で、前後のByte同士の関連は無くなってると思っただけです。

> あと、ここ↓の2.14.15をみるとBWT→MTFよりMTF→BWTの方がいいみたい。
「2.14.5 メモ」のこと?
そこに書いてある“MWT”ってのは何なのかわかんないけど、
BWT→MTFよりMTF→BWTの方がいいという意味では無いと思いますよ。

そこに書いてあるのは、BWT後のデータを効率よく圧縮する方法として、
まずMTFで0(ゼロ)を増やしてからZero-Runをかけると良いってな意味かと。
0080デフォルトの名無しさんNGNG
通常(未圧縮)の文書に MTF すると、サイズが大きくなることが多いよ。
0081デフォルトの名無しさんNGNG
>>71
現在、世界中のサーバに格納されているテキスト文書を
URIの形をインデックスの表現とすると考える。
このURIリストを圧縮することで、世界中の文書を圧縮できたと仮定する
これは、実際は間違いだが、下限値を記述することにはなる。

4億のサーバがあると仮定。各サーバが10文書持つと仮定。
URIの長さがIPアドレスの長さ4byteの2倍程度に圧縮できると仮定。

4億×10×8 = 29.8 GByte

結論: 18GBではとても無理だ!
0082デフォルトの名無しさんNGNG
>>81
まあ10年前なら18GBを楽に割りそう
ネット環境の発達が文書量のインフレを加速してますな
0083デフォルトの名無しさんNGNG
>>80
MTFかけただけならサイズは増えないだろ。
0084デフォルトの名無しさんNGNG
>>83
BWT->MTF->... よりも MTF->BWT->... の方が大きくなる場合が多いってことでは?
008557NGNG
>79
おれはMWTってのをBWTの誤植って解釈してた。
多分MTFのMとBWTのWTが混ざったんじゃないかな。

>84
Cで簡単なコード書いて試してみた。
Cのコード自身にそれぞれの変換をした結果をLZH(lh5)で圧縮して圧縮率を見たら
 無変換     41.1%
 BWT->MTF  14.1%
 MTF->BWT  19.2%
になった。

使い方
a.exe option input output
 option
  b BWT->MTF
  m MTF->BWT

制限
 入力ファイルは65536Byte以下

動作確認
 CYGWIN_98-4.10 名無し 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 unknown
 gcc version 2.95.3-5 (cygwin special)

コンパイル
 gcc bwt_mtf.c -o bwt_mtf -Wall -O6

※30分で書いたコードだから間違いあるかも。

↓ソースをLZH圧縮&uuencodeしたもの。
begin-base64 644 bwt_mtf.lzh
RQAtbGg1LU4CAACbBQAA1hRpPSAC4ApNCwABQnd0TXRmLmMbAEGgjeqRXkzC
AQBPDntdTMIBAJhjFUhMwgEFAAALyAAAAe5ju9Gmo75yQ9/7tJtbThwBMeDB
SR8CyMi+dkITS23rjql7ht6hlYfG7//u60AIrFY+Bi5gNG0271oTJrrlPmqX
KhXp1Z7tzr4IqUJ8vsjl1ojYju3DproD63bgB7/V8IQyd/fjyGu3N+UliErB
Evn41I+lvePcvxko2PSKTUsNqkShBEYOXaN9ojSdddKQoPQTgLJGawOfEP3k
JSaoqYCFHi4hBULEJKLEdwK1O8hMp/PQMSaSe3Jo65iRQYtLEbIvZFIMNdnz
eFhBnxgEaYLZei68xLzXEwTKpeRDgygjMxOPC9edCRFJQajTCHYUBoaf72vT
pjha7kh+VSqVtkI1hcP6qZk6wPmsqt0PQ/h9Uw6sgTQTBfDDzgR1fKulaKFz
f6tC4o9Z9GLvycaomCfhXKT8xCLf0iBoMyJOUKf+VpIWSzlb1JsnY2TuIZ+L
WMNzPNJp9MMISPhHSeL4ufN/KlE7kguM/oERfK/1Ctp3uxoDg0mB3LCPKd/L
ykbAIFJ/atlSWiJCXi4RU+UhnZawD02ujL2e33esIEJ2GCBVa/vmJwrg7DZ2
JkzxCOYMb9hvhdYIQuEaS7DpJi26MQx11Ux9TY9IFFcNE5SzmMGExbxlfbY1
hmk1qqO87uxz3IXJqeZGw0JswYiqOHbR2+AdzMQb+ccrQg7m0jLFJg/w1cBm
6H4SW2faIxtERa7+cQW0R/T5+ya0RlPNFXrX4NTiKyqBKl6h8ftovxp9bcob
E86h4yqHusqHNupQs9tPm7ci5c6fu78cGMFmDAAA
====
0086デフォルトの名無しさんNGNG
>>85
> おれはMWTってのをBWTの誤植って解釈してた。
大丈夫、大抵の奴はそう思うから。

MTF->BWTの逆にするとサイズが大きくなるのは有名な話だとおもてた。
少なくとも圧縮に関する研究や職業ならMTFがどういうものか知てるので。
0087デフォルトの名無しさんNGNG
>>86
有名な話だと思ってたってことはどっかに解説でもある?
検索してもBWT->MTFしかでてこない。
むしろ↑これが有効なことの方が有名な気がする。

MTFがどういうものかってのは…まんまの認識じゃあまいってことなのか
MTF程度にどうもこうもないと思うんだが(煽りとちゃいますよ)
0088デフォルトの名無しさんNGNG
圧縮について語るなら、たとえば
ttp://www.hn.is.uec.ac.jp/~arimura/compression_papers.html
にリストアップされてるような論文が理解できないとだめだよね。

ttp://www.ingnet.or.jp/~kojif/mu/comp/bwt.htm
あたりの入門用の解説を読んでもたいしたことは書いてない。
0089デフォルトの名無しさんNGNG
あらかじめ辞書データを登録しておけばなんとかなりそうだね。
本体はでかくなるが。
0090デフォルトの名無しさんNGNG
sage
0091デフォルトの名無しさんNGNG
おりじなるぅ
0092デフォルトの名無しさんNGNG
俺はどんなファイルでも圧縮できるソフト作ったぞ。
0093デフォルトの名無しさんNGNG
2ch圧縮プログラム用辞書には"DQN"、"オマエモナー"、"逝ってよし"などの単語を
登録すれば宜しいか。
0094デフォルトの名無しさんNGNG
>>92
それが本当なら今すぐ特許を取れ。
0095デフォルトの名無しさんNGNG
>>93
実際そんなに使われていない罠
009657NGNG
板毎に上位30スレぐらい取ってきて単語の頻度調べてハフマンコード表作って、
それを初期状態とした動的ハフマン使ったら結構圧縮きくかも。

# 眠い頭で考えたからツッコミ歓迎。
0097デフォルトの名無しさんNGNG
>>92
全てのファイルを1バイト以下にできるということだな?
0098デフォルトの名無しさんNGNG
>>92
すべてのファイルを1ビット未満にできると!?
0099デフォルトの名無しさんNGNG
>>98
1ビット未満ってことは0だな?


それはさておき,少し前にランダムデータに対して圧縮できるって話出てたけど
あれはどうなったんだろう。
0100デフォルトの名無しさんNGNG
>>99
1ビット未満は即0ではないのだが・・・まぁいいや。
再帰的に繰り返せば同じことだから。

>それはさておき,少し前にランダムデータに対して圧縮できるって話出てたけど
消えたのではなかろうか。
http://www.zeosync.com/ が404エラーになる。
0101デフォルトの名無しさんNGNG
>>100
無知で申し訳無いんだが,今のコンピュータでビットより高い分解能の単位は表現できるの?
(日本語おかしいかも知れんが許してくれ)
0102デフォルトの名無しさんNGNG
0.7 bit x 10 個 なら 7 bit だろ。
0103デフォルトの名無しさんNGNG
>>102
あ,要するに

7ビット中に10個のファイルの内容を格納する

という意味でつね?納得しますた。
0104デフォルトの名無しさんNGNG
>>103
まぁ算術符号なんかは実直にその概念を実装したものなわけだ。小数ビットの。
一方、ZLなんかも見た目は違うけど、実態は同じ。
0105デフォルトの名無しさんNGNG
>>96
誤解してるのかもしれないが、何故動的ハフマンを使う必要が・・。
別にストリームで圧縮するわけじゃないでしょ?
0106デフォルトの名無しさんNGNG
圧縮率は高いけど
もの凄く処理時間がかかって現段階では実用にならない
アルゴリズムってあるの?
0107デフォルトの名無しさんNGNG
>>106
全てのファイルが1〜十数バイトになるってのが昔あったよ(w
0108デフォルトの名無しさんNGNG
>>106
円周率圧縮
0109?NGNG
>>107
まじ?
それって、シャノンの情報理論とかに反してない?
0110デフォルトの名無しさんNGNG
>>109
 この宇宙で存在しうる全てのデータにインデックスを付けるとしても、せいぜい256bitもあれば十分です
は真でも、全てのデータを256bitに圧縮出来るというのは別の話です。

よく勘違いする人がいるので気をつけましょう
0111デフォルトの名無しさんNGNG
>>108
円周率の数列から目的のデータを検索して
その出現位置でデータを表すってこと?
0112デフォルトの名無しさんNGNG
おまえら、AAに特化ってんだから既存のAAを数百種類プログラムに内蔵させて
それとの差分のみを圧縮すればいいだろ?

シャノンの情報理論に基づきデータの偏りを均一化するんだ。
0113105NGNG
ああ、テーブルを持ちたくないってことか。すまぬ。
0114デフォルトの名無しさんNGNG
>>113
初期状態のハフマンコード表を作るって言ってるんで、それは違うんじゃない?
あくまで推測ですが、動的ハフマンなら出現頻度の偏りの変化に追従できるから
高圧縮になると考えているのではないかと思われ。
0115デフォルトの名無しさんNGNG
MTFがどういうものかってのは…まんまの認識じゃあまいってことなのか
MTF程度にどうもこうもないと思うんだが(煽りとちゃいますよ)
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
あげ
0216デフォルトの名無しさんNGNG
どんなの?良かったらすぽんさーになるよー

>>213
0217デフォルトの名無しさんNGNG
>>213
単語に分割して重み付けによって符号化する手法ですか?
それって、LZ77とLZ78まぜた方法LZFG,LZYGとは違うのですか?
(LZ77の一致位置を、単語の区切りにしか設定できない制限を置くというやつ?)
0218デフォルトの名無しさんNGNG
どんなデータでも1バイトに収まります。
0219学生NGNG
すべてのデータを1バイトで納めた人間は
天才をはるかに超えた存在だ
0220デフォルトの名無しさんNGNG
この40年で、人類が生みだしたデータは18エクサバイトになるらしい。
しかし、後18ヶ月もするとさらに18エクサバイト増えるらしい。

>>219
「天才をはるかに超えた存在」・・・つまり馬鹿ってことだな
0221デフォルトの名無しさんNGNG
>>218
但し、復元できません……ですか?
0222デフォルトの名無しさんNGNG
>>221 いや、
「あらゆるデータをまるで乱数のように復号しますので、
必要なデータを見つけるまで復号しつづけてください」
って感じだろ・・・
0223デフォルトの名無しさんNGNG
GCAで使われとるらしい
RangeEncoderってなんじゃらほい
0224デフォルトの名無しさんNGNG
>>223
マイクロ波で加熱する圧縮方法
0225デフォルトの名無しさんNGNG
>>224
なるほど、GCAってすごいですね。
だから糞重いのか
0226213 ◆2m/csy02kQ NGNG
圧縮したものを圧縮するとか、
むちゃくちゃ圧縮とかいう話ではありません。
むしろ圧縮率は極端にわるいです。
ただハフマンかブロックソーティングと組み合わせれば
使いものになるかもしれません。
私は科学畑の人間でないので
既出の概念かどうかをここで確認させてもらおうという話です。
0227デフォルトの名無しさんNGNG
>>226
圧縮の基礎だけでも勉強しておいた方が良い。
圧縮は、「圧縮 = モデル化 + 確率統計(確率推定) + 符号化」で構成される。
算術符号やHuffman符号は、(それ単体が「圧縮」を構成するものだが)符号化。
モデルはn次マルコフ連鎖とか、実装で言えばPPMやMTF、ブロックソーティングも該当する。
確率推定はモデル化や符号化に統合されていることが多いが、
次に a の出る確率は 1/2 である、と計算すること。

>>226の何かを X としよう。>>226が考えているのは、

「X + 符号化」あるいは「モデル化 + X」となる。
上記の「圧縮」の概念図に照らし合わせると、Xは確率推定を含む部分に相当する、
と推測される。

・・・で、>>226のアイデアって何?
0228デフォルトの名無しさんNGNG
>>223
rangecoder は算術符号の一種で、
Jonesの考案した整数による算術符号を改善したものに相当する・・・のか?

参考にしたところ:
ttp://www.compressconsult.com/rangecoder/
ttp://www.tomozo.ne.jp/yamazaki/download/doc_basic_compression.htm#RangeCoder
ttp://www.isl.cs.gunma-u.ac.jp/~shingo/labo/algo.html
0229デフォルトの名無しさんNGNG
ウワーン
0230デフォルトの名無しさんNGNG
先生
暗記しておくってのはダメですか?
0231デフォルトの名無しさんNGNG
不可逆圧縮でよければ

意見、賛成、反対、AA、get、煽り、荒らし、長文、吉野家

くらいに圧縮できるな。

例:
1 名前:デフォルトの名無しさん 投稿日:01/01/01 01:01
意見
2 名前:デフォルトの名無しさん 投稿日:01/01/01 01:02
2get
3 名前:デフォルトの名無しさん 投稿日:01/01/01 01:03
>>1 反対
意見
4 名前:デフォルトの名無しさん 投稿日:01/01/01 01:04
>>3 荒らし

こんな感じじゃだめか?
0232デフォルトの名無しさんNGNG
不可逆でいいんならレスを自動生成しろよ。データは1のレスだけにできるぜw
0233デフォルトの名無しさんNGNG
どうして2chは、こうもアフォばかりが集うのか…。
まぁ、アフォを社会から隔離しておくにはちょうど良いシステムかもな。

おまいら、もっと学習しる!!データ圧縮に関してあまりにも無知すぎる。
まずは、ぐぐれ!
0234デフォルトの名無しさんNGNG
レスを茶筅(or案山子)で分割
↓
使用頻度の高い単語を文字コードで使われていないコードに置換
※例. 逝って→0x7743(コードは適当)
↓
2chのスレを解析して作った頻度表を初期状態として
動的レンジコーダで圧縮。
↓
(゜Д゜)ウー
0235デフォルトの名無しさんNGNG
>>234
それはLZ77+78から派生するアルゴリズムとか、
7bit-ASCII(0-127)の単語を(128-255)に割り当てる手法などで、
すでに提案されている。
0236デフォルトの名無しさんNGNG
>>234
言葉遣いが滅茶苦茶なので、形態素解析が満足に出来ない罠。
「うつだしのう」ひとつとっても、変換がばらばらなので統計情報も偏らない・・・
0237デフォルトの名無しさんNGNG
>>212
>まだ,勉強してないからあれだけど
>「エントロピーとは、理論的に達成可能な圧縮限界のこと。」
>なんていわれると激しく違和感を感じる.

なぜ? まさかお前はエントロピー以上に圧縮できるとでも主張する気か?
0238デフォルトの名無しさんNGNG
思うに計算機の0101の概念を作った人が
言ってる理論を覆すのは無理と思われ。
0239デフォルトの名無しさんNGNG
>>237
エントロピーは無記憶情報源モデルとして求めた値なので
それ以外のモデルを使って圧縮すればエントロピー以上に圧縮できる。
0240しぃ豆 ◆hGFTP/i/.A NGNG
山奥のしぃ先生を見てると
ランレングスも効きそうな気がする。
0241デフォルトの名無しさんNGNG
>>239
お前もうちょっと勉強してから発言しろよな。
無記憶情報源以外のモデルを使ったら、そのモデルの上での
エントロピーがあるだろうが。
0242デフォルトの名無しさんNGNG
某大学のデンパ中間発表
ttp://isweb43.infoseek.co.jp/art/dempzone/up/2002101123025890.pdf
0243デフォルトの名無しさんNGNG
やめろってのw
0244デフォルトの名無しさんNGNG
>>240
ここでそのスレタイを聞くとは
0245デフォルトの名無しさんNGNG
>>237
うまく言えないんだが, 212 は例えば 205 の
>エントロピーを達成するような符号を
のような言葉の使い方に違和感を覚えてるんだと思う.

俺も知りたいんだけど, こういう言い方ってするんだっけ ?
0246デフォルトの名無しさんNGNG
>245
するよ。
0247デフォルトの名無しさんNGNG
>>245
俺の周辺だけ?と思ったのでぐぐってみた。「エントロピー 達成する 符号」
あ、大丈夫そうだ。
誤り率とか、冗長度についても「〜を達成する符号」ということが確認できた。
0248デフォルトの名無しさんNGNG
すると未知のモデルを発明(発見?)すれば、既知のモデルによるエントロピーを上回って圧縮できるのか。
究極のモデルを使えばどんなデータも0bitに圧縮できるな。
0249デフォルトの名無しさんNGNG
>>233
いうだけいって、何も説明できない
アホの大将

こいつ以上のアホは、そうは居ない
0250デフォルトの名無しさんNGNG
どうして2chは、こうもアフォばかりが集うのか…っ…!
まぁ、アフォを社会から隔離しておくにはちょうど良いシステムかもなっ…!

おまいら、もっと…!もっと…!学習しる!!データ圧縮に関してあまりにも無知すぎるっ…!
まずは、ぐぐれ!
0251デフォルトの名無しさんNGNG
つーかさ、いくらでも小さく圧縮することは可能なんだよ。問題は

ち ゃ ん と 元 に 戻 せ る か ど う か

だということに気づけ。そうすれば、元に戻せるためには
もともと持っていた情報量(エントロピー)より小さくできない
こともわかるだろ。
0252213 ◆2m/csy02kQ NGNG
かなり中途半端ですが
手元のエンコーダー、デコーダーでデータの整合性がとれたので公開します。
わからないところがあれば説明します。
http://www61.tok2.com/home/jnc/

サンプルのjnc.plはまだ4Kバイトを越えたファイルを処理できません。
使い方は、
jnc.pl -e filename エンコード->*.jncファイル生成
jnc.pl -d *.jnc デコード ->D*ファイル生成

エラー吐きまくりますが処理に問題はないはずです。
0253213 ◆2m/csy02kQ NGNG
ぶっちゃげて言うと
8バイト(64bit)のかたまりを、
65bit/59bit/52bit/45bit/38bit/31bit/24bit/17bit
にしてしまおう、ということです。
0254デフォルトの名無しさんNGNG
>>213
ついでにこのスレを圧縮した場合の圧縮率を教えて please
0255デフォルトの名無しさんNGNG
>>213
8byte分取り出して、各bitの0/1が全8byteで一致した列を省く
というところまでは分かったが、その後が分からん

あああ今分かった。イメージ図と説明のところのデータって違うのか...
0256213 ◆2m/csy02kQ NGNG
>>255
そうです、説明のところは
#!/usr/b (64bit)をどのように59bitに圧縮してるかの説明です。
ちょっとWEBぺージはいいかげんなのでそのうち書き直します。
0257デフォルトの名無しさんNGNG
全8byteで一致しないとまったく圧縮されないというのが痛いぞ
ASCII文字列かUTF16文字列かのっぺりとした画像ぐらいしか思いつかない
0258213 ◆2m/csy02kQ NGNG
そうですね、
ただ8バイトのうち縦2列のビット[16bit]がそろえば圧縮はできるんですが。
圧縮できる8バイトブロックと、圧縮できない8バイトブロック
にバッファを分けて、それぞれにハフマンなりなんなりをかける、、、
とかまぁいろいろ考えているのですが。
0259デフォルトの名無しさんNGNG
>>213いくつか気になった部分のひとつ。本題じゃないところばかりだけど
>これまでのバイト(単語)レベルでの圧縮と違いビットレベルでの圧縮

ほとんどの圧縮手法がバイト入力にしているのは、
別に手法としてバイト入力でなくちゃいかん、というわけではなく、
単にプログラム上の処理の面倒さや、動作速度の向上が理由といえる。
論理的な理由としては、アルファベット拡大を行うと最適になるからということもある。

事実、論文ではバイナリ入力で説明し、実装ではバイト入力というのが普通。
0260213 ◆2m/csy02kQ NGNG
テストプログラムはエンコード部分が間違ってるみたいです
1010Byteを越えたファイルでは処理が失敗します。
0261デフォルトの名無しさんNGNG
これ…だめだめじゃない?
0262デフォルトの名無しさんNGNG
>261
最初からうまくいくわけないYO!

みなさんがんば
0263デフォルトの名無しさんNGNG
新しい圧縮方式は・・・

1) 圧縮率が既存のものより格段に優れている  例)PPM
2) 理論的に面白い  例)CTW
3) 新しい概念に基づいている  例)ブロックソート法、文法による圧縮

のどれかが成立しないと、評価されないよ。
たとえば、○○法を改良して圧縮率を向上させました、というのは認められないことが多い。
これから圧縮を考える人は注意してね。
0264オレは天才だと分かりましたNGNG
1バイトのデータを圧縮する場合は、
1バイトは、256通りのデータ表現が限度だから、
どっかに256通りのデータを記録しておけば、
1バイトの圧縮結果のデータサイズは、
256通りあるデータの、どれかを示すだけでよいから、
サイズは、1ビットから8ビットになる。

よって、
4Gバイトのデータを圧縮する場合は、
4Gバイトは、2の8×4G乗 通りのデータ表現が限度だから、
どっかに 2の8×4G乗 通りのデータを記録しておけば、
4Gバイトの圧縮結果のデータサイズは、
2の8×4G乗 通りあるデータの、どれかを示すだけでよいから、
サイズは、1ビットから 2の8×4G乗バイト になる。
0265デフォルトの名無しさんNGNG
>>264
で、4G+1バイトのデータはどうやって圧縮すんの?
0266オレは天才だと分かりましたNGNG
この手法だと、どんなサイズのデータ(宇宙大のデータ)であっても、
圧縮結果は、1ビットになる可能性がある。
この素晴らしさは、たとえようがなく、
DQNには分かりようが無いのが残念だが、
我等が国王は、大いに喜び給うであろうことは、断言して誤りがないのである。
0267デフォルトの名無しさんNGNG
概ねハフマンと同じじゃん。
0268デフォルトの名無しさんNGNG
まぁなんか書いてくれるとたすかるよ。
ちょっと俺にはわからんが。
みなさんは圧縮するテストファイルってのは何つかってます?
圧縮してないファイルってBMPかWAVかTXTぐらいしか思い浮かびませんが。
0269デフォルトの名無しさんNGNG
どっかに 2の8×4G乗 通りのデータを記録しておかなければいけないぶんハフマンよりはるかに劣る
0270デフォルトの名無しさんNGNG
で、2の8×4G乗 通りのデータの大きさは具体的に
どれぐらいになるんだ?
027157NGNG
>268
とりあえず俺の使った事のあるテストデータ。

・その圧縮ソフトのソースコード(@>>85)
・ゲームの吸出し画像(@自作画像用非可逆圧縮形式開発時)
0272デフォルトの名無しさんNGNG
>>268
普通は Calgary とか Canterbury のコーパスを使う。
画像や音声の場合は、別のセットを使うこともある。
0273デフォルトの名無しさんNGNG
いっそ元のファイルサイズより大きくなるつーのはどうだい?
0274デフォルトの名無しさんNGNG
>>273
ファイルの先頭に非圧縮であることを示すフラグ「0x00」を付加する圧縮?法。
もし完全復号可能であることを求めるなら、もう少し工夫が必要だが。
0275デフォルトの名無しさんNGNG
>>264=266
それって正しいの?だとしたら、ノーベル賞ものだよ。
0276オレは天才だと分かりましたNGNG
>270
だいたい785億Gバイトぐらいである。

現在の日本のHD出荷量を、年間4000万台として、
平均記憶容量を、30Gとすれば、
4000万×30G=12億G
だから、現在のペースでHDを出荷していけば、
785÷12で、66年後には、私の手法を実験する環境が日本に整う。
が、既に外国の政府から、投資を受ける手はずになっておる。
よって、研究はそこの機関で行なう。
日本は、いくら催促しても反応がなく、取り合ってもらえそうにない。
0277デフォルトの名無しさんNGNG
>>276
>30Gとすれば・・・
一昔前ですね。
0278オレは天才だと分かりましたNGNG
>277
そうである。
0279デフォルトの名無しさんNGNG
>>270
それはURI表現と何が違うのか、どういう利点があるのかと、小一時間…

>>276
データそのものが指数関数的に増え、今後1年間で、
今までの50年分のデータに匹敵する量のデータが生成されそうです。
したがって、実験に供給可能なHDD容量はそんなにありません。
つーか、「〜億GB」は気持ち悪い表現だと思う…
0280デフォルトの名無しさんNGNG
>>275
情報理論では、ノーベル賞が与えられることはありません。
あるとしたらチューリング賞。
0281オレは天才だと分かりましたNGNG
>データそのものが指数関数的に増え、今後1年間で、
>今までの50年分のデータに匹敵する量のデータが生成されそうです。
>したがって、実験に供給可能なHDD容量はそんなにありません。
日本はこれだから困る。
可能性を追求しようとするというのは、そういった無理な実験設置も惜しみなく
建設することなのだ。
この辺が諸国の精神と異なる。
この精神は、お国柄の違いというものではなく、理論的解釈能力レベルでの問題である。
そして、日本にその能力が欠けているのは、ざっと見たところ
精神未熟国家政府であるとしか言えない。
0282デフォルトの名無しさんNGNG
281のような優秀な頭脳が国外に流出するのは遺憾の極みである。
だが本人のたっての希望とあらば止める必要もないだろう。
幸い281を国外に輸送するのに妨げとなる条約はない。今日にでも梱包すべきだろう。
0283デフォルトの名無しさんNGNG
ここで愚痴言わないで
首相にメール送れ
0284デフォルトの名無しさんNGNG
>>281
日本はデータ作ってなんぼの国ですから、
データの生成を停めると、国が滅びます。

ちなみに>>279のはなしは、全世界規模の話だと思う。
0285デフォルトの名無しさんNGNG
根本的に間違っている部分に誰も突っ込まないのは、ねたに遠慮してるから?
4GBのインデックスで記録できるデータの種類は、(2^8)*4Gではなく2^(8*4G)通りである。
そしてもし、(2^8)*4G だとしても、必要容量は 2^((2^8)*4G) bits だ。
これは、66年後でも実現不可能な容量だ。
それどころか、宇宙の全粒子を使っても不可能だろう。

そもそもこれもおかしい。
>256通りあるデータの、どれかを示すだけでよいから、
>サイズは、1ビットから8ビットになる。
256通りのパターンを明示するのに必要なビット数は、
256という前提知識があっても1ビットから8ビットは不可能。
特に上限を8ビットにする場合は、256通りのどれひとつも8ビット未満のビット数で符号化することは不可能。
0286デフォルトの名無しさんNGNG
自演を自演と見抜けない人は(略
0287オレは天才だと分かりましたNGNG
>285
>根本的に間違っている部分に誰も突っ込まないのは、ねたに遠慮してるから?
>4GBのインデックスで記録できるデータの種類は、(2^8)*4Gではなく2^(8*4G)通りである。
そうである。
私の書いた
>4Gバイトは、2の8×4G乗 通りのデータ表現が限度だから、
これは、2^(8*4G)の意味である。

>そしてもし、(2^8)*4G だとしても、必要容量は 2^((2^8)*4G) bits だ。
よって、これは意味の無い文である。

>これは、66年後でも実現不可能な容量だ。
否、実現可能である。
>それどころか、宇宙の全粒子を使っても不可能だろう。
その見解は、誤りである。

>そもそもこれもおかしい。
>>256通りあるデータの、どれかを示すだけでよいから、
>>サイズは、1ビットから8ビットになる。
>256通りのパターンを明示するのに必要なビット数は、
>256という前提知識があっても1ビットから8ビットは不可能。
この見解は、誤りである。最少は、1ビットで可能ある。

>特に上限を8ビットにする場合は、256通りのどれひとつも8ビット未満のビット数で符号化することは不可能。
私の論文を、読んでいないとしか解釈できない、見解である。
が、勘違いを予想すると、
285よ、では私の論じた圧縮方法で、8バイトのデータを圧縮する場合、
最も圧縮できた場合は何ビットのデータに圧縮できるか、
また、最も圧縮できない場合は、何ビットのデータになるか。
これを、答えてみなさい。
0288デフォルトの名無しさんNGNG
んで?
それはURIとはどう違うんだ?
0289デフォルトの名無しさんNGNG
  _、_
(; ,_ノ`)
0290デフォルトの名無しさんNGNG
2^(8*4G)
1の後ろに0が400000個くらいつきそう

参考:無料大数 = 1の後ろに0が64個
0291デフォルトの名無しさんNGNG
>>287
>>特に上限を8ビットにする場合は、256通りのどれひとつも8ビット未満の
>ビット数で符号化することは不可能。
>私の論文を、読んでいないとしか解釈できない、見解である。

285じゃないんですが、論文ってどれでしょうか。
ぜひ読んでみたいのですが。
0292291NGNG
>>287
もう一つ教えて下さい。
785億GB というのはどうやって算出された値なのでしょうか。
2^(8*4G)通りの全てのデータを表現するためには、2^(2^(8*4G))ビットの容量が必要です。
しかしここから 2^(2^(8*4G))/8 をどう考えても785億GBにできません。
それとも上の前提が間違っているのでしょうか。

正しい数式を教えて下さい。お願いします。
0293デフォルトの名無しさんNGNG
>>291
自称天才の主張する圧縮は確かに可能だよ

16進数を2進数で表して、上位桁の0を消せば
0x01 = 1
0x02 = 10
0x80 = 10000000

1ビット〜8ビットに圧縮できる。
0294デフォルトの名無しさんNGNG
>>293
んでそれは可逆じゃないよな
0295デフォルトの名無しさんNGNG
>>294
元のデータサイズが”初めからわかっていれば”可逆

2バイトデータなら
0x0001 = 1 = 1バイトの 0x01 の圧縮結果と同じ
0x0002 = 10
0x0080 = 10000000
0x8000 = 1000000000000000

だから自称天才の圧縮技術は 4G バイトぴったりのデータは(ごくわずかに)圧縮できるけど、
4G+1バイトのデータは圧縮できない。
しかも自称天才はこれを圧縮にではなく識別子の生成に利用しようと言うとんでもなくばかげたことを言っているらしい。
0296291NGNG
>>294
prefix-freeじゃないコードを生成するんですね。
それなら>>293も知ってました。
インデックスが2つ並んだ場合でも復号するものだとばかり思っていました。
0297オレは天才だと分かりましたNGNG
>285じゃないんですが、論文ってどれでしょうか。
>ぜひ読んでみたいのですが。
264である。
0298オレは天才だと分かりましたNGNG
>もう一つ教えて下さい。
>785億GB というのはどうやって算出された値なのでしょうか。
その場で、適当に概算である。
そのときの、思考はこうである。
「データサイズは、ビット数に比例して増えると見て、
 そのデータを2進数で全て紙に記述すると、
 0と1で産め尽くした直角三角形ができる。
 この直角三角形は、感覚的に正方形の1/2の面積である。
 よって、正方形の面積が分かれば、直角三角形の面積は分かる。
 正方形の面積は、(2^(8*4G))×4Gであるから、
 本題となる答えは、(2^(8*4G))×4G/2で求まる。」

まず、2の32G乗を求めた。
2の32G乗を行なった場合、0は幾つつくかを考えた。
2を乗算する場合、
1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,6556,10万
となる。この数列を見ると、ケタ数が上がるに要する乗算回数は、
4、3、3、4、3,3
となってるので、平均値としては、(4+3+3)/2=5で、
5回の乗算を行なうと、1ケタ上がる、つまり0が1個増えるとなる。
ということは、2の32G乗で、0が幾つ付くかというと、
32G/5=27487790694.4個
次に、数値は幾になるかというと、小数点以下が4なので、
0があと一つ付くには、0.6必要となるから、
これは10進数とみていいと判断し、
先頭の数値は、4と予測する。
ということで、指数表示を用いて表すと、
4×10^27487790694
とする。
785億は、適当に暗算しただけであり、正確ではないのである。
0299291NGNG
>>298

2^10 ≒ 10^3 を使うと簡単に概算できますよ。
2^(8*4G) ≒ 10^(10.7 * 10^9) = 10^107000000000
0300オレは天才だと分かりましたNGNG
>「データサイズは、ビット数に比例して増えると見て、
実際には、異なる。
0301デフォルトの名無しさんNGNG
なんか天進法の 逝かれた方と似たような事言ってるな

ttp://www.crt.or.jp/~kokochi/hen_semi.htm
0302デフォルトの名無しさんNGNG
仏教でよくでてくるデカい値っていくつだっけ
0303オレは天才だと分かりましたNGNG
>2^10 ≒ 10^3 を使うと簡単に概算できますよ。
この定理は知らない。
そして、
>2^(8*4G) ≒ 10^(10.7 * 10^9) = 10^107000000000
どうして、こうなるのかも知らない。

>仏教でよくでてくるデカい値っていくつだっけ
なゆたであるが、本題の方が大きい。
0304オレは天才だと分かりましたNGNG
正確に考えると、
2^(8*4G)通りの全てのデータを記録するのに必要な容量は、以下の式と文で求まる。

「2^a × (a+1)
 このうち、aは、0から32Gまで変化し、それは加算してく。」
 
答えの単位は、ビットである。
0305デフォルトの名無しさんNGNG
>>302
無量大数(10^68)が日本で知られる値だが
マイナーなものだと非不可説不可説(10^121)なんてのもある。
0306デフォルトの名無しさんNGNG
ここ勉強になりますね。
0307デフォルトの名無しさんNGNG
お経だな
0308デフォルトの名無しさんNGNG
google には勝てまい。
0309デフォルトの名無しさんNGNG
おまいら全員アフォでつか?
0310291NGNG
ところで、当初からの疑問だったのですが、
8ビットで圧縮(索引付け)できる256通りのデータって、何ですか?????
それこそインデックスに等しい00からffの256パターンではないですか????

たとえば、3ビットで圧縮できる8通りのデータって、
000 001 010 011 100 101 110 111
の8種類ですが、これを3ビットの索引で表現しても、
全く圧縮されたことにはなりませんよね。
まあ始めからわかっていたことですがw

ちなみに8ビットで表現可能なデータが n>8 ビットであると主張するつもりなら、
そのnビットのデータの種類は2^nで、明らかに256より大きいため、
8ビットではすべてを表現できませんので、あしからず。


>>2^10 ≒ 10^3 を使うと簡単に概算できますよ。
>この定理は知らない。
定理じゃなくて、2^10 = 1024, 10^3 = 1000 という事実ですが。
しかも 10^3 の方が小さくなるため、4×10^27487790694
よりもはるかに小さく概算されるのですが、
それでも、
>4×10^27487790694
は、
765億GB どころか、765億GBの52×10^1616928864倍よりも大きく、
66年で765億GB増えると仮定しても、この宇宙が生まれてから今日経ったとしても達成できず、
1秒間に765億GB増えるとしても、7×10^1616928855年以上かかります。
0311291NGNG
あ、ミスった。

52×10^1616928864, 7×10^1616928855
は、それぞれビットなので、/8 して比較してください。影響ないですが。
0312オレは天才だと分かりましたNGNG
>295
>だから自称天才の圧縮技術は 4G バイトぴったりのデータは(ごくわずかに)圧縮できるけど、
>4G+1バイトのデータは圧縮できない。
否。誤りである。
宇宙大のデータであろうとも、1ビットに圧縮できる可能性を持つと既に説いてるではないか。
0313デフォルトの名無しさんNGNG
>>312
たとえば、10個データがあったとして、1ビットでどうやって
選び出すのよ?
0314デフォルトの名無しさんNGNG
アプリケーションを宇宙全体と考えれば、どんなデータでも0ビットで圧縮
できるぞ。
0315オレは天才だと分かりましたNGNG
>313
10個のデータのうち、そのときに必要となるデータを0。
それ以外のものは1から始まる多少長いビットとする。
同様に宇宙大のデータでも任意のデータを1ビットに圧縮できる。
どうだ、みごとな圧縮だろう。
0316オレは天才だと分かりましたNGNG
>の8種類ですが、これを3ビットの索引で表現しても、
>全く圧縮されたことにはなりませんよね。
>まあ始めからわかっていたことですがw

293を見なさい

>ちなみに8ビットで表現可能なデータが n>8 ビットであると主張するつもりなら、
>そのnビットのデータの種類は2^nで、明らかに256より大きいため、
>8ビットではすべてを表現できませんので、あしからず。

8ビットで表現できるデータの種類は、256個よりも多いと言ってるのか?

>定理じゃなくて、2^10 = 1024, 10^3 = 1000 という事実ですが。
数学的に事実であることは、承知している。

>>4×10^27487790694
>は、
これは、概算をした場合の途中の数値であって、本題の答えではない。
また、概算による答えであっても、
>765億GB どころか、765億GBの52×10^1616928864倍よりも大きく、
この位の見当には、なるであろう。

>66年で765億GB増えると仮定しても、この宇宙が生まれてから今日経ったとしても達成できず、
こういったことを言うのは、やめなさい。
0317オレは天才だと分かりましたNGNG
315は、偽者である。
0318デフォルトの名無しさんNGNG
>こういったことを言うのは、やめなさい。
かわいい♪
0319291NGNG
>8ビットで表現できるデータの種類は、256個よりも多いと言ってるのか?

違う違う。
8ビットで表現できるデータは、>>293の方法を用いても、圧縮できないことを言っている。
たとえば、圧縮データ「1」があったとき、
それが「もともと8ビットの索引であった」ことを知らなければ一意に復号できない。
この「もともと8ビット」を圧縮データに追加すると、
「8ビットを超える」ということ。
0320オレは天才だと分かりましたNGNG
>319
>それが「もともと8ビットの索引であった」ことを知らなければ一意に復号できない。
>この「もともと8ビット」を圧縮データに追加すると、
>「8ビットを超える」ということ。
私の手法は偉大なので、そんなせせこましいことをしなくても圧縮できるのだ。

>315は、偽者である。
そういうことはやめなさい。
0321291NGNG
飽きたので、寝ます。
理論ができたなら、論文に書いて、
情報処理学会、電子情報通信学会、情報理論とその応用学会、
のどれかに投稿することをお勧めする。
データ圧縮では日本の三大学会だから。

日本では理解されないというなら、IEEE か ACM あたりが圧縮のメジャー。
0322デフォルトの名無しさんNGNG
要するに、
すべての通りの異なるデータを用意した場合、
あるひとつのデータを指す索引は、ひとつの
データと同じ大きさを持つ。
ってことだな。
0323デフォルトの名無しさんNGNG
>>
0324デフォルトの名無しさんNGNG
>>322
前に1/100圧縮がこの板で話題になったとき、
「アカシックレコードの索引を圧縮データとする」
というのがあった。
今回の理屈と全く同じ。結論も同じ。
「索引のサイズが圧縮対象と同じサイズで意味が無い」
0325デフォルトの名無しさんNGNG
確率をつかえば、作成データ数と索引サイズを小さくできるのでは?
0326デフォルトの名無しさんNGNG
>>325
それ、普通の圧縮。
0327オレは天才だと分かりましたNGNG
そろそろ終りにする。付き合った諸君らに感謝する。

8ビットのデータを圧縮した場合、
そのデータには、識別子を付ける。

1ビットで表現した0が、00000000
1ビットで表現した1が、00000001
2ビットで表現した01が、00000010
2ビットで表現した10が、00000011

といった具合。
で、一番最後では、

8ビットで表現した11111111が、11111111

となり、識別子が8ビットになってからは、データサイズは減少しない。
平均圧縮効率は、50%になる。

が、言うまでもないがこの圧縮方法(っていうのだろうか)は、
あらかじめ全データパターンの記憶領域を必要とするので、
全然現実的ではなく、バカバカしい。
そして、そんなに多くの記憶領域の確保が可能ならば、
圧縮という技術すら必要なくなり、発想としてでないだろう。

すなわち、これ、「物の追求の空しさ」である。
物を追求しても、結果なる製品に真の価値(マジレスのような価値)は伴わないのである。
ただし、時と場合により、製品は価値を持つ。
0328オレは天才だと分かりましたNGNG
最後に言っておく。
全データパターンはプログラムで簡単に生成できるので、非常に有効だ。
だから、私は自分を天才であると言っているのだ。

誰も理解できない(>>293はおしい)このスレには用は無い。
が、結局天才は孤独だったのだ。
0329デフォルトの名無しさんNGNG
>>327
>8ビットのデータを圧縮した場合、
>そのデータには、識別子を付ける。

>となり、識別子が8ビットになってからは、データサイズは減少しない。
>平均圧縮効率は、50%になる。

だから、その圧縮されたデータの元のサイズが8ビットだったのはどうやってわかるの?
元サイズが8ビットだった「1」と、32ビット(4GB)だった「1」はどう区別するの?
0330デフォルトの名無しさんNGNG
とりあえず、天才圧縮法は終わりな。

つーか、ム板に特化した圧縮法ならいいのでは?
プログラミングだの、データだのを変える。
0331オレは天才だと分かりましたNGNG
>327
訂正
誤:2ビットで表現した10が、00000011
正:2ビットで表現した11が、00000011

もう、どうでもいいんだろうけど。
0332デフォルトの名無しさんNGNG
>>330
やあ、建設的ですな。
とりあえず、AA圧縮法の続きを話しましょうか。
0333デフォルトの名無しさんNGNG
>>331
つーか、圧縮して無いじゃん。
要するに、いんたーねっとでhttp://untara.kantara.2ch/tensai.zipって
のをクリックすると、ファイルをダウンロードするよね。
つまり、http〜からの文字列だけ見ると、あたかも、数十バイト
しかないように見える。
ってことでしょ。つーか。サーバ側で圧縮できるようにしてくれ。
0334デフォルトの名無しさんNGNG
>>333
それはすでに>>279で指摘されている。
もうやめましょう。>>291が>>310の・・・欄で言ったとおりだから。
0335オレは天才だと分かりましたNGNG
>だから、その圧縮されたデータの元のサイズが8ビットだったのはどうやってわかるの?
>元サイズが8ビットだった「1」と、32ビット(4GB)だった「1」はどう区別するの?
そうゆう事を言ってたワケ。
私の言ってた圧縮方法は、固定サイズのデータを対象となってるな。

可変サイズのデータを用いた場合、
4G以内で表現できるデータ個数は、、、。格段に増える。
4ビットの場合で、
0
00
000
0000
1
10
100
1000
0     (がいしゅつ)
01
010
0100
1     (がいしゅつ)
11
110
1100
0     (がいしゅつ)
00    (がいしゅつ)
001
0010
とかってなる。
これも、1つごとのデータに識別子を付けるから、圧縮効率は50%より悪化。
0336デフォルトの名無しさんNGNG
>>335
理論はわかったから、早く作ってくれ。
0337オレは天才だと分かりましたNGNG
>336
作っても意味ない。
0338オレは天才だと分かりましたNGNG
誰も理解できなさそうだし、国王も別のことにご注視されておられるし。
0339デフォルトの名無しさんNGNG
>>338
国王って・・・そもそも日本じゃないってことかw
0340デフォルトの名無しさんNGNG
プログラムでデータを作るとか言ってる奴も高卒DQN

ある情報を吐き出すプログラムを作った場合
その情報のパターンを記述するのに、パターンと同じ情報量が必要だろヴォケ

8ビットを他の8ビットのインデックスで持つと言ってるのとかわらねぇんだよアフォ

そんなこともわからないのにプログラムなんかするな。邪魔だカス
0341デフォルトの名無しさんNGNG
やはり最強はグーゴルコンプレックスとかいまさらなことを言ってみるテスト
googol=10^100
グーゴルコンプレックス=10^googol
0342デフォルトの名無しさんNGNG
熱雑音を拾うとかしないとデータを作るのはむつかしいねえ
0343デフォルトの名無しさんNGNG
糞スレを糞スレと見抜くエンジンを組み込んで、糞スレを無視して不可逆圧縮。これ最強。
0344オレは天才だと分かりましたNGNG
>糞スレを糞スレと見抜くエンジンを組み込んで、糞スレを無視して不可逆圧縮。これ最強。
しかし、そのエンジンは自分で作る必要がある。
自分にとって糞スレか否かの判断は、自分にしか分からないからだ。
0345デフォルトの名無しさんNGNG
激しくウザイ>オレ天
0346オレは天才だと分かりましたNGNG
>340
>ある情報を吐き出すプログラムを作った場合
>その情報のパターンを記述するのに、パターンと同じ情報量が必要だろヴォケ

それは誤りである。
一定の規則で数値が並んだ場合、その規則をコードで表現すれば良いのだ。
従って、
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
 最も表現情報の少ない規則 を表すコードを、生成するプログラム
 こそが、圧縮サイズにおいては、最適なる圧縮プログラムである。
                   オレ天 2002 10/16
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

ここにおいて、私が究極の定理を示したことにより、
究極なる圧縮方法も、明らかとなる。私に感謝せよ。
0347デフォルトの名無しさんNGNG
グーグルコンプレックス … グーグル使わないと不安に感じる病気
0348デフォルトの名無しさんNGNG
>>346
>一定の規則で数値が並んだ場合、その規則をコードで表現
だから、それは情報理論の基礎中の基礎でしょう。

>>340の表現がまずいのかもしれないけど、
>その情報のパターンを記述するのに、パターンと同じ情報量が必要
は、無ひずみデータ圧縮では「当然」の記述。
無ひずみ圧縮とは、情報量を変えずに見た目の長さを短くすること、です。
情報量が変化するのは有ひずみ圧縮と呼ばれます。

なお、>プログラムでデータを作るとか言ってる
については、文法による圧縮に代表される手法が該当し、
この「プログラム」に必要な表現の長さが、元のデータよりも短くなる
ような表現が存在するならば、圧縮が行われたことになります。

たとえば、001001100 -> S->AAB, A->C1, B->1C, C->00
という文法(データ生成プログラム)に変換し、その文法を符号化する訳です。
代表的なものにMPMなどがあります。

もしかして>>340の記述は>>328についていったのかもしれないが、
この場合は、数え上げ符号に相当します。
数え上げ符号は Cover らによって考案された手法で、
オレ天圧縮同様、インデックスを得てそれを符号化する手法ですが、
理論的な証明が行われている、何ら問題ない手法です。
復号の際に、インデックス「n番目」をプログラムで記号列に復号します。
0349デフォルトの名無しさんNGNG
このスレはお馬鹿な人たちの発言を楽しむもので、
>>348さんのように圧縮に詳しい人が出てくると面白みが減る、と言ってみるテスト。
0350オレは天才だと分かりましたNGNG
>>>346
>>一定の規則で数値が並んだ場合、その規則をコードで表現
>だから、それは情報理論の基礎中の基礎でしょう。
否。基礎は、連続データの個数表現と言えよう。
また、データから有効となる規則を見出すのは、
圧縮技法では、中以上の部類と言えよう。

>>>340の表現がまずいのかもしれないけど、
>>その情報のパターンを記述するのに、パターンと同じ情報量が必要
>は、無ひずみデータ圧縮では「当然」の記述。
>無ひずみ圧縮とは、情報量を変えずに見た目の長さを短くすること、です。
情報量が変わらなければ、圧縮とは言わない。
340は、どうなってしまったのか。

>情報量が変化するのは有ひずみ圧縮と呼ばれます。
それは、単なる”圧縮”のことである。
ひずみ がとうかしたのか。

>なお、>プログラムでデータを作るとか言ってる
>については、文法による圧縮に代表される手法が該当し、
文法による圧縮とは、如何なるものか。

>この「プログラム」に必要な表現の長さが、元のデータよりも短くなる
>ような表現が存在するならば、圧縮が行われたことになります。
それは、私が346で既に述べた。

>たとえば、001001100 -> S->AAB, A->C1, B->1C, C->00
これは、何か。
>という文法(データ生成プログラム)に変換し、その文法を符号化する訳です。
>代表的なものにMPMなどがあります。
それが、どうしたのか。
0351350続NGNG
>もしかして>>340の記述は>>328についていったのかもしれないが、
>この場合は、数え上げ符号に相当します。
>数え上げ符号は Cover らによって考案された手法で、
>オレ天圧縮同様、インデックスを得てそれを符号化する手法ですが、
>理論的な証明が行われている、何ら問題ない手法です。
>復号の際に、インデックス「n番目」をプログラムで記号列に復号します。
それが、どうしたのか。

今回のカキコには、意味の無い発言が多々あり、340の動揺が伺えることから、
「340は精神年齢が低い」
と、ここに公言する。
0352オレは天才だと分かりましたNGNG
>>>348さんのように圧縮に詳しい人が出てくると面白みが減る、と言ってみるテスト。

「348は、一般人より、圧縮技法の知識がある ようだ」
とは、言える。
0353348(!=340)NGNG
オレ天は、もう少し圧縮の勉強をしてから書き込んだ方がいいよ。
情報理論や圧縮のほとんどの教科書に、>>348と同じくらいの内容が
書かれているから、1冊でもいいから買うことをお薦めする。

>>この「プログラム」に必要な表現の長さが、元のデータよりも短くなる
>>ような表現が存在するならば、圧縮が行われたことになります。
>それは、私が346で既に述べた。

これは、50年も前に述べられたことですよ。
オレ天さんの圧縮法は、さきほども数え上げ符号に類似するといいましたが、
それに関係するせめて
Shannon,Kolmogorov,Lynch,Davisson,Cover,Rissanen
の論文くらいは読みましょう。
最低でも、Shannon と Rissanen の理論(あるいは圧縮法)を知らないと、
どこへ行って、何を喋っても恥をかきます。
0354デフォルトの名無しさんNGNG
今までオレは天才だと…とその他の人、どちらが正しいのかわからなかったのですが
情報量やひずみの有無を「無意味な発言」としているのをみて
オレは天才だと…が単なるDQNであることがわかりました
ありがとう>>348 そして、さようならオレは天才だと…
0355348(!=340)NGNG
ちなみに>>348はどちらかというと>>340に向けての発言です
0356オレは天才だと分かりましたNGNG
みんな! これ以上オレは天才ださんをいじめないであげて!
彼は、世間から疎まれて、もう2chにしか居場所が無いの。
そして、自分を存分にアピールできるこのスレを見たとき、
彼はそこに第二の人生をみつけた!
だからこれ以上、オレは天才ださんをいじめないで、お願い。

でも、反論を見たときの彼、ちょっと嬉しそうだった。
0357オレは天才だと分かりましたNGNG
348よ。
自身の発言をする前に、私の発言に対する答えを、まずしなさい。
ひとまず、私の返答は以下である。心して読みなさい。

>オレ天は、もう少し圧縮の勉強をしてから書き込んだ方がいいよ。
なぜか。
>情報理論や圧縮のほとんどの教科書に、>>348と同じくらいの内容が
>書かれているから、1冊でもいいから買うことをお薦めする。
それら圧縮技術を知る必要は、どういったものか。

>これは、50年も前に述べられたことですよ。
だから何か。

>オレ天さんの圧縮法は、さきほども数え上げ符号に類似するといいましたが、
>それに関係するせめて
>Shannon,Kolmogorov,Lynch,Davisson,Cover,Rissanen
>の論文くらいは読みましょう。
なぜか。

>最低でも、Shannon と Rissanen の理論(あるいは圧縮法)を知らないと、
>どこへ行って、何を喋っても恥をかきます。
なぜか。
0358オレは天才だと分かりましたNGNG
356は、偽者である。
0359デフォルトの名無しさんNGNG
>>357
所詮あなたは過去の人。過去の再現をしてるだけ。早く現代に追いつきなさい。
0360オレは天才だと分かりましたNGNG
データの圧縮技術は、その必要性を見出した人がいたときから、
ずっと行なわれてきたのは、当然だろう。
オレは、LZHを初めて知り、ZIPやUNIXで使われるのを知ったぐらいだ。
264は、ネタで遊んでただけ。
ただ、オレ天の定理は正しいと思ってる。
が、この定理も、もうがいしゅつであることは、余りにも明らか。
(新規なら、いきなりここに書かないよ)
それに対し、348が知識で迫ったみたいだから、ちょっとからっただけ。わりぃ。<読者
というより、オレ天に対して知識で迫っても意味ないと思うぞ。
次回は、もう少しマジレスに近いことをしようと思う。
0361デフォルトの名無しさんNGNG
オ天ウザイ
0362デフォルトの名無しさんNGNG
つーか、からかわれたのはオレ天の方だろ、気付けよ。
0363オレは天才だと分かりましたNGNG
オレはからかわれてない。からかわれてないんだー。
0364デフォルトの名無しさんNGNG
日下部2世がいるスレはここですか?
0365オレは天才だと分かりましたNGNG
357が偽者であるということは明らか
0366デフォルトの名無しさんNGNG
ウザイ・・・プ逝1とため張るな
0367デフォルトの名無しさんNGNG
俺天ってプログラマー?
0368オレは天才だと分かりましたNGNG
私はプログラマではないが、そんな私でもすばらしい圧縮手法を考えた。
それをここで伝えたかったのだが、理論がどうこういう者がいて、
私の考えにけちをつける。
その者たちは、理論よりも大切なことがあるということを理解できない愚か者だ。

概算で66年後にできるといったら、それでは不可能だという。
宇宙が終わっても不可能だという。そんな馬鹿なことはありえない。
大宇宙に匹敵するデータすら1ビットにできる手法もあるのだから、
2^(8*4G)ビット程度のデータを格納できないはずがない。
理論的には不可能でも、66年よりももう少し時間がかかるだろうが、
いつかは可能なのだ。
もう少し発言内容を深く考えてから、反論を述べてほしかった。
0369オレは天才だと分かりましたNGNG
>>368は偽者
0370デフォルトの名無しさんNGNG
>>369
すまん、混乱してきた。
>>368は今までのオレ天と同じことを主張しているようだが、
それを偽者という>>369は、では、何が違うと言うつもりだ?
0371デフォルトの名無しさんNGNG
つーか、みんな暇だねぇ。汚天のネタに付き合うなんて。
0372デフォルトの名無しさんNGNG
>>368
理論よりも大切なことってなんだよ(w
妄想か(w
0373デフォルトの名無しさんNGNG
>>368
理論が説明できないなら、実装して証明してみせろ。
話はそれからだ
0374デフォルトの名無しさんNGNG
8*4G*(2^(8*4G))は、宇宙に存在する粒子の数よりもけた違いに大きいのだが、
どうやってそれを記録しておくつもりなんだろう・・・
漏れにとって、オレ天の手法で一番のなぞ。
0375デフォルトの名無しさんNGNG
オレ天のアルゴリズムで圧縮したファイルの拡張子には
.o0X
を推してみるがどうか?

それにしても>>360は日本語滅茶苦茶すぎ。
0376オレは天才だと分かりましたNGNG
264は、ネタであって、もう終了したのである。
が、264で述べていることは、事実である。

350と357の文は、348をからかったものと言ったが、
348に対しては、「からかった」とはならない。
このような文を、「DQN相応の文」と言う。
もし、読者がいた場合、348に対する「DQN相応の文」によって、
それに気ずかずに不快なる思いをした者がいた場合を考慮して、
読者に、
>それに対し、348が知識で迫ったみたいだから、ちょっとからっただけ。わりぃ。<読者
と示したまでである。

>374
>8*4G*(2^(8*4G))は、宇宙に存在する粒子の数よりもけた違いに大きいのだが、
8*4G*(2^(8*4G)) これは何か。

また、
>宇宙に存在する粒子の数よりもけた違いに大きいのだが、
こういったことを言うのは、やめなさい
0377デフォルトの名無しさんNGNG
>こういったことを言うのは、やめなさい

どうしてですか?
宇宙に存在する原子の数って10^150程度(おそらく、違っていても誤差は少ないはず)
といわれていますよね?
もし、10億倍くらい間違っていたとしても、10^159程度ですし、
1000兆倍くらい間違っていたとしても、10^165程度ですよね??

一方、4GBのデータのすべての組み合わせは、8*4G*(2^(8*4G))ビット必要で、
(>>291さんの主張はここが間違いといえば間違いでしたね。
 3ビットの場合 3*2^3=24ビット 000,001,010,011,100,101,110,111)
もし宇宙の全原子がそれぞれ1ビットの記憶が可能で、
それを使ったHDDがあったとしても、
これは上の値より、どうあがいてもはるかに大きいわけですが・・・
0378デフォルトの名無しさんNGNG
>>375
大文字小文字を区別しない環境(Windows95など)があるので、
統一したほうがよいかと思われ。
0379オレは天才だと分かりましたNGNG
360と376はともに偽者である。
いいかげん、偽者だらけでうんざりしてきた。
が、真実を伝えるために、読者に語りつづけようと思っている。
0380オレは天才だと分かりましたNGNG
376は私だが、360と379は偽者。
0381デフォルトの名無しさんNGNG
結局おれてんの奴のは圧縮後のデータだけから圧縮前のデータを
復元できないのに圧縮と言っているわけか。
0382オレは天才だと分かりましたNGNG
>宇宙に存在する原子の数って10^150程度(おそらく、違っていても誤差は少ないはず)
>といわれていますよね?
なぜか。
本当に、そういうことを言うのはやめたほうがよい。

>結局おれてんの奴のは圧縮後のデータだけから圧縮前のデータを
>復元できないのに圧縮と言っているわけか。
私ははじめから4GBのデータに固定した話をしていた。
例を8ビットで示したが、これは同じ手法が使えるということで、間違いではない。
もちろん4GB+1バイトのデータも復号できるのである。
0383デフォルトの名無しさんNGNG
>>382
> 例を8ビットで示したが、これは同じ手法が使えるということで、間違いではない。
間違い。

> もちろん4GB+1バイトのデータも復号できるのである。
出来ない。
0384デフォルトの名無しさんNGNG
γ符号を使えば、ある特定の1データだけは1ビットに圧縮できる。
しかし、それが誰にとって役に立つデータになるのか、
そしてその役に立つ確率はどれくらいか、を考えれば、
おのずとオレ天の手法が役に立たないのか、がわかる。

誰かが言っていた数え上げ符号は、その辺をうまく構成するため、役立つのである。
0385オレは天才だと分かりましたNGNG
264で私が述べた圧縮技法、
通称「オレ天264」であるが、
以下の要素を提供する場合は、作って与えよう。

公務員/サラリーマン
 年収の 1/264の日本銀行券 (最低 1000円)
フリーター
 年収の 1/264/2の日本銀行券 (最低 100円)
その他
 場合による
学生
 自作ソフト(吟味あり)

なお、これは予約制である。
また、「オレ天264」の開発期間は、1週間〜3週間とする。

仕様である
 対応OS:Windows95/98 シリーズ
 圧縮可能最大ファイルサイズ:4G以上
 (ただし、HDに依存する)
 必要HD空き容量:圧縮ファイルサイズに依存

注意
・Windows95/98シリーズの最少ファイルサイズは、1バイトなので、
 圧縮したファイルのサイズは、最少で1バイトになる。
・なお、この件について興味を持った場合は、
 以降のレスの経緯をしっかり読んで、個人で状況を把握せよ。
0386デフォルトの名無しさんNGNG
>>385
オレがもう作ったって。圧縮ソフトはな。復号ソフトはまだだが。
ちなみに圧縮して出来たファイルの中身は0xDE。
復号ソフトを作れたら誉めてやるよ。
つーか、そこの仕様に復号できると書いてないのはわざとか(w
0387デフォルトの名無しさんNGNG
単純に実装する場合でも、
ビット列を先頭から順に見ていって、0を消していくだけだろ? >オレ天264
0388オレは天才だと分かりましたNGNG
379,380,382は、偽者である。

>つーか、そこの仕様に復号できると書いてないのはわざとか(w
復号は可能である。
0389386NGNG
>>388
オレのを復号してくれないと信用できないね。ウソか(w
0390オレは天才だと分かりましたNGNG
382は、本物に近づくベクトルにある。
0391オレは天才だと分かりましたNGNG
>オレがもう作ったって。圧縮ソフトはな。復号ソフトはまだだが。
マジレスか。?

>>>388
>オレのを復号してくれないと信用できないね。ウソか(w
間違っているからである。
0392デフォルトの名無しさんNGNG
本物って本物のキティか?
0393オレは天才だと分かりましたNGNG
オレはもう飽きたので次のオレ天にパスする。あとは任せた。
0394デフォルトの名無しさんNGNG
とりあえず俺天のおかげで面白くなってますな

あるデータ列があるとする。
複雑な数式といくつかの種を検討、
そのデータ列に非常に似通ったものがでる「数式」「種」「差分値」を圧縮データとする。
理論上「差分値」をなくすこともできるが、圧縮に時間がかかりすぎるため現実的ではない。

というかしょっぱなから現実的っぽくはないが、データ列をうまい具合に分割して
いくつかの「数式、種、差分値」でデータ列全体を表現できないだろうか。
0395デフォルトの名無しさんNGNG
>>391
>>382が偽者だというなら、宇宙の原子数についての解答ももらいたいものだが
0396デフォルトの名無しさんNGNG
>>394
ええと、それは数値圧縮法の一種で、すでにあると思います。
文献は今手元にないのですが、IEEEの論文でした。
0397◇急募◇NGNG
オレは天才だと分かりました、通称「オレ天」が足りません。
データ圧縮に強い方、また、圧縮なぞわからないが議論やあおりには強い方、
至急オレ天として書き込みを行ってください。
0398◇急募◇NGNG
オレは天才だと分かりました
0399デフォルトの名無しさんNGNG
やっぱり一般人の考えつくようなのはすでにあるか。
データがなだらなかになる音データとかに強そうな圧縮だね、こりゃ
0400デフォルトの名無しさんNGNG
>>399
圧縮技術は、かなり研究され尽くされているから、
まったく新しいものを考えるのはなかなか難しい。

今現在は既存のもののすきまを埋めるような研究が圧縮では行われている。
もちろん、近年にも新しい圧縮法はいくつか考えられているし、
今後もその可能性は捨てきれない。

>>394の方法が、既存のもの以上の何かがあればいいわけで。
ちゃんと研究のレベルまで持っていくのも面白いかもしれない。
俺は数値圧縮が専門ではないので、内容にはコメントできないが。
0401デフォルトの名無しさんNGNG
>>385
Win95/98でファイルサイズ4G以上という仕様である時点でアウト。
0402漏れも考えたNGNG
アルゴリズムの有用性という観点から、人間にとって観測or生成可能な数列のみを対象としても、
有用性を失わないはず。なんで、指し示し、数え上げは URL + 時刻くらいで行えるものとする。

そうすると、なんらかの方法で非可算無限個ある平行宇宙の全てを破壊して世界線を常に一本に
保っておけば、情報理論的にはともかく、物理的にはこの指し示し+タイムマシンだけでもとの
情報が再現できるはず。

どこかに穴あるかな。。。
0403デフォルトの名無しさんNGNG
>>402
タイムマシンだけでなく時間の情報も必要。
0404オレは天才だと分かりましたNGNG
393は、偽者である。
0405オレは天才だと分かりましたNGNG
>401

訂正(385
誤:圧縮可能最大ファイルサイズ:4G以上
正:圧縮可能最大データサイズ:4G以上
理由:Win95/98の制限による
0406オレは天才だと分かりましたNGNG
>保っておけば、情報理論的にはともかく、物理的にはこの指し示し+タイムマシンだけでもとの

何を言ってるのか分からないが、
402は、幼稚であることを、ここに公言する。
0407デフォルトの名無しさんNGNG
究極の圧縮?スレ(現在dat落ちでどっかいった)に昔書き込んだネタ

圧縮関数 :
与えられたデータから1引く。
例 : 1011→1010
全ビット0の場合 : 0000→111

解凍関数 : 与えられたデータに1足す。つまり上の逆。

こいつを使えば、n回目に圧縮したサイズ≧n+1回目に圧縮したサイズ、となる。
どんなデータでも最終的に0ビットまで圧縮してくれるという優れもの。藁
当然可逆。こりゃ凄えや!
0408オレは天才だと分かりましたNGNG
407よ。
それは、すなわち、圧縮対象のデータ全てが、
リトルデンディア、もしくはビッグデンディアによる、数値と見なしているのである。

そして、圧縮したデータは、その数値そのものとなるから、サイズは変わらず圧縮になっていない。
また、データの先頭に0があった場合、復号ができないバグがある。
0409オレは天才だと分かりましたNGNG
ここで、読者に優秀なる問答を、与えてやろう。

320×240×60×86400 バイト
この量のデータを出力する、1Mバイト未満のコードがある。
これは、1Mバイト未満のコードが、
320×240×60×86400 バイト
を表現することが可能だということを意味する。これを復号とする。
そして、この復号に24時間かかるとする。
いったい、1Mバイト未満のコード とは、おおよそ どういったものか。
0410デフォルトの名無しさんNGNG
>>409
わかんないので答えを書いてください。
0411デフォルトの名無しさんNGNG
鳩時計シミュレータ
0412デフォルトの名無しさんNGNG
>>409
そのデータは60fpsの動画か?

あのな、コードを情報源と考えれば、
定常有限状態情報源であっても、無限長のデータを生成できるんだよ。
だから、1M未満のコードでも、いいんだ。

だけど、逆は常に成り立つわけじゃないんだ。
ある無限に長いデータを観測しても、情報源を特定することは不可能。

したがって、その問答は、問題設定に意味が無い。
0413デフォルトの名無しさんNGNG
ブロックソーティングを複数回行うのって意味ある?
0414デフォルトの名無しさんNGNG
>>413
データ依存(Canterburyコーパスの kennedy.xls では非常に有効)。
一般には意味が無い。

ブロックソーティングはMTFの拡張であるから、
その問題はMTFを複数回おこうなう問題に帰着できる。
0415オレは天才だと分かりましたNGNG
はい、みなさんこんにちは!
新しくオレ天に採用されました、俺は天才だと分かりましたです!
以後よろしくお願いします。
ゆんゆん電波に答えていきたいと思います。

まず最初のお便りから。
>8*4G*(2^(8*4G))は、宇宙に存在する粒子の数よりもけた違いに大きいのだが、
>どうやってそれを記録しておくつもりなんだろう・・・

これはですね。原子一個が1ビットしか記録できないという仮定が間違いっすよ。
実はつまようじが8*4G本あれば解決です。
つまようじの端から端の空間を2^(8*4G)個に分割します。
その分割した空間上の1点に原子を1個配置します。
これで8*4Gビットの1つの値が記録できました。
あとは、8*4G本のつまようじに同様に原子を配置していけばOK!

こつは、有限個の原子を使うのではなく、
無限に分割可能な空間を使うことですね。

じゃね!
0416デフォルトの名無しさんNGNG
そういや今月号のCマガ(明日18日発売)の特集に
「オープンソースの圧縮ツール「yz2」」ってのがあるね
DeepFreezerの開発者さんだから結構濃い目の内容かも

まあ、厨房な俺にはたぶん理解できんだろうが・・・鬱
0417デフォルトの名無しさんNGNG
YZってまったく使われてないけどなんか理由でもあんの?
GCAの方が出たのが後の割には結構使われてるよね、1部の人間に。
やっぱ圧縮アプリはユーザーインターフェースが大事なのか、、、
GCAが2001年公開
YZ1.2が1999年公開
なの?そこらへんが分らん。
0418オレは天才だと分かりましたNGNG
>まあ、厨房な俺にはたぶん理解できんだろうが・・・鬱

正直、圧縮技術のことで、そんな真剣にかんがえんでいいだろ。
0419デフォルトの名無しさんNGNG
>>417
Noah使ってるからyz1にも対応はしてるが確かに使ってないな。
一度だけざっと使用感をテストしただけ。
で、結局今は7zipとか使ってる。

やっぱ、たとえ個人だけで使ってても知名度とか第一印象が大きいかもね。
Noahみたなフロントエンドとして動作するソフトを除いては。
0420デフォルトの名無しさんNGNG
>yz
正直圧縮率よくない
0421デフォルトの名無しさんNGNG
やまざき氏は圧縮を専門にしているわけではないので、
圧縮率の向上自体には積極的興味はないようです。

ttp://www.tomozo.ne.jp/yamazaki/download/doc_basic_compression.htm
こんな文章を書いておられるが、さて、明日のCマガはどうなんだろ。
0422デフォルトの名無しさんNGNG
The Archive Comparison Test
http://compression.ca/

なんかここのテスト結果見ると、
一般的に知られてるものをはるかに超える圧縮率の形式があるのだが…
まぁ、上には上がいるもんなんだろうな。
0423デフォルトの名無しさんNGNG
圧縮率だけだったら、ACTの上位に登録されているツールを使えばいいということで。
漏れはunix系OSを渡り歩いているのでgzip,bzip2 (+tar)しか使わん。
0424デフォルトの名無しさんNGNG
>>422
ん? どの手法のこと?
海外および国内の論文に掲載される内容は、1から2年以上古い内容なので、
実際には論文の実験結果よりも若干高い性能が現在の圧縮性能であることと、
論文などでは圧縮率を稼ぐことだけが主眼ではないので、
圧縮率を売り物にするACTへ登録するツール類は、
圧縮率向上の細かい技を使っているものが多いです。
0425416=419=422NGNG
>424
なるほどなぁ〜
確かに圧縮ツール話の多い掲示板やなんかだと
「実際に使った場合に想定されるファイルに対してどれだけ圧縮率を稼げるか」
みたいな話が多いわな。(俺は内容までは理解できてないけど)
勉強になりますた。
0426デフォルトの名無しさんNGNG
>>414
サンクスコ

MTFも単純に先頭に持ってくるんじゃなくて二番目に持ってくる亜種なんてのもあるようですね。
面白いなぁ。
0427オレは天才だと分かりましたNGNG
>421のリンク先

間違いというか、思想的な相違を1つ指摘しよう。
それは。

>この文章を読んで、一人でも多くの日本人が圧縮アルゴリズムに興味を持ってくれたら幸いです。

である。

圧縮アルゴリズムは、
「一人でも多くの日本人が興味を持つ」
ほどの物事ではない。
0428オレは天才だと分かりましたNGNG
409の答えである。

一人、60FPS(一秒間に60コマ描画する)の動画だと言ったが、
非常に惜しい。
動画は、一般的には、30FPSだからである。

答えは、1Mバイト未満のゲームである。
320×240は、解像度である。
60は、60FPSである。
86400 は、60秒×60分×24で、一日の秒数である。

そして、復号ができても圧縮ができないと言った者があったが、
オレ天定理によれば、可能である。
この、ゲーム動画の圧縮に近いものとして、MPEGがあったろう。
0429デフォルトの名無しさんNGNG
圧縮率上げても展開遅ければ使えないような気がする。
>>MPEG
MPEGより綺麗で高い映像圧縮技術も理論上できるが、
今の石の速度じゃ使い物にならない。
MPEG2を良く睨めっこすれば分かるがブロック単位に分れてるのが分かる。
この垣根を外せば理論上はmpegより高い+綺麗ができる。
0430オレは天才だと分かりましたNGNG
>406

>402は、幼稚であることを、ここに公言する。
で、402の反応が無いので、意外と思ったことである。

402の言うことは、こうである。
宇宙が一定時間の間隔(T時間)で生成するデータを、1次元配列にするというものだ。
そして、T時間がたてば、また1次元配列を生成する。これで、2次元配列になる。
そして、2次元配列の要素を選択するのに、タイムマシンを使うと言ってるのだ。

このような思考を展開する、その心意気は非常に感心である。
0431デフォルトの名無しさんNGNG
漏れはゲームより鳩時計を支持する。
0432デフォルトの名無しさんNGNG
  / ̄ ̄ ̄ ̄ ̄
< あなたは意味の無いことをしています!
  \_____
    ⌒ ⌒ ⌒
   _⌒ ⌒ ⌒__
  /:::::Λ_Λ:::::::::::::::/
 /::::::(∩;´Д`)∩ :::::/
/:::::::(      /::::/  チャラッチャラッチャーン
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0433デフォルトの名無しさんNGNG
俺の考えでは 宇宙中にある全てのファイルにインデックスを付けても256ビット=32バイトもあれば足りるね。

なにせ
光の速度 3*10^8 m/sec
プランク定数 6.6/10^34 joule*sec
陽子質量 1.67/10^27 kg
宇宙寿命 約 4*10^17 sec
宇宙質量 約 3*10^11 Ωh^2M/Mpc^3

これらの定数を積したって 300bitにもみたないのだから
0434デフォルトの名無しさんNGNG
確かにインデックス付けは可能でしょう。
しかしインデックス付けと圧縮は別物だと何度言わせれば気が済むのですか。
0435デフォルトの名無しさんNGNG
433は逆に300bitのインデックス付けは宇宙の全容量をフル動員しても不可能といいたいのでは
0436オレは天才だと分かりましたNGNG
あははっ、今は私がオレ天なのに、古いやつがうざいなぁ。

>動画は、一般的には、30FPSだからである。
うわー、そんなこと言っちゃっていいの?いいの?
ぷぷーっ
0437デフォルトの名無しさんNGNG
これって本当か?

↓ ↓ ↓
http://www.dream-express-web.com/space-trust.htm
0438デフォルトの名無しさんNGNG
これって本当か?

↓ ↓ ↓
http://www.dream-express-web.com/space-trust.htm
0439デフォルトの名無しさんNGNG
>>438
NGワードに追加しますた。
0440オレは天才だと分かりましたNGNG
ここで諸君に、大いなる智慧を与えてやろう。
私に感謝しなさい。

そもそも、データ圧縮とは、その形跡を残すシステムを作ることであるのは、
諸君もオレ天定理によって、ようやく分かったところであると思う。

が、形跡を元にしてシステムを作るのは、
非常な困難を伴うのは、諸君も感じてるところであろう。
システムから形跡を生成するのは、容易である。

この例えは、次に当てはまろう。
何も考えずに、生きるのは容易である。
が、与えられた情報から真実を究明するのは、非常な困難である。

すなわち、諸君らが生きるにおいて感知する情報には、
その情報となる原因があり、それは、諸君にとって諸々の疑問ともなっているであろう。
それら疑問を解明すべく、大本のシステムを知るべく生きることは、
丁度、形跡を元に、その形跡を生成する最適なるシステムを模作するのと同様である。

そして、模作することなくして生きることも可能である。

諸君は、今、あるデータを生成する最適なるシステムを、
まさに模作しようかという、思考状態にまで、私に導かれてきた。

が、ここで人生と異なる点がある。いや、過去と異なる点と言えば良いであろうか。
諸君が、最適なるシステムを作ろうとするにおいて、その対象となる形跡は、
一定ではないのである。
それは、そうであろう。圧縮対象のデータは、その都度変化する。
0441デフォルトの名無しさんNGNG
(省略されました・・全てを読むにはここを押してください)
0442デフォルトの名無しさんNGNG
(省略されました・・全てを読むにはここを押しても無駄くさい)
0443オレは天才だと分かりましたNGNG
諸君は、仏教というものの影響を、大きく受けているであろうと思う。
仏教は、正しさの追求である。
が、その正しさとは、何であるか、考えたことがあるであろうか。
正しさとは、誰が決めたのか。
それは、仏陀と言われるが、どうして仏陀の正しさに、
我々が畏怖し、従わねばらならなく、従わないと生きれないのか。
これが、分かるであろうか。
問題を理解してから、瞬間的に分からない場合は、分かっていない。

そして、その回答を、例え私に教えられても、
それは、汝が本当に分かったことにはならない。よって、
私の示した回答を知った時点で、
私の言う創造的思考への成長は無くなるであろう。
が、私は、語り続ける。
0444オレは天才だと分かりましたNGNG
回答から示そう。










それは、一言で言えば
「謙虚を識れ」
ということだ。
仏陀の教えに従わずして、謙虚さは育まれない。

これは、どうゆうことか分かるであろうか。
それは、
「自分が、自分より高いと分かった存在に対し、
 それ相応の、礼儀を尽くさねばならない」
ということだ。
この礼儀が無い者に、何があろうか。
何も無いのである。
例え、この世にある数万の書物から、数億の知識を得たところで、
礼儀が無ければ、その者は、なんら価値を有さない。
また、
例え、この世にある数万の作用を生成するシステムを、作ることができようとも、
礼儀が無ければ、その者は、なんら価値を有さない。
こうしたものだ。
0445オレは天才だと分かりましたNGNG
ここまで読めば、資本主義、あるいは、能力主義が、
幸福を生じる制度でないことは、明らかであろう。
なぜなら、謙虚や礼儀を知らない者でさえ、
その知識や能力があれば認められ、
その結果、その者は、能力や知識を行使する行為を続けることとなる。

が、既に言ったように、礼儀を知らずして、
いくら知識や能力があり、それを元に、如何なる結果を出そうとも、
それには、なんら価値は無いのである。
なんら価値は無い物事が、大量に出まわればどうなるか。
時を経ずして、それは消えて行くであろう。
そして、それを維持しようとすればするほど、過ちを重ねることとなろう。
そして、過ちを重ねれば重ねるほど、
または、過ちが維持されればされるほど、真実は影をひそめるであろう。
真実が影をひそめれば、ひそめるほど、世の中は暗雲とあろう。
そして、いつしか真実が分からなくなる。
すると、義理が真実として、まかりとおるようになり、
その結果、義理であるから苦しみを生じる。
が、苦しみの原因が分からず、ここにきて「妥協」という精神が生じ、
この苦しみを、まぎらわず為に、人間の感覚を麻痺させるのである。
それは、アルコールから始まり、各種の洗脳であろう。
0446オレは天才だと分かりましたNGNG
しかし、馬鹿な話しである。
人が、その人に、苦しみを与えることを創り、
そして、その苦しみを無くそうと、人自体を麻痺させる。
馬鹿な話しである。
苦しみが起きた場合は、その苦しみの原因を究明し、
その原因を是正しなければならない。
それを、人を麻痺させることで回避するのであるから、
余計に人は、真実から遠ざかることになる。
いったい、諸君らは、何をやっているのか。

人よ。汝等が犯せし過ちは、己にとっても自覚できていない。
そうしたところにまで、過ちは重ねられており、精神が麻痺してるのだ。
義理とは、人が作ったものであろう。
そうしたものを、畏怖し、そうしたものに縛られてならない。
0447デフォルトの名無しさんNGNG
オレ天のアク禁依頼出してきました。
オレ天さんは名前欄をfusianasanにしないと一週間以内に
ム板から追い出されます
0448オレは天才だと分かりましたNGNG
よって、
オレ天定理に基き、その性能を発揮する圧縮システムを考える以前に、
諸君は、「謙虚さ」というものを知らねばならない。
そして、過去の過ちを自覚せねばならない。
それなくして、
オレ天圧縮は、語れない。
まず、「謙虚さ」を知りなさい。
0449デフォルトの名無しさんNGNG
詭弁のガイドラインによく当て嵌まるレスだな
>>447乙。
0450オレは天才だと分かりましたNGNG
>人よ。汝等が犯せし過ちは、己にとっても自覚できていない。
>そうしたところにまで、過ちは重ねられており、精神が麻痺してるのだ。

その通りである。
よって、人において一番過ちな存在は、
「慢心」である。
そして、この慢心が非常に大きい者は、
私の経験によれば、企業人(役員系)である。
0451デフォルトの名無しさんNGNG
以後放置で逝こう>おぉる
0452デフォルトの名無しさんNGNG
>451 りょうかーい
0453オレは天才だと分かりましたNGNG
ひとまず圧縮に関しては、話しが完結してしまったが、
ついでなので、幾らか話そう。

「謙虚さを知りなさい」と述べたが、
いったい何に対して、謙虚になるかが疑問かもしれない。

謙虚になる対象は、自分より崇高なる者であり、
これは、何も仏陀に限ったことではない。
そして、これ自体は、当然のことであろう。

が、私が述べた、謙虚になる対象とは、
何であるか、分かったであろうか。
分かった者は、見込みありと言えよう。

私が、謙虚になれと言った対象は、
各自の潜在意識が知っているであろう、
「仏法」である「正法」である。
すなわち、因果応報、愚痴の戒め、等である。
私は、諸君らが、その意識のある深さにまで、
仏法が浸透していると思っている。
その、仏法に対して謙虚になれと、言っていたのだ。
その仏法こそ、仏陀から、あるいは神から、
教えられてきた「正しさ」ではないだろうか。
0454デフォルトの名無しさんNGNG
http://science.2ch.net/test/read.cgi/math/1034782298/l50
0455デフォルトの名無しさんNGNG
で、みんなCマガ読んだ??

漏れ頭悪いのかサパーリ。誰か解説キボン。
0456デフォルトの名無しさんNGNG
yz2の記事のアルゴリズム解説以外の部分と
ひんろーださんのページと
編集後記のやっさんのページだけ立ち読みした。
0457デフォルトの名無しさんNGNG
Cマガは高すぎる、半額でいいぐらいだ
0458デフォルトの名無しさんNGNG
今から書店いってCマガ立ち読みしてくる。
0459デフォルトの名無しさんNGNG
458じゃないけど、立ち読みしてきた。
圧縮に関しては何も得ることが無かった。
yz2はソースプログラムも読んだことあるし、直接解説を聞いたこともあるから。
0460デフォルトの名無しさんNGNG
yzよりGCAの作者をぶん殴りたい
0461デフォルトの名無しさんNGNG
>>460
なぜ? fjで暴れているから?
0462デフォルトの名無しさんNGNG
>460-461
SYNさんって、なんで嫌われるのかな。

yzより圧縮率高いじゃん。ブロックソートだから当然と言えば当然だけど。
0463デフォルトの名無しさんNGNG
まあ、議論はもうこのくらいでいいよ、
GCAやyz2を超えるアーカイバをサクッと作ってみろや。
おまいらの腕ならそれが可能なんだろ?
0464デフォルトの名無しさんNGNG
>>463
PPMをベースにすれば、はじめから超えている
0465デフォルトの名無しさんNGNG
GCAって既出の理論でソートを少し最適化しただけで
後出のくせに圧縮率もたいしたことないし、処理遅いのに
なんでこんなにありがたがられてるんだか理解できないな。

嫌われてるっていうのは、良くしらないけど
そういうところにあるんじゃない?
0466デフォルトの名無しさんNGNG
>>465
割れ物でよく使われてるから。

解凍すべき物がそこにないなら、誰も使わんでしょ。
0467デフォルトの名無しさんNGNG
>>465
圧縮率が大したことあるから。
0468デフォルトの名無しさんNGNG
作者が嫌われるってのと
作ったソフトの性能にはあんまし関係は無いのでは?
坊主憎けりゃ袈裟まで憎いっての以外には。
0469デフォルトの名無しさんNGNG
>>465
いまどき微々たる圧縮率の差を競うのは時代遅れだよな
50%も圧縮率が優れていればマンセーなんだが
実際は平均より数%程度で激ノロで偉そうにしてれば
叩かれて当然だろう..
0470デフォルトの名無しさんNGNG
>>469
50% っても zip で 100 -> 97 ぐらいのやつが 100 -> 94
ぐらいになってもあんまうれしくないね。
あと zip で 100 -> 24 ぐらいのやつが 100 -> 12
ぐらいでも面倒くさいから zip でいーじゃんとか思う。
0471デフォルトの名無しさんNGNG
圧縮が効かないデータでは立場がさらに苦しいな > GCA
0472デフォルトの名無しさんNGNG
>GCA
たいていCabのLZX最高圧縮の方が縮むんであって使ってない
0473デフォルトの名無しさんNGNG
>>472
そりゃあ、向いてないファイルに使ってるからでない?
GCAは主にテキスト、あるいはアニメ画像なんかに向いてるのだが。
0474デフォルトの名無しさんNGNG
最近はCBTに抜かれてます>GCA
0475デフォルトの名無しさんNGNG
おまいらXPointer使って圧縮して見れ
0476デフォルトの名無しさんNGNG
>>474
というか、テキストなら7z・RARのPPMdが最強かと。
0477デフォルトの名無しさんNGNG
>>465
たしかにガイシュツの理論だが実装が難しいんだよ、BWTは。
圧縮率はカナーリ高いほうだよ、圧縮比率比較しているサイト行ってみな。
嫌われているのは処理が遅いからだろう。
0478デフォルトの名無しさんNGNG
>>477
BW変換なんてそんなに難しい方じゃないと思う。
suffix-arrayの構築による手法が何種類もあるから、それを使えばいいし。
力任せでも何とかなる。suffix-treeだっていい。

しかし、PPMを実装するためには、せめて8次〜20次の文脈を扱いたいから、
どうしてもsuffix-treeの知識が必要だし、
suffix-treeだけでは素のPPMすら実装は難しい。
0479ナナシサソNGNG
圧縮のアルゴリズムって基本的に偏りを利用してると思うんだが、
偏りがあまりないデータだと圧縮率が悪くなるよな。
意図的に偏りを作り出すことって出来ますか?
もちろん可逆でbit数の増加が無視できる程度で。
0480デフォルトの名無しさんNGNG
>>479
ブロックソートやMTFは考えとしてはそれに近い。
というより、文脈が。
もっといえば、情報源を高度に推定していくことに近い。
0481デフォルトの名無しさんNGNG
>>479 モデル化しる
0482ナナシサソNGNG
>>480
情報源を高度に推定って具体的にどうやればいいんでしょうか?
回帰分析みたいな感じですか?
0483デフォルトの名無しさんNGNG
>>482
MDLとかAIC規準ではなかろうか
0484デフォルトの名無しさんNGNG
>>482 データマイニングしる
0485デフォルトの名無しさんNGNG
最近だと、PPMTなんてものもあるらしい。
でもユニバーサルではないよなぁ?
http://citeseer.nj.nec.com/teahan01combining.html
0486ナナシサソNGNG
>>483
算術符号とか動的ハフマンのようなものですか?
0487デフォルトの名無しさんNGNG
言葉だけ中途半端に知ってる厨房の集まりだなここは。
0488デフォルトの名無しさんNGNG
>>487
こんばんは、厨房その1です。
恥ずかしながら、仰るとおりです。
0489デフォルトの名無しさんNGNG
>>478
suffix-tree と パトリシアトライの区別がつかないんだけど…
0490デフォルトの名無しさんNGNG
>>489
同じです。
派閥(?)によって呼び方が違うだけのようです。
0491デフォルトの名無しさんNGNG
>>490
さんきゅ
0492零細リーマソ ◆eXL7Vooglk NGNG
やばい、、すごい圧縮アルゴリズム開発しちまった・・・。
今HDDにあるファイルで手当たり次第テストしてるが、MAXでも元サイズの12%にしかならない。
(しかもlzhやzip,jpgなどのファイルでも!)
ちょっと怖くなってきた。。
(当然可逆圧縮。)

詳しくはいえないので簡単に言うと複素数平面を使用した圧縮。(+Zオーダー)
辞書とかは持たずにほぼ数式のみで成り立ってる。

こんなんになるとは夢にも思わんかった・・。
0493デフォルトの名無しさんNGNG
祭の予感?
0494デフォルトの名無しさんNGNG
>>492
そのネタは1年ほど前に見たことがあるような…
0495デフォルトの名無しさんNGNG
>>492
ソースあげれ.もしくはバイナリ.
0496零細リーマソ ◆eXL7Vooglk NGNG
今は特許考えてるんで、ソース・バイナリともにあげるのはちょっと無理。
(バイナリ解析されると怖いんで)


改善点はスピード。
これが今のところかなり遅い。(同種系の3〜5倍くらい遅い)
0497デフォルトの名無しさんNGNG
じゃあ圧縮データサンプル出せ
特許つったって公開されるんだから
ソース出したって変わらんと思うがな。
0498デフォルトの名無しさんNGNG
>>492
中途半端なネタは最悪。

お前の頭で理解できるようなアルゴリズムか、
このスレの誰も理解できないような複雑なアルゴリズムを出せ。
0499デフォルトの名無しさんNGNG
>>498

複雑なアルゴリズムは圧縮にはむかないとおもわれ。
0500デフォルトの名無しさんNGNG
>>492

このサイトでもう少し圧縮について基本的なことを勉強したほうがいいですよ。
ttp://www.ingnet.or.jp/~kojif/mu/comp/
0501デフォルトの名無しさんNGNG
偏りがあまりないデータ = 疑似乱数
な罠
0502 ◆SIA81xrZRg NGNG
age
0503デフォルトの名無しさんNGNG
>>492

タワラ
0504デフォルトの名無しさんNGNG
>>497
ソース公開すると(下手したらバイナリ公開も)特許は取れなくなるかと。
0505デフォルトの名無しさんNGNG
とりあえず、特許申請するまえに
伊藤家の食卓にハガキだしとけ
0506デフォルトの名無しさんNGNG
>>504
ですね。
学会発表なら特許取得もできるので、すぐさま
情報処理学会、電子情報通信学会、情報理論とその応用学会、IEEE、ACM
のどれかに投稿しる!
レターの形でもいいから。
0507デフォルトの名無しさんNGNG
その方法での圧縮は算術演算以上にならないことがすでに証明されています。
従って、単なるネタ。
0508デフォルトの名無しさんNGNG
×算術演算
○算術圧縮
0509デフォルトの名無しさんNGNG
全てのデータに対して圧縮率が高い圧縮方法は難しいが、
特定のデータに対してなら劇的に圧縮率を上げることができると思う。

たとえば、実行ファイルなら実行ファイルの特徴があり、
その構造を整理することで大幅な圧縮が可能だろう。
つまり、圧縮・解答ソフト自身がMFCやglibなどを持っていて、
それを辞書として使えば、そのライブラリを使って作られた
ファイルは圧縮データにライブラリを含まなくても良くなる。
また、ループや関数呼び出しなどの制御構造を解析すれば、jmp文と
目的アドレスデータを大幅に削除できる。

また、画像や音楽の圧縮もJPEGやMPEGよりフラクタル理論を使った方が
圧縮率が高くなることが知られている。
0510デフォルトの名無しさんNGNG
>>509
データの種別に応じて圧縮法をチューニングするのは、
あるいは専用の圧縮法を使うのは、ツールとしては確かに有効です。
しかし、圧縮理論で最も重視される性質の一つである、
ユニバーサル性を失うことになるため、拒絶する人は多いかもしれません。

>フラクタル理論を使った方が
これは現在のところ、どちらとも言えない状態です。
というのも、たとえば画像データは有限画素値で有限画素数であるため、
フラクタル変換した場合の情報の相似がいまいちだからです。
そのため、計算機上のデータに対してはフラクタル圧縮はそこそこにしかなりません。

しかし、フラクタル発見の効率はよいため、
・画素の類似性を計測するためにフラクタルを使う(文脈として使う)
・線形走査法(ヒルベルト走査など)に組み合わせて、1次元上でのフラクタル圧縮を行う
などの研究が行われているようです。
0511デフォルトの名無しさんNGNG
>>492
寒いですよ。ネタバレバレ。頭が悪いこともバレてます。
もっと圧縮の勉強をしてから書いてください。
0512デフォルトの名無しさんNGNG
492はもともとものすごく冗長なデータしか持ってなかったのかも知れないよ
0513デフォルトの名無しさんNGNG
>>500
おまえばかだな。
0514デフォルトの名無しさんNGNG
>>512
lzhやzipが、さらに圧縮できていることを考えると、
ファイル名が
00000000000000000000000000000000000000000.txt
のようなものだったと思われる。
0515デフォルトの名無しさんNGNG
>>514
新圧縮キタ━━━━━━(゚∀゚)━━━━━━ !!
0KByteのファイルを作り、ファイル内容をBASE64でエンコードして名前に設定
完璧!!
0516デフォルトの名無しさんNGNG
492に釣られている香具師がいっぱいだな(w
0517デフォルトの名無しさんNGNG
>>515
圧縮カコイイ!
0518デフォルトの名無しさんNGNG
T-RangeCorder
ttp://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0519デフォルトの名無しさんNGNG
>>518
ぐはっ、これでひっかかったの4回目です。宇都田。
0520デフォルトの名無しさんNGNG
>>518
一生、呪ってやる。
0521デフォルトの名無しさんNGNG
凄まじい圧縮といえばテキストでしょ。
1つの文字を1,2バイトまで圧縮できるんだから。
究極のモデル化だね。
解凍するために必要なデータは膨大だけどね(フォントデータ)。
但し、ない文字は使えない、または外字を入れると
サイズが膨大になるという欠点も持っている。

さらに圧縮かけると最強。
実はテキストって凄いのですよ。
0522デフォルトの名無しさんNGNG
電波キタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!
0523デフォルトの名無しさんNGNG
>>521
おまい、それ静的辞書法っていうってこと知ってます?
0524デフォルトの名無しさんNGNG
>>523
するとUnicodeはごく僅かに劣化する非可逆圧縮でつかね?
0525アフォNGNG
あのさ、>>521
640x400の時代にね。
画面を8bitx8bitで区切る。
同じ図形に同じ番号ふる。
最大で4096パターン。
頻繁に出現する番号に小さいのを当てる。
・図形個数出力。
・図形データ出力。
・マップ出力。
・ハフマンライブラリを経由してファイル出力。
2画面目では変化のある部分だけについて上の
パターンを適用する。
って動いた時、これは静的辞書法?動的辞書法?
0526デフォルトの名無しさんNGNG
>>525
ネタにマジレス(プ
0527アフォNGNG
>>525だって十分ネタだよぉ
0528デフォルトの名無しさんNGNG
メタファイルでいいじゃん 
0529デフォルトの名無しさんNGNG
圧縮前
sample.txt
Rシナd儁eキ。h"; I J喨

↓

圧縮後
Uu+9vO++hQVk5YSBZe+9txnvvaFoBSI7IAIgSSAgICDCgAEBSgHllqg=.txt
sample
0530デフォルトの名無しさんNGNG
>言葉だけ中途半端に知ってる厨房の集まりだなここは。

ちがいます。保健体育だけ中途半端に知ってる厨房の集まりです。ここは。
0531デフォルトの名無しさんNGNG
たとえば、
ああああああああ
というのがあったら
8あ
と圧縮する
0532デフォルトの名無しさんNGNG
>>531
ランレングスがどうかしましたか?

その方式だと

Boooooooooooooooom!

位だと思われ。圧縮できるのは。
まぁ、辞書の話になるんだろうな。
0533デフォルトの名無しさんNGNG
うへうへうへへへへへ
↓
3うへ4へ

こうなっていくのか。辞書か。そうか。
0534デフォルトの名無しさんNGNG
>>532
RLEって辞書必要だったのか…
0535デフォルトの名無しさんNGNG
>>534
いや、いろいろ突き詰めていくとそっちの方向に向かうなってこと。
0536デフォルトの名無しさんNGNG
>>535
で、結局 LZ77 か LZ78 の類似品になるわけですね…
0537デフォルトの名無しさんNGNG
10バイトのデータがあるとする。
そこから、2バイトのCRC値を得る。

そのCRC値を元に、それが得られるようなデータを複数求め、
元のデータがその何番目に当たるかを求める。
もし、256番目以前であれば、元のデータは、CRC値と番号の合計3バイトで表す
ことができる。

256を超えた場合、9バイトで試してみる。それでもダメな場合、8バイトで試してみる。
どうしてもダメな場合、ダメであったことを表す1ビットのフラグをつけ、
元のデータをそのまま保存する。
0538デフォルトの名無しさんNGNG
>>537
時間がやたらとかかるよーな…

あとさぁ 00 00 00 00 00 00 00 00 00 00 から
そのCRC値になるまでインクリメントして256個だけ、
っつー事であれば 圧縮できるのは
00 00 00 00 00 00 00 00 ?? ?? みたいな並びばっかにならんか?
0539デフォルトの名無しさんNGNG
インクリメントする必要もないし、0から始める必要もない。
他の圧縮方法で圧縮できそうなデータは故意に飛ばせば良い。
0540 NGNG
ある文脈の次に出現する記号を、
入力データの先頭から順番に出力していく
という感じのモデルって既にあるでしょうか。
性能はイマイチ。

例えば、記号を{ a, b, c }の3種類として
入力データを{ abcacacabca }とする。

まず、a の次に出現する記号を順番に出力すると

bccb

となる。b, c についても同様に出力すると

bccb cc aaaa

となる。以上。

説明の為に多少簡略化してあり、
この出力だけでは当然復元できません。
(このやり方なら入力データの頭と尻の記号が必要になる)

速度・メモリを無視すれば、オーダーを増やしていっても復元可能です。
(aaの次の記号を出力、baの次の記号を出力・・・)
0541デフォルトの名無しさんNGNG
>>540
データ量が減ってない気がするんですが。
0542デフォルトの名無しさんNGNG
>>541
モデルだからな。
0543540NGNG
>>541
その後、適当に符号化します。
540の出力結果はブロックソート法を甘くした感じになります。
0544デフォルトの名無しさんNGNG
>>543
また、アルファベットのみの場合には妙に効果があるってヤツ?
0545540NGNG
>>544
そうですね。性能は悪いですけど...
0546デフォルトの名無しさんNGNG
>>540-543

漏れの少ない脳みそを検索した結果だな……(・∀・)イイ!。行けると思う。

マジで。
0547デフォルトの名無しさんNGNG
ttp://210.153.114.238/img-box/img20021025185801.zip

>>540 を実装してみた。符号化してないのでサイズ増えるけどw
復元の為の付加情報は符号化のときに一緒に折り込むのがいいかな?
0548デフォルトの名無しさんNGNG
>>547
>符号化してないのでサイズ増えるけどw

その処理を通す前と通した後のデータをそれぞれLZHか何かで適当に圧縮してみそ。
それで圧縮率が変わるようならモデルとしては優秀なんじゃない。
なるべく大きなデータがいいね。当然jpegやmp3はダメだぞ。
0549デフォルトの名無しさんNGNG
age
0550540NGNG
>>547
コンパイルしてないけど、
入力データの最初と最後に記号a を付加して、
それごとエンコードすれば、復元の為の付加情報は必要なくなると思う。
どっちがいいのか分からないけど。

...aaa abcacacabca a
0551デフォルトの名無しさんNGNG
>>550 それはダメ。復号できない。
0552540NGNG
>>551

<エンコード>
入力:a abcacacabca a

aの次:abccba
bの次:cc
cの次:aaaa

出力:abccbaccaaaa


<デコード>
入力:abccbaccaaaa

aの数:6個、bの数:2個、cの数:4個より、

abccba cc aaaa

とわかり、aから始まるので、順にたどれば、

aabcacacabcaa

となり、先頭と最後を取り除けば、

出力:abcacacabca


ダメかな…。
0553デフォルトの名無しさんNGNG
>>552
よーわからんが 最後の a って付加する必要ある?
055457NGNG
>>552
いいんじゃない?
その方法なら先頭にa(実際の実装なら'\0'か?)を付けるだけで良いと思う。
あと、その方法、なんかBlockSortingの復号みたいだな

#自分でも>>540を実装してみたけど逆に圧縮率落ちた。鬱。
0555540NGNG
> よーわからんが 最後の a って付加する必要ある?
たぶんない。
デコードの際、各記号の数を数えるときに都合がよかったのかな。

>>554
大量の文脈を使えばある程度効果はあると思うけど、
力不足で実装できませんでした。
0556デフォルトの名無しさんNGNG
>入力:abccbaccaaaa
>aの数:6個、bの数:2個、cの数:4個より、

なぜ「cの数:4個」とわかるのか?と小一時間問い詰めたい。
0557デフォルトの名無しさんNGNG
>>556
cという文字の前に来ている文字が4個、また最初の文字はaなので、cは4個
じゃないのかなぁ・・・
0558デフォルトの名無しさんNGNG
結局突き詰めていくと、
逆転文字列をブロックソートした状態になるんじゃないか?
0559540NGNG
>>556
「aの数:6個、bの数:2個、cの数:4個より」
というのは、デコード時の入力データ「abccbaccaaaa」
の各記号の個数を数えただけです。

エンコード時、最初と最後にaを付け加えることにより、
上のように単純に数えることができると考えたんだと思いますが、
余計だったかもしれません。
理屈は>>557の通り。


> 逆転文字列をブロックソートした状態になるんじゃないか?
ですね。
出力結果がブロックソート法より良くなることは無いです。
0560デフォルトの名無しさんNGNG
みんな既存の考え方にとらわれすぎ!

新しい発想でかんがえようよ!

定石やあるゴリ図無なんてクソ倉枝よ!
0561デフォルトの名無しさんNGNG
もう全部算術圧縮でいいよ。
0562デフォルトの名無しさんNGNG
>>561
符号化はもうほとんど算術符号になってるよ。
一部の分野でGolomb符号などが使われているくらい。

今問題にしているのはモデル化の話。
0563デフォルトの名無しさんNGNG
>>561
算術符号は特許問題がやっかいなので使わぬが吉。
RangeCoderにしとけ。
0564デフォルトの名無しさんNGNG
>>563
RangeCoderも白っぽいけど灰色という罠
0565デフォルトの名無しさんNGNG
ソースを書こうよ
0566これでええやんけNGNG

// 希望の圧縮率にできる限り近い圧縮をおこなっちゃうよっ
bool compresser(void *soce //圧縮対象メモリ
 ,int soce_size   //圧縮対象メモリサイズ
 ,void *dest    //展開先メモリ
 ,int dest_size   //展開先メモリサイズ
 ,int compress_rate) //希望の圧縮率
{
  if( compress_rate<1 || 99<compress_rate ){
    printf("1〜99 の間で指定しろや!");
    return false;
  }

  for(int i=0,w=0; i<soce_size; i++){
    if( (rand()%100) > compress_rate )  continue;

    if( dest_size>=w ){
      ptinrf("展開先ちゃんと確保しろや!");
      retunr false;
    }
    dest[w++] = soce[i];
  }

  print("%d%に圧縮しますた[ハート]",w*100/soce_size);
  return true;
}
0567デフォルトの名無しさんNGNG
確かに非可逆圧縮だな。
0568デフォルトの名無しさんNGNG
圧縮率間違ってないか?
99を指定すると無圧縮に…
0569デフォルトの名無しさんNGNG
File file = new File(filename);
file.open();String content = file.readAll();file.close();
file.rename(Base64.encode(content));
file.open();file.write(filename);file.close();
0570デフォルトの名無しさんNGNG
      ∧_∧      ∧_∧
     _( ´∀`)    (´∀` )
  三(⌒),    ノ⊃    ( >>1 .)   糞スレは  
     ̄/ /)  )      | |  |
    . 〈_)\_)      (__(___)
         ∧_∧  .∧_∧
         (  ´∀) (´∀` )
       ≡≡三 三ニ⌒) >>1 .)    立てるなって
        /  /)  )  ̄.| |  |
        〈__)__)  (__(___)
           ∧_∧  ,__ ∧_∧
          (    ´)ノ ):;:;)∀`)
          /    ̄,ノ'' >>1 . )   言ってるだろうが
         C   /~ / /   /
         /   / 〉 (__(__./
         \__)\)
                      ヽ l //
            ∧_∧(⌒) ―― ☆ ―――
            (    ) /|l  // | ヽ   ヴォケがーー!
           (/     ノl|ll / / |  ヽ
            (O  ノ 彡''   /  .|
            /  ./ 〉
            \__)_)
0571566NGNG
>>568
おお、そだな。 0-99の乱数発生だな。
rand関数 滅多につかわんので、まちがえちまった。 % 演算把握の問題って向きもあるが。

> if( ((rand()%100)+1) > compress_rate )  continue;

こんな感じでかんべんしてくれ。
0572デフォルトの名無しさんNGNG
540のは面白いと思う。1次の文脈だけ利用するんだね。

BlockSortingみたいにMoveToFrontにして前の出力との
位置の差を算術符号かstart-step-stop符号で符号化す
れば圧縮できるだろう。

たぶん、素の(0次の)MTFよりは良くて、BlockSortよりは
悪い、実に中途半端な圧縮率が得られてスレの主旨に
ぴったりでは。速度も中間になる(BSよりはだいぶ速い)
はず。
0573デフォルトの名無しさんNGNG
そんなんで圧縮できるわけねーだろ。
0574デフォルトの名無しさんNGNG
>>573
圧縮は当然できるだろ。
0次のMTFと比べてどうかはわからんが。
0575デフォルトの名無しさんNGNG
できるわけねーだろ。
なんでできると思うんだ?
0576540NGNG
>>572
1次に限らずとも可能ですよ。
おっしゃるとおり、2次程度の540 → MTF → 算術でそれなりに縮みます。

大量の文脈を使用する場合、>>547のソースでいう code_count の
扱いが問題になると思います。
0577デフォルトの名無しさんNGNG
>>576
いや、これ次数を高くしたらつまんないと思う。
普通のPPMコーダとかの、高次混合モデルを
作るやつの方が良くなっちゃう。

単にバッファを1MBくらいに大きくしてみれば?
0578540NGNG
> いや、これ次数を高くしたらつまんないと思う。
そうかもしれませんね。
ただ、1次と2次の性能の差はかなり大きかったです。

バッファは8Mでテストしたと思いますが、
これを増やしてもそれほど意味は無いはず。
0579デフォルトの名無しさんNGNG
>>578面白い圧縮法ですね。bigramに限ったブロックソートみたいな。

>>572
0次と1次じゃなくて、1次と2次では? 540のアルゴリズムは2次の
エントロピーコーダですよね。
0580デフォルトの名無しさんNGNG
すごいすごい。めどがついたら、ぜひupして欲しい。
0581デフォルトの名無しさんNGNG
http://piza.2ch.net/tech/kako/980/980257360.html
こんなのがあった…。
0582デフォルトの名無しさんNGNG
ttp://210.153.114.238/img-box/img20021027004155.zip
>>572を実装しますた。頻度表も>>552と同じような方法で追い出し。

SSS符号はイマイチな予感(LZFGで使ってるの位しか知らない…)。
次のアプローチとしてはSSSの代わりに連長+RangeCoderを導入するか
二次化なんだろうけど、さて。
0583デフォルトの名無しさんNGNG
>>582
イマイチなのは当然だろう。
>>572は圧縮でもソートでもない。無意味な作業。
0584デフォルトの名無しさんNGNG
( ´_ゝ`)フーン



では次のネタどうぞ。
0585デフォルトの名無しさんNGNG
単にシャッフルしてるだけじゃん。
なんでこれで圧縮できると思うの?
0586デフォルトの名無しさんNGNG
>>585
MTFとは違う特徴をもったアルゴリズムを作りたかったからだろう。
実際、MTFでは理論的・実践的にいまいちな場面というものが存在する。
普通の定常無記憶情報源での比較ではなく、
特殊な状況で役に立つアルゴリズムというのを考えてみるのもよい。

オレは上の関連で論文を一本書いた。
0587デフォルトの名無しさんNGNG
このスレには

情報理論の分かるヤツと
分からないけどとりあえずコードを書いて分かったつもりになってるヤツと
分からないのでひたすら煽るだけのヤツがいゐ…
0588デフォルトの名無しさんNGNG
>>587
分からないのでひたすら煽るだけのヤツ
0589デフォルトの名無しさんNGNG
>>588
同意。何かを分析した気になっている。
0590デフォルトの名無しさんNGNG
情報理論をわかっているっぽい人には、
とりあえず情報理論の教科書でもあげてもらうか。
0591デフォルトの名無しさんNGNG
>>590
そして逆ギレ。
0592デフォルトの名無しさんNGNG
>>540
限定ソート?
0593590NGNG
>>591
いや、オレもいちおー専門だから。
0594デフォルトの名無しさんNGNG
せんもん・・・何にもせんもん・・・
0595540NGNG
>>592
一言で言うとそうなりますね。
単なる最大限定ソート。
次数を上げるとまさに限定ソートそのものです。

M.BurrowsとD.J.Wheelerが最初に考えたのが
540のような感じじゃないかなと思ったり。
0596デフォルトの名無しさんNGNG
(´-`).oO(7行のSさんってこのスレにはいないのかな…?)
0597590NGNG
持っている本

韓太舜・小林欣吾、情報と符号化の数理、培風館
植松友彦、現代シャノン理論、培風館
情報理論とその応用学会編、情報源符号化 無歪みデータ圧縮

他にはデータ圧縮関連の和書洋書、アルゴリズム関連の本、
情報処理学会、電子情報通信学会、IEEE、などの論文集。
0598デフォルトの名無しさんNGNG
540で圧縮できないという人は何を根拠に言ってるのでしょう。

MTFで「何記号前に出現したか」の平均符号長は1次エントロピーに
漸近するのに対し、540だと2次エントロピーに漸近すると思うのですが。
0599デフォルトの名無しさんNGNG
>>598
わかっている人は、
MTFやブロックソートと同様、記号をかき混ぜているだけで長さは変わらない
ということがちゃんとわかっているから、大丈夫だろうけど。

わかっていない人は、
そもそも>>540の手法とMTFやブロックソート法との比較もわからないのだと思う。
0600デフォルトの名無しさんNGNG
いや、>>540 が面白いこと考え付いたのが悔しくて
わからない人の振りをして荒らしてるだけかも…
ってのは考えすぎか。
0601デフォルトの名無しさんNGNG
いや、実装してみてもやっぱり大して圧縮できないんだけど。
0602デフォルトの名無しさんNGNG
つーか、本当に、何を根拠に圧縮できると思うの?
MTFは記号の出現頻度を故意に変えることで圧縮率を高めるし、
ブロックソートは同じ記号をまとめることで、圧縮率を高める。

だけど、これは本当に単に並べ替えてるだけ。
なぜこれで圧縮率が変わると思えるのか、それが知りたい。
どういう理論?
0603デフォルトの名無しさんNGNG
>>601
たとえ数パーセントでも圧縮されるのなら、>>1の出した仕様に適合すると思われ。
0604デフォルトの名無しさんNGNG
いーからとっとと作ってうpしろよ
仕事おせーな
0605デフォルトの名無しさんNGNG
abababababababab
↓
a:bbbbbbbb
b:aaaaaaaa
↓
符号化する、だろ。
0606デフォルトの名無しさんNGNG
馬
馬馬 → 驫


1/3に圧縮できますた
0607デフォルトの名無しさんNGNG
>>602
だから逆転した文脈1次モデルだろ?
0608デフォルトの名無しさんNGNG
ちょいと試してみた。Calgury Corpus全体の1次エントロピーは5.362bits/symbol
1次のハフマンで最適に符号化したとして5.868bits/symbol
(符号表その他のオーバーへッドは除く。以下同じ。)

単純なMTFの出力の1次エントロピーは5.119bits/symbol
後段にハフマンを用いると5.591bits/symbol

540+MTFの出力の1次エントロピーは、
ブロックサイズ(bytes) エントロピー(bits/symbol) ハフマン符号(bits/symbol)
4096 4.142 4.577
16384 4.043 4.489
65536 4.005 4.460
...
全部1ブロックに入るとき 3.994 4.452

なので、算術符号を用いれば最高で3.994bits/symbolくらいまで圧縮できる。
ハフマンだと4.452bits/symbol

面白いのは最後段にStart-Step-Stop符号を用いたときで、全部1ブロックに入
るとき、
(3, 2, 9)符号を用いると4.830bits/symbol
(2, 2, 8)符号を用いると4.509bits/symbol
(1, 2, 9)符号を用いると4.388bits/symbol
と、符号によってはハフマンより良い結果になる。

ちなみに、gzip -9だと2.606bit/symbol
bzip2 だと2.190bits/symbol
まで圧縮される。
0609デフォルトの名無しさんNGNG
>>602
こんな簡単なことが本当に分からんなら
もう口を出すな。
0610デフォルトの名無しさんNGNG
>>603
いや、この方法自体では圧縮はされないどころか、かえってデータ量が増える。

だから、二次圧縮後のサイズを比べてみたんだけど、この方法を使わない場合に比べて、
ほとんど差は無かった。
こう書くと、「ちょっとは差があったのか?」と聞かれると思うが、それは言葉のあやで、
この方法を使った方が小さくなることもあり、大きくなることもあり、
平均してみると、使わない方がどちらかというと小さくなる。
「使わない方が大きくなる」と言うほどは差がないので「ほとんど差は無かった」と書いただけで、
使った方が少しは小さくなるというわけではない。
で、どういう理論を思っているのかを聞いたわけ。

例えば、>>605のようなデータは、元のデータがもともと圧縮率が高く、ab2で表せる。
二次圧縮後に差が出るとは思えない。
0611デフォルトの名無しさんNGNG
ちなみに、>>608が延々と書いてあることを訳すと、
「ハフマンより算術符号の方が圧縮率が高い」ということね。
0612608NGNG
>>611
> 「ハフマンより算術符号の方が圧縮率が高い」ということね。
もう一つ付け加えると
「540+MTF+SSSは、立派な圧縮アルゴリズムといえる」ということだ。
(少なくとも、1次のハフマンや単純なMTFよりは圧縮率が高い。)
0613608NGNG
参考までに、テストに使ったコード(最初の段)を抜き出しておく。
このあとMTF+(arithmetic or huffman or SSS)してくれ。
 struct chain { struct chain *next; }; /* ただのchain */
 int i, count;
 unsigned a;
 struct chain *p, *list, **head, **tail;
 unsigned char *buffer;
 if ((buffer = malloc(block_size + 1)) == NULL ||
   (list = calloc(sizeof(struct chain), block_size)) == NULL ||
   (head = calloc(sizeof(struct chain), 256)) == NULL ||
   (tail = calloc(sizeof(struct chain), 256)) == NULL) {
  /* エラー */
 }
 while ((count = fread(buffer, 1, block_size, stdin)) > 0) {
  putchar(buffer[0]);
  buffer[count] = buffer[0];
  for (i = 0; i < 256; i++)
   head[i] = NULL;
  for (i = 0; i < count; i++) {
   a = buffer[i];
   if (head[a] == NULL)
    head[a] = tail[a] = list + i;
   else
    tail[a]->next = list + i;
   list[i].next = NULL;
   tail[a] = list + i;
  }
  for (i = 0; i < 256; i++)
   for (p = head[i]; p != NULL; p = p->next)
    putchar(buffer[p - list + 1]);
 }
0614デフォルトの名無しさんNGNG
やってみたが、やっぱり圧縮率は変わらないぞ。
0615608NGNG
復号化。MTFと(arith or huff or SSS)の復号は済んでるとする。
 int i, count;
 unsigned a;
 unsigned char *buffer;
 unsigned *ptr;
 if ((buffer = malloc(block_size + 2)) == NULL ||
   (ptr = calloc(sizeof(unsigned), 257)) == NULL) {
  /* エラー */
 }
 while ((count = fread(buffer, 1, block_size + 1, stdin)) > 0) {
  buffer[count] = buffer[0];
  for (i = 0; i < 257; i++)
   ptr[i] = 0;
  for (i = 1; i < count; i++)
   ptr[buffer[i] + 1]++;
  for (i = 0; i < 256; i++)
   ptr[i + 1] += ptr[i];
  a = buffer[0];
  for (i = 1; i < count; i++) {
   putchar(a);
   a = buffer[ptr[a]++ + 1];
  }
 }
0616608NGNG
callocの引数の順序が逆だった…欝
結果には影響ないけどね。
0617デフォルトの名無しさんNGNG
一つ聞きたいんだけど、どういうデータで比較してるの?
俺はCのソース使ってほとんど差がでないんだけど。
0618608NGNG
だからCalgury Corpusだってば。
データ圧縮の標準データセット。
これ知らないなら本当にモグリだな。
0619デフォルトの名無しさんNGNG
>>617
もしかして対象データのサイズが小さいとか。
どんな手法でもそうだけど、数十バイトを半分にするのは、
数百メガバイトを半分にするよりもいくぶん難しいよ。
0620デフォルトの名無しさんNGNG
自分の知っていることを書いてモグリって言う奴が多いよな。
自分が知っていることは相手も知っていると思うんだろうか。
0621デフォルトの名無しさんNGNG
最近出まわってる7zip形式って何?
0622デフォルトの名無しさんNGNG
Mozillaのソース(約1万1千行, 334294バイト)でやってみた。

MTF+SSS(3,2,9) 254543バイト
540(ブロック64KB)+MTF+SSS(1,2,9) 170454バイト
0623デフォルトの名無しさんNGNG
おいおい。カルガリコーパスは本当に常識だよ。
圧縮プログラムの比較はたいていこれを使う。

>>618はスペル間違えてるけどな(w
(正しくはCalgary corpus)
0624デフォルトの名無しさんNGNG
Calgury Corpusって何?
初めて聞いたよ。
俺ってモグリだから、Calgary Corpusくらいしか知らねーや。
0625デフォルトの名無しさんNGNG
音 たむさんの「awareness」 っていう作品が見れるHP知りませんか?
誰か教えて下さい、お願いします。
0626デフォルトの名無しさんNGNG
使い慣れない単語だとスペルミスがあるんだよね。
0627デフォルトの名無しさんNGNG
小さいCソース(90行)でやってみた。
元: 1920バイト
MTF+SSS: 1470バイト
540+MTF+SSS: 1022バイト
0628デフォルトの名無しさんNGNG
結局540で圧縮できないとか騒いでたやつは
何が理解できなかったの?
2次エントロピーというのが理解できないとか?
0629デフォルトの名無しさんNGNG
>>628
いや、試してダメだったと言ってるって事は、
情報理論が理解できてないだけでなく
アルゴリズムも理解できてないらしい。
0630デフォルトの名無しさんNGNG
全く理解できない。
なんで俺のところではうまくいかないんだ?
本当に他のところではうまくいってるのか?
ちょっと実行ファイル出してみろよ。
0631じゃ、ちょとだけNGNG
MZ
0632デフォルトの名無しさんNGNG
・圧縮率1/2のケース
女男女男女男女男女男女男 → 娚娚娚娚娚娚

・圧縮率1/3のケース
女男女男女男女男女男女男 → 嫐嬲嫐嬲
女女女女女女女女女女女女 → 姦姦姦姦
0633デフォルトの名無しさんNGNG
>>630
ネタでした〜
0634デフォルトの名無しさんNGNG
>>630
ところでmove-to-frontとstart-step-stopは理解できてるのか?
ちょっとどういう理解か説明してみ?
0635デフォルトの名無しさんNGNG
Canterbury corpusも使おうYo!
0636デフォルトの名無しさんNGNG
>>630
日頃の行ないが悪いからそういうことになるんだ
0637デフォルトの名無しさんNGNG
とりあえず、なんでエントロピーが低くなると思うのか、それを説明してみろよ。
でなきゃ、実行ファイルを作れるソース全部あげてみろ。
0638デフォルトの名無しさんNGNG
まだ理解出来ねーでやんの(フ゜バカはほっとこうぜ。
0639デフォルトの名無しさんNGNG
>>608は偉い。スペルミスを除いて。

ところでstart-step-stopってどうコーディングすればいいのか分かりましぇん。
いろんなパラメータで実験してるところから見て恐らくstart,step,stopを
渡せばそのパラメータで符号化・複合する汎用ルーチンを使ってるんじゃないか
と思うんだけど、もしそうなら是非見せて欲しい。

 車
車車 → 轟
龍龍 → 龖(たしかこれの1/3圧縮バージョンもあったはずだがWindowsにはない?)
0640デフォルトの名無しさんNGNG
こんなんでどう?read_bits, write_bitsは適当に作って。
long read_bits(size_t nbits);
int write_bits(unsigned long bitvector, size_t nbits);
int flush_bits(void)
int sss_read(int start, int step, int stop)
{
 int bits = start;
 int base = 0;
 int code;
 while (bits < stop && (code = read_bits(1)) != EOF && code == 0) {
  base += (1 << bits);
  bits += step;
 }
 if (code == EOF || (code = read_bits(bits)) == EOF) return EOF;
 return code + base;
}
int sss_write(int start, int step, int stop, int code)
{
 int bits = start;
 int base = 0;
 int limit = (1 << start);
 while (bits < stop && code >= limit) {
  write_bits(0, 1);
  base = limit;
  bits += step;
  limit += (1 << bits);
 }
 if (bits < stop) write_bits(1, 1);
 return write_bits(code - base, bits);
}
0641デフォルトの名無しさんNGNG
>>640
全然圧縮されねーぞ。やっぱネタ?
0642デフォルトの名無しさんNGNG
つーか、適当に「作って」って言ってるんだから、
完成してないんだよな。
完成してないものは試しようがない。
従って、圧縮されたと言ってるのは妄想。
0643デフォルトの名無しさんNGNG
>>640
サンクスコ!! あとでじっくり読んでみます。

>>641
否定派は否定するならするでもっと真面目にやってください。
工夫しないネタは只のゴミです。
0644デフォルトの名無しさんNGNG
中途半端なくらいが一番2chっぽい
0645デフォルトの名無しさんNGNG
無駄に凝ってるのが2chっぽいんだろ?
0646デフォルトの名無しさんNGNG
>>644
でもビット入出力ルーチンも書けない>>642はどうかと思う
あと素っ頓狂なことを言っている>>641もどうかと。
SSS符号は、単なる符号なんだからモデルをちゃんと作らなくちゃ、圧縮できるはずがない。
そのためのMTFであり>>540なんだろうに。
0647デフォルトの名無しさんNGNG
猿でも分かるように説明してみる。
高い頻度で出現する記号ほど出現間隔は短くなる。頻度の偏りが大きいと
間隔の平均値は小さくなる。これを利用したのがMTF。

「1つ前の記号がxであるときの記号aの出現頻度P2(a,x)」は、
単なる出現頻度P1(a)より一般には偏りが大きい。たとえば、Cのソースだと
改行文字の後に#が出てくる確率は、他の文字の後に出てくる確率よりずっと
高い。

なので、640のように「1つ前の記号」ごとにまとめてMTFで出現間隔をとると、
1次のMTFより平均値が小さくなる。

最悪で、前の記号と無関係(P2(a,x)=P1(a))の場合でも、640は1次のMTFと
同じになる。(1ブロックごとに1文字ふえるだけ。)
0648647NGNG
s/640/540/
0649デフォルトの名無しさんNGNG
/* 2chエンコーダ完動ソース (1/3) */
#include <stdio.h>

#define BLOCK_SIZE 65536
#define ALPHA_SIZE 256
#define ALPHA_BITS 8

unsigned long bitbuf;
size_t bufbits;
void write_bits(unsigned long c, size_t bits)
{
 bitbuf = ((bitbuf << bits) | (c & ((1 << bits) - 1)));
 bufbits += bits;
 while (bufbits >= ALPHA_BITS) {
  putchar(bitbuf >> (bufbits - ALPHA_BITS));
  bufbits -= ALPHA_BITS;
 }
}
void flush_bits()
{
 if (bufbits > 0)
  putchar(bitbuf << (ALPHA_BITS - bufbits));
 fflush(stdout);
}
0650デフォルトの名無しさんNGNG
/* 2chエンコーダ完動ソース (2/3) */
void sss_write(int start, int step, int stop, int code)
{
 int bits = start;
 int base = 0;
 int limit = (1 << start);
 while (bits < stop && code >= limit) {
  write_bits(0, 1);
  base = limit;
  bits += step;
  limit += (1 << bits);
 }
 if (bits < stop) write_bits(1, 1);
 write_bits(code - base, bits);
}
int mtf_array[ALPHA_SIZE];
void mtf_write(int alphabet)
{
 int i;
 int u, next_u;

 for (u = mtf_array[0], i = 0; u != alphabet; ) {
  next_u = mtf_array[++i];
  mtf_array[i] = u;
  u = next_u;
 }
 mtf_array[0] = u;
 sss_write(1, 2, 9, i);
}
0651デフォルトの名無しさんNGNG
/* 2chエンコーダ完動ソース (3/3) */
unsigned char buffer[BLOCK_SIZE];
long list[BLOCK_SIZE], head[ALPHA_SIZE];

int main(int argc, char *argv[])
{
 int i, count;
 unsigned a;
 long p;

 for (i = 0; i < ALPHA_SIZE; i++)
  mtf_array[i] = i;
 while ((count = fread(buffer, 1, BLOCK_SIZE, stdin)) > 0) {
  mtf_write(buffer[0]);
  buffer[count] = buffer[0];
  for (i = 0; i < ALPHA_SIZE; i++)
   head[i] = -1;
  for (i = count - 1; i >= 0; i--) {
   a = buffer[i];
   list[i] = head[a];
   head[a] = i;
  }
  for (i = 0; i < ALPHA_SIZE; i++) {
   for (p = head[i]; p >= 0; p = list[p])
    mtf_write(buffer[p + 1]);
  }
 }
 flush_bits();
 return 0;
}
0652デフォルトの名無しさんNGNG
/* 2chデコーダ完動ソース (1/3) */
#include <stdio.h>
#define BLOCK_SIZE 65536
#define ALPHA_SIZE 256
#define ALPHA_BITS 8
unsigned long bitbuf;
size_t bufbits;
long read_bits(size_t bits)
{
 int c;
 while (bufbits < bits) {
  if ((c = getchar()) == EOF) return -1;
  bitbuf = ((bitbuf << ALPHA_BITS) | c);
  bufbits += ALPHA_BITS;
 }
 bufbits -= bits;
 return (bitbuf >> bufbits) & ((1 << bits) - 1);
}
int sss_read(int start, int step, int stop)
{
 int bits = start;
 int base = 0;
 int code;
 while (bits < stop && (code = read_bits(1)) >= 0 && code == 0) {
  base += (1 << bits);
  bits += step;
 }
 if (code < 0 || (code = read_bits(bits)) < 0) return EOF;
 return code + base;
}
0653デフォルトの名無しさんNGNG
/* 2chデコーダ完動ソース (2/3) */
int mtf_array[ALPHA_SIZE];
int mtf_read(void)
{
 int i, v, code;
 if ((code = sss_read(1, 2, 9)) == EOF) return EOF;
 v = mtf_array[code];
 for (i = code; i > 0; i--)
  mtf_array[i] = mtf_array[i - 1];
 mtf_array[0] = v;
 return v;
}

unsigned char buffer[BLOCK_SIZE + 2];
long ptr[ALPHA_SIZE + 1];

size_t read_block(void)
{
 int count, c;
 for (count = 0; count < BLOCK_SIZE + 1 && (c = mtf_read()) != EOF; count++)
  buffer[count] = c;
 return count;
}
0654デフォルトの名無しさんNGNG
/* 2chデコーダ完動ソース (3/3) */
int main(void)
{
 int i, count;
 unsigned a;

 for (i = 0; i < ALPHA_SIZE; i++)
  mtf_array[i] = i;
 while ((count = read_block()) > 0) {
  buffer[count] = buffer[0];
  for (i = 0; i < ALPHA_SIZE + 1; i++)
   ptr[i] = 0;
  for (i = 1; i < count; i++)
   ptr[buffer[i] + 1]++;
  for (i = 0; i < ALPHA_SIZE; i++)
   ptr[i + 1] += ptr[i];
  a = buffer[0];
  for (i = 1; i < count; i++) {
   putchar(a);
   a = buffer[ptr[a]++ + 1];
  }
 }
 return 0;
}
0655デフォルトの名無しさんNGNG
うを、ちゃんと動くじゃんこれ!
しかも(゚д゚)ハヤー!
でも圧縮率はたいしたことないね(w
0656デフォルトの名無しさんNGNG
>>655
それは2ch版の仕様なので、製品版ならば圧縮率は向上します。


などといってみるテスト。
0657デフォルトの名無しさんNGNG
MTFで
・先頭じゃなくて二番目に持ってくる
・テーブルを256通り持って直前の文字で切り替える

少し良くなる(かも知れない)けどぱっとしないなぁ…
0658デフォルトの名無しさんNGNG
>・先頭じゃなくて二番目に持ってくる
すると先頭は変わらないが、先頭には何が入ってるんだ?

>・テーブルを256通り持って直前の文字で切り替える
データが小さいときは効くだろうね。
0659デフォルトの名無しさんNGNG
>・テーブルを256通り持って直前の文字で切り替える
ひょっとして540って、ソートなんかしなくても、
MTFのコンテクストを256通り持てば同じ事なんでは…
0660デフォルトの名無しさんNGNG
圧縮した
encode.exe < index.html > index.html.2ch

伸張した
decode.exe < index.html.2ch > index.html

感動した >all
0661デフォルトの名無しさんNGNG
>>655
だから、こんなんじゃ圧縮できないって何度も言ってんじゃん。
圧縮できてるのは、MTFのおかげ。既存のアルゴリズム。
0662デフォルトの名無しさんNGNG
>>661
意味不明。1次のMTFより圧縮率高いけど?
0663デフォルトの名無しさんNGNG
>>661
分かんないなら>>647読もうね、ボク。
0664デフォルトの名無しさんNGNG
>>658
二番目の文字が出た場合だけ、先頭と二番目を交換する。
0665デフォルトの名無しさんNGNG
エンコーダの後半を↓のように変えると二次MTFになる。ほとんど同じ結果が得られる。
unsigned char mtf_array[ALPHA_SIZE][ALPHA_SIZE];
void mtf_write(int context, int alphabet)
{
 int i;
 int u, next_u;

 for (u = mtf_array[context][0], i = 0; u != alphabet; ) {
  next_u = mtf_array[context][++i];
  mtf_array[context][i] = u;
  u = next_u;
 }
 mtf_array[context][0] = u;
 sss_write(1, 2, 9, i);
}
int main(int argc, char *argv[])
{
 int i, j, c, last;
 for (i = 0; i < ALPHA_SIZE; i++)
  for (j = 0; j < ALPHA_SIZE; j++)
   mtf_array[i][j] = j;
 last = 0;
 while ((c = getchar()) != EOF) {
  mtf_write(last, c);
  last = c;
 }
 flush_bits();
 return 0;
}
0666デフォルトの名無しさんNGNG
>>664
コードきぼんぬ
0667デフォルトの名無しさんNGNG
>>662
いったい何を根拠に圧縮率が高いと?
実際、ファイルサイズは大きくなるじゃんか。
0668デフォルトの名無しさんNGNG
>>667
ハァ?
ひょっとしてコンパイル&実行のしかたも分からんのか…
0669デフォルトの名無しさんNGNG
>>668
ネタ?
実際に実行して見ろよ。
0670デフォルトの名無しさんNGNG
>>669
したよ? Cのソースだと大体もとの50%くらいになるよね。
0671デフォルトの名無しさんNGNG
>>669
もうそのネタいい加減あきたよ。
>>647読んで分からんやつなら何言ってもムダだし。
0672デフォルトの名無しさんNGNG
俺のところでも圧縮率低くなるんだけど。
0673デフォルトの名無しさんNGNG
圧縮率が高くなるか低くなるかは知らないけど、
どっちにしても圧縮率低すぎ。
0674デフォルトの名無しさんNGNG
DOS環境の人はstdinをバイナリモードにしないとダメかもね。
でも、まさかそんな初歩的なところじゃないよね。
0675デフォルトの名無しさんNGNG
>>674
DOS環境ってWinも含むんでつか?(敬語
0676デフォルトの名無しさんNGNG
なんだか荒れてるようなので試してみた。。。
うちでも全然だめ。
えらく長いネタだったな。。。
0677デフォルトの名無しさんNGNG
80行かそこらで50%圧縮できれば上等だろ。
0678デフォルトの名無しさんNGNG
LinuxとFreeBSDとSolarisでは動いた。圧縮できた。
0679デフォルトの名無しさんNGNG
>>675
知らん。ANSI C互換なら動くはずだ。
0680デフォルトの名無しさんNGNG
CygWinでも動いたよ。
当然binmode.oをリンクしなきゃならんけど。
0681デフォルトの名無しさんNGNG
テキストモードで動かして「圧縮できませ〜ん」と泣いてた
やつらがいるらしい(フ゜フ゜
0682デフォルトの名無しさんNGNG
テキストモードだと圧縮できないの?
改行程度のことで大きくなるようなものでも圧縮って言うの?
0683デフォルトの名無しさんNGNG
圧縮ってデータを小さくすることだよ。
みんな知ってるか?(藁
0684デフォルトの名無しさんNGNG
俺んとこでも圧縮できない。もちろんバイナリモードで試してみた。
なんだよ、ネタかよ!
0685デフォルトの名無しさんNGNG
圧縮できないってやつは、できなってデータをどこかにうpしたら?
あるいは、Calgary corpusで試すかだ。
ちなみに paper1 で 4.679bpc だった。
0686デフォルトの名無しさんNGNG
>>685
もういいって。そのネタ、しつこいし、面白くない。
いつまで続くの?
0687デフォルトの名無しさんNGNG
い ろ ん な 意 味 で ネ タ が 出 尽 く し て ま い り ま し た 。
0688デフォルトの名無しさんNGNG
根本的に分かってないやつがいるな…元データはともかく、圧縮結果は当然バイナリになるんだから、
テキストモードで入出力できるはずがないだろ。
0689デフォルトの名無しさんNGNG
>>688
大きさの話をしてるんだよ(藁
0690デフォルトの名無しさんNGNG
Calgary corpusの圧縮結果(bytes)
データ: 圧縮後/元サイズ
bib: 66314/111261
book1: 470878/768771
book2: 361427/610856
geo: 75105/102400
news: 235941/377109
obj1: 13857/21504
obj2: 127266/246814
paper1: 31091/53161
paper2: 48992/82199
paper3: 28162/46526
paper4: 8030/13286
paper5: 7115/11954
paper6: 22117/38105
pic: 159535/513216
progc: 21760/39611
progl: 35562/71646
progp: 23932/49379
trans: 49036/93695
0691デフォルトの名無しさんNGNG
>>689
うわ、すげーバカ(藁
テキストモードって知ってるのか?
Cの入出力の話だぞ。
0692デフォルトの名無しさんNGNG
VC++でgetchar()が改行変換しないようにするにはどうやればいいの?
誰か教えて!
0693デフォルトの名無しさんNGNG
>>692できない。ファイルI/Oに書き換えろ。
0694デフォルトの名無しさんNGNG
Canterburry Corpusの圧縮結果
alice29.txt: 89224/152089
asyoulik.txt: 71590/125179
cp.html: 15010/24603
fields.c: 5541/11150
grammar.lsp: 1844/3721
kennedy.xls: 530275/1029744
lcet10.txt: 250429/426754
plrabn12.txt: 284824/481861
ptt5: 159535/513216
sum: 19919/38240
xargs.1: 2464/4227
0695デフォルトの名無しさんNGNG
圧縮できないと騒いでるのはネタだろ。
でなきゃzipファイルを圧縮しようとしたとか。
0696デフォルトの名無しさんNGNG
>>695
厨がこんなことに関心を持つとすれば、
エロ画像かエロ動画(w
0697デフォルトの名無しさんNGNG
あー、画像ね〜。
そりゃ元より大きくなるわな。
BMPなら圧縮できそうだが。
0698デフォルトの名無しさんNGNG
jpeg,gif,png,mpeg,motion-jpeg, mp3, etc.
すべてぎちぎちに圧縮しているので、
できたとしてもコメント部分などのヘッダ部だけだろう。
0699デフォルトの名無しさんNGNG
Calgaryコーパスのような実在データで、圧 縮 で き な い 証 拠 を提出できないのは、
540に反論して引っ込みがつくなくなったやつ、でよろしいですね(Y/y)

0700デフォルトの名無しさんNGNG
つーか、>>647 みたいな簡単な議論に反論もできないんだから、そもそも最初からついて行けてないんだろう。
0701デフォルトの名無しさんNGNG
とりあえず「データ圧縮ハンドブック」読んどけ
http://www.pearsoned.co.jp/washo/prog/wa_pro30-j.html
0702デフォルトの名無しさんNGNG
特筆すべき点は、圧縮率ではない。それよりも、

 .2ch  と  い  う  拡  張  子  だ  !!


というわけで、.2chをでほるとにして、引数をひとつだけとる
ようにしてくれませんかね。
0703デフォルトの名無しさんNGNG
>>702
コンソールアプリなら、
gzip, bzip2 互換のインタフェースの方が使いやすい。
0704デフォルトの名無しさんNGNG
まだやってんのか。しつこいネタだな。
画像どころかCソースでも圧縮できない圧縮法に何の意味があんの?
0705デフォルトの名無しさんNGNG
>>704
「圧縮できない」ネタうざすぎ。
なんの工夫もなく「圧縮できない」というウソを繰り返すだけのやつは
もう飽きたってば。

>>690 や >>694 のとおりCソースもほぼ50%に圧縮できている。
以後は >>647 >>690 >>694 に対抗したコメントを捏造するくらいの
工夫をせよ。
0706デフォルトの名無しさんNGNG
だから、ねつ造したコメントはもう飽きたってーの。
圧縮できた妄想患者はすれ違いだからさっさと出て行け。
0707デフォルトの名無しさんNGNG
まあまあ。
本人たちが圧縮できてると思ってるんなら、それでいいじゃん。
彼らはそれで圧縮して満足なんだし、圧縮できないと思えば
普通のアーカイバを使えば済むこと。

---------------終了---------------
0708デフォルトの名無しさんNGNG
「彼ら」って言うか、「彼」だけどね。
0709デフォルトの名無しさんNGNG
>>706-708
だから工夫しろって。
せめて >>647 に一言いってみろや。
2次のMTFと同等だから圧縮できて当り前だろ?
0710デフォルトの名無しさんNGNG
706=707=708 ウザイ氏ね
0711デフォルトの名無しさんNGNG
同等じゃねーよ。もう飽きたよ。お前こそ工夫しろ。
0712デフォルトの名無しさんNGNG
>>709
彼(ら)の頭ではうpされたコードどころかword countも理解できません。
0713デフォルトの名無しさんNGNG
>>711
647に一言いってみろや。なんにも言えないんだろ(藁
0714デフォルトの名無しさんNGNG
>>704-712
圧縮できる/できない で埋め立てるつもりか?
0715デフォルトの名無しさんNGNG
Calgary, 2chコーダ, 2次MTF, 元データ(bytes)

bib: 66314, 66687, 111261
book1: 470878, 470260, 768771
book2: 361427, 360827, 610856
geo: 75105, 76935, 102400
news: 235941, 235700, 377109
obj1: 13857, 14105, 21504
obj2: 127266, 126602, 246814
paper1: 31091, 31521, 53161
paper2: 48992, 49321, 82199
paper3: 28162, 28544, 46526
paper4: 8030, 8332, 13286
paper5: 7115, 7416, 11954
paper6: 22117, 22507, 38105
pic: 159535, 159648, 513216
progc: 21760, 22223, 39611
progl: 35562, 35849, 71646
progp: 23932, 24316, 49379
trans: 49036, 49343, 93695

優劣は微妙だが誤差範囲かも
0716デフォルトの名無しさんNGNG
ブロックサイズを大きくしていけば(順序が違うだけで)
平均符号長が2次MTFの出力に漸近するのは明らか。
0717デフォルトの名無しさんNGNG
アルゴリズムはともかく >>649-654 のプログラミングは
なかなか見事だと思う
0718デフォルトの名無しさんNGNG
拡張子2chにこだわるやつはいったい2chの何なんだ?
ただの名無しだろ?
0719デフォルトの名無しさんNGNG
yzなんとかみたいな、自分の名前を出すのは恥ずかしい行為だと思ったから2chにしたんだろ。
もっとも>>649-654は十分なアイデアが出尽くす前に2chエンコーダ・デコーダを
名乗ってしまったわけで、それはそれで名無しではあるが「俺が2chエンコーダ・
デコーダの作者だ」と主張しているようでいかがなものかと。
0720デフォルトの名無しさんNGNG
2chにこだわってるのは>>1か馬鹿
0721デフォルトの名無しさんNGNG
>>719
>十分なアイデアが出尽くす前に2chエンコーダ・デコーダを
>名乗ってしまった

もうここらでいいんじゃない? 中途半端なところで。
こんな駄スレに次スレは立たないだろうし。
0722デフォルトの名無しさんNGNG
おい!も前ら!
>>649-654を試してみたよ。
>>649-654を圧縮してみたわけよ。
そしたら1.93KBが1.00KBになったわけよ。
で、驚きながら出コードしてみたわけよ。
そしたら511バイトになったわけよw

ネカマ口調で書いてみたけど、
なんかコンパイルでミスったのか?オレは。
0723デフォルトの名無しさんNGNG
一時期の勢いなら次スレ行くんじゃないかと思ったが、ネタが尽きて終わったか…
ま、これもひとつの2chではあるな。

>>722
main()の頭に
setmode (fileno (stdin), O_BINARY);
setmode (fileno (stdout), O_BINARY);
入れてみても駄目かい?
0724デフォルトの名無しさんNGNG
>>540 を文字単位じゃなくて
4ビット単位とか2ビット単位とか1ビット単位で
並び替えるとどーなるんでしょう? 意味無し?
0725デフォルトの名無しさんNGNG
>>724

(1)次数に制限のない高次のモデルを使って、
(2)符号長を1bitより短くできるような符号化をするなら、
入力を短いbitで切ってもあまり関係ない。

540とSSSだとどっちも充たさないから短いbitで切ると損。
0726デフォルトの名無しさんNGNG
むしろ16bitずつ切ることを考えた方が良いのでは?
0727デフォルトの名無しさんNGNG
しばらく見ないうちにおもしろくなってるね。
テキスト系でだいたい半分。
当初の目的のAA系だとものによって20%くらいまで減らせるようだ。

解凍がなかなか早いのもGood
0728デフォルトの名無しさんNGNG
>>651 のコードにバグがあると思う。
unsigned char buffer[BLOCK_SIZE];
は
unsigned char buffer[BLOCK_SIZE + 1];
としないとマズイのでは。
0729デフォルトの名無しさんNGNG
256通りにソートする替わりに直前の2バイト見て65536通りに
ソートしたらさらに圧縮率が上がったけど、けっきょく文脈ソートや
ブロックソートに近づいているようで鬱
0730デフォルトの名無しさんNGNG
おまえらに .2chの拡張子を語れるちからはナイ

.DQNがおにあいだ

まずDQNkarahajimere
0731デフォルトの名無しさんNGNG
>730
IMEを全然操れてないところがDQNぽくてナイス
0732デフォルトの名無しさんNGNG
拡張子 .AA
0733デフォルトの名無しさんNGNG
拡張子 .AAA(アスキー アート アーカイブ)希望
0734デフォルトの名無しさんNGNG
拡張子はいいから技術について語れろ喪前質
0735デフォルトの名無しさんNGNG
すでに似たようなのがありそうですけれども、LZ78系の辞書をMTFで管理するのはどうでせう。

compressなんかだと単純に出現順に割り当てた
符号語を出力しますが、それをさらにMTF+可変長符号で
頻度が高いものほど短くなるように符号化する。

あらかじめ決めた辞書サイズが溢れたら、MTFで
いちばん下のところ(最近使われていないところ)
を辞書から削除する。
0736デフォルトの名無しさんNGNG
>>735

辞書の捨て方はBTLZ(V.42bisに使われたやつ)に似ているが、
あれはMTF符号化をしていなかった気がする。
0737デフォルトの名無しさんNGNG
>>735
LZ78系だと基本的には辞書に登録する単語がどんどん長くなるわけだけど
そうすると新しく登録した単語ばかりが使われることになるだろうから
MTFが効かないような気もする。

最長不使用法で古い単語を捨てて辞書を小さく保つのは有効のはず。
単純なLZ78に組み込む場合はその処理に時間がかかるのがデメリットだけど
MTFに組み合わせるなら殆ど負担にはならないのが利点かな?
0738デフォルトの名無しさんNGNG
でも、辞書のエントリを単純に捨てるわけにはいかないよね?

そのエントリが他のエントリから参照されているかも知れないから。
その時はどうする? 子供も全て捨てるか、「子供のいない最も古い
やつを捨てる」か。
0739デフォルトの名無しさんNGNG
LZ78とMTFは相性悪いよ。

MTFは「最近出てきたものがまたすぐ出てくる」とき良く圧縮できる。
LZ78は「一度出てきたものは辞書に登録して、
なるべく同じ出力を繰り返さない」ことを狙いとしている。
0740SYN ◆8smMJ0UaoA NGNG
MTFはとりあえず簡単なモデル化をしたいときには便利ですが、
きちんとした符号化を考えた時、最適(とはいわないでも良好)なモデル化とはいいがたいです。
無条件に先頭に持ってくるのは少々乱暴な感じ。
出現率をきちんと管理できるのであれば、「移動させる」MTFは必要ないです。
0741SYN ◆8smMJ0UaoA NGNG
>>465
GCAは実験的作品なので糞なのは認めます。ごめんなさい。
ただ、ガイシュツの理論だけではないです。
BWT+MTF+RangeCoderで作ってみるとわかりますが、
それだけではあまり圧縮率が出せません。
0742SYN ◆8smMJ0UaoA NGNG
>>469
偉そうにしているように見えたら申し訳ないです。
内輪でゲーム用ツールとして公開していただけですので…。
勘弁したってください。
0743デフォルトの名無しさんNGNG
お、SYNさんだ。開発がんがってね(*^ー゚)ノ
0744SYN ◆8smMJ0UaoA NGNG
>>460
気に入らないことがあるなら私に直接言ってください。
fjの方の方でしたら、知っていると思いますが、
「ヤりたい」のなら私はそれに付き合うつもりもあります。
某TRPG関連の方でしたら、本当の事実を知らないだけです。
その場合も私に連絡をください。真実をお伝えしますから。

わざと壊した.gcaファイルを配布する人や、ウィルス入りのファイルを
配布する人もいて、本当に困るよ…。
0745デフォルトの名無しさんNGNG
来ると思った。
まぁ公開アルゴリズムをつかいながGCAソース非公開
アーカイバプロジェクトへのGCA/APIの一部非公開
が問題だな
0746SYN ◆8smMJ0UaoA NGNG
>>745
ソースを公開していないのは、仕様変更がしにくくなるからです。
そういう意味でGCAはまだ完成していません。真打はGCAではないですし…。
それにGCAみたいなしょぼいソフトのソースなど誰も見たがらないと思う。
0747SYN ◆8smMJ0UaoA NGNG
話をアルゴリズムに戻すと、
限定ソートのメリットってほとんどないです。szipで使われていますが、
完全ブロックソートでも、あれに近いぐらいの速度が出ます。
完全=大まかにソート(限定ソート)+αなのですが、このαの部分って
ほとんどのファイルのデータでは極小なので、差はほとんど出ないです。
0748デフォルトの名無しさんNGNG
>>747
その割にB&Wはソートの高速化に苦労していたみたいだが。
特にバイナリで0x00が大量に続くようなとき、単純なソートだと
恐ろしく遅くなるよ。
0749デフォルトの名無しさんNGNG
だれだー7行スレに依頼したのはw
0750デフォルトの名無しさんNGNG
なんか見覚えのあるコテハンが現れて偉そうなこと言ってると思ったらGCAか。
アルゴリズムがどうの言ってる暇があったら自己展開書庫のヘタレUIを改善して欲しいよ…
0751デフォルトの名無しさんNGNG
>>748
だから最初にランレングスしたり
ブロックのバイト列の終端にどの数よりも必ず大きく(小さく)なる値を割り当てて
比較長を短くしたりする、いろいろな工夫があるんだろ?
0752デフォルトの名無しさんNGNG
ちなみに、限定ソートはメリットが無いと言うが、
ブロックサイズを(完全と比べて)果てしなく大きく取ることが出来るので
ある種のデータではブロックが小さい完全ソートより
良好な結果を得ることが出来ると思うんだが。
0753デフォルトの名無しさんNGNG
>>751
だから単純なソートだと遅いから高速化に苦労してたって、>>748が言ってるだろ?
0754デフォルトの名無しさんNGNG
>>753
それならば、すでに先人が苦労した成果があるんだから
後からそれを利用するだけなら大した苦労も無いだろう。
0755デフォルトの名無しさんNGNG
>>754
話の筋を追えんやつだな(w
0756SYN ◆8smMJ0UaoA NGNG
>>750
SFXにそんな要望があるとは知らなかった。スマソ。
次のソフトで改善します。ありがとう。
0757SYN ◆8smMJ0UaoA NGNG
>>752
そうなんですか?どうやったら出来るのでしょうか…。
完全も限定も、必要なバッファサイズはO(n)になりませんか?
0758デフォルトの名無しさんNGNG
限定ソートの利点:コードが小さい。
80行で完全ソート書いてみて >>SYN
0759デフォルトの名無しさんNGNG
7行スレに持ってけば7行未満で書いてくれそうだな(w
0760デフォルトの名無しさんNGNG
コテハンが嫌われる理由がわかったようなきがする

0761デフォルトの名無しさんNGNG
>>757
オーダーにするとその通りだけど、限定ソートなら 1(n/2)+ちょっと で出来るでしょ。
0762デフォルトの名無しさんNGNG
なんかこっちではコテハン不評なのでやめます。

>>758
限定ソートほどじゃないけど、速度を気にしなければ、
普通に書いても2,30行ぐらいでいけます。
ちなみに展開の方は普通に10行ぐらいで書けます。

>>761
確かにバッファは減らせるけど、それによって確保できるブロックサイズは
精々数倍程度で、果てしなく大きくってほどじゃないと思うけど…
それにブロックサイズは無闇に大きくするとデータの揺らぎに対応できずに、
結果が悪くなることが多いです。
0763デフォルトの名無しさんNGNG
ホラでなく、昨年のクリスマスに
「540+MTF+ハフマン」
で圧縮ソフト組んだのですが。
MTFとハフマンはそこらへんから拾ってきたソース組み込んだだけだったけど。

いや、別にいいんだけどさ。
0764デフォルトの名無しさんNGNG
>>762
2〜30行ならうpしてみろや
可変長符号だけで10行やそこらはかかると思うんだが
まさか最密充填コード?
0765デフォルトの名無しさんNGNG
ひかえおろうひかえおろう七行プログラマーじゃー
0766ふトンカ ◆wX94FutoNg NGNG
素人考えですが、圧縮率最強なら、たとえば
DVD-ROM片面2層の辞書を持っている、
有名な曲とか、定番の発言とか、全部入っている
そうしたらすごい圧縮できるんてじゃないでしょうか。

10MBのMP3が10KBに!、とか…
まぁそこまでは行かなくともですが、、まぁ多分、原理的に無理だから誰もしないんですよね、、失礼。
0767デフォルトの名無しさんNGNG
そういうアカシックレコード理論は狂おしいほどガイシュツ。
0768デフォルトの名無しさんNGNG
>>SYN
ソース公開しろとまでは言わんが、
GCAのMAC版、Unix版が無いのはいかがなものか?
自分でGCAがヘボイと言っているのならそれは自分でゴミを垂れ流してることになるだろ
0769デフォルトの名無しさんNGNG
自分の作ったものに自信持てや
0770デフォルトの名無しさんNGNG
>>763
クリスマスに、ってのが泣ける。
・゚・(ノД`)・゚・。
0771デフォルトの名無しさんNGNG
>>768
身内用に作ったものを勝手に使用しているようなものなのに、なんでえらそうなんですか
もともと趣味で作ったもの。MacやLinux版をわざわざ出すわけないでしょう
圧縮方法もまだしっかり確立していないのに

今のはテスト版のようなもの。圧縮方法がしっかりときまったらソース公開や他OS版も考えるでしょう
0772デフォルトの名無しさんNGNG
きっとゴミかもしれないけど垂れ流してみたい年頃なんだよ。
0773デフォルトの名無しさんNGNG
ほら早く2、30行で完全ソート圧縮かいてみせろや!
0774デフォルトの名無しさんNGNG
身内用なら身内だけに公開しろ
それだけだ
0775デフォルトの名無しさんNGNG
>>773
ブロックソート関連のWebページ逝けば30行くらいで普通に載ってるぞ。

それに、bzip2のソースも実質そんなていど、といってみるテスト。
0776☆南幸☆NGNG
http://www5e.biglobe.ne.jp/~nanko-m/index.htm
0777751NGNG
>>775
最後の符号化も入れてか?
0778デフォルトの名無しさんNGNG
>>777
MTFが3〜4行、算術符号は5行くらいでかけるから、
qsort使ってよいなら、かなり短くなると思うよ。
0779デフォルトの名無しさんNGNG
>>778
もったいぶらずに早く書いてよ。
0780デフォルトの名無しさんNGNG
>>764
>>773
>>777
普通BWTは圧縮とは言わないから、符号化までは入れないでしょう。
後段の符号化をやらないで、ベタで垂れ流してもBWTであることには変わりないですし。
0781デフォルトの名無しさんNGNG
>>780
なあんだ。ホラかよ。
限定ソートが80行に対して2、30行で書けるとかほざいときながら。
0782778!=780NGNG
>>781
完全ソートなら30行で書けますよね?
限定ソートの方が、工程が多い分だけ長くなるということで。

>>780
始めは俺もBWTだけを書くという話だと思ってたよ。
もしかして>>777>>781はBWTを知らないんじゃないかと・・・
0783デフォルトの名無しさんNGNG
漏れがまだ学生だった頃の糞コードを見たら、
半数が空行やコメントのプログラムが、73行だった。実質30行台。
うはっ、われながらひどいプログラムだ。
0784デフォルトの名無しさんNGNG
>>768
スマソ。それは遅れていただけで、やる気が無いわけではないです。
確かに今のUIがヘボイことは認めざるを得ません。
ただ、UIの発展をどういう方向に進ませるべきか意見を聞きたかったのです。
結果はDGCAで出せると思います。
同時ではないですが、MAC、Linuxの予定もあります。
0785デフォルトの名無しさんNGNG
>>782
いや、bzip2のソースもBurrowsとWheelerの論文も読んでるけどさ。
限定ソートの高速なソースは現に80行かそこらであるわけよ。>>649に。
んで、SYNは限定ソートのメリットなんて無いとほざいたわけよ。
たった2、30行で書けると。
ホラ吹くんじゃねーよ(w
0786デフォルトの名無しさんNGNG
速度の差も極小と言ったよな。
30行で高速なブロックソート圧縮プログラム早くうpして見せろや。
0787デフォルトの名無しさんNGNG
>>785
確かに>>649はそれはそれですごいが、
あれをBWTの限定ソートと呼ぶのはどうかと。
そんなことをいったら1次モデルもBWTの限定版になってしまうがな。
0788デフォルトの名無しさんNGNG
>>785
SYNの言うこといちいち真に受けるなよ(w
だからコテハンなんてろくな香具師じゃないって。
0789デフォルトの名無しさんNGNG
>>787
じゃああんたのいう限定ソートって何?
0790デフォルトの名無しさんNGNG
>>785 お初です。
限定ソートにメリットが無いことは、各種論文でも言われていると思うけど。
本当にブロックソート関連の論文読んだの?
0791デフォルトの名無しさんNGNG
>>789
bzip2みたいに、せめて100kバイト程度のブロックであって欲しいな。
0792デフォルトの名無しさんNGNG
ごちゃごちゃ言い訳してないで
2-30行のソースとやら晒して見せろや
嘘つきヤロウ
0793デフォルトの名無しさんNGNG
>>791
bzip2のブロックと、限定ソートの長さ制限は意味が違う。
0794デフォルトの名無しさんNGNG
>>791
それだけかよ(w
じゃあ#define直せば限定ソートになるのか?
0795デフォルトの名無しさんNGNG
>>785
あー、それなら私が悪かった。申し訳ない。
ソースコードが小さいというがメリットになると思っていなかったので。
ただ、速度を気にしないBWTは異様なほど小さく出来る。
選択ソートやバブルソート使ったら( ゚Д゚)ゴルァ!かもしれませんが。
しかし、ここはIDも出ないのですね。自分の発言がどれかわからなくなりそう。
0796デフォルトの名無しさんNGNG
ttp://member.nifty.ne.jp/DO/algorithm/blocksorting.htm
ここに載っているのにqsort使うと30行くらいじゃないか?
0797デフォルトの名無しさんNGNG
>>792
まてまて、焦ってはいけない。
>>540から>>649が登場するまでだって、あれだけ時間がかかったのだ。
せめて1〜2日はまってやろうじゃないか。
0798デフォルトの名無しさんNGNG
>>762では速度が遅くても良いと書いてあるけど、
本当に速度を気にしなくても良いなら、qsortつかって7行プログラミングできそう。
0799デフォルトの名無しさんNGNG
>>798
がいしゅつです。
すでにBWTは7行プログラミングされてます。
0800デフォルトの名無しさんNGNG
800!
なんだもう7行で概出か・・・俺が間違ってたよ。
0801デフォルトの名無しさんNGNG
>>800
お前誰だよw

>>799
無かったぞ。それともたまたまdat落ちしているpart2にあったとでも?
都合がいいな。
0802デフォルトの名無しさんNGNG
ちゃんと圧縮まで出来ねーと無価値。
0803デフォルトの名無しさんNGNG
>>802
んなこたーない。
BWTに限らずデータ圧縮モデルは遺伝子解析や言語解析などでも使われている。
0804デフォルトの名無しさんNGNG
正直、短いだけのBWTなんてどうでもいいと思う。
0805デフォルトの名無しさんNGNG
>>804
J. Seward のオリジナルの実装や、Larrson-Sadakaneの実装、二段階ソート法は、
速い上にそこそこ短い(実質50-60行くらいか)。
0806760NGNG
その「実質」とかいう言い訳は見飽きた。
0807デフォルトの名無しさんNGNG
>>806
まったくだ。
いくら互換性や大量のコメントがあるからといって、実質を持ち出されてもね。
アルゴリズムそのものは単純なのにね。
0808デフォルトの名無しさんNGNG
いまさらブロックソーティングなんてどうでもいいと思う。
10年近くも前のアルゴリズムじゃないか。
0809デフォルトの名無しさんNGNG
>>806
アルゴリズムが同じでも、コーディング能力によって倍くらいコード長が違う。
ま、>>795,>>808と同じでいまさらBWTがどうしたなんかどうでもいいが。
0810デフォルトの名無しさんNGNG
「実質〜行」なんていう言い訳は見飽きたから、
さっさと30行で書いて見せろっつーの。
0811デフォルトの名無しさんNGNG
>>810
7行プログラミングスレにありましたよ
0812デフォルトの名無しさんNGNG
>>811
圧縮できる完動品が?
0813デフォルトの名無しさんNGNG
>>812
MTFとレンジエンコーダーもあるから、自分で組み合わせてみたら。

つーか、そもそもの発言は符号化までは含まない単体のBWTについてだったのでは?
0814デフォルトの名無しさんNGNG
あのな。540から延々「実際に圧縮できる」限定ソート(もどき)の
話してて、実際に完動するソースが出てて、
ソースのサイズ比べる話が出て、なんでそこだけ「符号化までは含まない
単体」の話になるんだよ。
0815デフォルトの名無しさんNGNG
>>814
知るかYo
0816デフォルトの名無しさんNGNG
>>815
そうかYo
0817デフォルトの名無しさんNGNG
>>815-816
も前らに聞いてないYo
0818デフォルトの名無しさんNGNG
>>814
それなら、その限定ソートの部分を完全ソートに置き換えればいいだけでは?
BWTは速度を気にしなければ、
・読み込んだバッファを2倍にして同じものをコピー(2行)
・インデックス生成(1行)
・ソート(qsortでも何でもいい)(1行)
・比較関数(2,3行)
・FirstIndexとソート結果のインデックスから文字を出力(4,5行)
で書けます。マルチで書けば、ほとんどが一行に収まります。
0819デフォルトの名無しさんNGNG
能書きはいいからさっさとやって見せろって。
0820デフォルトの名無しさんNGNG
>>819
7行スレのBWTを分解して>>649に組み込めYo
0821デフォルトの名無しさんNGNG
>>820
面倒だYo
お前がやってくれYo
0822デフォルトの名無しさんNGNG
書きたいものは何ですか  難しいものですか?
スレの中もログの中も  探したけど見つからないのに
まだまだ探す気ですか  それより自分で書いてみませんか?
BWTを BWTを 書いてみたいと思いませんか?
ウフッフー  ウフッフー  ウフッフー  さーあー!
0823デフォルトの名無しさんNGNG
>>822
BWTは7行スレpart2にあったはず。現在dat中。
0824デフォルトの名無しさんNGNG
あーもう、ごまかすなよ
0825デフォルトの名無しさんNGNG
>>786みろよ。
なんでqsortつかったトロいソート書くんだよ?

七行part2のブロックソートって

#include <stdlib.h>
typedef unsigned char b;e(b*s,b*d,int c){unsigned*o,i=0,r;o=calloc(65536,4);c--
;for(i;i<c;i++)o[s[i]<<8|s[i+1]]++;o[s[c]<<8|*s]++;for(i=1;i<65536;i++)o[i]+=o[
i-1];d[--o[s[c]<<8|*s]]=s[i=c-1];for(;i;i--)d[--o[s[i]<<8|s[i+1]]]=s[i-1];r=--o
[*s<<8|s[1]];d[r]=s[c];free(o);return r;}

これと

#include <stdlib.h>
typedef unsigned char B;void d(B*s,B*d,int c,unsigned x){unsigned*o,i,a=0,t[256
];memset(t,0,1024);for(i=--c;i;i--)t[s[i]]++;o=calloc(65536,4);for(;i<256;i++){
memset(d+a,i,t[i]);a+=t[i];}for(i=0;i<=c;i++)o[(s[i]<<8)+d[i]]++;for(i=1;i<
65536;i++)o[i]+=o[i-1];*d=d[x];d[c]=s[x];d[c-1]=s[--o[(d[c]<<8)+*d]];for(i=c;i>
2;i--)d[i-2]=s[--o[d[i-1]<<8|d[i]]];free(o);}

これと

#include <stdlib.h>
enum{S=256};typedef unsigned char UC;int cmp(void*a,void*b){return memcmp(a,b,S
);}UC*bs(UC*s,UC*d){UC*p,**t,i;p=malloc(S*2);t=malloc(S);for(i=0;i<S;i++)p[i]=p
[i+S]=s[i],t[i]=p+i;qsort(t,S,S,cmp);for(i=0;i<size;i++)if(p== t[i])break;*d++=
i;for(i=0;i<S;i++)d[i]=t[i][S-1];free(p);free(t);return --d;}

これくらいだぞ
0826デフォルトの名無しさんNGNG
限定ソートって、なんかメリットあるの?
デコるときの複雑さと遅さを考えると、使う気になれない。
0827デフォルトの名無しさんNGNG
別に複雑でもないみたいだが。
ケツから復元していけば良いだけだろ?
まぁ、キャッシュは外れまくりそうだが…
0828デフォルトの名無しさんNGNG
>>827
デコードは完全ソートの方がシンプルで高速だよね。
0829デフォルトの名無しさんNGNG
このスレの伸び具合はネタがあるかどうかじゃなくて
必死なヤツがいるかどうかだったのか…

おまいら必死だな(藁
0830デフォルトの名無しさんNGNG
BrainFuck <[+-.,]>
http://pc3.2ch.net/test/read.cgi/tech/1036013915/

圧縮してくれ
0831デフォルトの名無しさんNGNG
なんか物凄くどうでも良いことで言い争ってるように見える…
0832デフォルトの名無しさんNGNG
>>830
pc3.2ch.net/test/r.i/tech/1036013915

少し短くしますた。
0833デフォルトの名無しさんNGNG
結論:S Y N 逝 っ て よ し
糸冬 了
0834デフォルトの名無しさんNGNG
never
never
uzeee
0835shinnetNGNG
DGCAのソースは七行です
0836デフォルトの名無しさんNGNG
もうちょい実のある話をしなさい
0837デフォルトの名無しさんNGNG
でもまぁ、叩かれるだけマシだよなー。

話題にも上らないよりかは。。

0838デフォルトの名無しさんNGNG
そ、そんなことないですよっ!
ボクは、僕はyz2も大好きです!!
0839yz2NGNG
叩かれるのはイヤでつ。
0840デフォルトの名無しさんNGNG
っていうか、いつまでアルファなんだよ!>yz2
0841デフォルトの名無しさんNGNG
Cマガの記事によれば もーすぐ新しいバージョン出るらしいけど。
ベータになるのか、アルファのまんまか、はたまた出ないのか?
0842デフォルトの名無しさんNGNG
yz3のアルファ版
0843デフォルトの名無しさんNGNG
yz3とDGCAは統合されます。
0844デフォルトの名無しさんNGNG
HSP 最高
0845デフォルトの名無しさんNGNG
>>844
初耳です。

> HSP(High Speed signal Processor)
> 各種圧縮/伸張フォーマット(*2)に対応した高速DSPです。
うーん。アルゴリズムと関係あるのか?
0846デフォルトの名無しさんNGNG
>>540みたいのってAAのアシュークにイインジャネーノ?
同じ全角文字はたくさん出てくるだろうし
半角文字2つの同じ並びもたくさん出てくるだろうし。
0847デフォルトの名無しさんNGNG
まぁ、その、なんだ。
人様の作ったものに対して色々文句言ってるやつがいるが、
文句があるなら自分で作ればよかろう。
それも出来もしないなら、おとなしくいていろってこった。
0848デフォルトの名無しさんNGNG
>>847
激しく同意
0849デフォルトの名無しさんNGNG
>>847
同意。
0850デフォルトの名無しさんNGNG
>>847
まったく同意
0851デフォルトの名無しさんNGNG
847がSYNで、同意している奴らがGCA叩いてたアホどもだったらわらえる
0852デフォルトの名無しさんNGNG
>>851
SYNタンは>>847とは逆の意見という罠

download板での発言

578 名前:SYN 投稿日:02/01/23 22:44 ID:NsxsovNn
>>562
様々な改善案を教えていただけるだけでなく、本音で「ここが糞」
という意見が聞ける2chは、本当にありがたいです。
0853デフォルトの名無しさんNGNG
学生の頃書いた二段階ソート法によるBW変換(当時のコメント削って50行)
もっと速いバージョンはバグが入ったので、今作りなおしている。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static unsigned char *pText;
static int gLen;
int compare(const void *a, const void *b) {
 int l = gLen - ((*(int *)a < *(int *)b) ? *(int *)b : *(int *)a);
 int r = memcmp((const char *)(&pText[*(int *)a]),
         (const char *)(&pText[*(int *)b]), l);
 return (r == 0) ? (*(int *)b -*(int *)a) : r;
}

int main(int argc, char *argv[]) {
 FILE *fp;
 unsigned char *str;
 int i, j, k, l, *aArray, *aNext, pos, list[256], sum[256];

 if (argc < 2) {puts("usage> exec infile"); return -1;}
 fp = fopen(argv[1], "rb");
 fseek(fp, 0, SEEK_END); gLen = ftell(fp); rewind(fp);
 pText = str = (unsigned char *)malloc(gLen +1);
 fread(str, 1, gLen, fp);
 str[gLen] = 0;
0854853続きNGNG
 aArray = (int *)calloc(gLen +1, sizeof(int)); /* これが suffix array */
 aNext = (int *)malloc(sizeof(int) *(gLen +1));
 for (i = 0; i < 256; i++) {
  list[i] = -1;
  sum[i] = 0;
 }
 for (i = gLen; i >= 0; i--)
  if (str[i] > str[i +1]) sum[str[i]] += 1;
  else {
   aNext[i] = list[str[i]];
   list[str[i]] = i;
  }
 for (pos = i = j = k = 0; j < 256; j++) {
  pos = i = sum[j] + pos;
  for (l = list[j]; l >= 0; l = aNext[l]) aArray[pos++] = l;
  qsort(aArray + i, pos - i, sizeof(int), compare);
  for (l = i - sum[j]; l < i; l++) {
   if (aArray[k] == 0) k++;
   aArray[l] = aArray[k++] -1;
  }
 }
 return 0;
}
0855853NGNG
うわーん、これもバグありのバージョンを持ってきちゃった・・・打つ。
0856853NGNG
>>853-854 におけるmain関数内の次の部分を置き換えてほしいでつ

int i, j, l, *aArray, *aNext, pos, list[256], sum[256], typeA[256], t = 0;

...

 for (i = gLen; i >= 0; i--)
  if (str[i] > str[i +1]) {
   sum[str[i]] += 1;
   t++;
  }
  else {
   aNext[i] = list[str[i]];
   list[str[i]] = i;
  }
 for (pos = i = j = 0; j < 256; j++) {
  pos = i = sum[j] + pos;
  for (l = list[j]; l >= 0; l = aNext[l]) aArray[pos++] = l;
  qsort(aArray + i, pos - i, sizeof(int), compare);
  typeA[j] = i - sum[j];
 }
 for (i = 0; t >= 0; t--) {
  if (aArray[i] == 0) i++;
  aArray[typeA[str[aArray[i] -1]]++] = aArray[i++] -1;
 }
0857デフォルトの名無しさんNGNG
>856
よくわかんないけど最後のforはもっと長くループさせないとだめじゃない?
たとえば、最後までまわすとか
for (i = j = 0; j < gLen; j++) {
0858853NGNG
>>857
そうでつた。元のソースではそうなってたのに・・・撃つ。
0859デフォルトの名無しさんNGNG
超hoshu
0860デフォルトの名無しさんNGNG
AA の
0861デフォルトの名無しさんNGNG
圧縮方法は
0862デフォルトの名無しさんNGNG
文字サイズを小に!!
0863デフォルトの名無しさんNGNG
>>860-862
kterm + lynx で見て、unreadable にすればいいのだ!
0864デフォルトの名無しさんNGNG
>>863
Tiny なら、全体のバランスを調整するときに使ったことはあるが。
(IEのフォントサイズ小みたいに)

unreadable は本当に読めないし、つぶれるからいまいち。
0865デフォルトの名無しさんNGNG
http://pcweb.mycom.co.jp/news/2002/11/13/09.html
これってどうなのさ
0866デフォルトの名無しさんNGNG
>>865
強敵だな(w
0867デフォルトの名無しさんNGNG
>865
lossyな圧縮か。比べてもあまり意味ないな…
0868デフォルトの名無しさんNGNG
ソースネクストは、JPEG/GIFなどの画像ファイルを圧縮してファイルサイズを縮小できる
圧縮ソフトを発表した。

使用されているCATアルゴリズムは、圧縮アルゴリズムを複数用いるこ とで、例えば画像
であれば「建物」「空」といったパーツごとに最適な圧縮アルゴリズムを選択し、ファイルサ
イズを縮小する。

同社調査によれば、3.33MBのJPEG画像が、ZIP圧縮の場合3.31MBにしかならなかった
ものを、114KBにまで縮小できた。

不可逆圧縮だが、見た目上はほとんど変わらない画像になる。複数のアルゴ リズムを
利用するにもかかわらず、 

「圧縮・解凍時間ともに短時間」 である点も 特徴だ。
http://pcweb.mycom.co.jp/news/2002/11/13/09.html
0869デフォルトの名無しさんNGNG
不可逆圧縮興味なし。
0870デフォルトの名無しさんNGNG
要するに画像を圧縮してるんであって、JPEGファイルを圧縮してるわけじゃない。
MPEG1をMPEG4にコンバートしてるようなもんだろ?
ZIPと比べてるのは不当表示だよ。
0871デフォルトの名無しさんNGNG
まさにMPEG4のオブジェクト圧縮に似てるね。
0872デフォルトの名無しさんNGNG
JPEG2000とか同じく不可逆で縮みそうなものと比べるべきだわな
0873デフォルトの名無しさんNGNG
で、これはなんてフリーソフトが元なの?
0874デフォルトの名無しさんNGNG
http://pc3.2ch.net/test/read.cgi/software/1034921591/483-
0875デフォルトの名無しさんNGNG
494:◆Ukspgzd3n6:sage:02/11/13 (水) 23:54 ID:3tJrW3s5
http://www.quikcat.com/
超縮は、↑の QuikCAT Messaging Optimizer の
日本語版・・・のような気がするなぁ。拡張子も同じ .qcf だし。
英語版だけど、試用できるっぽい。

495:名無しさん@お腹いっぱい。:sage:02/11/13 (水) 23:57 ID:7Pz0RnHA
↑にあるのはただのデコーダなだけじゃない?

496:◆Ukspgzd3n6:sage:02/11/14 (木) 00:05 ID:SsZE8nfL
>>495
あ・・・そうだった。
でも、圧縮する方法あり。
http://www.quikcat.com/products/qmo/qmo_tryit.htm
要するに、[email protected] にファイルを
送ると、圧縮して返送してくれる。
ちょっと試してみる。
0876 ◆Ukspgzd3n6 NGNG
>>875
まだ [email protected] からの返事が無い。

ちなみに、フリーソフトの Compressed File Reader は 6MB もする。
何だかと思えば、解凍ルーチンの DLL が妙にデカい。


相当複雑なアルゴリズムなんだろうなぁ。多分。
0877 ◆Ukspgzd3n6 NGNG
>>876
> 相当複雑なアルゴリズムなんだろうなぁ。多分。
て、そんなこと無いな。(・∀・;)
0878デフォルトの名無しさんNGNG
そこへメールだしても、ファイル盗まれるだけ
0879 ◆Ukspgzd3n6 NGNG
>>878
漏れは、盗まれても構わないファイルを送ったYo

しかし、きちんと「圧縮してくれ」と文面に書いておかないと駄目かも。
未だに返事は来ないし。
0880デフォルトの名無しさんNGNG
大方英語が向こうに伝わっていないのではないか。
翻訳サイトなんか当てにならない。
0881デフォルトの名無しさんNGNG
英語分かる人にチェックしてもらった方がよいね
翻訳サイトが不自然な英語であることを見抜けないなら
0882デフォルトの名無しさんNGNG
あきらめたのか?
0883デフォルトの名無しさんNGNG
バイトペアエンコーディングをもうちょっと詳しく知りたい。Cマガの
情報である程度はわかったけど、詳しいインプリメンテーションが
よくわからん。何か情報ない?
0884デフォルトの名無しさんNGNG
>>883
ttp://mcgi2.nifty.ne.jp/cgi-bin/thread.cgi?user_id=VZV05226&disp_no=1068&log_no=484&msg_per_page=10&def=10
これじゃ不満なのか?
(゚∀゚)Sタン ニ アヤマレ!
0885デフォルトの名無しさんNGNG
>>884
いや、情報はありがたいのだが、そのレベルはCマガに出ているのよ。
ただCマガのソースってコメントがほとんどないし、バグは残ってるし
で今ひとつわからん(展開スタック不足だった>Cマガソース)。
ちなみに、その掲示板の「アスキー128を8ビットで〜」のくだりは半分
間違い。バイナリデータの圧縮にも効果はあるし、圧縮パラメータの
設定次第だがLZW法に近い圧縮率が得られる。しかも圧縮は遅いが
展開は高速(ビットレベルで符号化しないから当然)。
088657NGNG
Cマガ版にあったバグ除いた(多分)コード見つけた。(英語)
http://www.csse.monash.edu.au/cluster/RJK/Compress/problem.html
http://www.csse.monash.edu.au/cluster/RJK/Compress/bpe.c
http://www.csse.monash.edu.au/cluster/RJK/Compress/bpd.c

日本語の解説のページは数年前はあったんだけど今は消えてる。
0887デフォルトの名無しさんNGNG
>>885 設定次第だがLZW法に近い圧縮率が得られる。
んなこたぁない。
割り当てキャラクタ数を最適化したとしてもLZファミリには及ばないよ
0888デフォルトの名無しさんNGNG
>>887
同意

>ちなみに、その掲示板の「アスキー128を8ビットで〜」のくだりは半分
>間違い。バイナリデータの圧縮にも効果はあるし、圧縮パラメータの
>設定次第だがLZW法に近い圧縮率が得られる。

オリジナルのBPEは純粋に7ビットASCIIオンリーだったはず。
バイナリ対応やLZW並みの圧縮率というのは、改良版ではないか?
0889デフォルトの名無しさんNGNG
>>883-888

Gage[1994]が見つからなかったが(雑誌の記事だから?)、
調べてみると、BPEには単純版と改良版があるらしいぞ。
そもそもその単純版が、1994年よりももっと前(70年代〜80年)に
提案された別の方法を改善したものとして存在し、
それをさらにバイナリデータ対応、LZW並みの圧縮性能にしたのがGageらしい。

やぱーり、The C Users Journal, February 1994 edition か
Cマガジンを読むしかないのか。
0890デフォルトの名無しさんNGNG
>>887
885だけど、それは頻出バイトペアや未使用キャラクタの余り数、圧縮ブロックの
サイズ設定とかでかなり違ってくると思われ。LZWに適したデータ分布やBPEに
適したデータ分布は当然あると思うし、頭ごなしに全否定するのもどうかと思うが。

で、圧縮率に関しては「近い」というのがミソで、LZW以上の圧縮を得ようとは思わ
ない。展開が非常に高速で(展開のコストが安く)実用になる圧縮率があることが
重要なんだよ。実際にCマガのをデバッグしたソースでバイナリを圧縮してみたが
多くの場合で半分から45%程度に縮んでいた。これくらいなら十分。
0891デフォルトの名無しさんNGNG
>>886
>>889
ありがとう、参考になった。
0892デフォルトの名無しさんNGNG
>>890
検証してないけど、LZWってBPEより必ず圧縮率がいいんじゃないか?
両者とも、SEQUITORと同じ系に属するだろ?
で、両者が作る辞書のモデルを解析して比較してみれば、
その関係がわかると思うんだけど・・・。

BPEの辞書はLZWの増分分解で作成される辞書と同じ形になる・・・と思うし、
後は出現頻度順か、出現順かの違いくらいで・・・。

多分誰か解析していると思うなぁ・・・njNECで探してみるか。
0893デフォルトの名無しさんNGNG
超縮はJPEG2000だった!?
ttp://homepage1.nifty.com/author/qcf/jpegqcf.htm
0894SタソファソNGNG
>>893
Sタンの粗相、もとい予想、大当たりですね。
0895デフォルトの名無しさんNGNG
 ところでところで、オフィスノアの動画圧縮 Nancy codec って、どんなアルゴリズム使ってるか、ご存じない?  特許情報調べればわかるのかもしれんのですが…。
0896デフォルトの名無しさんNGNG
>>895
差分とって、誤差が一定になるまで出力しない、っていうのじゃなかったかなぁ?
どっかの紹介記事にそういう説明があった気がする。
試しにやってみても、全然縮まなかったので、
もちろんもっとそれ以上の何かが必要なのだろうけど。
0897アフォヴァカさんNGNG
今日、Cマガのyz2の記事読んだんだけど
なんでファイルサイズをわざわざテキストで
出力するかイマイチ理解出来ん。
小さいファイルなら元ファイルのサイズを出力する
と確かに無駄な部分が出てくるが、それだったら
16進表記でテキスト出力した方が効率か良いよう
な気がする・・・数字+アルファベットで36進数で表記とか・・・
ってここまで面倒な事はしなくていいか(w


0898デフォルトの名無しさんNGNG
>>897
Elias符号使えば?
0899 ◆Ukspgzd3n6 NGNG
>>897
記事にワケが書いてあったと思う。

それに、テキストで出力しておけば、事実上どこまでも
大きいファイルサイズも表現できると思うが。
0900デフォルトの名無しさんNGNG
>>899
別にテキストじゃなくても同じことができるし
テキストを使わないほうが小さくなることに変わりはない。
0901 ◆Ukspgzd3n6 NGNG
>>900
そりゃね。
Filesize のビット数を記録すれば問題ないことだし。

#テキストだとしても、ヘッダごと圧縮すれば問題ないかも。
0902デフォルトの名無しさんNGNG
>>901
そのために>>898に書いてあるような符号化法を使うんだろ????
0903デフォルトの名無しさんNGNG
>>900
ヘッダのサイズなんて大きな圧縮ファイルでは誤差の範囲だろ。
”Keep it simple, stupid.(単純なままにしとけって言っただろ!このヴォケが!)”だ。
0904デフォルトの名無しさんNGNG
>>903
数値1つエンコードするのが複雑だというくらいなら
そもそも圧縮プログラムなんて論外だろ。

だいいち、2進10進変換+10進2進変換がエリアス符号に比べて
そんなにシンプルかよ。糞ヴォケ。
0905デフォルトの名無しさんNGNG
テキスト使うなんて白痴もいいところ。
0906デフォルトの名無しさんNGNG
Cマガ読んでないから知らないけど、
書庫内のファイル名も圧縮対象にするってこと?
識別用のマジックナンバー以外はやっちゃってもいいかもね。
リスト出力に多少時間かかりそうだけど。

どうでもいいけど、作るんなら統合アーカイバPrjのDLL形式にも
対応して欲しい。(GCAとか対応してたっけ?)
わざわざ独自にGUI作ったりしてるのあるけど、無駄にしか思えない。
0907デフォルトの名無しさんNGNG
つーかファイルサイズなんてリトルエンディアンのint64でいいんじゃないのか。
0908デフォルトの名無しさんNGNG
Elias = イライアス
0909デフォルトの名無しさんNGNG
「イライアス」の符号よりも、アーカーバの場合は、
「やまもと・おち」のフラッグ符号がいいかもしれないよ。
最適性の確保は難しいが、高速で、符号自身で誤り伝搬を防げるから。

まあ何にしろ、10^15程度の数値を表現するには60ビット程度あれば
一意復号可能な符号などいくらでもあるわけで。
(もちろんそれらは、加算無限大の数値をいくらでも表現できる)
0910デフォルトの名無しさんNGNG
板違いの気配で悪いと思っています。
以下のCABファイルの中身を抽出したいのですが、可能でしょうか?

◆現象
○通常のCABファイル(Windows Cabinet)ではないようです
○WindowsOSなどのCABは、バイナリエディタで見ると、先頭が
 「MSCF」(4d 53 43 46)と始まり、その後に
 中のファイル名一覧が文字から見て取れますが、
 問題のCABは、「ISc(」(49 53 63 28)で始まり、中のファイルは解らない。

◆ソフト例
○Norton全般(SystemWorks2002(英語)、AntiVirus2002(日本)、
 Utilities(日本語)すべてのCAB))。
○某ファックスソフト
○タイピングソフト(特打ヒーローズ 名探偵コナン)
 が同じ形式であるように確認できました。
0911デフォルトの名無しさんNGNG
Installshieldやね。
Xacrettはどうだ?
0912デフォルトの名無しさんNGNG
Installshieldやね。
Xacrettはどうだ?
0913911NGNG
XacRett成功しました。。
InstallShieldでしたか。。。
ありがとうございますた。
0914デフォルトの名無しさんNGNG
>>910-913
別の板でも見たぞこの野郎
0915デフォルトの名無しさんNGNG
つまり、やま○き氏は、Elias符号を始めとする、
整数のユニバーサル符号化法を知らないということでよろしいか?
0916デフォルトの名無しさんNGNG
>>906
統合アーカイバ形式のDLLに仕立てるには、少々書き直さなきゃ
いけないと思う。

確かに YZ2 の GUI は使いにくいし、yz2dlg.dll もそのまま使えるほどの
完成度じゃない。

>>915
知らないというか、知ってても使っていないというか。
提案してみようかなぁ。
0917デフォルトの名無しさんNGNG
>>915
簡単にエンコード・デコード出来てかつ人が見て読める形式だと
文字列化しかないんじゃないの。

とマジレスしてみる。
0918デフォルトの名無しさんNGNG
こんなのハケーソ

ttp://multix.jp/download/other/BNC.LZH
0919デフォルトの名無しさんNGNG
>>917
だから何度も何度も書かれているとおり他に簡単な符号化は山ほどあるし、
人が見て読める必要は全く無いし、文字列にしたら損。
0920デフォルトの名無しさんNGNG
必死だな。。。
0921デフォルトの名無しさんNGNG
こんなのハケーソ

ttp://kamakura.cool.ne.jp/miyax/
0922デフォルトの名無しさんNGNG
>>918
途中なにやってるんだかワカンネー!んだけどLZ78と
BPEを掛け合わせたようなヤシだソレ。圧縮ソース
に対して可変長文字列比較でなく2文字長固定
(32ビット幅固定を意識か?)だけで探索掛けてる
のと構築された辞書自体が圧縮されてる上その
辞書ソノモノを順次圧縮後データとして吐くのが特徴?
辞書サイズは4096個バイトペア分だが仮に圧縮
率50%に達してれば(LRUが効き出すまでに)8000
個相当分はキープしてるわけか…。LZSSが短距
離、LZWが中距離ならこれは長距離走者っぽい。
(スタート直後はLZW以上のスローペースぶりだわ)
仮に“ababab...”なんてデータを1GBほど食わすと
30個ほどしか辞書項目消費しないあたりはキショイ。
#展開速度はLZSSより遅いがLZWよりは早いな
0923デフォルトの名無しさんNGNG
>>922
文章見ているだけだとSEQUITORとかMPMに近いように思えてしまう。
ソースプログラムまだ読んでない。読もう。
0924デフォルトの名無しさんNGNG
>>921
しまった!標的に気づかれたぞ・・・




ようこそ!
0925924NGNG
文脈ソート法っていえばSタソだよね。ハァハァ
0926デフォルトの名無しさんNGNG
>>1がおいてけぼりにされてる感があるけど

中身を半分に削って拡張子を.2chにしてしまえばいいだろう
0927デフォルトの名無しさんNGNG
WAVEファイルって音楽のジャンル(ジャズや演歌など)ごとに独特のパターンって
あったりしますか?
圧縮はあまりよく分からないのですが、音楽ジャンルごとに効率の良い
圧縮アルゴリズム(ロスレスで)つくれないかな?とふと思ったもので・・・・・・・
0928ばかんこんNGNG
これからあげる圧縮アルゴリズムの欠点は
圧縮時間と展開時間とデータの保証がないと言うことだ。
だから、2Ch圧縮。

FTPでもHTTPでも特殊なポートでもいいが、
ある取り決めのデータのハッシュキーで存在するURL(IPでも可)を生成し圧縮。
URLはもちろん更に都合良く圧縮。展開ではURLを展開し、
そのURLより、更に圧縮されたデータをWEBよりダウンロード。
更に合成し展開する。(驚異的な圧縮が可能だ!!ゴラァ!!)
(欠点は、URLが存在しなくなった時だが、それは問題にする気は無い。
展開出来ないだけだ。2Chダシ)
リソース共有圧縮と展開。
0929デフォルトの名無しさんNGNG
>>928
それやるんなら現状でもWinMXで万事OKな気が(^^;
0930デフォルトの名無しさんNGNG
>>928
それは「圧縮」とは別の概念だということはかなり過去から言われているが・・・
データ圧縮はShannon limitとともに語らなければならないのである。
0931デフォルトの名無しさんNGNG
フトン圧縮袋使え!!
0932デフォルトの名無しさんNGNG
>>927
ジャンルごとにエンコーダ・デコーダ用意すんの?
誰も使わんだろ。
0933デフォルトの名無しさんNGNG
>>927
ジャンルというより楽器の種類・数・編成によるんじゃない。
楽器の音色と音符を抽出・分離してやれば驚異的な圧縮が可能だよ。
さらに音色は複数の曲にまたがって使用可能だから使えば使うほど圧縮率が上がる優れもの。
0934デフォルトの名無しさんNGNG
>>933
MIDIとどこが違うん?
0935デフォルトの名無しさんNGNG
>>934
MIDIの音色・音階表記は究極の圧縮ともいえる。
現在の研究では、複数の音色(せいぜい3和音)を、
単体の音に分解することがようやくできるようになったレベル。
0936デフォルトの名無しさんNGNG
>>935
しかしそれでは同じ楽器でもストラディバリウスとか名器の音色が
表現できなくなるというワナ
0937デフォルトの名無しさんNGNG
>>936
楽器ナンバーにどんどん登録して・・・
となると辞書のインデックスと同じことになるだろうか。

それでもかなりの圧縮にはなりそうだ。
0938936NGNG
>>937
よく考えてみると、演奏者の腕も表現できないというワナ
0939デフォルトの名無しさんNGNG
モー娘の圧縮率高そうだな
0940デフォルトの名無しさんNGNG
基本的な演奏における符号化は次の要素でよろしい?

演奏者 + 会場 + MIDI信号(楽器 + 音色 + 時間)
0941デフォルトの名無しさんNGNG
>>930 データ圧縮はShannon limitとともに語らなければならないのである。

そんな事、誰が決めたんですら?
0942デフォルトの名無しさんNGNG
>>941
数学的に…、って意味じゃないのかねぇ。
Shannon limit (てかエントロピー?)って可逆圧縮と不可逆圧縮の絶対境界線だっけ?
0943デフォルトの名無しさんNGNG
>>942
>Shannon limit (てかエントロピー?)って可逆圧縮と不可逆圧縮の絶対境界線だっけ?

無歪み圧縮は、Shannon限界までしか圧縮できないことが数学的に証明されていますね。
有歪み圧縮もShannonのレート定義が重要ですしね。

ま、何にしろ通信と圧縮はShannonが創生したしたわけで。
0944デフォルトの名無しさんNGNG
Rissanen等の研究によれば、情報圧縮の限界は計算できない事が証明されてるのではなか?
限界はあるけど、それを計算するアルゴリズムは存在しないってゆーよーな。
→ Shannon limit は計算できない(から議論してもしゃーない)!?

# うろ覚えスマソ
0945デフォルトの名無しさんNGNG
>>944
それは一般情報源についてかな。

Shannon limit は定義だから。
H(P) = - p_i log p_i, p_i in P
0946デフォルトの名無しさんNGNG
入力が乱数列みたいなときは、シャノンさまが限界かもしれないけど。
2ch みたいに繰り返しの多い入力に対する圧縮の限界も評価できる
んすか?
0947デフォルトの名無しさんNGNG
>>946
あるモデルを想定して、そのモデルの下でのエントロピー達成度を調べることで評価される。
もしすべてのモデルについて評価できるならば、
全体の評価が出来るわけだが、すべてのモデルを評価できないので、
特定のモデル(LZ77, LZW, ブロックソート法, などで考えるとよい)などを使うわけだ。

どちらにしろ、>>945の式H(P)よりも小さくはならない。
0948デフォルトの名無しさんNGNG
>>946
情報源によってエントロピーが異なるから、
シャノン限界(945 も言ってるけど定義なので値は前提によって異なる) も変わる。

参考:
炉辺夜話
http://www.ne.jp/asahi/personal/kobayashi-osamu/Writings/Essays/BF.13.html
http://www.ne.jp/asahi/personal/kobayashi-osamu/Writings/Essays/BF.14.html

2ch がテンプレだけで構成されていると考えて、
特定のテンプレの出現頻度が高い、と単純化して考えれば分かりやすいと思う。
英文で特定のアルファベットの出現頻度が高いのと同様になるから。

日本語のエントロピー、歌の歌詞のシャノンエントロピー、
新聞文章のシャノンエントロピー、2ch 文章のシャノンエントロピー…
はどのように異なるかという話になる。
適当な数をサンプリングして計算すれば圧縮限界の理論値も出せるかと。
0949デフォルトの名無しさんNGNG
>適当な数をサンプリングして計算すれば圧縮限界の理論値も出せるかと。

そ、それは理論値ではなく実測値(実験値)では・・・
理論値は数学的に証明できるものでないと。

つーか、一般情報源に対する理論値を証明できたらチューリング賞ものですね。
0950デフォルトの名無しさんNGNG
う、そうだな。すまん。
0951デフォルトの名無しさんNGNG
>>950
謝りついでに、次スレあけおめことよろ
0952デフォルトの名無しさんNGNG
>>949
できない(理論値などでない)ことがわかっている。
対象物を限定すれば、特定のものを1ビットに圧縮できる一方、
限定しなければ(あらゆるデータが一律に出現する)、
圧縮など不可能で、無意味だから。
圧縮とは、存在しそうも無い膨大な種類のデータでは大きくなるかわりに、
ごく一部のデータだけを小さくする技術。
0953デフォルトの名無しさんNGNG
>>952

ん? そんなことはないですよ。
最近は韓先生などが、一般情報源に対する漸近的圧縮限界を証明されました。
これには情報スペクトル理論が用いられています。
0954デフォルトの名無しさんNGNG
韓先生と共著で一般情報源の理論的限界について考察されている、山本先生の紹介ページ
http://www.i.u-tokyo.ac.jp/mi/staff/yamamoto-j.html
論文を当たってみてください。
0955デフォルトの名無しさんNGNG
>>953
論文読まないとなんともいえないが、この場合「一般情報源」に特殊な偏りがあるんだろうね。
でなければ、圧縮は不可能であることは自明。
明確な偏りがある場合、対象としているデータと濃度が決まれば理論値は簡単に出る。
一つのデータを一個の巨大な整数値とみなし、その出現確率を使って
算術圧縮した時のビット数が、圧縮率の限界になる。
もちろんこれは理論値であって、実用にはならないが。
0956デフォルトの名無しさんNGNG
参考ページ
http://www.hn.is.uec.ac.jp/~han/Spectrum-preface.html
0957デフォルトの名無しさんNGNG
今すぐ読める論文
http://search.ieice.org/jpn/2001/files/j000a06.htm#j84-a,6,698
0958デフォルトの名無しさんNGNG
>「一般情報源」に特殊な偏りがあるんだろうね。

つうか、単に確率分布があるだけで。
それに見合った符号化(サイズの増減は確率分布による)ができるわけで。
その確率分布の特性にエルゴード性や、定常性が存在するか否かが、
一般情報源かどうかを区別しているわけですね。
0959デフォルトの名無しさんNGNG
>>956
>>957
>>958
サンキュー。予想通りだった。つーかこれ当たり前のことで、ある尺度で捉えた場合の
理論的限界は求まっても、真の限界はわかんないよ。
例えば、π100万桁の数値を圧縮するとする。これを乱数列と見なした場合の限界は
この方法で求まるが、πを数ビットに、他のものを多少増やす圧縮方法もあるわけ。
0960デフォルトの名無しさんNGNG
>>959
えっと、それはたぶん何を語っているかの方向の違いですね。
何を目的として情報源符号化を語るかを注意しないといけないということには、同意です。

他の方(特に初学者)に注意しておいて欲しいのは、次のこと。
すべてのデータを圧縮できる符号は存在しない、は、真です。そして
一般情報源の理論的限界を達成するような符号は存在する、も、真です。
0961デフォルトの名無しさんNGNG
>例えば、π100万桁の数値を圧縮するとする。これを乱数列と見なした場合の限界は
>この方法で求まるが、πを数ビットに、他のものを多少増やす圧縮方法もあるわけ。

それは一般情報源の符号化ではない
0962デフォルトの名無しさんNGNG
>>960
>>961
でも、漏れ達の周りのデータって「一般情報源」から外れるものばかり
テキストも音楽も画像も単なる「一般情報源」では無い罠
0963デフォルトの名無しさんNGNG
>>961
>>962
いや、パイのデータを短くするような符号化法は、
最適な符号ではないことは確かだが、一般情報源の符号化であることに違いはないだろう。
最適な符号は、パイだったらパイのエントロピーに符号化する。
(パイのエントロピーはほぼランダムなものと同程度であるらしいから)

テキストや音楽のデータは、一般情報源からの出力と考えられる。
したがってその確率分布が圧縮しやすければ圧縮になり、
ランダムならば圧縮にならない。
0964デフォルトの名無しさんNGNG
>>963
最適な符号で無いのに、πのエントロピーに符号化するのがなんで最適な符号になるの?
それはあくまで、乱数列と見なした場合のことだよね。
そうでない方法、「π65536桁」みたいに圧縮する方法もある。
0965デフォルトの名無しさんNGNG
>>964
最適な符号とは、あらゆる入力に対して、そのエントロピーまで符号化できる符号。
一方、特定の入力を短くするのは、最適でない符号。

で、パイを符号化するために「パイn桁」とするのは、実は「符号」ではない。
それはモデル化だな。

他にも、
この楽曲は「xx交響曲」である、というような上の方で議論のあった、
音楽データのMIDI化みたいな符号化法も、実はモデル化ということ。

で、パイ=3.1415926535...
という数値そのものをたとえば2バイトで表現するとか、
そういった「符号」を考えるならば、最適ではない符号ということで。
0966デフォルトの名無しさんNGNG
>>963
> テキストや音楽のデータは、一般情報源からの出力と考えられる。
> したがってその確率分布が圧縮しやすければ圧縮になり、

それだけじゃないってことを言っている。例えば、
「観自在菩薩行深般若」の後、何がくるか圧縮できるでしょ?
確率分布だけで圧縮する以上の方法があるの。

音楽もそう。一定のリズム、人間が作る音楽の特性、そう言ったものを取り入れるか、
入れないかで、最適な符号なんて変わってしまうよ。
画像もウェーブレットを使った高次元の処理をすることで、1次元のデータ列とみた場合とは
結果が変わってくる。
0967デフォルトの名無しさんNGNG
>>966
えーと多分>>965を読む前に書かれたと思いますが、一応>>965の追記も兼ねて。

データ圧縮(情報源符号化)は、次の要素からなっています。
モデル化 + 確率推定 + 符号化

用語の使い方の問題かもしれませんが、一般に「符号化」といった場合は、
すでに確率が与えられている場合のみの操作を表します。
たとえば、符号化の族には、Huffman符号や算術符号、が入りますが、
LZ77やPPMなどは「符号化」ではありません。
またHuffman符号などで、記号の頻度を求める前処理がありますが、
それもモデル化であり、純粋にHuffman符号といった場合には、
すでに確率が与えられている必要があるわけです。

>「観自在菩薩行深般若」の後、何がくるか圧縮できるでしょ?
>確率分布だけで圧縮する以上の方法があるの。

したがって、続く文字列を推定するのは「モデル化」
モデル化によって得られた知識から、確率を算出するのが「確率推定」、
得られた確率をビット列に変換するのが「符号化」です。
0968デフォルトの名無しさんNGNG
>>965
モデル化を考えない符号なら、そのデータの存在確率で算術圧縮するのが
最適で、とっくに解決している。
現実のデータの圧縮を考えるのなら、モデル化は避けられないし、
乱数列と見なすのも一つのモデルに過ぎない。
で、漏れは、乱数列と見なすこと自体が最適でないと思うわけ。
乱数列と見なした場合は、そのデータの存在確率で算術圧縮すればいいと思うわけ。
0969デフォルトの名無しさんNGNG
流れがおえないのですが、結局用語の問題ということでよろしいですか?>>967
0970デフォルトの名無しさんNGNG
(・┏┓・) <まあもちつけヴァー
0971デフォルトの名無しさんNGNG
松
0972デフォルトの名無しさんNGNG
H(P) = -Σ p_i log p_i, p_i in P (>>945)は、各p_iが独立というモデルの下でのシャノン限界(情報量)では?
モデルが異なれば、限界も異なるはず。
で、どのモデルが適当かを決める一般的なアルゴリズムは存在しない(>>944)?
モデル化できなければ、確率推定もできないし、エントロピーも計算できないし、(最適)符号化もできない(>>967).
今ある圧縮符号は、思いつきで決めたモデルに基づく最適符号にすぎないから、もっといろんなモデルを考えよう(>>964,>>966)!
…という理解でよろしいでしょうか?
0973デフォルトの名無しさんNGNG
>>944 Rissanen等の研究によれば、情報圧縮の限界は計算できない
>>972 どのモデルが適当かを決める一般的なアルゴリズムは存在しない

これって正しいんでつか?
0974デフォルトの名無しさんNGNG
埋め
0975デフォルトの名無しさんNGNG
>H(P) = -Σ p_i log p_i, p_i in P (>>945)は、各p_iが独立というモデルの下での

ちうよりは、情報量をつきつめていくと、単体では確率など存在しなくても、
各記号の出現確率に基づくShannon限界への漸近式が得られるという。

たとえば、LZ78法などは確率を一切、陽に用いていないにも関わらず、その冗長度は、
H(P) + O(loglog n / log n)
となるわけでつ。
0976デフォルトの名無しさんNGNG
梅竹、梅竹
0977デフォルトの名無しさんNGNG
埋め
0978デフォルトの名無しさんNGNG
埋め
0979デフォルトの名無しさんNGNG
&rlo;デフォルトの&lro;名無し&rlo;さん
0980lo;デフォルトの&lro;名無しlo;さんNGNG
 
0981&rlo;デフォルトの&lro;名無し&rlo;さんNGNG
 
 
 
 
 
 
 
 
 
 
 
 
0982デフォルトの名無しさんNGNG
>>975
LZ78が必ずしも得意としていない無記憶情報源(各p_iが独立)モデルで評価した場合はそうなりまつが、それではLZ78の実力は測れないでじょ?
0983デフォルトの名無しさんNGNG
埋め
0984デフォルトの名無しさんNGNG
結局、中途半端な圧縮のアイデアは出たものの、中途半端な圧縮には誰も興味無しという感じで埋め。
0985デフォルトの名無しさんNGNG
>>975,>>982
ttp://hirosuke.sr3.t.u-tokyo.ac.jp/pdfs/ibis2001.pdf によれば、
冗長度 O(loglog n / log n) になるのは LZ77 の有限次数マルコフ情報源に対して。
LZ78 の冗長度は O(1 / log n) らしい。
0986デフォルトの名無しさんNGNG
スレ違いな質問ですいませんがMPEG-1 Audio の圧縮方法や
そのプログラム(もし載ってたら)が詳しく載ってる書籍ってご存知ないですか?
興味があるのでちょっと勉強してみたいのですが、なかなか見つからなくて・・・・
HPでもいいのでもし知っていたら教えてください。

スレ違い質問すいません ><
0987デフォルトの名無しさんNGNG
数学的知識のない人向けにチョイ補足、てかヒント?

LZ77/LZSSの場合、符号化されたトークンは
(スライド辞書内のインデックス+文字長)を現している。
で、これが12+4ビットで、が3〜18文字長を示す場合、
18バイトまでの文字列が16ビット=2バイトで置換できる
ことになる。従ってこのケースの最高圧縮率は1/9よね?
同様にトークンのビット数を増やしていって得ることができる
圧縮率を見ていって、方程式を導き出したのが(以下略)

LZ78/LZWの場合は、あるトークンは以前に出現した別の
ふたつのトークンまたはリテラル文字を結合した文字列を意味している。
この階層化されたトークンをすべて展開すると、リテラル文字を葉に持つ
二分木構造を持っていることが解かる。この木を作るには
根(現在のトークン)の左右の子が既知でなくちゃいけないから、
以前のトークンとは現トークンの1/2の情報量(葉)を持っている。
こうして葉に至るまで分解して並べると、出現する根の数(=圧縮結果)は
全体の葉の数(=圧縮源)の O(1 / log n) 以下にはなりえない。(合ってる…?)
0988デフォルトの名無しさんNGNG
>>986
あったけど潰れた.
第三の脳室ってとこ.

0989988NGNG
>>989
ttp://www5c.biglobe.ne.jp/~atsu/index.htm
まちがった. ここだった.
0990デフォルトの名無しさんNGNG
いえーい
0991デフォルトの名無しさんNGNG
へろー
0992986NGNG
>>988-989
ありがとうございました^^
勉強してきます!
レス数が950を超えています。1000を超えると書き込みができなくなります。