Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Karena produksi massal ponsel cerdas tanpa jack audio 3.5 mm, headphone Bluetooth nirkabel telah menjadi cara utama bagi banyak orang untuk mendengarkan musik dan berkomunikasi dalam mode headset.
Produsen perangkat nirkabel tidak selalu menulis spesifikasi produk secara detail, dan artikel tentang audio Bluetooth di Internet saling bertentangan, terkadang salah, tidak membicarakan semua fitur, dan sering kali menyalin informasi yang sama yang tidak sesuai dengan kenyataan.
Mari kita coba memahami protokol, kemampuan tumpukan OS Bluetooth, headphone dan speaker, codec Bluetooth untuk musik dan ucapan, cari tahu apa yang memengaruhi kualitas suara dan latensi yang ditransmisikan, pelajari cara mengumpulkan dan mendekode informasi tentang codec yang didukung dan perangkat lain kemampuan.

TL; DR:

  • SBC - codec biasa
  • Headphone memiliki equalizer dan pasca-pemrosesan sendiri untuk setiap codec secara terpisah
  • aptX tidak sebagus yang diiklankan
  • LDAC adalah omong kosong pemasaran
  • Kualitas panggilan masih buruk
  • Anda dapat menyematkan encoder audio C ke browser Anda dengan mengkompilasinya ke WebAssembly melalui emscripten, dan encoder tersebut tidak akan terlalu melambat.

Musik melalui Bluetooth

Komponen fungsional Bluetooth ditentukan oleh profil - spesifikasi fungsi tertentu. Streaming musik Bluetooth menggunakan profil transmisi audio searah A2DP berkualitas tinggi. Standar A2DP diadopsi pada tahun 2003 dan tidak berubah secara signifikan sejak saat itu.
Dalam profil tersebut, 1 codec wajib dengan kompleksitas komputasi rendah SBC, dibuat khusus untuk Bluetooth, dan 3 codec tambahan distandarisasi. Dimungkinkan juga untuk menggunakan codec tidak berdokumen dari implementasi Anda sendiri.

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

  • SBC ← terstandarisasi dalam A2DP, didukung oleh semua perangkat
  • MPEG-1/2 Layer 1/2/3 ← terstandarisasi dalam A2DP: terkenal MP3, digunakan di TV digital MP2, dan tidak diketahui MP1
  • MPEG-2/4 AAC ← distandarisasi dalam A2DP
  • ATRAK ← codec lama dari Sony, distandarisasi dalam A2DP
  • LDAC ← codec baru dari Sony
  • APTX ← kodek dari tahun 1988
  • aptX-HD ← sama seperti aptX, hanya dengan opsi pengkodean yang berbeda
  • aptX Latensi Rendah ← codec yang benar-benar berbeda, tidak ada implementasi perangkat lunak
  • aptX Adaptif ← codec lain dari Qualcomm
  • Aliran Cepat ← codec semu, modifikasi SBC dua arah
  • HWA LHDC ← codec baru dari Huawei
  • SamsungHD ← didukung oleh 2 perangkat
  • Samsung Skalabel ← didukung oleh 2 perangkat
  • Samsung UHQ-BT ← didukung oleh 3 perangkat

Mengapa kita memerlukan codec sama sekali, Anda bertanya, ketika Bluetooth memiliki EDR, yang memungkinkan Anda mentransfer data dengan kecepatan 2 dan 3 Mbit/s, dan untuk PCM 16-bit dua saluran yang tidak terkompresi, 1.4 Mbit/s sudah cukup?

Transfer data melalui Bluetooth

Ada dua jenis transfer data di Bluetooth: Asynchronous Connection Less (ACL) untuk transfer asinkron tanpa pembuatan koneksi, dan Synchronous Connection Oriented (SCO), untuk transfer sinkron dengan negosiasi koneksi awal.
Transmisi dilakukan dengan menggunakan skema pembagian waktu dan pemilihan 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 slot bernomor genap, yang lainnya dalam slot bernomor ganjil. Paket yang dikirimkan dapat menempati 1, 3 atau 5 slot, tergantung pada ukuran data dan jenis transmisi yang ditetapkan, dalam hal ini transmisi oleh satu perangkat dilakukan pada slot genap dan ganjil hingga akhir transmisi. Totalnya, hingga 1600 paket dapat diterima dan dikirim per detik, jika masing-masing paket menempati 1 slot, dan kedua perangkat mengirimkan dan menerima sesuatu tanpa henti.

2 dan 3 Mbit/s untuk EDR, yang dapat ditemukan di pengumuman dan di situs web Bluetooth, adalah kecepatan transfer saluran maksimum dari total semua data (termasuk header teknis semua protokol di mana data harus dienkapsulasi), dalam dua arah serentak. Kecepatan transfer data sebenarnya akan sangat bervariasi.

Untuk mengirimkan musik, metode asinkron digunakan, hampir selalu menggunakan paket seperti 2-DH5 dan 3-DH5, yang membawa jumlah data maksimum dalam mode EDR masing-masing 2 Mbit/s dan 3 Mbit/s, dan memakan waktu 5 kali. -berbagi slot.

Representasi skema transmisi menggunakan 5 slot oleh satu perangkat dan 1 slot oleh perangkat lainnya (DH5/DH1):
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Karena prinsip pembagian waktu gelombang udara, kita terpaksa menunggu slot waktu 625 mikrodetik setelah mengirimkan paket jika perangkat kedua tidak mengirimkan apa pun kepada kita atau mengirimkan paket kecil, dan lebih banyak waktu jika perangkat kedua mengirimkan dalam paket besar. Jika lebih dari satu perangkat terhubung ke telepon (misalnya, headphone, jam tangan, dan gelang kebugaran), maka waktu transfer dibagi antara semuanya.

