Audio melalui Bluetooth: maksimalkan detail profil, codec, dan perangkat

Komik XKCD tentang 14 standar yang bersaing: Keterangan: SITUASI: ada 14 standar yang bersaing.  Geek: 14?!  Absurditas!  Kita perlu mengembangkan satu standar universal untuk semua peluang.  Teman Geek: Ya!  Keterangan: Segera hadir: SITUASI: Ada 15 standar yang bersaing.

Artikel ini juga tersedia dalam bahasa Inggris

Karena produksi massal smartphone tanpa jack audio 3,5 mm, headphone nirkabel Bluetooth telah menjadi cara utama bagi banyak orang untuk mendengarkan musik dan berkomunikasi dalam mode headset.
Produsen perangkat nirkabel tidak selalu menulis spesifikasi produk terperinci, dan artikel tentang audio Bluetooth di Internet saling bertentangan, terkadang salah, tidak membicarakan semua fitur, dan sering menyalin informasi yang sama yang tidak sesuai dengan kenyataan.
Mari kita coba cari tahu protokolnya, kemampuan tumpukan OS Bluetooth, headphone dan speaker, codec Bluetooth untuk musik dan ucapan, cari tahu apa yang memengaruhi kualitas suara dan keterlambatan yang ditransmisikan, pelajari cara mengumpulkan dan menafsirkan informasi tentang codec yang didukung dan kemampuan perangkat lainnya.

TL; DR :
  • SBC - Normal Codec
  • Headphone memiliki equalizer dan post-processing untuk masing-masing codec secara terpisah
  • aptX tidak sebagus iklan yang membicarakannya
  • LDAC - omong kosong pemasaran
  • Kualitas bicara masih buruk
  • Anda dapat menanamkan enkoder audio dalam C ke browser dengan mengompilasinya ke WebAssembly melalui emscripten, dan mereka tidak akan melambat banyak.





Musik Bluetooth

Komponen fungsional Bluetooth ditentukan oleh profil - spesifikasi fungsi tertentu. Musik Bluetooth ditransmisikan menggunakan profil transmisi audio searah berkualitas tinggi A2DP. Standar A2DP diadopsi pada tahun 2003, dan tidak berubah secara dramatis sejak saat itu.
Dalam kerangka profil, 1 codec wajib SBC kompleksitas komputasi rendah, dibuat khusus untuk Bluetooth, dan 3 lainnya tambahan distandarisasi. Penggunaan codec tidak berdokumen dari implementasi kami sendiri juga diperbolehkan.

Pada Juni 2019, kita berada dalam komik xkcd dengan 14 codec A2DP:

  • SBC ← distandarisasi dalam A2DP, didukung oleh semua perangkat
  • MPEG-1/2 Layer 1/2/3 ← standar dalam A2DP: MP3 terkenal yang digunakan dalam MP2 TV digital, dan MP1 yang tidak dikenal
  • MPEG-2/4 AAC ← distandarisasi dalam A2DP
  • ATRAC ← Sony codec lama yang distandarisasi dalam A2DP
  • LDAC ← Codec baru Sony
  • aptX ← codec dari 1988
  • aptX HD ← Sama seperti aptX, tetapi dengan opsi enkode yang berbeda
  • aptX Low Latency ← codec yang sama sekali berbeda, tidak ada implementasi perangkat lunak aptX dengan buffer yang dikurangi
  • aptX Adaptive ← Qualec codec lainnya
  • FastStream ← pseudo codec , modifikasi SBC dua arah
  • HWA LHDC ← codec baru Huawei
  • Perangkat Samsung HD ← 2 didukung
  • Samsung Scalable ← 2 perangkat didukung
  • Perangkat Samsung UHQ-BT ← 3 didukung


Mengapa codec diperlukan sama sekali, Anda bertanya, kapan EDR tersedia di Bluetooth, yang memungkinkan Anda untuk mentransfer data pada kecepatan 2 dan 3 Mbps, dan 1,4 Mbps sudah cukup untuk PCM 16-bit dua saluran 16-bit yang tidak terkompresi?


Transfer data Bluetooth

Ada dua jenis transfer data dalam Bluetooth: Asynchronous Connection Less (ACL) untuk transmisi asynchronous tanpa membuat koneksi, dan Synchronous Connection Oriented (SCO) untuk transmisi sinkron dengan negosiasi awal koneksi.
Transmisi dilakukan dengan menggunakan skema pembagian waktu dan pilihan saluran transmisi untuk setiap paket secara terpisah (Frequency-Hop / Time-Division-Duplex, FH / TDD), yang waktunya dibagi menjadi interval 625-mikrodetik, yang disebut slot. Salah satu perangkat mentransmisikan dalam jumlah slot genap, yang lain dalam angka ganjil. Paket yang ditransmisikan dapat menempati 1, 3, atau 5 slot, tergantung pada ukuran data dan jenis set transmisi, dalam hal ini satu perangkat mentransfer slot genap dan ganjil hingga akhir transfer. Secara total, hingga 1600 paket dapat diterima dan dikirim per detik, jika masing-masing menempati 1 slot, dan kedua perangkat mengirimkan dan menerima sesuatu tanpa henti.

2 dan 3 Mbps untuk EDR, yang dapat ditemukan dalam pengumuman dan di situs web Bluetooth, adalah laju transfer data saluran maksimum untuk semua data secara total (termasuk tajuk teknis semua protokol di mana data harus dienkapsulasi), dalam dua arah pada saat yang bersamaan. Kecepatan transfer data aktual akan sangat bervariasi.

Untuk mentransfer musik, metode asinkron digunakan, hampir selalu dengan bantuan paket seperti 2-DH5 dan 3-DH5, yang membawa jumlah data maksimum dalam mode EDR masing-masing 2 Mbps dan 3 Mbps, dan menempati 5 slot divisi air time.

Representasi skematis dari transmisi yang menggunakan 5 slot oleh satu perangkat dan 1 slot oleh yang lain (DH5 / DH1):
5 slot transmisi, yang masing-masing ditransmisikan 625 mikrodetik, dan satu slot untuk penerimaan, juga 625 mikrodetik.  Total - 3,75 milidetik.

Karena prinsip pembagian waktu, kami terpaksa menunggu slot waktu 625 mikrodetik setelah paket dikirimkan, jika perangkat kedua tidak mengirimkan apa pun kepada kami atau mentransmisikan paket kecil, dan lebih banyak waktu jika perangkat kedua mentransmisikan dalam paket besar. Jika lebih dari satu perangkat terhubung ke telepon (misalnya, headphone, arloji dan gelang kebugaran), maka waktu transmisi dibagi di antara mereka semua.

