12.07.2015 Views

COMPRESSION D'UN SIGNAL CODEC AUDIO ... - UV UTBM J. Millet

COMPRESSION D'UN SIGNAL CODEC AUDIO ... - UV UTBM J. Millet

COMPRESSION D'UN SIGNAL CODEC AUDIO ... - UV UTBM J. Millet

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>COMPRESSION</strong> D’UN <strong>SIGNAL</strong><strong>CODEC</strong> <strong>AUDIO</strong>, VIDEOAvant de transmettre, le signal numérisé on peut vouloir changer sa représentation en éliminant des redondances =>Compression. Il y a 2 types de compression- Avec pertes = supprimer ce qui est mal perçu => lié à la perception=> Après décompression on a perdu des informations,- Sans perte = supprimer les redondances.=> Après décompression, on a au bit près le message d'origine.Le codec est caractérisé par:Débit de sortieTemps de calcul nécessaireComplexité de calcul = Ressources nécessairesPerte de qualitéI) Compressions sans perte RLEChaque fois qu’un caractère se répète, on transmet un code de contrôle, le nombre de fois qu’il se répète et le caractère=> Efficace si on a beaucoup de répétitions ( pixels d'une image ).Exemple : ABBAAAAACBBBDDD devient A%2B%5AC%3B%3D Huffman : 1940On change la taille des codes: Codage statistique ou entropique.On affecte aux caractères - fréquents un codage court,- rares un codage long.=> Souvent des codes courts, rarement des longs => GainMais il faut aussi transmettre au récepteur le dictionnaire pour qu'il fasse le décodage.Exemple : ABBAAAAACBBBDDD devient 1000011111011000000010010010 car A=1, B=00,C=011,D=010 LZW ou V42bis : 1984 ( fichiers zip, arj,…, GIF, TIFF5 pour les images ).Huffman travaille sur des caractères séparés, LZW prend en compte des chaînes de caractères.Principe: L'émetteur lit les caractères du fichier ( exemple : 8 bits ).Il fabrique un tableau avec les caractères et les caractères précédents.Il transmet l’adresse de la chaîne de caractère dans le tableau.( exemple : adresse sur 12 bits = table de 4096 chaînes ).Si on a un caractère, on transmet l'adresse 12 bits à la place du caractère 8 bits => Pas de compression.Mais dès que l'on a des combinaisons de 2, 3 ou plus de caractères, l'adresse 12 bits est plus petite => Gain.ALGORITHME DE<strong>COMPRESSION</strong> :Initialisation de la table : Placer les caractères 0 à 255 aux adresses 0 à 255 de la table.Chaîne = videFaireLire le caractère CSi chaîne + C est dans la tablechaîne = chaîne + Cne rien émettresinonémettre l’adresse de chaîneajouter chaine+C à la tablechaîne = CJusqu’à ce que le caractère lu = finEn plus de l’efficacité, il n’y a pas à transmettre le dictionnaire car le récepteur va construire la table de la mêmemanière qu'il a été construit.J. <strong>Millet</strong> 1Codecs


II) Transformée de Fourier en cosinus discrets : DCTOn a besoin de connaître les fréquences d'une information en 2 dimensions x,y. Au lieu de la FFT, on utilise la DCT:1DCT i jN c i c j N−1N−1 ⎛ x i y j( , ) ( ) ( ) Pix( x, y) cos ( 2 + 1=∑) π ⎞ ⎛⎜ ⎟ cos ( 2 + 1⎜) π ⎞∑⎟2 x=0 y=0⎝ 2N⎠ ⎝ 2N⎠où c(n) = 22si n=0 et c(n) =1 sinon.On applique cette transformation à des blocs de pixels 8×8 ( représentation spatiale ).=> On obtient une représentation spectrale 8×8 ( fréquence horizontale × fréquence verticale ).Le schéma indique ce que sont :- Fréquences basses: Peu de variations( bloc en haut à gauche )- Fréquences verticales croissantes( descendre une colonne )- Fréquences horizontales croissantes( ligne de gauche à droite )- Fréquences hautes: Variations rapides( bloc en bas à droite )Le point (0,0) d’un bloc est la valeur moyenne des pixels du bloc ( fréquence 0 ).L'oeil humain est moins sensible aux hautes fréquences => Mauvais codage pour gagner de la place.La DCT est une autre transformation que la transformation de Fourier discrète ( TFD ) bidimensionnelle ( ou saversion simplifiée FFT ). Elle en découle mais a en plus les avantages (moins de distorsion après troncature et transformée inverse).III) Compression audio Codecs d'origine TélécomsSelon la technique de codage ( codec ), on a des variations de qualité ( dégradations ), de débit, de latence=> Indice de qualité:- Indice MOS ( Mean Opinion Score = Note moyenne d’opinion ) : Norme UIT P800.C’est une note donnée par des gens choisis comme testeurs => Relativement subjectifLa note va de 5 à 1( 5 = excellent, 4 = bon, 3 = correct, 2 = médiocre, 1 = mauvais )- Indice PSQM ( Perceptual Speech Quality Measure ) : Norme UIT P861Compare le message source au message reçu.- Indice R : Norme UIT G109R = Ro – I S – I d – I e + A qui intègre Ro pour les effets de bruit, I S pour les effets de la numérisation, I d pour leseffets d’écho, I e pour les dégradations causés par les équipements utilisés ( transcodage, perte de paquets,…), A quiest le facteur d’expectative = diminution d’indice acceptée par un usager pour le système utilisé.De 100 à 90 qualité optimale, 90 à 80 qualité haute, 80 à 70 qualité moyenneDe 70 à 60 qualité médiocre, 60 à 0 qualité mauvaise.Exemple : pour RTC, A =0, pour GSM A=10J. <strong>Millet</strong> 2Codecs


