LZMA算法(Lempel-Ziv-Markov chain-algorithm),工学-信息与通信工程-信源编码-数据压缩-〔数据压缩经典算法〕-LZMA,基于字典编码经LZ77算法改良和优化后的一种无损压缩算法。C++语言写成的LZMA算法开放源码压缩库使用了区间编码支持的改进的LZ77算法以及特殊的用于二进制的预处理程序。LZMA算法对数据流、重复序列大小以及重续序列位置单独进行了压缩。LZMA算法支持几种散列链变体、二叉树以及基数树作为它的字典查找算法基础。在LZMA算法之前,大多数的编码器模型都是纯粹基于字节的(它们对每个位进行编码,只使用级联的上下文来表示同一字节的前一个位的依赖关系)。LZMA算法的主要创新之处在于LZMA算法的模型没有使用通用的基于字节的模型,而是使用特定于每个字段或短语表示的位域的上下文。这几乎和通用的基于字节的模型一样简单,但由于它避免了将不相关的位混合在同一上下文中,所以压缩效果更好。此外,与经典的字典压缩(如zip和gzip格式的压缩)相比,字典通常要大得多,可以利用现代系统的大量内存。