一篇深入讀懂藍牙音頻!
一、藍牙簡介
藍牙是一種無線通訊技術(shù)標準,用來讓設(shè)備之間在短距離內(nèi)交換資料,最早由瑞典的愛立信公司在 1994 年發(fā)布。提出藍牙標準的目的很簡單,就是簡化電子設(shè)備之間的數(shù)據(jù)交互過程。那個時候手機剛剛開始流行,用手機跟耳機或電腦進行無線連接成了一個很強勁的需求,藍牙協(xié)議很大程度上也是服務(wù)于這類需求。
二、藍牙的發(fā)展歷史
藍牙 1.0 (1999年)早期的藍牙版本,有數(shù)據(jù)泄露風(fēng)險,并沒有被廣泛應(yīng)用;
藍牙 1.2 藍牙技術(shù)一直在迭代,發(fā)布于 2003 年的藍牙 1.2 是藍牙真正走向安全可用的標志;
藍牙 2.0(2004 年)則著重提高多任務(wù)處理能力,同時支持雙工模式,可以一邊語音通訊,一邊傳輸文件;
藍牙 3.0(2009 年)引入高速傳輸,加大帶寬,客觀上擠占 WiFi 的位置,增加了功耗和成本;
藍牙 4.0(2010 年)重新找準定位,引入 BLE 概念,即 Bluetooth Low Energy 低功耗藍牙;
藍牙 5.0(2016 年)讓藍牙在低功耗下具備更強大的傳輸能力,提高了安全性和可達性,逐漸成為目前主流。
藍牙 5.2(2020 年)聚焦LE Audio,發(fā)布多個LE音頻規(guī)范和全新的LC3高品質(zhì)低延遲編碼器,增強藍牙音頻體驗。
三、藍牙音頻規(guī)范
組成藍牙協(xié)議的基石是一個個規(guī)范(Profile),藍牙標準里目前有二十多個規(guī)范,一個規(guī)范其實就是一種通訊的類型或者協(xié)議,不同規(guī)范覆蓋不同的應(yīng)用。
其中有三個規(guī)范聚焦于音頻數(shù)據(jù)的傳輸。傳統(tǒng)的A2DP和HFP以及最新的BAP
1.HFP規(guī)范
其中HFP 基于SCO(Synchronous Connection Oriented)鏈路用于雙向傳輸通話語音。SCO鏈路具有同步傳輸特性,但無線傳輸有錯誤風(fēng)險為保證同步性數(shù)據(jù)的完整、正確性就無法保障所以HFP采用的編碼器需要具備容錯能力。
2.A2DP規(guī)范
A2DP(Advanced Audio Distribution Profile),藍牙立體聲音頻傳輸規(guī)范,典型應(yīng)用為藍牙耳機。藍牙A2DP規(guī)范在協(xié)議棧中的位置如下圖:

A2DP協(xié)議的音頻數(shù)據(jù)在ACL Link上傳輸,這與SCO上傳輸?shù)恼Z音數(shù)據(jù)有本質(zhì)區(qū)別。A2DP不包括遠程控制的功能,遠程控制的功能則依賴AVRCP協(xié)議規(guī)范。A2DP是建立在AVDTP協(xié)議之上的高層協(xié)議,AVDTP定義了藍牙設(shè)備之間數(shù)據(jù)流句柄的參數(shù)協(xié)商,建立和傳輸過程以及相互交換的信令實體形式,該協(xié)議是A2DP框架的基礎(chǔ)協(xié)議。
藍牙A2DP數(shù)據(jù)包基于AVDTP協(xié)議進行傳輸,其層級關(guān)系如下數(shù)據(jù)包在每一層都有自己的包頭。

進行數(shù)據(jù)傳輸之前發(fā)送端(SRC)與接收端(SNK)需進行一系列信令交互以確認雙方傳輸數(shù)據(jù)的參數(shù)之后才能開始數(shù)據(jù)傳輸,其信令交互流程如下:

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ?