Cas del’indiceMOSson parfait( face à face )Indice MOS( mean opinionscore ) dequalité4,2 4 4 3,6 4 3,9 3,5Nom MIC MICDA LD-CELP RPE-LTP CS-CELP ACELP CELPNorme G711 G726 G728 GSM 06-10 G729 G723.1 DOD FS 1016Débit kbit/s 64 32 16 13 8 6,3 4,8Temps 125 µs 300 µs 625 µs 20 ms 15 ms 37,5 ms 50 msComplexitéen MIPSmillions d’instructions/s0,1 12 33 2,5 20 16 16NB : Ce tableau donne la qualité du codage seul ! ! ! ( sans transmission ).Dans le cas d’indice R :J. <strong>Millet</strong> 3Codecs


Codecs audio MpegLes normes de transmission audio les plus courantes sont celles utilisées en téléphonie :G711 ou PCM ( moi en µ ou en A ) : MIC 64 kbit/s ( voir TD: MIC 12 bits 8 kHz puis compression 8 bits ).GSM: Full Rate 13 kbit/s, Half Rate 5,6 kbit/sG729: payant ! il faut acheter des licences pour l'utiliser. 8 kbit/sIl en existe beaucoup d’autres en particulier pour les téléphones portables ( codec 3G ). Mais la compression audio laplus importante car la plus efficace est la compression MP3 = MPEG1 Layer 3.a) Propriétés psychoacoustiquesLa compression MP3 tient compte des propriétés de l’oreille :* Propriété 1 : Seuil de perceptionCette courbe montre la puissance minimale pour qu’un son soit audible selon sa fréquence.=> Une fréquence sous la courbe de perception est inaudible => On peut la supprimer.* Propriété 2 : Effet de masquageLa courbe de seuil est modifiée par la présence d’une fréquence de forte puissance=> Réduction de la sensibilité à un son en présence d’un autre.808060 Trames MP3604040202000 5 10 15Présence d’une fréquence00 5 10 15Présence de 3 fréquencesJ. <strong>Millet</strong> 4Codecs


) Codage audio MPEG1 couche 1 ( layer 1 )MPEG détermine les fréquences présentes dans une fenêtre de mesure : 384 échantillons : 8ms à Fe = 48 kHz.Puis élimine les fréquences sous le seuil.On traite 32 bandes de fréquences ( banque de 32 filtres en parallèle ):La sortie des filtres ( 12 valeurs ) donne le spectre => On en déduit le masquage à appliquer ( Puissance dans une bandesous le seuil de masquage => on ne la code pas. )On utilise aussi un facteur d’échelle par sous bande = gain pour ne pas avoir de quantification de volume faible=> Cela diminue le bruit de quantification ( quantification non uniforme ).Ce facteur d’échelle sera transmis pour que le décodeur puisse faire l’opération inverse.c) Codage audio MPEG1 couche 2 ( layer 2 )Une FFT à 512 points est faite pour déterminer le modèle de masquage avec plus de précision => Il faut augmenter letemps de calcul pour une bonne résolution en fréquence.=> On utilise 3 trames pour faire les traitements : 1152 échantillons qui sont divisés en 2 groupes, des granules de 576échantillons chacun. On aura 2 granules de 32 sous-bandes.d) Codage audio MPEG1 couche 3 ( layer 3 ) = MP3- On utilise des filtres plus précis, des fenêtres de correction d’effets indésirables dus aux filtres et une transforméeMDCT ( modified DCT ) puis on réduit des effets de repliement dus aux filtres.- On tient compte aussi de masquage temporel : Non seulement une fréquence puissante masque les autres enmême temps, mais l’oreille ayant une perception lente ( 1 ms ), elle masque aussi les sons auparavant et après.- Outils liés aux redondances de la stéréo (JS Joint Stereo: IS Intensity St = Mono+Infos sup ou M/S St Mid/Side = L+R et L-R).- On utilise un codage de Huffman des données.J. <strong>Millet</strong> 5Codecs


