Go Down

Topic: HDMI Audio decoding (Read 1 time) previous topic - next topic

steven6282

Nov 07, 2013, 05:33 pm Last Edit: Nov 07, 2013, 06:06 pm by steven6282 Reason: 1
Ok, so this isn't really an arduino specific question (although maybe it can be answered with arduino, I don't know!), but I figured all the expert tinkerers around here might be able to point me in the right direction.

I'm wondering how / what do I need to build a device capable of receiving an decoding HDMI audio in order to output it to speakers (just like a receiver does).

A little more detail about exactly what I want to achieve.  I have a carputer project that I've been working on off and on for the past few years.  Right now my solution to audio is rather basic and not what I'd like for it to be.  The LCD controller board that I'm using has an analog audio out for 2 channel output.  I just duplicate that to have front and rear channels (but I have no way to adjust their volumes individually), and feed off the rear to amp for pass filtering on the subwoofer.  This sounds ok, but I'd really like to beef it up.  What I would like to do is build a device that would serve as an amplifier for the door speakers, as well as have preamp outputs for the subwoofer amp.  I figure if I built this device it would be great if I could just split the HDMI cable from my motherboard, send one to the LCD for video and one to this receiver unit for true 5.1 audio.  I know it should be possible since living room recievers can do it, I just don't know what it would take to build one of my own.  And then I'd be able to adjust all the sound levels individually (both in software on the motherboard side as long as the output is actually 5.1, as well as the possibility of adjusting it in this device I would build).

I'm also hoping it would be possible to analyze the signal during processing and see if the source is 5.1 audio or if it's only 2 channel audio and if it's 2 channel audio duplicate the signal to the rear channels and preamp outs automatically so that I don't get a situation where something is only playing on the front speakers or such.  Would be even better if during that processing if it's duplicated like that to the preamp outs that I can do a software based filtering instead of relying on the amplifier to do it all, I think that could clean up the signal going to the amp resulting in better bass from the subs.

Thanks for any advice!

UnoDueTre

Have you read the HDMI specs?
I can tell you that HDMI uses (up to) 3 channels of balanced serial data onto which things like video and multiple audio soundtracks, and other data is multiplexed at a very high data rate.

You must be a brave man to try and make a circuit to analyze the data stream, extract only the digital audio data then convert to analog, filter and playback.

My honest advice, buy a unit to do this.

DVDdoug

Quote
I figure if I built this device it would be great if I could just split the HDMI cable from my motherboard, send one to the LCD for video and one to this receiver unit for true 5.1 audio.
They do make HDMI splitters.   Does your receiver have HDMI, or is that what you're trying to build?

If your receiver doesn't have HDMI, I'd consider a 5.1 USB soundcard instead of HDMI.  I think that's the easiest, cheapest, best, way to do it.    With a USB soundcard, the right drivers, and the right applications, you should be able to handle any format as well as set-up bass management, etc.    If you get one that supports Dolby Pro Logic II, there are "soundfield" options for using the surround speakers with 2-channel stereo.  (I have my home theater system set-up for reverb in the rear channels when playing stereo music.)

If your receiver/head unit doesn't have HDMI but you really want to use it, I have some ideas.   

steven6282

#3
Nov 08, 2013, 03:44 pm Last Edit: Nov 08, 2013, 03:51 pm by steven6282 Reason: 1

Have you read the HDMI specs?
I can tell you that HDMI uses (up to) 3 channels of balanced serial data onto which things like video and multiple audio soundtracks, and other data is multiplexed at a very high data rate.

You must be a brave man to try and make a circuit to analyze the data stream, extract only the digital audio data then convert to analog, filter and playback.

My honest advice, buy a unit to do this.


It doesn't really seem to be that brave to me.  This technology has already been pioneered, I just need to know how they do it.  Buy pretty much any entertainment system with a good stereo receiver these days, and it does this.  I don't know what magical chip they have inside that does it, but it can be done.  And I've see units as cheap as 100 dollars that can do it, so it can't be an expensive component.



Quote
I figure if I built this device it would be great if I could just split the HDMI cable from my motherboard, send one to the LCD for video and one to this receiver unit for true 5.1 audio.
They do make HDMI splitters.   Does your receiver have HDMI, or is that what you're trying to build?

If your receiver doesn't have HDMI, I'd consider a 5.1 USB soundcard instead of HDMI.  I think that's the easiest, cheapest, best, way to do it.    With a USB soundcard, the right drivers, and the right applications, you should be able to handle any format as well as set-up bass management, etc.    If you get one that supports Dolby Pro Logic II, there are "soundfield" options for using the surround speakers with 2-channel stereo.  (I have my home theater system set-up for reverb in the rear channels when playing stereo music.)

If your receiver/head unit doesn't have HDMI but you really want to use it, I have some ideas.    


