File tree 1 file changed +13
-6
lines changed
1 file changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -452,9 +452,9 @@ int main(int _argc,const char **_argv){
452
452
Ef2 = 0 ;
453
453
Ef4 = 0 ;
454
454
for (bi = 0 ;bi < ybands ;bi ++ ){
455
- double Eb ;
455
+ double Eb2 , Eb4 ;
456
456
double w ;
457
- Eb = 0 ;
457
+ Eb2 = Eb4 = 0 ;
458
458
w = .5 + .5 * tanh (.5 * (22 - bi ));
459
459
for (xj = BANDS [bi ];xj < BANDS [bi + 1 ]&& xj < max_compare ;xj ++ ){
460
460
for (ci = 0 ;ci < nchannels ;ci ++ ){
@@ -464,12 +464,19 @@ int main(int _argc,const char **_argv){
464
464
im = re - log (re )- 1 ;
465
465
/* Per-band error weighting. */
466
466
im *= w ;
467
- Eb += im ;
467
+ Eb2 += im ;
468
+ /* Same for 4th power, but make it less sensitive to very low energies. */
469
+ re = (Y [(xi * yfreqs + xj )* nchannels + ci ]+ 10 )/(X [(xi * nfreqs + xj )* nchannels + ci ]+ 10 );
470
+ im = re - log (re )- 1 ;
471
+ /* Per-band error weighting. */
472
+ im *= w ;
473
+ Eb4 += im ;
468
474
}
469
475
}
470
- Eb /= (BANDS [bi + 1 ]- BANDS [bi ])* nchannels ;
471
- Ef2 += Eb ;
472
- Ef4 += Eb * Eb ;
476
+ Eb2 /= (BANDS [bi + 1 ]- BANDS [bi ])* nchannels ;
477
+ Eb4 /= (BANDS [bi + 1 ]- BANDS [bi ])* nchannels ;
478
+ Ef2 += Eb2 ;
479
+ Ef4 += Eb4 * Eb4 ;
473
480
}
474
481
/*Using a fixed normalization value means we're willing to accept slightly
475
482
lower quality for lower sampling rates.*/
You can’t perform that action at this time.
0 commit comments