Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Dahil sa mass production ng mga smartphone na walang 3.5 mm audio jack, ang mga wireless Bluetooth headphone ay naging pangunahing paraan para sa marami na makinig sa musika at makipag-usap sa headset mode.
Ang mga tagagawa ng mga wireless na aparato ay hindi palaging nagsusulat ng mga detalyadong detalye ng produkto, at ang mga artikulo tungkol sa Bluetooth audio sa Internet ay nagkakasalungatan, kung minsan ay hindi tama, hindi pinag-uusapan ang lahat ng mga tampok, at madalas na kinokopya ang parehong impormasyon na hindi tumutugma sa katotohanan.
Subukan nating unawain ang protocol, ang mga kakayahan ng Bluetooth OS stack, headphone at speaker, Bluetooth codec para sa musika at pagsasalita, alamin kung ano ang nakakaapekto sa kalidad ng ipinadalang tunog at latency, alamin kung paano mangolekta at mag-decode ng impormasyon tungkol sa mga sinusuportahang codec at iba pang device mga kakayahan.

Tl; DR:

  • SBC - normal na codec
  • Ang mga headphone ay may sariling equalizer at post-processing para sa bawat codec nang hiwalay
  • Ang aptX ay hindi kasing ganda ng ina-advertise
  • Ang LDAC ay kalokohan sa marketing
  • Mahina pa rin ang kalidad ng tawag
  • Maaari kang mag-embed ng mga C audio encoder sa iyong browser sa pamamagitan ng pag-compile ng mga ito sa WebAssembly sa pamamagitan ng emscripten, at hindi sila masyadong magpapabagal.

Musika sa pamamagitan ng Bluetooth

Ang functional component ng Bluetooth ay tinutukoy ng mga profile - mga detalye ng mga partikular na function. Gumagamit ang Bluetooth music streaming ng mataas na kalidad na A2DP unidirectional audio transmission profile. Ang pamantayang A2DP ay pinagtibay noong 2003 at hindi nagbago nang malaki mula noon.
Sa loob ng profile, 1 mandatoryong codec ng mababang computational complexity na SBC, na partikular na ginawa para sa Bluetooth, at 3 karagdagang code ay na-standardize. Posible ring gumamit ng mga hindi dokumentadong codec ng iyong sariling pagpapatupad.

As of June 2019 kami sa xkcd comic na may 14 na A2DP codec:

  • SBC ← na-standardize sa A2DP, sinusuportahan ng lahat ng device
  • MPEG-1/2 Layer 1/2/3 ← standardized sa A2DP: kilala MP3, ginagamit sa digital TV MP2, at hindi kilala MP1
  • MPEG-2/4 AAC ← na-standardize sa A2DP
  • ATTRAC ← lumang codec mula sa Sony, na-standardize sa A2DP
  • LDAC ← bagong codec mula sa Sony
  • APTX ← codec mula 1988
  • aptXHD ← katulad ng aptX, na may iba't ibang opsyon sa pag-encode
  • aptX Mababang Latency ← ganap na naiibang codec, walang pagpapatupad ng software
  • aptX Adaptive ← isa pang codec mula sa Qualcomm
  • FastStream ← pseudo codec, bidirectional SBC modification
  • HWA LHDC ← bagong codec mula sa Huawei
  • Samsung HD ← suportado ng 2 device
  • Samsung Scalable ← suportado ng 2 device
  • Samsung UHQ-BT ← suportado ng 3 device

Bakit kailangan namin ng mga codec, itatanong mo, kapag ang Bluetooth ay may EDR, na nagpapahintulot sa iyo na maglipat ng data sa bilis na 2 at 3 Mbit/s, at para sa hindi naka-compress na dalawang-channel na 16-bit na PCM, sapat na ang 1.4 Mbit/s?

Paglipat ng data sa pamamagitan ng Bluetooth

Mayroong dalawang uri ng paglilipat ng data sa Bluetooth: Asynchronous Connection Less (ACL) para sa asynchronous na paglilipat nang walang pagtatatag ng koneksyon, at Synchronous Connection Oriented (SCO), para sa synchronous na paglipat na may paunang negosasyon sa koneksyon.
Ang paghahatid ay isinasagawa gamit ang isang time division scheme at ang pagpili ng transmission channel para sa bawat packet nang hiwalay (Frequency-Hop/Time-Division-Duplex, FH/TDD), kung saan ang oras ay nahahati sa 625-microsecond na pagitan na tinatawag na mga slot. Nagpapadala ang isa sa mga device sa even-numbered slots, ang isa sa odd-numbered slots. Ang ipinadala na packet ay maaaring maghawak ng 1, 3 o 5 na mga puwang, depende sa laki ng data at ang hanay ng uri ng paghahatid, sa kasong ito, ang paghahatid ng isang aparato ay isinasagawa sa pantay at kakaibang mga puwang hanggang sa katapusan ng paghahatid. Sa kabuuan, hanggang 1600 packet ang maaaring matanggap at maipadala sa bawat segundo, kung ang bawat isa sa kanila ay sumasakop ng 1 slot, at ang parehong mga device ay nagpapadala at tumatanggap ng isang bagay nang walang tigil.

Ang 2 at 3 Mbit/s para sa EDR, na makikita sa mga anunsyo at sa website ng Bluetooth, ay ang pinakamataas na rate ng paglilipat ng channel ng lahat ng data sa kabuuan (kabilang ang mga teknikal na header ng lahat ng protocol kung saan dapat i-encapsulate ang data), sa dalawang direksyon sabay-sabay. Ang aktwal na bilis ng paglipat ng data ay mag-iiba nang malaki.

Upang magpadala ng musika, isang asynchronous na paraan ang ginagamit, halos palaging gumagamit ng mga packet tulad ng 2-DH5 at 3-DH5, na nagdadala ng maximum na dami ng data sa EDR mode na 2 Mbit/s at 3 Mbit/s, ayon sa pagkakabanggit, at sumasakop ng 5 oras -pagbabahagi ng mga puwang.

Schematic na representasyon ng transmission gamit ang 5 slot ng isang device at 1 slot ng isa pa (DH5/DH1):
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Dahil sa prinsipyo ng time division ng airwaves, napipilitan kaming maghintay ng 625-microsecond time slot pagkatapos mag-transmit ng packet kung ang pangalawang device ay hindi nagpapadala ng anuman sa amin o nagpapadala ng maliit na packet, at mas maraming oras kung ang pangalawang device ay nagpapadala. sa malalaking pakete. Kung higit sa isang device ang nakakonekta sa telepono (halimbawa, mga headphone, relo, at fitness bracelet), ang oras ng paglipat ay ibinabahagi sa kanilang lahat.

Ang pangangailangang i-encapsulate ang audio sa mga espesyal na transport protocol na L2CAP at AVDTP ay tumatagal ng 16 byte mula sa posibleng maximum na halaga ng ipinadalang audio payload.

Uri ng lagayan
Bilang ng mga puwang
Max. bilang ng mga byte sa packet
Max. bilang ng mga byte ng A2DP payload
Max. A2DP payload bitrate

2-DH3
3
367
351
936 kbps

3-DH3
3
552
536
1429 kbps

2-DH5
5
679
663
1414 kbps

3-DH5
5
1021
1005
2143 kbps

