Format des images:

Les images que vous aurez à manipuler ont le format suivant:

Le flux vidéo a les caractéristiques suivantes:

Les trames vidéo ont une durée de 800x520x40ns ce qui donne une cadence vidéo de 60 trames par seconde.

Format du flux vidéo

Physiquement, l’interface vidéo est composée des trois signaux suivants:

Le module de génération des images:

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_gen

Vous 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.

Constructeur du module:

 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:

Vous devriez aussi avoir une série d’image au bon format dans le dossier images/bbbb.

L’interface SystemC du module:

            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:

Configuration de l’environnement de compilation:

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 --libs

Inspirez-vous du fichier soclib.conf.example pour adapter la configuration des outils SocLib.

Retour au sommaire