Kebutuhan untuk merangkum audio dalam protokol transport khusus L2CAP dan AVDTP membutuhkan 16 byte dari kemungkinan jumlah maksimum muatan audio yang dikirimkan.

Jenis paket
Jumlah slot
Maks. jumlah byte dalam paket
Maks. jumlah byte muatan A2DP
Maks. Kecepatan bit muatan A2DP

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 dan 1429 kbps jelas tidak cukup untuk mengirimkan audio yang tidak terkompresi dalam kondisi nyata, dengan rentang 2.4 GHz yang bising dan kebutuhan untuk mengirimkan data layanan. EDR 3 Mbit/s menuntut daya transmisi dan kebisingan di udara, oleh karena itu, bahkan dalam mode 3-DH5, transmisi PCM yang nyaman tidak mungkin dilakukan, akan selalu ada gangguan jangka pendek, dan semuanya hanya akan bekerja pada jarak a beberapa meter.
Dalam praktiknya, bahkan aliran audio 990 kbit/s (LDAC 990 kbit/s) pun sulit untuk ditransmisikan.

Mari kembali ke codec.

SBC

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

Frekuensi pengambilan sampel
Kedalaman bit
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

16, 32, 44.1, 48 kHz
16 bit
10-1500kbps
Semua perangkat
Semua perangkat

SBC adalah codec yang sederhana dan cepat secara komputasi, dengan model psikoakustik primitif (hanya penyamaran suara pelan yang diterapkan), menggunakan modulasi kode pulsa adaptif (APCM).
Spesifikasi A2DP merekomendasikan dua profil untuk digunakan: Kualitas Menengah dan Kualitas Tinggi.
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Codec memiliki banyak pengaturan yang memungkinkan Anda untuk mengontrol penundaan algoritmik, jumlah sampel dalam satu blok, algoritma distribusi bit, tetapi hampir di mana-mana parameter yang sama yang direkomendasikan dalam spesifikasi digunakan: Joint Stereo, 8 pita frekuensi, 16 blok dalam bingkai audio, metode distribusi bit kenyaringan.
SBC mendukung perubahan dinamis pada parameter Bitpool, yang secara langsung mempengaruhi bitrate. Jika gelombang udara tersumbat, paket hilang, atau perangkat berada pada jarak yang jauh, sumber audio dapat mengurangi Bitpool hingga komunikasi kembali normal.

Sebagian besar produsen headphone menetapkan nilai Bitpool maksimum ke 53, yang membatasi bitrate hingga 328 kilobit per detik saat menggunakan profil yang disarankan.
Meskipun produsen headphone telah menetapkan nilai Bitpool maksimum di atas 53 (model seperti itu ditemukan, misalnya: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, juga ditemukan di beberapa receiver dan head unit mobil), maka sebagian besar OS tidak mengizinkan penggunaan peningkatan bitrate karena menetapkan batas nilai internal di tumpukan Bluetooth.
Selain itu, beberapa produsen menetapkan nilai Bitpool maksimum ke rendah untuk beberapa perangkat. Misalnya, untuk Bluedio T nilainya 39, untuk Samsung Gear IconX nilainya 37, yang memberikan kualitas suara buruk.

Pembatasan buatan oleh pengembang tumpukan Bluetooth kemungkinan besar muncul karena ketidakcocokan beberapa perangkat dengan nilai Bitpool yang besar atau profil yang tidak lazim, meskipun mereka melaporkan dukungan untuk perangkat tersebut, dan pengujian yang tidak memadai selama sertifikasi. Lebih mudah bagi pembuat tumpukan Bluetooth untuk membatasi diri pada menyetujui profil yang direkomendasikan, daripada membuat database perangkat yang salah (walaupun sekarang mereka melakukan ini untuk fungsi lain yang tidak berfungsi dengan benar).

SBC secara dinamis mengalokasikan bit kuantisasi ke pita frekuensi dari rendah ke tinggi, dengan bobot berbeda. Jika semua bitrate digunakan untuk frekuensi rendah dan menengah, frekuensi tinggi akan “terputus” (sebagai gantinya akan ada keheningan).

Contoh SBC 328 kbps. Di atas adalah yang asli, di bawah adalah SBC, berpindah antar trek secara berkala. Audio dalam file video menggunakan codec kompresi lossless FLAC. Penggunaan FLAC dalam wadah mp4 tidak distandarisasi secara resmi, jadi tidak ada jaminan browser Anda akan memutarnya, namun dapat berfungsi 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

Spektogram menunjukkan momen peralihan: SBC secara berkala memotong suara senyap di atas 17.5 kHz, dan tidak mengalokasikan bit apa pun untuk pita di atas 20 kHz. Spektogram lengkap tersedia dengan mengklik (1.7 MB).
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

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

Mari kita ambil sesuatu yang lebih baru dan simulasikan audio yang akan diperoleh menggunakan headphone Samsung Gear IconX dengan Bitpool 37 (di atas - sinyal asli, di bawah - SBC 239 kbps, audio dalam FLAC).
Pemanjaan Diri Tanpa Pikiran - Saksi

Saya mendengar suara berderak, efek stereo yang lebih sedikit, dan suara "dentingan" yang tidak menyenangkan pada vokal frekuensi tinggi.

