Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: SEA - Simple Embedded Audio Codec - Open Source (Read 3456 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

SEA - Simple Embedded Audio Codec - Open Source

Hello everyone! I’d like to introduce my new open-source audio codec, SEA (Simple Embedded Audio Codec).

SEA is a low-complexity, lossy audio codec designed for embedded devices, inspired by the awesome QOA codec.
Like QOA, SEA utilizes the Least Mean Squares (LMS) filter algorithm, but it introduces variable bitrate (VBR) support and features slightly modified quantization tables.

The reference implementation is written in Rust, and a ~250-line decoder in C is also available for demonstration purposes.

You can find the source code and some more details on GitHub: https://github.com/Daninet/sea-codec

You can also try it out with the interactive web version here: https://daninet.github.io/sea-codec/

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #1
Thanks.
You can also try it out with the interactive web version here: https://daninet.github.io/sea-codec/
Code: [Select]
Panicked at 'index out of bounds: the len is 1 but the index is 1', src/codec/encoder_base.rs:182:13
This occurred when trying four files: two wav and two flac (ranging from 5 seconds to 26 seconds long).

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #2
Sorry, I just fixed a bug regarding this. Try force refreshing the page.

Thanks.
You can also try it out with the interactive web version here: https://daninet.github.io/sea-codec/
Code: [Select]
Panicked at 'index out of bounds: the len is 1 but the index is 1', src/codec/encoder_base.rs:182:13
This occurred when trying four files: two wav and two flac (ranging from 5 seconds to 26 seconds long).

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #3
thanks. that fixed it.
drag'n'drop doesn't work, but files can be uploaded by clicking the file area.

I used 4 problem samples I have (just found them again) - aps killer - ProblemSample.wav | badvilbel.flac | castanets.wav | Originalsmall.flac - and with a very "quick and dirty" play using speakers (not headphones) I can tell the differences between original and encoded ones with ~1.2 and ~2.2 settings and ~3.2 & ~4.2 with badvilbel.flac.

I can also tell the difference between badvilbel.flac at VBR 3.0, but not at 4.0 (with speakers).

Again, a quick and dirty play.

QOA and this SEA are interesting for sure.

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #4
Wanted to try, but there is no CLI tool at all, but at least CLI tool is on TODO list...


Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #6
Great, will test it, i have some audio files that have high spectrum content that have strange artifacts in ultra-high spectrum with QOA codec encoding.

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #7
Great, will test it, i have some audio files that have high spectrum content that have strange artifacts in ultra-high spectrum with QOA codec encoding.
it's not enough to compare the two, it's too early

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #8
Cool project, thank you!
For quite some time, I wanted to integrate some lightweight codec (like QOA) into my music streamer (link), but didn't want to interface with the C code.
So... I have just added Sea support to it!

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #9
Tested with default settings, it appears that it have almost same artifacts like QOA, i can share several seconds long sample to reproduce the issue.

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #10
It would be helpful. I see some room for improvement within the VBR algorithm. Perhaps it could detect artifacts and allocate a higher bitrate to problematic samples.
Tested with default settings, it appears that it have almost same artifacts like QOA, i can share several seconds long sample to reproduce the issue.

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #11
Attached, 2min long flac file. The upper top content (when viewed via online realtime spectrogram) somehow corrupts rest of audio, and introduces noises. (noises are slightly less bad then one in qoa, and that is reflected by better SDR (Signal to Distortion Ratio) score when compared with reference flac file)

 

Re: SEA - Simple Embedded Audio Codec - Open Source

Reply #12
Yeah, some high frequency noise definitely visible on the spectrogram at CBR 3.2bps. It seems to bit a lot better with CBR 4.2 bps.

Attached, 2min long flac file. The upper top content (when viewed via online realtime spectrogram) somehow corrupts rest of audio, and introduces noises. (noises are slightly less bad then one in qoa, and that is reflected by better SDR (Signal to Distortion Ratio) score when compared with reference flac file)