Les images que vous aurez à manipuler ont le format suivant:
640x480 pixelsLe flux vidéo a les caractéristiques suivantes:
25MHz640x480Les trames vidéo ont une durée de 800x520x40ns ce qui
donne une cadence vidéo de 60 trames par seconde.
Physiquement, l’interface vidéo est composée des trois signaux suivants:
pixel : les pixels sur 8 bitsline_valid : un signal indiquant que nous sommes dans
une partie valide de la ligne.frame_valid : un signal indiquant que la ligne actuelle
est valide.Ce module SystemC, destiné à la simulation, génère un flux vidéo au
format décrit précédemment. Ce flux est généré à partir d’une série
d’image au format PNG.
Le module SystemC (C++ class) correspondant est
VideoGen.
Le code correspondant à ce module se trouve dans le dossier:
IPs/video_genVous y trouverez:
Ce module utilise la bibliothèque libpng pour ouvrir les
images, il faudra donc changer la configuration du compilateur pour la
prendre en compte.
VideoGen(
sc_module_name insname, // nom du module SystemC
const char *bn = "images/bbb/bbb", // nom de base et chemin vers images png
const int w = 640, // largeur de la zone valide de l'image
const int h = 480, // hauteur de la zone valide de l'image
const int lsync = 160, // largeur de la synchro. horizontale
const int fsync = 40 // hauteur de la synchro. verticale
);Remarques:
bn correspond au nom de base des images
utilisées et au chemin vers les fichiers PNG, relativement
à l’exécutable de simulation.Vous devriez aussi avoir une série d’image au bon format dans le
dossier images/bbbb.
sc_in<bool> clk;
sc_in<bool> reset_n;
sc_out<bool> line_valid;
sc_out<bool> frame_valid;
sc_out<unsigned char> pixel_out;En plus des signaux correspondant aux flux vidéo (tous en sortie) ce module nécessite les deux signaux suivants:
clk correspondant à l’horloge pixel.reset_n actif sur niveau
bas.Ce module utilise la bibliothèque libpng il faut donc
ajouter le chemin vers les fichiers d’en-tête pour la compilation et la
bibliothèque pour l’édition de liens.
La commande libpng-config vous permet de trouver les
paramètres adéquats.
# Pour obtenir les paramètres de compilation
libpng-config --cflags
# Pour obtenir les paramètres d'édition de liens
libpng-config --libsInspirez-vous du fichier soclib.conf.example pour
adapter la configuration des outils SocLib.