Traitement vidéo sur l'architecture parallèle Tesla 1070 de NVIDIA
Le présent travail de diplôme est consacré aux problèmes du traitement vidéo que rencontre le service NTICE de la division informatique de l'université de Genève. Ce service s'occupe de la capture audiovisuelle de cours et de conférences qui se déroulent à l'université.
Afin de traiter encore plus efficacement ces flux audio et vidéo, le service NTlCE s'est doté du
dernier né des supercalculateur GPU, le Tesla S1070. Celui-ci est composé de 960 processeurs de type
SlMD (Single Instruction Multiple Data) et de 16 gigabytes de mémoire DDR3. De telles caractéristiques
ouvrent les portes à l'imagination de nombreuses applications de traitement vidéos.
Le premier défi de ce projet fût d'analyser l'architecture de ce fameux supercalculateur. Malgré le peu
de documentation fournie par Nvidia, son constructeur, tous les composants du Tesla sont
soigneusement présentés dans le chapitre prévu à cet effet.
Dans un deuxième temps, un long travail d'apprentissage fût réalisé sur CUDA, I'API permettant de
programmer sur le Tesla. Cette partie regroupe toutes les bases de la programmation avec cette API et
met l'accent sur l'utilisation des différentes mémoires que possède le Tesla. Nous verrons dans le
chapitre dédié à CUDA que le bon usage de ces dernières est primordiale pour obtenir des applications
performantes.
Le service du NTlCE utilise le codec H.264 pour compresser les vidéos qu'il recueille. Ce format permet
de réduire considérablement le volume d'un flux vidéo aux moyens de divers techniques, comme la
compensation de mouvements sur plusieurs frames, le codage adaptatif de type Huffman à longueur
variable ou encore la prédiction spatiale. Toutes ces techniques nécessitent des ressources en calcul et
en mémoire très conséquentes. C'est pourquoi, la troisième partie de ce projet fût de rechercher s'il
existait des solutions pour compresser ou décompresser des flux H.264 au moyen du Tesla. Nous
verrons que cette problématique ne trouve que de rares solutions, qui restent encore complexes et
inadaptées.
La quatrième et dernière partie de ce projet fût consacrée à l'étude et à la conception d'algorithmes
parallèles de traitement vidéo s'exécutant sur GPU. L'algorithme de la conversion YUV à RGB ainsi que
celui du watermarking (explicite) ont été réalisés. Les étapes de développement de ceux-ci, sont détaillées dans le
dernier chapitre de ce projet. L'algorithme d'indexation de mot clé dans un flux vidéo, ne sera que trés
sommairement présenté dans ce même chapitre.
II faut savoir que ce projet fût essentiellement un travail de recherche et de synthèses d'informations
dans un domaine encore peu, voire pas du tout, exploré. Toutefois, la conception des différents
algorithmes de traitement vidéo représente la partie pratique du projet. Ces deux aspects, bien que
complet pour une travail de 8 semaines, restent ouverts à de nombreuses améliorations et évolutions.
IN-Colle-Albuquerque-M.pdf
—
Document PDF,
29.09 Mo (30507378 bytes)