符号化に詳しい人来てくれ

このエントリーをはてなブックマークに追加
1以下、名無しにかわりましてVIPがお送りします
ハフマン符号ってエントロピー符号だからアルファベットとか数字じゃないと
圧縮できないのか?
byteデータを圧縮したいのだが
2以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:25:33.38 ID:EShuc5us0
うんこぶりぶりwwwwwwwwwwwwwwwwwwwwwwwwwwww
3以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:27:52.74 ID:Fk8eBkG30
>>2
今日のng
4以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:28:48.46 ID:TXNWdhWN0
データが偏ってればなんでもいい
5以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:29:22.78 ID:yhs4e2Em0
まず、仕組みがよく解らないんだ
6以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:34:29.92 ID:yhs4e2Em0
0x00から0xffまでの256個のbyteデータが配列の中に存在したら
それぞれを
0x00 = 0
0x01 = 10
0x02 = 110
.
.
.
0xff = 1111111111111111111111111111111111111111111111111(途中省略)111110
みたいに全部置き換えるのか?
7以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:35:39.39 ID:3KDbJ9/W0
出現頻度の高い記号なりニブルなりに
短い符号割り当てるよ!
ってのだから偏りがあればあるほど圧縮できますん
8以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:38:16.16 ID:yhs4e2Em0
4bitずつやるのか
9以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:43:18.11 ID:yhs4e2Em0
4bitってことは16とおりか
10以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:46:09.86 ID:yhs4e2Em0
0
10
110
1110
11110
111110
1111110
11111110
111111110
1111111110
11111111110
111111111110
1111111111110
11111111111110
111111111111110
1111111111111110
11以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:46:34.20 ID:yhs4e2Em0
こうするのか
12以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:48:32.34 ID:yhs4e2Em0
逆に増えそうな気がする・・・
13以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:49:05.56 ID:3KDbJ9/W0
そういうわけじゃなくて
「1111234511」ってかかれたテキストファイルがあるとすると
出現頻度は1が3/5、2345がそれぞれ1/10じゃん?
この頻度がおおきいやつに短い符号割り当てれば圧縮できるんじゃね?ってことで
1=0
2=100
3=101
4=110
5=111
とおいて「000010010111011100」となるわけ
増えてるジャンってなるけど文字は1バイトだったり2バイトだったりするから
上のは2進数なのでちゃんと減ってる
あとは上の符号の対応付けを圧縮ファイル内に納めて完了
14以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:51:59.98 ID:yhs4e2Em0
そうかテキストファイルに使うのか
byteを圧縮しようってのが間違ってるのか
15以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:54:36.33 ID:TXNWdhWN0
byteデータでも同じだって
16以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:56:49.02 ID:yhs4e2Em0
符号割り当て方がわからない
17以下、名無しにかわりましてVIPがお送りします:2011/10/09(日) 21:59:10.98 ID:TXNWdhWN0
まずbyteの出現頻度数えないと
18以下、名無しにかわりましてVIPがお送りします
間違えた符号割り当て方じゃなくて
木の作成手順