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

Reply via email to