ハフマン木のencode部分

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ホル

ハフマン木のencode部分

#1

投稿記事 by ホル » 15年前

ハフマン木のEncode部分のプログラムの空白の部分に何を書けばその通りにできるのかがわかりません。

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

ookami

Re:ハフマン木のencode部分

#2

投稿記事 by ookami » 15年前

こんにちは。このあたりは参考になりますでしょうか?
http://akademeia.info/index.php?%A5%CF% ... 5%BA%A5%E0

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

ホル

Re:ハフマン木のencode部分

#3

投稿記事 by ホル » 15年前

ヘッダーファイルを作っていたけど載せるの忘れてました…。

ホル

Re:ハフマン木のencode部分

#4

投稿記事 by ホル » 15年前

連投申し訳ありません。
上記のパスワード設定前に投稿してしまったため編集できませんでした。

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

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

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

ookami

Re:ハフマン木のencode部分

#5

投稿記事 by ookami » 15年前

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

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

たいちう

Re:ハフマン木のencode部分

#6

投稿記事 by たいちう » 15年前

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

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

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

ホル

Re:ハフマン木のencode部分

#7

投稿記事 by ホル » 15年前

原理的に無理なんですか…。

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

閉鎖

“C言語何でも質問掲示板” へ戻る