A guide to earbud audio quality


Will lossless Bluetooth audio be standard in the future?

A guide to earbud audio quality

Ryan McLeod / Android Authority

While historical Bluetooth codecs have been lossy, lossless wireless audio is already out of the bag. It’s currently available as part of the Snapdragon Sound platform. The ASUS Zenfone 9, for example, currently supports this, and other phones with the latest Snapdragon processors and certified radio capabilities will work with aptX Lossless too. Earbuds must use the Snapdragon S3 and S5 chips to receive aptX Lossless. The NuraTrue Pro Wireless are the first earbuds with aptX Lossless.

At the end of 2022, OPPO announced a new Bluetooth audio SoC that can transmit 24-bit/192kHz lossless audio. This news also included the ultra-resolution lossless codec (URLC). We expect the new SoC and URLC in a future round of OPPO flagships. Further, the Nothing Ear 2 supports LHDC 5.0 for 24-bit/192kHz audio at 1Mbps. Again, you’ll need a smartphone that supports LHDC to stream over this codec.

Lossless Bluetooth audio is still in its infancy; as you can see, few products support this today. However, lossless audio will become more prevalent in the coming years.

Bluetooth 5, Classic и Low Energy

Вокруг спецификаций и версий Bluetooth возникла большая путаница из-за наличия двух несовместимых стандартов под одним брендом, оба из которых широко применяются для разных целей.

Существует два разных, не совместимых между собой протокола Bluetooth: Bluetooth Classic и Bluetooth Low Energy (LE, он же Bluetooth Smart). Ещё есть третий протокол, Bluetooth High Speed, но он не распространён, и не используется в бытовых устройствах.

Начиная с Bluetooth 4.0, изменения в спецификации касались преимущественно Bluetooth Low Energy, а Classic-версия получала только незначительные улучшения.

Список изменений между Bluetooth 4.2 и Bluetooth 5:

9 CHANGES FROM v4.2 TO 5.0


Several new features are introduced in the Bluetooth Core Specification 5.0 Release. The major areas of improvement are:
• Slot Availability Mask (SAM)
• 2 Msym/s PHY for LE
• LE Long Range
• High Duty Cycle Non-Connectable Advertising
• LE Advertising Extensions
• LE Channel Selection Algorithm #2
9.1.1 Features Added in CSA5 — Integrated in v5.0
• Higher Output Power

Только одно изменение коснулось Classic-версии в рамках спецификации Bluetooth 5: добавили поддержку технологии Slot Availability Mask (SAM), призванную улучшить разделение радиоэфира. Все остальные изменения затрагивают только Bluetooth LE (и Higher Output Power тоже).

Все аудиоустройства используют только Bluetooth Classic. Наушники и колонки подключить через Bluetooth Low Energy невозможно: не существует стандарта передачи аудио с использованием LE. Стандарт A2DP, применяемый для передачи высококачественного аудио, работает только через Bluetooth Classic, и аналога в LE ему не существует.

Вывод — приобретать аудиоустройства с Bluetooth 5 только из-за новой версии протокола бессмысленно. Bluetooth 4.0/4.1/4.2 в контексте передачи аудио будет работать точно так же.
Если анонс новых наушников упоминает удвоенный радиус работы и уменьшенное энергопотребление благодаря Bluetooth 5, то знайте — они либо сами не разбираются, либо вводят вас в заблуждение. Немудрено, ведь даже производители Bluetooth-чипов в своих анонсах путаются в отличиях новой версии стандарта, а некоторые Bluetooth 5-чипы поддерживают пятую версию только для LE, а для Classic используют 4.2.

What is a Bluetooth codec?

A guide to earbud audio quality

Lily Katz / Android Authority

A Bluetooth audio codec is a digital encoder and decoder that compresses audio data as it’s transferred from your phone to your wireless earbuds. Ideally, a source device (e.g. a smartphone) will send a high-fidelity audio signal to the receiver (e.g. earbuds) without dropping the connection.

Before we go further, here are some audio terms you will want to familiarize yourself with:

When checking out your buds’ Bluetooth codec specs, don’t get too caught up in the “bigger is better” mentality. Humans cannot perceive anything above 16-bit/44.1kHz audio; we can only register that if we have perfect hearing. Considering hearing abilities decrease with age, it’s likely that you and I have some damaged stereocilia. On top of that, these high-bitrate Bluetooth codecs (24-bit or greater) are not always lossless. For now, most of us are stuck with lossy audio because of Bluetooth’s current bandwidth limitations.

