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