Kebutuhan untuk merangkum audio dalam protokol transport khusus L2CAP dan AVDTP membutuhkan 16 byte dari jumlah maksimum audio muatan yang ditransmisikan.
Jenis paketJumlah slotMaks byte per paketMaks byte payload A2DPMaks Bitrate muatan A2DP
2-dh33367351936 kbps
3-dh335525361429 kbps
2-DH556796631414 kbps
3-dh55102110052143 kbps
1414 dan 1429 kbit / s jelas tidak cukup untuk mentransmisikan suara yang tidak terkompresi dalam kondisi nyata, dengan pita 2,4 GHz yang bising dan kebutuhan untuk mentransfer data layanan. 3 Mbps EDR menuntut daya transmisi dan kebisingan udara, oleh karena itu, bahkan dalam mode 3-DH5, transmisi PCM yang nyaman tidak mungkin, akan ada gangguan jangka pendek terus-menerus, dan semuanya akan bekerja hanya pada jarak beberapa meter.
Dalam praktiknya, bahkan streaming audio 990 kbit / s (LDAC 990 kbit / s) sulit ditransmisikan.

Kembali ke codec.

Sbc

Codec diperlukan untuk semua perangkat yang mendukung standar A2DP. Codec terbaik dan terburuk pada saat yang sama.

Tingkat pengambilan sampelKapasitasKecepatan bitDukungan pengkodeanDukungan decoding
16, 32, 44.1, 48 kHz16 bit10-1500 kbpsSemua perangkatSemua perangkat


SBC adalah codec sederhana dan komputasional cepat, dengan model psikoakustik primitif (hanya suara pelan yang ditutup-tutupi), menggunakan modulasi kode pulsa adaptif (APCM).
Spesifikasi A2DP merekomendasikan dua profil untuk digunakan: Kualitas Menengah dan Kualitas Tinggi.
Tabel mode Kualitas Menengah dan Kualitas Tinggi.  Nilai yang ditentukan adalah bitpool, panjang bingkai, dan bitrate.  Untuk Stereo Bersama 44.1 kHz.  Kualitas Tengah: bitpool = 35, panjang bingkai = 83, bitrate = 229. Kualitas Tinggi: bitpool = 53, panjang bingkai = 119, bitrate = 328.

Codec memiliki banyak pengaturan yang memungkinkan Anda untuk mengontrol penundaan algoritmik, jumlah sampel dalam satu blok, algoritma alokasi bit, tetapi hampir di mana-mana parameter yang sama yang direkomendasikan dalam spesifikasi digunakan: Stereo Bersama , 8 pita frekuensi, 16 blok dalam bingkai audio, metode distribusi bit Kenyaringan .
SBC mendukung perubahan dinamis dari parameter Bitpool, yang secara langsung mempengaruhi laju bit. Jika radio tersumbat, paket hilang, atau perangkat jauh, sumber audio dapat mengurangi Bitpool sampai koneksi normal.

Pembuat sebagian besar headphone menetapkan nilai maksimum parameter Bitpool menjadi 53, yang membatasi laju bit hingga 328 kilobit per detik saat menggunakan profil yang disarankan.
Bahkan jika pabrikan headphone menetapkan nilai Bitpool maksimum di atas 53 (model seperti itu ditemukan, misalnya: Beats SoloΒ³, JBL Everest Elite 750NC, Apple AirPods, juga terjadi pada beberapa penerima dan unit kepala mobil), maka sebagian besar sistem operasi tidak akan mengizinkan penggunaan bitrate yang meningkat karena mengatur nilai batas internal di tumpukan Bluetooth.
Selain itu, beberapa produsen menetapkan nilai Bitpool maksimum rendah untuk beberapa perangkat. Misalnya, untuk Bluedio T adalah 39, untuk Samsung Gear IconX - 37, yang memberikan kualitas suara yang buruk.

Pembatasan buatan pada bagian pengembang tumpukan Bluetooth kemungkinan besar muncul karena ketidakcocokan beberapa perangkat dengan nilai Bitpool besar atau profil atipikal, bahkan jika mereka melaporkan dukungan mereka, dan jumlah tes yang tidak mencukupi selama sertifikasi. Lebih mudah bagi penulis tumpukan Bluetooth untuk membatasi diri mereka sendiri untuk menyetujui profil yang disarankan, daripada membuat database perangkat yang salah (walaupun sekarang mereka melakukan ini untuk fungsi yang salah berfungsi lainnya).

SBC secara dinamis mengalokasikan bit kuantisasi untuk pita frekuensi, yang beroperasi dengan basis rendah ke tinggi dengan bobot berbeda. Jika seluruh bitrate digunakan untuk frekuensi rendah dan menengah, frekuensi yang lebih tinggi akan "terputus" (akan ada keheningan sebagai gantinya).

Contoh SBC 328 kbps. Di atas adalah yang asli, di bawah ini adalah SBC, secara berkala beralih di antara trek. Untuk audio, file video menggunakan codec kompresi FLAC lossless. Menggunakan FLAC dalam wadah mp4 tidak secara resmi distandarkan, jadi itu bukan fakta bahwa browser Anda akan memainkannya, tetapi itu harus bekerja di versi terbaru desktop Chrome dan Firefox. Jika Anda tidak memiliki suara, Anda dapat mengunduh file dan membukanya di pemutar video lengkap.
ZZ Top - Pria Berpakaian Tajam

Pergantian momen terlihat pada spektrogram: SBC secara berkala memotong suara pelan di atas 17,5 kHz, dan tidak memancarkan bit sama sekali untuk pita di atas 20 kHz. Spektogram lengkap tersedia dengan klik (1,7 MB).
gambar

Saya tidak mendengar perbedaan antara yang asli dan SBC di trek ini.

Mari kita mengambil sesuatu yang lebih baru dan mensimulasikan audio yang akan berubah menggunakan headphone Samsung Gear IconX dengan Bitpool 37 (di atas adalah sinyal asli, di bagian bawah adalah SBC 239 kbit / s, suara ada di FLAC).
Indulgensi Diri Tanpa Pikiran - Saksi

Saya mendengar suara berderak, efek stereo yang lebih sedikit, dan β€œsuara gemerincing” vokal pada frekuensi tinggi.

Meskipun SBC dan codec yang sangat fleksibel dapat dikonfigurasi untuk latensi rendah, ia memberikan kualitas audio yang sangat baik pada bitrate tinggi (452+ kbps) dan cukup baik untuk kebanyakan orang pada standar Kualitas Tinggi (328 kbps), karena bahwa standar A2DP tidak menentukan profil tetap (dan hanya memberikan rekomendasi), para pengembang tumpukan menetapkan batasan buatan pada Bitpool, parameter audio yang ditransmisikan tidak ditampilkan dalam antarmuka pengguna, dan produsen headphone bebas untuk mengatur pengaturan mereka sendiri dan tidak pernah menunjukkan nilai Bitpool secara teknis Karena karakteristik produknya, codec terkenal dengan kualitas suaranya yang rendah, meskipun ini bukan masalah bagi codec itu sendiri.
Parameter Bitpool secara langsung memengaruhi laju bit dalam satu profil. Nilai Bitpool 53 yang sama dapat memberikan bit rate 328 kbit / s dengan profil Kualitas Tinggi yang disarankan, atau 1212 kbit / s dengan Dual Channel dan 4 pita frekuensi, itulah sebabnya penulis OS, selain pembatasan pada Bitpool, menetapkan batas dan pada Bitrate. Seperti yang saya lihat, situasi ini muncul karena cacat dalam standar A2DP: perlu untuk mengoordinasikan bitrate, bukan Bitpool.

