前言#
前段時間在用 LinkBuds 連接電腦的時候發現音頻選項中有一個 SBC-XQ 編碼器,有點好奇就去查了一下,只翻到這篇 19 年 6 月發布在 SoundExpert 的文章,寫的還挺詳細的,遂將其翻譯成中文。
該譯文借助了 ChatGPT 進行輔助翻譯,僅供學習,版權歸原作者所有(
原文地址:http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
正文#
SBC XQ 不僅僅是一種新的藍牙音頻編解碼器,它更是一種 Lifehack 。
標準的 SBC 被強制性地整合進所有的藍牙立體聲音頻設備中 [1][2]。它可以在任意高的比特率下工作,但是 Bluetooth 的文檔推薦在高質量模式下使用 328 kbit/s(44.1kHz/16bits)。根據 SE 的評級,這種模式僅僅提供了可接受的音頻質量,為了提高藍牙音頻傳輸的質量:
- CSR 公司,一家跨國半導體公司,收購了 APT Licensing Ltd. 並推出了 aptX,接著推出了 aptX HD,然後是高通收購了所有這些公司,並進一步推出了 aptX Low Lattency 和 aptX Adaptive;
- Sony 推出了其專有的 Hi-Res LDAC;
- 三星推出了三種新的藍牙音頻編解碼器 HD/Scalable/UHQ-BT;
- 華為推出了 HWA LHDC 音頻編解碼器;
- 蘋果在其產品中使用 AAC;
- ValdikSS 為 Android 寫了補丁,Pali Rohár 為 Linux 寫了補丁,這些補丁可以解鎖 SBC 的更高比特率。
事實證明,幾乎所有現代的藍牙無線耳機、揚聲器、接收器... 出廠時支持的 SBC 比特率高達 730 kbit/s,而這個補丁(SBC XQ)則可以幫助在 Android 環境下對藍牙音頻進行如下比特率的編碼:
- BT EDR 2 - 44.1/16bits 452.0 kbit/s,48/16 492.0 kbit/s
- BT EDR 3 - 44.1/16bits 551.2 kbit/s,48/16 600.0 kbit/s
這些比特率的選擇看起來像是在音頻質量、兼容性與藍牙連接穩定性之間做了一個合理的妥協 [3][4]。
SBC XQ 在 44.1kHz/16bit 下的結果已經添加到了我們的聽測中:
SBC XQ CBR@452.0 (Bluetooth)** - Subband codec for Bluetooth A2DP profile, CBR, 452.0 kbit/s FBR
CODER: SBC Encoder LIB Version 1.5 (Philips)
- usage: sbc_encoder -v -p -r453000 -oout.sbc ref.wav
- SBC XQ default setting for BT EDR2
- 44100 Hz, Dual Channel
- bitpool: 38, bands: 8, blk_len: 16, allocation method: Loudness
DECODER: SBC Decoder LIB Version 1.5 (Philips)
SBC XQ CBR@551.2 (Bluetooth)** - Subband codec for Bluetooth A2DP profile, CBR, 551.2 kbit/s FBR
CODER: SBC Encoder LIB Version 1.5 (Philips)
- usage: sbc_encoder -v -p -r552000 -oout.sbc ref.wav
- SBC XQ default setting for BT EDR3
- 44100 Hz, Dual Channel
- bitpool: 47, bands: 8, blk_len: 16, allocation method: Loudness
DECODER: SBC Decoder LIB Version 1.5 (Philips)
此頁面提供了早期評分(目前不夠準確)的信息,您可以在 Encoders 320+ kbit/s 頁面下方參加 SE 聽覺測試以獲得更準確的結果,在該頁面下方有一份簡短的說明。
SBC XQ 在音樂信號下的失真因子測量#
如果下面的文段看起來有點混亂,請參考之前的文章 - Audio quality of Bluetooth aptX and aptX HD
再次強調,通過任何客觀測量手段進行感知聲音質量的評估都應該非常謹慎。在失真因子測量中,我們有一個標準,用於定義該測量是否可以作為此類評估的依據。這個標準是被測設備的聲音特徵或者失真特徵之間的相似性,如果它們的失真特徵足夠接近,那麼它們的測量結果就能很好地與感知聲音質量得分相對應。
為了更客觀的判斷結果,我們將比較 SBC XQ @ 452.0 和 SBC XQ @ 551.2 的伪影簽名與 SBC @ 201(低質量)、SBC229(中等質量)、SBC @ 328(高質量)、aptX @ 352、aptX HD @ 529、ADPCM IMA @ 354、AAC @ 256。就像在之前的文章中一樣,我們將使用 Pink Floyd 的專輯《The Dark Side of The Moon》作為測試信號。
圖 1 顯示了不同的藍牙音頻編解碼器如何根據其特徵標識相互關聯。兩個編解碼器之間的連接線越短,它們的特徵標識就越相似。秩相關係數 0.1 對於失真因子與主觀評分之間的關係至關重要。
我們可以看到,SBC 和 aptX 具有類似的伪影特徵(差距 < 0.1),因此它們的失真因子測量值可以指示它們的感知聲音質量(?)。
實在是不知道這怎麼翻譯了,原句為:We can see that SBC and aptX codecs have similar artifact signatures (distance<0.1), so their df-measurements are indicative of their perceived sound quality. 如果您有更好的翻譯,請在下面留言,謝謝。
圖 2 為測試編解碼器的失真因子序列的直方圖,其顯示了中位數與 25/75 百分位數。失真因子的中位數是平均波形退化的估計值。直方圖的形狀與波形退化的特徵 / 類型(伪影特徵)有關。
從失真因子的中位數來看,我們可以有把握地得出結論:SBC-XQ 的音頻質量與 aptX HD 相當,而對於採用了 BT EDR3 的設備,SBC XQ 略勝一籌,在盲聽測試中很難區分它們。 SBC 使用基本的聲學模型進行編碼,而 aptX 根本不使用該模型,因此它們的感知音頻質量主要由比特率決定。可以借助 Bluetooth A2DP SBC/aptX 在線編碼器對比不同 SBC 設置,包括 SBC XQ,與 aptX 和 aptX HD 進行聽覺比較 [5]。
目前,LineageOS、Resurrection Remix 和 crDroid 的 Android 分支已經包含了所需的補丁。來自 Pali Rohár 的 Linux PulseAudio 補丁除了支持 SBC XQ,還添加了對 aptX、aptX HD 和 FastStream 編解碼器的支持 [6]。這種額外的音頻質量提升是完全免費的,很難想出會有任何反對將此選項包含在所有藍牙協議棧和主要 Android 分支中的理由。您可以在您的操作系統中請求此功能:
- Android: https://issuetracker.google.com/issues/new?component=190923&template=845103
- Linux (PulseAudio): https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/
- macOS and iOS: https://www.apple.com/feedback/
- Windows:
- Win10 - Use Feedback app on the Start Menu
- Toshiba Bluetooth Stack - https://www.webcom.toshiba.co.jp/us/voice/
- IVT BlueSoleil (1000Moons) - http://www.bluesoleil.com/life/254.html
- Broadcom WIDCOMM BT Stack - https://www.broadcom.com/company/contact-us/feedback-and-comments and https://community.broadcom.com/ideation/allideas (requires registration)
譯注:LineageOS 起初的確有 SBC-XQ 的支持,不過後面又刪除了這一補丁,原因未知。
參考文獻:#
[1] Bluetooth SIG, Specification of the Bluetooth System, Profiles, Advanced Audio Distribution Profile, v1.3.2, 2019-01-21, https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=457083
[2] Christian Hoene, Mansoor Hyder, “Considering Bluetooth’s Subband Codec (SBC) for Wideband Speech and Audio on the Internet”, Technical Report WSI-2009-3, 2009-10, https://pdfs.semanticscholar.org/1f19/561d03bc88b67728375566c95bbf77e730d5.pdf
[3] ValdikSS, “Bluetooth stack modifications to improve audio quality on headphones without AAC, aptX, or LDAC codecs”, 2019-06-18, https://habr.com/en/post/456476/
[4] ValdikSS, “Improve Bluetooth audio quality on headphones without aptX or LDAC”, since 2018-08-22, https://forum.xda-developers.com/android/software-hacking/improve-bluetooth-audio-quality-t3832615
[5] Bluetooth A2DP SBC/aptX online encoder, https://btcodecs.valdikss.org.ru/sbc-encoder/
[6] Pali Rohár, New API for Bluetooth A2DP codecs, since 2019-01-12, https://patchwork.freedesktop.org/series/55117/