V) Compression avec perte d’image : Elimination de redondances spatialesJPEG ( Joint Photographic Experts Group) = Groupe de travail commun à l’IUT ( Union Internationale des Télécoms ) et l’ISO( Organisation Internationale de Standardisation ) sur la compression d’image. Début en 1987 et 1er standard en 1991.T81 = norme JPEG pour l’UIT Définition d’une imageUne image est faite de pixels ( picture elements ), points élémentaires. Pour avoir la couleur, on doit définir 3plans. Une caméra donne Rouge, Vert, Bleu ( RVB ou RGB ).Image 256 couleurs : couleur d’un pixel RVB sur 8 bits => IndexationFichier BMP 256 couleurs : Pixels codés sur un octet = n° de couleur( En début de fichier , une table ou index associe 256 couleurs RVB 24 bits à un numéro ).Pour une image 16 millions de couleurs : couleur d’un pixel sur 24 bits.Fichier BMP 24 bits : Pixels codés sur 3 octets : Niveau R, niveau V, niveau B.Les systèmes noir et blanc utilise l'intensité des niveaux de gris = luminance Y. Pour pouvoir lire une imagenoir et blanc dans un signal couleur, on transforme RVB en Y<strong>UV</strong>.- Y Luminance : Variable à laquelle l’œil est très sensible => qui sera peu dégradée au codage,- U, V Chrominance : 2 variables liées à la couleur => que l’on peut plus dégrader.Luminance Y et chrominances Cb=U et Cr=V sont des combinaisons linéaires des niveaux R V B :Y = 0.299 R + 0.587 G + 0.114 BU = Cb = B - Y = -0.169 R - 0.331 G + 0.500 BV = Cr = R - Y = 0.500 R - 0.419 G - 0.081 B Principe de JPEG ( UIT-T T81 )Soit une image 640x480 RGB 24 bits/pixel.• 1ère étape : Transformation et ré-échantillonnage.- On passe en représentation Y U V = Y Cb Cr => On a 3 matrices RVB 640x480.- On réduit U et V à des matrices 320x240 = sous échantillonnage 4 :2 :0 Ligne 1 -> Y Y Y YLigne 2 ->Cr CrY Y Y YCb Cb- Chaque point de chaque matrice est codé sur 8 bits donc valeurs de 0 à 255.- On soustrait 128 à chaque élément => Mise à zéro du milieu de la gamme de valeur possible :-128 à +127.- Enfin chaque matrice est partagée en blocs de 8x8.J. <strong>Millet</strong> 6Codecs


• 2ème étape: DCT.La DCT sur les blocs 8x8 passe ces points du domaine spatial au domaine fréquentiel. Les axes X et Yreprésentent les fréquences du signal en deux dimensions. Elle donne une matrice 8x8 de coefficients defréquence: l'élément (0,0) représente la valeur moyenne du bloc, les autres indiquent la puissance spectrale pourchaque fréquence spatiale.• 3ème étape : La quantification.Les coefficients les moins importants pour la restitution de l’image ( hautes fréquences auxquelles l’œil estmoins sensible ) sont amoindris en divisant chaque élément par l'élément correspondant de la table dequantification. C’est la principale source de perte.16 11 10 16 24 40 51 61 17 18 24 47 99 99 99 9912 12 14 19 26 58 60 55 18 21 26 66 99 99 99 9914 13 16 24 40 57 69 56 24 26 56 99 99 99 99 9914 17 22 29 51 87 80 62 47 66 99 99 99 99 99 9918 22 37 56 68 109 103 77 99 99 99 99 99 99 99 9924 35 55 64 81 104 113 92 99 99 99 99 99 99 99 9949 64 78 87 103 121 120 101 99 99 99 99 99 99 99 9972 92 95 98 112 100 103 99 99 99 99 99 99 99 99 99Table de quantificationTable de quantificationrecommandée pour la luminance recommandée pour les chrominances Cb Cr• 4ème étape : remplacement des éléments (0,0)La DCT après quantification fournit de petites valeurs sauf en (0,0). On remplace chaque premier élément (0,0)des blocs (8x8) par sa différence avec l'élément correspondant du bloc précédent = Codage DPCM.Comme ces éléments sont les moyennes de leur bloc respectif, ils varient lentement => Différences petites =>nombres qui prendront moins de place mémoire.• 5ème étape : lecture zig-zagOn lit le bloc en zig-zag. A cause des propriétés de la DCT quantifiée, cela donne une suite de 64 nombres avecles éléments de même valeur proche les uns des autres. Ceci permettra d’améliorer la suite des opérations.• 6ème étape : Compression RLELa lecture zig-zag donne beaucoup de répétitions de codes. L’algorithme RLE est donc très efficace.• 7ème étape : Compression de HuffmanOn réalise une compression de Huffman. Cela suppose que l’on aura un dictionnaire à transmettre.J. <strong>Millet</strong> 7Codecs


Résumé :Remarque : JPEG 2000, la nouvelle version, utilise une transformation en ondelettes => Plus efficace et plus rapide.VI) Compression avec perte de vidéos : Elimination de redondances spatiales et temporellesMPEG ( Moving Picture Experts Group ) = groupe de travail d’un sous-comité de l’ISO ( MPEG1 en 1992, MPEG2 en 1994, MPEG4en 2000)H263 = approximativement norme MPEG2 pour l’UIT.H264 = approximativement norme MPEG4 pour l’UIT. H261 ( norme UIT pour la visioconférence )On a les formats CIF ( Common Intermediate format ) 352*288 ou QCIF ( Quarter CIF ) 176*144, de 7,5 à 30 images/s selon ledébit disponible.Une image est décomposée 12 groupes de blocs ( GOB ) comprenant 33 macroblocs faits de 4 blocs de 8*8 pixels.Le sous échantillonnage est alors réalisé 4 :2 :0 comme JPEG.J. <strong>Millet</strong> 8Codecs


La vidéo est décomposée en images- image I INTRA : Codage très proche de JPEG = Compression spatialeQuantification parvaleur constante ( pasde table comme enjpeg )Le calcul se faitsur des blocsd’image- image P PREDICTIVE : Compression temporelleLe calcul demouvement se fait surdes macroblocs.( 48 par 64 )J. <strong>Millet</strong> 9Codecs