Tabel dukungan untuk fitur SBC di berbagai OS:
OSTingkat sampel yang didukungBatas maks. BitpoolBatas maks. Kecepatan bitBitrate khasPenyetelan Dinamis Bitpool
Windows 1044,1 kHz53512 kbps328 kbpsβœ“ *
Linux (BlueZ + PulseAudio)16, 32, 44.1, 48 kHz64 (untuk masuk), 53 (untuk keluar)Tidak ada batasan328 kbpsβœ“ *
macOS Tinggi Sierra44,1 kHz64, default 53 ***Tidak dikenal328 kbpsβœ—
Android 4.4-944,1 / 48 kHz **53328 kbps328 kbpsβœ—
Android 4.1-4.3.144.1, 48 kHz **53229 kbps229 kbpsβœ—
Blackberry OS 1048 kHz53Tidak ada batasan328 kbpsβœ—
* Bitpool hanya berkurang, tetapi tidak meningkat secara otomatis, jika terjadi perbaikan kondisi transmisi. Untuk mengembalikan Bitpool, Anda harus menghentikan pemutaran, tunggu beberapa detik dan mulai ulang audio.
** Nilai default tergantung pada pengaturan tumpukan yang ditentukan saat mengkompilasi firmware. Di Android 8 / 8.1, frekuensinya hanya 44,1 kHz atau 48 kHz, tergantung pada pengaturan selama kompilasi, dalam versi lain 44,1 kHz dan 48 kHz didukung pada saat yang sama.
*** Nilai Bitpool dapat dinaikkan di Bluetooth Explorer.

aptX dan aptX HD

aptX adalah codec sederhana dan komputasi cepat, tanpa psikoacoustics, menggunakan modulasi kode pulsa diferensial adaptif ( ADPCM ). Itu muncul sekitar tahun 1988 (tanggal pengajuan paten tertanggal Februari 1988), sebelum Bluetooth itu terutama digunakan dalam peralatan audio nirkabel profesional, ISDN , bioskop. Saat ini dimiliki oleh Qualcomm, membutuhkan lisensi dan royalti. Pada 2014: $ 6.000 sekaligus dan β‰ˆ $ 1 untuk setiap perangkat, untuk batch hingga 10.000 perangkat ( sumber , hal. 16).
aptX dan aptX HD adalah codec yang sama, dengan profil penyandian yang berbeda.

Codec hanya memiliki satu parameter - pilihan frekuensi pengambilan sampel. Namun, ada pilihan jumlah / mode saluran, tetapi di semua perangkat yang saya kenal (70+ buah) hanya Stereo yang didukung.

CodecTingkat pengambilan sampelKapasitasKecepatan bitDukungan pengkodeanDukungan decoding
aptX16, 32, 44.1, 48 kHz16 bit128/256/352/384 kbps (tergantung pada laju sampel)Windows 10 (desktop dan seluler), macOS, Android 4.4 + / 7 *, Blackberry OS 10Berbagai perangkat audio (perangkat keras)
* Versi sebelum ke 7 memerlukan modifikasi tumpukan Bluetooth. Codec hanya didukung jika pabrikan perangkat Android melisensikan Qualcomm untuk menggunakan codec (jika OS memiliki pustaka penyandian).

aptX membagi audio menjadi 4 pita frekuensi dan menghitungnya dengan jumlah bit yang sama secara terus-menerus: 8 bit untuk 0-5,5 kHz, 4 bit untuk 5,5-11 kHz, 2 bit untuk 11-16,5 kHz, 2 bit untuk 16,5-22 kHz ( digit untuk frekuensi sampling 44,1 kHz).

Contoh aptX-audio (di bagian atas adalah sinyal sumber, di bagian bawah adalah aptX, spektogram hanya saluran kiri, suara di FLAC):

Frekuensi atas menjadi sedikit lebih merah, tetapi tidak ada perbedaan yang terdengar.

Karena distribusi bit kuantisasi yang tetap, codec tidak dapat "mentransfer bit" ke frekuensi yang paling membutuhkannya. Tidak seperti SBC, aptX tidak akan "memotong" frekuensi, tetapi akan menambahkan noise kuantisasi padanya, mengurangi rentang dinamis audio.

Seharusnya tidak dipertimbangkan bahwa menggunakan, misalnya, 2 bit untuk sebuah band mengurangi rentang dinamis menjadi 12 dB: ADPCM memungkinkan Anda untuk menggunakan hingga 96 dB rentang dinamis bahkan ketika menggunakan 2 bit kuantisasi, tetapi hanya dengan sinyal tertentu.
ADPCM menyimpan perbedaan dalam representasi numerik antara sampel saat ini dan sampel berikutnya, alih-alih menulis nilai absolut, seperti pada PCM. Ini memungkinkan Anda untuk mengurangi persyaratan jumlah bit yang diperlukan untuk menyimpan informasi yang sama (tanpa kehilangan) atau hampir sama (dengan kesalahan pembulatan yang relatif kecil). Untuk mengurangi kesalahan pembulatan, tabel koefisien digunakan.
Saat membuat codec, penulis menghitung koefisien ADPCM pada satu set file audio musik. Semakin dekat sinyal audio ke set musik tempat tabel dibangun, semakin sedikit kesalahan kuantisasi (noise) yang dihasilkan oleh aptX.

Karena itu, tes sintetis akan selalu menghasilkan hasil yang lebih buruk daripada musik. Saya membuat contoh sintetis khusus di mana aptX menunjukkan hasil yang buruk - gelombang sinus 12,4 kHz (di atas adalah sinyal asli, di bawah ini adalah aptX. Suara di FLAC. Kurangi volume!):

Grafik spektrum:
Grafik spektrum, tingkat pemantauan maksimum - -55 dB

Suara-suara jelas terdengar.

Namun, jika sinusoid dengan amplitudo lebih kecil dihasilkan sehingga lebih tenang, noise juga akan menjadi lebih tenang, yang menunjukkan rentang dinamis yang luas:

Grafik spektrum, tingkat keberhasilan maksimum - -75 dB

Untuk mendengar perbedaan antara trek musik asli dan yang dikompresi, Anda dapat membalikkan salah satu sinyal dan menambahkan saluran trek dengan saluran. Pendekatan ini, secara umum, tidak benar, dan tidak akan memberikan hasil yang waras dengan codec yang lebih kompleks, tetapi khusus untuk ADPCM sangat cocok.
Perbedaan antara yang asli dan aptX
Perbedaan rata-rata-akar dari sinyal adalah pada level -37,4 dB, yang tidak banyak untuk musik terkompresi tersebut.

