Institut numerique

CHAPITRE 2 : STREAMING EN ENVIRONNEMENTS LÉGERS

2.1 Introduction

L’évolution rapide de la technologie dans le domaine de la communication sans fil, a permi à des usagers munis d’unités de calculs portables d’accéder à l’information indépendamment des facteurs : temps et lieu. Ces unités communiquant à travers leurs interfaces sans fil [63], sont diversement caractérisées : avec ou sans disque, des capacités de sauvegarde et de traitement plus ou moins modestes et alimentés par des sources d’énergie autonomes (batteries). L’environnement de calcul résultant est appelé environnement mobile (ou nomade). Cet environnement n’astreint plus l’usager à une localisation fixe, mais lui permet une libre mobilité tout en assurant sa connexion avec le réseau [5].

Ce chapitre a pour but de présenter l’environnement mobile, et les principaux concepts liés à ce nouvel environnement. Le chapitre introduit les caractéristiques et contraintes liées aux équipements légers (1) . Pour cela nous détaillons quelques notions nécessaires à la compréhension de ces systèmes.

2.2 Caractéristiques des équipements légers

L’évolution récente des moyens de la communication sans fil a permis la manipulation de l’information à travers des unités de calculs portables qui ont des caractéristiques particulières (une faible capacité de stockage, une source d’énergie autonome.) et accèdent au réseau à travers une interface de communication sans fil. Comparé avec l’ancien environnement (l’environnement statique ), le nouvel environnement résultant appelé l’environnement mobile, permet aux unités de calcul, une libre mobilité et il ne pose aucune restriction sur la localisation des usagers. La mobilité (ou le nomadisme ) et le nouveau mode de communication utilisé, engendrent de nouvelles caractéristiques propres à l’environnement mobile : une fréquente déconnexion, un débit de communication et des ressources modestes, et des sources d’énergie limitées.

2.2.1 Calcul

Le matériel utilisé par la plupart des appareils mobiles est fondamentalement différent du matériel utilisé par les ordinateurs personnels. Les raisons sont les besoins spécifiques en taille et fonctionnalités, notamment au point de vue de l’efficacité énergétique. La plupart des appareils mobiles sont basés sur des processeurs dits applicatifs, qui incluent non seulement une unité centrale (Central Processor Unit, CPU), mais aussi les contrôleurs mémoires et périphériques. Les processeurs applicatifs sont des plateformes complètes qui sont adaptées par le fabricant du mobile.

Ces adaptations incluent la taille de la mémoire, l’affichage, la connectivité (wifi, bluetooth, ect.), ainsi que des processeurs de signaux spécialisés (Digital Signal Processor, DSP) pour le traitement multimédia.

Les processeurs applicatifs les plus répandus utilisent des microprocesseurs basés sur l’architecture ARM (Advanced RISC Machine). ARM est une architecture RISC (Reduced Instruction Set Computer) 32 bits très performante et peu consommatrice, conçue spécialement pour appareils intégrés. Deux processeurs applicatifs largement utilisés dans les appareils mobiles sont l’Intel Xscale et le TI-OMAP de Texas Instrument. Ces 2 processeurs sont basés sur des microprocesseurs ARM et incluent des interfaces matérielles comme : USB (Universal Serial Bus), PCMCIA (Personal Computer Memory Card International Association), Cartes mémoires, Bluetooth, LAN sans fil (Wi-Fi) et réseaux cellulaires.

2.2.2 Affichage

L’écran constitue un critère de choix primordial dans le choix d’un équipement mobile. Il faut porter une attention toute particulière à la profondeur de couleur et à sa résolution. Ces deux caractéristiques influent énormément sur la restitution des images d’une séquence vidéo en streaming.

Les smartphones aujourd’hui ont une taille d’écran comprise entre 4,8” et 7” diagonal. Avec une résolution de 800×480 ou 1024×600 en mode paysage et une profondeur des couleurs minimum de 16 bits (65536 couleurs), Par défaut : 24 bits (16 million de couleurs).

