<figure><img src="image_1.png" /></figure>

HAL
open science

# Algorithmes de Codage et de Contrôle de Transmission
# Vidéo sur Réseaux Hétérogènes

Christine Guillemot, Thierry Turletti

<figure><img src="image_2.png" /></figure>

## To cite this version:

Christine Guillemot, Thierry Turletti. Algorithmes de Codage et de Contrôle de Transmission Vidéo sur Réseaux Hétérogènes. Systèmes multimédias communicants, Lavoisier-Hermès, 2001, ISBN 2-7462-0251-4. hal-04649851

HAL Id: hal-04649851

https://inria.hal.science/hal-04649851v1

Submitted on 16 Jul 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_3.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Algorithmes de Codage et de Contrôle de
Transmission Vidéo sur Réseaux Hétérogènes

Christine Guillemot et Thierry Turletti

version du 18 Juillet 2000
# 1. Introduction

Avant de passer en revue les mécanismes de contrôle de transmission, observons les différences entre les réseaux traditionnels tels que le RNIS (Réseau Numérique à Intégration de Services) basés sur une technologie à *commutation de circuits* et les nouveaux réseaux à *commutation de paquets*. Les réseaux à commutation de circuits comme le réseau RNIS utilisent des liaisons de capacités fixes qui sont allouées lors de la demande de connexion. Un protocole de contrôle d'admission de connexion s'assure lors de l'établissement de la connexion que suffisamment de bande passante est disponible pour le service demandé. Le problème de congestion du réseau ne se pose donc pas. Si la demande est acceptée, un chemin virtuel est créé de la source vers le récepteur avec une bande passante et un délai de "bout en bout" garantis pendant toute la durée de la transmission. Dans le cas où il n'y a pas assez de bande passante, la demande de connexion est rejetée, et l'utilisateur doit renouveler sa demande plus tard. Les réseaux à commutation de circuits offrent des garanties de ressources (par exemple une bande passante et/ou un délai maximal de transmission garantis). Cependant, ce type de réseau comporte quelques inconvénients. La commutation de circuits peut conduire à une très forte sous-utilisation des liaisons lorsque le trafic généré par la source n'est pas constant, comme dans le cas de la transmission vidéo à débit variable.