aptX HD

aptX HD bukan codec mandiri - ini adalah profil encoding codec aptX yang ditingkatkan. Perubahan mempengaruhi jumlah bit yang dialokasikan untuk pengkodean rentang frekuensi: 10 bit untuk 0-5,5 kHz, 6 bit untuk 5,5-11 kHz, 4 bit untuk 11-16,5 kHz, 4 bit untuk 16,5-22 kHz (digit untuk 44,1 kHz).

CodecTingkat pengambilan sampelKapasitasKecepatan bitDukungan pengkodeanDukungan decoding
aptX HD16, 32, 44.1, 48 kHz24 bit192/384/529/576 kbps (tergantung pada laju sampel)Android 8 + *Beberapa perangkat audio (perangkat keras)
* Versi sebelum ke 7 memerlukan modifikasi tumpukan Bluetooth. Codec hanya didukung jika pabrikan perangkat Android melisensikan Qualcomm untuk menggunakan codec (jika OS memiliki pustaka penyandian).

Kurang umum daripada aptX: tampaknya memerlukan lisensi terpisah dari Qualcomm, dan biaya lisensi terpisah.

Mari kita ulangi contoh dengan gelombang sinus 12,4 kHz:
Grafik spektrum, tingkat kebisingan maksimum - -72 dB

Jauh lebih baik daripada dengan aptX, tapi masih berisik.


aptX Low Latency

Versi Low Latency dari aptX bukan codec mandiri, tetapi hanya berbeda dalam pengaturan delay dan buffer yang digunakan pada sisi perangkat audio. Sisanya hanya aptX.
Codec dirancang untuk transmisi audio interaktif dengan latensi rendah (film, game), di mana penundaan audio tidak dapat disesuaikan secara program. Implementasi perangkat lunak tersedia sebagai driver Dell untuk chip Bluetooth Intel . Juga didukung oleh pemancar, penerima, headphone dan speaker, tetapi tidak untuk smartphone.

Tingkat pengambilan sampelKecepatan bitDukungan pengkodeanDukungan decoding
44,1 kHz352 kbpsWindows 10 dengan driver Dell dan beberapa pemancar (perangkat keras)Beberapa perangkat audio (perangkat keras)


Aac

AAC, atau Advanced Audio Coding, adalah codec komputasional yang kompleks dengan model psikoakustik yang serius. Ini banyak digunakan untuk audio di Internet, yang paling populer kedua setelah MP3. Membutuhkan lisensi dan royalti: $ 15.000 pada suatu waktu (atau $ 1.000 untuk perusahaan dengan kurang dari 15 karyawan) + $ 0,98 untuk 500.000 perangkat pertama ( sumber ).
Codec distandarisasi sebagai bagian dari spesifikasi MPEG-2 dan MPEG-4, dan bertentangan dengan kesalahpahaman, bukan milik Apple.

Tingkat pengambilan sampelKecepatan bitDukungan pengkodeanDukungan decoding
8 - 96 kHz8 - 576 kbps (untuk stereo), 256 - 320 kbps (khas untuk Bluetooth)macOS, Android 7+ *, iOSBerbagai perangkat audio (perangkat keras)
* Hanya pada perangkat yang pembuatnya membayar royalti

. IOS dan macOS menggunakan enkoder Apple AAC terbaik hingga saat ini, memberikan kualitas audio setinggi mungkin. Android menggunakan encoder Fraunhofer FDK AAC kualitas tertinggi kedua, tetapi berbagai perangkat keras yang tertanam dalam platform (SoC) dapat digunakan, dengan kualitas penyandian yang tidak diketahui.Menurut tes SoundGuys baru-baru ini, kualitas pengkodean AAC oleh ponsel Android yang berbeda sangat berbeda:Sebagian besar perangkat audio nirkabel untuk AAC memiliki bitrate maksimum 320 kbps, beberapa hanya mendukung 256 kbps. Bitrate lain sangat jarang.AAC memberikan kualitas yang sangat baik pada 320 dan 256 kbps tetapi tunduk
AAC   .  Huawei P20 Pro      14 ,  LG V30 β€”   16 ,  Samsung Note 8 β€” 17 ,  Apple iPhone 7 β€” 19 .


kehilangan pengodean berurutan dari konten yang sudah dikompresi , namun, sulit untuk mendengar perbedaan dengan yang asli di iOS pada kecepatan bit 256 kbps bahkan dengan beberapa pengkodean berurutan, dengan pengodean tunggal, misalnya, MP3 320 kbps dalam AAC 256 kbps dapat diabaikan.
Seperti halnya codec Bluetooth lainnya, setiap musik didekodekan terlebih dahulu, kemudian disandikan oleh codec. Saat mendengarkan musik dalam format AAC, pertama kali diterjemahkan dengan menggunakan OS, kemudian dikodekan dalam AAC lagi, untuk transmisi melalui Bluetooth. Ini diperlukan untuk mencampur beberapa aliran audio, misalnya, musik dan pemberitahuan pesan baru. iOS tidak terkecuali. Di Internet, Anda dapat menemukan banyak tuduhan bahwa pada iOS AAC musik tidak ditranskode ketika ditransmisikan melalui Bluetooth, yang tidak benar.

Standar AAC memiliki banyak ekstensi untuk metode pengkodean standar. Salah satunya - Scalable To Lossless (SLS) - distandarisasi untuk Bluetooth dan memungkinkan Anda untuk mengirimkan audio lossless (lossless). Sayangnya, pada perangkat nyata, dukungan ekspansi tidak ditemukan. Ekstensi untuk mengurangi penundaan transmisi AAC-LD (Tunda Rendah) tidak distandarisasi untuk Bluetooth.


MP1 / 2/3

Codec dari MPEG-1/2 Bagian 3 keluarga terdiri dari MP3 terkenal dan banyak digunakan, MP2 kurang umum (digunakan terutama di TV digital dan radio), dan MP1 benar-benar tidak dikenal.

Codec MP1 dan MP2 lama tidak didukung sama sekali: Saya tidak dapat menemukan headphone dan tidak ada tumpukan Bluetooth tunggal yang akan menyandikan atau mendekodekan mereka.
Penguraian MP3 didukung oleh beberapa headphone, tetapi pengodean tidak didukung pada tumpukan sistem operasi modern. Tampaknya tumpukan BlueSoleil pihak ketiga untuk Windows dapat menyandikan ke MP3 jika Anda mengubah file konfigurasi secara manual, tetapi instalasi saya mengarah ke BSoD pada Windows 10. Kesimpulan - codec sebenarnya tidak dapat digunakan untuk audio Bluetooth.
Sebelumnya, pada 2006-2008, sebelum standar A2DP didistribusikan dalam perangkat, orang mendengarkan musik MP3 pada headset Nokia BH-501 melalui program MSI BluePlayer, yang tersedia di Symbian dan Windows Mobile. Pada saat itu, arsitektur OS smartphone memungkinkan akses ke banyak fungsi tingkat rendah, dan pada Windows Mobile, sangat mungkin untuk menginstal tumpukan Bluetooth pihak ketiga.

