On Tue, 14 Dec 1999, Robert Hegemann wrote:

> -X4   this is a bit complicated, I think Greg Maxwell should 
>       explain this ;)

-X4 resulted from testing, overthinking and sleep deperivation. :)

It's better if:

  The worst subband is less or equal to the masking while the previous
  best's worst subband is 2db greating then mask

  or

  The worst subband and the prior best worst beat the masking threshold
  and the current worst comes within 2db the prior best worst and
  the current has less total noise-masking

  or

  The current worst subband is equal or less then masking, while the prior
  best worst is greater then masking and the current worst comes within
  2db of the best worst and the current noise-masking is less
  then the best noise-masking + over noise (i.e. over noise is counting
  twice).  

  or

  The current worst is less then masking and the best worst is greater
  then masking -0.5 and the best worst+1 is greater then the current worst
  and the current noise-masking + overnoise is less then the best
  noise-masking + overnoise 

  or

argh. You get the point. It's too complicated.

It seemed to make a real advantage here, but it could have been more of a
result of too small a test group..

I was trying to accomplish some sort of balence between the worst noise
and the total noise. I later went completely nuts and made a completely
crazy version that all the subbands and not just worst and total. But I
never had a way to tune it, so I gave up. :)

Is it better to have less overall noise even when there is more clustered
in a single/few subbands, or have the subbands getting about equal noise,
and the expense of a bit higher overall?

No one knows.

The current code lets us only easily look at the worst and
the total. All of the other -Xes ignore the worst case subband unless the
overall noise is less (except for 6 now, which only considers it when
there is no over noise (or no difference in over noise), which I think
puts too much faith in the psyco model).  

I don't think this is good, because I think that
the 'more focused' noise will be more noticable even though the overall
noise is less.

However, I dont really have any good tests to back that up, and my current
implimentation is too damn messy.

Perhaps it should be replaced with:

  if (experimentalX==4) {
    better = (  ((max_noise < best_max_noise) 
                &&(tot_noise < best_tot_noise)) ||
                ((max_noise+1 < best_max_noise)
                &&(tot_noise < best_tot_noise+2) ||
                ((max_noise < best_max_noise+1) ||
                &&(tot_noise+2 < best_tot_noise)) ) ;
      
I.e. If it's better it's better
     If the max noise is >1db better then it's still better
        if the total is upto 2db worse
     If the max noise is upto 1db worse then it's still better if
        the total is at least 2db better.

I'd do it with ratios (i.e. each db of better worst allows 1.5db of worse
total) but I'm trying to not be incomprehensiable again. :)
 

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

Reply via email to