Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Пеш аз хондани ин мақола, тавсия дода мешавад, ки мақолаи қаблиро хонед: Аудио тавассути Bluetooth: тафсилоти ҳадди аксар дар бораи профилҳо, кодекҳо ва дастгоҳҳо

Баъзе корбарони гӯшмонакҳои бесим ҳангоми истифодаи кодеки стандартии Bluetooth SBC, ки аз ҷониби ҳама дастгоҳҳои аудиоӣ дастгирӣ мешавад, сифати пасти садо ва набудани басомадҳои баландро гузориш медиҳанд. Тавсияи умумӣ барои беҳтар кардани садо харидани дастгоҳҳо ва гӯшмонакҳое мебошад, ки кодекҳои aptX ва LDAC-ро дастгирӣ мекунанд. Ин кодекҳо ҳаққи иҷозатномаро талаб мекунанд, аз ин рӯ дастгоҳҳое, ки онҳоро дастгирӣ мекунанд, гаронтаранд.

Маълум мешавад, ки сифати пасти SBC ба маҳдудиятҳои сунъии стекҳои Bluetooth ва танзимоти гӯшмонакҳо вобаста аст ва ин маҳдудиятро дар ҳама гуна дастгоҳҳои мавҷуда тавассути тағир додани нармафзор ба смартфон ё компютер рафъ кардан мумкин аст.

Codec SBC

Codec SBC дорои бисёр параметрҳои гуногун мебошад, ки дар марҳилаи насби пайвастшавӣ баррасӣ карда мешаванд. Дар байни онҳо:

  • Шумораи каналҳо ва намуди каналҳо: муштарак стерео, стерео, канали дугона, моно;
  • Шумораи басомадҳо: 4 ё 8;
  • Шумораи блокҳо дар баста: 4, 8, 12, 16;
  • Алгоритми тақсими битҳо ҳангоми квантизатсия: Баландӣ, SNR;
  • Қимати максималӣ ва минималии ҳавзи битҳои ҳангоми квантизатсия истифодашаванда (битпул): одатан аз 2 то 53.

Дастгоҳи рамзкушоӣ бояд ҳар як комбинатсияи ин параметрҳоро дастгирӣ кунад. Рамзгузор метавонад ҳама чизро иҷро накунад.
Стекҳои мавҷудаи Bluetooth одатан бо профили зерин мувофиқат мекунанд: Стерео муштарак, 8 банд, 16 блок, Баландӣ, битпул 2..53. Ин профил аудиои 44.1 кГцро бо суръати битии 328 кбит рамзгузорӣ мекунад.
Параметри bitpool ба суръати бит дар як профил мустақиман таъсир мерасонад: ҳар қадар баландтар бошад, суръати бит ҳамон қадар баландтар аст ва аз ин рӯ сифат.
Аммо, параметри bitpool ба профили мушаххас вобаста нест; Ба суръати бит низ асосан аз дигар параметрҳо таъсир мерасонад: навъи каналҳо, шумораи басомадҳои басомадҳо, шумораи блокҳо. Шумо метавонед суръати битро бавосита, бо мувофиқа дар бораи профилҳои ғайристандартӣ, бидуни тағир додани битпул зиёд кунед.

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Формула барои ҳисоб кардани суръати битҳои SBC

Масалан, ҳолати Дучанд канал каналҳоро алоҳида рамзгузорӣ мекунад, бо истифода аз тамоми битпул барои ҳар як канал. Бо маҷбур кардани дастгоҳ ба истифодабарии канали Дучанд ба ҷои стерео муштарак, мо суръати битро бо ҳамон арзиши максималии битпулӣ тақрибан ду баробар зиёд мекунем: 617 kbps.
Ба андешаи ман, истифодаи арзиши bitpool, ки ба профил вобаста нест, дар марҳилаи гуфтушунид камбудии стандарти A2DP мебошад, ки боиси маҳдудсозии сунъии сифати SBC гардид. Музокироти битрейт, на битпул, мантиқтар мебуд.

Ин арзишҳои собит Bitpool ва Bitrate аз ҷадвал бо арзишҳои тавсияшуда барои истифода барои аудиои баландсифат сарчашма мегиранд. Аммо тавсия сабаби маҳдуд кардани худро бо ин арзишҳо нест.

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Мушаххасоти A2DP v1.2, ки аз соли 2007 то 2015 фаъол буд, аз ҳамаи дастгоҳҳои рамзкушоӣ талаб мекунад, ки бо суръати то 512 кбит/бит дуруст кор кунанд:

Декодери SNK бояд ҳамаи арзишҳои имконпазири битпулро дастгирӣ кунад, ки аз суръати максималии бит зиёд намешавад. Ин профил суръати максималии битро барои моно то 320 кб/с ва барои режимҳои дуканал 512 кб/с маҳдуд мекунад.

Дар версияи нави мушаххасот маҳдудияти бит вуҷуд надорад. Тахмин меравад, ки гӯшмонакҳои муосир пас аз соли 2015 бароварда шудаанд, ки EDR-ро дастгирӣ мекунанд, метавонанд суръати битро то ≈730 kbps дастгирӣ кунанд.

Бо баъзе сабабҳо, стекҳои Linux (PulseAudio), Android, Blackberry ва macOS Bluetooth, ки ман санҷидам, маҳдудиятҳои сунъӣ барои арзиши максималии параметри bitpool доранд, ки мустақиман ба ҳадди ниҳоии бит таъсир мерасонад. Аммо ин бузургтарин мушкил нест; қариб ҳама гӯшмонакҳо инчунин арзиши максималии битпулро то 53 маҳдуд мекунанд.
Тавре ки ман аллакай дида будам, аксари дастгоҳҳо дар стеки тағирёфтаи Bluetooth бо суръати битии 551 кбит, бе таваққуф ва тарқишҳо комилан кор мекунанд. Аммо чунин суръати бит ҳеҷ гоҳ дар шароити муқаррарӣ, дар стекҳои муқаррарии Bluetooth мувофиқ нахоҳад буд.

Тағир додани стеки Bluetooth

Ҳар як стек Bluetooth, ки бо стандарти A2DP мувофиқ аст, режими Дучанд каналро дастгирӣ мекунад, аммо фаъол кардани он аз интерфейс имконнопазир аст.

Биёед ба интерфейс як гузариш илова кунем! Ман барои Android 8.1 ва Android 9 часпакҳо сохтаам, ки ба стек дастгирии пурраи Дучанд каналро илова мекунанд, режимро ба менюи ивазкунии режим дар абзорҳои таҳиякунанда илова мекунанд ва ба SBC-ҳои бо Дучанд Канал фаъол ҳамчун кодекҳои иловагӣ ба монанди aptX муносибат мекунанд. , AAC ё LDAC (Android ин HD Audio номида мешавад) тавассути илова кардани аломати тасдиқ ба танзимоти дастгоҳи Bluetooth. Чунин ба назар мерасад:

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Патч барои Android 9
Патч барои Android 8.1

Вақте ки қуттии қайдкунӣ фаъол карда мешавад, аудиои Bluetooth бо суръати бит интиқол дода мешавад 551 kbps, агар гӯшмонакҳо суръати пайвасти 3 Мбит/с-ро дастгирӣ кунанд, ё 452 kbps, агар гӯшмонакҳо танҳо 2 Мбит/с дастгирӣ кунанд.

Ин пачка ба нармафзорҳои алтернативии зерин дохил карда шудааст:

  • LineageOS
  • Ремикси эҳё
  • crDroid

551 ва 452 кбит/с аз куҷо пайдо шуд?

Технологияи мубодилаи ҳавои Bluetooth барои интиқоли самараноки бастаҳои андозаи собит тарҳрезӣ шудааст. Интиқоли маълумот дар слотҳо сурат мегирад, шумораи зиёди слотҳое, ки дар як интиқол фиристода мешаванд, 5 аст. Инчунин усулҳои интиқол мавҷуданд, ки 1 ё 3 слотро истифода мебаранд, аммо на 2 ё 4. Дар 5 слот шумо метавонед то 679 байтро бо суръати пайваст интиқол диҳед. аз 2 Мбит/с ва то 1021 байт бо суръати 3 Мбит/с ва дар 3 - 367 ва 552 байт.

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Агар мо хоҳем, ки камтар аз 679 ё 1021 байт, вале зиёда аз 367 ё 552 байт маълумот интиқол диҳем, интиқол ба ҳар ҳол 5 слот мегирад ва маълумот дар як вақт интиқол дода мешавад, ки ин самаранокии интиқолро коҳиш медиҳад.

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

SBC дар ҳолати Дучанд канал, дар 44100 Гц аудио бо параметрҳои Bitpool 38, 16 блок дар як чаҳорчӯба, 8 диапазони басомад, аудиоро ба чаҳорчӯбаи 164 байт бо суръати битии 452 кбит рамзгузорӣ мекунад.
Аудио бояд дар протоколҳои интиқоли L2CAP ва AVDTP, ки аз сарбории аудио 16 байт мегирад, фаро гирифта шавад.

Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Ҳамин тариқ, як интиқоли Bluetooth бо 5 слот метавонад 4 чаҳорчӯбаи аудиоиро ҷойгир кунад:

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

