Bibliography
This document collects classic papers, authoritative textbooks, and related open source projects in the field of compression algorithms, providing academic references for in-depth researchers.
Classic Papers
Huffman Coding
The original paper on Huffman coding, proposing a greedy algorithm for constructing optimal prefix codes. Huffman completed this work while pursuing his PhD at MIT, and the algorithm is still widely used today.
DOI: 10.1109/JRPROC.1952.273898
Arithmetic Coding
The theoretical foundation of arithmetic coding, showing how to encode an entire message as a single numerical value approaching the entropy limit.
Application of arithmetic coding in image compression, demonstrating its advantages in practical scenarios.
Range Coding
The original paper on range coding, showing how to implement arithmetic coding using integers to avoid floating-point precision issues.
Information Theory Foundations
The foundational work of information theory, defining the concept of entropy and establishing the theoretical lower bound for lossless compression.
DOI: 10.1002/j.1538-7305.1948.tb01338.x
Authoritative Textbooks
Data Compression
The classic textbook in the field of data compression, covering Huffman coding, arithmetic coding, LZ algorithms, etc. Rigorous theory with rich examples.
- Publisher link: Elsevier
Focused on algorithm implementation and performance analysis, with extensive engineering practical experience.
Information Theory
The standard textbook on information theory, with in-depth coverage of entropy, mutual information, rate-distortion theory, and other core concepts.
Related Open Source Projects
General Compression Libraries
| Project | Language | Features |
|---|---|---|
| zlib | C | Standard DEFLATE implementation, widely used |
| lz4 | C | Extremely fast LZ77 variant, suitable for real-time compression |
| zstd | C | Developed by Facebook, balanced speed and compression ratio |
| brotli | C | Developed by Google, new standard for web compression |
Arithmetic Coding Implementations
| Project | Language | Features |
|---|---|---|
| rangecoder | C | Fabian Giesen's range coding implementation |
| arithcoder | C++ | Educational arithmetic coding implementation |
Educational Projects
| Project | Language | Features |
|---|---|---|
| huffman-coding | C | Concise Huffman coding implementation |
| compression-algorithms | Python | Teaching implementations of multiple compression algorithms |
Online Resources
Courses
- MIT 6.050J Information and Entropy - MIT OpenCourseWare
- Stanford EE376A Information Theory - Stanford Information Theory Course
Blogs and Tutorials
- A Practical Introduction to Arithmetic Coding - Detailed tutorial by Mark Nelson
- Understanding Compression - Hans HQ's compression principles series
Citing This Document
If you reference CompressKit in academic work, we suggest using the following format:
@misc{compresskit2026,
author = {CompressKit Team},
title = {CompressKit: Cross-Language Lossless Compression Algorithms},
year = {2026},
publisher = {GitHub},
url = {https://github.com/LessUp/compress-kit}
}2
3
4
5
6
7
Contributing References
If you find important references missing, please submit them via GitHub Issues.