ページ 11

ハフマン木のencode部分

Posted: 2010年5月10日(月) 10:50
by ホル
ハフマン木のEncode部分のプログラムの空白の部分に何を書けばその通りにできるのかがわかりません。

わかるかたご教授願えると幸いです。 画像

Re:ハフマン木のencode部分

Posted: 2010年5月10日(月) 12:17
by ookami
こんにちは。このあたりは参考になりますでしょうか?
http://akademeia.info/index.php?%A5%CF% ... 5%BA%A5%E0

あと、パッと見、nodeの定義がないような。

Re:ハフマン木のencode部分

Posted: 2010年5月10日(月) 20:59
by ホル
ヘッダーファイルを作っていたけど載せるの忘れてました…。

Re:ハフマン木のencode部分

Posted: 2010年5月10日(月) 21:04
by ホル
連投申し訳ありません。
上記のパスワード設定前に投稿してしまったため編集できませんでした。

ookamiさんのサイトはとても参考になりました。

しかし、データの大きさを8ビットに抑える場合、一回目の圧縮で8ビットに収まらなかったとき、
次にもう1回、1回目に圧縮したデータをさらに圧縮する方法がわかりません。

そのソースの書き方などをどなたか教えてもらえないでしょうか?

Re:ハフマン木のencode部分

Posted: 2010年5月10日(月) 23:18
by ookami
ハフマン木なのにビット数を限定してはあまり意味がないような...?私が理解していないだけなのかもしれませんが、基本的には何bitでも対応できるように作るべきかと思います。

あるいは、8bitに抑えられるように、元データの1文字ずつではなく数文字のまとまりをパターンとして扱うかですかね。その場合のアルゴリズムは想像つきませんが...;

Re:ハフマン木のencode部分

Posted: 2010年5月10日(月) 23:55
by たいちう
> しかし、データの大きさを8ビットに抑える場合、一回目の圧縮で8ビットに収まらなかったとき、
> 次にもう1回、1回目に圧縮したデータをさらに圧縮する方法がわかりません。
>
> そのソースの書き方などをどなたか教えてもらえないでしょうか?

原理的にそんな方法はありません。
圧縮を繰り返すことで、いくらでも小さく可逆圧縮できると思いますか?

一回目の圧縮をしているプログラムを載せてもらえれば、
改善点を指摘できるかもしれません。

Re:ハフマン木のencode部分

Posted: 2010年5月11日(火) 07:07
by ホル
原理的に無理なんですか…。

もう1回初めから考えなおしてみます。