加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

關(guān)于LE Audio中LC3——The low Complexity Communications Codec的技術(shù)細(xì)節(jié)

2021/10/25
1007
閱讀需 19 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

在之前的文章中,曾經(jīng)梳理過(guò)藍(lán)牙技術(shù)計(jì)劃路線,也就是在BLE傳輸基礎(chǔ)上做得LE Audio Codec的演進(jìn)。之前對(duì)于SIG官方給出的宣傳文檔中,如何在低數(shù)據(jù)率下保持高通話質(zhì)量的技術(shù)點(diǎn)存疑,但一直未預(yù)留出時(shí)間詳細(xì)解讀。后續(xù)在與一位某歐洲藍(lán)牙RFID公司BD,之前曾是Nordic出身的行業(yè)大前輩探討,對(duì)方竟然對(duì)于藍(lán)牙但雙模的概念做了混淆,特別在聊到LE Audio的時(shí)候,經(jīng)典藍(lán)牙A2DP混為一談,筆者對(duì)此深表痛心。此經(jīng)歷也更加提醒筆者,不論深耕領(lǐng)域多久,都要飽有敬畏之心,保持求真精神。于是剛好利用此空閑時(shí)間,梳理Low Complexity Communications Codec的部分細(xì)節(jié)。

在官方的介紹中,LE Audio將包括一個(gè)新的高質(zhì)量,低功率音頻編解碼器,低復(fù)雜性通信編解碼器LC3——The Low Complexity Communications Codec 。即使在低數(shù)據(jù)率下也能提供高質(zhì)量傳輸,LC3將為開(kāi)發(fā)人員帶來(lái)巨大的靈活性,允許他們?cè)陉P(guān)鍵產(chǎn)品屬性(如音頻質(zhì)量和功耗)之間做出更好的設(shè)計(jì)權(quán)衡。

廣泛的聽(tīng)力測(cè)試結(jié)果表明,LC3將提供改善音頻質(zhì)量的SBC編解碼器包括與經(jīng)典音頻,即使在50%的低比特率。開(kāi)發(fā)人員將能夠利用節(jié)省的電量來(lái)開(kāi)發(fā)產(chǎn)品,以提供更長(zhǎng)的電池壽命,或者在當(dāng)前電池壽命足夠的情況下,通過(guò)使用更小的電池來(lái)達(dá)到產(chǎn)品更精巧的外觀。(筆者注:這里廣泛的聽(tīng)力測(cè)試結(jié)果,表明音質(zhì)并不受影響,根據(jù)推測(cè)應(yīng)該更偏向于人的主觀聽(tīng)感,也就是在實(shí)際人耳聽(tīng)到傳輸音頻感受的清晰度,并不是直接對(duì)比數(shù)據(jù)比如丟包率等具體參數(shù)而得到的結(jié)果)

甚至因?yàn)榇祟?lèi)技術(shù)的推進(jìn),以及2017年自美國(guó)助聽(tīng)器市場(chǎng)相關(guān)法規(guī)的發(fā)布,一些傳統(tǒng)音頻公司已經(jīng)在開(kāi)始挑戰(zhàn)諸如GN Audio等老牌音頻領(lǐng)域的專(zhuān)業(yè)市場(chǎng)。以聽(tīng)力增強(qiáng),結(jié)合藍(lán)牙低功耗傳輸為買(mǎi)點(diǎn),為一部分潛在需要聽(tīng)力增強(qiáng)輔助設(shè)備的人群提供幫助。舉例,Bose已經(jīng)推出的耳機(jī)產(chǎn)品,以及森海塞爾唄收購(gòu)計(jì)劃等等。

在之前的文章中,我們有討論過(guò)聽(tīng)力補(bǔ)償在助聽(tīng),輔聽(tīng)產(chǎn)品方面的應(yīng)用。

我們知道,目前的助聽(tīng)市場(chǎng)還是以GN Audio等集團(tuán)下的專(zhuān)營(yíng)品牌產(chǎn)品為主,但是此類(lèi)產(chǎn)品使用藍(lán)牙技術(shù)做通訊的比例不多。雖然,我們看到在此類(lèi)應(yīng)用蘋(píng)果開(kāi)發(fā)了MFi,谷歌開(kāi)發(fā)ASHA,但是畢竟不通用,也并非主流,傳統(tǒng)助聽(tīng)領(lǐng)域主要還是有線產(chǎn)品,或者通過(guò)NFMI線圈來(lái)設(shè)計(jì)。目前市面上的TWS耳機(jī)也有部分產(chǎn)品使用助聽(tīng)類(lèi)的技術(shù),比如,為了降低左右耳通訊延時(shí)而不選擇藍(lán)牙轉(zhuǎn)發(fā)模式,而是NFMI技術(shù),像是比較初代的TWS耳機(jī)產(chǎn)品,像是Sennheiser,Beoplay E8,以及Jabra過(guò)Teams認(rèn)證的TWS產(chǎn)品等。(筆者注,例如在TWS Jabra商務(wù)款,就是用了額外的Dongle鏈接電腦設(shè)備,使用的方案為:NxH2281A1 NFMI TWS,其特點(diǎn)就是耳機(jī)內(nèi)置較大線圈)