Internet, contrairement au RNIS, est un réseau à commutation de paquets dans lequel le concept même de connexion n'existe pas : chaque paquet est routé indépendamment des autres. Traditionnellement, tous les contrôles ont lieu de "bout en bout", c'est-à-dire que les routeurs intermédiaires n'interviennent pas. Il n'y a même pas d'établissement de circuit virtuel, les adresses sources et destination sont présentes dans tous les paquets IP, ce qui permet à ces paquets d'emprunter des chemins différents. Il n'y a aucune garantie sur le fait que les paquets atteindront effectivement leur destination, pas plus qu'ils ne l'atteindront dans l'ordre. Pour obtenir un transport fiable, les paquets doivent être acquittés par un protocole de transport de "bout en bout" en utilisant par exemple le protocole TCP. En cas de non acquittement d'un paquet, l'émetteur doit réémettre le paquet non acquitté qui devra à nouveau traverser tout le réseau (les routeurs intermédiaires n'en gardant pas de copie). Les paquets peuvent aussi être reçus hors séquence ou avoir été dupliqués, voire altérés, par la transmission. Lorsqu'un paquet arrive à un routeur entre la source et la destination, il attend son tour dans une file d'attente avant d'être transmis. Le plus souvent, les files d'attente sont gérées selon une logique PAPS "Premier Arrivé - Premier Servi". De cette manière, les ressources sont utilisées avec une efficacité maximale. Les liaisons sont utilisées dès que les paquets sont disponibles. Cependant, les connexions ne sont pas indépendantes les unes des autres, car le comportement d'une connexion affecte celui des autres connexions
avec lesquelles elle partage des ressources du réseau.

Aujourd'hui, il n'est donc pas possible dans l'Internet d'obtenir des garanties de ressources, le réseau se contentant d'acheminer les paquets du mieux qu'il peut. Ce type de service est connu sous le nom du "meilleur effort possible" (ou best effort). Une conséquence naturelle de cette architecture est que le réseau peut être sujet à des phénomènes néfastes comme la congestion. En effet, lorsque la demande des utilisateurs excède la capacité du réseau, on observe un phénomène de saturation qui se traduit par une dégradation des performances globales du réseau. Les délais de "bout en bout" ainsi que le taux de perte des paquets augmentent alors rapidement, dégradant ainsi le débit effectif du réseau. Pour éviter ces problèmes, des mécanismes de contrôle de transmission sont nécessaires pour limiter le taux d'utilisation des ressources du réseau en contrôlant le débit des paquets émis par les utilisateurs.

Or, les communications de flux continus de données audiovisuelles diffèrent des transmissions de texte ou de données informatiques "traditionnelles" dans la nature de la Qualité de Service (QoS) qu'elles requièrent. Alors qu'une transmission de données informatiques ou de données textuelles nécessite un service de transport fiable, c'est-à-dire sans perte ni altération, une communication audio ou vidéo privilégie l'aspect interactif ou temps-réel, où le délai de transit et la bande passante disponible sont des paramètres prépondérants. Les médias sonores et visuels s'accommodent difficilement des délais de transmission introduits par le contrôle d'erreur d'un protocole fiable, tel que TCP. En revanche, ces applications tolèrent généralement une certaine dégradation, résultant des pertes de paquets dans le réseau.

Ces nouvelles contraintes de QoS sont à l'origine de l'étude de techniques de contrôle de transmission s'inscrivant dans deux grandes démarches : d'une part faire évoluer l'offre de service réseau par la mise en place de mécanismes de réservation de ressources (comme par exemple RSVP), de contrôle d'admission des flux, ou de différenciation de service, et d'autre part, intégrer au niveau de l'application certains principes de contrôle de qualité de service et de contrôle de congestion. La première tendance sous-tend le déploiement de mécanismes complexes au niveau du réseau ainsi que la mise en place d'une échelle de tarification d'accès. En revanche, le contrôle de transmission des applications multimédia suppose l'intégration au niveau de l'application de certains principes de partage équitable des ressources afin de participer au maintien de bonnes conditions de transmission, d'une part et de garantir une qualité minimale d'autre part. Les stratégies de représentation et de codage des flux multimédia ne vont plus seulement devoir répondre à des objectifs de compression, mais elles devront aussi permettre de satisfaire les besoins en termes de QoS de ce type de flux, tout en garantissant une utilisation optimale des ressources du réseau, et une bonne cohabitation avec des services téléinformatiques concurrents.
Ce chapitre passe en revue les différents mécanismes complémentaires nécessaires au contrôle de transmission des flux vidéo sur des réseaux hétérogènes. Le contrôle de transmission vidéo regroupe l'ensemble des mécanismes qui sont utilisés pour acheminer les données d'une source (ou codeur) vers un ou plusieurs récepteurs (ou décodeurs). Ces mécanismes peuvent être implantés au sein même de l'application (codeur et décodeurs) ou dans le réseau. L'intégration au niveau de l'application passe par une adaptation (ou un couplage) entre les modèles de représentation et de codage des flux et le réseau. Ce couplage peut être mise en place à plusieurs niveaux :

- Au niveau des mécanismes de régulation des flux audiovisuels transmis en y introduisant des modèles prédictifs de bande passante, et ceci afin d'adapter le débit des flux à la bande passante disponible sur le réseau. Cette adaptation permet de réduire les pertes subies et d'assurer un par tage équitable des ressources avec les autres utilisateurs.

- Au sein de l'algorithme de codage des signaux audiovisuels par des mécanismes de codage robuste à différents modèles d'erreurs et/ou d'effacements et pouvant s'adapter à une large gamme de QoS. Ces mécanismes vont d'une simple adaptation des algorithmes de compression existants pour rester compatibles à des syntaxes normalisées, à une réécriture des opérateurs de la chaîne de compression et de communication.

- Par l'introduction de mécanismes de contrôle de pertes ou d'erreurs qui permettent d'améliorer la qualité apparente de la transmission.

Après une introduction de la compression vidéo et une présentation des principaux standards, les principes de mise en trame par l'application sont exposés, en prenant pour exemple le découpage en paquets de la vidéo H.261 qui utilise le protocole. Ce chapitre aborde dans une quatrième section le délicat problème du contrôle de congestion des applications multimédia. Ce chapitre décrit ensuite les principaux algorithmes de représentation et de codage multi-niveaux (ou scalable), celui-ci apparaissant comme une solution privilégiée à l'adaptation des applications au réseau, dans un environnement de transmission multipoint (une ou plusieurs sources vers plusieurs destinations) hétérogène. Le contrôle de congestion ne permettant pas d'éliminer les phénomènes de pertes, ce chapitre s'intéresse alors tout naturellement, dans une sixième et septième section, au codage robuste et au problème du contrôle de pertes et d'erreurs.

## 2. Standards de compression vidéo

Cette section donne une vue d'ensemble des principaux standards de compression vidéo. Le standard de vidéoconférence H.261 de l'ITU <fnref n="1" /> a été conçu à

<footnote n="1">¹International Telecommunication Union</footnote>
l'origine pour une utilisation sur le RNIS et sa première version a été approuvée en décembre 1990 par l'ITU sous sa dénomination finale "Recommandation H.261 : Codec pour Services Audiovisuels à $p \times 64kbps$, ($p \in [1, 30]$)". Le but était à l'origine de couvrir entièrement les possibilités de transmission du RNIS, de l'accès de base <fnref n="2" /> à l'accès primaire<fnref n="3" />. La recommandation H.261 a par la suite évolué pour donner naissance au standard H.263, conçu pour des applications de visiophonie, de visioconférence et de communications mobiles. Ces recommandations reposent sur un algorithme hybride à prédiction temporelle par estimation et compensation de mouvement suivi d'une TCD (Transformation en Cosinus Discrète) et d'une quantification scalaire uniforme. Tout comme H.261, l'algorithme H.263 met en œuvre deux modes de codage de base, **INTRA** et **INTER** image mais permet de négocier 4 autres modes, de prédiction avancée, de prédiction bidirectionnelle, de codage arithmétique, et utilisant un espace de recherche des vecteurs de mouvement non restreint. Plus récemment, l'ITU a défini la recommandation H.263 version 2 (ou H.263 +). Elle propose 12 modes supplémentaires qui permettent d'accroître les performances de compression, la robustesse aux erreurs de transmission des flux compressés, et d'offrir des modes de codage scalable.

L'ISO<fnref n="4" /> s'est aussi intéressé à la compression de séquences audiovisuelles, en créant à partir de 1988 le groupe MPEG (Moving Picture Expert Group). Ce groupe a d'abord spécifié une norme de compression du signal vidéo et du son dédiée à des applications de stockage de programmes (films, publication électronique, multimédia,...) sur CD-ROM, pour des applications CD-I (Compact Disc Interactive) ou CD-vidéo. Le débit disponible sur un CD, après correction d'erreurs, étant d'environ 1.5 Mbits/s son et données compris, cela laissait environ 1.15 Mbits/s pour l'image, 128 kbit/s pour le son en monophonie et 256 kbit/s en stéréo. Les contraintes de service comme les accès aléatoires, l'avance rapide ou la marche arrière, conduisirent à aménager les algorithmes connus. L'algorithme de codage vidéo repose également sur une structure hybride avec une prédiction temporelle par estimation et compensation de mouvement suivie d'une transformation en cosinus discrète et d'une quantification scalaire uniforme. L'algorithme opère sur des images non entrelacées à 30 Hz, 25 Hz ou 24 Hz (pour le cinéma). Les principales innovations concernent la compensation de mouvement avec calcul au demi-point, la pondération des coefficients avant quantification, la prédiction temporelle bi-dimensionnelle, l'insertion régulière d'images **INTRA** (images non prédites).

Les avancées dans le domaine de la compression ont rapidement permis d'envisager la distribution de plusieurs programmes de télévision sur un seul canal

<footnote n="2">²L'accès de base est constitué de deux canaux numériques à 64 kbps (canaux B) et d'un canal numérique de signalisation à 16kbps (canal D).</footnote>

<footnote n="3">³L'accès primaire est constitué de 30 canaux B pour un canal D.</footnote>

<footnote n="4">⁴International Standardization Organization</footnote>
de transmission (statellite, hertzien, ou câble). L'ISO a alors, dès 1990, initialisé une nouvelle phase de normalisation devant conduire, en 1995, à la norme MPEG-2 de codage des signaux audiovisuels pour la distribution de la télévision numérique et de la télévision à Haute Définition (TVHD). L'algorithme spécifié appartient une fois de plus à la famille des schémas hybrides. Il opère cette fois sur des images qui peuvent être entrelacées. La spécification MPEG-2 se veut " générique " : elle décrit les méthodes utilisées en laissant le soin à l'utilisateur de les paramétrer. De ce fait, la spécification peut être utilisée pour un grand nombre d'applications, de débits et de formats d'images. Le standard se décline ainsi en plusieurs profils adaptés à des applications particulières.

Enfin, en janvier 1999, l'ISO publiait une nouvelle norme de codage de signaux audiovisuels, dans une première version, avec pour objectif de définir une seconde version pour janvier 2000. L'approche MPEG-4 complète et généralise les concepts traités par les standards antérieurs (par exemple, les trames rectangulaires traditionnelles sont étendues à des objets de forme quelconque). Le codeur MPEG-4 vidéo peut être vu comme une généralisation du codeur H.263. Il incorpore en plus la notion d'objet vidéo (VO) et de plan d'objet vidéo (VOP) défini comme l'instance ou la projection de l'objet vidéo dans une image. Le codeur comprend alors un codeur de la forme de l'objet suivi d'un codeur plus traditionnel, à base de prédiction temporelle compensée en mouvement et de transformation en cosinus discrète, appliqué à chaque objet vidéo. Quand l'objet est de forme rectangulaire, l'information de forme n'est pas transmise. La structure du codeur MPEG-4 est, dans ce cas, très proche de celle des codeurs MPEG1/2 et H.26X.

## 2.1. Formats d'images

Un signal vidéo couleur peut être représenté sous forme de trois composantes de couleur : le rouge (R), le vert (V) et le bleu (B). La perception visuelle humaine étant plus sensible à l'intensité lumineuse qu'à la couleur, les techniques de traitement numérique des images considèrent souvent une représentation du signal vidéo sous forme de trois composantes Y (luminance), Cb et Cr (chrominances) [REC 90]. La luminance (Y) représente les niveaux de gris de l'image et les deux composantes de chrominance (Cb et Cr) correspondent à sa coloration. Le passage de la représentation (R,V,B) à la représentation (Y,Cb,Cr) s'effectue par un simple produit matriciel. Il existe plusieurs matrices de transitions. Une matrice de transition souvent utilisée est donnée par

$$ \begin{bmatrix} Y \\ Cb \\ Cr \end{bmatrix} = \begin{bmatrix} 0.587 & 0.114 & 0.299 \\ -0.331 & 0.500 & 0.169 \\ -0.419 & -0.081 & 0.500 \end{bmatrix} \begin{bmatrix} R \\ V \\ B \end{bmatrix}. $$
L'œil étant plus sensible aux variations de luminance que de chrominance, les composantes de luminance sont échantillonnées à une fréquence double de la fréquence d'échantillonnage du signal de chrominance. Ces rapports de fréquence d'échantillonnage ont conduit à l'appellation 4 :2 :2 du standard CCIR-601 de télévision numérique. Pour atteindre des facteurs de compression élevés, l'ITU-T et l'ISO dans leurs processus respectifs de spécification des standards H.261, H.263 et MPEG-1 puis MPEG-2 ont défini des formats intermédiaires : les formats 4 :2 :0, le Format Intermédiaire Commun (CIF, Common Intermediate Format) et un format réduit au quart (QCIF). Le format 4 :2 :0 est obtenu, à partir du format 4 :2 :2, par un sous-échantillonnage vertical des signaux de chrominance. Les grandeurs caractéristiques d'une image CIF sont les suivantes :

- dans la direction horizontale, le nombre de points (ou pixels) par ligne est de 352 pour la luminance et de 176 pour les chrominances $C_R$ et $C_B$;

- dans la direction verticale, le nombre de lignes par image est de 288 pour la luminance et de 144 pour les chrominances $C_R$ et $C_B$.

Pour une image QCIF, le nombre de coefficients pour chaque composante est réduit d'un facteur 2 dans chaque direction (horizontale et verticale).

## 2.2. Algorithmes de compression

Un schéma de compression vidéo présente toujours plus ou moins la même architecture : une première étape de décorrélation suivie d'opérations de quantification et de codage. Prédire le signal et coder l'erreur de prédiction correspond à une telle approche. Plus le signal sera finement modélisé et plus l'erreur de prédiction sera indépendante du signal et donc blanche. Cette erreur de prédiction peut être à son tour décorrélée puis quantifiée et codée. Dans la dimension temporelle, pour les séquences animées, une méthode, selon le principe ci-dessus, s'est révélée très efficace : la prédiction temporelle par estimation et compensation de mouvement. La pertinence de l'information n'étant pas facile à apprécier dans le domaine de l'espace et du temps, on peut alors effectuer des changements de représentation qui permettent de faciliter la séparation de l'information la plus pertinente. Cette approche est celle des transformations qui remplacent le signal d'origine par sa représentation sur une base de fonctions.

Tous les standards de compression reposent sur ces principes fondamentaux illustrés sur la figure 1. Les standards de compression de la famille H.26X (H.261, H.263 et H.263 version 2) et MPEG-X (MPEG-1, MPEG-2 et MPEG-4) mettent en œuvre des algorithmes hybrides à prédiction-transformation [LYN 85]. Ces algorithmes associent une estimation de mouvement, une prédiction temporelle compensée en mouvement, un codage par transformation, une quantification et un codage entropique.
<figure><img src="image_4.png" /><figcaption>Figure 1 – Schéma de principe d'un codeur vidéo (CLV : codes à longueurs variables ; TCD : transformée en cosinus discrète).</figcaption></figure>

2.2.1. Prédiction temporelle compensée en mouvement et modes de codage

Dans le standard H.261, deux modes de fonctionnement sont utilisés : un mode non prédictif (ou **INTRA**) dans lequel les images sont codées intégralement, sans aucune référence à des images voisines de la séquence vidéo et un mode de compression prédictif (ou **INTER**) plus efficace, dans lequel le codage utilise une prédiction faite par rapport à l'image précédente exclusivement. La décision de codage en mode **INTRA** peut être prise pour rafraîchir certains macro-blocs après plusieurs encodages successifs en mode **INTER**, ou après un changement de scène ou encore à la demande d'un récepteur. En ce qui concerne le codage **INTER**, une détection de mouvement est tout d'abord appliquée à l'image, et seuls les blocs d'image qui sont suffisamment différents des blocs correspondants dans l'image précédente sont encodés. Les algorithmes de la série MPEG-X (MPEG-1, MPEG-2, MPEG-4) utilisent en plus un mode de prédiction bi-directionnel. Les images successives de la séquence peuvent être codées selon trois modes, représentés sur la figure 2 :

1. **INTRA** (I), c'est à dire comme une image fixe avec un traitement uniquement spatial par transformation TCD, quantification et codage statistique,

2. **PREDIT** (P), c'est à dire par prédiction par estimation et compensation de mouvement à partir de l'image **INTRA** précédente,
3. **Bi-Directionnel (B)** où la prédiction temporelle se fait en avant et en arrière par rapport à des images de type **I** ou **P**, l'image prédite étant le résultat de l'une ou l'autre de ces prédictions ou de l'interpolation entre les deux images de prédiction. Pour décodeur une image de type **B**, il faut avoir reçu l'image **P** de référence. Ce mode va donc induire un retard supplémentaire.

<figure><img src="image_5.png" /><figcaption>Figure 2 – Structure d'un groupe d'images (GOP).</figcaption></figure>

L'analyse d'une image se fait ensuite suivant une structure hiérarchique (cf. figure 3). Une image est divisée en groupes de blocs (GOB), chaque groupe de blocs étant constitué de macro-blocs (MB). Un macro-bloc est constitué de quatre blocs de 8 × 8 pixels de luminance et de deux blocs de 8 × 8 pixels de chrominance pour les signaux vidéo au format 4 :2 :0. Le nombre de blocs de chrominance dans un macro-bloc est fonction des rapports des fréquences d'échantillonnage entre les signaux de luminance et de chrominance. Un GOB regroupe un nombre différent de MBs selon le standard utilisé. Dans le standard H.261, un GOB est constitué de 3 lignes de 11 MBs (soit 33 MBs) tandis que dans le standard H.263, un GOB contient une ligne de 11 MBs. Ainsi, une image QCIF est constituée d'une colonne de 3 GOBs dans le standard H.261 et d'une colonne de 9 GOBs dans le standard H.263 (voir Figure 3). Cette structure d'analyse de l'image conduit à une organisation du train binaire en quatre couches : la couche Image (I), la couche Groupe de Blocs (GOB), la couche Macro-Bloc (MB) et enfin la couche Bloc (B) (cf. figure 4). Dans le standard MPEG-4, la syntaxe définie pour chaque objet vidéo suit une structure hiérarchique comprenant des niveaux appelés, objet vidéo (*video object layer*), plan d'objet vidéo (*VOP ou video object plane layer*), suivi de paquets vidéo qui s'apparentent aux groupes de macro-blocs (GOB) du standard H.263.

Chaque macro-bloc des images de type P et B peut être codé selon différents modes, à savoir **INTRA**, **INTER**, avec ou sans compensation de mouvement, etc.. [TEK 91]. Le critère de choix de mode est souvent une comparaison entre
<figure><img src="image_6.png" /><figcaption>Figure 3 – Structure hiérarchique d’analyse de l’image.</figcaption></figure>
<figure><img src="image_7.png" /><figcaption>Figure 4 – Structure hiérarchique du train binaire H.261</figcaption></figure>

les variances du macro-bloc **INTRA** et du macro-bloc de l'erreur de prédiction, ou encore une comparaison entre les sommes des valeurs absolues des différences $\sum_{i=1,j=1}^{16,16} |x(i,j) - x_{moy}|$ et $\sum_{i=1,j=1}^{16,16} |x(i,j) - x_{ref}(i,j)|$, où $x_{moy}$ représente la moyenne des valeurs de luminance (ou de chrominance) du macro-bloc et où $x_{ref}$ représente les valeurs de luminance (ou de chrominance) des pixels des macro-blocs pris comme référence dans la prédiction temporelle (avec ou sans compensation de mouvement).

### 2.2.2. Codage par transformation orthogonale

Chaque bloc de l'image **INTRA** ou de l'erreur de prédiction (en mode **INTER**) est transformé par une transformation en cosinus discrète (TCD) (ou DCT pour Discrete Cosine Transform, en anglais), introduite en 1977 par Rao [RAO 85]. Le codage par transformation orthogonale permet de décorréler le signal à encoder. L'idée générale est d'isoler dans le domaine transformé, les zones où se trouve l'énergie du signal, c'est-à-dire son information utile. Ce type de codage se contente de changer la représentation du signal sans aucune réduction de débit. La compression s'effectue ensuite dans l'étape de quantification et de codage des coefficients obtenus. Un grand nombre de transformations orthogonales existe dans la littérature. La TCD a l'avantage d'utiliser une base de fonctions fixes qui est indépendante de l'image à encoder, ce qui se traduit par une économie en coût de calcul. Pour des raisons de complexité, on décompose préalablement l'image en blocs élémentaires carrés de pixels (en général de côté 8), et on effectue la TCD sur chacun des blocs élémentaires. Cette transformation a fait l'objet de nombreuses réalisations commerciales aussi bien câblées que programmées.
L'efficacité d'une transformation est caractérisée par une concentration d'énergie après transformation la plus forte possible, une corrélation entre les coefficients transformés la plus faible possible, et une bonne acceptabilité visuelle des dégradations causées par l'omission ou l'altération de certains coefficients. L'acceptabilité visuelle est liée à une adaptation plus ou moins bonne du traitement effectué au système visuel humain. Cependant, si la décorrélation est bonne à l'intérieur d'un bloc TCD, elle l'est moins entre les coefficients de même indice de blocs différents. Par ailleurs, lorsque l'on cherche à réduire le débit, certains effets parasites (bruits, marquage des contours) se manifestent, et la structuration en blocs devient visible. L'œil est très sensible à une telle structure spatialement régulière et de grande dimension. Ces constatations ont motivé l'étude de nombreuses autres techniques de compression. Certaines de ces méthodes, notamment à base de décomposition du signal par bancs de filtres multifréquences, sont déjà à la base de plusieurs standards de compression sonore et de nouveaux standards de compression d'images fixes (JPEG2000, MPEG-4).

### 2.2.3. La quantification

Chaque bloc de coefficients TCD est quantifié à l'aide d'un quantificateur scalaire uniforme dont le pas est adapté à chaque coefficient TCD, afin de prendre en compte la plus forte sensibilité aux basses fréquences du système visuel. L'étape de quantification permet de réduire le nombre de niveaux nécessaire à la représentation des coefficients et aussi d'accroître le nombre de coefficients à valeur nulle. Elle permet ainsi de réduire le nombre de symboles à transmettre.

### 2.2.4. Le codage entropique

Le codage entropique exploite les propriétés statistiques des coefficients quantifiés pour diminuer le débit de transmission en utilisant des mots courts pour représenter les évènements les plus probables et des mots plus longs pour les occurrences rares. Afin d'augmenter l'efficacité du codage entropique, les coefficients quantifiés sont ordonnés en parcourant un trajet "zigzag" représenté par la figure 5. On fait l'hypothèse que les coefficients de basse fréquence (locallisés dans le coin supérieur gauche du bloc) ont des amplitudes plus grandes que les coefficients de fréquence plus élevée qui sont souvent nuls pour la plupart des images. On applique ensuite un schéma de codage de Huffman sur la suite d'évènements bi-dimensionnels constitués d'une part de la longueur de plage de zéros précédant un coefficient non nul, et d'autre part de l'amplitude du coefficient non nul, par analyse de la suite de coefficients ordonnés en "zigzag"
<figure><img src="image_8.png" /><figcaption>Figure 5 – Échantillonnage en “zigzag” d’un bloc 8 × 8 de coefficients</figcaption></figure>

[JAI 89]. Le code de Huffman [HUF 51] est le code optimal pour une compression à mot de code de longueur entière d'une source. C'est de plus un code instantané, ce qui signifie qu'aucun mot code n'est le préfixe d'un autre. Ce code permet de se rapprocher de l'entropie de la source, sans toutefois l'atteindre (sauf dans le cas de lois de probabilité du type $p(x_i) = 2^{-l_i}$, où $l_i$ est la longueur du mot de code i). On peut se rapprocher aussi près que l'on veut de l'entropie de la source, en codant des groupes de symboles, toutefois souvent au prix d'une taille de blocs élevée, induisant une complexité et des délais d'encodage importants.

### 3. Algorithme de découpage des flux vidéo en paquets

Les principes de “mise en trame par l’application” (ou ALF, *Application Level Framing*) et de traitement intégré des couches (*Integrated Layer Processing ILP*) [CLA 90] sont motivés par le manque d’efficacité du modèle traditionnel en 7 couches [ZIM 80] OSI (Organisation des Standards Internationaux) de l’ISO (Interconnexion de Systèmes Ouverts) pour implanter des applications temps-réel comme la vidéoconférence. Le protocole de transport RTP (*Real Time Protocol*) [SCH 96] a été élaboré dans l’esprit de ce nouveau modèle.

Cette section présente dans une première partie les principes de ce nouveau modèle, donne une brève description du protocole RTP et illustre l'ensemble avec un exemple de découpage en paquets spécifique au flot vidéo H.261.

#### 3.1. Principe de mise en trame par l'application

L'idée générale est d'optimiser la performance des applications, principalement en minimisant les accès mémoire et le nombre d'aller/retour des paquets
dans le réseau. En effet, ces opérations constituent le principal goulot d'étran-
glement des protocoles en couches. Dans le concept ALF<fnref n="5" />, les opérations sont
regroupées en deux phases : le traitement des données et le contrôle de trans-
mission des données. Le traitement des données concerne la lecture et la copie
d'octets, la détection d'erreurs, le stockage et la présentation des données à l'ap-
plication. Le contrôle du transmission regroupe le contrôle de flux, le contrôle de
congestion, le traitement des acquittements, la détection de perte de paquets, le
réséquencement, etc.. La phase de traitement des données est la plus critique en
raison du volume important de données transmises. Pour obtenir une efficacité
maximale de traitement des données, il est nécessaire de minimiser le nombre
de fois où ces données traversent le bus de données. D'où la technique de traï-
tement intégré des couches (ILP) qui repose sur les deux conditions suivantes :
le traitement d'un paquet par une suite de protocoles ne doit pas être bloquant
(sinon ILP ne peut être réalisé) et les opérations des différentes couches doivent
pouvoir être combinées entre elles. Ainsi, on essaiera de manipuler les données
le plus souvent dans une seule boucle de traitement de manière à minimiser les
accès mémoire. On peut noter que cette méthode est contraire à l'architecture
traditionnelle en couches qui suggère à chaque couche de terminer son traite-
ment des données avant que la couche suivante ne commence le sien. Le concept
ALF utilise la terminologie suivante :

- Le NDU (*Network Data Unit*) représente l'unité d'échange du réseau sous-jacent, comme un paquet IP. Dans la suite, on ne fera aucune distinction entre les termes paquet et NDU.

- l'ADU (*Application Data Unit*) est la plus petite unité de donnée que l'application peut traiter sans avoir recours à un réséquencement préalable. Les ADUs sont transmis sous forme de NDUs à travers le réseau. Il est légitime de laisser choisir à l'application son ADU étant donné qu'elle connaît la structure des informations transmises. Lorsqu'une ADU arrive, l'application effectue le traitement des données (détection d'erreurs, séquencement, présentation, etc..) en une seule passe. De cette manière, on réduit au minimum le nombre de copies et de changements de contexte qui surviennent par ADU.

Les principes ALF et ILP offrent plusieurs avantages aux applications de
vidéoconférence :

- Ils permettent de mettre en œuvre plus efficacement les services requis par la vidéoconférence. Par exemple, l'application peut choisir d'implanter son propre mécanisme de transmission de données au dessus de UDP plutôt qu'utiliser les mécanismes de contrôle de transmission de TCP qui ne sont pas adaptés à la vidéo temps-réel.

- Ils facilitent le multiplexage au niveau du décodeur, en permettant le décodage des ADUs hors séquence dans une même trame.

<footnote n="5">⁵ALF est détaillé dans le Chapitre ??, page ??.</footnote>
- Ils permettent d'éviter d'utiliser le service de fragmentation de la couche réseau, sous réserve que la taille des ADUs soit compatible avec celle des NDUs, et donc à condition de connaître la taille maximale des NDUs dans le réseau utilisé.

Dans le cas d'un codeur vidéo H.261, on distingue deux cas de figure, selon la conception du codeur. Si le codeur est implanté en logiciel, il peut être en mesure de manipuler directement les ADUs. Dans le cas contraire, les principes de ALF/ILP ne peuvent pas être mis en œuvre complètement. L'opération de découpage en paquets doit alors se faire à la sortie du codeur vidéo, et ce au détriment des performances.

## 3.2. Le protocole RTP

Le protocole RTP (Real Time Protocol) a été développé au sein du groupe de travail AVT (Audio Video Transport) de l'IETF<fnref n="6" />. RTP définit un format d'encapsulation de données de données multimédia temps-réel "compatible ALF" sur Internet. Ce protocole est principalement utilisé pour les applications d'audio et de vidéoconférence, telles que fphone [INR a], vat [UCB a], ou vic [UCB b]. L'utilisation de l'entête RTP présent dans chaque paquet permet aux applications de gérer tout un ensemble de fonctionnalités comme la synchronisation des données, le (dé-)multiplexage, et l'identification du contenu des paquets. RTP est conçu pour fonctionner au dessus de protocoles de transport tels que UDP, TCP, OSI TP1 et TP4. Il utilise les services offerts par la couche transport comme le transport des données de "bout en bout", le démultiplexage de plusieurs connexions de transport sur une même connexion réseau et la transmission multipoint des données. Étant donné qu'on ne se sert d'aucune hypothèse sur la fiabilité du réseau sous-jacent, l'application se doit de pouvoir gérer les pertes de paquets, les paquets reçus hors séquence ainsi que les délais non garantis. RTP peut être utilisé conjointement avec le protocole de contrôle RTCP (Real Time Control Protocol) [SCH 96] qui fournit un ensemble minimal de fonctionnalités pour la conférence comme l'identification de l'émetteur, et l'émission de rapports de réception. Cependant, RTP peut aussi être utilisé avec moins de fonctionnalités sans aucun protocole de contrôle. Les relations entre RTP, RTCP et les autres protocoles de l'Internet sont schématisées dans la figure 6.

Le protocole RTP a été conçu avec les objectifs suivants :

- Indépendance avec les protocoles de couches inférieures : le minimum d'hypothèses est fait sur le protocole de transport sous-jacent. Par exemple,

<footnote n="6">⁶L'IETF (Internet Engineering Task Force) est le forum où sont définis les standards de l'Internet [BRA 96].</footnote>
<figure><img src="image_9.png" /><figcaption>Figure 6 – Relations entre l’application, RTP, RTCP et la pile de protocoles de l’Internet</figcaption></figure>

RTP doit fonctionner aussi bien avec UDP qu’avec des protocoles expérimentaux supportant la réservation de ressources et des garanties de qualité de services.

- Efficacité : les applications multimédia génèrent un trafic important. Par exemple, pour une transmission audio, le découpage en paquets se fait couramment sur des intervalles<fnref n="7" /> de 20 ms. Avec un codage de type PCM<fnref n="8" />, cela représente une émission de 50 paquets de 160 octets de données par seconde. Si ces paquets sont émis en UDP, l’entête généré par IPv4 est de 20 octets, et celui d’UDP est de 8 octets. En rajoutant l’entête minimal de RTP de 12 octets, cela donne un entête de 40 octets pour 160 octets de données ; soit un coût supplémentaire de 25 % d’octets. Il est donc nécessaire de minimiser à la fois la longueur de l’entête RTP et la charge CPU nécessaire pour le traiter (par exemple, en faisant coïncider la taille de l’entête avec celle d’un mot<fnref n="9" />).

- Flexibilité du type des données transmises : RTP doit pouvoir être extensible à des applications autre que l’audio et la vidéoconférence.

- Compatibilité avec des passerelles : les passerelles de niveau RTP permettent de concatenére plusieurs flots de média en un flot unique en changeant la taille des paquets et/ou le codage et/ou le protocole de transport.

La figure 7 schématise l’entête RTP et le tableau 1 donne la signification de chacun de ses champs.

Les principaux services rendus par RTP sont résumés ci-dessous :

- Segmentation et réassemblage (différent selon le type de média),

<footnote n="7">⁷Des intervalles courts permettent de minimiser à la fois l’impact de la perte des paquets sur le son ainsi que les délais de transmission de “bout en bout”.</footnote>

<footnote n="8">⁸PCM (Pulse Code Modulation) est une technique d’encodage de la parole à 64 kbits/s défini par le standard G.711 du CCITT.</footnote>

<footnote n="9">⁹Un mot est constitué de 4 octets dans la majorité des machines actuelles.</footnote>
<figure><img src="image_10.png" /><figcaption>Figure 7 – Format de l'entête RTP</figcaption></figure>

<table><caption>Tableau 1 – Description de l'entête RTP</caption><thead><tr><th>Champs</th><th>Contenu</th></tr></thead><tbody><tr><td>V</td><td>Numéro de version du protocole RTP.</td></tr><tr><td>P</td><td>Bit qui vaut 1 si des octets de bourrage sont insérés en fin de paquet.</td></tr><tr><td>X</td><td>Bit qui vaut 1 si l'entête RTP est suivi d'un entête d'extension.</td></tr><tr><td>CC</td><td>Nombre de sources qui ont contribuées au paquet.</td></tr><tr><td>M</td><td>Bit marqueur dont la signification est spécifiée dans le profile associé.</td></tr><tr><td>PT</td><td>Identifie le format des données qui suivent l'entête.</td></tr><tr><td>NS</td><td>Numéro de séquence du paquet, incrémenté de 1 pour chaque paquet émis.</td></tr><tr><td>TS</td><td>Instant d'échantillonage du 1er octet des données du paquet.</td></tr><tr><td>SSRC</td><td>Identifie la source sur laquelle les données du paquet sont synchronisées</td></tr><tr><td>CSRC</td><td>Identifie les sources qui ont contribuées à ce paquet.</td></tr></tbody></table>

- Démultiplexage selon le type de média : par exemple audio PCM, vidéo H.261,

- Suppression de la gigue de délai introduite par la transmission au niveau du récepteur (en utilisant l'estampille de temps),

- Détection de perte de paquets (en vérifiant la continuité des numéros de séquence des paquets reçus),

- Contrôle de la qualité de réception (en émettant des rapports de qualité de réception),

- Confidentialité optionnelle (par exemple encryptage DES).
### 3.3. Schéma de découpage du flot vidéo H.261

Cette section décrit un exemple d'utilisation du protocole RTP pour transmettre un flot vidéo H.261 sur Internet. Ce schéma de découpage en paquets fait l'objet du standard RFC-2032 [TUR 96a].

La première étape consiste à découper le flot de données H.261 en ADUs. Pour être efficace, le schéma de découpage doit prendre en compte les objectifs suivants :

- Le coût du découpage/réassemblage doit être minimal pour permettre d'élaborer un algorithme rapide.

- La taille des paquets (ou NDUs) générés doit être assez grande pour éviter de congestionner le réseau par l'émission d'une multitude de petits paquets.

- Le décodeur doit pouvoir se resynchroniser facilement en cas de pertes de paquets.

- L'algorithme doit engendrer un délai minimal. Par exemple, on doit pouvoir afficher une image dès que toutes les ADUs correspondantes sont reçues, sans devoir attendre la réception de l'ADU suivante <fnref n="10" />.

- En cas de décodage à débit constant (avec par exemple un codec H.261), on doit pouvoir maintenir la synchronisation. Par exemple, en ajoutant des bits de bourrage si le débit reçu est inférieur au débit voulu.

- Pour minimiser l'effet de la perte de paquets sur l'image décodée, le décodeur devrait pouvoir utiliser tous les paquets qu'il reçoit. Ceci implique un découpage en paquets qui tient compte de la structure du codage H.261.

- L'algorithme de découpage en paquets doit pouvoir être utilisé à la fois par les codecs logiciels et par les codecs câblés disponibles dans le commerce.

Un problème délicat et essentiel dans l'algorithme de découpage consiste à bien choisir l'ADU. Pour des raisons d'efficacité, le choix de l'ADU doit se faire en fonction de la structure intrinsèque des données. Dans le cas du codage H.261, le découpage doit prendre en compte de la structure hiérarchique des données. Pour cela, il est nécessaire de supprimer le code de détection/correction d'erreurs BCH<fnref n="11" /> qui est rajouté aux données. En effet, ce code rend impossible tout découpage structuré du flot d'octets émis et est de plus totalement inefficace en cas de perte de paquets. Un schéma de contrôle d'erreur peut le remplacer avantageusement, comme on le verra dans la section 7).

<footnote n="10">¹⁰Puisque le codage H.261 ne prévoit pas de code spécifique pour la fin d'image, on peut utiliser le bit marqueur (M) de RTP pour reconnaître le dernier paquet d'une image.</footnote>

<footnote n="11">¹¹Bose, Chaudhuri Hocquengham</footnote>
Rappelons que le flot H.261 est structuré en quatre couches (cf. figures 3 et 4) : la couche image, la couche Groupe de Blocs (GOB), la couche macro-bloc (MB) et la couche bloc (B).

Pour réduire l'effet de la perte de paquets (ou NDUs) sur la qualité d'image, il faut donner à l'application la possibilité de décodeur tous les NDUs qu'elle reçoit. Ceci implique que l'ADU ne soit pas transmise par l'intermédiaire de plusieurs NDUs. Sinon, la perte d'un seul NDU entraînerait systématiquement le rejet entier de l'ADU, ce qui réduirait considérablement l'efficacité du schéma de découpage en paquets. D'autre part, pour atteindre un maximum d'efficacité de la transmission, la taille des NDUs doit être voisine de la taille maximale de transmission des unités de données (ou MTU, *Maximal Transmission Unit*) sur la liaison<fnref n="12" />. On élimine de cette manière le sur-coût généré par les opérations de fragmentation et de réassemblage de la couche réseau qui peut s'avérer prohibitif.

Rappelons que le flot généré par un codeur H.261 est un flot à débit variable. La recommandation H.261 spécifie que la taille d'une image CIF ne doit pas excéder 32 koctets, ce qui donne une taille maximale d'environ 3 koctets pour un GOB, 90 octets pour un MB et 15 octets pour un bloc. Dans la pratique, on observe que la taille des images s'étend de quelques dizaines d'octets à une vingtaine de koctets en fonction du mouvement et des détails dans la scène vidéo encodée. Pour être performant en toutes circonstances, le schéma de découpage en paquets doit pouvoir s'adapter dynamiquement à la taille des images. Ceci est possible en faisant correspondre l'ADU au MB. Cette solution permet d'approcher la taille optimale des paquets (par exemple le MTU) en émettant un nombre variable et entier d'ADUs par NDU. Ainsi, selon la nature de l'image encodée, on peut aussi bien transmettre tous les MBs d'une image dans le même paquet (cas courant lorsque la scène vidéo ne comporte que très peu de mouvement), ou émettre une vingtaine de paquets de taille voisine de 1000 octets par image (par exemple lorsqu'on encode toute une image CIF en mode INTRA).

Pour que le décodeur vidéo puisse décodeur toutes les ADUs qu'il reçoit dans un ordre quelconque, et qu'il soit robuste aux pertes de paquets, il est nécessaire que les ADUs qu'il reçoit soient indépendantes les unes des autres. Pour cela, passons en revue les dépendances entre macro-blocs. On trouve tout d'abord l'estampille de temps (mais cette information est déjà présente dans l'entête RTP) et le numéro de GOB courant. On trouve ensuite le numéro de macro-bloc qui est relatif au MB qui le précède et le quantificateur utilisé qui peut être défini dans la couche GOB ou être un nouveau quantificateur spécifié dans l'entête courant ou précédent du macro-bloc. Enfin, si les vecteurs de

<footnote n="12">¹²Cette taille varie en fonction du réseau considéré, par exemple, elle est fixée à 1536 octets pour le réseau Ethernet et peut être aussi faible que 576 octets dans le cas de l'Internet.</footnote>
mouvements sont utilisés, les vecteurs de mouvements précédents sont aussi nécessaire au décodage d'une ADU. Toutes ces informations sont rajoutées à l'entête RTP et forment l'entête H.261/RTP qui est représenté sur la figure 8. Cet entête est composé d'un mot de 32 bits qui est ajouté à la suite de l'entête

<figure><img src="image_11.png" /><figcaption>Figure 8 – Format de l'entête H.261/RTP</figcaption></figure>

RTP et qui précède les données H.261 comme le montre la figure 9.

<figure><img src="image_12.png" /><figcaption>Figure 9 – Constitution d'un paquet RTP vidéo H.261</figcaption></figure>

- SBIT et EBIT indiquent le nombre de bits à ignorer au début du premier octet et à la fin du dernier octet de données respectivement.

- L'indicateur I permet de spécifier une image encodée entièrement en mode INTRA. Il est utile par exemple en début de décodage pour n'afficher une image qu'à la réception complète des paquets qui la constitue.

- L'indicateur V permet d'accélérer<fnref n="13" /> le décodage lorsque les vecteurs de mouvement ne sont pas codés.

- GOBN identifie le numéro de GOB correspondant au premier octet de données du paquet. Mis a 0 si le paquet commence par un entête de GOB.

- MBAP encode le prédicteur de l'adresse du macro-bloc, i.e., le dernier MBA encodé dans le paquet précédent.

- QUANT identifie la valeur du quantificateur (MQUANT ou GQUANT) en vigueur au début du paquet.

- HMVD et VMVD encodent le vecteur de mouvement horizontal et vertical respectivement.

Notons que le décodage des ADUs reçues hors séquence est possible à l'intérieur d'une même image. En revanche, l'ordre de décodage des images doit être respecté, d'une part pour respecter la continuité visuelle et d'autre part pour pouvoir décodeur les données prédictives en mode INTER.

<footnote n="13">¹³Dans ce cas, la sauvegarde en mémoire de l'image précédente est inutile.</footnote>
4. Contrôle de congestion et régulation de débit associée

Le contrôle de congestion regroupe l'ensemble des mécanismes permettant
d'adapter le débit des flux à la bande passante disponible du réseau. Les pro-
priétés fondamentales d'un schéma de contrôle de congestion sont la stabilité,
l'équité et la réactivité. La stabilité signifie que la congestion est contrôlée et
que le réseau fonctionne avec un état raisonnablement optimal, sans oscillation
excessive. L'équité implique que, en régime stable, chaque utilisateur obtient
une part plus ou moins égale des ressources du réseau. Enfin, la réactivité porte
sur la vitesse de convergence vers cet état stable et équitable.

Sur Internet, deux protocoles de transport dominent : TCP [ISI 81] pour la transmission fiable de données et UDP [POS 80] pour le multiplexage et démultiplexage des paquets sans aucune garantie sur la transmission et sans aucun algorithme de contrôle de congestion. TCP offre une solution efficace pour des applications classiques, comme les transferts de documents (FTP, HTTP), les terminaux distants (TELNET) ou la messagerie électronique (SMTP). TCP convient aux applications qui nécessitent de la fiabilité et qui sont de nature "élastique", c'est-à-dire qui tolèrent assez facilement des variations importantes de délai de transmission et qui n'ont pas de contraintes temps-réel fortes. En revanche, les applications multimédia temps-réel comme la vidéoconférence peuvent tolérer un certain taux de pertes de paquets mais ont besoin de faibles délais de bout-en-bout pour assurer une interactivité entre les participants de la session. La retransmission des paquets perdus à la manière de TCP n'est donc pas possible. De plus, TCP ne supporte pas la transmission en multipoint qui est très pratique, voire indispensable, pour des applications de vidéoconférence avec plusieurs participants. Quant à UDP, les applications qui l'utilisent doivent mettre en œuvre des algorithmes de contrôle d'erreurs et de contrôle de congestion pour éviter de congestionner le réseau et obtenir éventuellement une transmission fiable, e.g., *Trivial File Transfer Protocol (TFTP)*, *Domain Name System (DNS)*, *Simple Network Management Protocol (SNMP)*. Notons que le protocole UDP introduit moins de latence dans la transmission de données que TCP et qu'il permet l'émission en mode multipoint en utilisant les extensions multipoint de IP [DEE 89].

Pour satisfaire les besoins des applications multimédia temps-réel, deux ap-
proches sont possibles : soit on modifie le réseau pour qu'il offre les qualités de
service requises pour ces nouvelles applications, soit on modifie ces applications
en leur ajoutant des mécanismes pour qu'elles s'adaptent aux caractéristiques
de l'Internet.
4.1. Adaptation du réseau aux applications

Aujourd'hui, l'Internet fournit le même service à chaque utilisateur indé-
pendamment des besoins des applications et sans aucune garantie de service.
Une première approche consiste à ajouter des mécanismes pour pouvoir sup-
porter différentes qualités de service (QoS) avec éventuellement des garanties.
À ce sujet, de nombreuses études sont en cours à l'IETF pour introduire la
nouvelle architecture DiffServ (Differentiated Services) [BLA 98]. Le support
de la qualité de service nécessite la mise en œuvre de plusieurs mécanismes :
mécanismes d'ordonnancement, de gestion des files d'attente et de contrôle de
trafic. Nous faisons ci-après un rapide survol de ces techniques.

4.1.1. *Mécanismes d'ordonnancement*

Dans l'Internet, les routeurs traditionnels sont du type PAPS (Premier Ar-
rivé, Premier Servi), c'est-à-dire que les paquets sont mis dans une file d'attente
lorsqu'ils arrivent aux routeurs et sont transmis dans l'ordre d'arrivée ; le trop-
plein de paquets étant éliminé lorsque la file d'attente est pleine. Très simple à
mettre en œuvre, cet algorithme n'est pas efficace pour les applications multi-
média car, en cas de congestion, le temps de latence augmente considérablement
et des rafales de pertes peuvent se produire. Il est possible de mettre en œuvre
des algorithmes qui différencient un flot particulier (comme par exemple l'al-
gorithme de Priority Queuing [SIM 83]) ou qui répartissent équitablement les
ressources du réseau entre un nombre variable et a priori inconnu de sources
(comme par exemple la technique de Weighted Fair Queuing WFQ [DEM 89]).
Ces algorithmes permettent de fournir des garanties sur la bande passante
ainsi que sur les délais de bout-en-bout. On peut aussi mettre en œuvre un
algorithme d'organisation hiérarchique en classes (par exemple l'algorithme de
Class Based Queuing CBQ [FLO 95]) qui va allouer un débit moyen à chaque
classe de trafic (par exemple 25% pour les données temps-réel, 25% pour les
données interactives et 50 % pour le service best effort).

4.1.2. *Mécanismes préventifs de contrôle de trafic*

Les mécanismes préventifs de contrôle de trafic regroupent l'ensemble des
actions du réseau qui permettent d'éviter la congestion. Ils reposent sur des
mécanismes de contrôle d'admission et/ou de surveillance de contrats de trafic
établis, qui peuvent être associés à une offre de réservation de ressource ou de
différenciation de services. Par exemple, avec un protocole de réservation de
ressources comme RSVP [BRA 97], un utilisateur peut réserver dans le réseau
une certaine QoS pour son application. On peut réguler le volume et le débit
de données émises dans le réseau en utilisant un mécanisme de mise en forme
du trafic (*Traffic Shaping*), comme le *leaky bucket* ou le *token bucket* [LEE 94].

4.1.3. Mécanismes de prévention de congestion

Le plus connu de ces mécanismes est celui de **démarrage lent** et de **pré-vention de congestion** qui est utilisé par TCP [JAC 88]. Le mécanisme de démarrage lent est un mécanisme de contrôle de flux à "fenêtre glissante". Schématiquement, on utilise une "fenêtre de contrôle de flux" dont la taille varie en fonction de la charge du réseau. La valeur de la fenêtre est égale au nombre maximal de paquets qui peuvent être en transit sur une connexion donnée. L'état du réseau est estimé à l'aide du taux de pertes. Si aucun paquet n'est perdu, le réseau est considéré comme étant peu chargé et on autorise la source à augmenter son débit. À l'initialisation de la connexion, la fenêtre est égale à sa valeur minimale (1 paquet). Ensuite, à chaque acquittement reçu, on augmente la taille de la fenêtre d'une unité jusqu'à ce qu'elle atteigne un seuil. À partir de ce moment, la taille de la fenêtre est augmentée linéairement en ajoutant une unité après chaque délai d'acquittement. Le doublement périodique de la taille de la fenêtre se traduit par une croissance exponentielle du débit au début de chaque transmission. En cas de perte de paquet, la taille de la fenêtre (et donc le débit de la source) est réduite à sa valeur minimale. On fixe alors le nouveau seuil à la moitié de la valeur de la taille de la fenêtre en vigueur lors de la perte du paquet et on réitère l'algorithme. Au delà du seuil, la taille de la fenêtre est ensuite augmentée linéairement en ajoutant une unité après chaque délai d'acquittement.

Des techniques peuvent être utilisées pour empêcher le problème de **synchronisation généralisée** qui peut se produire lorsqu'un nombre important de sources diminuent leurs fenêtres au même moment en période de congestion. Par exemple, on peut anticiper la congestion en éliminant avec une certaine probabilité les paquets dans les routeurs avant que les files d'attente ne soient pleines. L'algorithme **RED (Random Early Detection)** [FLO 93] utilise une fonction de probabilité qui dépend de la longueur moyenne des files d'attente pour marquer ou éliminer les paquets. Il est aussi possible de choisir le type de trafic que l'on élimine en associant à chaque paquet une certaine priorité, comme le fait l'algorithme **WRED (Weighted Random Early Detection)** [CLA 98]).