Limited human hearing aside, transferring more data also risks creating an unstable connection. There may be a greater chance of interference if you’re in a busy area full of other people using wireless earbuds. A lower bitrate offers more connectivity headroom but also means the audio file is more compressed than a high bitrate file, but not all compression is equal.

When shopping for Bluetooth codecs, remember human hearing has its limits. Sometimes a stable connection is better than the highest bitrate.

Then there’s the issue of Bluetooth latency. Years ago, there was a marked variation between popular smartphones and their Bluetooth latency measurements. According to data from Google, the average latency of the most popular Android devices was 109ms in 2017 but the most popular phones in 2021 averaged 39ms. This is quite an improvement as most people can’t perceive latency less than 20ms, but latency is something to keep in mind, particularly for gaming.

Can you hear a difference between Bluetooth codecs like LDAC and SBC?

A guide to earbud audio quality

Well, yes and no. If you suffer from noise-induced hearing loss or are listening in a particularly noisy environment, you’ll unlikely discern the differences between LDAC (990kbps) and SBC — or any other options. That said, high-quality codecs have more benefits than sound quality, namely responsiveness and connection stability. If you’ve skipped a track via your headphones’ onboard controls only to wait a second before the next song began playing, your device was probably streaming over SBC. This lag can be so dramatic that it sullies late-night show hosts’ jokes, revealing the punchline a second in advance. Granted, compensation is built in to keep video and audio in sync. This preemptive calculation doesn’t completely negate skips and hiccups, though.

Проблемы устройств, сертификации и логотипов Bluetooth

Как отличить качественное аудиоустройство от дешёвой поделки? По внешнему виду, прежде всего!

У дешевых китайских наушников, колонок и ресиверов:

Отсутствие этих элементов говорит о том, что устройство не проходило сертификацию, а значит — потенциально проблемное или низкокачественное. Например, наушники фирмы Bluedio не сертифицированы Bluetooth, и не полностью соответствуют спецификации A2DP. Сертификацию они бы не прошли.

Рассмотрим несколько устройств и коробок от них:

A guide to earbud audio quality

A guide to earbud audio quality

Это всё — несертифицированные устройства. В инструкции может быть логотип и название технологии Bluetooth, но самое главное — чтобы они были на коробке и/или самом устройстве.

Если ваши наушники или колонка говорят «Ze bluetooth dewise is connecteda successfulle», это тоже не говорит об их качестве:

What are the available Bluetooth audio codecs?

There are many Bluetooth codecs, including SBC, Qualcomm’s aptX suite, AAC, LHDC/LLAC, Samsung’s Seamless and Scalable Codecs, Sony LDAC, and LC3. All Bluetooth codecs require end-to-end support, meaning your phone and earbuds must use the same codec. Let’s go over each one.

SBC (Low-complexity sub-band codec)

All Bluetooth audio devices must support SBC. While SBC’s audio quality isn’t the best, its universal support guarantees that your phone can “talk” to your earbuds, headphones, or speakers. S BC data transfer speeds top out at 345kbps at 16-bit/48kHz.

Qualcomm aptX, aptX HD, aptX Adaptive, aptX LL

A guide to earbud audio quality

Robert Triggs / Android Authority

Then there’s Qualcomm’s host of proprietary aptX codecs: aptX, aptX Adaptive, aptX Lossless, aptX Low Latency, and aptX HD. This suite of codecs is licensed out to many Android devices, and listeners seek out aptX codecs for better audio quality and lower latency than SBC. Apple’s iPhones lack aptX, and no Pixel phone currently supports aptX Adaptive.

For slightly higher audio quality than SBC, pick up a pair of aptX headphones. aptX alone supports 16-bit/48kHz audio data (352kbps). aptX Adaptive scales the bitrate from 279-420kbps as you listen, which is great for connection stability. This codec is more efficient than HD or Low Latency and always attempts to deliver the best audio quality and connection strength. aptX Adaptive’s optimal performance reaches 24-bit/96kHz.

aptX Adaptive combines the capabilities of aptX HD and aptX Low Latency.

aptX Lossless is technically an extension of aptX Adaptive and is available with Snapdragon Sound devices. You get 1.2Mbps lossless audio playback maxing out at 16-bit/44.1kHz. aptX Lossless dynamically scales from 120kbps to 1.2Mbps. You can stream lossy audio at 96kHz too. Curious readers can view a live list of phones and earbuds that support Snapdragon Sound.

Then we have aptX HD and aptX Low Latency (LL). With aptX LL, you can enjoy a mere 40ms of latency, ideally for gaming and live broadcast environments. It is a 16-bit/48kHz codec with a max bitrate of 353kbps. aptX HD streams up to 24-bit/96kHz audio at 576kbps. Unlike the Adaptive codec, aptX HD is not variable.

