Home > Arduino, Code, General > Sabre32: Effect of Quantizer Setting

Sabre32: Effect of Quantizer Setting

User wktk_smile over at diyaudio just reported his experience with adjusting the  quantizer bit length using the latest version of the code:

He played 24bit/352khz material with a SDTrans transport through a  Bufflao II DAC with  an 80 MHz clock.

“The result was good, I got nearly “clean” DXD playback – there’s still very slight noises, but much less than when using the stock [firmware in the] MC”

  • Sharp roll-off filter: Too glitchy, never locks
  • Slow roll-off filter, 6bit quantizer: Can play music without unlock, but there’s also annoying white noise.
  • Slow roll off mode, 8bit quantizer: Can play music, and less noise

“pseudo differencial mode” does not seem to work properly in my setup, so I used 8bit quantizer in true differential mode.

This seems to be (I am guessing here) an indication that the reduction of “out of band” noise afforded by the higher bit length of the quantizer has an audible effect at least with ultra high sample rate material.

According to Dustin Forman of ESS Tech, on one of his postings at diyaudio:

One way to add DACs together is to simply duplicate the input to many DACs and sum them up at the output. This buys 3dB DNR improvement every time you double the amount of DACs. Basically uncorrelated noise adds RSS and signals add normally. Another way would be to use a larger bit QUANTIZER and route the signals from the QUANTIZER to 2 DACs, but the noise shaper now has an extra bit in it.

This chip does both. You can 1- simple duplicate the data input header and then add up the outputs in an analog circuit on the board, or 2- you can program the chip to use a larger QUANTIZER. Doing this prevents the need to send the same data to all the inputs since now a certain DAC Channel is routed into 2 DAC outputs (one channel into two channels).

The DAC is normally a 6-bit QUANTIZER, with the DACx being the summation of the 6 bits, and DACxB being the summation of the inverse of the SAME 6 bits. This is the best all round performance mode, and this is why the datasheet says register 15 needs to be set to 8’b00000000.

Setting this register to 8’b01010101, which by the way was the mode I thought would work best base on my prototype design, (and that is why it is the default configuration) the DAC becomes a 7-bit QUANTIZER reducing out of band noise. I simple divide up the 7-bit number coming from the QUANTIZER into 2 6-bit numbers and invert 1 of them. Then I send off these new 2 6-bit numbers which the difference is mathematically identical to the original 7-bit number from the QUANTIZER and ship them off to the analog section. This also results in 8 channels at the input being routed to 8 channels at the output.

Now, let’s go further (we are only 1/2 down this road). if you set the register 15 to be 8’b10101010 then you get a DAC with an 8-bit QUANTIZER, out of band noise decreases more and so on. Now I shut off 1/2 the internal logic since it is not required, only inputs 1,2,5,6 are now needed since an 8-bit output can be spliced into four 6-bits numbers. Channel 1 is merged with channel 3, 2 is merged with 4, 5 is merged with 7, 6 is merged with 8. This arrangement is to keep the merged channels analog sections as close as possible for device matching inside the chip.

This gobbles up 2 analog sections [You still have 2 analog sections per DAC-channel active, but ½ of them take the input from another DAC-channel as indicated above] per input now. This is why 1/2 the digital section is shut off. So this can make you a 4 channel DAC while putting data into only the first 4 channels. [4 Channel -> 4 DAC-Channels -> 8 DACs (8-bit quantizer) -> 16 analog sections]

Ok, let’s go further, how about a 9-bit QUANTIZER? sure why not. Setting register 15 to 8’b11111111, I shut off 6 of the channels internally and only channels 1 and 2 inputs are routed to the analog sections. Well it is probably obvious by now why, but here it is again: 1 9-bit number can be broken into 8 6-bit numbers. Now route the 8 6-bit numbers to the analog sections (remember that each section is DAC and DACB so there are 2 analog sections per DAC or 16 total in the chip) so now with each input taking 8 analog sections, we have 2 channels.

  1. wktk_smile
    June 21, 2011 at 22:57


    When I reported at DIYA, I tested various Quantizer/roll off settings with my poweramp+loudspeaker rig that I had noticed to be weak against HF noises -there might be poor grounding or wiring. and later I think that’s why I coudn’t reduce noises enough to get “clean” playback.

    Then I tried the same with my headphone amp+K702 rig that seemed to be more immune to HF noises,
    finally this gave me “clean” DXD playback. At this time I used 8bit Quantizer+slow rolloff, and BEST_DEFAULT DPLL, and of course OSF mode.

    Now I’m sure even 80mhz BuffaloII can play DXD cleanly in oversampling mode with careful wiring/grounding scheme + tweaking es9018’s register setting.

    Of course, faster clock (96mhz in my case) can easily play DXD cleanly in oversampling mode without such efforts🙂

  2. September 14, 2016 at 19:23

    bForex company

  1. June 10, 2011 at 00:48
  2. August 20, 2011 at 15:56

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s