Les solutions de streaming : Streaming local Steam et Nvidia GameStream en test

Publié le 26/07/2016 par
Imprimer

Encodage H.264, bande passante et WiFi

Comme nous l'indiquions un peu plus tôt, les solutions que nous testons exploitent les API d'encodage H.264 accélérées présentes dans les processeurs et cartes graphiques. Ces solutions ne sont pas nouvelles, nous avions eu l'occasion de les évoquer il y a quelques années dans cet article et plus récemment dans les tests des nouvelles architectures processeurs comme Skylake.

Certaines de ces solutions sont rapides, très rapides même avec un encodage plus rapide que le temps réel. Mais attention, leur mode de fonctionnement ne correspond pas à ce dont on a besoin.

En effet, une des particularités de H.264 est qu'il est capable pour compresser, de faire références à différents types d'images. Les images sont découpées en blocs et les frames peuvent contenir des blocs de différents types. En fonction des types de blocs qu'elles contiennent, on leur donnera un nom différent.

Vous pouvez retrouver une explication plus complète dans cet article , mais pour rappel, on retrouve en H.264 trois types d'images (appelées frames) :

  • I-Frame : Une image qui ne fait référence qu'a elle même, et peut être décodée sans informations supplémentaires. On parle pour les blocs qui la composent d'intra-prédiction.
  • P-Frame : En plus d'autoriser des blocs intra-prédit, les blocs d'une P-Frame peuvent également faire référence à une image précédente. On parle d'inter-prédiction (prédiction d'une image vers une autre).
  • B-Frame : En plus d'autoriser les blocs intra-prédit et inter-prédit, les blocs des B-Frames peuvent faire référence à une image future.

Ce schéma résume la situation :

Les B-Frame sont un point important de H.264 et les encodeurs matériels les utilisent, comme le montre cette image issue d'un article précédent sur le sujet :


En bleu, les blocs inter prédits (prédiction temporelle, par rapport à une image précédente), en orange/rouge, les blocs intra prédits (prédiction spatiale, à l'intérieur de l'image). En vert, les blocs qui viennent du futur : ils font référence à une image suivante !

Vous l'avez peut être deviné, les blocs B vont être problématiques dans notre application. En effet, pour pouvoir décoder une B-Frame, il faut disposer des images futures à laquelle elle fait référence ! Evidemment les références sont toujours proches, on ne va pas faire référence à une image à la fin du film pour une image au début : une fenêtre de quelques images est autorisée, et le décodeur s'assurera d'avoir les images prêtes à l'avance. En pratique, cela impose un délai entre le décodage de l'image et son affichage. Sur un tuner TV, travailler sur un buffer d'une seconde d'avance n'est pas un problème. Pour du streaming de jeu, c'est bien évidemment impossible ! D'autant qu'il faudra rajouter la même fenêtre au niveau de l'encodage !

Pour parer à ce problème, les API des divers constructeurs proposent un mode de fonctionnement spécifique qualifié de "basse latence". En pratique ces modes désactivent l'utilisation des B-Frames, limitent la quantité de blocs "I" (ils sont plus gourmands en bande passante et en temps d'encodage), et limitent la nombre d'images référençables en arrière. Vous pouvez trouver un exemple de ces limites dans le cas d'Intel sur un article disponible sur leur site . On y apprends par exemple qu'ils recommandent d'encoder en ne faisant des inter-références qu'a une seule image en arrière !

Ces limites vont bien évidemment avoir un impact important sur la qualité visuelle de l'image. Pour compenser, une solution utilisée à la fois par Valve et Nvidia est d'augmenter le débit.

Bande passante

Nous avons mesuré la bande passante utilisée par les différentes solutions, nous mesurons le débit moyen sur 10 secondes lors d'une scène complexe sous Project Cars :


[ Mo/s ] [ Mbit/s ]

Nous indiquons la bande passante en Mo/s et en Mbit/s, la seconde étant plus généralement utilisée pour évoquer les bitrates des vidéos. Première constatation donc, ces débits sont excessivement élevées, autour de 30 Mbit/s, ce qui correspond au débit moyen d'un Blu-Ray !

On notera que pour GameStream, Nvidia vise un peu au dessus de Valve mais les débits restent comparables. Il n'y a pas de réglage de débit possible pour l'instant chez Nvidia. Chez Valve, nous vous indiquons ici le débit du mode Automatique par défaut.

Si vous vous demandez pourquoi Valve a choisi ce qui ressemble a une limite de 30 Mbit/s pour tous les encodeurs, la réponse est a chercher dans Steam Link : c'est une limitation du SoC Marvell 88DE3005 que nous a confirmé Valve, impossible d'aller au delà. Résultat la valeur par défaut est appliquée aussi pour le streaming local. Quid du mode illimité ?


[ Mo/s ] [ Mbit/s ]

La bande passante explose et l'on dépasse les 100 Mbit/s. Le Gigabit Ethernet sera largement conseillé pour exploiter ce mode.

Et en WiFi ?

Nous en parlions dans la section consacrée à la latence, l'utilisation du WiFi pour le streaming pose un problème a cause de la stabilité, ou non, de la connexion. En effet, si l'influence sur la latence est minimal, la nécessité de la minimiser empêche d'utiliser des solutions de mitigations classiques utilisées par exemple par les lecteurs de vidéo distants (comme par exemple Kodi ou Plex). Pour limiter l'impact de l'instabilité du WiFi, les logiciels de ce type utilisent un buffer de plusieurs secondes qui permet de lisser les éventuelles congestions réseaux. Une technique qui, a l'image des B-Frames n'est pas utilisable.

