Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Bluetooth sbc parameters (Read 12728 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Bluetooth sbc parameters

From http://soundexpert.org/news/-/blogs/bluetooth-audio-quality-a2dp, and http://android.stackexchange.com/questions/26410/how-do-i-determine-which-a2dp-codecs-my-phone-supports-is-currently-using, I can see that when I listen to bluetooth audio from my phone to my car, I am getting sbc with these parameters:

Middle Quality Joint Stereo
Samp Freq 44.1 kHz
Bitpool value 35
Resulting Frame length 83 bytes
Resulting bit rate 229 kb/s
Block length 16
Allocation method = Loudness
Subbands 8

Can someone share an equation of how these parameters relate to each other?  Does any sbc at 44.1 KHz and bitrate 229 kb/s have to have bitpool = 35 and frame length 83 bytes?



Re: Bluetooth sbc parameters

Reply #1
I'll answer my own question.  The equations are in Sec 12.9 of "ADVANCED AUDIO DISTRIBUTION PROFILE SPECIFICATION", which is easily found with a search.

Here is what you will find there:  Bit Rate (bit_rate) is calculated using the following equation:
bit_rate = 8 * frame_length* fs / nrof_subbands / nrof_blocks,
where fs, nrof_subbands and nrof_blocks denote sampling frequency, number of subbands and number of blocks, respectively. Bit Rate is expressed in kb/s, because fs is expressed in kHz. The Frame Length (frame_length) is expressed in bytes as
frame_length = 4 + (4 * nrof_subbands * nrof_channels ) / 8 + nrof_blocks * nrof_channels * bitpool / 8 .
for the MONO and DUAL_CHANNEL channel modes, and
frame_length = 4 + (4 * nrof_subbands * nrof_channels ) / 8 + (join * nrof_subbands + nrof_blocks * bitpool ) / 8.
for the STEREO and JOINT_ STEREO channel modes.
Here, nrof_channels and bitpool denote number of channels and bitpool value, respectively. When joint stereo is used, join = 1, otherwise 0.