Meskipun SBC adalah codec yang sangat fleksibel, SBC dapat dikonfigurasi untuk latensi rendah, memberikan kualitas audio yang sangat baik pada bitrate tinggi (452+ kbps) dan cukup baik bagi kebanyakan orang pada standar Kualitas Tinggi (328 kbps), karena fakta bahwa itu standar A2DP tidak menentukan profil tetap (tetapi hanya memberikan rekomendasi), pengembang tumpukan telah menetapkan batasan buatan pada Bitpool, parameter audio yang ditransmisikan tidak ditampilkan di antarmuka pengguna, dan produsen headphone bebas mengatur pengaturannya sendiri dan tidak pernah menunjukkan nilai Bitpool dalam spesifikasi teknis produk, codec menjadi terkenal karena kualitas suaranya yang rendah, meskipun hal ini tidak menjadi masalah dengan codec itu sendiri.
Parameter Bitpool secara langsung mempengaruhi bitrate hanya dalam satu profil. Nilai Bitpool 53 yang sama dapat memberikan bitrate 328 kbps dengan profil Kualitas Tinggi yang direkomendasikan, dan 1212 kbps dengan Saluran Ganda dan 4 pita frekuensi, itulah sebabnya pembuat OS, selain pembatasan pada Bitpool, menetapkan batas dan pada Kecepatan bit. Menurut saya, situasi ini muncul karena kelemahan dalam standar A2DP: bitrate perlu dinegosiasikan, bukan Bitpool.

Tabel dukungan untuk kemampuan SBC di berbagai OS:

ОС
Tingkat pengambilan sampel yang didukung
Batasi maks. kolam bit
Batasi maks. Kecepatan bit
Kecepatan Bit Khas
Penyesuaian dinamis Bitpool

Windows 10
44.1
53
512 kbps
328 kbps
*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (untuk sambungan masuk), 53 (untuk sambungan keluar)
Tidak terbatas
328 kbps
*

MacOS High Sierra
44.1
64, bawaan 53***
Diketahui
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
Tidak terbatas
328 kbps

* Bitpool hanya berkurang, namun tidak meningkat secara otomatis, jika kondisi transfer membaik. Untuk memulihkan Bitpool Anda perlu menghentikan pemutaran, tunggu beberapa detik dan mulai audio lagi.
** Nilai default bergantung pada pengaturan tumpukan yang ditentukan saat mengkompilasi firmware. Di Android 8/8.1 frekuensinya hanya 44.1 kHz atau 48 kHz, bergantung pada pengaturan selama kompilasi, di versi lain 44.1 kHz dan 48 kHz didukung secara bersamaan.
*** Nilai Bitpool dapat ditingkatkan dalam program Bluetooth Explorer.

aptX dan aptX HD

aptX adalah codec yang sederhana dan cepat secara komputasi, tanpa psikoakustik, menggunakan modulasi kode pulsa diferensial adaptif (ADPCM). Muncul sekitar tahun 1988 (tanggal pengajuan paten tertanggal Februari 1988), sebelum Bluetooth, ini digunakan terutama pada peralatan audio nirkabel profesional. Saat ini dimiliki oleh Qualcomm, memerlukan lisensi dan royalti. Pada tahun 2014: $6000 satu kali dan ≈$1 per perangkat, untuk kumpulan hingga 10000 perangkat (sumber, hal. 16).
aptX dan aptX HD adalah codec yang sama, dengan profil pengkodean berbeda.

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

Codec
Frekuensi pengambilan sampel
Kedalaman bit
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

APTX
16, 32, 44.1, 48 kHz
16 bit
128/256/352/384 kbps (tergantung laju pengambilan sampel)
Windows 10 (desktop dan seluler), macOS, Android 4.4+/7*, Blackberry OS 10
Berbagai macam perangkat audio (perangkat keras)

* Versi hingga 7 memerlukan modifikasi tumpukan Bluetooth. Codec hanya didukung jika produsen perangkat Android telah melisensikan codec dari Qualcomm (jika OS memiliki perpustakaan pengkodean).

aptX membagi audio menjadi 4 pita frekuensi dan mengkuantisasinya dengan jumlah bit yang sama secara konstan: 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 ( angka untuk sampling rate 44.1 kHz).

Contoh audio aptX (di atas - sinyal asli, di bawah - aptX, spektogram hanya saluran kiri, suara dalam FLAC):

Nada tertingginya menjadi sedikit lebih merah, tapi Anda tidak bisa mendengar perbedaannya.

Karena distribusi bit kuantisasi yang tetap, codec tidak dapat “menggeser bit” ke frekuensi yang paling membutuhkannya. Tidak seperti SBC, aptX tidak akan “memotong” frekuensi, tetapi akan menambahkan noise kuantisasi ke frekuensi tersebut, sehingga mengurangi rentang dinamis audio.

Jangan berasumsi bahwa penggunaan, misalnya, 2 bit per pita mengurangi rentang dinamis menjadi 12 dB: ADPCM memungkinkan rentang dinamis hingga 96 dB bahkan ketika menggunakan 2 bit kuantisasi, tetapi hanya untuk sinyal tertentu.
ADPCM menyimpan perbedaan numerik antara sampel saat ini dan sampel berikutnya, alih-alih menyimpan nilai absolut seperti pada PCM. Hal 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, digunakan tabel koefisien.
Saat membuat codec, penulis menghitung koefisien ADPCM pada sekumpulan file audio musik. Semakin dekat sinyal audio dengan kumpulan musik tempat tabel dibuat, semakin sedikit kesalahan kuantisasi (noise) yang dihasilkan aptX.

