Domanda

Ho un modem Omni56K Duo ZyXEL USB e desidero inviare e ricevere voce flussi su di esso, ma per raggiungere la qualità adeguata, probabilmente ho bisogno di attuare alcune codifica "ZyXEL ADPCM", perché PCM pianura fornisce troppo piccolo frequenza di campionamento di trasmettere anche a medio voce di qualità, e non funziona tramite USB o (probabilmente perché anche questo bitrate è troppo alto per il convertitore USB-seriale in esso).

Questa misteriosa figure codec in tutte le librerie Microsoft WAV-correlati come uno dei tanti codec teoricamente supportati da essa, ma ho trovato nessun implementazioni.

Qualcuno può offrire un'implementazione in qualsiasi lingua o forse un po 'di documentazione? Scrivere un algoritmo personalizzato mu-law decodifica non sarà un problema per me.

Grazie.

È stato utile?

Soluzione

Non sono sicuro di come ZyXEL ADPCM varia da altri sapori di ADPCM, ma varie implementazioni ADPCM può essere trovato con alcune ricerche su google.

Tuttavia, il vero motivo del mio post è il motivo per cui la scelta di ADPCM. ADPCM è adattivo differenziale modulazione pulse-code. Ciò significa che i dati che vengono passati è la differenza nei campioni, non il valore corrente (che è anche il motivo per cui si vede così grande compressione). In un ambiente pulito senza perdita bit (cioè unità disco), questo va bene. Tuttavia, in un ambiente streaming, sua generalmente che i bit possono essere periodicamente alterati. Eventuali danni bit per i dati e Sentirete artefatti audio statici o altri molto rapidamente e di solito, abbastanza male.

meccanismo di ripristino di ADPCM non è incorniciato basa, che significa che i problemi audio possono andare avanti per un periodo prolungato di tempo a seconda del codificatore. Il codice di reset è un genere un insieme di 0 (16 viene in mente, ma i suoi anni passato da quando ho scritto le mie porte).

ADPCM in ambiente di telefonia di solito converte un campione PCM a 12 bit a un campione ADPCM 4 bit (non male). Per quanto riguarda la qualità audio ... non male per conversazioni telefoniche e la parola, ma la maggior parte delle persone, in un test cieco, può facilmente rilevare la caduta di qualità.

Nella tua ultima frase, si getta una palla curva nella questione. Si inizia a menzionare muLaw. muLaw è un'implementazione PCM che prende un campione di 12 bit e la trasforma utilizzando una scala logaritmica di un campione di 8 bit. Questo è il meccanismo tipico di compressione per TDM (telefono) networkworks in Nord America (la maggior parte del resto del mondo, utilizza un algoritmo simile chiamato ALaw).

Quindi, io sono confuso quello che in realtà si sta cercando di trovare.

È anche citato Microsft e le implementazioni WAV. Probabilmente conoscete, ma solo nel caso, che WAV è solo un wrapper per i dati audio che fornisce formato, il campionamento informazioni, canali, dimensioni e altre informazioni utili. Senza WAV, AU o altri involucri coinvolti, muLaw e ADPCM sono solitamente presentati come dati grezzi.

Un altro suggerimento, se si implementa ADPCM. Come ho indicato, usano 4 bit per rappresentare un campione di 12 bit. Ottengono via con questo da entrambe le parti con un tavolo moltiplicatore. La posizione in tabella cambiano in base al valore di 4 bit (in altre parole, il valore è sia multiplo contro una dimensione di fase e utilizzato per capire la nuova dimensione del passo). Ho visto una varietà di algoritmi utilizzano tabelle leggermente diverse (idea del perché, ma in genere si vede i segnali inviati e ricevuti allontanano lentamente fuori il bias). Uno dei pacchetti audio popolari più grandi è stato diverso da quello che di solito visto dai fornitori di hardware di telefonia.

E, per curiosità più inutile, ci sono molteplici sapori della ADPCM. Le variazioni coinvolgere la dimensione della tabella, la dimensione del campione di origine e di destinazione del campione, ma non ho mai avuto bisogno di lavorare con loro. Basta documentato sapori che ho trovato quando ho fatto la mia ricerca su Internet per le specifiche per i vari formati audio utilizzati nella telefonia.

Altri suggerimenti

Tubazioni vostro PCM attraverso ffmpeg -f u16le -i - -f wav -acodec adpcm_ms - sarà probabilmente il lavoro.

http://ffmpeg.org/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top