Les communications vidéo basées sur MPEG
Transcription
Les communications vidéo basées sur MPEG
Chapitre 2 Les communications vidéo basées sur MPEG Résumé Le but de ce chapitre est de décrire les applications réseau basées sur le standard MPEG. La première partie présente les principes de l’algorithme de compression des données vidéo. Comme la contribution de cette thèse concerne le contrôle du débit vidéo, le deuxième paragraphe de ce chapitre présente les algorithmes de contrôle de débit utilisés dans les codeurs MPEG. Enfin, le dernier paragraphe définit la notion de qualité de service offerte par le réseau pour les applications vidéo. 2.1 Le standard MPEG MPEG désigne un standard élaboré conjointement par l’ITU-T, l’ISO et l’IEC pour la compression de l’image animée et de l’audio correspondant. Malgré l’existence d’autres standards de compression pour la vidéo (e.g. H.261, AVI, QuickTime [111]), nous nous intéressons dans cette thèse uniquement à MPEG car il connaît un intérêt spectaculaire tant au près des industriels que dans le monde académique ou sur Internet. MPEG peut très bien être qualifié de standard “réussi” pour la grande coordination entre l’apparition des normes et celles des produits. A titre d’exemple, citons la diffusion satellite des programmes de CANAL+ en MPEG depuis Janvier 1996 [103]. 7 Contrôle de trafic ATM pour sources vidéo à débit variable Chrominance Luminance Format 4:2:0 Format 4:2:2 Format 4:4:4 Figure 1: Sous-échantillonnage de la chrominance 2.1.1 Présentation générale En 1988, un groupe de travail créé conjointement par l’ISO et l’IEC (SC29 et WG11) commença ses travaux d’établissement de standards pour le codage des images animées et de l’audio correspondant. Il devint très rapidement connu sous le nom de Groupe d’Experts des Images Animées ou MPEG (pour Moving Pictures Expert Group). Parallèlement, l’ITU-T lança, en 1990, le groupe SG15 appelé Groupe d’Experts pour le codage Vidéo pour ATM (Experts Group for ATM Video Coding) qui eu pour mission de développer des standards de codage vidéo adapté au RNIS-LB et les réseaux ATM. Leurs travaux ont abouti à un standard international, adopté en novembre 1994, connu sous le nom de MPEG-2 et défini dans quatre documents : • Standard International ISO/IEC 13818-1 (correspondant à la Recommandation ITU-T H.222), dit aussi partie Système (ou MPEG System), spécifie la mise en forme des données dans le stockage ou le transport. Il définit une structure de multiplexage permettant de combiner les données audio et vidéo de plusieurs programmes ainsi que le marquage temporel nécessaire à la re-synchronisation des flux lors de l’affichage. • Standard International ISO/IEC 13818-2 (correspondant à la Recommandation ITU-T H.262), dit aussi partie Vidéo (ou MPEG Vidéo), spécifie la représentation codée des données vidéo et les étapes de décodage nécessaires pour reconstruire la séquence animée. • Standard International ISO/IEC 13818-3, dit aussi MPEG Audio, spécifie la représentation codée des données audio. • Standard International ISO/IEC 13818-4, dit aussi Conformance, spécifie les procédures permettant de tester la conformité d’un flux MPEG, ou train binaire, aux spécifications des standards 13818-1, 13818-2 et 138183. Outre ces documents, le groupe de travail MPEG a aussi établi les standards ISO/IEC 11172-{1,2,3} (1993), connus sous le nom de MPEG-1, et qui présentent une première version du standard (vidéo, audio et système) adaptée aux applications de stockage de la vidéo à débit de l’ordre de à 1,5 Mbits/s, tel que les applications de type vidéo à la demande, vidéo sur CD-ROM etc... Un tel débit permet d’avoir une qualité visuelle à peu près équivalente au standard VHS (magnétoscope). Le standard MPEG-2 offre une plus grande flexibilité que MPEG 1 ce qui permet de coder à des débits allant de 4 Mbits/s (qualité SDTV pour Standard Definition Television) jusqu’à 10 Mbits/s (qualité HDTV pour High Definition Television). La série des standards MPEG assure une compatibilité ascendante. Notons aussi l’existence de la série des modèles de tests ou TM (pour Test Model) élaborée par le groupe MPEG et qui propose des implantations du standard (documents et logiciels) utilisables pour effectuer des tests et des comparaisons. Ces modèles spécifient des techniques qui ne font pas objet de normalisation et dont les performances ne sont pas nécessairement optimisées. Ces modèles de tests sont très utiles pour les chercheurs car ils permettent de comparer les résultats de leurs travaux. Aussi, nous utilisons le modèle TM5 comme exemple de référence d’implantation du standard. 8 Les communications vidéo basées sur MPEG 2.1.2 Algorithme de codage Un grand nombre d’articles ont été publiés sur le standard MPEG qui commence à être bien connu de la communauté réseau (e.g [9, 20, 28, 75, 77, 88, 89, 90, 91]). Dans ce paragraphe nous présentons d’une manière concise l’algorithme de compression MPEG vidéo. Un grand nombre de détails normatifs seront omis car ils ne sont pas d’une importance capitale pour une étude de contrôle de trafic. En particulier, la partie système [53] ne sera pas abordée dans cette thèse. La norme MPEG définit un ensemble d’étapes de codage qui permettent de transformer un signal vidéo (numérisé dans un format normalisé) en un train binaire (bit stream) destiné à être stocké sur un support ou transmis dans un réseau. Le train binaire est décrit selon une syntaxe codée d’une manière normalisée pour pouvoir être restituée par n’importe quel décodeur respectant la norme MPEG. Fréquence / Nb. de lignes / Aspect Ratio 30Hz / 525 / 4:3 25Hz / 625 / 4:3 Y U,V Y U,V CCIR 601 (4:2:2) 720x480 360x480 720x576 360x576 MPEG-1 SIF (4:2:0) 352x240 176x120 352x288 176x144 Tableau 1 : Formats d’image numérique. A l’entrée de l’étape de codage, les données vidéo sont présentées sous forme numérique où chaque pixel est codé par trois composantes, une pour la luminance (notée Y) et deux pour la chrominance (notées U et V). La résolution de l’image, notée hxv, est déterminée par le nombre de lignes (résolution verticale v) et le nombre de pixels par ligne (résolution horizontale h). Alors que chaque pixel est représenté par une valeur de luminance, les composantes de chrominances sont souvent sous-échantillonnées de manière à ce qu’on ait une seule valeur de la composante U (resp. V) pour deux ou quatre pixels. Cette première réduction de la quantité d’information se base sur le fait que la perception humaine est plus sensible à l’intensité de la lumière qu’à la couleur. On parle alors de format d’échantillonnage. La figure 1 montre les principaux formats utilisés par MPEG-2 (MPEG-1 utilise surtout le format 4:2:0). Le tableau 1 montre les résolutions en Y, U et V des deux formats les plus utilisés dans la pratique, le CCIR 601 (ou encore ITU-R BR 601) et le SIF (Standard Image Format). L’algorithme de codage définit une structure hiérarchique contenant les niveaux décrits sur la figure 2. Le groupe d’images ou GoP (pour Group of Pictures) est constitué d’une suite périodique d’images compressées. Il y a trois types d’images compressées : une image de type I (ou intra) est compressée d’une manière indépendante des autres images, i.e. à la manière de JPEG pour les images fixes (still image); une image de type P (ou prédite) est codée en utilisant une prédiction d’une image antérieure de type I ou P; une image B (ou bidirectionnelle) est codée par double prédiction (ou interpolation) en utilisant comme références une image antérieure de type I ou P et une image future de type I ou P. Un GoP commence par une image I, contient une suite périodique d’images P séparées par un nombre constant d’images B à la manière de l’exemple de la figure 3. La structure du GoP est alors définie par deux paramètres; le nombre d’images du GoP et la distance entre images I/P. L’image est elle même découpée en tranches ou slices dont le but est de limiter la propagation d’erreurs de transmission/stockage dans l’image restituée. Une tranche est une suite de macro-blocs. Un macro-bloc représente une partie de l’image de 16x16 pixels. Un bloc est une matrice de 8x8 coefficients chacun représentant l’une des trois composantes d’un pixel, Y, U ou V. Dans le format 4:2:0 (resp. 4:2:2) par exemple, un macro-bloc est constitué de quatre blocs Y, un (resp. deux) bloc(s) U et un (resp. deux) bloc(s) V. Plusieurs techniques peuvent être utilisées pour coder un macro-bloc. Le codage dit intra consiste à effectuer une transformation fréquentielle (plus précisément la transformée à cosinus discrète ou DCT) sur l’ensemble des blocs de luminance et de chrominance. Si {B} désigne la matrice des valeurs du bloc, sa transformée {T} s’écrit : 9 Contrôle de trafic ATM pour sources vidéo à débit variable Séquence Entête GOP ... GOP Groupe d’images Entête Image ... Image Image Entête Slice ... Slice Slice Entête Macro-bloc ... Macro-bloc Macro-bloc Entête Bloc ... Bloc Bloc Coeff. Coeff. ... Coeff. Figure 2: Structure hiérarchique du codage MPEG 7 1 T uv = --- ⋅ C u C v ⋅ 4 7 ∑ ∑ 2i + 1 ) ⋅ uπ2j + 1 ) ⋅ vπ ⋅ cos (-----------------------------B ij ⋅ cos (-----------------------------16 16 i=0 j=0 avec C x ≠ 0 1 - et C0 =1. Une fois le bloc transformé, chacun de ses coefficients subit une division entière = ------ 2 par une valeur donnée par une matrice de quantification {Q} et pondérée par un paramètre de quantification q : I(u,v) = T(u,v) / q*Q(u,v) La matrice de quantification est construite de manière empirique utilisant des tests subjectifs. Elle n’est pas normalisée mais la norme propose un exemple pour les tests. Le paramètre de quantification sert à piloter le taux de compression du bloc et de l’image. Le choix de ce paramètre dépend de l’algorithme de contrôle de débit utilisé dans le codeur. Le contrôle de débit sera détaillé dans le paragraphe 2.2. Après quantification, la matrice des valeurs du bloc est linéarisée dans un vecteur selon une technique de zigzag. Ce vecteur est alors codé en utilisant un code à longueur variable qui permet de minimiser le nombre de bits des codes correspondants aux coefficients les plus fréquents selon le principe du codage de Huffman. La quantification a pour effet d’augmenter le nombre de coefficients nuls qui ne sont pas codés par le codage de Huffman. C’est la l’essentiel du gain de compression atteint pour les images I. La deuxième technique utilisée dans MPEG est la recherche du vecteur de mouvement. Utilisée pour les macro-blocs des images P et B, cette technique consiste à détecter le déplacement du macro-bloc par rapport à sa position dans une image future (pour les images B) ou passée (pour les images P et B). On définit alors un critère de ressemblance entre macro-bloc (matching criterion) souvent basé sur l’erreur quadratique entre blocs de luminance. L’espace de recherche est défini par une fenêtre de recherche située autour de la position initiale du macrobloc. Plusieurs politiques de recherche peuvent être adoptées, e.g. recherche exhaustive, recherche logarithmique, recherche télescopique [54] etc... Le critère de ressemblance, la taille de la fenêtre et la politique de recherche ne sont pas normalisées et dépendent du constructeur. La recherche du vecteur de mouvement peut ne pas aboutir (dans le cas de changement de scène par exemple). Dans ce cas, le macro-bloc est codée en intra. Lorsqu’un vecteur de mouvement est repéré, ses coordonnées relatives sont codées dans le train binaire même si le macro-bloc trouvé n’est pas tout à fait identique à celui recherché. La différence, pixel par pixel, entre les deux donne lieu à un nouveau macro-bloc, qui représente l’erreur d’estimation du vecteur de mouvement, et qui est lui même codé en Intra et mis dans le train binaire. Pour les images de type B, la recherche se fait dans une image future et une 10 Les communications vidéo basées sur MPEG I B B P B B P B B P B B I Figure 3: Structure du GoP image passée et le macro-bloc peut être représenté soit par un vecteur de mouvement avant (forward motion), soit par un vecteur de mouvement arrière (backward motion) soit par la moyenne des deux macro-blocs avant et arrière, on parle alors d’interpolation. L’étape de quantification est d’une importance particulière pour cette thèse. C’est l’étape qui pilote le compromis entre la qualité et le débit de l’image. En effet, plus le paramètre de quantification est élevé, plus il y a de coefficients nuls engendrés par la division entière et plus important sera le rendement du codage de Huffman. Il est clair qu’un taux de compression élevé engendre une dégradation importante de la qualité visuelle de l’image restituée. L’algorithme de contrôle de débit est chargé de piloter le paramètre de quantification pour contrôler le débit généré par le codeur tout en minimisant la dégradation de la qualité visuelle. L’algorithme de contrôle de débit n’est pas normalisé et reste à la charge du constructeur. Les caractéristiques du trafic généré dépend beaucoup de cet algorithme. Aussi, nous consacrons le paragraphe 2.2 aux détails des algorithmes de contrôle de débit dans les codeurs vidéo. 2.1.3 Evolutions du standard Des travaux de recherche sont actuellement menés sur l’amélioration des performances du standard MPEG. De plus en plus d’applications nécessitent un codage vidéo multi-résolution qui permet de decoder une partie ou la totalité du flux compressé selon le niveau de qualité requis par l’application ou les capacités du décodeur. Le domaine d’intérêt d’une telle approche comprend les applications de télé-conférence multi-points, applications vidéo sur ordinateurs, vidéo dans les réseaux ATM et la télévision standard et à haute définition. On utilise alors le codage multi-couches qui consiste à diviser le train binaire en informations de base nécessaires pour avoir une qualité minimale (couche de base), et des informations complémentaires permettant d’améliorer la qualité (couche d’amélioration). Pour cela, le standard MPEG-2 définit la notion de scalability, que nous appelons codage hiérarchique, comme étant la possibilité de décoder une partie du flux MPEG (i.e. une couche) ou la totalité du flux. Quatre classes de hiérarchies sont spécifiées [1, 51, 53, 54, 96] : • La hiérarchie SNR (SNR Scalability), signifie le partage du flux MPEG en plusieurs couches ayant toutes la même résolution spatiale et temporelle et permettant d’avoir différentes qualités de l’image selon le nombre de couches décodées. Ce type de scalability peut servir à diminuer l’effet des erreurs de transmission (e.g. dans les réseaux multi-priorités) ainsi qu’à l’implémentation de services vidéo à plusieurs qualités d’image. Dans le cas de deux couches, la couche de base est obtenue en utilisant un paramètre de quantification Q1 qui produit une qualité satisfaisante. L’image de la couche de base est ensuite décodée et la différence avec l’image originale est de nouveau compressée pour donner lieu à la deuxième couche. Le paramètre de quantification Q2 de la deuxième couche est responsable du débit de celle-ci ainsi que de l’amélioration de qualité apportée par cette deuxième couche. • La hiérarchie spatiale (Spatial Scalability), signifie le partage du flux MPEG en plusieurs couches ayant différentes résolution spatiale. De ce fait, c’est l’unique méthode qui permet la compatibilité de MPEG-2 avec les standards existants tel que MPEG-1 et H261. A l’entrée du codeur, l’image originale subit une décimation spatiale donnant lieu à une image de moindre résolution, qui est codée pour donner la couche de base. Le flux de la couche de base est ensuite décodé et une interpolation spatiale permet d’avoir des images de même taille 11 Contrôle de trafic ATM pour sources vidéo à débit variable • • que le signal original. La différence entre les deux images (celle d’origine et celle de la couche de base restituée) est de nouveau codée pour donner lieu à la couche d’amélioration. Plus de détails concernant l’implémentation de la hiérarchie spatiale sont données dans [97]. La hiérarchie temporelle (Temporal Scalability), signifie le partage du flux MPEG en plusieurs sous-flux ayant chacun une fréquence d’image (en nombre d’images par seconde) inférieur au flux original. Par exemple, un signal vidéo à 50 images par seconde est divisé en deux signaux de 25 images par seconde chacun correspondant à une image sur deux du flux original. Une application possible de ce type de codage est la migration du format d’images entrelacées (où chaque image est divisée en deux trames contenant respectivement les lignes pairs et les lignes impairs de l’image et affichées à une fréquence double de celle de l’image) au format progressif. Partitionnement des données (Data Partitionning), consiste à séparer les 64 coefficients d’un bloc, à la sortie de la transformation DCT, en deux ou plusieurs couches ayants différentes priorités dans le réseau. Par exemple, si Coeffi désigne le i-ème coefficient du bloc après linéarisation, la couche de base contient Coeff1 ,...,Coeffk, et la couche d’amélioration contient Coeffk+1 ,...,Coeff64. L’indice k contrôle la partage du débit entre les deux couches. Le partitionnement peut se faire en un nombre arbitraire de couches. Les travaux de Magda El Zarki (université de Pennsylvania) [20, 88, 89, 91] sur le partitionnement des flux MPEG en deux couches correspondant aux deux niveaux de priorités des réseaux ATM ont montré l’efficacité d’une telle approche en présence de pertes dans le réseau. Les quatre méthodes présentées peuvent être utilisées dans le contexte des réseaux ATM, bien qu’elles ne soient pas nécessairement conçues dans ce but. Les performances de l’une ou l’autre de ces méthodes dépendent de l’application vidéo et de la nature des pertes. Dans tout les cas les facteurs suivants doivent être pris en compte pour choisir la méthode appropriée de codage en couches [1] : • L’excès de trafic due aux entêtes de la couche d’amélioration, le codage en couche engendre une pénalité en termes de bande passante due aux éléments syntaxiques du train binaire (e.g les entêtes présentées à la figure 2) de la couche d’amélioration. L’excès de trafic est le plus faible pour la méthode de partitionnement des données et le plus important dans le cas de la hiérarchie spatiale. • La qualité de la couche de base, ce facteur est important si le taux de perte est important ou, pour d’autres raisons, si le décodeur décide de décoder la couche de base uniquement. La qualité de cette dernière ne dépend pas uniquement de son débit mais aussi de la méthode de codage en couche choisie. Par exemple, pour un même débit de la couche de base, la hiérarchie spatiale produit la meilleure qualité alors que le partitionnement des données donne la plus mauvaise. • La tolérance aux pertes, d’après les résultats de [1], un taux de perte de 10-5 pour un codage mono-couche est quasiment imperceptible alors que pour 10-3 la qualité devient inacceptable. Pour le codage bi-couche, le partitionnement des données produit une qualité acceptable pour un taux de perte de 10-4 alors que pour 10-3 la qualité peut être jugée bonne ou mauvaise selon l’utilisateur. Mieux encore, avec la hiérarchie SNR, un taux de perte de 10-3 passe inaperçu. Les meilleures performances sont atteints pour la hiérarchie spatiale où les dégradations de la qualité pour un taux de perte de 10-2 restent négligeables. • Complexité de l’implémentation, elle est très variable selon la méthode utilisée. Le partitionnement des données ne nécessite qu’un étage de démultiplexage en sortie du codeur qui scinde le flux en deux couches, et un étage de multiplexage en entrée du décodeur qui fusionne de nouveau les deux couches en un flux unique. La hiérarchie spatiale, par contre, nécessite deux codeurs couplés (un pour chaque couche) et deux décodeurs couplés. La notion de scalability présente un avantage, particulièrement crucial pour le marché de la vidéo numérique, qui est la compatibilité des produits MPEG. En effet, elle permet d’assurer une compatibilité ascendante, qui signifie qu’un décodeur correspondant à un nouveau standard est capable de décoder les trains binaires produits par les anciens standards, ainsi qu’une compatibilité descendante permettant à un décodeur d’anciens standards de décoder une partie du flux vidéo du nouveau standard. Par exemple, cela peut servir à assurer la compatibilité des flux HDTV (i.e. pour la télé à haute définition) avec les décodeurs de la télévision standard. 12 Les communications vidéo basées sur MPEG Codeur Contrôle de débit Réseau q Boucle de réaction Quantification Huffman Canal Réseau Buffer de sortie Figure 4: Contrôle de débit CBR Il n’est pas encore clair comment l’information va être partagée entre les différentes couches, i.e. quel type de contrôle de débit utiliser pour chaque couche. Les auteurs de [1] proposent de coder la couche de base en débit constant et la couche d’amélioration en débit variable. Les travaux de Mohamed Ghanbari (université de Essex) e.g. [32] [33] [34] [35], constituent une référence de base pour étudier ce problème. Plus récemment, l’ISO/IEC ont lancé un groupe de travail pour définir le standard MPEG-4 qui devrait intégrer d’autres aspects intéressants pour les applications vidéo telles que la représentation d’objets vidéo, téléchargement de code, codage à bas débit etc... 2.2 Le contrôle de débit dans MPEG Comme son nom l’indique, le contrôle de débit dans le codeur est l’algorithme qui permet de maîtriser le volume de données généré. Basé essentiellement sur l’étape de quantification, le contrôle de débit a pour but d’optimiser la qualité visuelle de l’image tout en respectant des contraintes de débit exprimées en fonction du système de transport utilisé (e.g. débit réseau) ou du support de stockage (e.g. capacité du CD-ROM). Les premiers réseaux de transmission pouvant être utilisés pour la vidéo étaient à commutation de circuits (e.g. RNIS, liaison spécialisée, liaison satellite...) et offraient un débit constant. Le contrôle de débit dans le codeur est nécessaire pour maintenir constant le débit de sortie. On parle alors de codage à débit constant ou codage CBR (pour Constant Bit Rate). L’avènement des réseaux ATM offre la possibilité de transmettre des débits variables plus adaptés à ce qu’on appelle codage à débit variable ou codage VBR (pour Variable Bit Rate). Notons qu’un débit MPEG non-contrôlé est naturellement variable et que la variabilité dépend aussi bien du contenu de la séquence vidéo que de l’algorithme de compression. Nous reviendrons sur les causes de la variabilité du trafic au chapitre 4. Comme les caractéristiques du trafic vidéo sont directement liées à l’algorithme de contrôle de débit nous allons détailler quelques exemples d’algorithmes existants. 2.2.1 Codage à débit constant L’idée générale d’un codage à débit constant est d’utiliser un buffer à la sortie du codeur (c’est à dire à l’entrée du réseau) qui est continûment vidé au débit fixe du canal de transmission. Le contrôle de débit consiste alors à éviter le débordement du buffer à l’aide d’une boucle de réaction qui agit sur le paramètre de quantification en fonction croissante et très souvent linéaire du remplissage du buffer. L’échelle de temps de la réaction peut aller du macro-bloc à l’image selon la finesse de l’algorithme et la taille du buffer. Pour MPEG, l’algorithme de contrôle tient compte des différents types d’images. En effet, une image I servant de référence pour la restitution du reste des images du GoP, doit subir moins de dégradation que celles de type P ou B. De même pour les images 13 Contrôle de trafic ATM pour sources vidéo à débit variable P qui sont plus volumineuses que les images B. Le modèle de test TM5 [51] propose un algorithme de ce genre utilisé comme référence pour les tests et les comparaisons. Dans le reste de ce paragraphe, nous présentons les grandes lignes de l’algorithme de TM5 qui sera utile pour la construction du chapitre 5. Soit G la taille moyenne en bits d’un GoP (déterminée à partir du débit CBR, la fréquence des images et le nombre d’images dans un GoP). Avant de coder le ième GoP, l’algorithme détermine sa taille cible notée Ri (c’est l’allocation de débit). Le codage du GoP utilise des mécanismes de contrôle de débit pour obtenir une taille effective, notée Ri, qui soit la plus proche possible de Ri. Pour réaliser le débit moyen spécifié, la différence entre taille prévue et taille effective est prise en compte dans l’allocation de bits pour le GoP suivant. Ceci se résume aux deux expressions suivantes : ∆i = Ri-Ri Ri+1 = G+∆i Lors du codage du GoP, une taille cible est calculée pour chaque image de la manière suivante1 : R R R TI = ---------------------------------------------- ; TP = ---------------------------- ; TB = ---------------------------1 + α P NP + α B N B αB αP N P + ------N B N B + ------N αP αB P où : T{I,P,B} désigne la taille cible de l’image de type {I,P,B}; R désigne le nombre de bits disponibles pour le reste des images du GoP; NP désigne le nombre d’images de type P non encore codées; NB désigne le nombre d’images de type B non encore codées; αP est un coefficient de proportionnalité2 entre les tailles des Images I et P; αB est un coefficient de proportionnalité entre les tailles des Images I et B; Etant donné la taille cible T d’une image, il y a un mécanisme de contrôle de débit qui opère au niveau du macro-bloc dans le but de contrôler l’évolution du nombre de bits générés en agissant sur le paramètre de quantification du macro-bloc. Un buffer virtuel est alors utilisé pour asservir le paramètre de quantification. Le buffer virtuel mesure l’éloignement du débit effectif de l’image par rapport au débit cible. Le remplissage du buffer évolue de la manière suivante : dj+1 = dj - Mth + Mj+1 où : dj désigne le remplissage du buffer juste après avoir codé le jème macro-bloc; Mth (taille théorique) est égale à la taille cible de l’image divisée par le nombre de macro-blocs dans l’image; Mj désigne le nombre de bits engendrés par le jème macro-bloc; Trois buffers virtuels distincts sont utilisés pour les trois types d’images. Après codage du dernier macrobloc d’une image, la valeur de remplissage du buffer est utilisée comme valeur initiale pour le codage de l’image suivante du même type. Pour coder le jème macro-bloc d’une image, un paramètre de quantification de référence Qj est calculé proportionnellement au remplissage du buffer virtuel correspondant : 1.Un seuil minimal de un huitième de la taille moyenne d’image est cependant imposé. 2.Pour retrouver les notations exactes du TM5, il faut remplacer αP par XP/XIKP et αB par XB/XIKB. 14 Les communications vidéo basées sur MPEG d j × 31 Qj = -------------------------------------------------------------------------2 × taille moyenne d'une image Finalement, Qj est ajusté pour tenir compte de l’activité du macro-bloc en sa basant sur le principe de la quantification adaptative. Le paramètre de quantification final noté mquantj est alors obtenu par l’expression suivante : 2 × Actj + Activité moyenne mquantj = Q j × ----------------------------------------------------------------Actj + 2 × Activité moyenne où : Actj désigne l’activité du macro-bloc (minimum de la variance des blocs); Activité moyenne désigne la moyenne de Actj sur toute l’image. Notons que cet algorithme, dit de type CBR, permet de contrôler le débit moyen sur une échelle de temps relativement courte. A l’échelle de l’image, le débit reste variable pour pouvoir respecter les proportions entre les images I, P et B. 2.2.2 Codage à débit variable Le principe du codage à débit variable a été largement stimulé par les promesses des réseaux ATM quand à leurs capacités à transporter des débits variables tout en garantissant la qualité de service désirée. D’un point de vue codage, il est plus avantageux de pouvoir générer du débit variable pour avoir une meilleure qualité. De plus, ceci peut dispenser de l’utilisation d’algorithmes de contrôle de débit plus ou moins complexes comme nous venons de le voir. En effet, la manière la plus naturelle de générer du débit variable sans avoir à dégrader la qualité consiste à utiliser un paramètre de quantification constant pendant toute la durée de la séquence. Il n’y a donc pas de mécanisme de contrôle de débit. Nous appelons cette manière de coder, le codage en boucle ouverte. Une solution idéale pour la transmission de la vidéo à débit variable serait le fait que le réseau puisse accommoder le trafic codé en boucle ouverte, si bien qu’au sein de la communauté réseau le terme vidéo à débit variable signifie codage à quantificateur constant et que ce type de codeurs est utilisé dans la plupart des publications sur la caractérisation de trafic vidéo (e.g. [12, 30, 43, 48, 82, 85]). Plus généralement, le débit du codeur peut être variable tout en agissant sur le paramètre de quantification pour des raisons autres que le contrôle de débit (e.g. quantification adaptative pour tenir compte de l’activité des macro-blocs). Rares sont les travaux qui considèrent qu’un algorithme de contrôle de débit peut aussi être utilisé pour générer du débit variable. Nous résumons dans la suite de ce paragraphe les principales idées développées dans ce contexte. • Dans [101], A. Reibman et B. Haskell de AT&T Bell Labs décrivent les contraintes que doit vérifier le trafic en sortie du codeur pour être conforme aux buffers du codeur et du décodeur dans le cas d’un canal de transmission à débit variable défini par un modèle de seau percé (en anglais: leaky bucket, expliqué dans les chapitres suivants). Ils proposent un algorithme simple de contrôle de débit basé sur une réaction linéaire du remplissage des buffers sur le paramètre de quantification : Soit Bemax la taille maximale du tampon du codeur et Be(t) sa taille à l’instant t. Soit Bdmax la taille maximale du tampon du décodeur et Bd(t) sa taille à l’instant t. Si, à l’instant t, on veut coder une image qui va être décodée à l’instant t+T, on utilise un paramètre de quantification Q proportionnel au remplissage des deux tampons (du codeur et du décodeur). Comme le débit est une fonction décroissante de ce paramètre, plus les tampons se remplissent et plus le débit généré est faible ce qui permet de rester en deçà des valeurs maximales. Un seuil minimum Qmin est respecté pour empêcher le buffer de se remplir pendant les scènes de faible activité (due à une trop faible valeur de Q). Q est donné par la relation suivante : 15 Contrôle de trafic ATM pour sources vidéo à débit variable • • e d d B (t) B max – B (t + T) - , ---------------------------------------- + 2 Q = max Q min , 64 × max ---------e d B max B max Cependant les auteurs posent le problème de la limite du profit qu’on peut tirer du débit variable due au fait que la taille du seau (bucket) ne peut pas être arbitrairement grande à cause des contraintes imposées par la taille du tampon du décodeur. Dans les simulations effectuées, la taille du seau est fixé à trois trames moyennes. Cet algorithme présente l’avantage d’être simple. C’est aussi le premier travail connu qui porte sur un algorithme de contrôle de débit sous les contraintes du modèle du leaky bucket. Cependant, l’inconvénient de cet algorithme provient du fait que le paramètre Q est une fonction linéaire du remplissage du tampon et ne prend pas en considération le complexité de la scène en cours. En effet, si le seau est vide, cet algorithme augmente le débit de l’image même si celle-ci est très peu active et peut se satisfaire d’un débit faible. Le seau se trouve donc rempli à cause du débit élevé d’une scène peu active dont la qualité ne va pas être améliorée. La scène suivante, si elle est active, va être contrainte à générer un débit faible ce qui donne une dégradation visible de l’image. Cet algorithme permet le contrôle des tampons mais ne gère pas efficacement la répartition du débit selon le besoin de la scène. La contribution du chapitre 5 consiste justement en un algorithme permettant de palier à cet inconvénient. Un autre article de référence pour le contrôle du trafic variable est celui de Helmut Heeke de Siemens Münich [46]. Bien que ne s’intéressant qu’à la vidéo-conférence, cet article a l’avantage de traiter le problème du débit variable dans le cadre précis du RNIS-LB (contrôle de trafic et garantie de qualité de service). L’auteur propose un algorithme de contrôle de trafic permettant de forcer le débit variable à être conforme à une description du trafic basée sur les paramètres d’une chaîne de markov. Sans rentrer dans les détails du modèle de trafic, le contrôle du débit se fait de la manière suivante : le débit reste constant durant le codage d’une image et peut changer d’une image à l’autre en prenant une valeur parmi huit valeurs spécifiées d’avance. Un contrôle de type CBR est effectué durant le codage de l’image pour respecter le débit choisi. Selon l’auteur, le débit variable résultant serait naturellement proche d’un modèle markovien simple. Cette approche est intéressante pour le transport de la vidéo les réseaux ATM car le contrôle de débit est effectué dans le but précis de produire un trafic dont les propriétés sont connues d’avance. Cependant, les propriétés markoviennes ne sont pas vérifiées pour des flux vidéo autres que la vidéo-conférence. Une approche différente est proposée par Mark Pickering, [93, 94] (University of New South Wales, Autralia), elle consiste à décomposer le paramètre de quantification en une somme de deux facteurs. Le premier est appelé paramètre de macro-bloc et est déterminé par la mesure d’une complexité spatiale et de mouvement dans le macro-bloc. Il repose sur le principe de sensibilité du système visuel qui stipule que plus la fréquence temporelle ou spatiale est élevée, moins la perception visuelle est sensible à la dégradation. Son calcul est effectué à l’aide de séries d’expérimentations suivies d’évaluations psycho-visuelles. Le deuxième facteur dit paramètre de trame, est calculé pour chaque image et est utilisé pour le contrôle du débit. Ceci se fait par le calcul d’un vecteur des fréquences spatiales du macro-bloc qui servira d’index pour consulter une base de données de prédiction de débits. Ce vecteur de fréquences, associé au débit désiré, donne la valeur du paramètre de quantification de trames. L’avantage de cette approche est que le contrôle de débit tient compte à la fois de la qualité de l’image (paramètre de macro-bloc) et des contraintes de débit (paramètre de trame). Les performances de l’algorithme sont cependant liées à celles de la base de données de prédiction qui est construite d’une manière statistique en utilisant des séquences type. Comme toute approche statistique, les prédictions pourraient ne pas réussir pour les séquences hétérogènes ou de type différent. Dans la thèse de Rosangela Coelho [14, 15, 16] (Télécom Paris), un algorithme de codage pour le débit variable appelé VSB (pour Video Step Buffer) est présenté. Quatre paramètres sont utilisés pour contrôler et modéliser le trafic vidéo : le débit crête p, le débit moyen m, l’échelle de temps du contrôle tsc (e.g, macro-bloc, image, etc...) et un facteur de variance f. Au début de chaque période tsc, une valeur du débit de sortie λi est choisie parmi trois valeurs : le débit de la période précédente λi-1; f fois λi-1, ou λi-1 divisée par f. Ainsi, le débit du codeur peut être prédit par une chaîne de markov définie par les quatre paramètres. Ce codeur a été expérimenté au CCETT et au CNET. 16 Les communications vidéo basées sur MPEG 2.2.3 Discussion Deux raisons justifient cette grande motivation pour la vidéo à débit variable. La première concerne le point de vue du codage vidéo pour lesquels les mécanismes CBR présentent une contrainte imposée par les canaux de transmission à débit constant et dont la suppression est censée apporter une amélioration significative à la qualité visuelle de l’image. La deuxième motivation concerne la promesse des réseaux ATM de pouvoir garantir aux connexions à débit variable, une qualité de service équivalente à celle des canaux de transmission à débit constant. Autrement dit, il est généralement supposé, sinon admis, que le débit variable permet d’augmenter le rapport qualité/débit des services vidéo. Le gain qui pourrait en résulter n’est pourtant pas simple à mesurer. Bien qu’un gain de multiplexage statistique soit souvent présenté, dans les études de trafic, comme un argument en faveur du débit variable, il est absolument nécessaire de tenir compte à la fois du surplus de bande passante nécessaire à accommoder le débit variable dans le réseau et de la qualité visuelle du codage CBR à débit équivalent (bénéficiant de ce surplus de bande passante). Le gain de multiplexage sera abordé plus en détail dans le paragraphe 4.2.2. 2.3 Les contraintes de qualité de service A l’instar du terme Multimedia, l’usage diversifié de la notion de Qualité de Service (QoS) a rendu ce terme si vague qu’il ne peut se suffir à lui même sans une définition préalable. Aussi, nous décrivons dans ce paragraphe notre perspective de ce que peut être concrètement - et d’un point de vue gestion de trafic - la qualité de service offerte par un réseau de type ATM à une application vidéo. Deux paramètres sont donc considérés dans cette thèse : le délai et les pertes. 2.3.1 Les pertes dans le réseau Dans le contexte des réseaux ATM, l’unité de transfert de donnée (cellule), peut être détruite par le réseau ou tout simplement perdue. La perte des cellules affecte le fonctionnement du décodeur vidéo qui reçoit le flux. Le taux de perte, dont dépend directement la qualité de l’application vidéo, doit être limité à des valeurs connues à l’avance. Pour cela des expérimentations sur des décodeurs prototypes permettent d’évaluer l’effet des pertes et développer des mécanismes de dissimulation de pertes de cellules. L’annexe F du modèle de test TM5 [51], propose un modèle probabiliste de perte de cellules utilisé dans les expériences du groupe de travail MPEG. Ce modèle est défini par la probabilité Pl qu’une cellule soit perdue sachant que la cellule précédente est déjà perdue, et la probabilité Pn qu’une cellule soit perdue sachant que la cellule précédente n’est pas perdue. Le diagramme de transition est présenté dans la figure 5. Ce diagramme permet de simuler des pertes sur un train binaire MPEG en jouant sur les paramètres suivants : Pn 1-Pn non-perdue perdue Pl 1-Pl Figure 5: Modèle de perte des cellules du TM5 17 Contrôle de trafic ATM pour sources vidéo à débit variable Pn - le taux de perte moyen P = -------------------------- (ou la probabilité qu’une cellule prise au hasard soit perdue); 1 – Pl + Pn 1 -. - la taille moyenne d’une perte en série B = ------------1 – Pl Des valeurs typiques sont proposées dans le TM5 : P = 10-3 et B = 2. Les techniques de dissimulation de perte se basent sur la ré-utilisation des macro-blocs de l’image précédente. Ceci peut se faire par simple substitution du macro-bloc perdu par celui ayant la même position dans l’image précédente ou en utilisant le vecteur de mouvement du macro-bloc situé au dessus. Notons qu’il y a possibilité d’utiliser des techniques de corrections directes d’erreurs ou FEC (pour Forward Error Correction) spécifiques à MPEG. Ces techniques permettent de diminuer l’effet du taux de perte au prix d’un sur-plus de bande passante utilisée pour acheminer des informations redondantes. Dans le cas de MPEG, la perte de certaines données comme les entêtes (de GoP ou de séquence) peut avoir des conséquences dramatiques sur le comportement du décodeur (perte de synchronisation, rupture du signal jusqu’au prochain point de reprise etc...). Il convient alors de protéger les cellules d’une manière sélective selon l’importance de leur contenu. Le codage en couches est une autre forme de protection contre les erreurs. Plus de détails concernant les techniques de dissimulation des pertes peuvent être trouvés dans [32, 33, 34, 35, 49, 77]. Bien que la qualité de l’image restituée soit sensible à la corrélation des pertes dans le temps (la manière dont les pertes ont lieu : groupées ou isolées), le taux moyen de perte des cellules noté CLR (pour Cell-Loss Ratio) reste un paramètre clé dans la description de la qualité de service aussi bien pour l’application vidéo que pour le réseau ATM. Dans la présente thèse, la spécification et le contrôle de la QoS, en ce qui concerne les pertes, se font à l’aide du seul paramètre CLR. 2.3.2 Le délai dans le réseau Le transfert de trafic vidéo dans un réseau ATM peut être fait dans le cadre d’applications interactives ou non interactives. Nous distinguons alors deux classes d’applications vidéo ayant besoin d’établir des connexions réseaux : • les applications sans contraintes de temps; sont les applications où la totalité des données compressées (e.g. tout le film) sont transférées avant d’entamer leur décodage. C’est le cas par exemple du transfert de documents vidéo d’un site à l’autre. C’est aussi le cas lorsqu’on dispose d’un réseaux à qualité de service non garantie tel que l’actuel Internet. Pour ce type d’applications, la QoS requise est équivalente à celle du transfert de données informatiques (e.g. transfert de fichier, TCP/IP) où les paquets perdus dans le réseaux sont récupérés à l’aide de re-transmissions et où les délais peuvent être arbitrairement grands. • les applications à contraintes de temps; sont les applications nécessitant une borne du délai engendré par le réseau. C’est le cas par exemple des applications interactives, où l’utilisateur qui regarde la séquence inter-agit avec le codeur par envoie de commande, (e.g. vidéo à la demande) ou dans le cas de vidéo-conférences. Les applications dites temps-réel font également partie de cette catégorie. D’une manière générale une application à contrainte de temps est celle où le retard du récepteur par rapport à l’émetteur, défini par la différence entre l’instant de codage d’une image donnée et celui de son affichage, est imposé à l’avance et doit être respecté par le réseau et les terminaux (codeur et décodeur). Dans le cas de l’application “magnétoscope distant” par exemple, qui est une sorte de vidéo à la demande où l’utilisateur commande en temps réel le serveur vidéo situé de l’autre coté du réseau, le temps de réponse de la commande doit rester inférieur à la seconde pour ne pas ennuyer l’utilisateur. 18 Les communications vidéo basées sur MPEG Réseau ATM Codeur Décodeur Codeur Décodeur File d’attente modélisant le réseau Buffer de reconstruction Figure 6: Modèle de délai pour service vidéo à contraintes de temps. C’est cette dernière classe d’applications qui nous intéresse dans cette thèse. D’une manière plus spécifique, le délai total subi par une image comprend les délais de codage et décodage, supposés constants dans les codeurs matériels, et le délai du système de transport (i.e. le réseau) qui est dans le cas général variable. C’est ce dernier délai qui constitue l’objet de notre étude. Ce qu’on appelle garantie de qualité de service revient dans la pratique à pouvoir connaître à l’avance les délais que vont subir les images dans le réseau. Comme le montre la figure 6, le délai introduit par le réseau peut être représenté par celui d’une file d’attente unique modélisant les phénomènes d’attente dans le réseau. Dans le cas général, la variation de délai est due à la fois au débit variable du canal de transmission et au débit variable en sortie du codeur (images compressées de tailles variables). Dans tout les cas, un buffer de reconstruction du flux (appelé aussi play-back buffer, decoder buffer ou Virtual Buffer Verifier) est nécessaire pour absorber la gigue de transmission. Le processus de décodage commence une fois ce buffer rempli. Le délai total de bout en bout est alors déterminé par la durée initiale de remplissage de ce buffer de reconstruction qui dépend de la file d’attente modélisant le réseau. Un calcul simple permet de vérifier que le délai total est égal au délai maximum introduit par la file d’attente du réseau (en négligeant les délais de propagations). Considérons le cas le plus général d’un trafic VBR et un canal de transmission VBR et prenons un modèle fluide en temps continu : R(t) > 0, le débit instantané à la sortie du codeur (en b/s) C(t) > 0, le débit instantané de service de la file d’attente représentant le réseau en (b/s), X ( t ) ≥ 0 , le remplissage instantané de la file d’attente, qui peut être défini comme suit : t X(t) = ∫ ( R ( x ) – C ( x ) ) dx V ( t ) = sups { s ≤ t, X ( s )=0 } d(t) le temps de séjour dans la file d’attente du bit qui y est entré à l’instant t : d d(t) = –1 f t (X ( t )) avec f t ( d ) = ∫ C ( x) dx t On considère que le buffer de reconstruction est rempli pendant une durée de D secondes avant le début du processus de décodage. Le premier bit (généré par le codeur à l’instant 0) va donc être consommé à l’instant D, et le bit généré à l’instant t va être consommé à l’instant t+D. Pour pouvoir absorber la gigue, il faut que le bit soit 19 Contrôle de trafic ATM pour sources vidéo à débit variable présent dans le buffer du décodeur à l’instant de sa consommation, i.e. l’instant de sortie de la file d’attente t+d(t) est toujours inférieur à l’instant de consommation t+D, ce qui donne : D = sup t { d ( t ) } Notons que la durée D qui est le temps maximal de séjour dans la file d’attente du réseau représente en même temps le temps de réponse de bout en bout, i.e, pour un bit donné (ou cellule), le délai rencontré dans le premier buffer est complété par un délai supplémentaire dans le deuxième buffer pour atteindre exactement la durée D. Une preuve pour un modèle discret et un canal à débit constant est donnée dans [43]. Le modèle de la figure 6 est un modèle générique et couvre aussi le cas des codeurs CBR associés aux réseaux CBR. Le premier buffer représente alors celui utilisé par le contrôle de débit CBR pour adapter le trafic au canal à débit constant. Concernant les pertes décrites dans le paragraphe précédent, elle peuvent résulter de la limitation de la taille du premier buffer due aux contraintes sur le délai. En effet, le délai et les pertes représentent souvent un compromis pour le choix de la QoS : pour minimiser le délai il faut limiter la taille des buffers qui a leur tour rejettent les cellules en cas de débordement. Pour conclure ce paragraphe, il est utile de connaître l’ordre de grandeur du délai dans les systèmes actuels. Une moyenne de 300 ms est courante dans les buffers des codeurs CBR. Pour le VBR, a priori il n’y pas besoin de buffer dans le codeur, mais plusieurs études proposent des buffers de lissage qui peuvent être arbitrairement grands. Des délais de 250 ms sont atteints dans les buffers des systèmes de multiplexage MPEG Système. 2.4 Conclusion La définition de la série de standards MPEG permet de couvrir une très large gamme d’applications vidéo. Très souvent, les applications MPEG déjà existantes n’utilisent que le mode de codage CBR. Cela est en partie du à l’absence de réseaux permettant de bien gérer le débit variable. L’avenir de MPEG VBR est donc très lié à l’évolution des réseaux ATM et du RNIS-LB qui permettront le déploiement à grande échelle des services vidéo. Il est cependant nécessaire que les codeurs MPEG puissent être adaptés aux spécificités des réseaux ATM et inversement. En effet, le présent travail concerne l’adaptation du trafic MPEG à débit variable au contrôle de trafic ATM. Le chapitre suivant présente l’état de l’art de la gestion de trafic dans les réseaux ATM. 20