Récemment, de nouveaux protocoles de contrôle de congestion basés sur
l'utilisation de filtres intelligents dans les routeurs ont été proposés [CLE 99,
LIU 99, LUB 99]. Rajouter de l'intelligence dans les réseaux permet aussi de
résoudre le problème de congestion provoqué par les messages de rétro-action
émis par les récepteurs vers la source : il suffit de rajouter une fonction d'agré-
gation de messages au sein des routeurs [GAO 99]. Elle permet aussi d'offrir
une solution au problème de la transmission multipoint vers un ensemble hété-
rogène de récepteurs. Par exemple, on peut introduire dans les routeurs qui se
situent en amont d'une liaison congestionnée, une "passerelle vidéo" qui réduit
le débit du trafic vidéo en effectuant un transcodage. Pour cela, il faut être
en mesure de placer les passerelles vidéo aux endroits adéquats, ce qui peut
s'avérer difficile. En effet, il est nécessaire de connaître les liaisons du réseau où
se produit la congestion afin d'y introduire en amont une passerelle appropriée
(cf. figure 10). Un protocole de mise en place automatique de passerelles dans

<figure><img src="image_13.png" /><figcaption>Figure 10 – Mise en place d’une passerelle vidéo</figcaption></figure>

un arbre de distribution multipoint est réalisable [PAS 93]. Une architecture
inspirée des réseaux actifs a été récemment proposée pour placer de tels services
*(Media Gateway Service)* au sein des routeurs [AMI 98].

Toutes les techniques que nous venons de décrire proposent une modification
des routeurs du réseau, voire de l'architecture même d'Internet, pour offrir
des garanties de qualité de service aux applications. Détaillons maintenant la
seconde approche qui consiste à relâcher les contraintes de fonctionnement des
applications en les rendant "adaptatives".

4.2. Adaptation des applications au réseau

La deuxième approche consiste à utiliser les protocoles de transport exis-
tants (comme par exemple UDP), et à rajouter à l'intérieur de l'application
(source et/ou récepteurs) des algorithmes de contrôle d'erreurs (cf. section 7) et de contrôle de congestion. Le contrôle de congestion s'apparente alors à un processus adaptatif impliquant source et récepteur, qui en surveillant l'état du réseau, peut détecter l'apparition de congestion ou les phénomènes d'évanouissement sur réseaux sans fils et réduire le débit de l'émetteur. À l'inverse, un état peu "chargé" du réseau va déclencher une augmentation de débit. Cette problématique, en apparence simple, au moins dans sa formulation, n'a pas de solution générique. Différentes solutions peuvent être envisagées pour répondre à des contraintes applicatives particulières - par exemple configuration point-à-point ou multipoint -.

### 4.2.1. Contrôle de congestion point-à-point

En communication point-à-point le contrôle s'effectue à la source. Le principe est celui d'un rétro-contrôle (*feedback*) entre le récepteur et la source. Dans une telle approche, le récepteur surveille l'état du réseau et envoie périodiquement à l'émetteur de l'information de contrôle. Ce dernier utilise cette information pour calculer son débit d'émission.

Certaines approches se basent sur une mesure du délai d'aller-retour RTT (*Round-Trip Time*) entre l'émetteur et le récepteur [SAN 94]. Les files d'attente qui se remplissent, pouvant conduire à une congestion du réseau, vont entraîner un accroissement du RTT. Un mécanisme basé sur une observation des variations de RTT devrait donc permettre une réaction rapide de l'émetteur et ainsi d'éviter les pertes de paquets. Néanmoins, cette approche s'avère trop conservative. Elle peut aussi conduire à une sous-utilisation du réseau [BOL 94b], et à une pénalisation face à des connexions utilisant le protocole TCP. En outre, l'assymétrie dans le réseau peut conduire à des mesures erronées de RTT. Enfin le choix des valeurs de seuils de décisions reste un problème non résolu [SAN 94].

Une solution alternative consiste alors à observer les pertes de paquets, à l'instar du protocole TCP. À ce stade, le récepteur peut acquitter les paquets qu'il reçoit ou au contraire les paquets manquants (acquittements négatifs), et l'émetteur peut alors en déduire les caractéristiques de pertes [HSU 99]. Le récepteur peut aussi calculer un taux de pertes sur un intervalle de temps donné et communiquer périodiquement le résultat à l'émetteur, à l'aide par exemple d'un protocole de niveau applicatif tel que RTCP (*Real Time Control Protocol*) [SCH 96].

Quel que soit le paramètre de communication observé, il est nécessaire d'établir une correspondance entre l'état du réseau et la loi de commande de la source. Pour ce faire, l'observation de l'état du réseau est d'abord lissée par
moyennage sur une fenêtre temporelle glissante afin d'éviter des phénomènes transitoires ou oscillatoires [BUS 95], [COW 95]. À ce stade, une loi de commande simple à deux états, par exemple **croître** / **décroître** (le débit), ou en trois états, réseau **peu chargé**, **normalement chargé** ou **surchargé** (*un-loaded*, *loaded*, *overloaded*) peut être déduite. Les contraintes de réactivité de la source aux variations de l'état du réseau peuvent conduire à des stratégies d'augmentation et de diminution de débit exponentielles avec des gains distincts et des valeurs bornées [BOL 94b], ou à des stratégies d'augmentation linéaire et de diminution exponentielle [BUS 95]. Pour éviter que la transmission vidéo soit saccadée, le paramètre de régulation "taille de fenêtre" de TCP est remplacé par le paramètre "débit de la source". Ce dernier est ajustable plus finement. Notons que ceci a une légère incidence sur l'équité du protocole de transmission. En effet, l'algorithme à base de fenêtre a tendance à privilégier (en terme de débit) les flots dont le RTT est faible. Quant à l'algorithme qui régule le débit, il tend à allouer le même débit à tous les flots indépendamment de leur RTTs [GOL 99]. Le principe de fonctionnement d'un algorithme à régulation de débit consiste à maintenir le débit de l'application au dessous d'un seuil. Ce seuil est fixé dynamiquement en fonction des ressources disponibles dans le réseau. Des lois de régulation de débit plus complexes et qui tiennent compte des caractéristiques du signal transporté, peuvent être incorporées au niveau des codeurs de source.

Une autre approche vise le partage équitable des ressources avec des connections TCP. Cette propriété est connue sous le nom de *TCP-friendliness* (ou "TCP-courtoisie"). L'idée consiste à prédire le débit en régime stationnaire d'une source TCP saturée (c'est-à-dire disposant d'une mémoire de données de taille infinie). Il est par conséquent possible d'exprimer, pour une communication donnée, le débit que doit adopter cette communication pour se comporter de façon analogue à une connexion TCP. Il est montré dans [MAH 97] que ce débit varie en ordre inverse de la racine carrée du taux de pertes *Loss* mesuré pour la communication et peut s'exprimer par la relation

$$D_{TCP} = 1.22 \times \frac{MTU}{RTT \times \sqrt{Loss}}, \quad [1]$$

où RTT est le délai d'aller-retour et MTU la taille des paquets. Les rapports RR (*Receiver Reports*) du protocole RTCP fournissent l'information de taux de pertes ainsi que l'information nécessaire au calcul du délai d'aller-retour RTT [SIS 97]. Le taux de pertes de paquets est mesuré par le récepteur, par moyennage sur une fenêtre temporelle glissante. Le point difficile consiste à déterminer correctement la taille de la fenêtre.

Une première limite de ce modèle réside dans son manque de fiabilité pour des taux de pertes supérieurs à 16%. De plus, il n'est pas exploitable lorsque le taux de pertes est nul. Un modèle plus fiable et permettant de prendre en
compte les demandes de retransmission de TCP ainsi que l'effet des timeouts est proposé dans [PAD 98a]. L'équation de prédiction de bande passante s'exprime alors sous la forme

$$T = \frac{s}{RTT\sqrt{\frac{2p}{3}} + t_{RTO}(3\sqrt{\frac{3p}{8}})p(1 + 32p^2)}, \quad [2]$$

où s et p sont respectivement la taille des paquets et le taux de pertes. Le terme $t_{RTO}$ représente la valeur du timeout régissant les demandes de retransmission de TCP estimée par la relation

$$t_{RTO} = SRTT + 4 * RTT_{var}, \quad [3]$$

où $RTT_{var}$ est la variance du délai d'aller-retour RTT et où $SRTT$ est la valeur estimée de ce délai.

Ces modèles de prédiction de bande passante ont des comportements oscillatoires peu compatibles avec les critères de qualité d'une source vidéo. Une hybridation du modèle prédictif de bande passante TCP avec un contrôle de débit sans perte basé sur l'observation du délai d'aller-retour est une solution alternative pour palier certaines limitations énoncées ci-dessus [TOU 99]. Dans ce modèle, le contrôle sans perte exploite la mesure du débit reçu R, ainsi que le délai d'aller-retour (RTT). Ce dernier est confronté à un seuil défini à l'aide d'une moyenne glissante du RTT augmentée d'une fraction de son écart-type. Il en résulte un débit de régulation $D_{RTT}$. Les deux procédés de prédiction sont associés en intégrant les deux débits $D_{TCP}$ et $D_{RTT}$ par moyennage si le débit résultant du modèle TCP est valide (non infini). Dans le cas contraire seul le débit résultant du contrôle RTT est pris en compte.

Adoptant le modèle du throughput de TCP proposé dans [PAD 98a], un protocole de contrôle appelé TFRC (TCP-friendly rate control protocol) est introduit dans [FLO 00], afin d'éviter les comportements oscillatoires résultant des mécanismes de contrôle de type AIMD (Additive Increase Multiplicative Decrease) tels que mis en œuvre dans TCP. La mesure de taux de pertes est remplacée par une mesure d'évènements de pertes afin de modéliser plus finement la réaction à des rafales de pertes. Un évènement de perte est défini comme plusieurs paquets consécutifs perdus. Afin d'améliorer la stabilité du mécanisme, les variations de RTT sont lissées par un filtre exponentiel à fenêtre glissante.

Les deux évaluations de débit (débit équivalent TCP et débit résultant du contrôle basé sur le délai) ainsi que leur hybridation peuvent être effectuées par le récepteur sur la base du débit reçu. Le récepteur transmet alors périodiquement la contrainte de débit à l'émetteur, ce qui n'est pas prévu par les protocoles actuels. Une architecture alternative, consistant pour le récepteur à retransmettre les paramètres de la communication mesurés (RTT, taux de
pertes) à l'émetteur, qui se charge, lui, des évaluations de débit, est envisageable. Une telle architecture présente l'avantage d'être implantable au moyen du protocole de contrôle de transmission de flux continus RTCP [SCH 96].

Sur la base de l'information de bande passante disponible, les paramètres de l'algorithme de régulation de débit des flux vidéo sont mis à jour. Ces paramètres concernent le budget en nombre de bits pour un groupe d'images donné, et la taille de la mémoire de sortie.

### 4.2.2. Contrôle de congestion multipoint

