如果要使用霍夫曼代码压缩图像,我的频率阵列应该有多大?

时间:2018-11-03 18:41:03

标签: java huffman-code

所以我一直在实现霍夫曼代码来压缩文本文件,这就是我一直在计算每个字符的重复次数的方式

    BufferedInputStream fin = new BufferedInputStream(new FileInputStream(f));
    byte[] b = new byte[(int) f.length()];
    int[] counter = new int[256];
    for(int i = 0; i < b.length; i++) {
        char ch = (char) b[i];
        counter[ch]++;
    }

我想扩展我的霍夫曼代码以压缩其他类型的文件,但是我不确定如何做到这一点?我是否要制作一个数组,以容纳像这样的所有可能的未编码字符

     int[] counter=new int[65536];

我不认为将数组做成这么大就足够了,但是我不太确定该怎么做?

1 个答案:

答案 0 :(得分:0)

将字符作为编码为UTF-8的字节序列处理。然后只需保持字节频率编码即可。