總體來(lái)講,助聽(tīng)和輔聽(tīng)設(shè)備,都需要解決長(zhǎng)期佩戴的功耗問(wèn)題。所以即使有些產(chǎn)品使用藍(lán)牙方案,但是給到用戶(hù)的可選購(gòu)空間是很少的。根據(jù)官方給出的解釋?zhuān)琇C3 Codec可以保證低功耗的同時(shí),保持音頻的質(zhì)量。同樣,這里我們對(duì)于Audio Quality Rating的評(píng)分標(biāo)準(zhǔn)存疑,因?yàn)椴⑽垂紲y(cè)試細(xì)節(jié)。(筆者注:從前文的推斷,我們猜測(cè)或許依舊屬于人耳佩戴耳機(jī)等設(shè)配后的主觀感受,至于丟包率,可能是一直丟的,只是小細(xì)節(jié)人耳不夠敏感,無(wú)法捕捉。)

以下內(nèi)容包含LC3文檔原文,增加了部分重點(diǎn)備注:

首先廣泛化,The LC3 can be incorporated in any Bluetooth audio profile.LC3的Codec針對(duì)藍(lán)牙音頻格式并無(wú)限制。

保證了聽(tīng)感舒適的基礎(chǔ)上,實(shí)際上,在音頻接收端,是接受了一定的丟包數(shù)據(jù)隱藏Packet Loss Concealment (PLC)。

這里提到了關(guān)于LC3的一個(gè)很重要的概念,PLC,也解釋了傳輸輕量級(jí)數(shù)據(jù)的同時(shí),保證通話質(zhì)量的根本,就是從一開(kāi)始,就允許數(shù)據(jù)丟包現(xiàn)象的發(fā)生。這里對(duì)比傳統(tǒng)意義上的A2DP,雖然在音樂(lè)傳輸?shù)倪^(guò)程中也存在一定的丟包,但是核心是為了盡量不影響實(shí)際聽(tīng)到的音頻細(xì)節(jié)。但是我們知道,本身通話的過(guò)程中,人耳希望聽(tīng)到的聲音種類(lèi)更單純,也就是對(duì)方說(shuō)話的內(nèi)容,集中的聲音頻段更小,信號(hào)的特征類(lèi)型也更加一致和明顯,同時(shí)結(jié)合人類(lèi)說(shuō)話和發(fā)音的習(xí)慣,對(duì)于一些延長(zhǎng)音調(diào),或者習(xí)慣用語(yǔ),部分丟包幾乎不影響聽(tīng)感。

實(shí)際上,PLC的核心,就是基于之前的經(jīng)驗(yàn),提前預(yù)判,當(dāng)部分用于解碼的幀數(shù)據(jù)無(wú)法獲取,或者干脆傳輸被打斷時(shí),直接隱藏這部分丟包情況,不進(jìn)行“上報(bào)“。

The purpose of packet loss concealment is to conceal the effect of unavailable or corrupted frame data for decoding.

接受丟包數(shù)據(jù)隱藏需求,基于需要隱藏部分不可看的數(shù)據(jù)和解碼過(guò)程中幀數(shù)據(jù)不能成功被獲取,或者傳輸被打斷。這個(gè)過(guò)程在代碼中的具體實(shí)現(xiàn),則是通過(guò)設(shè)置Protocol Data Unit (PDU), or other data structure is described as "Reserved for Future Use" (RFU)(irrespective of whether in uppercase or lowercase),數(shù)據(jù)接口單元,可能會(huì)先行保留數(shù)據(jù),為后續(xù)做準(zhǔn)備。除非另有規(guī)定,否則創(chuàng)建該結(jié)構(gòu)的設(shè)備應(yīng)將其值設(shè)為零。 任何接收或解釋該結(jié)構(gòu)的設(shè)備都應(yīng)忽略該字段;特別是,它不能因?yàn)樽侄蔚闹刀芙^代碼架構(gòu)的組建??傮w來(lái)說(shuō),在代碼上做出了一些提前設(shè)定,可以簡(jiǎn)單理解為忽略丟包,持續(xù)運(yùn)行,部分保留數(shù)據(jù)值設(shè)置為零。

