Créée en 2003, Allegro DVT est une entreprise internationale en forte croissance. Son expertise est mondialement reconnue dans le domaine de la vidéo numérique sur le marché des semi-conducteurs.
Les équipes sont basées en France, en Chine, aux Etats-Unis et au Royaume-Uni. Le savoir-faire d’Allegro DVT est notamment présent dans les caméras de voitures, les jeux vidéo, les téléphones portables, les montres connectées, les caméras de surveillance, etc…
Les acteurs majeurs de la micro-électronique, de l’industrie automobile et les acteurs dans le secteur de diffusion et streaming vidéo comptent parmi ses clients. Ses produits sont des leviers d’attractivité pour les marchés émergents tels que l’IA, les véhicules autonomes, la robotique et la santé.
Chez Allegro DVT vous trouverez des projets innovants, variés et passionnants !
CONTEXTE
Les normes d’encodage vidéo sont de plus en plus complexes. Cette complexité nécessite le développement de décodeurs matériels dédiés afin de pouvoir décoder des vidéos en temps réel, avec un facteur de consommation énergétique optimal. Toutefois, une partie de l’encodage et du décodage vidéo doit être réalisée via des opérations logicielles et nécessite donc l’utilisation d’un processeur. De même, la plupart des usages nécessitent l’utilisation de frameworks et d’applications tierces.
De nouveaux cas d’applications, telle que l’intelligence artificielle, requièrent de traiter des résolutions assez faibles mais à des framerates beaucoup plus élevés (plusieurs milliers d’images par seconde), ce qui mobilise des ressources processeurs de manière très importante.
Les performances logicielles sont donc devenues un facteur limitant pour atteindre des performances plus élevées.
Pour pallier cela, Allegro DVT propose à ses clients de rajouter un ou plusieurs processeurs de type RISC-V. Cela permet ainsi au système de dédier des cœurs au traitement de la vidéo (gestion de l’allocation mémoire, parsing des headers, …).
Afin de déterminer les performances atteignables par l’ensemble du système, il est nécessaire d’instrumenter le code pour connaître le temps d’exécution des principaux blocs fonctionnels.
Le stage a donc pour but d’évaluer les performances maximales atteignables sur ce type de processeur, et d’évaluer les principales améliorations possibles.