La vidéo H261 est faitedes successions de trames I et P :Le nombre de trames dépendra du débit qui va de 64 kbit/s à 30×64 kbit/s ( groupements de canaux B RNIS ).Remarque : H263 = évolution de H261 ( 1996 ) proche de MPEG2.La compensation de mouvement est plus performante en introduisant des trames B ( voir MPEG ).On définit aussi de nouveaux formats :SQCIF : 128×96 pour Y, 64×48 pour chrominances, QCIF : 176×144, 88×72 CIF : 352×288, 176×1444CIF : 706×576, 352×288 16CIF : 1408×1152, 706×576Objectif: transmission sur RTC ( débit ≈ 28,8 kbit/s en SubQCIF à 10 images/s=> Qualité médiocre ). MPEG1MPEG reprend les bases de H261 :Images I IntraImages PPredictiveImages BBidirectionnelle( Bidirectionallypredictive )On code l’image quasiment comme en JPEG => Compression spatialeindépendante des autres images.Comme en H261, on calcule un vecteur de mouvement pour des macroblocs par rapport àl’image I ou P précédente.S’il y a modification, on code cette évolution, sinon on ne code rien pour le macrobloc=> Compression importante ( ½ d’une image I ).On réalise une comparaison avec des images I ou P, une image suivante et une précédente ( lesplus proches ).=> Recherche d’un macrobloc dans une image précédente et une suivante.Moins d’images I à transmettre=> Plus de compression, moins de débit.=> Transmission plus sensible aux erreurs.Pour éviter qu’une erreur se propage trop, on utilise des GOP ( group of picture ) de 12 à 15 imagesRemarque : Le codage demandera demémoriser des imagescodage I puiscodage P par rapport à I puiscodage B1 puis B2 par rapport à I et P=> B1 et B2 non codées sont mémorisées )L’ordre de transmission sera modifié avec cet ordre pour faciliter le décodage ( voir la suite ).= RVBJ. <strong>Millet</strong> 10Codecs


Le décodage se fait à l’inverse du processus de codage :1) Décompression de l’image I2) Décompression de l’image P ( avec utilisation de l'image RVB décodée liée à I précédente )Le décodeur utilise les macroblocs de I et le décodage de P pour restaurer les macroblocs redondants éliminésdes images P. Les vecteurs de mouvement indiquent leur localisation.3) Décompression de l’image B1 => On sait les modifications de cette image par rapport à l’image I qui la précède et àl’image P qui la suit. Or on a déjà reconstitué I et P => On en déduit l’image B non compressé.4) Idem pour B2 où les données de I précédente et P suivante sont disponibles.5) On remet dans l’ordre les images décodées : I, B1, B2, P ( sous entendu RVB liée à .. ).6) …imagecompresséesous entenduimage RVBliée à …L’image B Bidirectionnelle est construite selon la méthode suivante :La trame inclut des repères permettant un accès aléatoire au flux vidéo.Une image est découpée non seulement en macroblocs et blocs , mais aussi d’une autre manière, en « slice ». Celapermet de retrouver la synchronisation malgré des données perdues ou corrompues.J. <strong>Millet</strong> 11Codecs


MPEG2On reprend le principe de MPEG1 mais on ajoute un niveau de complexité avec le multiplexage de différentes sources=> Trames enrichies.1) Compression audio et vidéo.2) Insertion des données compressées et d’informations de contrôle dans le multiplex.3) Transport du multiplex sur le réseau.Ces différentes sources peuvent être de qualités différentes. On définit alors une source par un profil ( qualité ) et unniveau ( LEVEL : résolution ). MPEG4HIGH LEVEL(HL)HIGH-1440(H-14)MAIN LEVEL(ML)LOW LEVEL(LL) = CIFSimpleprofile (SP)I, PMain profile(MP)I, P,BNon défini 1920 × 1152,30 images/s80 Mbit/sNon défini 1440 × 1152,30 images/s60 Mbit/s720 × 576,30 images/s15 Mbit/s720 × 576,30 images/s15 Mbit/sNon défini 352 × 288,30 images/s4 Mbit/sSNR profileI, P,BSpatialprofileI, P,BHigh profileI, P,BNon défini Non défini 1920 × 1152,30 images/s100 Mbit/sNon défini 1440 × 1152,30 images/s60 Mbit/s720 × 576,30 images/s15 Mbit/s352 × 288,30 images/s4 Mbit/s1440 × 1152,30 images/s80 Mbit/sNon défini 720 × 576,30 images/s20 Mbit/sNon défini Non définiMPEG-4 se décompose en une suite de normes = les parties contenant : - profils (collection d'algorithmes)et - niveaux (contraintes quantitatives)Les 2 parties importantes concernant le codage vidéo sont les parties:- partie 2: Un des profils est l'ASP (Advanced Simple Profile) = codec de compression pour signaux vidéo.- partie 10: AVC (Advanced Video Codec) appelé aussi H264 = codec avancé de compression vidéo.La partie 2 est en fait du mpeg2 amélioré (DivX, Xvid, Quicktime 7 ).La partie 10 en revanche, le codec mpeg4 AVC est la vraie nouveauté ( H264 reprend en fait seulement certaines partiesde cette norme mpeg4 AVC ). On a alors un fonctionnement complètement différent de mpeg2: En plus d'une meilleurecompression, le flux peut être décomposé en 2 parties ( minimum basse qualité à débit limité, un supplément qui vaaugmenter la qualité, la résolution ).Exemples: DVB recommande uniquement les profiles Main@L3/4 et High@L4 de H264.=> TV numérique standard sera du Main@L3 .TV numérique HD en Main ou High @level 4.Décomposition de l'image en objet ( plus en blocs ) => AVO ( audio visual object )ScènePersonne Décor 2D Mobilier MusiqueVoix Visage Chaise BureauLe BIFS ( BInary Format for Scene description ) permet de décrire les objets présents. H265Cette compression n’utilise plus de macrobloc mais le codage arithmétique CABAC (Context-adaptive binary arithmetic coding)Voir http://linuxfr.org/news/h-265-est-finaliseJ. <strong>Millet</strong> 12Codecs


VII) Formats de vidéo Affichage entrelacé / progressifUne vidéo est faite d'une suite d'images qui défilent => Au moins 15 images/s pour que l'oeil humain voit un mouvementfluide ( cinéma 24 images/s, vidéo 25 à 30 images/s: PAL, SECAM à 25 images/s, NTSC à 29,97 images/s ).Le signal du téléviseur à tube cathodique se base sur la fréquence du réseau électrique ( 50 Hz en Europe, 60 Hz auxUSA ).Téléviseur cathodique PAL SECAM: 625 lignes en 50 Hz ( 576 utiles, 49 de services: synchro, télétexte ).NTSC: 525 lignes en 60 Hz ( 480 utiles ) => donne en numérique VGA en 4:3 640×480.Entrelacement( I Interleaved ): Si le téléviseur affiche ligne après ligne à 50 Hz, l'oeil percevra l'évolution entre 2images successives = scintillement => Il balaie une demi image ( lignes impaires) puis l'autre ( paires ).La persistance rétinienne fait que l'homme ne voit qu'une image.Cela s'oppose à l'affichage progressif ( P progressive scan ): On affiche une image entière sans entrelacement( utilisation de fréquence interne d'affichage plus rapide que celle du réseau électrique ). Signal numériqueRésolution native: nombre de pixels horizontaux × verticauxi = affichage entrelacé, p = affichage progressifformat SD ( standard, non HD, ratio 4:3 ) = 576 i720×576 en entrelacé ( interleaved )format HD Ready ( ratio 16:9 ) = HD 720p1280×720 en progressif ( progressive )format full HD ( ratio 16:9 ) = HD 1080i1920×1080 en entrelacé ( interleaved )Remarque: Quad full HD ( ratio 16:9 )3840x2160 (différent du 4K du cinéma 4096x2160)Remarque: Choix de la source = Choix Fluidité / Définition pour un récepteur fullHDPour un écran FullHD, si on a le choix côté source entre 720p et 1080i ( si l'écran ne fait pas 1080p... ).=> Choix entre fluidité ( 720p est plus rafraîchi ) ou précision ( 1080i ).J. <strong>Millet</strong> 13Codecs


