Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

3.5 mm ses jakı olmayan akıllı telefonların seri üretimi nedeniyle, kablosuz Bluetooth kulaklıklar birçok kişi için kulaklık modunda müzik dinlemenin ve iletişim kurmanın ana yolu haline geldi.
Kablosuz cihaz üreticileri her zaman ayrıntılı ürün özellikleri yazmaz ve İnternetteki Bluetooth ses ile ilgili makaleler çelişkilidir, bazen yanlıştır, tüm özelliklerden bahsetmez ve çoğu zaman aynı bilgileri gerçeğe uymayan şekilde kopyalar.
Protokolü, Bluetooth işletim sistemi yığınlarının, kulaklıkların ve hoparlörlerin yeteneklerini, müzik ve konuşma için Bluetooth codec bileşenlerini anlamaya çalışalım, iletilen sesin kalitesini ve gecikmeyi neyin etkilediğini öğrenelim, desteklenen codec bileşenleri ve diğer cihazlar hakkında bilgilerin nasıl toplanıp kodunun nasıl çözüleceğini öğrenelim Yetenekler.

TL; DR:

  • SBC - normal codec bileşeni
  • Kulaklıkların her codec için ayrı ayrı kendi ekolayzırı ve son işlemleri vardır
  • aptX reklamı yapıldığı kadar iyi değil
  • LDAC saçmalık pazarlıyor
  • Çağrı kalitesi hâlâ düşük
  • C ses kodlayıcılarını emscripten aracılığıyla WebAssembly'de derleyerek tarayıcınıza gömebilirsiniz ve çok fazla yavaşlamazlar.

Bluetooth aracılığıyla müzik

Bluetooth'un işlevsel bileşeni profiller - belirli işlevlerin özellikleri - tarafından belirlenir. Bluetooth müzik akışı, yüksek kaliteli bir A2DP tek yönlü ses iletim profilini kullanır. A2DP standardı 2003 yılında kabul edildi ve o zamandan beri önemli ölçüde değişmedi.
Profilde, özellikle Bluetooth için oluşturulmuş, düşük hesaplama karmaşıklığına sahip 1 zorunlu kodlayıcı SBC ve 3 ek kodlayıcı standartlaştırılmıştır. Kendi uygulamanızın belgelenmemiş kodeklerini kullanmak da mümkündür.

Haziran 2019 itibarıyla buradayız xkcd çizgi romanında 14 A2DP kodlayıcıyla:

  • SBC ← A2DP'de standartlaştırılmıştır, tüm cihazlar tarafından desteklenmektedir
  • MPEG-1/2 Layer 1/2/3 ← A2DP'de standartlaştırılmıştır: iyi bilinmektedir MP3, dijital TV'de kullanılır MP2ve bilinmiyor MP1
  • MPEG-2/4 AAC ← A2DP'de standartlaştırılmıştır
  • ÇEKİM ← Sony'nin eski codec'i, A2DP'de standartlaştırılmıştır
  • LDAC ← Sony'den yeni codec
  • aptX ← 1988'den kodek
  • aptX-HD ← aptX ile aynı, yalnızca farklı kodlama seçenekleriyle
  • aptX Düşük Gecikme ← tamamen farklı codec bileşeni, yazılım uygulaması yok
  • aptX Uyarlanabilir ← Qualcomm'dan başka bir codec bileşeni
  • Hızlı Akış ← sözde codec bileşeni, çift yönlü SBC değişikliği
  • HWA LHDC ← Huawei'den yeni codec
  • SamsungHD ← 2 cihaz tarafından desteklenir
  • Samsung Ölçeklenebilir ← 2 cihaz tarafından desteklenir
  • Samsung UHQ-BT ← 3 cihaz tarafından desteklenir

Bluetooth'un 2 ve 3 Mbit/s hızlarda veri aktarmanıza izin veren EDR'si varken ve sıkıştırılmamış iki kanallı 16 bit PCM için 1.4 Mbit/s yeterliyken neden codec bileşenlerine ihtiyacımız olduğunu soruyorsunuz?

Bluetooth aracılığıyla veri aktarımı

Bluetooth'ta iki tür veri aktarımı vardır: Bağlantı kurulmadan eşzamansız aktarım için Eşzamansız Bağlantı Az (ACL) ve ön bağlantı anlaşmasıyla eşzamanlı aktarım için Eşzamanlı Bağlantı Yönelimli (SCO).
İletim, bir zaman bölme şeması kullanılarak ve her paket için ayrı ayrı bir iletim kanalı seçilerek (Frekans-Sıçrama/Zaman-Bölüm-Çift yönlü, FH/TDD) gerçekleştirilir; bunun için zaman, slot adı verilen 625 mikrosaniyelik aralıklara bölünür. Cihazlardan biri çift sayılı yuvalarda, diğeri tek sayılı yuvalarda iletim yapar. İletilen paket, verinin boyutuna ve ayarlanan iletim türüne bağlı olarak 1, 3 veya 5 slotu işgal edebilir, bu durumda, tek cihazla iletim, iletimin sonuna kadar çift ve tek slotlarda gerçekleştirilir. Her biri 1600 yuvayı kaplarsa ve her iki cihaz da durmadan bir şeyler gönderip alırsa, toplamda saniyede 1'e kadar paket alınıp gönderilebilir.

Duyurularda ve Bluetooth web sitesinde bulunabilen EDR için 2 ve 3 Mbit/s, toplam tüm verilerin (verilerin kapsüllenmesi gereken tüm protokollerin teknik başlıkları dahil) iki yönde maksimum kanal aktarım hızıdır. eşzamanlı. Gerçek veri aktarım hızı büyük ölçüde değişecektir.

Müziği iletmek için, hemen hemen her zaman EDR modunda sırasıyla 2 Mbit/s ve 5 Mbit/s'lik maksimum miktarda veri taşıyan ve 3 kez yer kaplayan 5-DH2 ve 3-DH5 gibi paketleri kullanan asenkron bir yöntem kullanılır. -paylaşım yuvaları.

Bir cihazda 5 yuva ve diğerinde 1 yuva (DH5/DH1) kullanılarak iletimin şematik gösterimi:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Yayın dalgalarının zaman bölümü prensibinden dolayı, bir paketi ilettikten sonra ikinci cihaz bize bir şey iletmezse veya küçük bir paket iletirse 625 mikrosaniyelik bir zaman dilimini, ikinci cihaz ilettiği takdirde daha fazla süre beklemek zorunda kalıyoruz. büyük paketler halinde. Telefona birden fazla cihaz bağlıysa (örneğin kulaklık, saat ve spor bileziği), aktarım süresi hepsi arasında paylaştırılır.

Sesi özel aktarım protokolleri L2CAP ve AVDTP'de kapsülleme ihtiyacı, iletilen ses yükünün olası maksimum miktarından 16 bayt alır.

Paket Tipi
Yuva sayısı
Maks. paketteki bayt sayısı
Maks. A2DP yükünün bayt sayısı
Maks. A2DP veri yükü bit hızı

2-DH3
3
367
351
936 kbps

3-DH3
3
552
536
1429 kbps

2-DH5
5
679
663
1414 kbps