Ang 1414 at 1429 kbps ay tiyak na hindi sapat upang magpadala ng hindi naka-compress na audio sa totoong mga kondisyon, na may maingay na 2.4 GHz na hanay at ang pangangailangang magpadala ng data ng serbisyo. Ang EDR 3 Mbit/s ay hinihingi sa transmission power at ingay sa himpapawid, samakatuwid, kahit na sa 3-DH5 mode, ang komportableng paghahatid ng PCM ay imposible, palaging may mga panandaliang pagkaantala, at lahat ay gagana lamang sa layo ng isang ilang metro.
Sa pagsasagawa, kahit na ang isang 990 kbit/s audio stream (LDAC 990 kbit/s) ay mahirap ipadala.

Bumalik tayo sa mga codec.

SBC

Kinakailangan ang codec para sa lahat ng device na sumusuporta sa A2DP standard. Ang pinakamahusay at pinakamasamang codec sa parehong oras.

Dalas ng sampling
Bit depth
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

16, 32, 44.1, 48 kHz
16 bit
10-1500 kbps
Lahat ng device
Lahat ng device

Ang SBC ay isang simple at mabilis na computation na codec, na may primitive na psychoacoustic na modelo (ang masking lamang ng mga tahimik na tunog ang inilalapat), gamit ang adaptive pulse code modulation (APCM).
Ang detalye ng A2DP ay nagrerekomenda ng dalawang profile para sa paggamit: Gitnang Kalidad at Mataas na Kalidad.
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Ang codec ay may maraming mga setting na nagbibigay-daan sa iyo upang makontrol ang algorithmic na pagkaantala, ang bilang ng mga sample sa isang bloke, ang bit distribution algorithm, ngunit halos saanman ang parehong mga parameter na inirerekomenda sa detalye ay ginagamit: Pinagsamang Stereo, 8 frequency band, 16 na bloke sa isang audio frame, Loudness bit distribution method.
Sinusuportahan ng SBC ang dynamic na pagbabago ng parameter ng Bitpool, na direktang nakakaapekto sa bitrate. Kung ang mga airwave ay barado, ang mga packet ay nawala, o ang mga device ay matatagpuan sa malalayong distansya, ang audio source ay maaaring bawasan ang Bitpool hanggang sa bumalik sa normal ang komunikasyon.

Karamihan sa mga tagagawa ng headphone ay nagtatakda ng maximum na halaga ng Bitpool sa 53, na naglilimita sa bitrate sa 328 kilobits bawat segundo kapag ginagamit ang inirerekomendang profile.
Kahit na itinakda ng tagagawa ng headphone ang maximum na halaga ng Bitpool sa itaas 53 (matatagpuan ang mga ganitong modelo, halimbawa: Beats SoloΒ³, JBL Everest Elite 750NC, Apple AirPods, na matatagpuan din sa ilang receiver at head unit ng kotse), hindi papayagan ng karamihan sa OS. ang paggamit ng tumaas na mga bitrate dahil sa pagtatakda ng panloob na limitasyon ng halaga sa mga stack ng Bluetooth.
Bukod pa rito, itinakda ng ilang manufacturer ang maximum na halaga ng Bitpool sa mababa para sa ilang device. Halimbawa, para sa Bluedio T ito ay 39, para sa Samsung Gear IconX ito ay 37, na nagbibigay ng mahinang kalidad ng tunog.