Les CPUs des smartphones ont beau être montés en puissance ces deux dernières années, l’affichage reste une tâche lourde que le GPU pourrait faire de façon beaucoup plus efficace. C’était un des gros domaines dans lesquels Android était en retard par rapport à la concurrence : iOS est accéléré matériellement depuis le début et Windows Phone 7 également. Android comble désormais cette lacune et l’accélération matérielle va enfin permettre d’atteindre une fluidité exemplaire lorsque l’on naviguera au sein de l’OS. Cette délégation de traitement des tâches multimédias va à coup sûr influencer

2.2.3 Système d’exploitation

Tout comme un ordinateur, un cellulaire a besoin d’un système d’expoitation pour fonctionner. Pour en nommer quelques-uns : Windows, Symbian, Android, limo, iphone OS,WebOS et RIM OS (blackberry). Chacun de ces systèmes a des caractéristiques et une palette d’applications différentes. Parmi ses caractéristiques on peut citer entre autres :

Légèreté du noyau : Les téléphones portables ont des ressources limitées, comparativement aux ordinateurs classiques. Pour un coût donné et un niveau de technologie, les considérations de poids, de puissance, de dimension et d’ergonomie exigeront une pénalité dans les ressources calculatoires telles que la vitesse du processeur, la dimension de la mémoire, et la capacité du disque. Les unités/sortie sont elles aussi diminuées. Bien que les éléments mobiles s’améliorent avec une habilité absolue, ils seront toujours pauvres en ressources par rapport aux éléments statiques. Toutes ces contraintes ne permettent pas d’embarquer l’ensemble des fonctionnalités d’un système d’exploitation classique. La plupart des systèmes cités ci-haut repose sur un noyau LINUX allégé ; le support multitâche et multi-utilisateur : Hérité du très puissant, stable et célèbre OS LINUX en version allégée, les systèmes d’exploitation pour smartphones tels que ANDROID intègrent le partage de ressources (processeurs, processus, mémoires, fichiers) au travers de son système de gestion des utilisateurs. Depuis peu, des fonctionnalités telles que l’ordonnancement des processus ont vu l’intégration du multitâche dans les systèmes d’exploitation pour équipements légers.

2.2.4 Réseau

La connectivité sans fil est très variable dans la performance et la fiabilité. Les communications sans fil font face à plus d’obstacles que les communications filaires, ceci à cause de l’environnement ambiant qui interagit avec le signal, bloque son chemin et introduit souvent des bruits et échos. Comme résultat, les communications sans fil sont caractérisées par une faible bande passante, un taux d’erreur élevé, et de fréquentes déconnexions. Ces facteurs accroissent la latence de communication. La mobilité peut aussi entraîner la perte de connexion, ou tout au moins sa dégradation.

De même, le nombre de mobile dans une cellule varie dynamiquement, et une concentration importante d’utilisateurs peut entraîner un crash dans les performances du réseau. Dans le tableau suivant, nous avons fait un récapitulatif des technologies réseau sans fils avec leurs principales caractéristiques.

FIGURE 2.1 – Caractéristiques des connexions sans fil.

2.2.5 Source d’énergie Limitée

Les éléments mobiles comptent sur une source d’énergie finie. Les batteries sont de loin le point le plus critique de tout équipement mobile. Malgré les nombreux progrès réalisés, cela reste la grande technologique d’utilisation. La technologie des batteries a fait peu de progrès singulier. C’est surtout la consommation électrique des équipements qui a régulièrement diminué au cours du temps. Il reste que l’autonomie des équipements mobiles se compte toujours en nombre limité d’heures d’utilisation. Il faudra compter et économiser. Puis, il faudra inéluctablement repasser par la période de latence du temps incompressible de la recharge des batteries. Le second point faible concernant les batteries est leur durée de vie. Les batteries des équipements mobiles ont une durée de vie moyenne de 2 à 4 ans en général, avec un rendement de charge à la baisse de façon progressive et continue dans le temps.

2.3 Adaptation du Streaming