3-DH5
5
1021
1005
2143 kbps

1414 ve 1429 kbps, gürültülü 2.4 GHz aralığı ve servis verilerinin iletilmesi ihtiyacı nedeniyle gerçek koşullarda sıkıştırılmamış sesi iletmek için kesinlikle yeterli değildir. EDR 3 Mbit/s iletim gücü gerektirir ve yayında gürültü gerektirir, bu nedenle 3-DH5 modunda bile konforlu PCM iletimi imkansızdır, her zaman kısa süreli kesintiler olur ve her şey yalnızca bir mesafeden çalışır. birkaç metre.
Uygulamada, 990 kbit/s'lik bir ses akışının (LDAC 990 kbit/s) bile iletilmesi zordur.

Codec bileşenlerine dönelim.

SBC

A2DP standardını destekleyen tüm cihazlar için codec gereklidir. Aynı anda en iyi ve en kötü codec bileşeni.

Örnekleme oranı
Bit derinliği
Bit hızı
Kodlama desteği
Kod çözme desteği

16, 32, 44.1, 48 kHz
16 bit
10-1500 kbps
Tüm cihazlar
Tüm cihazlar

SBC, uyarlanabilir darbe kod modülasyonunu (APCM) kullanan, ilkel bir psikoakustik modele (yalnızca sessiz seslerin maskelenmesi uygulanır) sahip, basit ve hesaplama açısından hızlı bir codec bileşenidir.
A2DP spesifikasyonu iki profilin kullanılmasını önerir: Orta Kalite ve Yüksek Kalite.
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Codec, algoritmik gecikmeyi, bir bloktaki örnek sayısını, bit dağıtım algoritmasını kontrol etmenize olanak tanıyan birçok ayara sahiptir, ancak hemen hemen her yerde spesifikasyonda önerilen aynı parametreler kullanılır: Ortak Stereo, 8 frekans bandı, 16 blok bir ses çerçevesi, Ses yüksekliği bit dağıtım yöntemi.
SBC, bit hızını doğrudan etkileyen Bitpool parametresinin dinamik değişimini destekler. Yayın dalgaları tıkanmışsa, paketler kaybolmuşsa veya cihazlar çok uzak mesafelerde bulunuyorsa, ses kaynağı iletişim normale dönene kadar Bit havuzunu azaltabilir.

Çoğu kulaklık üreticisi maksimum Bitpool değerini 53'e ayarlar; bu, önerilen profili kullanırken bit hızını saniyede 328 kilobit ile sınırlandırır.
Kulaklık üreticisi maksimum Bitpool değerini 53'ün üzerine ayarlamış olsa bile (bu tür modeller bulunur, örneğin: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, ayrıca bazı alıcılarda ve araç kafa ünitelerinde de bulunur), çoğu işletim sistemi buna izin vermez Bluetooth yığınlarında belirlenen dahili değer sınırı nedeniyle artan bit hızlarının kullanılması.
Ayrıca bazı üreticiler bazı cihazlar için maksimum Bitpool değerini düşük olarak ayarlıyor. Örneğin Bluedio T için 39, Samsung Gear IconX için 37, bu da düşük ses kalitesi veriyor.

Bluetooth yığınlarının geliştiricileri tarafından yapılan yapay kısıtlamalar, büyük olasılıkla bazı cihazların büyük Bitpool değerlerine veya atipik profillere sahip, destek bildirmiş olsalar bile uyumsuzluğu ve sertifikasyon sırasında yetersiz test nedeniyle ortaya çıktı. Bluetooth yığınlarının yazarları için, yanlış cihazların veritabanlarını oluşturmak yerine kendilerini önerilen profil üzerinde anlaşmaya varmakla sınırlamak daha kolaydı (her ne kadar şimdi bunu diğer yanlış çalışan işlevler için yapıyorlarsa da).

SBC, nicemleme bitlerini farklı ağırlıklarla düşükten yükseğe doğru frekans bantlarına dinamik olarak tahsis eder. Bit hızının tamamı düşük ve orta frekanslar için kullanılmışsa, yüksek frekanslar "kesilecektir" (bunun yerine sessizlik olacaktır).

Örnek SBC 328 kbps. Üstte orijinal, altta periyodik olarak parçalar arasında geçiş yapan SBC var. Video dosyasındaki ses FLAC kayıpsız sıkıştırma codec bileşenini kullanır. FLAC'ı bir mp4 kapsayıcısında kullanmak resmi olarak standartlaştırılmamıştır, bu nedenle tarayıcınızın bunu oynatacağı garanti edilmez, ancak masaüstü Chrome ve Firefox'un en son sürümlerinde çalışması gerekir. Sesiniz yoksa dosyayı indirip tam teşekküllü bir video oynatıcıda açabilirsiniz.
ZZ Top - Keskin Giyinmiş Adam

Spektrogram, geçiş anını gösterir: SBC, 17.5 kHz'in üzerindeki sessiz sesleri periyodik olarak keser ve 20 kHz'in üzerindeki bant için herhangi bir bit tahsis etmez. Tam spektrograma (1.7 MB) tıklanarak ulaşılabilir.
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Bu parçada orijinal ile SBC arasında hiçbir fark duymuyorum.

Daha yeni bir şey alalım ve Bitpool 37'li Samsung Gear IconX kulaklıklar kullanılarak elde edilecek sesi simüle edelim (yukarıda - orijinal sinyal, aşağıda - SBC 239 kbps, FLAC'de ses).
Akılsızca Kendine Hoşgörü - Tanık

Vokallerin yüksek frekanslarında çatırtı, daha az stereo efekti ve hoş olmayan "tıkırtı" sesi duyuyorum.

SBC çok esnek bir codec bileşeni olmasına rağmen, düşük gecikme için yapılandırılabilir, yüksek bit hızlarında (452+ kbps) mükemmel ses kalitesi sağlar ve standart Yüksek Kalitede (328 kbps) çoğu insan için oldukça iyidir. A2DP standardı sabit profiller belirtmez (yalnızca önerilerde bulunur), yığın geliştiricileri Bitpool'a yapay kısıtlamalar koymuştur, iletilen sesin parametreleri kullanıcı arayüzünde görüntülenmez ve kulaklık üreticileri kendi ayarlarını yapmakta özgürdür ve asla Ürünün teknik özelliklerinde Bitpool değerini belirtin, codec düşük ses kalitesiyle meşhur oldu, ancak bu codec için bir sorun değil.
Bitpool parametresi yalnızca bir profildeki bit hızını doğrudan etkiler. Aynı Bitpool 53 değeri, önerilen Yüksek Kalite profiliyle hem 328 kbps bit hızı hem de Çift Kanal ve 1212 frekans bandıyla 4 kbps bit hızı verebilir; bu nedenle işletim sistemi yazarları, Bitpool kısıtlamalarına ek olarak bir sınır ve sınır belirler. Bit hızı. Gördüğüm kadarıyla bu durum A2DP standardındaki bir kusur nedeniyle ortaya çıktı: Bitpool'u değil, bit hızını müzakere etmek gerekiyordu.

Farklı işletim sistemlerinde SBC yeteneklerine yönelik destek tablosu:

