2014-04-05 45 views
0

我正在写一个程序在java中,其中从用户的输入需要压缩多少次的给定图像,基于它应该压缩图像。使用霍夫曼编码技术n次压缩给定的图像

最初我们将图像转换为像素矩阵,找出每个像素出现在该矩阵中的概率,并应用霍夫曼编码以0的形式获得代码n 1。

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

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

+2

压缩压缩数据通常只会增加额外开销,实际上会使其膨胀而不是减少开销。当信任接近极端时,你就无能为力了。 – Hyperboreus

回答

2

您可以在两个符号上应用算术代码。例如,如果有比零更多的零,那么算术编码将通过编码每个小于一位的零以及具有多位的零来减少总位数。 (这是通过考虑输出比特为二进制小数,并且每个新输入比特减少二进制小数的范围来完成的。)

然而,在使用霍夫曼代码进行压缩之后,您将会发现非常接近与零相同的数量。它不会以这种方式压缩。或者任何方式。