• Non ci sono risultati.

Progetto e realizzazione di un sistema di dejitter adattivo integrante algoritmi di Packet Loss Concealment per servizi di Telefonia su IP

N/A
N/A
Protected

Academic year: 2021

Condividi "Progetto e realizzazione di un sistema di dejitter adattivo integrante algoritmi di Packet Loss Concealment per servizi di Telefonia su IP"

Copied!
100
0
0

Testo completo

(1)

Indice generale

Introduzione...3

1 Telefonia su reti IP...5

1.1 Telefonia classica vs telefonia su reti IP...5

1.2 La qualità del servizio...9

1.2.1 La quality of service percettiva...9

1.2.1.1 Tecniche di misura soggettive...10

1.2.1.2 Tecniche di misura oggettive...12

1.2.2 Parametri che influenzano la quality of service percettiva...13

1.2.2.1 Perdita di pacchetti...13

1.2.2.2 Codifica della voce...14

1.2.2.3 Soppressione dei silenzi...15

1.2.2.4 Ritardi di collegamento...16

1.2.2.4.1 Effetti del ritardo sulla conversazione...16

1.2.2.4.2 Eco...17

1.2.2.4.3 Interarrival jitter...18

1.2.2.4.4 Calcolo del delay budget...18

1.3 I protocolli di trasporto RTP e RTCP...20

1.3.1 Protocollo RTP...20

1.3.1.1 RTP header...21

1.3.2 Protocollo RTCP...23

1.3.2.1 Formato dei pacchetti RTCP...23

1.3.2.2 Intervallo di trasmissione dei pacchetti RTCP...24

1.3.2.3 Rapporti del trasmettitore e del ricevitore...25

2 Predizione lineare dello speech signal...28

2.1 Human speech properties...28

2.2 Linear prediction for speech coding scheme...31

2.2.1 La tecnica di linear prediction...31

2.2.2 Stima dei linear prediction coefficient tramite autocorrelation method...34

2.2.3 Algoritmo di Levinson-Durbin...36

3 Tecniche di Packet Loss Concealment...39

3.1 Scopo degli algoritmi di PLC...39

3.2 Tecniche di packet loss concealment...39

3.2.1 Sender-based...40

3.2.2 Receiver-based...41

3.2.2.1 Insertion-techniques...41

3.2.2.2 Interpolation techniques...42

3.2.2.3 Regeneration techniques...43

3.3 Legame tra codec e algoritmi di packet-loss concealment...43

4 Buffer di dejitter statico e buffer di dejitter adattivo...46

4.1 Buffer di dejitter...46

4.2 Buffer di dejitter statico...47

4.3 Buffer di dejitter dinamico...50

4.3.1 Holding time variabile...51

4.3.2 Stima dell'interarrival jitter...55

4.3.3 Stima del round trip time...56

5 Algoritmi di Packet Loss Concealment...58

5.1 Silence-substitution...58

(2)

5.3 Packet-repetition...59

5.3.1 State-variables...59

5.3.2 First lost packet...60

5.3.3 Consecutive packet losses...60

5.3.4 First good packet after an erasure...60

5.4 ITU-T Recommendation G.711 (Appendix I)...61

5.4.1 State variables...61

5.4.2 Good frames...62

5.4.3 First lost packet...63

5.4.3.1 Pitch detector...64

5.4.3.2 First overlap and add unit (first lost packet)...65

5.4.3.3 Synthetic signal generator (first lost packet)...65

5.4.4 Consecutive packet losses...66

5.4.4.1 First overlap-and-add unit (consecutive packet losses)...67

5.4.4.2 Synthetic signal generator (consecutive packet losses)...69

5.4.4.3 Second overlap-and-add unit...72

5.4.4.4 Attenuation...72

5.4.5 First good packet after an erasure...73

5.4.5.1 Overlap-and-add unit (first good packet after an erasure)...73

5.4.6 Delay e complessità dell'algortimo...73

5.5 ANSI Recommendation T1-521a-2000 (Annex B)...74

5.5.1 State variables...75

5.5.2 First lost packet...77

5.5.2.1 LP analysis...77

5.5.2.2 LP filter...79

5.5.2.3 Pitch detector...79

5.5.2.4 Excitation generator (first loss packet)...80

5.5.2.5 Inverse LP filter...81

5.5.2.6 Overlap-and-add unit...82

5.5.2.7 Scaling (lost packet)...82

5.5.3 Consecutive packet losses...83

5.5.3.1 Excitation generator (consecutive packet losses)...83

5.5.4 Good packet...84

5.5.4.1 Overlap-and-add unit (first good packet only)...85

5.5.4.2 Scaling (good packets)...85

5.5.5 Delay e complessità dell'algoritmo...85

6 Test e confronti prestazionali...87

6.1 Test prestazionali...87

6.1.1 Prima fase di test...89

6.1.2 Seconda fase di test...91

Conclusione...97

Bibliografia...99

(3)

Introduzione

Introduzione

L’idea di utilizzare reti dati per la trasmissione della voce fu proposta già intorno agli anni ’70, tuttavia, questa idea è diventata una realtà commerciale soltanto negli ultimi anni. Il termine VoIP (Voice over Internet Protocol) fa riferimento alla trasmissione delle chiamate voce su reti a pacchetto. Al contrario della tradizionale rete PSTN (Public Switched Telephone Network), il VoIP utilizza una rete comune per il trasporto della voce e della segnalazione, permettendo così una flessibilità ed una estendibilità prima impensabili. Oltre a fornire sevizi analoghi a quelli della rete PSTN, il VoIP deve garantire anche gli stessi livelli di sicurezza, affidabilità e disponibilità.

I vantaggi provenienti dall’uso di una rete dati anche per la voce sono però mitigati dalla nascita di nuove problematiche, in settori importanti quali la qualità del servizio offerto (QoS) e la sicurezza della comunicazione. Le chiamate effettuate su VoIP sono soggette a fenomeni tipici delle reti a pacchetto, quali jitter o perdita dei pacchetti; inoltre, sia il piano di segnalazione che il piano dati sono nuove possibili vittime di attacchi già noti in ambito Internet.

Questo lavoro di tesi, realizzato in collaborazione con l'azienda Netresults sfruttando un framework software di sua proprietà, si concentra sulle problematiche riguardanti la QoS e si propone di sviluppare un sistema di dejitter adattivo integrante algoritmi di Packet Loss Concealment (PLC) con l'obiettivo di ridurre la degradazione in termini di speech quality dovuta all'introduzione di jitter e di perdite da parte della rete.

In primo luogo sono state modificate e aggiunte una serie di funzioni al framework software così da inserire un sistema di gestione, funzionante in modo statico o adattivo, che realizza un re-ordering e un dejittering dei pacchetti voce ricevuti e che integra al suo interno una serie di algoritmi di Packet Loss Concealment. Successivamente è stato effettuato un confronto prestazionale per varie condizioni della rete (riguardanti jitter, loss rate e ritardo end-to-end introdotti) tra la soluzione statica e dinamica e tra i diversi algoritmi di Packet Loss Concealment implementati così da mostrare le diverse perforance ottenibili nei vari casi in termini di speech quality e conversational quality.

Nel capitolo 1 viene effettuato un confronto tra la telefonia classica e quella su reti IP mettendo in risalto le problematiche riguardanti la qualità del servizio offerto e soffermandosi sugli aspetti che permetteranno una maggiore comprensione dei successivi capitoli. Sono inoltre brevemente presentati i protocolli RTP e RTCP.

(4)

Introduzione

prodotto. È inoltre mostrato un metodo con cui lo speech signal può essere modellato e sono presentate le tecniche con le quali è possibile calcolare i parametri che caratterizzano questo modello.

Nel capitolo 3 è effettuata un'analisi delle tecniche di Packet Loss Concealment sender e receiver based spiegandone vantaggi e svantaggi in termini di performance ottenibili e di complessità computazionale. Successivamente è spiegato perché la scelta di un particolare algoritmo di PLC è spesso legata al tipo di codec che viene utilizzato in trasmissione.

Nel capitolo 4 è esposto il modo con cui i sistemi di dejitter statico e adattivo sono stati costruiti e le scelte implementative che sono state effettuate per risolvere i problemi che possono presentarsi causa le condizioni della rete sperimentate durante la comunicazione.

Nel capitolo 5 sono descritti gli algoritmi di Packet Loss Concealment che sono stati implementati. Tre i questi sfruttano Insertion tecniques mentre i due rimanenti utilizzano Interpolation tecniques.

Nel capitolo 6 sono effettuati i confronti prestazionali tra la soluzione statica e quella adattiva e tra i vari algoritmi di Packet Loss Concealment al variare delle condizioni della rete.

(5)

1 Telefonia su reti IP

1 Telefonia su reti IP

