FMUSER Wirless Transmituj wideo i audio łatwiejsze!

[email chroniony] WhatsApp + 8618078869184
Wybierz język

    Projekt OSD aplikacji wideo opartej na FPGA

     

    W ostatnich latach cyfrowe systemy nadzoru wideo były szeroko stosowane w różnych dziedzinach, takich jak banki, autostrady i budynki. W cyfrowych systemach nadzoru wizyjnego technologia OSD (On Screen Display) jest nieodzowną częścią. OSD zapewnia użytkownikom przyjazny interfejs człowiek-maszyna, umożliwiając użytkownikom uzyskanie większej ilości dodatkowych informacji.

     

    1. Skład systemu


       System przedstawiony w tym artykule to kompletny system monitoringu wizyjnego oparty na TI DSP TMS320DM6? 3 i FPGA. Obsługuje 1 kanał wejścia wideo i 1 kanał wyjścia wideo, a także zapewnia interfejs sieciowy.

     
        Wejście wideo jest realizowane przez ekonomiczny dekoder wideo TVP5150A firmy TI. TVP5150A może realizować zbiór dwóch kompozytowych wejść wideo lub jednego sygnału wideo S-video. Rejestr jest konfigurowany przez I2C, a wyjściowy cyfrowy sygnał wideo jest zgodny ze standardem ITU656.

     
        Cyfrowy sygnał wideo dekodowany przez TVP5150A jest przesyłany do DSP przez port wideo 1 DM6? 3, a niezbędne przetwarzanie wideo jest wykonywane przez DSP, a następnie przesyłane do zdalnego urządzenia przez interfejs sieciowy. Z drugiej strony po DM6? 3 przetwarza dane wideo otrzymane z sieci, są wyświetlane i wyprowadzane przez SAA7105 przez port wideo 2 przez FPGA. 

     
        Część wyjściowa jest realizowana przez SAA7105. SAA7105 to wysokowydajny koder wideo firmy NXP, który może zapewnić kompozytowe wyjście wideo, wyjście wideo VGA i wyjście sygnału wideo HDTV o wysokiej rozdzielczości. Sterowanie SAA7105 również odbywa się poprzez I2C, a odbiera on cyfrowy sygnał wizyjny kompozytowego standardu ITU656.

     
        Część przetwarzania wideo przyjmuje TI DSP TMS320DM6 3 do realizacji. Główna częstotliwość DM6?3 może osiągnąć 600 MHz i są dwa 20-bitowe porty wideo. Porty wideo obsługują cyfrowe interfejsy wideo, takie jak BT.656 i Y/C. DM6?3 integruje również sieciowy adres MAC w celu realizacji dostępu do sieci.

     
       Szybkość rozwoju wydajności sprzętu jest zawsze trudna do zaspokojenia potrzeb oprogramowania. W coraz bardziej złożonych zastosowaniach przetwarzania wideo DSP odpowiada za złożone zadania przetwarzania wideo, a zasoby stają się bardzo ograniczone. Dlatego przy projektowaniu tego systemu FPGA jest wykorzystywany do realizacji projektu OSD, co może zmniejszyć obciążenie DSP.


     
        Część implementacji OSD wykorzystuje XC3S250E firmy Xilinx. XC3S250E to układ FPGA serii Xilinx SPARTAN-3E z 250,000 XNUMX bramek logicznych.


    2. Implementacja OSD
     
        SAA7105 nie może realizować funkcji OSD, ale jest realizowana przez XC3S250E. Główny układ kontrolny DM6? 3 musi tylko poinformować FPGA o treści i pozycji do wyświetlenia, a konkretna praca jest wykonywana przez FPGA. Logiczny schemat blokowy OSD przedstawiono na rys. 2.
     Projekt OSD aplikacji wideo opartej na FPGA

     

     OSD FPGA odbiera dane OSD i instrukcje sterujące z DSP DM6 3 przez EMIFA, odbiera dane wideo przez port wideo DSP 1 i nakłada informacje OSD na dane wideo i wysyła je do kodera wideo SAA7105. Poniżej opisano moduły funkcjonalne OSD.
     
       Port danych modułu dekodowania adresu jest połączony z niskimi 32-bitowymi danymi EMIFA z DSP DM6 3 i odbiera dane i informacje sterujące wysyłane przez DM6 3. Te dane i informacje kontrolne są oryginalnymi 32-bitowymi danymi wysłanymi przez DM6 3. Moduł dekodowania adresu umieszcza odebrane dane OSD, takie jak zawartość OSD, w wewnętrznym FIFO FPGA w 32-bitowym formacie danych. Informacje sterujące są wykorzystywane głównie do sterowania OSD poprzez zestaw rejestrów kontrolnych.

     
       Istnieje również moduł interfejsu wideo podłączony bezpośrednio do procesora DSP. Moduł interfejsu wideo jest podłączony do portu wideo 2 DSP i przechowuje dane oraz informacje sterujące z portu wideo DSP. Te informacje sterujące są bezpośrednio przesyłane do wielokanałowego modułu sterującego OSD, a informacje sterujące bezpośrednio sterują również dekoderem wideo SAA7105.

     
        Logika sterowania OSD wysyła informacje sterujące uzyskane z grupy rejestrów sterowania do każdego modułu funkcjonalnego OSD w celu realizacji sterowania OSD. Grupa rejestrów jest głównie podzielona na dwie części: jedna to asynchroniczna grupa rejestrów, która wysyła informacje sterujące, takie jak reset, włączenie OSD i wybranie szerokości danych do OSD; druga to grupa rejestrów synchronicznych, która głównie kontroluje informacje o pozycji OSD.

     
        Moduł dekodujący OSD pobiera dane do wyświetlenia z FIFO zgodnie z informacjami sterującymi logiki sterującej i wysyła je do modułu OSD CLUT w synchronizacji z danymi wideo. Dane uzyskane z FIFO to oryginalne 32-bitowe dane DSP, a dane wymagane przez moduł OSD CLUT to 8/16-bit, więc moduł rozpakowujący OSD musi rozpakować 32-bitowe dane zgodnie z częstotliwością portu wideo. Dane 32-bitowe przesyłane są do modułu OSD CLUT o szerokości 8/16.
     
        Inną funkcją modułu FIFO jest przesyłanie informacji o statusie FIFO do modułu generatora zdarzeń DMA, takich jak FIFO pełny lub FIFO pusty. Generator zdarzeń DMA monitoruje te zdarzenia, a jeśli wystąpią, to są wysyłane do DM6? 3 w trybie przerwania, aby uzyskać poprawne operacje odczytu i zapisu do FIFO.
     
        Moduł OSD CLUT wyszukuje odpowiednią wartość YCbCr dla danych każdego piksela odebranych z modułu rozpakowującego OSD i kontroluje sekwencję wyjściową tych danych OSD CLUT. Ta relacja konwersji jest przesyłana przez DSP przez 24-bitowy port danych. Dane z modułu OSD CLUT są bezpośrednio wyprowadzane do modułu wielokanałowego sterownika OSD.
     
        Wielokanałowy moduł sterujący OSD określa wyjściowe dane wideo zgodnie z bitem sterującym Alpha odebranym z modułu OSD CLUT. Jeśli bieżące informacje OSD, to znaczy bit kontrolny Alpha, są prawidłowe, dane OSD są wysyłane do modułu konwersji danych. W przeciwnym razie wyślij oryginalne dane wideo otrzymane z modułu interfejsu wideo, aby zrealizować funkcję OSD.
     
        Dane wyjściowe z wielokanałowego kontrolera OSD nie są przesyłane bezpośrednio do dekodera wideo, ale za pośrednictwem modułu konwersji danych, zgodnie z określonymi warunkami aplikacji, przeprowadzana jest niezbędna konwersja formatu danych. Z taktowania interfejsu SAA7105 można zauważyć, że gdy SAA7105 jest skonfigurowany do kompozytowego wyjścia wideo, wymagane dane to dane z jednym zboczem zegara. W tej chwili moduł konwersji danych nie działa, a dane otrzymane z wielokanałowego modułu sterującego OSD są przesyłane w stanie nienaruszonym. Dla SAA7105; jeśli SAA7105 jest skonfigurowany w trybie wyjściowym VGA lub HDTV, wymagane są dane zbocza podwójnego zegara. W tym czasie moduł konwersji danych konwertuje dane pojedynczego zbocza zegara otrzymane z kontrolera OSD na dane zbocza podwójnego zegara i wysyła je do dekodera wideo SAA7105.
     
        Widać, że FPGA zakończyło całą pracę OSD. Jeśli chcesz wyświetlić zawartość OSD, DM6? 3 musi tylko wysłać instrukcje sterujące do FPGA przez port EMFIA. Instrukcje te obejmują oczywiście informacje o treści i lokalizacji OSD.
     


    3. Sterowanie OSD
     
        Projekt OSD zaimplementowany w XC3S250E realizuje wyświetlanie OSD na podstawie odebranych informacji o lokalizacji i treści OSD, bez żadnych ograniczeń dotyczących treści wyświetlanych przez OSD, co jest bardzo elastyczne i wygodne. Poniższy przykład przedstawia wyświetlanie chińskich znaków OSD w celu zilustrowania operacji sterowania OSD.
     
        Aby poprawnie wyświetlać znaki chińskie, wprowadzony kod wewnętrzny znaków chińskich musi zostać przekonwertowany na odpowiedni kod lokalizacji. W przypadku tej funkcji używamy funkcji Uint32 Code_Converse(unsigned char *CodeNPointer), której wejściem jest wskaźnik wskazujący chiński znak do przekonwertowania. Zwracana wartość to kod lokalizacji odpowiadający chińskiemu znakowi. Wyświetlanie OSD realizowane jest przez funkcję OSDHZ?isplay:


      unieważnij wyświetlanie OSDHZ_{
    Uint8 *pFrame
    Skok Uint32
    OSDUTIL_Point* lok
    Kod Uint32Q
    OSDHZ?ont *czcionka
    Uint8 fgKolor
    Uint8 bgKolor
    }
        Wśród nich Uint8 *pFrame jest buforem bufora dla wyjścia OSD; Rozstaw Uint32 to wartość piksela wyświetlana w każdym wierszu; OSDUTIL_Point *loc to pozycja wyświetlania pierwszego znaku; Uint32 CodeQ to numer kierunkowy do wyświetlania chińskich znaków; Czcionka OSDHZ?ont * to czcionka używana do wyświetlania chińskich znaków; Uint8 fgColor wyświetla kolor pierwszego planu chińskich znaków; Uint8 bgColor wyświetla kolor tła chińskich znaków.


        Dlatego, jeśli chcesz wyświetlić chińskie znaki, wystarczy przekonwertować chińskie znaki na niezbędny system kodów, a następnie wyprowadzić przekonwertowany numer kierunkowy do OSD FPGA. Oczywiście do wyświetlania chińskich znaków niezbędna jest chińska biblioteka znaków.

     

     

     

     

    Lista wszystkich pytań

    Przezwisko

    E-mail

    pytania

    Nasze inne produkty:

    Profesjonalny pakiet wyposażenia stacji radiowych FM

     



     

    Hotelowe rozwiązanie IPTV

     


      Wpisz e-mail, aby otrzymać niespodziankę

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afrikaans
      sq.fmuser.org -> albański
      ar.fmuser.org -> arabski
      hy.fmuser.org -> Armeński
      az.fmuser.org -> Azerbejdżański
      eu.fmuser.org -> baskijski
      be.fmuser.org -> białoruski
      bg.fmuser.org -> bułgarski
      ca.fmuser.org -> kataloński
      zh-CN.fmuser.org -> chiński (uproszczony)
      zh-TW.fmuser.org -> chiński (tradycyjny)
      hr.fmuser.org -> chorwacki
      cs.fmuser.org -> czeski
      da.fmuser.org -> duński
      nl.fmuser.org -> holenderski
      et.fmuser.org -> estoński
      tl.fmuser.org -> filipiński
      fi.fmuser.org -> fiński
      fr.fmuser.org -> francuski
      gl.fmuser.org -> galicyjski
      ka.fmuser.org -> gruziński
      de.fmuser.org -> niemiecki
      el.fmuser.org -> grecki
      ht.fmuser.org -> kreolski haitański
      iw.fmuser.org -> hebrajski
      hi.fmuser.org -> hindi
      hu.fmuser.org -> węgierski
      is.fmuser.org -> islandzki
      id.fmuser.org -> indonezyjski
      ga.fmuser.org -> irlandzki
      it.fmuser.org -> włoski
      ja.fmuser.org -> japoński
      ko.fmuser.org -> koreański
      lv.fmuser.org -> łotewski
      lt.fmuser.org -> litewski
      mk.fmuser.org -> macedoński
      ms.fmuser.org -> malajski
      mt.fmuser.org -> maltański
      no.fmuser.org -> norweski
      fa.fmuser.org -> perski
      pl.fmuser.org -> polski
      pt.fmuser.org -> portugalski
      ro.fmuser.org -> rumuński
      ru.fmuser.org -> rosyjski
      sr.fmuser.org -> serbski
      sk.fmuser.org -> słowacki
      sl.fmuser.org -> słoweński
      es.fmuser.org -> hiszpański
      sw.fmuser.org -> suahili
      sv.fmuser.org -> szwedzki
      th.fmuser.org -> Tajski
      tr.fmuser.org -> turecki
      uk.fmuser.org -> ukraiński
      ur.fmuser.org -> Urdu
      vi.fmuser.org -> wietnamski
      cy.fmuser.org -> walijski
      yi.fmuser.org -> jidysz

       
  •  

    FMUSER Wirless Transmituj wideo i audio łatwiejsze!

  • Kontakt

    Adres:
    Nr 305 Pokój HuiLan Budynek nr 273 Huanpu Road Guangzhou Chiny 510620

    E-mail:
    [email chroniony]

    Telefon / WhatApps:
    + 8618078869184

  • Kategorie

  • Newsletter

    PIERWSZE LUB PEŁNE NAZWISKO

    E-mail

  • rozwiązanie paypal  Western UnionBank Chin
    E-mail:[email chroniony]   WhatsApp: + 8618078869184 Skype: sky198710021 Porozmawiaj ze mną
    Prawa autorskie 2006-2020 Powered By www.fmuser.org

    Skontaktuj się z nami