Dans le but de répondre au problème de variabilité de la bande passante des réseaux, un système de transmission doit adapter son taux de transmission au débit de transmission dicté par les conditions du réseau. Deux types d’adaptations ont été proposés dans la littérature, l’un est dit statique et l’autre est dit dynamique.

2.3.1 Adaptation statique

Plusieurs versions alternatives d’un même contenu, encodées à des débits différents, sont mises à disposition des utilisateurs pour s’adapter aux conditions de réseaux. Le débit de chaque version est correctement dimensionné pour être transmis sur une connexion donnée. La sélection entre les versions est effectuée par un utilisateur, avant le démarrage du streaming, en fonction de la connaissance qu’il a de la capacité de sa connexion. Bien que cette méthode soit facile à mettre en oeuvre, elle est très gourmande en matière d’espace de stockage. Dans un serveur employant cette approche, on peut trouver des versions associées aux niveaux de qualités suivantes :

Très basse qualité : elle correspond à un flux audiovisuel dont le débit est inférieur à 48 Kb/s. Elle est destinée à une connexion par modem classique 56 Kb/s ou à la téléphonie mobile de 2e génération (GPRS : 20 à 40 Ko/s).

Basse qualité : elle correspond à un flux audiovisuel dont le débit est inférieur à 160 Kb/s. Elle est destinée aux connexions ADSL de bas débit.

Qualité moyenne : elle correspond à un flux audiovisuel dont le débit est aux alentours de 320 Kb/s. Elle est destinée aux connexions ADSL normales (150 à 200 Ko/s) et aux mobiles de 3e génération (UMTS : 150 à 200 Ko/s). Pour ces derniers la qualité est très bonne, car la taille de l’écran est plus petite que celle d’un ordinateur conventionnel.

Bonne qualité : elle correspond à un flux audiovisuel dont le débit est environ 500 Kb/s. Elle est destinée aux connexions ADSL haut débit (4 Mb/s).

Haute qualité : elle correspond à un flux audiovisuel dont le débit est supérieur à 1 Mb/s. Elle est destinée aux connexions ADSL très haut débit (supérieur à 8 Mb/s). L’architecture de cette solution donnée par le schéma de la figure 2.2.

FIGURE 2.2 – Architecture adaptative multi-fichiers sans switching.

2.3.2 Adaptation dynamique

Le gestionnaire de transmission se charge de diffuser des streams adaptés en temps réel aux différentes connexions des utilisateurs. Au fur et à mesure de la diffusion, des données de contrôle sont envoyées au serveur pour l’informer des conditions de réception du stream. Le gestionnaire de transmission utilise ces données pour estimer la bande passante disponible et s’adapte en conséquence. Si la connexion se détériore, causant une baisse du taux de transfert, le contenu continuera à être livré mais avec une moindre qualité évitant ainsi des interruptions de diffusion. Si en revanche la connexion devient plus fluide, la qualité du contenu s’améliorera.

L’adaptation peut être spatiale, en réduisant le nombre de couleurs et/ou les dimensions des images dans une vidéo par exemple, ou temporelle, en réduisant par exemple le nombre des images affichées par seconde. La conception de tels mécanismes d’adaptation est compliquée par des exigences contradictoires : il faut réagir rapidement aux changements fréquents du réseau, mais on souhaite des changements peu fréquents dans la qualité des streams perçue par le spectateur. On distingue quatre méthodes pour adapter dynamiquement les streams :

Commutation entre versions : Dans cette approche appelée aussi « Multiple File Switching », le serveur contient plusieurs versions, associées à différentes qualités pour chaque contenu audiovisuel, comme dans le cas de l’adaptation statique. Chacune des qualités est découpée en blocs indépendamment décodable appelé chunk. Chaque bloc est référencé par une URL.