3.藍牙音頻編碼器
同為近距離無線通信藍牙相較于WIFI優(yōu)勢在于功耗和其便攜的插入性只需按照規(guī)范實現(xiàn)相應(yīng)的協(xié)議即可實現(xiàn)快捷插拔,但其劣勢傳輸帶寬也顯而易見,如今WIFI傳輸速率已達到Gbps級別而藍牙傳輸帶寬僅2Mbps,而早期的藍牙傳輸速率僅為幾百Kbps。

而對于音樂音頻來說基本的CD品質(zhì)也需要1.4Mbpsr如果直接傳輸原始音頻則可能耗盡帶寬,抗干擾性能差易卡音斷音,所以傳輸音頻數(shù)據(jù)必須在Source端壓縮編碼,在Sink端解壓縮。
而如何編碼解碼藍牙聯(lián)盟標準規(guī)定SBC是強制支持的,AAC/MP3可選的支持(Optional Codec),除了這些外,也可以有廠家自己的編碼形式(Vendor Specific A2DP Codecs),例如高通的APT-X、索尼的LDAC、以及LHDC。
4.A2DP音質(zhì)和延遲
前面講到為了在藍牙通道傳輸音頻數(shù)據(jù)必須將音頻數(shù)據(jù)進行壓縮編碼后傳輸,而這里的壓縮和常規(guī)認知的文件壓縮、解壓后得到完全一致的源文件不一樣,為了適應(yīng)藍牙傳輸?shù)膸捯纛l數(shù)據(jù)被壓縮后占用的帶寬很小這種壓縮為有損壓縮。以SBC為例壓縮后僅占用200多Kbps 壓縮比達到1/7,而這樣的有損壓縮勢必損失音樂的音質(zhì)。
常見編碼器占用帶寬如下表。

SBC是A2DP協(xié)議強制規(guī)定的編碼格式。利用人耳對不同頻率信號的感知靈敏度不同的特性,在人的聽覺(不敏感的部位采用較粗糙的量化,在敏感部位采用較細的量化,以獲得更好的主觀聽覺效果,是音質(zhì)最差的一種編碼器。AAC則是協(xié)議規(guī)范可選支持的一種高品質(zhì)編碼器,后來實現(xiàn)廠商提出了apt-X,LDAC,LHDC 等高帶寬占用的高品質(zhì)音頻編碼器,其中LDAC/LHDC更是支持Hi-RES標準認證的96K高解析音頻。LC3則是跟隨全新一代LE音頻發(fā)布的LE音頻強制支持的高品質(zhì)低帶寬編碼技術(shù)??傮w來說更高的碼率意味著更好的音質(zhì),然而最新一代LC3的出現(xiàn)則可能打破這一規(guī)律,LC3和SBC的主觀對比打分如下,在碼率為345 kbps的情況下,SBC的分數(shù)略高于4.0,但LC3在碼率160 kbps情況下即可達到比SBC更高的主觀評分。

前面提到藍牙音頻傳輸必須先進行編碼,而編碼是按照幀進行的既一定長度的數(shù)據(jù)進行一次編碼壓縮,這里累積到足夠數(shù)據(jù)再編碼,設(shè)備端收到數(shù)據(jù)再解碼播放的過程則會造成延遲。網(wǎng)絡(luò)上的帖子大多將藍牙音頻延遲歸咎于此,其實不然,前文提到的幾種編碼器編碼幀最長的為AAC 一幀長度達到23ms,藍牙傳輸一幀的數(shù)據(jù)也能(通常)在幾ms間完成,然而實際延遲卻是這個數(shù)據(jù)的好幾倍達到100ms以上,SBC一幀更是只有2ms不到,但其延遲卻達到200以上。

實際上影響延遲的主要因素是藍牙傳輸?shù)姆€(wěn)定性。理想情況下發(fā)送藍牙音頻發(fā)送端等時間間距均勻的發(fā)送數(shù)據(jù)包,接收端等時間間距均勻的接收數(shù)據(jù),這種情況下接收端可稍微延遲后將收到數(shù)據(jù)通過喇叭送出,在喇叭播放完這包數(shù)據(jù)之前可收到下包數(shù)據(jù)繼而能夠連續(xù)不斷的播放,此時藍牙音頻的時延取決于發(fā)包間隔和傳輸時間。

