Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用哈夫曼编码技术对给定图像进行n次压缩_Java_Image_Compression_Huffman Code - Fatal编程技术网

Java 用哈夫曼编码技术对给定图像进行n次压缩

Java 用哈夫曼编码技术对给定图像进行n次压缩,java,image,compression,huffman-code,Java,Image,Compression,Huffman Code,我正在用java编写一个程序,在这个程序中,用户输入一个给定的图像需要压缩多少次,它应该根据多少次压缩图像 首先,我们将图像转换为像素矩阵,找出每个像素出现在该矩阵中的概率,然后应用哈夫曼码以0的n 1的形式获得代码 现在,如果我们尝试第二次压缩它,我们将只有2个概率,即0 n 1。因此,我们现在不能应用哈夫曼码 那么在这种情况下可以做什么呢?您可以在两个符号上应用算术代码。例如,如果零比一多得多,那么算术代码将通过对零和多个位进行编码来减少总位数。(这是通过将输出位视为二进制分数来实现的,每个

我正在用java编写一个程序,在这个程序中,用户输入一个给定的图像需要压缩多少次,它应该根据多少次压缩图像

首先,我们将图像转换为像素矩阵,找出每个像素出现在该矩阵中的概率,然后应用哈夫曼码以0的n 1的形式获得代码

现在,如果我们尝试第二次压缩它,我们将只有2个概率,即0 n 1。因此,我们现在不能应用哈夫曼码


那么在这种情况下可以做什么呢?

您可以在两个符号上应用算术代码。例如,如果零比一多得多,那么算术代码将通过对零和多个位进行编码来减少总位数。(这是通过将输出位视为二进制分数来实现的,每个新的输入位都缩小了二进制分数的范围。)


然而,在使用哈夫曼码进行压缩后,您会发现,1的数量与0的数量非常接近。这样它就不可压缩了。或者任何方式。

压缩压缩数据通常只会增加开销,实际上会使其膨胀,而不是减少开销。当营养不良接近极限时,你就无能为力了。