Le serveur et le client partagent donc une table d’URL. Dans ce modèle, l’adaptation est faite du côté client. En effet, en fonction de la qualité du réseau, le client fait une requête au serveur demandant un bloc précisé par son url. Ce bloc peut provenir soit de Q1, Q2 ou Q3. Cette solution optimise déjà bien la transmission adaptative et est par ailleurs la plus utilisée. Néanmoins, elle pose un certain nombre de problèmes et de limites : premièrement le problème d’espace de stockage posé par la solution précédente (existence de plusieurs versions du même fichier chez le serveur) n’est pas résolu. En plus, les vidéos pré-encodées.

Ceci pose une limite si jamais les conditions réseau venaient à se dégrader, au point de ne pas supporter la plus basse qualité disponible. Le client bloquerait alors. Pour essayer de résoudre ce type de problème, il faudrait au préalable faire une étude statistique pointilleuse afin d’obtenir des paramètres optimaux pour un encodage plus adapté aux variations incontrôlables du réseau. Un autre problème de ce modèle (figure 2.3) est la surcharge du client. C’est ce dernier qui est responsable de l’adaptabilité.

 

FIGURE 2.3 – Architecture adaptative multi-fichiers avec switching.

Des techniques telles que Intelligent Streaming deMicrosoft® ou SureStreamde RealNetworks®, utilisent le principe expliqué précédemment pour commuter en temps réel entre les versions. Cette dernière recommande le calcul suivant pour choisir la version à streamer :

– 75% de la bande totale disponible pour les connexions analogiques telles que les modems ;
– 90% de la bande totale disponible pour les connexions haut débit telles que DSL.

Transcodage du flux : Dans cette approche, appelée aussi façonnage du flux (« rate shaping ») ou mise en forme du flux, on vise à ajuster le débit du stream en l’encodant à nouveau [62].

L’inconvénient de cette technique est qu’elle induit des calculs coûteux, mais elle nécessite moins d’espace de stockage que l’approche précédente. Cette solution est radicalement différente des deux autres. Car ici on a qu’un seul fichier qui est encodé dynamiquement en fonctions des conditions du réseau (cf figure 2.4).

Utilisation de codages adaptatifs : L’utilisation de l’encodage hiérarchique de contenu audiovisuel (cf. Chapitre précédant) permet d’adapter le débit d’un contenu aux conditions du réseau [61]. Afin de réduire la taille du stream, et par conséquent son débit, et de s’adapter donc aux dégradations de la bande passante, on peut abandonner des couches si nécessaire, mais pas au hasard. Il faut abandonner d’abord la dernière couche d’amélioration, mais jamais la couche de base. En effet, si la couche de base n’est pas reçue, alors les couches suivantes ne sont d’aucun intérêt (elles ne peuvent qu’améliorer la couche de base). En général, on cherche à faire passer un maximum de couches dans la bande passante disponible. L’encodage par descriptions multiples (cf. Section I.1.2.2) peut, lui aussi, être utilisé pour adapter dynamiquement le contenu. En effet, les descriptions peuvent être abandonnées partout où cela peut s’avérer nécessaire : dans l’émetteur si la largeur de bande est inférieure aux prévisions, dans le récepteur s’il n’est pas nécessaire, ou pas possible, d’utiliser toutes les descriptions reçues.

FIGURE 2.4 – Architecture de streaming avec encodage à la volée.

Transmodage du flux : Le transmodage est une technique réservée pour les cas extrêmes où le réseau ne permet pas de transférer les données sous leur forme initiale. Elle consiste à transformer complètement la nature des données [53]. Des exemples d’une telle transformation peuvent être : un discours audio en texte, une vidéo en diaporama d’images ou même en un résumé textuel, etc.

2.4 Exemple

Dans cette section nous passons en revue les solutions de streaming vidéo grand public implémentées et déployées actuellement. Nous verrons entre autres les solutions proposées par Microsoft, Apple et Adobe.

2.4.1 Microsoft Smooth Streaming + client Silverlight

Bien qu’utilisable avec d’autres protocoles, c’est généralement en HTTP que MicroSoft offre sa technologie de streaming adaptatif

Principe :