ОС
Desteklenen örnekleme oranları
Maksimum sınırı Bit havuzu
Maksimum sınırı Bit hızı
Tipik Bit Hızı
Bitpool dinamik ayarı

, Windows 10
44.1 кГц
53
512 kbps
328 kbps
✓*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (gelen bağlantılar için), 53 (giden bağlantılar için)
Limit yok
328 kbps
✓*

MacOS High Sierra
44.1 кГц
64, varsayılan 53***
bilinmeyen
328 kbps

Android 4.4-9
44.1/48kHz**
53
328 kbps
328 kbps

Android 4.1-4.3.1
44.1, 48kHz**
53
229 kbps
229 kbps

Blackberry OS 10
48 кГц
53
Limit yok
328 kbps

* Bitpool yalnızca azalır ancak aktarım koşulları iyileşirse otomatik olarak artmaz. Bitpool'u geri yüklemek için oynatmayı durdurmanız, birkaç saniye beklemeniz ve sesi yeniden başlatmanız gerekir.
** Varsayılan değer, ürün yazılımını derlerken belirtilen yığın ayarlarına bağlıdır. Android 8/8.1'de frekans, derleme sırasındaki ayarlara bağlı olarak yalnızca 44.1 kHz veya 48 kHz'dir; diğer sürümlerde ise 44.1 kHz ve 48 kHz aynı anda desteklenir.
*** Bitpool değeri Bluetooth Explorer programında artırılabilir.

aptX ve aptX HD

aptX, uyarlanabilir diferansiyel darbe kod modülasyonunu kullanan, psikoakustik içermeyen, basit ve hesaplama açısından hızlı bir codec bileşenidir (ADPCM). 1988 civarında ortaya çıktı (dosyalama tarihi patent Şubat 1988 tarihli), Bluetooth'tan önce öncelikle profesyonel kablosuz ses ekipmanlarında kullanılıyordu. Şu anda Qualcomm'a aittir ve lisans ve telif ücreti gerektirir. 2014 itibariyle: 6000 cihaza kadar gruplar için tek seferlik 1 ABD Doları ve cihaz başına ≈ 10000 ABD Doları (kaynak, sayfa 16).
aptX ve aptX HD, farklı kodlama profillerine sahip aynı codec bileşenidir.

Codec bileşeninin yalnızca bir parametresi vardır - örnekleme frekansını seçmek. Ancak kanal sayısı/mod seçimi mevcut, ancak benim bildiğim tüm cihazlarda (70+ adet) yalnızca Stereo destekleniyor.

kodek
Örnekleme oranı
Bit derinliği
Bit hızı
Kodlama desteği
Kod çözme desteği

aptX
16, 32, 44.1, 48 kHz
16 bit
128 / 256 / 352 / 384 kbps (örnekleme hızına bağlı olarak)
Windows 10 (masaüstü ve mobil), macOS, Android 4.4+/7*, Blackberry OS 10
Çok çeşitli ses cihazları (donanım)

* 7'ye kadar olan sürümler, Bluetooth yığınının değiştirilmesini gerektirir. Codec bileşeni yalnızca Android cihaz üreticisi codec bileşenini Qualcomm'dan lisanslamışsa (işletim sistemi kodlama kitaplıklarına sahipse) desteklenir.

aptX, sesi 4 frekans bandına böler ve bunları sürekli olarak aynı sayıda bit ile niceler: 8-0 kHz için 5.5 bit, 4-5.5 kHz için 11 bit, 2-11 kHz için 16.5 bit, 2-16.5 kHz için 22 bit ( örnekleme hızı 44.1 kHz için rakamlar).

AptX ses örneği (üstte - orijinal sinyal, altta - aptX, yalnızca sol kanalların spektrogramları, FLAC'ta ses):

Yüksekler biraz daha kırmızılaştı ama farkı duyamıyordunuz.

Kuantizasyon bitlerinin sabit dağılımı nedeniyle codec, bitleri onlara en çok ihtiyaç duyan frekanslara kaydıramaz. SBC'den farklı olarak aptX, frekansları "kesmeyecek" ancak bunlara nicemleme gürültüsü ekleyerek sesin dinamik aralığını azaltacaktır.

Örneğin bant başına 2 bit kullanmanın dinamik aralığı 12 dB'ye düşürdüğü varsayılmamalıdır: ADPCM, 96 niceleme biti kullanıldığında bile yalnızca belirli bir sinyal için 2 dB'ye kadar dinamik aralığa izin verir.
ADPCM, PCM'deki gibi mutlak değeri saklamak yerine, mevcut örnek ile sonraki örnek arasındaki sayısal farkı saklar. Bu, aynı (kayıpsız) veya hemen hemen aynı (nispeten küçük bir yuvarlama hatasıyla) bilgiyi depolamak için gereken bit sayısı gereksinimlerini azaltmanıza olanak tanır. Yuvarlama hatalarını azaltmak için katsayı tabloları kullanılır.
Codec bileşenini oluştururken yazarlar bir dizi müzik ses dosyasındaki ADPCM katsayılarını hesapladılar. Ses sinyali, tabloların oluşturulduğu müzik setine ne kadar yakınsa, aptX o kadar az niceleme hatası (gürültü) oluşturur.

Bu nedenle sentetik testler her zaman müzikten daha kötü sonuçlar verecektir. AptX'in kötü sonuçlar gösterdiği özel bir sentetik örnek yaptım - 12.4 kHz frekanslı bir sinüs dalgası (yukarıda - orijinal sinyal, aşağıda - aptX. FLAC'ta ses. Sesi azaltın!):

Spektrum grafiği:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Gürültüler açıkça duyulabiliyor.

Bununla birlikte, daha sessiz olacak şekilde daha küçük genliğe sahip bir sinüs dalgası oluşturursanız, gürültü de daha sessiz hale gelecektir, bu da geniş bir dinamik aralığın göstergesi olacaktır:

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Orijinal müzik parçası ile sıkıştırılmış parça arasındaki farkı duymak için sinyallerden birini ters çevirebilir ve parçaları kanal kanal ekleyebilirsiniz. Bu yaklaşım genel olarak yanlıştır ve daha karmaşık codec bileşenleriyle mantıklı sonuçlar vermez, ancak özellikle ADPCM için oldukça uygundur.
Orijinal ve aptX arasındaki fark
Sinyallerin ortalama karekök farkı -37.4 dB seviyesinde olup bu tür sıkıştırılmış müzikler için çok fazla bir rakam değildir.

aptX-HD

aptX HD, bağımsız bir codec bileşeni değildir; aptX codec bileşeninin geliştirilmiş bir kodlama profilidir. Değişiklikler, kodlama frekans aralıkları için ayrılan bit sayısını etkiledi: 10-0 kHz için 5.5 bit, 6-5.5 kHz için 11 bit, 4-11 kHz için 16.5 bit, 4-16.5 kHz için 22 bit (44.1 kHz için rakamlar) .

kodek
Örnekleme oranı
Bit derinliği
Bit hızı
Kodlama desteği
Kod çözme desteği

aptX-HD
16, 32, 44.1, 48 kHz
24 bit
192 / 384 / 529 / 576 kbps (örnekleme hızına bağlı olarak)
Android8+*
Bazı ses cihazları (donanım)