AAC (Advanced audio coding)

A guide to earbud audio quality

AAC is everywhere and is almost as predominant as SBC. This is the best audio codec for iPhone owners and uses lossy digital compression. A AC is a 16-bit Bluetooth audio codec with a max sample rate of 44.1kHz and 250kbps bitrate. Although Android supports AAC, its performance is historically underwhelming because of inconsistent streaming quality. Your mileage may vary depending on your Android smartphone when streaming over AAC.

SSC (Samsung Seamless Codec)

A guide to earbud audio quality

Galaxy Buds 2 Pro.

The Samsung Seamless Codec is limited to Samsung devices. Like the beloved aptX Adaptive codec, these codecs are variable (88-512kbps). In 2022, Samsung updated and renamed the Samsung Scalable Codec to the Samsung Seamless Codec. The two biggest changes include an increased bit-depth from 16-bit to 24-bit and an increased sample rate (44.1kHz to 48 kHz).

Unlike aptX Adaptive, these codecs only work with Samsung Galaxy Buds paired to a compatible Samsung device. To enjoy the Seamless Codec, you’ll need a pair of Galaxy Buds and a phone running One UI 3.0 or later. The only way to hear the Seamless Codec’s 24-bit audio playback is to pair the Buds 2 Pro with a Samsung device running One UI 4.0 or later.


A guide to earbud audio quality

Adam Molina / Android Authority

Sony’s LDAC supports 24-bit/96kHz audio and has a variable bitrate with three switchable modes: 990kbps, 660kbps, and 330kbps. Historically, the two highest bitrates lost fidelity above 20kHz, so they are only so useful for Hi-Res playback but are still considered good-quality overall.

LDAC 330kbps tends to be more stable than the 660kbps and 990kbps options but does offer lower sound quality. Therefore, many devices will default to the 330kbps mode. This is particularly true in congested listening environments. You can force the higher bitrate options through your Android phone’s Developer Options.

Upon its release, LDAC was a rare Bluetooth audio codec reserved for only the premier headphones and earbuds. Nowadays, some more budget-friendly earbuds even support LDAC. L DAC is incorporated in Android AOSP, meaning virtually all smartphones support the technology.

LHDC, LHDC-V, and LLAC codecs

A guide to earbud audio quality

Ryan Haines / Android Authority

Developed by the Hi-Res Wireless Audio (HWA) Union and Savitech, the low latency HD audio codec (LHDC) functions like Sony’s LDAC. It’s another 24bit/96kHz lossy codec that can transmit 900kbps audio. Most devices running Android 10 or later can use LHDC. We first saw LHDC on Android 10, but some smartphones, like Samsung Galaxy and Google Pixel phones, don’t have it. Announced in December 2022, LHDC-V (aka LHDC 5.0) ups the audio resolution to 24-bit/192kHz at 1Mbps.

Another HWA codec: the low-latency audio codec (LLAC/LHDC LL), is a viable alternative to LHDC. It has very low latency (30ms) and supports 400/600kbps bitrates at up to 24-bit/48kHz.

Bluetooth LE Audio LC3 codec

A guide to earbud audio quality

The Bluetooth LC3 audio codec greatly improves efficiency and benefits SBC streaming.

Bluetooth Low Energy (LE) Audio begets the Low Complexity Communication Codec (LC3), which is all about efficiency and stability. L C3 can compress 345kbps data streams to 160kbps. This is more efficient than the old SBC standard, which compresses 345kbps to 240kbps. Not only does LC3 preserve more audio data than SBC, but it’s also more efficient. Like aptX Adaptive and Samsung’s codecs, LC3 is a scalable codec that adjusts the bitrate to maintain a stable connection.

With Auracast, LE Audio benefits the hard-of-hearing community. Those with hearing aids can directly stream audio from the source — like how you stream audio from a phone to earbuds — rather than hear it through the microphones in their hearing aids.

Bluetooth’s own LC3 provides better audio quality than SBC and is more efficient.

For LE Audio, you must have a compatible device with Bluetooth 5.2. The LC3 codec will be mandatory for all LE Audio products. However, Classic Audio and LE Audio will be able to work together on a single handset. Android 13 added support for Bluetooth LE Audio in 2022. Now earbuds come with LC3 support like the OnePlus Buds Pro 2. Bluetooth LE Audio and LC3 aren’t perfect, though, and we have a ways to go until they’re ubiquitous.


