Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Usati waverenga chinyorwa ichi, zvinokurudzirwa kuti uverenge chinyorwa chakapfuura: Odhiyo kuburikidza neBluetooth: yakanyanya ruzivo nezve profiles, macodecs uye zvishandiso

Vamwe vashandisi vehedhifoni isina waya vanoshuma hurombo husina kunaka hwekunzwika uye kushaikwa kwemafrequency akakwira kana vachishandisa yakajairwa SBC Bluetooth codec, inotsigirwa nemidziyo yese yekuteerera. Kurudziro yakajairika yekuvandudza ruzha kutenga zvishandiso uye mahedhifoni anotsigira aptX uye LDAC macodecs. Aya macodecs anoda mari yerezinesi, saka midziyo inoatsigira inodhura.

Zvinoitika kuti iyo yakaderera mhando yeSBC imhaka yekumisikidza kwekugadzira kweBluetooth stacks uye mahedhifoni marongero, uye kudzikiswa uku kunogona kupfuudzwa pane chero midziyo iripo kuburikidza nesoftware shanduko kune smartphone kana komputa.

Codec SBC

Iyo SBC codec ine akawanda akasiyana paramita ayo anotaurirana panguva yekubatanidza seta chikamu. Pakati pavo:

  • Nhamba uye mhando yematanho: Joint Stereo, Stereo, Dual Channel, Mono;
  • Nhamba yezvikwata zvefrequency: 4 kana 8;
  • Nhamba yezvivharo mupakiti: 4, 8, 12, 16;
  • Algorithm yekugovera bits panguva ye quantization: Loudness, SNR;
  • Iyo yakanyanya uye yakaderera kukosha kwedziva remabhiti anoshandiswa panguva yequantization (bitpool): kazhinji kubva pa2 kusvika ku53.

Iyo decoding mudziyo unofanirwa kutsigira chero musanganiswa weaya ma paramita. Iyo encoder inogona kusashandisa zvese.
Mabhururu aripo eBluetooth anobvumirana pane inotevera mbiri: Joint Stereo, 8 mabhendi, 16 zvidhinha, Ruzha, bitpool 2..53. Iyi mbiri inoisa 44.1 kHz odhiyo pa bitrate ye328 kbps.
Iyo bitpool parameter inobata zvakananga bitrate mukati meimwe mbiri: iyo yakakwirira iyo, iyo yakakwirira bitrate, uye naizvozvo kunaka.
Nekudaro, iyo bitpool parameter haina kusungirirwa kune yakatarwa chimiro; Iyo bitrate inonyanya kupesvedzerwa nemamwe ma paramita: mhando yezviteshi, nhamba yema frequency mabhendi, nhamba yezvivharo. Iwe unogona kuwedzera bitrate zvisina kunanga, nekubvumirana pane zvisiri-standard profiles, pasina kuchinja bitpool.

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Formula yekuverenga SBC bitrate

Semuenzaniso, Dual Channel modhi inokodha zviteshi zvakasiyana, uchishandisa iyo bitpool yese kune yega chiteshi. Nekumanikidza mudziyo kushandisa Dual Channel pachinzvimbo cheJoint Stereo, tinowana kanenge kaviri bitrate ine yakaenzana yakakura bitpool kukosha: 617 kbps.
Sekuona kwangu, kushandiswa kweiyo bitpool kukosha isina kusungirirwa kune chimiro padanho renhaurirano kukanganisa muyero yeA2DP, izvo zvakakonzera kuganhurwa kwemaitiro eSBC. Zvingave zvine musoro kutaurirana bitrate pane bitpool.

Izvi zvakagadziriswa Bitpool uye Bitrate tsika dzinobva patafura ine yakakurudzirwa tsika yekushandisa kune yepamusoro-mhando odhiyo. Asi kurudziro hachisi chikonzero chekuzviganhurira kune izvi zvakakosha.

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Iyo A2DP v1.2 tsananguro, yanga ichishanda kubva 2007 kusvika 2015, inoda kuti zvigadziriso zvese zvishande nema bitrate anosvika 512 kbps:

