• Home
  • Blog
  • Review of Bluetooth codecs: what are they, how are they different and is there a better one?

Review of Bluetooth codecs: what are they, how are they different and is there a better one?

08.01.2024 08:26

Wireless headphones and portable speaker devices often attract the attention of buyers based on the Bluetooth codecs they support. There are common perceptions about each: SBC is considered simple and unadvanced, AAC is preferred by Apple users, aptX is a good choice for Android devices, LDAC is considered the choice of audiophiles. However, the real picture is much more complex. Some preconceptions about the SBC are not entirely justified, which will be discussed separately. It is important to understand what these codecs do and what their main differences are.

Terminology and a little theory

Let's look at Bluetooth codecs in the context of their use for transmitting audio signals. Wireless transmissions via Bluetooth are subject to bandwidth limitations, even at high data rates with the latest versions of the protocol. For example, the A2DP profile used to transmit stereo audio has only about 1 Mbps available. Despite stated limitations in new versions of Bluetooth, such as 2 Mbps in Bluetooth 5.3, audio device manufacturers have not yet implemented this feature. In addition, connection quality and stability are also important factors, especially for the LDAC codec, which is capable of transmitting audio streams up to 990 Kbps, but requires a more stable connection.

Bluetooth's maximum bandwidth limits the transmission of PCM audio, the same quality as CDs (44 kHz/16 bit), which requires about 1.4 Mbps. This is where codecs come to the rescue. Codecs are information compression and decompression devices that allow audio signals to be transmitted over a limited wireless channel. They determine what data to discard and how to disguise this process during transmission.

Bitrate and PCM (Pulse Code Modulation) matter when considering codecs. The process of converting an analog signal to a digital signal begins with the selection of points at which the amplitude of the signal is measured at certain intervals. The higher the sampling rate (measured in hertz), the more accurate the digital data will be. For example, 1 Hz means one measurement per second.

To digitize an audio signal without loss, a sampling frequency is required that is twice the frequency range of the original signal — this is according to the Kotelnikov-Nyquist theorem. For example, the standard PCM sample rate on CD is 44.1 kHz, which is slightly higher than the minimum required. However, there are «hires» with higher sampling rates, but we will not touch on this topic in this context.

The next step is rounding the values measured during sampling. This is determined by the quantization depth or bit depth. For example, with a depth of 16 bits, you can have 65536 different signal amplitude values. Higher bit depth can offer wider dynamic range and better signal-to-noise ratio. In practice, 24-bit is often used, which provides a margin compared to the limit of human audio perception.

Bitrate (the number of bits transmitted per second) also plays an important role. The formula for calculating bitrate is: bitrate = sampling rate × quantization depth × number of channels. For example, CD-quality audio (44.1 kHz × 16 bits × 2 channels) results in 1,411,200 bits (approximately 1.4 Mbps), which exceeds Bluetooth transmission capabilities.

Now let's look at the main parameters of the most common and widely used audio codecs. In the table we indicate their characteristics. While it is generally accepted that a higher bitrate means better quality, it is not the only aspect to consider when choosing a codec.

CodecMaximum bitrate (Kbps)Minimum bitrate (Kbps)Bit size (bits)Latency (ms)
SBC32819216200
A.A.C.32012816, 24200
aptX38435216180
aptXLL3843841650
aptX HD57657616, 24200
aptX Adaptive42027916, 2480
LDAC99033016, 24200
LHDC90040016, 24200
Samsung Seamless5128816, 24 

An important parameter in our table will be the signal delay. This indicator plays an important role when watching videos and games: too much delay can cause a discrepancy between audio and video. As the volume of data transferred increases and the desire for high-quality audio increases, the potential for latency also increases. Sometimes you have to strike a balance between audio quality and synchronization, but fortunately, in most cases, watching videos and playing games runs smoothly and without noticeable lag.

SBC: a good codec with a bad reputation

SBC (Subband Coding) is the very first Bluetooth codec that appeared simultaneously with the A2DP profile and is supported by all devices using this profile. Although SBC has some popularity, it is often viewed as one of the least effective. However, its declared characteristics — a bitrate of 328 Kbps at a sampling frequency of 48 kHz — are not much inferior to many other codecs in the well-known table.

This codec uses a simple compression model based on adaptive pulse code modulation (APCM), which mainly suppresses quiet sounds to reduce the amount of data transmitted. Similar to the situation when someone whispers while recording, and at this time a balloon bursts, where the voice signal will be unavailable during the noise. Although the actual process is a little more complicated, the principle remains the same.