然而現(xiàn)實情況總是不如人意,藍牙作為一種無線傳輸協(xié)議傳輸數(shù)據(jù)可能受到周邊無線設(shè)備或強電磁設(shè)備比如電磁爐、微波爐等設(shè)備干擾導(dǎo)致數(shù)據(jù)出錯重傳,實際上即使沒有干擾由于藍牙器件本身的性能、或是因為無線傳輸?shù)奶匦远际怯锌赡艹霈F(xiàn)傳輸錯誤的。傳輸錯誤重傳導(dǎo)致其中某些包重傳次數(shù)多傳輸時間變長,接收端收到的數(shù)據(jù)包并不是等時間均勻的。這種情況下接收端想要流暢播放必須先緩存一定時間長度的數(shù)據(jù)之后再進行播放,以防止其中包晚到導(dǎo)致播放不連續(xù),這種情況下真實主要因素是為了抵抗網(wǎng)絡(luò)傳輸不穩(wěn)定性而人為添加的延遲(緩存),而傳輸碼率越高網(wǎng)絡(luò)波動帶來的影響會更大也就需要更長的延遲來防止卡頓。

5.BLE Audio
LE Audio 核心框架如下

LE Audio是新一代藍牙音頻傳輸協(xié)議,基于低功耗藍牙BLE無線通信,其主要特點有:
1、超低功耗,LE本身即為低功耗藍牙,LE Audio更是首創(chuàng)每只耳機獨立傳輸單通道數(shù)據(jù),大幅縮減每只耳機的數(shù)據(jù)傳輸量,將傳輸和解碼功耗降低。
2、全新高音質(zhì)、低功耗音頻解碼器LC3(Low Complexity Communications Codec)
3、LE同步通道(ISOC:Low Energy Isochronous Channels)
4、支持多重串流音頻(Multi-Stream Audio)
5、支持廣播音頻技術(shù)(Broadcast Audio)
LE Audio正是為了解決前文傳統(tǒng)藍牙音頻的缺點:音質(zhì)、延遲,以及雙耳無線耳機和多連接問題而提出的下一代藍牙音頻方案。LE Audio 從藍牙底層協(xié)議出發(fā)在數(shù)據(jù)流層面定義了新音頻的傳輸機制LE Isochronous Channels。該同步通道同時支持連接模式和非連接模式。
一對一連接模式采用LE-CIS (LE Connected Isochronous Stream)邏輯傳輸通道,清除機制將延遲數(shù)據(jù)flush掉,保障接收端定時接收到數(shù)據(jù)從而縮減接收端的buffer大幅降低延遲。不同的LE-CIS組成CIG(Connected Isochronous Groups),同一個CIG內(nèi)的CIS具有相同的時間戳,以保證同一個group內(nèi)的數(shù)據(jù)是同步的,最明顯的應(yīng)用是耳機,左耳和右耳分別是一個CIS,他們組成一個CIG,相互之間的時間是同步的。

一對多非連接廣播模式,稱作是BIS(Broadcast Isochronous Stream),多個BIS可以組成一個BIG。廣播模式的同步是通過一個周期廣播的PDU實現(xiàn)的,該PDU包含有針對每個BIS的時間戳,一旦同步,接收方便可以稱為同步接收者。同樣的例子,如果對于一個同一個廣播者,一群人中的每個人左右可同時同步接收該廣播音頻信號。

四、結(jié)語
移動通信技術(shù)取締了家家戶戶的電話線、WIFI通信技術(shù)取代了無所不見得網(wǎng)線。自1998年來,藍牙和藍牙音頻協(xié)議經(jīng)過多次更新,從僅支持單聲道傳輸?shù)饺缃裾鏌o線(TWS)耳機,從僅支持極低音質(zhì)傳輸?shù)饺缃馤HDC Hi-Res,藍牙音頻成長迅速,正逐漸走進每個人的身邊取代人們最后的半米線(耳機線)。隨著藍牙5.2 BLE Audio技術(shù)的成熟 藍牙廣播音頻可能走進公共場所,多設(shè)備間低功耗音頻串流,為 TWS 真無線立體聲提供更多可能,為未來的藍牙音頻帶來更大的想象空間。
原文作者:內(nèi)核工匠
