huffman-code相关内容

如何高效解压哈夫曼编码文件

我发现了很多问这个问题的问题,但其中一些解释很难理解,我也不能完全理解如何有效地解压缩文件的概念。 我发现了这些相关的问题: Huffman code with lookup table How to decode huffman code quickly? 但是我不能理解这个解释。我知道如何定期对霍夫曼树进行编码和解码。现在,在我的压缩程序中,我可以将以下任何信息写入文件 符号 霍夫曼代码 ..
发布时间:2022-04-25 14:40:56 C/C++开发

在base64编码之前缩短字符串以使其更短的无损压缩方法?

刚刚构建了一个用于预览 HTML 文档的小型 Web 应用程序,该应用程序生成的 URL:s 包含 base64 编码数据中的 HTML(以及所有内联 CSS 和 Javascript).问题是,URL:s 很快就会变得有点长.首先压缩字符串而不丢失数据的“事实上的"标准方式(最好是Javascript)是什么? PS;前段时间我在学校读到关于 Huffman 和 Lempel-Ziv 的文 ..
发布时间:2022-01-21 09:02:25 前端开发

存储哈夫曼树的有效方式

我正在编写一个霍夫曼编码/解码工具,并且正在寻找一种有效的方法来存储为存储在输出文件中而创建的霍夫曼树. 目前我正在实施两个不同的版本. 这个将整个文件逐个字符读入内存,并为整个文件建立一个频率表.这只需要输出一次树,因此效率不是那么大,除非输入文件很小. 我使用的另一种方法是读取一块大小约为 64 KB 的数据,然后对其运行频率分析,创建一棵树并对其进行编码.但是,在这种情况下,在 ..
发布时间:2021-12-08 11:44:52 C/C++开发

霍夫曼树编码

