{"id":35159,"date":"2019-10-31T22:02:38","date_gmt":"2019-10-31T19:02:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\/"},"modified":"2019-10-31T22:02:38","modified_gmt":"2019-10-31T19:02:38","slug":"modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","title":{"rendered":"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Prije \u010ditanja ovog \u010dlanka preporu\u010duje se upoznavanje s prethodnim \u010dlankom: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/427997\/\">Audio putem Bluetootha: maksimalno detaljno o profilima, kodecima i ure\u0111ajima<\/a><\/noindex><\/i><\/p>\n<p>Neki korisnici be\u017ei\u010dnih slu\u0161alica primje\u0107uju nisku kvalitetu zvuka i manjak visokih frekvencija prilikom kori\u0161tenja standardnog Bluetooth kodeka SBC, koji podr\u017eavaju svi audio ure\u0111aji. \u010cesta preporuka za pobolj\u0161anje zvuka je kupnja ure\u0111aja i slu\u0161alica koje podr\u017eavaju kodeke aptX i LDAC. Ovi kodeci zahtijevaju licencne naknade, stoga ure\u0111aji s njihovom podr\u0161kom ko\u0161taju vi\u0161e.<\/p>\n<p>Ispostavlja se da je niska kvaliteta SBC uzrokovana umjetnim ograni\u010denjima Bluetooth stackova i postavkama slu\u0161alica, te se to ograni\u010denje mo\u017ee zaobi\u0107i na bilo kojim postoje\u0107im ure\u0111ajima uz pomo\u0107 programske promjene pametnog telefona ili ra\u010dunala.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kodek SBC<\/h2>\n<p>Kodek SBC ima mnogo razli\u010ditih parametara koji se dogovaraju tijekom uspostave veze. Me\u0111u njima:<\/p>\n<ul>\n<li>Broj i tip kanala: Joint Stereo, Stereo, Dual Channel, Mono;<\/li>\n<li>Broj frekvencijskih pojaseva: 4 ili 8;<\/li>\n<li>Broj blokova u paketu: 4, 8, 12, 16;<\/li>\n<li>Algoritam raspodjele bitova pri kvantizaciji: Loudness, SNR;<\/li>\n<li>Maksimalna i minimalna vrijednost bitpoola kori\u0161tenih pri kvantizaciji: obi\u010dno od 2 do 53.<\/li>\n<\/ul>\n<p>Dekodiraju\u0107i ure\u0111aj mora podr\u017eavati bilo koju kombinaciju ovih parametara. Kodiraju\u0107i ure\u0111aj mo\u017eda ne\u0107e implementirati sve.<br \/>\nPostoje\u0107i Bluetooth stackovi obi\u010dno dogovaraju sljede\u0107i profil: Joint Stereo, 8 pojaseva, 16 blokova, Loudness, bitpool 2..53. Ovaj profil kodira 44.1 kHz audio s bitnom brzinom od 328 kbit\/s.<br \/>\nParametar bitpool izravno utje\u010de na bitnu brzinu unutar jednog profila: \u0161to je vi\u0161i, to je ve\u0107a bitna brzina, a samim tim i kvaliteta.<br \/>\nMe\u0111utim, parametar bitpool nije vezan uz odre\u0111eni profil; utjecaj na bitnu brzinu tako\u0111er zna\u010dajno ovisi o drugim parametrima: tip kanala, broj frekvencijskih pojaseva, broj blokova. Bitnu brzinu mogu\u0107e je pove\u0107ati posredno, dogovorom nestandardnih profila, bez promjene bitpoola.<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/4836fdb65b1204173bd6e01ef2d0cc6c.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<i>Formula za izra\u010dunavanje bitne brzine SBC<\/i><\/p>\n<p>\nNa primjer, na\u010din Dual Channel kodira kanale odvojeno, koriste\u0107i cijeli bitpool za svaki od kanala. Prisili li ure\u0111aj da koristi Dual Channel umjesto Joint Stereo, dobit \u0107emo gotovo udvostru\u010denu bitnu brzinu pri istoj maksimalnoj vrijednosti bitpoola: 617 kbit\/s.<br \/>\nPo mom mi\u0161ljenju, kori\u0161tenje vrijednosti bitpool koja nije vezana uz profil tijekom pregovora predstavlja nedostatak A2DP standarda, \u0161to je dovelo do umjetnog ograni\u010denja kvalitete SBC. Razumnije bi bilo pregovarati o bitrateu, a ne o bitpoolu.<\/p>\n<p>Takve fiksne vrijednosti Bitpool i Bitrate potje\u010du iz tablice s preporu\u010denim vrijednostima za kori\u0161tenje u visokokvalitetnom audiju. No preporuka nije isprika za ograni\u010denje tih vrijednosti.<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1076b610245c4bcb88e5812bdea27e60.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSpecifikacija A2DP v1.2, koja je bila aktivna od 2007. do 2015. godine, propisuje da sve dekodiraju\u0107e ure\u0111aje moraju ispravno funkcionirati s bitrateom do 512 kbit\/s:<\/p>\n<blockquote><p>Dekoder SNK-a mora podr\u017eavati sve mogu\u0107e vrijednosti bitpool-a koje ne rezultiraju prekora\u010denjem maksimalnog bitratea. Ovaj profil ograni\u010dava dostupni maksimalni bitrate na 320kb\/s za mono, i 512kb\/s za dvo-kanalne mode.<\/p><\/blockquote>\n<p>U novoj verziji specifikacije ograni\u010denje bitratea ne postoji. Predvi\u0111a se da moderni slu\u0161alice, objavljene nakon 2015. godine i koje podr\u017eavaju EDR, mogu podr\u017eavati bitrate do \u2248730 kbit\/s.<\/p>\n<p>Iz nekog razloga, kod Bluetooth-stackova koje sam provjerio na Linuxu (PulseAudio), Androidu, Blackberryju i macOS-u postoje umjetna ograni\u010denja maksimalne vrijednosti parametra bitpool, \u0161to izravno utje\u010de na maksimalni bitrate. No, to nije najve\u0107i problem, gotovo sve slu\u0161alice tako\u0111er ograni\u010davaju maksimalnu vrijednost bitpool-a na broj 53.<br \/>\nKako sam ve\u0107 imao priliku uvjeriti se, ve\u0107ina ure\u0111aja izvrsno radi na modificiranom Bluetooth-stacku s bitrateom od 551 kbit\/s, bez prekida i \u0161umova. No, takav bitrate nikada ne\u0107e biti dogovoren u uobi\u010dajenim uvjetima, na uobi\u010dajenim Bluetooth-stackovima.<\/p>\n<h2>Modificirajmo Bluetooth-stack<\/h2>\n<p>U bilo kojem Bluetooth-stacku koji je uskla\u0111en sa standardom A2DP postoji podr\u0161ka za Dual Channel mod, ali aktivirati ga iz su\u010delja nije mogu\u0107e.<\/p>\n<p>Dodajmo preklopnik u su\u010delje! Napravio sam ispravke za Android 8.1 i Android 9, koje dodaju punu podr\u0161ku za Dual Channel u stack, dodaju mod u izbornik prebacivanja moda u alate za programere, i obra\u0111uju SBC s podr\u0161kom za Dual Channel kao da je to dodatni kodek, poput aptX, AAC ili LDAC (Android to naziva HD Audio), dodaju\u0107i kva\u010dicu u postavke Bluetooth ure\u0111aja. Ovako to izgleda:<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/5f14e2955f1dcaefa8ddc4b8fa413de1.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/review.lineageos.org\/q\/topic:bt-sbc-hd-dualchannel-pie+(status:open%20OR%20status:merged)\">Ispravka za Android 9<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/review.lineageos.org\/q\/topic:bt-sbc-hd-dualchannel+(status:open%20OR%20status:merged)\">Ispravka za Android 8.1<\/a><\/noindex><\/p>\n<p>Aktiviranjem kva\u010dice, Bluetooth audio po\u010dinje se prenositi s bitrateom <b>551 kbit\/s<\/b>, ako slu\u0161alice podr\u017eavaju vezu na brzini od 3 mbit\/s, ili <b>452 kbit\/s<\/b>, ako slu\u0161alice podr\u017eavaju samo 2 mbit\/s.<\/p>\n<p>Ovaj patch je uklju\u010den u sljede\u0107e alternativne firmware-e:<\/p>\n<ul>\n<li><b>LineageOS<\/b><\/li>\n<li><b>Resurrection Remix<\/b><\/li>\n<li><b>crDroid<\/b><\/li>\n<\/ul>\n<h2>Kako su nastali 551 i 452 kbit\/s?<\/h2>\n<p>Tehnologija podjele etera u Bluetooth-u namijenjena je u\u010dinkovitoj transmisiji velikih paketa fiksne veli\u010dine. Prijenos podataka odvija se u slotovima, a najve\u0107i broj slotova koji se \u0161alju u jednom prijenosu je 5. Tako\u0111er postoje na\u010dini prijenosa koji koriste 1 ili 3 slota, ali ne 2 ili 4. U 5 slotova mo\u017ee se prenijeti do 679 bajtova pri brzini veze od 2 mbit\/s i do 1021 bajta pri brzini od 3 mbit\/s, a u 3 slota 367 i 552 bajta respektivno.<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c4596cb8ebdbaf2b57e201117e640f2f.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko \u017eelimo prenijeti manje podataka od 679 ili 1021 bajta, ali vi\u0161e od 367 ili 552 bajta, prijenos \u0107e i dalje zauzeti 5 slotova, a podaci \u0107e se prenositi za isto vrijeme, \u0161to smanjuje u\u010dinkovitost prijenosa.<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c9b0645c78d41d7d3a9879930c091d2a.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSBC u na\u010dinu dual channel, na 44100 Hz audio s parametrima Bitpool 38, 16 blokova u okviru, 8 frekvencijskih opsega, kodira audio u okvire veli\u010dine 164 bajta, s bitrate-om od 452 kbit\/s.<br \/>\nAudio mora biti inkapsulirano u protokole prijenosa L2CAP i AVDTP, koji uzimaju 16 bajtova od korisnog audio optere\u0107enja.<\/p>\n<p><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/2fd899e7b521497844e1354ae5f825eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tako, u jednom Bluetooth prijenosu s 5 slotova uspijevamo smjestiti 4 audio okvira:<\/p>\n<pre><code class=\"plaintext\">679 (EDR 2 mbit\/s DH5) - 4 (L2CAP) - 12 (AVDTP\/RTP) - 1 (SBC zaglavlje) - (164*4) = 6<\/code><\/pre>\n<p>\nSmjestili smo 11.7 ms audio podataka u paket koji \u0107e se poslati za 3.75 ms, i ostalo nam je 6 neiskori\u0161tenih bajtova u po\u0161iljci.<br \/>\nAko malo pove\u0107amo bitpool, 4 audio okvira vi\u0161e se ne\u0107e mo\u0107i smjestiti u jedan paket. Morat \u0107emo slati po 3 okvira odjednom, \u0161to smanjuje u\u010dinkovitost prijenosa, smanjuje koli\u010dinu prenesenog zvuka u jednom paketu i br\u017ee dovodi do preskakanja zvuka u lo\u0161im radio uvjetima.<\/p>\n<p>Na sli\u010dan na\u010din je odabran bitrate od 551 kbit\/s za EDR 3 mbit\/s: s Bitpool 47, 16 blokova u okviru, 8 frekvencijskih opsega veli\u010dina okvira iznosi 200 bajtova, pri bitrate-u od 551 kbit\/s. U jedan paket mo\u017ee stati 5 okvira ili 14.6 ms muzike.<\/p>\n<p>Algoritam za izra\u010dun svih parametara SBC-a prili\u010dno je slo\u017een, lako se mo\u017eete zbuniti ako brojite ru\u010dno, stoga sam napravio interaktivni kalkulator za pomo\u0107 zainteresiranim: <noindex><a rel=\"nofollow\" href=\"https:\/\/btcodecs.valdikss.org.ru\/sbc-bitrate-calculator\/\">btcodecs.valdikss.org.ru\/sbc-bitrate-calculator<\/a><\/noindex><\/p>\n<h2>Za\u0161to je sve ovo potrebno?<\/h2>\n<p>Unato\u010d uobi\u010dajenim mi\u0161ljenjima o kvaliteti zvuka aptX kodeka, kod nekih datoteka mo\u017ee dati rezultate lo\u0161ije od SBC-a sa standardnom brzinom prijenosa od 328 kbit\/s.<\/p>\n<p>SBC dinami\u010dki dodjeljuje kvantizacijske bitove za frekvencijske pojaseve, djeluju\u0107i po na\u010delu \"od donjih prema gornjim\". Ako se cijela brzina prijenosa koristi za donje i srednje frekvencije, gornje frekvencije \u0107e biti \"izrezane\" (umjesto njih \u0107e biti ti\u0161ina).<br \/>\naptX kvantizira frekvencijske pojaseve s istim brojem bitova stalno, zbog \u010dega ima konstantnu brzinu prijenosa: 352 kbit\/s za 44,1 kHz, 384 kbit\/s za 48 kHz, i ne mo\u017ee \"prenijeti bitove\" na frekvencije koje su najvi\u0161e potrebne. Za razliku od SBC-a, aptX ne\u0107e \"izrezati\" frekvencije, ve\u0107 \u0107e dodati kvantizacijske \u0161umove, smanjuju\u0107i dinami\u010dki raspon audiozapis, i ponekad unose\u0107i karakteristi\u010dne \u0161umove. SBC \"oduzima detalje\" \u2014 odbacuje najslabije dijelove.<br \/>\nU prosjeku, u usporedbi sa SBC-om 328k, aptX unosi manje izobli\u010denja u glazbu s \u0161irokim frekvencijskim rasponom, ali na glazbi s uskim frekvencijskim rasponom i \u0161irokim dinami\u010dkim rasponom, SBC 328k ponekad pobje\u0111uje.<\/p>\n<p>Razmotrimo posebno slu\u010daj. Spektrogram snimke igre na klaviru:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/er\/nq\/rc\/ernqrcwa0ic5mqwopjg5zbu_fxm.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/91247edc12764c6a4985e5a58ec1ad81.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Glavna energija le\u017ei u frekvencijama od 0 do 4 kHz, a nastavlja se do 10 kHz.<br \/>\nSpektrogram datoteke komprimirane u aptX izgleda ovako:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dl\/bl\/do\/dlbldoq_rdrjykephl2ostfbafk.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/aad46eb446ac9c5cffbd0ce8bd11e45b.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>A ovako izgleda SBC 328k.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/us\/3m\/ke\/us3mke0av1s_1ezkyk6ycq1g2vo.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1b879741ea109c10c9e94a9a17830fc6.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Vidljivo je da je SBC 328k povremeno potpuno isklju\u010divao raspon iznad 16 kHz, i tro\u0161io cijelu dostupnu brzinu prijenosa na rasponima ispod te vrijednosti. Me\u0111utim, aptX je unio vi\u0161e izobli\u010denja u spektar frekvencija koje ljudsko uho mo\u017ee \u010duti, \u0161to se mo\u017ee vidjeti na oduzetom originalnom spektrogramu iz spektrograma aptX (\u0161to je svjetlije, to su ve\u0107a izobli\u010denja):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ug\/-i\/5z\/ug-i5zpihrfnvumf9no_glecqna.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/7820015a2ef3c7f97802de179f2201eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Dok je SBC 328k manje pokvario signal u rasponu od 0 do 10 kHz, a ostatak - izrezivao:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tf\/x8\/7z\/tfx87z8hpenx51spblrfvkc-ihe.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/793e3011a6aa07f1750cf0a5cca204cf.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Brzina prijenosa od 485k SBC-a bila je dovoljna da zadr\u017ei cijeli raspon frekvencija, bez isklju\u010divanja pojaseva.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/_c\/mc\/xy\/_cmcxyxwlf7u4tv-rbplwk5bmtu.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/27f215a26658b9b2bf3d852f4da96740.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>SBC 485k na ovoj kompoziciji zna\u010dajno nadma\u0161uje aptX u rasponu 0-15 kHz, i s manjom, ali jo\u0161 uvijek primjetnom razlikom \u2014 u 15-22 kHz (\u0161to tamnije, to manje izobli\u010denja):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/e-\/qz\/h8\/e-qzh8azmingcbhvuwxj8iptuau.png\"><img decoding=\"async\" alt=\"Modificiramo Bluetooth stack za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/b65c37703ee677f561929ba714ed19ec.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/files.catbox.moe\/kpx711.zip\">Arhiva originalne audio snimke, SBC i aptX<\/a><\/noindex>.<\/p>\n<p>Prelaskom na visokobitni SBC, dobit \u0107ete zvuk koji \u010desto nadma\u0161uje aptX na bilo kojim slu\u0161alicama. Na slu\u0161alicama koje podr\u017eavaju EDR vezu 3 Mbps, brzina prijenosa od 551 kbit\/s daje zvuk usporediv s aptX HD.<\/p>\n<h2>Mo\u017ee li jo\u0161 vi\u0161e?<\/h2>\n<p>U Android zakrpi postoji opcija za jo\u0161 ve\u0107e pove\u0107anje bitrate-a za EDR ure\u0111aje od 2 Mbps. Bitrate se mo\u017ee pove\u0107ati sa 452 kbps na 595 kbps, uz cijenu smanjenja stabilnosti prijenosa u slo\u017eenim radiouslovima.<br \/>\nSamo postavite varijablu persist.bluetooth.sbc_hd_higher_bitrate na vrijednost 1:<\/p>\n<pre><code class=\"plaintext\"># setprop persist.bluetooth.sbc_hd_higher_bitrate 1<\/code><\/pre>\n<p>\nZakrpa za ekstremni bitrate trenutno je prihva\u0107ena samo u LineageOS 15.1, ali ne i u 16.0.<\/p>\n<h2>Kompatibilnost s ure\u0111ajima<\/h2>\n<p>SBC Dual Channel podr\u017eava gotovo sve slu\u0161alice, zvu\u010dnike i automobilske ure\u0111aje. Nije ni \u010dudo \u2014 standard nala\u017ee njegovu podr\u0161ku u svim ure\u0111ajima koji dekodiraju. Postoji mali broj ure\u0111aja na kojima ovaj na\u010din uzrokuje probleme, ali to su jedinstveni primjerci.<br \/>\nDetaljnije informacije o kompatibilnim ure\u0111ajima mo\u017eete prona\u0107i na <noindex>4pda<\/noindex> ili <noindex><a rel=\"nofollow\" href=\"https:\/\/forum.xda-developers.com\/android\/software-hacking\/improve-bluetooth-audio-quality-t3832615\">xda-developers<\/a><\/noindex>.<\/p>\n<h2>Pore\u0111enje razlika u zvuku<\/h2>\n<p>Napravio sam web servis koji kodira audio u SBC (kao i aptX i aptX HD) u stvarnom vremenu, direktno u pregledniku. Pomo\u0107u njega mo\u017eete upore\u0111ivati zvuk razli\u010ditih SBC profila i drugih kodeka, bez stvarnog prijenosa audija putem Bluetooth-a, na bilo kojim \u017ei\u010danim slu\u0161alicama, zvu\u010dnicima i va\u0161oj omiljenoj muzici, kao i mijenjati parametre kodiranja tokom reprodukcije audija.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/btcodecs.valdikss.org.ru\/sbc-encoder\/\">btcodecs.valdikss.org.ru\/sbc-encoder<\/a><\/noindex><\/p>\n<h2>Kontakt s Android programerima<\/h2>\n<p>Pisao sam mnogim programerima Bluetooth stack-a iz Google-a, tra\u017ee\u0107i da razmotre uklju\u010divanje zakrpa u glavnu Android granu \u2014 AOSP, ali nisam dobio nijedan odgovor. Moje zakrpe u <noindex><a rel=\"nofollow\" href=\"https:\/\/android-review.googlesource.com\/q\/topic:bt-sbc-hd-dualchannel+(status:open%20OR%20status:merged)\">sustavu za rad s zakrpama Gerrit za Android<\/a><\/noindex> tako\u0111er su ostale bez komentara od strane bilo koga uklju\u010denog.<br \/>\nBio bih zahvalan ako bi me povezali sa programerima iz Google-a i implementacijom SBC HD u Android. Zakrpa u gerrit-u je ve\u0107 zastarjela (to je jedna od ranih revizija), i a\u017eurira\u0107u je ako \u0107e programere zanimati moje promjene (te\u0161ko mi je to a\u017eurirati, nemam ure\u0111aje kompatibilne s Android Q).<\/p>\n<h2>Zaklju\u010dak<\/h2>\n<p>Korisnici pametnih telefona s LineageOS, Resurrection Remix i crDroid firmware-ima ve\u0107 mogu u\u017eivati u pobolj\u0161anom kvalitetu zvuka, dovoljno je aktivirati opciju u postavkama Bluetooth ure\u0111aja. Korisnici Linux-a tako\u0111er mogu dobiti pove\u0107ani bitrate SBS-a instalacijom <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.freedesktop.org\/archives\/pulseaudio-discuss\/2019-June\/031168.html\">zakrpe od Pali Roh\u00e1ra<\/a><\/noindex>, koja, osim svega ostalog, dodaje podr\u0161ku za kodeke aptX, aptX HD i FastStream.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/455316\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u043e\u0432 \u043e\u0442\u043c\u0435\u0447\u0430\u044e\u0442 \u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0432\u0443\u043a\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e Bluetooth-\u043a\u043e\u0434\u0435\u043a\u0430 SBC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0427\u0430\u0441\u0442\u043e\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 aptX \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35159","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c Bluetooth-\u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u0431\u0435\u0437 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 AAC, aptX \u0438 LDAC | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:02:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Modificiramo Bluetooth stog za pobolj\u0161anje zvuka na slu\u0161alicama bez kodeka AAC, aptX i LDAC | ProHoster","description":"Prije nego \u0161to pro\u010ditate ovaj \u010dlanak, preporu\u010dujemo da se upoznate s prethodnim \u010dlankom: Audio putem Bluetootha: maksimalno detaljno o profilima, kodecima i.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c Bluetooth-\u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0437\u0432\u0443\u043a\u0430 \u043d\u0430 \u043d\u0430\u0443\u0448\u043d\u0438\u043a\u0430\u0445 \u0431\u0435\u0437 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 AAC, aptX \u0438 LDAC | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439: \u0410\u0443\u0434\u0438\u043e \u0447\u0435\u0440\u0435\u0437 Bluetooth: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445, \u043a\u043e\u0434\u0435\u043a\u0430\u0445 \u0438.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:02:38+00:00","article:modified_time":"2019-10-31T19:02:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35159","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 22:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:47:35","updated":"2026-01-21 22:08:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/35159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=35159"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/35159\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=35159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=35159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=35159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}