>> > I would suggest:
>> >
>> > if (j>=i) tempy = (bval_l[j] - bval_l[i])*(-10);
>> > else tempy = (bval_l[j] - bval_l[i])*25;
>> >
>> > if (tempy <= -60.0) s3_l[i][j] = 0.0;
>> > else s3_l[i][j] = exp( tempy*LN_TO_LOG10 );
>> >
>> > but this will need a lot of testing.
>> >
>> > One additional confusion: in the ISO doc, the meaning of i and j
>> > seem to be reversed from the ISO code.
>> >
>> > Mark
>>
>> It 's not true. The slope is for the spreading function s3_l, not for tempy
>> or tempx. You must test the slope on s3_l = 15.81 + 7.5 � and see that it is
>> 25db and -10db.
>>
>
> Can you explain this a little more? My reading of the paper and the
> figure is that the slope of s3_l is -10db/bark, 25db/bark and that is
> what I am suggesting above. The formula in the ISO code and the
> paper, SF(x) = 15.81 + 7.5... looks like an approximation of the
> 10db/25db curve. I will have to plot this function today.
>
> Also, in the ISO code, the SF(x) formula is used
> to compute tempy from tempx. But in the "modifications for layer III"
> they advocate replacing tempy (not tempx!) with a different value, and thus
> ignoring the SF(x) formula.
>
> Here are some values for the spreading function for partition band i=31.
>
>
> s3_l in db. (before taking the exponential)
> psy-model 2, layer 3 formula:
>
> i,j 31 28 -18.244921
> i,j 31 29 -13.595852
> i,j 31 30 -3.452440
> i,j 31 31 -0.000000
> i,j 31 32 -10.261171
> i,j 31 33 -31.815638
> i,j 31 34 -55.686492
>
>
> psy-model 2, layer 2 formula:
>
> i,j 31 28 -14.744852
> i,j 31 29 -8.291966
> i,j 31 30 -0.974892
> i,j 31 31 -0.000000
> i,j 31 32 -1.181771
> i,j 31 33 -4.615616
> i,j 31 34 -9.927099
>
>
For me the slopes of 25/-10 dB just means that s3_l should be -25 when the
difference of bval is -1 and -10 when the difference of bval is 1. These are
slopes around the current band of the calcul. With the formula you
suggested, the slopes will be different. Rather than i and j, print the
value of bval[j] and you will see if the value of s3_l is around -25 for
bval[j] = bval[i]-1, which would make a local slope of 25dB/bark under zero,
same interpretation above 0.(s3_l is a parabola with maximum value of 0 at
0) .
If you want to decrease the masking by increasing the coefficients 3 and
1.5, you may not mask data that should be masked.(increasing the
coefficients 3 and 1.5 increases the slopes of the spreading funtion)
I applied the coefficients 3 and 1.5 to the layer II and had the impression
the results were better(i can hear it and recognize the best file when both
are played randomly) than with 1.05( advice for Toolame) but putting -10 and
25 as coefficients for tempy is "non-sense".
For me, the advices for the psy model(tempy coefficients) of layer III
should be applied to the layer II model(for Toolame).The psy model was
improved between the two layers but it's the same model and there is no
reason to have different ways of calculating spreading function, ... .
For the SNR_s table, i have not tested it yet, but i would be very
surprised if it's a coincidence. I often have the feeling that the only
advantage of Fhg over us is that they know all the bugs they have put in the
docs and code.
Lionel
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )