Description de la formation
Une caractéristique fondamentale de nombreux systèmes multimédias, par exemple les systèmes de vidéo-conférence, mais aussi les installations d’art numérique interactives, les logiciels de création et de production musicale, les jeux vidéos, etc., est leur rapport au temps et à leur immédiateté. Par exemple, un logiciel de simulation d’effet de guitare doit effectuer ses calculs sans délai perceptible : un musicien professionnel ressentira déjà une gêne avec des délais de traitement l’ordre de la dizaine de millisecondes.
Les langages de programmation et systèmes d’exploitation usuels ne sont pas adaptés par défaut pour ce genre de tâches, qui requièrent des précautions spécifiques : cette formation introduira les participants et particpantes à un ensemble de techniques et méthodologies de développement logiciel adaptées à la création de systèmes temps-réel.
Objectifs pédagogiques
À la fin de cette formation, vous serez en mesure de :
- Comprendre les enjeux du temps-réel dans la création d’outils multimédia et artistiques;
- Comprendre les limites des outils de développement conventionnels (par exemple, environnement Javascript sur Windows) face aux besoins du média temps-réel;
- Programmer des logiciels de traitement de signal basiques en respectant un ensemble de règles garantissant un comportement temps-réel;
- Utiliser des outils permettant de rendre explicites les appels de fonction incompatibles avec le temps-réel;
- Connaître les outils avancés de la programmation temps-réel en C++ : variables atomiques ; conteneurs lock-free ; spinlocks ; etc.
- Structurer et architecturer un logiciel de manière à faciliter l’application de ces règles;
- Appliquer ces outils à différents flux de données multimédia : audio, vidéo, messages de contrôle, en prenant en compte les spécificités de chacun.
Méthodologie
Plusieurs méthodes d’apprentissage permettant de mesurer votre progrès et votre intégration des concepts sont utilisés tout au long de la formation :
- Exposé
- Travail individuel
- Exercice informatique
Clientèle visée
Chefs d'équipe et superviseurs, professionnels, chargés de projets, technciens et conulstants.
Particularité
Les participants doivent avoir une expérience de programmation (idéalement au moins 2 ans d’expérience ou bien cursus d’ingénierie suivi).