The MPEG-1/2 Part 3 family of codecs consists of the well-known and widely used MP3, the less common MP2 (used mainly in digital TV and radio), and the completely unknown MP1.

The old MP1 and MP2 codecs are not supported at all: I couldn’t find any headphones or any Bluetooth stack that encodes or decodes them.
MP3 decoding is supported by some headphones, but encoding is not supported on any stack of modern operating systems. It seems that the third-party BlueSoleil stack for Windows can encode to MP3 if you manually change the configuration file, but installing it leads to BSoD on Windows 10 for me. The conclusion is that the codec cannot actually be used for Bluetooth audio.
Previously, in 2006-2008, before the A2DP standard was widespread in devices, people listened to MP3 music on the Nokia BH-501 headset through the MSI BluePlayer program, which was available on Symbian and Windows Mobile. At that time, the smartphone OS architecture allowed access to many low-level functions, and third-party Bluetooth stacks could be installed on Windows Mobile at all.

The latest patent of the MP3 codec has expired, the use of the codec is royalty-free since April 23, 2017.

Bluetooth and audio codecs

So, the final sound is now more influenced not by the Bluetooth version, but by what audio codec is used when transmitting sound. In essence, a codec here refers to a complex algorithm for processing (encoding / decoding) audio data to send it wirelessly between your devices. The use of a codec is necessary because the less data transmitted over Bluetooth, the more reliable the connection and the less likely your headphones will lose signal in the middle of your favorite track.

All current Bluetooth codecs work “lossy” (lossy), they discard part of the audio data, reducing the audio data rate (bit rate), for example, from CD-quality at a speed of 1411 kilobits per second to about 300~900 kbps / c (we will talk about what Lossy and Lossless are separately next time).

Another characteristic that distinguishes codecs is latency. The time required for the digital signal processor to decode the encoded audio. High audio latency creates problems with synchronization when watching video.

As in the case of the BT version, for the codec to work, it is important that it is supported not only by headphones or acoustics, but also by a sound source – a phone, player or computer.

Standard for Bluetooth is SBC. This codec can operate at data rates up to 345 kilobits per second. If the source and destination devices can handle high bit rate audio, the audio quality is hard to distinguish from AAC or standard aptX quality. But with the delay can exceed 100 milliseconds or more, which creates problems with sound synchronization when watching a video.

However, by the end of 2020, the new Bluetooth codec LC3 should replace the SBC. The Bluetooth SIG announced the successor to the SBC at CES 2020. L C3 is used in the LE Audio protocol based on the Bluetooth 5.2 core specification (our LC3 material from CES 2020).

Ok, LC3 is our future, what’s going on in the present? Let’s take a quick look at the SBC alternatives presented today.

So let’s summarize

The modern version of the A2DP standard has the function of “absolute volume control” – controlling the device volume with special AVRCP protocol commands, which adjusts the gain of the output stage, instead of software reducing the volume of the audio stream. If when you change the volume on the headphones, the change does not sync with the volume on the phone, then this means that your headphones or phone do not support this function. In this case, it makes sense to always listen to music at maximum volume on the phone, adjusting the actual volume with the headphone buttons – in this case, the signal-to-noise ratio will be better, and the audio quality should be higher.
In reality, there are sad situations. I have a strong compander on my RealForce OverDrive D1 headphones for SBC, and increasing the volume leads to an increase in the level of quiet sounds, while the volume of loud sounds does not change (the signal is compressed). Because of this, you have to set the volume on the computer to about half, in this case there is practically no compression effect.
According to my observations, all headphones with additional codecs support the absolute volume control function, apparently this is one of the requirements for codec certification.

Some headphones support connecting two devices at the same time. This allows you, for example, to listen to music from your computer and receive calls from your phone. However, you should be aware that in this mode, alternative codecs are disabled, and only SBC is used.

The AVDTP 1.3 Delay Reporting feature allows the headphones to report the delay to the transmitting device at which audio is actually played. This allows you to adjust the synchronization of audio with video while watching video files: if there are problems with transmission over the air, the audio will not lag behind the video, but on the contrary, the video will be slowed down by the video player until the audio and video are synchronized again.
The feature is supported by many headphones, Android 9+ and Linux with PulseAudio 12.0+. I am not aware of the feature’s support on other platforms.

Other codecs

Other A2DP codecs are not widely used. Their support is either almost completely absent, or available only on certain models of headphones and smartphones.
The ATRAC codec standardized in A2DP has never been used as a Bluetooth codec even by Sony themselves, the Samsung HD, Samsung Scalable and Samsung UHQ-BT codecs have very limited support from transmitting and receiving devices, and HWA LHDC is too new and is supported by only three(?) devices.