Oleh karena itu, pengujian sintetis akan selalu memberikan hasil yang lebih buruk daripada pengujian musik. Saya membuat contoh sintetik khusus di mana aptX menunjukkan hasil yang buruk - gelombang sinus dengan frekuensi 12.4 kHz (di atas - sinyal asli, di bawah - aptX. Audio dalam FLAC. Turunkan volumenya!):

Grafik spektrum:
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Suara-suara terdengar jelas.

Namun, jika Anda menghasilkan gelombang sinus dengan amplitudo yang lebih kecil sehingga lebih senyap, noise juga akan menjadi lebih senyap, yang menunjukkan rentang dinamis yang lebar:

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Untuk mendengar perbedaan antara trek musik asli dan trek musik terkompresi, Anda dapat membalikkan salah satu sinyal dan menambahkan trek saluran demi saluran. Pendekatan ini, secara umum, salah, dan tidak akan memberikan hasil yang wajar dengan codec yang lebih kompleks, tetapi khusus untuk ADPCM pendekatan ini cukup cocok.
Perbedaan antara asli dan aptX
Perbedaan akar rata-rata kuadrat sinyal berada pada level -37.4 dB, yang tidak seberapa untuk musik terkompresi semacam itu.

aptX-HD

aptX HD bukan codec yang berdiri sendiri - ini adalah profil pengkodean codec aptX yang ditingkatkan. Perubahan tersebut mempengaruhi jumlah bit yang dialokasikan untuk rentang frekuensi pengkodean: 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) .

Codec
Frekuensi pengambilan sampel
Kedalaman bit
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

aptX-HD
16, 32, 44.1, 48 kHz
24 bit
192/384/529/576 kbps (tergantung laju pengambilan sampel)
Android 8+*
Beberapa perangkat audio (perangkat keras)

* Versi hingga 7 memerlukan modifikasi tumpukan Bluetooth. Codec hanya didukung jika produsen perangkat Android telah melisensikan codec dari Qualcomm (jika OS memiliki perpustakaan pengkodean).

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

Mari ulangi contoh dengan gelombang sinus pada 12.4 kHz:
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Jauh lebih baik daripada aptX, tapi masih sedikit bising.

aptX Latensi Rendah

Codec dari Qualcomm yang tidak memiliki kesamaan dengan aptX standar dan aptX HD, dilihat dari terbatasnya informasi dari orang-orang yang terlibat dalam pengembangannya. Dirancang untuk transmisi audio latensi rendah interaktif (film, game), di mana penundaan audio tidak dapat disesuaikan oleh perangkat lunak. Tidak ada implementasi perangkat lunak encoder dan decoder yang diketahui; mereka didukung secara eksklusif oleh pemancar, penerima, headphone dan speaker, namun tidak oleh ponsel pintar dan komputer.

Frekuensi pengambilan sampel
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

44.1
276/420kbps
Beberapa pemancar (perangkat keras)
Beberapa perangkat audio (perangkat keras)

AAC

AAC, atau Advanced Audio Coding, adalah codec komputasi yang kompleks dengan model psikoakustik yang serius. Banyak digunakan untuk audio di Internet, popularitas kedua setelah MP3. Memerlukan lisensi dan royalti: $15000 satu kali (atau $1000 untuk perusahaan dengan kurang dari 15 karyawan) + $0.98 untuk 500000 perangkat pertama (sumber).
Codec ini distandarisasi dalam spesifikasi MPEG-2 dan MPEG-4, dan bertentangan dengan kesalahpahaman umum, codec ini bukan milik Apple.

Frekuensi pengambilan sampel
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

8 - 96kHz
8 - 576 kbps (untuk stereo), 256 - 320 kbps (khas untuk Bluetooth)
macOS, Android 7+*, iOS
Berbagai macam perangkat audio (perangkat keras)

* hanya pada perangkat yang produsennya telah membayar biaya lisensi

iOS dan macOS menggunakan encoder AAC terbaik Apple saat ini untuk menghadirkan kualitas audio setinggi mungkin. Android menggunakan encoder AAC Fraunhofer FDK kualitas tertinggi kedua, tetapi mungkin menggunakan berbagai perangkat keras yang terpasang pada platform (SoC) dengan kualitas pengkodean yang tidak diketahui. Menurut tes terbaru di situs SoundGuys, kualitas pengkodean AAC pada ponsel Android yang berbeda sangat bervariasi:
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Kebanyakan perangkat audio nirkabel memiliki bitrate maksimum 320 kbps untuk AAC, ada pula yang hanya mendukung 256 kbps. Bitrate lainnya sangat jarang.
AAC memberikan kualitas luar biasa pada bitrate 320 dan 256 kbps, namun tunduk pada hilangnya pengkodean berurutan dari konten yang sudah dikompresi, namun, sulit untuk mendengar perbedaan apa pun dengan versi asli di iOS pada bitrate 256 kbps bahkan dengan beberapa pengkodean berurutan; dengan pengkodean tunggal, misalnya, MP3 320 kbps hingga AAC 256 kbps, kerugian dapat diabaikan.
Seperti codec Bluetooth lainnya, musik apa pun terlebih dahulu didekodekan dan kemudian dikodekan oleh codec tersebut. Saat mendengarkan musik dalam format AAC, pertama-tama didekodekan oleh OS, kemudian dikodekan lagi ke dalam AAC untuk transmisi melalui Bluetooth. Ini diperlukan untuk menggabungkan beberapa aliran audio, seperti musik dan notifikasi pesan baru. iOS tidak terkecuali. Di Internet Anda dapat menemukan banyak pernyataan bahwa musik di iOS dalam format AAC tidak ditranskode saat ditransmisikan melalui Bluetooth, dan itu tidak benar.

