Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Kafin karanta wannan labarin, ana ba da shawarar karanta labarin da ya gabata: Audio ta Bluetooth: matsakaicin cikakkun bayanai game da bayanan martaba, codecs da na'urori

Wasu masu amfani da lasifikan kai mara igiyar waya suna ba da rahoton rashin ingancin sauti da ƙarancin mitoci yayin amfani da daidaitaccen codec na Bluetooth na SBC, wanda duk na'urorin sauti ke tallafawa. Shawarwari gama gari don haɓaka sauti shine siyan na'urori da belun kunne waɗanda ke tallafawa codecs aptX da LDAC. Waɗannan codecs suna buƙatar kuɗin lasisi, don haka na'urorin da ke goyan bayan su sun fi tsada.

Ya bayyana cewa ƙarancin ingancin SBC yana faruwa ne saboda ƙayyadaddun wucin gadi na faifan Bluetooth da saitunan wayar kai, kuma ana iya keɓance wannan iyakance akan kowace na'ura da ke akwai ta hanyar canza software zuwa wayar hannu ko kwamfuta.

Codec SBC

Codec na SBC yana da sigogi daban-daban da yawa waɗanda aka yi shawarwari yayin saitin haɗin gwiwa. Tsakanin su:

  • Lamba da nau'in tashoshi: Haɗin Stereo, Stereo, Tashoshi Dual, Mono;
  • Adadin maƙallan mitar: 4 ko 8;
  • Yawan tubalan a cikin kunshin: 4, 8, 12, 16;
  • Algorithm don rarraba ragowa yayin ƙididdigewa: ƙara, SNR;
  • Matsakaicin mafi ƙarancin ƙimar tafkin raƙuman ruwa da aka yi amfani da shi yayin ƙididdigewa (bitpool): yawanci daga 2 zuwa 53.

Dole ne na'urar yanke hukunci ta goyi bayan kowane haɗin waɗannan sigogi. Mai iya rikodin rikodin ba zai aiwatar da komai ba.
Makullin Bluetooth masu wanzuwa yawanci sun yarda da bayanin martaba mai zuwa: Joint Stereo, bandeji 8, tubalan 16, Ƙara, bitpool 2..53. Wannan bayanin martaba yana ɓoye sauti na 44.1 kHz a bitrate na 328 kbps.
Ma'aunin bitpool kai tsaye yana rinjayar bitrate a cikin bayanin martaba ɗaya: mafi girma shine, mafi girman bitrate, sabili da haka inganci.
Koyaya, ma'aunin bitpool ba a haɗa shi da takamaiman bayanin martaba ba; Hakanan ana samun tasirin bitrate ta hanyar wasu sigogi: nau'in tashoshi, adadin madaukai, adadin tubalan. Kuna iya ƙara bitrate a kaikaice, ta hanyar yarda akan bayanan da ba daidai ba, ba tare da canza bitpool ba.

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Formula don ƙididdige SBC bitrate

Misali, Yanayin Dual Channel yana ɓoye tashoshi daban, ta amfani da duka bitpool don kowane tashoshi. Ta tilasta wa na'urar yin amfani da Dual Channel maimakon Haɗin Sitiriyo, muna samun kusan ninki biyu na bitrate tare da matsakaicin matsakaicin ƙimar bitpool: 617 kbps.
A ra'ayi na, yin amfani da ƙimar bitpool ba a haɗa shi da bayanin martaba ba a matakin tattaunawa shine kuskure a cikin ma'auni na A2DP, wanda ya haifar da iyakancewar wucin gadi na ingancin SBC. Zai fi ma'ana don yin shawarwari akan bitrate maimakon bitpool.

Waɗannan ƙayyadaddun ƙayyadaddun ƙimar Bitpool da Bitrate sun samo asali daga tebur tare da ƙimar da aka ba da shawarar don amfani da sauti mai inganci. Amma shawara ba dalili ba ne don iyakance kanka ga waɗannan dabi'u.

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Ƙayyadaddun A2DP v1.2, wanda ke aiki daga 2007 zuwa 2015, yana buƙatar duk na'urorin yanke hukunci suyi aiki daidai tare da bitrates har zuwa 512 kbps:

