[pulseaudio-discuss] Bluetooth A2DP aptX codec quality

Luiz Augusto von Dentz luiz.dentz at gmail.com
Thu Sep 13 10:10:05 UTC 2018


Hi Tanu,

On Thu, Sep 13, 2018 at 11:23 AM, Tanu Kaskinen <tanuk at iki.fi> wrote:
> On Wed, 2018-09-12 at 19:03 +0300, Luiz Augusto von Dentz wrote:
>> Hi Pali,
>>
>> On Wed, Sep 12, 2018 at 1:42 PM, Pali Rohár <pali.rohar at gmail.com> wrote:
>> > Hello!
>> >
>> > I would like to let you know that Serge from soundexpert.org did in last
>> > month some research on aptX and its quality. Detailed article is on the
>> > following website, specially see parts added around "August 2018":
>> >
>> > http://soundexpert.org/news/-/blogs/audio-quality-of-bluetooth-aptx
>> >
>> > ============
>> > Conclusions:
>> >
>> > aptX codec used in BT applications is no better than SBC at 328. Despite
>> > slightly lower algorithmic delay of aptX both SBC and aptX codecs
>> > provide the same 100-150ms latency in real-life BT applications.
>> >
>> > If you hear the difference between SBC and aptX in some BT product,
>> > there can be only two explanations - placebo effect or using SBC in
>> > Middle or Low Quality modes.
>> >
>> > AptX is just a copper-less overpriced audio cable.
>> >
>> > aptX HD is high-bitrate version of aptX. It has clearly noticeable
>> > increase in sound quality (not dramatic though taking into account the
>> > increase in bitrate)
>> > ============
>> >
>> > And it just confirms my own testing. Whatever I did I was not able to
>> > either hear or see difference between aptX and SBC encoded-->decoded
>> > audio.
>> >
>> > I had discussion with Serge and there are some ideas which Linux
>> > Bluetooth A2DP software could supports:
>> >
>> > 1) Allow user to specify SBC codec quality. In most cases, including
>> > pulseaudio, SBC quality is chosen either to middle or low, not to
>> > maximum bitpool. In some cases SBC at high quality can provide better
>> > quality as aptX and more important -- SBC is supported by all headsets.
>> >
>> > 2) Show user current SBC codec quality. So user would know what was
>> > chosen and what should expect. I was told that Windows's Toshiba
>> > bluetooth stack has support for this indication.
>> >
>> > 3) In some cases SBC SNR bit allocation method can provide better
>> > quality as SBC loudness method.
>> >
>> > So then I could ask question:
>> >
>> > 1) What to do with aptX? It is really useful for users to have it in
>> > Linux & pulseaudio? Because it looks like that the only thing which it
>> > has better is lower latency. But can pulseaudio on Linux system really
>> > achieve it?
>>
>> I don't think, not the level of latency necessary for speech and to
>> avoid lip sync issues, so that would leave aptX at the same category
>> as SBC.
>
> How likely is it that a device that supports aptX only supports lower
> SBC bitrates? In such situation aptX would apparently be an
> improvement, but maybe that doesn't happen in real life.
>
>> > 2) Should we rather look at increasing quality of SBC codec in
>> > pulseaudio? And if yes, how should be quality of SBC configured? Via
>> > profiles? Or to invent some new protocol options? Can we increase
>> > default SBC bitpool allocation?
>>
>> I recall setting it to 64 before, but perhaps we are using 53 given
>> that most headset set that as maximum influenced by the spec suggested
>> values, I wouldn't go above 512kbit/s since then leave very little
>> room for any other traffic.
>
> It seems that PulseAudio advertises 64 as the max bitpool it supports,
> but when negotiating the parameters, the a2dp_default_bitpool()
> function chooses at most 53. There's a comment in that function saying
> that the values are chosen as recommended by the A2DP spec. What would
> be the downside of choosing 64 instead of 53? Is 64 the absolute
> maximum that can be used?

It influences the bitrate see:

http://soundexpert.org/news/-/blogs/bluetooth-audio-quality-a2dp

I recall 64 was kind acceptable since some headset do support it,
going past that probably don't make much sense if we don't have
headset supporting it. Note that we can reduce the bitpool on the fly.

> How is the bitrate calculated? I'd like to write a section on the
> Bluetooth wiki page[1] that explains the SBC codec with a table showing
> how the different parameters affect the bitrate.
>
> [1] https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/
>
> --
> Tanu
>
> https://www.patreon.com/tanuk
> https://liberapay.com/tanuk
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss



-- 
Luiz Augusto von Dentz


More information about the pulseaudio-discuss mailing list