• Aucun résultat trouvé

La QoS applicative pour la transmission vidéo

Chapitre 2 L’état de l’art

2.2 Les limites de l’architecture en couches pour intégrer les réseaux IEEE 802.11 et

2.2.5 La couche Application

2.2.5.3 La QoS applicative pour la transmission vidéo

La transmission des paquets vidéo doit considérer les paramètres principaux qui caractérisent les réseaux IP, à savoir le débit, les pertes de paquets, le délai de bout-en-bout et la gigue. Durant ces dernières années, plusieurs techniques ont été utilisées par les applications multimédia afin de palier aux variations de ces facteurs et de minimiser leurs effets sur la qualité de la vidéo perçue par le récepteur. La Figure 2-8 présente une taxonomie de ces mécanismes qui seront détaillés dans la suite de cette section.

Application QoS Jitter Bandwidth Packet loss Simulstore Stream Switching Transcoding SVC adaptation MDC adaptation Data Interleaving ARQ UEP FEC Hybride ARQ/FEC Errors concealmen t Error resilient

video coding Buffering

Figure 2-8 : Taxonomie de la QoS au niveau applicatif

2.2.5.3.1 L’adaptation au débit réseau (Bandwidth)

Ces mécanismes permettent principalement d’adapter le débit de la vidéo en fonction du débit disponible dans le réseau. Ce dernier est estimé grâce aux algorithmes de contrôle du débit présentés dans la section 2.2.4.1. Une brève description de chaque mécanisme est donnée ci-dessous :

• Simulstore [100] : La solution Simulstore propose de stocker sur un serveur plusieurs flux d’un même contenu avec différentes caractéristiques spatiales, temporelles et qualité (SNR). Le bon flux est choisi et transmis en fonction du débit de l’utilisateur. Cependant, cette solution est statique et ne peut pas s’adapter au changement dynamique du débit durant la transmission. • Stream switching [101][102][103] : Le stream switching est une extension du simulstore pour

permettre le basculement d’un flux vers un autre durant la transmission afin de répondre au changement dynamique du débit dans le réseau. Pour assurer la synchronisation des flux, le basculement est effectué sur les images I ou sur des images de basculement spéciale (SP-frame). Le principal inconvénient de cette solution est qu’elle nécessite un espace de stockage important.

• Transcoding [104][105][106] : Le trancoding permet de transformer une vidéo d’un format vers un autre en changeant la taille de l’image, le nombre d’images par seconde, la qualité de la vidéo ou le débit. Cette transformation peut être effectuée en gardant le même codage vidéo (de H.264 vers H.264) ou bien en basculant vers un autre format de codage (de MPEG-2 vers H.264). Cette solution ne nécessite pas un grand espace de stockage, par contre, elle ne supporte pas la monté en charge puisqu’elle consomme énormément de ressource de calcul pour exécuter le transcodage. De plus, elle introduit une latence supplémentaire qui peut être contraignante pour les services multimédia interactifs.

• SVC adaptation (Sclable Video Coding) [99] : Le codage hiérarchique, décrit dans la section 2.2.5.2, permet le codage de vidéo en plusieurs couches hiérarchiques, une couche de base et plusieurs couches d’amélioration. L’adaptation s’effectue simplement en supprimant une ou plusieurs couches d’amélioration. Plusieurs travaux se sont intéressés à ce type d’adaptation qui peut supporter la monté en charge [107][108][109]. L’inconvénient du codage hiérarchique est

la dépendance des couches supérieures des couches inférieures lors du décodage, ce qui nécessite la bonne réception des couches inférieures.

• MDC adaptation (Multiple Description Coding) : Avec le codage MDC, une vidéo est codée en plusieurs descriptions, ou flux, indépendants. Le MDC possède deux propriétés importantes : (1) Chaque flux peut être décodé indépendamment des autres en donnant une certaine qualité de vidéo, (2) les informations des flux sont complémentaires ce qui permet d’augmenter la qualité de la vidéo en augmentant le nombre de flux décodés simultanément. Plusieurs algorithmes de codage MDC ont été proposés par plusieurs travaux [110][111][112]. D’autres travaux [113][114][115][116] se sont intéressés à l’exploitation de ce type de codage dans des architectures de transmission vidéo.

2.2.5.3.2 La gestion des paquets perdus

