codec internet a bassa velocità in bit
| Codec Internet a bassa velocità in bit (iLBC) | |
|---|---|
| Estensione file : |
.lbc
|
| Tipo MIME : | audio / iLBC |
| Numero magico : | '#! iLBC30 \ n' o '#! iLBC20 \ n' |
| Sviluppato da: | Soluzioni IP globali |
| Versione corrente: | Dicembre 2004 |
| Genere: | Codec vocale |
| Norma/e : | RFC 3951 |
| Sito Web : |
( Pagina non più disponibile , cerca negli archivi web: webrtc.org ) storico: http://ilbcfreeware.org/ |
L'Internet Low Bit Rate Codec ( iLBC ) è un documentato apertamente, royalty-free codec vocale che è stato sviluppato da Global IP Solutions (GIPS). Si distingue dai codec più vecchi in particolare per il fatto che è stato appositamente progettato per reti di dati a commutazione di pacchetto come Internet e quindi affronta molto bene la perdita di pacchetti e il jitter . iLBC è quindi particolarmente adatto per il VoIP .
proprietà
Il codec iLBC specificato in RFC 3951 è un codec a banda stretta , cioè registra frequenze fino a 4000 Hz. Lo standard definisce una variante con una lunghezza del blocco di 30 ms e una con una lunghezza del blocco di 20 ms con una frequenza di campionamento di 8 kHz e una profondità di campionamento di 16 bit.
Codifica predittiva lineare indipendente dai blocchi
L'innovazione alla base di iLBC è l' algoritmo di codifica predittiva lineare indipendente dai blocchi con una risposta controllata alla perdita di pacchetti . Indipendenza dai blocchi significa che ogni blocco è codificato in modo completamente indipendente dai precedenti e quindi non è necessaria alcuna informazione dai blocchi precedenti per decodificare correttamente i blocchi successivi. Questo non era il caso dei codec vocali compressi pubblicati in precedenza, che portano a errori a causa della perdita di pacchetti nelle reti di dati basate su pacchetti, ad es. B. Internet, continuare nei seguenti blocchi. Con il codec G.729, questo porta a B. a rumori sordi ed esplosivi dal lato del ricevitore. La causa di questa carenza tecnica è che questi codec erano destinati alla tradizionale rete telefonica digitale, che si basa su connessioni virtuali , in cui non era affatto prevista la perdita dei blocchi. Questo è il motivo per cui questi codec sono stati progettati solo per essere robusti contro gli errori di bit. Tuttavia, le reti dati a commutazione di pacchetto reagiscono anche in modo completamente diverso agli errori di bit rispetto alle connessioni virtuali nelle reti a commutazione di circuito, poiché i singoli pacchetti ricevono checksum e vengono semplicemente scartati e, se necessario, ritrasmessi se viene rilevato un errore di bit. Con l'avvento del VoIP, c'era quindi la necessità di creare un codec che rispondesse a questi nuovi requisiti tecnici.
Inoltre, iLBC offre un occultamento della perdita di pacchetti , come lo standard ITU- T G.711 , che si basa sulla modulazione del codice a impulsi (PCM) e funziona con un bit rate fisso di 64 kbit/s. Viene generato un segnale sostitutivo per la parte mancante del segnale audio, che viene calcolato dai blocchi circostanti.
Grazie a queste proprietà, il codec iLBC consente una qualità vocale relativamente buona, anche se mancano blocchi di dati a causa di pacchetti IP persi o ritardati .
modalità
iLBC 30
Con iLBC 30, ogni blocco comprende un segnale audio di 30 ms o 240 campioni, codificati in 399 bit di dati più 1 bit vuoto. Ciò corrisponde a 50 ottetti o byte per blocco.
| netto | RTP lordo con IPv4 | RTP lordo con IPv6 | |
|---|---|---|---|
| Velocità dati in kbit/s | 13.33 | 24 | 29.33 |
È la più vecchia delle due varianti di iLBC.
iLBC 20
Con iLBC 20, ogni blocco comprende un segnale audio di 20 ms o 160 campioni, codificati in 303 bit di dati più 1 bit vuoto. Ciò corrisponde a 38 ottetti o byte per blocco.
| netto | RTP lordo con IPv4 | RTP lordo con IPv6 | |
|---|---|---|---|
| Velocità dati in kbit/s | 15.2 | 31.2 | 39.2 |
Gli sviluppatori di iLBC caratterizzano l'iLBC 20, che è più giovane dell'iLBC 30, come segue:
"Rispetto [...] alla modalità frame size di 30 ms, questa modalità da 15,2 kbps è caratterizzata da: qualità di base più elevata, robustezza della perdita di pacchetti più elevata, complessità inferiore e ritardo algoritmico".
"Rispetto alla modalità con lunghezza di blocco di 30 ms, questa modalità da 15,2 kb/s ha le seguenti proprietà: maggiore qualità di base, maggiore robustezza contro la perdita di pacchetti, minore complessità e minor ritardo algoritmico."
Segnalazione RTP delle modalità
Il protocollo tipico per la trasmissione di flussi di dati in Internet è RTP . Tra le altre cose, viene utilizzato per VoIP con SIP. Per negoziare sull'intero percorso di trasmissione quali formati di dati sono disponibili o consentiti dai partecipanti alla chiamata e sui server, i singoli punti lo segnalano nell'area dati dell'intestazione SIP come offerta SDP . Se si preferisce iLBC 20, questa offerta SDP si presenta così :
a=rtpmap:109 iLBC/8000 a=fmtp:109 mode=20
Se si preferisce iLBC 30, si applica la modalità = 30 :
a=rtpmap:109 iLBC/8000 a=fmtp:109 mode=30
Se entrambi i partecipanti alla sessione non possono concordare una determinata variante, verrà utilizzata quella che richiede la larghezza di banda minima. Quindi questo sarebbe mode = 30 .
Poiché l'implementazione di entrambe le varianti in un client VoIP o anche in un server VoIP si rivela spesso difficile, spesso viene implementato solo mode = 30 e viene omesso mode = 20 .
Il modo in cui i blocchi iLBC devono essere trasmessi con RTP è descritto in modo specifico in RFC 3952 ( formato di payload RTP ( Real-time Transport Protocol) per Internet Low Bit Rate Codec (iLBC) Speech )).
Licenza
In origine, la procedura era disponibile solo nella versione in virgola mobile esente da canone . Per la versione in aritmetica a virgola fissa richiesta su microcontrollori e DSP a virgola fissa , i costi di licenza dovevano essere pagati a Global IP Solutions. A seguito dell'acquisizione di GIPS da parte di Google Inc. , il processo è disponibile per tutti senza costi di licenza per un uso illimitato. L'implementazione di riferimento è distribuita come software libero sotto i termini di una licenza simile a BSD .
Rispetto a G.729A
- Qualità di base superiore a G.729A , maggiore robustezza contro la perdita di pacchetti
- Complessità computazionale paragonabile a G.729A
- A differenza della licenza libera G.729a, uso gratuito
Guarda anche
link internet
- sito storico (inglese)
Evidenze individuali
- ↑ ( pagina non più disponibile , ricerca negli archivi web: informazioni su licenza e prodotto su iLBC )
- ↑ ( pagina non più disponibile , cerca negli archivi web: webrtc.org )