Il VoIP si può definire come un’infrastruttura alternativa per le comunicazioni telefoniche. È importante però sottolineare che affinché questa alternativa sia accettata dagli utenti essi devono poter continuare a sperimentare una qualità percettiva paragonabile a quella dei servizi telefonici tradizionali. In questo capitolo viene perciò effettuato un confronto tra la telefonia classica e quella su reti IP mettendo in risalto le problematiche riguardanti la qualità del servizio offerto e soffermandosi sugli aspetti che permetteranno una maggiore comprensione dei successivi capitoli. Successivamente sono presentati in breve i protocolli RTP (Real Time Transport Protocol) e RTCP (Real Time Control

Protocol). Questi, tra i protocolli di trasporto indicati per i servizi VoIP, rivestono una particolare

importanza e alcune delle informazioni che trasportano sono state sfruttate per conseguire gli obiettivi di questa tesi.

1.1 Telefonia classica vs telefonia su reti IP

La telefonia classica è basata sulle reti PSTN (Public Switched Telephone Network), le reti telefoniche pubbliche commutate che si sono evolute per più di un secolo, consentendo la comunicazione vocale tra utenti, fino alla configurazione attuale.

La configurazione attuale delle PSTN è quella di reti a commutazione di circuito che trasmettono segnali digitali (codificati secondo la modulazione PCM, nella variante A law in Europa e law in America) su linea locale (dalla centrale telefonica terminale all’apparecchio telefonico) e su portanti (linee di collegamento tra le gerarchie di centrali telefoniche e tra reti in cui la rete PSTN è suddivisa) di vario genere (doppino, cavo coassiale, microonde o fibre ottiche).

La struttura delle reti è quella di una gerarchia multilivello di centrali telefoniche ad alta ridondanza (tali cioè da poter supplire, in caso di guasti, al malfunzionamento di un componente della rete), in cui le chiamate vengono instradate lungo cammini predeterminati da switch (o commutatori) che mettono in connessione elettrica diretta i due apparecchi terminali. La commutazione di circuito, utilizzata nelle PSTN, consiste nella sostanziale creazione e mantenimento, dall’istante in cui il telefono del chiamato inizia a squillare fino all’istante in cui uno dei due partecipanti riaggancia l’apparecchio, di un canale telefonico a 64 kbps dedicato alla conversazione in atto tra i due utenti.

(6)

1 Telefonia su reti IP

qualsiasi dato possa essere trasmesso: questo porta a Call Setup Delay legati alla necessità di ottenere tutte le informazioni e realizzare il cammino per connettere i due apparecchi . Come conseguenza del cammino fisico definito tra i due apparecchi, una volta che l’instaurazione della chiamata è terminata, l’unico ritardo per la trasmissione di dati (voce o altro) tra i due utenti è dovuto al ritardo di propagazione del segnale elettromagnetico lungo la linea (circa μs 1.25per chilometro ); inoltre risulta assente ogni problema di congestione, data la linea dedicata.

In questo contesto è stata introdotta la VoIP (Voice Over IP) con cui si indica appunto un sistema che permette la trasmissione della voce in tempo reale su una rete IP. In questo modo diventa possibile attivare una connessione da personal computer (PC) o telefono per reti IP (TIP) a PC o TIP, da PC o TIP a telefono tradizionale o cellulare e viceversa.

Il VoIP si può definire come un’infrastruttura alternativa per le comunicazioni telefoniche. Di fatto, in sostituzione delle comuni linee telefoniche pubbliche o private (quelle che consentono l’interconnessione di centralini), si utilizzano le reti dati che sfruttano la pila protocollare tipica di Internet e delle Intranet aziendali per il trasporto delle informazioni. Assieme all’IP viene quindi utilizzato il protocollo di trasporto UDP (User Datagram Protocol), semplice ma meno affidabile, per il trasporto del traffico vocale, mentre il TCP (Transmission Control Protocol) più complesso e affidabile, è utilizzato per garantire l’affidabilità del messaggio di instaurazione di una chiamata [20].

In pratica, la voce che arriva alla cornetta del telefono o al microfono del PC viene compressa ed “impacchettata” per essere trasmessa in formato digitale sulla rete dati per poi, una volta giunta a destinazione, essere “spacchettata”, decompressa e riportata alla cornetta del telefono o all’uscita audio del PC [5].

Il protocollo SIP (Session Initiation Protocol), standardizzato per la prima volta nel 1999 da parte dell'IETF (Internet Engeneering Task Force) nella RFC 2543 [1] e successivamente completato (ed in parte ridefinito) nella RFC 3261 [2] del 2002, è un protocollo di controllo, posto a livello applicazione, che si occupa della creazione, modifica e terminazione di sessioni a cui partecipano uno o più utenti.

In tale contesto con il termine sessione si intende lo scambio di audio, video e/o dati tra diversi partecipanti; esempi comuni di sessioni SIP sono la telefonia su Internet, la distribuzione di contenuti multimediali e le videoconferenze [2].