* 7'ye kadar olan sürümler, Bluetooth yığınının değiştirilmesini gerektirir. Codec bileşeni yalnızca Android cihaz üreticisi codec bileşenini Qualcomm'dan lisanslamışsa (işletim sistemi kodlama kitaplıklarına sahipse) desteklenir.

AptX'ten daha az yaygın: Görünüşe göre Qualcomm'dan ayrı lisanslama ve ayrı lisans ücretleri gerektiriyor.

Örneği 12.4 kHz'deki sinüs dalgasıyla tekrarlayalım:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

AptX'ten çok daha iyi ama yine de biraz gürültülü.

aptX Düşük Gecikme

Geliştirilmesine dahil olan kişilerden alınan sınırlı bilgilere bakılırsa, standart aptX ve aptX HD ile hiçbir ortak yanı olmayan bir Qualcomm codec'i. Ses gecikmesinin yazılım tarafından ayarlanamadığı etkileşimli düşük gecikmeli ses iletimi (filmler, oyunlar) için tasarlanmıştır. Kodlayıcılar ve kod çözücülerin bilinen bir yazılım uygulaması yoktur; bunlar yalnızca vericiler, alıcılar, kulaklıklar ve hoparlörler tarafından desteklenir, ancak akıllı telefonlar ve bilgisayarlar tarafından desteklenmez.

Örnekleme oranı
Bit hızı
Kodlama desteği
Kod çözme desteği

44.1 кГц
276/420 kbps
Bazı vericiler (donanım)
Bazı ses cihazları (donanım)

AAC

AAC veya Gelişmiş Ses Kodlaması, ciddi bir psikoakustik modele sahip, hesaplama açısından karmaşık bir codec bileşenidir. İnternette ses için yaygın olarak kullanılır, popülerliği MP3'ten sonra ikinci sıradadır. Lisanslama ve telif ücreti gerektirir: Tek seferlik 15000 ABD Doları (veya 1000'ten az çalışanı olan şirketler için 15 ABD Doları) + ilk 0.98 cihaz için 500000 ABD Doları (kaynak).
Codec, MPEG-2 ve MPEG-4 spesifikasyonları dahilinde standartlaştırılmıştır ve yaygın yanılgıların aksine Apple'a ait değildir.

Örnekleme oranı
Bit hızı
Kodlama desteği
Kod çözme desteği

8 - 96 kHz
8 - 576 kbps (stereo için), 256 - 320 kbps (Bluetooth için tipik)
macOS, Android 7+*, iOS
Çok çeşitli ses cihazları (donanım)

* yalnızca üreticilerinin lisans ücreti ödediği cihazlarda

iOS ve macOS, mümkün olan en yüksek ses kalitesini sunmak için Apple'ın mevcut en iyi AAC kodlayıcısını kullanır. Android, ikinci en yüksek kalitedeki Fraunhofer FDK AAC kodlayıcıyı kullanır, ancak platformda (SoC) yerleşik olarak bilinmeyen kodlama kalitesine sahip çeşitli donanımlar kullanabilir. SoundGuys web sitesindeki son testlere göre, farklı Android telefonların AAC kodlama kalitesi büyük ölçüde farklılık gösterir:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Çoğu kablosuz ses cihazının AAC için maksimum bit hızı 320 kbps'dir, bazıları ise yalnızca 256 kbps'yi destekler. Diğer bit hızları oldukça nadirdir.
AAC, 320 ve 256 kbps bit hızlarında mükemmel kalite sağlar ancak zaten sıkıştırılmış içeriğin sıralı kodlamasının kaybıancak, birkaç ardışık kodlamada bile 256 kbps bit hızında iOS'ta orijinal ile herhangi bir fark duymak zordur; tek kodlamayla, örneğin MP3 320 kbps'den AAC 256 kbps'ye kadar kayıplar ihmal edilebilir.
Diğer Bluetooth codec bileşenlerinde olduğu gibi, herhangi bir müziğin kodu önce çözülür ve ardından codec tarafından kodlanır. AAC formatında müzik dinlerken, ilk önce işletim sistemi tarafından kodu çözülür, ardından Bluetooth aracılığıyla aktarılmak üzere tekrar AAC'ye kodlanır. Bu, müzik ve yeni mesaj bildirimleri gibi birden fazla ses akışını karıştırmak için gereklidir. iOS bir istisna değildir. İnternette, AAC formatındaki iOS müziğinin Bluetooth aracılığıyla iletildiğinde kod dönüştürülmediğine dair birçok ifade bulabilirsiniz, bu doğru değildir.

MP1/2/3

MPEG-1/2 Bölüm 3 ailesinin codec bileşenleri, iyi bilinen ve yaygın olarak kullanılan MP3, daha az yaygın olan MP2 (çoğunlukla dijital TV ve radyoda kullanılır) ve tamamen bilinmeyen MP1'den oluşur.

Eski MP1 ve MP2 codec'leri hiçbir şekilde desteklenmiyor: Bunları kodlayacak veya kodunu çözecek herhangi bir kulaklık veya Bluetooth yığını bulamadım.
MP3 kod çözme bazı kulaklıklar tarafından desteklenir, ancak kodlama herhangi bir modern işletim sistemi yığınında desteklenmez. Görünüşe göre Windows için üçüncü taraf BlueSoleil yığını, yapılandırma dosyasını manuel olarak değiştirirseniz MP3 olarak kodlayabilir, ancak benim için bunu yüklemek Windows 10'da BSoD'ye yol açıyor. Sonuç - codec bileşeni aslında Bluetooth ses için kullanılamaz.
Daha önce, 2006-2008 yıllarında, A2DP standardının cihazlarda yaygınlaşmasından önce, insanlar Symbian ve Windows Mobile'da bulunan MSI BluePlayer programı aracılığıyla Nokia BH-3 kulaklıkta MP501 müzik dinliyorlardı. O zamanlar, akıllı telefonların işletim sistemi mimarisi birçok düşük seviyeli fonksiyona erişime izin veriyordu ve Windows Mobile'da üçüncü taraf Bluetooth yığınlarını kurmak bile mümkündü.

MP3 codec bileşeninin son patentinin süresi doldu; codec bileşeninin kullanımı 23 Nisan 2017'den bu yana lisans ücreti gerektirmiyor.

Yukarıda belirtilen referanslarda belirtilen en uzun süreli patent bir önlem olarak alınırsa, MP3 teknolojisi, 16 Nisan 2017 tarihinde Technicolor'un sahibi olduğu ve yönettiği ABD Patenti 6,009,399'un süresinin dolması ile Amerika Birleşik Devletleri'nde patentsiz hale gelmiştir.

Kaynak: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

Örnekleme oranı
Bit hızı
Kodlama desteği
Kod çözme desteği

16 - 48 kHz
8 - 320 kbps
Hiçbir yerde desteklenmiyor
Bazı ses cihazları (donanım)

LDAC

Sony'nin yeni ve aktif olarak tanıtılan "Yüksek Çözünürlüklü" codec'i, 96 kHz'e kadar örnekleme hızlarını ve 24 bit'i, 990 kbps'ye kadar bit hızlarını destekler. Mevcut Bluetooth codec bileşenlerinin yerine geçecek bir audiophile codec bileşeni olarak tanıtılır. Radyo yayın koşullarına bağlı olarak uyarlanabilir bit hızı ayarlama işlevine sahiptir.

