740 likes | 880 Views
Técnicas de Reconstrução de Voz e a Melhoria da Qualidade em Comunicações VoIP. Filipe Neves (IPLeiria) Salviano Soares (UTAD) Pedro Assunção (IPLeiria). Tópicos. Conceitos básicos Codificação de voz e normas VoIP Medidas de desempenho Algoritmos de reconstrução Resultados experienciais
E N D
Técnicas de Reconstrução de Voz e a Melhoria da Qualidade em Comunicações VoIP Filipe Neves (IPLeiria) Salviano Soares (UTAD) Pedro Assunção (IPLeiria)
Tópicos • Conceitos básicos • Codificação de voz e normas • VoIP • Medidas de desempenho • Algoritmos de reconstrução • Resultados experienciais • Trabalho futuro
Conceitos básicos • Amostragem do sinal em instantes de tempo regulares • Quantificação e codificação • Nota: sinais de voz telefónica: amostragem a 8 kHz, 8 bits/amostra=64 kb/s • Quantificação não uniforme (lei A e Lei ) • Compressão • Opcional
Teorema de Nyquist • Um sinal de banda limitada Bs < Bmax [Hz] amostrado em instantes de tempo regulares a uma frequência de amostragem fs, pode ser reconstruído sem perdas (resultando no original) desde que verifique a condição: fs 2 x Bmax
Teorema de Nyquist – exemplo aplicado a voz telefónica • Ouvido humano: 20-20.000 Hz • Voz humana: 200-9.000 Hz • Voz telefónica: 300-3400 Hz • Gama com suficiente fidelidade para permitir inteligibilidade • Na prática usa-se Bmax 4.000 Hz fs=8.000Hz • Uma amostra a cada 125 s • 160 amostras a cada 20 ms • 80 amostras a cada 10 ms
Amostragem do sinal analógico Sinal original Sinal PAM • fS = 2 x Bmax • Resulta num sinal PAM (Pulse Amplitude Modulation)
Quantização da amostra • Confrontação do sinal PAM com uma escala segmentada • Esta escala mede a amplitude ao sinal PAM e atribui um inteiro de 8 bits para definir essa amplitude • Consiste numa escala formada por 8 grandes divisões • Espaçadas desigualmente • Há maior finura junto à origem • Para menor distorção em sons com menor nível de energia (para que relação sinal/ruído de quantização seja constante) • Cada divisão dividida em 16 degraus • Igualmente espaçados
Codificação • Representação das amostras quantificadas em binário (que tem uma correspondência a decimal-nºs inteiros) • PCM (Pulse Code Modulation) –resultado de 3 operações • Amostragem • Quantificação • Codificação • Regra geral: quantificação de sinais de voz não é uniforme; o sinal quantificado não é uma função linear do sinal original (há “distorção”)
Quantização da amostra Segmento nº Pormenor Polaridade Codificação uniforme Segmento
Codificação de voz e normas • Conceitos genéricos • Técnicas de codificação (e compressão) • Normas ITU-T
Conceitos genéricos • Codificação do sinal digital resulta em compressão dos dados que representam o sinal • Codificação • Com perdas (eliminação de redundância perceptual) • Sem perdas (eliminação de redundância estatística) • De fonte • De canal • Pretende-se • Reduzir largura de banda ocupada para transmitir o sinal • Dar maior robustez ao sinal o sinal • Espaço em disco para o armazenar • Em geral um canal de comunicação pode transportar várias sessões telefónicas
Codificação de voz • PCM (Pulse Code Modulation) • G.711 (ITU) • Amplitude do sinal é amostrado a 8.000 Hz e quantizado a 8 bits • Usa lei-A ou lei- para redução de SNR • DPCM (Diferential PCM) • Codifica a diferença entre a amostra corrente e o valor precalculado (com base na amostra anterior) • Quantização a 2, 3, 4 ou 5 bits • ADPCM (Adaptative DPCM) • Predição adaptativa da amostra seguinte, por inferência da última • Varia o tamanho do degrau de quantificação, para uma dada SNR • Gera palavras de 4 bits redução do nº de bits/s
Codificação de voz • CELP (Code Excited Linear Prediction) • São transmitidos um valor de excitação e um conjunto de settings de filtros predictivos lineares • As transmissões dos settings são menos frequentes que os valores de excitação e são enviados com base nas necessidades • LD-CELP (Low Delay Code Excited Linear Prediction) • G.728 • 16 kbit/s ; 5 amostras de atraso (625 s) • CS-ACELP • G.729 • 8 kbit/s; • AMR • Adaptive Multi-Rate • Usado em GSM • A modulação e a codificação adaptam-se às condições do link de rádio (perdas, interferências, sensibilidade do receptor…)
VoIP (1) • Telefonia tradicional • Comutação de circuitos garante • Um circuito dedicado • Atraso limitado • Rede IP desenhada para dados • Comutação de pacotes “best effort”, e multipercurso não garante • Um circuito dedicado • Atraso máximo tolerável • Atraso constante “jitter” • Entrega por ordem e atempada de todos os pacotes • Entrega de todos os pacotes
VoIP (2) • Sem medidas de QoS (Quality of Service), os pacotes de voz são tratados como os pacotes de dados! • Sem assegurar • Atraso máximo, jitter máximo, dentro de valores aceitáveis… • …não se pode fornecer a qualidade de telefonia a que os utilizadores se habituaram com a comutação de circuitos
Perda de pacotes • Uma rede IP descarta pacotes face a • Congestão da rede • Demasiada variação de atraso • Má qualidade da rede, em geral
Atraso (1) • Tempo entre TX enviar pacote e RX receber • Em excesso, dessincroniza interlocutores • Recomendação ITU G.114 • 0-150 ms: aceitável para a maior parte das aplicações • 150-400 ms: aceitável desde que haja cuidado com o tempo de transmissão • > 400 ms: inaceitável. (aceitável em casos excepcionais)
Atraso (2) • Componente fixa • Atraso de codificação (para um dado codificador) (2,5 a 10 ms) • Tempo necessário para o DSP codificar um bloco de amostras PCM • Tempo de empacotamento (< 30 ms) • Tempo necessário para preencher o campo de dados de um pacote (“Tempo de acumulação”: as amostras acumulam-se num buffer antes de serem libertadas) • Serialização (colocação no meio) (G.711; 32 ms voz; 282 B; 10 Mb/s: 0,2256 ms. 5 ms (64 kbps)) • Recomendado usar em projecto: 20 ms • = f (LB do link, tamanho do pacote) • Atraso de propagação no meio • Depende de muitos factores • 6 s/km (ITU G.114) • Total tipicamente: 40 ms (fixo) + 25 ms (variável) = 65 ms
Atraso (3) • Componente variável • Acesso ao meio (e.g.: CSMA/CD) • Tempo nas filas (“Queuing”, “Dejitter”) (8 ms, típ.) • Espera das framesdedados já em processamento • Espera de outras framesde voz • Depende do estado da fila • Dejitter:acomoda os atrasos variáveis num atraso fixo (45 ms, típ.)
Jitter • Variação de atraso • Para compensar: “buffers” de “jitter” • Dão um valor constante ao atraso • Podem, no entanto, encher instantaneamente diferença de tempos de atraso entre pacotes no mesmo fluxo (“stream”) de voz
Técnicas conjuntas para garantir QoS • “Queuing” e escalonamento • Compressão de cabeçalho • Fragmentação • Reordenamento de pacotes • Algoritmos de Reconstrução
“Queuing” • Organização dos pacotes dando prioridades específicas, consoante a sua natureza (voz, vídeo, dados) • Diffserv • Tráfego classificado por endereços origem e destino, tipo, e atribuído a uma classe de serviço específica • Usa prioridades explícitas no cabeçalho do PDU IP
A redução de cabeçalhos com o Compressed RTP • Transporte de voz: RTP dentro UDP dentro dum pacote IP • Nº de protocolos cabeçalhos tornam-se consideráveis • CRTP pode comprimi-los baseado na premissa de que a maior parte dos cabeçalhos IP/UDP/RTP não se alteram, ou que as suas alterações são predictíveis • Um cabeçalho de 40 Bytes (RTP+UDP+IP) pode passar a 2 Bytes • Especialmente benéfico em • “payloads” de áudio comprimido entre 20 e 50 Bytes • ligações de baixa largura de banda (< 2 Mb/s) • Consome recursos de processamento
RSVP • Resourse Reservation Protocol • Permite à rede fornecer níveis diferenciados de serviço para fluxos de dados específicos • Para os dados da aplicação os hosts pedem um certo QoS à rede • Routers propagam esses requisitos e são feitas reservas • Após reserva, WFQ (Weighted Fair Queuing) fornece espaço na fila em cada dispositivo
Fragmentação • Define o tamanho máximo para um pacote de dados • Previne atraso de serialização excessivo em ambiente de voz • Tempo de colocação dos bits num interface Ex: pacotes de 1500 Bytes e link: 64 kbps atraso de serialização: 187,5 ms • Demasiado tempo para um pacote de voz esperar • Com fragmentação, voz misturados com dados, esperam menos tempo
Reordenamento de Pacotes de voz(1) • Pacotes podem seguir caminhos diferentes • Cada caminho com seu comprimento e velocidade • diferentes tempos de percurso; fora de ordem • Cabe ao RTP a reordenação antes de os passar ao DSP
Reordenamento de Pacotes de voz (2) • Levado a cabo pelo RTP • UDP/IP não ordenam pacotes • Solução RTP • Numeração de sequência • Permite detectar perdas e desordens • Identificação do tipo de payload • “time stamping” • Permite acomodar variações de atraso • Monitorização de entrega
Principais protocolos VoIP (1) • IP • Prevê • Um esquema de endereçamento • Escolha do melhor caminho • UDP • Faz a segmentação do stream de áudio • Introduz pouco overhead • Sem controlos de fluxo, entrega
Principais protocolos VoIP (2) • RTP • É um protocolo “multicast” “ media streaming” • Engloba funções para transportar por rede, dados em tempo real (e.g.: voz) • Identificação do tipo de tráfego (“payload”) • Númeração de sequência • “time stamps” • Monitorização de entrega • Reordena pacotes; não pede retransmissão em caso de perda • Corre sobre o UDP, donde usa serviços de • Multiplexação • “Cheksum” • Usa portos pares [16.384 - 32.767]
Principais protocolos VoIP • RTCP • Fornece informação (“out-of-band”) de controlo para o fluxo do “streaming” RTP • Permite aos correspondentes trocar informação sobre condições da sessão: monitorização, controlo • A cada fluxo RTP corresponde um fluxo RTCP com estatísticas acerca da chamada • Pacotes transmitidos • Pacotes perdidos • Atraso • “Jitter“ entre chegadas • Usado para relatórios QoS • No porto ímpar acima do usado pelo RTP [16.384 - 32.767] Cada chamada; 4 portos: 2x(RX+TX)
Impacto do tamanho de payload na largura de banda (1) • Amostra de voz • saída do DSP a encapsular num PDU • 20 ms, tipicamente • Mais amostras/PDU • conservação de Largura de banda • maior risco, em caso de perca dum PDU • Atraso variável • “Buracos” graves • Bytes/amostra=tamanho_amostra*LB_codec • Ex: G.711: Nº_Bytes =20 ms x 64 kb/s = 160 Bytes
Impacto do tamanho de payload na largura de banda (2) G.711 G.729
Outros “Overheads” • Camada de Ligação de Dados • Ethernet II: 18 Bytes (MAC Add: 12, tipo: 2, CRC: 2) • MLPPP: 6 Bytes (flag:1, endereço: 1, controlo: 2, CRC: 2) • FRF.12*: 6 Bytes: (DLCI: 2, FRF.12: 2, CRC: 2) • “Tunneling” • IPSec: 50 a 57 Bytes • L2TP/GRE: 24 Bytes • MLPPP: 6 Bytes • MPLS: 4 Bytes • X.25 sobre TCP/IP; IPv6 sobre IPv4, … * Método de fragmentar frames FR com vista a QoS quando vários VCs
Cálculo da LB para uma chamada VoIP • Maior LB do codec maior LB total • Maior “overhead” (OSI2) Maior LB ttl • Maior tamanho de amostra Menor LB ttl • Compressão do RTP Menor LB ttl • LB_ttl=[(overhead_OSI2 + overhead_IP_UDP_TCP+Tamanho_Amostra)/Tamanho_amostra]*LB_codec • Ex: G.729 com tamanho_amostra=20 Bytes, FR; sem CRTP • LB_ttl=[(6+40+20)/20]x8.000 = 26,4 kb/s
Standards ITU de codificação de voz Consoante os serviços a prestar
Medidas de desempenho • Objectivas • Subjectivas
Medida da qualidade de voz – Objectiva • “Peak Signal Noise Ratio” (PSNR) MSEMean Square Error f(i) sinal original g(i)sinaldegradado n num de bits/amostra N num de amostras
Medida da qualidade de voz – Subjectiva • Mean Opinion Score (MOS) • Medida estatística • Opiniões de 1 (Pior) a 5 (Melhor) • Perceptual Speech Quality Measurment (PSQM) • Standard ITU P.861 • Maior objectividade que MOS • Escala: 0 (melhor) - 6.5 (pior) • Implementado com equipamento de teste e sistemas de monitorização, que compara o sinal transmitido com o original e produz uma classificação
Medida da qualidade de voz - Subjectiva • Perceptual Analysis Mesurement System (PAMS) • British Telecom, 1998 • Algoritmo predictivo • Prediz métodos subjectivos, como o MOS, quando a fidelidade é afectada por factores como codecs, certas dependências de locutor (e.g. língua, tom,…) • Inclui normalização automática de níveis
Medida da qualidade de voz – Objectiva • Perceptual Evaluation of Speech Quality (PESQ) • Standard ITU P.862 • Original de “KPN Research e BT” • Combina PSQM com PAMS • Ferramenta de medição objectiva • Prediz resultados de testes de medida subjectivos (e.g. MOS)
Algoritmos de reconstrução • Admitimos sempre sinais de banda limitada • É possível agrupá-los em duas classes • Dimensão máxima • Dimensão do problema=Nº amostras total • Ex: Papoulis-Gerchberg • Dimensão mínima • Dimensão do problema=Nº amostras perdidas • Interpolação no domínio do tempo ou frequência
Resultados experienciaisPapoulis-Gerchberg Palavra “OLÁ” • Corrupção duma janelas de 10% das amostras contíguas (pior situação) • Corrupção das amostras pares • Corrupção de amostras múltiplas de 3 • Corrupção de amostras múltiplas de 3 e múltiplas de 2
Corrupção de amostras Contíguas (1) Sinal original, x
Corrupção de amostras Contíguas (2) DFT do sinal original
Corrupção de amostras Contíguas (3) DFT do sinal original, após filtragem
Corrupção de amostras Contíguas (4) Sinal observado x (filtrado com LPF)
Corrupção de amostras Contíguas (5) Sinal Corrompido y=Dx janela corrompida: 10 ms (80 amostras, 3% da palavra)
Corrupção de amostras Contíguas (6) DFT do sinal y corrompido, filtrado
Corrupção de amostras Contíguas (7) z no tempo, de y corrompido e filtrado
Corrupção de amostras Contíguas (8) Amostras emergentes devido a filtragem de y (corrompido)