Discussion:
Direct Stream Digital (DSD/DST, One Bit Audio) HDMI pass-trough
Andrej Falout
2014-10-11 06:33:07 UTC
Permalink
Hello,

I am collecting requirements for implementation a DSD HDMI pass-trough,
according to HDMI specs version 1.2 and 1.3a

I am wondering if anyone previously worked on this, or has any interest in
this functionality.

Any advice or pointers are gratefully received. Here is my list of the core
facts so far:


1. hda_eld.c in current kernel git ignores raw DSD (One Bit Audio)
labelled AUDIO_CODING_TYPE_SACD ("SACD" because originally DSD formats
where only used commercially in SACDs) and compressed DSD (DST) is labelled
AUDIO_CODING_TYPE_DST (1)
2. It is my understanding that apart from "special handling" denoted in
"Table 47 CEA Short Audio Descriptor for Audio Format Codes 9 to 13", (eg
setting the format code, etc) this should be a reasonably straightforward
stream pass-trough (2)
3. Typical use scenario for DSD over HDMI: an DVD/BluRay player that
supports SACD (Super Audio CD) outputs a DSD stream over HDMI to a DSD
capable receiver. For instance, my Oppo and Sony BluRay players both do
that, and all my receivers (Onkyo, Pioneer, Marantz, Yamaha, NAD) have DSD
DACs and I can play both stereo and surround music this way, without
converting DSD to PCM. There is currently about 30 million DSD capable
receivers on the planet, conservatively speaking (Just Onkyo makes 1
million a year, and makes DSD capable ones since 2003)
4. Wanted scenario: play DSD files using DSD enabled players (Linux:
MPD, mplayer, VLC, Squeezeboxserver, etc / Windows: FooBar, JRiver, etc) to
an HDMI audio card/device on a PC motherboard or add-on video card with
HDMI, connected via HDMI cable to a DSD enabled receiver/DAC
5. Note that as far as I know, no proprietary drivers on Windows
(ATI/AMD, Nvidia, Intel) support this; It will be the first time a device
that is not a SACD player outputs DSD over HDMI, on any OS. I am assuming
that this has nothing to do with hardware limitations of the HDMI chips
used for video outputs (I could not find any reference for such assumption
in any HDMI chips I examined specs for). Therefore, I assume that
implementing this has no hardware prerequisites.
6. DSD format general info:
http://en.wikipedia.org/wiki/Direct_Stream_Digital http://dsd-guide.com/
http://dsd-guide.com/what-dsd-audio-simple-explanation



Thanks,
Andrej Falout

References:
(1)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/sound/pci/hda/hda_eld.c?id=refs/tags/v3.17
- Same source file in Alsa GIT tree:

http://git.alsa-project.org/?p=alsa-kernel.git;a=blob;f=sound/pci/hda/hda_eld.c

(2) CEA Standard PDF, page 66, table 47. HDMI specs version 1.3a, pages
72-73 for DSD(One Bit Audio) and DST audio packet header and body formats


