decoding HDMI audio : DM8147 or DM8148 ?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I'm progressively realizing the importance of HDMI, even for audio.
HDMI is now the natural way if you own a recent PC acting as Home Theatre having HDMI on the motherboard, connecting on a 5.1 amplifier, the latter routing the video signal to the TV set.
HDMI is also the natural way if you own a dedicated Blu-ray / DVD / CD player outputting a HDMI signal, feeding a 5.1 amplifier.
That's progress ! Or not ?
Can we remain bit-exact when playing an audio CD this way ?

Look, if you want to control the way sound gets processed, you need to exploit the HDMI signal, and build your own 4-input HDMI selector / room equalizer / speaker equalizer / digital xover / volume control.
And Multichannel.
Preferably 4-way for the front_left and front_right speakers.
All the other speakers (center, rear_left, rear_right) would be 2-way.
Thus 14 audio channels in total. Possibly 16 and we are done.
Ough !

Well, actually, it's not the end of the world by nowadays standards.
Modern ARM silicon is out there, less than 10 dollar a chip.
Including all the required connectivity.

The DM8147 single CPU solution
Having one HDMI input and six McASP outputs, a T.I. DaVinci DM8147 preceded by a 4->1 HDMI selector looks a very tempting solution.
One or two McASPs may be used in TDM for feeding a 8-channel DAC, or two 4-channel DACs, driving the secondary speakers.
Four McASPs may be used in I2S for feeding four high quality stereo DACs, driving the front speakers.
The DACs would be external, connecting using one small flatcable per McASP, along with a SPI (and eight chip select), two I2C and a few GPIOs for the volumes.
The DM8147 software would decode all Dolby, DTS and THX formats.
The bitstream HDaudio format would be supported, by converting it into linear PCM at 192 kHz for allowing digital processing on it.

High-End Audio option : USB asynchronous
There would be a USB asynchronous audio option for allowing the DM8147 to act as audio clock master, requesting PCM audio packets from the PC.
The same USB audio connector would be used when the PC is reading MP3 files and other compressed formats.
This way, the PC only outputs the raw compressed data asynchronously, as requested by the DM8147, and the DM8147 always remains the clock master and the audio decoder.
The PC then gets forced to act transparently, bit-exact, not involved in audio decoding.
There would be a High-End Audio Winamp plugin for allowing this scheme, however selecting such modality, many other Winamp functions get disabled like crossfading, equalizing, volume normalization, etc ...
Such High-End Audio mode seems incompatible with Blu-rays or other video-sync audio, because in such a case, it is the data source (and not data sink) acting as clock master. Or maybe it is possible ?
Within the High-End Audio mode, there would be a "no Sample Rate Conversion" option. When such option gets engaged, the DM8147 dynamically adapts to the incoming sampling frequency, dynamically changing the filter coefficients and the MCLK and LRCK frequencies feeding the DACs. When such option gets engaged, a 44.1 KHz CD gets processed at 44.1 kHz, and the DACs get fed at 44.1 kHz. When such option gets engaged, a 96 kHz lossless audio file gets processed at 96 kHz, and the DACs get fed at 96 kHz.
When the "no Sample Rate Conversion" option gets disengaged, all files get converted at the input, to a common sampling frequency, before getting processed. The user can freely chose between 44.1 kHz, 48 kHz, 96 kHz and 192 kHz.

Other features and options
The same USB connector would enable the PC to setup the room equalizer, the speaker equalizers, and the crossovers.
There would be an optional WiFi or Blutooth module, for enabling a smartphone to do the setup, wireless.
There would be an optional radio or infrared (Logitech Harmony compatible) remote control.

Not a monster
The board would measure 100mm x 160mm.
On one edge you would have six McASPs connectors, one global SPI + Chip Select connector, and a power connector for adding opto-isolation on those signals.
On the other edge you would have a connector for feeding a display like the one Pioneer is using in their VSX-S300 and VSX-S500 HDMI multichannel amplifiers.

Software orientations
This would be not a Linux or Android derivative. The aim is to progressively launch a fresh, dedicated, streamlined software architecture, without the usual bloat. A philosophy on its own, solely dedicated to refined audio.

Royalties ?
Knowing that the audio decoding is handmade, basing on textbooks and general knowledge, about 20 years old now, in 2012, are there royalties due when exploiting the correspondent digital formats, and decoding them ?
This is a ARM-based project. It means it won't be a Sharc, Blackfin, or DSP56K implementation hack. For such reason, are there royalities due ?

Public Price
Needs to be 59 dollar for a PCB containing the minimum audio decoding configuration.
Such price is 66% of BeagleBone.
There is no need to buy BeagleBone + an audio Shield (or Cape), bringing the price above 100 dollar.
And less dissipated power, less EMI.

