7得票2回答
DEFLATE和固定Huffman编码

我正在尝试实现一个压缩器并且需要决定是否使用静态哈夫曼编码或者创建动态哈夫曼编码。 静态编码长度与什么有关? (RFC中包含的表格如下) Lit Value Bits --------- ---- 0 - 143 8 144 - 255 9 256 - 27...

7得票1回答
解析JPEG文件,SOS标记。

我在解析jpeg文件时遇到了问题。当我遇到SOS(扫描开始)标记时,有几个字节的含义我不理解。在下面的图片中,在SOS标记后,有2个字节用于头部长度(图片上的Ls部分)。但是图片中其余的数据(例如Ns,Cs1等)是什么意思,纯数据从哪里开始呢?

7得票5回答
霍夫曼编码

我正在尝试实现用于压缩的哈夫曼算法,这需要将可变长度的位写入文件。在C++中是否有一种方法可以以1位粒度写入可变长度数据到文件中?

7得票2回答
C++ STL:使用带有priority_queue的map

我正在尝试通过将字母及其对应的值保存到映射中,然后将该映射插入优先队列中来实现霍夫曼编码。当我尝试声明我的队列时,我遇到了参数转换错误。我应该把什么放在参数中?这里是我的最佳猜测。 void main() { ifstream doc("doc.txt"); map<char, ...

7得票6回答
生成'n'个二进制前缀码的算法

一个前缀编码是一组编码,使得没有一个编码是另一个编码的前缀。例如,以下集合是一个前缀编码: 10 11 000 001 0100 0101 0110 0111 有 n = 8 个成员。我认为这些通常是使用某种类型的霍夫曼树创建的。 我的问题是:您能帮助我创建一个函数,以生成具有'n'成...

7得票3回答
DEFLATE(zlib、gzip)格式中使用的编码动态哈夫曼树的最大尺寸是多少?

“3.2.7. 使用动态哈夫曼编码进行压缩(BTYPE = 10)”部分的https://www.ietf.org/rfc/rfc1951.txt描述了在压缩期间使用的动态哈夫曼树的编码。在DEFLATE位流中出现的这种编码的最大大小(以比特为单位)是多少?额外的分数可以通过外部参考支持特定数...

7得票2回答
非二进制字母表的哈夫曼树?

如果结果的字母表不是二进制,是否有一种简单的霍夫曼编码树的推广方法?例如,如果我想通过用三进制写出文本来压缩它,我仍然可以为我写出的每个字符建立一个前缀自由编码系统。直接将霍夫曼构造(使用k元树而不是二进制树)进行推广是否仍能正确高效地工作?或者这种构造会导致高度低效的编码方案?

7得票5回答
压缩文本文件的快速搜索

我需要能够在许多被压缩的文件(.txt)中搜索文本。压缩格式可能会改变,甚至变得专有。 我想避免解压所有文件并压缩(编码)搜索字符串,并在压缩文件中搜索。这应该可以使用相同的码书对所有文件进行哈夫曼压缩来实现。 我不想重复造轮子,所以...有人知道类似于此或已实现和测试的哈夫曼算法的库,或者也...

7得票3回答
哈夫曼编码是最有效的无损压缩算法,是否有数学证明?

我的朋友告诉我这个存在,但我从未找到过。不确定他是否在撒谎,但我非常想知道证明的原理。 (是的,我是那些从《硅谷》电视节目中了解哈夫曼编码的人之一,抱歉)

7得票3回答
困惑于哈夫曼树

生成哈夫曼树的快速教程 对于哈夫曼树感到困惑。在上面链接的最后,它展示了只剩下2个元素的树,然后是完成的树。我困惑的是它的分支方式。哈夫曼树需要特定的分支方式吗? 例如,57:* 和它的右子节点35:* 向右分支。它可以是35向左分支,22向右分支吗?此外,为什么22:*没有与15:4配对...