Iyo decoder yeSNK inotsigira ese angangoita bitpool kukosha izvo zvisingakonzereri kuwanda kweiyo yakanyanya bit rate. Iyi mbiri inoganhura iripo yepamusoro bhiti reti kusvika ku320kb/s ye mono, uye 512kb/s yemhando mbiri-chaneli.

Mushanduro itsva yekutsanangurwa hakuna muganho pane bitrate. Zvinofungidzirwa kuti mahedhifoni emazuva ano akaburitswa mushure me2015 anotsigira EDR anogona kutsigira bit rates kusvika β‰ˆ730 kbps.

Nekuda kwechimwe chikonzero, iyo Linux (PulseAudio), Android, Blackberry uye macOS Bluetooth stacks yandakaedza ine miganho yekugadzira pamutengo wepamusoro weiyo bitpool parameter, iyo inobata zvakananga iyo yakanyanya bitrate. Asi iri harisi iro dambudziko hombe; dzinenge dzese mahedhifoni zvakare inodzika yakakwira bitpool kukosha ku53.
Sezvandatoona, michina mizhinji inoshanda zvakakwana pane yakagadziridzwa Bluetooth stack ine bitrate ye551 kbps, isina kukanganisa kana kutsemuka. Asi bitrate yakadaro haizomboenderana pasi pemamiriro akajairwa, pane akajairwa Bluetooth stacks.

Kugadzirisa Bluetooth stack

Chero Bluetooth stack inoenderana neiyo A2DP chiyero ine tsigiro yeDual Channel modhi, asi hazvigoneke kuimisa kubva kune interface.

Ngatiwedzerei shanduko kune iyo interface! Ini ndakagadzira zvigamba zve Android 8.1 uye Android 9 iyo inowedzera yakazara Dual Channel rutsigiro kune stack, wedzera modhi kune modhi yekushandura menyu mumidziyo yedev, uye kubata Dual Channel-inogonesa SBCs sekunge yaive imwezve codec senge aptX. , AAC, kana LDAC ( Android inodaidza iyi HD Audio) nekuwedzera cheki kumagadzirirwo emudziyo weBluetooth. Izvi ndizvo zvazvinoita:

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Patch ye Android 9
Patch ye Android 8.1

Kana bhokisi rekutarisa raitwa, Bluetooth odhiyo inotanga kufambiswa pane bitrate 551 kbps, kana mahedhifoni achitsigira kumhanya kwekubatanidza kwe3 Mbit/s, kana 452 kbps, kana mahedhifoni achingotsigira 2 Mbit/s.

Ichi chigamba chinosanganisirwa mune anotevera mamwe firmwares:

  • LineageOS
  • Rumutsiriro Remix
  • crDroid

551 uye 452 kbit/s zvakabva kupi?

Tekinoroji yekugovera mhepo yeBluetooth yakagadzirirwa kufambisa nemapaketi makuru akakura. Kufambiswa kwedata kunoitika mumaslots, iyo yakakura nhamba ye slots inotumirwa mune imwe kutamiswa ndeye 5. Kune zvakare nzira dzekufambisa dzinoshandisa 1 kana 3 slots, asi kwete 2 kana 4. Mu 5 slots unogona kuendesa kusvika ku679 bytes pakumhanya kwekubatanidza. ye2 Mbit/s uye inosvika 1021 bytes pakumhanya kwe3 Mbit/s, uye pa3 - 367 uye 552 bytes, zvichiteerana.

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Kana tichida kuendesa data shoma pane 679 kana 1021 bytes, asi kupfuura 367 kana 552 bytes, kuendesa kucharamba kuchitora 5 slots uye data ichaendeswa panguva imwe chete, iyo inoderedza kushandiswa kwekufambisa.

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

SBC muDual Channel modhi, pa44100 Hz odhiyo ine Bitpool 38 paramita, gumi nematanhatu mabhuraki pa furemu, 16 frequency renji, encodes odhiyo mu8 byte mafuremu, ine bitrate ye164 kbps.
Odhiyo inofanirwa kuvharirwa muL2CAP uye AVDTP ekufambisa mapuroteni, ayo anotora gumi nematanhatu byte kubva pamubhadharo wekuteerera.

Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Nekudaro, imwe Bluetooth yekufambisa ine 5 slots inogona kugarisa 4 odhiyo mafuremu:

679 (EDR 2 mbit/s DH5) - 4 (L2CAP) - 12 (AVDTP/RTP) - 1 (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ SBC) - (164*4) = 6

Isu tinokwana 11.7 ms yedata redhiyo mupaketi iri kutumirwa, iyo inofambiswa mu3.75 ms, uye isu tine 6 mabhaiti asina kushandiswa asara mupacket.
Kana iwe ukasimudza bitpool zvishoma, hazvichagoneke kurongedza 4 odhiyo mafuremu mupakeji imwe. Iwe unozotumira 3 mafuremu panguva, izvo zvinoderedza kutapurirana zvakanaka, zvinoderedza huwandu hweodhiyo inofambiswa pafuremu, uye zvinozokurumidza kutungamira mukudzikama kwemaodhiyo mumamiriro asina kunaka eredhiyo.

Nenzira imwecheteyo, bitrate ye551 kbit / s yakasarudzirwa EDR 3 Mbit / s: ine Bitpool 47, 16 zvidhinha pafuremu, 8 frequency ranges, furemu saizi i200 bytes, ine bitrate ye551 kbit/s. Imwe pasuru ine 5 mafuremu kana 14.6 ms emimhanzi.

Iyo algorithm yekuverenga ese maSBC maparamita akaomarara, unogona kuvhiringika nyore kana ukaverenga nemaoko, saka ndakagadzira inopindirana Calculator kubatsira vanofarira: btcodecs.valdikss.org.ru/sbc-bitrate-calculator

Nei zvose izvi zvichidiwa?

Kusiyana nekutenda kwakakurumbira nezvemhando yemhando yeaptX codec, pane mamwe mafaera inogona kuburitsa mhedzisiro yakaipisisa kupfuura SBC ine yakajairwa bitrate ye328 kbps.

Iyo SBC inogovera zvine simba quantization bits kune frequency mabhendi pane yakaderera-kusvika-yepamusoro hwaro. Kana iyo bitrate yese yakashandiswa kune yakaderera uye yepakati frequencies, iyo yakakwira frequencies "inogurwa" (pachava nekunyarara panzvimbo).
aptX inoverengera mabhendi efrequency nenhamba yakafanana yemabhiti nguva dzese, ndosaka ichigara iine bitrate: 352 kbps ye44.1 kHz, 384 kbps ye48 kHz, uye haigone "bit-shift" kune iwo mafrequency anoida zvakanyanya. . Kusiyana neSBC, aptX haizo "cheka" ma frequency, asi ichawedzera quantization ruzha kwavari, ichidzikisa dhizaini redhiyo, uye dzimwe nguva kuunza hunhu hwekuputika. SBC "inodya ruzivo" - inorasa nzvimbo dzakanyarara.
Paavhareji, kana ichienzaniswa neSBC 328k, aptX inounza kukanganiswa kushoma mumimhanzi ine ma frequency akawanda, asi mumhanzi ine nhete frequency renji uye yakakura dhizaini renji, iyo SBC 328k dzimwe nguva inokunda.

Ngationei imwe nyaya inokosha. Spectrogram yepiyano ichiridza kurekodha:
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Simba guru riri mumafrequency kubva pa0 kusvika 4 kHz, uye rinoenderera kusvika ku10 kHz.
Iyo spectrogram yefaira yakamanikidzwa mu aptX inoita seizvi:
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Uye izvi ndizvo zvinoita SBC 328k.
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Zvinogona kuoneka kuti SBC 328k nguva nenguva yakadzimwa huwandu hwepamusoro pe16 kHz, uye yakashandisa ese aripo bitrate pamarenji ari pazasi kukosha uku. Nekudaro, aptX yakaunza kumwe kukanganisa mu frequency spectrum inonzwika nzeve yemunhu, sezvinoonekwa mune yakabviswa yepakutanga spectrogram kubva kune aptX spectrogram (inopenya, yakanyanya kukanganisa):
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Nepo iyo SBC 328k yakashatisa chiratidzo mudiki kubva pa0 kusvika 10 kHz, ndokucheka zvimwe:
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Iyo 485k bitrate yeSBC yaive yakakwana kuchengetedza iyo yese frequency renji, pasina kudzima mabhendi.
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Iyo SBC 485k iri pamberi zvakanyanya pamberi peaptX pane iyi track muyero ye0-15 kHz, iine diki asi ichiri kuoneka musiyano we15-22 kHz (yakasviba iyo kushomeka kushoma):
Isu tinogadzirisa iyo Bluetooth stack kuvandudza ruzha pamahedhifoni pasina AAC, aptX uye LDAC macodecs.

