Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULDADE DE TECNOLOGIA
FTL069 PROJETO DE FINAL DE CURSO II
MANAUS
AGOSTO – 2009
UNIVERSIDADE FEDERAL DO AMAZONAS
FACULDADE DE TECNOLOGIA
FTL069 PROJETO DE FINAL DE CURSO II
DEPARTAMENTO:
Departamento de Eletrônica e Telecomunicações
TITULO DE TRABALHO:
Avaliação da Qualidade de Codecs de Código Aberto para Transmissão
VoIP
ALUNO:
Thiago Brito Bezerra
PROFº ORIENTADOR:
MSc. Leandro Silva Galvão de Carvalho
MANAUS
AGOSTO – 2009
UNIVERSIDADE FEDERAL DO AMAZONAS
FACULDADE DE TECNOLOGIA
FTL069 PROJETO DE FINAL DE CURSO II
BANCA EXAMINADORA
(ASSINATURA)
(ASSINATURA)
(ASSINATURA)
vida.
AGRADECIMENTOS
durante o projeto.
Brito, e minha noiva Deborah por todo o amor e carinho que me deram.
chamadas VoIP...........................................................................................33
1INTRODUÇÃO.........................................................................................12
2 TECNOLOGIA VOIP..............................................................................17
3.1.1 Amostragem..............................................................................23
3.1.2 Quantificação............................................................................25
3.2.2 Paramétricos.............................................................................29
3.2.3 Híbridos.....................................................................................31
4.1.1 MOS.........................................................................................35
4.2.1.1 PESQ......................................................................................37
5 METODOLOGIA......................................................................................43
8 CONCLUSÃO..........................................................................................55
9 REFERÊNCIAS BIBLIOGRÁFICAS.........................................................57
1 INTRODUÇÃO
tipos de dados (texto, áudio, vídeo) e também por ter se tornado um meio de
transmissão de dados.
serviço VoIP de melhor qualidade para o usuário final. Por outro, a tarefa de
aferidas.
equações que devolvem como resultado o fator R, cujo valor varia de 0 (ruim)
parâmetros para apenas alguns codecs (G.711, GSM, G.726 e G.729), de forma
codecs que não estão listados nessa recomendação (Speex, AMR e iLBC).
14
de obtenção do parâmetro Ie, mas não para o Bpl. Contudo, uma metodologia
para a derivação deste último pode ser facilmente definida com base na do
fala a 0% de perda de pacotes (Ie) dos codecs iLBC (15,2 kbps) e Speex
Recomendação ITU-T P.834 [11] e utilizá-la para derivar parâmetros (fator Ie)
aberto.
trabalho:
vantagens e desvantagens.
características.
da fala.
16
trabalho proposto.
metodologia aplicada.
2 TECNOLOGIA VOIP
mecanismos pelos quais é possível enviar a voz pela Internet. VoIP possui, de
tecnologias;
Esses elementos de uma rede VoIP podem ser observar com mais clareza
fases, as quais permitem a transmissão da voz até seu destino, tais fases são
rede.
reproduzido no receptor.
voz.
Tendo isso em mente torna-se cada vez mais necessário que a medição
da qualidade da voz em chamadas VoIP possa ser mais dinâmica para que,
P.800 [15] e P.830 [16] são longos, demorados e que demandam muito dinheiro
qualidade possível. Mas os codecs não fazem apenas isso, eles também são
ocupar menos banda da rede IP, já que por essa rede não se passa apenas voz
dentre eles:
banda;
É claro que essa escolha depende do local onde o codec será aplicado e
qual a principal necessidade desse local, se visa uma melhor qualidade da fala
la em um sinal digital.
quantização.
3.1.1 Amostragem
erro, um sinal com banda limitada W. A voz humana é limitada entre 300-3400
aliasing.
uma banda de guarda, devido a característica não ideal dos filtros passa-
segundo.
25
3.1.2 Quantificação
também na amplitude.
se de 14 a 16 bits.
sinal depois de que foi amostrado, note que acontece uma pequena distorção
● Forma de Onda;
● Paramétricos;
● Híbridos.
Como o nome já diz são codecs que transformam a voz em sinais digitais
qualidade da voz mas tem uma alta taxa de transmissão, no caso do PCM
maior do que duas vezes a maior freqüência do sinal que está sendo
Nesta etapa existirá um número finito de níveis que serão utilizados para a
quantização, menor será esse erro. Este erro pode ser reduzido, mas não
eliminado. Para que o erro de quantização seja nulo, são necessários infinitos
usados para a medida mas poderão existir amostras que possuem um valor
um valor superior ao valor real ou inferior ao valor real. Nos dois casos
variável, mais fiel será a versão digital do sinal capturado, porém mais espaço
será necessário para armazenar o sinal digital, pois mais números digitais
serão gerados.
29
uma taxa de transmissão inferior ao PCM padrão, isto por que o ADPCM só
ADPCM é utilizado para digitalizar sinais de voz e dados para que esses sejam
3.2.2 Paramétricos
voz metálica.
da voz metálica.
Temos como representante desse tipo de codec o 1015. Esse codec tem
2,4 kbps, devido a uma taxa tão baixa ele tem uma baixa qualidade de voz, é
3.2.3 Híbridos
de voz [3, 5, 6]. Dessa maneira eles conseguem extrair as melhores vantagens
dos tipos anteriores, aliando boa qualidade da voz com baixas taxas de
transmissão.
categoria, podemos citar alguns codificadores definidos pela ITU-T como por
exemplo:
com uma taxa de 8 a 14,4 kbps. O Vector-sum CELP (VSELP) é uma variação
transmissões na Tabela 1.
33
tipos [3]:
previamente gravados;
4.1.1 MOS
qualidade da fala que adota uma série de regras para a sua realização[16].
utilizadas;
sotaque;
36
repetível. Além do que muito dos ouvintes selecionados não usam o mesmo
propostas.
MOS Qualidade
5 Excelente
4 Boa
3 Aceitável
2 Pobre
1 Má
37
classes [3]:
● Perceptuais;
● Computacionais.
são computadas com um maior peso do que aquelas que são quase
imperceptíveis.
4.2.1.1 PESQ
modelamento cognitivo.
convertida da escala Hertz para a escala Bark, que representa melhor como o
com base nos resultados obtidos utilizando-se esse método que será feita a
parâmetros computados.
4.3.1 Modelo E
que a qualidade de uma conversa seja avaliada como ela seria percebida por
são então processados pelo Modelo E, que fornece como saída a pontuação R,
R=Ro−Is−Id−Ie , eff A
Onde:
exclusiva do atraso fim a fim, cujo valor pode ser medido na rede. Entretanto,
Ie , eff =Ie95−Ie x
[ Ppl
PplBpl ]
onde Ppl é a taxa de perda de pacotes, Ie é o fator de degradação devida
perda de pacotes.
41
0% de perda de pacotes (Ie) será derivado para codecs de código aberto não
Esses trabalhos serviram de base para outros estudos em VoIP, tal como
apenas para os codecs G.711, GSM e G.729, de forma que, à medida que os
tabela.
2002 e ainda não foi publicado na literatura nenhum trabalho nesse sentido.
inserida pelos codecs na qualidade da fala é adotada por L. Sun em [17, 18,
G.107 [8] e G.113 [9], a autora modela tal distorção utilizando curvas
logarítmicas.
Dessa forma, este trabalho vem completar parte da lacuna deixada pela
dos parâmetros Ie e Bpl a partir do método PESQ [12]. Não se optou por
5 METODOLOGIA
codec desejado.
(Ppl=0), o fator Bpl não influencia na qualidade da fala, de forma que, nessas
definitivo de Ie.
codec estudado, têm efeito aditivo com relação ao fator Ie. Esse efeito é
não foi realizado neste trabalho pois não influencia no valor de Ie.
45
Para se criar o ambiente de testes foi feita uma pesquisa sobre cada
ferramenta que seria utilizada, visto que até então todas as medições que
para uma chamada VoIP, que será utilizada por todas as outras
ferramentas;
o formato .wav;
46
H323, gera fluxo de sinalização, mas não gera por si só fluxo de mídia.
fornecerá a mídia a ser empacotada pelo protocolo RTP. É com ele que
não lucrativos no site da ITU-T, é com ela que geraremos o MOS que
descreveremos a seguir.
47
memória e com uma placa de rede de 10/100 Mbps, esse computador foi
utilizado com receptor das chamadas geradas pelo Callgen. Nele foram
Intel Celeron 1.8 GHz com 512 MB de memória e com uma placa de rede de
10/100 Mbps, esse computador como o emissor das chamadas com o Callgen,
Rezound e PESQ.
UFAM, esses dois computadores foram colocados em uma rede ponto a ponto,
degradado com apenas as perdas atribuídas ao codec, visto que a amostra foi
Visto que as amostras são geradas em uma rede onde se tem total acesso ao
emissor e ao receptor.
degradado pelo codec foi feito para cada uma das amostras fornecidas no
392 amostras de voz na língua inglesa, sendo que são amostras divididas em
baseadas nos codecs cujos valores de Ie e Bpl são conhecidos. Destas, pode-se
segunda condição de teste o codec iLBC 13,33 kbps, cujo valor de Ie foi
transmissão de 15,2 kbps e o Speex que tem várias derivações quanto a taxa
de transmissão, neste trabalho irão ser avaliados três tipos de Speex com as
Com o resultado gerado pelo PESQ para cada uma das amostras, entra-
expressa a seguir:
−6
MOS=10.035 x RR x R−60 x100−R x 7 x 10
a seguir:
K =R G.711−RCodec sobavaliação
controlado com 0% de perda de pacotes e isso faz com que se gere esse valor
de K bruto. Com o valor de K para o codec sobre avaliação e com o valor dos
Ie's dos codecs que já tem seus parâmetros de qualidade definidos pela ITU-T
o passo final é fazer uma regressão linear para se obter os fatores de erro do
pode-se obter o valor do Ie para o codec que está sendo submetido à avaliação
K = A x IeB
número de repetições igual a quatro, para cada um dos codecs cujo fator Ie já
inserido pelo ambiente de modo que os valores das medições não fossem
afetadas.
o cálculo da regressão linear para obter o nível de erro inserido pelo ambiente
Esse gráfico apresenta a relação entre o valores K e Ie, onde K pode ser
Ie=K −B/ A
B que é o coeficiente linear foi de 0,52924. Com essa relação, foi possível
53
selecionados.
selecionados, cada uma dessas amostras foi analisada pelo método PESQ que
obtém a nota MOS e com essa nota foi derivado o parâmetro de qualidade Ie.
Speex. Como o Speex possui mais de uma taxa de transmissão, foi derivado o
uma amostra digital carrega melhor será a sua qualidade quando esta for
codec menor é seu valor de Ie. Isso se deve ao fato de que uma quantidade
uma forma mais precisa, o que se traduz em uma pontuação MOS melhor e,
8 CONCLUSÃO
de código aberto: iLBC (15,3 kbps) e Speex. Tal parâmetro é essencial para o
define em linhas gerais o método para derivação do parâmetro Ie. Após alguns
ter como modificá-lo baseando nos resultados apresentados pelo ambiente que
VoIP (Bpl).
9 REFERÊNCIAS BIBLIOGRÁFICAS
[5] RAAKE, A. Speech Quality of VoIP – Assessment and Prediction, Ed. John
Wiley & Sons, 2006.
[7] BELLENY, J. Digital Telephony, 3rd Edition, Ed. John Willey & Sons, 2000.
[17] L Sun and E Ifeachor. "Voice Quality Prediction Models and their
Applications in VoIP Networks". IEEE Transactions on Multimedia, Vol.
8, No. 4, pp. 809- 820. Agosto 2006.
[18] L Sun and E Ifeachor. "New Models for Perceived Voice Quality Prediction
and their Applications in Playout Buffer Optimization for VoIP Networks".
Proceedings of IEEE International Conference on Communications (IEEE
ICC 2004), Paris, France, pp.1478 – 1483. Junho 2004.
[21] LIMA AFM, CARVALHO LSG, SOUZA JN, MOTA ES. VoIP Management
quality: Speech quality monitoring architecture based on statistical analysis.
International Journal of Network Management. Wiley-InterScience, Mar 2007.
experimento.sh
#!/bin/bash
for ((n=1; n <= 196; n++))
do
exp1=`sed -n "$n"p $1`
exp2=`sed -n "$n"p $2`
./pesq +8000 $exp1 $exp2
done
calcula_pesq.sh
#!/bin/bash
#Calculo PESQ/MOS G.711
ls /home/thiago/Pesquisa/VoIP/Amostras_Experimento/Sem_perda/Amostras3/G.711/* >
$2
./experimento.sh $1 $2
mkdir G.711
mv _pesq_itu_results.txt _pesq_results.txt G.711
retira_valor.pl
#!/usr/bin/perl
open(ARQ, "$ARGV[0]");
open(ARQ2, "$ARGV[1]");
while(<ARQ>)
{
@linha=split(" ",$_);
$tam = length(@linha[0]);
63
$tam = length(@linha[1]);
@final[1] = substr(@linha[1], $tam-19);
$tam = length(@linha[2]);
@final[2] = substr(@linha[2], $tam-5);
@final[2] =~ tr/./,/;
print "@final[0]\t @final[1] \t @final[2] \n";
close(ARQ);
close(ARQ2);
chamadas_semperda.sh
#!/bin/bash
./caller1.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G.711/
./caller2.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G.726_16/
./caller3.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G.726_24/
./caller4.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G.726_32/
./caller5.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/iLBC-13k3/
./caller6.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/iLBC-15k2/
./caller7.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/SpeexNarrow-11k/
./caller8.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/SpeexNarrow-15k/
./caller9.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/SpeexNarrow-18.2k/
./caller10.sh amostras.txt
64
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/SpeexNarrow-24.6k/
./caller11.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/GSM6.10/
./caller11.sh gsm2x.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/GSM6.10_2x/
./caller12.sh amostras.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G729/
./caller12.sh g7292x.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G729_2x/
./caller12.sh g7293x.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G729_3x/
./caller13.sh g729A.txt
mv /home/thiago/Amostras/parcial/* /home/thiago/Amostras/G729A/
caller1.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
65
caller2.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller3.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller4.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller5.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller6.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
67
caller7.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller8.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller9.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller10.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller11.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller12.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done
caller13.sh
#!/bin/bash
m=1
m=$((m+1))
echo $m
done