However, SBC has low computing power requirements and provides acceptable signal transmission delay. However, why does this codec get a bad reputation? Before answering this question, it is important to clarify a few more details about its operation. SBC splits the audio signal into frequency bands and performs frequency quantization. If the allocated bits are exhausted, the process is terminated and the high-frequency range is cut off.

This is not so bad, considering that in reality a person is rarely able to hear frequencies above 16 kHz. Most musical instruments and vocals have a range of around 3 kHz, although some sounds can go as high as 10 kHz. Reducing the bitrate in SBC leads to loss of high frequencies, which in turn can negatively affect sound quality. Therefore, the prejudice about SBC is related to its configurability, including the Bitpool parameter, which adjusts the bitrate and depends on several other parameters. The SBC codec does not have strict profiles, only recommendations that are used by most equipment manufacturers.

SBC encoder settings*Middle QualityHigh Quality
MonoJoint StereoMonoJoint Stereo
Sampling frequency (kHz)44.14844.14844.14844.148
Bitpool1918353331295351
Bitrate (Kbps)127132229237193198328345
*Other settings: Block length = 16, Allocation method = Loudness, Subbands = 8

When using the High Quality profile and a bitrate of 328 Kbps, the sound will be almost indistinguishable from uncompressed formats. Even when choosing Middle Quality, the sound quality remains quite acceptable. However, manufacturers rarely indicate SBC codec settings in the descriptions of their devices, which allows some unscrupulous developers to change these settings at their discretion.

This can lead to a situation where inexpensive headphones reduce the quality of the transmitted sound, and buyers, faced with this, can spread negative reviews about the low quality and “bassiness” of the SBC codec. However, on most devices, SBC provides fairly good signal quality.

However, it is worth remembering to dynamically change the Bitpool parameter in the SBC. If there are connection problems, it may be automatically lowered, which may temporarily reduce sound quality. This usually occurs within the Middle Quality profile parameters and may be due to radio congestion or communication problems. However, these changes are usually difficult to notice audibly, since the lower limit of quality usually remains acceptable.

AAC: Advanced, but with nuances

AAC (Advanced Audio Coding) is a computationally complex codec that uses complex psychoacoustic models. It not only removes some quiet sounds, but also takes into account the characteristics of human hearing, such as unequal sensitivity to different frequencies of sounds. A similar approach was used in MP3, but AAC represents an improved version of this model.

The developers of AAC claim that at a bitrate of 256 Kbps, their codec provides the same level of perceived sound quality as MP3 at 320 Kbps. Typically, on most devices, including Apple products, AAC uses a bitrate of 256 Kbps, although it theoretically supports higher values, up to 320 Kbps. This stable approach remains unchanged, especially on Apple devices.

It is worth noting that AAC is not proprietary to Apple, but the company has developed one of the best encoders — Apple AAC, which provides maximum sound quality for its devices. On Android devices the situation is slightly different. Although the Fraunhofer FDK AAC encoder is used in some cases, audio quality when using AAC on Android devices can vary significantly depending on the manufacturer. Sometimes SBC is preferred over AAC, especially when the encoding quality on Android devices is questionable.

aptX family: maximum stability

aptX, a favorite among Android users, is not a new codec that first appeared in the late 1980s. It is relatively simple and uses adaptive differential pulse code modulation to encode the difference between audio samples. This approach reduces latency, but may slightly reduce the efficiency of the codec. Qualcomm currently owns aptX and requires a fee to use it, so budget headsets are more likely to use standard codecs such as SBC and AAC.

aptX splits audio into 4 frequency bands and applies the same number of bits to them at all times. Unlike SBC, it cannot dynamically allocate resources, so it does not cut frequencies, but it can add quantization noise, which reduces the dynamic range of audio. However, the ADPCM coefficients were selected using real music material to minimize this effect.

aptX has fixed profiles that manufacturers cannot change. However, the codec continues to evolve. AptX HD appeared with an increased bitrate to 576 Kbps and aptX Low Latency (aptX LL) with a reduced latency to 50 ms. Later, aptX Adaptive appeared — a version with variable bitrate, which allows you to adapt to transmission conditions for maximum sound quality with a stable connection. This codec varies bitrates from 280 to 420 Kbps and has a latency of 50 to 80 ms depending on reception conditions.

“Audiophile” codecs and various rarities

