- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个问题——有人向我介绍了 Ziv-Lempel 的一个版本,它只对大小为 3 或更长的重复进行编码(不对 1 或 2 个字符的重复进行编码——字符本身被放置在编码字符串中,而不是(m,k) 值)。有人问我是否可以提高 ziv Lempel 编码效率(就编码字符串的长度而言 - 而不是时间复杂度)。
我认为就编码字符串的长度而言 - 可能存在这样一种情况,即不对位置 p 处的 3 长度重复进行编码,而是对从位置 p+1 或 p+2 开始的重复进行编码可能会产生更好的结果- 这也出现在我读到的理论中:我添加了一张相关段落的照片来说明这一点(但没有给出示例)。到目前为止,我设法找到的每个示例都是编码长度为 3 的重复的代码也可以检测到的示例。
这是一段说明这样一个文本存在的事实:
Our compression algorithm as described so far is greedy: Any repeat of length 3 or more is reported and employed right away. Sometimes this is not optimal: We could have an [m1, k1] repeat in position p, and an [m2, k2] repeat in position p+1 or p+2, with k1 << k2. Thus a non-greedy algorithm may result in improved compression.
最佳答案
是的。 gzip 和 zlib 的 deflate 算法使用“惰性”匹配,它推迟发出匹配的决定直到下一个字符,以便查看那里是否有更长的匹配。这绝对是一场胜利。
关于algorithm - ziv lempel 效率可以通过压缩更长的重复次数来提高吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960842/
我为以下示例字符串编写了以下代码来实现 lempel-ziv 压缩算法: AAAABBCDEABCDABCAAABCDEEEEEECBBBBBBDDAAE 代码: keys=[] text = ope
我有一个问题——有人向我介绍了 Ziv-Lempel 的一个版本,它只对大小为 3 或更长的重复进行编码(不对 1 或 2 个字符的重复进行编码——字符本身被放置在编码字符串中,而不是(m,k) 值)
我必须实现 LZW 算法,但我发现解码部分存在一些问题。我认为代码是正确的,因为它适用于我在网上某处找到的示例:如果我按如下方式初始化我的字典 m_dictionary.push_back("a");
我有一个基于 LZW 压缩/解压缩算法的实现,并且大部分都将其平方。但是,我在测试的其中一个文件中遇到了问题。以下是所述文件的文本 #include "bits.h" int check_endian
我需要计算二进制字符串的 LZ 复杂度。 LZ 复杂度是从头到尾查看流时遇到的差异子串的数量。例如: s = 1001111011000010 在不同子串中标记序列复杂度c(s) = 6:s = 1/
此函数允许估计时间序列的熵。它基于 Lempel-Ziv 压缩算法。对于长度为 n 的时间序列,熵估计为: E= (1/n SUM_i L_i )^-1 ln(n) 其中 L_i 是从位置 i 开始的
您如何在 .NET 中解压缩这些 LZH 格式之一(提示:我更愿意使用已经实现的功能,而不是在可能的情况下实现)。 我的情况是服务器向我发送了一个 XML 文档;该文档有一些 Base64 编码的压缩
我是一名优秀的程序员,十分优秀!