Add coarse energy entropy model tuning.
This tunes the entropy model for coarse energy introduced in commit
c1c40a76
.
It uses a constant set of parameters, tuned from about an hour and a
half of randomly selected test data encoded for each frame size,
prediction type (inter/intra), and band number.
These will be slightly sub-optimal for different frame sizes, but
should be better than what we were using.
For inter, this saves an average of 2.8, 5.2, 7.1, and 6.7 bits/frame
for frame sizes of 120, 240, 480, and 960, respectively.
For intra, this saves an average of 1.5, 3.0, 4.5, and 5.3 bits/frame
(for the same frame sizes, respectively).
This commit is contained in:
parent
99a19474a0
commit
ef2e650592
9 changed files with 108 additions and 94 deletions
|
@ -861,8 +861,8 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, i
|
|||
|
||||
ALLOC(error, C*st->mode->nbEBands, celt_word16);
|
||||
quant_coarse_energy(st->mode, st->start, st->end, effEnd, bandLogE,
|
||||
oldBandE, nbCompressedBytes*8, st->mode->prob,
|
||||
error, enc, C, LM, nbAvailableBytes, st->force_intra,
|
||||
oldBandE, nbCompressedBytes*8, error, enc,
|
||||
C, LM, nbAvailableBytes, st->force_intra,
|
||||
&st->delayedIntra, st->complexity >= 4);
|
||||
|
||||
if (LM > 0)
|
||||
|
@ -1663,7 +1663,7 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da
|
|||
intra_ener = ec_dec_bit_prob(dec, 8192);
|
||||
/* Get band energies */
|
||||
unquant_coarse_energy(st->mode, st->start, st->end, bandE, oldBandE,
|
||||
intra_ener, st->mode->prob, dec, C, LM);
|
||||
intra_ener, dec, C, LM);
|
||||
|
||||
if (LM > 0)
|
||||
isTransient = ec_dec_bit_prob(dec, 8192);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue