A lossless audio codec which aims to be as simple as possible while still having good enough compression ratios.
- cmake
- MSVC/GCC/CLANG/INTEL (Any compiler supporting C++11 should work)
- libao-dev (linux/bsd) / On windows you can skip this dependency
Task | Status |
---|---|
Encoder | DONE |
Decoder | DONE |
Reading and Writing WAV files | DONE |
Reading and Writing SELA files | DONE |
Multithreaded Encoding & Decoding | DONE |
Player | DONE |
Metadata support | TODO |
Seektable support | TODO |
Support for 24 bit audio | TODO |
Optimization | TODO |
To understand the core algorithm, see code in frame namespace, frame namespace utilizes maths which is implemented in lpc and rice namespaces.
- Linear Prediction
- Golomb-Rice lossless compression algorithm
- FLAC overview
- Paper on shorten, the original open source lossless codec
- ISO/IEC 14496 Part 3, Subpart 11 (Audio Lossless Coding)
Also, check out the Java version of this codec at https://github.com/sahaRatul/sela-java