LC3支持以單元格式音頻編解碼,以支持在算法方面的低延遲,低復(fù)雜性補(bǔ)償,以及很寬范圍的可用比特率。編碼器和解碼器框架時(shí)間間隔分貝為:10ms和7.5ms,測(cè)試數(shù)據(jù)頻率范圍為:8 kHz, 16 kHz, 24 kHz, 32 kHz, and 48 kHz.

樣本的輸入信號(hào)44.1kHz,框架長(zhǎng)度與48kHz一樣,框架時(shí)間間隔實(shí)際會(huì)稍長(zhǎng),frame duration of 10.884 ms for the 10 ms frame interval and of 8.16 ms for the 7.5 ms frame interval

LC3的總編解碼器算法延遲是幀持續(xù)時(shí)間與編碼器側(cè)MDCT (Modified Discrete Cosine Transform)超前持續(xù)時(shí)間之和如下:

基于額外設(shè)置的比特率,LC3的編碼算法在每通道壓縮單向脈沖編碼調(diào)制框架,并提供原碼解碼位,(每個(gè)channel定量有效負(fù)載),不需要額外的傳輸通道用于有效負(fù)載上限的錯(cuò)誤保護(hù)。

The size of the payload for a single channel ranges from 20 bytes to 400 bytes for each frame and corresponds to an overall compressed bitrate range of 16,000 bps to 320,000 bps for 10 ms frames and to an overall compressed bitrate range of 21,334 bps to 426,667 bps for 7.5 ms frames.每個(gè)frame框架單通道的有效負(fù)載范圍為(所有可壓縮的比特率范圍大概在見(jiàn)上)

For 10.884 ms duration frames, which are used for the 44.1 kHz sampling frequency, the corresponding bitrate range is 14,700 bps to 294,000 bps for the 10 ms frame size and 19,600 bps to 392,000 bps for the 7.5 ms frame size. The LC3 can be operated at a constant bitrate or at an externally controlled variable bitrate.

To decode the received payload, the LC3 decoder relies on an externally determined Bad Frame Indication (BFI) flag and a payload size parameter for each channel. 為了解碼收到的負(fù)載包,解碼器需要額外定制的BFI(標(biāo)記),以及給到每個(gè)通道的負(fù)載總量數(shù)據(jù)。

BFI flag是用于標(biāo)記丟包,或者在收到的負(fù)載包在解碼的過(guò)程中發(fā)現(xiàn)bit error。這個(gè)參數(shù)同樣用于定義內(nèi)部的額定負(fù)載兩,是的外部應(yīng)用在解碼過(guò)程中定義損壞負(fù)載。一旦LC3解碼器解讀到包數(shù)據(jù)又損壞,就會(huì)直接跳過(guò),并且啟動(dòng)PLC算法用于為被解碼成功的PCM輸出信號(hào)。因此,額定負(fù)載包的尺寸參數(shù),可以使得LC3解碼器正確地解析每一個(gè)包。額定負(fù)載包不包含任何時(shí)間相關(guān)地參數(shù),比如time stamps或者數(shù)列值。

這種細(xì)節(jié),使用公式和整數(shù)偽碼,使得整個(gè)編碼的效率,可以基于任意的架構(gòu)上,得到增補(bǔ)。比如,針對(duì)功率優(yōu)先的聽(tīng)力輔助設(shè)備,蓄電池因?yàn)楹碾娤拗频脑?,在效率方面,控制?4-bit的浮點(diǎn)運(yùn)算級(jí)別。如下的框架描述了LC3解碼器,在詳細(xì)參數(shù)方面,在正式開(kāi)始數(shù)據(jù)傳輸過(guò)程中,框架對(duì)應(yīng)框架的解碼方式。

 

Encoder session configuration (identical for all encoded frames in a session)

解碼器配置

Table 2.2 關(guān)于使得LC3解碼在可以開(kāi)始解碼輸入信號(hào)之前,的frame參數(shù)

Table 2.2: Encoder frame level inputs required for every frame to compress

Table 2.3 LC3解碼器解碼后的輸出frame描述

下圖描述了LC3如何操作的簡(jiǎn)略流程:

Figure 2.1在一個(gè)案例中,鏈路層與LC3編/解碼器之間與比特率相關(guān)的參數(shù)

The profile in Device A defines a byte_count in bytes that the LC3 encoder will use to generate the compressed payloadTX for an audio frame. (The resulting size of the payloadTX will be exactly byte_count.) A設(shè)備中,profile定義以byte count,以LC3解碼器,從音頻框架中,生成一個(gè)壓縮的payloadTX,也是以byte count為單位存儲(chǔ)。