Мо 11.7 мс маълумоти аудиоиро ба бастаи фиристодашаванда ҷойгир мекунем, ки он дар 3.75 мс интиқол дода мешавад ва мо дар баста 6 байти истифоданашуда боқӣ мондаем.
Агар шумо битпулро каме баланд кунед, дигар ба як баста бастабандии 4 чаҳорчӯбаи аудио имконнопазир хоҳад буд. Шумо бояд дар як вақт 3 фоторамка фиристед, ки ин самаранокии интиқолро коҳиш медиҳад, миқдори аудиои интиқолшавандаро дар як чаҳорчӯба кам мекунад ва дар шароити бади радио зудтар ба қафо мондани аудио оварда мерасонад.

Ба ҳамин тариқ, суръати бит 551 кбит/с барои EDR 3 Мбит/с интихоб шуд: бо Bitpool 47, 16 блок дар як чаҳорчӯба, 8 диапазони басомад, андозаи чаҳорчӯба 200 байт, бо суръати 551 кбит/с. Як баста 5 фоторамка ё 14.6 мс мусиқиро дар бар мегирад.

Алгоритми ҳисобкунии ҳамаи параметрҳои SBC хеле мураккаб аст, агар шумо дастӣ ҳисоб кунед, шумо метавонед ба осонӣ ошуфта шавед, аз ин рӯ ман як ҳисобкунаки интерактивӣ сохтам, то ба хоҳишмандон кӯмак расонад: btcodecs.valdikss.org.ru/sbc-bitrate-calculator

Чаро ин ҳама лозим аст?

Бар хилофи эътиқоди маъмул дар бораи сифати садои codec aptX, он метавонад дар баъзе файлҳо натиҷаҳои бадтар аз SBC бо суръати стандартии битии 328 кбит ба даст орад.

SBC ба таври динамикӣ битҳои квантизатсияро ба басомадҳо дар асоси паст ба баланд тақсим мекунад. Агар тамоми суръати бит барои басомадҳои паст ва миёна истифода мешуд, басомадҳои баланд "бурида мешаванд" (ба ҷои он хомӯшӣ хоҳад буд).
aptX басомадҳои басомадҳоро бо шумораи якхелаи битҳо ҳама вақт квантизатсия мекунад, бинобар ин он суръати доимии бит дорад: 352 kbps барои 44.1 кГц, 384 кбит барои 48 кГс ва он наметавонад ба он басомадҳое, ки ба онҳо бештар ниёз доранд, "бит-гузар" карда наметавонад. . Баръакси SBC, aptX басомадҳоро "бурида" намекунад, балки ба онҳо садои квантизатсияро илова мекунад, диапазони динамикии аудиоро коҳиш медиҳад ва баъзан тарқишҳои хосро ҷорӣ мекунад. SBC "тафсилотро мехӯрад" - ҷойҳои оромтаринро мепартояд.
Ба ҳисоби миёна, дар муқоиса бо SBC 328k, aptX дар мусиқӣ бо диапазони басомади васеъ таҳрифи камтарро ҷорӣ мекунад, аммо дар мусиқӣ бо диапазони басомади танг ва диапазони васеи динамикӣ, SBC 328k баъзан ғолиб меояд.

Биёед як ҳолати махсусро баррасӣ кунем. Спектрограммаи сабти фортепиано:
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Энергияи асосӣ дар басомадҳои аз 0 то 4 кГц ҷойгир буда, то 10 кГц давом мекунад.
Спектрограммаи файле, ки дар aptX фишурда шудааст, чунин менамояд:
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Ва ин аст он чизе ки SBC 328k ба назар мерасад.
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Мумкин аст, ки SBC 328k давра ба давра диапазони болотар аз 16 кГцро комилан хомӯш кард ва тамоми суръати битҳои дастрасро дар диапазонҳои аз ин арзиш камтар сарф кард. Аммо, aptX ба спектри басомаде, ки ба гӯши инсон мешунавад, таҳрифи бештар ворид кард, тавре ки дар спектрограммаи аслии хориҷшуда аз спектрограммаи aptX дида мешавад (қадар равшантар бошад, таҳрифи бештар):
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Дар ҳоле ки SBC 328k сигналро дар диапазони аз 0 то 10 кГц камтар вайрон кард ва боқимондаашро қатъ кард:
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Сатҳи 485к бит-и SBC барои нигоҳ доштани тамоми диапазони басомад бидуни хомӯш кардани бандҳо кофӣ буд.
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

