Algorithm LZ77算法-元组中的下一个字符 为了描述我的问题,我们来看看Wiki上的例子:

Algorithm LZ77算法-元组中的下一个字符 为了描述我的问题,我们来看看Wiki上的例子: ,algorithm,compression,Algorithm,Compression,我有两个问题: 1) 为什么总是保留下一个角色?在某种意义上,下一个字符不会被压缩,因为它直接存储到元组中。 2) 如果保留的终止符号($)实际出现在输入数据中,该怎么办?有可能存储为下一个字符,这意味着下一个字符是“$”,对吗?如果每个字符都显示为下一个字符,那么解决方案是什么? 1)一旦找到最长的匹配,根据定义,下一个字符不能表示为匹配的一部分,因此必须将其逐字发送到解压缩程序 2) 示例中使用“$”作为比喻,表示输入的结尾。它通常由自己的代码表示,独立于256个文本字节。1)因此在下一次

我有两个问题: 1) 为什么总是保留下一个角色?在某种意义上,下一个字符不会被压缩,因为它直接存储到元组中。
2) 如果保留的终止符号($)实际出现在输入数据中,该怎么办?有可能存储为下一个字符,这意味着下一个字符是“$”,对吗?如果每个字符都显示为下一个字符,那么解决方案是什么?

1)一旦找到最长的匹配,根据定义,下一个字符不能表示为匹配的一部分,因此必须将其逐字发送到解压缩程序


2) 示例中使用“$”作为比喻,表示输入的结尾。它通常由自己的代码表示,独立于256个文本字节。

1)因此在下一次迭代中,为什么不从nex字符开始搜索匹配的模式?我不知道你在问什么。我的意思是,为什么不返回一对值:一个是距离,第二个是长度或下一个字符,取决于距离是否为零(当距离为零时,第二个值是下一个字符)。通过这样做,“下一个字符”不必总是按字面意思发送到解压器,而是仅当在搜索缓冲区中找不到该字符时才发送。相同数据有许多表示形式。在deflate中,有一个单文字/长度代码,其中只有当代码是长度时,才会出现距离。(顺便说一下,文字是压缩的。)在brotli中,单个代码表示文字的长度和数量,后跟文字代码,后跟副本的距离。“元组”不一定是如何编码的,只是需要传达的信息。