Les communications multipoints posent des problèmes supplémentaires liés à l'hétérogénéité des conditions de transmission dans le réseau, mais aussi aux capacités de décodage et de traitement dans les récepteurs. Il s'agit alors de concevoir un ensemble de mécanismes permettant à une source de transmettre un même flux vidéo à plusieurs récepteurs, tout en ayant la possibilité d'adapter de manière dynamique et avec une granularité suffisamment fine le débit reçu par chacun aux conditions de transmission qu'il perçoit.

#### Contrôle à l'émetteur

L'extension des approches ci-dessus à des communications multipoints avec un seul flux (single-rate), présente un certain nombre de limitations, comme une faible robustesse au passage à l'échelle. Le partage équitable des ressources avec des connexions TCP concurrentes est souvent obtenu en adaptant le débit de la source au récepteur le plus contraignant, et donc, en se basant sur un état de congestion maximum. Le partage équitable des ressources du réseau repose alors (de la même manière que le contrôle de congestion point-à-point) soit sur des algorithmes à base de fenêtres, à l'instar des fenêtres de congestion de TCP [WAN 98a], [RHE 98], [GOL 99], soit sur des algorithmes de variations de débit suivant des modèles du comportement de TCP [BHA 99], [PAD 98b], [SIS 98], soit encore sur des schémas utilisant des lois additive et multiplicative d'augmentation et de diminution de débit.

Une autre limitation est liée à la multiplication des rapports de réception. En effet, les arrivées de ces rapports de réception peuvent être synchronisées, provoquant ainsi une charge inacceptable à la fois pour le réseau et pour l'émetteur. Plusieurs méthodes ont été proposées pour tenter de résoudre ce problème d'implosion de la voie de retour. Une technique consiste à accorder à chaque récepteur une probabilité d'émission de rapport variable, associée éventuellement à un délai avant envoi tiré aléatoirement [YAV 93]. Un problème inhérent à ce type d'approche est sa faible réactivité. Une approche différente [BOL 94a]
consiste à sonder progressivement les récepteurs identifiés par des clés générées aléatoirement. Les réponses sont de surcroît filtrées de telle sorte que seuls les récepteurs subissant une congestion supérieure à un état de congestion maximal déjà connu sont autorisés à répondre. Des solutions [BOL 94a] [YAV 93] ont aussi été proposées visant un compromis entre le nombre de récepteurs qui subissent des congestions et la diminution de qualité injustement supportée par les autres en raison de la politique de contrôle de congestion adoptée. Néanmoins, quelle que soit la stratégie adoptée, une qualité moyenne est fournie aux récepteurs.

## Contrôle aux récepteurs

Des méthodes de contrôle de congestion multi-flux (*multi-rate*) exploitant les fonctions de routage multipoint du réseau ont été proposées récemment. Ces méthodes se caractérisent également par un transfert de la responsabilité du contrôle vers les récepteurs. Ces approches font l'hypothèse d'un codage multi-niveaux ou codage scalable des signaux audio/vidéo, où chaque niveau correspond à un incrément de qualité en terme de définition temporelle (*scalabilité temporelle*), de rapport signal à bruit (appelée *scalabilité SNR, Signal to Noise Ratio*) ou en terme de résolution spatiale (*scalabilité spatiale*). Cela revient à découpler la source, qui émet de façon indépendante les divers flux multi-niveaux, des récepteurs capables de s'abonner à un ou plusieurs flux afin de satisfaire aux contraintes liées aux caractéristiques des différents liens et au contrôle de congestion associé [MCC 97], [MAR 98]. Chaque sous-flux se voit assigner une adresse multipoint particulière. Les techniques mises en œuvre dans DVMRP<fnref n="14" /> et permettant une configuration dynamique de l'arborescence multipoint peuvent être exploitées pour l'acheminement de chaque sous-flux.

Chaque récepteur peut alors s'abonner aux adresses multipoint correspondant aux sous-flux qu'il souhaite recevoir, ce qui conduit à la construction d'une arborescence particulière pour chaque sous-flux comme illustré sur la figure 11. En cas de congestion, le récepteur peut se désabonner de l'adresse correspondant à un sous-flux particulier.

Il devient nécessaire de définir des stratégies dynamiques de sélection ou d'abandon des sous-flux en fonction de l'état du réseau. L'algorithme RLM (*Receiver-driven Layered Multicast*) [MCC 96] est basé sur des tests, appelés *Join-Experiments*, au cours desquels le récepteur s'abonne à un nouveau sous-flux et regarde le résultat de sa souscription. Afin de limiter la surcharge de trafic DVMRP associé à ces tests, RLM met en œuvre des délais de garde entre deux *join-experiments*, délais dont la durée croît exponentiellement lorsque le

<footnote n="14">¹⁴DVMRP : *Distance Vector Multicast Routing Protocol* [PAR 88].</footnote>
<figure><img src="image_14.png" /><figcaption>Figure 11 – Contrôle de congestion dans RLM</figcaption></figure>

test échoue. L’algorithme prévoit également une coopération entre les récepteurs pour une meilleure robustesse au passage à l’échelle. Cette coopération est basée sur l’utilisation d’un canal de contrôle sur lequel un récepteur notifie aux autres récepteurs d’un groupe multipoint le démarrage d’un *join-experiment*. Si le test échoue, tous les récepteurs observant une congestion accroissent en conséquence la durée de leur délai de garde. L’existence de ce canal permet en outre de réduire les effets de tests entrelacés ou simultanés, les résultats des *join-experiments* étant dans ce cas difficiles à interpréter.

Une autre approche [RHE 97], limitant la surcharge de trafic DVMRP as-
socié aux *join-experiments*, consiste à décrire les sous-flux en termes de débit
à l'aide d'un canal de contrôle. Les récepteurs peuvent alors déterminer indivi-
duellement le débit qu'ils devraient recevoir par rapport à celui qu'ils reçoivent
réellement, étant donné l'ensemble de sous-flux auxquels ils sont abonnés, et
réagir par abonnement/(ou abandon) à un nouveau/(d'un) sous-flux. La dé-
termination de la bande passante autorisée pour chaque récepteur peut aussi
être estimée par celui-ci à l'aide des modèles de type "TCP-courtois" présentés
ci-dessus [TAN 98], [TUR 98].

Ces techniques de contrôle de congestion de bout-en-bout et basées récep-
teurs présentent elles aussi un certain nombre de limitations : La première li-
mitation concerne la granularité d'adaptation du débit. En effet, les techniques
de séparation des données audio/vidéo en niveaux de scalabilité fournissent un
nombre limité de ces niveaux. Augmenter le nombre de niveaux de scalabi-
lité, pour améliorer la granularité d'adaptation, va augmenter la charge induite
par le mécanisme de contrôle de débit sans nécessairement résulter en un ac-
croissement significatif de qualité. En effet une représentation scalable conduit
souvent à des performances de compression moindres. En outre, un nombre
trop grand de niveaux de scalabilité va augmenter la complexité de gestion
des adresses multipoint ainsi que la quantité d'information (états, observa-
tions) que les récepteurs doivent maintenir, quantité d'information croissant
avec la taille du groupe. Ceci va également entraîner une surcharge de trafic
de messages DVMRP liés à la gestion dynamique de l'arborescence, d'informa-
tion supplémentaire (ex : débit de chaque sous-flux) ainsi qu'un 'gaspillage' de
bande passante dû aux entêtes de paquets. Une autre limitation concerne les
délais de réaction de l'application dus par exemple aux temps de latence des
join-experiments dans RLM.

Des solutions alternatives travaillant par coopération entre les émetteurs et
les récepteurs, et reposant sur une représentation scalable des flux audio/vidéo,
peuvent être envisagés. Ces approches hybrides supposent l'ajout de méca-
nismes supplémentaires au niveau des nœuds du réseau.

Contrôle hybride émetteur-récepteur

Le principe d'un contrôle hybride émetteur-récepteur suppose que la source est capable d'ajuster le débit de chaque sous-flux. Moyennant une régulation de débit multi-niveaux efficace, cette méthode devrait garantir une bonne granularité d'adaptation, tout en maintenant le nombre de sous-flux à un niveau raisonnable.

La technique DSG (Destination Set Grouping) est une première application
de ce principe [CHE 96c]. Exploitant le mécanisme de feedback qui passe à
l'échelle proposé dans [BOL 94a] d'une part, et les techniques permettant aux
récepteurs de s'abonner ou de se désabonner de groupes multipoints d'autre
part, l'approche consiste à émettre plusieurs flux correspondant à plusieurs
versions comprimées à différents débits du même contenu vidéo (transmission
"simulcast"), et à ajuster le débit de chaque flux afin d'assurer une qualité
optimale pour le plus grand nombre possible de récepteurs abonnés à ce flux.
Les récepteurs subissant des conditions de transmission moins favorables, ou
les récepteurs pouvant recevoir un débit supérieur, ont ainsi la possibilité de
changer de groupes multipoints.

Une transmission simulcast est cependant gourmande en bande passante. Il
parait donc intéressant de pouvoir étendre le principe DSG à une transmission
de flux multi-niveaux ou scalables. Ceci suppose de concevoir des schémas de
représentation multi-niveaux des signaux de source permettant une allocation
flexible et coordonnée des débits entre les différents niveaux tout en gardant
une qualité globale constante. En d'autres termes, la réduction de débit sur un
niveau R₁ doit se traduire par une augmentation de débit sur un ou plusieurs
autres niveaux (ex : R₂ et R₃) tout en gardant une qualité globale pour les
récepteurs abonnés aux niveaux R₁ + R₂ + R₃ constante ou quasi-constante.
Les techniques de représentation multi-niveaux seront abordés en section (5).

Le problème discuté ici concerne le mécanisme de contrôle de débit de chaque niveau et de contrôle du nombre de niveaux. Supposons que l’émetteur publie périodiquement le nombre de niveaux disponibles pour le flux vidéo ainsi que le débit associé à chacun des niveaux. Chaque récepteur peut alors déterminer à l’aide d’un modèle prédictif, tel que le modèle “TCP-courtois”, le débit auquel il peut recevoir. Il peut donc en déduire le nombre de sous-flux ou niveaux auxquels il peut s’abonner, c’est-à-dire celui dont le débit agrégé est le plus proche possible du débit disponible.

Dans l'approche appelée SAMM (Source Adaptive Multi-Layered Multicast) [ALB 99], le récepteur estime la bande passante disponible dans le réseau en mesurant le débit reçu sur une fenêtre temporelle glissante. Cette mesure pouvant être trop conservative lorsque le réseau est sous-utilisé, le récepteur a la possibilité de faire état d'une bande passante disponible légèrement supérieure au débit mesuré, jusqu'à observation de pertes. Le récepteur doit communiquer ces informations à la source. Pour éviter une congestion sur la voie de retour, l'algorithme de contrôle suppose la mise en place dans les nœuds du réseau, d'un mécanisme d'agrégation des paquets *report* provenant des récepteurs. Ces nœuds du réseau doivent alors composer les informations provenant des récepteurs de manière à décider d'une allocation de débit optimale entre les sous-flux correspondant aux différents niveaux de scalabilité. Dans SAMM, les informations provenant des récepteurs contiennent un vecteur débit {$r_i$} qui liste les débits demandés par les récepteurs et un vecteur {$c_i$} qui indique le nombre de récepteurs ayant demandé chaque débit $r_i$. Le nombre d'entrées dans ces vecteurs est comparé au nombre maximum $L_{max}$ de niveaux de scalabilité. Si le nombre d'entrées est inférieur à $L_{max}$ alors l'agrégation des informations de retour des récepteurs est terminée. Sinon, certaines entrées en débit vont être éliminées, selon un critère de maximisation d'une mesure de *goodput*, définie comme le débit total reçu, en cumulant le débit de tous les niveaux de scalabilité reçus sans perte, par les récepteurs se situant en aval du nœud considéré. Cette mesure s'exprime $G = \sum_{i=1}^{L_{max}} r_i \times c_i$.

L'avantage d'une telle approche est une bonne granularité d'adaptation tout en évitant un nombre de niveaux de scalabilité trop important, et une indépendance vis-à-vis du nombre de niveaux. La mise en application de ce principe nécessite des schémas de représentation scalable à granularité fine, décrits dans la suite du chapitre, et qui permettent en outre de maintenir une qualité globale quasi constante pour un débit global constant, même si la répartition en débit dans les niveaux inférieurs varie.

Les approches de contrôle de congestion de bout-en-bout font l'hypothèse
d'applications "coopératives" au sens d'un comportement "sociable" par rapport aux autres utilisateurs du réseau, et n'offrent aucune garantie contre des applications trop agressives. Il peut donc s'avérer nécessaire d'adjoindre des mécanismes préventifs de contrôle de trafic au niveau des éléments du réseau, afin de contrôler "l'agressivité" des algorithmes d'adaptation de bout-en-bout. Ce contrôle peut, nous l'avons vu ci-dessus, reposer sur des mécanismes évolués de rejet sélectif, dérivés du principe RED (Random Early Detection), ou sur des mécanismes supplémentaires d'adressage multicast [LEV 97], permettant de transmettre, de manière sélective, les paquets à un sous-ensemble du groupe multicast.

## 5. Codage vidéo multi-niveaux

Le principe d'une représentation multi-niveaux (ou scalable), consiste à générer, pour une source vidéo donnée, plusieurs flux compressés correspondant chacun à un incrément de débit et de qualité en terme de définition temporelle (scalabilité temporelle), de rapport signal à bruit (scalabilité SNR, signal to noise ratio) ou en terme de résolution spatiale (scalabilité spatiale). Ces modèles de représentation et de codage s'avèrent bien adaptés pour répondre aux problèmes d'adaptation de débit aux caractéristiques du réseau dans des scénarios de transmission multipoint ou lorsque le codage des signaux n'est pas réalisé en temps-réel (applications de consultation multimédia par exemple).

### 5.1. Scalabilité temporelle

La scalabilité temporelle va permettre de construire une hiérarchie de flux associée à une hiérarchie de résolutions temporelles. Le mécanisme le plus immédiat de mise en œuvre de ce concept est l'insertion d'images B (codées par prédiction bidirectionnelle avant et arrière) entre des paires d'images de référence I (codées en mode **INTRA**) et P (codées en mode **prédit** avec prédiction avant), telle que préconisée dans les standards H.263 version 2 (ou H.263+) et MPEG-4. Les images de type B sont alors transmises sur le niveau de raffinement, comme illustré sur la figure 12.

Cette méthode peut s'avérer très sensible aux pertes de paquets. Une solution alternative, mise en œuvre dans certains codeurs utilisés pour transmettre de la vidéo sur le MBone<fnref n="15" /> consiste à s'interdire toute prédiction temporelle et à rafraîchir en mode **INTRA** certaines zones de l'image, suivant un critère de détection de mouvement ou d'activité. Cette méthode est connue sous le nom

<footnote n="15">¹⁵MBone Multicast Backbone, [MAC 94].</footnote>
<figure><img src="image_15.png" /><figcaption>Figure 12 – Scalabilité temporelle dans la norme H.263 version 2 et MPEG-4 vidéo.</figcaption></figure>

de rafraîchissement conditionnel. Un critère de détection d’activité souvent uti-
lisé vient comparer la somme absolue des différences entre les pixels d’une zone
donnée de l’image, souvent prise comme un bloc carré de pixels, à la même
zone dans une image de référence. Cette image de référence est souvent l’image
précédente. Ce critère s’exprime comme $\sum_{k=1}^{n} |r_k - x_k| \ge T$ où $(x_1, \dots, x_n)$ et
$(r_1, \dots, r_n)$ représentent respectivement les pixels de la région considérée dans
l’image courante et dans l’image de référence. Cette méthode peut être enri-
chie d’un processus de vieillissement de blocs via un automate d’états finis afin
d’éviter qu’une zone de l’image ne soit jamais codée [MCC 97].

La corrélation temporelle n’est alors exploitée qu’au travers de la détection d’activité, ce qui réduit les performances en compression. Une représentation scalable peut être greffée sur une telle approche, en faisant varier le seuil de détection d’activité, ainsi que l’instant de l’image prise pour référence. Ceci conduit à une hiérarchie de résolutions temporelles illustrée sur la figure 13 [MCC 97].

<figure><img src="image_16.png" /><figcaption>Figure 13 – Scalabilité temporelle associée au rafraîchissement conditionnel.</figcaption></figure>
## 5.2. Scalabilité spatiale

La scalabilité spatiale définit une hiérarchie de résolutions spatiales. Le principe mis en œuvre dans les standards MPEG-2, H.263, H.263 version 2, et MPEG-4 est illustré sur la figure 14. Le niveau de basse résolution, obtenu par filtrage passe-bas et sous-échantillonnage horizontal et vertical du signal d'origine, est codé à l'aide de schémas prédictifs IBP. Les niveaux supérieurs, structurés en macro-blocs, vont contenir l'erreur issue de la prédiction spatiale, ou l'erreur issue de la prédiction temporelle à partir des images transmises sur le même niveau de scalabilité. L'erreur de prédiction spatiale est calculée par différence entre l'image originale de même niveau de résolution et la version interpolée de l'image décodée dans le niveau inférieur. Pour chaque macro-bloc (bloc de 16x16 pixels), il est possible de choisir l'un des deux modes de prédiction, spatiale ou temporelle, ou de les combiner par interpolation du résultat de ces deux prédictions. Cette approche aussi dite pyramidale permet d'être

<figure><img src="image_17.png" /><figcaption>Figure 14 – Scalabilité spatiale dans les normes H.263 version 2 et MPEG-4 vidéo.</figcaption></figure>

compatible avec un codeur de type prédictif sur le niveau de basse résolution, au prix d'une redondance dans l'information transmise dans les niveaux de résolutions supérieures.

Une seconde méthode dite de *Data Partitionning*, compatible avec des codeurs par transformée en cosinus discrète, utilisée dans le standard JPEG en mode progressif et dans le standard MPEG-2 [ISO 96], consiste à transmettre dans les différents niveaux de scalabilité, et ceci pour chaque macro-bloc, des sous-ensembles de coefficients TCD correspondant à des fonctions de base de fréquences croissantes.

Les techniques de représentation multirésolution qui consistent à décomposer le signal d'image par bancs de filtres multifréquences permettent de générer aisément un ensemble de flux correspondant à une hiérarchie de résolutions spatiales [TAN 94], [TAU 94]. Les structures itérées de décomposition par bancs de filtres créent un ensemble de sous-signaux (ou sous-bandes) qui vont contenir
l'information relative aux différentes bandes de fréquences contenues dans le signal d'image. Les décompositions par bancs de filtres multifréquences sont à échantillonnage critique. En d'autres termes, la somme des échantillons contenus dans les sous-signaux est égale au nombre de pixels contenus dans l'image, évitant ainsi la redondance inhérente à la structure pyramidale. La figure 15 illustre les sous-signaux issus d'une décomposition en ondelettes appliquée successivement sur les lignes et les colonnes de l'image. Le signal d'entrée x est filtré vericalement et horizontalement par un filtre passe-bas demi-bande de fonction de transfert $H_0(z)$ et par un filtre passe-haut demi-bande de fonction de transfert $H_1(z)$. Les deux sous-signaux obtenus sont alors sous-échantillonnés (facteur d'échantillonnage égal à deux sur la figure) afin d'avoir un échantillonnage critique (c'est-à-dire que le nombre total des échantillons des deux sous-signaux est égal au nombre d'échantillons contenus dans le signal d'origine). La figure 16 illustre quelques structures itérées de décomposition. La figure 16.a représente une décomposition en ondelettes, où seule la bande de basse-fréquence est re-décomposée selon une structure *dyadique*. Les figures 16.b et 16.b représentent les structures de décomposition par paquets d'ondelettes, respectivement avant et après élagage de l'arbre de décomposition.

<figure><img src="image_18.png" /><figcaption>Figure 15 – Analyse multirésolution d'un signal 2D par un banc de filtres : le signal est décomposé sur 4 espaces orthogonaux entre eux, un espace d'approximation (correspondant au signal *LL* contenant les basses fréquences verticales et horizontales) et trois espaces de détail (correspondant aux signaux *LH*, *HL* et *HH*). La décomposition multirésolution est appliquée successivement dans chaque dimension.</figcaption></figure>

Cette décomposition spatiale du signal vidéo peut être associée à divers traitements de la dimension temporelle. Une décomposition par bancs de filtres peut également être appliquée dans la dimension temporelle conduisant à une décomposition en sous-bandes 3D. La décomposition dans la dimension temporelle est souvent réalisée à l'aide d'un banc de filtres à deux canaux appliqué sur des signaux progressifs obtenus par mélange (ou entrelacement) des deux trames du signal vidéo. Les filtres utilisés dans la dimension temporelle sont souvent de faibles longueurs, afin d'éviter des délais de reconstruction trop
<figure><img src="image_19.png" /><figcaption>Figure 16 – (a) Décomposition en ondelettes : la décomposition est itérée uniquement sur la bande de plus basse fréquence (3 itérations) ; (b) Décomposition en paquets d'ondelettes avant élagage de l'arbre de décomposition, toutes les bandes de fréquence sont redécomposées (3 itérations) (c) Décomposition arbitraire en paquets d'ondelettes, après élagage de l'arbre de décomposition.</figcaption></figure>