Top Bluetooth audio codec questions and answers

If you have an iPhone, you don’t have aptX support, so AAC is your best bet. If you have an Android phone, aptX can offer higher-quality audio than AAC.

Under ideal conditions, you’ll get higher bitrates from LDAC than aptX. That said, you may notice more latency with LDAC compared to aptX.

This depends on your handset. A AC consistently transmits high-quality audio on iPhones, but this hasn’t historically been the case across Android hardware. Depending on your Android phone, SBC can actually be more reliable and high-quality than AAC.

A wide range of Android devices support Qualcomm’s aptX codecs, unlike Samsung’s proprietary codecs that require a Samsung handset and buds. aptX Adaptive is one of the best Bluetooth codecs for Android because it supports high transmission rates and dynamically adjusts the audio transfer rates to maintain good connection stability.

If you have a Samsung phone running One UI 3.0 or later, you can use the Samsung Scalable Codec with a pair of Samsung Galaxy Buds. If you have a phone running One UI 5.0 or later and the Galaxy Buds 2 Pro, you can use the 24-bit Seamless Codec. If you don’t have Samsung Galaxy Buds but a Samsung phone, aptX or LDAC will be your best bet.

Something else to be aware of is psychoacoustics. This is the study of how humans perceive sound and is profoundly complicated. To abbreviate the matter: a psychoacoustic model is applied to digital media. It determines what data points can be compressed or deleted without notable sound quality degradation. If you want to impress your friends at Wednesday night trivia, tell them how psychoacoustics held the door for the MP3 format and compression, which has influenced subsequent audio formats.

Bluetooth versions

Bluetooth has improved dramatically over the years since the turn of the century, and audio compression today is not as crude as it was in the days of Bluetooth 1.1 or 2.0 (when wireless headsets and headphones first hit the market). Let’s highlight the main technical differences between Bluetooth versions, devices with which can be found on sale today.

As you can see, the new versions mainly address the issues of data transfer speed and power efficiency, rarely affecting sound quality directly. However, newer versions may improve data transfer reliability, which may allow a heavier codec such as aptX HD or LDAC to run at higher bit rates.

Recall that for a certain version of Bluetooth to work, both devices must support it. That is, if your smartphone has Bluetooth 5.1, and your headphones have 4.2, then Bluetooth 4.2 will be used for connection.

Bluetooth audio codec specifications

A new and actively promoted “Hi-Res” codec from Sony that supports sampling rates up to 96 kHz and 24-bit bit depth, with bit rates up to 990 kbps. Advertised as an audiophile codec, as a replacement for existing Bluetooth codecs. It has the function of adaptive adjustment of the bitrate, depending on the radio conditions.

The LDAC encoder (libldac) is included in the standard distribution of Android, so encoding is supported on any Android smartphone starting from OS version 8. There are no freely available software decoders, the codec specification is not available to the general public, however, at first glance at the encoder, the internals are similar to ATRAC9, the Sony codec used in the PlayStation 4 and Vita: both operate in the frequency range, use a modified discrete cosine transform (MDCT) and compression using the Huffman algorithm.
LDAC uses a division into 12 or 16 frequency bands: 12 is used for 44.1 and 48 kHz, 16 for 88.2 and 96 kHz.

LDAC support is represented almost exclusively by Sony headphones. The ability to decode LDAC is sometimes found on headphones and DACs from other manufacturers, but very rarely.

Marketing LDAC as a Hi-Res codec harms its technical component: it is foolish to spend bitrate on transmitting frequencies that are not audible to the human ear and increased bit depth, while it is not enough to transmit CD quality (44.1/16) without loss. Fortunately, the codec has two modes of operation: CD audio transmission and Hi-Res audio transmission. In the first case, only 44.1 kHz/16 bits are transmitted over the air.

Since the software LDAC decoder is not freely available, it is impossible to test the codec without additional devices that decode LDAC. According to the results of the LDAC test on a DAC with its support, which the engineers of the site SoundGuys.com connected via a digital output and recorded the output sound on test signals, LDAC 660 and 990 kbps in CD-quality mode provides a signal-to-noise ratio slightly better than that of aptX HD. This is a good result.

LDAC also supports dynamic bitrate outside of established profiles – from 138 kbps to 990 kbps, but as far as I can tell, Android only uses standardized profiles 303/606/909 and 330/660/990 kbps .

Comparison of codecs. Which codec is better?

