1. 引言
LZ77算法是采用字典做数据压缩的算法,由以色列的两位大神Jacob Ziv与Abraham Lempel在1977年发表的论文《A Universal Algorithm for Sequential Data Compression》中提出。
基于统计的数据压缩编码,比如Huffman编码,需要得到先验知识——信源的字符频率,然后进行压缩。但是在大多数情况下,这种先验知识是很难预先获得。因此,设计一种更为通用的数据压缩编码显得尤为重要。LZ77数据压缩算法应运而生,其核心思想:利用数据的重复结构信息来进行数据压缩。举个简单的例子,比如
取之以仁义,守之以仁义者,周也。取之以诈力,守之以诈力者,秦也。
取之以、仁义、,、者、守之以、也、诈力、。均重复出现过,只需指出其之前出现的位置,便可表示这些词。为了指明出现位置,我们定义一个相对位置,如图

相对位置之后的消息串为取之以诈力,守之以诈力者,秦也。,若能匹配相对位置之前的消息串,则编码为以其匹配的消息串的起始与末端index;若未能匹配上,则以原字符编码。相对位置之
LZ77算法是一种基于数据重复结构进行数据压缩的方法,由Ziv和Lempel在1977年提出。它使用滑动窗口和Lookahead Buffer进行压缩和解压缩,通过找到已编码字符串的最长匹配来减少信息量。在压缩过程中,输出(p,l,c)表示匹配位置、长度和下一个字符,解压缩时根据匹配情况恢复原始数据。算法无损且可逆。"
128713617,13903852,Vue3 中的函数式组件实战解析,"['Vue.js', '前端开发', 'JavaScript']
订阅专栏 解锁全文
1887

被折叠的 条评论
为什么被折叠?