<%2B385%2891%291520436>
Pierre-Louis Bossart
2014-10-13 22:56:44 UTC
Permalink
Post by Andrej Falout
Hello,
I am collecting requirements for implementation a DSD HDMI pass-trough,
according to HDMI specs version 1.2 and 1.3a
I am wondering if anyone previously worked on this, or has any interest in
this functionality.
Any advice or pointers are gratefully received. Here is my list of the core
1. hda_eld.c in current kernel git ignores raw DSD (One Bit Audio)
labelled AUDIO_CODING_TYPE_SACD ("SACD" because originally DSD formats
where only used commercially in SACDs) and compressed DSD (DST) is labelled
AUDIO_CODING_TYPE_DST (1)
2. It is my understanding that apart from "special handling" denoted in
"Table 47 CEA Short Audio Descriptor for Audio Format Codes 9 to 13", (eg
setting the format code, etc) this should be a reasonably straightforward
stream pass-trough (2)
3. Typical use scenario for DSD over HDMI: an DVD/BluRay player that
supports SACD (Super Audio CD) outputs a DSD stream over HDMI to a DSD
capable receiver. For instance, my Oppo and Sony BluRay players both do
that, and all my receivers (Onkyo, Pioneer, Marantz, Yamaha, NAD) have DSD
DACs and I can play both stereo and surround music this way, without
converting DSD to PCM. There is currently about 30 million DSD capable
receivers on the planet, conservatively speaking (Just Onkyo makes 1
million a year, and makes DSD capable ones since 2003)
MPD, mplayer, VLC, Squeezeboxserver, etc / Windows: FooBar, JRiver, etc) to
an HDMI audio card/device on a PC motherboard or add-on video card with
HDMI, connected via HDMI cable to a DSD enabled receiver/DAC
5. Note that as far as I know, no proprietary drivers on Windows
(ATI/AMD, Nvidia, Intel) support this; It will be the first time a device
that is not a SACD player outputs DSD over HDMI, on any OS. I am assuming
that this has nothing to do with hardware limitations of the HDMI chips
used for video outputs (I could not find any reference for such assumption
in any HDMI chips I examined specs for). Therefore, I assume that
implementing this has no hardware prerequisites.
HDMI controllers typically don't support DSD in the PC space. It'd be
easier to convert to high-res PCM (HBR).
Post by Andrej Falout
http://en.wikipedia.org/wiki/Direct_Stream_Digital http://dsd-guide.com/
http://dsd-guide.com/what-dsd-audio-simple-explanation
Thanks,
Andrej Falout
(1)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/sound/pci/hda/hda_eld.c?id=refs/tags/v3.17
http://git.alsa-project.org/?p=alsa-kernel.git;a=blob;f=sound/pci/hda/hda_eld.c
(2) CEA Standard PDF, page 66, table 47. HDMI specs version 1.3a, pages
72-73 for DSD(One Bit Audio) and DST audio packet header and body formats
<%2B385%2891%291520436>
_______________________________________________
Alsa-devel mailing list
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Andrej Falout
2014-10-14 00:49:31 UTC
Permalink
On Tue, Oct 14, 2014 at 11:56 AM, Pierre-Louis Bossart <
Post by Pierre-Louis Bossart
Post by Andrej Falout
Hello,
<...snip...>
5. Note that as far as I know, no proprietary drivers on Windows
(ATI/AMD, Nvidia, Intel) support this; It will be the first time a device
that is not a SACD player outputs DSD over HDMI, on any OS. I am assuming
that this has nothing to do with hardware limitations of the HDMI chips
used for video outputs (I could not find any reference for such assumption
in any HDMI chips I examined specs for). Therefore, I assume that
implementing this has no hardware prerequisites.
HDMI controllers typically don't support DSD in the PC space. It'd be
easier to convert to high-res PCM (HBR).
Hello Pierre-Louis,

Thank you for your comment.

What are you basing your assessment that "HDMI controllers typically don't
support DSD in the PC space"? I looked, but could not find any evidence for
this.

Certainly, DSD is not a part of HDMI hardware implementation (such as for
example, CEC). From all info I have, DSD is simply multiplexed into HDMI
data stream, just as DST-HD or AC3 is.

The goal here is to have a native DSD transport, so conversion to PCM is
not an option.

Thanks,
Andrej Falout
Pierre-Louis Bossart
2014-10-14 14:43:42 UTC
Permalink
Post by Andrej Falout
On Tue, Oct 14, 2014 at 11:56 AM, Pierre-Louis Bossart
Hello,
<...snip...>
5. Note that as far as I know, no proprietary drivers on Windows
(ATI/AMD, Nvidia, Intel) support this; It will be the first
time a device
that is not a SACD player outputs DSD over HDMI, on any OS.
I am assuming
that this has nothing to do with hardware limitations of
the HDMI chips
used for video outputs (I could not find any reference for
such assumption
in any HDMI chips I examined specs for). Therefore, I assume that
implementing this has no hardware prerequisites.
HDMI controllers typically don't support DSD in the PC space. It'd
be easier to convert to high-res PCM (HBR).
Hello Pierre-Louis,
Thank you for your comment.
What are you basing your assessment that "HDMI controllers typically
don't support DSD in the PC space"? I looked, but could not find any
evidence for this.
I am basing my judgement on first-hand experience with silicon.
Post by Andrej Falout
Certainly, DSD is not a part of HDMI hardware implementation (such as
for example, CEC). From all info I have, DSD is simply multiplexed into
HDMI data stream, just as DST-HD or AC3 is.
This multiplexing is typically not implemented - mainly because this
isn't a format used outside of niche markets and there was no real
format to convey DSD over PCM frames until the DOP format was created in
2012. DTS-HD and AC3 use a PCM format which is rather straightforward to
implement but there's quite a few cases where these modes have been
dropped. HDMI only requires 48kHz 2ch really.
Note that the facts don't mean any negative judgement on quality, i was
at AES this week-end where I heard outstanding DSD/DXD recordings. You
will have more luck with a USB DAC, there are multiple USB DSD products
available.
Post by Andrej Falout
The goal here is to have a native DSD transport, so conversion to PCM is
not an option.
Thanks,
Andrej Falout
Andrej Falout
2014-10-15 03:30:07 UTC
Permalink
Hello Pierre-Louis,

