www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hitachi SX14Q004 Farben


Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/0...]

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Matt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, dann verusche ichs auch mit beidem. Muss mich da allerdings noch 
einarbeiten.

Danke für deine Hilfe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.