I don't have a receiver at all atm.  I'm wanting to do this for my carputer so I can take the HDMI out from my motherboard and split it into the individual channels to have connections for the speakers.  Instead of doing it the way I have it right now and taking a single stereo left / right output and just duplicating it to the rear speakers and amplifier for the subwoofer.  I mean doing that works, I would just prefer a cleaner output that can have better balance adjustment and a proper low frequency line to the subwoofers.  The motherboard I'm using does have SPDIF out too, but I think that is just as complex to split to individual channels as HDMI is.

I have seen small devices that can supposedly do what I want, but was hoping to build it myself so that I can make some customizations to it and add a 4x50w amplifier for my door speakers all in one unit.  For example this device on ebay claims to be able to do it: http://www.ebay.com/itm/350247932081?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

Oh and the problem with a sound card is drivers.  Right now my carputer is running on Android 4.1, it will not recognize most sound cards.  But it does output 5.1 sound through the HDMI (I've tested that using my in home stereo receiver).  And my carputer is a headless unit (or rather the carputer is the head unit I guess hehe) currently.  The carputer does everything, I'm just using a secondary small amplifier for the door speakers.

UnoDueTre



Have you read the HDMI specs?
I can tell you that HDMI uses (up to) 3 channels of balanced serial data onto which things like video and multiple audio soundtracks, and other data is multiplexed at a very high data rate.

You must be a brave man to try and make a circuit to analyze the data stream, extract only the digital audio data then convert to analog, filter and playback.

My honest advice, buy a unit to do this.


It doesn't really seem to be that brave to me.  This technology has already been pioneered, I just need to know how they do it.  Buy pretty much any entertainment system with a good stereo receiver these days, and it does this.  I don't know what magical chip they have inside that does it, but it can be done.  And I've see units as cheap as 100 dollars that can do it, so it can't be an expensive component.


Well then all I can add is good luck with it.

steven6282

#5
Nov 08, 2013, 04:22 pm Last Edit: Nov 08, 2013, 08:22 pm by steven6282 Reason: 1
Just a little more information that I just uncovered.

It looks like a chip like this one: http://www.cirrus.com/en/products/cs4970xx_family.html can split the video and audio signals on the HDMI.  But it maintains a digital format.  After that another chip is needed to process the audio (I assume this is where it gets separated into individual channels but not 100% certain), and finally it goes through a chip to get decoded.  The decoding is where the hang up is.  I haven't found anything for sure but it seems you are supposed to have a license to decode HDMI audio.  And most of the chips I could find to do such were sold in bulk only.

So maybe this is something that is beyond a DIY project simply because of the licensing and supply requirements.  I read in one place that it was 15,000 dollars to purchase a license lol.  Unless someone has more information on a cheap alternative method for decoding the audio.  If that's the case I'll probably end buying something like that devices I linked on ebay and simply integrating it into my "unit".  Either that or perhaps I will consider switching to a Linux based Carputer system in order to use a USB soundcard that has the outputs I want already on it...  Lots of downsides to work around for that though, I'd lose Googles built into android voice recognition, google maps navigation, and a lot of other convenient for a  car pc android apps.  Or perhaps I'll just stay with my current audio set up and use a IoIo board or something to integrate with android and control the duplicated channel balances that way.

DVDdoug

I was wondering about the licensing issue...  Many years ago when I was looking into some Dolby stuff, as a hobbyist you simply couldn't buy the chips.

I'm sure these are also high-density, fine-pitch surface mount parts.  You'd have to make a PC board and solder the part on.  Personally, that's not something I'd try at home.   Where I work we have a surface-mount rework station, but we have an assembly house that has the solder-silkscreen and all of the automated equipment for assembling this kind of stuff.   We only rework the simple stuff, and if one of those fine-pitch parts has to be changed, we send it to the assembly house and let them do it.

Your 1st board design might not work, you could end-up paying to have boards made twice, and it could turn into a several-month project, assuming you can even get the chips.   

You can buy HDMI DACs.  It would be a matter of finding one that runs off a 12V "wall wart" power supply, so you can run it off a car battery.  But, it will be expensive and I don't think you get all of the channel-routing & bass management features you get with USB.   An HDMI DAC might also be missing the decoders for DVD & Blu-Ray formats.   I haven't shopped for an HDMI DAC, but a stand-alone DAC is often  an "audiophile" product, and they often cost more than a low-end home theater receiver.

And, if you are not running Windows or OS-X (or at least Linux), I'm not sure what you'll find in USB.   

I was thinking maybe you can find a (relatively) cheap home theater receiver and disassemble it.  That would be a rather expensive gamble.   But in reality, it probably won't cost much more than building you own one-off PC board.  If you can get a service manual or at least schematics it would make successful "hacking" of a receiver more possible.




Go Up