grands. Les sous-bandes spatio-temporelles vont alors accroître la résolution à la fois spatiale et temporelle du signal déjà transmis par les bandes de basses-fréquences. Un tel codeur est robuste aux erreurs ou pertes de paquets du fait de sa structure non récursive qui permet d'éviter la propagation des erreurs dans la dimension temporelle. Le filtrage temporel peut néanmoins conduire à une perte de définition temporelle inacceptable (à un flou) dans les zones à fort mouvement lorsque seuls les niveaux bas de la hiérarchie spatio-temporelle sont transmis. Ces défauts peuvent être atténués en réalisant, avant la transformation, une compensation du mouvement dominant (issu du mouvement de la caméra) dans la scène [TAU 94]. Afin de mieux préserver les mouvements locaux et donc la résolution temporelle des objets à forts mouvements, la méthode peut être affinée par une compensation de mouvement par blocs [THA 97], [OHM 94].

Une fois la décomposition spatio-temporelle réalisée, se pose le problème du codage des coefficients résultants. Les techniques appelées *embedded zero wavelet tree* (EZW) [SHA 93], et *set partitionning in hierarchical trees* (SPIHT) [SAI 96] exploitent les dépendances statistiques entre coefficients de même localisation spatiale et orientation, mais appartenant à des bandes de fréquences différentes. L'algorithmme EZW définit en effet des relations de dépendance parents-enfants illustrées sur la figure 17 et fait l'hypothèse que l'énergie des coefficients en ondelettes décroît dans la direction de la racine de l'arbre vers ses descendants. En d'autres termes, si un coefficient d'ondelettes est non significatif (c'est-à-dire $|x| \le T_i$) par rapport à un seuil $T_i$ à un niveau de résolution donné, alors tous les descendants suivant la relation de dépendance seront aussi très probablement non significatifs par rapport au même seuil. L'algorithmme SPIHT suit le même principe avec un arbre de dépendances parents-enfants légèrement modifié (cf. figure 17).

Examinons le fonctionnement de l'algorithmme EZW. Le seuil est initialisé à la valeur $T_0 = \max_{x \in \text{image}} x$, $x \in \text{image}$. À chaque itération l'algorithmme construit,
<figure><img src="image_20.png" /><figcaption>Figure 17 – Dépendances parents-enfants entre sous-bandes pour (a) EZW et (b) SPIHT.</figcaption></figure>

dans une première étape, deux listes : une liste dominante contenant les coordonnées des coefficients non significatifs vis-à-vis du seuil $T_i$ et une liste secondaire S contenant les amplitudes des coefficients supérieurs au seuil. Dans une seconde étape, ces deux listes sont examinées afin de construire une carte de significativité des coefficients d'ondelettes. Si $x$ est significatif et positif, alors le symbole P est noté dans la carte C. Si $x$ est significatif et négatif alors le symbole N est noté dans la carte C. L'amplitude de $x$ est dans les deux cas placée en fin de liste S et ses coordonnées sont retirées de la liste D. Si $x$ et tous ses descendants sont non significatifs alors $x$ est la racine d'un arbre de zéros (zerotree), le symbole $Z_t$ est noté dans C. Si $x$ est inférieur au seuil mais un de ses descendants est significatif alors $x$ est dit zéro isolé et le symbole $Z_i$ est placé dans C. La carte de significativité est donc constituée des symboles de l'alphabet $\{P, N, Zt, Zi\}$ et est codée à l'aide d'un codeur arithmétique. Les coefficients placés dans la liste S doivent alors être codés. Un indice de quantification 0 ou 1 vient positionner la valeur de l'amplitude du coefficient par rapport au milieu de l'intervalle $[T_i, T_{i-1}]$. Le seuil $T_i$ est ensuite divisé par 2 avant de passer à l'itération suivante, jusqu'à atteindre une condition d'arrêt donnée. La condition d'arrêt souvent considérée est le débit.

Le train binaire résultant présente une structure emboîtée dont les différentes portions correspondent à différents niveaux de qualité en terme de rapport signal à bruit. Cette méthode, depuis son apparition en 1993 [SHA 93] a été très largement étudiée. Elle est aujourd'hui à la base de la norme de codage de texture fixe définie par le groupe ISO/MPEG-4. Les méthodes EZW et SPIHT s'appliquent aussi à des structures de décompositions spatio-temporelles 3D [CHE 96a], [KIM 97]. Elles peuvent aussi être incorporées dans des schémas de codage à base de prédiction temporelle par estimation et compensation de
mouvement. Le codage EZW ou SPIHT est alors appliqué aux images codées en **INTRA** ainsi qu'au signal d'erreur de prédiction temporelle.

### 5.3. Scalabilité SNR

La scalabilité SNR définit une hiérarchie de qualités en terme de rapport *signal à bruit* ou SNR (*Signal to Noise Ratio*) et une hiérarchie de débits associée. Les techniques EZW, SPIHT ou ZTE en sont donc des moyens privilégiés de mise en œuvre. Néanmoins les approches définies dans les standards H.263 et MPEG-4 consistent à coder dans les niveaux supérieurs l'erreur de quantification des niveaux inférieurs [ITU 98], [IS1 98]. La couche de raffinement est donc formée d'images *EI* et *EP* (cf. figure 18). Les images *EI* contiennent l'information codée relative à l'erreur de quantification de l'image I du niveau bas, et les images *EP* contiennent l'information codée soit de l'erreur de quantification de l'image P du niveau bas ou bien de l'erreur de prédiction temporelle par rapport à l'image *EI* précédente avec l'information de mouvement associée. Le choix entre ces deux modes de prédiction est réalisé pour chaque macro-bloc des niveaux d'amélioration.

<figure><img src="image_21.png" /><figcaption>Figure 18 – Principe de la scalabilité SNR dans les normes H.263 version 2 et MPEG-4 vidéo.</figcaption></figure>

Dans les niveaux de raffinement, le coût de codage du choix du prédicteur peut s'avérer non négligeable [ROS 98]. La transmission du choix du prédicteur peut néanmoins être évitée [ROS 98] : Soit $\tilde{x}_n^b$ le signal prédit, à l'instant $n$, dans le niveau de base. L'erreur de prédiction $r_n^b = x_n - \tilde{x}_n^b$ est quantifiée et l'indice $i^b$ associé, correspondant à un intervalle de quantification $[a, b]$ du signal $x_n$, est transmis. L'erreur de prédiction vérifie $r_n^b \in [a, b]$ et le signal $x_n$ est tel que $x_n \in [\tilde{x}_n^b + a, \tilde{x}_n^b + b]$. Le signal reconstruit dans le niveau de base à l'instant $n$ s'écrit alors $\hat{x}_n^b = E[x_n|\hat{x}_{n-1}^b] + r_n^b$, où $\hat{x}_{n-1}^b$ est le signal reconstruit dans le
niveau de base à l'instant $n-1$. De la même manière, le signal prédit, à l'instant $n$, dans le niveau de raffinement, à partir de l'image reconstruite à l'instant $n-1$ dans le niveau de raffinement, peut s'écrire $\tilde{x}_n^e = E[x_n|\hat{x}_{n-1}^e]$. L'erreur de prédiction $r_n^e = x_n - \tilde{x}_n^e$ est quantifiée et l'indice $i^e$ associé, correspondant à un intervalle de quantification $[c, d]$, est transmis. Le meilleur prédicteur dans le niveau de raffinement sera le prédicteur qui minimisera l'intervalle d'incertitude du signal $x_n$, c'est à dire tel que $x_n \in [e, f]$ où $e = \max\{\tilde{x}_n^b + a, \tilde{x}_n^e + c\}$, et $f = \min\{\tilde{x}_n^b + b, \tilde{x}_n^e + d\}$, et peut être déduit aisément par le décodeur. La reconstruction optimale dans le niveau de raffinement est alors donnée par $\hat{x}_n^e = E[x_n|\hat{x}_{n-1}^e, \hat{x}_n^b/x_n \in [e, f]]$.

Ce principe s'apparente à une quantification concaténée représentée schématiquement sur la figure 19-a, où le quantificateur $Q_2$ quantifie l'erreur générée par la première étape de quantification $x_2 = x_1 - Q_1(x_1) = x_1 - y_1$.

<figure><img src="image_22.png" /><figcaption>Figure 19 – (a) Quantification concaténée ; (b) Quantification concaténée avec codage entropique conditionnel (CLV : codes à longueurs variables).</figcaption></figure>

Les quantificateurs $Q_1$ et $Q_2$ sont souvent uniformes et suivis de codeurs entropiques qui tiennent compte des statistiques des signaux d'entrée. Le codage entropique des indices $J_2$ issus de la quantification $Q_2$ peut en outre être adapté à la distribution des indices $J_1$ de sortie du quantificateur $Q_1$, comme illustré sur la figure 19-b, conduisant à une entropie conditionnelle

$$H(J_2|J_1) = \sum_{i} H(J_2|J_1 = i)p(J_1 = i) \quad [4]$$

inférieure à l'entropie $H(J_2)$ de la source d'évènements $J_2$ constituée des indices en sortie du quantificateur $Q_2$.

Il est aussi possible d'adapter les quantificateurs aux statistiques du signal d'entrée conduisant à des quantificateurs non uniformes. Le quantificateur $Q_2$ optimum va dans ce cas dépendre de la fonction de densité de probabilité $p_{X_2}(x)$
définie par

$$p_{X_2}(x) = \sum_{i=1}^{K_1} p_{X_2|J_1=i}(x) p(J_1=i). \quad [5]$$

Le quantificateur $Q_2$ est alors défini conditionnellement à la variable aléatoire $J_1$, conduisant à une quantification multi-niveaux avec une structure arborescente illustrée sur la figure 20.

<figure><img src="image_23.png" /><figcaption>Figure 20 – (a) Structure arborescente d'une quantification multi-niveaux ; (b) schéma de principe de la quantification conditionnelle.</figcaption></figure>

L'arborescence peut être construite du quantificateur de pas le moins fin vers le plus fin, en définissant un ensemble de quantificateurs $Q_2|(J_1 = j) = Q_2^j$ optimisés indépendamment selon la fonction de densité de probabilité $p_{X_2|J_1}(x)$ sous contrainte d'un débit $r_2^j$. Cette méthode, nécessitant de concevoir un jeu de quantificateurs $Q_2^j$ pour chaque valeur de $J_1$ et pour un ensemble de débits $r_2^j$ est cependant trop complexe pour être utilisée en pratique. Ces approches de quantification, de part leurs structures prédictives, sont en outre sensibles aux pertes et erreurs de transmission.

Une solution alternative, appelée quantification emboîtée, consiste, en partant du quantificateur le plus fin, à définir les quantificateurs intermédiaires par fusions d'intervalles de décisions selon des critères débit-distorsion. Le même signal est alors quantifié plusieurs fois avec différents quantificateurs comme indiqué sur la figure 21. Ce principe appliqué à une quantification scalaire avec palier (deadzone) et associé à un codage par plan de bits conduit à un système de quantification hiérarchique [TAU 94], dont l'algorithme EZW peut être vu comme un cas particulier. La quantification emboîtée peut en outre être combinée à des codeurs entropiques conditionnels [TAU 94] pour en accroître les performances. Les principes présentés ici dans le cas de la quantification scalaire peuvent être étendus à la quantification vectorielle.
<figure><img src="image_24.png" /><figcaption>Figure 21 – Structure d'un quantificateur emboîté.</figcaption></figure>

5.4. Scalabilité multi-niveaux et à granularité fine

Les différentes approches de scalabilité, à savoir temporelle, spatiale et SNR peuvent à l'évidence être combinées à souhait, aboutissant à une représentation scalable dite hybride ou multi-niveaux ou encore multi-couches. La représentation scalable a cependant un coût en débit qui va dépendre de la méthode de représentation et des données d'entête pour chacun des niveaux. Les différentes méthodes présentent aussi divers compromis entre l'efficacité de compression et la résistance aux erreurs. Les trois modes de codage scalable dans le standard MPEG-2, à savoir partitionnement des coefficients TCD, scalabilité SNR et scalabilité spatiale présentent une résistance aux erreurs croissante mais également un coût en données d'entête croissant. Le choix d'une stratégie de scalabilité doit en conséquence être étroitement guidé par des besoins applicatifs particuliers.

Nous avons vu en section 4.2.2 que les techniques de représentation et de codage scalable fournissaient des solutions privilégiées au problème du contrôle de congestion et d'adaptation des débits des flux audio/vidéo aux caractéristiques non stationnaires du réseau, notamment dans un cadre de transmission multipoint ou encore d'accès à des flux pré-encodés. Un contrôle de congestion réactif et précis peut cependant exiger un nombre de niveaux de scalabilité élevé, aboutissant à des performances de compression moindres. Dans le cadre d'une transmission avec un encodage en temps réel, ce problème peut être contourné par des approches de contrôle hybride émetteur/récepteurs, comme nous l'avons vu en section 4.2.2. Toutefois, ces méthodes ne sont pas applicables dans un contexte de flux pré-encodés. Les modèles de représentation scalable à granularité fine deviennent dans ce cas incontournables.

L'un des problèmes posés dans le choix d'un modèle de représentation sca-
lable à granularité fine est alors l'optimisation du compromis entre l'efficacité de compression et la finesse de la granularité ou de l'adaptation du débit des différents niveaux : Les schémas à base de prédiction temporelle compensée en mouvement sont les plus performants en terme de compression mais ils ne permettent pas d'obtenir une scalabilité avec une granularité fine, c'est-à-dire avec des variations fines de débit à des instants précis, en raison de la dépendance temporelle d'une image compressée à l'autre. Ils sont en outre très sensibles aux pertes et erreurs de transmission.

Une approche consiste à coder le niveau bas avec un schéma prédictif comp-
pensé en mouvement afin de maintenir un niveau de performance en compres-
sion suffisant et à choisir une stratégie de codage à granularité fine - sans pré-
diction temporelle - pour le niveau de raffinement. Le niveau de base est alors
codé à un débit R<sub>BL</sub> tel que la bande passante disponible sur le réseau soit
toujours supérieure ou égale à R<sub>BL</sub>. Cette couche de base peut en outre être
transmise de façon fiable à l'aide par exemple de méthodes de contrôle d'erreur
décrites dans la suite de ce chapitre. Les différents niveaux de scalabilité de la
couche de raffinement vont alors augmenter la qualité du signal reçu en utili-
sant la bande passante disponible du réseau. Dans un cadre de transmission
multipoint la bande passante utilisable par l'information de raffinement peut
être répartie en plusieurs niveaux de scalabilité. Un codage par plans de bits
de la couche de raffinement constituée des coefficients TCD de l'erreur de co-
dage de la couche de base est en cours de définition à l'ISO (MPEG-4 version
3). Des techniques par transformation en ondelettes et quantification emboî-
tée, utilisant par exemple les algorithmes EZW ou SPIHT, pourraient aussi
être utilisées. La quantification emboîtée associée à une représentation multi-
résolution des signaux permet en effet de construire des sources très granulaires
[TAU 94], [MAR 97].

6. Codage vidéo robuste

Malgré une régulation de débit en harmonie avec la bande passante du réseau, les différents flux doivent faire face à des pertes, voire même à des erreurs "résiduelles" sur des liens sans fils. Cette section décrit des méthodes de codage robuste permettant de minimiser l'impact du bruit (pertes et erreurs) de transmission sur la qualité du signal reconstruit.
## 6.1. Codage robuste aux pertes de paquets

Les méthodes de codage traditionnelles utilisant largement les techniques prédictives et différentielles, ainsi que les codes à longueurs variables, sont très sensibles aux pertes de paquets. Les dégradations induites par les pertes peuvent en effet se propager sur plusieurs images consécutives de la séquence. Afin d'éviter la propagation temporelle des pertes de paquets, dans les ou- tils de visioconférence nv et vic utilisés sur le MBone, la boucle de prédiction temporelle a été remplacée par un simple mécanisme de rafraîchissement condi- tionnel [MCC 97], au prix cependant d'une perte en efficacité de compression. Ces constatations ont conduit à de nombreux travaux visant à optimiser le compromis entre l'efficacité de compression et la robustesse aux pertes de pa- quets.

### 6.1.1. Mécanismes normalisés

Le standard H.263 version 2 définit un mode de codage de "segments in- dépendants" ("*Independent Segment Decoding*"), dans lequel les prédictions spatiale et temporelle sont confinées à une région de l'image (par exemple à un GOB). Il offre aussi la possibilité de partitionner les groupes d'images en sous-groupes séparés et indépendants appelés *threads*. La prédiction temporelle est alors réalisée entre images appartenant au même *thread*. Quand les images sont réparties en deux groupes (ou *threads*), les images paires et impaires sont traitées séparément. Ce mode de codage, appelé *video redundancy mode* dans le standard H.263 version 2, permet de confiner les erreurs au sein d'un *thread*.

En présence d'un mécanisme d'acquittement, l'information fournie par les acquittements peut être utilisée pour déterminer les macro-blocs perdus dans une image donnée. Un suivi de la propagation des pertes dans les macro-blocs des images suivantes peut alors conduire à une décision de codage **INTRA** de régions fortement affectées par la propagation des pertes. Nous revenons sur ce mécanisme en section 7.1. Les standards H.263 version 2 et MPEG-4 permettent en outre de modifier la référence temporelle prise pour coder les macro-blocs d'une image suivante. Ce mécanisme de changement de référence temporelle est connu sous le nom de NEWPRED.

### 6.1.2. Approches compatibles

Plusieurs méthodes compatibles avec les syntaxes normalisées ont aussi été proposées afin de limiter la propagation temporelle des pertes. Un algorithme de choix de mode de codage **INTRA**, **INTER**, tenant compte des caractéristiques
du canal modélisé par un processus de Bernoulli est décrit dans [HIN 97]. Les dépendances entre les macro-blocs des images successives sont représentées sous la forme d'un treillis et le choix du mode de codage est réalisé par un processus qui s'apparente à un algorithme de décodage de Viterbi. Cette méthode, de part sa complexité et les délais d'encodage introduits, est néanmoins peu compatible avec des contraintes d'encodage en temps-réel.

Un algorithme adaptatif de choix de mode de codage **INTRA**, **INTER**, **NON CODE**, basé sur une mesure de distorsion, exploitant la connaissance des caractéristiques en termes de pertes du réseau, est proposé dans [LéA 99]. Ce mécanisme se base sur une modélisation du processus de pertes suivant une chaîne de Markov à deux états dont les paramètres sont mesurés par le récepteur et supposés transmis à l'émetteur dans les paquets de rapports (RR, receiver reports) du protocole RTCP. L'algorithme recherche pour un groupe de macro-blocs $\mathcal{X} = \{M_1, ..., M_N\} \in \mathcal{I}^N$ donné, la combinaison de modes **INTRA**, **INTER**, **NON CODE**, telle que la distorsion globale, c'est-à-dire la distorsion dûe au codage plus la distorsion induite par les pertes sur le canal soit minimale, sous contrainte d'un débit total donné. Ce problème de minimisation sous contrainte peut s'écrire sous la forme

$$ \min_{\mathcal{M}} \left( \sum_{i=1}^{N} D(X_i, \mathcal{M}) + \lambda R(X_i, \mathcal{M}) \right), $$

où $\lambda$ est une constante de Lagrange, et où $D(X_i, \mathcal{M})$ et $R(X_i, \mathcal{M})$ représentent respectivement la distorsion et le débit pour le macro-bloc d'indice $i$ codé dans le mode $\mathcal{M}$. Le groupe de macro-blocs peut être une image entière ou un sous-ensemble défini par une étape de détection de mouvement ou d'activité, ou encore par un partitionnement a priori de l'image. Ce mécanisme de choix de mode peut être couplé avec un processus de régulation de débit, qui va consister à rechercher conjointement le quantificateur (ou le paramètre de quantification $QP$ dans un algorithme conforme à la norme H.263), permettant de minimiser la fonction de coût ci-dessus.

La mesure de distorsion est définie en fonction des pertes sur le canal. Considérons par exemple que le canal est modélisé par un processus de Bernoulli, caractérisé par un taux de pertes moyen $P_e$. Soient $X_i^t$ le macro-bloc original de l'image à l'instant $t$ et à la position $i$, $\hat{X}_i^t$ le macro-bloc reconstruit après quantification inverse et $\tilde{X}_i^t$ le macro-bloc reconstruit après dissimulation d'erreur (*error concealment*), quand une perte se produit. La mesure de distorsion **INTRA** prend la forme

$$ D(X_i^t, \text{INTRA}) = (1 - P_e) |X_i^t - \hat{X}_i^t| + P_e |X_i^t - \tilde{X}_i^t - 1|, \quad [6] $$

où $| \cdot |$ dénote l'EQM (Erfour Quadratique Moyenne). En faisant l'hypothèse que la différence entre deux macro-blocs à la même position spatiale $i$ croît avec
leur distance temporelle, il est possible de déterminer une borne supérieure de la distorsion en mode **INTER**. Il suffit en effet de majorer la distorsion d'un macro-bloc codé en **INTER**, dans l'hypothèse où le macro-bloc contenant l'information prise comme référence est perdu, par l'expression $|X_i^t - \hat{X}_i^{tI}|$, où $\hat{X}_i^{tI}$ est la version reconstruite du dernier macro-bloc codé en **INTRA** à la position i. Cette hypothèse conduit à l'expression de la distorsion du macro-bloc codé en **INTER**