MP1/2/3

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

Codec MP1 dan MP2 lama tidak didukung sama sekali: Saya tidak dapat menemukan headphone atau tumpukan Bluetooth yang dapat menyandikan atau mendekodekannya.
Penguraian kode MP3 didukung oleh beberapa headphone, tetapi pengkodean tidak didukung pada tumpukan sistem operasi modern mana pun. Tampaknya tumpukan BlueSoleil pihak ketiga untuk Windows dapat dikodekan ke MP3 jika Anda mengubah file konfigurasi secara manual, tetapi bagi saya menginstalnya mengarah ke BSoD di Windows 10. Kesimpulan - codec sebenarnya tidak dapat digunakan untuk audio Bluetooth.
Sebelumnya, pada tahun 2006-2008, sebelum standar A2DP menyebar di perangkat, masyarakat mendengarkan musik MP3 di headset Nokia BH-501 melalui program MSI BluePlayer yang tersedia di Symbian dan Windows Mobile. Pada saat itu, arsitektur OS pada ponsel cerdas memungkinkan akses ke banyak fungsi tingkat rendah, dan pada Windows Mobile bahkan dimungkinkan untuk menginstal tumpukan Bluetooth pihak ketiga.

Paten terakhir codec MP3 telah habis masa berlakunya, penggunaan codec tersebut tidak memerlukan biaya lisensi sejak tanggal 23 April 2017.

Jika paten terlama yang disebutkan dalam referensi di atas dijadikan sebagai ukuran, maka teknologi MP3 menjadi bebas paten di Amerika Serikat pada tanggal 16 April 2017 ketika Paten AS 6,009,399, yang dipegang oleh dan dikelola oleh Technicolor, telah habis masa berlakunya.

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

Frekuensi pengambilan sampel
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

16 - 48kHz
8 - 320kbps
Tidak didukung di mana pun
Beberapa perangkat audio (perangkat keras)

LDAC

Codec “Hi-Res” yang baru dan dipromosikan secara aktif dari Sony, mendukung kecepatan pengambilan sampel hingga 96 kHz dan 24-bit, dengan kecepatan bit hingga 990 kbps. Itu diiklankan sebagai codec audiophile, sebagai pengganti codec Bluetooth yang ada. Ini memiliki fungsi penyesuaian bitrate adaptif, tergantung pada kondisi siaran radio.

Pembuat enkode LDAC (libldac) disertakan dalam paket Android standar, sehingga pengkodean didukung pada ponsel pintar Android apa pun yang dimulai dengan OS versi 8. Tidak ada perangkat lunak decoder yang tersedia secara bebas, spesifikasi codec tidak tersedia untuk masyarakat umum, namun sekilas pada encoder, struktur internal codec mirip dengan ATRAC9 - Codec Sony yang digunakan di PlayStation 4 dan Vita: keduanya bekerja dalam domain frekuensi, menggunakan transformasi kosinus diskrit (MDCT) yang dimodifikasi dan kompresi menggunakan algoritma Huffman.

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

Frekuensi pengambilan sampel
Kecepatan bit
Dukungan pengkodean
Dukungan penguraian kode

44.1 - 96kHz
303/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 beberapa perangkat dari produsen lain (perangkat keras)

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

Karena perangkat lunak decoder LDAC tidak tersedia secara bebas, tidak mungkin menguji codec tanpa perangkat tambahan yang memecahkan kode LDAC. Berdasarkan hasil pengujian LDAC pada DAC dengan dukungannya, yang dihubungkan oleh insinyur SoundGuys.com melalui keluaran digital dan merekam suara keluaran pada sinyal pengujian, LDAC 660 dan 990 kbps dalam mode kualitas CD memberikan sinyal-ke- rasio kebisingan sedikit lebih baik daripada aptX HD.

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat
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, Android hanya menggunakan profil standar 303/606/909 dan 330/660/990 kbps.

Codec lainnya

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

Dukungan codec untuk perangkat audio

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

Sayangnya, antarmuka sebagian besar sistem operasi tidak menampilkan codec yang digunakan di mana pun. Informasi mengenai ini hanya tersedia di Android, mulai versi 8, dan MacOS. Namun, bahkan di OS ini, hanya codec yang didukung oleh ponsel/komputer dan headphone yang akan ditampilkan.

Bagaimana cara mengetahui codec mana yang didukung perangkat Anda? Rekam dan analisis 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 dump Bluetooth HCI standar, yang tersedia di alat pengembang. Anda akan menerima dump dalam format btsnoop, yang dapat dimuat ke dalam penganalisis Wireshark.
Catatan: dump yang benar hanya dapat diperoleh dengan menghubungkan ponsel/komputer Anda ke headphone/speaker (tidak peduli betapa lucunya kedengarannya)! Headphone dapat secara mandiri membuat koneksi dengan telepon, dalam hal ini mereka akan meminta daftar codec dari telepon, dan bukan sebaliknya. Untuk memastikan dump yang benar direkam, pertama-tama putuskan sambungan perangkat, lalu pasangkan ponsel Anda dengan headphone saat merekam dump.

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

btavdtp.signal_id

