问题标签 [huffman-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
567 浏览

java - 输入字符串压缩为字符串

我想将字符串压缩/转换为新字符串。

即:输入字符串:

压缩后的输出字符串:

解压后输出字符串:

这种转换有一些压缩或哈希方法吗?

我更喜欢使用 Java 或具有基本流程步骤的算法的一些解决方案。

我已经阅读并尝试使用霍夫曼转换,但压缩输出由字节出站 UTF-8 字符集组成。

0 投票
1 回答
10557 浏览

c - 解码 JPEG Huffman 块(表)

以下块由 Huffman 块标记嵌套

0084是表格的长度,为整数,此处不包含在块中

根据JPEG标准,第一个地址aparently使其成为目标0(0x10)的AC表

显然从那里开始它是一张霍夫曼表。

那么,它是如何解码的呢?

0 投票
4 回答
518 浏览

c - 分段错误 - 自适应霍夫曼树

我正在尝试实现自适应霍夫曼代码,但是在尝试构建树时,在“currentNYT->lchild = newNYT;”行执行代码时出现分段错误 在 addnode() 函数中。

有人可以帮我吗?这可能是我不知道的简单事情。好久没用C了。

0 投票
6 回答
1330 浏览

compression - 数据压缩

我有一个任务以某种方式压缩股票市场数据......数据在一个文件中,其中每天的股票价值在一行中给出,依此类推......所以它是一个非常大的文件。

例如,
123.45
234.75
345.678
889.56
......

现在的问题是如何使用 Huffman 或算术编码或 LZ 编码等标准算法压缩数据(也就是减少冗余)......哪种编码最适合这类数据??......

我注意到,如果我获取第一个数据,然后考虑每个连续数据之间的差异,差异值会有很多重复......这让我想知道是否首先获取这些差异,找到它们的频率和概率,然后使用霍夫曼编码将是一种方式??...

我是对的吗?...谁能给我一些建议。

0 投票
1 回答
8956 浏览

c - 以位形式将文件写入C中的文件

我正在用 C 实现霍夫曼算法。我已经得到了基本功能,直到获得二进制码字。例如, abcd 将是 100011000 或类似的东西。现在的问题是如何在压缩文件中以二进制形式编写此代码。我的意思是如果我正常写它,每个 1 和 0 将是一个字符,所以没有压缩。

我需要以位的形式写出这些 1 和 0。在 C 语言中这可能吗?如果可以,怎么办?

0 投票
2 回答
1523 浏览

huffman-code - 扩展霍夫曼码

我有这个作业:找到任何给定字母表中符号的代码字。它说我必须对三个符号组使用二进制霍夫曼。这到底是什么意思?我是否在 [字母]^3 上使用常规霍夫曼?如果是这样,那么我该如何区分一组中的 3 个符号?

0 投票
3 回答
2773 浏览

algorithm - 如何解码霍夫曼树?

有没有比根据输入数字 0 或 1 向左或向右走更好的方法?

0 投票
6 回答
47574 浏览

algorithm - 霍夫曼编码的实际应用是什么?

有人告诉我霍夫曼编码被用作无损数据压缩算法,但我也被告知真正的数据压缩软件使用霍夫曼编码,因为如果密钥分布不够分散,压缩文件可能比原始文件更大文件。

这让我想知道霍夫曼编码是否有任何实际应用?

0 投票
6 回答
27134 浏览

c++ - 如何快速解码霍夫曼码?

我在 Windows 下使用纯霍夫曼代码实现了一个简单的压缩器。但是我不太了解如何快速解码压缩文件,我的错误算法是:

枚举代​​码表中的所有霍夫曼代码,然后将其与压缩文件中的位进行比较。结果很糟糕:解压 3MB 文件需要 6 个小时。

你能提供一个更有效的算法吗?我应该使用哈希还是什么?

更新:根据我朋友林的建议,我已经用状态表实现了解码器。我认为这种方法应该比遍历霍夫曼树,6s 内 3MB 更好。

谢谢。

0 投票
5 回答
1879 浏览

javascript - ASCII 文本字符串缩短

我对安全性或任何类似性质的东西并不真正感兴趣,但我需要一些允许我“压缩”/“解压缩”字符串的函数。我已经尝试过 Base64,但是字符串的大小有一个很大的问题,它使它更长。我也知道这个霍夫曼的东西,但这也不起作用,因为它也使它更长(在内存方面更少,它是一个整数)。

换句话说,我希望将任意字符串“djshdjkash”编码为其他字符串“dhaldhnctu”。能够从一个到另一个,并且新字符串的长度等于或小于原始字符串。

Javascript可以做到这一点,已经完成了吗?

  • 需要澄清,正如我所说,安全不是目标,只是为了伪装字符串并保持其长度(或缩短它)。Base64 是最好的例子,但它使字符串更长。ROT13 很简洁,但不涵盖所有 ASCII 字符,仅涵盖字母。