Mai ƙididdigewa na SNK zai goyi bayan duk yuwuwar ƙimar bitpool waɗanda ba su haifar da wuce gona da iri ba. Wannan bayanin martaba yana ƙayyadadden matsakaicin matsakaicin matsakaicin adadin zuwa 320kb/s don mono, da 512kb/s don yanayin tashoshi biyu.

A cikin sabon sigar ƙayyadaddun ƙayyadaddun bayanai babu iyaka akan bitrate. An kiyasta cewa belun kunne na zamani da aka saki bayan 2015 waɗanda ke goyan bayan EDR na iya tallafawa ƙimar bit har zuwa ≈730 kbps.

Don wasu dalilai, Linux (PulseAudio), Android, Blackberry da macOS Bluetooth stacks da na gwada suna da iyakokin wucin gadi akan matsakaicin ƙimar ma'aunin bitpool, wanda kai tsaye yana rinjayar matsakaicin matsakaicin bitrate. Amma wannan ba shine babbar matsalar ba; kusan duk belun kunne kuma suna iyakance matsakaicin ƙimar bitpool zuwa 53.
Kamar yadda na riga na gani, yawancin na'urori suna aiki daidai a kan gyare-gyare na Bluetooth tare da bitrate na 551 kbps, ba tare da tsangwama ko fashewa ba. Amma irin wannan bitrate ba zai taɓa kasancewa mai daidaituwa a ƙarƙashin yanayin al'ada ba, akan tarin Bluetooth na yau da kullun.

Gyara tarin Bluetooth

Duk wani tari na Bluetooth wanda ya dace da ma'aunin A2DP yana da goyan baya ga yanayin Tashoshi Dual, amma ba zai yiwu a kunna shi daga mahaɗin ba.

Bari mu ƙara jujjuya zuwa wurin dubawa! Na yi faci don Android 8.1 da Android 9 waɗanda ke ƙara cikakken goyon bayan Dual Channel a cikin tari, ƙara yanayi zuwa menu na jujjuya yanayin a cikin kayan aikin dev, da kuma kula da SBCs masu kunna tashoshi Dual kamar su ƙarin codec kamar aptX , AAC, ko LDAC (Android tana kiran wannan HD Audio) ta ƙara alamar dubawa zuwa saitunan na'urar Bluetooth. Ga yadda abin yake:

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Patch don Android 9
Patch don Android 8.1

Lokacin da akwatin rajistan ya kunna, sautin Bluetooth yana fara watsawa a ɗan bitrate 551 kbps, idan belun kunne suna goyan bayan saurin haɗi na 3 Mbit/s, ko 452 kbps, idan belun kunne kawai suna goyan bayan 2 Mbit/s.

An haɗa wannan facin a cikin madadin firmware masu zuwa:

  • LineageOS
  • Sarkar Rana
  • crDroid

Daga ina 551 da 452 kbit/s suka fito?

Fasahar raba iska ta Bluetooth an ƙera ta don watsa manyan fakiti masu ƙayyadaddun ƙayyadaddun girman gaske. Canja wurin bayanai yana faruwa a cikin ramummuka, mafi girman adadin ramukan da aka aika a cikin canja wuri ɗaya shine 5. Hakanan akwai hanyoyin canja wuri waɗanda ke amfani da ramummuka 1 ko 3, amma ba 2 ko 4 ba. na 5 Mbit/s kuma har zuwa 679 bytes a gudun 2 Mbit/s, kuma a 1021 - 3 da 3 bytes, bi da bi.

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Idan muna so mu canja wurin ƙasa da bayanai fiye da 679 ko 1021 bytes, amma fiye da 367 ko 552 bytes, canja wurin zai kasance har yanzu yana ɗaukar ramummuka 5 kuma za a canja wurin bayanan a lokaci guda, wanda ke rage tasirin canja wurin.

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

SBC a cikin Yanayin Dual Channel, a 44100 Hz audio tare da sigogin Bitpool 38, tubalan 16 kowane firam, mitar mitar 8, yana ɓoye sauti cikin firam ɗin byte 164, tare da bitrate na 452 kbps.
Dole ne a lissafta sauti a cikin ka'idojin canja wurin L2CAP da AVDTP, waɗanda ke ɗaukar bytes 16 daga nauyin mai jiwuwa.

Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Don haka, watsawar Bluetooth guda ɗaya tare da ramummuka 5 na iya ɗaukar firam ɗin sauti guda 4:

