Algorithm 这两种算法都是LZSS的有效实现吗?
我是逆向工程的东西,我经常偶然发现各种解压算法。大多数时候,LZSS就像维基百科描述的那样:Algorithm 这两种算法都是LZSS的有效实现吗?,algorithm,compression,Algorithm,Compression,我是逆向工程的东西,我经常偶然发现各种解压算法。大多数时候,LZSS就像维基百科描述的那样: 初始化大小为2^n的字典 当输出小于已知输出大小时: 阅读标志 如果设置了该标志,则输出文字字节(并将其追加到字典末尾) 如果未设置该标志: 读取长度并向后看位置 从字典的后视位置转录长度字节到输出和字典末尾 问题是,这些实现遵循了两个如何对标志进行编码的流派。第一种方法将输入视为位序列: (……) 将标志读取为一位 若已设置,则将文本字节读取为8个未对齐位 如果未设置,则将长度和位置读取为n和m未
我的问题是:这些都是有效的LZSS实现,还是我发现这些算法是错误的?它们有任何已知的名称吗?它们实际上是LZS上的变体,因为它们都使用一个位来决定文字与匹配。更一般地说,它们是LZ77上的变体 Deflate也是LZ77上的一个变体,它不使用一个完整的位来进行文本与匹配。相反,deflate有一个用于文本和长度组合的代码,因此该代码隐式地确定下一个是文本还是匹配。长度代码后面跟着一个单独的距离代码 (一种特定的算法,而不是一个系列)以不同的方式处理字节对齐,对文本的数量进行编码,后面必须跟一个匹配。包含文字数的第一个字节也有部分距离。文字是字节对齐的,文字后面的偏移量和剩余距离也是字节对齐的