Each codec has its advantages and disadvantages.
aptX and aptX HD use hard-coded profiles that cannot be changed without modifying the encoder and decoder. Neither the phone manufacturer nor the headphone manufacturer has the power to change the bitrate or aptX encoding factors. The owner of the codec, Qualcomm, provides a reference encoder as a library. These facts are the strength of aptX – you know in advance what sound quality you will get, without any “buts”.

SBC, on the other hand, has many configurable parameters, dynamic bitrate (the encoder can reduce the bitpool parameter if the radio is loaded), and does not have hard-coded profiles, but only the recommended “medium quality” and “high quality” that have been added to the A2DP specification in 2003. “High quality” is not that high by today’s standards, and most Bluetooth stacks do not allow you to use settings better than the “high quality” profile, although there are no technical restrictions for this.
The Bluetooth SIG does not have a reference SBC encoder in the form of a library, and manufacturers implement it themselves.
These are the weaknesses of the SBC – it is never clear in advance what sound quality to expect from a particular device. S BC can produce both low and very high sound quality, but the latter is unattainable without disabling or bypassing the artificial limitations of Bluetooth stacks.

The situation with AAC is ambiguous: on the one hand, theoretically, the codec should produce quality that is indistinguishable from the original, but in practice, judging by the tests of the SoundGuys laboratory on various Android devices, this is not confirmed. Most likely, the fault lies with low-quality hardware audio encoders built into various phone chipsets. It makes sense to use AAC only on Apple devices, and on Android, limit yourself to aptX and LDAC.

Hardware that supports alternative codecs is usually of higher quality, simply because it doesn’t make sense for very cheap low quality devices to pay royalties to use these codecs. In my tests, the SBC sounds very good on quality hardware.

I made a web service that encodes audio in SBC, aptX and aptX HD in real time, right in the browser. With it, you can test these audio codecs without actually transmitting audio via Bluetooth, on any wired headphones, speakers, and your favorite music, as well as change encoding parameters right during audio playback:
The service uses the SBC coding libraries from the BlueZ project and libopenaptx from ffmpeg, which are compiled to WebAssembly and JavaScript from C, via emscripten, to run in the browser. Who could dream of such a future!

This is what it looks like:

Your browser does not support HTML5 video.

Notice how the noise level changes after 20 kHz for different codecs. There are no frequencies above 20 kHz in the original MP3 file.

Try switching codecs and see if you can hear the difference between the original, SBC 53 Joint Stereo (the default and most common profile), and aptX/aptX HD.

Bi-directional communication via Bluetooth. Voice transmission.

Bluetooth voice transmission uses Synchronous Connection Oriented (SCO) and its improved version Enhanced Synchronous Connection Oriented (eSCO) – synchronous transmission with preliminary connection negotiation. The mode allows you to transmit sound and voice strictly in order, with a symmetrical sending and receiving speed, without waiting for transmission confirmation and resending packets. This reduces the overall audio transmission delay over the radio channel, but imposes serious restrictions on the amount of data transmitted per unit of time and adversely affects the audio quality.
When this mode is used, both the voice from the microphone and the audio to the headphones are transmitted with the same quality.
The transmission of the data itself is standardized by the HSP profile, which also describes additional functions, such as the operation of the volume buttons, pick up the handset and hang up.
Unfortunately, as of 2019, Bluetooth voice quality is still poor, and it’s unclear why the Bluetooth SIG does nothing about it.


The basic CVSD speech codec was standardized in 2002 and is supported by all Bluetooth bidirectional devices. It provides audio transmission with a sampling rate of 8 kHz, which corresponds to the quality of conventional wired telephony.

Example of recording in this codec.


The optional mSBC codec was standardized in 2009, and in 2010 there were already chips using it for voice transmission. m SBC is widely supported by various devices.
This is not an independent codec, but a regular SBC from the A2DP standard, with a fixed encoding profile: 16 kHz, mono, bitpool 26.

Not brilliant, but much better than CVSD, but it’s still annoying to use it to chat over the Internet, especially when you use headphones to chat in a game – the sound of the game will also be transmitted at a sample rate of 16 kHz.


CSR decided to develop the idea of ​​reusing SBC. To get around the limitations of the SCO protocol and use higher bitrates, CSR went the other way – they introduced support for two-way SBC audio into the A2DP one-way audio transmission standard, standardized encoding profiles, and called it “FastStream”.

FastStream sends 44.1kHz or 48kHz stereo audio at 212kbps to the speakers, while 16kHz mono audio at 72kbps is used for microphone audio (slightly better than mSBC). Such parameters are much better suited for communication in online games – the sound of the game and interlocutors will be of high quality.

