Hallo Leute, Ich möchte das Hitachi SX14Q004 STN Panel(resistance type) mit einem FPGA(Spartan 3A) ansteuern. Datenblatt: [http://docs-europe.electrocomponents.com/webdocs/0784/0900766b80784957.pdf] Dieses Display hat eine Auflösung von 320(960 RGB)x240 So wie ich das Datblatt verstanden habe, kann man nur 8 Farben darstellen. Das wäre für eine Videoaufnahme etwas sehr wenig. Allerdings bin ich ein neuling in digitaler Videotechnick. Ich habe im Forum schon nach ähnlichen Beiträgen gesucht, aber nichts gefunden was mein Problem behandelt. Wenn man T = 55us wählt kann man mit 75fps arbeiten. Ich habe einen Videoinput mit 25fps, dass bedeutet ich sende einfach drei bilder und bekomme so 512 Farben. Da ich immer vom MSB weg runter gehe. Würde das so funktionieren?? Danke für eure Hilfe, schon im Vorraus
Matt wrote: > So wie ich das Datblatt verstanden habe, kann man nur 8 Farben > darstellen. Ja. > Wenn man T = 55us wählt kann man mit 75fps arbeiten. Ich würde auf 100Hz oder 125Hz gehen. > Ich habe einen Videoinput mit 25fps, Wenn das PAL ist, dann hast du 50Hz mit 2 Halbbildern. > dass bedeutet ich sende einfach drei bilder und bekomme so 512 Farben. Da ich immer vom MSB weg runter gehe. Du willst also die Bits binär nacheinander senden? Das geht so nicht. Mit 3 Bildern kannst du 4 Zustände pro Farbe darstellen, nämlich 0/3, 1/3, 2/3 und 3/3. Das macht 2bit pro Farbe, also 64bit insgesamt. Du brauchst im Prinzip eine PWM, die in jedem Bild erhöht wird. Und mit diesem PWM Wert vergleichst du deine Farbinformationen. Wenn das LCD mit einer höheren Framerate als das Videosignal läuft, dann musst du das Bild zwischenspeichern. Bei 4bpp wären das 300kBit. Könnte vom Blockram her bei einem kleineren FPGA knapp werden. Notfalls halt externes RAM. Um mehr Farben zu bekommen musst du entweder mehr PWM Stufen machen. Da dadurch aber die effektive Framerate reduziert wird, ist hier iregenwann Schluss. Daher verwendet man meist noch ein Dithering um Pseudofarben zu erzeugen. PS: Keine Ahnung ob die das beim SX14Q004 behoben haben, aber das SX14Q001 ist extrem empfindlich auf der CL1 Leitung. Wenn da auch nur der kleinste Überschwinger drauf ist, macht das LCD irgendeinen Mist.
Erstmal danke für die rasche antwort. Also ich glaub ich hab das vorhin etwas ungenau beschrieben. Genauer: Ich bekomme von einem Videodecoder (ADV7183B) alle 37ns (13,5MHz) drei 8-bit vectoren (RGB), also eine Farbtiefe von 24bpp. Ich möchte mir von allen dreien(RGB), natürlich von allen in einer Zeile und einem Frame, das MSB nehmen und ausgeben, danach nehme ich das nächste bit usw.. Das bedeutet in Summe(25fps) 9bit R(2:0), G(2:0), B(2:0) dadurch gebe ich mit 75fps meine drei Bilder aus, jedoch wird es für das Auge wie ein 25fps Bild mit 512 Farbne wircken. So hab ich mir das vorgestellt. Liege ich da völlig falsch?
Aja hab was vergessen: kannst du mir irgendeinen link oder so schicken, wo dithering genauer beschr. ist, oder tutorials. Darüber hab ich schon gelesen, allerdings nichts detailierteres gefunden.
Matt wrote: > Das bedeutet in Summe(25fps) Wie zuvor schon geschrieben: Es sind 50fps. > dadurch gebe ich mit 75fps meine drei Bilder aus, jedoch wird es für das > Auge wie ein 25fps Bild mit 512 Farbne wircken. So hab ich mir das > vorgestellt. Liege ich da völlig falsch? Ja, du liegst falsch. Ein Beispiel: Bitmuster 110 = 2/3, Bitmuster 011 = 2/3. Auf dem LCD ergibt das die gleiche Farbe, aber 110 ist heller als 011. Matt wrote: > Aja hab was vergessen: kannst du mir irgendeinen link oder so schicken, > wo dithering genauer beschr. ist, oder tutorials. Kenne ich jetzt auswendig keine. Ordentlich macht man es z.B. so: http://de.wikipedia.org/wiki/Floyd-Steinberg-Algorithmus Quick&Dirty ist viel einfacher: Die 2 höchstwertigen Bits werden für die Graustufen mit PWM genutzt. Die nächsten z.B. 2bits für Dithering. Diesen Wert rundet man zur nächsthöheren oder nächstniedrigeren PWM Stufe. Den Fehler der durch das Runden entsteht, addiert man auf und addiert dazu den nächsten Pixel. Das führt dazu, dass im Mittel über eine Zeile mehr Zwischenwerte erzeugt werden, da ein Pixel mal auf und der danebenliegende abgerundet werden.
aso, jetzt verstehe ich das mit den 2bit von vorhin. das mit den 50fps ist mir schon klar, nur kann ich nicht ganze Bilder ausgeben. Muss ich unbedingt zuerst alle odd und dann alle even ausgeben? Wenn nicht kann ich das mit den 3 bildern sowieso vergessen. Also würdest du mir dithering empfehlen, es sieht so aus als bliebe mir nichts anderes übrig. danke
Matt wrote: > das mit den 50fps ist mir schon klar, nur kann ich nicht ganze Bilder > ausgeben. Muss ich unbedingt zuerst alle odd und dann alle even > ausgeben? Du kannst entweder abwechselnd ODD und EVEN ausgeben, oder du kannst auch nur eines von beiden verwenden. Das ist im Grunde egal, da das LCD sowieso nur etwa die halbe Auflösung hat als das Eingangssignal. Da 50Hz auch zu wenig sind, sollte man das Bild auf jedenfall zwischenspeichern, und dabei kann man ja auswählen welche Halbbilder man speichert. > Also würdest du mir dithering empfehlen, es sieht so aus als bliebe mir > nichts anderes übrig. Empfehlen ist relativ. Sowohl PWM als auch Dithering sind beide nicht perfekt, je nachdem wie sehr bewegt die Bilder sind, kann es sein, dass Dithering sinnvoller ist, als bei stehenden Bildern. In der Praxis verwendet man meist eine Kombination aus beiden. Die größeren Controller verwenden meist 16 Stufen PWM und 4 Stufen Dithering. Ich habe mit 8 Stufen PWM + 8 Stufen Dithering gute Erfahrungen gemacht. PWM oder Dithering alleine ist nur bei wenigen Farbstufen sinnvoll.
ok, dann verusche ichs auch mit beidem. Muss mich da allerdings noch einarbeiten. Danke für deine Hilfe
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.