Hasilnya, Anda akan melihat sesuatu seperti ini:
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Anda dapat mengklik setiap item dalam perintah GetCapabilities untuk melihat karakteristik detail codec.
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Wireshark tidak mengetahui semua pengidentifikasi codec, jadi beberapa codec harus didekripsi secara manual, lihat tabel pengidentifikasi 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

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

Perbandingan codec. Codec mana yang lebih baik?

Setiap codec memiliki kelebihan dan kekurangannya masing-masing.
aptX dan aptX HD menggunakan profil hard-code yang tidak dapat diubah tanpa memodifikasi encoder dan decoder. Baik produsen ponsel maupun produsen headphone tidak dapat mengubah faktor bitrate atau pengkodean aptX. Pemilik codec, Qualcomm, menyediakan referensi encoder berupa perpustakaan. Fakta-fakta ini adalah kekuatan aptX - Anda tahu sebelumnya kualitas suara apa yang akan Anda dapatkan, tanpa "tetapi".

SBC, sebaliknya, memiliki banyak parameter yang dapat dikonfigurasi, bitrate dinamis (encoder dapat mengurangi parameter bitpool jika gelombang udara sibuk), dan tidak memiliki profil hard-coded, hanya “kualitas sedang” dan “kualitas tinggi” yang direkomendasikan saja. ditambahkan ke spesifikasi A2DP pada tahun 2003. “Kualitas tinggi” tidak lagi setinggi standar saat ini, dan sebagian besar tumpukan Bluetooth tidak memungkinkan Anda menggunakan parameter lebih baik daripada profil “kualitas tinggi”, meskipun tidak ada batasan teknis untuk ini.
Bluetooth SIG tidak memiliki referensi encoder SBC sebagai perpustakaan, dan produsen menerapkannya sendiri.
Inilah kelemahan SBC - tidak pernah jelas sebelumnya kualitas suara seperti apa yang diharapkan dari perangkat tertentu. SBC dapat menghasilkan audio berkualitas rendah dan sangat tinggi, tetapi audio berkualitas sangat tinggi tidak dapat dicapai tanpa menonaktifkan atau melewati batasan buatan tumpukan Bluetooth.

Situasi dengan AAC ambigu: di satu sisi, secara teoritis codec harus menghasilkan kualitas yang tidak dapat dibedakan dari aslinya, tetapi dalam praktiknya, dilihat dari pengujian laboratorium SoundGuys pada perangkat Android yang berbeda, hal ini tidak dikonfirmasi. Kemungkinan besar, masalahnya terletak pada encoder audio perangkat keras berkualitas rendah yang terpasang di berbagai chipset ponsel. Masuk akal untuk menggunakan AAC hanya di perangkat Apple, dan di Android untuk membatasinya pada aptX dan LDAC.

Perangkat keras yang mendukung codec alternatif cenderung berkualitas lebih tinggi, karena untuk perangkat yang sangat murah dan berkualitas rendah, tidak masuk akal untuk membayar biaya lisensi untuk menggunakan codec tersebut. Dalam pengujian saya, SBC terdengar sangat bagus pada peralatan berkualitas.

Saya membuat layanan web yang mengkodekan audio ke SBC, aptX dan aptX HD secara real time, langsung di browser. Dengannya, Anda dapat menguji codec audio ini tanpa benar-benar mengirimkan audio melalui Bluetooth, pada headphone berkabel, speaker, dan musik favorit Anda, dan juga mengubah parameter pengkodean secara langsung saat memutar 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 dijalankan di browser. Siapa yang bisa memimpikan masa depan seperti itu!

Begini tampilannya:

Perhatikan bagaimana tingkat kebisingan berubah setelah 20 kHz untuk codec yang berbeda. File MP3 asli tidak mengandung frekuensi di atas 20 kHz.

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

Saya dapat mendengar perbedaan antara codec di headphone!

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

Sebagian besar chipset audio Bluetooth yang digunakan pada perangkat penerima nirkabel dilengkapi dengan Digital Signal Processor (DSP), yang mengimplementasikan equalizer, compander, stereo expander, dan hal-hal lain yang dirancang untuk meningkatkan (atau mengubah) suara. Produsen peralatan Bluetooth dapat mengkonfigurasi DSP untuk setiap codec secara terpisah, dan saat beralih antar codec, pendengar akan berpikir bahwa mereka mendengar perbedaan dalam pengoperasian codec, padahal kenyataannya mereka mendengarkan pengaturan DSP yang berbeda.

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat
Pipa pemrosesan audio DSP Kalimba dalam chip yang diproduksi oleh CSR/Qualcomm

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat
Aktifkan fungsi DSP yang berbeda untuk setiap codec dan output secara terpisah

Beberapa perangkat premium dilengkapi dengan perangkat lunak yang memungkinkan Anda menyesuaikan pengaturan DSP, tetapi sebagian besar headphone murah tidak memilikinya, dan pengguna tidak dapat mematikan pasca-pemrosesan audio secara manual.

Fitur fungsional perangkat

