Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJeanette Moreno Modifié depuis plus de 9 années
1
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs configurables et traitement d’images et de vidéos
2
Survol de la présentation Introduction Exemples d’applications désentrelacement (résolution spatiale), conversion de taux de trame (résolution temporelle), convolution 2D, opérations non linéaires (morphologie mathématique), conversion de couleur, détection et compensation de mouvement Architecture d’un processeur vidéo spécialisé temps réel vue générale du système besoin en flot de données et interfaces mémoires besoins en calculs Annexe: rappels pixels, couleur, images et vidéos 2 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
3
Pourquoi parler de traitement d’images et de vidéos en INF8505? La popularité des applications multimédia ne cesse de croître. La puissance de calcul requise dans ces applications est considérable. Beaucoup d’applications intéressantes sont embarquées, et plusieurs ont des contraintes strictes en termes de consommation de puissance et surface disponible. La configuration d’un processeur pour une application vidéo est un problème intéressant et d’actualité. La présente présentation met l’emphase sur le traitement en temps réel de vidéos. 3 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
4
Survol de la présentation Introduction Exemples d’applications désentrelacement (résolution spatiale), conversion de taux de trame (résolution temporelle), convolution 2D, opérations non linéaires (morphologie mathématique), conversion de couleur, détection et compensation de mouvement Architecture d’un processeur vidéo spécialisé temps réel vue générale du système besoin en flot de données et interfaces mémoires besoins en calculs Annexe: rappels pixels, couleur, images et vidéos 4 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
5
Quelques opérations communes de traitement numérique pour un processeur vidéo temps réel Désentrelacement (résolution spatiale) Conversion de taux de trame (résolution temporelle) Convolution 2D et opérateurs linéaires Opérations non linéaires (morphologie mathématique) Conversion de couleur Estimation de mouvement 5 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
6
Le désentrelacement (1) L’entrelacement consiste à diviser une vidéo en deux types de trames: les trames paires et impaires. La technique réduit la quantité d’information transmise de moitié. Chaque trame contient la moitié des lignes d’une image complète (les lignes paires ou les lignes impaires). Le désentrelacement est le processus de reconstruction d’une image complète à partir de deux trames entrelacées. Voir: http://en.wikipedia.org/wiki/Interlacing et http://fr.wikipedia.org/wiki/Entrelacementhttp://en.wikipedia.org/wiki/Interlacing http://fr.wikipedia.org/wiki/Entrelacement 6 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
7
Le désentrelacement (2) Le désentrelacement est un cas particulier d’augmentation de la résolution spatiale. Dans une image entrelacée, seulement la moitié des lignes sont disponibles (les lignes paires ou impaires). On peut diviser les méthodes de désentrelacement en deux catégories: les méthodes intra-champs utilisent uniquement de l’information spatiale; les méthodes inter-champs utilisent de l’information temporelle et spatiale. 7 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
8
Le désentrelacement (3): quelques méthodes intra-champs Doublage de lignes chaque ligne est répétée Moyenne de lignes les pixels manquants sont calculés par la moyenne des pixels immédiatement au dessus et en dessous Moyenne de lignes directionnelle par arêtes les pixels manquants sont calculés par la moyenne de deux pixels dans la direction estimée d’une arête options: le nombre de lignes considérées (habituellement 2) le nombre de pixels considérés à gauche et à droite (habituellement de 3 à 7) la façon d’estimer la direction de l’arête 8 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
9
Désentrelacement Quels sont les besoins en données? Quels sont les besoins en calculs? 9 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
10
La conversion de taux de trames (1) La conversion de taux de trames est un cas particulier de modification de résolution temporelle. Elle est souvent nécessaire pour passer d’une norme à une autre (ex. PAL à NTSC, cinéma à NTSC). Exemple: « 3:2 pulldown » pour convertir du format 24 trames/s à 60 champs/s. 10 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007. Le patron 3:2 indique que la première trame génère 3 champs, alors que la deuxième trame en génère 2. Dans l’exemple, les trames sont décomposées en champs pairs (p) et impairs (i). On transmet Ai, Ap, Ai (3 champs), puis Bp, Bi (2 champs). On répète avec C et D en alternant toujours les champs pairs et impairs.
11
La conversion de taux de trames (2) Pour d’autres rapports de taux, il peut être nécessaire de reconstruire une trame de toute pièce. Le processus s’apparente alors à l’interpolation temporelle du désentrelacement. 11 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
12
Conversion de taux de trames Quels sont les besoins en données? Quels sont les besoins en calculs? 12 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
13
La convolution 2D et autres opérateurs linéaires (1) La convolution est une fonction linéaire de voisinage: la valeur d’un pixel est calculée à partir d’une combinaison linéaire de la valeur de ses voisins. En choisissant judicieusement la valeur des facteurs (processus qui dépasse la matière du cours!), on obtient des opérations très utiles. filtre passe-bas (lissage) filtre passe-haut (rehaussement des arêtes et des détails) 13 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007. voir: http://en.wikipedia.org/wiki/Sobel_operator
14
La convolution 2D et autres opérateurs linéaires (2): que faire des frontières? Les frontières de l’image posent un problème particulier. Quelques options: réduire la taille de l’image; considérer une image plus grande avec des pixels noirs autour; supposer un effet miroir; ou, supposer un effet d’enroulement gauche-droite, bas-haut. 14 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
15
Convolution 2D et autres opérateurs linéaires Quels sont les besoins en données? Quels sont les besoins en calculs? 15 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
16
Opérations non linéaires (morphologie mathématique) La morphologie mathématique réfère à des opérations de voisinage plus générales que la convolution. érosion: le pixel est remplacé par le minimum de ses voisins dilatation: le pixel est remplacé par le maximum de ses voisins médiane: le pixel est remplacé par la médiane des ses voisins 16 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
17
Opérations non linéaires Quels sont les besoins en données? Quels sont les besoins en calculs? 17 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
18
Conversion et ré-échantillonnage de couleurs L’œil humain est beaucoup plus sensible à l’intensité de la lumière qu’à sa couleur. On exploite ce fait pour réduire la quantité d’information transmise pour plusieurs normes de vidéo. Pour la norme ITU-R BT.601 (sous-échantillonnage 4:2:2): on transmet la luminance (Y) pour chaque pixel; et, en alternance, on transmet la chrominance rouge OU bleue des pixels. Pour le mode 4:2:2, la quantité d’information transmise est réduite de 33%. D’autres possibilités existent (4:2:1, 4:2:0, etc.). 18 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel temps →
19
Conversion et ré-échantillonnage de couleurs Lors de l’affichage sur un écran numérique, il est nécessaire de recréer les couleurs manquantes. Cette opération est relativement simple; il s’agit de faire une interpolation linéaire entre pixels voisins. 19 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
20
Conversion et ré-échantillonnage de couleurs Quels sont les besoins en données? Quels sont les besoins en calculs? 20 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
21
Estimation de mouvement L’estimation de mouvement consiste à décomposer une image en blocs et à trouver, pour chaque bloc, un vecteur de mouvement. Une métrique simple pour apparier des blocs est la somme des différences absolues. 21 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007. Ellipse: un objet dans une scène. Trait solide: bloc à trouver. Trait pointillé: fenêtre de recherche.
22
Estimation de mouvement Quels sont les besoins en données? Quels sont les besoins en calculs? 22 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
23
Survol de la présentation Introduction Exemples d’applications désentrelacement (résolution spatiale), conversion de taux de trame (résolution temporelle), convolution 2D, opérations non linéaires (morphologie mathématique), conversion de couleur, détection et compensation de mouvement Architecture d’un processeur vidéo spécialisé temps réel vue générale du système besoin en flot de données et interfaces mémoires besoins en calculs Annexe: rappels pixels, couleur, images et vidéos 23 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
24
Processeur vidéo – vue du système (1) 24 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
25
Processeur vidéo – vue du système (2) Système complet 25 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
26
Besoins pour un processeur vidéo spécialisé temps réel Besoins en flot de données et interfaces mémoires Besoins en calculs 26 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
27
Besoins en flot de données et interfaces mémoires (1) Pour la conception du processeur, il est essentiel de déterminer comment se fera l’accès au données. Selon l’opération à effectuer, le traitement vidéo peut nécessiter l’accès à quelques pixels seulement ou à plusieurs trames. 27 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel opération/algorithmebesoins en mémoire correction gamma conversion de couleurs YCrCb à RGB désentrelacement intra-champs convolution 2D érosion, dilatation estimation de mouvement
28
Besoins en flot de données et interfaces mémoires (1) Pour la conception du processeur, il est essentiel de déterminer comment se fera l’accès au données. Selon l’opération à effectuer, le traitement vidéo peut nécessiter l’accès à quelques pixels seulement ou à plusieurs trames. 28 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel opération/algorithmebesoins en mémoire correction gamma1 pixel conversion de couleurs YCrCb à RGB2 ou 3 pixels désentrelacement intra-champsquelques lignes convolution 2Dquelques lignes érosion, dilatationquelques lignes estimation de mouvementquelques trames
29
Besoins en flot de données et interfaces mémoires (2) Modèle si peu de données entrent dans un chaque calcul: 29 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel S. Leibson, J. Kim, « Configurable processors: a new era in chip design, » Computer July 2005.
30
Besoins en flot de données et interfaces mémoires (3) Exemple: convolution 2D et morphologie mathématique 30 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
31
Besoins en flot de données et interfaces mémoires (4) Modèle si beaucoup de données sont requises: 31 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Le processeur peut avoir plusieurs unités d’accès à la mémoire.
32
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Besoins en flot de données et interfaces mémoires (5): tampons multiples On peut séparer la mémoire en plusieurs tampons indépendants, ex.: un tampon pour une trame présentement en chargement; trois tampons lus par le processeur (les trois dernières trames); un tampon écrit par le processeur; et, un tampon présentement en sortie. Un commutateur synchronisé permute les tampons d’une trame à l’autre. Ce modèle s’applique bien aussi au traitement par lignes. Ce modèle est très utile pour les cas où les débits d’entrée et de sortie sont différents. 32
33
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Besoins en flot de données et interfaces mémoires (6): tampons multiples 33
34
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Besoins en flot de données et interfaces mémoires (7): tampons multiples 34
35
Organisation de la mémoire: 1D ou 2D? Soit une image composée de pixels RGB. On peut organiser la mémoire par pixels séquentiels ou bien par dimension (R, G ou B). La meilleure organisation dépend des calculs effectués. 35 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
36
Besoins en calculs (1): chemin des données de base 36 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
37
Besoins en calculs (2): chemin des données amélioré 37 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
38
Besoins en calculs (3): un peu d’inspiration …processeur DSP Blackfin ‘Blackfin’ est une famille de processeur RISC à 32 bits. Développé par Intel et Analog Devices, commercialisé en 2001. Le processeur Blackfin peut accélérer le traitement vidéo de deux façons: avec des instructions spécialisées, comme la somme de différences absolues; avec des opérations 4-SIMD (Single Instruction, Multiple Data): une seule opération est effectuée sur 4 paires d’opérandes 38 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
39
Besoins en calculs (4): un peu d’inspiration …processeur DSP BlackFin 39 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
40
Résumé pour la conception du processeur: options à considérer Besoins en flots de données données: Combien de données garder dans le (ou très près du) processeur. Ne pas craindre de s’éloigner des modèles traditionnels, **surtout** pour l’accès à la mémoire. Besoins en calculs: Taille des données – 8 ou 24 bits? Quelles sont les opérations à effectuer? Profiler, profiler, profiler. SIMD – ne pas craindre d’exploiter ce parallélisme avec un grand nombre de données (256? 1024? 65536?). 40 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
41
Survol de la présentation Introduction Exemples d’applications désentrelacement (résolution spatiale), conversion de taux de trame (résolution temporelle), convolution 2D, opérations non linéaires (morphologie mathématique), conversion de couleur, détection et compensation de mouvement Architecture d’un processeur vidéo spécialisé temps réel vue générale du système besoin en flot de données et interfaces mémoires besoins en calculs Annexe: rappels pixels, couleur, images et vidéos 41 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
42
Rappels sur les images et vidéos Pixels Couleurs Images Vidéos 42 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
43
Pixels (picture element) (1) Une image numérique est une matrice à deux dimensions de pixels. Chaque pixel représente une intensité lumineuse en un point précis d’une image Un pixel est le plus petit élément auquel on puisse associer individuellement une couleur et une intensité. Les pixels sont disposés uniformément sur un grillage, et sont (habituellement) alignés en lignes et en colonnes. Par convention, le pixel (0, 0) est en haut à gauche de l’image. 43 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
44
Pixels (2) On imagine habituellement un pixel comme étant un petit carré, mais ce n’est pas la seule représentation possible. La représentation finale du pixel relève du processus de conversion: de la lumière à sa représentation numérique (e.g. par une caméra); ou de sa représentation numérique à la lumière (e.g. par une imprimante ou un moniteur). Pour un processeur, ce qui nous intéresse c’est la représentation numérique. 44 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel www.wikipedia.org
45
Pixels (3) … et échantillonnage spatial La notion de pixel implique celle d’échantillonnage spatial. Les signaux naturels sont continus dans le temps et en amplitude. Pour numériser un signal naturel, on doit: l’échantillonner, c’est-à-dire le mesurer en un instant ou un lieu précis; et, en quantifier l’amplitude, c’est-à-dire lui associer une valeur discrète parmi un ensemble de valeurs. Pour pouvoir reconstruire parfaitement un signal de largeur de bande W, la fréquence d’échantillonnage f s doit respecter le critère de Nyquist: f s > 2W. Plus il y a d’étages de quantification, plus la représentation est fidèle. 45 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
46
Pixels (4) … et échantillonnage spatial Pour les sons, on fait un échantillonnage dans le temps à intervalles réguliers et une quantification en amplitude. Exemple, CD audio: f s = 44100 Hz, 65536 niveaux d’intensité. 46 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
47
Pixels (5) … et échantillonnage spatial Pour les images, on fait un échantillonnage dans l’espace selon un grillage régulier et ont fait une quantification en amplitude. Le nombre de niveaux d’amplitude varie grandement avec les différentes normes. La ‘fréquence’ (spatiale) d’échantillonnage n’est pas normalisée; on détermine plutôt le nombre d’échantillons en largeur et en hauteur. La ‘taille’ d’un pixel varie donc avec la taille de la représentation finale. 47 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel {…, 15, 31, 67, 67, 113, 125, 118, …}
48
Pixels (6) … et échantillonnage Exemple d’image avec des composantes à haute fréquence spatiale. Selon les caractéristiques du moniteur ou de l’imprimante, la représentation finale (en lumière) varie. 48 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
49
La couleur (1): noir, blanc et gris L’approche la plus fondamentale consiste à n’utiliser que des tons de gris. Quelques options: 1 bit: blanc et noir 8 bits: 256 tons de gris 49 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
50
La couleur (2): couleurs indexées Une approche simple consiste à choisir une palette de couleurs. Dans la palette, on assigne un code à chaque couleur. Les pixels de l’image encodent des indices dans la palette. La palette peut être fixe pour correspondre à une norme ou bien varier pour une séquences d’images (utilisé en compression de vidéos). 50 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel www.wikipedia.org Les 64 couleurs de la norme EGA.
51
La couleur (3): couleurs ‘directes’ Pour représenter une gamme plus vaste de couleurs, on utilise un système à trois dimensions. Ce système est basé sur la présence de trois types de cellules dans l’œil humain (les cones de type S, M et L), chacune sensible à des longueurs d’ondes légèrement différentes. 51 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel www.wikipedia.org Réponse spectrale normalisée des cellules S, M et L de l’œil humain. Abscisse: longueur d’onde (nm)
52
La couleur (4): couleurs ‘directes’ Les systèmes à trois dimensions ne peuvent pas représenter toutes les couleurs auquel l’œil humain est sensible mais permettent d’en représenter beaucoup. Il y a plusieurs systèmes à 3 dimensions, entre autres: RGB (Red, Green, Blue) HSV (Hue, Saturation, Value) YUV/YPbPr/YCbCr (intensité, composante rouge, composante bleue) Il est possible de convertir d’un format à l’autre par des transformations linéaires. Le nombre de niveaux de quantification pour chacune des dimensions varie selon les normes, par exemple: 3 bits pour rouge, 3 bits pour verts, 2 bits pour bleu (total 8) 5 bits pour rouge, 6 bits pour vert, 5 bits pour bleu (total 16) 8 bits chacun (total 24) 52 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
53
La couleur (5): correction gamma La correction gamma est une opération non linéaire pour corriger la distorsion en amplitude de l’œil humain et des systèmes d’affichage. La correction est définie par l’équation: Dans les espaces de couleur, on indique en général les valeurs corrigées par des apostrophes (R’G’B’). 53 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
54
Images: la taille On définit la taille d’une image par le nombre de lignes et le nombre de pixels par ligne. Un paramètre important est le rapport de ces dimensions. 54 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel www.wikipedia.org
55
Vidéos (1) Une vidéo est une séquence d’images. Il y a plusieurs normes de vidéo qui définissent entre autres: la taille des images; le taux de trames; l’encodage des couleurs; l’entrelacement; la compression. 55 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel normetaille (visible) (lignes × colonnes) taux (trames/s) entrelacement NTSC480 × 72029.97oui PAL576 × 76825oui HDTV – 720p720 × 128024 ou 60 (USA)non HDTV – 1080i1080 × 192060 (USA)oui
56
Vidéos (2) Une vidéo a habituellement trois signaux de synchronisation: HSync (synchronisation horizontale): indique le début d’une ligne (en balayage de gauche à droite); VSync (synchronisation verticale): indique le haut de l’image; Field (champs): pour les vidéos entrelacées, indique la parité du champs 56 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007.
57
Vidéos (3): Chaque norme de vidéo est spécifiée par une multitude de détails. Quand on doit concevoir un système en implémentant une, il faut bien se documenter! 57 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
58
Quelques références A. Ray Smith, « A pixel is not a little square, » Microsoft Technical Memo 6, July 1995. D. Katz & R. Gentile, « Fundamentals of embedded video, » DSP DesignLine, Sep. 2007. Plusieurs excellents articles sur wikipedia.org, à partir de « Video ». R.B. Porter, « Image Processing, » chapitre de Reconfigurable Computing, édité par M.B. Gokhale et P.S. Graham, Springer, 2005. 58 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.