圧縮って、例えば
1hirosi"\t"おはよう"\t"
みたいな一つのメッセージに圧縮かけるんでしょ?
だったら、固定ハフマン木の静的ハフマンも考えてみれば?

適応的ハフマンっても 1バイト=256パターンフルに使いたい場合は
ノード{
 重さ
 親へのポインタ
 子へのポインタ
}
が 256 * 2 - 1 で511個必要。
全部 shortでやったとしても 511 * 6 で
3066バイト必要になる。
おまけに途中参加の人には頻度表なりを
送ってあげなければいけない。