The LDAC codec, originally created by Sony, was later integrated into AOSP and has been available in Android since version 8.0 Oreo. The main advantage is support for bitrates up to 990 Kbps (96 kHz/24 bits), which theoretically allows high-resolution playback of files. However, in practice, the question of the need for such “hires” is actively discussed, especially considering the difficulties of transmitting even a CD-quality stream without loss.

LDAC has operating modes including 44.1 kHz/16-bit operation. Many devices default to a minimum bitrate of 330 Kbps to ensure maximum connection stability. However, at a bitrate of 990 Kbps, the sound may begin to stutter, causing dissatisfaction among users. Some headphones allow you to switch between codecs, such as AAC and LDAC, to adjust call quality or audio quality.

The developers of the LHDC (HWA) codec announced a solution to the problem with communication quality when using high bitrates, offering support for bitrates of 400/560/900 Kbps. However, the quality in these modes is likely also limited. Huawei and Xiaomi have begun to actively support HWA in their devices, but there are still few reviews about it.

In addition, there are potential competitors such as the Samsung Scalable Codec, which is represented in devices from only one manufacturer, as well as the future codec — Low Complexity Communications Codec (LC3). The LC3, running on Bluetooth Low Energy Audio, promises to support bitrates up to 427 Kbps, reduce latency to 20 ms, and deliver quality comparable to a 345 Kbps SBC stream. However, its widespread adoption will take time.

Finally, the LC3 codec is considered as a potential replacement for the basic SBC codec, however, at the moment its implementation still has certain technical and time constraints.

Comparison with a specific example

Comparing codecs directly seems to be extremely difficult. In practice, available solutions for audio encoding using aptX and SBC are usually presented, however, for other codecs such comparisons remain unavailable. For such comparisons, you need a special device that supports a wide range of codecs and allows you to switch between them. It is important to consider that the design features of the device on which playback occurs may have a more significant impact on the sound than the selected codecs. Therefore, the comparison results should be considered as illustrations and not as general guidelines.

However, having one device and fixed other conditions, it is possible to compare the results of different codecs. It's important to note that most Bluetooth audio chips have a DSP (Digital Signal Processor) that can change equalization, add different sound effects, etc. to work with different codecs. The user experience when switching between codecs may depend on these DSP settings, and not just on the characteristics of the codecs themselves.

We will be using the FiiO BTR 5 Pocket DAC/Headphone Amplifier as our source device. But before starting a comparative analysis, it is necessary to check which codecs our device supports. To do this, we will use the Bluetooth Tweaker utility to record and subsequently analyze a traffic dump. Our list of codecs includes the most current ones today: SBC, AAC, aptX, aptX LL, aptX HD and LDAC. It is also worth noting that the maximum bitrate for AAC is 320 Kbps, and the maximum value for the Bitpool parameter of the SBC codec is 53.

We connect our “DAC amplifier” using a cable and get a predictably even frequency response graph.

The distortion level (THD) is within reasonable limits. Typically, measurements are made at a frequency of 1000 Hz, and this is the value indicated in the caption under the graph. It is clear that at lower frequencies the level of distortion is lower. Even at the highest frequency, distortion does not reach the potentially audible threshold. The primary source of distortion in a user's final audio system will most likely be the headphones or speakers rather than the amplifier or DAC.

Let's move on to consider wireless audio transmission using the first codec in comparison — SBC. We can see that the built-in DSP still appears to have an effect on the sound, even with processing turned off, which we had the option to turn off. The device seems to continue to make some audio «improvements» when using a wireless connection, despite our preferences. It should be noted that the unevenness of the frequency response appears noticeable due to the selected graph scale, although in fact the difference is only about 1.5 dB.

Let's look at distortion. We observe odd harmonics in the lower part of the spectrum, which is probably also due to the influence of the “improver”. Let's temporarily put aside our opinion on how necessary these improvements are and focus on comparing codecs. To do this, let's take the data obtained using SBC as a starting point and compare the remaining graphs with them.

But before that, let’s do one more small test: we’ll record a short sample of white noise and analyze the spectrogram of the resulting recording. It is clear that the signal transmitted through the SBC easily penetrates beyond the 20 kHz audibility threshold, despite the concerns of those who refer to it as «bassy and treble-cutting.» We will continue to analyze white noise recordings, but they represent only one side of the matter, so we will also try to conduct experiments with real musical material.