Paten codec MP3 terbaru telah kedaluwarsa, penggunaan codec tidak memerlukan royalti mulai 23 April 2017.

Jika paten terpanjang yang disebutkan dalam referensi tersebut diambil sebagai ukuran, maka teknologi MP3 menjadi bebas paten di Amerika Serikat pada 16 April 2017 ketika Paten AS 6.009.399, yang dimiliki dan dikelola oleh Technicolor, kedaluwarsa.
: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

16 β€” 488 β€” 320 /()


LDAC

Codec Hi-Res Sony yang baru dan aktif dipromosikan, mendukung laju pengambilan sampel hingga 96 kHz dan resolusi 24-bit, dengan bitrate hingga 990 kbps. Diiklankan sebagai codec audiophile, sebagai pengganti codec Bluetooth yang ada. Ini memiliki fungsi penyesuaian bitrate yang adaptif, tergantung pada kondisi radio.

Encoder LDAC ( libldac ) termasuk dalam paket Android standar, sehingga penyandian didukung pada setiap smartphone Android, dimulai dengan versi 8 dari OS. Perangkat lunak decoder tidak tersedia secara bebas, spesifikasi codec tidak dapat diakses oleh masyarakat umum, namun, pada pandangan pertama pada encoder, perangkat internal mirip dengan ATRAC9- Codec Sony yang digunakan dalam PlayStation 4 dan Vita: keduanya bekerja dalam rentang frekuensi, menggunakan diskrit cosine transform (MDCT) yang dimodifikasi dan kompresi menggunakan algoritma Huffman.
LDAC menggunakan pembagian menjadi 12 atau 16 pita frekuensi: 12 digunakan untuk 44,1 dan 48 kHz, 16 untuk 88,2 dan 96 kHz.

Dukungan LDAC diwakili hampir secara eksklusif oleh headphone Sony. Kemampuan untuk memecahkan kode LDAC terkadang ditemukan pada headphone dan DAC dari produsen lain, tetapi sangat jarang.

Tingkat pengambilan sampelKecepatan bitDukungan pengkodeanDukungan decoding
44.1 - 96 kHz303/606/909 kbit / s (untuk 44,1 dan 88,2 kHz), 330/660/990 kbit / s (untuk 48 dan 96 kHz)Android 8+Beberapa headphone Sony dan perangkat tunggal dari pabrikan lain (perangkat keras)


Memasarkan LDAC sebagai codec Hi-Res membahayakan komponen teknisnya: bodoh untuk menghabiskan bitrate pada frekuensi transmisi yang tidak terdengar oleh telinga manusia dan meningkatkan kedalaman bit, selama itu tidak cukup untuk mengirimkan kualitas CD (44.1 / 16) tanpa kehilangan. Untungnya, codec memiliki dua mode operasi: transmisi CD-audio dan transmisi Hi-Res-audio. Dalam kasus pertama, hanya 44,1 kHz / 16 bit yang ditransmisikan melalui udara.

Karena decoder perangkat lunak LDAC tidak tersedia secara bebas, tidak mungkin untuk menguji codec tanpa perangkat tambahan yang menerjemahkan LDAC. Menurut uji LDAC DAC dengan dukungannya, yang dihubungkan oleh insinyur SoundGuys.com melalui output digital dan merekam suara yang dipancarkan pada sinyal uji, LDAC 660 dan 990 kbps dalam mode kualitas CD memberikan rasio sinyal-ke-noise sedikit lebih baik daripada aptX HD Ini hasil yang bagus. Sumber: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026 LDAC juga mendukung bitrate dinamis di luar profil yang sudah ada - dari 138 kbps hingga 990 kbps, tetapi, sejauh yang saya tahu, hanya profil standar yang digunakan di Android 303 / 606/909 dan 330/660/990 kbit / s.

LDAC CD 990 kbit/s noise profile




Codec lainnya

Codec A2DP lainnya tidak banyak digunakan. Dukungan mereka hampir tidak ada sama sekali, atau hanya tersedia pada model headphone dan smartphone tertentu.
Codec ATRAC yang distandarisasi dalam A2DP tidak pernah digunakan sebagai Bluetooth codec bahkan oleh Sony sendiri, Samsung HD, Samsung Scalable dan Samsung UHQ-BT codec memiliki dukungan yang sangat terbatas dari perangkat pengirim dan penerima, dan HWA LHDC terlalu baru dan hanya didukung tiga (?) perangkat.


Dukungan Codec Audio

Tidak semua produsen mempublikasikan informasi akurat tentang codec yang mendukung headphone nirkabel tertentu, speaker, penerima atau pemancar. Kadang-kadang terjadi bahwa dukungan untuk codec tertentu hanya untuk transmisi, tetapi tidak untuk penerimaan (relevan untuk penerima-pemancar gabungan), meskipun pabrikan mengklaim hanya "didukung", tanpa komentar (saya berasumsi bahwa lisensi terpisah dari pembuat enkode dan decoder dari beberapa codec adalah yang harus disalahkan. ) Di perangkat termurah, Anda mungkin tidak menemukan dukungan aptX yang dinyatakan sama sekali.

Sayangnya, di antarmuka sebagian besar OS, codec yang digunakan tidak ditampilkan di mana pun. Informasi tentang ini hanya tersedia di Android, dimulai dengan versi 8, dan macOS. Namun, bahkan di OS ini, hanya codec yang mendukung telepon / komputer dan headphone yang akan ditampilkan.

Bagaimana cara mengetahui codec mana yang didukung perangkat? Pilihan yang paling dapat diandalkan adalah untuk merekam dan menganalisis dump lalu lintas dengan parameter negosiasi A2DP!
Ini dapat dilakukan di Linux, macOS, dan Android. Di Linux, Anda dapat menggunakan Wireshark atau hcidump, di macOS Anda dapat menggunakan Bluetooth Explorer, dan di Android Anda dapat menggunakan fungsi penyimpanan simpanan HCI Bluetooth standar, yang tersedia di alat pengembang. Anda akan menerima dump btsnoop, yang dapat diunduh ke penganalisa Wireshark.
Perhatikan: Anda bisa mendapatkan dump yang benar hanya dengan menghubungkan dari telepon / komputer ke headphone / speaker (tidak peduli betapa lucu kedengarannya)! Headphone dapat secara independen membuat koneksi dengan telepon, dalam hal ini mereka akan meminta daftar codec dari telepon, dan bukan sebaliknya. Untuk memastikan Anda merekam dump yang benar, pertama-tama putuskan pairing dengan perangkat, dan kemudian, saat merekam dump, pasangkan ponsel dengan headphone.