LDAC kodlayıcı (libldac) standart Android paketine dahil olduğundan kodlama, işletim sistemi sürüm 8'den itibaren tüm Android akıllı telefonlarda desteklenir. Ücretsiz olarak temin edilebilen yazılım kod çözücüleri yoktur, codec spesifikasyonu genel kullanıma açık değildir, ancak kodlayıcıya ilk bakışta codec bileşeninin iç yapısı şuna benzer: ATRAC9 - Sony'nin PlayStation 4 ve Vita'da kullanılan codec'i: her ikisi de frekans alanında çalışır, değiştirilmiş ayrık kosinüs dönüşümü (MDCT) kullanır ve Huffman algoritmasını kullanan sıkıştırma kullanır.

LDAC desteği neredeyse yalnızca Sony kulaklıkları tarafından sağlanır. LDAC kodunu çözme özelliği bazen diğer üreticilerin kulaklıklarında ve DAC'lerinde bulunur, ancak çok nadirdir.

Örnekleme oranı
Bit hızı
Kodlama desteği
Kod çözme desteği

44.1 - 96 kHz
303/606/909 kbit/s (44.1 ve 88.2 kHz için), 330/660/990 kbit/s (48 ve 96 kHz için)
Android 8 +
Bazı Sony kulaklıklar ve diğer üreticilerin bazı cihazları (donanım)

LDAC'nin Yüksek Çözünürlüklü codec bileşeni olarak pazarlanması, teknik bileşenine zarar verir: Bit hızını insan kulağının duyamayacağı frekansları iletmek ve bit derinliğini artırmak için harcamak aptalcadır, oysa CD kalitesini (44.1/16) kayıpsız iletmek yeterli değildir. . Neyse ki codec'in iki çalışma modu vardır: CD ses iletimi ve Yüksek Çözünürlüklü ses iletimi. İlk durumda, kablosuz olarak yalnızca 44.1 kHz/16 bit iletilir.

Bir LDAC kod çözücü yazılımı ücretsiz olarak mevcut olmadığından, LDAC kodunu çözen ek cihazlar olmadan codec bileşenini test etmek imkansızdır. SoundGuys.com mühendislerinin dijital bir çıkış aracılığıyla bağladığı ve test sinyallerindeki çıkış sesini kaydettiği destekli bir DAC üzerinde yapılan LDAC testinin sonuçlarına göre, LDAC 660 ve 990 kbps, CD kalitesinde modda sinyalden sese sinyal sağlıyor. gürültü oranı aptX HD'den biraz daha iyi.

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı
Kaynak: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC aynı zamanda yerleşik profillerin dışındaki dinamik bit hızlarını da destekliyor - 138 kbps'den 990 kbps'ye kadar, ancak söyleyebildiğim kadarıyla Android yalnızca standartlaştırılmış 303/606/909 ve 330/660/990 kbps profillerini kullanıyor.

Diğer codec bileşenleri

Diğer A2DP codec bileşenleri yaygın olarak kullanılmamaktadır. Destekleri ya neredeyse hiç yok ya da yalnızca belirli kulaklık ve akıllı telefon modellerinde mevcut.
A2DP'de standart hale getirilen ATRAC codec bileşeni, Sony tarafından bile hiçbir zaman Bluetooth codec bileşeni olarak kullanılmamıştır; Samsung HD, Samsung Scalable ve Samsung UHQ-BT codec bileşenleri, verici ve alıcı cihazlarda çok sınırlı desteğe sahiptir ve HWA LHDC çok yenidir ve yalnızca üçünü destekler. (?) cihazlar.

Ses cihazları için codec desteği

Üreticilerin tümü, belirli kablosuz kulaklıklar, hoparlörler, alıcılar veya vericiler tarafından desteklenen kodlayıcılar hakkında doğru bilgiler yayınlamaz. Bazen belirli bir codec bileşeni için destek yalnızca iletim içindir, ancak alım için değildir (birleşik vericiler-alıcılarla ilgilidir), ancak üretici notlar olmadan yalnızca "destek" beyan eder (bazı kodlayıcıların ve kod çözücülerin ayrı lisanslandığını varsayıyorum) codec'ler bunun sorumlusudur). En ucuz cihazlarda beyan edilen aptX desteğini hiç bulamayabilirsiniz.

Maalesef çoğu işletim sisteminin arayüzü hiçbir yerde kullanılan codec bileşenini göstermez. Bununla ilgili bilgiler yalnızca sürüm 8'den itibaren Android ve macOS'ta mevcuttur. Ancak bu işletim sistemlerinde bile yalnızca telefon/bilgisayar ve kulaklık tarafından desteklenen kodlayıcılar görüntülenecektir.

Cihazınızın hangi codec bileşenlerini desteklediğini nasıl öğrenebilirsiniz? A2DP anlaşma parametreleriyle trafik dökümünü kaydedin ve analiz edin!
Bu Linux, macOS ve Android'de yapılabilir. Linux'ta Wireshark veya hcidump'u, macOS'ta Bluetooth Explorer'ı ve Android'de geliştirici araçlarında bulunan standart Bluetooth HCI dökümü kaydetme işlevini kullanabilirsiniz. Wireshark analizörüne yüklenebilecek btsnoop formatında bir döküm alacaksınız.
Dikkat: doğru bir döküm yalnızca telefonunuzdan/bilgisayarınızdan kulaklıklara/hoparlörlere bağlanarak elde edilebilir (kulağa ne kadar komik gelse de)! Kulaklıklar telefonla bağımsız olarak bağlantı kurabilir; bu durumda telefondan bir codec listesi isteyecektir, bunun tersi geçerli değildir. Dökümün doğru kaydedildiğinden emin olmak için önce cihazın eşleştirmesini kaldırın ve ardından dökümü kaydederken telefonu kulaklıklarla eşleştirin.

Alakasız trafiği filtrelemek için aşağıdaki görüntü filtresini kullanın:

btavdtp.signal_id

Sonuç olarak buna benzer bir şey görmelisiniz:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Codec bileşeninin ayrıntılı özelliklerini görüntülemek için GetCapaability komutundaki her bir öğeye tıklayabilirsiniz.
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Wireshark tüm codec tanımlayıcılarını bilmediğinden, aşağıdaki tanımlayıcı tabloya bakarak bazı codec bileşenlerinin şifresinin manuel olarak çözülmesi gerekecektir:

Mandatory:
0x00 - SBC

Optional:
0x01 - MPEG-1,2 (aka MP3)
0x02 - MPEG-2,4 (aka AAC)
0x04 - ATRAC

Vendor specific:
0xFF 0x004F 0x01   - aptX
0xFF 0x00D7 0x24   - aptX HD
0xFF 0x000A 0x02   - aptX Low Latency
0xFF 0x00D7 0x02   - aptX Low Latency
0xFF 0x000A 0x01   - FastStream
0xFF 0x012D 0xAA   - LDAC
0xFF 0x0075 0x0102 - Samsung HD
0xFF 0x0075 0x0103 - Samsung Scalable Codec
0xFF 0x053A 0x484C - Savitech LHDC

