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

Documents pareils