Seção: Tutoriais VoIP

 

Desempenho VoIP: Codificação de Voz

 

O padrão G.711 do ITU-T, conhecido como PCM (Pulse Code Modulation), é um padrão de codificação de voz baseado na forma de onda e para a digitalização da voz esse é o padrão mais usado. Temos 8000 amostras /segundo e cada amostra codificada por uma seqüência de 8 bits, i.e., cada amostra pode ter 1 entre 256 valores possíveis.

 

A freqüência de amostragem obedece ao teorema de Nyquist para que o sinal possa ser restaurado com perfeição no processo de decodificação. A taxa de saída deste codificador, desconsiderando qualquer “overhead”, é, portanto, 64 kbit/s.

 

Os codificadores evoluíram a partir do PCM com a finalidade de reduzir cada vez mais a taxa de bits necessária para que se mantenha transmissões de voz com qualidade.

 

Conseguiu-se através do ADPCM (Adaptive Differential PCM), com quantização adaptativa e algoritmos de estimação, reduzir à metade a taxa de bits. Com os vocoders, utilizados principalmente em sistemas celulares, foram obtidos resultados melhores ainda chegando a codificações a taxas em torno de 8kbit/s.

 

Os vocoders trabalham de forma diferente do PCM. Eles trabalham em cima dos mecanismos de produção da voz ao invés de trabalhar sobre a forma de onda resultante. Os mecanismos são: a fonte de excitação, i.e., a passagem do ar proveniente dos pulmões através das cordas vocais e a cavidade oral.

 

Para estes mecanismos são estabelecidos modelos matemáticos representativos acompanhados de seus respectivos parâmetros. O processo de codificação é dividido em análise e síntese. Durante a análise, um segmento de voz é processado estimando-se os parâmetros do modelo. Na síntese deve -se reproduzir a voz através desses parâmetros.

 

Com o número de parâmetros menor do que o número de amostras, fica muito mais fácil transmitir esses parâmetros a uma taxa menor. Dois parâmetros caracterizam o desempenho de um codificador: Um ligado a inteligibilidade e outro correspondente ao atraso no processo codificação-decodificação.

 

No referente a inteligibilidade, aumentando a taxa de compressão a qualidade da voz tende a diminuir. Essa diminuição é compensada com o aumento da complexidade do algoritmo, mas, por outro lado, o atraso do processo codificação-decodificação aumenta. Dois grandes fatores compõem o retardo do processo codificação-decodificação: Retardo do Processamento e Retardo de Quadro.

 

Um quadro é o número de parâmetros ligados a um segmento de voz em análise. Este quadro, por ser armazenado junto com suas amostras antes da análise da voz, gera um retardo. Na grande maioria o algoritmo analisa, também, informações contidas no quadro seguinte, permitindo que o codificador utilize a correlação entre os quadros adjacentes e diminua a taxa de transmissão.

 

O comprimento do quadro seguinte, que o codificador utiliza no processo, é conhecido como atraso “lookahead”. O retardo de processamento é o tempo necessário para que o codificador analise a voz e o respectivo tempo para o decodificador reconstruí-la. O hardware utilizado no vocoder influencia diretamente na duração desse tempo.

 

Essa velocidade é medida em MIPS (milhões de instruções por segundo). O ITU-T padronizou vários padrões de codificação (G.723.1, G.729, G.729A) para comunicação multimídia em geral e aplicações de voz com baixa taxa de transmissão.

 

O padrão ITU-T G.729, ou CS-ACELP (Conjugate-Structure Algebraic-Code-Excited Linear Prediction) é um algoritmo de codificação que gera informação à uma taxa de 8kbit/s com boa qualidade de voz. O tamanho total do quadro (10 ms), o atraso “lookahead” (5 ms) e o tempo de processamento do algoritmo diminuem na mesma proporção em que a tecnologia avança na área de processadores.

 

Esses três parâmetros compõem o retardo total no processo de codificação.

 

O padrão G.723 opera a taxas de 6,3 e 5,3 kbit/s produzindo níveis de compressão digital da voz de, respectivamente, 10:1 e 12:1. No processo de codificação este padrão possui um atraso total de 37,5 ms. Em aplicações sensíveis ao atraso, esse padrão pode não ser o ideal.

 

Se a aplicação não for sensível a esse parâmetro, o G.723 será uma excelente alternativa ao G.729 com menor complexidade e maior compressão, trazendo uma pequena degradação na qualidade da voz. Outra técnica utilizada pelos vocoders para aumentar a eficiência no uso da banda, além da compressão digital de voz, é a detecção ativa da voz e supressão de silêncio.

 

Nos períodos de silêncio apenas a informação do ruído ambiente é enviada no período de atividade, a uma taxa inferior a taxa de codificação. O envio dessa informação cessa a partir do momento em que não ocorrem variações significativas na mesma. Assim o decodificador restaura essa informação a partir de amostras previamente recebidas.

 

A escolha certa entre os codificadores apresentados depende da boa relação entre economia de recursos e inteligibilidade da comunicação. As tabelas a seguir demonstram os valores dos parâmetros de desempenho dos codificadores padronizados, com relação ao retardo e a inteligibilidade.

 

Método de Compressão Taxa (kbit/s) MOS
G.711 64 4,1
G.729 8 3,9
G.729A 8 3,7
G.723.1 5,3 e 6,3 3,7/3,9
Tabela 1: Codificadores e respectivos MOS

 

Partindo dos dados demonstrados na tabela 1, podemos concluir que não há perda tão significativa da qualidade do sinal de voz ao se empregar a compressão nos vocoders, i.e, para aplicações que desejam transmitir voz sobre uma rede de comutação de pacotes, as técnicas de compressão com vocoders são as mais indicadas.

 

Codec
G.723.1
G.729/G.729A
G.711
Taxa de bits (kbit/s)
5,3/6,3
8
64
Tamanho do quadro (ms)
30
10
0,125
Lookahead Delay (ms)
7.5
5
Inexistente
Comprimento do Quadro (bytes)
20/24
10
1
Tabela 2: Codificadores e características principais

 

Na tabela 2, o comprimento do quadro corresponde ao número de bytes em um quadro codificado.