SBC (codec) - SBC (codec)
SBC , ou codec de sub-banda de baixa complexidade, é um codec de sub-banda de áudio especificado pelo Bluetooth Special Interest Group (SIG) para o Advanced Audio Distribution Profile (A2DP). SBC é um codificador e decodificador de áudio digital usado para transferir dados para dispositivos de saída de áudio Bluetooth, como fones de ouvido ou alto-falantes. Também pode ser usado na Internet. Ele foi projetado com limitações de largura de banda Bluetooth e poder de processamento em mente para obter uma qualidade de áudio razoavelmente boa em taxas de bits médias com baixa complexidade computacional. A partir do A2DP versão 1.3, a codificação de sub-banda de baixa complexidade permanece o codec padrão e sua implementação é obrigatória para dispositivos que suportam esse perfil, mas os fornecedores são livres para adicionar seus próprios codecs para atender às suas necessidades.
No CES 2020, o Bluetooth SIG anunciou o LC3 como o sucessor do SBC. LC3 é usado no protocolo LE Audio com base na especificação Bluetooth 5.2 Core.
Projeto
O SBC oferece suporte a fluxos mono e estéreo e certas frequências de amostragem de até 48 kHz. A taxa de bits máxima necessária para ser compatível com os decodificadores é de 320 kbit / s para mono e 512 kbit / s para streams estéreo. Ele usa 4 ou 8 sub-bandas, um algoritmo de alocação de bits adaptável em combinação com um quantizador PCM de bloco adaptativo. Frans de Bont baseou o codec de áudio SBC em seu trabalho anterior e - em partes - no padrão MPEG-1 Audio Layer II . Além disso, o SBC é baseado nos algoritmos descritos no EP-0400755B1. Os proprietários das patentes escreveram que permitem o uso gratuito do SBC em aplicativos Bluetooth com o objetivo de impulsionar o uso dessa tecnologia.
Variantes
Visão geral
convencional | fluxo de retorno | (para referência) | |||||
---|---|---|---|---|---|---|---|
misc. | Lançar | - | Maio de 2003 | Março de 2008 | - | ||
Patentes relacionadas | EP 0400755B1 (expirado) | - | US 9398620B1 (expirado) | - | |||
Implementações gratuitas | BlueZ libsbc | PulseAudio , PipeWire | PipeWire , patches para PulseAudio | - | |||
Implementações proprietárias | - | múltiplas implementações de hardware | implementação de hardware em chips Qualcomm | - | |||
Codificação de Áudio |
Canais | Mono (1) Joint Stereo (2) |
Joint Stereo (2) |
Joint Stereo (2) |
Mono (1) |
Estéreo (2) |
|
Taxa de amostragem | 16 kHz 32 kHz 44,1 kHz 48 kHz |
44,1 kHz 48 kHz |
44,1 kHz 48 kHz |
16 kHz |
44,1 kHz |
||
Taxa de bits | até 510 kbit / s (@ 44,1 kHz) até 507 kbit / s (@ 48 kHz) |
229 kbit / s (@ 44,1 kHz) 237 kbit / s (@ 48 kHz) |
328 kbit / s (@ 44,1 kHz) 345 kbit / s (@ 48 kHz) |
212 kbit / s (@ 48 kHz) | 72 kbit / s (@ 16 kHz) | 1411 kbit / s (@ 44,1 kHz) | |
Subbandas | 4 ou 8 | 8 | ? | ||||
Bitpool | 2 - 86 (@ 44,1 kHz) 2 - 78 (@ 48 kHz) |
35 (@ 44,1 kHz) 33 (@ 48 kHz) |
53 (@ 44,1 kHz) 51 (@ 48 kHz) |
29 | 32 | ? |
Média e alta qualidade
A2DP recomenda codificadores para suportar predefinições de qualidade média e alta qualidade conforme especificado na tabela acima. Como resultado, a maioria dos sistemas operacionais está usando o perfil de alta qualidade como padrão ou mesmo o único perfil de codificação compatível.
Variantes de qualidade superior
No entanto, o A2DP requer decodificadores para suportar fluxos de qualidade superior, de até 512 kbit / s, e existem alguns codificadores experimentais que usam esse recurso: por exemplo, SBC XQ, usado pelo Lineage OS . Com uma taxa de bits mais alta, a qualidade do áudio é comparável ao aptX HD (529 kbit / s).
FastStream
Embora o A2DP oficialmente suporte apenas fluxos de áudio unilaterais, o CSR encontrou uma maneira de enviar um fluxo de retorno de voz oposto ao fluxo estéreo principal, tornando possível usar o A2DP em fones de ouvido com microfones. Ele foi implementado no codec FastStream, que é o codec SBC com parâmetros definidos e o fluxo de retorno de voz adicionado.
Implementações
A especificação de teste A2DP (V1.0) contém uma implementação de referência do codificador e do decodificador para o codec SBC. Uma implementação do Linux está disponível em BlueZ - The Linux Bluetooth stack.