Gunakan filter tampilan berikut untuk menyaring lalu lintas yang tidak relevan:
btavdtp.signal_id 


Akibatnya, Anda akan melihat sesuatu yang serupa:
Wireshark        A2DP- GetCapabilities

Di setiap titik perintah GetCapabilities, Anda dapat mengklik dan melihat karakteristik terperinci dari codec. Wireshark tidak tahu semua pengidentifikasi codec, jadi beberapa codec harus didekripsi secara manual, dengan melihat tabel pengenal di bawah ini:
.   .


 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 

Untuk mengetahui apakah perangkat Anda mendukung kecepatan EDR 3 Mbps, Anda dapat memfilter:
 bthci_evt.code==0x0b 

gambar

Agar tidak menganalisis dump secara manual, saya membuat layanan yang akan menganalisis semuanya secara otomatis: btcodecs.valdikss.org.ru

Untuk Windows ada utilitas Bluetooth Tweaker yang sederhana namun bermanfaat , yang antara lain menunjukkan codec saat ini dan yang didukung.
Di Linux, Anda juga dapat menggunakan program avinfo yang disertakan dengan BlueZ.


Perbandingan codec. Codec mana yang lebih baik?

Setiap codec memiliki kelebihan dan kekurangan.
aptX dan aptX HD menggunakan profil hardcoded yang tidak dapat diubah tanpa memodifikasi encoder dan decoder. Baik produsen ponsel maupun produsen headphone dapat mengubah bit rate atau koefisien pengkodean aptX. Pemilik codec, Qualcomm, menyediakan encoder referensi dalam bentuk perpustakaan. Fakta-fakta ini adalah titik kuat dari aptX - Anda tahu sebelumnya kualitas suara apa yang akan Anda dapatkan, tanpa "tapian".

SBC, sebaliknya, memiliki banyak parameter yang dapat dikonfigurasi, bit rate dinamis (sebuah enkoder dapat mengurangi parameter bitpool jika radio dimuat), dan tidak memiliki hardcodes, tetapi hanya "kualitas rata-rata" dan "kualitas tinggi" yang direkomendasikan, yang ditambahkan ke spesifikasi A2DP pada tahun 2003 tahun. "Kualitas tinggi" tidak begitu tinggi menurut standar modern, dan sebagian besar tumpukan Bluetooth tidak memungkinkan untuk menggunakan parameter lebih baik daripada di profil "kualitas tinggi", meskipun tidak ada batasan teknis untuk ini.
Bluetooth SIG tidak memiliki encoder referensi SBC dalam bentuk perpustakaan, dan produsen mengimplementasikannya sendiri.
Ini adalah kelemahan SBC - tidak pernah jelas sebelumnya kualitas suara apa yang diharapkan dari perangkat tertentu. SBC dapat menghasilkan kualitas suara rendah dan sangat tinggi, tetapi yang terakhir tidak dapat dicapai tanpa menonaktifkan atau melewati batasan buatan tumpukan Bluetooth.

Situasi dengan AAC ambigu: di satu sisi, codec secara teoritis harus memberikan kualitas yang tidak dapat dibedakan dari yang asli, tetapi berlatih, dilihat dari tes laboratorium SoundGuys pada perangkat Android yang berbeda, tidak dikonfirmasi. Kemungkinan besar, kesalahannya adalah pada enkoder audio perangkat keras berkualitas rendah yang dibangun ke dalam berbagai chipset telepon. Masuk akal untuk menggunakan AAC hanya pada perangkat Apple, dan pada Android terbatas pada aptX dan LDAC.

Peralatan yang mendukung codec alternatif, sebagai suatu peraturan, memiliki kualitas yang lebih tinggi, hanya karena untuk perangkat berkualitas rendah yang benar-benar murah, tidak masuk akal untuk membayar biaya lisensi untuk menggunakan codec ini. Menurut tes saya, SBC terdengar sangat bagus pada peralatan berkualitas tinggi.

Saya membuat layanan pengkodean audio web dalam SBC, aptX dan aptX HD secara real time, tepat di browser. Dengannya, Anda dapat menguji codec audio ini tanpa benar-benar mentransmisikan audio melalui Bluetooth, pada headphone berkabel apa pun, speaker, dan musik favorit Anda, serta mengubah pengaturan pengodean secara langsung selama pemutaran audio:
btcodecs.valdikss.org.ru/sbc-encoder
Layanan ini menggunakan pustaka pengkodean SBC dari proyek BlueZ dan libopenaptx dari ffmpeg, yang dikompilasi ke dalam WebAssembly dan JavaScript dari C, melalui emscripten, untuk dieksekusi di browser. Siapa yang bisa memimpikan masa depan seperti itu!

Begini tampilannya:

Harap perhatikan bagaimana tingkat kebisingan berubah setelah 20 kHz untuk codec yang berbeda. Tidak ada frekuensi di atas 20 kHz dalam file MP3 asli.

Coba alihkan codec dan evaluasi jika Anda mendengar perbedaan antara yang asli, SBC 53 Joint Stereo (profil standar dan paling umum), dan aptX / aptX HD.


Saya mendengar perbedaan antara codec di headphone !

Orang yang tidak mendengar perbedaan antara codec selama pengujian melalui layanan web mengklaim bahwa mereka mendengarnya ketika mendengarkan musik di headphone nirkabel. Sayangnya, ini bukan lelucon atau efek plasebo: perbedaannya benar-benar terdengar, tetapi itu bukan disebabkan oleh perbedaan dalam codec .

Sebagian besar chipset audio Bluetooth yang digunakan dalam menerima perangkat nirkabel dilengkapi dengan Digital signal processor (DSP), yang mengimplementasikan equalizer, compander , stereo expander, dan hal-hal lain yang dirancang untuk meningkatkan (atau mengubah) suara. Pabrik perangkat keras Bluetooth dapat mengkonfigurasi DSP untuk setiap codec secara terpisah, dan ketika beralih antar codec, akan terlihat bagi pendengar bahwa dia mendengar perbedaan dalam codec ketika dia benar-benar mendengarkan pengaturan DSP yang berbeda. Saluran pemrosesan audio Kalimba DSP dalam chip CSR / Qualcomm Mengaktifkan berbagai fungsi DSP untuk setiap codec dan output secara terpisah Beberapa perangkat premium dilengkapi dengan program yang memungkinkan Anda untuk mengonfigurasi pengaturan DSP, tetapi kebanyakan headphone yang lebih murah tidak memiliki fitur ini, dan pengguna tidak dapat mematikan pemrosesan suara dengan cara biasa.

:  -   -   -  -   -


:     DSP    .





Fitur Perangkat

