データ ストレージのエンコード スキームを選択したいと考えています。使用可能なメモリが非常に少なくなっています。使用可能なスペースを最適に利用するには、どのコーディングが最適である必要があります。ANSI、UTF、またはその他の..
データはCapital Alphabeticsです
文字の頻度分布を知っている場合、ハフマンコーディングは、複雑さ、速度、効率のバランスが取れています。
文字の分布がわからない場合やランダムな場合は、一度に5ビットずつ保存してください。たとえば、文字列「ABCDE」について考えてみます。文字番号は0、1、2、3、4です。2進数に変換すると、次のようになります。
00000 00001 00010 00011 00100
これで、8ビットごとにバイトにグループ化できます。
00000000 01000100 00110010 0xxxxxxx
最後のバイトの7ビットに有用なデータがないことがわかるように、長さも格納する必要があります。
コードスペースが問題でなく、文字列をできるだけパックしたい場合は、均一な度数分布でもハフマンコーディングまたは算術コーディングを使用して、各文字を平均でlog2(26)ビットにパックできます。 5よりわずかに少ない(つまり、4.7ビット)。