> > bmax(b) = pow(10, -3*(0.5+0.5*cos(Pi*(min(bval(b),15.5)/15.5))) > t=Mthr/Sthr > if (t>1) > t=1/t > Rfthr= max(Rthr*t, min (Rthr, bmax*Rengy)) > *Lfthr= max(Lthr*t, min (Lthr, bmax) *Lengy) > t=min(Lthr, Rthr) > Mfthr=min(t, max(Mthr, min(Sengy*bmax,Sthr) ) > Sfthr=min(t, max(Sthr, min(Mengy*bmax,Mthr) ) > > *Lfthr= max(Lthr*t, min (Lthr, bmax*Lengy)) I think there is a slight typo > error.... > > I notice there are some similarities as well as differences. I am sorry if I > sound ignorant but can anyone explain the rational of using Johnston and > Ferreira algorithm rather than the one above. For instance, Lame does not > calculate final thr for LR etc >
Since nobody answered your question, I will try to explain it a little bit... Formulae given above (actually took from ISO/IEC 13818-7 Annex A - Psychoacoustic Model) is "derrived" out of Johnston paper - bmax(b) is approximation of the BMLD curve. LAME uses slightly different formula, found out by "reverse engineering" of the graph in the J&F paper, because in that time the BMLD formula was not in the official ISO standard, and people had to reverse-engineer it. Rest of the algorightm (t=Mthr/Sthr... ) is technically doing the same thing as in LAME psymodel.c with one difference - ISO doc says that you should apply this formula (so-called "imaging" ) in every SFB/ CB and LAME psymodel applies imaging ONLY if the difference between noise levels is less than 2 dB (1.58 == pow(10, 2/10) ) Since encoder design is much more of research than development, I would suggest you to try each combination in your coding system and when core coding system starts to work well (filterbank, coding) to proceed to fine-tuning of the M/S coding algorithm. -- Ivan _______________________________________________ mp3encoder mailing list [EMAIL PROTECTED] http://minnie.tuhs.org/mailman/listinfo/mp3encoder