Versi modern dari standar A2DP memiliki fungsi "kontrol volume absolut" - kontrol volume perangkat dengan perintah khusus dari protokol AVRCP, yang mengontrol perolehan tahap output, alih-alih secara program mengurangi volume aliran audio. Jika, ketika mengubah volume pada headphone, perubahan itu tidak disinkronkan dengan volume pada telepon, itu berarti headphone Anda atau telepon tidak mendukung fungsi ini. Dalam hal ini, masuk akal untuk mendengarkan musik selalu dengan volume maksimum pada ponsel, menyesuaikan volume aktual dengan tombol headphone - dalam hal ini, rasio sinyal-ke-noise akan lebih baik, dan kualitas audio harus lebih tinggi.
Pada kenyataannya, ada situasi yang menyedihkan. Compander yang kuat dihidupkan pada RealForce OverDrive D1 saya untuk headphone SBC, dan meningkatkan volume meningkatkan tingkat suara hening, tetapi volume suara keras tidak berubah (sinyal dikompresi). Karena itu, Anda harus mengatur volume pada komputer menjadi sekitar setengah, dalam hal ini, praktis tidak ada efek kompresi.
Menurut pengamatan saya, semua headphone dengan codec tambahan mendukung fungsi kontrol volume absolut, tampaknya ini adalah salah satu persyaratan untuk sertifikasi codec.

Beberapa headphone mendukung penghubungan dua perangkat secara bersamaan.. Ini memungkinkan, misalnya, mendengarkan musik dari komputer dan menerima panggilan dari telepon. Namun, Anda harus menyadari bahwa codec alternatif dinonaktifkan dalam mode ini, dan hanya SBC yang digunakan.

Fitur AVDTP 1.3 Delay Reporting memungkinkan headphone untuk melaporkan penundaan ke perangkat pengirim suara. Ini memungkinkan Anda untuk menyesuaikan sinkronisasi audio dengan video saat menonton file video: jika ada masalah dengan penyiaran, audio tidak akan ketinggalan di belakang video, tetapi sebaliknya, video akan diperlambat oleh pemutar video hingga audio dan video disinkronkan lagi.
Fitur ini didukung oleh banyak headphone, Android 9+ dan Linux dengan PulseAudio 12.0+. Saya tidak tahu tentang dukungan fungsi di platform lain.


Komunikasi dua arah melalui Bluetooth. Transmisi suara.

Untuk transmisi suara dalam Bluetooth, Synchronous Connection Oriented (SCO) dan versi yang disempurnakan Enhanced Synchronous Connection Oriented (eSCO) digunakan - transmisi sinkron dengan koordinasi awal koneksi. Mode ini memungkinkan Anda untuk mengirimkan suara dan suara secara berurutan, dengan kecepatan pengiriman dan penerimaan simetris, tanpa menunggu konfirmasi pengiriman dan pengiriman kembali paket. Ini mengurangi keterlambatan keseluruhan dalam mentransmisikan audio melalui saluran radio, tetapi memberlakukan batasan serius pada jumlah data yang dikirimkan per unit waktu dan berdampak buruk pada kualitas audio.
Ketika mode ini digunakan, baik suara dari mikrofon dan audio ke headphone ditransmisikan dengan kualitas yang sama.
Transfer data itu sendiri distandarisasi oleh profil HSP, yang juga menjelaskan fungsi tambahan, seperti pengoperasian tombol volume, tombol pick-up dan end-call.
Sayangnya, pada 2019, kualitas suara melalui Bluetooth masih buruk, dan tidak jelas mengapa Bluetooth SIG tidak melakukan apa-apa dengannya.

CVSD
Codec suara dasar CVSD telah distandarisasi pada tahun 2002, dan didukung oleh semua perangkat Bluetooth dua arah. Ini menyediakan transmisi audio dengan frekuensi sampling 8 kHz, yang sesuai dengan kualitas telepon kabel konvensional.

Contoh catatan dalam codec ini .

mSBC
Codec mSBC tambahan telah distandarisasi pada tahun 2009, dan pada tahun 2010 chip muncul yang menggunakannya untuk mengirimkan suara. mSBC didukung secara luas oleh berbagai perangkat.
Ini bukan codec independen, tetapi SBC reguler dari standar A2DP, dengan profil penyandian tetap: 16 kHz, mono, bitpool 26.

Contoh rekaman dalam codec ini .

Tidak bersinar, tetapi jauh lebih baik daripada CVSD, tetapi masih tidak menyenangkan untuk menggunakannya untuk berkomunikasi melalui Internet, terutama ketika Anda menggunakan headphone untuk berkomunikasi dalam permainan - suara game juga akan ditransmisikan dengan frekuensi sampling 16 kHz.

Faststream
CSR memutuskan untuk mengembangkan gagasan menggunakan kembali SBC. Untuk menghindari keterbatasan protokol SCO dan menggunakan bitrate yang lebih tinggi, CSR sebaliknya - mereka menerapkan dukungan untuk audio SBC dua arah dalam standar untuk mentransmisikan audio A2DP satu arah, profil pengodean standar, dan menyebutnya "FastStream".

FastStream mentransmisikan suara stereo 44,1 atau 48 kHz dengan bitrate 212 kbit / s ke speaker, dan mono, 16 kHz, dengan bitrate 72 kbit / s (sedikit lebih baik daripada mSBC) digunakan untuk mengirimkan audio dari mikrofon. Parameter seperti itu jauh lebih cocok untuk berkomunikasi dalam game online - suara permainan dan lawan bicara akan berkualitas tinggi.

Contoh rekaman dalam codec ini (+ suara mikrofon, sama seperti mSBC ).

Perusahaan datang dengan penopang yang menarik, tetapi karena fakta bahwa itu bertentangan dengan standar A2DP, itu hanya didukung di beberapa pemancar perusahaan (yang bekerja sebagai kartu audio USB, bukan perangkat Bluetooth), tetapi tidak menerima dukungan dalam tumpukan Bluetooth, meskipun jumlah headphone dengan dukungan FastStream tidak begitu kecil.

Saat ini, dukungan untuk FastStream di OS hanya dalam bentuk patch untuk Linux PulseAudio dari pengembang Pali RohΓ‘r, yang tidak termasuk dalam cabang utama program.

aptX Low Latency
Sangat mengejutkan kami, aptX Low Latency juga mendukung audio dua arah, menerapkan prinsip yang sama dengan FastStream.
Ini tidak akan berfungsi untuk menggunakan fitur codec ini - tidak ada dukungan untuk penguraian Latensi Rendah di OS apa pun atau di tumpukan Bluetooth apa pun yang saya ketahui.


Bluetooth 5, Klasik dan Energi Rendah

Ada banyak kebingungan di sekitar spesifikasi dan versi Bluetooth karena adanya dua standar yang tidak kompatibel di bawah merek yang sama, yang keduanya banyak digunakan untuk tujuan yang berbeda.