An example of recording in this codec (+ sound from a microphone, the same as mSBC).

The company came up with an interesting crutch, but due to the fact that it contradicts the A2DP standard, its support is only in some of the company’s transmitters (which work as a USB audio card, not a Bluetooth device), but support in Bluetooth stacks he did not, although the number of FastStream-enabled headphones is not so small.

At the moment, FastStream support in the OS is only available as a patch for Linux’s PulseAudio from the developer Pali Rohár, which is not included in the main branch of the program.

AptX Low Latency

Surprisingly, aptX Low Latency also supports bi-directional audio, implementing the same principle as FastStream.
You won’t be able to use this feature of the codec anywhere – there is no support for Low Latency decoding in any OS and in any Bluetooth stack I know.

Music via Bluetooth

The functional component of Bluetooth is set by profiles – specifications of specific functions. Music transmission in Bluetooth is carried out using the A2DP high-quality unidirectional audio transmission profile. The A2DP standard was adopted in 2003 and has not changed dramatically since then.
The profile standardizes 1 mandatory codec of low computational complexity SBC, created specifically for Bluetooth, and 3 additional ones. It is also allowed to use undocumented codecs of your own implementation.

As of June 2019 we are in xkcd comic with 14 A2DP codecs:

Why do you need codecs at all, you ask, when Bluetooth has EDR, which allows you to transfer data at speeds of 2 and 3 Mbps, and 1.4 Mbps is enough for uncompressed two-channel 16-bit PCM?

A codec required for all devices that support the A2DP standard. The best and worst codec at the same time.

SBC is a simple and computationally fast codec, with a primitive psychoacoustic model (only soft sounds masking is applied), using adaptive pulse code modulation (APCM).
The A2DP specification recommends two profiles for use: Middle Quality and High Quality.

A guide to earbud audio quality

The codec has many settings that allow you to control the algorithmic delay, the number of samples in a block, the bit distribution algorithm, but the same parameters recommended in the specification are almost universally used: Joint Stereo, 8 frequency bands, 16 blocks in an audio frame, distribution method Bit Loudness.
The SBC supports dynamically changing the Bitpool parameter, which directly affects the bitrate. If the radio is clogged, packets are lost, or the devices are far away, the audio source may decrease the Bitpool until the link returns to normal.

Most headphone manufacturers set the maximum Bitpool value to 53, which limits the bitrate to 328 kbps when using the recommended profile.
Even if the headphone manufacturer has set the maximum Bitpool value above 53 (such models are found, for example: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, also happens on some receivers and car head units), then most operating systems will not allow you to use increased bitrates due to set internal value limit in Bluetooth stacks.
In addition, some manufacturers set a low maximum Bitpool value for some devices. For example, for Bluedio T it is 39, for Samsung Gear IconX it is 37, which gives poor sound quality.

Artificial restrictions on the part of Bluetooth stack developers most likely arose due to the incompatibility of some devices with large Bitpool values ​​or atypical profiles, even if they reported support for them, and insufficient certification tests. It was easier for the authors of the Bluetooth stacks to confine themselves to agreeing on the recommended profile, and not to create bases of incorrect devices (although they now do this for other incorrectly working functions).

The SBC dynamically allocates quantization bits for the frequency bands in a bottom-to-top fashion with different weights. If the entire bitrate was used for the lower and middle frequencies, the upper frequencies will be “cut off” (there will be silence instead).

ZZ Top – Sharp Dressed Man

The spectrogram shows the moment of switching: SBC periodically cuts quiet sounds above 17.5 kHz, and does not allocate bits for the band above 20 kHz at all. The full spectrogram is available by click (1.7 MB).

I can’t hear the difference between original and SBC on this track.

Let’s take something newer and simulate the audio that would be obtained when using Samsung Gear IconX headphones with Bitpool 37 (top – original signal, bottom – SBC 239 kbps, audio in FLAC).

Mindless Self Indulgence — Witness

I hear crackling, less stereo effect and an unpleasant “clatter” of vocals in high frequencies.

Although SBC is a very flexible codec, it can be tuned for low latency, gives excellent audio quality at high bitrates (452+ kbps) and is quite good for most people at standard High Quality (328 kbps), from – due to the fact that the A2DP standard does not set fixed profiles (but only gives recommendations), stack developers have set artificial restrictions on Bitpool, the parameters of transmitted audio are not displayed in the user interface, and headphone manufacturers are free to set their own settings and never specify the Bitpool value in technical characteristics of the product, the codec became famous for its poor sound quality, although this is not a problem of the codec as such.
The Bitpool parameter directly affects the bitrate only within one profile. The same value of Bitpool 53 can give both a bitrate of 328 kbps with the recommended High Quality profile, and 1212 kbps with Dual Channel and 4 frequency bands, which is why the authors of the OS, in addition to the restrictions on Bitpool, set a limit and on Bitrate. As I see it, this situation arose due to a flaw in the A2DP standard: it was necessary to negotiate the bitrate, not Bitpool.