Archive yepakutanga odhiyo, SBC uye aptX.

Nekuchinja kune yakakwira-bitrate SBC, iwe unowana odhiyo inowanzorova aptX pane chero mahedhifoni. Pamahedhifoni anotsigira 3 Mbps EDR yekubatanidza, bitrate ye551 kbps inogadzira ruzha rwakafanana neaptX HD.

Unogona kuita zvakatowanda here?

Iyo Android chigamba inosanganisirawo sarudzo yekuwedzera bitrate ye2 Mbps EDR zvishandiso. Unogona kuwedzera bitrate kubva 452 kbit/s kusvika 595 kbit/s, pamutengo wekudzikisa kugadzikana kwekutapurirana mumamiriro ezvinhu akaoma eredhiyo.
Zvakakwana kuseta persist.bluetooth.sbc_hd_higher_bitrate kusiyanisa ku1:

# setprop persist.bluetooth.sbc_hd_higher_bitrate 1

Iyo yakanyanyisa bitrate patch kusvika parizvino yakangogamuchirwa muLineageOS 15.1, asi kwete mu16.0.

Device Kugarisana

SBC Dual Channel inotsigirwa neanenge ese mahedhifoni, mutauri uye emota misoro zvikamu. Izvi hazvishamisi - chiyero chinoda rutsigiro rwayo mune chero decoding zvishandiso. Pane nhamba diki yemidziyo iyo iyi modhi inokonzeresa matambudziko, asi aya ndiwo ega zviitiko.
Mamwe mashoko pamusoro pemidziyo inoenderana anogona kuwanikwa pa W4bsitXNUMX-dns.com kana xda-vatadzi.

Kuenzanisa kwekusiyana kwenzwi

Ndakagadzira sevhisi yewebhu inokodha odhiyo kuSBC (pamwe neaptX uye aptX HD) munguva chaiyo, mubrowser chaipo. Nayo, unogona kuenzanisa ruzha rweakasiyana maSBC profiles uye mamwe macodec, pasina kunyatso fambisa odhiyo kuburikidza neBluetooth, pane chero mahedhifoni ane waya, vatauri, uye mimhanzi yako yaunofarira, uye zvakare shandura encoding paramita zvakananga uchiridza odhiyo.
btcodecs.valdikss.org.ru/sbc-encoder

Bata Android Developers

Ndakanyorera vazhinji vanogadzira Bluetooth stack kuGoogle ndichivakumbira kuti vafunge kusanganisira zvigamba mubazi guru reAroid - AOSP, asi havana kuwana mhinduro imwechete. Zvigamba zvangu mukati Gerrit chigamba system ye Android akasarawo asina kutaura kubva kune ani zvake aibatanidzwa.
Ndingafara kana ndikakwanisa kuwana rubatsiro mukubata nevagadziri veGoogle uye nekuunza SBC HD kuAndroid. Iyo chigamba mu gerrit chatove chekare (iyi ndiyo imwe yedzokorodzo yekutanga), uye ini ndichaigadzirisa kana vanogadzira vakafarira shanduko dzangu (hazvisi nyore kwandiri kuigadzirisa, handina zvishandiso zvinoenderana ne Android Q. )

mhedziso

Vashandisi vemafoni emafoni ane LineageOS, Resurrection Remix uye crDroid firmware vanogona kunakidzwa nekuvandudzwa kwemhando yeruzha izvozvi, ingo shandura iyo sarudzo mumagadzirirwo emidziyo yeBluetooth. Vashandisi veLinux vanogonawo kuwedzera SBC bitrate nekuisa chigamba kubva Pali Rohar, iyo, pakati pezvimwe zvinhu, inowedzera rutsigiro rweaptX, aptX HD uye FastStream codecs.

Source: www.habr.com

Voeg