Formats d'écranJ. <strong>Millet</strong> 14Codecs


ConteneurLe conteneur est un format de fichier ou de trames permettant d'identifier, d'entrelacer et de localiser :- des flux vidéo: Codec identifié par le code FOURCC ( 4 character code = 4 codes ASCII )- des flux audio- des soustitres- des informations de navigation, sur les programmes ( programmes, menus, chapitres )- des metadonnées ( metadata ou tag ): type du programme, horaires, émission suivante,abonnement, paiement.Le but des développeurs est de permettre:- Le diffusion par internet ( HTTP, RTP )- Recherche rapide dans le fichier => Identification et synchronisation.- Résistance aux erreurs = Correction d'erreurs- Menus permettant de pointer vers des parties de fichier => Sélection.- Chapitrage: Découpage des fichiers.- Sous titres => Synchronisé avec les flux audio et vidéo, à incruster dans la vidéo.- Choix entre plusieurs pistes audio- Extension vers de nouvelles utilisations.Conteneurs courantsNom duconteneurDéfinitionVOB DVD Versioned Object Base: Utilisé dans les DVD =>codage mpeg2.Si on change l'extension du fichier en mpg, le fichierest lisible.Un DVD est fait de titres vidéos: VTS ( Video Title Set )Un VTS contient des VOB.Un VOB contient- un fichier de contrôle VTSI ( Video Title SetInformation ) = données de navigation.- un ou des VOB ( vidéo, audio et imagesmultiplexées ).Le VOB ne dépasse pas 1 Go.Il est composé de «cellules» (Cells)( avance rapide sur DVD ).- une copie du VTSI ( VTSI Backup ).En plus des VOB, un DVD contient des infos denavigation: fichier IFO ( Information ) et BUP ( Backupdu fichier IFO ).Video_TS.IFO = infos du menu principal accompagné deVideo_TS.vob = animation du menu principal.AVIAudio Video Interleaved: Format de Microsoft dérivéd'un format plus général: RIFF ( Resource InterchangeFile Format )( voir plus loin )Référenceshttp://www.mpucoder.com/DVD/vobov.htmlhttp://dvd.sourceforge.net"AVI Specification" sur le site MSDN( Microsoft Developper Network )ASF Advanced Systems Format/ développé par Microsoft, "ASF Specification" sur la site Microsoftdédié au streamingMPEG TS MPEG Transport Streamnorme ISO 13818-1( voir plus loin )MPEG PS MPEG Program StreamNorme ISO 13818-1( voir plus loin )MOV Quicktime MOVie ( QT1 en 1991, ... QT7 en 2005 ) http://developer.apple.com/technotesOGG On trouve aussi le nom OGM = OGG Media file www.xiph.orgdédié pour la voix au codec Vorbis, pour la vidéo au RFC3533 et RFC3534codec Theora.RM,RMVBRealMedia = Conteneur de RealNetworks( RM Streaming en CBR, RMVB = Streaming en VBR débitvariable )Codec audio RA ( RealAudio ), video RV ( RealVideo version 10qui utilise le codec RV40 !!! RV10 et RV20 basés sur H263, RV30et RV40 propriétaires )https://common.helixcommunity.org/http://www.realnetworks.com/products/codecJ. <strong>Millet</strong> 15Codecs


