Hello, all, I just thought I would throw in a few things after looking
at your 3.04 code. Is 3.05 out?
You use numlines[] to calculate your perceptual entropy, yet
you are setting it here:
(from l3psy.c)
/* Read long block data */
for(loop=0;loop<6;loop++)
{
freq_tp = *p++;
cbmax_tp = (int) *p++;
cbmax_tp++;
if (sfreq == freq_tp )
{
cbmax = cbmax_tp;
for(i=0,k2=0;i<cbmax_tp;i++)
{
j = (int) *p++;
numlines[i] = (int) *p++; <<<<<<<<<<<<<<<<<<<
minval[i] = *p++;
qthr_l[i] = *p++;
norm_l[i] = *p++;
bval_l[i] = *p++;
if (j!=i)
{
printf("1. please check \"psy_data\"");
exit(-1);
}
for(k=0;k<numlines[i];k++)
partition_l[k2++] = i ;
}
}
else
p += cbmax_tp * 6;
}
and then again, overwriting half of it here with the short block information:
/* Read short block data */
for(loop=0;loop<6;loop++)
{
freq_tp = *p++;
cbmax_tp = (int) *p++;
cbmax_tp++;
if (sfreq == freq_tp )
{
cbmax = cbmax_tp;
for(i=0,k2=0;i<cbmax_tp;i++)
{
j = (int) *p++;
numlines[i] = (int) *p++; <<<<<<<<<<<<<<<<<<<<<
qthr_s[i] = *p++;
norm_s[i] = *p++;
SNR[i] = *p++;
bval_s[i] = *p++;
if (j!=i)
{
printf("3. please check \"psy_data\"");
exit(-1);
}
for(k=0;k<numlines[i];k++)
partition_s[k2++] = i ;
}
}
else
p += cbmax_tp * 6;
}
thus your pe ratios are going to be screwed.
Also, the IS says to use values of the spreading function greater than 10e-6,
thus
shouldn't your spreading function equation be:
if ((x+tempy) <= -60.0) s3_s[i][j] = 0.0;
else s3_s[i][j] = exp( (x + tempy)*LN_TO_LOG10 );
instead of:
if (tempy <= -60.0) s3_s[i][j] = 0.0;
else s3_s[i][j] = exp( (x + tempy)*LN_TO_LOG10 );
?
Ill look around a bit more and see if I see any other blaring irregularities.
Hope this helps,
Rafael
--
MP3 ENCODER mailing list