B&O Tech: Where should I decode?
#10 in a series of articles about the technology behind Bang & Olufsen loudspeakers
One question that I am occasionally asked is why the BeoVision 11 is not able to decode audio signals encoded in Dolby TrueHD and DTS HD-Master Audio. I am not able to answer this question. However I can discuss what the implications are with respect to audio and, more specifically, audio quality in a playback system.
Before we start this discussion, let’s get a couple of terms defined:
- LPCM: Linear Pulse Code Modulation. This is what most people call “uncompressed digital audio”. It’s the way digital music is stored on a CD, for example. It’s also the way digital audio is encoded to be able to send it around a computer or digital signal processor and do things like filter it, mix it, or just change the volume. So, at some point, in any system that has any digital audio signals anywhere in it (even if it’s just to change the volume, for example), it will be sending the signals around as LPCM-encoded audio.
- CODEC: COmpression-DECompression. This is a way of encoding the LPCM audio signal so that it takes up less space (or less bandwidth). This is the audio equivalent of converting something to a “ZIP” file – sort of. Some CODEC’s are “lossless” – meaning that, if you take a signal, compress it and decompress it, you get back everything you put in – a bit-for-bit match of the original. (If you didn’t, it wouldn’t be “lossless”). Other CODEC’s are “lossy” – meaning that, when you compress the signal, some stuff is thrown away (this is why audio professionals call lossy CODEC’s like MP3 “data reduction” instead of “audio compression”). Hopefully, the stuff that’s thrown away is stuff you can’t hear – but that debate is best left out of this discussion.
- Bitstream: Some Blu-ray players allow you to choose whether you send the audio data that’s on the disc directly out its digital output, unchanged OR to decode the audio data to LPCM before sending it out. Typically, this shows up in the menus on the player as a choice between sending “bitstream” or “LPCM”. So, for the purposes of this article, I’ll use these two terms as meaning those two things. However, if we’re going to be accurate, this is an incorrect definition, since an LPCM signal is a stream of bits, and therefore is also a bitstream. But now I’m being purposely punctilious…
Let’s start this discussion by building a fairly standard home theatre system. We have:
- A Blu-ray player connected to…
- A BeoVision or BeoPlay television or a BeoSystem X OR some other brand’s AVR (Audio Video Receiver) or Surround Processor via an HDMI cable
which is connected to… - A surround sound setup with 5 or 7 main loudspeakers (some of those might be inside the television) and maybe a subwoofer, all connected to the television using power amp, or line level (or PowerLink, for B&O customers) connections
Let’s also assume the following:
- The Blu-ray player is connected to the television’s input with an HDMI cable.
- Both the Blu-ray player and the television (or AVR or Surround Processor) have been certified by Dolby and DTS to decode all the encoding formats in which we’re interested for this discussion
(note that this is not true of all devices in the real world – but we’ll use the assumption for now). - The player does what you tell it to do. In other words, if you set its output to bitstream, it sends the stream of bits that are on the disc it’s playing – and nothing else.
The question is:
What format should I use to send the audio signals from the Blu-ray player to the television? Should I set my Blu-ray player to send a Bitstream to the television and decode the audio signals there? Or maybe it’s better to tell the Blu-ray player to decode the signals and send LPCM to the television.
The answer, unfortunately, is potentially complicated… but let’s look at what the implications are for the two options.
Audio Quality
If you do a search on the web, you’ll find all sorts of answers to this question. Some of the answers are correct, some are partly correct, and some are just plain wrong – actually, some aren’t even wrong.
If you go to a reasonably reputable source such as www.hdmi.org, you’ll read that “There is no inherent difference in quality between Dolby TrueHD/DTS-HD being sent over HDMI as decoded PCM vs. encoded bit stream“. This is, in fact, true (although it’s not the full story). It’s true if your audio is encoded in Dolby TrueHD, Dolby Digital Plus, Dolby Digital, DTS-HD Master Audio, DTS-HD High Resolution Audio, or DTS Digital Surround.
The basic reason for this is that Bang & Olufsen, like every other company that manufacturers audio/video components that support these formats must adhere to a very strict set of regulations that are set by Dolby and DTS in order to receive certification for our products. Also, before we can deliver a new product to our dealers, it must be thoroughly tested by both Dolby and DTS to ensure that we meet their exacting standards for their formats. In other words, a Dolby TrueHD decoder is a Dolby TrueHD decoder – regardless of what the box it’s in looks like.
This means that every device that is certified to decode Dolby TrueHD or DTS-HD Master Audio and convert that format to an uncompressed PCM audio signal (footnote: the “standard” format that is used by the internal Digital Signal Processing (DSP) of the device) does that decoding in the same way. This is true whether the device is a Blu-ray player, a DVD player, an AVR, or surround sound processor. Note that this does NOT, however, mean that a loudspeaker connected to any of these devices will give you the same sound quality – there are many, many other links in the audio chain that have an effect on sound. It merely means that the conversion from a compressed (either lossy or lossless) signal to an uncompressed signal will be identical, regardless of where it’s done.
So, whether:
- you decode in the player and send PCM to the television, OR
- you send the bitstream to the television and decode the signal there,
there is no difference in audio quality
Now, you might tell me “But I went to a user forum and saw a posting from a person who did a test with his Acme Blu-ray player and his Flybynight AVR and he reports that he can EASILY hear the difference in quality in the audio when he changes from LPCM to Bitstream on his player.” This may, in fact, be true. However, the reason that there is an audible difference is not due to one of the devices having a better decoder or some very minor issue like jitter on the HDMI signal. There are at least two very basic and very simple explanations as to why this might happen.
- The first is a simple level difference. If you do an ABX test of a system where A or B is 1 dB louder than the other, but are identical in every other aspect, your listening test subjects will have no difficulty identifying what X is. (An ABX test is one where you can listen to 3 things – an “A”, a “B” and an “X”. “X” is guaranteed to be identical to either “A” or “B” (which are guaranteed to be different). Your task is to identify whether “X” matches “A” or “B”. So, if the Bitstream is just 1 dB (or less!) louder than than the LCPM version, then you will hear a difference – although you might not notice that the difference is a simple loudness. It’s likely that you will perceive the louder one as just being “better”.
- The second is that some AVR’s can be set to apply different post processing to LPCM signals than they do to signals decoded internally. So, it’s possible that there could be something as simple as a bass or treble difference between the two signals – but it could be something as complicated as a lot of spatialisation and reverberation with a big EQ curve – or anything in-between. So, in this case, the difference between Bitstream and LPCM coming in from the player is in the post-processing differences in the AVR.
However, as I said, this is not the full story. Let’s look at more pieces of the puzzle to see what the differences are.
Audio during fast-forward / fast-rewind
Different players behave differently when you are fast-forwarding or fast-rewinding through a disc. If you are sending an encoded bitstream from the player, many devices will not deliver any audio when you are moving through your disc at a higher speed. This behaviour is different from brand to brand and model to model. However, in many cases, these same players WILL deliver audio if the output is set to PCM.
Listening Levels
In a theory, there should be no difference in audio levels (i.e. how loud the signals are) caused by moving from a decoder inside your player to one inside your television. However, as I mentioned above, this world isn’t perfect – and one of the results of that imperfection is that there may, indeed, be a difference in level caused by switching from a bitstream to a PCM output from the Blu-ray player. If this does happen, then it’s likely because of some extra (or different) post-processing that is happening to the signal(s).
Mixing of Extra Audio Channels
One of the cool features of DVD and Blu-ray (that I, personally, never use) is that you can watch a movie whilst listening to the director (or someone else) talk about the movie – a feature usually called “Commentary” or something like that. This is fun, because there’s nothing that can make IronMan 3 more interesting than hearing about how someone accidentally spilled a cup of coffee on their computer keyboard while they were rendering a 3D CGI version of an Audi falling into the ocean.
In order for this feature to work, the system has to take the audio signals for the movie and mix in an additional audio channel. However, some players are not able to mix these two sounds together if they’re outputting a bitstream. They can only do it if they’re decoding the movie AND the commentary separately, and then mixing the two LPCM streams. Of course, to then re-encode the result, just to send out a bitstream would be silly.
Another example of these extra sounds that may not make it through a bitstream output are the “clicks” or cute noises that are assigned to menu items.
So, with some players, if you want to hear these extra sounds, you’ll have to output a decoded LPCM stream.
Channel Allocation and Routing
This is where things get a little debatable. Usually, when people say “5.1” they mean the following channel allocations (in no particular order)
- Left Front
- Centre Front
- Right Front
- Left Surround
- Right Surround
- LFE
And, when they say “7.1” they mean
- Left Front
- Centre Front
- Right Front
- Left Surround
- Right Surround
- Left Back
- Right Back
- LFE
We’ll call these the “standard audio channel allocations” for this article. However, as I talked about it a previous article, “7.1” actually has seven “legal” variants that include non-standard audio channel allocations like front-wide and height channels.
Let’s assume, temporarily, that you have a disc that has some audio channels on it that should be routed to, say, a ceiling loudspeaker. The question is: “IF your surround processor has a “ceiling speaker” output, and IF there is a “ceiling” audio channel on the disc, can the signal get to the correct loudspeaker?” The answer is complicated. . .
Firstly, the question is “how can the disc ‘know’ that the audio channel is a ‘ceiling’ channel?” Well, both Dolby TrueHD and DTS HD-Master Audio (for example) have the option to include “metadata” (this is a fancy word meaning “data about the data” – or, in other words “information about the audio signals”) that can tell the decoder something like “audio channel #6 should be sent to a ceiling loudspeaker”. Other CODEC’s (like Dolby Digital, for example) do not have the possibility to have non-standard audio
Secondly, the question is “if the player decodes the signal to LPCM, and its decoder knows that the channel should be routed to the ceiling, can it ‘tell’ the surround processor via the HDMI metadata where to route the signal?” The answer to this question is dependent on the version numbers of the HDMI transmitter in the player and the HDMI receiver in the surround processor. If you are using HDMI 1.3 or earlier, then you cannot have non-standard channel allocations with an LPCM signal. If you have HDMI 1.4 or higher (for both the transmitter and the receiver) you might be able to get the correct metadata across from device to device. (if you look here, you can see that, if your HDMI transmitter or receiver is version 1.2 or earlier, then you cannot send the Dolby or DTS lossless codec’s – so this will also not work for non-standard channel allocations.)
So, the only way to guarantee that your complete system can support non-standard audio channel allocations (assuming that your surround processor has the ability to output them) is to send a bitstream from the player and decode at the end of the chain.
However, the question to ask after you’ve answered all of that is “how many commercially-available recordings include non-standard audio channel allocations?” The answer to this, as far as I’ve been able to figure out is “none”. (If you know of any examples of this that prove me wrong, please leave a note in the “replies” – I’m looking for materials! But read the rest of this paragraph first…) Of course, there are SACD’s where the LFE channel should be directed to a height channel – but SACD’s don’t include metadata to tell the player about the routing. Dolby ProLogic IIz and dts Neo:X have height channel outputs, but that’s a different system than a CODEC with discrete output channels. There are some other formats like Imax, Auro3D, and Dolby Atmos that use height channels, but they’re not available in consumer media.
So, this, at least for now, is an solution without a problem.
Bass Management
Some Blu-ray players (and even some good ol’ DVD players) include a bass management system that will filter the bass out of the main channels and add it to the LFE output.
IF your player can do this, then:
- it can only do it to a decoded signal – so the bass management in the player will not work with a bitstream output
- you should be sure that it is doing it (if you want it to do so) or that it is not doing it (if you don’t)
Latency
Some forum discussion groups have highlighted an issue with some specific players that exhibit lip-synch problems when they decode the signal to LPCM internally. The few comments about this that I have read in these fora indicate that switching the player’s output to bitstream appears to fix this problem. However, this should be considered a “work-around” for a bug in the player’s software. There should be no difference in synchronisation of sound and picture whether you’re decoding in the player or the surround processor. If there is a lip synch problem, then the people that made the player haven’t done their jobs properly.
Conclusion
So, to wrap up: the big things to remember here are that,
- in any audio playback system, audio that is stored (and/or transmitted) in a CODEC has to be converted to LPCM somewhere
- there is no difference in quality of decoder – in other words a Dolby (or DTS) decoder in one device won’t be better than a Dolby (or DTS) decoder in another device. If it were, then Dolby (or DTS) would not have approved one of them
- there are some issues not related to audio quality that are affected by the location of the decoder in an audio chain, but these are typically very small (or even non-existent) issues for almost all consumers
Finally, I didn’t talk about jitter – which is term that a lot of people throw around as being one of those evils in every audio system where you can place all of your blame for everything that is bad about the system. This puts it in a league with things like “society“, “television“, “Canada“, and “The Boogie“. I’ll talk about that sometime in the future.
One last thing
Everything I’ve said above is only true for an HDMI connection. If you have an S/P-DIF or TOSLINK connection, then the discussion will be quite different, since you cannot have more than 2 channels of LPCM-encoded audio on those systems – so the only way to get multichannel audio through it is to use a lossy CODEC. So, if you have a multichannel source and you decode to LPCM before sending it out on S/P-DIF or TOSLINK, you will wind up with a 2.0 channel downmix.
Reports of its death have been greatly exaggerated
B&O Tech: Thermal Compression Compensation
#9 in a series of articles about the technology behind Bang & Olufsen loudspeakers
Recipe for
`Befuddled Speaker Enthusiast´
Makes: One individual with reduced faith in loudspeaker reviews
Total time: approximately 2 hours
Directions
- Take a woofer and put it in a cabinet
- Connect an amplifier to it
- Put it in a sauna
- Set the room temperature to 20° C and wait until everything in the room is the same temperature
- Measure the woofer’s on-axis response with a microphone
- Look at the pretty plot of its magnitude response
- Turn up the thermostat to 100° C and wait until the woofer warms up
- Measure the response again
- Look at the new pretty plot of its magnitude response
- Scratch your head while you ask yourself why the two measurements look so different.
The setup
When you read a magazine review of a loudspeaker, it will include a measurement of its “frequency response” (more accurately called its “magnitude response”) which shows (ignoring a bunch of things) how loud different frequencies are when they come out of the loudspeaker assuming that they all came in at the same level.
However, as we saw in a previous article, for a Bang & Olufsen loudspeaker, this magnitude response is dependent not only on the loudspeaker, but how loudly you’re playing the signal.
Unfortunately, it gets much worse than this… For example, if we take a woofer (say, the one from the recipe above, for example) we can explain its electromechanical characteristics by breaking it down into different components (both actual and analogical). For example, the suspension (which is comprised of the surround and the spider) can be thought of as a spring. The electrical analogy for this is a capacitor. If you take all of the moving parts in the loudspeaker driver, they all add up to a mass that has to be moved – the electrical analogy for that mass is an inductor (since an inductor has some electrical “inertia” just like the mass of a bunch of loudspeaker bits). Some of the components are not an electrical analogy – they are real electrical components. For example, the voice coil, since it’s a coil, acts as an inductor. And, since it is a thin bit of wire, it also has some resistance to the flow of electrical current through it, so it’s also a resistor.
If you look at the diagram above, you’ll see a very simplified “circuit” that shows the components of a moving coil dynamic loudspeaker. If these components don’t look familiar to you, don’t worry, it’s not important. Some components in the circuit are actual electrical things (like the resistance of the voice coil, shown in red) and others are analogies – electrical representations for a mechanical component in the system (such as a capacitor representing the “spring” of the surround and the spider).
If you know how each of these components behaves, and you know the correct values to put in for a given loudspeaker, and you know how to do the right math, then you can come pretty close to getting a decent prediction of the response of the loudspeaker that you’re modelling with the circuit. However, if you just put in one value for each component, then you’re assuming that they never change – in other words that you’re dealing with a “linear” system.
The problem is that this assumption is incorrect. For example, the Voice Coil Resistance – the amount that the wire in the voice coil resists the flow of current through it when the loudspeaker driver is not moving – changes with temperature. The hotter the wire gets, the higher the resistance goes. (This is a normal behaviour for most resistors.) If the voice coil resistance changes, then the whole system behaves differently, since it isn’t the only component in the circuit. So, as we change the temperature of the voice coil, the total response of the loudspeaker changes.
Sadly, the temperature of the voice coil isn’t only dependent on the room temperature as it seemed to be in our recipe for a Befuddled Speaker Enthusiast. As soon as you start playing sound with a loudspeaker, it starts heating up. The louder the signal (either because you turned up the volume or because your Metallica album just came on) the hotter it gets. So as you play music, it heats and cools. The speed with which it heats up and cools down is dependent on its “thermal time constant” – a big woofer with a giant magnet will take longer to heat up and cool down (and therefore have a longer thermal time constant) than a little tiny tweeter.
So, now you should have at least three questions that deserve answers:
- How much does the temperature vary when I play music?
- How does the response of the loudspeaker change with temperature?
- How much does the response of the loudspeaker change with temperature?
- What are you going to do about it?
1. Voice coil temperature
As I’ve talked about in a previous article, a loudspeaker driver is, give or take, about 1% efficient. That means that 99% of the power that you push into it (from the amplifier) is not converted into sound. Unfortunately, all of that power is lost as heat – almost all of it at the voice coil of the loudspeaker. So, the louder your music, the hotter your voice coil gets. Of course, if you have a way of cooling it (by using other parts of the loudspeaker as a radiator to your listening room) then it won’t get as hot, and it will cool down faster.
Let’s take a BeoLab 5 as an example (since that’s where we’re headed anyway…). Let’s take some relatively new-ish pop music (which has been mastered to be fairly loud due to a war that has been going on for years) and play it on a B&O player through Power Link (B&O’s version of a line level signal) at maximum volume on a BeoLab 5 whilst monitoring the temperature of the voice coils. What you’ll see if you do this is something like the plot below.
As you can see in the screenshot in Figure 2, the lower woofer (a 15″ driver connected to a 1000 W Ice Power amplifier) varied with a maximum of about 205° C. While it was playing this music at this level, it rarely dropped below 120°C.
This means that the difference in temperature of the woofer was 185°C at a maximum (205°C – 20°C) and rarely below 100°C.
In case you are wondering, this temperature cannot be measured directly, since it would destroy the voice coil if we tried to do so. Instead, what we do is to measure the temperature of the loudspeaker driver magnets, and use that real-time data input in addition to the signal that we’re sending to the drivers to calculate the temperatures of the voice coils based on thermal models of each of them. As you can see in Figure 3, below, the magnet temperatures are very different, and react much more slowly. These measurements were taken at exactly the same time as the ones shown in Figure 2. (Note that, although the mid woofer and woofer voice coils are roughly the same temperature, the mid woofer magnet is hotter than the woofer magnet by about 20°C or so. This just proves that their thermal models are different.)
2 & 3. Loudspeaker response changes
So, now the question is “what does this change in temperature do to the response of the driver?” We’ll only deal with one driver – the woofer.
As I mentioned above, the thing that changes most in the model shown in Figure 1 is the loudspeaker driver’s voice coil resistance. For those of you with a background in reading electrical circuits, you may notice that the one shown in Figure 1 has some reactive components in it which will result in a resonance at some frequency. For those of you without a background in reading electrical circuits, what this means is that a loudspeaker driver (like a woofer) has some frequency that it “wants” to ring at – if you thump it with your thumb, that’s the frequency that you will hear ringing – a bit like a bell with a low pitch.
As the voice coil resistance goes up, its resistance increases, and we generally lose sensitivity (i.e. level or loudness) from the woofer. In other words, the hotter it gets, the quieter it gets. However, this only happens at the frequencies where the resistor is not “overridden” by another component – say the mechanical resonance of the woofer or the inductance of the voice coil.
The total result is shown for various temperature differences in Figure 4. Notice that these plots show the change in magnitude response of the driver with CHANGES in temperature. So, the blue curve at the top is the change in magnitude response (which is 0 dB at all frequencies – in other words no change) when the loudspeaker is playing at the same temperature it was measured at (let’s say, 20°C or room temperature). As the temperature of the voice coil increases above that temperature, you can see that you lose output in two frequency bands on either side of a “bump” in the response – this is at the resonant frequency of the loudspeaker driver.
So, the louder you play, the more low end you lose, apart from a peak in the response (which also rings in time) at the resonant frequency of the driver.
In case you’re wondering, the plot shown in Figure 4 is pretty close to the actual response of the 15″ woofer in the BeoLab 5 at different temperatures above room temperature.
The solution
Interestingly, all of the stuff I said above is true for every loudspeaker. So, if you’re the kind of person who believes that the only proper loudspeaker is one where you have nothing but a loudspeaker driver (in a cabinet of any kind, or not) and an amplifier – and no weird filtering or mucking-about going on, then you’ll have to live with the kind of unpredictable behaviour that you see above. This happens all the time to every dynamic loudspeaker. Since, in a passive loudspeaker, there’s nothing you can do about this (except for trying to keep the drivers cool somehow) you don’t often hear passive loudspeaker manufacturers talking about this little skeleton in their closet…
However, since a BeoLab 5 “knows” the temperature of the voice coil of the woofer, and since it has been programmed with the curves shown above in Figure 4, we can do something about it.
In essence all we need to do is to take Figure 4, flip it upside down and make a filter that “undoes” the effect of temperature on the loudspeaker’s response. In other words, if (because the woofer gets 160°C above “normal”) it drops 3 dB at 20 Hz, the BeoLab 5 knows this and adds 3 dB at 20 Hz. So, built into the BeoLab 5 is a set of filters that are used, depending on the temperature of the woofer’s voice coil. These filters are shown in Figure 5.
It’s important to note three things here.
- This can be done because we know the behaviour of the woofer at different temperatures (this was measured as part of the development process)
- This can be done because the loudspeaker “brain” (the DSP) knows the temperature of the voice coil in real time as you’re playing music
- This filter should only be applied to the woofer. The mid woofer and the other drivers have different behaviours and should not be affected by this correction curve. Therefore, this filtering can only be done because the BeoLab 5 is an active loudspeaker with independent filtering for each loudspeaker driver.
Some extra information
You should be left with at least one question. I said above that, as the music gets loud, the woofer heats up, so you lose output, so we add a filter that compensates by putting more signal into the driver.
“Waitaminute!” I hear you cry… “The problem is caused by the signal being too loud, so you make it louder!?” Well… yes.
However, there is one more trick up our sleeve. In a previous posting, I mentioned in passing that we also have Thermal Protection in almost all of the loudspeakers in the B&O portfolio. This means that the DSP brain knows the temperature of the drivers and, in a worst-case situation, turns the levels down to protect things from burning up. So, if we go back to the example of a BeoLab 5 playing at full volume, let’s see what’s happening to the signal levels.
These curves in Figure 6 show the gains applied to the four loudspeaker drivers in a BeoLab 5 at the same time as the measurements shown in Figures 2 and 3 were being made. In fact, if you look carefully at Figure 2 around the 23 minute mark, you’ll see that the temperature dropped – which is why the gain in Figure 6 increases (because it can!) in response.
Now, don’t panic. The BeoLab 5 isn’t screwing around with the gains of the drivers all the time. Remember that this test was done at FULL VOLUME – which, for a BeoLAb 5 is VERY LOUD. The gains shown in Figure 6 are a last-ditch effort of the loudspeaker to protect itself from a very mean customer (or the very mean children of a customer who is away for the weekend). This is the equivalent of the airbags deploying in your car. You know that if the airbags are outside the steering wheel (or if the gains in the BeoLab 5 dropped by 15 dB or so) something significant occurred…
Thanks to Gert Munch for his help in cleaning up the mistakes I made in the drafts up to and including the penultimate version of this article.
1+2+3+4+5+6+7+…. = -1/12
The Landfillharmonic
Just throw it out – it’ll be fine…
Les Mousserables
The Feel-good and Not-so-good movie of the year!
First Impressions
I’m sitting and listening to Mary Chapin Carpenter’s new album “Songs From the Movie” for the first time on Spotify on a pair of headphones.
I listen to a lot of recordings – usually to find problems in loudspeakers, so it’s not very often that an album makes the hair on the back of my neck stand up.
This one does.
I haven’t yet been able to find out who the recording engineer(s) was(were) for this album, but to whomever it was – Thanks!