A simplified lossless audio codec written for my final year project.
- Linear prediction filter (core/lpc.c)
- Golomb-Rice compressor and decompressor (core/rice.c)
- apev2 metadata reader/writer (apev2.c)
- Encoder (core/encoder.c)
- Decoder (core/decoder.c)
- Command line player (player/selaplay.c)
- Matlab implementation of Linear prediction filter can be found in 'tests/matlab-tests' folder
- gcc (You can use clang if you modify the
CCvariable in the Makefile) - GNU make
- Standard math library for building the encoder and decoder.
- POSIX threading and pulseaudio/libao developement libraries for building the command line player. Note : On Windows you will need cygwin to build the command line player. Otherwise MinGW is sufficient.
- cd to the directory
- type
make allto build the encoder & decoder - type
make selaplay_aoormake selaplay_pulseto build the player using either libao/pulseaudio libraries - type
make lpctest && make ricetest && make apev2testto build the tests - type
make wavdiffto build the diff utility for .wav files
- 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)