Ada dua protokol Bluetooth yang berbeda, tidak kompatibel: Bluetooth Classic dan Bluetooth Low Energy (LE, alias Bluetooth Smart). Ada juga protokol ketiga, Bluetooth High Speed, tetapi itu tidak umum, dan tidak digunakan dalam perangkat rumah tangga.

Dimulai dengan Bluetooth 4.0, perubahan dalam spesifikasi yang bersangkutan terutama Bluetooth Low Energy, dan versi Classic hanya menerima perbaikan kecil.

Daftar perubahan antara Bluetooth 4.2 dan Bluetooth 5:
9 CHANGES FROM v4.2 TO 5.0

9.1 NEW FEATURES

Several new features are introduced in the Bluetooth Core Specification 5.0 Release. The major areas of improvement are:
β€’ Slot Availability Mask (SAM)
β€’ 2 Msym/s PHY for LE
β€’ LE Long Range
β€’ High Duty Cycle Non-Connectable Advertising
β€’ LE Advertising Extensions
β€’ LE Channel Selection Algorithm #2
9.1.1 Features Added in CSA5 β€” Integrated in v5.0
β€’ Higher Output Power
Sumber: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (halaman 291)

Hanya satu perubahan yang dibuat untuk versi Classic dalam spesifikasi Bluetooth 5: mereka menambahkan dukungan untuk teknologi Slot Availability Mask (SAM), yang dirancang untuk meningkatkan pemisahan udara. . Semua perubahan lainnya hanya memengaruhi Bluetooth LE (dan Daya Output Lebih Tinggi).

Semua perangkat audio hanya menggunakan Bluetooth Classic. Headphone dan speaker tidak dapat terhubung melalui Bluetooth Low Energy: tidak ada standar untuk transmisi audio menggunakan LE. Standar A2DP, yang digunakan untuk mengirimkan audio berkualitas tinggi, hanya berfungsi melalui Bluetooth Classic, dan tidak ada analog di LE.

Kesimpulan - untuk membeli perangkat audio dengan Bluetooth 5 hanya karena versi baru dari protokol tidak ada gunanya. Bluetooth 4.0 / 4.1 / 4.2 dalam konteks transmisi audio akan bekerja dengan cara yang sama.
Jika pengumuman headphone baru menyebutkan operasi ganda dan mengurangi konsumsi daya berkat Bluetooth 5, maka Anda harus tahu bahwa mereka tidak memahami diri mereka sendiri atau menyesatkan Anda. Tidak heran, bahkan produsen chip Bluetooth dalam pengumuman mereka bingung tentang perbedaan dalam versi standar baru, dan beberapa chip Bluetooth 5 mendukung versi kelima hanya untuk LE, dan untuk Classic mereka menggunakan 4.2.

Penundaan Audio

Jumlah keterlambatan (lag) audio tergantung pada banyak faktor: ukuran buffer dalam tumpukan audio, dalam tumpukan Bluetooth dan dalam perangkat nirkabel yang paling mereproduksi, keterlambatan algoritmik dari codec.

Penundaan codec sederhana, seperti SBC, aptX dan aptX HD, sangat kecil dan 3-6 ms, yang dapat diabaikan, tetapi codec yang kompleks, seperti AAC dan LDAC, dapat menyebabkan penundaan yang nyata. Penundaan algoritme AAC untuk 44,1 kHz adalah 60 ms. LDAC - sekitar 30 ms (menurut analisis kasar kode sumber. Saya mungkin salah, tetapi tidak banyak.)

Penundaan yang dihasilkan sangat tergantung pada perangkat pemutaran, chipset dan buffer. Selama pengujian, saya mendapatkan penyebaran 150 hingga 250 ms pada perangkat yang berbeda (dengan codec SBC). Dengan asumsi perangkat yang mendukung codec aptX, AAC, dan LDAC tambahan menggunakan komponen berkualitas tinggi dan ukuran buffer yang kecil, kita mendapatkan penundaan khas berikut:

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

ingatkan Anda: aptX Low Latency tidak didukung pada sistem operasi, karena itu penundaan yang lebih rendah hanya dapat diperoleh oleh sekelompok pemancar + penerima atau pemancar + headphone / speaker, dan semua perangkat harus mendukung codec ini.


Sertifikasi perangkat Bluetooth dan masalah logo

Bagaimana membedakan perangkat audio berkualitas tinggi dari perangkat murah? Dalam penampilan, pertama-tama!

Headphone, speaker, dan penerima Cina murah:
  1. Kata "Bluetooth" tidak ada pada kotak dan perangkat, paling sering digunakan "Nirkabel" dan "BT"
  2. Tidak ada logo Bluetooth Bluetoothdi kotak atau perangkat
  3. Tidak ada LED berkedip biru

Tidak adanya elemen-elemen ini menunjukkan bahwa perangkat tidak lulus sertifikasi, yang berarti berpotensi bermasalah atau berkualitas buruk. Misalnya, headphone Bluedio tidak bersertifikasi Bluetooth dan tidak sepenuhnya memenuhi spesifikasi A2DP. Mereka tidak akan lulus sertifikasi.

Pertimbangkan beberapa perangkat dan kotak dari mereka: Ini semua adalah perangkat yang tidak bersertifikat. Instruksi mungkin termasuk logo dan nama teknologi Bluetooth, tetapi yang paling penting adalah bahwa mereka ada di dalam kotak dan / atau perangkat itu sendiri. Jika headphone atau speaker Anda mengatakan "Ze bluetooth dewise terhubung dengan sukses", ini juga tidak berarti kualitasnya:












Kesimpulan

Apakah Bluetooth dapat sepenuhnya menggantikan headphone dan headset kabel? Ia mampu, tetapi dengan biaya waktu bicara berkualitas rendah, peningkatan keterlambatan transmisi audio, yang dapat mengganggu dalam gim, dan banyak codec eksklusif yang memerlukan biaya lisensi dan meningkatkan biaya akhir untuk smartphone dan headphone.

Pemasaran codec alternatif sangat kuat: aptX dan LDAC disajikan sebagai pengganti yang sudah lama ditunggu-tunggu untuk SBC "usang dan buruk", yang jauh dari seburuk yang biasanya dipikirkan.

Ternyata, batasan artifisial tumpukan Bluetooth pada bitrate SBC dapat dielakkan, sehingga SBC tidak akan kalah dengan aptX HD. Saya mengambil inisiatif di tangan saya sendiri dan membuat patch untuk firmware LineageOS:Memodifikasi tumpukan Bluetooth untuk meningkatkan suara pada headphone tanpa codec AAC, aptX dan LDAC

Informasi lebih lanjut dapat ditemukan di situs SoundGuys dan SoundExpert .

Bonus: encoder referensi SBC, informasi bitstream A2DP, dan file uji . File ini sebelumnya diposting di situs Bluetooth untuk umum, tetapi sekarang hanya tersedia bagi mereka yang telah memasukkan Bluetooth SIG.

Source: https://habr.com/ru/post/id427997/


All Articles