-
Hintergrund
-
Diese
Erfindung betrifft im Allgemeinen prozessorbasierte Systeme und
im Besonderen das Skalieren eines Bilds auf einer Anzeigevorrichtung eines
prozessorbasierten Systems.
-
Die
Fähigkeit,
ausgewählte
Bilder, die Figuren, Text, Graphiken usw. umfassen können, auf
einer Anzeigevorrichtung eines prozessorbasierten Systems zu skalieren,
ist für
die Bediener von prozessorbasierten Systemen im Allgemeinen eine
nützliche
Funktion. Sehbehinderte können
beispielsweise Softwareanwendungen verwenden, die Inhalte einer Anzeigevorrichtung
eines prozessorbasierten Systems für besseres Sehen vergrößern. Zusätzlich möchten Bediener
von graphisch orientierten Anwendungen Inhalte eines Displays eines
prozessorbasierten Systems vielleicht für eine klareres und detaillierteres
optisches Bild erweitern oder vergrößern.
-
Konventionelle
Verfahren zum Skalieren von Bildern wenden teilweise einfache Skalieralgorithmen
an, wie beispielsweise die Verwendung von Vervielfältigungsalgorithmen
zum Vergrößern oder
Verkleinern von Bildern. Als Ergebnis kann es in einigen Fällen so
wirken, als hätten
die skalierten Bilder rauere (z.B. gezackte) Kanten. Außerdem ist
es möglich, dass
einige konventionelle Skalierverfahren nicht so schnell wie gewünscht skalieren,
vor allem wenn Teile von großen,
komplizierten Graphikbildern auf verschiedene Größen skaliert werden.
-
Die
Druckschrift "Computer
Graphics: Principles and Practice", J. Foley, A. Van Dam, S. Feiner, J.
Highes, 1996, Addison-Wesley
Publishing Company Inc., Reading, Mass., USA aus dem Stand der Technik
beschreibt in Kapitel 4.4. "The
video Controller" das
Skalieren eines Bildteils um einen Skalierfaktor. Für die Anzeige
des skalierten Bilds auf einem Teil der Ansichtsoberfläche werden
Register, die die Grenzkoordinaten des Darstellungsfensters enthalten,
mit den die aktuelle Position des Raster-Scans definierenden X,
Y-Registern verglichen. Wenn sich der Strahl im Darstellungsfenster
befindet, werden Pixel aus einem Fensterbereich des Framebuffers geholt
und nach Bedarf vervielfältigt.
Andernfalls werden Pixel von der Position im Framebuffer mit denselben
(x, y)-Koordinaten wie der Strahl geholt.
-
Die
US 4,546,349A offenbart
ein System zum selektiven Auswählen,
Vergrößern und
Nebeneinanderstellen von ausgewählten
Bereichen eines Raster-Scan-Bilds in Bezug auf das Primärbild. Die ausgewählten Bereiche
des Primärbilds
werden angezeigt, skaliert und offset-unabhängig vom Primärbild, aber
relativ zu einem lokalen Zoombereich, und werden durch Extrahieren
der Daten aus dem lokalen Zoomspeicher angezeigt, wenn die Rasteranzeige die
Bildschirmbereiche abtastet, in denen das Zoombild angezeigt werden
soll.
-
Beim
Skalieren ist es in einigen Fällen
wünschenswert,
das skalierte Bild dynamisch zu aktualisieren. Das heißt, es ist
manchmal wünschenswert, das
skalierte Bild so "dynamisch" zu aktualisieren, dass
es dem Bediener ein Auffrischen oder Neuskalieren des zu Grunde
liegenden Bildes bei jeder Änderung
erspart.
-
Daher
besteht Bedarf für
eine bessere Skalierungweise von Bildern.
-
Kurze Beschreibung
der Zeichnungen
-
Die
Erfindung kann in Bezug auf die folgende Beschreibung in Verbindung
mit den begleitenden Zeichnungen verstanden werden, in denen dieselben Bezugszeichen
dieselben Elemente bezeichnen, und in denen:
-
1 eine
Vorder-Aufrissansicht eines prozessorbasierten Systems gemäß einer
Ausführungsform
der vorliegenden Erfindung ist;
-
2 ein
stilisiertes Blockdiagramm eines prozessorbasierten Systems gemäß der vorliegenden
Erfindung ist;
-
3 ein
stilisiertes Blockdiagramm eines Graphikadapters gemäß der vorliegenden
Erfindung ist;
-
4 ein
Flussdiagramm für
auf dem prozessorbasierten System aus 1 residente
Software gemäß einer
Ausführungsform
der vorliegenden Erfindung ist; und
-
5 einen
Skalierungsvorgang gemäß einer
Ausführungsform
der vorliegenden Erfindung unter Verwendung des Verfahrens aus 3 veranschaulicht.
-
Detaillierte
Beschreibung
-
Erläuternde
Ausführungsformen
der Erfindung sind unten beschrieben. Im Interesse der Klarheit
sind in dieser Beschreibung nicht alle Eigenschaften einer tatsächlichen
Implementierung dargestellt. Man wird natürlich einsehen, dass bei der
Entwicklung einer solchen tatsächlichen
Ausführungsform
zahlreiche implementierungsspezifische Entscheidungen getroffen
werden müssen,
um die spezifischen Ziele des Entwicklers zu erreichen, wie beispielsweise
die Einhaltung von system- und geschäftsbezogenen Einschränkungen,
die von einer Implementierung zur anderen variieren. Außerdem wird
anerkannt werden, dass solch eine Entwicklunganstrengung komplex
und zeitraubend sein kann, aber für den Durchschnittsfachmann,
der den Vorteil dieser Offenbarung hat, nichtsdestoweniger ein Routineunterfangen
ist.
-
Nun
ist in Bezug auf 1 ein prozessorbasiertes System 5 gemäß einer
Ausführungsform
der vorliegenden Erfindung gezeigt. Das prozessorbasierte System 5 kann
ein Laptop, ein Desktop, ein Großrechner, ein Fernsehgerät mit einer
Setup-Box oder jedes andere Gerät
sein, bei dem Skalieren wünschenswert
ist. Das prozessorbasierte System 5 umfasst eine mit einem
Steuerkasten 15 verbundene Anzeigevorrichtung 10.
Eingabegeräte,
eine Tastatur 17 und eine Maus 19, sind mit dem
Steuerkasten 15 verbunden. Im Allgemeinen leitet der Steuerkasten 15 durch
die Anzeigevorrichtung 10 Information an einen Bediener
weiter, auf die der Bediener unter Verwendung eines der Eingabegeräte 17, 19 antwortet.
Das prozessorbasierte System 5 weist ein oder mehrere Mediengeräte 20, 22 auf.
Obwohl die Mediengeräte 20, 22 nicht
derartig beschränkt
sind, umfassen sie in der gezeigten Ausführungsform ein Disketten- und
ein Compact-Disk
(CD)-Laufwerk.
-
Nun
ist in Bezug auf 2 ein stilisiertes Blockdiagramm
eines Steuerkastens 15 des prozessorbasierten Systems 5 aus 1 gezeigt.
Aus Klarheitsgründen
und für
eine vereinfachte Darstellung sind in 2 nur ausgewählte Funktionsblöcke des Steuerkastens 15 gezeigt,
obwohl der Fachmann anerkennen wird, dass der Steuerkasten 15 zusätzliche Funktionsblöcke umfassen
kann.
-
Das
prozessorbasierte System 5 umfasst eine Steuereinheit 70 zum
Durchführen
einer Vielzahl von Aufgaben für
das prozessorbasierte System 5. In einer Ausführungsform
umfasst die Steuereinheit 70 einen Prozessor. Die Steuereinheit 70 ist
mit einer Eingabeschnittstelle 74 und einer Medienschnittstelle 84 verbunden.
Die Eingabeschnittstelle 74 ist beispielsweise zum Anschluss
von Eingabegeräten
wie die Tastatur 17 (siehe 1), die
Maus 19 (siehe 1), ein Mikrophon (nicht gezeigt)
usw. geeignet. Die Medienschnittstelle 84 kann das Diskettenlaufwerk 20 (siehe 1),
das CD-Laufwerk 22 (siehe 1), ein
Magnetbandlaufwerk (nicht gezeigt) usw. anschließen.
-
Das
prozessorbasierte System 5 umfasst einen Speicher 86 und
eine Speichereinheit 88. Der Speicher 86 kann
ein Arbeitsspeicher (random access memory, RAM) sein, der zum vorübergehenden Speichern
von Information verwendet werden kann. Die Speichereinheit 88 des
prozessorbasierten Systems 5 kann in einer Ausführungsform
ein Festplattenlaufwerk sein. Die Speichereinheit 88 kann
ein Basisdatenaustauschsystem (Basic input/output system, BIOS),
ein Betriebssystem und andere Anwendungen für das prozessorbasierte System 5 speichern.
Eine Skalieranwendung 410 kann in der Speichereinheit 88 gespeichert
werden. Jedes einer Vielzahl von Betriebssystemen kann auf dem prozessorbasierten
System installiert sein, einschließlich Windows, DOS (disk operating
system), AIX, LINUX usw.
-
Der
Steuerkasten 15 umfasst eine Graphikschnittstelle 90.
Die Graphikschnittstelle 90 stellt Graphikunterstützung für den Computer 5 zur
Verfügung.
Die Graphikschnittstelle 90 akzeptiert anzuzeigende Daten
und verarbeitet die Daten, so dass sie auf der Anzeigevorrichtung 10 dargestellt
werden können.
In einer Ausführungsform
kann die Graphikschnittstelle 90 ein Graphikadapter sein,
der zum Anschließen
der Anzeigevorrichtung 10 des prozessorbasierten Systems 5 ausgelegt
ist. Die Graphikschnittstelle 90 schließt in der gezeigten Ausführungsform
einen Videospeicher 95 und eine Überlagerungsmaschine 100 ein.
Die Graphikschnittstelle 90 kann eine (nicht gezeigte)
Graphikmaschine zum Bereitstellen von konventioneller, nichtbildlicher (non-video)
Graphikunterstützung
aufweisen.
-
Der
Videospeicher 95 (häufig
auch als "Framebuffer" bezeichnet) kann
ein Hochgeschwindigkeits-Arbeitsspeicher zum Speichern von Information
sein, die letztendlich auf der Anzeigevorrichtung 10 des
prozessorbasierten Systems 5 dargestellt wird. Der Videospeicher 95 umfasst
einen Bildschirm-Speicherbereich 110,
der eine elektronische Darstellung eines oder mehrerer Bilder speichert,
die ein Bediener auf der Anzeigevorrichtung 10 des prozessorbasierten
Systems 5 betrachtet. Daher wird jede Aktualisierung des
Bildschirm-Speicherbereichs 110 auch auf der Anzeigevorrichtung 10 wiedergegeben.
-
In
einer Ausführungsform
kann die Überlagerungsmaschine 100 Graphiken
oder statische Bilder beispielsweise über einen Hintergrund überlagern, der
typischerweise ein oder mehrere, ebenfalls auf der Anzeigevorrichtung 10 sichtbare
Bilder umfasst. Die elektronischen Darstellungen der Überlagerungs-
und Hintergrundbilder sind in dem Bildschirm-Speicherbereich 110 gespeichert.
In der gezeigten Ausführungsform
ist jedoch die Überlagerungsmaschine 100,
obwohl nicht derartig beschränkt,
eine Bildüberlagerungsmaschine,
die zum Mischen von Bilderfassungsdaten (video capture data) mit
Graphikdaten auf der Anzeigevorrichtung 10 geeignet ist.
In einer Ausführungsform
kann die Überlagerungsmaschine 100 eine
Vielzahl von Datenformaten unterstützen, einschließlich YUV
4:2:2, RGB15, RGB16 und RGB24. Die Überlagerungsmaschine 100 ist
in der gezeigten Ausführungsform dazu
geeignet, eine elektronische Darstellung von Bildern von einem Quellort
(z.B. einem Ort im Videospeicher 95 oder anderen Quellen)
zu der Anzeigevorrichtung 10 des prozessorbasierten Systems 5 zu erzeugen.
Im Allgemeinen werden die elektronischen Darstellungen von Bildern
von der Überlagerungsmaschine 100 auf
dem Hintergrund platziert.
-
Die Überlagerungsmaschine 100 schließt einen
Skalierer (Staler) 120 ein, der in einer Ausführungsform
hardware-implementiert
sein kann. Der Skalierer 120 kann in einer Ausführungsform
der Erfindung fortschrittliche Skalieralgorithmnen anwenden, die
beispielsweise Interpolation und andere Filtertechniken verwenden,
um qualitativ hochwertige skalierte Bilder zu erhalten. Zusätzlich kann
der Skalierer 120 geeignet für multi-lineare Skalierung
sein, was bedeutet, dass eine Filterung unter Verwendung eines oder
mehrerer vertikaler und horizontaler Taps durchgeführt wird.
Die Bezeichnung "Taps", wie sie hier verwendet
wird, umfasst die Anzahl von Eingangspixeln, die zur Erstellung
jedes Ausgangspixels beitragen. Die Graphikschnittstelle 90 kann
Bildüberlagerung
als eine der Standardfunktionen unterstützen. Der Intel®i810-Chipsatz,
ein moderner, von der Inter Corporation angebotener Graphikchipsatz, kann
in der Graphikschnittstelle 90 verwendet werden, um eine
Bildüberlagerungsfähigkeit
gemäß einer
Ausführungsform
der vorliegenden Erfindung bereitzustellen.
-
Nun
ist in Bezug auf 3 ein Blockdiagramm der Graphikschnittstelle 90 gemäß der vorliegenden
Erfindung gezeigt. Es sollte anerkannt werden, dass die Graphikschnittstelle 90 im
Allgemeinen einen zugehörigen
Gerätetreiber
haben wird, der die Graphikschnittstelle und die Softwareanwendung koppelt,
die versucht, auf eine oder mehrere Funktionen der Graphikschnittstelle 90 zuzugreifen.
-
Die
Graphikschnittstelle 90 umfasst einen Multiplexerblock 310 mit
drei Eingangsanschlüssen 315, 320, 325,
einem Auswahlanschluss 330 und einem Ausgabeanschluss 335.
Die ersten, zweiten und dritten Eingangsanschlüsse 315, 320 325 sind
zum Bereitstellen von elektronischen Darstellungen zum Erzeugen
eines oder mehrerer Bilder in dem Bildschirm-Speicherbereich 110,
einem Quellort 337 der Überlagerungsmaschine 100 bzw.
einer Hardware-Cursorquelle 340 ausgelegt. Der Quellort 337 bezieht
sich, wie er hier verwendet wird, auf einen Speicherbereich, in
dem die elektronischen Darstellungen eines oder mehrerer Bilder
vor der Verarbeitung durch die Überlagerungsmaschine 100 gespeichert
werden. In einer Ausführungsform
kann der Quellort 337 in dem Bildschirm-Speicherbereich 110 definiert
und durch eine Quelladresse identifiziert sein, die der Überlagerungsmaschine 100 bereitgestellt
wird. Die Hardware-Cursorquelle 340 bezeichnet in einer
Ausführungsform
einen Ort, an dem eine elektronische Darstellung eines Hardware-Cursors gespeichert
ist.
-
Der
Auswahlanschluss 330 wählt
ein oder mehrere Signale von den Eingangsanschlüssen 315, 320, 325 dazu
aus, letzlich von dem Ausgabeanschluss 335 des Mulitplexers 310 zu
der Anzeigevorrichtung 10 übergeben zu werden. In einer
Ausführungsform
kann das Signal des Hardware-Cursoranschlusses die höchste Priorität der drei
Anschlusssignale haben, gefolgt von dem Signal von dem Quellort 337 der Überlagerungsmaschine 100 und
dann vom Signal vom Bildschirm-Speicherbereich 110, der die
niedrigste Priorität
haben kann.
-
Die
Priorität
kann relevant sein, wenn alle drei Eingangsanschlüsse 315, 320, 325 Anzeigebilddaten
bereitstellen. In Bezug auf 3 wird ein
Bild, das als eine elektronische Darstellung im Bildschirm-Speicherbereich 110 (in
einer Ausführungsform
mit der niedrigsten Priorität)
gespeichert ist, auf der Anzeigevorrichtung 10 als Hintergrund
angezeigt. Der Hintergrund wird von einem zweiten Bild überlagert,
das als elektronische Darstellung am Quellort 337 der Überlagerungsmaschine 100 gespeichert
ist. Das Bild des Hardware-Cursors (in der einen Ausführungsform
mit der höchsten
Priorität) von
der Hardware-Cursorquelle 340 wird über der Überlagerung dargestellt.
-
Nun
ist in Bezug auf 4 ein Flussdiagramm für eine Skalieranwendung 410 gemäß einer Ausführungsform
der vorliegenden Erfindung veranschaulicht. Die Skalieranwendung 410 ermöglicht in einer
Ausführungsform
einem Bediener, einen Ausschnitt des auf der Anzeigevorrichtung 10 angezeigten
Bilds für
eine Skalierung auszuwählen.
Der ausgewählte
Bildausschnitt kann beispielsweise Text, Graphiken, Figuren oder
eine Kombination davon umfassen.
-
In
einer Ausführungsform
kann der Bediener den Bildausschnitt durch Bewegen der Maus 19 (1)
zum Kennzeichnen des zu skalierenden Bildausschnitts auswählen. In
einer alternativen Ausführungsform
klickt der Bediener einfach auf oder neben einen dem ausgewählten Bildausschnitt
naheliegenden Bereich, um einen Bildausschnitt zur Skalierung auszuwählen. Zusätzlich fordert
die Skalieranwendung 410 gemäß einer Ausführungsform
der vorliegenden Erfindung den Bediener auch auf, einen Faktor einzugeben,
der den Skalierumfang (Vergrößern oder
Verkleinern) festlegt. Alternativ kann die Skalieranwendung 410 einen
Default-Faktor zum Skalieren des ausgewählten Bildausschnitts verwenden.
-
Bei
Block 420 empfängt
die Skalieranwendung 410 vom Bediener ausgewählte, in
Zusammenhang mit dem gewählten
Bildausschnitt auf der Anzeigevorrichtung 10 stehende Information.
Die vom Bediener ausgewählte
Information kann in einer Ausführungsform
Koordinaten des ausgewählten
Bildausschnitts oder alternativ wenigstens eine Koordinate zusammen
mit einem Höhen-
und Weitenwert des ausgewählten
Bildausschnitts umfassen. In einer weiteren Ausführungsform kann die vom Bediener ausgewählte Information
auch den vom Bediener bereitgestellten Skalierfaktor einschließen.
-
Bei
Block 425 wird der Überlagerungsmaschine 100 auf
der vom Bediener ausgewählten
Information basierende Skalierinformation bereitgestellt. Die Skalierinformation
identifiziert in einer Ausführungsform
einen Bereich im Bildschirm-Speicherbereich 110,
der die elektronische Darstellung des ausgewählten Bildausschnitts enthält. In einer
Ausführungsform
stellt die Skalieranwendung 410 die vom Bediener ausgewählte Information
einem Gerätetreiber
der Überlagerungsmaschine 100 durch
eine vordefinierte Anwenderprogrammschnittstelle (API) zur Verfügung. Der
Gerätetreiber
ermittelt dann basierend auf der vom Bediener ausgewählten Information die
Skalierinformation und stellt sie der Überlagerungsmaschine 100 zur
Verfügung.
In einer alternativen Ausführungsform
kann eine bedienerdefinierte API zum Bereitstellen der vom Bediener
ausgewählten
Information an den Graphiktreiber verwendet werden, wobei die be dienerdefinierte
API es nicht erforderlich macht, dass die Skalieranwendung 410 Platz
in dem Bildschirm-Speicherbereich 110 des Videospeichers 95 verbraucht.
-
In
einer Ausführungsform
kann die Skalierinformation eine Adresse umfassen, die einen Quellort für die Überlagerungsmaschine 100 bezeichnet,
wobei der Quellort die Start-Speicheradresse
ist, von der aus die elektronische Darstellung des gewählten Bildausschnitts
gespeichert wird. Zusätzlich
kann die Skalierinformation einen Höhen- und einen Weitenwert für die Überlagerungsmaschine 100 umfassen, wobei
die Höhen-
und Weitenwerte den Ort der elektronischen Darstellung des ausgewählten Bildausschnitts
im Bildschirm-Speicherbereich 110 identifizieren. Alternativ
kann die Skalierinformation anstelle der Höhen- und Weitenwerte einen
anderen Speicherort umfassen, der einen Endort der elektronischen
Darstellung des ausgewählten
Bildausschnitts identifiziert (z.B. einen Speicherort, der einer
Ecke gegenüber
der vom Startadressort bezeichneten Ecke entspricht). In einer Ausführungsform
kann die Skalierinformation auch eine Überlagerungsbuffer-Teilung
(buffer pitch) (oder einen Bufferschritt (buffer stride)) umfassen,
wobei die Überlagerungsbuffer-Teilung
die Anzahl von Bytes ist, die von der Überlagerungsmaschine auf einer
zeilenweisen Basis erhöht
werden. In einer Ausführungsform
legt der Graphiktreiber der Überlagerungsmaschine 100 die Überlagerungsbuffer-Teilung
fest und stellt sie bei Bedarf der Überlagerungsmaschine zur Verfügung. In
einer anderen Ausführungsform
kann die Skalierinformation auch den vom Bediener bereitgestellten Skalierfaktor
einschließen.
-
In
der gezeigten Ausführungsform
ist der Quellort, obwohl nicht derartig beschränkt, als ein Speicherort in
dem Bildschirm-Speicherbereich 110 definiert, an dem sich
die elektronische Darstellung des ausgewählten Bildausschnitts befindet.
Der ausgewählte
Bildausschnitt muss sich nicht notwendigerweise in einem zusammenhängenden
Bereich im Bildschirm-Speicherbereich 110 befinden,
sondern kann stattdessen unzusammenhängend in dem Bildschirm-Speicherbereich 110 verteilt
sein.
-
In
einer Ausführungsform
wird das skalierte Bild dynamisch aktualisiert, wenn sich der Hintergrund ändert. In
einer Ausführungsform
ist definiert, dass der Quellort der Überlagerungsmaschine 100 im
Bildschirm-Speicherbereich 110 liegt, in dem sich die elektronische
Darstellung des ausgewählten
Bildteils befindet. Daher wird der Bildschirm-Speicherbereich 110 aktualisiert,
wenn sich der Hintergrund ändert,
und diese Aktualisierungen werden dadurch auch in dem skalierten
Bild wiedergegeben. Die Aktualisierungen werden in dem skalierten
Bild wiedergegeben, weil der Quellort der Überlagerungsmaschine 110 in
einer Ausführungsform
auch der aktualisierte Bildschirm-Speicherbereich 110 ist. Als
Ergebnis wird jede Modifikation des ausgewählten Bereichs des Hintergrunds
ebenfalls in der skalierten Überlagerung
wiedergegeben, wodurch dem Bediener ein "dynamischer" Effekt bereitgestellt wird.
-
In
einer alternativen Ausführungsform
kann der Quellort der Überlagerungsmaschine 100 auf
einen anderen Speicherbereich zeigen, der außerhalb des Bildschirm-Speicherbereichs 110 liegt.
In diesem Fall kann die elektronische Darstellung des ausgewählten, zu
skalierenden Bildausschnitts von dem Bildschirm-Speicherbereich 110 in
einen Off-Screen-Bereich kopiert werden, der als ein Teil des Videospeicherbereichs 95 oder
eines anderen Speichers definiert sein kann. In einer Ausführungsform
kann eine BitBlt-Operation angewendet werden, um die elektronische
Darstellung des ausgewählten Bildausschnitts
vom Bildschirm-Speicherbereich 110 zum Off-Screen-Bereich
zu kopieren.
-
Bei
Block 430 aktiviert die Skalieranwendung 410 die Überlagerungsmaschine 100 unter
Verwendung des Auswahlanschlusses 330 des Multiplexerblocks 310.
Bei Block 435 verwendet die Überlagerungsmaschine 100 ihren
Skalierer 120 (siehe 2), um die
elektronische Darstellung des ausgewählten Bildausschnitts zu skalieren.
Anstelle eines separaten Skalierers können eine oder mehrere Ausführungsformen
der vorliegenden Erfindung aus dem Skalierer 120 der Überlagerungsmaschine 100 Vorteile
für die
Skalierung ziehen. Die Überlagerungsmaschine 100 kann
fortschrittliche Skalieralgorithmen verwenden, die die Eingangsdaten
interpolieren und bilinear skalieren, um ein Bild von besserer Qualität zu erhalten.
Außerdem
kann der Skalierer 120 in einer Ausführungsform hardware-implementiert
sein, was bedeutet, dass der Skalierer 120 effizienter
und schneller als einige software-basierte Skalieralgorithmen sein
kann. Bei Block 450 deaktiviert die Skalieranwendung 410 die Überlagerungsmaschine 100 durch
den Auswahlanschluss 330 des Multiplexerblocks 310.
-
Nun
ist in Bezug auf 5 eine Skalieroperation gemäß einer
Ausführungsform
der vorliegenden Erfindung gezeigt. Im Besonderen zeigt 5 eine
beispielhafte Skalieroperation unter Verwendung der Skalieranwendung
aus 4. Zum Zweck der Veranschaulichung wird angenommen,
dass der Bediener ein Bild 510 für eine Skalierung (Vergrößerung)
um einen Faktor Zwei auswählt.
Dementsprechend empfängt
die Skalieranwendung 410 bei Block 420 die vom
Bediener ausgewählten,
zum ausgewählten
Bildausschnitt 510 gehörende
Information. In der dargestellten Ausführungsform kann beispielsweise
die Skalieranwendung 410 den Skalierfaktor sowie die zum
Bildteil 510 gehörigen
Koordinaten empfangen. Die vom Bediener ausgewählte Information wird dann
in einer Ausführungsform
dem Gerätetreiber
der Überlagerungsmaschine 100 zur
Verfügung
gestellt.
-
Bei
Block 425 wird basierend auf der vom Bediener ausgewählten Information
die Skalierinformation ermittelt und der Überlagerungsmaschine 100 zur
Verfügung
gestellt. Die Skalierinformation kann in der gezeigten Ausführungsform
eine Adresse sein, die einen Quellort für die Überlagerungsmaschine 100 bezeichnet.
Der Quellort entspricht in diesem Fall dem Speicherort im Bildschirm-Speicherbereich 110,
der die elektronische Darstellung des Bildausschnitts 510 speichert.
Obwohl sie nicht derartig beschränkt
ist, schließt
die Skalierinformation in der dargestellten Ausführungsform einen Höhen- und Weitenwert
zum Identifizieren der übrigen
elektronischen Darstellung des Bildausschnitts 510 in dem Bildschirm-Speicherbereich 110 ein.
Zusätzlich
kann die Skalierinformation bei Bedarf einen Überlagerungsbuffer-Teilungswert
einschließen,
welcher der Überlagerungsmaschine 100 in
einer Ausführungsform
vom Gerätetreiber
bereitgestellt werden kann.
-
Bei
Block 430 aktiviert die Skalieranwendung 410 die Überlagerungsmaschine 100 mittels
des Auswahlanschlusses 330 des Multiplexerblocks 310. Bei
Block 435 skaliert die Überlagerungsmaschine 100 unter
Verwendung ihres Skalierers 120 die elektronische Darstellung
des Bilds 510 um einen Faktor Zwei und stellt die resultierenden
Daten am zweiten Eingangsanschluss 320 bereit. Als Ergebnis
zeigt, wie man in 5 sieht, die Anzeigevorrichtung 10 ein skaliertes
Bild 520, das über
dem Bildausschnitt 510 platziert ist. Der Hardware-Cursor 340 ist über dem skalierten
Bild 520 gezeigt, da er eine höhere Priorität als die
anderen zwei Eingangssignale des Multiplexerblocks 310 haben
kann.
-
Weil
das skalierte Bild 520 von der Überlagerungsmaschine 100 bereitgestellt
wird, bleiben die Inhalte des Bildschirm-Speicherbereichs 110 störungsfrei.
Es ist daher für
andere Anwendungen möglich, den
Bildausschnitt 510 im Bildschirm-Speicherbereich 110 zu aktualisieren.
Und da der Quellort der Überlagerungsmaschine 100 in
der gezeigten Ausführungsform
in direktem Bezug zu der elektronischen Darstellung des Bilds 510 im
Bildschirm-Speicherbereich 110 des Videospeichers 95 steht,
können
grundsätzlich
alle Aktualisierungen des Bilds 510 dynamisch in dem skalierten
Bild 520 wiedergegeben werden. Diese "dynamische" Aktualisierungsfunktion kann bei der
Skalierung von sich ständig ändernden
graphischen Anwendungen nützlich sein,
wie beispielsweise einer wechselhafte Wetterbedingungen veranschaulichenden
Wetterkarte.
-
Nach
der Fertigstellung deaktiviert die Skalieranwendung 410 bei
Block 410 das Eingangssignal von der Überlagerungsmaschine 100.
Das Eingangssignal von der Überlagerungsmaschine 100 kann
mittels des Auswahlanschlusses 330 des Multiplexerblocks 310 deaktiviert
werden.
-
Die
verschiedenen Systemschichten, Routinen oder Module können funktionsfähige Steuereinheiten
sein (so wie Steuereinheit 70 (siehe 2)
im prozessorbasierten System 5). Jede Steuereinheit kann
einen Mikroprozessor, einen Mikrocontroller, eine Prozessorkarte
(einschließlich
eines oder mehrerer Mikroprozessoren oder -controller) oder andere Steuer-
oder Rechen geräte
einschließen.
Die in dieser Diskussion genannten Speichergeräte können ein oder mehrere maschinenlesbare
Speichermedien zum Speichern von Daten und Befehlen einschließen. Die
Speichermedien können
verschiedene Formen oder Speicher einschließen, einschließlich Halbleiterspeichergeräten wie
beispielsweise dynamische oder statische Arbeitsspeicher (DRAMs
oder SRAMs), löschbare
und programmierbare Read-Only-Speicher (EPROMs) und Flashspeicher;
magnetische Disks wie beispielsweise Festplatten, Disketten, Wechselplatten;
andere magnetische Medien einschließlich Tapes; und optische Medien
wie CDs (compact disks) oder DVDs (digital video disks). Befehle,
die die verschiedenen Softwareschichten, Routinen oder Module in
den verschiedenen Systemen ausmachen, können in den betreffenden Speichergeräten gespeichert
werden. Wenn die Befehle von einer entsprechenden Steuereinheit
ausgeführt werden,
veranlassen sie das entsprechende System dazu, programmierte Vorgänge auszuführen.
-
Die
oben offenbarten speziellen Ausführungsformen
dienen nur der Veranschaulichung, da die Erfindung auf unterschiedliche,
aber äquivalente Weisen
modifiziert und ausgeübt
werden kann, die für
einen Fachmann mit dem Vorteil der hier dargelegten Lehren offensichtlich
sind. Außerdem
sind keine anderen Beschränkungen
für die
hierin gezeigten Konstruktions- oder Gestaltungsdetails beabsichtigt, als
in den untenstehenden Ansprüchen
beschrieben. Der hier angestrebte Schutz ist in den Ansprüchen dargelegt.