DE10202602A1 - Verfahren und Vorrichtung zur Transformation eines Objektbildes - Google Patents

Verfahren und Vorrichtung zur Transformation eines Objektbildes

Info

Publication number
DE10202602A1
DE10202602A1 DE10202602A DE10202602A DE10202602A1 DE 10202602 A1 DE10202602 A1 DE 10202602A1 DE 10202602 A DE10202602 A DE 10202602A DE 10202602 A DE10202602 A DE 10202602A DE 10202602 A1 DE10202602 A1 DE 10202602A1
Authority
DE
Germany
Prior art keywords
memory
target
pixels
image
pixel data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10202602A
Other languages
English (en)
Inventor
Werner Knee
Uwe Beutnagel-Buchner
Axel Kirschbaum
Markus Lindner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE10202602A priority Critical patent/DE10202602A1/de
Priority to ES02018869T priority patent/ES2275788T3/es
Priority to EP02018869A priority patent/EP1291820B1/de
Priority to DE50208688T priority patent/DE50208688D1/de
Priority to JP2002261301A priority patent/JP2003115049A/ja
Priority to US10/351,038 priority patent/US7215830B2/en
Publication of DE10202602A1 publication Critical patent/DE10202602A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Transformation eines Objektbildes, insbesondere mit einer Rotation und/oder Skalierung, insbesondere zur Darstellung auf einer Anzeigeeinrichtung mit einer matrixförmigen Anordnung von Zielbildpunkten. DOLLAR A Um mit relativ geringem Aufwand eine schnelle und genaue Darstellung des gedrehten Objektes zu erreichen, wird vorgeschlagen, daß für zumindest einen Teil der Zielbildpunkte (Z¶i¶) durch eine inverse Transformation Quellbildpunkte (Q¶i¶ (- beta)) ermittelt werden, DOLLAR A die Quellbildpunkte (Q¶i¶ (- beta)) mit vorgespeicherten Objektbildpunkten (O¶k¶) verglichen werden und DOLLAR A aus diesem Vergleich Zielbildpunktdaten (R¶i¶, G¶i¶, B¶i¶, alpha¶i¶) der Zielbildpunkte (Z¶i¶) ermittelt werden. DOLLAR A Weiterhin wird eine geeignete Abbildung einer derartigen Transformation in Hardware und Software geschaffen.