Basato sul paradigma Client/Server, SIP si pone come soluzione alternativa rispetto al protocollo H.323 sviluppato nella sua prima versione già nel 1996 da ITU-T (International Telecommunication

(7)

1 Telefonia su reti IP

In particolare operano insieme a SIP, in modo da consentire la realizzazione di applicazioni all'interno di una sessione, RTP (Real Time Protocol) [3] e SDP (Session Description Protocol) [4]. Il primo si occupa del trasporto dei dati in tempo reale durante una sessione e nel VoIP utilizza perciò come protocollo di trasporto UDP. L'altro è nato inizialmente come insieme di regole per permettere la descrizione di un flusso multimediale multicast e successivamente riadattato alle specificità delle sessioni SIP per essere sfruttato nella negoziazione dei media da trasportare, dei codec da utilizzare e del protocollo di trasporto adottato, prima che avvenga l'instaurazione della sessione stessa.

Il protocollo RTP, insieme a l'RTCP (Real Time Control Protocol) che può essere considerato la componente del protocollo RTP che si occupa del controllo e del monitoraggio del flusso dei dati trasportati nei pacchetti RTP, sarà più dettagliatamente presentato nel paragrafo 1.3.1.

L’interesse per l’utilizzo di questa nuova tecnologia, che fa migrare i servizi telefonici verso le reti IP, è legato sia alla prospettiva della riduzione dei costi dei servizi telefonici, sia alla possibilità di sviluppare nuovi servizi derivanti dall’integrazione del trasporto di informazioni audio, video e dati su una singola rete.

Per quanto riguarda la riduzione dei costi, uno degli aspetti importanti è rappresentato dal contenimento dei costi di infrastruttura e cablaggio. Infatti, l’utilizzo di soluzioni VoIP permette di impiegare un singolo cavo per collegare sia PC che telefoni. Fino ad oggi infatti le aziende o gli enti governativi sono state costrette ad eseguire un doppio cablaggio: uno per poter offrire i servizi di fonia e l’altro per consentire la comunicazione “dati”. L’utilizzo di soluzioni di reti Wireless LAN, permette inoltre di poter erogare servizi dati e di fonia, senza dover eseguire un cablaggio completo degli edifici aziendali/governativi. Tale risultato può poi essere ottenuto a fronte di una spesa che spesso risulta essere inferiore a quella richiesta per la posa in opera dei cavi di rete [20].

Un altro vantaggio non trascurabile della tecnologia VoIP è rappresentato dalla portabilità del numero telefonico che, di fatto, non è più legato fisicamente a una specifica linea fisica ma può essere associato al terminale con una semplice autenticazione software alla portata dell’utente finale. Questo aspetto è in netto contrasto con quanto avviene negli attuali centralini a commutazione di circuito, dove per mantenere lo stesso numero telefonico nel cambio di postazione di lavoro o di ufficio è necessario agire fisicamente sulle linee del centralino con un costo non trascurabile [20].

Altro aspetto da considerare è la riduzione (quasi il dimezzamento) dei costi di manutenzione e aggiornamento delle reti legata al fatto che si avrà una singola infrastruttura di rete da gestire, anziché due.

(8)

1 Telefonia su reti IP

del VoIP sono legati alla convergenza e all’integrazione delle comunicazioni vocali nel sistema informativo aziendale. I servizi telefonici offerti tramite la tecnologia VoIP possono integrarsi con il sistema informativo aziendale con modalità nuove: l’integrazione con il PC e Internet favorisce l’attivazione di ulteriori finestre informative con l’interlocutore, comprensive di audio e videoconferenza, e di condivisione real time di documenti. La messaggistica diviene così realmente unificata. Le chiamate, la casella vocale, l’invio di SMS o MMS, l’inoltro di telefonate o le chiamate in conferenza o a più utenti, la deviazione di chiamata su altri apparecchi (non più soltanto su altri telefoni, ma su qualsiasi dispositivo collegato, sia esso un altro telefono, il cellulare, il PC o il laptop): con la tecnologia VoIP tutto diventa gestibile tramite Web e un’unica interfaccia per tutti i messaggi [20].

L’integrazione di diversi media (voce, video, dati) in un singolo servizio, che porta dal VoIP ai sistemi MoIP (Multimedia over IP) apre la strada per lo sviluppo di una notevole quantità di nuovi servizi che possono risultare utilissimi all’azienda e permette un’ampia apertura verso la creazione di nuove applicazioni rispondenti alle reali necessità dell’utente [20].

L’altra faccia della medaglia dei servizi VoIP è rappresentata dal fatto che questi sono supportati da una tecnologia di rete nata per offrire un servizio di trasporto di tipo Best Effort, ovvero con pacchetti che possono arrivare a destinazione con un ritardo non controllabile e spesso elevato. Se questo limite è accettabile per servizi non real-time, come quelli di posta elettronica, non altrettanto si può dire per le applicazioni ad alta interattività come la fonia, nei quali il ritardo nella consegna dei pacchetti di informazione deve mantenersi ben al di sotto di un secondo. Ritardi superiori fanno percepire agli utenti una qualità del servizio così bassa da portarli a rifiutare l’uso di questa nuova tecnologia. Per superare questo genere di problemi, bisogna considerare le nuove architetture e i nuovi meccanismi per la qualità del servizio in reti IP. Inoltre, è necessario procedere con un attento dimensionamento di ogni elemento architetturale coinvolto [20].

La parte riguardante la qualità del servizio percepibile dagli utenti e le tecniche di misura con cui questa viene determinata, essendo argomento importante per questa tesi, sarà approfondita nei paragrafi successivi.

Un altro problema legato al VoIP è quello relativo alla sicurezza, esigenza che naturalmente accomuna tutti i servizi offerti su reti IP. I pacchetti in viaggio su reti IP possono essere intercettati da individui malintenzionati: non fa molta differenza sotto questo aspetto che i pacchetti contengano informazioni testuali, codici di programmi in esecuzione o comunicazioni vocali.

(9)

1 Telefonia su reti IP

1.2 La qualità del servizio

L’integrazione di servizi voce su reti IP, come spiegato nel paragrafo precedente, può offrire sensibili vantaggi in termini di riduzione dei costi e di opportunità di sviluppo di nuovi servizi. É importante però sottolineare che affinché questa integrazione sia accettata dagli utenti, essi devono poter continuare a sperimentare una qualità percettiva paragonabile a quella dei servizi telefonici tradizionali con reti a commutazione di circuito.

Questo obiettivo può essere molto difficile da raggiungere considerando che i pacchetti che trasportano le informazioni voce possono essere soggetti a ritardi variabili e perdite a causa della natura Best Effort delle reti IP. Pertanto, è necessario un attento controllo dei parametri che caratterizzano la qualità del servizio di trasporto offerto dalla rete. Oltre alla rete di trasporto, altri fattori importanti come dispositivi di codifica e compressione della voce, sistemi di Voice Activity Detection (VAD), buffer di dejitter e cancellatori di eco devono essere attentamente selezionati e dimensionati per ridurre al minimo il degrado alla qualità percettiva della voce.

Un altro aspetto da considerare è legato al fatto che le reti IP possono avere dei tempi di “fuori servizio” superiori a quelli delle reti PSTN tradizionali e inaccettabili per applicazioni telefoniche. Gli apparati necessari al servizio devono essere quindi opportunamente ridondati.

Il controllo dei tempi di “fuori servizio” avviene, nella fase di progetto, mediante un’attenta progettazione dell’architettura, con la sistemazione di opportuni apparati di back up per le funzioni più importanti e critiche e, nella fase esecutiva, con la scelta di apparati ad alta affidabilità.

Riassumendo, quindi, nell’ambito di sistemi VoIP è possibile identificare due aspetti rilevanti da tenere in considerazione nella valutazione della qualità del servizio: il primo relativo alla qualità del segnale fonico che arriva all’utente finale: questa è indicata come speech quality. Il secondo, invece, si concentra sulla disponibilità del servizio e quindi sull’affidabilità di rete e non sarà trattato in questa sede perché esente dagli obiettivi di questa tesi.

1.2.1 La quality of service percettiva

La Quality of Service (QoS) percettiva è riferita alla qualità del servizio così come viene percepita dall’utente. Nei servizi telefonici la QoS percettiva è principalmente legata alla speech quality: essa si riferisce alla chiarezza con la quale il segnale vocale acquisito tramite l’altoparlante del trasmettitore, viene ricevuto dall’ascoltatore. È il risultato della fedeltà della riproduzione del segnale vocale dopo la sua trasmissione in una rete VoIP. La speech quality è un fenomeno unidirezionale; cioè è

(10)

1 Telefonia su reti IP

sperimentata in un senso solo: dall’altoparlante all’ascoltatore. Viene indicata anche come listening

quality (LQ) [20].

Altre funzioni di qualità percettiva del servizio voce includono il ritardo con il quale il segnale arriva al ricevitore e l’eco dell’altoparlante. Questi sono fenomeni che coinvolgono entrambe le direzioni. Insieme alla speech quality, tutti questi aspetti interessano la conversational quality (CQ) [20].

Nel sistema telefonico tradizionale le prestazioni sono misurate in termini di rapporto segnale-rumore (SNR); nel caso di sistemi VoIP essendoci molti fattori che ne influenzano il livello di qualità (disturbi introdotti da codifica e decodifica, ritardo, tasso di perdita, eco) non ci si può più basare solo su misurazione del SRN [5].

Allo scopo di poter monitorare la qualità dei servizi voce, ITU-T, ETSI e laboratori di ricerca hanno studiato perciò tecniche più accurate per la misura della speech quality che forniscono una stima della percezione che l'utente avrà del collegamento; queste si possono classificare in tecniche soggettive e oggettive, che a loro volta possono essere attive (intrusive) o passive (non intrusive).

1.2.1.1 Tecniche di misura soggettive

A questa classe appartiene la soluzione più ovvia per misurare la speech quality, che è quella di far valutare direttamente all’essere umano la qualità che percepisce.

Questo metodo “soggettivo” è definito in due raccomandazioni ITU-T, P.800 [16] e P.830 [18]. In questo caso, la qualità del servizio percepita dall’utente si quantifica mediante il Mean Opinion

Scores (MOS), che è rappresentato da una scala di 5 valori, da 1 (qualità pessima, Bad) a 5 (qualità

eccellente, Excellent).

Questa tecnica si basa sulla trasmissione di un segnale con caratteristiche perfettamente note attraverso un sistema di cui si vuole valutare le prestazioni in termini di QoS percettiva. Si confronta quindi l'uscita corrispondente con il segnale originale per analizzare il comportamento del sistema stesso. Essendo una tecnica che per prevede necessariamente l'utilizzo di risorse di rete è da considerarsi intrusiva e deve perciò essere classificata come tecnica di misura attiva [5].

Le misure soggettive includono sia test sulla listening quality che sulla conversational quality e offrono diversi metodi di misura:

assoluto (Absolute Category Rating, ACR) : in questo caso ogni utente dopo aver testato il

(11)

1 Telefonia su reti IP

sono cioè valutate direttamente senza che sia messo a disposizione degli utenti alcun sistema di riferimento. Il valore del MOS del sistema testato è ottenuto mediando aritmeticamente i valori che sono stati assegnati dai vari soggetti che hanno partecipato al test.

di degrado (Degradation Category Rating, DCR) : in questo caso la valutazione da parte

dei vari utenti viene eseguita in relazione ad un sistema di riferimento. Viene valutato il grado di degradazione del segnale in uscita dal sistema rispetto al riferimento fornito secondo una scala di valori che parte da 1 (degradazione molto fastidiosa) e arriva fino a 5 (degradazione impercettibile). Il valore medio dei giudizi espressi dai vari partecipanti fornisce il DMOS (Degradation Mean Opinion Score).

comparativo (Comparison Category Rating, CCR) : identico al precedente ma in questo

caso i due segnali, segnale di riferimento e segnale in uscita dal sistema, vengono fatti ascoltare agli utenti in ordine casuale. Gli utenti non sono in questo modo condizionati dal sapere quale dei due segnali dovrebbe essere considerato migliore in termini di speech quality. Il valore medio dei giudizi espressi dai vari partecipanti fornisce il CMOS (Comparison Mean

Opinion Score).

I test possono essere di solo ascolto o di conversazione. In entrambi i casi il test avviene in condizioni ambientali controllate ma nel primo caso il soggetto si limita ad ascoltare una registrazione mentre nel secondo i soggetti partecipano attivamente a una conversazione telefonica. In un test di ascolto l'utente generalmente è più attento e nota anche piccole variazioni della qualità della voce che invece in un test di conversazione sarebbero passate inosservate. D'altra parte però in una prova di comunicazione bidirezionale si presentano anche fattori di degradazione come l'eco o il ritardo end-to-end, che hanno una grande rilevanza nella valutazione della qualità, ma che sono totalmente assenti in una prova di solo ascolto [20].

Tra le condizioni su come i test devono essere effettuati compaiono [18]:

• Il numero di ascoltatori deve essere statisticamente affidabile e senza problemi auditivi. • Gli ascoltatori devono essere istruiti sul metodo.

• Il campione deve essere diversificato per genere, pronuncia, età. • I test devono essere realizzati in diverse lingue.

• I test devono essere tenuti variando le condizioni di rumore, il livello di segnale, le

condizioni di disturbo. Il test va reiterato.

(12)

1 Telefonia su reti IP

Tutto questo porta i test soggettivi ad essere molto costosi e ad essere perciò limitati nella loro applicazione.

1.2.1.2 Tecniche di misura oggettive

Le difficoltà e i costi di realizzazione dei test di tipo soggettivo hanno portato allo sviluppo di metodi oggettivi di valutazione. In questo caso si usano i parametri fisici della rete e degli apparati per fornire una stima della qualità percepita dagli utenti, con il notevole vantaggio di poter automatizzare l'intera procedura [5].

Queste tecniche si dividono, come detto in precedenza, in attive e passive. Le prime danno una valutazione del livello di qualità dal punto di vista dell'utente e sono molto accurate. D'altra parte comportano però costi elevati poiché servono attrezzature adeguate ed è necessario generare il traffico da analizzare. Le seconde sono invece più semplici da implementare perché sviluppabili interamente attraverso software. Inoltre essendo non intrusive, e perciò non sprecando risorse di rete, sono più economiche [5].

I metodi di misura oggettivi di tipo attivo cercano di fornire in maniera automatizzata i valori ottenuti con il MOS. La prima di queste tecniche che è stata presentata è la Perceptual Speech Quality

Measurement (PSQM), definita nella raccomandazione ITU-T P.861 [17]. Successivamente altre due

tecniche, Perceptual Analysis Measurement System (PAMS) e Perceptual Evaluation of Speech

Quality (PESQ) sono state definite con lo scopo di migliorare le prestazioni della tecnica PSQM. In

particolare, la tecnica PESQ, con cui sono state fatte le misurazioni riportate nel capitolo 6, è stata concepita in base alle esperienze fatte con PSQM e PAMS, ed è stata definita nel 2001 nella Raccomandazione ITU-T P.862 [19].

Queste tecniche sono basate su conoscenze di psico-acustica e utilizzano lo stesso approccio: inserire un campione di audio nella rete, e confrontare il campione originale con quello ricevuto in uscita dalla rete o da un suo componente. Il confronto viene quantificato mediante un valore numerico nell’intervallo di valori del MOS. Le due caratteristiche chiave di queste tecniche sono:

● sia il segnale di ingresso che quello di uscita sono modellati da un punto di vista percettivo. ● il confronto è orientato alla valutazione della distanza dei due segnali dal punto di vista

della percezione umana.

Le tecniche PSQM, PAMS e PESQ sono accurate, ma risultano costose in termini di implementazione in quanto, per eseguire il test, richiedono l’uso di un canale telefonico della rete da

(13)

1 Telefonia su reti IP

analizzare. Questo spesso significa l’utilizzo di apparecchiature hardware o software specializzate per supportare le interfacce di segnalazione e telefoniche della rete da analizzare [20].

Per quanto riguarda i metodi oggettivi passivi esistono una serie di tecniche tradizionali che cercano di fare una misurazione della QoS percettiva basandosi sulle stime di parametri quali il tasso di perdita dei pacchetti, il ritardo end-to-end e le sue variazioni. Il problema nasce dal fatto che queste stime, considerate isolatamente, non danno indicazioni su ciò che l'utente percepirà. I fattori che influenzano la QoS percettiva sono infatti molto di più e sono correlati in modo molto complesso [20].

Una soluzione più complessa, rispetto ai metodi tradizionali, è PsyVoIP. É stato proposto da

Psytechnics ed è un sistema dotato della capacità di prendere in considerazione tutti i fattori che

influenzano ciò che sarà percepito dall'utente tenendo conto di tutte le complesse interazioni che ci sono tra questi elementi. Oltre al rate di perdita, ritardo end-to-end e jitter il sistema tiene presente anche il tipo di codifica usata, la riduzione del rumore e la cancellazione d'eco permettendo di monitorare, durante l'erogazione del servizio, la qualità percepita dall'utente e di quantificarla con un valore numerico avente un significato simile a quello dato al MOS. La valutazione che si riesce ad ottenere si avvicina molto a quella che farebbe un soggetto reale [20].

L'ITU-T, con la collaborazione di Psytechnics, sta tentando di standardizzare una nuova tecnica non intrusiva (P.VQT) che, come PsyVoIP, tenga conto di tutti gli elementi determinanti la QoS percettiva e delle loro interazioni.

1.2.2 Parametri che influenzano la quality of service percettiva

La speech quality è fortemente influenzata da fattori legati al tipo di codifica e compressione della voce e al servizio offerto dalla rete di trasporto IP. In questo paragrafo, è presentata un’analisi di come questi differenti fattori influenzano la speech quality.

1.2.2.1 Perdita di pacchetti

Studi sperimentali approvati dagli enti di standardizzazione hanno dimostrato che se nella rete il tasso di perdita dei pacchetti VoIP supera una certa soglia, si possono verificare distorsioni audio che inducono un abbassamento della qualità dell’audio percepita dall’utente all’aumentare del tasso di perdita. In ogni chiamata, questo effetto generale è modulato dalla distribuzione della perdita di pacchetti, dalla loro dimensione, dalla codifica usata in trasmissione e dall’eventuale algoritmo di

(14)

1 Telefonia su reti IP

Packet Loss Concealment (PLC) usato in fase di decodifica [20].

Questi algoritmi, che hanno il compito di mascherare gli effetti delle perdite, possono spaziare dall’introduzione di semplici silenzi quando viene persa una porzione di audio a seguito della perdita del pacchetto che lo trasportava, a tecniche più sofisticate alcune delle quali sono soluzioni proprietarie. Alla trattazione degli algoritmi di PLC, vista la loro importanza in questa tesi, è dedicato l'intero capitolo 5.

1.2.2.2 Codifica della voce

Nella teoria, il progettista del servizio VoIP ha a disposizione un certo numero di codec, nella pratica, invece, gli apparati in commercio spesso ne implementano un numero molto limitato. In genere, un gateway o un telefono IP sarà dotato del codec G.711 e di uno o due codec a basso bit rate (spesso il G.723.1 e/o il G.729). Questi codec a basso bit rate, ovviamente, hanno una maggiore efficienza in fase di codifica del segnale audio al prezzo di una qualità percettiva del segnale audio deteriorato dopo i processi di codifica/decodifica. Inoltre, nel caso di codec non basati sulla forma d’onda del segnale, questi algoritmi sono ulteriormente penalizzati dal fatto che presentano una maggiore complessità nei processi di codifica/decodifica che portano spesso ad un maggiore ritardo di elaborazione [20].

Considerando solo i processi di codifica, le prestazioni dei codec rispecchiano la seguente filosofia: maggiore è il bit rate che producono in uscita per la codifica del segnale migliore sarà la qualità percettiva del segnale audio prodotto dopo le operazioni di codifica/decodifica.

Nello scenario VoIP, è da considerarsi il fatto che possono essere impiegati più codec nel percorso subito dai pacchetti relativi ad una certa chiamata, questo perché le diverse reti attraversate (reti VoIP, PSTN, Cellulari, accesso a larga banda) utilizzano spesso tecniche di codifica differenti. Pertanto diventa essenziale considerare gli effetti prodotti dall’elaborazione del segnale audio sulla qualità percettiva finale attraverso diversi codec posti in cascata nella connessione della singola chiamata. Questa elaborazione è spesso indicata come coder tandeming, sebbene spesso si utilizzi il termine

transcodifica per indicare le operazioni di codifica/decodifica effettuate con codec diversi [20].

Studi sperimentali hanno dimostrato che il processo attraverso il quale le distorsioni si accumulano nelle operazioni di codifica/decodifica fatte in successione è molto complesso. In particolare, è stato notato che a seconda dei particolari codec coinvolti in queste operazioni, sono stati osservati dei peggioramenti in termini di MOS che vanno da 0.06 a 0.56 per ogni singola operazione di coder tandeming. Inoltre, l’entità del peggioramento non è facilmente riconducibile alle prestazioni degli

(15)

1 Telefonia su reti IP

algoritmi di codifica coinvolti nell’operazione di coder tandeming, valutate singolarmente [20].

1.2.2.3 Soppressione dei silenzi

Una delle caratteristiche rilevanti del servizio telefonico è rappresentata dal fatto che in ognuna delle due direzioni il canale trasmissivo è utilizzato mediamente al 50% della sua capacità, in quanto se uno dei due interlocutori sta parlando, l’altro tipicamente resta in ascolto. Questa osservazione ha portato all’accurata indagine di strategie in grado di offrire la miglior condivisione possibile dell’elevata capacità offerta dagli apparati di trasmissione. In particolare mediante la comunicazione basata sulla commutazione di pacchetto si può ottenere il maggior vantaggio possibile dalla cosiddetta “multiplazione statistica” (per la quale il numero di trasmissioni simultanee sullo stesso canale di trasmissione risulta di gran lunga maggiore di quello che si sarebbe potuto ottenere allocando la velocità di picco di ciascuna sorgente). Per sfruttare al meglio questa strategia è necessario che il trasmettitore non produca l’invio di informazione nei momenti in cui l’utente resti in silenzio. A questo scopo è necessario che il trasmettitore sia dotato di un dispositivo che riconosca la presenza di attività da parte dell’utente, in modo da riuscire a “sopprimere” il silenzio. Questo strumento è indicato come Voice Activity Detector (VAD) [5].

I primi algoritmi VAD sono stati caratterizzati dal difetto di tagliare la parte iniziale del segnale audio, dopo il periodo di silenzio. La perdita di parte del segnale audio è indicato come speech

clipping. Questo difetto è stato successivamente affrontato e risolto mediante le tecniche VAD definite

insieme agli algoritmi di codifica G.729 (Annex B) e G.723.1 (Annex A), sebbene in alcuni casi il problema si riproponga quando si utilizza il codec G.711. A causa di questi fenomeni di speech clipping, le tecniche di soppressione del silenzio hanno lo svantaggio di rappresentare un ulteriore fattore di degrado della qualità percettiva [5].

Quando si utilizzano tecniche di soppressione del silenzio è da considerarsi inoltre con estrema attenzione il problema relativo alla generazione artificiale del rumore che viene a sostituire il rumore di fondo “naturale” nei periodi di soppressione del silenzio prodotti dal VAD. Con le tecniche di soppressione del silenzio, tale rumore di fondo che caratterizza il silenzio naturale viene bloccato e per dare all’ascoltatore la sensazione che l’interlocutore risulti ancora connesso, si introduce un rumore artificiale, chiamato comfort noise. Il problema è che le caratteristiche di questo rumore artificiale raramente riescono a riprodurre quelle del reale rumore di ambiente. Di conseguenza, l’ascoltatore ha la sensazione abbastanza sgradevole di percepire rumori ambientali marcatamente diversi. A causa di questo fenomeno, quando il servizio viene erogato in ambienti particolarmente rumorosi, per ottenere una qualità percettiva prossima a quella offerta dalla rete PSTN, si deve

(16)

1 Telefonia su reti IP

rinunciare alle tecniche di soppressione del silenzio [5].

1.2.2.4 Ritardi di collegamento

Gli effetti sulla qualità percettiva del servizio di fonia dovuti ai ritardi con i quali sono consegnati al ricevitore i segnali audio trasmessi si possono classificare in due aree: i problemi associati con la corretta interazione fra gli utenti della chiamata (problemi che intaccano la qualità della conversazione, conversational quality) e quelli relativi all’eco. Questi sono aspetti generali che interessano tutte le tecnologie utilizzate per la fornitura di servizi telefonici. Specificatamente ai servizi VoIP, invece, bisogna considerare anche i problemi relativi alla variazione del ritardo, detto jitter, in quanto questo fenomeno può essere sorgente di perdita di pacchetti e di introduzione di ulteriore ritardo di connessione attraverso il buffer di dejitter, che mira all’eliminazione del fenomeno stesso.

1.2.2.4.1 Effetti del ritardo sulla conversazione

Nel mettere in discussione i servizi VoIP, il punto debole che spesso si pone in maggior risalto è rappresentato dal più elevato ritardo end-to-end (da trasmettitore a ricevitore) che le informazioni audio sperimentano quando sono trasportate su reti IP. In particolare, si mettono in luce gli effetti negativi di questo ritardo con riferimento all’alterazione della normale cadenza di trasferimento dell’informazione nel corso di una conversazioni vocale. Le nostre sensazioni durante una chiamata VoIP hanno un grosso impatto sul nostro comportamento durante una conversazione e, quando queste sensazioni sono alterate da effetti come un ritardo end-to-end superiore alle nostre normali aspettative, si perde la naturalezza della conversazione. I partecipanti alla conversazione perdono i tempi nella commutazione tra il ruolo di “ascoltatore” e di “parlatore” appena iniziano a sperimentare fenomeni di sovrapposizione delle informazioni dovuti alle sensazioni, alterate dal ritardo, sul ruolo ricoperto dall’altro interlocutore. In altre parole, uno dei due utenti, dopo una breve pausa, non sentendo arrivare informazioni prodotte dall’altro utente, ricomincia a parlare mentre arriva il segnale audio trasmesso dalla controparte. In conseguenza di ciò, gli utenti non hanno più riferimenti temporali su quando iniziare a parlare e quando, invece, restare in ascolto del parlato dell’altro utente [5].

L’osservazione di questi fenomeni (notati inizialmente sulle chiamate PSTN che utilizzano collegamenti satellitari) ha portato l’ente di standardizzazione ITU-T a definire la Raccomandazione G.114 [21] sugli effetti del ritardo di collegamento sulla qualità percettiva del servizio.

La Tabella 1 mostra le principali indicazioni date dalla raccomandazione ITU-T G.114. I ritardi entro 150 ms sono considerati accettabili per la maggior parte delle applicazioni. I ritardi da 150 a 400

(17)

1 Telefonia su reti IP

ms sono accettabili per la qualità della voce che correntemente si sperimenta in alcuni contesti. Inoltre, sono accettabili anche ritardi superiori se si tiene conto del risparmio nel costo.

Tabella 1.1: Relazione Ritardo-effetti, ITU G.114

Dalla tabella si nota come attraverso la Raccomandazione G.114, il gruppo di lavoro dell’ITU-T abbia indicato che un ritardo end-to-end unidirezionale di 150 ms non produce nessun effetto sulla conversazione, mentre ritardi superiori producono effetti negativi gradualmente crescenti al crescere del ritardo.

Le prove di laboratorio hanno dimostrato che questa descrizione degli effetti del ritardo sulla qualità percettiva del servizio di fonia è piuttosto semplificata. In particolari, successive prove di laboratorio hanno dimostrato che con ritardi dell’ordine di 200 ms gli utenti non notano nessuna differenza rispetto al servizio telefonico offerto tramite reti a commutazioni di circuito (PSTN) [20]. Questo valore sarà sfruttato in questa tesi per la costruzione di un buffer di dejitter adattivo (come dettagliatamente spiegato nel capitolo 4).

1.2.2.4.2 Eco

L'eco, cioè ascoltare la propria voce che ripete, in ritardo, quello che si è appena detto è un fenomeno fastidioso che si può riscontrare quando vi sono più di 50 ms di ritardo andata-ritorno. Il suo effetto in termini di degradazione della qualità della conversazione è tanto peggiore quanto più è alto il ritardo [5].

Esistono due tipologie di eco, che differiscono dal modo con il quale si genera e dalle sue caratteristiche: l'eco acustica e l'eco elettrica.

La generazione dell'eco acustica è dovuta al fatto che l'onda acustica prodotta dall'altoparlante riflettendosi sugli oggetti vicini al telefono e sulle pareti della stanza ritorna al microfono del telefono. Di conseguenza viene ritrasmessa come se fosse un segnale prodotto dall'ascoltatore.

(18)

1 Telefonia su reti IP

sistemi di telefonia classica ha alcune caratteristiche peculiari che non sono più valide se si parla di servizi VoIP. In particolare, il ritardo con il quale si presenta l'eco nella telefonia su reti IP non è più basso come avveniva nella telefonia classica perché, oltre ai ritardi dovuti alla propagazione delle informazioni, bisogna considerare anche quelli introdotti dalla rete. Inoltre le caratteristiche temporali del ritardo variano con dinamiche superiori a quelle sperimentate nelle reti telefoniche classiche a causa della loro dipendenza dallo stato della rete [20].

La risoluzione del problema dell'eco è affidata ai cancellatori d'eco la cui trattazione è esente dagli obiettivi di questa tesi.

1.2.2.4.3 Interarrival jitter

Il jitter è una brusca ed indesiderata variazione di una o più caratteristiche di un segnale. Si parla di

interarrival jitter per indicare un fenomeno presente nelle sole reti a pacchetti, dipendente dalla

variabilità del tempo di arrivo dei singoli pacchetti: il mittente spedisce pacchetti contenenti segmenti del segnale voce codificato a intervalli regolari (ad esempio ogni 20 ms) ma tali pacchetti possono essere ritardati dalla rete e possono non arrivare al ricevitore con la stessa spaziatura temporale. Si definisce perciò interarrival jitter la variazione del ritardo end-to-end sperimentata da pacchetti IP successivi di una stessa connessione [20].

La risoluzione dei problemi legati alla presenza dell'interarrival jitter in una comunicazione è affidata in ricezione ai buffer di dejitter. Questo argomento sarà successivamente approfondito nel capitolo 4 dove saranno presentate le diverse tipologie (statica e dinamica) di questi buffer, le loro caratteristiche e le soluzioni proposte e implementate in questa tesi per una loro costruzione.

1.2.2.4.4 Calcolo del delay budget

Nei servizi VoIP, il ritardo end-to-end è la somma di diversi contributi che possono essere classificati in ritardi fissi e variabili. Alla prima classe appartengono i seguenti componenti:

Il ritardo di propagazione. Dipende dalla distanza totale tra sorgente e destinazione e, in

fase di progetto si assume pari 1.25μs per chilometro.

Il ritardo dovuto alla serializzazione dell’unità informativa. Esso è legato al processo che

trasmette i bit nel collegamento e dipende dalla velocità trasmissiva del collegamento. Per esempio, per trasmettere un byte in un collegamento a 64 Kbps sono necessari 125 ms; lo stesso byte, trasmesso in un collegamento a 155 Mbps, impiega 0.05 μs.

(19)

1 Telefonia su reti IP

decodifica del segnale vocale. Il peso di questo contributo dipende dagli algoritmi adottati; l’uso di hardware specializzato, DSP (Digital Signal Processing), aumenta notevolmente la qualità e riduce il ritardo associato a differenti schemi di compressione audio o video.

Il ritardo di pacchettizzazione. Esso è legato al processo che acquisisce i campioni digitali

della voce finché non ne vengono raccolti abbastanza per riempire il campo dati del pacchetto inviato. Per ridurre questo contributo, che diventa eccessivo con alcune tecniche di codifica e compressione, si devono trasmettere pacchetti di dimensione piuttosto contenuta.

A questi contributi fissi si aggiungono quelli variabili, riportati di seguito:

Il ritardo in coda, causato dal fatto che, in ogni momento, un pacchetto può ritrovarsi nella

fila di attesa di un nodo della rete ed aspettare un tempo variabile prima di essere immesso nel collegamento di uscita. Questo tempo di attesa è ovviamente determinato dalla quantità di traffico in arrivo al nodo e dalla capacità trasmissiva del collegamento di uscita dal nodo.

Il ritardo introdotto nel buffer di dejitter, usato al ricevitore per ridurre la variabilità del

ritardo dei dati prima che questi vengano passati all'applicazione incaricata di riprodurli; in pratica il buffer di dejitter elimina le variazioni di ritardo convertendole in un ritardo costante. Tra le due classi di contributi sopra elencati, la seconda è quella che costituisce il maggiore problema nella fase di dimensionamento della rete. Infatti, l’attraversamento della rete IP introduce ritardi non predicibili nel percorso dei pacchetti in rete in particolare con riferimento a condizioni di traffico ad elevata variabilità. Nei punti intermedi della rete si possono determinare situazioni istantanee particolarmente critiche per la ricetrasmissione dei pacchetti che introducono grossi ritardi in coda, jitter elevati ed eventualmente perdita dei pacchetti. Queste situazioni sono determinate dalla quantità di traffico in arrivo nei nodi intermedi della rete, proveniente da più sorgenti di ingresso con conseguente contesa nell’allocazione delle risorse del nodo stesso.

Per limitare questi inconvenienti è importante una opportuna scelta del metodo di gestione delle file di attesa nel nodo e l’adozione delle architetture per la garanzia della Qualità del Servizio nelle reti IP, sviluppate in ambito IETF (Internet Engineering Task Force). In fase di progettazione del servizio VoIP, bisogna valutare almeno approssimativamente quale sia il ritardo end-to-end massimo che si desidera ottenere, ovvero compiere una stima del delay budget. In questa stima si possono individuare le diverse componenti del ritardo totale, e di conseguenza produrre i requisiti di progetto che i diversi apparati e servizi di rete devono essere in grado di soddisfare. In altre parole, se ad esempio nel delay budget è stato considerato un ritardo di codifica pari a 25 ms, nella fase di implementazione del servizio VoIP dobbiamo scegliere dei codificatori che ci permettano di non superare questo valore.

(20)

1 Telefonia su reti IP

Analogamente se si assume che il delay budget risulta prossimo al valore massimo fissato, è necessario compiere opportune decisioni di instradamento e di gestione delle code nei diversi nodi attraversati dai pacchetti voce al fine di mantenere questo grandezza al di sotto della soglia prevista [20].

1.3 I protocolli di trasporto RTP e RTCP

Tra i protocolli di trasporto indicati per i servizi Voce su reti IP rivestono una particolare rilevanza i protocolli RTP (Real Time Transport Protocol) e RTCP (Real Time Control Protocol) [3]. Il primo è stato definito per la consegna di informazioni in tempo reale (per esempio audio e video interattivi), mentre il secondo è usato per monitorare la qualità del servizio osservata a livello di rete durante il trasferimento dei dati utente e per fornire informazioni sui partecipanti alla sessione corrente.

1.3.1 Protocollo RTP

Il protocollo RTP è stato definito con l'obiettivo di fornire i seguenti servizi utili come supporto per le comunicazioni real-time:

Identificazione del payload type : Servizio che permette di risolvere i problemi legati al

fatto che i dati trasportati da RTP possono essere informazioni audio o video prodotte da diversi tipi di algoritmi di codifica. Nell'ambito di H.323 o SIP quest'informazione è inutile visto che il tipo di codificatori che saranno usati dai partecipanti alla comunicazione sono stabiliti dagli stessi durante l'instaurazione della chiamata. La sua presenza è giustificata dal fatto che RTP è stato definito prima delle architetture VoIP e inoltre dal fatto che questo protocollo può essere sfruttato anche con applicazioni che non fanno riferimento agli standard per il VoIP.

Sequence numbering : Servizio che permette di effettuare un controllo sulla sequenza di

arrivo delle informazioni che sono state trasmesse. La cosa è realizzata inserendo un numero di sequenza crescente nell'intestazione RTP. Questo numero permette al ricevitore di rilevare la perdita di un pacchetto IP e di riordinare le informazioni in arrivo (re-ordering) nel caso in cui i pacchetti trasmessi vengano ricevuti fuori sequenza.

Timestamping : Servizio che permette il trasporto di informazioni necessarie alla

(21)

1 Telefonia su reti IP

Monitoring : Servizio che permette di monitorare la consegna delle informazioni;

l'intestazione RTP è composta cioè da una serie di campi che mettono a disposizione delle informazioni utili a monitorare la comunicazione in corso.

Visto che RTP è usato nel VoIP per il trasporto di informazioni real-time esso utilizza come protocollo di trasporto UDP sfruttandone principalmente due servizi: il meccanismo per la multiplazione di più connessioni tra due entità di terminazione (concetto di porte) e il controllo dell'integrità dei dati, offerto tramite checksum. Il protocollo RTP non fornisce nessun tipo di strumento per fornire una qualità del servizio o garantire una consegna tempestiva, né assume che la rete sottostante sia affidabile e consegni i pacchetti in sequenza [5].

1.3.1.1 RTP header

L’header costituisce la parte iniziale di ogni pacchetto RTP e contiene informazioni di controllo che sono utili alla gestione del flusso di dati. È composto da una parte fissa e da un’eventuale parte opzionale. La parte fissa dell’intestazione trasporta informazioni utili per la corretta interpretazione, identificazione e sincronizzazione dei dati contenuti nel payload. La specifica del protocollo definisce un meccanismo di estensione che permette di aggiungere nuove funzionalità all’header: qualora si voglia utilizzare questa opzione occorre impostare un flag contenuto nella parte fissa dell’intestazione e quindi far seguire, dopo quest’ultima, la parte opzionale preceduta dalla specifica della sua lunghezza.

Il formato dell’header fisso è il seguente :

Figura 1.1: Header RTP

I primi dodici ottetti sono presenti in ogni pacchetto RTP, mentre la lista degli identificatori di CSRC è presente solamente qualora venga introdotta da un mixer. Quest'ultimo è un sistema che riceve flussi di pacchetti RTP da una o più sorgenti, ne decodifica il contenuto e combina i diversi segnali così ottenuti. La sua trattazione è esente dagli obiettivi di questa tesi.

(22)

1 Telefonia su reti IP

Il contenuto dei singoli campi è il seguente:

version (V - 2 bit) : Questo campo identifica la versione del protocollo RTP.

padding (P - 1 bit) : Se il bit è impostato a 1 indica la presenza di byte di riempimento al

termine del pacchetto che non fanno parte del payload. L’ultimo byte di riempimento indica il numero degli stessi. La presenza di byte di riempimento è necessaria in alcuni casi per adattare il formato del pacchetto alle esigenze di alcuni protocolli con cui RTP si interfaccia.

extension (X - 1 bit) : Se il bit è impostato indica la presenza, dopo l’header fisso, di una

estensione dello stesso.

CSRC count (CC - 4 bit) : Il suo valore rappresenta il numero di identificatori di CSRC

che seguono i primi dodici ottetti dell’intestazione del pacchetto. Se il valore è zero significa che il pacchetto non è stato generato da un mixer.

marker (M - 1 bit) : È un flag gestibile dalle applicazioni per contrassegnare particolari

eventi nel flusso di pacchetti.

payload type (PT - 7 bit) : Il suo valore indica il formato del campo dati trasportato dal

pacchetto inviato e quindi la sua interpretazione da parte dell’applicazione. Esistono valori predefiniti per i principali metodi di codifica dei dati multimediali, altri valori sono lasciati a disposizione per essere definiti dinamicamente, altri ancora sono riservati per future applicazioni. Per esempio per i codec audio possiamo trovare la rappresentazione decimale 0 per indicare dei dati prodotti dal codec PCM law , 8 per il PCM A law , 9 per il G.722, 15 per il G.728, etc. I valori del payload type associati ai diversi sistemi di codifica sono specificati dall'organizzazione IANA (Internet Assigned Numbers Authority).

sequence number (16 bit) : È un numero di sequenza, viene incrementato di un’unità per

ogni pacchetto RTP inviato dalla sorgente. Tale valore è utilizzato in ricezione per determinare le perdite e le inversioni nella sequenza dei pacchetti. Il suo valore iniziale è determinato casualmente al fine di rendere la cifratura dei pacchetti più efficace.

timestamp (32 bit) : Il valore di questo campo identifica l’istante di generazione del primo

campione del payload. L’istante di campionamento deve essere ricavato da un timer che si incrementa monotonicamente e linearmente nel tempo per facilitare la sincronizzazione ed il calcolo del jitter. Solitamente la frequenza di clock dipende dal formato dei dati trasportati ed è specificata nel profilo che definisce il formato. Se i pacchetti RTP sono generati periodicamente, come con il codec PCM, l'unità di misura utilizzata in questo campo è la

(23)

1 Telefonia su reti IP

frequenza di campionamento. Il clock incrementa cioè di uno per ogni periodo di campionamento T. Più pacchetti RTP possono avere lo stesso valore di timestamp nel caso in cui un campione sia trasportato da più pacchetti RTP. Come per il sequence number, il valore iniziale del timestamp è scelto casualmente.

SSRC (32 bit) : Identifica la sorgente di sincronizzazione. È un numero casuale scelto dalla

SSRC stessa. Il protocollo RTP rileva eventuali collisioni di identificatori e la gestione di tali collisioni è demandata al protocollo RTCP.

CSRC list (da 0 a 15 campi da 32 bit ciascuno) : È la lista degli identificatori di sorgenti

che hanno contribuito al payload del pacchetto. Questo campo è presente solo se il pacchetto è stato generato da un mixer.

1.3.2 Protocollo RTCP

L’RTP Control Protocol (RTCP), è la componente del protocollo RTP che si occupa del controllo e del monitoraggio del flusso dei dati trasportati nei pacchetti RTP. Lo scopo di RTCP è quello di fornire alle applicazioni un meccanismo che consenta di valutare la qualità del servizio che la rete, per mezzo di RTP, può offrire e di gestire, allo stesso tempo, il controllo dei partecipanti ad una sessione. Il tipo di utilizzo delle informazioni ottenute con il monitoraggio della trasmissione dipende dalle applicazioni e non compare nelle specifiche del protocollo: alcune applicazioni possono variare le caratteristiche (compressione, risoluzione, dinamica, ecc.) del segnale trasmesso, in relazione alle informazioni ottenute, mentre altre possono limitarsi solo ad elaborare le informazioni stesse e presentarle all'utente in modo che siano più facilmente interpretate, demandando così agli utilizzatori il compito di effettuare eventuali modifiche alle modalità di trasmissione e codifica dei dati [5].

RTCP si basa sulla trasmissione periodica di pacchetti di controllo a tutti i partecipanti di una sessione, utilizzando la stessa pila protocollare UDP/IP, ma numeri di porte diverse da quelle usate da RTP. In particolare, ad ogni canale RTP con numero di porta UDP pari a N, viene associato un canale di controllo RTCP con un numero di porta pari a N+1.

1.3.2.1 Formato dei pacchetti RTCP

Le specifiche del protocollo definiscono diversi tipi di pacchetti RTCP per il trasporto di varie informazioni di controllo.

(24)

1 Telefonia su reti IP

attivi.

RR: Receiver Report, per statistiche di ricezione da partecipanti che non sono trasmettitori

attivi.

SDES: Source DEScription; usato per la descrizione della sessione.BYE: utilizzato per notificare l'intenzione di voler lasciare la sessione.APP: funzioni specifiche dell’applicazione.

I ricevitori RTP prevedono quindi due tipi di resoconto sulla qualità della ricezione: si utilizza un pacchetto RTCP SR (Sender Report), quando il ricevitore è anche un trasmettitore attivo, altrimenti viene utilizzato il pacchetto RTCP RR (Reciver Report).

Ogni pacchetto RTCP inizia con una parte fissa simile a quella dei pacchetti dati RTP, seguita da elementi strutturati che possono essere di lunghezza variabile in base al tipo di pacchetto, ma sempre multipli di 32 bit. Tale caratteristica, unita all’indicazione della lunghezza contenuta nella parte fissa, permette di concatenare più pacchetti RTCP in un unico pacchetto del protocollo di livello inferiore.

1.3.2.2 Intervallo di trasmissione dei pacchetti RTCP

RTP è progettato per consentire alle applicazioni di effettuare sessioni la cui dimensione varia da pochi partecipanti fino a migliaia. Se consideriamo una conferenza audio, notiamo che il traffico dati è sostanzialmente auto limitato, in quanto solamente una o due persone potranno parlare contemporaneamente.

Il traffico di controllo, per contro, non è auto limitante: se pacchetti di Reception Report venissero inviati da tutti i partecipanti ad una frequenza costante, la banda occupata da queste comunicazioni crescerebbe linearmente con il numero dei partecipanti. Il traffico di controllo dovrebbe essere opportunamente limitato ad una piccola frazione della banda disponibile per la sessione, per esempio il 5%; il calcolo della quantità di informazioni di controllo da inviare da parte di ciascun partecipante può essere alquanto complicato, in quanto dipendente da molteplici parametri, ma esistono algoritmi studiati a questo proposito. Questi sfruttano il fatto che ogni partecipante spedisce il proprio pacchetto di controllo a tutti gli altri. In questo modo, ognuno può dedurre il numero di partecipanti e calcolare la frequenza di trasmissione dei pacchetti RTCP che deve usare per mantenere costante il traffico RTCP globalmente immesso in rete [5].

(25)

1 Telefonia su reti IP

1.3.2.3 Rapporti del trasmettitore e del ricevitore

I ricevitori RTP, come detto in precedenza, forniscono un riscontro sulla qualità di ricezione usando i pacchetti report (RR e SR) di RTCP che possono assumere forme diverse a seconda che il ricevitore sia o meno anche un trasmettitore.

Figura 1.2: Formato Sender-Report

I pacchetti di tipo SR si differenziano dai RR perché includono una sezione di 20 byte (sender info) che viene usata dai trasmettitori attivi. Ogni pacchetto SR o RR include uno o più blocchi reception

report; uno per ogni sorgente di sincronizzazione dalla quale il ricevitore ha ricevuto pacchetti dati

dopo l'ultimo report. Ognuno dei blocchi di reception report fornisce statistiche sui dati ricevuti dalla particolare sorgente indicata in tale blocco. In un pacchetto SR o RR possiamo trovare fino a 31 blocchi di reception report.

(26)

1 Telefonia su reti IP

version (V - 2 bit) : Identifica la versione di RTCP.

padding (P - 1 bit) : Se il bit è impostato a 1 indica la presenza di byte di riempimento al

termine del pacchetto che non fanno parte del payload. L’ultimo byte di riempimento indica il numero degli stessi.

reception report count (RC - 5 bit) : Numero di blocchi reception report contenuti nel

pacchetto. Lo zero è un valore ammissibile nei sender report.

packet type (PT - 8 bit) : Costante che identifica il tipo di pacchetto. Vale 200 nei sender

report.

length (16 bit) : Indica la lunghezza del pacchetto in parole da 32 bit. Questo campo viene

usato per separare i pacchetti in un pacchetto composto.

SSRC (32 bit) : Identificatore SSRC del nodo che ha originato il pacchetto.NTP timestamp (64 bit) : Indica l’istante di invio del pacchetto SR.

RTP timestamp (32 bit) : Fa riferimento allo stesso istante indicato dal NTP timestamp, ma 

ha lo  stesso formato del timestamp dei pacchetti RTP e lo stesso valore  iniziale casuale  (random offset).

sender's packet count (32 bit) : Indica il numero di pacchetti RTP trasmessi dal nodo 

attivo  dall'inizio della  sessione  fino  all'istante di generazione  del  SR.  Il contatore  viene  azzerato se l'SSRC identifier del nodo attivo cambia.

sender's octet count (32 bit) : Indica il numero totale di byte (esclusi header e padding) 

trasmessi  dal  nodo  attivo   nei  pacchetti   RTP,   dall'inizio  della   sessione  fino  all'istante  di  generazione del SR. Questo valore può essere utilizzato per la stima della quantità di dati  trasportati in media dal payload (data rate). Il contatore viene azzerato se l'SSRC identifier del  nodo attivo cambia.

SSRC_n (source identifier 32 bit) : SSRC identifier della sorgente a cui sono associate le 

informazioni del Reception Report Block.

fraction lost (8 bit) : Rapporto tra il numero di pacchetti ricevuti e quelli attesi. Nel caso di 

(27)

1 Telefonia su reti IP

Esso viene però forzato a zero. La stessa cosa avviene se nell'ultimo intervallo RTCP tutti i  pacchetti di una sorgente sono stati persi.

cumulative number of packet lost (24 bit) : Numero totale di pacchetti che non sono stati 

ricevuti dalla sorgente SSRC del Reception Report Block corrente. Esso viene calcolato  sottraendo dal numero di pacchetti attesi il numero dei pacchetti ricevuti, compresi quelli con  ritardo e quelli duplicati. Può risultare negativo.

extended highest sequence number received (32 bit) : I   16   bit   meno  significativi 

contengono il sequence number più alto tra i pacchetti ricevuti, mentre i restanti 16 bit  indicano il numero di cicli di sequence number.

interarrival jitter (32 bit) : Deviazione media (valore assoluto filtrato) della differenza D 

tra i tempi di interarrivo di una coppia di pacchetti dal lato del ricevitore ed i corrispondenti  tempi di interpartenza.

last SR timestamp (LSR - 32 bit) : Sono i 32 bit intermedi del NTP timestamp (64 bit) del 

SR più recente ricevuto dalla sorgente SSRC_n. Se non è ancora giunto alcun SR, questo  campo è posto a zero.

delay since last SR (DLSR - 32 bit) : Indica il tempo trascorso tra la ricezione dell'ultimo 

SR dalla sorgente SSRC_n e la spedizione del reception report block corrente. É espresso in  multipli di (1/65536) secondi. Se non è ancora giunto alcun SR, questo campo è posto a zero. Il riscontro sulla qualità di ricezione è utile non solo per il trasmettitore, ma anche per i ricevitori.  Infatti, per il trasmettitore può modificare le sue trasmissioni basandosi sui riscontri (per esempio può  ridurre la frequenza i trasmissione delle informazioni cambiando l'algoritmo di codifica o i suoi  parametri). I ricevitori possono determinare se i problemi sono locali, regionali o globali [5]. In questa tesi sono stati utilizzati in particolare i campi LSR e DLSR per fare una stima del Round  Trip Time che, come dettagliatamente spiegato nel capitolo 4 permette, insieme alla stima del jitter  che sperimentano i pacchetti, di costruire un buffer di dejitter adattivo alle condizioni della rete. 

(28)

2 Predizione lineare dello speech signal

2 Predizione lineare dello speech signal

Obiettivo di questo capitolo è fornire delle informazioni che permettano di comprendere meglio la descrizione di alcuni degli algoritmi di Packet Loss Concealment che sono presentati nel capitolo 5.

Inizialmente sono descritte le caratteristiche del segnale voce e il modo con cui questo viene prodotto. Nel secondo paragrafo è invece mostrata una tecnica, molto sfruttata nei codificatori voce a bassa bit-rate, con cui questo segnale può essere modellato.

2.1 Human speech properties

La voce (speech signal) è un'onda sonora creata da una vibrazione che si propaga nell'aria. Può essere modellata come un segnale in banda base limitato ai 7, 8 Khz. I diversi suoni che la caratterizzano (speech sounds) sono determinati dalla forma di quello che si definisce tratto vocale (vocal tract). Questo è formato dalla cavità orale, nasale e faringea. Il vocal tract dipendentemente dalla sua forma è caratterizzato da un diverso set di frequenze di risonanza e i picchi che possiamo osservare sullo spettro in frequenza di un segmento di speech dovuti a questa risonanza sono noti come formanti (formants). Una sua analisi completa dovrebbe prendere in considerazione la propagazione dell'onda sonora in tre dimensioni, la variazione della forma del vocal tract in funzione del tempo, l'attrito viscoso delle sue pareti, le perdite dovute alla conduzione di calore, l'accoppiamento nasale, l'irradiazione dell'onda sonora verso le labbra e altri fattori. Un modello dettagliato del vocal tract che tiene conto di tutti questi elementi non è ancora disponibile ma nonostante questo esistono dei modelli che ne permettono una buona approssimazione utile per scopi pratici [13].

(29)

2 Predizione lineare dello speech signal

Figura 2.1: Produzione dello speech-signal

Esistono principalmente due tipi di speech sound: voiced, unvoiced. Quando l'aria esce dai polmoni arriva alle corde vocali che essendo inizialmente chiuse bloccano il flusso dell'aria che produce una pressione su di loro. Al momento che questa raggiunge un valore sufficientemente alto le corde vocali si aprono e permettono il passaggio del flusso d'aria. La pressione a questo punto cala e questo le porta a chiudersi nuovamente. Il ciclo poi si ripete. Le periodiche operazioni di apertura e chiusura delle corde vocali producono il segnale voce (speech) e il periodo di questo ciclo di apertura e chiusura determina la frequenza a cui le corde vibrano emettendo così un segnale sonoro che viene poi modellato dalla lingua e dalla bocca. Questa frequenza è definita pitch e i suoi valori si trovano in un range che va dai 50 ai 400 Hz. Generalmente i valori sono più bassi per la voce maschile e più alti per la voce femminile e quella dei bambini [8].

I tipi voiced e unvoiced sono caratterizzati dall'avere una diverso modello di rappresentazione spettrale e un diverso livello di energia [13]. Possiamo considerare i voiced sound come segnali ad alta energia, gli unvoiced sound come segnali a bassa energia. In figura 2.2 possiamo vedere una rappresentazione delle ampiezze dei due tipi di segnale nel dominio del tempo. Per quanto riguarda la rappresentazione spettrale possiamo invece notare che nel caso di segnali voiced sono molto rilevanti i formanti mentre lo spettro dei segnali unvoiced può essere considerato piatto. In figura 2.3 è mostrata una rappresentazione della densità spettrale di potenza dei due tipi di segnale.

(30)

2 Predizione lineare dello speech signal

Figura 2.2: Rappresentazione nel dominio del tempo di un transizione da voiced a unvoiced

Figura 2.3: (sx) densità spettrale di potenza di un segmento di voiced speech signal (dx) densità spettrale di potenza di un segmento di unvoiced speech signal

Poiché le caratteristiche fisiche del vocal tract sono variabili nel tempo lo sono anche le caratteristiche spettrali della voce. Possiamo però considerare lo speech signal come divisibile in segmenti sonori che possiedono particolari proprietà acustiche. Una particolare categoria di segmenti in cui può essere considerato diviso sono i così detti fonemi. Questi possono essere considerati gli elementi strutturali elementari della voce e possono essere descritti tramite parametri come il

fundamental period T0 o la fundamental frequency F0=1/T0 . Il primo è il periodo tra due successive aperture delle corde vocali mentre il secondo può essere visto come il rate a cui queste vibrano. Il termine pitch indica questa frequenza F0 , mentre il termine pitch period indica il periodo T0 . Come detto il pitch assume valori in un range tra i 50 e i 400 Hz perciò possiamo considerare il pitch period come appartenente a un intervallo che si estende dai 2.5 ai 20 ms. La lunghezza media di un fonema è di circa 80 ms [13].

Se, come normalmente si considera, i parametri che caratterizzano il vocal tract e il pitch period sono lentamente variabili nel tempo lo speech signal può essere considerato stazionario in un breve

Figura

Figura 1.1: Header RTP
Figura 1.2: Formato Sender-Report
Figura 2.1: Produzione dello speech-signal
Figura 2.2: Rappresentazione nel dominio del tempo di un transizione da voiced a unvoiced
+7

Riferimenti

Documenti correlati

L’accettazione della fornitura di radiomobili è subordinata alla verifica della effettiva funzionalità degli stessi da parte del Referente per l’esecuzione della fornitura del

Gli studi iniziati negli anni sessanta, nel decennio scorso hanno avuto una forte accelerazione dovuta all’esplosione della domanda di telefonia cellulare ed

• Dopo un po' che dividiamo il problema in altri più piccoli, ad un certo punto arriviamo ad ottenere problemi “piccoli a sufficienza” per poterli risolvere senza

LE RETTE SONO LINEE CHE MANTENGONO LA STESSA DIREZIONE SENZA INIZIO

locazione nella memoria FLASH il quale sarà inizializzato ad un ; elemento della array di remapping prima di ogni scrittura currentRoutingEntry, di tipo ROUTING ENTRY

Questo tipo di misura della distorsione è molto usata nelle reti a commutazione di pacchetto per il trasporto della voce, in quanto non necessitano di una interruzione della linea

D’altra parte senza una regolamentazione delle tariffe, né i service provider, né i costruttori di apparecchiature VoIP possono giustificare gli investimenti necessari a ottenere

Il problema è l’ambiente in cui una soluzione vive, all’interno di una popolazione di altre possibili soluzioni; le soluzioni differi- scono tra loro per qualità, cioè per costo