COMPRESSION D`UN SIGNAL CODEC AUDIO, VIDEO I
Transcription
COMPRESSION D`UN SIGNAL CODEC AUDIO, VIDEO I
COMPRESSION D’UN SIGNAL CODEC AUDIO, VIDEO Avant 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 sortie Temps de calcul nécessaire Complexité de calcul = Ressources nécessaires Perte de qualité I) Compressions sans perte RLE Chaque 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 : 1940 On 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 => Gain Mais 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 COMPRESSION : Initialisation de la table : Placer les caractères 0 à 255 aux adresses 0 à 255 de la table. Chaîne = vide Faire Lire le caractère C Si chaîne + C est dans la table chaîne = chaîne + C ne rien émettre sinon émettre l’adresse de chaîne ajouter chaine+C à la table chaîne = C Jusqu’à ce que le caractère lu = fin En plus de l’efficacité, il n’y a pas à transmettre le dictionnaire car le récepteur va construire la table de la même manière qu'il a été construit. J. Millet 1 Codecs II) Transformée de Fourier en cosinus discrets : DCT On 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: DCT (i, j ) = N −1N −1 c( i ) c( j ) ∑ ∑ 2N x =0 y=0 1 (2 x + 1) i π (2 y + 1) j π Pix ( x, y) cos cos 2N 2N où c(n) = 2 si n=0 et c(n) =1 sinon. 2 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 sa version 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écoms Selon 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 subjectif La note va de 5 à 1( 5 = excellent, 4 = bon, 3 = correct, 2 = médiocre, 1 = mauvais ) - Indice PSQM ( Perceptual Speech Quality Measure ) : Norme UIT P861 Compare le message source au message reçu. - Indice R : Norme UIT G109 R = Ro – IS – Id – Ie + A qui intègre Ro pour les effets de bruit, IS pour les effets de la numérisation, Id pour les effets d’écho, Ie pour les dégradations causés par les équipements utilisés ( transcodage, perte de paquets,…), A qui est 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é moyenne De 70 à 60 qualité médiocre, 60 à 0 qualité mauvaise. Exemple : pour RTC, A =0, pour GSM A=10 J. Millet 2 Codecs Cas de l’indice MOS son parfait ( face à face ) Indice MOS ( mean opinion score ) de qualité 4,2 Nom Norme Débit kbit/s Temps Complexité en MIPS 4 4 3,6 4 3,9 3,5 MIC MICDA LD-CELP RPE-LTP CS-CELP ACELP CELP G711 G726 G728 GSM 06-10 G729 G723.1 DOD FS 1016 64 125 µs 32 300 µs 16 625 µs 13 20 ms 8 15 ms 6,3 37,5 ms 4,8 50 ms 0,1 12 33 2,5 20 16 16 millions d’instructions/s NB : Ce tableau donne la qualité du codage seul ! ! ! ( sans transmission ). Dans le cas d’indice R : J. Millet 3 Codecs Codecs audio Mpeg Les 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/s G729: payant ! il faut acheter des licences pour l'utiliser. 8 kbit/s Il en existe beaucoup d’autres en particulier pour les téléphones portables ( codec 3G ). Mais la compression audio la plus importante car la plus efficace est la compression MP3 = MPEG1 Layer 3. a) Propriétés psychoacoustiques La compression MP3 tient compte des propriétés de l’oreille : * Propriété 1 : Seuil de perception Cette 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 masquage La 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. 80 80 Trames MP3 60 60 40 40 20 20 0 0 0 5 10 15 0 Présence d’une fréquence J. Millet 5 10 15 Présence de 3 fréquences 4 Codecs b) 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 bande sous 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 le temps 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ée MDCT ( 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 en mê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. Millet 5 Codecs V) Compression avec perte d’image : Elimination de redondances spatiales JPEG ( 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 image Une image est faite de pixels ( picture elements ), points élémentaires. Pour avoir la couleur, on doit définir 3 plans. Une caméra donne Rouge, Vert, Bleu ( RVB ou RGB ). Image 256 couleurs : couleur d’un pixel RVB sur 8 bits => Indexation Fichier 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 image noir et blanc dans un signal couleur, on transforme RVB en YUV. - 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 B U = Cb = B - Y = -0.169 R - 0.331 G + 0.500 B V = 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 Y Ligne 2 -> Cr Cr Y Y Y Y Cb 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. Millet 6 Codecs • 2ème étape: DCT. La DCT sur les blocs 8x8 passe ces points du domaine spatial au domaine fréquentiel. Les axes X et Y représentent les fréquences du signal en deux dimensions. Elle donne une matrice 8x8 de coefficients de fréquence: l'élément (0,0) représente la valeur moyenne du bloc, les autres indiquent la puissance spectrale pour chaque 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 est moins sensible ) sont amoindris en divisant chaque élément par l'élément correspondant de la table de quantification. C’est la principale source de perte. 16 12 14 14 18 24 49 72 11 12 13 17 22 35 64 92 10 14 16 22 37 55 78 95 16 19 24 29 56 64 87 98 24 40 51 61 26 58 60 55 40 57 69 56 51 87 80 62 68 109 103 77 81 104 113 92 103 121 120 101 112 100 103 99 Table de quantification recommandée pour la luminance 17 18 24 47 99 99 99 99 18 21 26 66 99 99 99 99 24 26 56 99 99 99 99 99 47 66 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 Table de quantification 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-zag On lit le bloc en zig-zag. A cause des propriétés de la DCT quantifiée, cela donne une suite de 64 nombres avec les é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 RLE La lecture zig-zag donne beaucoup de répétitions de codes. L’algorithme RLE est donc très efficace. • 7ème étape : Compression de Huffman On réalise une compression de Huffman. Cela suppose que l’on aura un dictionnaire à transmettre. J. Millet 7 Codecs 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 temporelles MPEG ( Moving Picture Experts Group ) = groupe de travail d’un sous-comité de l’ISO ( MPEG1 en 1992, MPEG2 en 1994, MPEG4 en 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 le dé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. Millet 8 Codecs La vidéo est décomposée en images - image I INTRA : Codage très proche de JPEG = Compression spatiale Quantification par valeur constante ( pas de table comme en jpeg ) Le calcul se fait sur des blocs d’image - image P PREDICTIVE : Compression temporelle Le calcul de mouvement se fait sur des macroblocs. ( 48 par 64 ) J. Millet 9 Codecs La vidéo H261 est faite des 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 4CIF : 706×576, 352×288 16CIF : 1408×1152, 706×576 CIF : 352×288, 176×144 Objectif: transmission sur RTC ( débit ≈ 28,8 kbit/s en SubQCIF à 10 images/s=> Qualité médiocre ). MPEG1 MPEG reprend les bases de H261 : On code l’image quasiment comme en JPEG => Compression spatiale Images I Intra Images P Predictive Images B Bidirectionnelle ( Bidirectionally predictive ) Moins d’images I à transmettre indé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 ( les plus proches ). => Recherche d’un macrobloc dans une image précédente et une suivante. => 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 images Remarque : Le codage demandera de mémoriser des images codage I puis codage P par rapport à I puis codage 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 ). = RVB J. Millet 10 Codecs Le décodage se fait à l’inverse du processus de codage : 1) Décompression de l’image I 2) 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és des 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) … image compressée sous entendu image RVB lié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 ». Cela permet de retrouver la synchronisation malgré des données perdues ou corrompues. J. Millet 11 Codecs MPEG2 On 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 un niveau ( LEVEL : résolution ). Simple Main profile SNR profile profile (SP) (MP) I, P I, P,B I, P,B Spatial profile I, P,B High profile 1920 × 1152, 30 images/s 80 Mbit/s 1440 × 1152, 30 images/s 60 Mbit/s 720 × 576, 30 images/s 15 Mbit/s 352 × 288, 30 images/s 4 Mbit/s Non défini Non défini Non défini 1440 × 1152, 30 images/s 60 Mbit/s Non défini 1920 × 1152, 30 images/s 100 Mbit/s 1440 × 1152, 30 images/s 80 Mbit/s 720 × 576, 30 images/s 20 Mbit/s Non défini HIGH LEVEL (HL) Non défini HIGH-1440 (H-14) Non défini MAIN LEVEL (ML) 720 × 576, 30 images/s 15 Mbit/s Non défini LOW LEVEL (LL) = CIF 720 × 576, 30 images/s 15 Mbit/s 352 × 288, 30 images/s 4 Mbit/s Non défini I, P,B MPEG4 MPEG-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 parties de cette norme mpeg4 AVC ). On a alors un fonctionnement complètement différent de mpeg2: En plus d'une meilleure compression, le flux peut être décomposé en 2 parties ( minimum basse qualité à débit limité, un supplément qui va augmenter 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ène Personne Voix Décor 2D Visage Mobilier Chaise Musique Bureau Le BIFS ( BInary Format for Scene description ) permet de décrire les objets présents. H265 Cette 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-finalise J. Millet 12 Codecs VII) Formats de vidéo Affichage entrelacé / progressif Une vidéo est faite d'une suite d'images qui défilent => Au moins 15 images/s pour que l'oeil humain voit un mouvement fluide ( 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 aux USA ). 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 2 images 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érique Résolution native: nombre de pixels horizontaux × verticaux i = affichage entrelacé, p = affichage progressif format SD ( standard, non HD, ratio 4:3 ) = 576 i 720×576 en entrelacé ( interleaved ) format HD Ready ( ratio 16:9 ) = HD 720p 1280×720 en progressif ( progressive ) format full HD ( ratio 16:9 ) = HD 1080i 1920×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 fullHD Pour 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. Millet 13 Codecs Formats d'écran J. Millet 14 Codecs Conteneur Le 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 courants Nom du conteneur VOB Définition Références DVD Versioned Object Base: Utilisé dans les DVD => http://www.mpucoder.com/DVD/vobov.html codage mpeg2. http://dvd.sourceforge.net Si on change l'extension du fichier en mpg, le fichier est 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 Set Information ) = données de navigation. - un ou des VOB ( vidéo, audio et images multiplexé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 de navigation: fichier IFO ( Information ) et BUP ( Backup du fichier IFO ). Video_TS.IFO = infos du menu principal accompagné de Video_TS.vob = animation du menu principal. AVI ASF MPEG TS MPEG PS MOV OGG RM, RMVB J. Millet Audio Video Interleaved: Format de Microsoft dérivé d'un format plus général: RIFF ( Resource Interchange File Format ) ( voir plus loin ) Advanced Systems Format/ développé par Microsoft, dédié au streaming MPEG Transport Stream ( voir plus loin ) MPEG Program Stream ( voir plus loin ) Quicktime MOVie ( QT1 en 1991, ... QT7 en 2005 ) On trouve aussi le nom OGM = OGG Media file dédié pour la voix au codec Vorbis, pour la vidéo au codec Theora. RealMedia = Conteneur de RealNetworks ( RM Streaming en CBR, RMVB = Streaming en VBR débit variable ) Codec audio RA ( RealAudio ), video RV ( RealVideo version 10 qui utilise le codec RV40 !!! RV10 et RV20 basés sur H263, RV30 et RV40 propriétaires ) 15 "AVI Specification" sur le site MSDN ( Microsoft Developper Network ) "ASF Specification" sur la site Microsoft norme ISO 13818-1 Norme ISO 13818-1 http://developer.apple.com/technotes www.xiph.org RFC3533 et RFC3534 https://common.helixcommunity.org/ http://www.realnetworks.com/products/codec Codecs NSV MKV 3GP Nullsoft Streaming Video ( développeur de Winamp ) Matroska Recherche "NSV specification" www.mastroka.org/technical ( format specification ) Conteneur du 3GPP ( 3rd Generation PartnerShip http://www.3gpp.org/specs/specs.htm Project ) = Normalisation du téléphone 3G ( UMTS ). puis chercher 26.244 Version simplifiée de MP4 ( video en H263=MPEG4 ASP part 2 ou H264 = MPEG4 AVC part 10, audio en AMR-NB ou AAC-LC = AAC Low Complexity ). REmarque: Il existe le format 3g2 pour le groupe de normalisation 3GPP2. MP4 Basé sur le format MOV. Norme MPEG4 partie 12 = ISO 14496-12. Partie 12 spécification commune aux parties 14, 15, de Quicktime MOV, de 3GP ( 3GPP 26.244 ), MPEG21 ( ISO21000-9) et JPEG2000 ( ISO15444-3 ) ( Partie 14 = liée à MPEG4, Partie 15 = liée à AVC ) 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 annexe J. Millet 16 Codecs VoIP Voix sur IP I) Contexte économique et technologique Pour 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 de donné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 Division Multiplex = 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 de convergence 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 OSI On a vu les 2 types principaux de commutation: Commutation de traitements successifs dépendant du protocole et des autres communications paquet => imprévisible car on partage les ressources mais sans savoir avec qui. Commutation de établir un chemin privé => Une fois établi on le garde, on ne fait que transmettre circuit d’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 la transmission 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 paquet adaptée au transfert de données. Appareil électronique dans un réseau à commutation de paquet On peut schématiser l’organisation d’un appareil en commutation de paquet. Mémoires UE Unité d’échange µP UE Unité 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. 17 VoIP Traitement des données échangées a) Niveau 1: Physique Transmettre à distance = utiliser un phénomène physique qui se propage => Atténuation, dispersion et bruit La représentation de l’information s’appelle un signal. => Lien informations binaire ( 0 et 1 ) et évolutions du phénomène physique. Exemples: Electrique Code NRZ: ( 0 = un niveau sur tout le bit, 1 = un autre niveau. => port série ( 1 = -12V, 0 = +12V ) Code Manchester utilisé en ethernet ( 0 = front montant , 1 = front descendant ) Exemple: Réseau ethernet sur câble coaxial 10 Mbit/s. 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 appareils HUB Niveau physique Niveau liaison remise en forme retransmission à tous COMMUTATEUR ( SWITCH ) remise en forme Remise en forme décodage de trame analyse de contrôle d’erreur si erreur élimination de trame sinon analyse adr niveau 2 retransmission vers adr desti Décodage de trame Analyse de contrôle d’erreur si erreur élimination de trame sinon analyse adr niveau 2 analyse de trame Décodage du paquet analyse adr niveau 3 analyse du paquet ajout protocole niveau 2 retransmission vers adr desti Niveau réseau J. Millet ROUTEUR 18 VoIP III) Sources de perte de qualité en commutation de paquet On a vu comment se faisait la transmission. Quelles en sont les conséquences en terme de qualité ? va créer Codec Distorsion du signal Ligne de Transmission Perte de paquet Perte de Qualité Congestion du réseau Temps de latence ( latency ) Commutation Routage Gigue ( Jitter = variation du temps 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. Dans le cas de la voix: - Temps de codage du codec, - Temps de propagation de la ligne de transmission, - Temps d’attente dans les mémoires des appareils avant traitement. Retard total 0 à 150 ms 150 à 300 ms 300 ms à 700 ms plus de 700 ms Conséquence acceptable acceptable s’il y a peu d’interactivité communication half duplex ( chacun son tour avec patience ) 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 à paquet 1 t1 paquet 2 t2 t1+∆t1 t2 . . . t3 t2+∆t2 t3 reçu à t1 avance t4 t4 t3+∆t3 t4+∆t4 retard Sans gigue ∆t1 = ∆t2 = ∆t3 = ... J. Millet Avec gigue 19 VoIP 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 de l’é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 UIT G131 ). - 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 service L’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 service Rapport entre le temps de fonctionnement et temps d’établissement du service Bande passante Quantité de données à transmettre par rapport au temps. Elle peut être garantie ( réservation ) ou partagée. Délai de transmission Ou Latence Temps que requiert un élément d’information pour aller de la source au destinataire. Elle dépend Du 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 G114 Variation du délai de transmission Ou Gigue ( Jitter ) Variation des délais d’acheminement au cours d’une communication. Taux d’erreur ( BER bit error rate ) Rapport du nombre de bits erronés sur les bits reçus. Il dépend De la qualité des liaisons ( compensation des affaiblissements,… ) De la charge du réseau pour certains protocoles ( trames éliminées ) Perte de paquets J. Millet Au dessus de 20%, le signal est inaudible. Le renvoi de paquets augmentera en plus le temps de latence. Perte de paquet ( % ) Qualité Parfait 0 Bon 3 Moyen 10 Mauvais 25 20 VoIP 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ù la nécessité de qualité de service QoS. VLAN = Séparation ( logique ) des flux Voir cours info, normes 802.1 Protocole RTCP et RSVP RTCP : 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 flux Diffserv 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 du fonctionnement des routeurs ( priorité à VoIP sur UDP plutôt qu’à un téléchargement FTP sur TCP ). J. Millet 21 VoIP Le champ TOS est maintenant champ DSCP ( Differentiated Service Codepoint ). Champ DSCP Sélecteur de classe Réservé 3 bits 6 bits On définit 3 types de classes de trafic : 2 bits - BE ( Best effort ) : Pas de gestion de QoS : DSCP = 000000 - EF ( Expedite Forwarding : RFC2598 ) : DSCP = 101110 Proche 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 valeurs On 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<j. En pratique La QoS est difficile à mettre en œuvre car elle demande d’avoir des matériels respectant une norme commune sur toute la liaison. Exemple: QoS niveau 2 vlan et QoS niveau 3 diffserv => 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 mettra tos_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 Voix délai de transmission de plus de 30 ms On fragmente toutes les données Voix Data Data Data Data Data Data Data Voix Cela 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 délai de 30 ms Data délai de 30 ms Voix Data Data délai de 30 ms Mais cela n’est valable que pour un LAN. Pour le WAN, la transmission de paquets de voix sur IP reste un problè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. Millet 22 VoIP V) Codage de la voix: Choix du codec On 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 plus efficace 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ébit => Plus de perte au codage => Moins de problème sur le réseau => Moins de perte en ligne. Codec 2 : Gros débit => 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. Millet 23 VoIP
Documents pareils
COMPRESSION D`UN SIGNAL CODEC AUDIO
=> TV numérique standard sera du Main@L3 .
TV numérique HD en Main ou High @level 4.