0

データ ストレージのエンコード スキームを選択したいと考えています。使用可能なメモリが非常に少なくなっています。使用可能なスペースを最適に利用するには、どのコーディングが最適である必要があります。ANSI、UTF、またはその他の..

データはCapital Alphabeticsです

4

1 に答える 1

1

文字の頻度分布を知っている場合、ハフマンコーディングは、複雑さ、速度、効率のバランスが取れています。

文字の分布がわからない場合やランダムな場合は、一度に5ビットずつ保存してください。たとえば、文字列「ABCDE」について考えてみます。文字番号は0、1、2、3、4です。2進数に変換すると、次のようになります。

00000 00001 00010 00011 00100

これで、8ビットごとにバイトにグループ化できます。

00000000 01000100 00110010 0xxxxxxx

最後のバイトの7ビットに有用なデータがないことがわかるように、長さも格納する必要があります。

コードスペースが問題でなく、文字列をできるだけパックしたい場合は、均一な度数分布でもハフマンコーディングまたは算術コーディングを使用して、各文字を平均でlog2(26)ビットにパックできます。 5よりわずかに少ない(つまり、4.7ビット)。

于 2012-06-21T11:51:26.097 に答える