0xFF 0x000A 0x0104 - The CSR True Wireless Stereo v3 Codec ID for AAC
0xFF 0x000A 0x0105 - The CSR True Wireless Stereo v3 Codec ID for MP3
0xFF 0x000A 0x0106 - The CSR True Wireless Stereo v3 Codec ID for aptX

Dökümleri manuel olarak analiz etmemek için her şeyi otomatik olarak analiz edecek bir hizmet hazırladım: btcodecs.valdikss.org.ru

Codec'lerin karşılaştırılması. Hangi codec daha iyi?

Her codec'in kendine göre avantajları ve dezavantajları vardır.
aptX ve aptX HD, kodlayıcı ve kod çözücüyü değiştirmeden değiştirilemeyen sabit kodlanmış profiller kullanır. Ne telefon üreticisi ne de kulaklık üreticisi bit hızını veya aptX kodlama faktörlerini değiştiremez. Codec'in sahibi Qualcomm, kitaplık biçiminde bir referans kodlayıcı sağlar. Bu gerçekler aptX'in gücüdür; herhangi bir "ama" olmadan hangi ses kalitesini alacağınızı önceden bilirsiniz.

Buna karşılık SBC, birçok yapılandırılabilir parametreye, dinamik bit hızına (yayın dalgaları meşgulse kodlayıcı bit havuzu parametresini azaltabilir) sahiptir ve sabit kodlanmış profillere sahip değildir; yalnızca önerilen "orta kalite" ve "yüksek kalite" vardır. 2 yılında A2003DP spesifikasyonuna eklendi. "Yüksek kalite" artık günümüz standartlarına göre o kadar yüksek değil ve çoğu Bluetooth yığını, parametreleri "yüksek kalite" profilinden daha iyi kullanmanıza izin vermiyor, ancak bunun için herhangi bir teknik kısıtlama yok.
Bluetooth SIG'nin kitaplık olarak bir referans SBC kodlayıcısı yoktur ve üreticiler bunu kendileri uygular.
Bunlar SBC'nin zayıf yönleridir - belirli bir cihazdan hangi ses kalitesinin bekleneceği asla önceden belli olmaz. SBC, hem düşük hem de çok yüksek kalitede ses üretebilir, ancak sonuncusu, Bluetooth yığınlarının yapay sınırlamalarını devre dışı bırakmadan veya atlamadan elde edilemez.

AAC ile ilgili durum belirsiz: bir yandan teorik olarak codec'in orijinalinden ayırt edilemeyecek bir kalite üretmesi gerekiyor, ancak pratikte SoundGuys laboratuvarının farklı Android cihazlarda yaptığı testlere bakılırsa bu doğrulanmadı. Büyük olasılıkla hata, çeşitli telefon yonga setlerinde yerleşik olan düşük kaliteli donanım ses kodlayıcılarından kaynaklanmaktadır. AAC'yi yalnızca Apple cihazlarda kullanmak ve Android'de aptX ve LDAC ile sınırlamak mantıklıdır.

Alternatif codec bileşenlerini destekleyen donanımlar daha yüksek kalitede olma eğilimindedir; çünkü çok ucuz, düşük kaliteli cihazlar için bu codec bileşenlerini kullanmak için lisans ücreti ödemenin bir anlamı yoktur. Testlerimde SBC, kaliteli ekipmanlarda çok iyi ses çıkarıyor.

Sesi SBC, aptX ve aptX HD'ye gerçek zamanlı olarak doğrudan tarayıcıda kodlayan bir web hizmeti hazırladım. Bununla birlikte, bu ses codec bileşenlerini, Bluetooth üzerinden ses iletmeden, herhangi bir kablolu kulaklıkta, hoparlörde ve en sevdiğiniz müzikte test edebilir ve ayrıca ses oynatırken kodlama parametrelerini doğrudan değiştirebilirsiniz:
btcodecs.valdikss.org.ru/sbc-encoder
Hizmet, tarayıcıda çalıştırmak için BlueZ projesinden SBC kodlama kitaplıklarını ve emscripten aracılığıyla WebAssembly ve C'den JavaScript'e derlenen ffmpeg'den libopenaptx'i kullanır. Kim böyle bir geleceği hayal edebilir ki!

İşte görünüyor nasıl:

Farklı codec bileşenleri için gürültü seviyesinin 20 kHz'den sonra nasıl değiştiğine dikkat edin. Orijinal MP3 dosyası 20 kHz'in üzerindeki frekansları içermiyor.

Codec bileşenlerini değiştirmeyi deneyin ve orijinal SBC 53 Joint Stereo (standart ve en yaygın profil) ile aptX/aptX HD arasındaki farkı duyup duymadığınıza bakın.

Codec'ler arasındaki farkı duyabiliyorum kulaklıklarda!

Bir web servisi üzerinden yapılan testlerde codec'ler arasındaki farkı duyamayan kişiler, kablosuz kulaklıkla müzik dinlerken bu farkı duyduklarını iddia ediyor. Ne yazık ki bu bir şaka ya da plasebo etkisi değil: fark gerçekten duyulabilir ancak farklardan kaynaklanmıyor codec'ler.

Kablosuz alıcı cihazlarda kullanılan Bluetooth ses yonga setlerinin büyük çoğunluğu, bir ekolayzır, sıkıştırıcı, stereo genişletici ve sesi iyileştirmek (veya değiştirmek) için tasarlanmış diğer şeyleri uygulayan bir Dijital Sinyal İşlemcisi (DSP) ile donatılmıştır. Bluetooth ekipmanı üreticileri DSP'yi yapılandırabilir her codec için ayrı ayrıve codec'ler arasında geçiş yaparken dinleyici, codec'lerin çalışmasında bir farklılık duyduğunu düşünecektir, oysa gerçekte farklı DSP ayarlarını dinlemektedir.

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı
CSR/Qualcomm tarafından üretilen çiplerdeki DSP Kalimba ses işleme hattı

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı
Her codec ve çıktı için farklı DSP işlevlerini ayrı ayrı etkinleştirin

Bazı premium cihazlar, DSP ayarlarını özelleştirmenize izin veren bir yazılımla birlikte gelir, ancak çoğu ucuz kulaklıkta bu yoktur ve kullanıcılar ses son işlemeyi manuel olarak kapatamaz.

Cihazların fonksiyonel özellikleri

