{"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\/sv\/blog\/administrirovanie\/modifitsiruem-bluetooth-stek-dlya-uluchsheniya-zvuka-na-naushnikah-bez-kodekov-aac-aptx-i-ldac","title":{"rendered":"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Innan du l\u00e4ser denna artikel rekommenderas det att du bekantar dig med den f\u00f6reg\u00e5ende artikeln: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/427997\/\">Ljud via Bluetooth: s\u00e5 detaljerat som m\u00f6jligt om profiler, codecs och enheter<\/a><\/noindex><\/i><\/p>\n<p>Vissa anv\u00e4ndare av tr\u00e5dl\u00f6sa h\u00f6rlurar rapporterar l\u00e5g ljudkvalitet och brist p\u00e5 diskant n\u00e4r de anv\u00e4nder standard Bluetooth-kodeken SBC, som st\u00f6ds av alla ljudenheter. En vanlig rekommendation f\u00f6r att f\u00f6rb\u00e4ttra ljudet \u00e4r att k\u00f6pa enheter och h\u00f6rlurar som st\u00f6der kodekarna aptX och LDAC. Dessa kodekar kr\u00e4ver licensavgifter, vilket g\u00f6r att enheter med deras st\u00f6d \u00e4r dyrare.<\/p>\n<p>Det visar sig att den l\u00e5ga kvaliteten av SBC beror p\u00e5 artificiella begr\u00e4nsningar i Bluetooth-stacken och inst\u00e4llningarna f\u00f6r h\u00f6rlurarna, och denna begr\u00e4nsning kan kringg\u00e5s p\u00e5 alla befintliga enheter genom programvaruf\u00f6r\u00e4ndringar i smartphone eller dator.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kodek SBC<\/h2>\n<p>Kodeken SBC har m\u00e5nga olika parametrar som kommer \u00f6verens om vid anslutningen. Bland dem:<\/p>\n<ul>\n<li>Antal och typ av kanaler: Joint Stereo, Stereo, Dual Channel, Mono;<\/li>\n<li>Antal frekvensband: 4 eller 8;<\/li>\n<li>Antal block i paketet: 4, 8, 12, 16;<\/li>\n<li>Algoritm f\u00f6r bitf\u00f6rdelning vid kvantisering: Loudness, SNR;<\/li>\n<li>Maximalt och minimalt v\u00e4rde p\u00e5 bitpoolen som anv\u00e4nds vid kvantisering: vanligtvis mellan 2 och 53.<\/li>\n<\/ul>\n<p>Dekoderenheten m\u00e5ste st\u00f6dja vilken kombination som helst av dessa parametrar. Kodarenheten kanske inte kan implementera alla.<br \/>\nBefintliga Bluetooth-stackar f\u00f6renas vanligtvis med f\u00f6ljande profil: Joint Stereo, 8 band, 16 block, Loudness, bitpool 2..53. Denna profil kodar 44,1 kHz ljud med en bithastighet av 328 kbps.<br \/>\nBitpool-parametern p\u00e5verkar direkt bithastigheten inom en profil: ju h\u00f6gre v\u00e4rde, desto h\u00f6gre bithastighet och d\u00e4rmed ocks\u00e5 kvalitet.<br \/>\nMen bitpool-parametern \u00e4r inte bunden till en specifik profil; p\u00e5verkan p\u00e5 bithastigheten beror ocks\u00e5 i stor grad p\u00e5 andra parametrar: kanaltyp, antal frekvensband, antal block. Bithastigheten kan \u00f6kas indirekt genom att godk\u00e4nna icke-standardprofiler utan att \u00e4ndra bitpoolen.<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/4836fdb65b1204173bd6e01ef2d0cc6c.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\n<i>Formeln f\u00f6r att ber\u00e4kna bithastigheten f\u00f6r SBC<\/i><\/p>\n<p>\nTill exempel kodar Dual Channel-l\u00e4get kanaler separat, vilket anv\u00e4nder hela bitpoolen f\u00f6r varje kanal. Genom att f\u00e5 enheten att anv\u00e4nda Dual Channel ist\u00e4llet f\u00f6r Joint Stereo kan vi f\u00e5 n\u00e4stan dubbelt s\u00e5 h\u00f6g bithastighet vid samma maximala bitpoolv\u00e4rde: 617 kbps.<br \/>\nEnligt min \u00e5sikt \u00e4r anv\u00e4ndningen av ett icke-profilerat bitpool-v\u00e4rde vid samordning en brist i A2DP-standarden, vilket har lett till en konstgjord begr\u00e4nsning av SBC-kvaliteten. Det hade varit klokare att samordna bitrate ist\u00e4llet f\u00f6r bitpool.<\/p>\n<p>Dessa fasta v\u00e4rden f\u00f6r Bitpool och Bitrate har sitt ursprung i en tabell med rekommenderade v\u00e4rden f\u00f6r anv\u00e4ndning vid h\u00f6gkvalitativt ljud. Men en rekommendation \u00e4r ingen anledning att begr\u00e4nsa sig till dessa v\u00e4rden.<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1076b610245c4bcb88e5812bdea27e60.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA2DP v1.2-specifikationen, som var aktiv fr\u00e5n 2007 till 2015, f\u00f6reskriver att alla avkodande enheter korrekt ska fungera med bitrater upp till 512 kbps:<\/p>\n<blockquote><p>Avkodaren i SNK ska st\u00f6dja alla m\u00f6jliga bitpool-v\u00e4rden som inte \u00f6verskrider den maximala bitraten. Denna profil begr\u00e4nsar den tillg\u00e4ngliga maximala bitraten till 320 kbps f\u00f6r mono och 512 kbps f\u00f6r tv\u00e5kanalsl\u00e4gen.<\/p><\/blockquote>\n<p>I den nya versionen av specifikationen saknas begr\u00e4nsningen f\u00f6r bitraten. Det antas att moderna h\u00f6rlurar som sl\u00e4pptes efter 2015 och st\u00f6djer EDR kan hantera bitrater upp till \u2248730 kbps.<\/p>\n<p>Av n\u00e5gon anledning har de Bluetooth-stacks i Linux (PulseAudio), Android, Blackberry och macOS som jag har kontrollerat konstgjorda begr\u00e4nsningar p\u00e5 det maximala v\u00e4rdet av bitpool, vilket direkt p\u00e5verkar den maximala bitraten. Men det \u00e4r inte det st\u00f6rsta problemet, n\u00e4stan alla h\u00f6rlurar begr\u00e4nsar ocks\u00e5 det maximala v\u00e4rdet p\u00e5 bitpool till 53.<br \/>\nSom jag redan har konstaterat fungerar de flesta enheter utm\u00e4rkt med en modifierad Bluetooth-stack med en bitrate p\u00e5 551 kbps, utan avbrott och kn\u00e4ppande ljud. Men en s\u00e5dan bitrate kommer aldrig att samordnas under normala f\u00f6rh\u00e5llanden, p\u00e5 vanliga Bluetooth-stacks.<\/p>\n<h2>Modifiera Bluetooth-stacken<\/h2>\n<p>I varje Bluetooth-stack som \u00e4r kompatibel med A2DP-standarden finns st\u00f6d f\u00f6r Dual Channel-l\u00e4get, men det \u00e4r inte m\u00f6jligt att aktivera det fr\u00e5n gr\u00e4nssnittet.<\/p>\n<p>L\u00e5t oss l\u00e4gga till en omswitch i gr\u00e4nssnittet! Jag har gjort patchar f\u00f6r Android 8.1 och Android 9, som l\u00e4gger till fullt st\u00f6d f\u00f6r Dual Channel i stacken, l\u00e4gger till l\u00e4get i omkopplingsmenyn i utvecklarverktyg, och hanterar SBC med st\u00f6d f\u00f6r Dual Channel som om det vore en extra codec, som aptX, AAC eller LDAC (Android kallar det HD Audio), vilket l\u00e4gger till en kryssruta i Bluetooth-enhetsinst\u00e4llningarna. S\u00e5 h\u00e4r ser det ut:<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och 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)\">Patch f\u00f6r 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)\">Patch f\u00f6r Android 8.1<\/a><\/noindex><\/p>\n<p>N\u00e4r kryssrutan aktiveras b\u00f6rjar Bluetooth-ljudet att \u00f6verf\u00f6ras med en bitrate p\u00e5 <b>551 kbps<\/b>, om h\u00f6rlurarna st\u00f6der en anslutning med en hastighet p\u00e5 3 Mbps, eller <b>452 kbit\/s<\/b>, om h\u00f6rlurarna endast st\u00f6der 2 mbit\/s.<\/p>\n<p>Denna patch ing\u00e5r i f\u00f6ljande alternativa firmware:<\/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>Var kommer 551 och 452 kbit\/s ifr\u00e5n?<\/h2>\n<p>Tekniken f\u00f6r och delning av luft i Bluetooth \u00e4r avsedd f\u00f6r effektiv \u00f6verf\u00f6ring av stora paket av fast storlek. Data\u00f6verf\u00f6ringen sker i slottar, det st\u00f6rsta antalet slottar som kan s\u00e4ndas under en \u00f6verf\u00f6ring \u00e4r 5. Det finns ocks\u00e5 \u00f6verf\u00f6ringsl\u00e4gen som anv\u00e4nder 1 eller 3 slottar, men inte 2 eller 4. I 5 slottar kan man \u00f6verf\u00f6ra upp till 679 byte vid en anslutningshastighet p\u00e5 2 mbit\/s och upp till 1021 byte vid en hastighet p\u00e5 3 mbit\/s, och i 3 slottar 367 och 552 byte respektive.<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c4596cb8ebdbaf2b57e201117e640f2f.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm vi vill \u00f6verf\u00f6ra mindre data \u00e4n 679 eller 1021 byte, men mer \u00e4n 367 eller 552 byte, kommer \u00f6verf\u00f6ringen fortfarande att ta 5 slottar, och data kommer att \u00f6verf\u00f6ras p\u00e5 samma tid, vilket minskar \u00f6verf\u00f6ringseffektiviteten.<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/c9b0645c78d41d7d3a9879930c091d2a.svg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSBC i Dual Channel-l\u00e4get, vid 44100 Hz-ljud med parametrar Bitpool 38, 16 block i ramarna, 8 frekvensband, kodar ljud i ramar av storlek 164 byte, med en bithastighet p\u00e5 452 kbit\/s.<br \/>\nLjudet m\u00e5ste inkapslas i L2CAP och AVDTP-\u00f6verf\u00f6ringsprotokoll, som tar 16 byte fr\u00e5n den nyttiga ljudbelastningen.<\/p>\n<p><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/2fd899e7b521497844e1354ae5f825eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>S\u00e5ledes kan en Bluetooth-\u00f6verf\u00f6ring med 5 slottar rymma 4 ljudramar:<\/p>\n<pre><code class=\"plaintext\">679 (EDR 2 mbit\/s DH5) - 4 (L2CAP) - 12 (AVDTP\/RTP) - 1 (SBC-header) - (164*4) = 6<\/code><\/pre>\n<p>\nVi rymde 11,7 ms ljuddata i det s\u00e4nda paketet, vilket kommer att \u00f6verf\u00f6ras p\u00e5 3,75 ms, och vi har 6 oanv\u00e4nda byte kvar i paketet.<br \/>\nOm vi h\u00f6jer bitpoolen n\u00e5got, g\u00e5r det inte l\u00e4ngre att packa 4 ljudramar i ett paket. Vi m\u00e5ste skicka 3 ramar i taget, vilket minskar \u00f6verf\u00f6ringseffektiviteten, minskar m\u00e4ngden ljud som \u00f6verf\u00f6rs i varje paket och snabbare leder till ljudhackningar under d\u00e5liga radiof\u00f6rh\u00e5llanden.<\/p>\n<p>P\u00e5 samma s\u00e4tt valdes bithastigheten 551 kbit\/s f\u00f6r EDR 3 mbit\/s: med Bitpool 47, 16 block i ramarna, 8 frekvensband f\u00e5r vi en rams storlek av 200 byte, vid en bithastighet p\u00e5 551 kbit\/s. I ett paket f\u00e5r vi plats med 5 ramar eller 14,6 ms musik.<\/p>\n<p>Algoritmen f\u00f6r ber\u00e4kning av alla SBC-parametrar \u00e4r ganska komplex, man kan enkelt bli f\u00f6rvirrad om man r\u00e4knar manuellt, s\u00e5 jag gjorde en interaktiv kalkylator f\u00f6r dem som \u00e4r intresserade: <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>Varf\u00f6r beh\u00f6vs allt detta?<\/h2>\n<p>Trots den vanliga uppfattningen om aptX-kodens ljudkvalitet, kan den p\u00e5 vissa filer ge resultat som \u00e4r s\u00e4mre \u00e4n SBC med en standard bitrate p\u00e5 328 kbit\/s.<\/p>\n<p>SBC tilldelar dynamiskt kvantisering av bitar till frekvensband, vilket fungerar enligt principen \"fr\u00e5n l\u00e5ga till h\u00f6ga\". Om hela bitraten anv\u00e4nds f\u00f6r l\u00e5ga och mellanregisterfrekvenser, kommer de h\u00f6gre frekvenserna att \"kapas\" (ist\u00e4llet f\u00f6r att det blir tystnad).<br \/>\naptX kvantiserar frekvensband med samma antal bitar konstant, vilket inneb\u00e4r att den har en konstant bitrate: 352 kbit\/s f\u00f6r 44,1 kHz, 384 kbit\/s f\u00f6r 48 kHz, och den kan inte \"flytta bitar\" till de frekvenser som mest beh\u00f6ver dem. Till skillnad fr\u00e5n SBC kommer aptX inte \"att kapa\" frekvenser, utan kommer att l\u00e4gga till kvantiseringsbrus i dem, vilket minskar ljudets dynamiska omf\u00e5ng och ibland medf\u00f6r typiska knastrande ljud. SBC \"slukar detaljer\" \u2014 den kastar bort de tystaste delarna.<br \/>\nI genomsnitt, j\u00e4mf\u00f6rt med SBC 328k, introducerar aptX f\u00e4rre f\u00f6rvr\u00e4ngningar i musik med ett brett frekvensomr\u00e5de, men p\u00e5 musik med sn\u00e4vt frekvensomr\u00e5de och stort dynamiskt omf\u00e5ng vinner SBC 328k ibland.<\/p>\n<p>L\u00e5t oss betrakta ett specifikt fall. Spektrogrammet av en inspelning p\u00e5 piano:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/er\/nq\/rc\/ernqrcwa0ic5mqwopjg5zbu_fxm.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/91247edc12764c6a4985e5a58ec1ad81.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Huvudenergin ligger i frekvenserna fr\u00e5n 0 till 4 kHz och str\u00e4cker sig upp till 10 kHz.<br \/>\nSpektrogrammet av filen som komprimerats med aptX ser ut som f\u00f6ljande:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dl\/bl\/do\/dlbldoq_rdrjykephl2ostfbafk.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/aad46eb446ac9c5cffbd0ce8bd11e45b.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Och s\u00e5 h\u00e4r ser SBC 328k ut.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/us\/3m\/ke\/us3mke0av1s_1ezkyk6ycq1g2vo.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/1b879741ea109c10c9e94a9a17830fc6.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Det \u00e4r tydligt att SBC 328k periodiskt helt st\u00e4ngde av omr\u00e5det \u00f6ver 16 kHz och anv\u00e4nde hela tillg\u00e4ngliga bitraten p\u00e5 omr\u00e5den nedanf\u00f6r detta v\u00e4rde. Dock introducerade aptX fler f\u00f6rvr\u00e4ngningar i det h\u00f6rbara ljudspektrumet, vilket kan ses p\u00e5 den subtraherade originalspetragrammet fr\u00e5n spektrogrammet av aptX (ju m\u00f6rkare, desto fler f\u00f6rvr\u00e4ngningar):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ug\/-i\/5z\/ug-i5zpihrfnvumf9no_glecqna.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/7820015a2ef3c7f97802de179f2201eb.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Medan SBC 328k hade mindre p\u00e5verkan p\u00e5 signalen i omr\u00e5det 0 till 10 kHz, medan resten st\u00e4ngdes av:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/tf\/x8\/7z\/tfx87z8hpenx51spblrfvkc-ihe.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/793e3011a6aa07f1750cf0a5cca204cf.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Bitraten 485k SBC r\u00e4ckte f\u00f6r att bevara hela frekvensspektrumet utan att st\u00e4nga av banden.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/_c\/mc\/xy\/_cmcxyxwlf7u4tv-rbplwk5bmtu.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och LDAC\" src=\"\/wp-content\/uploads\/2019\/06\/27f215a26658b9b2bf3d852f4da96740.svg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>SBC 485k \u00f6vertr\u00e4ffar avsev\u00e4rt aptX i kompositionen i intervallet 0-15 kHz, och med en mindre, men \u00e4nd\u00e5 m\u00e4rkbar skillnad \u2014 i 15-22 kHz (ju m\u00f6rkare, desto f\u00e4rre f\u00f6rvr\u00e4ngningar):<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/e-\/qz\/h8\/e-qzh8azmingcbhvuwxj8iptuau.png\"><img decoding=\"async\" alt=\"Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan kodekarna AAC, aptX och 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\">Arkiv med originalljud, SBC och aptX<\/a><\/noindex>.<\/p>\n<p>Genom att byta till h\u00f6gbitrat SBC f\u00e5r du ljud som ofta \u00f6vertr\u00e4ffar aptX, p\u00e5 alla h\u00f6rlurar. P\u00e5 h\u00f6rlurar som st\u00f6der EDR-anslutning 3 Mbit\/s, ger bitrate 551 kbit\/s ljud som st\u00e5r p\u00e5 samma niv\u00e5 som aptX HD.<\/p>\n<h2>Finns det mer?<\/h2>\n<p>I patchen f\u00f6r Android finns ocks\u00e5 ett alternativ f\u00f6r att \u00f6ka bithastigheten ytterligare f\u00f6r EDR-enheter till 2 Mbit\/s. Bithastigheten kan \u00f6kas fr\u00e5n 452 kbit\/s till 595 kbit\/s, vilket medf\u00f6r en minskad stabilitet i \u00f6verf\u00f6ringen under sv\u00e5ra radiof\u00f6rh\u00e5llanden.<br \/>\nDet r\u00e4cker att st\u00e4lla in variabeln persist.bluetooth.sbc_hd_higher_bitrate till v\u00e4rdet 1:<\/p>\n<pre><code class=\"plaintext\"># setprop persist.bluetooth.sbc_hd_higher_bitrate 1<\/code><\/pre>\n<p>\nPatchen f\u00f6r extrem bithastighet har hittills bara godk\u00e4nts i LineageOS 15.1, men inte i 16.0.<\/p>\n<h2>Kompatibilitet med enheter<\/h2>\n<p>SBC Dual Channel st\u00f6ds av n\u00e4stan alla h\u00f6rlurar, h\u00f6gtalare och bilstereonheter. Det \u00e4r inte f\u00f6rv\u00e5nande \u2014 standarden f\u00f6reskriver att den ska st\u00f6djas av alla avkodningsenheter. Det finns ett f\u00e5tal enheter d\u00e4r detta l\u00e4ge orsakar problem, men detta \u00e4r undantagsfall.<br \/>\nF\u00f6r mer information om kompatibla enheter kan du titta p\u00e5 <noindex>4pda<\/noindex> eller <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>J\u00e4mf\u00f6relse av ljudskillnader<\/h2>\n<p>Jag har skapat en webbtj\u00e4nst som kodar ljud i SBC (samt aptX och aptX HD) i realtid, direkt i webbl\u00e4saren. Med den kan du j\u00e4mf\u00f6ra ljudet mellan olika SBC-profiler och andra codec, utan att faktiskt \u00f6verf\u00f6ra ljud via Bluetooth, p\u00e5 alla tr\u00e5dbundna h\u00f6rlurar, h\u00f6gtalare och din favoritmusik, samt justera kodningsparametrarna direkt under ljuduppspelningen.<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 med Android-utvecklarna<\/h2>\n<p>Jag har skrivit till m\u00e5nga utvecklare av Bluetooth-stacken fr\u00e5n Google med en beg\u00e4ran att \u00f6verv\u00e4ga att inkludera patchar i huvudgrenen av Android \u2014 AOSP, men har inte f\u00e5tt n\u00e5got svar. Mina patchar i <noindex><a rel=\"nofollow\" href=\"https:\/\/android-review.googlesource.com\/q\/topic:bt-sbc-hd-dualchannel+(status:open%20OR%20status:merged)\">systemet f\u00f6r patchhantering Gerrit f\u00f6r Android<\/a><\/noindex> har ocks\u00e5 f\u00f6rblivit utan kommentarer fr\u00e5n n\u00e5gon involverad.<br \/>\nJag skulle vara tacksam om jag kunde f\u00e5 hj\u00e4lp med att n\u00e5 utvecklarna p\u00e5 Google och implementeringen av SBC HD i Android. Patchen i Gerrit \u00e4r redan f\u00f6r\u00e5ldrad (detta \u00e4r en av de tidiga reviserna), och jag kommer att uppdatera den om utvecklarna \u00e4r intresserade av mina \u00e4ndringar (det \u00e4r sv\u00e5rt f\u00f6r mig att uppdatera den, jag har inga enheter som \u00e4r kompatibla med Android Q).<\/p>\n<h2>Slutsats<\/h2>\n<p>Anv\u00e4ndare av smartphones med LineageOS, Resurrection Remix och crDroid kan redan nu njuta av f\u00f6rb\u00e4ttrad ljudkvalitet, det r\u00e4cker att aktivera alternativet i Bluetooth-enhetens inst\u00e4llningar. Linux-anv\u00e4ndare kan ocks\u00e5 f\u00e5 h\u00f6gre bithastighet f\u00f6r SBC genom att installera <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.freedesktop.org\/archives\/pulseaudio-discuss\/2019-June\/031168.html\">patchen fr\u00e5n Pali Roh\u00e1r<\/a><\/noindex>, som f\u00f6rutom allt annat l\u00e4gger till st\u00f6d f\u00f6r codec:erna aptX, aptX HD och FastStream.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Modifiera Bluetooth-stacken f\u00f6r att f\u00f6rb\u00e4ttra ljudet p\u00e5 h\u00f6rlurar utan codec som AAC, aptX och LDAC | ProHoster","description":"Innan du l\u00e4ser den h\u00e4r artikeln rekommenderas du att bekanta dig med den tidigare artikeln: Ljud via Bluetooth: s\u00e5 detaljerat som m\u00f6jligt om profiler, codec och.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/35159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=35159"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/35159\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=35159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=35159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=35159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}