Developpez.com

Le Club des Développeurs et IT Pro

Vidéo sur Internet en temps réel : Salsify surclasse Skype, Facetime et Google Hangouts,

En termes de délai et de qualité vidéo

Le 2018-04-13 17:05:31, par Ludovic Barry, Membre expert
Salsify est une nouvelle architecture axée sur la vidéo Internet en temps réel qui contrôle simultanément un codec vidéo et un protocole de transport réseau. Salsify a été initié par des étudiants de l'Université de Stanford dont il est un projet de recherche. Aussi, le document de recherche et les données du projet sont en accès libre, et la mise en œuvre est open source.

Les applications de la vidéo Internet en temps réel comprennent deux composants distincts que sont : un « codec vidéo » qui compresse la vidéo et un « protocole de transport » qui transmet les paquets de données et estime combien de données peuvent être envoyées sans surcharger le réseau. Généralement ces composants sont conçus séparément, souvent par différentes sociétés, puis combinés dans un programme global tel que Skype ou FaceTime. Cette manière de procéder n'est pas sans conséquence, car elle donne des résultats sous-optimaux sur des réseaux imprévisibles, augmente le délai de transmission et diminue la qualité de la vidéo.

L'objectif de Salsify est principalement de réduire ce délai et d'offrir une vidéo de qualité. Pour cela, Salsify fait fonctionner le codec et le protocole de transport ensemble. En effet, Salsify fait concilier dans une même boucle le contrôle image par image de la compression et le contrôle paquet par paquet de la transmission, permettant ainsi au flux vidéo de suivre la capacité variable du réseau, en évitant les interruptions. Autrement dit, Salsify est composé d'un protocole de transport vidéo, d'un codec vidéo VP8 avec la possibilité de sauvegarder ou restaurer l'état interne, et d'une boucle de contrôle unifiée. Avec cette technique, le résultat de la comparaison de Salsify à Skype, FaceTime, Hangouts, et le WebRTC de Chrome avec et sans VP9-SVC, montre une réduction du délai de 4,6× et une amélioration du SSIM d'environ 60 % (2,1 dB).


Pour l'heure, l'implémentation de Salsify n'est possible que sur Linux et ne supporte pas encore l'audio. Par ailleurs, la technologie de Salsify peut être utilisée par d'autres chercheurs dans ce domaine afin d'améliorer la qualité de la vidéo en temps réel dans de nombreuses applications, ont laissé entendre ses concepteurs.

Le code source de Salsify est disponible sur GitHub.


Sources : Salsify - Document de recherches

Et vous ?

Qu'en pensez-vous ?
  Discussion forum
2 commentaires
  • JackIsJack
    Membre éclairé
    Emotion.
    C'est la première fois que je lis une news d'une réelle invention avec des consequences directes sur nos vies.
  • TCP ou UDP apportent ils suffisamment de garanti ? (surtout vis-à-vis du débit et que Internet est multiutilisateurs, le cas d'image gif animé de 25 ips réduit à 15 ips mais conservent la même "fluidité" (dans le sens anglais motion) est un cas concret, dans en flux direct cela fait disparaître à l'utilisateur final la vision de saccade, en débit fichier, il y a du pré chargement via un téléchargement de fichier en tâche de fond..)

    Les capacités mémoires tampon (buffer ou mémoire cache) des cartes réseaux ont vraiment une incidence ? (MTU ? pré buffering en milliseconde ?)
    Un flux direct (streaming) doit faire face au débit réseau et au débit du décodage... Une lecteur réseau (intranet, serveur Windows) sur un poste Linux, faire play avec VLC donne certain résultat. Sur Internet cela donne d'autres résultat...

    La différence entre mémoire graphique et mémoire vidéo ?

    Je vais encore me faire expulser à parler de platine multimédia de salon (surtout les infos techniques lecteur DVD et Blu-ray), alors je prend les devants.



    Même après avoir rapidement lu l'article en source, en regardant la vidéo j'ai plus l'intuition de voir une incohérence de codec (un version obsolète qui tenterait de décoder un fichier d'une version récente...
    un version récente du codec qui tenterait de décoder un fichier d'une version obsolète ne ferait pas cela...)