Ang mga artipisyal na paghihigpit sa bahagi ng mga developer ng Bluetooth stack ay malamang na lumitaw dahil sa hindi pagkakatugma ng ilang mga device na may malalaking halaga ng Bitpool o hindi tipikal na mga profile, kahit na nag-ulat sila ng suporta para sa kanila, at hindi sapat na pagsubok sa panahon ng sertipikasyon. Mas madali para sa mga may-akda ng Bluetooth stack na limitahan ang kanilang mga sarili sa pagsang-ayon sa inirerekumendang profile, sa halip na lumikha ng mga database ng mga maling device (bagama't ngayon ay ginagawa nila ito para sa iba pang mga function na hindi gumagana).

Ang SBC ay dynamic na naglalaan ng mga quantization bit sa mga frequency band sa mababang-hanggang-mataas na batayan, na may iba't ibang timbang. Kung ang lahat ng bitrate ay ginamit para sa mababa at katamtamang mga frequency, ang matataas na frequency ay "puputol" (magkakaroon ng katahimikan sa halip).

Halimbawa ng SBC 328 kbps. Sa itaas ay ang orihinal, sa ibaba ay ang SBC, pana-panahong nagpapalipat-lipat sa pagitan ng mga track. Ang audio sa video file ay gumagamit ng FLAC lossless compression codec. Ang paggamit ng FLAC sa isang mp4 na lalagyan ay hindi opisyal na na-standardize, kaya hindi ginagarantiyahan na ipe-play ito ng iyong browser, ngunit dapat itong gumana sa mga pinakabagong bersyon ng desktop Chrome at Firefox. Kung wala kang tunog, maaari mong i-download ang file at buksan ito sa isang ganap na video player.
ZZ Top - Lalaking Matalim ang Bihisan

Ipinapakita ng spectrogram ang sandali ng paglipat: Pana-panahong pinuputol ng SBC ang mga tahimik na tunog sa itaas ng 17.5 kHz, at hindi naglalaan ng anumang bit para sa banda na higit sa 20 kHz. Ang buong spectrogram ay makukuha sa pamamagitan ng pag-click (1.7 MB).
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Wala akong naririnig na pagkakaiba sa pagitan ng orihinal at SBC sa track na ito.

Kumuha tayo ng mas bago at gayahin ang audio na makukuha gamit ang Samsung Gear IconX headphones na may Bitpool 37 (sa itaas - ang orihinal na signal, sa ibaba - SBC 239 kbps, audio sa FLAC).
Walang-isip na Pagpapasaya sa Sarili - Saksi

Nakarinig ako ng kaluskos, hindi gaanong stereo effect at isang hindi kasiya-siyang "clunking" na tunog sa matataas na frequency ng mga vocal.

Bagama't ang SBC ay isang napaka-flexible na codec, maaari itong i-configure para sa mababang latency, nagbibigay ng mahusay na kalidad ng audio sa mataas na bitrates (452+ kbps) at ito ay lubos na mabuti para sa karamihan ng mga tao sa karaniwang High Quality (328 kbps), dahil sa katotohanan na iyon ang pamantayan ng A2DP ay hindi tumutukoy sa mga nakapirming profile (ngunit nagbibigay lamang ng mga rekomendasyon), ang mga developer ng stack ay nagtakda ng mga artipisyal na paghihigpit sa Bitpool, ang mga parameter ng ipinadalang audio ay hindi ipinapakita sa interface ng gumagamit, at ang mga tagagawa ng headphone ay malayang magtakda ng kanilang sariling mga setting at hindi kailanman. ipahiwatig ang halaga ng Bitpool sa mga teknikal na pagtutukoy ng produkto, naging tanyag ang codec sa mababang kalidad ng tunog nito, kahit na hindi ito problema sa codec tulad nito.
Ang parameter ng Bitpool ay direktang nakakaapekto sa bitrate sa loob lamang ng isang profile. Ang parehong halaga ng Bitpool 53 ay maaaring magbigay ng parehong bitrate na 328 kbps na may inirerekomendang High Quality na profile, at 1212 kbps na may Dual Channel at 4 na frequency band, kaya naman ang mga may-akda ng OS, bilang karagdagan sa mga paghihigpit sa Bitpool, ay nagtakda ng limitasyon at sa Bitrate. Tulad ng nakikita ko, lumitaw ang sitwasyong ito dahil sa isang depekto sa pamantayan ng A2DP: kinakailangan na makipag-ayos sa bitrate, hindi Bitpool.

Talaan ng suporta para sa mga kakayahan ng SBC sa iba't ibang OS:

OS
Mga sinusuportahang sampling rate
Limitahan ang max. Bitpool
Limitahan ang max. Bitrate
Karaniwang Bitrate
Bitpool dynamic na pagsasaayos

Windows 10
44.1 ΠΊΠ“Ρ†
53
512 kbps
328 kbps
βœ“*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (para sa mga papasok na koneksyon), 53 (para sa mga papalabas na koneksyon)
Walang limitasyon
328 kbps
βœ“*

macOS High Sierra
44.1 ΠΊΠ“Ρ†
64, default na 53***
Hindi kilala
328 kbps
βœ—

Android 4.4-9
44.1/48 kHz**
53
328 kbps
328 kbps
βœ—

Android 4.1-4.3.1
44.1, 48 kHz**
53
229 kbps
229 kbps
βœ—

Blackberry OS 10
48 ΠΊΠ“Ρ†
53
Walang limitasyon
328 kbps
βœ—

* Bumababa lang ang Bitpool, ngunit hindi awtomatikong tumataas, kung bumubuti ang mga kundisyon sa paglilipat. Upang maibalik ang Bitpool kailangan mong ihinto ang pag-playback, maghintay ng ilang segundo at simulan muli ang audio.
** Ang default na halaga ay depende sa mga setting ng stack na tinukoy kapag kino-compile ang firmware. Sa Android 8/8.1 ang frequency ay alinman sa 44.1 kHz o 48 kHz, depende sa mga setting sa panahon ng compilation, sa ibang mga bersyon 44.1 kHz at 48 kHz ay ​​sinusuportahan nang sabay-sabay.
*** Maaaring tumaas ang halaga ng Bitpool sa programa ng Bluetooth Explorer.

aptX at aptX HD

Ang aptX ay isang simple at mabilis na computationally codec, walang psychoacoustics, gamit ang adaptive differential pulse code modulation (ADPCM). Lumitaw noong 1988 (petsa ng pag-file patent napetsahan Pebrero 1988), bago ang Bluetooth, ito ay pangunahing ginagamit sa propesyonal na wireless audio equipment. Kasalukuyang pagmamay-ari ng Qualcomm, ay nangangailangan ng paglilisensya at royalties. Noong 2014: $6000 isang beses at β‰ˆ$1 bawat device, para sa mga batch na hanggang 10000 device (pinagmulan, p. 16).
Ang aptX at aptX HD ay magkaparehong codec, na may magkakaibang mga profile sa pag-encode.

Ang codec ay may isang parameter lamang - pagpili sa dalas ng sampling. Gayunpaman, mayroong pagpipilian ng numero/mode ng mga channel, ngunit sa lahat ng device na kilala ko (70+ piraso) Stereo lang ang sinusuportahan.

Codec
Dalas ng sampling
Bit depth
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

APTX
16, 32, 44.1, 48 kHz
16 bit
128 / 256 / 352 / 384 kbps (depende sa sampling rate)
Windows 10 (desktop at mobile), macOS, Android 4.4+/7*, Blackberry OS 10
Malawak na hanay ng mga audio device (hardware)

* Ang mga bersyon hanggang 7 ay nangangailangan ng pagbabago ng Bluetooth stack. Ang codec ay sinusuportahan lamang kung ang tagagawa ng Android device ay nagbigay ng lisensya sa codec mula sa Qualcomm (kung ang OS ay may mga encoding na library).

Hinahati ng aptX ang audio sa 4 na frequency band at patuloy na binibilang ang mga ito sa parehong bilang ng mga bit: 8 bits para sa 0-5.5 kHz, 4 bits para sa 5.5-11 kHz, 2 bits para sa 11-16.5 kHz, 2 bits para sa 16.5-22 kHz ( mga numero para sa sampling rate 44.1 kHz).

Halimbawa ng aptX audio (sa itaas - ang orihinal na signal, sa ibaba - aptX, spectrograms ng mga kaliwang channel lang, tunog sa FLAC):

Medyo namula ang taas, ngunit hindi mo maririnig ang pagkakaiba.

Dahil sa nakapirming pamamahagi ng mga quantization bit, hindi maaaring "ilipat ng codec ang mga bit" sa mga frequency na higit na nangangailangan ng mga ito. Hindi tulad ng SBC, ang aptX ay hindi "magpuputol" ng mga frequency, ngunit magdaragdag ng ingay ng quantization sa mga ito, na binabawasan ang dynamic na hanay ng audio.

Hindi dapat ipagpalagay na ang paggamit, halimbawa, ng 2 bits bawat banda ay binabawasan ang dynamic range sa 12 dB: Ang ADPCM ay nagbibigay-daan sa hanggang 96 dB ng dynamic range kahit na gumagamit ng 2 quantization bits, ngunit para lamang sa isang tiyak na signal.
Iniimbak ng ADPCM ang pagkakaiba sa numero sa pagitan ng kasalukuyang sample at ng susunod na sample, sa halip na iimbak ang ganap na halaga tulad ng sa PCM. Ito ay nagpapahintulot sa iyo na bawasan ang mga kinakailangan para sa bilang ng mga bit na kailangan upang mag-imbak ng pareho (nang walang pagkawala) o halos pareho (na may isang medyo maliit na rounding error) na impormasyon. Upang mabawasan ang mga error sa pag-ikot, ginagamit ang mga talahanayan ng koepisyent.
Kapag gumagawa ng codec, kinakalkula ng mga may-akda ang mga coefficient ng ADPCM sa isang set ng mga audio file ng musika. Kung mas malapit ang audio signal sa hanay ng musika kung saan binuo ang mga talahanayan, mas kaunting mga error sa quantization (ingay) ang nalilikha ng aptX.

Dahil dito, ang mga synthetic na pagsubok ay palaging magbubunga ng mas masahol na resulta kaysa sa musika. Gumawa ako ng espesyal na sintetikong halimbawa kung saan ang aptX ay nagpapakita ng hindi magandang resulta - isang sine wave na may dalas na 12.4 kHz (sa itaas - ang orihinal na signal, sa ibaba - aptX. Audio sa FLAC. Ibaba ang volume!):

Spectrum graph:
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Malinaw na naririnig ang mga ingay.

Gayunpaman, kung bubuo ka ng sine wave na may mas maliit na amplitude upang ito ay mas tahimik, ang ingay ay magiging mas tahimik, na nagpapahiwatig ng isang malawak na dynamic na hanay:

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Upang marinig ang pagkakaiba sa pagitan ng orihinal na track ng musika at ng naka-compress, maaari mong baligtarin ang isa sa mga signal at idagdag ang channel ng mga track ayon sa channel. Ang diskarte na ito ay, sa pangkalahatan, hindi tama, at hindi magbibigay ng matino na mga resulta na may mas kumplikadong mga codec, ngunit partikular para sa ADPCM ito ay lubos na angkop.
Pagkakaiba sa pagitan ng orihinal at aptX
Ang root mean square difference ng mga signal ay nasa antas na -37.4 dB, na hindi gaanong para sa naturang naka-compress na musika.

aptXHD

Ang aptX HD ay hindi isang standalone na codec - ito ay isang pinahusay na profile sa pag-encode ng aptX codec. Naapektuhan ng mga pagbabago ang bilang ng mga bit na nakalaan para sa mga saklaw ng dalas ng pag-encode: 10 bit para sa 0-5.5 kHz, 6 bit para sa 5.5-11 kHz, 4 bit para sa 11-16.5 kHz, 4 bit para sa 16.5-22 kHz (mga digit para sa 44.1 kHz) .

Codec
Dalas ng sampling
Bit depth
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

aptXHD
16, 32, 44.1, 48 kHz
24 bits
192 / 384 / 529 / 576 kbps (depende sa sampling rate)
Android 8+*
Ilang audio device (hardware)

* Ang mga bersyon hanggang 7 ay nangangailangan ng pagbabago ng Bluetooth stack. Ang codec ay sinusuportahan lamang kung ang tagagawa ng Android device ay nagbigay ng lisensya sa codec mula sa Qualcomm (kung ang OS ay may mga encoding na library).

Hindi gaanong karaniwan kaysa sa aptX: tila nangangailangan ng hiwalay na paglilisensya mula sa Qualcomm, at hiwalay na mga bayarin sa lisensya.

Ulitin natin ang halimbawa na may sine wave sa 12.4 kHz:
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Much better than aptX, pero medyo maingay pa rin.

aptX Mababang Latency

Isang codec mula sa Qualcomm na walang pagkakatulad sa karaniwang aptX at aptX HD, batay sa limitadong impormasyon mula sa mga taong kasangkot sa pagbuo nito. Idinisenyo para sa interactive na low-latency na pagpapadala ng audio (mga pelikula, laro), kung saan ang pagkaantala ng audio ay hindi maaaring isaayos ng software. Walang kilalang mga pagpapatupad ng software ng mga encoder at decoder; eksklusibo silang sinusuportahan ng mga transmitter, receiver, headphone at speaker, ngunit hindi ng mga smartphone at computer.

Dalas ng sampling
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

44.1 ΠΊΠ“Ρ†
276/420 kbps
Ilang transmitters (hardware)
Ilang audio device (hardware)

AAC

Ang AAC, o Advanced Audio Coding, ay isang computationally complex na codec na may seryosong psychoacoustic na modelo. Malawakang ginagamit para sa audio sa Internet, pangalawa sa kasikatan pagkatapos ng MP3. Nangangailangan ng paglilisensya at royalties: $15000 minsanan (o $1000 para sa mga kumpanyang may mas mababa sa 15 empleyado) + $0.98 para sa unang 500000 na device (pinagmulan).
Ang codec ay na-standardize sa loob ng MPEG-2 at MPEG-4 na mga detalye, at salungat sa karaniwang maling kuru-kuro, hindi ito pagmamay-ari ng Apple.

Dalas ng sampling
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

8 - 96 kHz
8 - 576 kbps (para sa stereo), 256 - 320 kbps (karaniwang para sa Bluetooth)
macOS, Android 7+*, iOS
Malawak na hanay ng mga audio device (hardware)

* sa mga device lamang na ang mga manufacturer ay nagbayad ng mga bayarin sa paglilisensya

Ginagamit ng iOS at macOS ang kasalukuyang pinakamahusay na AAC encoder ng Apple upang maihatid ang pinakamataas na posibleng kalidad ng audio. Ginagamit ng Android ang pangalawang pinakamataas na kalidad na Fraunhofer FDK AAC encoder, ngunit maaaring gumamit ng iba't ibang hardware na nakapaloob sa platform (SoC) na may hindi alam na kalidad ng pag-encode. Ayon sa kamakailang mga pagsubok sa website ng SoundGuys, ang kalidad ng pag-encode ng AAC ng iba't ibang mga Android phone ay lubhang nag-iiba:
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Karamihan sa mga wireless na audio device ay may maximum na bitrate na 320 kbps para sa AAC, ang ilan ay sumusuporta lamang sa 256 kbps. Ang iba pang mga bitrate ay napakabihirang.
Nagbibigay ang AAC ng mahusay na kalidad sa 320 at 256 kbps bitrates, ngunit napapailalim sa pagkawala ng sequential encoding ng naka-compress na content, gayunpaman, mahirap marinig ang anumang mga pagkakaiba sa orihinal sa iOS sa bitrate na 256 kbps kahit na may ilang magkakasunod na pag-encode; sa isang pag-encode, halimbawa, MP3 320 kbps hanggang AAC 256 kbps, maaaring mapabayaan ang mga pagkalugi.
Tulad ng iba pang mga Bluetooth codec, ang anumang musika ay unang na-decode at pagkatapos ay na-encode ng codec. Kapag nakikinig sa musika sa AAC format, ito ay unang na-decode ng OS, pagkatapos ay na-encode muli sa AAC para sa paghahatid sa pamamagitan ng Bluetooth. Ito ay kinakailangan para sa paghahalo ng maraming audio stream, tulad ng musika at mga bagong notification ng mensahe. Ang iOS ay walang pagbubukod. Sa Internet maaari kang makahanap ng maraming mga pahayag na sa iOS na musika sa format na AAC ay hindi na-transcode kapag ipinadala sa pamamagitan ng Bluetooth, na hindi totoo.

MP1/2/3

Ang mga codec ng MPEG-1/2 Part 3 na pamilya ay binubuo ng kilala at malawakang ginagamit na MP3, ang hindi gaanong karaniwang MP2 (pangunahing ginagamit sa digital TV at radyo), at ang ganap na hindi kilalang MP1.

Ang mga lumang MP1 at MP2 codec ay hindi suportado: Wala akong mahanap na anumang headphone o Bluetooth stack na mag-e-encode o magde-decode sa kanila.
Ang pag-decode ng MP3 ay sinusuportahan ng ilang headphone, ngunit hindi sinusuportahan ang pag-encode sa anumang modernong stack ng operating system. Mukhang ang third-party na BlueSoleil stack para sa Windows ay maaaring mag-encode sa MP3 kung manu-mano mong babaguhin ang configuration file, ngunit para sa akin ang pag-install nito ay humahantong sa BSoD sa Windows 10. Konklusyon - ang codec ay talagang hindi magagamit para sa Bluetooth na audio.
Dati, noong 2006-2008, bago ang pagkalat ng pamantayang A2DP sa mga device, nakinig ang mga tao sa MP3 na musika sa Nokia BH-501 headset sa pamamagitan ng MSI BluePlayer program, na available sa Symbian at Windows Mobile. Sa oras na iyon, pinapayagan ng arkitektura ng OS ng mga smartphone ang pag-access sa maraming mga mababang antas ng pag-andar, at sa Windows Mobile posible pa ring mag-install ng mga third-party na Bluetooth stack.

Ang huling patent ng MP3 codec ay nag-expire, ang paggamit ng codec ay hindi nangangailangan ng mga bayarin sa paglilisensya mula noong Abril 23, 2017.

Kung ang pinakamatagal na tumatakbong patent na binanggit sa mga nabanggit na sanggunian ay kinuha bilang isang panukala, ang teknolohiyang MP3 ay naging patent-free sa United States noong Abril 16, 2017 nang ang US Patent 6,009,399, na hawak at pinangangasiwaan ng Technicolor, ay nag-expire.

Pinagmulan: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

Dalas ng sampling
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

16 - 48 kHz
8 - 320 kbps
Hindi suportado kahit saan
Ilang audio device (hardware)

LDAC

Isang bago at aktibong pino-promote na "Hi-Res" na codec mula sa Sony, na sumusuporta sa mga sampling rate hanggang 96 kHz at 24-bit, na may bitrate na hanggang 990 kbps. Ito ay ina-advertise bilang audiophile codec, bilang kapalit ng mga umiiral nang Bluetooth codec. Mayroon itong function ng adaptive bitrate adjustment, depende sa mga kondisyon ng radio broadcast.

LDAC encoder (libldac) ay kasama sa karaniwang Android package, kaya sinusuportahan ang pag-encode sa anumang Android smartphone na nagsisimula sa OS version 8. Walang malayang magagamit na mga software decoder, ang detalye ng codec ay hindi magagamit sa pangkalahatang publiko, gayunpaman, sa unang tingin sa encoder, ang panloob na istraktura ng codec ay katulad ng ATRAC9 - Ang codec ng Sony na ginamit sa PlayStation 4 at Vita: parehong gumagana sa frequency domain, gumagamit ng modified discrete cosine transform (MDCT) at compression gamit ang Huffman algorithm.

Ang suporta sa LDAC ay halos eksklusibong ibinibigay ng mga headphone mula sa Sony. Ang kakayahang mag-decode ng LDAC kung minsan ay matatagpuan sa mga headphone at DAC mula sa iba pang mga tagagawa, ngunit napakabihirang.

Dalas ng sampling
Bitrate
Suporta sa pag-encode
Suporta sa pag-decode

44.1 - 96 kHz
303/606/909 kbit/s (para sa 44.1 at 88.2 kHz), 330/660/990 kbit/s (para sa 48 at 96 kHz)
Android 8 +
Ilang Sony headphone at ilang device mula sa ibang mga manufacturer (hardware)

Ang pagmemerkado sa LDAC bilang isang Hi-Res codec ay nakakapinsala sa teknikal na bahagi nito: isang hangal na gumastos ng bitrate sa pagpapadala ng mga frequency na hindi maririnig sa tainga ng tao at pagtaas ng bit depth, habang hindi ito sapat upang magpadala ng kalidad ng CD (44.1/16) nang walang pagkawala . Sa kabutihang palad, ang codec ay may dalawang operating mode: CD audio transmission at Hi-Res audio transmission. Sa unang kaso, 44.1 kHz/16 bits lamang ang ipinapadala sa hangin.

Dahil ang isang software na LDAC decoder ay hindi malayang magagamit, imposibleng subukan ang codec nang walang karagdagang mga device na nagde-decode ng LDAC. Ayon sa mga resulta ng pagsubok ng LDAC sa isang DAC na may suporta nito, na ikinonekta ng mga inhinyero ng SoundGuys.com sa pamamagitan ng isang digital na output at naitala ang tunog ng output sa mga signal ng pagsubok, ang LDAC 660 at 990 kbps sa mode na kalidad ng CD ay nagbibigay ng signal-to- bahagyang mas mahusay ang ratio ng ingay kaysa sa aptX HD.

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device
Pinagmulan: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

Sinusuportahan din ng LDAC ang mga dynamic na bitrate sa labas ng mga naitatag na profile - mula 138 kbps hanggang 990 kbps, ngunit sa masasabi ko, ginagamit lang ng Android ang mga standardized na profile na 303/606/909 at 330/660/990 kbps.

Iba pang mga codec

Ang iba pang mga A2DP codec ay hindi malawakang ginagamit. Ang kanilang suporta ay alinman sa halos ganap na wala o magagamit lamang sa ilang mga modelo ng mga headphone at smartphone.
Ang ATRAC codec na na-standardize sa A2DP ay hindi kailanman ginamit bilang Bluetooth codec kahit ng Sony mismo, ang Samsung HD, Samsung Scalable at Samsung UHQ-BT codec ay may napakalimitadong suporta mula sa pagpapadala at pagtanggap ng mga device, at ang HWA LHDC ay masyadong bago at sinusuportahan lamang ang tatlo (?) mga aparato.

Suporta sa codec para sa mga audio device

Hindi lahat ng mga manufacturer ay nag-publish ng tumpak na impormasyon tungkol sa mga codec na sinusuportahan ng ilang mga wireless na headphone, speaker, receiver, o transmitter. Minsan nangyayari na ang suporta para sa isang tiyak na codec ay para lamang sa paghahatid, ngunit hindi para sa pagtanggap (may-katuturan para sa pinagsamang mga transmitters-receiver), bagaman ang tagagawa ay nagpahayag lamang ng "suporta", nang walang mga tala (Ipinapalagay ko na ang hiwalay na paglilisensya ng mga encoder at decoder ng ilang ang mga codec ay dapat sisihin para dito). Sa mga pinakamurang device, maaaring hindi mo mahanap ang ipinahayag na suporta sa aptX.

Sa kasamaang palad, ang mga interface ng karamihan sa mga operating system ay hindi nagpapakita ng codec na ginamit kahit saan. Available lang ang impormasyon tungkol dito sa Android, simula sa bersyon 8, at macOS. Gayunpaman, kahit na sa mga OS na ito, tanging ang mga codec na sinusuportahan ng parehong telepono/computer at headphone ang ipapakita.

Paano mo malalaman kung aling mga codec ang sinusuportahan ng iyong device? I-record at suriin ang traffic dump gamit ang mga parameter ng negosasyon ng A2DP!
Magagawa ito sa Linux, macOS at Android. Sa Linux maaari mong gamitin ang Wireshark o hcidump, sa macOS maaari mong gamitin ang Bluetooth Explorer, at sa Android maaari mong gamitin ang karaniwang Bluetooth HCI dump saving function, na available sa mga tool ng developer. Makakatanggap ka ng dump sa btsnoop na format, na maaaring i-load sa Wireshark analyzer.
Magbayad ng pansin: ang tamang dump ay maaari lamang makuha sa pamamagitan ng pagkonekta mula sa iyong telepono/computer sa mga headphone/speaker (gaano man ito nakakatawang tunog)! Ang mga headphone ay maaaring nakapag-iisa na magtatag ng isang koneksyon sa telepono, kung saan hihiling sila ng isang listahan ng mga codec mula sa telepono, at hindi kabaligtaran. Upang matiyak na naitala ang tamang dump, alisin muna ang pagkakapares sa device at pagkatapos ay ipares ang iyong telepono sa mga headphone habang nire-record ang dump.

Gamitin ang sumusunod na display filter upang i-filter ang walang kaugnayang trapiko:

btavdtp.signal_id

Bilang resulta, dapat mong makita ang isang bagay na katulad nito:
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Maaari kang mag-click sa bawat item sa GetCapabilities command upang tingnan ang mga detalyadong katangian ng codec.
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Hindi alam ng Wireshark ang lahat ng mga identifier ng codec, kaya ang ilang mga codec ay kailangang i-decrypt nang manu-mano, tinitingnan ang talahanayan ng identifier sa ibaba:

Mandatory:
0x00 - SBC

Optional:
0x01 - MPEG-1,2 (aka MP3)
0x02 - MPEG-2,4 (aka AAC)
0x04 - ATRAC

Vendor specific:
0xFF 0x004F 0x01   - aptX
0xFF 0x00D7 0x24   - aptX HD
0xFF 0x000A 0x02   - aptX Low Latency
0xFF 0x00D7 0x02   - aptX Low Latency
0xFF 0x000A 0x01   - FastStream
0xFF 0x012D 0xAA   - LDAC
0xFF 0x0075 0x0102 - Samsung HD
0xFF 0x0075 0x0103 - Samsung Scalable Codec
0xFF 0x053A 0x484C - Savitech LHDC

0xFF 0x000A 0x0104 - The CSR True Wireless Stereo v3 Codec ID for AAC
0xFF 0x000A 0x0105 - The CSR True Wireless Stereo v3 Codec ID for MP3
0xFF 0x000A 0x0106 - The CSR True Wireless Stereo v3 Codec ID for aptX

Upang hindi manu-manong pag-aralan ang mga dump, gumawa ako ng isang serbisyo na awtomatikong susuriin ang lahat: btcodecs.valdikss.org.ru

Paghahambing ng mga codec. Aling codec ang mas mahusay?

Ang bawat codec ay may sariling mga pakinabang at disadvantages.
Gumagamit ang aptX at aptX HD ng mga hard-coded na profile na hindi mababago nang hindi binabago ang encoder at decoder. Hindi maaaring baguhin ng manufacturer ng telepono o ng headphone manufacturer ang bitrate o aptX encoding factor. Ang may-ari ng codec, Qualcomm, ay nagbibigay ng isang reference encoder sa anyo ng isang library. Ang mga katotohanang ito ay ang lakas ng aptX - alam mo nang maaga kung anong kalidad ng tunog ang makukuha mo, nang walang anumang "ngunit".

Ang SBC, sa kabaligtaran, ay may maraming mga parameter na maaaring i-configure, dynamic na bitrate (maaaring bawasan ng encoder ang parameter ng bitpool kung abala ang mga airwaves), at walang mga hard-coded na profile, tanging ang inirerekomendang "katamtamang kalidad" at "mataas na kalidad" na idinagdag sa detalye ng A2DP noong 2003 taon. Ang "mataas na kalidad" ay hindi na ganoon kataas ayon sa mga pamantayan ngayon, at karamihan sa mga Bluetooth stack ay hindi nagpapahintulot sa iyo na gumamit ng mga parameter nang mas mahusay kaysa sa "mataas na kalidad" na profile, bagama't walang mga teknikal na paghihigpit para dito.
Ang Bluetooth SIG ay walang reference na SBC encoder bilang isang library, at ang mga manufacturer ang mismong nagpapatupad nito.
Ito ang mga kahinaan ng SBC - hindi malinaw nang maaga kung anong kalidad ng tunog ang aasahan mula sa isang partikular na device. Ang SBC ay maaaring makagawa ng parehong mababa at napakataas na kalidad ng audio, ngunit ang huli ay hindi makakamit nang hindi pinapagana o nilalampasan ang mga artipisyal na limitasyon ng Bluetooth stack.

Ang sitwasyon sa AAC ay hindi maliwanag: sa isang banda, sa teoryang ang codec ay dapat gumawa ng kalidad na hindi makilala mula sa orihinal, ngunit sa pagsasagawa, sa paghusga sa mga pagsubok ng SoundGuys laboratoryo sa iba't ibang mga Android device, hindi ito nakumpirma. Malamang, ang kasalanan ay nasa mababang kalidad na hardware audio encoder na nakapaloob sa iba't ibang chipset ng telepono. Makatuwirang gamitin ang AAC sa mga Apple device lang, at sa Android upang limitahan ito sa aptX at LDAC.

Mas mataas ang kalidad ng hardware na sumusuporta sa mga alternatibong codec, dahil lang sa napakamura at mababang kalidad na mga device, hindi makatuwirang magbayad ng mga bayarin sa paglilisensya para magamit ang mga codec na iyon. Sa aking mga pagsusulit, napakaganda ng tunog ng SBC sa kalidad ng kagamitan.

Gumawa ako ng serbisyo sa web na nag-encode ng audio sa SBC, aptX at aptX HD nang real time, sa browser mismo. Gamit ito, maaari mong subukan ang mga audio codec na ito nang hindi aktwal na nagpapadala ng audio sa pamamagitan ng Bluetooth, sa anumang wired na headphone, speaker, at paborito mong musika, at direktang baguhin ang mga parameter ng pag-encode habang nagpe-play ng audio:
btcodecs.valdikss.org.ru/sbc-encoder
Ginagamit ng serbisyo ang mga SBC coding library mula sa proyekto ng BlueZ at libopenaptx mula sa ffmpeg, na pinagsama-sama sa WebAssembly at JavaScript mula sa C, sa pamamagitan ng emscripten, upang tumakbo sa browser. Sino ang maaaring mangarap ng gayong hinaharap!

Narito kung ano ang hitsura nito:

Pansinin kung paano nagbabago ang antas ng ingay pagkatapos ng 20 kHz para sa iba't ibang codec. Ang orihinal na MP3 file ay hindi naglalaman ng mga frequency na higit sa 20 kHz.

Subukang magpalit ng mga codec at tingnan kung naririnig mo ang pagkakaiba sa pagitan ng orihinal, SBC 53 Joint Stereo (ang karaniwan at pinakakaraniwang profile), at aptX/aptX HD.

Naririnig ko ang pagkakaiba sa pagitan ng mga codec sa mga headphone!

Sinasabi ng mga taong hindi nakakarinig ng pagkakaiba sa pagitan ng mga codec sa panahon ng pagsubok sa pamamagitan ng isang serbisyo sa web na naririnig nila ito kapag nakikinig ng musika sa mga wireless na headphone. Naku, hindi ito biro o epekto ng placebo: ang pagkakaiba ay talagang naririnig, ngunit hindi ito sanhi ng mga pagkakaiba mga codec.

Ang karamihan sa mga Bluetooth audio chipset na ginagamit sa mga wireless receiving device ay nilagyan ng Digital Signal Processor (DSP), na nagpapatupad ng equalizer, compander, stereo expander, at iba pang bagay na idinisenyo upang pahusayin (o baguhin) ang tunog. Maaaring i-configure ng mga tagagawa ng Bluetooth equipment ang DSP para sa bawat codec nang hiwalay, at kapag nagpalipat-lipat sa pagitan ng mga codec, iisipin ng nakikinig na nakakarinig sila ng pagkakaiba sa pagpapatakbo ng mga codec, kapag sa totoo ay nakikinig sila sa iba't ibang mga setting ng DSP.

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device
DSP Kalimba audio processing pipeline sa mga chips na ginawa ng CSR/Qualcomm

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device
I-activate ang iba't ibang mga function ng DSP para sa bawat codec at output nang hiwalay

Ang ilang mga premium na device ay may kasamang software na nagbibigay-daan sa iyong i-customize ang mga setting ng DSP, ngunit karamihan sa mga mas murang headphone ay hindi, at hindi maaaring i-off ng mga user ang audio post-processing nang manu-mano.

Mga functional na tampok ng mga device

Ang modernong bersyon ng pamantayang A2DP ay may "ganap na kontrol ng volume" na function β€” kontrol ng volume ng device gamit ang mga espesyal na utos ng AVRCP protocol, na kinokontrol ang pakinabang ng yugto ng output, sa halip na binabawasan ng programmatically ang volume ng audio stream. Kung kapag binago mo ang volume sa iyong mga headphone, ang pagbabago ay hindi nagsi-sync sa volume sa iyong telepono, hindi sinusuportahan ng iyong headphone o telepono ang feature na ito. Sa kasong ito, makatuwiran na palaging makinig sa musika na may maximum na volume sa telepono, pagsasaayos ng aktwal na volume gamit ang mga pindutan ng headphone - sa kasong ito, ang ratio ng signal-to-ingay ay magiging mas mahusay at ang kalidad ng audio dapat mas mataas.
Sa katotohanan, may mga malungkot na sitwasyon. Sa aking RealForce OverDrive D1 headphones para sa SBC, ang isang malakas na compander ay naka-on, at ang pagtaas ng volume ay humahantong sa pagtaas sa antas ng mga tahimik na tunog, habang ang dami ng malalakas na tunog ay hindi nagbabago (ang signal ay naka-compress). Dahil dito, kailangan mong itakda ang volume sa computer sa halos kalahati, kung saan halos walang epekto ng compression.
Ayon sa aking mga obserbasyon, ang lahat ng mga headphone na may karagdagang mga codec ay sumusuporta sa ganap na pag-andar ng kontrol ng volume, tila ito ay isa sa mga kinakailangan para sa sertipikasyon ng codec.

Ang ilang mga headphone ay sumusuporta pagkonekta ng dalawang device sa parehong oras. Nagbibigay-daan ito sa iyo, halimbawa, na makinig sa musika mula sa iyong computer at makatanggap ng mga tawag mula sa iyong telepono. Gayunpaman, dapat mong malaman na sa mode na ito ang mga alternatibong codec ay hindi pinagana at tanging SBC ang ginagamit.

AVDTP 1.3 Delay Reporting function nagbibigay-daan sa mga headphone na ipaalam ang pagkaantala sa transmitting device kung saan aktwal na nilalaro ang tunog. Pinapayagan ka nitong ayusin ang pag-synchronize ng audio sa video habang tinitingnan ang mga video file: kung may mga problema sa pagpapadala ng radyo, ang audio ay hindi mahuhuli sa video, ngunit sa kabaligtaran, ang video ay pabagalin ng video player hanggang sa muling na-synchronize ang audio at video.
Ang function ay sinusuportahan ng maraming headphone, Android 9+ at Linux na may PulseAudio 12.0+. Hindi ko alam ang suporta para sa feature na ito sa ibang mga platform.

Bidirectional na komunikasyon sa pamamagitan ng Bluetooth. Pagpapadala ng boses.

Para sa voice transmission sa Bluetooth, Synchronous Connection Oriented (SCO) ang ginagamit - synchronous transmission na may paunang negosasyon ng koneksyon. Pinapayagan ka ng mode na magpadala ng tunog at boses nang mahigpit sa pagkakasunud-sunod, na may simetriko na bilis ng pagpapadala at pagtanggap, nang hindi naghihintay ng kumpirmasyon ng paghahatid at muling pagpapadala ng mga packet. Binabawasan nito ang pangkalahatang pagkaantala ng pagpapadala ng audio sa channel ng radyo, ngunit nagpapataw ng mga seryosong paghihigpit sa dami ng data na ipinadala sa bawat yunit ng oras, at negatibong nakakaapekto sa kalidad.
Kapag ginamit ang mode na ito, ang boses at audio ay ipinapadala na may parehong kalidad.
Sa kasamaang palad, noong 2019, mahina pa rin ang kalidad ng boses sa Bluetooth, at hindi malinaw kung bakit walang ginagawa ang Bluetooth SIG tungkol dito.

CVSD

Ang pangunahing CVSD speech codec ay na-standardize noong 2002, at sinusuportahan ng lahat ng bidirectional na Bluetooth na mga aparato sa komunikasyon. Nagbibigay ito ng audio transmission na may sampling frequency na 8 kHz, na tumutugma sa kalidad ng conventional wired telephony.

Isang halimbawa ng recording sa codec na ito.

mSBC

Ang karagdagang mSBC codec ay na-standardize noong 2009, at noong 2010 ay lumitaw na ang mga chips na gumagamit nito para sa voice transmission. Ang mSBC ay malawak na sinusuportahan ng iba't ibang device.
Ito ay hindi isang independiyenteng codec, ngunit isang regular na SBC mula sa pamantayan ng A2DP, na may nakapirming profile sa pag-encode: 16 kHz, mono, bitpool 26.

Isang halimbawa ng recording sa codec na ito.

Hindi napakatalino, ngunit mas mahusay kaysa sa CVSD, ngunit nakakainis pa ring gamitin para sa online na komunikasyon, lalo na kapag gumagamit ka ng mga headphone upang makipag-usap sa laro - ang audio ng laro ay ipapadala din sa isang sampling rate na 16 kHz.

Nagpasya ang kumpanya ng FastStreamCSR na bumuo ng ideya ng paggamit ng SBC. Upang makayanan ang mga limitasyon ng SCO protocol at gumamit ng mas matataas na bitrate, lumipat ang CSR sa ibang ruta - ipinakilala nila ang suporta para sa two-way na SBC audio sa A2DP one-way audio transmission standard, standardized encoding profile, at tinawag itong "FastStream".

Nagpapadala ang FastStream ng stereo audio sa 44.1 o 48 kHz na may bitrate na 212 kbps sa mga speaker, at ang mono, 16 kHz, na may bitrate na 72 kbps ay ginagamit upang magpadala ng audio mula sa mikropono (medyo mas mahusay kaysa sa mSBC). Ang ganitong mga parameter ay mas angkop para sa komunikasyon sa mga online na laro - ang tunog ng laro at ang mga interlocutors ay magiging may mataas na kalidad.

Isang halimbawa ng recording sa codec na ito (+ tunog mula sa mikropono, katulad ng mSBC).

Ang kumpanya ay dumating sa isang kawili-wiling saklay, ngunit dahil sa ang katunayan na ito ay sumasalungat sa A2DP standard, ito ay suportado lamang sa ilan sa mga transmitters ng kumpanya (na gumagana bilang isang USB audio card, hindi isang Bluetooth device), ngunit ito ay hindi. makatanggap ng suporta sa mga Bluetooth stack. kahit na ang bilang ng mga headphone na may suporta sa FastStream ay hindi masyadong maliit.

Sa ngayon, ang suporta ng FastStream sa OS ay tanging bilang isang patch para sa Linux PulseAudio mula sa developer na si Pali RohΓ‘r, na hindi kasama sa pangunahing sangay ng programa.

aptX Mababang Latency

Laking gulat mo, sinusuportahan din ng aptX Low Latency ang bidirectional audio, na nagpapatupad ng parehong prinsipyo gaya ng FastStream.
Hindi posibleng gamitin ang feature na ito ng codec kahit saan - walang suporta para sa Low Latency decoding sa anumang OS o sa anumang Bluetooth stack na kilala ko.

Bluetooth 5, Classic at Mababang Enerhiya

Nagkaroon ng maraming kalituhan tungkol sa mga pagtutukoy at bersyon ng Bluetooth dahil sa pagkakaroon ng dalawang hindi magkatugmang pamantayan sa ilalim ng parehong tatak, na parehong malawakang ginagamit para sa iba't ibang layunin.

Mayroong dalawang magkaibang, hindi tugmang Bluetooth protocol: Bluetooth Classic at Bluetooth Low Energy (LE, kilala rin bilang Bluetooth Smart). Mayroon ding ikatlong protocol, ang Bluetooth High Speed, ngunit hindi ito laganap at hindi ginagamit sa mga device sa bahay.

Simula sa Bluetooth 4.0, ang mga pagbabago sa detalye ay pangunahing nauugnay sa Bluetooth Low Energy, at ang Classic na bersyon ay nakatanggap lamang ng maliliit na pagpapahusay.

Listahan ng mga pagbabago sa pagitan ng Bluetooth 4.2 at Bluetooth 5:

9 PAGBABAGO MULA v4.2 HANGGANG 5.0

9.1 BAGONG MGA TAMPOK

Maraming bagong feature ang ipinakilala sa Bluetooth Core Specification 5.0 Release. Ang mga pangunahing lugar ng pagpapabuti ay:
β€’ Slot Availability Mask (SAM)
β€’ 2 Msym/s PHY para sa LE
β€’LE Long Range
β€’ High Duty Cycle na Non-Connectable na Advertising
β€’ Mga Extension ng LE Advertising
β€’ LE Channel Selection Algorithm #2
9.1.1 Mga Tampok na Idinagdag sa CSA5 - Pinagsama sa v5.0
β€’ Mas Mataas na Output Power

Pinagmulan: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (pahina 291)

Isang pagbabago lang ang nakaapekto sa Classic na bersyon sa loob ng balangkas ng pagtutukoy ng Bluetooth 5: nagdagdag sila ng suporta para sa teknolohiya ng Slot Availability Mask (SAM), na idinisenyo upang pahusayin ang radio broadcast separation. Ang lahat ng iba pang mga pagbabago ay nakakaapekto lamang sa Bluetooth LE (at Mas Mataas na Output Power din).

lahat Bluetooth Classic lang ang ginagamit ng mga audio device. Imposibleng ikonekta ang mga headphone at speaker sa pamamagitan ng Bluetooth Low Energy: walang pamantayan para sa pagpapadala ng audio gamit ang LE. Ang pamantayang A2DP, na ginagamit para sa pagpapadala ng mataas na kalidad na audio, ay gumagana lamang sa pamamagitan ng Bluetooth Classic, at walang analogue sa LE.

Konklusyon - ang pagbili ng mga audio device na may Bluetooth 5 dahil lamang sa bagong bersyon ng protocol ay walang kabuluhan. Ang Bluetooth 4.0/4.1/4.2 sa konteksto ng paghahatid ng audio ay gagana nang eksakto sa parehong paraan.
Kung binanggit ng anunsyo ng mga bagong headphone ang dobleng saklaw ng pagpapatakbo at nabawasan ang pagkonsumo ng kuryente salamat sa Bluetooth 5, dapat mong malaman na hindi nila ito naiintindihan sa kanilang sarili o nililinlang ka. Hindi nakakagulat, dahil kahit na ang mga tagagawa ng Bluetooth chips sa kanilang mga anunsyo ay nalilito tungkol sa mga pagkakaiba sa pagitan ng bagong bersyon ng pamantayan, at ang ilang Bluetooth 5 chips ay sumusuporta sa ikalimang bersyon para lamang sa LE, at gumagamit ng 4.2 para sa Classic.

Pagkaantala ng paghahatid ng audio

Ang dami ng pagkaantala (lag) sa audio ay nakadepende sa maraming salik: ang laki ng buffer sa audio stack, sa Bluetooth stack at sa mismong wireless playback device, at ang algorithmic na pagkaantala ng codec.

Ang latency ng mga simpleng codec tulad ng SBC, aptX at aptX HD ay napakaliit, 3-6 ms, na maaaring mapabayaan, ngunit ang mga kumplikadong codec tulad ng AAC at LDAC ay maaaring magdulot ng kapansin-pansing lag. Ang AAC algorithmic latency para sa 44.1 kHz ay ​​60 ms. LDAC - mga 30 ms (batay sa isang magaspang na pagsusuri ng source code. Maaaring mali ako, ngunit hindi gaanong.)

Ang resultang latency ay lubos na nakadepende sa playback device, sa chipset at buffer nito. Sa panahon ng mga pagsubok, nakatanggap ako ng spread na 150 hanggang 250 ms sa iba't ibang device (na may SBC codec). Kung ipagpalagay namin na ang mga device na sumusuporta sa mga karagdagang codec na aptX, AAC at LDAC ay gumagamit ng mga de-kalidad na bahagi at maliit na laki ng buffer, makukuha namin ang mga sumusunod na tipikal na latency:

SBC: 150-250ms
aptX: 130-180 ms
AAC: 190-240 ms
LDAC: 160-210 ms

Paalalahanan ko kayo: hindi sinusuportahan ang aptX Low Latency sa mga operating system, kaya naman ang mas mababang latency ay makukuha lang gamit ang kumbinasyon ng transmitter+receiver o transmitter+headphone/speaker, at dapat suportahan ng lahat ng device ang codec na ito.

Mga isyu sa Bluetooth device, certification, at logo

Paano makilala ang isang de-kalidad na audio device mula sa isang murang craft? Sa hitsura, una sa lahat!

Para sa murang Chinese na headphone, speaker at receiver:

  1. Nawawala ang salitang "Bluetooth" sa kahon at device, "Wireless" at "BT" ang kadalasang ginagamit
  2. Nawawala ang logo ng Bluetooth Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device sa kahon o device
  3. Walang asul na kumikislap na LED

Ang kawalan ng mga elementong ito ay nagpapahiwatig na ang aparato ay hindi na-certify, na nangangahulugang ito ay potensyal na mababa ang kalidad at may problema. Halimbawa, ang mga Bluedio headphone ay hindi sertipikado ng Bluetooth at hindi ganap na sumusunod sa detalye ng A2DP. Hindi sana sila pumasa sa sertipikasyon.

Isaalang-alang natin ang ilang mga aparato at mga kahon mula sa kanila:
Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Audio sa pamamagitan ng Bluetooth: maximum na mga detalye tungkol sa mga profile, codec at device

Ang lahat ng ito ay hindi na-certify na mga device. Maaaring naglalaman ang mga tagubilin ng logo at pangalan ng teknolohiyang Bluetooth, ngunit ang pinakamahalagang bagay ay nasa kahon ang mga ito at/o mismong device.

Kung ang iyong headphone o speaker ay nagsasabing "Matagumpay na nakakonekta ang ze bluetooth dewise", hindi rin nito ipinapahiwatig ang kanilang kalidad:

Konklusyon

Maaari bang ganap na palitan ng Bluetooth ang mga wired na headphone at headset? May kakayahan ito, ngunit sa halaga ng mahinang kalidad ng tawag, tumaas na latency ng audio na maaaring nakakainis sa mga laro, at maraming proprietary codec na nangangailangan ng mga bayarin sa paglilisensya at nagpapataas ng panghuling halaga ng parehong mga smartphone at headphone.

Ang marketing ng mga alternatibong codec ay napakalakas: ang aptX at LDAC ay ipinakita bilang isang pinakahihintay na kapalit para sa "luma at masama" na SBC, na halos hindi kasingsama ng iniisip ng mga tao.

Tulad ng nangyari, ang mga artipisyal na limitasyon ng mga stack ng Bluetooth sa bitrate ng SBC ay maaaring i-bypass, upang ang SBC ay hindi magiging mas mababa sa aptX HD. Kinuha ko ang inisyatiba sa sarili kong mga kamay at gumawa ng patch para sa firmware ng LineageOS: Binabago namin ang Bluetooth stack para mapahusay ang tunog sa mga headphone na walang AAC, aptX at LDAC codec

Higit pang impormasyon ay matatagpuan sa mga website Sound Guys ΠΈ SoundExpert.

Bonus: SBC reference encoder, A2DP bitstream na impormasyon at mga test file. Ang file na ito ay dating nai-post sa publiko sa website ng Bluetooth, ngunit ngayon ay magagamit lamang sa mga miyembro ng Bluetooth SIG.

Pinagmulan: www.habr.com

Magdagdag ng komento