Anbieter zum Thema
Überblick des Grafik-IP (Video Display Controller und OpenVG)
Wie beschrieben enthält die RZ/A-Familie einen schnellen Prozessor mit hoher Rechenleistung auf der Basis eines 10 MByte großen internen Speichers sowie einen breiten Bus zur Vermeidung von Kollisionen. Der Prozessor unterstützt auch Peripherie für alle erforderlichen Standard-Schnittstellen und erlaubt dem Systementwickler die Auslegung von Systemen mit geringen Stücklistenkosten ohne Kompromisse bei der Leistung. Alles schön und gut, aber der eigentliche Knackpunkt der Zielanwendung wurde noch nicht angesprochen: Wie wird der Bildschirm angesteuert?
Die RZ/A-Prozessoren besitzen zwei Funktionen, mit denen die Ansteuerung eines Bildschirms sehr einfach ist, und die den Aufbau fortschrittlicher GUIs ermöglichen. Die erste dieser Funktionen ist der VDC5, ein Video Display Controller der fünften Generation von Renesas. Der VDC5 kann Bildschirme mit bis zu 1999 Pixeln x 2035 Zeilen ansteuern. Dabei unterstützt der VDC5 bis zu zwei Kanäle, so dass er zwei Bildschirme parallel zueinander ansteuern kann. Die Funktion ist auch kompatibel zu standardisierten digitalen Schnittstellen und zu LVDS. So unterstützt der Baustein auch den Trend zur Nutzung der LVDS-Schnittstelle bei größeren Bildschirmen.
Der erste Funktionsblock des VDC ist der Input-Controller, der bis zu zwei Video-Eingangssignale im Maximalformat von 1440 x 1024 aufnehmen kann. Der Input-Controller unterstützt neben einer Phasenkompensation auch horizontale Rauschkorrektur sowie Kontrastkorrektur. Anschließend werden die Eingangssignale an den Skalierer-Funktionsblock weitergeleitet.
CLUT – Colour Lookup Table
Der Skalierer-Funktionsblock (je zwei pro VDC5-Kanal) übernimmt die Aufwärts- bzw. Abwärtsskalierung der zwei Video-Eingangssignale, um damit Bildsignale im passenden Format für den Bildschirm zu erzeugen. Die Bilder lassen sich auch rotieren und man kann die beiden Video-Eingangssignale sogar per Alpha-Blending und anhand einer Farb-Look-Up-Tabelle (Colour Lookup Table – CLUT) übereinanderlegen. Die endgültigen Bilder (wenn beide Eingänge separat behandelt werden) oder das endgültige Bild (wenn nur ein Eingang genutzt wird oder die beiden Eingangssignale überlagert werden) werden anschließend in einem Frame-Buffer im RAM gespeichert und an den Bild-Synthesizer weitergeleitet.
Der Bild-Synthesizer kombiniert bis zu vier einzelne Layer für die Erzeugung eines einzigen Bildes. Kommt nur ein Video-Eingang oder gar kein Eingang zum Einsatz, dann lassen sich diese Layer auch beliebig als separate Überlagerungs-Layer oder Icons von anderen Teilen der GUI nutzen. Das endgültige Einzelbild wird über einen Alpha-Blending-Prozess samt CLUT für den Bildschirm erzeugt und an den Ausgangs-Controller weitergeleitet.
Anschließend übernimmt der Ausgangs-Controller das generierte Bild und steuert damit den TFT-Bildschirm entweder über die LVDS-Schnittstelle oder den Digitalausgang in einem der vielen unterstützten Formate an: RGB888 (24-Bit Parallelausgang), RGB666 (18-Bit Parallelausgang), RGB565 (16-Bit Parallelausgang) oder RGB888 (8-Bit Seriell-Ausgang). Die Alpha-Blending-Funktion und die Kombination der zahlreichen Layer entlastet die CPU von dieser Aufgabe.
OpenVG-konforme Grafik-Engine
Die zweite für die HMI-Entwicklung nützliche Peripheriefunktion der RZ/A-Prozessoren ist die OpenVG-konforme Grafik-Engine, die einen 2D-Vektorgrafik-Beschleuniger enthält. Diese IP beschleunigt die Stufen 2 bis 8 der OpenVG-Pipeline mit Hilfe dedizierter Hardware und einer auf Konformität geprüften Bibliothek.
Die OpenVG-Engine lässt sich zum Befüllen der Frame-Buffer nutzen. Anschließend übernimmt der VDC5 die Übertragung der Bilddaten an den Bildschirm. Durch OpenVG lassen sich Vektor-Grafiken einsetzen. Dies ermöglicht eine erhebliche Verbesserung der Effizienz und des Look-&-Feels der GUI. Zwei Beispiele verdeutlichen dies: Muss ein Bild rotiert werden, so ist die einfachste Möglichkeit bei einem Bitmap-Bild, das man dieses 360-mal speichert, wobei jedes Einzelbild jeweils um 1° gedreht ist. Anschließend werden die Bilder einfach nacheinander gezeigt.
Dieses Verfahren bedeutet einen erheblichen Overhead in Bezug auf die Speicherbelegung und die Bandbreite des Bausteins. Eine Vektor-Implementation des gleichen Bildes lässt sich einfach rotieren. Die Unterstützung für diese Rotation erfolgt über die Hardware im RZ-Baustein. Das zweite Beispiel betrifft die Skalierung, und in diesem Fall sagt ein Bild mehr als tausend Worte, so dass weitere Erläuterungen unnötig sind.
* Robert Kalman ist Product Marketing Manager in der Industrial & Communications Business Group bei Renesas Electronics Europe.
Artikelfiles und Artikellinks
(ID:42366448)