679 (EDR 2 mbit/s DH5) - 4 (L2CAP) - 12 (AVDTP/RTP) - 1 (заголовок SBC) - (164*4) = 6

Mun shigar da bayanan sauti 11.7 ms a cikin fakitin da ake aikawa, wanda za a watsa a cikin 3.75 ms, kuma muna da baiti 6 da ba a yi amfani da su ba a cikin fakitin.
Idan ka ɗaga bitpool kadan, ba za a ƙara samun damar shirya firam ɗin sauti guda 4 cikin fakiti ɗaya ba. Dole ne ku aika firam 3 a lokaci guda, wanda ke rage ingancin watsawa, yana rage adadin sautin da ake watsawa kowane firam, kuma zai fi saurin haifar da tuntuɓe mai jiwuwa a cikin mummunan yanayin rediyo.

Hakazalika, an zaɓi bitrate na 551 kbit / s don EDR 3 Mbit / s: tare da Bitpool 47, 16 tubalan kowane firam, jeri 8, girman firam ɗin shine 200 bytes, tare da bitrate na 551 kbit/s. Kunshin ɗaya ya ƙunshi firam 5 ko 14.6 ms na kiɗa.

Algorithm don ƙididdige duk sigogin SBC yana da wahala sosai, zaku iya ruɗewa cikin sauƙi idan kun ƙidaya da hannu, don haka na yi ƙididdiga mai ma'amala don taimakawa masu sha'awar: btcodecs.valdikss.org.ru/sbc-bitrate-calculator

Me yasa ake buƙatar duk waɗannan?

Sabanin sanannen imani game da ingancin sauti na codec aptX, akan wasu fayiloli yana iya haifar da sakamako mafi muni fiye da SBC tare da daidaitaccen bitrate na 328 kbps.

SBC a hankali yana keɓance raƙuman ƙididdigewa zuwa maƙallan mitar akan ƙananan-zuwa-high. Idan an yi amfani da duk bitrate don ƙananan mitoci da tsakiyar, za a "yanke maɗaukaki" (za a yi shiru maimakon).
aptX yana ƙididdige maƙallan mitar tare da adadin rago ɗaya koyaushe, wanda shine dalilin da ya sa yake da matsakaicin bitrate: 352 kbps don 44.1 kHz, 384 kbps don 48 kHz, kuma ba zai iya “shift-shift” ga waɗannan mitoci waɗanda suka fi buƙatar su. . Ba kamar SBC ba, aptX ba zai “yanke” mitoci ba, amma zai ƙara amon ƙididdigewa a gare su, yana rage ƙarfin sautin, wani lokacin kuma yana gabatar da ƙima. SBC "yana cin cikakkun bayanai" - yana watsar da wuraren da suka fi natsuwa.
A matsakaita, idan aka kwatanta da SBC 328k, aptX yana gabatar da ƙarancin murdiya a cikin kiɗa tare da kewayon mitar mitoci, amma a cikin kiɗan tare da kunkuntar mitar mitar da kewayo mai ƙarfi, SBC 328k wani lokaci yana yin nasara.

Bari mu yi la'akari da wani lamari na musamman. Spectrogram na yin rikodin piano:
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Babban makamashi yana cikin mitoci daga 0 zuwa 4 kHz, kuma yana ci gaba har zuwa 10 kHz.
Siffar sikirin fayil ɗin da aka matsa a cikin aptX yayi kama da haka:
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Kuma wannan shine abin da SBC 328k yayi kama.
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Ana iya ganin cewa SBC 328k lokaci-lokaci gaba ɗaya yana kashe kewayon sama da 16 kHz, kuma ya kashe duk abin da ke akwai akan jeri da ke ƙasa da wannan ƙimar. Koyaya, aptX ya gabatar da ƙarin murdiya a cikin mitar bakan da ake iya ji ga kunnen ɗan adam, kamar yadda ake iya gani a cikin juzu'in sikirin asali na aptX spectrogram (mafi haske, ƙarin murdiya):
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Yayin da SBC 328k ya lalata siginar ƙasa a cikin kewayon daga 0 zuwa 10 kHz, kuma ya yanke sauran:
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Matsakaicin bitrate na 485k na SBC ya isa don adana duk kewayon mitar, ba tare da kashe makada ba.
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

