DSD upsampling does it have to be converted to PCM? [Answered]

Quick question about DSF files. I decided up sample to DSD with the new release, and I’ve noticed my DSD file are being converted to PCM at the very beginning of this process. Is this by design? Anything I need to do to keep my DSF files from being converted to PCM?

In order to upsample DSD to a higher rate the data must be converted to PCM first. This is often seen as a downside to DSD, but it’s just a reality of the format. Any product that is upsampling DSD is first doing some sort of multi bit conversion.

Great thank you for the explanation.

Does HQPlayer do this, too?

It’d be great to get a definitive answer (and perhaps some commentary) from @jussi_laako.

Multi-level SDM is not same as PCM, this has been discussed to death on other forums and I don’t want to repeat again a lengthy discussion around the topic. From technical perspective it doesn’t really matter how many levels SDM has, two, five or 33.

When you convert for example 2.8 MHz DSD64 to 5.6 MHz DSD128 in HQPlayer, the conversion is direct from 2.8 to 5.6 MHz without any intermediate rate. It has remodulator that can take in SDM and output SDM (and apply volume on the way). HQPlayer has two DSP engines, one for dealing with PCM data and another one for dealing with SDM data.

I recommend upsampling DSD at least 2x whenever performing DSP with DSD (like volume), because you gain extra headroom as a result. It is equivalent of adding bits to PCM.

1 Like

Thanks, Jussi. I was hoping you could make the point that multi-bit is not equal to PCM, since you’re the person who can do that most authoritatively.

1 Like

It does not matter what the intermediate format is called when DSD upsampling: PCM, PCM “narrow”, DSD-wide, multi-level SDM. What matters is that when this happens, the DSD source signal is reformatted according to the following scheme: DSD->intermediate format is not identical to source (not DSD)->interpolation->SD modulator->DSD.

How about PCM -> intermediate format not identical to source (not PCM) -> PCM. :smiley:

If you stick to something like 16-bit integer as intermediate format for PCM you are screwed big time.

For example when you rate convert PCM in HQPlayer it is like:
PCM -> intermediate format not identical to source (64-bit floating point normalized to [-1, 1]) -> rate conversion -> requantization to target integer word length (dither/noise-shaping) -> PCM.

Overall, HQPlayer has two completely separate DSP engines:

  1. PCM from 32 kHz 8-bit to 2 MHz 32-bit integer.
  2. SDM, from 2 MHz “1-bit” 2-level to 100 MHz “8-bit” 257-level.

The conversation in this topic is solely about DSD upsampling, not PCM. I am interested in the topic of upsampling, namely DSD because I use AK4490 DAC only for DSD playback and only in Volume bypass mode, and I expressed my opinion on this matter.

Yeah, I have three of such DACs, TEAC NT-503 and two RME ADI-2 Pro. I’m running both at fixed DSD256. All PCM and DSD content upsampled to DSD256. RME being a bit more flexible in a way that it supports DSD256 also over DoP and also 48k-base DSD rates.

RME is also nice for analog sources, with it’s DSD256 capable ADC. So everything can go through the same path with digital room correction, etc.