$$D(X_i^t, \text{INTER}) \le (1 - P_e)^{k_i} |X_i^t - \hat{X}_i^t| + (1 - (1 - P_e)^{k_i}) |X_i^t - \hat{X}_i^{tI}| \quad [7]$$

La valeur $k_i$ exprime le nombre de paquets transmis et contenant au moins un macro-bloc à la position i depuis le dernier macro-bloc codé en **INTRA**. Cette valeur est mise à jour chaque fois qu'un nouveau paquet est formé. Une expression similaire de la distorsion **INTER** peut être dérivée lorsque le canal est modélisé par un processus d'Eliott-Gilbert [LéA 99]. Afin de réduire les coûts de calcul, pour répondre à des contraintes d'encodage en temps-réel, les valeurs de distorsion de codage de source $|X_i^t - \hat{X}_i^t|$, et de débit associé, dans les deux modes de codage **INTRA** et **INTER** peuvent être estimées à l'aide de modèles proposés dans [YAN 97] et [RIB 97], et ceci au prix d'une perte faible en performances de compression. Cet algorithme peut également être étendu à un schéma codage scalable permettant ainsi un codage scalable robuste avec régulation de débit multi-niveaux.

### 6.1.3. Approches non compatibles

Il existe aussi plusieurs techniques qui se situent en rupture avec les syntaxes normalisées. L'approche préconisée dans [TAN 98] abandonne les modes de prédiction temporelle. Elle repose sur une décomposition en sous-bandes 3D du signal, suivie d'une organisation des données en composantes constituées de blocs de coefficients correspondant à des régions spatio-temporelles différentes de la séquence. La perte d'une composante ne va donc pas entraîner une perte de toute l'information relative à une région spatio-temporelle donnée. Les coefficients appartenant à une composante sont alors codés par plans de bits afin de permettre une granularité fine en débit. Les plans de bits de poids les plus forts sont d'abord mis en paquets jusqu'à atteindre un débit $R_1$ fixé pour le niveau de base. Le balayage se poursuit des plans de bits de poids les plus forts vers les plus faibles afin de constituer les niveaux de scalabilité de débits $R_2$ puis $R_3$, etc.. La perte d'un paquet sur un niveau de scalabilité ne va ainsi affecter que les données dans les niveaux de scalabilité supérieurs.
## 6.2. Codage robuste aux perturbations binaires

### 6.2.1. Mécanismes normalisés dans H.263 et MPEG-4

Le train binaire généré par le codeur, du fait de l'utilisation de codes à longueurs variables, est aussi très sensible au bruit de transmission qui vient générer des perturbations isolées ou en rafales d'éléments binaires. Ce type de perturbations est très présent sur des liens sans fils. Les perturbations binaires peuvent entraîner une désynchronisation du décodeur. Le premier mécanisme normalisé pour se prémunir contre les problèmes de propagation des erreurs consiste à placer des marqueurs de resynchronisation à des intervalles réguliers dans le train binaire. Ces marqueurs permettent de diviser le train binaire en segments aussi indépendants que possible et de confiner ainsi les erreurs à une portion du train binaire (un paquet vidéo dans MPEG-4). Le choix de la longueur des segments ou paquets vidéo peut être guidé par un compromis entre le surcoût en bits associé à la transmission des marqueurs et la fiabilité de leur détection en présence d'erreurs. Les marqueurs peuvent être placés à intervalles réguliers en nombre de macro-blocs. Cependant, compte tenu du codage à débit variable des différentes zones d'une image, ces marqueurs ne se trouvent pas régulièrement espacés dans le train binaire. Certaines portions de scènes, telles que les zones à forts mouvements, seront donc plus sensibles aux erreurs. Il peut s'avérer préférable d'avoir un espacement des marqueurs quasi-régulier dans le train de bits, comme le permettent les standards H.263 version 2 et MPEG-4. Le marqueur est placé en frontière de macro-blocs.

