Detectar silêncio no payload do RTP

1

Estou enfrentando problemas com uma infraestrutura ToIP baseada no Asterisk. Às vezes, meu telefone recebia RTP "vazio" (carga totalmente preenchida com 5d).

Naveguei no RFC (3551, 3389) e não consigo encontrar / entender respostas relevantes.

Eu descobri que duas páginas da web têm o mesmo problema que eu:

link

link

Então:

  • Alguém sabe onde está a resposta oficial?
  • Quem decidiu que o preenchimento 0x55 ou 0xd5 não produzirá som?
  • Além disso, quem poderia me explicar por que 0x55 ou 0xd5 faz 0?

Obrigado!

    
por Greeg 21.04.2016 / 11:33

1 resposta

3

Isto vem do procedimento PCM de codec de áudio G.711.

O G.711 define dois codecs logarítmicos usados para dados de áudio PCM (Pulse Code Modulation): a-law e u-law. Os algoritmos de codec são baseados nas propriedades perceptivas do ouvido humano - sinais fracos são mascarados por sinais strongs.

Após a compressão (de amostra de 14 bits em lei e amostra de 13 bits em lei) a 8 bits, os últimos 7 bits, exceto o bit de sinal invertido. Uninverted bit chamado o bit de sinal . Esta inversão de bits aumenta a densidade de bits em sistemas de transmissão que ajudam a sincronizar e recuperar os circuitos de recuperação no receptor.

O ruído ideal do canal faz com que os bits alternem entre 01111111 (0x7F) e 11111111 (0xFF) em u-law e entre 01010101 (0x55) e 11010101 (0xD5) em a-law. Nós geralmente usamos exatamente uma codificação de lei.

Em amostras de som negativo de especificação de codec são complementados para alinhar faixas dinâmicas de números positivos e negativos. Valores negativos e positivos comprimidos de igual magnitude são distinguidos pelo bit de sinal.

Mais descrição detalhada com exemplos de PCM você pode ler

Você também pode ler a especificação .

    
por 21.04.2016 / 15:32

Tags