Feasible ?
Interested ?
Want a block diagram ?
 
Last edited:
For better understanding what's HDMI, one can start with DVI, the HDMI ancestor. In DVI, there are three serial lines : red, green, blue. Plus one common bit clock. There is no audio in the digital stream. There is no I2C bus as general control (CEC).
 

Attachments

  • TFP403 DVI Receiver.jpg
    TFP403 DVI Receiver.jpg
    125.1 KB · Views: 791
The DM814x has one HDMI port, as output. Of course we can't use it as input. Note the dedicatd 36-bit video bus (extracting data from RAM) feeding the TDMS encoder. Note how audio gets interleaved with video, using EDMA requests. Note the presence of CEC (aka I2C). Note the HDCP management and key.
 

Attachments

  • DM814x HDMI Output.jpg
    DM814x HDMI Output.jpg
    142.5 KB · Views: 1,047
On the other hand we have dedicated HDMI chips like the Silicon Image Sil9135 HDMI Receiver. Actually, the Sil9135 is more than a receiver because it decodes all audio formats, providing the four I2S lanes required in 7.1 audio. The Sil9135 would releave the DM8147 from decoding audio. Doing so, the DM8147 solution may seem overkill, but remember we need lots of I2S lanes : four for inputting the decoded audio from the Sil9135 (if wanting to post-process all channels), and at last two (in TDM) for outputting 16 audio channels. Need to check if a NXP LPC43xx can do this, using the M0 and the SGPIO.
 

Attachments

  • Sil9135 HDMI Receiver.jpg
    Sil9135 HDMI Receiver.jpg
    85.1 KB · Views: 889
  • Sil9135 Starter Kit.jpg
    Sil9135 Starter Kit.jpg
    181.3 KB · Views: 780
  • Sil9135 Circuit Diagram.jpg
    Sil9135 Circuit Diagram.jpg
    90.1 KB · Views: 743
Another way is to try using the DM814x Video Input Parser in 3 x 8-bit bus mode (24-bit mode). This is the "Video Input Port 0" on the left side of the DM814x diagram. As result, using VPDMA, you automatically get some data in RAM formatted in RGB, 420T, 422I, or 422T, that you can process. Up to you to descramble the data (what if HDCP ?), locate the audio, extract the audio, and decode the audio. All "by hand", using your own algorithms. Don't care the video data, it doesn't need to be processed.
I confess the 24-bit approach is not compatible with the HDMI 1.3 "deep colour" mode, but who cares at the moment, with no movies encoded this way ?
Till Harbaum has a DVI to 24-bit parallel adapter, using a T.I. TFP101A chip.
See his website : DVI2PAR - a video HDMI/DVI decoder for the beagleboard
This is exactly what I would hook on the DM814x Video Input Parser, in 24-bit mode.
 

Attachments

  • DM814x Video Input Parser.jpg
    DM814x Video Input Parser.jpg
    151 KB · Views: 237
  • Till Harbaum DVI2PAR V1.0.jpg
    Till Harbaum DVI2PAR V1.0.jpg
    174.6 KB · Views: 220
Another dedicated HDMI chip is the Sil9233A. Looks very tempting with the built-in four HDMI inputs. Digital audio comes out using four I2S lanes. Even if currently the Sil9233A is subjected to a Non Discolsure Agreement, nobody prevents you from hooking a DSP56374 on one or two I2S lanes it is delivering. If the Pioneer VSX-S300 or VSX-S500 HDMI AV receiver have a Sil9233A inside, I'll buy one, listen to it, then convert it to digital multiway by hooking a DSP56374 on one or two I2S lanes it is delivering. I think such intermediate step is needed before moving to a more advanced project like building a "handmade" HDMI sound decoder, from scratch, using a DM814x chip.
 

Attachments

  • Sil9233A Circuit Diagram.jpg
    Sil9233A Circuit Diagram.jpg
    77.9 KB · Views: 298
  • Sil9233A Features.jpg
    Sil9233A Features.jpg
    169.8 KB · Views: 180
HDMI requires encryption of all the signals with HDCP. The cips are not available for DIY because require signing some NDA (by a company).
HDMI is interleaving video with audio, is not ment for audio quality. The main aspect that was looked into when they designed HDMI was the security of digital signals. Audio quality of HDMI transmission chain sucks, regardless what marketing propaganda say.

And, no, none of the above chips will decode digital audio, they just "incapsulate" existing SPDIF or DSD. Decoding (extracting from compressed and/or protected signals) of those needs to be done in some other chips.
 
Last edited:
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.