Ein kurzer Hintergrund:
Ambilight ist ein System auf einigen Philips Fernsehgeräten, das die Farbinformationen auf dem Bildschirm analysiert und dann einige LEDs auf der Rückseite des Displays anbringt, um die Farbe des Bildschirms auf die Wand zu projizieren. Es ist ein ziemlich raffinierter Effekt. Es gibt jetzt Klone dieses Systems, die einen PC verwenden, um das Video zu verarbeiten und die LEDs zu steuern. Ich finde das etwas übertrieben - ich benutze eine ganze Maschine, um ein paar LEDs zu tanzen ...
Ich möchte Bunnies NeTV so modifizieren , dass es unverschlüsselt verarbeitet wirdHDMI-Video einspeisen und einige LEDs ansteuern. Ich weiß, dass das NeTV für andere Zwecke entwickelt wurde, aber ich bin der Meinung, dass es modifiziert werden kann, um mein Ziel zu erreichen. Das zugrunde liegende Linux-Subsystem, I2C-Spoofing, Video-Overlay usw. interessieren mich nicht. Derzeit geht es mir nicht um die Arbeit mit HDCP-verschlüsselten Streams.
FPGA-
Blockdiagramm Dies ist ein Blockdiagramm von einer der Präsentationsfolien von bunnie.
Der Rest des Foliensatzes ist hier .
Diese Folie scheint zu implizieren, dass Videopixel tatsächlich dekodiert (nicht unbedingt entschlüsselt ) werden .
Endlich ... einige meiner Gedanken und Fragen:
Kann dies auf meiner gewünschten Hardware durchgeführt werden? Wenn "Ja", fahren Sie fort! Wenn "nein", sag mir, was ich noch brauche!
Kann ich Videoinformationen ohne externen Speicher verarbeiten? Soweit ich das beurteilen kann, gibt es keinen Speicher, auf den das FPGA direkt zugreifen kann. Dies hängt wahrscheinlich davon ab, welchen Algorithmus ich zum Verarbeiten der Videodaten verwende. Um so wenig FPGA-Block-RAM wie möglich zu verwenden, würde ich wahrscheinlich eine Art "iterative Summierung" der eingehenden Pixel verwenden wollen, anstatt ein Ganzes zu speichern Bildrahmen und dann Mittelung der Farben. Irgendwelche Hinweise zur Implementierung dieses Algorithmus? Wie ich damit anfangen kann, ist meine größte Hürde.
Ich habe den Quellcode untersucht, wo ich die Videodaten "abhören" soll.
Dies scheint der richtige Ort zu sein:
Ich weiß, dieses Bild ist lang - es ist das Beste, was ich tun kann, um das Lesen klar zu machen. Beschuldigen Sie Xilinx 'Werkzeug dafür!
Dies scheint die TMDS-Daten aufzunehmen und 8-Bit für jede Farbe auszugeben.Ich sollte eine Art Zustandsmaschine für den LED-Treiber haben - bei jedem Taktzyklus werden die Pixelinformationen von jedem Modul abgerufen, das ich zur Verarbeitung der Videodaten erstelle.
Tut mir leid, wenn das wortreich oder lang ist - ich versuche gründlich zu sein ... Ich brauche nur etwas Hilfe, um damit in Gang zu kommen. Dies ist mein erster Versuch in einem FPGA-Projekt - einige mögen sagen, dass es für Anfänger zu schwierig ist, aber ich sage ... ich muss irgendwo anfangen :) Danke fürs Lesen.