Les pertes de paquets dégradent considérablement la qualité de la vidéo décodée à la réception. Cette dégradation est accentuée par l’effet de propagation d’erreurs [117] due à la dépendance du décodage des images I, P et B. En effet, la perte d’un paquet de l’image I provoque une erreur sur cette image et aussi des erreurs sur les images P et B qui appartiennent au même GOP (Groupe of Pictures). Ci-dessous, nous présentons les principaux mécanismes qui ont été développés afin de faire face aux pertes des paquets et de minimiser leur impact sur la qualité de la vidéo.

• Data Interleaving [118]: L’objectif de cette technique est de minimiser l’effet des pertes consécutives sur la qualité de la vidéo décodée côté récepteur. Pour cela, une réorganisation des paquets vidéo est effectuée avant leur transmission, au niveau de l’émetteur, afin d’éloigner les paquets séquentiellement proches. En cas de perte séquentielle de plusieurs paquets durant la transmission, cette perte sera répartie sur l’ordre original et minimisera la dégradation de la qualité de la vidéo. Dans [119], l’IETF propose un modèle d’interleaving pour le transport des flux MPEG-4. L’avantage de cette technique est qu’elle ne consomme pas de débit supplémentaire. Par contre, elle introduit un délai dû à la réorganisation des paquets vidéo du côté émetteur et du côté récepteur.

• ARQ (Automatic Repeat reQuest)[120][121] : La retransmission des paquets vidéo perdus est considérée comme un mécanisme simple. L’utilisation d’ARQ suppose la présence d’une voie de retour entre l’émetteur et le récepteur. ARQ peut fonctionner suivant deux modes : (1) ARQ côté émetteur en utilisant les acquittements positifs (les paquets perdus sont détectés par l’émetteur) et (2) ARQ côté récepteur en utilisant les acquittements négatifs (les paquets perdus sont détectés par le récepteur). Cependant, la retransmission introduit une latence supplémentaire (temps de retransmission additionné au temps de réordonnancement des paquets). De plus, la mise en place d’un mécanisme ARQ pour les transmissions multicast est complexe et sa mise à l’échelle est limitée à cause du nombre d’acquittements que peut recevoir le serveur.

• FEC (Forward Error Correction) : Le mécanisme FEC ajoute des paquets de redondance aux flux de paquets original, au niveau de l’émetteur, afin de permettre au récepteur de reconstruire les paquets perdus [122][123]. Les paquets redondants sont générés par des codes correcteurs traditionnels (XOR, Reed Solomon, etc.) en considérant un paquet comme étant un

symbole. Dans le RFC [124], l’IETF propose une extension de l’en-tête RTP assez flexible pour supporter l’implémentation de n’importe quel mécanisme FEC. Une voie de retour n’est pas nécessaire dans un mécanisme FEC, ce qui le rend idéal pour les transmissions multicast et les transmissions temps réel. L’interleaving FEC [125][126] est une variante de FEC qui ajoute de la redondance sur des paquets qui ont subi un interleaving. Ceci permet d’additionner les avantages de l’interleaving et de la FEC pour faire face à la perte de plusieurs paquets consécutifs. Le principal inconvénient de la FEC est la consommation additionnelle du débit due à l’ajout de données redondantes en plus du délai supplémentaire introduit par le regroupement des blocs FEC au niveau du récepteur.

• UEP (Unequal Error Protection) : L’UEP offre une protection différente des paquets vidéo. Il se base principalement sur le codage hiérarchique où la couche de base doit être mieux protégée contre les pertes, comparée aux couches d’amélioration. La protection des paquets peut être assurée en utilisant un mécanisme FEC avec des taux de redondance différents suivant l’importance des paquets [127][128][129] ou/et un mécanisme ARQ en utilisant une retransmission sélective [130][131].

• Hybride ARQ/FEC [132][133][134] : Cette solution représente une combinaison de la FEC au niveau bit et de l’ARQ au niveau paquet. Il existe deux schémas pour cette combinaison : le schéma de type I et le schéma de type II. Pour le type I, le code de détection et le code de correction sont présents dans chaque transmission et retransmission. Tandis que pour le type II, les paquets sont transmis uniquement avec le code de détection d’erreur. En cas d’erreur, la retransmission inclut uniquement le code correcteur d’erreurs qui est combiné au paquet erroné pour reconstruire le paquet original.