NSV Nullsoft Streaming Video ( développeur de Winamp ) Recherche "NSV specification"MKV Matroska www.mastroka.org/technical( format specification )3GPMP4Conteneur du 3GPP ( 3rd Generation PartnerShipProject ) = Normalisation du téléphone 3G ( UMTS ).Version simplifiée de MP4 ( video en H263=MPEG4 ASP part 2 ouH264 = MPEG4 AVC part 10, audio en AMR-NB ou AAC-LC =AAC Low Complexity ).REmarque: Il existe le format 3g2 pour le groupe de normalisation3GPP2.Basé sur le format MOV.Partie 12 spécification commune aux parties 14, 15, de QuicktimeMOV, de 3GP ( 3GPP 26.244 ), MPEG21 ( ISO21000-9) etJPEG2000 ( ISO15444-3 )( Partie 14 = liée à MPEG4, Partie 15 = liée à AVC )http://www.3gpp.org/specs/specs.htmpuis chercher 26.244Norme MPEG4 partie 12 = ISO 14496-12.Exemple: MPEG2 TS ( Transport Stream )On transmet flux audio, vidéo et de données dans des paquets de 188 octets.Le contenu d'un paquet ( audio, vidéo ou données ) est identifié par le champ PID ( Program Identifier ) situédans l'entête du paquet.Exemples détaillés MPEG2 TS, MPEG2 PS, AVI: Voir annexeJ. <strong>Millet</strong> 16Codecs


VoIP Voix sur IPI) Contexte économique et technologiquePour les systèmes de transferts multimédia ( voix, données, images ), on observe 2 approches:- évolution : Intégrer IP aux systèmes téléphoniques.Intégrer IP à des systèmes voix ( PABX )- révolution : Intégrer la téléphonie aux systèmes IP.Intégrer la voix à des systèmes IP ( routeur )Dans les 2 cas, pour mettre de la voix sur un réseau IP, il faut résoudre le problème de la nature de ces réseaux dedonnées, basés sur la commutation de paquets qui va contre la nature temps réel et interactive de la voix.=> Qualité et fiabilité sur un réseau IP dépendent de plus de paramètres qu'en TDM ( Time DivisionMultiplex = circuits ). Un système informatique même dédié n’atteint pas le niveau de fiabilité d’un PABX (99,8% ). Les fournisseurs suggèrent d'augmenter les capacités des lignes, d'utiliser des redondances.Mais l’aspect économique ( utilisation d’internet pour regrouper voix et données ) et les possibilités deconvergence Téléphonie-Informatique font que ces techniques se sont développées.II) Fonctionnement d’un appareil dans un réseau à commutation de paquet: Modèle OSIOn a vu les 2 types principaux de commutation:Commutation depaquetCommutation decircuittraitements successifs dépendant du protocole et des autres communications=> imprévisible car on partage les ressources mais sans savoir avec qui.établir un chemin privé => Une fois établi on le garde, on ne fait que transmettred’un bout à l’autre des données=> On est sûr de disposer des ressources de transmission en permanence.La commutation de circuit est adaptée au transfert de la voix car c’est une transmission temps réel ( pas de trous dans latransmission ou de variation ).Le pari de la voix sur IP est de faire passer ce type de communication temps réel sur un réseau à commutation de paquetadaptée au transfert de données. Appareil électronique dans un réseau à commutation de paquetOn peut schématiser l’organisation d’un appareil en commutation de paquet.MémoiresUE µP UEUnité d’échangeUnité d’échange L’UE ( Unité d’échange ) reçoit des signaux électriques sur son interface réseau.UE = contrôleur USB pour USB, Ethernet pour ethernet, codec AMI pour TO/SO, codec HDB3 pour T2,... L’UE tire des signaux des trames qu’elle transmet au µP qui les stocke en mémoire. Le µP traite ces données quand il en a la capacité:- Analyse: Validité ( contrôle d’erreur ), adresses, signification...- Modification des données pour les transmettre à l’étape suivante- Transmission à l’UE de sortie => Tronçon suivant de la transmission.Or un µP a une puissance de calcul limitée ( MIPS ) et une fréquence de travail.17VoIP