Description

  • Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Transformation, insbesondere Rotation und/oder Skalierung, eines Objektbildes, insbesondere zur Darstellung auf einer Anzeigeeinrichtung mit einer matrixförmigen Anordnung von Zielbildpunkten.
  • Die Transformation kann insbesondere eine Drehung und/oder eine Skalierung, d. h. Dehnung bzw. Streckung eines als Pixeldatei bzw. Pixelmap gespeicherten Objektbildes sein. Derartige Verfahren werden in Grafikprogrammen verwendet, um Objektbilder um beliebige Winkel zu drehen und in x- und/oder y-Richtung zu skalieren. Sie werden insbesondere zur Darstellung eines Zeigers, Symbols oder einer Karte auf einer matrixförmigen Anzeigevorrichtung eines Kraftfahrzeuges, z. B. einem LCD-Display eingesetzt.
  • Ein Zeiger wird auf der Anzeigeeinrichtung eines Fahrzeuges im allgemeinen unter einem Drehwinkel angezeigt, der von einem Parameter, in der Regel einer Fahrzustandsgröße wie z. B. der Fahrzeuggeschwindigkeit oder Motordrehzahl, oder auch dem Tankinhalt oder einer Temperatur, abhängt. Das zu drehende Objektbild des Zeigers kann hierbei im allgemeinen farbig und mit unterschiedlicher Transparenz zur Wiedergabe vor einem Hintergrundbild ausgebildet sein, so dass jedem Bildpunkt des Zielbildes mehrere Bildpunktdaten, z. B. die Grundfarben R, G, B, eventuell auch ein Transparenzwert α, oder YUV und ggf. α, zuzuordnen sind. In Navigationssystemen werden vorgespeicherte Kartendaten zur Anpassung an die Größe bzw. Pixelzahl der Anzeigevorrichtung skaliert und die angezeigte Straßenkarte zum Teil kontinuierlich durch Drehung in Fahrtrichtung derartig ausgerichtet, dass die vertikale Richtung der Anzeigevorrichtung der Fahrtrichtung entspricht. Weiterhin kann zusätzlich eine Kompassanzeige in dem Bild wiedergegeben werden.
  • Weiterhin können in Grafikanwendungen z. B. eingescannte Bilder rechtwinklig ausgerichtet werden, Bilder vor dem Ausdruck zur optimalen Ausnutzung der Größe des Papierformates gedreht werden und Grafiksymbole in CAD- Programmen z. B. bei der Planung einer Wohnungseinrichtung platziert werden.
  • Bei der Rotation und/oder Skalierung von Objektbildern werden grundsätzlich pixelorientierte und vektororientierte Verfahren unterschieden. Beide Verfahren können in Hardware, in Software oder in einer Mischform aus beiden abgebildet werden.
  • Eine Abbildung eines Verfahrens in einer Hardware- Realisierung bedeutet, dass ein Algorithmus in einem Chip, in der Regel dem Grafikcontroller, fest verdrahtet ist. Dieser Hardwareblock erwartet vereinbarte Parameter über die Quelldaten, verarbeitet diese und stellt das Ergebnis z. B. in einem Speicherbereich wieder zur Verfügung. Algorithmen in Hardware müssen somit nur mit wenigen Daten versorgt werden und arbeiten die verdrahtete Aufgabe sehr schnell ab. Der Algorithmus selbst ist aber nicht mehr änderbar.
  • Eine Abbildung in einer Software-Realisierung erfolgt z. B. auf einer herkömmlichen Recheneinrichtung, z. B. auf einem PC. Ein Mikroprozessor erhält Befehle von einem Softwareprogramm. Das Softwareprogramm beinhaltet einen Algorithmus und arbeitet diesen mit Unterstützung des Mikroprozessors und seiner peripheren Einheiten ab. Ein Algorithmus in Software ist durch die leichte Änderungsmöglichkeit sehr flexibel, läuft aber durch das rein sequentielle Abarbeitungsverfahren des Mikroprozessors langsamer als der Hardware-Algorithmus.
  • Weiterhin werden z. B. in PCs mit leistungsfähiger Grafikkarte für Spieleanwendungen kombinierte Systeme verwendet, bei denen z. B. die Software die Drehung der Vektordaten übernimmt, jedoch das Zeichnen des neuen Bildes als Hardwareblock im Grafikcontroller realisiert ist. Diese Lösung kombiniert die Flexibilität der Software mit der Schnelligkeit der Hardware-Abbildung. Hierbei können z. B. ein Grafikcontroller, Mikroprozessor, Programmspeicher und Arbeitsspeicher über ein Bussystem verbunden sein. Die Software für einen Mikroprozessor und sämtliche benötigten Grafikdaten, einschließlich des Quell- Pixelbildes, werden in dem Programmspeicher gespeichert. Der Arbeitsspeicher dient dem Mikroprozessor und ggf. dem Grafikcontroller als Zwischenspeicher und beinhaltet einen Bildwiederholspeicher, in dem das auf der Anzeigeeinrichtung darzustellende Zielbild gespeichert wird. Das im Bildwiederholspeicher gespeicherte Bild wird zyklisch z. B. 60 mal pro Sekunde von dem Grafikcontroller ausgelesen und an die Anzeigeeinrichtung gesendet.
  • Bei pixelorientierten Verfahren wird das Objektbild als Pixelmap-Grafik beschrieben. Bei der Drehung und/oder Skalierung von Pixelmap-Grafiken wird jedes einzelne Pixel des Objektbildes mit einem Algorithmus neu berechnet. Bei der laufenden Anpassung eines Objektbildes an einen veränderlichen Drehwinkel führt eine derartige Berechnung in Echtzeit bei einer Softwareimplementierung zu einem hohen Rechenaufwand. Hardwaremäßige Realisierungen werden insbesondere im Automotiv-Bereich nicht verwendet. Zur Darstellung z. B. drehbarer Zeiger kann für jede mögliche Zeigerstellung ein Bild mit Zielbildpunktdaten vorab berechnet und gespeichert werden. Somit müssen für die jeweilige Zeigerstellung lediglich die Bildpunktdaten des Bildes aufgerufen und dargestellt werden. Nachteilhaft an einem derartigen Verfahren ist, dass insbesondere bei einer höheren Auflösung und farbiger, transparenter Darstellung ein erheblicher Speicherplatz erforderlich ist.
  • Bei vektororientierten Verfahren wird das Objektbild durch vorab gespeicherte Vektoren beschrieben. Die Drehung und/oder Skalierung der Vektor-Grafik erfolgt durch die Neuberechnung der einzelnen Vektoren mit anschließendem Neuzeichnen des Bildes. Ein Zeiger wird hierbei z. B. durch seine Zeigerkontur beschrieben. Die Vektoren werden für die Darstellung des Zeigers in dem jeweiligen Drehwinkel in Echtzeit rotiert.
  • Da bei diesen Verfahren nur die Vektoren der Zeigerkontur gespeichert sind, ist der erforderliche Speicherplatz gering. Bei der laufenden Darstellung des Zeigers ist nur die Transformation der Vektoren in Abhängigkeit eines Parameters zu berechnen, so dass auch der Rechenaufwand begrenzt ist. Mit derartigen Verfahren lassen sich jedoch im allgemeinen nur einfachere Darstellungen eines Zeigers gut beschreiben, da insbesondere aufwendigere Formgebungen und Zeigerdarstellungen mit mehreren Farbwerten und Transparenzwerten entweder eine hohe Anzahl von Vektoren oder eine Beschreibung jedes Bildpunktes durch einen eigenen Vektor erforderlich machen. Dies führt bei einer Softwareimplementierung zu einem in Echtzeit praktisch nicht durchführbaren Rechenaufwand, so dass allenfalls aufwendige Hardwarerealisierungen verwendet werden.
  • Die DE 198 16 795 A1 beschreibt ein Verfahren zur Darstellung von bewegten Objekten im Pixelmap-Format auf einer matrixförmigen Anzeigevorrichtung, bei dem für verschiedene Objektdarstellungen einer vorbestimmten Bahnkurve Pixelmaps jeweils im voraus berechnet und abgespeichert werden und die jeweilige Objektstellung entlang der Bahnkurve durch Lesen und Anzeigen der Pixelmaps sowie ggf. Berechnung eines Zwischenpixelmaps durch Interpolation aus den Bildpunktdaten der vorgespeicherten Pixelmaps durchgeführt wird. Somit werden die oben beschriebenen Verfahren der Speicherung sämtlicher Bildpunktdaten sowie der Berechnung jedes Zielbildes aufgrund eines vorgespeicherten Objektbildes kombiniert. Nachteilig hierbei ist jedoch, dass entweder eine hohe Anzahl von Zeigerdarstellungen mit entsprechendem Speicherplatz vorgespeichert sein muss oder die Qualität der Darstellung bei der Interpolation sichtbar beeinträchtigt wird.
  • Das erfindungsgemäße Verfahren mit den Merkmalen des Anspruchs 1 sowie die erfindungsgemäße Vorrichtung mit den Merkmalen des Anspruchs 19 bieten demgegenüber insbesondere den Vorteil, dass mit relativ geringem Hardwareaufwand, insbesondere geringem Speicherbedarf und klein dimensionierter Recheneinrichtung, und dennoch relativ geringem Rechenaufwand eine genaue Darstellung eines Objektbildes unter einer beliebigen Transformation, insbesondere einem beliebigen Drehwinkel möglich ist. Weiterhin wird vorteilhafterweise eine effiziente Abbildung einer Transformation, die insbesondere eine Rotation und/oder Skalierung und/oder eine Translation umfasst, in Hardware und Software geschaffen.
  • Hierbei werden unter einem Bildpunkt die Koordinaten bzw. das Koordinatenpaar xi, yi des Bildpunktes verstanden, wohingegen die dem Bildpunkt zugeordneten Daten, z. B. Farbwerte und Transparenz, als Bildpunktdaten bezeichnet werden.
  • Erfindungsgemäß wird somit - anders als bei den eingangs beschriebenen Verfahren - von den Zielbildpunkten ausgegangen. Es wird zumindest ein Teil der Zielbildpunkte - d. h. die durch ihre Spalten- und Zeilenzahl gegebenen x,y-Koordinaten - jeweils invers transformiert, wodurch entsprechende Quellbildpunkte - d. h. x,y-Koordinaten im Quellbild - ermittelt werden. Bei einer Transformation mit einer Drehung und/oder Skalierung ist die entsprechende inverse Transformation eine Drehung um den negativen Drehwinkel und/oder eine Skalierung um die Kehrwerte der Skalierungsfaktoren der x-, y-Richtung, was durch eine geeignete Matrix, im allgemeinen die Rotationsmatrix mit negativem Drehwinkel und den Kehrwerten der Skalierungsfaktoren dargestellt werden kann. Die so ermittelten Quellbildpunkte weisen in den meisten Fällen unganzzahlige x,y-Koordinatenwerte auf und stimmen mit keinem der Objektbildpunkte überein. Die Daten eines Zielbildpunktes werden nunmehr aus einem Vergleich seines Quellbildpunktes mit den vorgespeicherten Objektbildpunkten des Objektbildes ermittelt.
  • Da das zu transformierende Objektbild somit durch einzelne Bildpunkte beschrieben wird, d. h. als Pixelbild gespeichert ist, können auch komplexere Gestaltungen mit mehreren Farbstufen und Transparenzwerten in einer Pixelmap-Datei gespeichert werden. Indem nur ein Objektbild - d. h. insbesondere bei einem Drehwinkel von Null und mit Skalierungsfaktor eins - gespeichert ist, wird auch bei komplexerer Formgebung, Farbvariationen und Transparenzwerten ein sehr geringer Speicherplatz benötigt. Hierbei ist erfindungsgemäß eine Darstellung von monochromen oder farbigen Bildern und Bildern mit Transparenzwerten oder ohne Transparenzwerte möglich.
  • Durch einen Vergleich der Koordinaten des ermittelten Quellbildpunktes mit Minimal- und Maximalwerten kann ermittelt werden, ob er in das Objektbild fällt und somit nachfolgend seine Daten zu ermitteln sind oder er außerhalb des Objektbildes liegt und somit nicht relevant ist. Falls er nicht relevant ist, wird ein eventuell vorhandener Transparenzwert auf Null gesetzt oder, falls kein Transparenzwert vorhanden ist, sein Helligkeitswert beziehungsweise seine Farbwerte dem Hintergrundbild angepasst.
  • Falls der ermittelte Quellbildpunkt mit seinen Koordinaten genau auf einen Objektbildpunkt fällt, können direkt dessen Bildpunktdaten als R, G, B, α-Werte genommen werden. Ansonsten kann vorteilhafterweise eine Mittelung über die entsprechenden Bildpunktdaten der vier umgebenden Objektbildpunkte durchgeführt werden. Hierzu kann insbesondere eine lineare Mittelung verwendet werden, bei denen die Gewichtung der Bildpunktdaten jedes Objektpunktes proportional zum Abstand seiner Koordinaten zu den Koordinaten (d. h. Spalten- und Zeilenzahl) des Quellbildpunktes erfolgt. Eine derartige Gewichtung ist insbesondere für die Umsetzung in einem integrierten Schaltkreis (IC, z. B. auch einem ASIC (application specific integrated circuit)) gut geeignet. Bei einer derartigen Mittelung bleibt die Kantenglättung (antialiasing) des Objektbildes - im allgemeinen durch eine stufenweise Änderung des Transparenzwertes am Rande des Objektbildes - im wesentlichen erhalten, so dass gute Darstellungen des transformierten Objektes auch ohne eine nachträgliche Filterung des transformierten Objektbildes erreicht werden können.
  • Erfindungsgemäß kann der Rechenaufwand der inversen Transformation, insbesondere einer Rückwärtsdrehung der Zielbildpunkte, vorteilhafterweise noch verringert werden, indem bereits vor der Ermittlung der Quellbildpunkte die Zielbildpunkte mit dem Zielbild verglichen werden, innerhalb von dem die für die Darstellung des gedrehten Objektes relevanten Zielbildpunkte liegen. Hierzu können z. B. Eckbildpunkte des Objektbildes mit minimalen und maximalen Koordinatenwerten transformiert werden, z. B. um den positiven Drehwinkel gedreht werden, und somit entsprechende Eckbildpunkte des Zielbildes bilden. Somit wird bei dieser Ausführungsform ein Vergleich im Zielbild und nicht im Quellbild durchgeführt. Hierbei kann durch den relativ geringen Rechenaufwand der Transformation von vier Objektbildpunkten der spätere Rechenaufwand der inversen Transformation der Zielbildpunkte erheblich verringert werden. In beiden Ausführungsformen wird ein eventuell vorhandener Transparenzwert auf Null gesetzt oder der Helligkeitswert beziehungsweise die Farbwerte dem Hintergrundbild angepasst.
  • Um bei größeren Skalierungsfaktoren bzw. größeren Bereichen des Skalierungsfaktors hinreichend scharfe Darstellungen des gedrehten Objektes zu erreichen, können hierfür auch mehrere Objektbilder des gleichen Objektes z. B. mit unterschiedlicher Auflösung verwendet werden.
  • Weiterhin kann das Objektbild gegenüber der Auflösung des Zielbildes der Anzeigeeinrichtung auch mit einer höheren örtlichen Auflösung gespeichert werden. Ein derartiges Supersampling erfordert im wesentlichen lediglich einen höheren Speicherbedarf für das Objektbild mit den jeweiligen Bildpunktdaten. Der Rechenaufwand für die Rückwärtstransformation der Zielbildpunkte und der Mittelung ihrer Daten aus den Objektbildpunktdaten ist von der Anzahl der gespeicherten Objektbildpunktdaten unabhängig, so dass der Gesamtrechenaufwand bei einem derartigen Supersampling nicht erhöht ist.
  • Das Objektbild kann auch in mehrere Segmente unterteilt werden, die jeweils einzeln transformiert werden. Hierdurch kann insbesondere bei der Rotation eines länglichen Objektbildes, z. B. eines Zeigers, der zu berechnende Zielbildbereich gering gehalten werden. Zu den Segmenten des Objektbildes werden hierbei zunächst in oben beschriebener Weise durch Transformation ihrer Objektsegmenteckpunkte Zielsegmenteckpunkte ermittelt. Anschließend können gemäß einer Alternative die Ränder, die durch diese Zielsegmenteckpunkte verlaufen, als lineare Geraden parametrisiert werden und die Zielbildpunkte innerhalb der Ränder als Zielbildpunkte ermittelt werden. Gemäß einer zweiten alternativen Ausführungsform kann ein Zielsegmentbereich als diese Zielsegmentpunkte erfassendes Polygon, insbesondere ein vertikal/horizontal ausgerichtetes Rechteck gewählt werden, dessen Zielbildpunkte anschließend invers transformiert werden.
  • Die erfindungsgemäße Vorrichtung kann insbesondere mit einem IC, z. B. ASIC, für die lineare Mittelung der Zielbildpunktdaten aus den Objektbildpunktdaten realisiert werden, wodurch eine kostengünstige Herstellung mit hoher Rechengeschwindigkeit möglich wird.
  • Gemäß einer vorteilhaften Weiterbildung kann eine weitgehend hardwaremäßige und dennoch relativ kostengünstige Realisierung erfolgen, indem die Transformationen und Interpolationen durch eine Hardware-Filtereinrichtung eines Grafikcontrollers durchgeführt werden, die zu transformierenden Segmente des Objektbildes in einen Eingangs- Cachespeicher und die durch Transformation errechneten Zielsegmentbereiche in einen Ausgangs-Cachespeicher des Grafikcontrollers geladen werden, wobei der Grafikcontroller und eventuell der zur Programmsteuerung verwendete Mikroprozessor integriert werden.
  • Die Erfindung wird im folgenden anhand der beiliegenden Zeichnungen an einigen Ausführungsformen näher erläutert. Es zeigen:
  • Fig. 1 eine Anzeigeeinrichtung mit Objektbild und Zielbild;
  • Fig. 2 ein Flußdiagramm eines Verfahrens gemäß einer Ausführungsform der Erfindung;
  • Fig. 3 ein Blockschaltbild einer Vorrichtung zur Durchführung des Verfahrens von Fig. 2;
  • Fig. 4 ein Flußdiagramm eines Verfahrens gemäß einer weiteren Ausführungsform der Erfindung;
  • Fig. 5 ein Blockschaltbild einer Vorrichtung zur Durchführung des Verfahrens von Fig. 4;
  • Fig. 6 eine Ausschnittsvergrößerung der Anzeigeeinrichtung zur Ermittlung der Bildpunktdaten aus den Objektbildpunkten;
  • Fig. 7 eine Darstellung eines weiteren Objektbildes mit einer Unterteilung in mehrere Objektsegmente;
  • Fig. 8 das aus dem Objektbild der Fig. 7 zu berechnende Zielbild mit einer Unterteilung in Zielsegmente und Zielsegmentbereiche;
  • Fig. 9 ein Blockschaltbild einer Vorrichtung zur Transformation des Objektbildes von Fig. 7 auf das Zielbild von Fig. 8;
  • Fig. 10 ein weiteres Blockschaltbild der Vorrichtung von Fig. 9 mit Angabe der Signalverläufe;
  • Fig. 11 ein Flußdiagramm eines mit der Vorrichtung der Fig. 9 und 10 durchgeführten Verfahrens.
  • Gemäß Fig. 1 ist als Anzeigeeinrichtung ein LCD-Display 1 mit einer matrixförmigen Anordnung von Pixeln bzw. Bildpunkten Zi mit i = 1 bis n vorgesehen. Auf dem LCD- Display 1 wird ein Zeiger in verschiedenen Drehwinkeln β wiedergegeben, wobei der Drehwinkel β einem Parameter, z. B. einer Fahrzeuggeschwindigkeit oder Motordrehzahl entspricht. In Fig. 1 ist ein Zeiger 3 in der Grundstellung (β = 0) in einem durch gestrichelte Linien wiedergegebenen Objektbild OB und ein um einen Drehwinkel β gedrehter Zeiger 6 in einem Zielbild ZB gezeigt. Das Objektbild OB und das Zielbild ZB werden durch Pixelmap-Dateien beschrieben, wobei zu jedem durch seine Zeilen- und Spaltenzahl beschriebenen Bildpunkt Daten gespeichert sind, so dass das Zielbild ZB mit variabler Farbgebung und ggf. Transparenz vor einem Hintergrund, z. B. einer Skalierung oder weiteren Anzeigen, wiedergegeben werden kann. In den gezeigten Ausführungsformen werden hierbei die Grundfarben R, G, B und ggf. ein Transparentwert α verwendet, alternativ hierzu können auch andere Farbformate, z. B. YUV und eventuell α verwendet werden. Die Spalten- und Zeilenzahl werden im folgenden als (ganzzahlige) x,y - Koordinaten betrachtet. Für die Darstellung des Zielbildes ZB müssen somit aus den bekannten Bildpunktdaten Rk, Gk, Bk, αk der Objektbildpunkte Ok und dem bekannten Drehwinkel β die entsprechenden Zielbildpunktdaten Ri, Gi, Bi, αi ermittelt werden.
  • Gemäß dem in Fig. 2 gezeigten Verfahren wird hierzu in einem ersten Verfahrensschritt 20 bei Eingabe eines Drehwinkels β bzw. Vorliegen eines geänderten Drehwinkels β die Berechnung der neuen Zielbildpunkte eingeleitet und ein Parameter i auf Null gesetzt. In der durch den zweiten Verfahrensschritt 21 und den Entscheidungsschritt 29 gebildeten Schleife werden die Zielbildpunkte Zi für i = 1 bis n mit ihren x- und y-Koordinaten nacheinander aufgerufen und anschließend in einem dritten Verfahrensschritt 22 mittels einer Rotationsmatrix R- β um den negativen Drehwinkel -β gedreht. Hierdurch werden die x- und y-Koordinate des Quellbildpunktes Qi ermittelt. In dem Entscheidungsschritt 23 wird daraufhin überprüft, ob der ermittelte Quellbildpunkt in dem Objektbild OB liegt. Das in Fig. 1 gezeigte rechteckige Objektbild OB wird einfach durch minimale und maximale x- und y-Koordinaten festgelegt, so dass für diesen Vergleich lediglich die x- und y-Koordinate des ermittelten Quellbildpunktes Qi mit diesen Werten zu vergleichen sind. Falls der Quellbildpunkt Qi nicht in dem Objektbild OB liegt, wird er nicht dargestellt. Hierzu wird bei der Darstellung mit Transparenzwert dieser gemäß Schritt 24 auf Null gesetzt, so dass der entsprechende Zielbildpunkt Zi auf dem LCD-Display 2 nicht erkannt wird. Falls keine transparente Darstellung möglich ist und somit kein Transparenzwert festzulegen ist, können alternativ hierzu die Farbwerte R, G, B (bei monochromer Darstellung entsprechend der Helligkeitswert) dem Hintergrundbild angepasst werden. Anschließend wird in den Schritten 29, 30 und 21 das Verfahren beendet oder der nächste Zielbildpunkt Zi+1 genommen.
  • Falls in dem Entscheidungsschritt 23 ermittelt wird, dass der Quellbildpunkt Qi im Objektbild OB liegt, wird in dem nächsten Entscheidungsschritt 25 zunächst überprüft, ob der ermittelte Quellbildpunkt Qi genau auf einen vorgespeicherten Objektbildpunkt Ok fällt, d. h. in seiner x- und y-Koordinate mit diesem übereinstimmt. In diesem Fall werden in Schritt 26 direkt die Bildpunktdaten Rk, Gk, Bk, αk des Objektbildpunktes Ok als Bildpunktdaten Ri, Gi, Bi, αi des betreffenden Zielbildpunktes Zi verwendet, und in den Schritten 21, 29 wiederum der nächste Zielbildpunkt 21+1 herangezogen oder das Verfahren beendet. Falls der Quellbildpunkt Qi hingegen zwischen den vorgegebenen Objektbildpunkten liegt, werden in Schritt 27 zunächst die benachbarten Objektbildpunkte - der Einfachheit halber als O1, O2, O3, O4 bezeichnet - ermittelt. In Schritt 28 werden die Bildpunktdaten Ri, Gi, Bi, αi aus den entsprechenden Bildpunktdaten dieser angrenzenden Objektbildpunkte interpoliert.
  • Dies ist in Fig. 6 detaillierter gezeigt. Die x- und. y- Koordinaten der angrenzenden Objektbildpunkte O1, O2, O3, O4 ergeben sich somit als Integerwert von xi, yi oder hierzu inkrementierter Wert.
  • Die Mittelung kann insbesondere linear erfolgen, indem die Bildpunktdaten der Objektbildpunkte entsprechend dem jeweiligen Abstand zu den betreffenden Objektbildpunkten gewichtet werden. Hierbei kann insbesondere anstelle des geometrischen, euklidisch zu berechnenden Abstandes eine einfache getrennte lineare Mittelung über die X- und Y- Koordinate erfolgen. So kann für die untere Zeile der Objektbildpunkte O1 und O4 eine lineare Mittelung in Abhängigkeit des Abstandes der x-Koordinaten vorgenommen werden, bei der somit die Daten von O1 mit dem Faktor (1 - (xi - int (xi))) (d. h. dem Abstand von xi zu dem gegenüberliegenden Punkt O4) und die Daten von O4 entsprechend mit dem Faktor (xi - int (xi)) multipliziert und anschließend addiert werden. Anschließend wird eine entsprechende lineare Mittelung der Bildpunktdaten der oberen Zeile mit den Objektbildpunkten O2 und O3 durchgeführt, und aus den so berechneten Werten der oberen Zeile und unteren Zeile ein entsprechend über die y-Koordinate gemittelter Wert berechnet, bei dem der Wert der unteren Zeile mit dem Abstand zur oberen Zeile, d. h. dem Faktor (1 - (yi - int (yi))) und der Wert der oberen Zeile mit dem Abstand zur unteren Zeile, d. h. dem Faktor (yi - int (yi)) multipliziert und anschließend addiert werden. Eine derartige lineare Mittelung erhält hierbei eine bei der Generierung der vorgespeicherten Objektbildpunkte angewendete Kantenglättung (antialiasing), so dass erfindungsgemäß eine nachträgliche Filterung nicht notwendig ist.
  • Nachdem die ermittelten Bildpunktdaten Ri, Gi, Bi, αi dem Zielbildpunkt Zi zugeordnet sind, wird in Schritt 21 wiederum der nächste Zielbildpunkt Zi+1 herangezogen.
  • Bei der entsprechenden Vorrichtung zu dem Verfahren von Fig. 2 wird gemäß Fig. 3 einer Rotationseinrichtung 10 ein Drehwinkel β eingegeben. Vorteilhafterweise werden hierzu von einem vorgeschalteten Rechner bereits der für die Rotationsmatrix erforderliche Sinus- und Cosinus-Wert geliefert. Die Rotationseinrichtung 10 nimmt sukzessive die Zeilen- und Spaltenzahl jedes Zielbildpunktes Zi z. B. aus einem Koordinatenspeicher 9 als seine ganzzahligen Koordinaten, berechnet die Quellbildpunkte Qi(Schritt 22 in Fig. 2) und gibt diese an eine erste Vergleichseinrichtung 11 weiter, die die Koordinaten des Quellbildpunktes Qi (gemäß Schritt 23) mit den Koordinaten der Punkte A, C, D, E vergleicht, die sie z. B. aus einem Objektbildspeicher 8 aufnimmt oder als Minimal- und Maximalwerte gespeichert hat. Die Vergleichseinrichtung 11 überprüft, ob der ermittelte Quellbildpunkt Qi in dem Objektbild OB liegt. Falls dies der Fall ist, werden die Koordinaten des Quellbildpunktes Qi an eine Interpolationseinrichtung 12 weitergegeben, in der gemäß den Schritten 25, 26, 27 und 28 die Daten des Zielbildpunktes Zi aus den entsprechenden Daten der in dem Objektbildspeicher 8 gespeicherten Objektbildpunkte Qi ermittelt werden, woraufhin von der Rotationseinrichtung 10 der nächste Zielbildpunkt Zi+1 genommen wird. Die ermittelten Daten R, G, B, α der Zielbildpunkte Zi werden einem Zwischenbildspeicher (frame buffer) 13 zur Darstellung auf der Anzeigeeinrichtung 1 zugeführt.
  • Für einen Zeiger mit 300 × 50 Bildpunkten mit jeweils einem Byte Datenbreite wird für jede Grundfarbe R, B, G sowie die Transparenz α lediglich ein Objektbildspeicher 8 mit 60 kByte Speicherplatz benötigt. Der kleinste mögliche Drehwinkel hängt nur von der Rechengenauigkeit des Drehalgorithmus bzw. der Rotationseinrichtung 10 ab. Für eine Rotation eines Zielbildpunktes Zi durch Multiplikation mit der 2 × 2 - Rotationsmatrix R sind lediglich vier Multiplikationen und zwei Additionen durchzuführen. In Schritt 23 müssen für jeden Zielbildpunkt i = 1 bis n jeweils vier Vergleiche Ihrer Koordinaten mit Minimal- und Maximalwerten durchgeführt werden. Bei der Ermittlung der Bildpunktdaten gemäß den Schritten 24, 25, 26, 27 sind im maximalen Fall - wenn die Bedingung von Schritt 23 nie erfüllt sein sollte - sechs Multiplikationen, sechs Additionen und drei Shifts für n Zielbildpunkte durchzuführen.
  • Bei der in Fig. 4 und 5 gezeigten Ausführungsform werden nicht zu sämtlichen Zielbildpunkten Zi durch Rückwärtsdrehung die entsprechenden Objektbildpunkte Oi ermittelt, sondern es wird zur Verringerung des Rechenaufwandes zunächst eine geeignete Vorauswahl der relevanten Zielbildpunkte getroffen. Hierzu werden gemäß Fig. 4 von dem ersten Verfahrensschritt 50 mit Einlesen und ggf. Vergleich des Drehwinkels β ausgehend in dem zweiten Verfahrensschritt 51 zunächst um den Drehwinkel β gedrehte Koordinaten der Objektbildpunkte A, C, D, E ermittelt. Hierdurch werden die entsprechenden Eckpunkte des Zielbildes ZB berechnet. Als nächstes werden in der durch die Schritte 52, 60, 61 gebildeten Schleife sukzessive die Zielbildpunkte Zi, i = 1 bis n mit ihrer Spalten- und Zeilenzahl als x- und y-Koordinaten aus dem Koordinatenspeicher 9 ausgelesen und anschließend in Schritt S3 überprüft, ob sie in dem Zielbild ZB liegen. Falls sie nicht in ZB liegen, wird in Schritt S4 der Transparenzwert auf Null gesetzt (alternativ hierzu können auch bei dieser Ausführungsform wiederum der Helligkeitswert oder die Farbwerte dem Hintergrund angepasst werden); falls sie in ZB liegen, werden in den Schritten 55, 56, 57, 58 und 59 entsprechend den oben beschriebenen Schritten 22 und 25 bis 28 die Daten ermittelt.
  • Entsprechend empfängt die Rotationseinrichtung 10 in Fig. 5 zunächst die Koordinaten der Objektbildpunkte A, C, D, E von dem Objektbildspeicher 8 und gibt entsprechend durch Rotation um β gemittelte Werte an eine zweite Vergleichseinrichtung 61 zur Durchführung des Entscheidungsschrittes 53 aus. Die zweite Vergleichseinrichtung 61 setzt die Daten entweder auf Null und gibt sie direkt an den Zwischenspeicher 13 weiter oder veranlasst eine Rotation des Zielbildpunktes durch die Rotationseinrichtung 10 und Weitergabe der ermittelten Quellbildpunkte an die Interpolationseinrichtung 12 zur Durchführung der Schritte 56 bis 59 und Ausgabe der berechneten Daten an den Zwischenbildspeicher 13.
  • Die Interpolationseinrichtung kann in sämtlichen Ausführungsformen ganz oder teilweise als ASIC ausgeführt sein. Der Objektbildspeicher 8 kann insbesondere als nicht- flüchtiger Speicher und der Zwischenspeicher 13 als flüchtiger Speicher ausgebildet sein. Die Einrichtungen 11, 12 und 61 können hardwaremäßig ausgeführt oder als Softwareeinrichtungen implementiert werden.
  • Gemäß der in Fig. 7 bis 11 gezeigten Ausführungsform kann das Objektbild OB auch in mehrere Objektsegmente OS1-OS9 unterteilt werden, die unterschiedliche Größen und Formen haben können. Für eine zeilenorientierte Pixelverarbeitung bilden die Objektsegmente OS1 bis OS9 hierbei horizontalvertikal ausgerichtete Rechtecke, deren vier Objektsegmenteckpunkte - in Fig. 7 sind die Objektsegmenteckpunkte OE1,2,3,4 des ersten Objektsegmentes OS1 gezeigt - die minimalen und maximalen x- und y-Koordinaten der erfassten Objektbildpunkte aufweisen. Die Segmentierung kann nach unterschiedlichen Kriterien vorgenommen werden; vorteilhafterweise entspricht die Größe der Segmente der Größe eines weiter unten mit Bezug zu Fig. 9 und 10 detaillierter beschriebenen Eingangsspeichers 77 eines Grafikcontrollers 72, so dass die Anzahl der Segmente von der Größe des Quellbildes abhängt.
  • Die Objektsegmente OS1-OS9 werden separat transformiert. Hierzu werden zunächst für jedes Objektsegment durch Transformation der Objektsegmenteckpunkte OE1,2,3,4 Zielsegmenteckpunkte ZE1,2,3,4 gebildet. Die durch Transformation - der Einfachheit halber ist eine Rotation ohne Angabe einer Skalierung gezeigt - der einzelnen Objektsegmente gebildeten Zielsegmente ZS1-ZS9 liegen gemäß Fig. 8 im allgemeinen unter einem Winkel zur x-Achse und sind somit nicht für eine zeilenorientierte Pixelverarbeitung geeignet.
  • Daher können gemäß einer Ausführungsform zunächst die Ränder bzw. Randbereiche parametrisiert werden, z. B. linear parametrisiert werden, indem lineare Geraden - gezeigt ist in Fig. 8 beispielhaft die lineare Gerade ZR12 zwischen Z1 und Z2 - durch die Zielsegmenteckpunkte gelegt werden und die innerhalb der Ränder liegenden Bildpunkte ermittelt werden.
  • Gemäß einer alternativen Ausführungsform wird zu jedem Zielsegment ZS1-ZS9 ein dieses umgebender rechteckiger, horizontalvertikal ausgerichteter Zielsegmentbereich ZSB1 bis ZSB8 gebildet. Die Zielsegmentbereiche ZSB1 bis ZSB8 werden - wie in der obigen Ausführungsform detaillierter beschrieben - pixelweise bzw. zielbildpunktweise berechnet, indem zu jedem Zielbildpunkt durch inverse Transformation - d. h. Rückwärtsdrehung - Objektbildpunktdaten ermittelt werden. Da die Zielsegmentbereiche sich im allgemeinen überschneiden, werden hierbei entweder zu einigen Zielbildpunkten die Berechnungen mehrfach durchgeführt, oder es wird ein Register mit bereits berechneten Zielbildpunkten angelegt; der hierfür erforderliche Aufwand, die Koordinaten jedes Zielbildpunktes mit den Einträgen des Registers zu vergleichen, wird in der Regel jedoch zu hoch sein.
  • Diese Ausführungsform mit einem segmentiertem Objektbild führt insbesondere bei einer Rotation von länglichen schmalen Objektbildern - z. B. Zeigern - zu einer erheblichen Verringerung des Rechenaufwandes, da ohne Segmentierung auch bei der Begrenzung des Zielbereichs durch die Transformation der Eckpunkte im allgemeinen ein sehr großer Zielbereich gebildet wird, der viele Zielbildpunkte enthält, zu denen keine Quellbildpunkte ermittelt werden. Indem die Segmentgröße an die Größe des Eingangsspeichers 77 des Grafikcontrollers, insbesondere eines Eingangs-Cachespeichers 77 mit schneller Zugriffszeit, angepasst wird, kann durch eine nachfolgende hardwaremäßig realisierte Berechnung der inversen Transformation eine schnelle Bildverarbeitung erreicht werden, wie im folgenden gezeigt wird.
  • Gemäß Fig. 9 verbindet ein Bussystem 69 einen Mikroprozessor 70, einen Arbeitsspeicher (RAM) 73, einen Programmspeicher 74 (z. B. ein Flash-ROM) und den Grafikcontroller 72. Im Programmspeicher 74 ist neben der Software des Verfahrens auch das Objektbild OB als Pixelmap gespeichert. Der Grafikcontroller 72 weist eine Filtereinrichtung 76 zur Berechnung der Transformation und inversen Transformation sowie einer Interpolation zur Ermittlung der Zielpunktdaten aus den Objektpunktdaten und als RAM-Speicherbereiche einen Eingangs-Cachespeicher 77, einen Ausgangs-Cachespeicher 79 und ein Parameter-FIFO- Speicher 75 mit einer First-In First-Out Charakteristik auf. Die Filtereinrichtung 76 kann somit der Rotationseinrichtung 10 und der Interpolationseinrichtung 12 der ersten Ausführungsform entsprechen.
  • Die Arbeitsweise der in Fig. 9 gezeigten Vorrichtung wird am Beispiel der Drehung des Zeigers von der Fig. 7 in die Fig. 8 mit der Darstellung der Fig. 10 und dem in Fig. 11 beschriebenen Flussdiagramm erläutert. Nach dem Start in Schritt 80 berechnet der Mikroprozessor 70 in Schritt 81 die Objektsegmente OS1 bis 9 des zu drehenden und zu skalierenden Objektbildes OB und anhand der einstellbaren Parameter Drehwinkel, Skalierfaktor X und Skalierfaktor Y die resultierenden, umschließenden Zielsegmentbereiche ZSB1 bis 8. In Schritt 82 wird das erste Objektsegment OS1 aus dem Programmspeicher 74 in den Eingangs- Cachespeicher 77 geladen. Zur Verringerung der Zugriffszeit können die Objektsegmente auch jeweils vorher von dem Programmspeicher 74 in den Arbeitsspeicher 73 geladen werden und in Schritt 82 jeweils von dem Arbeitspeicher 73 in den Eingangs-Cachespeicher 77 geladen werden.
  • In Schritt 83 werden von dem Mikroprozessor 70 für jeden Bildpunkt des Zielsegmentes ZS1 oder Zielsegmentbereiches ZSB1 die Zielbildpunktdaten R, G, B, alpha berechnet. Hierzu werden zunächst Parameter für die Filtereinrichtung 76 berechnet und im Parameter-FIFO 75 gespeichert. Die Filtereinrichtung 76 entnimmt die Parameter aus dem Parameter-FIFO, berechnet die Bildpunkte (Pixel) des Zielbildsegments ZSB1 unter Verwendung des Objektsegmentes OS1 aus dem Eingangs-Cachespeicher 77 und speichert diese im Ausgangs-Cachespeicher 79. In Schritt 84 werden die Zielbildpunktdaten von dem Ausgangs-Cachespeicher 79in den Bildwiederholspeicher 78 (Framebuffer) gegeben. Diese Schritte werden gemäß den Schritten 85, 86 für sämtliche Zielbildpunkte sämtlicher Objektsegmente durchgeführt. Nach Durchführung dieser Schleifen ist das Zielbild in dem Bildwiederholspeicher 78 geladen, um - mit anderen Darstellungen - auf der Anzeigeeinrichtung 1 dargestellt zu werden.
  • Für eine gute Dimensionierung zu relativ geringen Kosten werden der Eingangs-Cachespeicher, Ausgangs-Cachespeicher und Parameter-FIFO möglichst klein ausgeführt, sein. Der Eingangs-Cachespeicher 77 bestimmt hierbei die Größe der Objektsegmente und weist z. B. 64 × 64 Pixel mit 4 Byte pro Pixel und somit 16 KByte auf. Der Ausgangs- Cachespeicher 79 kann z. B. eine Zeile des Zielsegmentes (oder des Zielsegmentbereichs) erfassen und somit durch das Produkt Zeilengröße des Eingangs-Cachespeichers × max. Skalierfaktor × 4 Byte/Pixel 64 × 4 × 4 = 1 KByte dimensioniert sein. Die Größe des Parameter-FIFO 75 wird vorteilhafterweise auf die für die Berechnung einer Ausgangszeile notwendigen Parameter angestimmt, also im oben beschriebenen Beispiel mit vier Parametern pro Pixel durch das Produkt Zeilengröße des Ausgangscachespeichers × Skalierungsfaktor × Parameter/Pixel = 64 × 4 × 4 = 1 KByte. Die Filtereinrichtung 76 des Grafikcontrollers 72 ist eine Hardware-Abbildung der Transformation bzw inversen Transformation, insbesondere einer Transformation, die eine Rotation und/oder Skalierung umfasst, aber auch einer komplexeren Transformation. Die Rechenvorschrift ist fest in der Hardware umgesetzt, um eine maximale Bearbeitungsgeschwindigkeit zu erreichen. Im oben angegebenen Beispiel der Drehung des Zeigers kann hierzu z. B. eine bilineare Filterung von vier Pixeln mit zwei Gewichtungsfaktoren verwendet werden. Der Mikroprozessor 70 mit Programmspeicher 74 übernimmt die Ablaufsteuerung der Rotation/Skalierung und die Berechnung von den benötigten Koordinaten, die im Parameter-FIFO 75 abgelegt werden, insbesondere die Einteilung des Objektbildes bzw. der Objektbild-Pixeldatei in ein oder mehrere Segmente, das Initiieren des Ladens der einzelnen Segmente in den Eingangs-Cachespeicher, die Berechnung der Adressen der Zielbildpixel, die Berechnung der Objektbildpixel, die zur Interpolation der Zielbildpunktdaten herangezogen werden, die Berechnung der Gewichtungsfaktoren bzw. Filterfaktoren für jeden Zielbildpunkt, das Schreiben der Filter-Parameter in den Parameter-FIFO und das Initiieren des Schreibens des Ausgangs-Caches in den Arbeitsspeicher /Bildwiederholspeicher.
  • Gemäß einer Ausführungsform kann der Mikroprozessor 70 auf dem gleichen Chip wie der Grafikcontroller 72 einschließlich oder ausschließlich Eingangs-Cachespeicher 77 und Ausgangs-Cachespeicher 79 ausgebildet sein.
  • Gemäß einer hierzu alternativen Ausführungsform ist der Eingangs-Cachespeicher 77 als Doppelspeicher ausgeführt. In dieser Ausführungsform kann während der Berechnung eines geladenen Objektsegmentes in der Filtereinrichtung bereits das nächste Objektsegment in den freien Teil des Eingangs-Cachespeichers 77 nachgeladen werden kann.
  • Gemäß einer weiteren Ausführungsform wird der Ausgangs- Cachespeicher 79 als Doppelspeicher ausgeführt. In dieser Ausführungsform können, während der Grafikcontroller 72 den Ausgangs-Cachespeicher 79 in den Bildwiederholspeicher 78 kopiert, in der Filtereinrichtung 76 die nächsten Bildpunkte berechnet und in den freien Teil des Ausgangs- Cachespeicher 79 abgelegt werden.
  • Das Objektbild OB kann von dem Grafikcontroller 72 vor der Transformation segmentiert werden oder bereits segmentiert in dem Programmspeicher 74, insbesondere bei Ausbildung als Flash-ROM, abgespeichert sein.
  • Gemäß einer Ausführungsform kann die Filtereinrichtung die Zielbildpunktdaten mit konstanten Gewichtungsfaktoren berechnen, die somit nicht von dem Mikroprozessor übertragen werden müssen, oder die Gewichtungsfaktoren aus der Angabe der Objekt- und Zielbildpunkte berechnen. Weiterhin ist auch die Übertragung nur einer Objektbildpunktadresse pro Zielbildpunkt an die Filtereinrichtung möglich, woraufhin weitere Objektbildpunktadressen nachfolgend aus dieser Objektbildpunktadresse berechnet werden.
  • Weiterhin kann das Schreiben des Ausgangsspeichers in den Bildwiederholspeicher alternativ zu der obigen Ausführungsform auch von der Filtereinrichtung initiiert werden.
  • Bei allen Ausführungsformen können unterschiedliche Datenformate der Objektbildpunkt-Pixeldatei unterstützt werden, z. B. 8 Bit Alpha, 8 Bit Index und 256 Palettenpixel, 8 Bit Index und 8 Bit Alpha und 356 Palettenpixel, 8 Bit Rot und 8 Bit Grün und 8 Bit Blau und 8 Bit Alpha. Alternativ zu der 8 Bit Darstellung der Farben und Alpha- Werte sind auch Datenformate mit mehr oder weniger Bits denkbar, wie z. B. 5 Bit Rot und 6 Bit Grün und 5 Bit Blau.