On Wed, Oct 15, 2014 at 3:43 AM, Pierre-Louis Bossart <
Post by Pierre-Louis Bossart
Post by Andrej Falout
What are you basing your assessment that "HDMI controllers typically
don't support DSD in the PC space"? I looked, but could not find any
evidence for this.
I am basing my judgement on first-hand experience with silicon.
Me too :) Absolutely every HDMI related chip I examined specs for and
tested, including the cheapest of the cheap ones made as HDMI repeaters for
splitters and audio extractors, supported DSD stream passing (Both up and
down stream), just as they did all other audio bitstreams.

For example:
http://www.mds.com/system/resources/BAhbBlsHOgZmSSIuMjAxMy8xMC8xNi8xNy8yOS80NS80MjYvSFNSX0hTX3Jldl81ZC5wZGYGOgZFVA/HSR-HS_rev_5d.pdf

Can you please point out a specification or other document that say
otherwise?
Post by Pierre-Louis Bossart
Certainly, DSD is not a part of HDMI hardware implementation (such as
Post by Andrej Falout
for example, CEC). From all info I have, DSD is simply multiplexed into
HDMI data stream, just as DST-HD or AC3 is.
This multiplexing is typically not implemented - mainly because this isn't
a format used outside of niche markets
It seems that you are talking about coding/decoding, not bitstream
multiplexing? Same TMDS stream multiplexing is used for all audio streams
in HDMI - weather native (PCM/DSD) or encoded (AC3, DTS, ...) The only real
difference that I can see is the stream setup as described in my OP ("Table
47 CEA Short Audio Descriptor for Audio Format Codes 9 to 13", (eg setting
the format code, bittness, etc))
Post by Pierre-Louis Bossart
and there was no real format to convey DSD over PCM frames until the DOP
format was created in 2012.
Again, I am talking about native DSD formats/streams, not DoP - which is in
essence PCM. HDMI specs do not know or need DoP. HDMI is capable of native
DSD transfer since version 1.2. See point #5 in my OP.
Post by Pierre-Louis Bossart
DTS-HD and AC3 use a PCM format which is rather straightforward to
implement but there's quite a few cases where these modes have been
dropped.
As you say, these are rather straightforward to implement, as evident from
the HDMI specification which describes the stream setup. Same specification
also described DSD stream setup, which is is essence exactly the same, just
uses the different identifiers. (CEA Standard PDF, page 66, table 47. HDMI
specs version 1.3a, pages 72-73 for DSD(One Bit Audio) and DST audio packet
header and body formats)

Can you point out a documented case where "these modes have been dropped"?
Post by Pierre-Louis Bossart
HDMI only requires 48kHz 2ch really.
Even the HDMI version 1 requires "8 channel LPCM
<http://en.wikipedia.org/wiki/Linear_pulse_code_modulation>, 192 kHz
<http://en.wikipedia.org/wiki/Hertz>, 24-bit audio capability" :
http://en.wikipedia.org/wiki/HDMI#Version_comparison
Post by Pierre-Louis Bossart
Note that the facts don't mean any negative judgement on quality, i was at
AES this week-end where I heard outstanding DSD/DXD recordings. You will
have more luck with a USB DAC, there are multiple USB DSD products
available.
There is about 30 million DSD capable DACs in the world today,
conservatively speaking, most of them multi-channel capable (See point #3
in my OP). I appreciate that there are a few USB DSD DACs out there too,
and even 2 (two) multi-channel models. ;)

