FMUSER Wirless transmet la vidéo et l'audio plus facilement!

[email protected] WhatsApp + 8618078869184
Langue

    Conception OSD d'une application vidéo basée sur FPGA

     

    Ces dernières années, les systèmes de vidéosurveillance numériques ont été largement utilisés dans divers domaines tels que les banques, les autoroutes et les bâtiments. Dans les systèmes de vidéosurveillance numérique, la technologie OSD (On Screen Display) est un élément indispensable. OSD fournit aux utilisateurs une interface homme-machine conviviale, permettant aux utilisateurs d'obtenir plus d'informations supplémentaires.

     

    1. Composition du système


       Le système présenté dans cet article est un système de vidéosurveillance complet basé sur TI DSP TMS320DM6 ? 3 et FPGA. Il prend en charge 1 canal d'entrée vidéo et 1 canal de sortie vidéo, et fournit également une interface réseau.

     
        L'entrée vidéo est réalisée par le décodeur vidéo économique TVP5150A de TI. TVP5150A peut réaliser la collection de deux entrées vidéo composites ou d'un signal vidéo S-vidéo. Le registre est configuré via I2C et le signal vidéo numérique de sortie suit la norme ITU656.

     
        Le signal vidéo numérique décodé par TVP5150A est transmis au DSP via le port vidéo 1 de DM6 ? 3, et le traitement vidéo nécessaire est effectué par le DSP, puis transmis au périphérique distant par l'interface réseau. Par contre, après DM6 ? 3 traite les données vidéo reçues du réseau, elles sont affichées et sorties par SAA7105 via le port vidéo 2 via FPGA. 

     
        La partie sortie est réalisée par SAA7105. SAA7105 est un encodeur vidéo hautes performances de la société NXP, qui peut fournir une sortie vidéo composite, une sortie vidéo VGA et une sortie de signal vidéo haute définition HDTV. Le contrôle de SAA7105 est également réalisé via I2C, et il reçoit le signal vidéo numérique de la norme composite ITU656.

     
        La partie de traitement vidéo adopte le DSP TMS320DM6 3 de TI pour réaliser. La fréquence principale du DM6-3 peut atteindre 600 MHz et il existe deux ports vidéo 20 bits. Les ports vidéo prennent en charge les interfaces vidéo numériques telles que BT.656 et Y/C. DM6-3 intègre également le réseau MAC pour réaliser l'accès au réseau.

     
       La vitesse de développement des performances matérielles est toujours difficile de répondre aux besoins des logiciels. Dans les applications de plus en plus complexes du traitement vidéo, le DSP est responsable des tâches de traitement vidéo complexes, et les ressources deviennent très limitées. Par conséquent, dans la conception de ce système, le FPGA est utilisé pour réaliser la conception de l'OSD, ce qui peut réduire la charge du DSP.


     
        La partie implémentation OSD utilise le XC3S250E de Xilinx. XC3S250E est un FPGA de la série Xilinx SPARTAN-3E avec 250,000 XNUMX portes logiques.


    2. Mise en œuvre de l'OSD
     
        SAA7105 ne peut pas réaliser la fonction OSD, mais est réalisé par XC3S250E. La puce de contrôle principale DM6 ? 3 n'a qu'à informer le FPGA du contenu et de la position à afficher, et le travail spécifique est effectué par le FPGA. Le schéma fonctionnel logique de l'OSD est illustré comme sur la Fig. 2.
     Conception OSD d'une application vidéo basée sur FPGA

     

     Le FPGA OSD reçoit les données OSD et les instructions de contrôle du DSP DM6 3 via EMIFA, reçoit les données vidéo via le port vidéo 1 du DSP, superpose les informations OSD sur les données vidéo et les transmet à l'encodeur vidéo SAA7105. Les modules fonctionnels de l'OSD sont décrits comme suit.
     
       Le port de données du module de décodage d'adresse est interfacé avec les données 32 bits faibles de l'EMIFA du DSP DM6 3 et reçoit les données et les informations de contrôle envoyées par DM6 3. Ces données et informations de contrôle sont les données 32 bits d'origine envoyées par DM6 3. Le module de décodage d'adresse met les données OSD reçues, telles que le contenu de l'OSD, dans la FIFO interne du FPGA dans un format de données 32 bits. Les informations de contrôle sont principalement utilisées pour contrôler l'OSD via un ensemble de registres de contrôle.

     
       Il existe également un module d'interface vidéo directement connecté au DSP. Le module d'interface vidéo est connecté au port vidéo 2 du DSP, et stocke les données et les informations de contrôle du port vidéo DSP. Ces informations de contrôle sont directement transmises au module de contrôle multicanal OSD, et les informations de contrôle contrôlent également directement le décodeur vidéo SAA7105.

     
        La logique de commande OSD délivre les informations de commande obtenues du groupe de registres de commande à chaque module fonctionnel de l'OSD pour réaliser la commande de l'OSD. Le groupe de registres est principalement divisé en deux parties : l'une est le groupe de registres asynchrone, qui envoie des informations de contrôle telles que la réinitialisation, l'activation de l'OSD et la sélection de la largeur des données à l'OSD ; l'autre est le groupe de registres synchrones, qui contrôle principalement les informations de position de l'OSD.

     
        Le module de décodage OSD extrait les données à afficher de la FIFO selon les informations de contrôle de la logique de contrôle, et les délivre au module OSD CLUT en synchronisation avec les données vidéo. Les données obtenues à partir du FIFO sont les données DSP 32 bits d'origine, et les données requises par le module OSD CLUT sont 8/16 bits, donc le module de déballage OSD doit décompresser les données 32 bits en fonction de la fréquence du port vidéo. Les données 32 bits sont transmises au module OSD CLUT avec une largeur de 8/16.
     
        Une autre fonction du module FIFO est de transférer des informations d'état FIFO au module générateur d'événements DMA, telles que FIFO plein ou FIFO vide. Le générateur d'événements DMA surveille ces événements, et s'ils se produisent, ils sont envoyés à DM6 ? 3 en mode interruption pour obtenir des opérations de lecture et d'écriture correctes dans la FIFO.
     
        Le module OSD CLUT recherche la valeur correspondante de YCbCr pour les données de chaque pixel reçues du module de déballage OSD, et contrôle la séquence de sortie de ces données OSD CLUT. Cette relation de conversion est transmise par le DSP via le port de données 24 bits. Les données du module OSD CLUT sont directement transmises au module de contrôleur multicanal OSD.
     
        Le module de contrôle multicanal OSD détermine les données vidéo de sortie en fonction du bit de contrôle Alpha reçu du module OSD CLUT. Si les informations OSD actuelles, c'est-à-dire le bit de contrôle Alpha, sont valides, elles envoient les données OSD au module de conversion de données. Sinon, sortez les données vidéo d'origine reçues du module d'interface vidéo pour réaliser la fonction OSD.
     
        Les données sorties par le contrôleur multicanal OSD ne sont pas directement envoyées au décodeur vidéo, mais via le module de conversion de données, selon des conditions d'application spécifiques, la conversion de format de données nécessaire est effectuée. On peut voir à partir de la synchronisation d'interface de SAA7105 que lorsque SAA7105 est configuré pour une sortie vidéo composite, les données requises sont des données de bord d'horloge unique. À ce stade, le module de conversion de données ne fait aucun travail et les données reçues du module de commande multicanal OSD sont transmises intactes. Pour SAA7105 ; si SAA7105 est configuré en mode de sortie VGA ou HDTV, des données de bord d'horloge double sont requises. A ce moment, le module de conversion de données convertit les données de bord d'horloge unique reçues du contrôleur OSD en données de bord d'horloge double et les transmet au décodeur vidéo SAA7105.
     
        On peut voir que le FPGA a terminé tout le travail de l'OSD. Si vous souhaitez afficher le contenu OSD, DM6 ? 3 n'a besoin que d'envoyer des instructions de contrôle au FPGA via le port EMFIA. Ces instructions, bien sûr, incluent le contenu et les informations d'emplacement de l'OSD.
     


    3. Contrôle OSD
     
        La conception OSD mise en œuvre par XC3S250E effectue un affichage OSD basé sur l'emplacement OSD reçu et les informations de contenu, sans aucune restriction sur le contenu affiché par l'OSD, ce qui est très flexible et pratique. Ce qui suit prend l'affichage des caractères chinois OSD comme exemple pour illustrer l'opération de contrôle de l'OSD.
     
        Pour afficher correctement les caractères chinois, le code interne des caractères chinois saisis doit être converti en code de localisation correspondant. Pour cette fonction, nous utilisons la fonction Uint32 Code_Converse(unsigned char *CodeNPointer), dont l'entrée est un pointeur, pointant sur le caractère chinois à convertir. La valeur de retour est le code de localisation correspondant au caractère chinois. L'affichage OSD est réalisé par la fonction OSDHZ ? afficher :


      annuler l'affichage OSDHZ_{
    Uint8 * pFrame
    Pas Uint32
    Localisation OSDUTIL_Point*
    Uint32 CodeQ
    OSDHZ?ont *police
    Uint8 fgCouleur
    Uint8 bgCouleur
    }
        Parmi eux, Uint8 *pFrame est le tampon tampon pour la sortie OSD ; Le pas Uint32 est la valeur de pixel affichée dans chaque ligne ; OSDUTIL_Point *loc est la position d'affichage du premier caractère ; Uint32 CodeQ est l'indicatif régional pour afficher les caractères chinois ; OSDHZ?ont * font est la police utilisée pour afficher les caractères chinois ; Uint8 fgColor affiche la couleur de premier plan des caractères chinois ; Uint8 bgColor affiche la couleur de fond des caractères chinois.


        Par conséquent, si vous devez afficher des caractères chinois, il vous suffit de convertir les caractères chinois dans le système de code nécessaire, puis de sortir le code régional converti sur le FPGA OSD. Bien entendu, pour afficher les caractères chinois, la bibliothèque de caractères chinois est indispensable.

     

     

     

     

    Liste de tous Question

    Surnom

    Email

    fréquemment posées

    Notre autre produit:

    Ensemble d'équipement de station de radio FM professionnelle

     



     

    Solution IPTV pour hôtel

     


      Entrez l'email pour avoir une surprise

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afrikaans
      sq.fmuser.org -> albanais
      ar.fmuser.org -> arabe
      hy.fmuser.org -> Armenian
      az.fmuser.org -> azerbaïdjanais
      eu.fmuser.org -> basque
      be.fmuser.org -> biélorusse
      bg.fmuser.org -> Bulgare
      ca.fmuser.org -> catalan
      zh-CN.fmuser.org -> chinois (simplifié)
      zh-TW.fmuser.org -> Chinois (traditionnel)
      hr.fmuser.org -> croate
      cs.fmuser.org -> tchèque
      da.fmuser.org -> danois
      nl.fmuser.org -> Néerlandais
      et.fmuser.org -> estonien
      tl.fmuser.org -> Philippin
      fi.fmuser.org -> finnois
      fr.fmuser.org -> Français
      gl.fmuser.org -> Galicien
      ka.fmuser.org -> géorgien
      de.fmuser.org -> allemand
      el.fmuser.org -> Grec
      ht.fmuser.org -> Créole haïtien
      iw.fmuser.org -> hébreu
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Hongrois
      is.fmuser.org -> islandais
      id.fmuser.org -> indonésien
      ga.fmuser.org -> irlandais
      it.fmuser.org -> Italien
      ja.fmuser.org -> japonais
      ko.fmuser.org -> coréen
      lv.fmuser.org -> letton
      lt.fmuser.org -> Lituanien
      mk.fmuser.org -> macédonien
      ms.fmuser.org -> malais
      mt.fmuser.org -> maltais
      no.fmuser.org -> Norwegian
      fa.fmuser.org -> persan
      pl.fmuser.org -> polonais
      pt.fmuser.org -> portugais
      ro.fmuser.org -> Roumain
      ru.fmuser.org -> russe
      sr.fmuser.org -> serbe
      sk.fmuser.org -> slovaque
      sl.fmuser.org -> Slovène
      es.fmuser.org -> espagnol
      sw.fmuser.org -> Swahili
      sv.fmuser.org -> suédois
      th.fmuser.org -> Thai
      tr.fmuser.org -> turc
      uk.fmuser.org -> ukrainien
      ur.fmuser.org -> ourdou
      vi.fmuser.org -> Vietnamienne
      cy.fmuser.org -> Gallois
      yi.fmuser.org -> Yiddish

       
  •  

    FMUSER Wirless transmet la vidéo et l'audio plus facilement!

  • Contactez-Nous

    Adresse :
    No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620

    Courriel :
    [email protected]

    Tél/WhatApps :
    +8618078869184

  • Catégories

  • Newsletter

    Prénom ou nom complet

    Email

  • solution paypal  Western UnionBanque de Chine
    Courriel :[email protected]   WhatsApp: +8618078869184 Skype: sky198710021 Discuter avec moi
    Droit d'auteur 2006-2020 Powered By www.fmuser.org

    Contactez-Nous