DE69104867T2 - Verfahren und Einrichtung zur Anzeige von Bildern. - Google Patents

Verfahren und Einrichtung zur Anzeige von Bildern.

Info

Publication number
DE69104867T2
DE69104867T2 DE69104867T DE69104867T DE69104867T2 DE 69104867 T2 DE69104867 T2 DE 69104867T2 DE 69104867 T DE69104867 T DE 69104867T DE 69104867 T DE69104867 T DE 69104867T DE 69104867 T2 DE69104867 T2 DE 69104867T2
Authority
DE
Germany
Prior art keywords
image
pixels
image memory
monitor
pixel
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.)
Expired - Fee Related
Application number
DE69104867T
Other languages
English (en)
Other versions
DE69104867D1 (de
Inventor
Richard Edward Huber
David M Kern
Lindsay William Macdonald
Clive Leonard Mayne
Brian S Rosen
John Phillip Strait
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.)
FFEI Ltd
Original Assignee
Crosfield Electronics Ltd
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 Crosfield Electronics Ltd filed Critical Crosfield Electronics Ltd
Publication of DE69104867D1 publication Critical patent/DE69104867D1/de
Application granted granted Critical
Publication of DE69104867T2 publication Critical patent/DE69104867T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

  • Die Erfindung betrifft eine Bildanzeigevorrichtung und ein Verfahren zum Steuern der Vorrichtung, die einen Anzeigemonitor aufweist, sowie einen Bildspeicher zum Speichern von den Farbinhalt der Bildpixel definierenden Daten und eine Steuerung zum Auswählen der richtigen Pixeldaten aus dem Bildspeicher. Eine solche Vorrichtung wird nachstehend als die der genannten Art bezeichnet.
  • Eine Vorrichtung der genannten Art wird häufig bei Bildanzeigesystemen benutzt, bei denen ein Bild vom Bediener modifiziert oder retuschiert werden soll. Um diese Operationen zu erleichtern, besitzt die Vorrichtung typischerweise mehrere Funktionen, die es ermöglichen, daß ein Bild in Form digitaler Farbdaten in einem Bildspeicher in unterschiedlicher Weise auf dem Monitor dargestellt werden kann. Beispielsweise kann das Bild vergrößert, gezoomt, verschoben oder zum Durchlauf gebracht werden.
  • Die erste Transformation, nämlich die Vergrößerung, sieht zwei Verfahren vor, um ein Bild mit verringerter Auflösung zu erhalten. Das erste Verfahren erzeugt eine Videoanzeige voller Größe durch Vergrößern (maßstäblich) eines kleineren Bildes. Damit ist es möglich, dar mehrere Bilder niedriger Auflösung zusammen im Bildspeicher gespeichert sind. Das zweite Verfahren unterteilt ein Bild voller Größe im Bildspeicher, um ein Bild mit verringerter Auflösung zu erzeugen. Das Unterteilen wird benutzt, wenn am Bild im Bildspeicher eine komplexe Berechnung, wie eine Rotation, ausgeführt wird. Wenn die Berechnung zu lange dauert, um in einer einzigen Bilderneuerungsperiode abgeschlossen zu sein, kann das Anzeigeverhalten zu langsam sein, um dem Bediener eine ausreichende Möglichkeit zur Interaktion zu geben. In diesem Fall kann das Unterteilverfahren die Geschwindigkeit der Interaktion durch Verringern der Rechnerbelastung verbessern. Wenn das Bild im Verhältnis 2:1 (sowohl X und Y) unterteilt wird, braucht nur ein Viertel der Pixel berechnet zu werden, um eine brauchbare Anzeige zu erhalten. Sind einmal die Rechenvorgänge für die verbleibenden Pixel beendet, so wird das Bild in voller Auflösung gezeigt. Dieses Verfahren ist in US-A-4,829,370 erläutert.
  • Die zweite Transformation, nämlich der Bilddurchlauf, ermöglicht eine Verschiebung des Bildes nach links, rechts, aufwärts oder abwärts um eine ganzzahlige Anzahl von Pixeln. Dies gestattet das Positionieren des Bildes auf dem Bildschirm. Wird das Bild auch vergrößert, so positioniert der Bilddurchlauf das Bild, als ob es in voller Auflösung angezeigt würde.
  • Die dritte Transformation, das Zoomen, verändert maßstäblich das Bild um einen Faktor, der größer oder gleich 1 sein muß. Dieser Faktor muß nicht ganzzahlig sein. Das Zoomen unterscheidet sich von der Vergrößerung hauptsächlich in der Weise, in der es benutzt wird, und weniger wie es durchgeführt wird. Eine Vergrößerung wird benutzt, um zu steuern, in welcher Weise die Daten im Bildspeicher von der Anzeigeeinrichtung interpretiert werden, wohingegen das Zoomen benutzt wird, um dem Bediener zu gestatten, Teile des Bildes bei stärkerer Vergrößerung zu prüfen.
  • Die letzte Transformation, das Verschieben, verschiebt das Bild nach links oder rechts und auf- oder abwärts, um eine ganze Zahl angezeigter Pixel (die eine Bruchzahl der Eingangspixel sein können). Das Verschieben unterscheidet sich vom Bilddurchlauf hauptsächlich darin, wie es benutzt wird und weniger, wie es durchgeführt wird. Der Bilddurchlaufwert steuert die Ausrichtung des Bildes im Bildspeicher, wohingegen das Verschieben die Ausrichtung des Bildes auf der Anzeige steuert. Wird das Bild gezoomt, so unterscheiden sich die Einheiten der Verschiebung gegenüber den Einheiten des Bilddurchlaufs.
  • Um eine oder mehrere der vorbeschriebenen vier Transformationen durchzuführen, muß die Steuerung für jedes Monitorpixel bestimmen, welches oder welche Pixel im Bildspeicher Verwendung finden müssen. In der Vergangenheit war für diese Funktionalität eine komplexe logische Einrichtung erforderlich. Getrennte Logikschaltungen sind für jede Funktion beim Zoomen, Bilddurchlauf und Vergrößerung erforderlich, so dar die Realisierung der Funktionen sehr kostspielig und unpraktisch ist.
  • EP-A-0 149 788 erläutert ein Anzeigesteuersystem, bei dem die Software Werte für die X,Y-Koordinaten eines Bildschirms zur Verfügung stellt und dann diese Werte in die physikalischen Adressen des Speichers umwandelt.
  • EP-A-0 328 356 erläutert ein Anzeigesteuersystem, bei dem die Daten in zugehörigen Bildspeichern abhängig davon gespeichert werden, ob die Daten in unveränderter Form oder gezoomter oder verschobener Form vorliegen. Aus dem Bildspeicher werden die Daten zu den Eingängen eines Registers geführt und der Ausgang geht dann ohne weitere Modifikation über einen RAM auf den Anzeigemonitor.
  • Gemäß einem Aspekt der Erfindung wird bei einer Bildanzeigevorrichtung der genannten Art das Verhältnis zwischen den Monitorpixeln und den Bildspeicherpixeln durch eine vorausgewählte, kombinierte lineare Funktion definiert die mindestens zwei lineare Funktionen aufweist, die aus der Gruppe der linearen Funktionen für Zoomen, Vergrößern, Verschieben und Durchlaufen des Bildes ausgewählt sind, wobei die Steuerung die den Monitorpixeln entsprechenden Bildspeicherpixel dadurch bestimmt, dar die vorausgewählte kombinierte lineare Funktion schrittweise auslaßseitig des Bildspeichers in Anwendung gebracht wird und die so bestimmten Bildspeicherpixel unmittelbar auf die Anzeige geführt werden.
  • Gemäß einem zweiten Aspekt der Erfindung wird bei einem Verfahren zum Betreiben einer Bildanzeigevorrichtung der genannten Art eine kombinierte lineare Funktion ausgewählt, die mindestens zwei lineare Funktionen aufweist, die aus der Gruppe linearer Funktionen zum Zoomen, Verstärken, Verschieben und Bilddurchlauf ausgewählt sind, bei dem das Verhältnis zwischen den Monitorpixeln und den Bildspeicherpixeln definiert wird und die Steuerung veranlaßt wird, die den Monitorpixeln entsprechenden Bildspeicherpixel dadurch zu bestimmen, daß die vorausgewählte kombinierte lineare Funktion schrittweise auslaßseitig des Bildspeichers zur Anwendung gebracht wird und die so bestimmten Bildspeicherpixel unmittelbar auf die Anzeige geführt werden.
  • Wir haben erstmals erkannt, daß die kombinierten Funktionen, die üblicherweise zum Transformieren eines im Bildspeicher gespeicherten Bildes vor der Anzeige benutzt werden, alle auf eine lineare Form zurückgeführt werden können. Nachdem dies erkannt wurde, ist es dann möglich, das Verfahren auszuführen, bei dem eine Übereinstimmung zwischen den Monitorpixeln und Bildspeicherpixeln herbeigeführt wird, indem man gewisse bekannte Algorithmen zur Strichdarstellung benutzt, die kürzlich vorgeschlagen wurden, um schrittweise Annäherungen an gerade Linien auf einer Monitoranzeige zu erzeugen. Dies wiederum hat uns in die Lage versetzt, die Steuerung in Form einer bequemen Hardware auszuführen, anstelle der früheren Software, so dar die erforderliche Zeitdauer beträchtlich verringert werden konnte und somit die Wechselwirkung verbessert wurde. Das Verfahren liefert somit eine einzige, vereinfachte logische Realisierung, mit der es möglich ist, dar jede der Funktionen oder irgendeine Kombination der Funktionen durchführbar ist. Diese logische Realisierung erfordert aber eine Reihe von Tabellenspeichern, die geladen werden müssen, um das Verhältnis zwischen den Monitorpixeln und Bildspeicherpixeln zu definieren. Die Berechnung des Inhalts der Tabellenspeicher muß innerhalb einer einzeigen Bilderneuerungsperiode erfolgen, um das wechselseitige Verhalten sicherzustellen. In der bevorzugten Ausführungsform ist die Steuerung in der Lage, die ausgewählte kombinierte lineare Funktion in Übereinstimmung mit dem Bresenham Algorithmus zu implementieren. Dies soll im einzelnen nachstehend beschrieben werden, beinhaltet aber im wesentlichen, daß die Adressen eines Pixelsatzes (typischerweise der Monitorpixel) inkrementiert werden und dann bestimmt wird, ob eine Änderung der Adressen des entsprechenden Pixelsatzes (typischerweise der Bildspeicherpixel) ausgeführt werden soll, und bejahendenfalls, welche Änderung erfolgen soll.
  • Die vorausgewählte kombinierte lineare Funktion kann eine oder eine Kombination der Bildvergrößerung, des Bilddurchlaufs, der Bildverschiebung oder des Bildzoomens definieren.
  • Wenn mit dem Bresenham Algorithmus gerechnet wird und eine Kombination aller vier Transformationen erforderlich ist, dann ist typischerweise das Verhältnis zwischen der Adresse jedes Bildspeicherpixels (XFB) und der Adresse des entsprechenden Monitor- oder Videoanzeigepixels (XVD) wie folgt definiert:
  • XFB = SS* gerundet (B*XVD/(A*SS*M)+(B*P+A*S)/(A*SS*M)+SA (1)
  • worin
  • P = der Monitorpixel-Adressenversatz zum Verschieben
  • A,B = ganzzahlige Ziffern zum Definieren eines Zoom-Verhältnisses A:B (A> =B)
  • S = der Bildspeicherpixel-Adressenversatz für den Bilddurchlauf
  • SS = das Unterteilverhältnis für die Vergrößerung (d.h. SS:1)
  • SA = Versatz im Bildspeicher am Start einer Bildunterteilung (Bereich 0 < = SA < = SS-1)
  • M = Vergrößerung (d.h. M:1).
  • Ein ähnliches Verhältnis kann zwischen der Bildspeicher- Zeilenadresse (YFB) und der Monitor-Zeilenadresse (YVD) definiert und implementiert werden.
  • Ein Ausführungsbeispiel für das Verfahren und die Vorrichtung gemäß der Erfindung wird nun anhand der Zeichnung erläutert. Es zeigen:
  • Fig. 1 eine graphische Prinzipdarstellung des Bresenham Algorithmus;
  • Fig. 2 ein Blockschaltbild einer Bildanzeigevorrichtung;
  • Fig. 3 ein Blockschaltbild eines Teils der Hardware für die Auswahl und
  • Fig. 4 ein Blockschaltbild der restlichen Hardware für die Auswahl.
  • Um das Prinzip für den Bresenham Algorithmus zu verstehen, wird auf Fig. 1 verwiesen. Diese zeigt eine gerade Linie 1 und ihr Verhältnis zu vier benachbarten Monitoranzeigepixeln P1 bis P4. Es ist ersichtlich, daß keines der Pixel P1 bis P4 genau mit der Lage der Geraden 1 zusammenfällt und es ist notwendig, jene Pixel auszuwählen, die der Geraden am nächsten liegen.
  • Nimmt man an, daß für x = i-1 der Punkt (i-1, Yi-1), d.h. P3 am besten die wahre Position der Geraden repräsentiert. Dann sollte für x = i die gewählte Pixelposition diejenige sein, die der wahren Geraden am nächsten liegt. Aus Fig. 1 ist ersichtlich, daß die Regel zum Auswählen der Pixelposition bei x = i wie folgt ist:
  • Wenn (yi-1 + 1 - Yi) < (Yi - yi-1), dann wähle P&sub2; (i,yi-1 + 1), sonst wähle P&sub4; (i,yi-1) (2)
  • mit Yi = die wahre Höhe der Geraden bei x = i.
  • Diese Regel kann wie folgt vereinfacht werden:
  • wähle (i,yi-1 + 1), wenn 2yi-1 + 1 - 2Yi< 0 d.h. wenn:
  • ci-1 < 0 (3)
  • mit ci-1 = 2yi-1 + 1 - 2(dy/dx)i.
  • Da dx > 0, ist diese Regel äquivalent mit:
  • wähle (i,yi-1 + 1), wenn ei-1 < 0 (4)
  • mit ei-1 = 2dxyi + dx - 2dyi, woraus
  • ei = 2dxyi + dx - 2dy(i + 1)
  • so daß durch Subtrahieren:
  • ei = ei-1 + 2dx(yi - yi-1) - 2dy (5)
  • Aber aus der Gleichung (4)
  • wenn ei-1< 0, dann yi - yi-1 = 1
  • sonst yi - yi-1 = 0
  • Deshalb kann die Gleichung (5) jetzt wie folgt ausgedrückt werden: Angenommen (i,yi) ist die beste Pixelposition bei x = 1, dann ist bei x = i + 1:
  • wähle (i + 1, yi + 1), wenn ei < 0
  • mit ei = ei-1 + 2(dx - dy), wenn ei-1 < 0 ei-1 - 2dy, sonst
  • wähle (i+1,yi) (i= 1,2 ...dx).
  • Der Bresenham Algorithmus ist für Computergraphiken sehr gut bekannt und wird dort häufig zum Ziehen von Linien auf Bit-bemusterten Rasteranzeigen verwendet. Vergl. Fundamentals of Interactive Computer Graphics", J.D. Foley & A. Van Dam (Addison-Wesley 1983), S. 443-6.
  • The neuartige Anwendung dieses Algorithmus auf Bildanzeigevorrichtungen wird nunmehr erläutert.
  • Fig. 2 zeigt ein Blockschaltbild einer Ausführungsform der Bildanzeigevorrichtung, bei der ein Videomonitor 2 an einen konventionellen Farbkonverter 3 angeschlossen ist, der Pixeldaten erhält, die die Druckfarbenkomponenten Zyan (C), Magenta (M), Gelb (Y) und Schwarz (K) erhält und diese in rote (R), grüne (G) und blaue (B) Farbkomponenten konvergiert, welche die zugehörigen Phosphorpunkte auf der Monitoranzeige aktivieren. Die CMYK-Komponenten sind in einem Bildspeicher 4 gespeichert, der typischerweise vier Pixelreihen aufweist, von denen jede Reihe die Dimensionen 1280 x 1024 Pixel besitzt. Jede Reihe entspricht einer der Farbkomponenten und jede Farbkomponente wird von acht Bitdaten bestimmt. Die Daten sind in üblicher Weise von einem Bildscanner oder einer nicht dargestellten Speichereinrichtung über den Verbindungsbus 8 und unter der Steuerung eines Prozessors 100 in den Bildspeicher 4 geladen worden.
  • Um den gewünschten Teil des im Bildspeicher 4 abgespeicherten Bildes auszuwählen, ist ein Bedieneingang 5 vorgesehen (nämlich eine Maus oder ein digitales Bedienfeld o.ä.), das Koordinatenwerte in den in passender Weise programmierten Prozessor 100 über einen Verbindungsbus 8 einspeist. Der Prozessor 100 liefert Steuerwerte zu einer ZAPS (Zoomen, Vergrößern, Verschieben, Durchlauf)- Steuereinrichtung 6 (die noch im einzelnen weiter unten erläutert wird. Die ZAPS-Steuereinrichtung 6 ist an eine ZAPS-Auswahleinrichtung 9 angeschlossen, welche die Pixeldaten aus dem Bildspeicher 4 erhält und die ausgewählten Videodaten dem Farbkonverter 3 zuführt.
  • Wie vorstehend erläutert worden ist, kann der Bediener vier verschiedene Formen des Bildes auswählen, die im Bildspeicher zur Anzeige abgespeichert sind. Er kann beispielsweise veranlassen, daß das Bild durchläuft (S), verschoben (P), vergrößert (A) und gezoomt (Z) wird.
  • Die ZAPS-Steuereinrichtung 6 bestimmt entsprechend den von der Eingangseinrichtung empfangenen Befehlen (beispielsweise Bilddurchlauf und Vergrößerung) die Adressen der Bildspeicherpixel, die die zum Steuern der Monitoranzeige benutzten Daten enthalten. Dies erfolgt vorzugsweise in fester Verdrahtung, indem man von dem vorbeschriebenen Bresenham Algorithmus Gebrauch macht.
  • Aus Vereinfachungsgründen werden wir den Algorithmus so beschreiben, als wenn er nur für die X-Achse gilt, obwohl in der Praxis der Algorithmus natürlich auf die X- und Y- Achsen unabhängig voneinander angewendet werden kann.
  • In Ausführung des ZAPS-Algorithmus invertieren wir die Bildtransformationen. Anstelle des Transformierens des Bildspeicherbildes, wie es zur Anzeige gelangt, ziehen wir die inverse Transformation in Betracht. Für eine gegebene Position auf dem Bildschirm wollen wir die entsprechende Position im Bildspeicher berechnen. Aus diesem Grund werden die vier Transformationen in umgekehrter Reihenfolge ausgeführt. Zuerst wird die Bildschirmkoordinate verschoben, dann gezoomt, dann erfolgt der Bilddurchlauf und zuletzt wird vergrößert, um die Bildspeicheradresse abzuleiten. Wir verwenden den ZAPS-Algorithmus in dieser Reihenfolge.
  • Das Verschieben des Bildes macht es möglich, daß das Bild auf dem Anzeigebildschirm nach links oder rechts um ganze Zahlen angezeigter Pixel verschoben wird. Wird das Bild auch gezoomt oder vergrößert, so kann jedes angezeigte Pixel ein Bruchteil eines Pixels im Bildspeicher sein. Ohne Zoomen, Bilddurchlauf und Vergrößern ist die Adresse auf der Videoanzeige XPVD mit der Adresse im Bildspeicher XPFB durch eine einfache Funktion verknüpft:
  • XPFB = FP(XPVD, P) = XPVD + P
  • Verschieben um P angezeigte Pixel
  • Beim Zoomen des Bildes wird dieses mit dem Verhältnis zweier ganzer Zahlen A:B vergrößert. Ohne andere Transformationen beschreibt wiederum eine einfache Funktion das Zoomen:
  • XZFB = FZ(XZVD, A,B) = Gerundet(B*XZVD/A)
  • Zoomen im Verhältnis A:B
  • Der Bilddurchlauf stellt ein Verschieben nicht gezoomter Pixel dar. Dies hat die Wirkung, daß das Bild nach links oder rechts um ganze Zahlen von Bildspeicherpixel verschoben wird:
  • XSFB = FS(XSVD, S) = XSVD + S
  • Bilddurchlauf um S Bildspeicherpixel
  • Die Vergrößerung des Bildes dient zwei unterschiedlichen Zwecken. Einmal kann eine Anzahl kleinerer Bilder im Bildspeicher gespeichert sein, die durch Pixelwiederholung vergrößert werden, wenn sie angezeigt werden. Diese Vergrößerung erfolgt mit einem ganzzahligen Betrag. Das heißt, die Pixel im Bildspeicher können horizontal und vertikal mehrfach wiederholt werden. Wir benutzen den ganzzahligen Wert M, um den Vergrößerungsfaktor zu bestimmen.
  • Mit der zweiten Funktion der Vergrößerung sollen Bilder mit verringerter Auflösung angezeigt werden. Das heißt, Pixel können in regelmäßigen Intervallen aus dem Bildspeicher ausgewählt und mit dem gleichen Faktor wiederholt werden, so daß die Bildgröße unverändert bleibt. Der Wert für dieses Unterteilen muß ebenfalls ganzzahlig sein und wird mit SS bezeichnet. Ferner muß die Ausrichtung SA des Unterteilens gegenüber dem Bildspeicher spezifiziert werden.
  • Das Unterteilen kann mit der Vergrößerung kombiniert werden, um ein vergrößertes Bild verringerter Auflösung zu erhalten. Die folgende Funktion verknüpft die Position im Bildspeicher XAFB mit der Position auf der Videoanzeige XAVD:
  • XAFB = FA(XAVD, SS, SA, M) = SS*(XAVDdiv (SS*M) + SA)
  • Unterteilen mit SS:1
  • Beginn der Unterteilung bei SA
  • Vergrößern mit M:1.
  • Zuletzt müssen diese Funktionen in der ZAPS-Funktion zusammengestellt werden:
  • XFB = FZAPS(XVD, SS, SA, M, S, A, B, P) = FA(FS(FZ(FP(XVD, P), A,B), S), SS, SA, M) = SS*(FS(FZ(FP(XVD, P), A,B), S) div (SS*M) + SA = SS*(FZ(FP(XVD,P)A,B) + S) div (SS*M)) + SA = SS*((gerundet(B*FP(XVD, P)/A) + S) div (SS*M) + SA = SS*((gerundet(B*(XVD + P)/A) + S) div (SS*M) + SA
  • Die mathematische abgerundete Funktion liefert den ganzzahligen Teil der Gleichung, d.h. der Bruchteil wird gerundet,
  • z.B. 5,3 gerundet = 5
  • Die mathematische Funktion div liefert den Quotienten einer Division als ganze Zahl und läßt den Rest unbeachtet,
  • z.B. 9 div 4 = 2
  • Die mathematische Funktion mod liefert den Rest der Division ganzzahlig,
  • z.B. 9 mod 4 = 1
  • Es ist stets richtig, daß (gerundet (u) div v)+W = gerundet ((u/v)=w), wenn v und w ganzzahlig sind.
  • Somit läßt sich für FZAPS schreiben:
  • XFB = FZAPS (XVD, SS, SA, M, S, A, B, P) = SS*gerundet((B*(XVD + P)/A + S)/(SS*M)) + SA = SS*gerundet(B*XVD/(A*SS*M)+(B*P+ A*S)/(A*SS*M) )+ SA
  • Da der Ausdruck innerhalb der Rundung linear ist,
  • a*X/b + c/b
  • sehen wir, daß dies mit dem Bresenham Algorithmus realisiert werden kann. Im folgenden wird die Realisierung des ZAPS-Algorithmus unter Verwendung der Bresenham Formel dargestellt. Wenn wir die Parameter für das Verschieben und den Bilddurchlauf auf ganze Zahlen (also nicht auf Bruchteile) beschränken, so können wir mit gerundeten Zahlen rechnen, und damit die Bahnbreiten für die Hardwaredaten um ein Bit verkleinern. Der Algorithmus kann nunmehr wie folgt dargestellt werden:
  • var XVD: ganzzahlig; (immer ganzzahlig)
  • XFB: ganzzahlig; (ganzzahliger Ausdruck)
  • FFB: ganzzahlig; (Bruchzahl, maßstäblich)
  • XS: ganzzahlig; (X Schritt)
  • XSpl: ganzzahlig; (X Schritt + 1)
  • FS: ganzzahlig; (F Schritt)
  • FSml: ganzzahlig; (F Schritt - 1)
  • Anfang XS : = B div (A*SS*M) * SS;
  • XSpl : = XS + SS;
  • FS : = B mod (A*SS*M);
  • FSml : = FS - A*SS*M;
  • XFB : = ((B*P + A*S) div (A*SS*M)) * SS + SA;
  • FFB : = ((B*P + A*S) mod (A*SS*M)) - A*SS*M+B mod (A*SS*M);
  • XVD : = 0;
  • für i : = 0 bis N do
  • Anfang Emittiere (i, XVD, XFB);
  • XVD : = XVD + 1;
  • wenn FFB > = 0, dann
  • Anfang XFB : = XFB + XSpl;
  • FFB : = FFB + FSml
  • Ende
  • sonst
  • Anfang XFB : = XFB XS;
  • FFB : = FFB + FS
  • Ende
  • Ende
  • Ende
  • Wir haben somit gezeigt, daß der ZAPS Algorithmus, der zunächst danach aussieht, als ob eine sehr aufwendige Berechnung erforderlich wäre, sehr wirkungsvoll mit dem Bresenham Algorithmus realisierbar ist.
  • Wenn der Bildspeicher mit einem einzigen Pixel in jedem Wort organisiert ist, liefert der ZAPS Algorithmus einfach eine Adresse an den Bildspeicher für jedes angezeigte Pixel. Um eine für zeitgemäße Videoanzeigen ausreichende Speicherbandbreite bereitzustellen, müssen jedoch die meisten Bildspeicher in einer Weise organisiert sein, daß viele benachbarte Pixel an jede Speicherreferenz geliefert werden. Solche Bildspeicher, insbesondere solche, die mit Video-RAM-Einrichtungen realisiert werden, machen es für gewöhnlich erforderlich, daß die Daten der Reihenfolge nach durch den Videoanschluß gelesen werden.
  • Wir nehmen an, daß jede Speicherreferenz K benachbarte Pixel des Bildspeichers liefert, daß die Adresse des ersten Pixels in dem K Pixelwort gleich 0 mod K ist und daß der Bildspeicher nacheinander gelesen wird. Die am Bildspeicher definierten Vorgänge sind dann 1) mit der Bildspeicheradresse zu beginnen und dann 2) das nächste K Pixelwort aus dem Bildspeicher auszulesen.
  • Um den ZAPS Algorithmus für K Pixelwörter zu verallgemeinern, fordern wir, daß das Zoom-Verhältnis größer oder gleich 1 ist. Verhältnisse kleiner 1 sind nicht zulässig, da sie bedingen, daß die Daten aus dem Bit-Speicher schneller als mit der Anzeigegeschwindigkeit herausgeholt werden, was normalerweise nicht möglich ist.
  • Die ZAPS Auswahl-Hardware 9 liegt zwischen dem Bildspeicher 4 und der Video-Outputleitung. Sie erhält Wörter, bestehend aus K benachbarten Pixeln aus dem Bildspeicher. Sie liefert K Pixelwörter an die Video-Outputleitung. Die ZAPS Auswahl Hardware 9 unter Kontrolle der ZAPS-Steuerhardware 6 wählt die Pixel aus und ordnet sie so an, daß das vergrößerte, durchlaufende, gezoomte und verschobene Bild auf dem Monitor erscheint. Zwei vorhergehende Wörter müssen von der ZAPS Auswahl-Hardware 9 als Kandidaten für diesen Auswahlprozeß aufgehoben werden. Ohne Vergrößerung muß nur ein Wort aufgehoben werden. Fig. 3 zeigt die ZAPS Auswahl-Hardware 9 in Einzelheiten. Daten aus dem Bitspeicher 4 werden parallel in zwei Register 10, 11 eingespeist, deren Ausgänge zusammen mit den originären Daten zu einem Satz K Multiplexer 12 geführt werden. Jeder Multiplexer kann getrennt von der ZAPS Steuereinrichtung 6 ausgewählt werden, wird nachstehend beschrieben, so daß die korrekten Daten an die Videobildleitung und damit zum Farbkonverter 3 ausgegeben werden.
  • Um die korrekten Daten an die Videobildleitung zu liefern, operiert die ZAPS Hardware in zwei Ebenen. Erstens bestimmt sie, wann das nächste Wort aus dem Bildspeicher zu lesen ist. Zweitens wählt sie K Pixel aus den laufenden und den vorangegangenen wenigen Wörtern, um das Ausgangswort zu bilden. Wenn beispielsweise das nicht gezoomte und nicht vergrößerte Bild durchlaufen soll, so werden K benachbarte Pixel aus zwei benachbarten Wörtern ausgewählt. Wenn das Bild mit einer 2:1 Unterteilung vergrößert werden soll, so wird jedes zweite Pixel zweimal ausgewählt.
  • Die Auswahl der Pixel wird realisiert, indem man K Schritte des Bresenham Algorithmus ausführt. Anstelle der Berechnung von XFB als einzige Variable, teilen wir dessen Wert in eine Wortadresse WFB und eine Auswahladresse SFB für den Multiplexer in Fig. 3 auf, derart daß
  • XFB = K * WFB + SFB.
  • Der Wert WFB darf sich nur alle K Bresenham Schritte ändern. Alle K Schritte prüfen wir den Wert SFB. Würde er größer als K, so subtrahieren wir K und inkrementieren WFB, d.h. wir lesen das nächste Wort aus dem Bildspeicher aus.
  • Liegt keine Vergrößerung vor, so kann SFB niemals um mehr als K in K Bresenham Schritten vergrößert werden, da der Zoom niemals kleiner als 1 ist. Damit benötigt die Hardware niemals mehr als das laufende Wort und das vorangegangene Wort aus dem Bildspeicher. Liegt eine Vergrößerung vor, so kann SFB in K Bresenham Schritten bis zu 2 * (K-1) vergrössert werden. Dies erfolgt, wenn man mit K-1 unterteilt. In diesem Fall erreicht oder überschreitet SFB manchmal 2*WFB (aber niemals 3*WFB), wozu man das laufende Wort und zwei vorangegangene Wörter benötigt.
  • Die ZAPS Steuerhardware 6 ist in Fig. 4 dargestellt. Die Schaltung besitzt einen Multiplexer 13, der auf das Vorzeichen eines Inputs auf einer Leitung 14 anspricht, um einen Wert 0 (-ve) oder -K (+ve) auf einem Multiplexer 15 zu geben, der an seinen Output den Wert aus dem Multiplexer 13 weitergibt, wenn ein logischer Input 16 echt (Y) bzw. hochpegelig ist oder den Output aus einem Multiplexer 17, wenn das logische Signal 16 falsch (N) oder niederpegelig ist. Der Multiplexer 17 erhält ein Signal XS und ein Signal XSp1, wobei das erste Signal zum Multiplexer 15 geht, wenn ein Auswahlsignal 18 negativ ist und das zweite Signal zum Output geht, wenn das Auswahlsignal 18' positiv ist. Output vom Multiplexer 15 geht zu einer Addierstufe 18.
  • Ein weiterer Multiplexer 19 erhält den Output vom Addierer 18 und auch ein anfängliches SFB-Signal (wie oben definiert) und spricht auf ein Auswahlsignal 20 an, um entweder das anfängliche SFB-signal, wenn das Signal 20 echt (Y) ist oder andernfalls das Signal vom Addierer 18 zu einem SFB- Register 21 weiterzugeben. Der Output des Registers 21 gelangt auf den Addierer 18 und zu einem ersten Register 22, wohingegen ein das Vorzeichen des Outputs des Registers 21 darstellendes Signal auf die Leitung 14 und zu einem Input einer UND-Schaltung 23 gegeben wird. Der andere Input der UND-Schaltung 23 erhält ein Schritt "0"-Signal.
  • Ein Multiplexer 24 erhält die Werte FS und FSm1 darstellende Signale und liefert das erste Signal zu einem Addierer 25, wenn ein Inputsignal auf einer Leitung 26 einen negativen Wert darstellt, und liefert das zweite Signal zu dem Addierer 25, wenn das Inputsignal auf der Leitung 26 einen positiven Wert darstellt. Ein Multiplexer 27 erhält an einem Input einen Output vom Addierer 25 und an seinem anderen Input ein anfängliches FY-Signal. Das erstere gelangt durch ein Register 28, wenn das Signal auf einer Leitung 25 eine logische 0 (N) ist und das zweite gelangt zum Register 28, wenn das Signal auf der Leitung 26 eine logische 1 (Y) ist. Der Ausgang des Registers 28 wird zum Addierer 25 geführt, wohingegen das Vorzeichen des Ausgangs auf die Leitung 18 gelangt. Wie Fig. 4 zeigt, sind Taktsignale zum Steuern der Register 21, 28 und 22 vorgesehen. Der Output der UND-Schaltung 23 veranlaßt, daß ein neues Wort aus dem Bildspeicher geholt wird, während die Ausgänge der Register 22 den Multiplexern 12 in Fig. 5 als Eingänge zugeführt werden.
  • Der von der in Fig. 4 dargestellten Schaltung realisierte Algorithmus wird nachstehend definiert und es wird bemerkt, dar der Wert SFB durch das Substrahieren von K einen Versatz erhält, so daß nur sein Vorzeichen-Bit überprüft werden muß, um zu bestimmen, ob ein neues Wort aus dem Bildspeicher geholt werden soll.
  • var XVD: ganzzahlig; (immer ganzzahlig)
  • WFB: ganzzahlig; (Wortadresse im Bildspeicher)
  • SFB: ganzzahlig; (mux auswählen)
  • FFB: ganzzahlig; (Bruchzahl, maßstäblich)
  • XS: ganzzahlig; (X Schritt)
  • XSpl: ganzzahlig; (X Schritt + 1)
  • FS: ganzzahlig; (F Schritt)
  • FSml: ganzzahlig; (F Schritt - 1)
  • Anfang XS : = B div (A*SS*M) * SS;
  • XSpl : = XS + SS;
  • FS : = B mod (A*SS*M);
  • FSml : = FS - A*SS*M;
  • WFB : = (((B*P+A*S) div (A*SS*M))* SS+SA div K;
  • SFB : = (((B*P+A*S) div (A*SS*M))* SS+SA) mod K-K;
  • FFB : = ((B*P + A*S) mod (A*SS*M)) - A*SS*M + B mod (A*SS*M);
  • Holen (WFB); (Übriggebliebene initialisieren)
  • WFB : = WFB + 1;
  • Holen (WFB); (Übriggebliebene initialisieren)
  • WFB : = WFB + 1;
  • Holen (WFB); (Übriggebliebene initialisieren)
  • WFB : = WFB + 1;
  • für i : = 0 bis N do
  • Anfang
  • wenn i mod k = 0, dann
  • SFB > 0, dann
  • Beginne zu holen (WFB);
  • WFB: = WFB + 1;
  • SFB: = SFB - K
  • Ende
  • Emittiere (SFB);
  • wenn FFB > 0, dann
  • Anfang SFB : = SFB + XSpl;
  • FFB : = FFB + FSml
  • Ende
  • sonst
  • Anfang SFB : = SFB + XS;
  • FFB : = FFB + FS
  • Ende
  • Ende
  • Ende
  • Fig. 4 zeigt die vollständige ZAPS Steuer-Hardware in einer Ausführung mit Mehrfach-Pixelwörter. Diese Schaltung arbeitet Gruppen von K + 1 Schritten ab. Der Schritt 0 prüft den Wert SFB, um zu bestimmen, ob es nötig ist, ein Wort aus dem Bildspeicher zu holen. Ist SFB nicht negativ, so wird ein Wort geholt und SFB wird um K verringert. Während des Schrittes 0 wird der Wert FY nicht geändert. Die Schritte 1 bis K rücken SFB und FY vor, um die K Werte der Multiplexer-Auswahl zu berechnen.

Claims (4)

1. Bildanzeigevorrichtung mit einem Anzeigemonitor (2); einem Bildspeicher (4) zum Speichern von Daten, die den Farbinhalt der Pixel des Bildes definieren; und einer Steuerung (6,9) zum Auswählen der richtigen Pixeldaten aus dem Bildspeicher für jedes auf dem Monitor (2) angezeigte Pixel, dadurch gekennzeichnet, daß das Verhältnis zwischen den Monitorpixeln und den Bildspeicherpixeln durch eine vorausgewählte, kombinierte lineare Funktion definiert ist, die mindestens zwei lineare Funktionen aufweist, die aus der Gruppe der linearen Funktionen für Zoomen, Vergrößern, Verschieben und Durchlaufen des Bildes ausgewählt sind, wobei die Steuerung (6,9) die den Monitorpixeln entsprechenden Bildspeicherpixel dadurch bestimmt, daß die vorausgewählte kombinierte lineare Funktion schrittweise auslaßseitig des Bildspeichers in Anwendung gebracht wird und die so bestimmten Bildspeicherpixel unmittelbar auf die Anzeige geführt werden.
2. Vorrichtung nach Anspruch 1, bei der die Steuerung (6,9) in der Lage ist, die ausgewählte kombinierte lineare Funktion in Übereinstimmung mit dem Bresenham Algorithmus zu implementieren.
3. Vorrichtung nach Anspruch 2, bei der das Verhältnis zwischen der Adresse jedes Bildspeicherpixels (XFB) und der Adresse des entsprechenden Monitor- oder Videoanzeigepixels (XVD) bestimmt ist durch
XFB = SS* Trunc (B*XVD/(A*SS*M)+(B*P+A*S)/(A*SS*M)+SA (1)
worin
P = der Monitorpixel-Adressenversatz zum Verschieben
A,B = ganzzahlige Ziffern zum Definieren eines Zoom-Verhältnisses A:B (A> =B)
S = der Bildspeicherpixel-Adressenversatz für den Bilddurchlauf
SS = das Unterteilverhältnis für die Vergrößerung (d.h. SS:1)
SA = Versatz im Bildspeicher am Start einer Bildunterteilung (Bereich 0 < = SA < = SS-1)
M = Vergrößerung (d.h. M:1).
4. Verfahren zum Betreiben einer Bildanzeigevorrichtung nach einem der vorhergehenden Ansprüche, bei dem eine kombinierte lineare Funktion ausgewählt wird, die mindestens zwei lineare Funktionen aufweist, die aus der Gruppe linearer Funktionen zum Zoomen, Verstärken, Verschieben und Bilddurchlauf ausgewählt sind, bei dem das Verhältnis zwischen den Monitorpixeln und den Bildspeicherpixeln definiert wird und die Steuerung (6,9) veranlaßt wird, die den Monitorpixeln entsprechenden Bildspeicherpixel dadurch zu bestimmen, daß die vorausgewählte kombinierte lineare Funktion schrittweise auslaßseitig des Bildspeichers zur Anwendung gebracht wird und die so bestimmten Bildspeicherpixel unmittelbar auf die Anzeige geführt werden.
DE69104867T 1990-02-21 1991-02-19 Verfahren und Einrichtung zur Anzeige von Bildern. Expired - Fee Related DE69104867T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB909003922A GB9003922D0 (en) 1990-02-21 1990-02-21 Image display apparatus and method

Publications (2)

Publication Number Publication Date
DE69104867D1 DE69104867D1 (de) 1994-12-08
DE69104867T2 true DE69104867T2 (de) 1995-03-09

Family

ID=10671386

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69104867T Expired - Fee Related DE69104867T2 (de) 1990-02-21 1991-02-19 Verfahren und Einrichtung zur Anzeige von Bildern.

Country Status (5)

Country Link
US (1) US5373311A (de)
EP (1) EP0444812B1 (de)
JP (1) JPH0756556A (de)
DE (1) DE69104867T2 (de)
GB (1) GB9003922D0 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774110A (en) * 1994-01-04 1998-06-30 Edelson; Steven D. Filter RAMDAC with hardware 11/2-D zoom function
US6621940B2 (en) * 1999-06-10 2003-09-16 Xerox Corporation Image rotation in opponent color space
US8116587B2 (en) * 2010-02-16 2012-02-14 Ricoh Co., Ltd. Method and apparatus for high-speed and low-complexity piecewise geometric transformation of signals

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6061796A (ja) * 1983-09-16 1985-04-09 シャープ株式会社 表示装置
EP0149788B1 (de) * 1983-12-14 1992-04-15 Ascii Corporation Anzeigesteuersystem
US4734690A (en) * 1984-07-20 1988-03-29 Tektronix, Inc. Method and apparatus for spherical panning
JPS623372A (ja) * 1985-06-27 1987-01-09 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 画像変換装置
US5202670A (en) * 1986-08-20 1993-04-13 Canon Kabushiki Kaisha Image processing apparatus
US5167018A (en) * 1986-09-24 1992-11-24 Daikin Industries, Ltd. Polygon-filling apparatus
CA1258912A (en) * 1986-11-20 1989-08-29 Stephen J. King Interactive real-time video processor with zoom, pan and scroll capability
US4870406A (en) * 1987-02-12 1989-09-26 International Business Machines Corporation High resolution graphics display adapter
US4855935A (en) * 1987-05-08 1989-08-08 Sun Microsystems, Inc. Method and apparatus for rendering vectors using bresenham parameters
US4878182A (en) * 1987-10-30 1989-10-31 International Business Machines Corporation Multiple pixel generator
GB2219178A (en) * 1988-02-11 1989-11-29 Benchmark Technologies State machine controlled video processor
US4988984A (en) * 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system
US5125043A (en) * 1989-06-23 1992-06-23 Microterm, Inc. Image processing with real time zoom logic

Also Published As

Publication number Publication date
GB9003922D0 (en) 1990-04-18
DE69104867D1 (de) 1994-12-08
EP0444812A1 (de) 1991-09-04
EP0444812B1 (de) 1994-11-02
US5373311A (en) 1994-12-13
JPH0756556A (ja) 1995-03-03

Similar Documents

Publication Publication Date Title
DE68928923T2 (de) Verfahren zum senkrechten Filtern einer nach einem Gitter abgetasteten Anzeige
DE69331031T2 (de) Vorrichtung zur parallelen Bilderzeugung
DE3686664T2 (de) Bildverarbeitungsverfahren und -system.
DE3750211T2 (de) Bildanzeigeverarbeitungseinheit für ein graphisches Endgerät.
DE3853489T2 (de) Grafik-Anzeigesystem.
DE68928557T2 (de) Bildverarbeitungsgerät und -methode
DE69729916T2 (de) Dynamische bildgrössenänderung
DE3587750T2 (de) Peripheriegerät für Bildspeicher.
DE69423129T2 (de) System und Verfahren zur Kurvendarstellung
DE10101073B4 (de) Bildaufbereitungsvorrichtung mit niedrigeren Speicherkapazitätsanforderungen und Verfahren dafür
DE3315148C2 (de)
EP1175663A1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE3515037C2 (de)
DE69116217T2 (de) Anzeigegerät
DE3889240T2 (de) Zähler mit veränderbarer Verschaltung zur Adressierung in graphischen Anzeigesystemen.
DE69521953T2 (de) Organisation eines Z-Puffer-Etikettenspeichers
DE69031942T2 (de) Gleichzeitiges Initialisierungsverfahren von Doppelpuffer und Rasterpuffer
DE69329940T2 (de) Grafisches System
DE3853511T2 (de) Mehrbildelementgenerator.
DE69109040T2 (de) Verbesserungen bei den nach dem Rasterverfahren arbeitenden Sichtgeräten.
DE69221220T2 (de) Verfahren zur Zuteilung von Speicherplätzen ausserhalb des Bildschirms
DE69215155T2 (de) Gerät mit schneller Kopierung zwischen Rasterpuffern in einem Anzeigesystem mit Doppel-Pufferspeichern
DE3518280A1 (de) Sichtanzeigeanordnung
DE69104867T2 (de) Verfahren und Einrichtung zur Anzeige von Bildern.
DE3688513T2 (de) Bit-adressierbares mehrdimensionales Netz.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FUJIFILM ELECTRONIC IMAGING LTD., LONDON, GB

8339 Ceased/non-payment of the annual fee