Claims (35)

1. Verfahren zur Transformation eines Objektbildes (OB), insbesondere für eine Darstellung auf einer Anzeigeeinrichtung (1) mit einer matrixförmigen Anordnung von Zielbildpunkten (Zi), bei dem
für zumindest einen Teil der Zielbildpunkte (Zi) durch eine inverse Transformation Quellbildpunkte (Qi(-β)) ermittelt werden,
die Quellbildpunkte (Qi(-β)) mit vorgespeicherten Objektbildpunkten (Ok) verglichen werden und
aus diesem Vergleich Zielbildpunktdaten (Ri, Gi, Bi, αi) der Zielbildpunkte (Zi) ermittelt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet; dass die Objektbildpunkte (Ok) mit Objektbildpunktdaten im Pixelmap-Format gespeichert sind und die Zielbildpunktdaten im Pixelmap-Format ermittelt werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Transformation eine Rotation um einen Drehwinkel (β) und/oder einer Skalierung mit Skalierungsfaktoren und/oder eine Translation umfasst, und die inverse Transformation eine Rotation um den negativen Drehwinkel (-β) und/oder eine Skalierung mit den Kehrwerten der Skalierungsfaktoren und/oder eine Translation umfasst.
4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei dem Vergleich der Quellbildpunkte mit den Objektbildpunkten zunächst ermittelt wird, ob die Quellbildpunkte in das Objektbild (OB) fallen, wobei für Quellbildpunkte, die in das Objektbild fallen, Zielbildpunktdaten ermittelt werden, und für Quellbildpunkte, die nicht in das Objektbild fallen, keine Zielbildpunktdaten ermittelt werden.
5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei der Ermittlung der Zielbildpunktdaten in dem Fall, dass ein Quellbildpunkt mit einem Objektbildpunkt übereinstimmt, die betreffenden Objektbildpunktdaten als Zielbildpunktdaten genommen werden, und in dem Fall, dass ein Quellbildpunkt mit keinem der Objektbildpunkte übereinstimmt, die Zielbildpunktdaten aus den Objektbildpunktdaten benachbarter Objektbildpunkte ermittelt werden.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zielbildpunktdaten durch eine Mittelung, vorzugsweise eine lineare Interpolation, aus den Objektbildpunktdaten der benachbarten Objektbildpunkte berechnet werden.
7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Zielbildpunktdaten und Objektbildpunktdaten jeweils einen Helligkeitswert und/oder Grundfarbwerte (R, G, B) und/oder einen Transparenzwert (α), vorzugsweise jeweils mit einer Datenbreite von 1 Byte, umfassen.
8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Objektbildpunkte mit einer höheren Auflösung als die Zielbildpunkte gespeichert sind.
9. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass zunächst durch die Transformation einiger Objektbildpunkte (A, C, D, E), vorzugsweise von Objektbildpunkten mit minimalen und maximalen Koordinaten, ein Zielbildbereich (ZB) ermittelt wird und ermittelt wird, welche Zielbildpunkte (Zi) in dem Zielbild (ZB) liegen, und für Zielbildpunkte außerhalb des Zielbildes (ZB) keine Berechnung der Quellbildpunkte durchgeführt wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass das Objektbild in mehrere Objektsegmente (OS1-9) unterteilt ist, zu jedem Objektsegment durch Transformation zumindest einiger seiner Objektbildpunkte, vorzugsweise von Objektbildpunkten mit minimalen und maximalen Koordinaten, ein Zielsegment (ZS1-9) oder ein das Zielbild umfassener Zielsegmentbereich (ZSB1-9) ermittelt wird, und die Vereinigung der Zielsegmente (ZS1-9) oder Zielsegmentbereich (ZSB1-9) als Zielbild genommen wird.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass Zielsegmentbereiche (ZSB1-9) ermittelt werden, wobei als die Zielsegmentbereiche (ZSB1-9) Rechtecke mit horizontaler und vertikaler Ausrichtung ihrer Seiten gewählt werden.
12. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Zielbereiche (ZS1-9) ermittelt werden, indem Objektbildpunkte mit minimalen und maximalen Koordinaten als Objektsegmenteckpunkte (OE1,2,3,4) gewählt und auf Zielsegmenteckpunkte (ZE1,2,3,4) transformiert werden, durch die Zielsegmenteckpunkte (ZE1,2,3,4) verlaufenden Ränder (ZR12) der Zielsegmente (ZS1-9) als vorzugsweise lineare Geraden parametrisiert werden und die innerhalb der Ränder der Zielsegmente (ZS1-9) liegenden Bildpunkte, vorzugsweise einschließlich der auf den Rändern liegenden Bildpunkte, als die Zielbildpunkte des Zielsegmentes (ZS1-9) ermittelt werden.
13. Verfahren nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, dass Parameter für die Transformation ermittelt und in einem Parameter-Speicher, vorzugsweise einem FIFO-Speicher, gespeichert werden,
jeweils ein Objektsegment in einen Eingangs- Speicher, vorzugsweise einen Eingangs-Cachespeicher einer Grafik-Steuereinrichtung, geladen und zu dem Objektsegment das Zielsegment oder der Zielsegmentbereich ermittelt wird,
für die Zielbildpunkte des Zielsegmentes oder Zielsegmentbereiches (ZSB1-9) die Zielbildpunktdaten aus den Objektbildpunktdaten und den Parametern berechnet werden.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Eingangsspeicher (77) als Doppelspeicher verwendet wird, wobei gleichzeitig ein Objektsegment von der Filtereinrichtung (76) aus dem Eingangsspeicher (77) ausgelesen und ein nachfolgendes Objektsegment in ihm abgespeichert wird.
15. Verfahren nach einem der Ansprüche 10 bis 14, dadurch gekennzeichnet, dass die ermittelten Zielbildpunktdaten in einen Ausgangsspeicher, vorzugsweise einen Ausgangs-Cachespeicher (79) ausgegeben, zwischengespeichert und von dem Ausgangsspeicher an einen Arbeitsspeicher (73) oder einen Bildwiederholungsspeicher (78) ausgegeben werden.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass der Ausgangsspeicher (79) als Doppelspeicher verwendet wird, wobei gleichzeitig ermittelte Zielbildpunktdaten in den Ausgangsspeicher eingegeben und aus dem Ausgangsspeicher zwischengespeicherte Zielbildpunktdaten an den Arbeitsspeicher oder den Bildwiederholungsspeicher ausgegeben werden.
17. Verfahren nach einem der Ansprüche 10 bis 16, dadurch gekennzeichnet, dass das Objektbild (OB) in Objektsegmente (OS) unterteilt in einem Speicher, vorzugsweise einem Programmspeicher (74), z. B. einem Flash-ROM, abgespeichert ist, aus dem die Objektsegmente sukzessive ausgelesen werden.
18. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Objektbild (OB) von einem Objektbildspeicher, vorzugsweise einem Programmspeicher (74), z. B. einem Flash-ROM, ausgelesen, in einen Arbeitsspeicher (73) zwischengespeichert und aus dem Arbeitsspeicher (73) zum Vergleich mit den ermittelten Quellbildpunkten ausgelesen werden.
19. Vorrichtung zur Transformation eines Objektbildes (OB), insbesondere für eine Darstellung auf einer Anzeigeeinrichtung (1) mit einer matrixförmigen Anordnung von Zielbildpunkten (Zi), mit
einem Objektbildspeicher (8, 74) zum Speichern von Objektbildpunkten (Ok) mit Objektbildpunktdaten (R, G, B, α),
einer Transformationseinrichtung (10, 76) zum Ermitteln von Quellbildpunkten (Qi) durch inverse Transformation zumindest eines Teils der Zielbildpunkte (Zi), und
einer Berechnungseinrichtung (11, 12, 76) zum Vergleichen der Quellbildpunkte mit den Objektbildpunkten, Ermitteln von Zielbildpunktdaten (Ri, Gi, Bi, αi) aus den Objektbildpunktdaten und Ausgabe der Zielbildpunktdaten an eine Anzeigeeinrichtung (1) oder einen Zwischenbildspeicher (13) der Anzeigeeinrichtung (1).
20. Vorrichtung nach Anspruch 19, dadurch gekennzeichnet, dass die Berechnungseinrichtung eine Vergleichseinrichtung (11) zum Vergleichen der Quellbildpunkte (Qi) mit den Objektbildpunkten (Ok) und eine Interpolationseinrichtung (12) zum Interpolieren, vorzugsweise linearen Interpolieren, der Zielbildpunktdaten aus den Objektbildpunktdaten aufweist.
21. Vorrichtung nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass die Transformationseinrichtung eine Rotationseinrichtung (10) zum Ermitteln von Quellbildpunkten (Qi) durch Rotation zumindest eines Teils der Zielbildpunkte (Zi) um einen negativen Drehwinkel (-β) aufweist.
22. Vorrichtung nach einem der Ansprüche 19 bis 21, dadurch gekennzeichnet, dass die Transformationseinrichtung (10) und/oder die Interpolationseinrichtung (12) ganz oder teilweise integriert, vorzugsweise in einem ASIC, ausgebildet sind.
23. Vorrichtung nach einem der Ansprüche 19 bis 22, dadurch gekennzeichnet, dass die Transformationseinrichtung (10) und die Interpolationseinrichtung (12) in einer vorzugsweise integrierten Filtereinrichtung (76) vorgesehen sind.
24. Vorrichtung nach Anspruch 23, dadurch gekennzeichnet, dass eine Steuereinrichtung (70) zur Berechnung und Ausgabe von Parametern der Transformation und ein Parameter-Speicher, vorzugsweise ein Parameter- FIFO-Speicher (75), zur Aufnahme und Zwischenspeicherung der Parameter von der Steuereinrichtung und Ausgabe an die Filtereinrichtung (76) vorgesehen sind.
25. Vorrichtung nach Anspruch 23 oder 24, dadurch gekennzeichnet, dass ein Eingangsspeicher, vorzugsweise ein Eingangs-Cachespeicher (77), zur Aufnahme eines Objektsegmentes (OS) mit einem Teil der Objektbildpunkte und Abgabe des Objektsegmentes (OS) an die Filtereinrichtung (76) vorgesehen ist.
26. Vorrichtung nach Anspruch 25, dadurch gekennzeichnet, dass der Eingangsspeicher (77) als Doppelspeicher ausgebildet ist zur gleichzeitigen Aufnahme von Teilen eines Objektsegmentes, das von der Filtereinrichtung (76) ausgelesen wird, und eines nachfolgenden Objektsegmentes, das in ihm gespeichert wird.
27. Vorrichtung nach Anspruch 25 oder 26, dadurch gekennzeichnet, dass das Objektbild (OB) in die Objektsegmente (OS) unterteilt in dem Objektbildspeicher abgespeichert ist.
28. Vorrichtung nach einem der Ansprüche 23 bis 27, dadurch gekennzeichnet, dass ein Ausgangsspeicher, vorzugsweise ein Ausgangs-Cachespeicher (79), zur Aufnahme der Zielbildpunktdaten von der Filtereinrichtung (76) und Ausgabe an einen Arbeitsspeicher (73) oder einen Bildwiederholungsspeicher (78) vorgesehen ist.
29. Vorrichtung nach Anspruch 28, dadurch gekennzeichnet, dass der Ausgangsspeicher (79) als Doppelspeicher ausgebildet ist zur gleichzeitigen Aufnahme von Zielbildpunktdaten von der Filtereinrichtung (76) und Ausgabe von Zielbildpunktdaten an den Arbeitsspeicher (73) oder den Bildwiederholungsspeicher (78).
30. Vorrichtung nach einem der Ansprüche 24 bis 29, dadurch gekennzeichnet, dass die Filtereinrichtung (76) und der Parameter-Speicher (75), vorzugsweise auch der Eingangsspeicher (77) und der Ausgangsspeicher (79), integriert ausgebildet sind.
31. Vorrichtung nach Anspruch 30, dadurch gekennzeichnet, dass die Steuereinrichtung (70) mit der Filtereinrichtung (76) und dem Parameter-Speicher (75) integriert ausgebildet ist.
32. Vorrichtung nach einem der Ansprüche 23 bis 31, dadurch gekennzeichnet, dass der Objektbildspeicher ein Flash-ROM, vorzugsweise als Teil eines Programmspeichers (74) ausgebildet ist.
33. Vorrichtung nach einem der Ansprüche 24 bis 32, dadurch gekennzeichnet, dass der Parameter-Speicher (75) und die Filtereinrichtung (76), vorzugsweise auch der Eingangsspeicher (77) und der Ausgangsspeicher (79), als Teil eines Grafikcontrollers (72) ausgebildet sind.
34. Vorrichtung nach Anspruch 33, dadurch gekennzeichnet, dass der Grafikcontroller (72), die Steuereinrichtung, vorzugsweise ein Mikroprozessor (70), der Objektbildspeicher (74) und vorzugsweise ein Arbeitspeicher (73) über ein Bussystem (69) verbunden sind.
35. Vorrichtung nach Anspruch 33 oder 34, dadurch gekennzeichnet, dass das Objektbild (OB) aus dem Objektbildspeicher (74) in einen Arbeitsspeicher (73) zwischenspeicherbar und aus dem Arbeitsspeicher (73) von dem Grafikcontrollers (72) auslesbar ist.
DE10202602A 2001-09-07 2002-01-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes Withdrawn DE10202602A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE10202602A DE10202602A1 (de) 2001-09-07 2002-01-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes
ES02018869T ES2275788T3 (es) 2001-09-07 2002-08-24 Procedimiento y dispositivo para la transformacion de una imagen de un objeto.
EP02018869A EP1291820B1 (de) 2001-09-07 2002-08-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes
DE50208688T DE50208688D1 (de) 2001-09-07 2002-08-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes
JP2002261301A JP2003115049A (ja) 2001-09-07 2002-09-06 オブジェクトイメージの変換方法および変換装置
US10/351,038 US7215830B2 (en) 2002-01-24 2003-01-24 Method and device for transforming an object image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10144045 2001-09-07
DE10202602A DE10202602A1 (de) 2001-09-07 2002-01-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes

Publications (1)

Publication Number Publication Date
DE10202602A1 true DE10202602A1 (de) 2003-03-27

Family

ID=7698155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10202602A Withdrawn DE10202602A1 (de) 2001-09-07 2002-01-24 Verfahren und Vorrichtung zur Transformation eines Objektbildes

Country Status (1)

Country Link
DE (1) DE10202602A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112771566A (zh) * 2018-12-24 2021-05-07 华为技术有限公司 图像处理装置和图像处理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112771566A (zh) * 2018-12-24 2021-05-07 华为技术有限公司 图像处理装置和图像处理方法

Similar Documents

Publication Publication Date Title
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE3419063C2 (de)
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE3335162C2 (de) Vorrichtung und Verfahren für graphische Darstellungen mittels Computer
DE60310720T2 (de) Verfahren und vorrichtung zur kodierung von texturinformation
DE60122835T2 (de) Anzeigeeinrichtung und -Verfahren, und Datenträger der ein Computerprogramm zur Ansteuerung einer Anzeige mit unterteilten Bildelementen beinhaltet
DE3315148C2 (de)
EP1175663A1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE19807013B4 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE3346816A1 (de) Sichtanzeigeanordnung fuer verschiedenartige zeicheninformationen
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
EP0038411A2 (de) Einrichtung zur Speicherung und Darstellung graphischer Information
EP0984397A2 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE60118222T2 (de) Skalieren von bildern
DE3824977A1 (de) Bildrotationseinrichtung
DE102020133244A1 (de) Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität
DE10239052A1 (de) Kartenbildverarbeitungsvorrichtung, sowie Verfahren zur Erzeugung einer Ansicht aus Vogelperspektive von einem zweidimensionalen Kartenbild
DE112010005426T5 (de) Animationsanzeigevorrichtung
DE10156040A1 (de) Verfahren, Vorrichtung und Computerprogramm-Produkt zum Entzerren einer eingescannten Abbildung
DE112009005430T5 (de) Bildsynthesevorrichtung und Bildsyntheseprogramm
DE3508606C2 (de)
DE69629265T2 (de) Bildskalierungsverfahren und -gerät
DE112014002912T5 (de) Anzeigevorrichtung
EP1291820B1 (de) Verfahren und Vorrichtung zur Transformation eines Objektbildes

Legal Events

Date Code Title Description
8141 Disposal/no request for examination