Le problème du WiFi vient avant tout des bandes de fréquences utilisées, 2.4 GHz et 5 GHz qui peuvent également l'être par d'autres appareils dont les radios (mais pas seulement, comme le montre cette étude d'Intel... sur les câbles USB 3 ! ) peuvent interférer. Résultat, votre point d'accès surveille d'éventuelles interférences et attendra - si elles sont courtes - qu'elles s'arrêtent pour envoyer les paquets. Si les interférences persistent des paquets peuvent être perdus et devront être renvoyés.

S'ajoute aussi la problématique en milieu urbain des réseaux de vos voisins. Les points d'accès vont de la même manière se surveiller et se synchroniser pour éviter de se marcher sur les pieds. Une politesse qui à du sens quand l'idée du WiFi est de transférer rapidement, en une fois, des données avant de libérer les ondes. Transférer des grandes quantités de données en continu, bien que possible, n'est pas le cas d'utilisation idéal du WiFi.

Cela veut il dire qu'il faudra oublier totalement l'idée de streamer en WiFi ? Non, mais il faut être conscient qu'en fonction de votre domicile et de votre installation, les résultats peuvent être très variables !

Pour vous donner une idée de la qualité de votre réseau, un test simple consiste a copier un gros fichier entre les deux machines en regardant en temps réel le débit (soit via le moniteur de ressources de Windows ou tout autre logiciel de ce type). Plus que le débit, qui devra être au dessus de 4 Mo/s (ou 13 Mo/s si vous visez le mode illimité dans Steam), c'est sa stabilité dans la durée qui va compter. Si vous voyez des moments de pause dans la copie ou des baisses, il y a de fortes chances pour que l'expérience de streaming soit imparfaite. Dans le cas de Steam, si ce dernier détecte que votre bande passante pose problème, il pourra réduire le débit ou le framerate, ce qui aura dans les deux cas un effet assez désastreux même s'il permet de parer à des problèmes courts.

Pour terminer, on vous donnera quelques conseils pour maximiser vos chances :

  • Privilégiez le 5 GHz lorsque possible. Le conseil vaut particulièrement en milieu urbain ou la bande de fréquence des 5 GHz est beaucoup moins utilisée (même si elle commence à être déployée de plus en plus dans les box des fournisseurs d'accès Internet). L'inconvénient du 5 GHz est sa portée réduite, il traverse plus difficilement les murs ce qui peut poser problème en fonction de l'emplacement de votre matériel. Sa courte portée joue cependant en votre faveur en évitant également les interférences qui viennent de trop loin.

  • Vérifiez les canaux utilisés. Le standard WiFi définit plusieurs canaux, qui représentent plusieurs bandes de fréquences différentes afin d'éviter les congestions. Pour bien choisir votre canal, il est conseillé de regarder les autres réseaux WiFi présents. De nombreux logiciels existent (y compris pour smartphones/tablettes) vous indiquant la puissance des signaux et le canal utilisé. Privilégiez un canal non utilisé si possible, ou un canal ou il y a le moins de signaux puissants. Attention également à la question de la superposition des canaux. Seuls trois canaux ne se recouvrent pas les uns les autres à 2.4 GHz, les 1, 6 et 11 qu'il faut privilégier au maximum.

  • Optimisez la position de vos antennes. La position des antennes de votre point d'accès WiFi ou de votre récepteur est excessivement importante. Changer leur orientation ou déplacer le point d'accès, en le décollant d'un mur par exemple peut avoir un impact important sur les débits que vous obtiendrez. Ajouter une antenne déportée (plutôt qu'une antenne coudée a l'arrière d'un port PCI) peut largement améliorer vos débits. Et en ce qui concerne la question de la position correcte des antennes pour les appareils qui en ont plusieurs, nous vous conseillons de lire les recommandations du manuel.

En utilisant la méthode du transfert d'un gros fichier, vous pourrez voir l'impact des différents conseils donnés ci-dessus. Dans tous les cas, n'oubliez pas de vous éloigner des antennes durant vos mesures pour éviter les comparaisons faussées. Notez malheureusement que toute la difficulté des interférence réside dans leur caractère ponctuel qui peut les rendre difficile à mesurer. Si vous pouvez en simuler certains (comme allumer votre micro ondes), d'autres sont complètement en dehors de votre contrôle (l'utilisation ou non du WiFi sur le même canal par un de vos voisins).

Notez que d'autres solutions comme le CPL existent, mais là encore entre la bande passante maximale annoncée et la bande passante que l'on peut constater en pratique (par exemple avec notre test de la copie de fichiers), il peut y avoir des écarts drastiques en fonction de la manière dont est implémenté l'installation électrique de votre logement.

Faites également attention en général à la position des adaptateurs CPL, le choix de la prise peut faire grandement varier les performances, et dans le cas ou vous utiliseriez une multi-prise, il est conseillé de placer les adaptateurs en première position. Une fois de plus, reportez vous sur le manuel de votre matériel pour plus de détails sur leur bonne utilisation.

Vos réactions

Top articles