Skip to content
Snippets Groups Projects
Commit 5c0d486f authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

Better bit allocation for all frame sizes that are not equal to 256.

parent 1d27ef8b
No related branches found
No related tags found
Loading
......@@ -8,7 +8,7 @@ To compile:
% make
To test the encoder:
% testcelt <rate> <channels> <frame size> <overlap> <bytes per packet> input.sw output.sw
% testcelt <rate> <channels> <frame size> <bytes per packet> input.sw output.sw
where input.sw is a 16-bit (machine endian) audio file sampled at
44.1 kHz or 48 kHz. The output file is already decompressed.
......
- Check minimum width of bands
- Adjust the energy resolution based on the bit-rate
- Revisit energy resolution based on the bit-rate
- Revisit static bit allocation (as a function of frame size and channels)
- Dynamic adjustment of energy quantisation
- Psychacoustics
* Error shaping within each band
* Desisions on the rate
- Intensity stereo option (e.g. threshold)
* Decisions on the rate
- Intensity stereo decisions
- Dynamic (intra-frame) bit allocation
- Joint encoding of stereo energy
- Disable intra-frame prediction for more than X pulses
- Remove contraction?
- Simplify search?
- Remove pulse spreading?
- Encode band shape (or just tilt)?
- Make energy encoding more robust to losses?
......@@ -208,11 +208,14 @@ static void compute_allocation_table(CELTMode *mode, int res)
eband = 0;
for (j=0;j<BARK_BANDS;j++)
{
int edge, low, alloc;
int edge, low;
celt_int32_t alloc;
edge = mode->eBands[eband+1]*res;
alloc = band_allocation[i*BARK_BANDS+j];
if (mode->nbChannels == 2)
alloc += alloc/2;
alloc = alloc*3*mode->mdctSize/512;
else
alloc = alloc*mode->mdctSize/256;
if (edge < bark_freq[j+1])
{
int num, den;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment