Comment compresser avec le CODEC mlaw

Slides:



Advertisements
Présentations similaires
Approximation CHEBYSHEV.
Advertisements

STATISTIQUE INFERENTIELLE L ’ESTIMATION
PRINCIPE SIMPLIFIE DE LA COMPRESSION MP3
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
S.S.I., ESSI1, lundi 9 mai 2005 Page 1 Comment compresser avec le spectre Séance 10, 1 heure Version : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni Contenu.
S.S.I., ESSI1, samedi 10 avril 2004 Page 1 Comment tailler les filtres sur mesure Séance 8, nouvelle application des filtres, 1 heure Version : samedi.
Comment créer des filtres d’ordre 1 et 2
1 Insérez ici votre logo Insert here your logo! Atelier laboratoires virtuels Un cours pour introduire le traitement du signal à laide de lordinateur.
Comment calculer le spectre d’un signal audio
Cours 5 – Comment bien échantillonner le signal audio
SuivantPrécédent ESSI 1 - Auto TS © Jean-Paul Stromboni (Mai 2000) Consolidation: tester les connaissances acquises 1 Etude de la commande du système.
Comment décimer les sons numériques
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Filtres (n entier, Te=1s)
Calcul de la composition fréquentielle du signal audio
1 Jean-Paul Stromboni, mars 2005, Révision des cinq premières séances S.S.I. Jean-Paul Stromboni, mars 2005, ESSI1 Elève : ______________________ groupe.
Atelier laboratoires virtuels
Du signal continu au numérique
Les tests d’hypothèses (I)
Inférence statistique
Les TESTS STATISTIQUES
Les TESTS STATISTIQUES
Traitement du Signal Hugues BENOIT-CATTIN.
Comment créer des filtres « simples »
Comment bien échantillonner
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
Extraits choisis du cours S.S.I.I.
Régression -corrélation
AutoBilan MATLAB – SSII – SI3 – sept 2009 Page 1 Quel est leffet de linstruction ? Répondez ci-dessous Ok ? D=1; fe=1000 num2str(fe) num2str(d) ['la valeur.
Sous-échantillonner le signal audio pour compresser
1 PolytechNice-Sophia, Département S.I., S.I.3, octobre 2012, Jean-Paul Stromboni Séance 7 : Retour sur les cinq premiers chapitres du cours S.S.I.I.
Sauver un signal audio numérique dans un fichier wave
Extraits choisis du cours S.S.I.I.
S.S.I.I., , n°7 : Construire et utiliser un banc de filtres Page 1 Construire et utiliser un banc de filtres pour analyser le spectre dun signal.
Cours S.S.I.I., , n°8, Créer des filtres pour compresser Cours S.S.I.I., , n°8, : Créer des filtres pour compresser Page 1 Mise en œuvre.
5. Echantillonnage Introduction
SSII : séance finale , lundi 9/01/2012 Page 1 Voici quelques questions pour assimiler la seconde partie du cours S.S.I.I., spectre, filtrage, banc.
S.S.I.I., , cours n°8 : Compresser avec un banc de filtres Page 1 Compresser avec un banc de filtres Le contenu de ce cours : T.D. n° 8 : simulation.
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
1 par Jean-Paul Stromboni, octobre 2008 Un autobilan pour réviser le devoir surveillé n°1 du cours S.S.I.I., par Jean-Paul Stromboni, octobre 2008 Elève.
Un principe de compression d’image
Filtrer le signal audio numérique (n entier, Te=1s)
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Filtrer le signal audio numérique
Un moyen de compresser le signal audio présenté à travers un exemple
S.S.I., ESSI1, le 8 février 2004 Page 1 Numériser le signal audio Séance 2, cours, 1 heure auteur : Jean-Paul Stromboni Idées clefs de la séance De nombreuses.
1 Insérez ici votre logo Insert here your logo! ANNEXES de TICE 2002 Un cours pour introduire le traitement du signal à laide de lordinateur multimédia.
1 Introduction au module S.S.I. Signaux et Systèmes pour lInformatique le thème et les motivations du module S.S.I. les connaissances et le savoir faire.
Le test t.
La corrélation et la régression
Université dOttawa - Bio Biostatistiques appliquées © Antoine Morin et Scott Findlay :47 1 Concepts fondamentaux: statistiques et distributions.
Corrélation Principe fondamental d’une analyse de corrélation
Les formats Débutant – Semaine 4.
Utiliser le spectre et la transformée de Fourier
- énergie bornée (tend vers 0 lorsque
Introduction.
1 28 mai 2002Jean GARNIER CCT Composants Séminaire CAN CARACTERISATION ELECTRIQUE DES CONVERTISSEURS ANALOGIQUE/NUMERIQUE.
Cours S.S.I.I., , n°7, Créer des filtres pour compresser Cours S.S.I.I., , n°7, : Créer des filtres pour compresser Page 1 Retour sur le.
Partie II: Temps et évolution Energie et mouvements des particules
Extraits choisis du cours S.S.I.I.
Probabilités et Statistiques Année 2010/2011
TNS et Analyse Spectrale
APPLICATIONS Convertisseur ΣΔ.
Retour sur les filtres et bancs de filtres Jean-Paul Stromboni, décembre 2007.
S.S.I.I., , cours n°9 : Compresser avec un banc de filtres Page 1 Compresser avec un banc de filtres Contenu de cette séance : T.D. n° 9 : application.
Calcul de la composition fréquentielle du signal audio
1 23 mars 2004, Jean-Paul Stromboni Signaux et Systèmes pour l’Informaticien Bilan essais erreurs des six premières séances Module SSI d’ESSI 1– 23 mars.
SSII, séance n°13, bilan du cours 15 décembre 2015 Dernière séance 2015 Résumé des chapitres et notions abordées en 2015.
Qu'est-ce que le son ? Le son est une vibration de l'air, c'est-à-dire une suite de surpressions et de dépressions de l'air par rapport à une moyenne,
UED SIM – Département OLCI Année Arts & Métiers ParisTech CER ANGERS Probabilités et statistiques Cours n° 2.
Transcription de la présentation:

Comment compresser avec le CODEC mlaw Jean-Paul Stromboni, mardi 4 mai 2004 ESSI 1, module SSI , 1h, amphi est Objectifs de la séance : Rappeler comment on quantifie un signal audio avec B bits Montrer comment on évalue le bruit de quantification Calculer le rapport signal sur bruit SNRdB(B) Justifier l’emploi d’une loi de quantification non uniforme Evaluer le CODEC mlaw à l’aide d’un exemple

Pour vous tester sur ce cours  On annonce un rapport signal sur bruit de 48dB. Qu’est ce que cela signifie précisément ? Donner l’expression de la loi m inverse : En général, le CODEC mlaw est-il plus performant que le CODEC MPEG audio layer 3 ? Quel est l’effet d’une réduction d’amplitude du signal x sur le SNR ? Un signal aléatoire x présente une répartition uniforme dans [-1,1]. Que peut-on en déduire ? Quand l’erreur de quantification augmente, quel est l’effet sur le rapport signal sur bruit ? Si le nombre de bits utilisés B diminue, quel est l’effet sur le rapport signal sur bruit ? On ramène nombre de bits de 12 à 8 avec le CODEC mlaw. Quel est le taux de compression résultant ?

Comment quantifier le signal issu du micro Quantifier l’échantillon : c’est le contraindre à une valeur parmi 2B possibles. L’intervalle [-1,1[ est dé-coupé en 2B intervalles Ii avec i = 0,1,2,… 2B-1 de la forme Ii = [ai,ai+D[ Si x(nTe) appartient à l’in-tervalle i, on lui associe dans la suite de ce cours : la valeur xi au centre de l’intervalle et le code binaire i sur B bits On définit ainsi l’erreur de quantification e(nTe) : Pour B = 8 bit, que vaut D ? Et dans ce cas que vaut l’intervalle I0 ?

Ce n’est pas la seule façon de quantifier 1. Ici, xi est le centre de l’intervalle (loi rouge). L’erreur est donc tantôt > 0, tantôt < 0, et nulle en moyenne. Elle varie entre ? valeur xi quantifiée -2-B et 2-B 2. on choisit pour xi dans un CAN, la borne inférieure de l’intervalle. L’erreur est donc toujours < 0. Elle varie entre ? 0 et -2-B+1 Amplitude x de l’échantillon à quantifier Préciser i, xi , et l’erreur de quantification avec les deux lois pour les valeurs x= 0.2 , x= -0.2, x= 0.9

On illustre la quantification avec Matlab La fonction numerise quantifie sur 8 bits les échantillons de s(t) et permet d’analyser l’er-reur de quantification : t=[0:1000]/44100; s=sin(880*pi*t); sq=numerise(s,8); %calculons l'erreur eq=sq-s; % étude de l'erreur max(eq) = 0.004 min(eq) = -0.004 mean(eq) = -3.6*10-5 std(eq) = 2.2*10-3 hist(eq, 64) Qu’observe t’on pour l’erreur ?

La qualité de la quantification se mesure en décibel au moyen du rapport signal sur bruit (ou SNR). L’erreur de quantification est centrée (à valeur moyenne nulle) : On en tire la variance de l’erreur et l’expression du rapport signal sur bruit (en décibel) :

On doit gérer l’erreur comme un signal aléatoire L’erreur de quantification e(nTe) est notée e : Elle est traitée comme un signal aléatoire, on dit aussi un bruit. On lui associe donc une densité de probabilité p(e) c’est-à-dire que la probabilité d’avoir est d’où la valeur moyenne de e : et la variance ou l’écart-type qui mesurent l’écart moyen de e à la valeur moyenne E(e) :

Hypothèse d’une erreur uniformément répartie L’hypothèse que p(e) est constante dans [-2-B,2-B] est d’autant plus plausible que : Quelle est la probabilité que ?

Il faut évaluer sx à partir du signal x(nTe) Pour calculer précisément le rapport signal sur bruit, on fera une étude statistique du signal, comme pour l’erreur de quantification. En pratique, x(nTe) n’occupe qu’une partie de l’intervalle [-1,1]. évaluer p(x) et sx si x est centré et uniformément réparti dans [-1,1[

On illustre avec le fichier piano_c3.wav [y,fe,b]=wavread('../Sons/piano_c3.wav'); disp(num2str(fe)) disp(num2str(b)) N=length(y) mean(y) std(y) hist(y,100) Nombre d’échantillons fe = 44100 Hz b = 16 bit N= 77566 max(y)= 0.8533 min(y)= - 0.9999 mean(y) = - 0.0012 std(y) = 0.1528 Valeurs des échantillons entre -1 et 1 Le signal x est il centré et uniformément réparti ? Quel est l’effet sur sx ?

Abaque donnant SNRdB(B) pour sx=1/3 L’écart type sx mesure l’occupation de l’interval-le [–1, 1] par le signal x. Voici le script Matlab qui trace l’abaque ci-contre avec sx=1/3 : sigx=1/3 b=0:16; SNR=6.02*b+4.77+20*log10(sigx); plot(b,SNR) grid xlabel('b=nombre de bits') ylabel('Signal to noise ratio (dB)') title('Tracé pour \sigma_x=1/3') Quel est l’écart de rapport signal sur bruit entre B=8bits et B=12bits ?

mlaw: loi de quantification non uniforme Les niveaux de quantification sont mal utilisés par le signal x(nTe) quand la répartition des échantillons n’est pas uniforme, il en résulte une chute de sx, donc du rapport signal sur bruit. Le CODEC mlaw applique une non linéarité Q[.] (voir ci-dessous) au signal x pour répartir mieux les valeurs des échantillons et donc augmenter le rapport signal sur bruit. Si on quantifie y= Q[x], on peut réduire le nombre de bit B en dégradant un peu le SNR, d’où on tire des taux de compression de l’ordre de C=3/2 (12 bits 8 bits) sur le signal vocal en téléphonie ou C=2 (16 bits 8 bits).

Tracé avec Matlab de y =Q[x] (ici m=28-1) function ymu=mulaw(x) mu=255; N=1+mu; ymu=sign(x).*log(1+mu*abs(x))/log(N); % puis dans l’interpréteur Matlab x=[-1:0.01:1]; plot(x,mulaw(x)) function [y]=invmulaw(xmu) mu=255; N=1+mu; y=sign(xmu).*(exp(log(N)*abs(xmu))-1)/mu; function yn=numerise(y,b) % code y sur b bit, retour dans yd % y est supposé varier entre -1 et 1 N=2^b; yn=(1+2*fix((y+1)*N/2))/N - 1; yn(length(yn))=yn(length(yn)-1);

Comment mlaw transforme piano_c3 b = 8 bit  SNR Quantifier mlaw inverse hist(x,64) hist(y,64) hist(y8,64) hist(xdec,64) 12000 12000 3000 3000 Que démontre cette chaîne ?

On vérifie que mlaw améliore le SNR Klf1.wav 8 bit m-1 snr1 8 bit snr2 [x,f,b]=wavread('../Sons/klf1.wav'); x8=numerise(x,8); std(x) y=mulaw(x); std(y) y8=numerise(y,8); xrec=invmulaw(y8); % calcul du rapport signal sur bruit er=x-x8; snr1=20*log10(std(x)/std(x-xrec)) snr2=20*log10(std(x)/std(er)) Résultats de MATLAB std(x) = 0.0541 std(y) = 0.3567 snr1 = 37.7157 dB snr2 = 27.5937 dB

Comment on utilise mlaw pour compresser piano_c3 m 8 bit m-1 1/8 [x,fs,b]=wavread('../Sons/piano_c3.wav'); xdiv8=x/8; % on divise le signal par 8 pour dégrader SNR x8=numerise(xdiv8,8); % on numérise sur 8 bit % numérise est une fonction à écrire par ailleurs % compression : on applique la loi mu y=sign(xdiv8).*log(1+255*abs(xdiv8))/log(256); y8=numerise(y,8); % décompression : on applique la loi mu inverse xrec=sign(y).*(256.^abs(y8)-1)/255; sound([8*x8;8*xrec],fs) % on joue les deux sons Comparer x8 et y8 et évaluer le taux de compression