– Fichier contigu pour le stockage (multi-fichiers ou MBR) ;
– Fragmentation de la vidéo en objets plus petits (chunks) de 2 à 4 secondes pour la distribution (en fonction du GOP par ex.) ;
– Une application cliente chargée de gérer l’adaptation du streaming à l’aide d’un fichier de signalisation ayant une extension en *.ism et *.ismc.

L’adaptative streaming : côté serveur

Côté serveur, le streaming adaptatif, c’est :

– Fournir aux clients une table d’adresses (URL) ;
– Chaque adresse (URL) pointe vers un intervalle de temps précis (colonne), d’une qualité spécifique (lignes), d’un même contenu. Microsoft Utilise un fichier XML (*.ism) afin de communiquer le tableau des URL au client et permettant d’identifier quels codecs, quels débits et quelles résolutions seront utilisés pour chaque fragment (cf figure 2.5).

FIGURE 2.5 – L’adaptative streaming : côté Serveur[46].

– Chaque chunk contient de l’audio et de la vidéo dans un conteneur MP4 fragmenté (cf figure 2.6) ;
– Tous ces renseignements sont mis en oeuvre dans le client.

L’adaptative streaming : côté client

Après avoir téléchargé la table d’URL (fichier en *.ism) :

– Le client analyse son propre système et ses connexions pour sélectionner l’URL appropriée de la prochaine séquence ;

FIGURE 2.6 – Format de fichier MP4 fragmenté[46].

– Auparavant, il doit démarrer la lecture du 1er intervalle de temps avec le niveau de qualité le plus bas, afin d’obtenir le meilleur temps d’accès ;
– Durant ce 1er téléchargement, la bande passante disponible va être estimée (ex : 1er bloc de 325 ko téléchargé en 1.3 sec, la BP sera estimée à 2 Mb/sec) ;
– Le client passe alors à la qualité disponible la plus élevée pour son cas ;
– Audio et vidéo sont ainsi demandés séparément et le client peut accéder par système commuté vers différentes qualités ;
– Le player silverlight ne supporte que les formats H264 et VC-1 en vidéo, ainsi que AAC etWMA en audio.

L’adaptative streaming : le switching

Pour arriver à un switching fluide entre les différentes séquences, il y a certaines exigences.

– Chaque séquence (chunk) doit être totalement autonome.
– Les algorithmes d’encodage utilisant la compression inter trames, réutilisent des morceaux d’images précédentes pour construire l’image actuelle, en transmettant seulement les différences.

Le client aura donc besoin d’accéder à l’image de référence précédente. Ainsi, chaque séquence doit commencer par une image I (début d’un GOP) et se terminer par la dernière image d’un GOP ;
– La longueur du GOP doit donc être équilibrée. Plus long est le GOP, plus la compression sera élevée et plus lent sera le switching ;
– L’adaptation définit seulement le format du fichier sur le réseau ;
– Les protocoles utilisés s’assurent que tous les chunks soient individuellement décodables.

FIGURE 2.7 – L’adaptative streaming : côté client[46].

Architecture :

L’architecture du système de streaming adaptatif proposée par Microsoft est donnée par le schéma de la figure 2.8.

FIGURE 2.8 – Microsoft Smooth Streaming Architecture[46].

2.4.2 Implémentation Apple

– La table des URL est fournie à partir d’un fichier texte appelé « playlist » ;
– Le niveau supérieur de la playlist contient la liste des qualités disponibles ;
– Avec pour chacune d’elles une sous-playlist ;
– La sous-playlist énumère les URL de chaque chunk ;
– Ces chunks contiennent à la fois audio et vidéo dans un format Mpeg-2 TS.
– La spec permet n’importe quel codec vidéo ou audio, mais actuellement uniquement H264, AAC et MP3

L’architecture proposée par Apple est donnée par la figure 2.10

FIGURE 2.9 – Apple Live Streaming Basic Architecture[46].

2.4.3 Implémentation Adobe

Adobe utilise aussi un fichier XML afin de communiquer au client le tableau des URL (*.f4m).

