<div class="gmail_quote">2009/11/11  <span dir="ltr">&lt;<a href="mailto:xiphmont@xiph.org" target="_blank">xiphmont@xiph.org</a>&gt;</span><br><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


This mostly restates the same idea several different ways that are<br>
equivalent and I&#39;m not sure where you&#39;re confused.  So let&#39;s step back<br>
a second...<br>
<br>
The floor encodes a continuous function and the values of that<br>
function are meant to be used as multipliers/ratios.  Linear floor<br>
multiplied by residue gives you a spectrum.<br>
<br>
The floor is encoded on a logarithmic scale (not actually decibels in<br>
fact, but decibels are easy to understand, so the spec discusses this<br>
in terms of decoding the encoded floor to decibels, then doing a<br>
decibel-&gt;linear conversion).  Unitless decibels are just ratios.  1 ==<br>
0db, 2 == 6dB, 4 = 12dB. The coversion is a simple 20log10(linear).<br>
<br>
Is that helpful?<br>
<br>
Monty<br>
</blockquote></div><br>Yes, that helped, but I&#39;m afraid my doubt is still rounding my head... I&#39;ll try to explain it better...<br><br>The top linear value (the values in FLOOR1_fromdB_LOOKUP table) is 1, so, the top value for the floor, in dB, is 0 (20log10(0) = 1), but, in your AES paper I mencioned in my previous post, it&#39;s said that the floor is the superposition of the tonal and noise masks, so, the top _mask_ value is 0dB... So I think that what I really don&#39;t understand is how can be that the greatest value this _mask_ can get is 0dB... This is why I asked about the reference value used (the p0 from 20log(p1/p0) that I was mentioning in the other post). <br>

<br>Maybe if I explain what is my best current &quot;bet&quot; about how this works (despite yo might think I&#39;m gone crazy... ;)) could help you tell me where I am wrong, or if I&#39;ve understood something right at all...: <br>

<br>1) Given a frequency line (mdct bin) of the audio signal, take its value as p0.<br>2) Use this p0 as the reference value to obtain the floor that frequency. That would make the top value of the floor, be 0dB [or the greater linear value to be 1, which is the main reason why I&#39;ve thought this], unless the mask is greater than the signal...<br>

3) Convert the floor dB value to linear and use it to divide the corresponding mdct coefficient to get the corresponding residue.<br><br>I apologize because I&#39;m sure that the best way of understanding this may be reading the code functions used to obtain the floor (_vp_noisemask, _vp_tonemask and the functions within), but I&#39;ve tried it and it is a bit hard for me (they are no much comments and I&#39;m not an audio expert, so it takes me much time to figure out what some parts of the code do...).<br>

<br>Thank you very much for trying to help me.<br><br><br><br><br><br><br><br><br><br>