>
> 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

Reply via email to