Versi modern dari standar A2DP memiliki fungsi "kontrol volume absolut". — kontrol volume perangkat menggunakan perintah khusus protokol AVRCP, yang mengatur penguatan tahap keluaran, alih-alih mengurangi volume aliran audio secara terprogram. Jika saat Anda mengubah volume headphone, perubahan tersebut tidak sinkron dengan volume ponsel Anda, berarti headphone atau ponsel Anda tidak mendukung fitur ini. Dalam hal ini, masuk akal untuk selalu mendengarkan musik dengan volume maksimum di ponsel, menyesuaikan volume sebenarnya dengan tombol headphone - dalam hal ini, rasio signal-to-noise akan lebih baik dan kualitas audio akan lebih baik. harus lebih tinggi.
Kenyataannya, ada situasi yang menyedihkan. Pada headphone RealForce OverDrive D1 saya untuk SBC, suara pendamping yang kuat diaktifkan, dan peningkatan volume akan meningkatkan tingkat suara senyap, sedangkan volume suara keras tidak berubah (sinyal dikompresi). Oleh karena itu, Anda harus mengatur volume pada komputer menjadi sekitar setengahnya, dalam hal ini praktis tidak ada efek kompresi.
Menurut pengamatan saya, semua headphone dengan codec tambahan mendukung fungsi kontrol volume absolut, ternyata ini salah satu persyaratan sertifikasi codec.

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

AVDTP 1.3 Fungsi Pelaporan Keterlambatan memungkinkan headphone mengomunikasikan penundaan ke perangkat transmisi tempat suara sebenarnya diputar. Hal ini memungkinkan Anda untuk mengatur sinkronisasi audio dengan video saat melihat file video: jika ada masalah dengan transmisi radio, audio tidak akan tertinggal dari video, namun sebaliknya, video akan diperlambat oleh pemutar video hingga audio dan video disinkronkan kembali.
Fungsi ini didukung oleh banyak headphone, Android 9+ dan Linux dengan PulseAudio 12.0+. Saya tidak mengetahui adanya dukungan untuk fitur ini di platform lain.

Komunikasi dua arah melalui Bluetooth. Transmisi suara.

Untuk transmisi suara melalui Bluetooth, Synchronous Connection Oriented (SCO) digunakan - transmisi sinkron dengan negosiasi awal koneksi. Mode ini memungkinkan Anda mengirimkan suara dan suara secara berurutan, dengan kecepatan pengiriman dan penerimaan yang simetris, tanpa menunggu konfirmasi transmisi dan pengiriman ulang paket. Hal ini mengurangi penundaan transmisi audio secara keseluruhan melalui saluran radio, namun memberlakukan pembatasan serius pada jumlah data yang dikirimkan per unit waktu, dan berdampak negatif pada kualitas.
Saat mode ini digunakan, suara dan audio dikirimkan dengan kualitas yang sama.
Sayangnya, hingga tahun 2019, kualitas suara melalui Bluetooth masih buruk, dan tidak jelas mengapa Bluetooth SIG tidak melakukan apa pun.

CVSD

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

Contoh rekaman dalam codec ini.

mSBC

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

Contoh rekaman dalam codec ini.

Tidak brilian, tapi jauh lebih baik daripada CVSD, namun masih mengganggu untuk digunakan dalam komunikasi online, terutama saat Anda menggunakan headphone untuk berkomunikasi dalam game - audio game juga akan ditransmisikan pada kecepatan sampling 16 kHz.

Perusahaan FastStreamCSR memutuskan untuk mengembangkan ide menggunakan kembali SBC. Untuk mengatasi keterbatasan protokol SCO dan menggunakan bitrate yang lebih tinggi, CSR menempuh jalur yang berbeda - mereka memperkenalkan dukungan untuk audio SBC dua arah ke dalam standar transmisi audio satu arah A2DP, profil pengkodean standar, dan menyebutnya "FastStream".

FastStream mentransmisikan audio stereo pada 44.1 atau 48 kHz dengan bitrate 212 kbps ke speaker, dan mono, 16 kHz, dengan bitrate 72 kbps digunakan untuk mengirimkan audio dari mikrofon (sedikit lebih baik dari mSBC). Parameter seperti itu jauh lebih cocok untuk komunikasi dalam game online - suara game dan lawan bicaranya akan berkualitas tinggi.

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

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

Saat ini, dukungan FastStream di OS saja sebagai patch untuk Linux PulseAudio dari pengembang Pali Rohár, yang tidak termasuk dalam cabang utama program.

aptX Latensi Rendah

Yang mengejutkan Anda, aptX Low Latency juga mendukung audio dua arah, menerapkan prinsip yang sama seperti FastStream.
Tidak mungkin menggunakan fitur codec ini di mana pun - tidak ada dukungan untuk decoding Latensi Rendah di OS apa pun atau di tumpukan Bluetooth apa pun yang saya kenal.

Bluetooth 5, Klasik dan Energi Rendah

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

Ada dua protokol Bluetooth berbeda yang tidak kompatibel: Bluetooth Classic dan Bluetooth Low Energy (LE, juga dikenal sebagai Bluetooth Smart). Ada juga protokol ketiga, Bluetooth Kecepatan Tinggi, tetapi tidak tersebar luas dan tidak digunakan di perangkat rumah tangga.

Dimulai dengan Bluetooth 4.0, perubahan spesifikasi terutama menyangkut Bluetooth Low Energy, dan versi Klasik hanya menerima sedikit peningkatan.

Daftar perubahan antara Bluetooth 4.2 dan Bluetooth 5:

9 PERUBAHAN DARI v4.2 KE 5.0

9.1 FITUR BARU

Beberapa fitur baru diperkenalkan dalam Rilis Spesifikasi Inti Bluetooth 5.0. Bidang perbaikan utama adalah:
• Masker Ketersediaan Slot (SAM)
• 2 Msym/s PHY untuk LE
•LE Jarak Jauh
• Periklanan Siklus Tugas Tinggi yang Tidak Dapat Dihubungkan
• Ekstensi Periklanan LE
• Algoritma Pemilihan Saluran LE #2
9.1.1 Fitur Ditambahkan di CSA5 - Terintegrasi di v5.0
•Daya Keluaran Lebih Tinggi

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

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

