|
F.A.Q.
How did you create the noise table?
The noise table consists of 64k values. Simply generating 64k random
values and putting them through a noise shaping filter would result in the
following two problems:
-At the start of the table, the transient respons from the filter might
become apparent. Most filters (like FIR) need previous input values to get
proper output.
-No precautions are taken that the wrap-around "fits nicely" and
doesn't generate a "click."
To circumvent these, I used the following steps, using CoolEdit in 32bit
mode:
1) Create a few seconds mono white noise
2) Select&Copy 65536 samples from middle
3) Paste selection to new file. Paste to end. Paste to end. We now have
"circular" noise consisting of 65536 samples repeating 3 times
4) Do the noise shaping: Using a FFT , filter out low frequencys.
5) Select&Copy 65536 samples from middle, and paste to a new file
6) Normalize to 100% (=32768 max)
7) Save to .txt format
8) write a small program to:
- scale all values with factor 0.0000763* (1/256)
Cooledit outputs floats as 256* actual value.
Whereas the table should have range -2.5 ....+2.5
-change output format into array declaration format.
How optimal is your noise table?
The table presented here was my 1st shot after reading the references
mentioned on the home page. I'm still convinced it does a good job, but of
course you're free to further optimize it. http://audio.rightmark.org/lukin/dither/dither.htm
is a good starting point to further optimizations.
You claim only dither noise is added on high
frequencys, but on your samples I hear a loud noise...?
This puzzles me too. At first I thought this was just the 16 bit noise
floor. However at http://audio.rightmark.org/lukin/dither/dither.htm
is a comparison between several noise shaped dither implementations.
Extrabit dither manages to get noise levels way below the -96dB, by using
much louder dither noise. I tried a to fill my dither table with noise
that mimiced the spectrum & amplitude of extrabit, but didn't get any
improvement.....
I'm modifying a codec myself. Any extra tricks how I
can test?
Instead of dither noise, fill the dither table with values
-32768,-32767,....+32767
Now playback a file featuring perfect silence. When decoded to wav, a
perfect ramp should be visible in your WAV editor.
I don't need dither, since I use a 24 bit sound
card...?
If the interface between soundcard and codec really is 24 bits, you're
indeed better off without dither. However, the majority of players doesn't
support native 24 bits output mode. Also when you decode to wav to burn
CDDA, dither is still usefull.
|