– Il a sa variante MP4 (F4F) ;
– Les métadatas sont aussi fragmentées ;
– Le flash player (client) ne supporte que H264, VP6, AAC et MP3 . L’architecture proposée par Adobe est donnée par la figure 2.10. plusieurs autres implémentations existent dans le domaine de l’adaptation du streaming aux conditions réseau. On peut citer entre autres les sites de diffusion vidéo YouTube et Dailymotion [67, 31, 32].

FIGURE 2.10 – Adobe Flash Dynamic Streaming Architecture[46].

2.5 Critique

Plusieurs implémentations de solutions de streaming vidéo adaptatif existent. Dans cette soussection, nous nous intéressons à une description des limites des solutions de streaming adaptatif les plus populaires.

Adaptation dynamique avec Commutation entre versions Cette solution optimise déjà bien la transmission adaptative et est par ailleurs la plus utilisée (YouTube et Dailymotion). Néanmoins, elle pose un certain nombre de problèmes et de limites : premièrement le problème d’espace de stockage posé par la solution d’adaption statique (existence de plusieurs version du même fichier chez le serveur) n’est pas résolu. En plus, les vidéos sont pré-encodées ; Ceci pose une limite si jamais les conditions réseau venaient à se dégrader au point de ne pas supporter la plus basse qualité disponible. Le client serait alors bloqué. Pour essayer de résoudre ce type de problème, il faudrait au préalable faire une étude statistique pointilleuse afin d’obtenir des paramètres optimaux pour un encodage plus adapté aux variations incontrôlables du réseau. Un autre problème de ce modèle est la surcharge du client. C’est ce dernier qui est responsable de l’adaptabilité.

Adaptation dynamique avec avec encodage à la volée Bien que donnant une solution à l’adaptabilité dynamique au réseau, cette solution pose néanmoins un gros problème d’applicabilité.

Car , le coût en capacité de calcul est énorme. Ne perdons pas à l’esprit que l’encodage et le décodage suivent un processus asymétrique (le temps de décodage doit être plus court que celui de l’encodage. Car le lecteur doit être capable de restituer les images de la vidéo quasi instantanément et le serveur doit encoder de façon optimale la vidéo pour permettre un passage fluide à travers le canal de communication). Donc, si la machine serveur n’est pas extrêmement puissante (CPU et mémoire), cette technique est difficilement envisageable.

FIGURE 2.11 – processus de compression- décompression

2.6 Conclusion

Les téléphones portables présentent des restrictions aussi bien dans les moyens de communication que dans le matériel utilisé. Ces derniers sont essentiellement pauvres en ressources. Les réseaux de communication sans fil utilisés par ces terminaux présentent des différences notoires par rapport aux réseaux filaires. De plus, les performances observées sur le lien sans-fil sont soumises à d’importantes variations occasionnées par l’environnement proche comme les interférences et les déconnexions dues à des éléments physiques, des changements de cellules ou réseau. Les débits de ces réseaux restent aussi insuffisants : 9,6 Kbit/s pour le GSM, 114 Kbit/s pour le GPRS, et au plus 2Mbit/s pour l’UMTS [47], pour ne citer que ceux-ci.

Ces caractéristiques conduisent à la nécessité de reconsidérer les applications devant s’exécuter ici. Par exemple, le multimédia nécessite des débits importants, notamment en ce qui concerne les applications de streaming. Il est donc primordial de fournir des modèles et des techniques de conceptions destinées à un tel contexte. Plusieurs solutions ont été proposées pour résoudre le problème d’adaptabilité des streamings vidéos aux conditions réseaux.

Mais, comme il a été illustré dans ce chapitre, toutes présentent des limitations notoires. Ces limitations vont nous conduire à la proposition d’une nouvelle approche pour la résolution du problème d’adaptabilité : l’encodage multi-couches des contenus vidéos.

1. Léger dans ce mémoire tient en lieu et place de “mobile” et inversement !

Page suivante : CHAPITRE 3 : ADAPTATION DE STREAMING PAR ENCODAGE MULTICOUCHES

Retour au menu : Adaptation de flux vidéo en environnements limités et dynamiques : Proposition d’une solution par encodage vidéo multicouche