SBC 485k yana da mahimmanci a gaban aptX akan wannan waƙar a cikin kewayon 0-15 kHz, tare da ƙaramin ƙarami amma har yanzu ana iya ganin bambanci na 15-22 kHz (mafi duhu mafi ƙarancin murdiya):
Muna canza tarin Bluetooth don inganta sauti akan belun kunne ba tare da AAC, aptX da LDAC codecs ba.

Taskar sauti na asali, SBC da aptX.

Ta hanyar canzawa zuwa SBC mai girma-bitate, za ku sami sauti wanda sau da yawa yana bugun aptX akan kowane wayar kai. A kan belun kunne masu goyan bayan haɗin EDR na 3 Mbps, bitrate na 551 kbps yana samar da sauti mai kama da aptX HD.

Za ku iya yin ƙari?

Facin Android kuma ya haɗa da zaɓi don ƙara haɓaka bitrate don na'urorin EDR 2 Mbps. Za ka iya ƙara bitrate daga 452 kbit/s zuwa 595 kbit/s, a farashin rage watsawa kwanciyar hankali a cikin wahala yanayi na rediyo.
Ya isa a saita ma'auni.bluetooth.sbc_hd_higher_bitrate m zuwa 1:

# setprop persist.bluetooth.sbc_hd_higher_bitrate 1

Matsanancin facin bitrate ya zuwa yanzu kawai an karɓi shi a cikin LineageOS 15.1, amma ba a cikin 16.0 ba.

Daidaituwar na'ura

SBC Dual Channel yana samun goyan bayan kusan duk belun kunne, lasifika da na'urorin kai na mota. Wannan ba abin mamaki ba ne - ma'auni yana buƙatar goyon bayan sa a kowace na'ura mai yanke hukunci. Akwai ƙananan na'urori waɗanda wannan yanayin ke haifar da matsala a kansu, amma waɗannan keɓaɓɓun lokuta ne.
Ana iya samun ƙarin cikakkun bayanai game da na'urori masu jituwa a W4bsitXNUMX-dns.com ko xda-developers.

Kwatanta bambance-bambancen sauti

Na yi sabis ɗin gidan yanar gizo wanda ke ɓoye sauti zuwa SBC (da kuma aptX da aptX HD) a cikin ainihin lokacin, daidai a cikin burauzar. Tare da shi, zaku iya kwatanta sautin bayanan bayanan SBC daban-daban da sauran codecs, ba tare da aika sauti ta zahiri ta Bluetooth ba, akan kowane wayar kunne, lasifika, da kiɗan da kuka fi so, da kuma canza sigogin ɓoye kai tsaye yayin kunna sauti.
btcodecs.valdikss.org.ru/sbc-encoder

Tuntuɓi Android Developers

Na rubuta zuwa ga yawancin masu haɓaka tari na Bluetooth a Google ina neman su yi la'akari da haɗa faci a babban reshen Android - AOSP, amma ba su sami amsa ko ɗaya ba. Facina a ciki Tsarin facin Gerrit don Android Har ila yau ya ci gaba da kasancewa ba tare da wani bayani daga kowa ba.
Zan yi farin ciki idan zan iya samun taimako wajen tuntuɓar masu haɓakawa a Google da kuma kawo SBC HD zuwa Android. Faci in gerrit ya riga ya tsufa (wannan shine ɗayan farkon bita), kuma zan sabunta shi idan masu haɓakawa suna sha'awar canje-canje na (ba ni da sauƙi in sabunta shi, ba ni da na'urori masu dacewa da Android Q. ).

ƙarshe

Masu amfani da wayowin komai da ruwan tare da LineageOS, Remix Remix da crDroid firmware na iya jin daɗin ingantaccen sauti a yanzu, kawai kunna zaɓi a cikin saitunan na'urar Bluetooth. Masu amfani da Linux kuma za su iya samun ƙarin SBC bitrate ta hanyar sakawa Faci daga Pali Rohar, wanda, a tsakanin sauran abubuwa, yana ƙara goyon baya ga aptX, aptX HD da FastStream codecs.

source: www.habr.com

Add a comment