首页 > 解决方案 > 如果我想使用霍夫曼代码压缩图像,我的频率阵列应该有多大?

问题描述

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

    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];

我不认为制作一个那么大的数组就足够了,但我不确定还能怎么做?

标签: javahuffman-code

解决方案


将字符处理为编码为 UTF-8 的字节序列。然后只保留你的字节频率编码。


推荐阅读