Zlib library에서 사용하는 알고리즘

Lempel-Ziv Algorithm

Lempel-Ziv 알고리즘은 실제로 가장 많이 사용하는 압축 알고리즘이다. 자주 Lempel-Ziv는 어떤 문자 패턴이라도 압축할 수 있다. Lempel-ZIv 알고리즘은 허프만 코딩 알고리즘과 함께 Zlib에서 사용하는 알고리즘의 기본이 된다. 실제로 Lempel-Ziv알고리즘은 LZ77, LZ78 등 많은 변형이 있다. Zlib은 LZ77을 사용한다.

Huffman Coding Algorithm - An Explanation of the Deflate Algorithm

허프만 코드 알고리즘은 나타나는 빈도가 높은 데이터에는 적은 비트 수를 할당하고, 빈도가 낮은 데이터에는 많은 비트 수를 할당하는 알고리즘이다. 각 데이터가 변형될 코드가 제 각각의 길이를 가지므로 가변길이(Variable Length) 압축 알고리즘이라고도 한다.

Deflate - rfc1951문서, An Explanation of the Deflate Algorithm

Zlib에서 사용하는 알고리즘이다. Deflate알고리즘은 LZ77과 Huffman coding을 차례로 적용시키는 것이라 보면 된다.