Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - sahaRatul/sela: SimplE Lossless Audio
SimplE Lossless Audio. Contribute to sahaRatul/sela development by creating an account on GitHub.
Visit SiteGitHub - sahaRatul/sela: SimplE Lossless Audio
SimplE Lossless Audio. Contribute to sahaRatul/sela development by creating an account on GitHub.
Powered by 0x5a.live ๐
SELA
SimplE Lossless Audio
A lossless audio codec which aims to be as simple as possible while still having good enough compression ratios.
Code Quality Metrics
Build Requirements
- cmake
- MSVC/GCC/CLANG/INTEL (Any compiler supporting C++11 should work)
- libao-dev (linux/bsd) / On windows you can skip this dependency
Current status
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 |
Block Diagrams
To understand the core algorithm, see code in frame namespace, frame namespace utilizes maths which is implemented in lpc and rice namespaces.
References
- 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)
NOTE: You can get the legacy C code by switching to legacy
branch.
Also, check out the Java version of this codec at https://github.com/sahaRatul/sela-java
C++ Programming Resources
are all listed below.
GitHub - volt-software/Ichor: C++20 Microservice Bootstrapping Framework
resource
~/github.com
resource
GitHub - facebook/zstd: Zstandard - Fast real-time compression algorithm
resource
~/github.com
resource
GitHub - pspdev/pspsdk: An open-source SDK for PSP homebrew development.
resource
~/github.com
resource
GitHub - nothings/stb: stb single-file public domain libraries for C/C++
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.