Hi all!

>>>>> "R" == Robert Hegemann <[EMAIL PROTECTED]> writes:

    R> I also get artefacts with lame 3.32 that weren't in lame 3.31.
    R> With my -X5 VBR code I can get up to the cutting edge of lames
    R> PSY model. And the new code produces on the Glockenspiel SQAM
    R> files VERY audible scratchy artefacts, the old code not.

        :

    R> To the ATH problematic.

once I made a mistake, but finally I found this BUG...

see quantize.c of lame 3.37.

iteration_loop calls compute_ath in line 372. it is before the setting
of 2 variables, scalefac_band_long and scalefac_band_short (line 380).

"compute_ath" routine calculates ATH using these 2 variables.....
But they are not initialized at that moment.

I made a quick patch. It makes better than the original 3.37,
but there are still many problem with Glockenspiel SQAM files.
...uum, maybe some other bugs are still there ....

*** lame3.37/quantize.c Fri Oct 29 15:06:26 1999
--- lame3.37+ath/quantize.c     Wed Nov  3 20:32:49 1999
***************
*** 369,374 ****
--- 369,376 ----
    if ( frameNum==0 ) {
      l3_side->main_data_begin = 0;
      memset((char *) &l3_xmin, 0, sizeof(l3_xmin));
+     scalefac_band_long  = &sfBandIndex[info->sampling_frequency + (info->version * 
+3)].l[0];
+     scalefac_band_short = &sfBandIndex[info->sampling_frequency + (info->version * 
+3)].s[0];
      compute_ath(info,ATH_l,ATH_s);
    }
  
***************
*** 376,385 ****
    mode_gr = (info->version == 1) ? 2 : 1;
    //bit_rate = bitrate[info->version][info->lay-1][info->bitrate_index];
    //samp_freq = s_freq[info->version][info->sampling_frequency]*1000 +.5;
- 
-   scalefac_band_long  = &sfBandIndex[info->sampling_frequency + (info->version * 
3)].l[0];
-   scalefac_band_short = &sfBandIndex[info->sampling_frequency + (info->version * 
3)].s[0];
-   
  
    convert_mdct=0;
    convert_psy=0;
--- 378,383 ----

---
Takehiro TOMINAGA // may the source be with you!

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to