<div class="gmail_quote">2009/11/11 <span dir="ltr"><<a href="mailto:xiphmont@xiph.org" target="_blank">xiphmont@xiph.org</a>></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'm not sure where you're confused. So let'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->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'm afraid my doubt is still rounding my head... I'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'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'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 "bet" about how this works (despite yo might think I'm gone crazy... ;)) could help you tell me where I am wrong, or if I'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'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'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've tried it and it is a bit hard for me (they are no much comments and I'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>