Suche jemanden der mir für ein "Proof of Concept" auf einem FPGA Entwicklungsboard wie z.B. Zybo Z7 einen FPGA programmieren kann. Es geht um Videosignalbearbeitung vom HDMI. Hier ganz kurz erklärt: Das HDMI Signal soll auf eine bestimmte Pixelanzahl skaliert bzw. beschnitten werden. Fall_1: HDMI_IN 1920x1080 Pixel, HDMI_OUT 1920x720 Pixel. (Hier soll der Bereich 1920x720 aus dem 1920x1080 Frame ausgeschnitten werden) Fall_2: HDMI_IN 3440x1440 Pixel, HDMI_OUT 1720x720 Pixel. (Hier sollen die Pixel halbiert werden)
Das Beispiel geht schon Mal in eine richtige Richtung: https://digilent.com/reference/programmable-logic/zybo-z7/demos/hdmi?redirect=1 Wobei HDMI_IN 3440x1440 Pixel schon nicht so wenig ist, oder?
Robert S. schrieb: > HDMI_IN 1920x1080 Pixel, HDMI_OUT 1920x720 Pixel. (Hier soll der Bereich > 1920x720 aus dem 1920x1080 Frame ausgeschnitten werden) Dafür gibt es einen Core von Xilinx. Robert S. schrieb: > HDMI_IN 3440x1440 Pixel, HDMI_OUT 1720x720 Pixel. (Hier sollen die Pixel > halbiert werden) Auch das müsste der rescaler können. Die Pixel müssen aber nicht halbiert, sondern vergrößert werden, also braucht es noch ein resampling filter. Das gibt es auch als Core. Und: Man braucht den HDMI-Core + PHY, die sind alle kostenpflichtig. Die Weitergabe der Sourcen wird also ein lizenztechnisches Problem. Das zu bauen sind 2-3 Wochen bis das geht, wobei ich nicht sicher bin, ob das ZYBO das technisch auch kann, denn: N. M. schrieb: > Wobei HDMI_IN 3440x1440 Pixel schon nicht so wenig ist, oder? Das ist so ein wide screen Format für game-Monitore, wenn ich nicht irre und es könnte sein, dass der CORE das nicht kann oder die Transceiver da nicht mitmachen.
Tipp schrieb: > Das ist so ein wide screen Format für game-Monitore, wenn ich nicht irre > und es könnte sein, dass der CORE das nicht kann oder die Transceiver da > nicht mitmachen. Ohne Angabe der Pixelfrequenz kann man dazu eigentlich gar keine Aussage machen. 150 MHz (~1080p60) laeuft nach meiner Erinnerung gerade noch stabil mit einer simplen Pipeline. Crop/Scale ist auch mit dem AXI-Overhead recht billig. Darueber wirds schwierig, ohne einen HDMI Transceiver mit vernuenftigem Lane-Deskewing sollte man das nicht in ein Produkt zwaengen. @Robert: Mehr Butter bei die Fische, oder Xilinx-FAEs loechern. Gratis-Tips in der 'Suche'-Form abholen kommt hier nicht so wahnsinns gut an.
Johannes S. schrieb: > andere suchen händeringend nach FPGAs... Und wieder andere haben die, aber nicht im passenden Gehäuse Lager .....
HDMI_IN Pixel Clock: 319.75MHz Horizontal Active : 3440 Horizontal Blanking : 160 Vertical Active : 1440 Vertical Blanking : 41 Horizontal Sync Offset: 48 Horizontal Sync Pulse: 32 Vertical Sync Offset: 3 Vertical Sync Pulse: 10 Horizontal Display Size: 800 Vertical Display Size: 335 Horizontal Border: 0 Vertical Border: 0 Interlaced : false Stereo Mode: 0 Sync Type: 3 HDMI_OUT Pixel Clock: 89.3MHz Horizontal Active : 1920 Horizontal Blanking : 128 Vertical Active : 720 Vertical Blanking : 9 Horizontal Sync Offset: 25 Horizontal Sync Pulse: 15 Vertical Sync Offset: 1 Vertical Sync Pulse: 2 Horizontal Display Size: 2048 Vertical Display Size: 732 Horizontal Border: 0 Vertical Border: 0 Interlaced : false Stereo Mode: 0 Sync Type: 3
Robert S. schrieb: > Pixel Clock: 319.75MHz Zu schnell. Also nicht die Clock, aber eben die zugehörige Datenrate der Farbkanäle.
Gustl B. schrieb: > Zu schnell. Also nicht die Clock, aber eben die zugehörige Datenrate der > Farbkanäle. Die kommen doch double pixel und somit mit der halben Frequenz. Vollformat UHD 4K ist noch schneller, braucht 297. Es dürfte aber die Transceiver dieses Bausteins überfordern, nehme ich an. Der ZYBO ist eher eine mittelpreisige Architektur. Robert S. schrieb: > Pixel Clock: 89.3MHz Wo kommt denn DER Takt her? 1920 sind 148.5 oder die Hälfte bei I60/30Hz und bei 720 wird das Bild doch noch kleiner und der Takt langsamer. Komische Formate sind das. Da bin ich nicht so sicher, ob der Xilinx Video Core das kann. Lade es einfach und probiere es aus.
Tipp schrieb: > Die kommen doch double pixel und somit mit der halben Frequenz. Immer noch zu schnell. Tipp schrieb: > Es dürfte aber die Transceiver dieses Bausteins überfordern, nehme ich an. Welche genau? Der Baustein hat keine. Tipp schrieb: > Der ZYBO ist eher eine mittelpreisige Architektur. Das ist ein XC7Z010-1CLG400C die Eingänge/Ausgänge können nichtmal 1 GBit/s. Auch nicht wenn man DDR spricht.
Moin, Gustl B. schrieb: > Das ist ein XC7Z010-1CLG400C die Eingänge/Ausgänge können nichtmal 1 > GBit/s. Auch nicht wenn man DDR spricht. Ja, aber wenn man IOSERDES spricht, scheints etwas schneller zu gehen: Xilinx schrieb im Zynq-7000-Overview: > By cascading two IOSERDES from two adjacent pins (default from > differential I/O), wider width conversions > of 10 and 14 bits can also be supported. The ISERDES has a special > oversampling mode capable of asynchronous data > recovery for applications like a 1.25 Gb/s LVDS I/O-based SGMII interface. OK, dann ist man auch erst bei 125MHz Pixelclock und damit schon noch ordentlich weit weg von den geforderten 320Mhz. Aber die wuerden eh' auch schon lange nicht mehr durch den Cableequalizer auf dem Board gehen, da ist dann bei 225MHz Ende Gelaende. Gruss WK
:
Bearbeitet durch User
https://www.xilinx.com/support/documentation/data_sheets/ds187-XC7Z010-XC7Z020-Data-Sheet.pdf Table 50. 1,25 GBit/s gelten für die Speedgrades 2 und 3. Dergute W. schrieb: > Ja, aber wenn man IOSERDES spricht, scheints etwas schneller zu gehen: Die sollte man sowieso verwenden. Dergute W. schrieb: > cascading Das bringt keine höhere Datenrate, aber man kann eben mehrere Bits rausholen. Was aber komischerweise nicht geht ist 12 Bits. Aber egal, dann nimmt man einen SerDes und eine Gearbox.
Gustl B. schrieb: > 1,25 GBit/s gelten für die Speedgrades 2 und 3. Jamei, wenn da der langsame Zynq verbaut ist, dann reduziert sich die Pixelclk halt von 125 auf 95MHz. Fuer 1080p30 oder 720p60 taet's noch reichen, aber die exotische Aufloesung hier ist doch bissl zu hoch. Gustl B. schrieb: > Das bringt keine höhere Datenrate, aber man kann eben mehrere Bits > rausholen. Was aber komischerweise nicht geht ist 12 Bits. Aber egal, > dann nimmt man einen SerDes und eine Gearbox. HDMI/TMDS ist iirc 10 bit breit, wenn man das anders als 1:10 deserialisiert, wirds aaarg ungemuetlich... Gruss WK
Dergute W. schrieb: > HDMI/TMDS ist iirc 10 bit breit, wenn man das anders als 1:10 > deserialisiert, wirds aaarg ungemuetlich... Ja, sind 10 Bits. Aber arg ungemütlich ist das auch nicht wenn man 8 Bits deserialisiert. Als einfachen Ansatz könntest du das kleinste gemeinsame Vielfache nehmen von 8 und 10, also 40. Du deserialisierst immer 8 Bits je Takt und alle 5 Takte kommen 40 Bits raus die du dann in 4 mal 10 Bits aufteilst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.