只要byte_count的尺寸比鏈路層最大frame size框架限制尺寸要小,或者等于,那么A設(shè)備就可以把payload傳輸?shù)紹設(shè)備上。

當(dāng)B設(shè)備接收到解碼的payload之后,一個(gè)BFI(Bad Frame Indicator)flag被生成,傳輸?shù)浇獯a器端。

Figure 2.2:在單聲道,用單一固定比特率LC3傳輸數(shù)據(jù)的流程示意

在比特率固定,單聲道情況下,使用LC3解碼時(shí),所有的frames比特率相同,同時(shí)每個(gè)audio sample的分辨率bits相同。

實(shí)際的kbps比特率與byte_count(單位為bytes)有關(guān),而tuple的參數(shù){FS, Nms},FS代表音頻樣品頻率,Nms帶表frame長(zhǎng)度(單位為微秒)。編碼器和解碼器需要被配置和initialized使用相同的通用參數(shù)數(shù)據(jù)。除了audio sample的bits參數(shù),其他參數(shù)需要在編解碼器之間共同配置。每個(gè)框架,LC3的frame編碼器接受的輸入PCM信號(hào),都會(huì)被壓縮成一個(gè)緩沖尺寸,(具體計(jì)算方法為NF乘以音頻樣品的bits再除以8)以bytes為單位表示。LC3的frame編碼器,產(chǎn)生一個(gè)緩沖payloadTX,以byte_count為單位,在這個(gè)場(chǎng)景下,byte_count的單位是以session byte_count的參數(shù)決定的。

The Transmitter transmits the payloadTX over the air interface and the Receiver receives the transmitted information as payloadRX of size byte_count. 通過(guò)空中傳輸payloadTX,尺寸單位為byte_count。如果接收端在payloadTX正常傳輸,則BFI flag值為0,發(fā)現(xiàn)錯(cuò)誤,BFI flag的值非0.當(dāng)BFI為0,則不會(huì)使用接收到的payloadRX進(jìn)行編解碼。Implementation或者profile會(huì)決定bad frame將被如何處理。每個(gè)正確的frame,LC3解碼器會(huì)輸出一個(gè)PCM信號(hào),都會(huì)被壓縮成一個(gè)緩沖尺寸,(具體計(jì)算方法為NF乘以音頻樣品的bits再除以8)以bytes為單位表示。

Figure 2.3: LC3的全能力操作,使用外部速率控制多個(gè)音頻通道

上圖也可以簡(jiǎn)單總結(jié)為多聲道,非固定

外部速率控制(基于幀和音頻通道)可以通過(guò)使用LC3的配置文件指定,例如支持內(nèi)容增強(qiáng)和/或編解碼器重新配置,而不需要拆除流。 編碼器和解碼器可能使用不同的位為每個(gè)音頻樣本分辨率(bits_per_audio_sample_enc, bits_per_audio_sample_dec)會(huì)話。 音頻通道的數(shù)量由NC指示,并且在整個(gè)會(huì)話中是固定的。 對(duì)于多聲道操作,每個(gè)音頻樣本的所有聲道期望具有相同的位數(shù); 因此,不是所有的配置參數(shù)都是獨(dú)立的。

文檔中同時(shí)也提供了LC3解碼器在開(kāi)始逐幀解碼之前需要配置的會(huì)話參數(shù)的描述,這里就不作贅述了。

總結(jié)上述,配合PLC概念性的傳輸方式,可以初步在助聽(tīng),特別是單聲道助聽(tīng)領(lǐng)域,讓更見(jiàn)便宜和便攜的藍(lán)牙助聽(tīng),以及輔聽(tīng)設(shè)備成為量產(chǎn)可能。結(jié)合之前文章中提到的一些Broadcast應(yīng)用場(chǎng)景,我們可以期待此類(lèi)助聽(tīng),輔聽(tīng)設(shè)備,將不僅僅可以將身邊的聲音放大,同時(shí)也可以接受機(jī)場(chǎng),火車(chē)站,甚至電視的廣播信號(hào),更加清晰的或許關(guān)于出行,天氣,新聞等通知的信息。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

兔爾摩斯,芯片領(lǐng)域應(yīng)用工程師背景。 主要分享消費(fèi)類(lèi)電子領(lǐng)域行業(yè)動(dòng)態(tài),硬件方案等。希望專(zhuān)欄文章,能夠幫助到行業(yè)同仁,同時(shí),在寫(xiě)作和整理地過(guò)程中,也不斷鞭策自己,學(xué)無(wú)止境,業(yè)精于勤。