for a research application I am searching for an wideband 100 Hz to 7/8k kHZ codec working with a sample rate of 16 kHz. The algorithmic delay should be below 10 ms and the codec should be working at 16 kbit/s. Ideally I am looking for a codec that could also be run at a higher bitrate of 64 kbit/s for comparison purposes. For 48 kbit/s to 64 kbit/s im using the G.722 but could not find a wideband subband adpcm with sufficiently low delay and bit-rate.
Does anyone know of such a codec? All the ones I find offer either a bit-rate too high, different sample-rates or a latency thats too high.
Thank you for any input :)
I think that there are no one that met that specific criteria, Opus is the closest thing, specially is used the "Opus Custom" API but better consult it with people at xiph or some developer to be sure.
Opus standard is able to encode WB in hard-cbr or better at:
|packet||algorithmic delay||bitrate||bitrate with container overhead|
|2.5ms||5 ms||32 kbps||36 kbps|
|5ms||7.5 ms||20 kbps (19.2 kbps)||21 kbps|
|10ms||12.5 ms||14 kbps (13.6 kbps)||15 kbps|
|5ms||7.5 ms||16 kbps (16 kbps)||18 kbps||using internal switch: "opusenc.exe" --hard-cbr --comp 10 --bitrate 16 --framesize 5 --set-ctl-int 4008=1103 input.flac output.opus|
Well at least with opus you can met 2 of the 3 requirements, and possibly the only not met is the less important of the 3.
Thank you for your reply :)
Where did you get the numbers from? Do I understand correctly that the total delay in the examples you gave is is framesize + algorithmic delay? Thus 7.5 ms for the 32 kbps version?
Actually the algorithmic delay that I put also have in account the frame making it the total delay but I made a error on the table for 10ms frames, the numbers came from various sources but the bitrates was by testing and are only valid for opus 1.3.x .
Opus works in 2 modes Celt and SilK:
Silk mode has 10 or 20 ms frames and need 5ms of look-ahead and 1.5 ms resampler for a total delay of 6.5 ms.
Celt Mode has 2.5, 5, 10, 20 ms frames and needs 2.5 ms off look-ahead.
Normally the Opus has a delay of 6.5ms for 10 and 20ms frames even in Celt mode but the application can restrict the encoder to CELT and omit 4ms that are added making it only to have a 2.5 ms delay. Then the 10ms frame delay in the table is only true If the mode is restricted to CELT. If I'm not wrong in 2.5 and 5 ms frame the 4 extra ms are omitted by default making the delay only 2.5 ms.