SBC 485k аз aptX дар ин роҳ дар диапазони 0-15 кГц ба таври назаррас пеш аст ва фарқияти хурдтар, вале ба ҳар ҳол намоёни 15-22 кГц (қадар тиратар бошад, ҳамон қадар таҳриф камтар):
Мо стеки Bluetooth-ро барои беҳтар кардани садо дар гӯшмонакҳо бидуни кодекҳои AAC, aptX ва LDAC тағир медиҳем

Архиви аудиои аслӣ, SBC ва aptX.

Бо гузаштан ба SBC-и баландсифат, шумо аудиоеро ба даст меоред, ки аксар вақт дар ҳама гӯшмонакҳо aptX-ро мезананд. Дар гӯшмонакҳое, ки пайвасти 3 Мбит/с EDR-ро дастгирӣ мекунанд, суръати битии 551 кбит/с садоеро бо aptX HD муқоиса мекунад.

Оё шумо метавонед боз ҳам бештар кор кунед?

Ямоқи Android инчунин имкони баланд бардоштани суръати бит барои дастгоҳҳои 2 Мбит / сонияро дар бар мегирад. Шумо метавонед суръати битро аз 452 кбит/с то 595 кбит/с зиёд кунед, бо арзиши паст кардани устувории интиқол дар шароити душвори радио.
Танзими тағирёбандаи persist.bluetooth.sbc_hd_higher_bitrate ба 1 кофӣ аст:

# setprop persist.bluetooth.sbc_hd_higher_bitrate 1

Ямоқи шадиди бит то ҳол танҳо дар LineageOS 15.1 қабул шудааст, аммо на дар 16.0.

Мутобиқати дастгоҳ

SBC Dual Channel аз ҷониби қариб ҳама гӯшмонакҳо, баландгӯякҳо ва сарлавҳаҳои мошин дастгирӣ карда мешавад. Ин тааҷҷубовар нест - стандарт дастгирии онро дар ҳама гуна дастгоҳҳои рамзкушоӣ талаб мекунад. Шумораи ками дастгоҳҳое мавҷуданд, ки дар онҳо ин режим мушкилотро ба вуҷуд меорад, аммо инҳо ҳолатҳои ҷудогона мебошанд.
Тафсилоти бештарро дар бораи дастгоҳҳои мувофиқ дар ин ҷо пайдо кардан мумкин аст 4pda ё xda-таҳиягарон.

Муқоисаи фарқиятҳои садо

Ман хидмати веб сохтам, ки аудиоро ба SBC (инчунин aptX ва aptX HD) дар вақти воқеӣ, рост дар браузер рамзгузорӣ мекунад. Бо он, шумо метавонед садои профилҳои гуногуни SBC ва дигар кодекҳоро бидуни интиқоли аудио тавассути Bluetooth, дар ҳама гӯшмонакҳои симдор, баландгӯякҳо ва мусиқии дӯстдоштаи худ муқоиса кунед ва инчунин ҳангоми навозиш мустақиман параметрҳои рамзгузориро тағир диҳед.
btcodecs.valdikss.org.ru/sbc-encoder

Бо таҳиягарони Android тамос гиред

Ман ба бисёре аз таҳиягарони стекҳои Bluetooth дар Google навиштам, ки аз онҳо хоҳиш карданд, ки дар филиали асосии Android - AOSP дохил кардани часбҳоро баррасӣ кунанд, аммо ягон посух нагирифтанд. Пахшҳои ман дар Системаи патч Gerrit барои Android низ бе шарҳу эзоҳе аз ягон нафаре, ки иштирок дошт, боқӣ монд.
Агар ман метавонам дар тамос бо таҳиягарон дар Google ва овардани SBC HD ба Android каме кӯмак гирам, ман хурсанд мешудам. Ямоқи Геррит аллакай кӯҳна шудааст (ин яке аз таҳрирҳои барвақт аст) ва ман онро навсозӣ мекунам, агар таҳиягарон ба тағйироти ман таваҷҷӯҳ дошта бошанд (навсозии он барои ман осон нест, ман дастгоҳҳои мувофиқ бо Android Q надорам. ).

хулоса

Корбарони смартфонҳои дорои LineageOS, Resurrection Remix ва нармафзори crDroid метавонанд дар айни замон аз сифати беҳтари садо баҳра баранд, танҳо ин интихобро дар танзимоти дастгоҳи Bluetooth фаъол созед. Корбарони Linux инчунин метавонанд тавассути насбкунӣ суръати битҳои SBC-ро афзоиш диҳанд навор аз Пали Рохар, ки дар байни чизҳои дигар, дастгирии кодекҳои aptX, aptX HD ва FastStreamро илова мекунад.

Манбаъ: will.com

Илова Эзоҳ