Title: Table SNR_s bug
The table of SNR_s for all the frequencies( deduced from psydata) is :

static double TableSNRShort [] =
{
 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , // Frequency = 16000.
 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 ,
 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 ,
 0.150000006 , 0.150000006 , 0.180000007 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.180000007 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.25     , 0.25     , 0.25     , 0.280000001 ,
 0.280000001 ,

 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , // Frequency = 22050.
 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 ,
 0.150000006 , 0.150000006 , 0.150000006 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.180000007 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.25     , 0.25     , 0.25     , 0.280000001 , 0.280000001 ,
 0.280000001 , 0.300000012 , 0.300000012 , 0.300000012 , 0.400000006 ,

 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , // Frequency = 24000.
 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 , 0.150000006 ,
 0.150000006 , 0.150000006 , 0.180000007 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 , 0.180000007 ,
 0.180000007 , 0.180000007 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 ,
 0.200000003 , 0.200000003 , 0.200000003 , 0.200000003 , 0.25     ,
 0.25     , 0.25     , 0.280000001 , 0.280000001 , 0.300000012 ,
 0.300000012 , 0.300000012 , 0.400000006 , 0.400000006 , 0.400000006 ,

 -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 ,  // Frequency = 32000.
 -8.240 , -8.240 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 ,
 -7.447 , -7.447 , -7.447 , -7.447 , -6.990 , -6.990 , -6.990 , -6.990 ,
 -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.020 , -6.020 ,
 -6.020 , -6.020 , -5.229 , -5.229 , -5.229 , -5.229 , -4.559 , -4.559 ,
 -3.980 , -3.980 ,

 -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 ,  // Frequency = 44100.
 -8.240 , -8.240 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 ,
 -7.447 , -7.447 , -7.447 , -7.447 , -6.990 , -6.990 , -6.990 , -6.990 ,
 -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.020 , -6.020 ,
 -6.020 , -6.020 , -5.229 , -5.229 , -5.229 , -5.229 , -4.559 ,

 -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 , -8.240 ,  // Frequency = 48000.
 -8.240 , -8.240 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 , -7.447 ,
 -7.447 , -7.447 , -7.447 , -7.447 , -6.990 , -6.990 , -6.990 , -6.990 ,
 -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.990 , -6.020 , -6.020 ,
 -6.020 , -6.020 , -5.229 , -5.229 , -5.229 , -5.229
};


In the psy model, we use SNR_s with the formula
nb[b] = ecb[b] * norm_s[b] * exp( (double) SNR_s[b] * LN_TO_LOG10 );

You can easily notice that
 exp(-8,240 * LN_TO_LOG10) = 0.15
 exp(-7,447 * LN_TO_LOG10) = 0.18


It seems that the exponential calculation is already included in the SNR_s table for MPEG-2,
but not for MPEG-1.

Lionel

Reply via email to