我开始编写一个小程序,允许使用 LZ77 压缩算法压缩单个文件。 它工作正常。 现在我正在考虑如何存储数据。 在 LZ77 中,压缩数据由一系列三元组组成。 每个三元组具有以下格式: <"start reading at n. positions backwards", "go ahead f ...
我开始编写一个小程序,允许使用 LZ77 压缩算法压缩单个文件。 它工作正常。 现在我正在考虑如何存储数据。 在 LZ77 中,压缩数据由一系列三元组组成。 每个三元组具有以下格式: <"start reading at n. positions backwards", "go ahead f ...
https://github.com/sgherro/Exercises-cpp/blob/89bbd78eeac9666ed20f083ebf116e693a8c23ce/Lempel-Ziv-Stac/main.cpp我正在使用这个算法来解压我的doc文件,但它只解压部分文件数据而不能完全解压 ...
在 DEFLATE 压缩的 LZ77 阶段,额外的位用于表示反向引用的长度和距离。 然而,这些额外的位是连接到基值上以形成要进行霍夫曼编码的唯一代码,还是仅对基值进行霍夫曼编码并在之后(即在编码期间)附加额外位? 在第一种情况下,长度 11 和 12 将是不同的霍夫曼树节点,每个节点代表它们各自的频 ...
我正在尝试和我的朋友一起学习 LZ77 算法,有些情况给我们带来了困惑。 例如) 在里面搜索缓冲区大小:7 前瞻缓冲区大小:8 原始字符串:abcabbcabbcabca 当前 window:abcabbc 视图:abbcabca 我认为 LLD 元组是: Literal: 'a' Length: ...
我正在尝试理解放气算法,并且我已经阅读了霍夫曼代码以及 LZ77 压缩。 我正在玩弄不同字符串的压缩大小,我偶然发现了一些我无法解释的东西。 通过zlib和gzip压缩的字符串aaa结果与aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (36 a s)大小相同。 在阅读此 ...
我正在尝试在 python 中组合一个应用程序,该应用程序将从 Zebra Designer 软件生成的包含数千个标签的文件拆分为单个 label 文件。 我需要提取下面突出显示的字段并将其解码为人类可读的形式,以用作单个 label 文件的名称。 我已尝试按照第 1435 页上的说明解码 base ...
当我插入灰度图像时,如果我插入 rgb 图像,则算法有效,output 是错误的。 我使用 rgb 图像的方式是否正确? 我不明白为什么有人可以帮助我? 使用的图书馆 从 cv2 导入 numpy 作为 np 导入 cv2 元组和字符数组 搜索缓冲区中的指针 空序列 检查 lookAheadBuf ...
我正在使用 LZ77 算法编写简单的压缩程序。 我的问题是任何大文件的压缩速度都非常慢(对于 2 MB 图像,如果缓冲区大小为 12 且字典大小为 4096,则需要 1 分钟以上)。 我使用 Boyer-Moore-Horspool 算法在字典中搜索当前缓冲区前缀。 请告诉我什么会导致这种速度变慢, ...
我有 huffman 和 lz77 代码,但我需要任何方法来合并这些算法以使 deflate 我怎么能这样做? 我必须在不使用库的情况下手动编写它。 ...
位打包对 gzip 的性能有害吗? 假设我有 7 位值并按以下方式打包: 据我了解,LZ 压缩以字节为基础。 7 位中的任何重复模式都将被掩盖。 是否建议为字节 alignment 提供额外的位以帮助 LZ? 文献中有这方面的结果吗? ...
有人可以解释一下LZSS和LZ77算法之间的区别吗? 我已经在网上找了几个小时,但我找不到区别。 我找到了 LZ77 算法并理解了它的实现。 但是, LZSS与LZ77有何不同? 假设我们有一个字符串"abracadabra" , LZSS将如何以与LZ77不同的方式压缩它? 是否有我可以遵循的 C ...
我正在尝试解码使用 LZX 算法编码的字符串,LZX 窗口大小为 2 兆字节(二进制),然后转换为 base64。 我从 Microsoft 的更新 API ( GetUpdateData ) 收到此字符串作为响应。 根据 lzx/lz77 算法的Microsoft 文档, XmlUpdateBl ...
我正在编写 LZ77 压缩算法,但无法在字符串中存储无符号字符。 要压缩任何文件,我使用它的二进制表示,然后将其作为chars (因为 1 个字符等于 1 个字节,afaik)读取到std::string 。 使用chars一切正常。 但是经过一段时间的谷歌搜索后,我了解到char并不总是 1 个字 ...
我试图找到 LZ77 的正确实现,LZ77 是 1977 年论文中的原始著名算法。 我发现有许多不同的实现会产生不同的输出,但仍标记为 LZ77。 例如,有些使用哈希表,在更“官方”的算法(如 LZRW 或 LZJB)中使用的东西。 所以我很困惑。 我测试过的一些实现: https://g ...
我正在分解由 NiceLabel label 制作软件生成的 ZPL label 定义。 在大多数情况下,我不必担心解码 Z64,因为它只是编码的图形,我不需要更改底层数据。 但是,由于某种原因,我有一行文本被 label 用作图形,这可能是由于字体或其他原因。 无论如何,Z64 或 ZB64 字符 ...
我在Gameboy Advance的游戏中进行反向工程,我注意到原始的开发人员编写了一个代码,该代码具有两个系统调用以使用Huffman和lz77(按此顺序)解压缩关卡。 但是为什么要使用Huffman + lzZ7? 这种方法的优势是什么? ...
我想压缩包含yyyy-mm-dd hh:mm:ss格式的日期和英语单词的压缩.txt文件,这些单词有时倾向于在不同的行中重复。 我阅读了一些有关压缩算法的文章,发现在我的情况下,基于字典的编码比基于熵的编码更好。 因为我想自己实现算法,所以我需要的不是很复杂。 因此,我关注了LZW和LZ ...
我写了一个Java压缩器,用于超级晦涩的压缩格式。 (1990年代主要在Amiga Computers上使用)。 关于如何解压缩文件格式的文档很多,但实际上没有关于如何压缩文件格式的文档。 因此,我尝试自己制作。 它有效,但是有一个问题。 在“低强度设置”下,我需要42秒钟来压 ...
我正在制作自己的DEFLATE压缩器,几乎每次都击败ZLIB库。 在DEFLATE格式(LZ77)中,数据流要么包含Byte文字,要么包含反向引用,即我们应该从以前的解码字节中复制字节序列。 压缩器通常执行LZ77(查找反向引用-尽可能多),然后构建霍夫曼树并压缩该字节/引用流。 ...
我读过有关gzip压缩和png图像压缩的文章,它们都使用DEFLATE算法,但是我不确定该算法的实现是否相同。 另外,如果算法相同,那么除了png压缩在DEFLATE之前使用增量过滤这一事实之外,这些压缩之间有什么区别? ...