我之前问过的霍夫曼树有另一个问题!代码如下: 包霍夫曼;导入 java.io.FileNotFoundException;导入 java.io.FileReader;导入 java.util.ArrayList;导入 java.util.PriorityQueue;导入 java.util.Scanner;公共课霍夫曼{公共 ArrayList文件阅读器(字符串文件){ArrayListal = ..
发布时间:2021-09-09 19:30:06 Java开发

有效的霍夫曼码?

我正在尝试解决霍夫曼编码问题,但我不确定我是否完全理解该主题.我想弄清楚以下是否是有效的霍夫曼代码: A: 0乙:01丙:11D: 110电子:111 我的想法是它无效,因为 A 或 1 会侵犯 B 或 01.不过我并不肯定.有人可以启发我吗? 编辑:对不起,我想将 A 输入为 0 而不是 1. 解决方案 没有.霍夫曼码是一个前缀码,这意味着任何码都不能是任何其他码的前缀.在您的 ..
发布时间:2021-09-07 18:30:32 其他开发

霍夫曼树:遍历

我不确定我将如何攻击我的霍夫曼树的遍历.这棵树是正确的,我只是很难弄清楚如何以一种好的方式遍历它.由于某种原因,我的遍历方法没有给出任何结果... 更新:清理代码,使其更加面向对象 节点类: 公共类节点{公共国际frekvens;//频率公共字符;//象征公共节点 venstre;//左孩子公共节点 høyre;//右孩子公共字符串 s;//结果字符串公共字符串结果;public N ..
发布时间:2021-07-05 19:21:25 C#/.NET

Haskell树结构

需要一些帮助来编写一个Haskell函数,该函数需要一个字符串并创建一个二叉树.需要具有更好Haskell经验的人一些帮助,以填补我的一些空白并描述原因,因为这对我来说是学习的经验. 为Haskell中的项目提供了一个用单个字符串编码的树(示例 ** B ** DECA ).星号表示节点,其他任何字符表示叶子.我正在尝试使用从输入中读取的信息来填充此数据结构. 数据Trie = Lea ..
发布时间:2021-05-13 20:47:39 其他开发

gzip和png压缩中使用的DEFLATE是否相同?

我了解了gzip压缩和png图像压缩,它们都使用DEFLATE算法,但是我不确定该算法的实现是否相同.此外,如果算法相同,那么除了png压缩在DEFLATE之前使用增量过滤这一事实之外,这些压缩之间有什么区别? 解决方案 DEFLATE 是压缩数据 format ,而不是算法. gzip 和 ..
发布时间:2021-05-13 20:10:42 其他开发

霍夫曼解码压缩文件

我有一个程序,该程序根据在文本输入文件中读取的ASCII字符频率生成霍夫曼树.霍夫曼码存储在由256个元素组成的字符串数组中;如果未读取字符,则为空字符串.该程序还对输出文件进行编码和压缩. 我现在正试图解压缩和解码当前的输出文件,该文件将作为输入文件打开,而新的输出文件将使解码后的消息与原始文本输入文件相同. 我对我这部分作业的思考过程是从我制作的编码功能开始向后工作,一次读取8位, ..
发布时间:2021-04-29 18:52:40 C/C++开发

如何在C ++中逐位读取/写入序列

我已经在C ++中实现了 Huffman 编码算法,并且运行良好.我想创建一个文本压缩算法. 数字世界中每个文件或数据的后面都是0/1. 我想将霍夫曼编码算法生成的位序列( 0/1 )保留在文件中. 我的目标是保存文件中要存储的位数.我将元数据存储在单独的文件中以进行解码.我想一点一点地将数据写入文件,然后在c ++中一点一点地读取相同的数据. 二进制模式面临的问题是它不允 ..
发布时间:2021-04-21 20:27:18 C/C++开发

在霍夫曼压缩后将代码表存储在压缩文件中,并从该表中构建用于解压缩的树

我正在使用C ++编写霍夫曼压缩程序,但遇到压缩文件结构的问题.它需要在我的新文件中存储一些结构,可以帮助我对该文件进行解码.我决定在此文件的开头编写一个代码表,然后从该表构建一棵树以解码下一个内容,但是我不知道以哪种方式存储该表会更好(我的意思是我不知道表的结构,我知道如何用二进制模式编写东西)以及如何从此表构建树.对不起我的英语不好.先感谢您. 解决方案 您可以根据字符出现在文本中的可 ..
发布时间:2021-04-19 20:39:58 C/C++开发

如何前进通过字节流中包含的deflate字节序列?

我有一个字节流,它是段的串联,其中每个段都由一个报头和一个缩小的字节流组成. 我需要分割此字节流部分,但标头仅包含有关未压缩形式的数据的信息,没有有关压缩数据长度的提示,因此我可以在流中正确前进并解析下一部分. 到目前为止,我发现只能通过缩小的字节序列的唯一方法是根据此规范.根据我对规范的理解,放气流是由块组成的,这些块可以是压缩块或文字块. 文字块包含一个大小标头,可用于轻松前 ..
发布时间:2021-04-02 20:42:53 其他开发

在创建霍夫曼树时,哪个节点在添加权重时向左或向右移动

我正在尝试创建一个霍夫曼树,但通过阅读互联网上的几个链接使我有些困惑.有些在左侧添加一些(按权重)较大的子节点,有些在右侧添加一些子节点. 所以我的问题: (1)在左边或右边添加节点是否真的很重要? (2)我可以在“左"中添加权重较大的节点,还是在“左"中添加权重较低的节点? 感谢您的帮助. 解决方案 只要您保持一致,就没有任何区别. 要么将 all 放到左孩 ..
发布时间:2021-04-02 20:40:02 其他开发

解析jpeg文件,SOS标记

我在解析jpeg文件时遇到问题.当我按下SOS(扫描开始)标记时,只有几个字节,这意味着我听不懂.在下面的图片中,在SOS标记之后,标头长度有2个字节(图片中的Ls部分).但是图片上的其余数据是什么意思(例如Ns,Cs1等...),以及纯数据从何处开始? 解决方案 Cs1是组件选择索引,它返回到SOF部分(其中指定了水平和垂直采样因子) Td1是当前组件(Cs1)的DC表选择器 ..
发布时间:2021-02-12 20:36:13 其他开发

如何为霍夫曼编码和解码创建树?

对于我的任务,我要对霍夫曼树进行编码和解码。我在创建树时遇到问题,并且卡住了。 不要介意打印语句-它们只是供我测试,看看何时输出我的函数运行。 对于第一个for循环,我从用于测试的主块中的文本文件中获取了所有值和索引。 在第二个for循环中,我将所有内容都插入了优先级队列。 我对下一步该怎么做感到很困惑-我正在尝试制作节点,但是我对如何前进感到困惑。有人可以告诉我我是否这样 ..
发布时间:2020-10-29 05:59:28 Python

在霍夫曼压缩/解压缩中处理最后一个字节

我有一个程序,该程序根据在文本输入文件中读取的ASCII字符频率生成霍夫曼树。霍夫曼码存储在由256个元素组成的字符串数组中;如果未读取字符,则为空字符串。然后,该程序还对输出文件进行编码和压缩,然后能够将压缩后的文件作为输入文件进行解压缩和解码。 总而言之,我的程序需要输入文件将对输出文件进行压缩和编码,关闭输出文件,然后将编码作为输入文件打开,然后获取一个新的输出文件,该文件应具有与原始 ..
发布时间:2020-10-18 00:39:30 C/C++开发

将列表映射到霍夫曼树,同时保留相对顺序

我在霍夫曼树上的搜索算法遇到问题:对于给定的概率分布,无论输入数据如何排列,我都需要霍夫曼树是相同的。 以下是发生的情况与我想要的情况的图片: 基本上我想知道是否可以保留列表中与树之间的相对顺序。如果不是,为什么会这样呢? 作为参考,我使用霍夫曼树根据概率划分来生成子组,以便我可以运行下面的search()过程。注意,merge()子例程中的数据与权重结合在一起。代码字本身并不像 ..
发布时间:2020-10-18 00:25:28 Python

用Java进行Huffman编码期间无法压缩文件

我已经使用优先级队列在Java中实现了霍夫曼编码算法,其中我从根到叶遍历树,并根据符号在输入中出现的次数获得编码示例为#= 000011。一切都很好,树被很好地构建,编码正如预期的那样:但是我得到的输出文件的大小比原始文件大。我目前正在附加“ 0”和“遍历树的左节点和右节点时,字符串为“ 1”。我最终可能会为每个字符使用所有8位,这对压缩没有帮助。我猜想这些位需要一些转换为字符值。这样这些字符使用 ..
发布时间:2020-10-07 02:38:03 Java开发