Support table for SBC features in different operating systems:

* Bitpool only decreases, but does not increase automatically, in case of improved transfer conditions. To restore Bitpool, you need to stop playback, wait a couple of seconds, and restart the audio.
** The default value depends on the stack settings specified when compiling the firmware. In Android 8/8.1, the frequency is only either 44.1 kHz or 48 kHz, depending on the settings during compilation, in other versions, 44.1 kHz and 48 kHz are supported simultaneously.
*** The Bitpool value can be raised in the Bluetooth Explorer program.

The low latency version of aptX is not an independent codec, but differs only in the delay and buffer settings that are applied on the side of the audio device. Otherwise, it’s just plain aptX.
The codec is intended for interactive transmission of audio with low latency (movies, games), where the audio delay cannot be adjusted by software. A software implementation is available as a Dell driver for Intel Bluetooth chips. Also supported by transmitters, receivers, headphones and speakers, but not smartphones.

AAC, or Advanced Audio Coding, is a computationally complex codec with a serious psychoacoustic model. It has become widespread for audio on the Internet, the second most popular after MP3. Requires licensing and royalties: $15,000 lump sum (or $1,000 for companies with fewer than 15 employees) + $0.98 for the first 500,000 devices (source).
The codec is standardized within the MPEG-2 and MPEG-4 specifications, and contrary to common misconception, does not belong to Apple.

* only on devices whose manufacturers have paid royalties

iOS and macOS use Apple’s best AAC encoder to date for the highest possible audio quality. Android uses the second best quality Fraunhofer FDK AAC encoder, but may use various hardware built into the platform (SoC) with unknown encoding quality. According to recent tests by SoundGuys, the quality of AAC encoding varies greatly between different Android phones:

Most wireless audio devices for AAC have a maximum bit rate of 320Kbps, some only support 256Kbps. Other bitrates are extremely rare.
AAC provides excellent quality at 320 and 256 kbps, but suffers from serial encoding loss of already compressed content, however, it is difficult to hear any differences with the original on iOS at 256 kbps even with several consecutive encodings, with a single encoding eg 320kbps MP3 to 256kbps AAC is negligible.
As is the case with other Bluetooth codecs, any music is first decoded, then encoded by the codec. When listening to music in AAC format, it is first decoded by means of the OS, then encoded into AAC again, for transmission via Bluetooth. This is necessary for mixing multiple audio streams such as music and new message notification. iOS is no exception. There are many claims on the Internet that on iOS, AAC music is not transcoded when transferred via Bluetooth, which is not true.

There are many extensions to the standard encoding method in the AAC standard. One of them – Scalable To Lossless (SLS) – is standardized for Bluetooth and allows you to transmit lossless audio (lossless). Alas, on real devices, extension support is not found. The AAC-LD (Low Delay) transmission delay reduction extension is not standardized for Bluetooth.

Audio transmission delay

The amount of delay (lag) of audio depends on many factors: the size of the buffer in the audio stack, in the Bluetooth stack and in the wireless playback device itself, the algorithmic delay of the codec.

The latency of simple codecs like SBC, aptX and aptX HD is quite small, 3-6ms, which is negligible, but complex codecs like AAC and LDAC can show noticeable latency. The AAC algorithmic delay for 44.1 kHz is 60 ms. L DAC – about 30 ms (according to a rough analysis of the source code. I could be wrong, but not much.)

The resulting latency is highly dependent on the playback device, its chipset and buffer. During the tests, I got a spread of 150 to 250 ms on different devices (with SBC codec). Assuming that devices supporting additional aptX, AAC, and LDAC codecs use high-quality components and a small buffer size, we get the following typical delays:

SBC: 150-250ms
aptX: 130-180ms
AAC: 190-240ms
LDAC: 160-210ms

I remind you: aptX Low Latency is not supported in operating systems, which is why a lower latency can only be obtained by a combination of transmitter + receiver or transmitter + headphones / speaker, and all devices must support this codec.

1 Звездаслабоватона троечкухорошо!просто отлично! (1 оценок, среднее: 5,00 из 5)

Расскажите нам ваше мнение:

Ваш адрес email не будет опубликован. Обязательные поля помечены *