A2DP standardının modern versiyonu “mutlak ses kontrolü” fonksiyonu - ses akışının ses seviyesini programlı olarak azaltmak yerine, çıkış aşamasının kazancını düzenleyen AVRCP protokolünün özel komutlarını kullanan cihaz ses seviyesi kontrolü. Kulaklığınızın ses düzeyini değiştirdiğinizde değişiklik telefonunuzun ses düzeyiyle senkronize olmuyorsa kulaklığınız veya telefonunuz bu özelliği desteklemiyor demektir. Bu durumda, telefonda her zaman maksimum ses seviyesinde müzik dinlemek, gerçek ses seviyesini kulaklık düğmeleriyle ayarlamak mantıklıdır - bu durumda sinyal-gürültü oranı daha iyi olacak ve ses kalitesi daha iyi olacaktır. должно быть Yukarıdaki.
Gerçekte üzücü durumlar var. SBC için RealForce OverDrive D1 kulaklıklarımda güçlü bir sıkıştırıcı açılıyor ve ses düzeyinin arttırılması, düşük seslerin düzeyinin artmasına neden olurken, yüksek seslerin düzeyi değişmiyor (sinyal sıkıştırılıyor). Bu nedenle, bilgisayarın ses düzeyini yarıya kadar ayarlamanız gerekir; bu durumda sıkıştırma etkisi neredeyse hiç olmaz.
Gözlemlerime göre, ek codec'lere sahip tüm kulaklıklar mutlak ses seviyesi kontrol işlevini destekliyor, görünüşe göre bu, codec sertifikasyonu için gerekliliklerden biri.

Bazı kulaklık desteği iki cihazı aynı anda bağlamak. Bu, örneğin bilgisayarınızdan müzik dinlemenize ve telefonunuzdan çağrı almanıza olanak tanır. Ancak bu modda alternatif codec'lerin devre dışı bırakıldığını ve yalnızca SBC'nin kullanıldığını bilmelisiniz.

AVDTP 1.3 Gecikme Raporlama işlevi kulaklıkların gecikmeyi sesin gerçekte çalındığı verici cihaza iletmesine olanak tanır. Bu, video dosyalarını görüntülerken sesin videoyla senkronizasyonunu ayarlamanıza olanak tanır: radyo aktarımında sorunlar varsa, ses videonun gerisinde kalmayacak, aksine video, video oynatıcı tarafından video oynatılana kadar yavaşlatılacaktır. ses ve video yeniden senkronize edilir.
İşlev birçok kulaklık, Android 9+ ve PulseAudio 12.0+ yüklü Linux tarafından desteklenir. Bu özelliğin diğer platformlarda desteklendiğini bilmiyorum.

Bluetooth üzerinden çift yönlü iletişim. Ses iletimi.

Bluetooth'ta ses iletimi için, Senkronize Bağlantı Yönelimli (SCO) kullanılır - bağlantının ön müzakeresi ile senkronize iletim. Mod, iletim onayını beklemeden ve paketleri yeniden göndermeden, sesi ve sesi kesinlikle sırayla, simetrik gönderme ve alma hızlarıyla iletmenize olanak tanır. Bu, radyo kanalı üzerinden ses iletimindeki genel gecikmeyi azaltır, ancak birim zaman başına iletilen veri miktarına ciddi kısıtlamalar getirir ve kaliteyi olumsuz etkiler.
Bu mod kullanıldığında hem ses hem de ses aynı kalitede iletilir.
Ne yazık ki 2019 itibarıyla Bluetooth üzerinden ses kalitesi hâlâ zayıf ve Bluetooth SIG'nin neden bu konuda bir şey yapmadığı belli değil.

CVSD

CVSD temel ses codec bileşeni 2002 yılında standartlaştırılmıştır ve tüm çift yönlü Bluetooth iletişim cihazları tarafından desteklenmektedir. Geleneksel kablolu telefon kalitesine karşılık gelen 8 kHz örnekleme frekansıyla ses iletimi sağlar.

Bu codec bileşenindeki bir kayıt örneği.

mSBC

Ek mSBC codec bileşeni 2009'da standartlaştırıldı ve 2010'da bunu ses iletimi için kullanan çipler zaten ortaya çıktı. mSBC, çeşitli cihazlar tarafından yaygın olarak desteklenmektedir.
Bu bağımsız bir codec bileşeni değil, sabit bir kodlama profiline sahip A2DP standardından normal bir SBC'dir: 16 kHz, mono, bitpool 26.

Bu codec bileşenindeki bir kayıt örneği.

Mükemmel değil ama CVSD'den çok daha iyi, ancak çevrimiçi iletişim için kullanmak yine de sinir bozucu, özellikle de oyun içinde iletişim kurmak için kulaklık kullandığınızda - oyunun sesi de 16 kHz örnekleme hızında iletilecektir.

FastStreamCSR şirketi SBC'yi yeniden kullanma fikrini geliştirmeye karar verdi. CSR, SCO protokolünün sınırlamalarını aşmak ve daha yüksek bit hızları kullanmak için farklı bir yol izledi; A2DP tek yönlü ses iletim standardına iki yönlü SBC ses desteğini eklediler, kodlama profillerini standartlaştırdılar ve buna "FastStream" adını verdiler.

FastStream, stereo sesi 44.1 veya 48 kHz'de 212 kbps bit hızıyla hoparlörlere iletir ve mikrofondan ses iletmek için 16 kbps bit hızıyla mono, 72 kHz kullanılır (mSBC'den biraz daha iyi). Bu tür parametreler çevrimiçi oyunlarda iletişim için çok daha uygundur - oyunun sesi ve muhataplar yüksek kalitede olacaktır.

Bu codec bileşenindeki bir kayıt örneği (+ mikrofondan gelen ses, mSBC ile aynı).

Şirket ilginç bir koltuk değneği ortaya çıkardı, ancak A2DP standardıyla çeliştiği için şirketin yalnızca bazı vericilerinde destekleniyor (Bluetooth cihazı olarak değil USB ses kartı olarak çalışıyor), ancak desteklenmiyor Bluetooth yığınlarında destek alın FastStream desteğine sahip kulaklıkların sayısı o kadar da az olmasa da.

Şu anda işletim sistemindeki FastStream desteği yalnızca Linux PulseAudio için bir yama olarak programın ana kolunda yer almayan geliştirici Pali Rohár'dan.

aptX Düşük Gecikme

Şaşırtıcı bir şekilde aptX Low Latency, FastStream ile aynı prensibi uygulayarak çift yönlü sesi de destekliyor.
Codec bileşeninin bu özelliğini hiçbir yerde kullanmak mümkün değildir - bildiğim hiçbir işletim sisteminde veya hiçbir Bluetooth yığınında Düşük Gecikmeli kod çözme desteği yoktur.

Bluetooth 5, Klasik ve Düşük Enerji

Aynı marka altında, her ikisi de farklı amaçlar için yaygın olarak kullanılan iki uyumsuz standardın varlığı nedeniyle, Bluetooth özellikleri ve versiyonları hakkında çok fazla kafa karışıklığı yaşandı.

İki farklı, uyumsuz Bluetooth protokolü vardır: Bluetooth Classic ve Bluetooth Low Energy (LE, Bluetooth Smart olarak da bilinir). Üçüncü bir protokol de var, Bluetooth Yüksek Hız, ancak yaygın değil ve ev cihazlarında kullanılmıyor.

Bluetooth 4.0'dan başlayarak, teknik özelliklerdeki değişiklikler esas olarak Bluetooth Düşük Enerji ile ilgiliydi ve Klasik sürüm yalnızca küçük iyileştirmeler aldı.

Bluetooth 4.2 ve Bluetooth 5 arasındaki değişikliklerin listesi:

v9'DEN 4.2'A 5.0 DEĞİŞİKLİK

9.1 YENİ ÖZELLİKLER

