The idea is to build a recorder that would last up to 24 hours and require less storage (part of my research work).
LossyWav won't give me the compression ratios that I require.
--abr 56 -mm
Sorry for leaving out details - I'm planning for a small and wearable device powered by a couple of coin cells. So, the stress is on ultra low-power hardware design. Larger flash memories to store data, more the power consumed (1 GB flash memory works within the power budget).
Also, if I keep the Vorbis or MP3 encoder on for compressing all the data, it is more than necessary, since most of my data is going to be speech or silence and I can then use Speex (lower complexity and higher compression ratio). I still want to use Vorbis/MP3 for compressing the environmental sounds. So, can't rule out them out fully either.
Maybe SBC is an option. This is Boothooth's primary general purpose audio codec. It's quite simple/fast and gives you a quality per bit ratio that is probably similar to MPEG Layer 1. For example, you could use a sampling rate of 32 kHz and a data rate of about 128 kbps (for one channel). You'll find an SBC implementation in the libbluez source code.
Thank you everyone for all the suggestions. I have definitely got a few things to think about before I start.
On the other hand, just out of curiosity, would it actually make any sense to write a new codec (not exactly new, taking the important properties of the good codecs out there and integrating them) that can handle multiple sources of audio with ease, be power-efficient and portable-device friendly (all of these at low bitrates, 4-8 kbps for speech, 40-64 kbps for the rest)? Just a thought.
Thanks for the reply. I would like to explain the scenario however. Suppose, as I mentioned earlier, you are constantly recording your surroundings 24/7. WAVs and FLACs won't work here because of their enormous storage requirements (due to their lossless nature, ofcourse). In such a case, Ogg/Vorbis or MP3 can do pretty well and provide bitrates close to 64kbps (more than enough). However, these codecs are primarily targeted towards coding music and not general audio. They will work well on speech and environmental audio, but they cannot offer high compression rates that are possible if I use Speex or something similar. So, given the nature of your audio recordings (speech and surroundings), I can make more savings on storage if I can intelligently decide on the audio source and apply the appropriate compression techniques.So my question, is there any codec that does take into account the nature of audio and then decide what technique to use?
The plan is not to use a CPU, but develop an ASIC for better power efficiency.
And yes, since there is no FPU, I have started writing an integer vorbis encoder (from your earlier post).
Quote from: dragontiger on 29 December, 2010, 06:07:27 PMThe plan is not to use a CPU, but develop an ASIC for better power efficiency.A couple points:1) Generally to have an ASIC fabricated you need to order thousands of units. Are you planning to order that many devices?