• Errors concealment [135]: Cette technique opère au niveau image en essayant d’estimer les informations, ou pixels, perdues à partir d’informations correctement reçues. Pour cela, elle se base sur la forte corrélation spatiale est temporelle qui existent dans les images vidéos et qui est exploitée par les algorithmes de codage. L’estimation d’informations perdues se base sur deux approches : l’interpolation spatiale et l’interpolation temporelle. L’interpolation spatiale suppose que l’image est naturellement lisse (smooth). Donc, les pixels perdus peuvent être reconstruits à partir de pixels adjacents. Par contre, l’interpolation temporelle suppose que l’image est lisse (smooth) durant le temps. Ainsi, un groupe de pixels perdus sur une image sera remplacé par le groupe de pixels se trouvant au même endroit dans l’image précédente. Une variante plus sophistiquée de cette approche utilise une compensation de mouvement pour estimer l’emplacement du groupe de pixels sur l’image au lieu de le dupliquer au même emplacement. Cette variante se base sur les informations du vecteur de mouvement utilisé pour le décodage. Cependant, la technique du « errors concealment » est limitée à la perte d’une partie de l’image et elle ne peut pas résister à la perte de plusieurs images consécutives.

• Error resilient video coding [136]: Ces mécanismes sont généralement intégrés aux algorithmes de codage vidéo afin d’offrir une certaine résistance aux erreurs. Le principal problème qui peut se produire durant le décodage est la perte de synchronisation du flux décodé. Les mécanismes qui permettent une resynchronisation du décodage sont donnés ci-dessous :

- Resync Markers : se sont des marqueurs de synchronisation insérés dans le flux afin de permettre la reprise du décodage en cas d’erreur.

- Reversible Variable Length Codes (RVLCs) : Ils permettent un décodage inversé du flux afin d’exploiter les informations se trouvant entre une erreur et un marqueur de synchronisation.

- Data Parititioning : Il permet de placer les informations importantes pour le décodage d’un flux juste après un marqueur de synchronisation. Ceci offre une meilleure protection pour ces informations.

- Application Level Framing (ALF) : Il définit la décomposition d’un flux en paquets afin d’être transmis. Une décomposition adéquate permet de réduire l’effet de perte de paquets. Cette procédure est effectuée au niveau RTP. L’IETF a défini des formats de paquets RTP pour plusieurs codecs : MPEG-1/MPEG-2[137], MPEG-4 [138], H.264 [139].

2.2.5.3.3 La gestion de la latence et de la gigue

Au niveau applicatif, il n’existe pas de mécanisme qui permet de diminuer la latence des transmissions. Cette diminution est prise en charge par des mécanismes de QoS au niveau réseau et au niveau MAC exposés respectivement dans les sections 2.2.2.3 et 2.2.3. Par contre, pour faire face à la gigue qui représente la variation des délais de réception des paquets, un buffer est utilisé au niveau du récepteur afin d’absorber cette variation. L’utilisation d’un buffer permet le fonctionnement des autres mécanismes de QoS, présentés précédemment, comme l’ARQ, la FEC, etc. Ainsi, la taille du buffer est un compromis entre la latence introduite par ce dernier et la fiabilité de la transmission. Plusieurs travaux se sont intéressés à l’estimation de la gigue et à l’élaboration de modèle mathématique pour une taille de buffer adaptative [140][141][142].

2.2.5.4 Discussion

Jusqu'à présent, les applications et les protocoles de niveau applicatif se contentaient d’exploiter les services qui sont disponibles au niveau des couches inférieures. Étant donné que les conditions de transmission sont dynamiques (débit, taux de perte, latence, gigue), les applications multimédia subissent les variations de ces conditions avec des réactions limitées à leur niveau en utilisant des mécanismes de QoS présentés précédemment. De nouvelles interactions entre les couches applicatives et les couches réseaux permettront à ces mécanismes d’être plus dynamiques et plus adaptatifs pour une configuration adéquate suivant l’état instantané du réseau. De plus, les applications multimédia doivent être informées des mécanismes QoS déployés dans le réseau pour assurer une certaine QoS aux paquets transportant des informations importantes, par exemple une correspondance entre la couche de base dans le codage hiérarchique et les classes de service prioritaires au niveau IP et au niveau MAC.

Ainsi, les futures applications multimédia ne doivent plus être passives et doivent interagir avec les couches inférieures, d’une part, pour les informer de leurs besoins et, d’autre part, pour s’adapter aux conditions de transmission. Cette adaptation doit être dynamique et transparente par rapport à l’utilisateur.

2.3 Les architectures Cross-layer pour les réseaux sans fil