[pulseaudio-discuss] Bluetooth A2DP aptX codec quality
Luiz Augusto von Dentz
luiz.dentz at gmail.com
Wed Sep 12 16:03:41 UTC 2018
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.
> 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.
> 3) If aptX is decided as useless, what about aptX HD codec? aptX HD
> codec is supported by less products (currently I do not own any), but
> this one may provide better quality as SBC according to that research.
That is probably useful as something that provides a quality
improvement compared to SBC.
> PS: That aptX research is the first and the only one about which I know.
> All other information about quality or other details which I found on
> internet are just marking informations.
I had some suspicion before given that no manufacturer provided any
evidence aptX would beat SBC at the same bitrate, it is probably
better just because we are stuck at 53 bitpool with SBC while aptX can
probably have much higher bitrate. Anyway thanks to the researcher for
putting the time to evaluate the codecs we now have a good reference
for the quality each codec provides.
> --
> Pali Rohár
> pali.rohar at gmail.com
> _______________________________________________
> 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