Traitement des données échangéesa) Niveau 1: PhysiqueTransmettre à distance = utiliser un phénomène physique qui se propage => Atténuation, dispersion et bruitLa représentation de l’information s’appelle un signal.=> Lien informations binaire ( 0 et 1 ) et évolutions du phénomène physique.Exemples: ElectriqueCode NRZ: ( 0 = un niveau sur tout le bit, 1 = un autre niveau.=> port série ( 1 = -12V, 0 = +12V )Exemple: Réseau ethernet sur câble coaxial 10 Mbit/s.Code Manchester utilisé en ethernet ( 0 = front montant , 1 = front descendant )b) Niveau 2: Liaison ( trame )Protocole utilisé entre 2 appareils successifs dans la transmission.Il comprend surtout- un moyen de synchroniser ( trouver le début de trame ),- un moyen de détecter des erreurs.- un découpage en champs qui ont un sens ( code contenu dans champ = demande d’action ou réponse ),- une manière d’enchaîner les actions.c) Niveau 3: Réseau ( paquet )Protocole utilisé entre source et destinataire dans la transmission.Il comprend surtout- un découpage en champs qui ont un sens ( code contenu dans champ = demande d’action ou réponse ),- une manière d’enchaîner les actions. Traitements réalisés selon les appareilsNiveau physiqueNiveau liaisonNiveau réseauHUBremise en formeretransmission à tousCOMMUTATEUR( SWITCH )remise en formedécodage de trameanalyse de contrôle d’erreursi erreurélimination de tramesinonanalyse adr niveau 2retransmission vers adr destiRemise en formeROUTEURDécodage de trameAnalyse de contrôle d’erreursi erreurélimination de tramesinonanalyse adr niveau 2analyse de trameDécodage du paquetanalyse adr niveau 3analyse du paquetajout protocole niveau 2retransmission vers adr destiJ. <strong>Millet</strong> 18VoIP


III) Sources de perte de qualité en commutation de paquetOn a vu comment se faisait la transmission. Quelles en sont les conséquences en terme de qualité ?Codecva créerDistorsiondu signalLigne deTransmissionPerte depaquetPerte deQualitéCongestionTemps de latencedu réseau ( latency )CommutationRoutageGigue( Jitter = variation dutemps de latence )Perte de paquet: - Si l’on détecte une erreur ( ne recevant pas d’acquittement l’émetteur renverra ) à cause de déformation sur la ligne.- Si la mémoire de l’appareil est remplie ( congestion ou dépassement de capacité de traitements ) => Suppressions.Distorsion du signal:- Au codage, en particulier pour les bas débit, on créera une distorsion entre signal codé et réel.- Les pertes de paquets créeront une distorsion entre signal codé et réel.Temps de latence: Temps mis pour transmettre.- Temps de codage du codec,- Temps de propagation de la ligne de transmission,- Temps d’attente dans les mémoires des appareils avant traitement.Dans le cas de la voix: Retard total Conséquence0 à 150 ms acceptable150 à 300 ms acceptable s’il y a peu d’interactivité300 ms à 700 ms communication half duplex ( chacun son tour avec patience )plus de 700 ms inutilisable sauf en half duplex avec des règles de parole( communication militaire: parlé, reçu, terminé,... )Dans le cas de la commutation de circuit, seul le temps de propagation intervient => Ordre de µs.Gigue: Variation du temps de transmission.émis à reçu à émis à reçu àpaquet 1 t1 t1paquet 2 t2 t1+∆t1 t2. t3 t2+∆t2 t3.. t4 t4t3+∆t3t4+∆t4avanceretardSans gigue∆t1 = ∆t2 = ∆t3 = ...Avec gigueJ. <strong>Millet</strong> 19VoIP


A cela s’ajoute dans le cas de la voix le phénomène d’écho:- Les passerelles doivent traiter l’écho électrique généré par le passage 2 fils / 4 fils ( rupture d’impédance). Avec un affaiblissement del’écho courant de seulement 15 dB, la qualité de la communication est inacceptable à partir d’un temps de latence de 25 ms par sens ( norme UITG131 ).- Il y a en plus l’écho acoustique sur les PC multimédia avec haut-parleurs ( leur son revient par le micro ).CONCLUSIONS:Communication de voix acceptable: latence < 200 ms gigue < 30 ms perte de paquet < 1%=> obligation de gérer la qualité de service,=> intérêt à avoir un débit minimum par rapport à la bande passante disponible.- augmenter la bande passante de la liaison ( cout plus élevé ),- diminuer celle de la voix ( Mais cela augmente le temps de numérisation=> délai de transmission plus long et aussi amener une perte de qualité ).On doit donc trouver un compromis = choix codec.IV) QoS : Qualité de serviceL’appareil reçoit des données de flux qui demandent un traitement différent = Multimédia ( voix, données,images ). On distingue les trafics selon les besoins en terme de:Disponibilité du serviceRapport entre le temps de fonctionnement et temps d’établissement du serviceBande passante Quantité de données à transmettre par rapport au temps. Elle peut être garantie (réservation ) ou partagée.Délai de transmissionOu LatenceTemps que requiert un élément d’information pour aller de la source au destinataire.Elle dépendDu temps de propagation ( selon le support : électrique, optique, onde ) ,Du temps de traitement des noeuds du réseau ( selon le protocole ),Du rendement du protocole ( rapport entre données de gestion et utiles ).norme UIT G114Variation du délai detransmissionOu Gigue ( Jitter )Taux d’erreur( BER bit error rate )Perte de paquetsVariation des délais d’acheminement au cours d’une communication.Rapport du nombre de bits erronés sur les bits reçus. Il dépendDe la qualité des liaisons ( compensation des affaiblissements,… )De la charge du réseau pour certains protocoles ( trames éliminées )Au dessus de 20%, le signal est inaudible.Le renvoi de paquets augmentera en plus le temps de latence.Qualité Perte de paquet ( % )Parfait 0Bon 3Moyen 10Mauvais 25J. <strong>Millet</strong> 20VoIP