L'entête du paquet (cf. figures 4 et 22) contient en outre l'information nécessaire à la re-synchronisation du décodeur, comme par exemple l'adresse du premier macro-bloc dans le paquet et le paramètre de quantification nécessaire pour décoder ce macro-bloc. La syntaxe du paquet vidéo MPEG-4 prévoit également un champ d'extension appelé HEC (Header Extension Code) permettant de signaler l'insertion d'information supplémentaire telle que référence temporelle et type de prédiction du VOP. Un autre mécanisme prévu dans la norme MPEG-4 est le regroupement des informations de mouvement, de forme (dans le cas d'un mode de codage basé objet), et de texture dans des segments délimités par des marqueurs. Ce mode est appelé data partitionning. La syntaxe d'un paquet vidéo définie dans le standard MPEG-4 est illustrée sur la figure 22. Chaque unité logique (ou segment) décodée correctement contiendra un type d'information (entête, mouvement, coefficients TCD) pour tous les macro-blocs du paquet, ce qui facilitera le processus de dissimulation des erreurs. Une telle structuration du train binaire se prête également bien à une protection inégale (UEP, Unequal Error Protection) des différents segments. La protection inégale, faisant appel à des méthodes de contrôle d'erreurs de type FEC (Forward Error Correction) sera décrite dans la section suivante.
<figure><img src="image_25.png" /><figcaption>Figure 22 – Structure d'un paquet vidéo MPEG-4 (a) sans data partitionning, (b) avec data partitionning.</figcaption></figure>

Les standards H.263 version 2 et MPEG-4 permettent également l'utilisation de codes entropiques réversibles (ou RVLC *Reversible Variable Length Codes*) [WEN 97]. Chaque paquet vidéo peut alors être décodé dans les deux sens, du premier vers le dernier bit et réciproquement. Ceci permet de confiner les erreurs à une zone du paquet plus restreinte (cf. figure 22-a).

### 6.2.2. Codage conjoint

Ces mécanismes syntaxiques sont souvent insuffisants. Afin d'améliorer la qualité du système de communication, des techniques de codage conjoint, où les opérateurs de compression (quantification, transformation) sont conçus en tenant compte des caractéristiques du canal, sont en cours d'étude.

Le premier réflexe, dans la définition de telles approches, a été d'abandonner les quantificateurs uniformes suivis de codes à longueurs variables, et d'exploiter la statistique du signal au niveau de l'opération de quantification. Cela a conduit à la conception de quantificateurs optimaux, et donc non uniformes, permettant de minimiser la distorsion sous une contrainte de débit donnée. Les indexes des informations quantifiées sont alors représentés par des codes à longueurs fixes. Des stratégies d'indexation des informations quantifiées (scalaires ou vecteurs), telles que les erreurs de transmission conduisent au décodage du vecteur (ou scalaire) "le plus proche" et donc entraînant une distorsion minimum, ont été proposées. Cela revient à indexer les vecteurs de telle sorte que la distance entre deux indexes, pour un modèle de canal donné, soit similaire à la distance entre les centroïdes des cellules de Voronoï associées à la quantification utilisée. Cette technique est connue sous le nom de codage pseudo-Gray [ZEG 90].

Un quantificateur vectoriel appelé COVQ (*Channel Optimized Vector Quantization*) permettant de minimiser la distorsion globale (source + canal) est aussi proposé dans [FAR 91]. Le dictionnaire a été conçu de telle sorte qu'une
erreur de transmission se traduise par la reconstruction d'un " centroïde " voisin du centroïde initial. Ce dictionnaire peut être construit, pour un canal discret, avec l'algorithme LBG [LIN 80], du nom de ses auteurs Linde-Buzo-Gray. Il suffit en effet de choisir une mesure de distorsion qui va inclure la distorsion introduite par le canal. Considérant un canal discret sans mémoire, la mesure de distorsion peut s'écrire $D = E_{u,v}||u-v||^2 = \sum_{k,\hat{k}} p(i)p(\hat{k}|k)||u-v||^2$, où $u$ est transmis via son index $k$. L'index $\hat{k}$ est reçu avec une probabilité d'erreur $p(\hat{k}|k)$ et correspond au mot décodé $v$. Les cellules de quantification sont mises à jour en utilisant cette mesure de distance, qui inclut les probabilités de transition du canal. La disparition de certaines cellules au cours de l'optimisation s'apparente à une redondance introduite par un codage de canal traditionnel.

## 6.3. Codage par descriptions multiples

Les opérateurs d'un schéma de codage, notamment la transformation, ont pour objectif la décorrélation du signal. Cependant cette décorrélation n'est pas parfaite et peut être exploitée pour reconstruire le signal affecté par les erreurs de transmission [SAY 91], [HAG 95]. Il est aussi possible de concevoir des transformations et des quantificateurs, maintenant une quantité "contrôlée" de corrélation ou d'informations redondantes. Cette idée est à l'origine des méthodes de codage à descriptions multiples. Ces méthodes supposent l'utilisation de plusieurs canaux, et que les erreurs sur les différents canaux sont indépendantes, de telle sorte que la probabilité que tous les canaux soient affectés simultanément est faible. Plusieurs représentations codées du signal sont créées et transmises sur les différents canaux. Le récepteur, suivant le ou les canaux affectés par le bruit, met en œuvre différents décodeurs pour reconstruire le signal, comme illustré sur la figure 23.

Les opérateurs utilisés dans les algorithmes de compression doivent alors répondre à de nouvelles contraintes. Ils doivent permettre d'obtenir le meilleur rapport entre le débit total et la distorsion totale lorsque toutes les descriptions du signal sont reçues correctement, et une qualité acceptable même avec un nombre restreint de descriptions. Chaque description doit donc contenir suffisamment d'information sur le signal. Les flux générés doivent contenir de l'information redondante ou être suffisamment corrélés afin de pouvoir estimer les données perdues à partir des données reçues. L'introduction ou le maintien de corrélation peut s'apparenter à la redondance qui pourrait être introduite par un codeur de canal, mais évitant les problèmes de coûts de calcul et de délais induits par le codage de canal. Il n'est pas exclu cependant d'utiliser dans chaque canal, un codeur de canal fournissant une protection minimale, donc avec des coûts et délais moindres. Les contraintes ci-dessus définissent un
<figure><img src="image_26.png" /><figcaption>Figure 23 – Principe du codage par descriptions multiples (MDC, *multiple description coding*).</figcaption></figure>

nouveau cadre de conception de quantificateurs [VAI 93], [SRI 98], et de transformations [HEM 96], [BAT 97], [WAN 97], [ORC 97], [GOY 98a], [GOY 98b], [GOY 98c].

Considérons le cas d'une transmission sur deux canaux, comme illustré sur la figure 23. La quantification scalarie par descriptions multiples (MDSQ, *multiple description scalar quantization*) à ($M_1, M_2$) niveaux de reconstruction va projeter les échantillons du signal $x$ sur les niveaux de reconstruction $\hat{x}_{ij}^0, \hat{x}_i^1$, et $\hat{x}_j^2$, prenant respectivement leurs valeurs dans les ensembles $\hat{X}^0 = \{\hat{x}_{ij}^0, (i, j) \in C\}$, $\hat{X}^1 = \{\hat{x}_i^1, i \in I_1\}$ et $\hat{X}^2 = \{\hat{x}_j^2, j \in I_2\}$. Les ensembles $I_1, I_2$ sont tels que $I_1 = \{1, 2, ..., M_1\}, I_2 = \{1, 2, ..., M_2\}$. L'ensemble $C$ est un sous-ensemble de $I_1 \times I_2$. Le quantificateur MDSQ est alors constitué de deux quantificateurs, $f_1 : R \to I_1$ et $f_2 : R \to I_2$, qui sélectionnent les indexes $i$ et $j$. Au niveau du décodeur il comprend trois quantificateurs inverses $g_0 : C \to R$, $g_1 : I_1 \to R$ et $g_2 : I_2 \to R$, dont les sorties sont les niveaux de reconstruction prenant leurs valeurs dans les dictionnaires $\hat{X}^0, \hat{X}^1, \hat{X}^2$ et correspondant respectivement aux indexes $ij, i$ et $j$. Le débit du codeur $f_m$ est donné par $R_m = \log_2 M_m$ bits par échantillon du signal de source, avec $m = 1, 2$. Les deux codeurs imposent une partition $A = \{A_{ij}, (i, j) \in C\}$ de l'ensemble $R$, telle que $A_{ij} = \{x/f_1(x) = i, f_2(x) = j\}$. L'allocation des indexes est telle que si les deux indexes $i$ et $j$ sont reçus, la qualité de reconstruction du signal est équivalente à une quantification fine. Si seul l'un des deux indexes est reçu, le niveau de reconstruction est équivalent à une quantification à pas 'grossier'.

Une application simple de ce principe, mais peu performante en compression, consiste à utiliser deux quantificateurs uniformes dont les régions de décision sont décalées, l'une par rapport à l'autre, d'un demi intervalle. Ainsi, si chaque quantificateur a un débit de $R$ bits par échantillon de signal, l'er-
reur de reconstruction est équivalente à l'erreur qui aurait été obtenue avec un quantificateur unique avec un débit de $R + 1$ bits, lorsque les deux descriptions sont reçues. Si seule l'une des deux descriptions est reçue, alors l'erreur de reconstruction est équivalente à l'erreur obtenue avec un quantificateur avec un débit de $R$ bits. Donc, avec un tel quantificateur MDSQ, en absence de pertes, il est nécessaire de transmettre $2R$ bits pour obtenir des performances équivalentes à un quantificateur avec un débit de $R + 1$ bits. De façon générale, pour des contraintes en débit données, donc pour des valeurs de $M_1$ et de $M_2$ données, et pour des bornes supérieures $D_1$ et $D_2$ fixées des distorsions du signal transmis respectivement sur les canaux 1 et 2, un quantificateur MDSQ optimal sera défini par la partition $A$, les ensembles $\tilde{X}^0, \tilde{X}^1$, et $\tilde{X}^2$ tels que la distorsion $E(d_0(X, \tilde{X}^0)) = \sum_{(i,j) \in C} \int_{A_{ij}} d_0(x, \hat{x}_{ij}^0) p(x) dx$ soit minimum sous contraintes de $E(d_1(X, \tilde{X}^1)) = \sum_{i \in I_1} \int_{A_i^1} d_1(x, \hat{x}_i^1) p(x) dx \le D_1$ et $E(d_2(X, \tilde{X}^2)) = \sum_{j \in I_2} \int_{A_j^2} d_2(x, \hat{x}_j^2) p(x) dx \le D_2$. Le terme $p(x)$ représente la fonction densité de probabilité de la source. Un codage entropique des indexes peut en outre être pris en compte dans la conception du quantificateur [VAI 94].

La quantification par descriptions multiples peut être mise en place dans un codeur par transformée [VAI 96], [BAT 97], [SER 98]. Cependant, le maintien de redondance ou de corrélation entre les différentes descriptions peut aussi être assuré au niveau de la transformation. Les transformations ne doivent plus, dans ce cas, répondre à des critères d'orthogonalité ou de gain de codage, mais doivent minimiser une erreur globale de reconstruction, en présence d'erreurs de transmission, et donc maintenir une information redondante dosée dans les sous-flux générés. Une première approche consiste à appliquer une transformation linéaire, sous forme de matrices de rotation [ORC 97] ou de matrices non orthogonales [WAN 97], à des paires de coefficients préalablement obtenus par transformation orthogonale (par exemple par TCD) du signal. Les coefficients de la paire sont alors transmis sur des canaux séparés. La redondance introduite peut être contrôlée par le nombre de coefficients appariés et les paramètres de la transformation (par exemple de la rotation). La redondance peut donc être introduite entre coefficients appartenant à un même bloc transformé par TCD ou KLT ou entre coefficients de blocs transformés adjacents. Les blocs adjacents sont, dans ce dernier cas, considérés comme les différentes descriptions du signal. Les transformations orthogonales à recouvrement, connues sous le nom de LOT (Lapped Orthogonal Transforms), se prétent bien à une introduction de corrélation inter-blocs. Il est en effet possible de concevoir les fonctions de base de la LOT telles que l'erreur de reconstruction, en cas de pertes ou d'erreurs sur certaines descriptions, soit minimisée [HEM 96]. Différents critères de synthèse peuvent alors être mis en œuvre en fonction des méthodes de reconstruction utilisées par le récepteur.

Une formalisation du codage à descriptions multiples par transformation
linéaire $F : C^n \to C^m$ associée à une décomposition du signal sur un ensemble de fonctions de bases $\Phi = \{\phi_k\}_{k=1}^m$ redondantes est décrite dans [GOY 98a], [GOY 98c], [GOY 98b]. L'approche conceptuellement s'apparente à un code de canal en bloc, de taux $n/m$, mis en œuvre au travers de la transformation. Les paramètres $n/m$ et les fonctions de base de la transformation peuvent être adaptés aux caractéristiques du canal à un instant donné.

Les techniques de codage à descriptions multiples conduisent, à ce jour, à un débit de redondance élevé. Elles deviennent intéressantes lorsque les taux de pertes ou d'erreurs sont élevés, au delà de $10^{-3}$ pour les approches par transformations linéaires de paires de coefficients TCD [ORC 97], ou à partir de 0.025 pour les transformations de type LOT [CHU 98]. Néanmoins, le codage par descriptions multiples, comparativement à une introduction de redondance par codage de canal, présente l'avantage de réduire les délais qui peuvent être critiqués pour certaines applications.

## 7. Contrôle de pertes et d'erreurs

Avant de corriger les erreurs éventuelles provoquées par la perte de paquets, il est nécessaire de pouvoir détecter les paquets perdus. Ceci est généralement effectué au niveau de la couche transport, en utilisant le numéro de séquence de l'entête RTP (cf. figure 7). Les paquets vidéo émis à la suite ont des numéros de séquence consécutifs, ce qui facilite la détection des paquets perdus par le décodeur. Certains mécanismes de contrôle d'erreurs essaient de récupérer l'information contenue dans les paquets perdus en faisant du post-traitement sur l'image. Ces mécanismes ne rajoutent aucune information supplémentaire au flot vidéo et s'implantent directement dans le décodeur. Il s'agit d'algorithmes de traitement d'image qui appliquent un filtrage (comme par exemple un lissage temporel, spatial, ou une interpolation) à l'image pour essayer de reconstruire les blocs qui sont altérés par la perte de paquets [WAN 98b]. Ces mécanismes étant identiques à ceux utilisés pour la transmission vidéo sur réseaux à com-mutation de circuits, nous n'en discuterons pas ici.

Cette section décrit les principales techniques de détection et de correction de pertes et d'erreurs, qui permettent d'accroître la qualité apparente de la transmission. Les techniques de contrôle de pertes et d'erreurs peuvent être classées en deux grandes catégories : les techniques en boucle fermée, exploitant une voie de retour, et les techniques en boucle ouverte basées sur des méthodes de correction par anticipation.
## 7.1. Mécanismes de contrôle de pertes en boucle fermée

Ce mécanisme, appelé ARQ (*Automatic Repeat Request*), visant une transmission de bout-en-bout fiable, donc avec des taux d'erreurs résiduels nuls, est basé sur des mécanismes de détection d'erreurs ou de pertes et de demande de retransmission des paquets erronés ou perdus [LIN 84]. Le schéma ARQ peut prendre plusieurs formes : Le récepteur transmet un accusé de réception appelé **ACK** et contenant le numéro de séquence du paquet acquitté pour chaque paquet reçu sans erreurs. Les paquets non acquittés dans un intervalle de temps donné appelé *timeout* sont considérés perdus ou erronés et sont retransmis. Une approche alternative consiste à transmettre un acquittement Négatif (**NACK**) pour chaque paquet reçu avec des erreurs. Des variantes de ces méthodes existent selon que l'émetteur continue à émettre les paquets, sans attendre l'acquittement des paquets précédents, suivant une approche appelée *Selective ARQ*, ou qu'au contraire il reste en attente des acquittements précédents avant de poursuivre sa transmission. L'ensemble de ces mécanismes sont décrits dans [LIU 97].

Cependant, en raison des contraintes temps-réel de la vidéoconférence, il est souvent vain de demander la retransmission des paquets perdus. En revanche, il est possible de faire bénéficier au décodeur d'un rafraîchissement d'une partie d'image à la suite d'une perte de paquets [TUR 96b]. Ainsi, il ne s'agit pas de retransmettre les paquets perdus comme dans un schéma ARQ classique. À la place, lors de la prochaine image à encoder, le codeur forcera un codage en mode **INTRA** des blocs d'image qui ont été altérés par la perte de paquets. La souplesse d'un codec logiciel permet de mettre en œuvre facilement ce genre de schéma correcteur d'erreurs, comme c'est le cas dans le logiciel *ivs* [INR b]. La figure (24) montre l'interaction entre émetteur et récepteur. On remarque les deux flots de données qui sont transmis sur l'Internet : les données vidéo qui circulent du codeur (plus précisément du module de découpage en paquets) vers le décodeur (module de réassemblage des paquets) et les informations rétroactives qui circulent en sens inverse, c'est-à-dire du décodeur (module de détection de perte de paquets) vers le codeur (module de décision de codage en mode **INTER** ou **INTRA**). L'exemple de la figure (25) illustre le protocole de rafraîchissement d'image pour une perte de paquets. Lorsque le récepteur constate que le paquet (p+1) est perdu, il envoie à l'émetteur un NACK (*Negative Acknowledgement*) indiquant que la perte a eu lieu pour les données du GOB 3 de l'image acquise au temps t1. L'émetteur force alors en codage **INTRA** tous les macro-blocs du GOB 3 qui ont été codés depuis le temps t1 dans l'image suivante acquise au temps t2. Ainsi, le rafraîchissement obligatoire en mode **INTRA** est limité aux macro-blocs altérés par la perte de paquets, ce qui réduit ainsi la bande passante utilisée.

Ces méthodes ARQ simples conduisent à l'introduction de délais variables
<figure><img src="image_27.png" /><figcaption>Figure 24 – Interaction entre émetteur et récepteur</figcaption></figure>

et à des coûts de retransmissions élevés dans des environnements multipoints. Une méthode de rationalisation des demandes de renvoi, appelée SRM (*Sca-lable Reliable Multicast*), pour un transport multipoint fiable est proposée dans [FLO 97]. Cette méthode améliore le concept de groupe multipoint en maxi-misant le partage d'informations. Elle consiste à transmettre l'acquittement négatif à tous les abonnés de la session. Un récepteur ayant l'information en sa
<figure><img src="image_28.png" /><figcaption>Figure 25 – Demande de rafraîchissement INTRA après une perte de paquets</figcaption></figure>

possession ne répondra que si un autre récepteur n'a pas déjà répondu à la re-
quête. Les NACK suivants sont temporisés, afin d'éviter de répondre plusieurs
fois consécutives à la demande de retransmission d'un même paquet, émanant
de différents abonnés de la session. Pour une topologie où tous les membres de
l'arbre multipoint participent à la session et où les points de congestion sont
aléatoires, le nombre de demandes de retransmission augmente peu lorsque l'on
passe de 1 à 100 participants. Le temps de recouvrement reste stable, de l'ordre
de 1 à 2 RTT (délais d'aller-retour). En revanche, lorsque l'arbre devient très
grand, et lorsque tous les membres de l'arbre ne participent pas à la session,
alors le délai de recouvrement augmente de manière sensible.

Généralement, les techniques ARQ seules restent incompatibles avec des
impératifs de fonctionnement en temps-réel et souffrent de problèmes de scala-
bilité dans des configurations multipoints. Néanmoins, il peut être avantageux
pour certaines applications de les associer à des techniques de correction d'er-
reur par anticipation. En effet, les erreurs de canal n'étant pas uniformément
distribuées, l'usage des FEC peut, en cas d'évanouissements du canal, ne pas
être suffisant pour fournir une qualité de transmission acceptable. La méthode
ARQ peut permettre de combattre des évanouissements du canal, alors que le
mécanisme de correction par anticipation, couplé avec une technique de type
ARQ, permet de réduire la probabilité effective des pertes et donc les demandes
de retransmission.
## 7.2. Mécanismes de contrôle de pertes en boucle ouverte

L'objectif de ces mécanismes est de corriger l'effet de la perte de paquets par anticipation. Pour cela, on rajoute de la redondance (ou FEC) aux données de manière à ce que le récepteur puisse reconstruire les paquets perdus. Pour que ce mécanisme soit efficace, la redondance rajoutée aux paquets doit être fonction de la distribution des pertes de paquets sur le réseau. Des études ont montré que, dans l'Internet, les pertes de paquets émis à intervalles réguliers sont le plus souvent isolées [BOL 93]. Dans la majorité des cas, on s'aperçoit que le simple fait de corriger la perte isolée de paquets, permet une nette amélioration de la qualité de la réception [BOL 99]. Mais une estimation dynamique du canal est nécessaire pour pouvoir optimiser le mécanisme FEC à la transmission. Les mécanismes à base de FEC ajoutent un délai au décodage des paquets. Ce retard est encore plus important si on couple un mécanisme d'entrelacement temporel des données au FEC.

Pour la vidéo, on peut distinguer deux classes de mécanismes FEC selon le type de redondance utilisé : les mécanismes dont l'information de redondance est elle-même constituée de données vidéo plus ou moins comprimées, et les mécanismes qui utilisent des codes correcteurs.

### 7.2.1. Redondance sous forme vidéo

Le principe consiste à rajouter à chaque paquet de l'information vidéo qui permettra de reconstruire plus ou moins fidèlement un sous-ensemble des paquets précédemment émis [BOL 98]. Pour illustrer le fonctionnement, prenons l'exemple de la transmission vidéo H.261. Pour pouvoir corriger la perte isolée d'un paquet, il suffit de rajouter à l'entête de chaque paquet les données incluses dans le paquet précédent mais sous une forme plus comprimée. Un flot vidéo plus comprimé peut facilement s'obtenir en utilisant la TCD du codage H.261. Par exemple, une manière économique en calcul consiste à n'utiliser que les coefficients basse-fréquence (BF) des blocs d'image, c'est-à-dire les N premiers coefficients parcourus dans l'ordre "zigzag" (cf. figure 26). Cette méthode dite par "troncation en fréquence" est basée sur l'observation que les coefficients basse-fréquence ont une importance visuelle plus grande que les coefficients haute-fréquence. Cette technique permet ainsi de reconstruire plus ou moins fidèlement un paquet perdu lorsque la perte est isolée. Un schéma analogue capable de reconstruire deux pertes consécutives peut facilement être obtenu en rajoutant dans chaque paquet de l'information sur les deux paquets précédents. Le principal inconvénient de ce type de schéma est le surcoût en bande passante qu'il génère. Notons aussi que le nombre de codages consécutifs en mode INTER doit rester suffisamment faible pour ne pas entraîner de trop
<figure><img src="image_29.png" /><figcaption>Figure 26 – Segmentation des coefficients BF et HF dans un bloc de TCD</figcaption></figure>

grandes accumulations d’erreurs dans le décodage des paquets suivants. En ef-
fet, pour encoder des images en mode INTER, un codeur H.261 suppose que le
décodeur dispose d’une image de même résolution que lui. Ce n’est plus le cas
à la suite d’une reconstruction imparfaite de paquets perdus, car des erreurs
s’accumulent alors jusqu’au prochain codage en mode **INTRA**.

7.2.2. Redondance sous forme de codes correcteurs

Les techniques de contrôle d’erreur ou de pertes par anticipation sont basées
sur l’usage de codes de détection et de correction d’erreurs ou de pertes. Les
codes correcteurs souvent utilisés pour parer à des pertes ou à des effacements
sur le réseau sont des codes en blocs de type Reed-Solomon qui possèdent
la propriété dite MDS ou à distance maximale séparable (Maximal Distance
Separable) [MCA 90, RIZ 97, SAL 98]. Un code MDS de rendement k/n, et
noté C(n, k), de longueur n et de dimension k, code k symboles d’information
contenant chacun m bits en un mot de n symboles. Un paquet de données peut
être considéré comme un symbole. Dans ce cas, le code C(n, k) crée n paquets
à partir de k paquets de données utiles, générant ainsi (n − k) paquets de
redondance. Notons qu’un code dans lequel le message initial est lui-même une
partie du mot de code en sortie est appelé code systématique. Cette propriété
permet l’utilisation directe des paquets reçus par le décodeur en cas de non
perte de paquets. Les codes MDS permettent de reconstruire les k symboles
initiaux à partir de n’importe quel sous-ensemble de k symboles parmi les n
symboles générés (cf. figure 27). Ces codes peuvent donc compenser des suites
ou rafales de pertes de longueur (n − k). Les codes correcteurs ont pour effet
de réduire la probabilité effective des pertes.

Soit un code MDS de rendement *k*/*n* utilisé sur un canal sans mémoire où
la probabilité de pertes est égale à *p*. Pour qu’un paquet soit perdu il faut qu’au
<figure><img src="image_30.png" /><figcaption>Figure 27 – Processus de codage/décodage systématique</figcaption></figure>

moins ($n-k$) autres paquets soient perdus. La probabilité effective de pertes après décodage est alors donnée par

$$P_e = p \sum_{j=0}^{k-1} \binom{n-1}{j} p^{n-1-j} (1-p)^j.$$

### 7.2.2.1. Contrôle de pertes par protection inégale

Le compromis classique bande passante utilisée versus taux de protection est le critère majeur à optimiser. Une utilisation inadéquate des FECs peut conduire à un accroissement du trafic, résultant en une aggravation des pertes, et par conséquent en une dégradation de la qualité du signal reconstruit. Ce compromis peut être optimisé en adoptant des stratégies de protection inégale ou UEP (Unequal Error Protection) des portions de signal transmis. Connaisant la probabilité effective des pertes après décodage, la répartition de débit entre la source et la redondance peut être réalisée de manière à minimiser la distorsion globale, définie comme la somme de la distorsion de quantification et de la distorsion induite par le canal, compte tenu des pertes résiduelles après correction.

À ce stade différentes stratégies d'allocation de débit et de structuration des données utiles et des données de redondance dans les paquets de transport peuvent être appliquées. L'algorithme adaptatif de choix de modes présenté en section 6.1.2 peut être étendu en remplaçant la fonction de coût à minimiser
par

$$ \min_{\mathcal{K}} \min_{\mathcal{M}, \mathcal{Q}} \left( \sum_{i=1}^{N} D(X_i, \mathcal{M}) + \lambda \frac{k}{n} R(X_i, \mathcal{M}) \right), $$

où $k/n$ correspond au taux de rendement associé au code correcteur choisi et où la distorsion $D(X_i, \mathcal{M})$ est fonction, non plus de la probabilité de perte sur le canal, mais de la probabilité de perte effective après correction. L'algorithme sélectionne alors le mode de codage des macro-blocs, le paramètre de quantification $Q$ et le taux de rendement $k/n$ du code correcteur parmi un ensemble de valeurs pré-définies. La modélisation des fonctions débit-distorsion proposée dans [RIB 97] permet de réduire de façon importante les coûts de calcul. Données utiles et de redondance peuvent alors être organisées dans les paquets selon une structure appelée PET (Priority Encoding Technique) [ALB 96].

Une approche alternative de protection inégale de niveaux de scalabilité de source est décrite dans [GIR 99]. Chaque niveau de scalabilité est supposé protégé avec un code $RS(n, k_l)$. Le niveau $l$ est le niveau de scalabilité le plus élevé reçu si le nombre de paquets perdus $N$ vérifie $n - k_{l-1} < N \le n - k_l$. L'algorithme de répartition de débit va alors choisir les valeurs de $k_l/n$ par niveau $l$ de scalabilité de source afin d'optimiser le rapport signal à bruit ou PSNR (Peak Signal to Noise Ratio) global donné par la relation

$$ PSNR = \sum_{l=0}^{L} PSNR_l \times p_l. $$

Le terme $PSNR_l$ représente le rapport signal à bruit associé au niveau $l$ pour un débit $r_l$ donné. $p_l$ est la probabilité de réception d'un niveau de scalabilité $l$ donnée par $p_l = \sum_{m=n-k_{l-1}+1}^{n-k_l} P(m, n)$, où $P(m, n)$ est la probabilité d'avoir $m$ paquets perdus dans un bloc de $n$ paquets.

Dans un environnement de transmission multipoint, selon un principe analogue à un contrôle de congestion par les récepteurs, il est possible de transmettre l'information de redondance sur plusieurs canaux (ex : sessions RTP) et de réguler le débit alloué à l'information de redondance par abonnement (ou abandon) à une ou plusieurs sessions. Ce principe est mis en application dans [TAN 99], où les $n-k$ différents paquets de redondance, associés au niveau bas de la représentation scalable du signal de source, sont répartis sur plusieurs canaux. Un modèle prédictif "TCP-courtois" mis en place au niveau des récepteurs permet de prédire la bande passante totale disponible. Un mécanisme de décision de répartition de débit entre la source et la redondance conduit les différents récepteurs à s'abonner aux différents niveaux de FEC comme aux différentes sessions transportant l'information utile [TAN 99]. L'approche suppose un nombre de paquets $N_d$ transmis sur chaque niveau de scalabilité de source et un nombre $N_f$ de paquets de redondance transmis sur chaque niveau de FEC.
Soient B la bande passante prédite, $p_i$ la probabilité de recevoir i niveaux de données utiles, et $D_i$ la distorsion associée à ces i niveaux. L'algorithme d'allocation de débit recherche les nombres de niveaux f de FEC et d de données minimisant la fonction de coût

$$ \min_{d \in [0, B/N_d]} \arg\left(\sum_{i=0}^{d} p_i \times D_i\right), $$

et tels que $f \times N_f + d \times N_d \le B$. L'approche fait l'hypothèse d'une signalisation de l'émetteur vers les récepteurs des valeurs de distorsion $D_i$ correspondant à différentes valeurs de débit dans les niveaux de scalabilité. Le calcul proposé des probabilités $p_i$ suppose aussi que les pertes sur un niveau de scalabilité ne vont affecter que les données sur le niveau supérieur.

### 7.2.2.2. Contrôle d'erreurs par protection inégale

En présence de perturbations binaires (liens sans fils), des stratégies similaires peuvent être mises en place. Elles consistent à allouer différents niveaux de protection (donc des codes correcteurs avec des rendements différents) à différents segments du train binaire. Ces segments peuvent correspondre à différentes bandes de fréquences issues d'une décomposition multirésolution [TAN 92], ou encore à différents plans de bits ou groupes de plans de bits des données quantifiées [RUF 95], [AZA 97a], en tenant compte de la sensibilité de chaque plan de bit par rapport aux erreurs de transmission. Les performances débit-distorsion en présence de bruit sont évaluées en considérant les probabilités de transition d'un index des valeurs quantifiées à l'autre [SRI 97], ou en estimant la contribution à la distorsion globale d'une erreur sur une position de bit donnée [RUF 95] [CHE 96b], ou sur un groupe de bits [AZA 97b]. Les codes de canal souvent utilisés dans ce genre d'approches sont les codes RCPC (Rate-Compatible Convolutional Codes) [HAG 88], en raison de la souplesse qu'ils offrent dans le changement du taux de rendement par simple ajustement de la matrice de poinçonnage.

Les techniques ci-dessus supposent l'utilisation de codes de source à longueurs fixes. Afin d'obtenir un meilleur compromis entre l'efficacité de compression et la robustesse aux erreurs de transmission, des techniques de protection inégale de codes à longueurs variables peuvent être mises en place. L'utilisation de codes à longueurs variables vient à l'évidence créer des difficultés supplémentaires, comme des problèmes de propagation des erreurs et donc de désynchronisation du décodeur. En plus de cette forte sensibilité au bruit, il est difficile de dériver de manière analytique les performances débit-distorsion en présence d'erreurs de transmission, et donc la fonction de coût à optimiser pour parvenir à une allocation de débit source et canal optimale. Cette
difficulté est contournée dans [TAN 92] en simulant au niveau du codeur la chaîne complète de transmission. Cette approche est à l'évidence très coûteuse en temps de calcul. Dans [GUI 99], une mesure de distorsion, tenant compte de la propagation des erreurs au sein d'un paquet due aux codes à longueurs variables, est proposée afin de réduire les coûts de calcul au niveau du codeur. Dans ce modèle utilisant des codes correcteurs associés aux flux vidéo transmis, les performances du système de communication peuvent aussi être améliorées par la mise en place de techniques de décodage conjoint source-canal où une connaissance a priori des statistiques de la source est exploitée au niveau du décodage de canal.

## 8. Conclusion

Ce chapitre, en faisant un tour d'horizon de la problématique, s'est efforcé de présenter un état de l'art des algorithmes de codage et de contrôle de transmission vidéo sur réseaux hétérogènes. Après avoir présenté une vue d'ensemble des principaux standards de compression vidéo, nous nous sommes ensuite intéressés au découpage en paquets des flots vidéo en vue de les transmettre sur des réseaux à commutation de paquets comme Internet. Nous avons présenté les principes ALF de mise en trame de la vidéo par l'application, et illustré cette approche avec un exemple d'encapsulation RTP de flot vidéo H.261. Les protocoles utilisés pour le transport des flux multimédia, à la différence de TCP, ne comportent aucun mécanisme de contrôle de congestion et ne garantissent pas que les paquets arriveront à destination. Nous avons alors abordé le délicat problème du contrôle de congestion des applications multimédia. Nous avons décrit les deux principales approches pour résoudre ce problème, à savoir l'adaptation du réseau aux caractéristiques des nouvelles applications, et l'adaptation des applications aux caractéristiques du réseau. Notons que pour empêcher des applications peu scrupuleuses de monopoliser les ressources du réseau et pour fournir des garanties de services, la première approche et donc la modification du réseau est inévitable. Le problème de la transmission en multipoint vers un ensemble hétérogène de récepteurs nous a amené à décrire des méthodes de codage vidéo scalables (temporelle, spatiale, SNR et à granularité fine). Adapter le débit des flux à la bande passante disponible sur le réseau permet de limiter les phénomènes de congestion sans toutefois éliminer les phénomènes de pertes. Ceci nous a logiquement amené à nous préoccuper du problème du codage robuste et du contrôle de pertes et d'erreurs dans le réseau. Nous avons alors présenté des techniques de codage robuste aux pertes de paquets et aux perturbations binaires ainsi que des techniques de codage par description multiples. Enfin, nous avons décrit des techniques de contrôle de pertes et d'erreurs pour des codages vidéo existants utilisant soit un schéma
correcteur en boucle fermée soit des mécanismes à base d'ajout de redondance
aux données.
Bibliographie

[ALB 96] A. ALBANESE, J. BLOEMER, J. EDMONDS ET M. LUBY. Priority encoding transmission. *IEEE Trans. on Information Theory*, 42(6):1737-1744, November 1996.

[ALB 99] C. ALBUQUERQUE, B.J. VICKERS ET T. SUDA. An end-to-end source-adaptive multi-layered multicast (samm) algorithm. In *Proc. Packet Video Workshop, PVW'99*, April 1999.

[AMI 98] E. AMIR, S. MCCANNE ET R. KATZ. An active service framework and its application to real-time multimedia transcoding. In *Proc. of ACM SIGCOMM*, Vancouver, Canada, September 1998.

[AZA 97a] S. B. ZAHIR AZAMI, P. DUHAMEL ET O. RIOUL. Combined source-channel coding for binary symmetric channels and uniform memoryless source. In *Proc. GRETSI XVIth Congress*, September 1997.

[AZA 97b] S. B. ZAHIR AZAMI, P. DUHAMEL ET O. RIOUL. Performance bounds for joint source-channel coding of memoryless sources using a binary decomposition. In *Proc. European Workshop on Emerging Techniques for Communication Terminals*, pages 259-263, July 1997.

[BAT 97] J.C. BATLO ET V.A. VAISHAMPAYAN. Asymptotic performance of multiple description transform codes. *IEEE Trans. on Information Theory*, 43(2):703-707, 1997.

[BHA 99] S. BHATTACHARYYA, D. TOWSLEY ET J. KUROSE. The loss path multiplicity problem in multicast congestion control. In *Proc. IEEE Infocom'99*, March 1999.

[BLA 98] S. BLAKE, D. BLACK, M. CARLSON, E. DAVIES, Z. WANG ET W. WEISS. An architecture for differentiated services. *RFC-2475*, December 1998.

[BOL 93] J. BOLOT. Characterizing end-to-end packet delay and loss in the internet. *Journal of High Speed Networks*, 2(3), 1993.

[BOL 94a] J. BOLOT, T. TURLETTI ET I. WAKEMAN. Scalable feedback control for multicast video distribution in the internet. In *Proc. ACM SIGCOMM'94*, London, UK, September 1994.

[BOL 94b] J.C. BOLOT ET T. TURLETTI. A rate control mechanism for packet video in the internet. In *Proc. IEEE infocom'94*, Toronto, Canada, June 1994.

[BOL 98] J.C. BOLOT ET T. TURLETTI. Experience with rate control mechanisms for packet video in the internet. *ACM SIGCOMM CCR*, 28(1):4-15, January 1998.

[BOL 99] J.C. BOLOT, S. FOSSE-PARISIS ET D. TOWSLEY. Adaptive fec-based error control for internet telephony. In *Proceedings of IEEE INFOCOM*, pages 1453-1460, NY, March 1999.
[BRA 96] S. BRADNER. The internet standards process – revision 3. RFC-2026, October 1996.

[BRA 97] R. BRADEN ET L. ZHANG. Resource reservation protocol (rsvp). RFC-2205, September 1997.

[BUS 95] I. BUSSE, B. DEFFNER ET H. SCHULTZRINNE. Dynamic QoS control of multimedia applications based on RTP. Research report, GMD-Fokus, Hardenbergplatz 2, D-10623 Berlin, Germany, May 1995.

[CHE 96a] Y. CHEN ET WILLIAM A. PEARLMAN. Three-dimensionnal subband coding of video using the zerotree method. In Proc. SPIE Conference Visual Communication and Image Processing, VCIP'96, pages 1302-1309, mar 1996.

[CHE 96b] G. CHEUNG ET A. ZAKHOR. Joint source-channel coding of scalable video over noisy cha nnels. Proc. Intl Conf. on Image Processing, ICIP'96, pages 767-770, 1996.

[CHE 96c] S.Y. CHEUNG, M.H. AMMAR ET X. LI. On the use of destination set grouping to improve fairness in multicast video distribution. In Proc. IEEE Infocom'96, pages 553-560, San Francisco, CA, March 1996.

[CHU 98] D. CHUNG ET Y. WANG. Multiple description image coding using signal decomposition and reconstruction based on lapped orthogonal transforms. In Proc. IEEE Intl Conf. on Image Processing, ICIP'98, pages 664–668, Chicago, Il, October 1998.

[CLA 90] D.D. CLARK ET D.L. TENNENHOUSE. Architectural considerations for a new generation of protocols. In ACM SIGCOMM, pages 200–208, September 1990.

[CLA 98] D.D. CLARK ET W. FANG. Explicit allocation of best effort packet delivery service. IEEE/ACM Transactions on Networking, August 1998.

[CLE 99] A. CLERGET. Tuf : A tag-based udp multicast flow control protocol. Technical Report RR-3728, INRIA, July 1999.

[COW 95] C. COWAN, S. CEN, J. WALPOLE ET C. PU. Adaptive methods for distributed video presentation. ACM Computing Survey, 27(4), December 1995.

[DEE 89] S. DEERING. Host extensions for ip multicasting. RFC-1112, August 1989.

[DEM 89] A. DEMERS, S. KESHAV ET S. SHENKER. Analysis and simulation of a fair queueing algorithm. In Proc. ACM SIGCOMM, pages 1–12, September 1989.

[FAR 91] N. FARVARDIN ET V. VAISHAMPAYAN. On the performance and complexity of channel optimized vector quantizers. IEEE Trans. on Information Theory, 37(1):155–160, January 1991.

[FLO 93] S. FLOYD ET V. JACOBSON. Random early detection gateways for congestion avoidance. IEEE/ACM Transactions on Networking, pages 397–413, August 1993.

[FLO 95] S. FLOYD ET V. JACOBSON. Link-sharing and resource management models for packet networks. IEEE/ACM Transactions on Networking, 3(4):365–386, August 1995.

[FLO 97] S. FLOYD, V. JACOBSON, C. LIU, S. MCCANNE ET L. ZHANG. A reliable multicast framework for light-weight sessions and application level framing. IEEE/ACM Trans. on Networking, 5(6):784–803, December 1997.

[FLO 00] S. FLOYD, M. HANDLEY, J. PADHYE ET J. WIDMER. Equation-based congestion control for unicast applications. http://www.aciri.org/tfrc/, February 2000.
[GAO 99] Y. GAO ET J.C. HOU. Racoom : A rate-based congestion control scheme for multicasts. Technical report, The Ohio State University, Dept. of Electrical Engineering., 1999.

[GIR 99] B. GIROD, K. STUHLMULLER, M. LINK ET U. HORN. Packet loss resi- dent internet video streaming. In Proc. SPIE Visual Communication and Image Processing Conference, VCIP '99, San Jose, CA, January 1999.

[GOL 99] S.J. GOLESTANI ET K.K. SABNANI. Fundamental observations on multi-cast congestion control in the internet. In Proceedings IEEE Infocom '99, March 1999.

[GOY 98a] V.K. GOYAL ET J. KOVACEVIC. Optimal multiple description transform coding of gaussian vectors. Proc. IEEE Data Compression Conference, DCC '98, pages 388–397, March 1998.

[GOY 98b] V.K. GOYAL, J. KOVACEVIC, R. AREAN ET M. VETTERLI. Multiple description transform coding of images. Proc. IEEE Intl. Conf. on Image Pro- cessing, ICIP '98, pages 674–678, October 1998.

[GOY 98c] V.K. GOYAL, J. KOVACEVIC ET M. VETTERLI. Multiple description transform coding : Robustness to erasures using tight frame expansions. Proc. IEEE Intl. Symposium on Information Theory, August 1998.

[GUI 99] C. GUILLEMOT, V. LE GOFF ET F. GARCIA UGALDE. Joint source and channel rate allocation in lattice vector quantization based encoders. In Proc. Picture Coding Symposium, PCS '99, Portland, Or, April 1999.

[HAG 88] J. HAGENAUER. Rate-compatible punctured convolutional codes (rcpc codes) and their applications. IEEE Trans. on Communications, 36(4) :389–400, April 1988.

[HAG 95] J. HAGENAUER. Source-controlled channel decoding. IEEE Transactions On Communications, 43 :2449–2457, September 1995.

[HEM 96] S. HEMAMI. Reconstruction-optimized lapped orthogonal transforms for robust image transmission. IEEE Trans. on Circuits and Systems for Video Technology, 6(2) :168–181, April 1996.

[HIN 97] R.O. HINDS, T.N. PAPPAS ET J.S. LIM. Joint block-based video source/channel coding for packet-switched networks. In Proc. SPIE Visual Com- munication and Image Processing, VCIP '97, volume 3309, pages 124–133, 1997.

[HSU 99] C.Y. HSU, A. ORTEGA ET M. KHANSARI. Rate-control for robust video transmission over burst-error wireless channels. IEEE Journal On Selected Areas in Communications, 17(5) :756–772, May 1999.

[HUF 51] D.A. HUFFMAN. A method for the construction of minimum redundancy codes. In Proceedings of I.R.E, pages 1098–1101, 1951.

[INR a] INRIA. Freephone - inria audio conferencing tool. URL : http://www- sop.inria.fr/rodeo/fphone/.

[INR b] INRIA. ivs - inria videoconferencing system. URL : http://www.inria.fr/rodeo/ivs/.

[ISI 98] IS-14496-2. Coding of audio visual objects : Visual. ISO/IEC JTC1/SC29/WG11, Tokyo, March 1998.

[ISI 81] ISI. Transmission control protocol (tcp). RFC-793, September 1981.

[ISO 96] ISO/IS-13816-2. Generic Coding of Moving Pictures and Associated Audio Information - Part 2 : Video. ISO/IEC JTC1/SC29/WG11, 1996.
[ITU 98] STUDY GROUP 16 ITU-T. *Draft Text of Recommendation H.263 Version 2 ("H.263+") for Decision*. International Telecommunication Union, ITU-T, October 1998.

[JAC 88] V. JACOBSON ET M.J. KARELS. Congestion avoidance and control. In *Proc. of ACM SIGCOMM*, pages 314–329, August 1988.

[JAI 89] A. K. JAIN. *Fundamentals of Digital Image Processing*. Prentice-Hall, 1989.

[KIM 97] B.J. KIM ET W.A. PEARLMAN. Low-delay embedded 3-d wavelet co- lor video coding. In *Proc. SPIE Visual Communication and Image Processing Conference, VCIP'97*, volume 3309, pages 955–964, San Jose, CA, 1997.

[LéA 99] F. LE LÉANNEC, F. TOUTAIN ET C. GUILLEMOT. Packet loss resilient mpeg-4 compliant video coding for the internet. *EURASIP Journal on Image Communication, Special Issue on Real-Time Video over the Internet*, September 1999.

[LEE 94] D.C. LEE. Effects of leaky bucket parameters on the average queueing de- lay: Worst case analysis. In *Proceedings of IEEE INFOCOM*, Toronto, Canada, June 1994.

[LEV 97] B.N. LEVINE ET J.J. GARCÍ-LUNA-ACEVES. Improving internet multicast with routing labels. In *Proc. IEEE Intl Conf. on Network Protocols*, pages 241– 250, October 1997.

[LIN 80] Y. LINDE, A. BUZO ET R.M. GRAY. An algorithm for vector quantizer design. *IEEE Trans. on Communications*, 28(1), January 1980.

[LIN 84] S. LIN, D.J. COSTELLO ET M. MILLER. Automatic repeat request error control schemes. *IEEE Communication Magazine*, pages 5–17, 1984.

[LIU 97] H. LIU, H. MA, M. EL ZARKI ET S. GUPTA. Error control schemes for networks: An overview. *MONET - Mobile Networks and Applications*, 2(2):167–182, 1997.

[LIU 99] SHU LIU. Multicast congestion control. Notes sent to the RM mailing list, June 1999.

[LUB 99] M. LUBY ET L. VICISANO. Heterogeneous multicast congestion control based on router packet filtering. Notes sent to the RM mailing list, June 1999.

[LYN 85] T. J. LYNCH. *Data Compression: Techniques and Applications*. Lifetime Learning Publications, 1985.

[MAC 94] M.R. MACEDONIA ET D.P. BRUTZMAN. Mbone provides audio and video across the internet. *IEEE Computer Magazine*, pages 30–36, April 1994.

[MAH 97] J. MAHDAVI ET S. FLOYD. Tcp-friendly unicast rate-based flow control. Technical note sent to the end2end-interest mailing list, january 8 1997.

[MAR 97] S.A. MARTUCCI, I. SODAGAR, T. CHIANG ET Y.Q. ZHANG. A zerotree wavelet video coder. *IEEE Trans. on Circuits and Systems for Video Technology*, 7(1):109–118, February 1997.

[MAR 98] F.C. MARTINS ET T.R. GARDOS. Efficient receiver-driven layered video multicast using h.263+ snr scalability. In *IEEE Intl Conf. on Image Processing, ICIP'98*, volume 3, pages 32–35, Chicago, IL, October 1998.

[MCA 90] A.J. McAULEY. Reliable broadband communications using a burst era- sure coding. In *Proc. ACM SIGCOMM'90*, pages 287–306, Philadelphia, Sep- tember 1990.

[MCC 96] S. MCCANNE, V. JACOBSON ET M. VETTERLI. Receiver-driven layered multicast. In *Proc. ACM SIGCOMM'96*, Stanford, CA, August 1996.
[MCC 97] S. MCCANNE, M. VETTERLI ET V. JACOBSON. Low-complexity video coding for receiver-driven layered multicast. *IEEE Journal on Selected Areas In Communications*, 15(6):983-1001, August 1997.

[OHM 94] J.R. OHM. Three-dimensional subband coding with motion compensation. *IEEE Trans. on Image Processing*, 3(5), November 1994.

[ORC 97] M.T. ORCHARD, Y. WANG, V.A. VAISHAMPAYAN ET A.R. REIBMAN. Redundancy rate-distortion analysis of multiple description coding using pairwise correlating transforms. *Proc. IEEE Intl. Conf. on Image Processing, ICIP'97*, I:608-611, October 1997.

[PAD 98a] J. PADHYE, V. FIROIU, D. TOWSLEY ET J. KUROSE. Modeling tcp throughput: A simple model and its empirical validation. In *Proc. ACM SIGCOMM'98*, 1998.

[PAD 98b] J. PADHYE, V. FIROIU, D. TOWSLEY ET J. KUROSE. Modeling tcp throughput: a simple model and its empirical validation. Technical Report TR98-008, UMASS CMPSCI, February 1998.

[PAR 88] C. PARTRIDGE, D. WAITZMAN ET S. DEERING. Distance vector multicast routing protocol. *RFC-1075*, November 1988.

[PAS 93] J.C. PASQUALE. Filter propagation in dissemination trees. In *4th workshop on NOSSDAV*, 1993.

[POS 80] J. POSTEL. User datagram protocol (udp). *RFC-768*, August 1980.

[RAO 85] K.R. RAO ET P.YIP. *Discrete transforms and their applications*. Van Nostrand Reinhold, 1985.

[REC 90] REC.601-2. *Encoding parameters of digital television for studios*. International Telecommunication Union, ITU-T, Geneva, 1990.

[RHE 97] I. RHEE, R. RAMMOHAN, S.Y. CHEUNG ET V.S. SUNDERAM. Achieving fairness and scalability in multicast video distribution using receiver-only rate control. In *Proc. IEEE Infocom'97*, March 1997.

[RHE 98] I. RHEE, N. BALLAGURU ET G.N. ROUSKAS. MTCP: Scalable TCP-like congestion for reliable multicast. Technical report, Tech. Rep. TR-98-01, Dpt. of Computer Science, North Carolina State University, January 1998.

[RIB 97] J. RIBAS-CORBERA ET S. LEI. *Rate Control for Low Delay Video Communication*. International Telecommunication Union - ITU-T, Document Q15-A-20, June 1997.

[RIZ 97] L. RIZZO. Effective erasure codes for reliable computer communication protocols. *Computer Communication Review*, April 1997.

[ROS 98] K. ROSE ET S. L. REGUNATHAN. Towards optimal scalability in predictive video coding. In *Proc. IEEE Intl Conf. on Image Processing, ICIP'98*, volume 3, pages 929-933, Chicago, IL, October 1998.

[RUF 95] M. J. RUF ET J. W. MODESTINO. Rate-distorsion performance for joint source and channel coding of images. In *Proc. Intl Conf. on Image Processing, ICIP'95*, volume 2, pages 77-80, October 1995.

[SAI 96] A. SAID ET W.A. PEARLMAN. A new, fast, and efficient image codec based on set partitioning in hierarchical trees. *IEEE Trans. on Circuits and Systems for Video Technology*, 6(3):243-249, June 1996.

[SAL 98] M.R. SALAMATIAN. Architecture d'une couche source-canal appliquée à la transmission multimédia tcp-courtoise. In *Proc. CORESA*, Junin 1998.
[SAN 94] J. SANDVOSS, J. WINCKLER ET H. WITTIG. Network layer scaling : Congestion control in multimedia communication with heterogeneous networks. Technical Report 43.9401, IBM European Networking Center, Heidelberg, 1994.

[SAY 91] K. SAYOOD ET J.C. BORKENHAGEN. Use of residual redundancy in the design of joint source and channel coders. *IEEE Trans. On Communications*, 39 :838-846, June 1991.

[SCH 96] H. SCHULTZRINNE, S. CASNER, R. FREDERICK ET V. JACOBSON. RTP : A transport protocol for real-time applications. Request for Comments 1889, IETF Network Working Group, January 1996.

[SER 98] S.D. SERVETTO, K. RAMCHANDRAN, V. VAISHAMPAYAN ET K. NAHRS-TEDT. Multiple description wavelet based image coding. In *IEEE Intl Conf. on Image Processing, ICIP'98*, pages 659-663, Chicago, IL, October 1998.

[SHA 93] J. M. SHAPIRO. Embedded image coding using Zero trees of wavelets coefficients. *IEEE Trans. on Signal Processing*, 41(12) :3445-3462, December 1993.

[SIM 83] B. SIMON. Priority queues with feedback. In *Journal of the ACM*, 1983.

[SIS 97] D. SISALEM, F. EMMANUEL ET H. SCHULZRINNE. The direct adjustment algorithm : A tcp-friendly adaptation scheme. Technical report, Tech. Rep. GMD Fokus, August 1997.

[SIS 98] D. SISALEM ET H. SCHULZRINNE. The loss-delay based adjustment algorithm : A TCP-friendly adaptation. In *Proc. NOSSDAV'98*, July 1998.

[SRI 97] M. SRINIVASAN ET R. CHELLAPPA. Joint source-channel subband coding of images. *Proc. IEEE Intl. Conf. on Acoustic Speech and Signal Processing, ICASSP'97*, April 1997.

[SRI 98] M. SRINIVASAN ET R. CHELLAPPA. Multiple description subband coding. *Proc. IEEE Intl. Conf. on Image Processing, ICIP'98*, pages 684-688, October 1998.

[TAN 92] N. TANABE ET N. FARVARDIN. Subbands image coding using entropy-coded quantization over noisy channels. *IEEE Journal on Selected Areas in Communications*, 10(5) :926-942, June 1992.

[TAN 94] T.K. TAN, K.K. PANG ET K.N. NGAN. A frequency scalable coding scheme employing pyramid and subband techniques. *IEEE Transactions on Circuits and Systems for Video Technology*, 4(2) :203-207, April 1994.

[TAN 98] W.T. TAN ET A. ZAKHOR. Error resilient packet video for the Internet. In *Proc. IEEE Intl Conf. on Image Processing, ICIP'98*, Chicago, IL, October 1998.

[TAN 99] W.T. TAN ET A. ZAKHOR. Multicast transmission of scalable video using receiver-driven hierarchical fec. In *Proc. Workshop on Packet Video, PVW'99*, New-York, NY, April 1999.

[TAU 94] D. TAUBMANN ET A. ZAKHOR. Multirate-3d subband coding of video. *IEEE Trans. on Image Processing*, 3(5) :572-588, September 1994.

[TEK 91] A. MURAT TEKALP. *Digital video processing*. Prentice hall, 1991.

[THA 97] J.Y. THAM, S. RANGANATH ET A.A. KASSIM. Highly scalable wavelet-based video codec. *IEEE Journal on Selected Areas In Telecommunications (Special Issue On Very Low Bitrate Coding)*, 1997.

[TOU 99] F. TOUTAIN. Tcp-friendly point-to-point video-like source rate control. Packet Video Workshop, April 1999.
[TUR 96a] T. TURLETTI ET C. HUITEMA. Rtp payload format for h.261 video streams. RFC-2032, October 1996.

[TUR 96b] T. TURLETTI ET C. HUITEMA. Videoconferencing in the internet. *IEEE/ACM Transactions on Networking*, 4(3):340–351, June 1996.

[TUR 98] T. TURLETTI, S. FOSSE-PARISIS ET J.C. BOLOT. Experiments with a layered transmission scheme over the internet. Technical Report RR-3296, INRIA Sophia-Antipolis, 1998.

[UCB a] UCB/LBNL. vat - lbnl audio conferencing tool. URL : http://www.nrg.ee.lbl.gov/vat/.

[UCB b] UCB/LBNL. vic - video conferencing tool. URL : http://www.nrg.ee.lbl.gov/vic/.

[VAI 93] V.A. VAISHAMPAYAN. Design of multiple description scalar quantizer. *IEEE Trans. on Information Theory*, 39(3):821–834, May 1993.

[VAI 94] V.A. VAISHAMPAYAN ET J. DOMASZEWICZ. Design of entropy constrained multiple description scalar quantizers. *IEEE Trans. On Information Theory*, 40:245–251, January 1994.

[VAI 96] V.A. VAISHAMPAYAN. Application of multiple description codes to image and video transmission over lossy networks. In *Proc. 7th Intl. Workshop on Packet Video, PVW'96*, pages 55–60, March 1996.

[WAN 97] Y. WANG, M.T. ORCHARD ET A.R. REIBMAN. Multiple description image coding for noisy channels by pairing transform coefficients. *Proc. IEEE Workshop on Multimedia Signal Processing*, pages 419–424, 1997.

[WAN 98a] H.A. WANG ET M. SCHWARTZ. Achieving bound fairness for multicast and tcp traffic in the internet. In *Proc. ACM Sigcomm'98*, September 1998.

[WAN 98b] Y. WANG ET Q.F. ZHU. Error control and concealment for video communication : A review. *Proceedings of the IEEE*, 86(5):974–997, May 1998.

[WEN 97] J. WEN ET J.D. VILLESANOR. A class of reversible variable length codes for robust image and video coding. In *Proc. Intl. conf. on Image Processing, ICIP'97*, pages 65–68, Santa Barbara, October 1997.

[YAN 97] K.H. YANG, A. JACQUIN ET N.S. JAYANT. Normalized rate-distortion model for h.263-compatible codecs and its application to quantizer selection. In *Proc. IEEE Intl. Conf. on Image Processing, ICIP'97*, pages 41–44, Santa Barbara, CA, October 1997.

[YAV 93] R. YAVATKAR ET L. MANOJ. Optimistic strategies for large-scale dissemination of multimedia information. In *Proc. ACM Multimedia'93*, Anaheim, CA, August 1993.

[ZEG 90] K. Zeger et al. A. Gersho. Pseudo-gray coding. *IEEE Trans. on Communications*, pages 2147–2156, December 1990.

[ZIM 80] H. ZIMMERMANN. Osi reference model - the iso model of architecture for open systems interconnection. In *IEEE Transactions on Communications*, volume 28, pages 425–432, 1980.
# Index

ADU, 14, 18–20

ALF, 14, 15, 61

ARQ, 53, 55

CIF, 7, 19

codage à descriptions multiples, 49,
51, 52

FEC, 47, 55, 56, 59, 60

H.261, 4, 5, 7–9, 13, 15, 17–20, 56,
57, 61

H.263, 5–7, 9, 33, 35, 39, 44, 45, 47,
48

ILP, 13, 14

INTER, 5, 8, 9, 11, 20, 44–46

INTRA, 5, 8, 9, 11, 19, 20, 33, 39,
44–46

MPEG-2, 35, 42

MPEG-4, 6–9, 12, 33, 35, 38, 39, 43,
44, 47, 48

NDU, 14, 19

QCIF, 7, 9

QoS, 3, 22

RTP, 4, 13, 15–20, 52, 59, 61

scalabilité SNR, 33, 39, 42

scalabilité spatiale, 33, 35, 42

scalabilité temporelle, 33

TCD, 5, 8, 11, 12, 35, 42, 43

TCP, 2, 14, 15, 21, 23, 25–28, 61

UDP, 14–16, 21, 24