semua Perangkat audio hanya menggunakan Bluetooth Classic. Tidak mungkin menyambungkan headphone dan speaker melalui Bluetooth Low Energy: tidak ada standar untuk transmisi audio menggunakan LE. Standar A2DP, yang digunakan untuk mentransmisikan audio berkualitas tinggi, hanya berfungsi melalui Bluetooth Classic, dan tidak ada analog di LE.

Kesimpulan - membeli perangkat audio dengan Bluetooth 5 hanya karena protokol versi baru tidak ada gunanya. Bluetooth 4.0/4.1/4.2 dalam konteks transmisi audio akan bekerja sama persis.
Jika pengumuman headphone baru menyebutkan jangkauan pengoperasian dua kali lipat dan pengurangan konsumsi daya berkat Bluetooth 5, Anda harus tahu bahwa mereka sendiri tidak memahaminya atau menyesatkan Anda. Tidak heran, karena bahkan produsen chip Bluetooth dalam pengumumannya bingung tentang perbedaan antara versi standar yang baru, dan beberapa chip Bluetooth 5 mendukung versi kelima hanya untuk LE, dan menggunakan 4.2 untuk Klasik.

Penundaan transmisi audio

Jumlah penundaan (lag) dalam audio bergantung pada banyak faktor: ukuran buffer di tumpukan audio, di tumpukan Bluetooth, dan di perangkat pemutaran nirkabel itu sendiri, serta penundaan algoritmik codec.

Latensi codec sederhana seperti SBC, aptX dan aptX HD sangat kecil, 3-6 ms, yang dapat diabaikan, tetapi codec kompleks seperti AAC dan LDAC dapat menyebabkan kelambatan yang nyata. Latensi algoritmik AAC untuk 44.1 kHz adalah 60 ms. LDAC - sekitar 30 ms (berdasarkan analisis kasar kode sumber. Saya bisa saja salah, tapi tidak banyak.)

Latensi yang dihasilkan sangat bergantung pada perangkat pemutaran, chipset, dan buffernya. Selama pengujian, saya menerima spread 150 hingga 250 ms pada perangkat yang berbeda (dengan codec SBC). Jika kami berasumsi bahwa perangkat yang mendukung codec tambahan aptX, AAC, dan LDAC menggunakan komponen berkualitas tinggi dan ukuran buffer kecil, kami mendapatkan latensi tipikal berikut:

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

Izinkan saya mengingatkan Anda: aptX Latensi Rendah tidak didukung di sistem operasi, itulah sebabnya latensi yang lebih rendah hanya dapat diperoleh dengan kombinasi pemancar+penerima atau pemancar+headphone/speaker, dan semua perangkat harus mendukung codec ini.

Masalah perangkat Bluetooth, sertifikasi, dan logo

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

Untuk headphone, speaker, dan receiver China murah:

  1. Kata "Bluetooth" tidak ada pada kotak dan perangkat, "Nirkabel" dan "BT" paling sering digunakan
  2. Logo Bluetooth hilang Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat pada kotak atau perangkat
  3. Tidak ada LED berkedip biru

Ketiadaan unsur-unsur tersebut menandakan perangkat tersebut belum tersertifikasi sehingga berpotensi memiliki kualitas rendah dan bermasalah. Misalnya, headphone Bluedio tidak bersertifikat Bluetooth dan tidak sepenuhnya memenuhi spesifikasi A2DP. Mereka tidak akan lulus sertifikasi.

Mari kita pertimbangkan beberapa perangkat dan kotak darinya:
Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Audio melalui Bluetooth: detail maksimal tentang profil, codec, dan perangkat

Ini semua adalah perangkat yang tidak bersertifikat. Petunjuknya mungkin berisi logo dan nama teknologi Bluetooth, namun yang terpenting adalah petunjuk tersebut ada pada kotak dan/atau perangkat itu sendiri.

Jika headphone atau speaker Anda bertuliskan “Ze bluetooth dewise berhasil tersambung”, ini juga tidak menunjukkan kualitasnya:

Kesimpulan

Bisakah Bluetooth sepenuhnya menggantikan headphone dan headset berkabel? Ini mampu, tetapi dengan mengorbankan kualitas panggilan yang buruk, peningkatan latensi audio yang dapat mengganggu dalam game, dan sejumlah codec berpemilik yang memerlukan biaya lisensi dan meningkatkan biaya akhir ponsel cerdas dan headphone.

Pemasaran codec alternatif sangat kuat: aptX dan LDAC disajikan sebagai pengganti SBC yang “ketinggalan jaman dan buruk” yang telah lama ditunggu-tunggu, yang tidak seburuk yang diperkirakan orang.

Ternyata, batasan buatan tumpukan Bluetooth pada bitrate SBC dapat dilewati, sehingga SBC tidak kalah dengan aptX HD. Saya mengambil inisiatif sendiri dan membuat patch untuk firmware LineageOS: Kami memodifikasi tumpukan Bluetooth untuk meningkatkan suara pada headphone tanpa codec AAC, aptX, dan LDAC

Informasi lebih lanjut dapat ditemukan di situs web Suara Guys и Pakar Suara.

bonus: Encoder referensi SBC, informasi bitstream A2DP, dan file pengujian. File ini dulunya diposting secara publik di situs web Bluetooth, namun sekarang hanya tersedia untuk anggota Bluetooth SIG.

Sumber: www.habr.com

Tambah komentar