Selon l’application, on aura certaines contraintes fortes:Voix: Contrainte temps réel ( tps de transfert faible et constant ), erreurs acceptées.Data normale: Pas de contrainte temps réel, pas d’erreur acceptée ( fiabilité ).Data de contrôle: Latence faible et pas d'erreur acceptée.La voix est codée sous forme d’échantillons successifs que l’on place dans des paquets IP. Ces paquets doiventêtre transmis sur les réseaux ( LAN, WAN ) parmi les autres types d’informations.Or la voix a un caractère temps réel qui impose une gestion particulière pour ce type d’information d’où lanécessité de qualité de service QoS. VLAN = Séparation ( logique ) des fluxVoir cours info, normes 802.1 Protocole RTCP et RSVPRTCP : Real Time Control Protocol- Gestion de l’ordre des paquets, détection de paquets manquants,- Mais pas de gestion de la bande passante.RSVP : Ressource Reservation Protocol :La surcharge et la complexité de ces protocoles font qu’ils sont difficilement mis en œuvre. En revanche on aélaboré de nouveaux systèmes de gestion de QoS. Le plus développé avec MPLS est Diffserv. Protocole Diffserv = Hiérarchisation des fluxDiffserv utilise pour cela le champ TOS de l’entête Ipv4 :En IPv4 le TOS est peu utilisé.La partie Precedence n’est pas utilisée.On a 5 valeurs pour la partie Type Of Service :8 = minimise le délai ( Telnet )4 = Maximalise le débit ( FTP )2 = Maximalise la fiabilité ( SNMP )1 = Minimalise le coût ( nombre de routeurs sur le trajet = gestion du Time To Live )0 = Normal ( ICMP )Diffserv assure une hiérarchisation des paquets IP => Pas de gestion de bande passante mais une optimisation dufonctionnement des routeurs ( priorité à VoIP sur UDP plutôt qu’à un téléchargement FTP sur TCP ).J. <strong>Millet</strong> 21VoIP


Le champ TOS est maintenant champ DSCP ( Differentiated Service Codepoint ).Champ DSCPSélecteur de classe3 bitsRéservé6 bits 2 bitsOn définit 3 types de classes de trafic : - BE ( Best effort ) : Pas de gestion de QoS : DSCP = 000000 En pratique- EF ( Expedite Forwarding : RFC2598 ) : DSCP = 101110Proche du comportement d’une L.L. : Débit garanti mais ne dépassant pas celui prévu,Temps de bufferisation limité.- AF ( Assured Forwarded : RFC2597 ) : DSCP = autres valeursOn définit des sous-classes : AF1, AF2,…Un nœud réserve des ressources pour chaque classe.La classe AFi est prioritaire sur les autres AFj si i Les téléphones taggent les flux IP émis ( configuration des téléphones )=> Le serveur tagge les flux IP qu'il envoie ( pour Asterisk dans sip.conf on mettratos_sip=ef et tos_audio=ef )=> Les commutateurs du réseau gèrent les flux taggés, font passer en priorité la voix.La tendance est plutôt- à surdimensionner la bande passante grâce au gigabit ethernet,- à la séparation des flux par l’utilisation de VLAN pour la voix.- à la fragmentation des paquets de données : Ne pas attendre les paquets de voix sinon:Voix Fichier data Voixdélai de transmission de plus de 30 ms On fragmente toutes les donnéesVoix Data Data Data Data Data Data Data VoixCela n’est pas suffisant, on a encore un délai trop grand On intercale les paquets de voix au bon moment => Mécanisme de QoS.Voix Data Data Voix Data Data Voix Data Datadélai de 30 ms délai de 30 ms délai de 30 msMais cela n’est valable que pour un LAN. Pour le WAN, la transmission de paquets de voix sur IP reste unproblème sans QoS ( Espoirs dans Ipv6... ).Remarque: En pratique on laisse de côté la QoS et on augmente la bande passante ( Gigabit ethernet ).=> acceptable en local, mais plus valable sur WAN où le débit est limité.J. <strong>Millet</strong> 22VoIP


V) Codage de la voix: Choix du codecOn a vu les moyens de gérer les flux sur le réseau. Mais si on veut avoir le moins de problème possible en ligne, le plusefficace est de réduire la représentation de la voix. Ainsi on aura moins de perte en ligne.Pour cela on peut choisir le codec qui fera le codage de la voix selon des critères- de débit à transmettre ( volume de données à transmettre par seconde )- de temps de calcul => Un temps qui participera au temps de latence- de dégradation de qualité liée au codec qui sera caractérisée par un indice de qualité.Codec 1 : Petit débitCodec 2 : Gros débit=> Plus de perte au codage=> Moins de problème sur le réseau => Moins de perte en ligne.=> Moins de perte au codage=> Plus de problème sur le réseau => Plus de perte en ligne.L’idéal est le codec bas débit ( => faible perte de qualité en ligne ) avec faible perte de qualité au codage.Mais bas débit sans trop de perte au codage signifie un grand temps de calcul => Délais accrus.Chaque liaison est un cas particulier avec un compromis à trouver. Les codecs courants sont indiqués ensuite.J. <strong>Millet</strong> 23VoIP

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!