Thanks,
Andrej Falout
Clemens Ladisch
2014-10-15 09:41:58 UTC
Permalink
Post by Andrej Falout
Post by Pierre-Louis Bossart
Post by Andrej Falout
What are you basing your assessment that "HDMI controllers typically
don't support DSD in the PC space"? I looked, but could not find any
evidence for this.
I am basing my judgement on first-hand experience with silicon.
Me too :) Absolutely every HDMI related chip I examined specs for and
tested, including the cheapest of the cheap ones made as HDMI repeaters for
splitters and audio extractors, supported DSD stream passing (Both up and
down stream), just as they did all other audio bitstreams.
Because they just need to copy the packets from the input to the output.
Post by Andrej Falout
Can you please point out a specification or other document that say
otherwise?
For PCs, all HDMI outputs are handled with HDA controllers. The HDA
specification does not mention DSD. AMD's HDA verb documentation has
the following list of audio formats codes:
0: reserved
1: LPCM
2: AC-3
3: MPEG1 (Layers 1 and 2)
4: MP3 (MPEG1 Layer 3)
5: MPEG2 (Multichannel)
6: AAC
7: DTS
8: ATRAC
9: Reserved
10: Dolby Digital +
11: DTS-HD
12: MAT/MLP (Dolby True HD)
13: Reserved
14: WMA Pro

Would DSD be one of the reserved ones?
Post by Andrej Falout
As you say, these are rather straightforward to implement
... if one bothers to implement it.
Post by Andrej Falout
Same specification also described DSD stream setup, which is is
essence exactly the same, just uses the different identifiers.
So the hardware needs some mechanism to output these identifiers.
Post by Andrej Falout
Post by Pierre-Louis Bossart
HDMI only requires 48kHz 2ch really.
Even the HDMI version 1 requires "8 channel LPCM, 192 kHz, 24-bit
audio capability": http://en.wikipedia.org/wiki/HDMI#Version_comparison
That page lists the version where a feature was introduced; these are
not requirements.

The HDMI specification says:
| If an HDMI Source supports any HDMI audio transmission, then it shall
| support 2 channel L-PCM ..., with either 32kHz, 44.1kHz or 48kHz
| sampling rate and a sample size of 16 bits or more. [...]
| An HDMI Sink that is capable of accepting any audio format is required
| to accept two channel ... L-PCM audio at sample rates of 32kHz,
| 44.1kHz, and 48kHz.


