mirror of
https://github.com/xiph/opus.git
synced 2025-06-05 23:10:54 +00:00
Better bit allocation for all frame sizes that are not equal to 256.
This commit is contained in:
parent
1d27ef8b2c
commit
5c0d486fe1
3 changed files with 10 additions and 10 deletions
2
README
2
README
|
@ -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.
|
||||
|
|
11
TODO
11
TODO
|
@ -1,16 +1,13 @@
|
|||
- 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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue