2012-11-26 9 views
7

Sto provando a creare un algoritmo di base che nasconda l'occultamento della perdita di pacchetti per l'audio di base. Voglio semplicemente sostituire i dati mancanti con il silenzio ... nel libro che apprende l'audio di base, l'autore dice che nel PCM senza perdita, gli zeri significano il silenzio. Mi stavo chiedendo se sto giocando a VBR (cioè dati compressi), mettere zeri sufficienti anche per il silenzio?core audio: è equivalente a zero solo per il silenzio solo per l'audio PCM?

Nel mio codice esistente .. quando inserisco zeri nella coda audio .. si blocca improvvisamente (vale a dire che non è più libera consumato dati nella coda di callback audio ..) e mi chiedo il motivo per cui

+0

Per i formati compressi più popolari, la sostituzione dei dati mancanti, ad esempio con una rampa di silenziamento dopo la decompressione, non è l'unico problema. (Ri) Sincronizzare con un flusso di dati compresso dopo il drop-out è anche un grosso problema. Non puoi iniziare a decodificare da nessuna parte, e avere i dati ha senso. – hotpaw2

risposta

3

PCM è l'esempio codificato non elaborato. Tutto 0 (quando si usano i dati firmati per i campioni) è davvero il silenzio. (In realtà, tutto il valore è silenzio, ma un tale offset DC può danneggiare l'amplificatore e/o gli altoparlanti, se non è filtrato.)

Quando si comprime con un codec lossy, si inserisci un formato digitale dove non è banale aggiungere semplicemente il silenzio. Pensa di aggiungere dati a un file ZIP per aggiungere byte null alla fine di un file. Non è così semplice come basta inserirli arbitrariamente nel file ZIP.

Se si desidera aggiungere silenzio a un file compresso, è necessario farlo utilizzando il codec appropriato. Quindi, devi adattarlo al flusso di bit, che non è banale. Di solito il flusso è suddiviso in fotogrammi, ma in alcuni formati non è possibile dividerli. MP3 e AAC usano un po 'di riserva dove i dati inutilizzati nei frame precedenti possono essere usati per codificare più fotogrammi complicati in seguito, rendendo molto difficile la suddivisione del file.

+0

Cosa succede se converto il formato dati compresso (ad esempio MP3 o AAC) in PCM .. * quindi * aggiungi il silenzio sotto forma di zeri .. che dovrebbe essere un'operazione semplice, giusto? – abbood

+0

Questo è corretto. Tieni presente che se desideri comprimere nuovamente, perderai qualità aggiuntiva nell'audio. La ricompressione – Brad

+0

non sarà necessaria .. b/c suonerò la musica immediatamente dopo averla decompressa e inserito le parti silenziose .. detto questo .. la mia unica preoccupazione è la latenza .. il mio l'applicazione è in tempo reale: un telefono trasmette musica ad altri telefoni che dovrebbero ricevere i pacchetti audio e riprodurli in sincrono .. se il tempo di decompressione è costante .. di quello aggiungerà solo un tempo di buffering costante all'inizio ... ma se è variabile .. allora sono nei guai – abbood