The next codec is AAC. And here we have news: the amplitude-frequency response (AFC) remained unchanged, but the signal was completely cut off after 16 kHz. Not a bad idea, considering that most of us can't actually hear sounds above this limit, and the available bitrate needs to be used as efficiently as possible. But being afraid to use SBC against this background is a little strange.

But the distortion graph in the middle part looks much smoother in the case of AAC. Once again, we draw your attention to the fact that we are talking about very “subtle matters” that can hardly be somehow registered by our extremely imperfect hearing.

White noise again, and the “shelf” at 16 kHz is absolutely clearly visible on the spectrogram. If possible, we will certainly check what happens when AAC works on Apple devices; the situation there may be slightly different.

The frequency response graphs when using SBC and aptX completely coincided. At this stage, we can safely say that the features of the device really make a much greater contribution to the sound than the codecs used.

Unexpectedly, “humps” appeared in the distortion at medium and high levels — this may probably be due to the quantization features discussed above.

In white noise we see some unevenness in the high frequencies, but far, far beyond the audible range.

Predictably, nothing changed with the switch to aptX LL: as mentioned above, the entire aptX family is one codec with different settings.

Codecs operate in the same mode under the same conditions, which leads to identical results. However, the conditions do seem to be fixed, meaning that if a device processes a signal transmitted over Bluetooth, it does so consistently, regardless of the codec used. This allows us to make comparisons of results, despite the caveats described.

The situation with white noise is the same, there’s not much to comment on here, we saw almost the same picture above.

When using aptX HD, the frequency response graph practically does not change, which once again brings us back to the idea that SBC is not as terrible as it is made out to be.

But with distortions, everything is more interesting: the graph looks smoother than that of the basic aptX. It is likely that an increase in bitrate leads to a decrease in the amount of quantization noise.

The white noise spectrogram at the top also looks a little neater, but it’s difficult to talk about this seriously, since the spectrum under discussion is far beyond the audible range.

And finally, His Majesty LDAC. We immediately notice that it transmits the HF range better. If suddenly someone hears frequencies above 16 kHz well, this is a reason to prefer it.

The distortion graphs have become more interesting. In this case, the “humps” of odd harmonics in the lower mids and beyond look especially out of place.

On the noise spectrogram, everything is again great, although some users may pretend to be bats and report that the real “highrez” should have “reached” higher. But you and I are people — we don’t really need it.

However, white noise will not give the full picture, so it is necessary to test the codecs on real music material. To do this, we created a «test sample» based on the performance of the first number of Karl Off's cantata «Carmina Burana» called «O Fortuna!» In this composition, the choir starts out singing with restrained support from the orchestra, and then almost all the instruments are included, and high-pitched cymbal sounds are added towards the end. This track selection will help test how the codecs will handle different aspects of the music composition. We take three excerpts from the composition and put them side by side for further analysis. Below is a spectrogram of the original file.

First of all, we connect our device via USB — just for reference. The picture hardly changes.

USB

USB

Next, we will use all the codecs available to us and place all the resulting spectrograms one below the other, so that it is convenient to flip them back and forth and compare them.

SBC
AAC
aptX
aptX LL
aptX HD
LDAC

As you can see, the differences between the presented codecs are minimal. All codecs showed good results, even with added distortion from the device, which is not as harsh to the ear as it might seem based on the graphs alone. It is important to note that the main source of distortion in any case is headphones or speakers. To demonstrate this fact, here are a couple of additional graphs obtained using the same LDAC codec, but with different types of headphones connected — full-size on the left and planar IEM on the right. This once again illustrates that the main distortions occur at the level of playback devices, and not at the codec side.

Results

If your goal is to obtain maximum sound quality for analytical listening to music in lossless formats, then it is better to give preference to a cable connection — this is a more reliable method of transmitting an audio signal. Despite the promises of “audiophile” codecs about high sound quality, in practice their improvements are barely noticeable, most often they appear more in graphs than in real listening. Some may take a different view and insist on using «hires». However, it is important to remember that using advanced codecs can bring some unpleasant surprises — from connection problems and increased latency to the activation of profiles with lower bitrates by default.

In general, it is recommended to choose reliable devices from reputable manufacturers, as they usually include the desired codecs with the correct settings. It's important to note that there are no uniquely bad or incorrect codecs — even SBC is not as bad as people usually think. The difference lies more in how these codecs are supported on specific hardware. However, if your goal is simply to enjoy music while working out or on the go, you can feel free to choose a wireless connection and not think too much about which codec is used.