Bluetooth Core Spesifikasyonu 5.0 Sürümünde birçok yeni özellik tanıtıldı. Başlıca iyileştirme alanları şunlardır:
• Yuva Kullanılabilirliği Maskesi (SAM)
• LE için 2 Msym/s PHY
•LE Uzun Menzilli
• Yüksek Hizmet Döngüsü Bağlanamayan Reklamcılık
• LE Reklam Uzantıları
• LE Kanal Seçim Algoritması #2
9.1.1 CSA5'e Eklenen Özellikler - v5.0'a entegre edilmiştir
•Daha Yüksek Çıkış Gücü

Kaynak: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (291 sayfa)

Bluetooth 5 spesifikasyonu çerçevesinde Classic sürümü yalnızca bir değişiklik etkiledi: radyo yayın ayrımını iyileştirmek için tasarlanan Slot Kullanılabilirlik Maskesi (SAM) teknolojisine destek eklendi. Diğer tüm değişiklikler yalnızca Bluetooth LE'yi (ve Yüksek Çıkış Gücünü de) etkiler.

tüm Ses cihazları yalnızca Bluetooth Classic'i kullanır. Kulaklıkları ve hoparlörleri Bluetooth Low Energy aracılığıyla bağlamak imkansızdır: LE kullanarak ses aktarımına yönelik bir standart yoktur. Yüksek kaliteli ses aktarımı için kullanılan A2DP standardı yalnızca Bluetooth Classic üzerinden çalışır ve LE'de analog yoktur.

Sonuç - Bluetooth 5'e sahip ses cihazlarını yalnızca protokolün yeni sürümü nedeniyle satın almak anlamsızdır. Bluetooth 4.0/4.1/4.2, ses aktarımı bağlamında tamamen aynı şekilde çalışacaktır.
Yeni kulaklık duyurusunda Bluetooth 5 sayesinde iki kat çalışma menzili ve azaltılmış güç tüketiminden bahsediliyorsa, bunu ya kendilerinin anlamadığını ya da sizi yanılttıklarını bilmelisiniz. Bunda şaşılacak bir şey yok, çünkü Bluetooth yongası üreticilerinin bile duyurularında standardın yeni sürümü arasındaki farklar konusunda kafaları karışıyor ve bazı Bluetooth 5 yongaları yalnızca LE için beşinci sürümü destekliyor ve Classic için 4.2 kullanıyor.

Ses iletim gecikmesi

Sesteki gecikme (gecikme) miktarı birçok faktöre bağlıdır: ses yığınındaki, Bluetooth yığınındaki ve kablosuz oynatma cihazının kendisindeki arabelleğin boyutu ve codec bileşeninin algoritmik gecikmesi.

SBC, aptX ve aptX HD gibi basit codec bileşenlerinin gecikmesi çok küçüktür (3-6 ms). Bu ihmal edilebilir ancak AAC ve LDAC gibi karmaşık codec bileşenleri gözle görülür gecikmelere neden olabilir. 44.1 kHz için AAC algoritmik gecikmesi 60 ms'dir. LDAC - yaklaşık 30 ms (kaynak kodun kaba bir analizine dayanarak. Yanılıyor olabilirim ama fazla değil.)

Ortaya çıkan gecikme büyük ölçüde oynatma cihazına, yonga setine ve arabelleğine bağlıdır. Testler sırasında farklı cihazlarda (SBC codec'i ile) 150 ila 250 ms'lik bir yayılma aldım. Ek aptX, AAC ve LDAC codec bileşenlerini destekleyen cihazların yüksek kaliteli bileşenler ve küçük bir arabellek boyutu kullandığını varsayarsak, aşağıdaki tipik gecikmeleri elde ederiz:

SBC: 150-250ms
aptX: 130-180 ms
AAC: 190-240 ms
LDAC: 160-210 ms

Şunu da hatırlatayım: aptX Low Latency işletim sistemlerinde desteklenmiyor, bu nedenle daha düşük gecikme ancak verici+alıcı veya verici+kulaklık/hoparlör kombinasyonuyla elde edilebilir ve tüm cihazların bu codec'i desteklemesi gerekir.

Bluetooth cihazı, sertifikasyon ve logo sorunları

Yüksek kaliteli bir ses cihazını ucuz bir tekneden nasıl ayırt edebilirim? Görünüşte, her şeyden önce!

Ucuz Çin kulaklıkları, hoparlörleri ve alıcıları için:

  1. Kutuda ve cihazda "Bluetooth" kelimesi eksik, en sık "Kablosuz" ve "BT" kullanılıyor
  2. Bluetooth logosu eksik Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı kutuda veya cihazda
  3. Mavi yanıp sönen LED yok

Bu unsurların bulunmaması, cihazın sertifikalı olmadığını gösterir, bu da potansiyel olarak düşük kaliteli ve sorunlu olduğu anlamına gelir. Örneğin Bluedio kulaklıklar Bluetooth sertifikalı değildir ve A2DP spesifikasyonuna tam olarak uymamaktadır. Sertifikasyondan geçemezlerdi.

Onlardan birkaç cihazı ve kutuyu ele alalım:
Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Bluetooth üzerinden ses: profiller, codec'ler ve cihazlar hakkında maksimum ayrıntı

Bunların hepsi sertifikasız cihazlardır. Talimatlar bir logo ve Bluetooth teknolojisinin adını içerebilir, ancak en önemli şey bunların kutunun ve/veya cihazın üzerinde olmasıdır.

Kulaklığınızda veya hoparlörünüzde "Ze bluetooth dewise başarıyla bağlandı" yazıyorsa bu da onların kalitesini göstermez:

Sonuç

Bluetooth, kablolu kulaklıkların ve mikrofonlu kulaklıkların tamamen yerini alabilir mi? Yeteneklidir, ancak düşük çağrı kalitesi, oyunlarda can sıkıcı olabilecek artan ses gecikmesi ve lisans ücreti gerektiren ve hem akıllı telefonların hem de kulaklıkların nihai maliyetini artıran bir dizi özel codec bileşeni pahasına.

Alternatif codec'lerin pazarlanması çok güçlü: aptX ve LDAC, insanların düşündüğü kadar kötü olmayan "modası geçmiş ve kötü" SBC'nin uzun süredir beklenen alternatifi olarak sunuluyor.

Anlaşıldığı üzere, Bluetooth yığınlarının SBC bit hızı üzerindeki yapay sınırlamaları atlanabilir, böylece SBC aptX HD'den daha düşük olmayacaktır. İnisiyatifi kendi elime aldım ve LineageOS donanım yazılımı için bir yama hazırladım: AAC, aptX ve LDAC kodekleri olmayan kulaklıklarda sesi iyileştirmek için Bluetooth yığınını değiştiriyoruz

Daha fazla bilgiyi web sitelerinde bulabilirsiniz SoundGuy'lar и Ses Uzmanı.

Bonus: SBC referans kodlayıcı, A2DP bit akışı bilgileri ve test dosyaları. Bu dosya eskiden Bluetooth web sitesinde herkese açık olarak yayınlanıyordu ancak artık yalnızca Bluetooth SIG üyelerinin kullanımına açık.

Kaynak: habr.com

Yorum ekle