Regards,
Clemens
Pierre-Louis Bossart
2014-10-15 13:38:22 UTC
Permalink
Post by Andrej Falout
Hello Pierre-Louis,
On Wed, Oct 15, 2014 at 3:43 AM, Pierre-Louis Bossart
What are you basing your assessment that "HDMI controllers typically
don't support DSD in the PC space"? I looked, but could not find any
evidence for this.
I am basing my judgement on first-hand experience with silicon.
Me too :) Absolutely every HDMI related chip I examined specs for and
tested, including the cheapest of the cheap ones made as HDMI repeaters
for splitters and audio extractors, supported DSD stream passing (Both
up and down stream), just as they did all other audio bitstreams.
http://www.mds.com/system/resources/BAhbBlsHOgZmSSIuMjAxMy8xMC8xNi8xNy8yOS80NS80MjYvSFNSX0hTX3Jldl81ZC5wZGYGOgZFVA/HSR-HS_rev_5d.pdf
Can you please point out a specification or other document that say
otherwise?
You are not looking at the right specifications. You need to look at
HDMI interfaces for PCs, and I maintain that most of them don't support DSD.
Post by Andrej Falout
Certainly, DSD is not a part of HDMI hardware implementation (such as
for example, CEC). From all info I have, DSD is simply
multiplexed into
HDMI data stream, just as DST-HD or AC3 is.
This multiplexing is typically not implemented - mainly because this
isn't a format used outside of niche markets
It seems that you are talking about coding/decoding, not bitstream
multiplexing? Same TMDS stream multiplexing is used for all audio
streams in HDMI - weather native (PCM/DSD) or encoded (AC3, DTS, ...)
The only real difference that I can see is the stream setup as described
in my OP ("Table 47 CEA Short Audio Descriptor for Audio Format Codes 9
to 13", (eg setting the format code, bittness, etc))
and there was no real format to convey DSD over PCM frames until the
DOP format was created in 2012.
Again, I am talking about native DSD formats/streams, not DoP - which is
in essence PCM. HDMI specs do not know or need DoP. HDMI is capable of
native DSD transfer since version 1.2. See point #5 in my OP.
DTS-HD and AC3 use a PCM format which is rather straightforward to
implement but there's quite a few cases where these modes have been
dropped.
As you say, these are rather straightforward to implement, as evident
from the HDMI specification which describes the stream setup. Same
specification also described DSD stream setup, which is is essence
exactly the same, just uses the different identifiers. (CEA Standard
PDF, page 66, table 47. HDMI specs version 1.3a, pages 72-73 for DSD(One
Bit Audio) and DST audio packet header and body formats)
Can you point out a documented case where "these modes have been dropped"?
HDMI only requires 48kHz 2ch really.
Even the HDMI version 1 requires "8 channel LPCM
<http://en.wikipedia.org/wiki/Linear_pulse_code_modulation>, 192 kHz
http://en.wikipedia.org/wiki/HDMI#Version_comparison
Wrong. See the HDMI spec, not Wikipedia.
The only requirement is:
If an HDMI Source supports any HDMI audio transmission, then it shall
support 2 channel L-PCM (using an IEC 60958 Subpacket structure), with
either 32kHz, 44.1kHz or 48kHz sampling rate and a sample size of 16
bits or more.

Additional rates are not required and often not implemented:
An HDMI Source is permitted to transmit L-PCM audio data at sample rates
of 32kHz, 44.1kHz,48kHz, 88.2kHz, 96kHz, 176.4kHz or 192kHz.

DSD is equally optional:
A Source may transmit One Bit Audio at an fS (1/64th of the bit rate) of
32kHz, 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz or 192kHz. Any Source
capable of supporting One Bit Audio should support an fS of 44.1kHz,
corresponding to a bit rate of 2.8224MHz.

May and should are not mandatory statements.
Post by Andrej Falout
Note that the facts don't mean any negative judgement on quality, i
was at AES this week-end where I heard outstanding DSD/DXD
recordings. You will have more luck with a USB DAC, there are
multiple USB DSD products available.
There is about 30 million DSD capable DACs in the world today,
conservatively speaking, most of them multi-channel capable (See point
#3 in my OP). I appreciate that there are a few USB DSD DACs out there
too, and even 2 (two) multi-channel models. ;)
I wish you luck. over and out.
Post by Andrej Falout
Thanks,
Andrej Falout
Anssi Hannula
2014-10-19 16:50:52 UTC
Permalink
Hello,
Post by Andrej Falout
On Wed, Oct 15, 2014 at 3:43 AM, Pierre-Louis Bossart <
Post by Pierre-Louis Bossart
DTS-HD and AC3 use a PCM format which is rather straightforward to
implement but there's quite a few cases where these modes have been
dropped.
As you say, these are rather straightforward to implement, as evident from
the HDMI specification which describes the stream setup. Same specification
also described DSD stream setup, which is is essence exactly the same, just
uses the different identifiers. (CEA Standard PDF, page 66, table 47. HDMI
specs version 1.3a, pages 72-73 for DSD(One Bit Audio) and DST audio packet
header and body formats)
As you can see from the HDMI spec, there are 4 different types of audio
packets:

- Audio Sample Packet, used by:
* PCM audio
* most passthrough formats (AC-3, DTS, E-AC-3, etc.)

- High Bitrate (HBR) Audio Stream Packet, used by:
* over-1.5Mbps passthrough formats, i.e. DTS HD and Dolby TrueHD,
sometimes called "HD Audio passthrough".

- One Bit Audio Sample Packet
- DST Audio Packet
Post by Andrej Falout
Can you point out a documented case where "these modes have been dropped"?
Of the above 4 packet types, the currently available PC HDMI audio
controllers usually only support the first two.

For example, Intel and NVIDIA HDMI audio hardware follow the Intel HD
Audio specification, which only knows of the first two types (7.3.3.13,
Table 89 - "EPT Values"):
http://www.intel.com/content/www/us/en/standards/high-definition-audio-specification.html
--
Anssi Hannula
Loading...