Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python LZ77压缩保留字节“<&燃气轮机&引用;_Python_Compression_Zip_Deflate - Fatal编程技术网

Python LZ77压缩保留字节“<&燃气轮机&引用;

Python LZ77压缩保留字节“<&燃气轮机&引用;,python,compression,zip,deflate,Python,Compression,Zip,Deflate,我正在学习LZ77压缩,我发现当我找到一个重复的字节串时,我可以使用形式的指针,并且“”字节是保留的。所以如果我不能压缩这些字节,但不能用另一个字节对其进行更改(因为解码器无法读取),那么如何压缩包含这些字节的文件。有办法吗?或者解码器只解码是否有准确的字符串?(如果有,那么想象一下,如果我们在一个文件中找到这些字节,会发生什么?) 谢谢 如果我正确理解了你的问题,那就没有意义了。LZ77压缩器的未压缩输入没有“保留字节”。您只需对文字和长度/距离对进行明确的编码。如果我正确理解您的问题,则没有

我正在学习LZ77压缩,我发现当我找到一个重复的字节串时,我可以使用
形式的指针,并且“”字节是保留的。所以如果我不能压缩这些字节,但不能用另一个字节对其进行更改(因为解码器无法读取),那么如何压缩包含这些字节的文件。有办法吗?或者解码器只解码是否有准确的
字符串?(如果有,那么想象一下,如果我们在一个文件中找到这些字节,会发生什么?)


谢谢

如果我正确理解了你的问题,那就没有意义了。LZ77压缩器的未压缩输入没有“保留字节”。您只需对文字和长度/距离对进行明确的编码。

如果我正确理解您的问题,则没有意义。LZ77压缩器的未压缩输入没有“保留字节”。您只需对文本和长度/距离对进行明确编码。

LZ77是指根据字符串的长度和距离将其引用回解压缩缓冲区。但是,如何对这些反向引用进行编码还是留给您的。LZ77的许多实现以不同的方式实现

但您是对的,必须有某种方法来区分“文字”(未压缩的数据片段,打算按原样从输入复制到输出)和“反向引用”(从已经未压缩的部分复制)


一种方法是将某些字符保留为“特殊”(即所谓的“转义序列”)。您可以按照您的方式进行操作,即使用
,中间没有任何内容,那么这不是反向引用,因此您只需输出
LZ77,即根据字符串的长度和距当前位置的距离,将字符串引用回解压缩缓冲区。但是,如何对这些反向引用进行编码还是留给您的。LZ77的许多实现以不同的方式实现

但您是对的,必须有某种方法来区分“文字”(未压缩的数据片段,打算按原样从输入复制到输出)和“反向引用”(从已经未压缩的部分复制)


一种方法是将某些字符保留为“特殊”(即所谓的“转义序列”)。您可以按照您的方式进行操作,即使用
,中间没有任何内容,那么这不是反向引用,所以您只需输出
,您需要一个转义字符。@SLaks I not knowledge“即使所有LZ77算法都是根据相同的基本原理定义工作的,但它们在工作方式上可能有很大差异[…]区分它们的长度-距离对和文字“你需要一个转义字符。@SLaks我不明白”尽管所有LZ77算法都是根据相同的基本原理定义工作的,但它们在如何[…]区分它们的长度-距离对和文字上可能有很大的不同,“但我必须使用类似wich的“指针”“返回10并复制8”,键“”是用来指向的,不是吗?或者我如何指向东西,所以请阅读@JanneKarila对该问题的评论中的链接。您永远不会使用完整的字符,例如”“将文字与长度/距离对区分开来。deflate使用一个哈夫曼代码来表示文字和长度,距离用一个单独的代码表示。@MarkAdler但是如何实现rigth方法,以便任何zip解码器都能理解?@MarkAdler但是我需要一些关于存储在内存中的字节、数据结构和.zip头的解释。我已经理解了Lz77和哈夫曼,但我不知道字节是如何处理的。你能帮我吗?请阅读和阅读zip格式。但是我必须使用“指针”,比如wich的意思是“返回10并复制8”,键“”是用来指向的,不是吗?或者我该怎么说呢?请阅读@JanneKarila对这个问题的评论中的链接。您永远不会使用完整字符(如“”)来区分文字和长度/距离对。deflate使用一个哈夫曼代码来表示文字和长度,距离用一个单独的代码表示。@MarkAdler但是如何实现rigth方法,以便任何zip解码器都能理解?@MarkAdler但是我需要一些关于存储在内存中的字节、数据结构和.zip头的解释。我已经理解了Lz77和哈夫曼,但我不知道字节是如何处理的。你能帮我吗?请阅读和查看zip格式。