DE69712799T2 - Interpolieren von pixelwerten und alphawerten in einer anzeigevorrichtung für computergrafiken - Google Patents
Interpolieren von pixelwerten und alphawerten in einer anzeigevorrichtung für computergrafikenInfo
- Publication number
- DE69712799T2 DE69712799T2 DE69712799T DE69712799T DE69712799T2 DE 69712799 T2 DE69712799 T2 DE 69712799T2 DE 69712799 T DE69712799 T DE 69712799T DE 69712799 T DE69712799 T DE 69712799T DE 69712799 T2 DE69712799 T2 DE 69712799T2
- Authority
- DE
- Germany
- Prior art keywords
- pixel
- alpha
- value
- image
- sequence
- 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 - Lifetime
Links
- 239000000203 mixture Substances 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 42
- 238000012935 Averaging Methods 0.000 claims description 33
- 238000002156 mixing Methods 0.000 claims description 32
- 230000003111 delayed effect Effects 0.000 claims description 17
- 230000003362 replicative effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims 5
- 238000002834 transmittance Methods 0.000 claims 5
- 230000005540 biological transmission Effects 0.000 claims 2
- 230000001934 delay Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- OFHCOWSQAMBJIW-AVJTYSNKSA-N alfacalcidol Chemical compound C1(/[C@@H]2CC[C@@H]([C@]2(CCC1)C)[C@H](C)CCCC(C)C)=C\C=C1\C[C@@H](O)C[C@H](O)C1=C OFHCOWSQAMBJIW-AVJTYSNKSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Description
- Diese Erfindung betrifft allgemein Verfahren zum Interpolieren von Pixelwerten in einer Computergrafik-Anzeigevorrichtung. Insbesondere stellt die Erfindung eine effiziente Vorrichtung und ein effizientes Verfahren zur Erhöhung der scheinbaren Anzeige-Auflösung in Terminals, wie sie beispielsweise in Abonnementfernsehsystemen verwendet werden, zur Verfügung.
- Bei Abonnementfernsehsystemen wird normalerweise ein codiertes Fernsehsignal von einer gemeinhin als, "Set-Top-Terminal" bezeichneten Vorrichtung decodiert und zur Anzeige auf einem Fernseh-Bildschirm formatiert. Diese Terminals sind in den letzten Jahren mit zusätzlichen Fähigkeiten ausgestattet worden, beispielsweise der Fähigkeit, Videospiele bereitzustellen, die Computer-erzeugte Grafikbilder auf dem Fernseh-Bildschirm anzeigen.
- Wenn diese Terminals zum Anzeigen von Computergrafiken eingesetzt werden, formatieren sie im Allgemeinen die Grafiken nach einem oder mehreren Video- Anzeigestandards, beispielsweise 320 · 240 Pixel oder 640 · 480 Pixel. Die Verwendung eines Anzeigebilds mittlerer Auflösung (z. B. 320 · 240 Pixel) erhöht die Grafikleistung und verringert die Speicher-Anforderungen für Videospiele und andere eine umfangreiche Pixel- Manipulation erfordernde Hochleistungs-Anwendungen, da weniger Pixel manipuliert und gespeichert werden müssen. Ein Bild mittlerer Auflösung ist jedoch für Anzeigezwecke weniger geeignet, und es ist besser, Bilder mit einer höheren Auflösung (z. B. 640 · 480 Pixel) anzuzeigen. Es ist daher zweckmäßig, Grafikbilder in einem Format niedriger oder mittlerer Auflösung zu erzeugen und zu manipulieren und sie dann auf eine höhere Auflösung für die Anzeige "hochzuskalieren".
- Der Stand der Technik stellt verschiedene Verfahren zur Erhöhung der Auflösung eines Video-Anzeigebilds durch Bildung zusätzlicher Abtastzeilen zur Verfügung. So beschreibt beispielsweise das Ott erteilte US-Patent Nr. 4.484.188 mit dem Titel "Graphics Video Resolution Improvement Apparatus ("Vorrichtung zur Verbesserung der Auflösung von Grafik-Videos") ein System, das die Auflösung eines Videobilds durch Bildung zusätzlicher Abtastzeilen durch Verbinden benachbarter Abtastzeilen erhöht. Das Verfahren verbessert sowohl die horizontale als auch die vertikale Auflösung durch Erzeugung von Interpolations- Abtastzeilen. Solche Systeme erfordern jedoch relativ komplizierte Schaltungen, was die Kosten für Terminals, die mit solchen Schaltungen ausgestattet sind, in die Höhe treibt.
- Eine herkömmliche Vorrichtung und ein herkömmliches Verfahren sind aus dem Dokument IBM Technical Disclosure Bulletin, Jg. 31, Nr. 11, April 1989, S. 57-59, mit dem Titel "Method for Scaling Gray Level Image" ("Verfahren zum Skalieren eines Graupegelbilds") bekannt. Dieses Dokument beschreibt ein Verfahren und eine Vorrichtung zum Umwandeln eines ersten Bilds mit einer ersten Auflösung in ein zweites Bild mit einer zweiten Auflösung mit dem Schritt Replizieren einer Pixelfolge und einem Mittelwertbildungs- Schritt, der eine gemittelte Pixelfolge mit Pixelwerten von der horizontalen Zeile ausgibt, die mit gemittelten Pixelwerten von der horizontalen Zeile vermischt sind.
- Herkömmliche Computergrafik-Anzeigesysteme haben oftmals die Fähigkeit, ein Bild auf ein Hintergrund-Videobild aufzulegen. So können beispielsweise Sport-Spielstände an der Unterseite eines sich bewegenden Bilds eines Fußballspiels eingeblendet werden. Bei diesen Systemen kann jedes Pixel lichtundurchlässig (jedes Pixel nimmt nur den Wert des aufgelegten Bilds an), lichtdurchlässig (das aufgelegte Bild und das Hintergrundbild können gemischt werden, sodass das Hintergrundbild "durch" die Auflage "gesehen" werden kann) oder transparent (nur das Hintergrundbild wird angezeigt) dargestellt werden.
- Eine weitere Möglichkeit besteht darin, ein grafisches Steuer-Objekt wie etwa einen Lautstärkeregelungs-Anzeiger auf ein Live-Videobild auf einer Fernsehanzeige aufzulegen. Wie beispielsweise in Fig. 1A gezeigt, kann ein Live-Videobild 101 mit einem Lautstärkeregelungs-Anzeiger 102 so kombiniert werden, dass das resultierende Bild 103 beide Bilder umfasst, d. h. der Nutzer kann zwei Schichten von Schirmbildern sehen: das Live-Videobild, das schon vor dem Auflegen sichtbar war, und das aufgelegte Bild selbst.
- Um den Umfang des Mischens bei den vorgenannten Beispielen zu steuern, weisen herkömmliche Systeme normalerweise jedem Pixel eine Vielzahl zusätzlicher Bits zu, die das Ausmaß angeben, in dem die Pixel aus der Auflage und dem Hintergrund gemischt werden. So kann beispielsweise eine Gruppe dieser "Misch"-Bits für jedes Pixel mit dem Auflage- Pixelwert multipliziert werden, bevor es mit dem Hintergrundbild kombiniert wird, sodass gesteuert werden kann, ob der Auflageteil oder das Hintergrundbild das resultierende Bild dominiert.
- Wie beispielsweise in Fig. 1 B gezeigt, kann jeder Pixelwert 104 in einem Auflagebild 102 mit einem "Misch"faktor 105 (der mehrere Bits umfasst) verknüpft sein, der mit dem Auflage-Pixelwert multipliziert wird, um die Auflage mit dem Hintergrundbild-Pixel 106 zu mischen, um ein resultierendes Pixel 108 zu erzeugen. Mit diesen Operationen kann ein Mischbild wie etwa das Bild 103 von Fig. 1A erzeugt werden.
- Eine herkömmliche Formel zum Mischen eines Auflagebilds und eines Hintergrundbilds für jedes Pixel einer Anzeige ist durch folgende Gleichung gegeben:
- α·Auflage-Pixelwert + (1 - α)·Hintergrund-Pixelwert,
- wobei α den Mischwert darstellt, der zu jedem Pixel im Auflagebild gehört, und "·" eine Multiplikation bezeichnet. Für einen Rot-Grün-Blau-(RGB)-Pixelwert mit 16 Bit (5 roten, 6 grünen, 5 blauen) wird jede Farbkomponente getrennt gemischt, um das resultierende Bild zu erzeugen.
- Schwierig wird es jedoch, wenn ein Bild niedrigerer Auflösung auf eine höhere Auflösung interpoliert ("hochskaliert") wird. Wenn ein Auflagebild mit Pixeln, die jeweils eine zugehörige Gruppe von "Misch"bits haben, durch Interpolieren der Pixelwerte für die Anzeige hochskaliert und dann mit einem Hintergrundbild kombiniert wird, wird die Qualität des resultierenden Bilds vermindert. Ist beispielsweise ein Auflage-Pixel transparent, aber ein benachbartes Auflage-Pixel lichtundurchlässig, so ergibt eine Interpolation zwischen den beiden Auflage-Pixeln einen fehlerhaften Anzeigwert. Das ist darauf zurückzuführen, dass bei herkömmlichen Verfahren das interpolierte Pixel eine Mischung des lichtundurchlässigen (sichtbaren) Werts und des transparenten (unsichtbaren) Werts ist, während der interpolierte Mischwert ein Mittelwert von (in diesem Fall) 1 (lichtundurchlässig) und 0 (transparent) ist. Der interpolierte Mischwert ist also richtig, aber das interpolierte Pixel ist falsch, da eine der Komponenten völlig unsichtbar sein soll. In einem speziellen Beispiel kann das transparente Pixel eine Farbe haben, die hell und irritierend ist, während das sichtbare Pixel dunkel und subtil sein kann. Der interpolierte Wert ist eine Mischung aus diesen, während der gewünschte interpolierte Wert dunkel und subtil ist. Daher können herkömmliche Verfahren zum Mischen von Bildern nicht in Verbindung mit dem Hochskalieren von Videobildern verwendet werden.
- Die vorliegende Erfindung löst die vorgenannten Probleme, indem sie ein preiswertes Verfahren zur Erhöhung der Auflösung eines Anzeigebilds und zur Anpassung so genannter Alpha-"Mischbits" für hochskalierte Bilder bereitstellt. Die Erfindung interpoliert Pixelwerte horizontal und vertikal unter Verwendung eines Pixelreplikations- und, -verschiebungsschemas und interpoliert nicht nur die Pixelwerte, sondern auch die Alpha- Mischbits. Die vorliegende Erfindung betrifft somit ein Verfahren und eine entsprechende Vorrichtung, die in den beigefügten Ansprüchen definiert sind.
- Weitere Merkmale und Vorzüge der Erfindung dürften aus der nachfolgenden detaillierten Beschreibung, den Zeichnungen und den beigefügten Ansprüchen ersichtlich sein.
- Fig. 1A zeigt ein herkömmliches Verfahren des Kombinierens eines Auflagebilds mit einem Hintergrund-Videobild, um ein Mischbild zu erzeugen.
- Fig. 1B zeigt ein herkömmliches Verfahren zum Mischen von Pixeln unter Verwendung eines Mischwerts 105, der zu jedem Pixel in einem Auflagebild gehört. Fig. 2 zeigt, wie Pixel aus einem Bild mittlerer oder niedriger Auflösung Interpoliert werden können, um neue Pixel in einem Bild höherer Auflösung zu erzeugen.
- Fig. 3A zeigt eine horizontale Pixel-Interpolationsschaltung, die verwendet werden kann, um eine Zeile horizontal interpolierter Pixel effizient zu erzeugen.
- Fig. 3B zeigt verschiedene Schritte, die ausgeführt werden können, um eine Zeile horizontal interpolierter Pixel zu erzeugen.
- Fig. 4 zeigt eine horizontale Pixel-Interpolationsschaltung, die rote, grüne und blaue Farbkomponenten für jedes Pixel getrennt sowie einen Alpha-Wert für jedes Pixel interpoliert.
- Fig. 5 zeigt, wie der vertikale Mittelwert aus zwei Zeilen eines Eingangsbilds ermittelt werden kann, um eine interpolierte Zeile zu erzeugen, die einem horizontalen Interpolator zugeführt wird.
- Fig. 6 zeigt eine Schaltung, die verwendet werden kann, um eine vertikale und horizontale Interpolation in Verbindung mit der Alpha-Mischung durchzuführen.
- Fig. 7 zeigt ein Zeitsteuerungsdiagramm, das den nummerierten Kreisen in der Schaltung von Fig. 6 entspricht.
- Fig. 8 zeigt, wie ein Auflagebild mittlerer Auflösung 801 hochskaliert und mit einem Hintergrundbild hoher Auflösung 803 gemischt werden kann, um ein mit dem Hintergrundbild gemischtes Auflagebild 804 zu erzeugen.
- Fig. 9 zeigt, wie unter anderem durch Multiplizieren von Pixeln mit einem entsprechenden Alpha-Wert der Mittelwert von zwei horizontalen Zeilen aus einem Bild effizient ermittelt werden kann, um eine dritte Zeile zu erzeugen.
- Fig. 2 zeigt, wie Pixel aus einem Bild mittlerer oder niedriger Auflösung interpoliert werden können, um neue Pixel in einem Bild höherer Auflösung zu erzeugen. Nehmen wir an, dass ein Bild 320 (horizontale Elemente) mal 240 (vertikale Zeilen-)Pixel umfasst, und betrachten wir einen Neun-Elemente-Abschnitt eines solchen Bilds (z. B.. drei Zeilen mal drei Elemente). Wie in Fig. 2 gezeigt, umfasst eine erste Zeile L1 Pixel P1, P3 und PS, die von Quadraten umgeben sind, um anzugeben, dass jedes dieser Pixel vom ursprünglichen Eingangsbild ist. Der Grund, weshalb eine ungeradzahlige Nummerierung zum Kennzeichnen dieser Pixel verwendet wird, wird in Kürze klar.
- Zwischen die Originalpixel P1, P3 und PS in Zeile L1 sind Pixel P2 und P4 eingefügt, die durch Mittelwertbildung aus den Pixeln P1/P3 bzw. P3/PS erhalten werden. Jedes interpolierte Pixel ist in einem Kreis dargestellt, um es von Originalpixeln im Eingangsbild zu unterscheiden. Durch Einfügen interpolierter Pixelwerte zwischen jedes Pixel in Zeile L1 wird die horizontale Auflösung der Zeile verdoppelt, z. B. von 320 auf 640 Pixel.
- Zeile L3 des Originalbilds umfasst ebenso von Quadraten umgebene Pixel P1, P3 und P5, und auch die Originalzeile L5 umfasst von Quadraten umgebene Pixel P1, P3 und P5. Jedes Pixel kann wie herkömmlich einen anderen Wert annehmen.
- Zwischen die Originalzeilen L1 und L3 ist eine neue Zeile L2 eingefügt, die in Klammern gesetzt ist, um anzuzeigen, dass es sich hier um eine neue Zeile handelt, die durch Interpolation entsprechender Pixel aus den Zeilen L1 und L3 eingeführt wurde. Gleichermaßen wird eine neue Zeile L4 durch Interpolation entsprechender Pixel aus den Zeilen L3 und L5 erzeugt. Jedes Pixel in Zeile L2 und Zeile L4 ist eingekreist, um anzuzeigen, dass der Pixelwert durch Mittelwertbildung von Werten zweier umgebender Pixel bestimmt wurde. Man beachte, dass einige Pixel, beispielsweise die Pixel P2 und P4 in Zeile L2, durch Mittelwertbildung von interpolierten Pixeln (P1/P3 bzw. P3/PS) erzeugt werden.
- Zu jedem Pixel gehört auch ein Alpha-Wert α, der den Umfang des Mischens angibt, das zwischen dem Pixel und einem entsprechenden Pixel aus einem anderen Bild (z. B. einem Hintergrund-Videobild) angibt. Jeder Alpha-Wert kann 8 Bit umfassen oder kann stattdessen eine kleine Anzahl von Bits umfassen, die in Verbindung mit einer Tabelle von Alpha-Werten zu verwenden sind, wie an späterer Stelle detaillierter beschrieben wird.
- Jedes in Fig. 2 gezeigte Pixel wird durch die Zeilennummer und die Pixelnummer identifiziert. So bezieht sich beispielsweise die Bezeichnung L1 P1 auf das erste Pixel in Zeile L1 des Originalbilds und die Bezeichnung L5P3 bezieht sich auf das zweite Pixel in der dritten Zeile des Originalbilds (d. h., interpolierte Pixel werden ignoriert). Als weiteres Beispiel bezieht sich die Bezeichnung L1P4 auf das vierte Pixel in der ersten Zeile des interpolierten (Ausgangs-)Bilds und L4P3 bezieht sich auf das dritte Pixel in der ersten Zeile des interpolierten (Ausgangs-)Bilds.
- Gleichermaßen wird jeder Alpha-Wert in Fig. 2 durch die Zeilennummer und eine der Pixelnummer entsprechenden Alpha-Wert-Nummer identifiziert. So wird der erste Alpha-Wert in Zeile L1, der zum Pixel P1 gehört, mit L1α&sub1; bezeichnet.
- Der Wert jedes interpolierten Pixels in Fig. 2 kann wie folgt bestimmt werden:
- L1P2 = AVG(L1P1·L1α&sub1; L1P3·L1α&sub3;)
- L1P4 = AVG(L1N3·L1α&sub3;, L1P5·L1α&sub5;)
- L2P1 = AVG(L1P1·L1α&sub1;, L3P1 L3α&sub1;)
- L2P2 = AVG(L2P1, L2P3) und so weiter (AVG = Mittelwertbildung).
- Man beachte, dass alle resultierenden interpolierten Pixelwerte mit den jeweiligen Alpha- Werten vormultipliziert worden sind. So liegt beispielsweise L1P2 in vormultiplizierter Form vor. Das resultierende Bild besteht somit aus einem Bild mittlerer Auflösung, das mit Pixel- Zwischenwerten "gefüllt" worden ist, die durch Ermitteln des Mittelwerts der umgebenden Pixelwerte bestimmt werden, die mit ihren jeweiligen Alpha-Werten multipliziert worden sind. Weitere Methoden sind möglich, wie etwa die Ermittlung des Mittelwerts von L1P2 und L3P2, um L2P2 zu erzeugen.
- Wenn Farben in einem Format wie etwa dem RGB16-Format angezeigt werden, umfasst jeder Pixelwert drei einzelne Farbkomponentenwerte, die herkömmlich wie folgt abgebildet werden:
- 5 Bit = roter Wert
- 6 Bit = grüner Wert
- 5 Bit = blauer Wert.
- Wenn Alpha-Bits mit den Farbwerten jedes Pixels verknüpft werden, um den Umfang des Mischens beim Kombinieren von Bildern anzugeben, können zusätzliche Bits wie etwa 8 Bit je Pixel mit jedem der vorgenannten Farbkomponentenwerte gespeichert werden, sodass jedes Pixel insgesamt 24 Bit hat. Es können aber auch ein oder mehrere Alpha-Steuerbits für jedes Pixel verwendet werden und Alpha-Werte aus einer Tabelle können für zu mischende Pixel verwendet werden.
- Gemäß den verschiedenen Aspekten der vorliegenden Erfindung werden jede der Farbkomponenten und die Alpha-Werte für jedes Pixel interpoliert, um das Ausgangsbild zu erzeugen. Die Mittelwertbildung erfolgt zwischen Pixeln, die zunächst mit ihren jeweiligen Alpha-Werten multipliziert werden. Um also beispielsweise den Wert von L1P2 in einem Ausgangsbild höherer Auflösung zu berechnen, wird eine Mittelwertbildung mit 5 Bit des roten Werts zwischen den Pixeln L1P1 und L1P3 durchgeführt (es ist zu beachten, dass jede Farbkomponente mit ihrem jeweiligen Alpha-Wert vor der Mittelwertbildung vormultipliziert wird). Ebenso wird eine gesonderte Mittelwertbildung mit 6 Bit des grünen Werts, 5 Bit des blauen Werts und 8 Bit des Alpha-Werts durchgeführt, um das interpolierte Pixel L1P2 zu erzeugen.
- Fig. 3A zeigt eine horizontale Pixel-Interpolationsschaltung, die verwendet werden kann, um eine Zeile horizontal interpolierter Pixel mit einer minimalen Anzahl von Komponenten effizient zu erzeugen. So kann die in Fig. 3A gezeigte Schaltung zur Erzeugung aller Pixel in Zeile L1 von Fig. 2 anhand der Originalpixel L1P1, L1P3 und L1P5 verwendet werden.
- In Fig. 3A wird eine erste Pixelfolge 304 mit einer Taktfrequenz R erzeugt. Die Indices für jedes Pixel in Fig. 3A bezeichnen die Zeitspanne, für die das Pixel getaktet ist. In der Pixelfolge 304 ist also das Pixel Pn das erste Pixel, das aus einer horizontalen Zeile eines Eingangsbilds gelesen wird (z. B. L1P1), Pn+1 ist das nächste Pixel (einen Taktzyklus später, z. B. L1P3) und Pn+2 ist das dritte Pixel (zwei Taktzyklen später, z. B. L1 PS). Ein Pixelreplikator 301 erzeugt eine zweite Pixelfolge 305, in der jedes Element der ersten Folge 304 repliziert worden ist. Das kann durch "Doppeltakten" der ersten Pixelfolge mit der Taktfrequenz 2R geschehen.
- Die zweite Pixelfolge 305 wird einem Verzögerungselement 302 zugeführt, das eine verzögerte Pixelfolge 306 erzeugt, die mit der Pixelfolge 305 identisch ist, mit der Ausnahme, dass jedes Pixel um einen Taktzyklus verzögert ist (um die Taktfrequenz von 2R verzögert). Danach werden die beiden Pixelfolgen 305 und 306 einer Mittelwertbildungs-Schaltung 303 zugeführt, die den Mittelwert der Pixel in den Pixelfolgen 305 und 306 ermittelt, um eine gemittelte Pixelfolge 307 zu erzeugen, die die Originalpixel Pn, Pn+1 und Pn+2 mit den eingefügten interpolierten Werten umfasst. Die Mittelwertbildungs-Schaltung 303 kann unter Verwendung eines Addierers und einer nachfolgenden Ein-Bit-Verschiebevorrichtung, die eine Mittelwertbildungs-Funktion ausführt, sehr effizient konstruiert werden.
- Das Verzögerungselement 302 bewirkt eine Mittelwertbildung aus bestimmten Pixelwerten selbst, sodass die Originalpixelwerte reproduziert werden, und eine Mittelwertbildung aus anderen Pixelwerten und ihren Pixelnachbarn. Somit stellt die Schaltung von Fig. 3A ein äußerst effizientes Verfahren zur Erzeugung einer Zeile horizontal interpolierter Pixel als Zeile L1 von Fig. 2 bereit. Nimmt man an, dass die Pixel L1P1, L1P3 und L1 PS in der Folge 304 sequentiell getaktet sind, wie in Fig. 3A gezeigt, so enthält die Pixelfolge 307 die gewünschte volle Zeile L1 mit den interpolierten Pixeln L1P2 und L1P4 (der interpolierte Wert 307 kann gestrichen werden). Es ist also zu erkennen, dass die Originalzeile L1 des Eingangsbilds mit den Pixeln L1 P1, L1 P3 und L1 PS so "erweitert" worden ist, dass sie interpolierte Pixel enthält.
- Fig. 3B zeigt ein Verfahren zur effizienten Erzeugung einer Zeile horizontal interpolierter Pixel unter Verwendung einer minimalen Anzahl von Komponenten. Somit kann das in Fig. 3B gezeigte Verfahren zur Erzeugung der Zeile L1 von Fig. 2 verwendet werden. Im Schritt 320 wird eine erste Pixelfolge erzeugt, die einer horizontalen Zeile im Eingangsbild entspricht. Im Schritt 321 wird eine zweite Pixelfolge durch Replizieren von Pixeln in der ersten Pixelfolge erzeugt, vorzugsweise durch Doppeltakten der ersten Pixelfolge. Danach wird im Schritt 322 die zweite Pixelfolge um einen Taktzyklus (d. h. in Bezug zum Doppeltakt) verzögert. Im Schritt 323 wird der Mittelwert aus der verzögerten Pixelfolge und der zweiten Pixelfolge ermittelt, und im Schritt 324 wird die resultierende Pixelfolge als neue (interpolierte) horizontale Zeile des Eingangsbilds ausgegeben.
- Gemäß verschiedenen Ausführungsformen der Erfindung können in Fig. 4 Alpha- Mischwerte ebenfalls mit den vorgenannten Verfahren interpoliert werden. So wird beispielsweise eine Eingangs-Pixelfolge 413 mit Alpha-Mischwerten, die zu jedem Pixel in einem Eingangsbild gehören, über einen Pixelreplikator 404, eine Verzögerungsschaltung 408 und eine Mittelwertbildungs-Schaltung 412 verarbeitet, um eine interpolierte Alpha- Mischwertfolge 414 mit den ursprünglichen Alpha-Mischwerten, die mit den gemittelten Werten vermischt sind, zu erzeugen.
- Wenn, wie vorstehend beschrieben, in einem Farbmodus wie RGB 16 gearbeitet wird und Alpha-Werte verwendet werden, werden jede Farbkomponente und jeder Alpha-Wert getrennt interpoliert. Daher replizieren, wie in Fig. 4 gezeigt, die Pixelreplikatoren 401 bis 403 für jedes Pixel die Pixelfolgen, die roten, grünen und blauen Farbkomponenten entsprechen (wobei jede Farbkomponente mit ihrem zugehörigen Alpha-Wert vormultipliziert wird).
- Ebenso führen die Verzögerungselemente 405 bis 407 und die Mittelwertbildungs- Schaltungen 409 bis 411 Verzögerungs- und Mittelwertbildungs-Operationen aus, um entsprechende Ausgabefolgen zu erzeugen, die in entsprechenden Pixelkomponeriten- Speicheradressen in dem zu jedem Pixel gehörenden Speicher gespeichert werden können. Diese Operationen können aber auch mit nur einer Schaltung ausgeführt werden, die nach bekannten Verfahren zeitgemultiplext wird. Fig. 6 zeigt eine mögliche Schaltung zur Ausführung der Funktionen von Fig. 4.
- Kommen wir nun zu Fig. 5. Bei verschiedenen Ausführungsformen kann es zweckmäßig sein, Anzeigezeilen zunächst vertikal zu interpolieren und dann Pixel von jeder dieser Zeilen der horizontalen Interpolationsschaltung von Fig. 3A zuzuführen. So kann, wie in Fig. 2 gezeigt, beispielsweise der Mittelwert der Pixel aus den Zeilen L1 und L3 ermittelt werden, um L2 (die Zeile mit den Kreisen) zu erzeugen, und dann können Pixel aus den Zeilen L1, L2 und L3 mit dem in Fig. 3A und 3B gezeigten horizontalen Interpolationsverfahren horizontal "erweitert" werden. In Fig. 5 wird der Mittelwert aus einer ersten Pixelfolge 501, die der Zeile L1 entspricht, und einer zweiten Pixelfolge 502, die der Zeile L3 entspricht, ermittelt, um eine Pixelfolge 503 zu erzeugen, die der Zeile L2 entspricht, und dann werden alle drei Zeilen mit dem Verfahren von Fig. 3A und Fig. 3B horizontal interpoliert.
- Fig. 6 zeigt eine mögliche Schaltungsanordnung zur Realisierung verschiedener Merkmale der vorliegenden Erfindung. Insbesondere kann die Schaltung von Fig. 6 zur Durchführung der vertikalen und horizontalen Pixel-Interpolation sowie zum partiellen Mischen von Auflage-Pixeln mit Alpha-Werten verwendet werden.
- Bei verschiedenen Ausführungsformen kann die Schaltung von Fig. 6 so programmiert werden, dass sie entweder im RGB- oder im CLUT-Modus (OLUT = Farben- Nachschlagetabelle) arbeitet, sodass im Wesentlichen die gleiche Schaltung für beide Pixel- Arten eingesetzt werden kann. Die in Fig. 6 gezeigte Anordnung kann mit Hilfe eines Kundenschaltkreises (ASIC) realisiert werden, um die Leistungsfähigkeit zu erhöhen und die Anzahl der Teile zu minimieren. Obwohl beabsichtigt ist, dass nur ein Alpha-Steuerbit für jedes Auflage-Pixel verwendet werden kann, können natürlich mehrere Alpha-Mischbits verwendet werden, was jedoch zusätzlichen Speicher erfordert. In der vorliegenden Erfindung sind verschiedene Mittel zur Erzeugung eines Alpha-Mischwerts für jedes Pixel in einem Auflagebild beschrieben.
- Auflage-Pixel können in verschiedenen Formaten im Speicher gespeichert werden (obwohl es natürlich zweckmäßig ist, für ein Bild ein gemeinsames Format zu verwenden). Es können beispielsweise folgende drei Pixelformate verwendet werden:
- (1) RGB16: Jeder Pixelwert umfasst 16 Bit, die als 5 Bit für Rot, 6 Bit für Grün und 5 Bit für Blau codiert sind. Zusätzliche Bits (1, 2 oder mehr) können zum Festlegen eines Alpha-Mischwerts hinzugefügt werden.
- (2) CLUT8: Jeder Pixelwert umfasst 8 Bit und dient als Index für eine Farben- Nachschlagetabelle, deren Einträge aus RGB-Werten bestehen. Man beachte, dass die Interpolation in CLUTF3 in der RGB-Domäne erfolgt, und zwar nach dem Farben- Nachschlagen. Zusätzliche Bits (1, 2 oder mehr) können zum Festlegen eines Alpha-Werts hinzugefügt werden.
- (3) ACLUT8: Jeder Pixelwert umfasst 8 Bit sowie 8 Bit des Alpha-Mischwerts. Bei Verwendung dieses Modus sind die Steuerbits deaktiviert. Die Transparenz, Lichtdurchlässigkeit oder Lichtundurchlässigkeit jedes Auflage-Pixels wird allein vom Alpha- Mischwert bestimmt, der für jedes Pixel codiert ist. Natürlich sind auch verschiedene andere Formate möglich, und die Schaltung von Fig. 6 soll je nach Pixelformat und Alpha- Mischwertformat in verschiedenen Modi arbeiten können.
- Wie in Fig. 6 gezeigt, kann ein Speicher 601, wie etwa ein DRAM, zum Speichern eines Auflagebilds verwendet werden. Im RGB16-Modus beispielsweise kann jedes Pixel 16 Bit umfassen, die in die drei Farbkomponenten geteilt sind, während beispielsweise im CLUT8-Modus jeder Pixelwert 8 Bit umfasst, die mittels einer Farben-Nachschlagetabelle CLUT 607 RGB-Werten zugeordnet werden (im RGB-Modus wird die GLUT umgangen). Es kann ein Chroma-Key-Wert festgelegt werden, der bei einer Übereinstimmung mit einem Auflage-Pixelwert bewirkt, dass das Auflage-Pixel vollständig transparent wird. Das kann dadurch erreicht werden, dass der Alpha-Mischwert gezwungen wird, Null zu sein.
- Wenn der RGB16-Modus aktiviert ist und ein Chroma-Key-Wert im Chroma-Register 603 definiert ist, werden dem Multiplexer 606, dem Zeilenpuffer 604 und der Chroma- Vergleichsschaltung 602 16 Bit des Auflage-Pixelwerts zugeführt. Die Chroma- Vergleichsschaltung 602 vergleicht den Auflage-Pixelwert mit einem Wert (oder Bereich), der im Chroma-Register 603 gespeichert ist. Wenn der Auflage-Pixelwert transparent ist (d. h., wenn der Chroma-Vergleich positiv ist), wird das Mischen des Auflage- und Hintergrund- Videobilds deaktiviert und nur das Hintergrund-Videopixel wird angezeigt (d. h., das Auflage- Pixel wird ignoriert).
- Wenn der Chroma-Vergleich negativ ist (d. h., wenn das Auflage-Pixel nicht transparent ist), wird das Alpha-Steuerbit zusammen mit dem aus dem Alpha-Register 608 gelesenen Alpha-Mischwert über den Multiplexer 606 der Alpha-Erzeugungs- und
- - Multiplikationsschaltung 609 zugeführt. Die Alpha-Erzeugungs- und
- - Multiplikationsschaltung 609 kontrolliert, ob das Alpha-Steuerbit für das Auflage-Pixel gesetzt ist. Wenn das Alpha-Steuerbit gesetzt ist, wird das Auflage-Pixel mit dem Alpha-Wert vormultipliziert, sodass das Mischen durchgeführt wird. Wenn das Alpha-Steuerbit nicht gesetzt ist, ist der effektive Alpha-Wert "1" und nur das Auflage-Pixel wird angezeigt (d. h., das Auflage-Pixel ist "lichtundurchlässig" und das Hintergrund-Pixel wird ignoriert).
- Beim Arbeiten im ACLUT8-Modus (d. h. 8 Bit je Pixel) können jedem Pixel 8 Zusatz- Bits als Alpha-Mischwert zugewiesen werden. Somit können anstelle eines einzigen Alpha- Steuerbits 8 Bit eines Alpha-Mischwerts verwendet werden und der Transparenzwert (lichtundurchlässig, transparent oder lichtdurchlässig) kann allein mit dem für jedes Pixel codierten Alpha-Wert bestimmt werden. Daher wird ein Alpha-Mischwert im Alpha-Register 608 ignoriert und die 8 Bit jedes Auflage-Pixels werden unter Verwendung der 8 Bit des Alpha-Mischwerts des Pixels gemischt, nachdem der RGB-Wert des Pixels in einer Farben- Nachschlagetabelle nachgeschlagen worden ist.
- In Verbindung mit dem Mischvorgang können Pixel vertikal und horizontal in den Schaltungen 613 bzw. 614 interpoliert werden. Beim Verknüpfen von Alpha-Mischbits mit den einzelnen Pixeln werden die Alpha-Werte von zwei interpolierten Pixeln selbst interpoliert.
- Das Mischen kann in Stufen erfolgen. Eine Stufe liegt vor der Interpolation und eine danach; d. h., das Originalpixel wird vor der Interpolation mit dem Alpha-Wert vormultipliziert, dann werden die Pixel und der Alpha-Wert interpoliert, und anschließend wird das Ergebnis mit dem Hintergrund-Videobild gemischt, indem der Hintergrund mit (1 - α) multipliziert und das Ergebnis zum interpolierten Vordergrund addiert wird. Wie in Fig. 6 gezeigt, werden die Hintergrund-Videopixel einem Multiplizierer 620 zugeführt, der jedes Hintergrund-Pixel mit (1 - α) multipliziert. Das Ergebnis wird einem Addierer 621 zugeführt, der die Addition des Hintergrund-Pixels zum Auflage-Pixel bewirkt. Das Mischen könnte jedoch auch nach der Interpolation erfolgen oder es könnte auf verschiedenen anderen Wegen durchgeführt werden, die Fachleuten durchaus klar sein dürften.
- Ein Alpha-Wert kann auf verschiedenen Wegen für jedes Auflage-Pixel erzeugt werden, beispielsweise durch (1) Verknüpfen eines einzelnen Mehrbit-Alpha-Werts mit jedem Pixel im Auflagebild (z. B. 8 Zusatzbits), (2) Verknüpfen eines oder mehrerer Alpha- Steuerbits mit jedem Pixel im Auflagebild und Verwendung dieser Bits zum Nachschlagen eines größeren Alpha-Werts aus einer Tabelle oder einem Verzeichnis, (3) Verwendung eines oder mehrerer Alpha-Steuerbits in Kombination mit einem Chroma-Key, der durch Vergleichen des Pixelwerts mit einem Chroma-Wert feststellt, ob das Auflage-Pixel transparent wird, und (4) Verwendung eines Chroma-Keys ohne Alpha-Steuerbits. Kombinationen dieser Methoden sind natürlich möglich.
- Bei allen diesen Verfahren wird angenommen, dass ein Alpha-Wert für jedes Pixel im Auflagebild bereitgestelll werden kann, um das Mischen durchzuführen.
- Anstatt z. B. 8 Bit des Alpha-Werts mit jedem Pixel zu speichern, kann beispielsweise ein 2-Bit-Wert mit jedem Pixelwert gespeichert werden, um Speicherplatz zu sparen, wobei jede mögliche Kombination von zwei Bits einem vorgegebenen Quotienten entsprechen, der mit einem vorgegebenen Alpha-Wert zu multiplizieren ist. So könnte beispielweise ein Binärwert von 00 dem Null-Mischen (d. h. Oα) entsprechen, 01 könnte 0,25α (oder einem anderen vorgegebenen Quotienten) entsprechen, 10 könnte 0,75α (oder einem anderen vorgegebenen Quotienten) entsprechen und 11 könnte dem Mischen mit 1,0α entsprechen, wobei α ein vorgegebener Alpha-Wert ist. Natürlich sind auch andere Varianten möglich. Es können aber auch ein, zwei oder mehr Alpha-Steuerbits codiert werden, um auf völlig verschiedene Alpha-Werte zu verweisen, wobei jeder Alpha-Wert vorzugsweise mehr Bits als die zur Codierung verwendeten Bits umfasst. So kann beispielsweise ein Wert 00 auf einen ersten Alpha-Mischwert verweisen, ein Wert 01 würde auf einen zweiten Alpha- Mischwert verweisen und so weiter. Auf diese Weise kann eine geringe Anzahl von Alpha- Steuerbits dazu verwendet werden, einen oder mehrere viel größere Alpha-Mischwerte "nachzuschlagen", was zu bedeutenden Speicherplatzeinsparungen führt.
- Es dürfte bekannt sein, dass die in Fig. 6 gezeigte Schaltung, die mit einer Kundenschaltung (ASIC) ausgeführt sein kann, nur eine Möglichkeit zur Umsetzung der Grundgedanken der Erfindung darstellt. Darüber hinaus sind weitere Änderungen an der in Fig. 6 gezeigten Schaltung möglich. So kann beispielsweise die Chroma- Vergleichsschaltung 602 nach dem Multiplexer 606 angeordnet werden, sodass die Pixelwerte erst nach ihrer Speicherung im Zeilenpuffer 604 verglichen werden.
- Es können verschiedene Anzeige-Auflösungen realisiert werden. Zwei übliche mittlere Auflösungsformate sind 320 · 240 und 384 · 288. Es kann daher zweckmäßig sein, einen Zeilenpuffer mit einer Länge von 384 Pixeln zu verwenden, um das größere Format unterzubringen.
- Bei Verwendung des RGB16-Formats kann jedes Pixel 16 Bit für den Farbwert und 1 Bit für die Alpha-Steuerung umfassen. Alle 16 Bit des Farbwerts und das Alpha-Steuerbit werden zusammen mit dem Chroma-Key-Bit von der Chroma-Vergleichsschaltung 602 (insgesamt 18 Bit) in den Zeilenpuffer 604 eingelesen, der 384 Pixel mal 18 Bit je Pixel halten kann (384 Pixel können verwendet werden, um eine Auflösung von 384 · 288 zu unterstützen, die etwas höher als 320 · 240 ist). Die 16 Farb-Bits und das Alpha-Steuerbit werden ebenfalls dem Multiplexer 606 zugeführt. Die 16 Farb-Bits werden im Chroma- Vergleicher 602 verglichen, um einen Chroma-Key-Wert von 1 Bit zu erzeugen.
- Eine erste Zeile wird in den Zeilenpuffer 604 gespeichert, dann wird die nächste Zeile dem Multiplexer 606 zugeführt. Um die Notwendigkeit von zwei Multiplikationen und zwei CLUT-Tabellen zu vermeiden, kann der Multiplexer 606 dazu dienen, Zeilen abwechselnd zu verarbeiten.
- In den folgenden Abschnitten wird beschrieben, wie die Schaltung von Fig. 6 in Abhängigkeit von der Art des Anzeigeformats betrieben werden kann.
- Die Schaltung von Fig. 6 kann dazu verwendet werden, Auflage-Pixel mit Alpha- Werten ohne Interpolation zu mischen (z. B. bei Verwendung eines Auflagebilds, das die gleiche Anzeige-Auflösung wie das Hintergrundbild hat). Nachstehend wird beschrieben, wie die Schaltung von Fig. 6 betrieben werden kann, um das Mischen ohne Interpolation für jedes der unterschiedlichen Pixelformate durchzuführen.
- Vom Speicher 601 werden ein RGB-Pixelwert und ein 1-Bit-Alpha-Steuerbit übertragen. Unter Verwendung der Maximal- und Minimalwerte aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Auflage-Pixelwert in diesen Bereich fällt, wird er als transparent bezeichnet und ein 1-Bit-Chroma-Vergleichsflag wird gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird das Alpha-Steuerbit ignoriert und der Alpha-Mischwert wird als Null definiert (d. h., das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Bit "1" ist, wird der Alpha-Wert αls der Wert im Alpha-Register 608 definiert (d. h. als vorgegebener Alpha-Wert) und das Auflage-Pixel ist lichtdurchlässig (d. h. es wird gemischt). Wenn das Alpha-Steuerbit "0" ist, wird das Pixel als lichtundurchlässig angesehen und der Alpha-Wert ist "1" (d. h. das Auflage-Pixel verdunkelt das Hintergrund- Pixel). Aufgrund des Hochauflösungsmodus wird die Interpolation umgangen und die Auflage-Pixeldaten werden zu einem Farbraumwandler 622 weitergeleitet. Im Addierer 621 werden die Pixelwerte mit den Hintergrund-Pixelwerten gemischt. Dieses Mischen kann in demselben Farbraum (RGB) oder in einem anderen Farbraum (z. B. YCbCr) erfolgen. In letzterem Fall werden die Pixelwerte vom Farbraumwandler 622 umgewandelt, bevor sie mit den Hintergrund-Pixeln gemischt werden.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 1-Bit-Alpha-Steuerbit gelesen. Unter Verwendung des Chroma-Werts aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Pixelwert mit diesem Index übereinstimmt, wird er als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird das Alpha-Steuerbit ignoriert und der Alpha-Wert ist Null (d. h., das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Bit "1" ist, wird der Alpha-Wert αls der Wert im Alpha-Register 608 definiert und das Auflage-Pixel ist lichtdurchlässig. Wenn das Alpha-Steuerbit "0" ist, wird das Pixel als lichtundurchlässig angesehen und der Alpha-Wert ist "1" (d. h. das Auflage- Pixel verdunkelt das Hintergrund-Pixel). Der CLUT-Teil dieser Daten durchläuft eine Farben- Nachschlagetabelle f07, um die RGB-Werte zu erhalten. Aufgrund des Hochauflösungsmodus wird die Interpolation umgangen und die ROB-Daten werden mit Alpha multipliziert, durch den Farbraumwandler 622 geleitet und anschließend mit den Hintergrunddaten (Video-Daten) gemischt.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 8-Bit-Alpha-Wert gelesen. Unter Verwendung des Chroma-Werts aus dem Chroma-Register 603 wird ein Chroma- Vergleich durchgeführt. Wenn der Pixelwert mit diesem Wert übereinstimmt, wird er als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird der Alpha-Wert als Null definiert (d. h., das Auflage- Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird der 8-Bit-Alpha-Wert aus dem Zeilenpuffer 604 als Alpha-Wert verwendet. Die Daten durchlaufen eine Farben- Nachschlagetabelle 607, um die RGB-Werte zu erhalten. Aufgrund des Hochauflösungsmodus wird die Interpolation umgangen und die ROB-Daten werden mit Alpha multipliziert, durch den Farbraumwandler 622 geleitet und anschließend mit den Hintergrunddaten (Video-Daten) gemischt.
- Bei verschachtelten Anzeigen ist jede horizontale Zeile eines Bilds entweder in einem ungeraden oder einem geraden Feld der Anzeige, das auch als "oberes" bzw. "unteres" Feld bezeichnet wird. Mit der Ausnahme, dass die horizontale Interpolation genutzt werden kann, verhält sich beim Mittelauflösungsmodus das obere Datenfeld ähnlich wie beim Hochauflösungsmodus.
- Aus dem Speicher 601 werden ein RGB-Pixelwert und ein 1-Bit-Alpha-Steuerbit gelesen. Unter Verwendung der Maximal- und Minimalwerte aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Auflage-Pixelwert in diesen Bereich fällt, wird er als transparent angesehen und ein 1-Bit-Flag wird gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird das Alpha-Steuerbit ignoriert und der Alpha-Wert wird als Null definiert (d. h. das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Alpha-Steuerbit "1" ist, wird der Alpha-Wert αls der Wert im Alpha- Register definiert und das Auflage-Pixel ist lichtdurchlässig. Wenn das Alpha-Steuerbit "0" ist, wird das Pixel als lichtundurchlässig angesehen und der Alpha-Werk ist "1" (d. h. das Auflage-Pixel verdunkelt das Hintergrund-Pixel).
- Wenn die horizontale Interpolation aktiviert ist, wird sie von einem horizontalen Interpolationsabschnitt 614 durchgeführt. Der Zeilenpuffer wird umgangen, da die vertikale Interpolation im oberen Feld nicht benötigt wird. Die Daten werden mit dem Wert im Alpha- Register 608 multipliziert (d. h., jede Komponente des RGB-Werts jedes Pixels wird mit dem entsprechenden Alpha-Wert multipliziert), dann werden der Alpha-Wert und die Pixeldaten interpoliert. Der Alpha-Wert ist Null, wenn das Chroma-Vergleichsflag gesetzt ist; er ist Eins, wenn das Chroma-Vergleichsflag nicht gesetzt ist und das Alpha-Steuerbit ebenfalls Null ist; und er ist der Wert im Alpha-Register 608, wenn das Chroma-Vergleichsflag nicht gesetzt ist und das Alpha-Steuerbit Eins ist. Das vertikale Interpolationsmodul wird umgangen, da es sich im oberen Datenfeld (ungerade Zeile) befindet. Nach der Ankunft im horizontalen Interpolationsmodul geht eine bewertete Kopie der gemischten Daten zur Mittelwertbildungslogik im horizontalen Interpolationsabschnitt 614. Aus beiden wird der Mittelwert ermittelt, sodass eine volle Datenzeile entsteht. Sowohl die RGB-Farbwerte als auch die Alpha-Werte werden interpoliert.
- Vor der horizontalen Interpolation hat jedes Auflage-Pixel drei mögliche Alpha-Werte: 0, α und 1. Wenn nur die horizontale Interpolation aktiviert ist, ist der interpolierte Alpha-Wert der Mittelwert aus zwei Werten, die jeweils 0, α und 1 sein können. Beim NTSC- Quadratpixelformat entspricht die horizontale Interpolation dem Wählen und Interpolieren von 320 Pixeln, um 640 Pixel je Zeile zu erhalten.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 1-Bit-Alpha-Steuerbit gelesen. Unter Verwendung des Chroma-Key-Werts aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Pixelwert mit diesem Wert übereinstimmt, wird er als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichstlag gesetzt ist, wird der Alpha-Wert als Null definiert (d. h., das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Bit "1" ist, wird der Alpha-Wert als der Wert im Alpha-Register definiert und das Auflage-Pixel ist lichtdurchlässig. Wenn das Alpha-Steuerbit "0" ist, wird das Auflage-Pixel als lichtundurchlässig angesehen und der Alpha-Wert ist "1" (d. h. das Auflage- Pixel wird mit Eins multipliziert und verdunkelt so das Hintergrundbild).
- Die Auflage-Pixeldaten werden dann durch die Farben-Nachschlagetabelle 607 geleitet, um sie in RGB-Werte umzuwandeln. Der Wert im Alpha-Register 608 wird vor der Interpolation zum Multiplizieren mit den Daten verwendet. Der vertikale Interpolationsabschnitt 613 wird umgangen, da er das obere Feld ist. Nach der Ankunft im horizontalen Interpolationsabschnitt 614 geht eine Kopie der Alpha-multiplizierten Daten zum horizontalen Interpolationsregister 617 und eine andere bewertete Kopie geht zur Mittelwertbildungslogik im horizontalen Interpolationsabschnitt 614. Aus beiden wird der Mittelwert ermittelt, sodass eine volle Datenzeile entsteht. Sowohl die RGB-Farbwerte als auch die Alpha-Werte werden interpoliert.
- Vor der horizontalen Interpolation hat jedes Auflage-Pixel drei mögliche Alpha-Werte: 0, α und 1. Beim NTSC-Quadratpixelformat entspricht die horizontale Interpolation dem Wählen und Interpolieren von 320 Pixeln, um 640 Pixel je Zeile zu erhalten.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 8-Bit-·Alpha-Wert gelesen. Unter Verwendung des Chroma-Werts aus dem Chroma-Register 603 wird ein Chroma- Vergleich durchgeführt. Wenn der Pixelwert mit diesem Index übereinstimmt, wird das Auflage-Pixel als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird das Alpha-Steuerbit ignoriert und der Alpha-Wert als "0" definiert (d. h., das Auflage-Pixel wird mit Null multipliziert und ist somit transparent). Wenn das Chroma-Vergleichsflag "0" ist, wird der 8-Bit-Alpha-Wert aus dem Zeilenpuffer als Alpha-Wert verwendet.
- Die Auflage-Pixeldaten durchlaufen dann eine Farben-Nachschlagetabelle 607, um sie in RGB-Werte umzuwandeln. Der 8-Bit-Alpha-Wert aus dem Zeilenpuffer wird verwendet, um den Pixelwert vor der Interpolation vorzumultiplizieren. Der vertikale Interpolationsabschnitt wird umgangen, da er das obere Feld ist. Nach der Ankunft im horizontalen Interpolationsabschnitt geht eine bewertete Kopie der gemischten Daten zum horizontalen Interpolationsregister 617, während eine andere bewertete Kopie zur Mittelwertbildungslogik im horizontalen Interpolationsabschnitt 614 geht. Aus beiden wird der Mittelwert ermittelt, sodass eine volle Datenzeile entsteht. Beim NTSC-Quadratpixelformat entspricht das dem Wählen und Interpolieren von 320 Pixeln, um 640 Pixel je Zeile zu erhalten.
- Beim Mittelauflösungsmodus verhält sich das untere Datenfeld (gerade Zeilen) anders. Wenn die Interpolation nicht aktiviert ist, sind die Daten identisch mit dem oberen Feld und umfassen (beim NTSC-Quadratpixelformat) nur 320 Pixel/Zeile. Es ist eine "Gleichlaufschwankung" zu sehen, da das obere und das untere Feld die gleichen Daten haben. Die vertikale Interpolation mindert diese Gleichlaufschwankung. Wenn die vertikale Interpolation vor der horizontalen Interpolation durchgeführt wird, sind weniger Berechnungen als bei der umgekehrten Interpolationsreihenfolge notwendig. Nach Abschluss der Interpolation werden die Daten an einen Farbraumwandler 622 und dann weiter an ein Bildschirm-Steuergerät gesendet.
- Aus dem Speicher 601 werden ein RGB-Pixelwert und ein 1-Bit-Alpha-Steuerbit gelesen. Unter Verwendung der Maximal- und Minimalwerte aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Auflage-Pixelwert in diesen Bereich fällt, wird er als transparent angesehen und ein 1-Bit-Flag wird gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird der Alpha-Wert als Null definiert (d. h. das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Bit "1" ist, wird der Alpha-Wert als der Wert im Alpha-Register definiert und das Auflage-Pixel ist lichtdurchlässig. Wenn das Alpha-Steuerbit "0" ist, wird das Pixel als lichtundurchlässig angesehen und der Alpha-Wert ist "1" (d. h. das Auflage-Pixel verdunkelt das Hintergrund-Pixel). Wenn die Interpolation aktiviert ist, gehen die Daten aus dem Speicher 601 und der Chroma-Vergleichsschaltung 602 in den Zeilenpuffer 604. Die zwei codierten Bits (Alpha-Steuerbit und Chroma-Key-Bit) werden an die RGB16-Farbdaten angehängt.
- Zunächst geht ZEILE 1 (die erste Zeile der Auflage-Pixeldaten) in den Zeilenpuffer 604. Danach wird ZEILE 3 (die zweite Zeile der Auflage-Pixeldaten) gelesen und in den Zeilenpuffer eingegeben und ist gleichzeitig eine Echtzeiteingabe in einen Addierer. Die erste Zeile verlässt den Zeilenpuffer und wird die zweite Eingabe in den Addierer. Der vertikale Interpolationsabschnitt 613 führt die vertikale Interpolation durch (d. h., ermittelt den Mittelwert aus den Farb- und Alpha-Werten). Dann wird im horizontalen Interpolationsabschnitt 614 die horizontale Interpolation durchgeführt.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 1-Bit-Alpha-Steuerbit gelesen. Unter Verwendung des Chroma-Key-Werts aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Pixelwert mit diesem Wert übereinstimmt, wird er als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird der Alpha-Wert als Null definiert (d. h., das Auflage-Pixel wird mit Null multipliziert und ist somit transparent).
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird das 1-Bit-Alpha-Steuerbit geprüft. Wenn dieses Alpha-Steuerbit "1" ist, wird der Alpha-Wert als der Wert im Alpha- Register definiert und das Auflage-Pixel ist lichtdurchlässig. Wenn das Alpha-Steuerbit "0" ist, wird das Auflage-Pixel als lichtundurchlässig angesehen und der Alpha-Wert ist "1" (d. h. das Auflage-Pixel verdunkelt das Hintergrundbild).
- Wenn die vertikale Interpolation aktiviert ist, gehen die Pixeldaten aus dem Speicher 601 und der Chroma-Vergleichsschaltung 602 in den Zeilenpuffer 604. Die zwei Bits (Alpha- Steuerbit und Chroma-Key-Bit) werden an die CLUTB-Farbdaten angehängt. Zunächst geht ZEILE 1 (die erste Zeile der Auflage-Pixel) in den Zeilenpuffer. Danach wird ZEILE·3 (die zweite Zeile der Auflage-Pixel) gelesen und in den Zeilenpuffer eingegeben und ist gleichzeitig eine Echtzeiteingabe in einen Addierer. Die erste Zeile verlässt den Zeilenpuffer und wird die zweite Eingabe in den Addierer.
- Bevor die zwei Signale addiert werden, werden sie über die Farben- Nachschlagetabelle 607 in RGB16 umgewandelt. Da es bei verschiedenen Ausführungsformen nur eine Farben-Nachschlagetabelle gibt, wird ein Multiplexer verwendet, damit die Addenden einzeln in die Tabelle zur Umwandlung eingehen können. Das Multiplexen kann in Echtzeit erfolgen, da im Mittelauflösungsmodus jedes Pixel 2 Pixeltakte belegt. Der vertikale Interpolationsabschnitt 613 führt die vertikale Interpolation durch (d. h., ermittelt den Mittelwert aus den Farb- und Alpha-Werten). Dann wird im Abschnitt 614 die horizontale Interpolation durchgeführt.
- Aus dem Speicher 601 werden ein 8-Bit-Pixelwert und ein 8-Bit-Alpha-Wert übertragen. Unter Verwendung des Chroma-Werts aus dem Chroma-Register 603 wird ein Chroma-Vergleich durchgeführt. Wenn der Pixelwert mit diesem Wert übereinstimmt, wird er als transparent angesehen und es wird ein 1-Bit-Flag gesetzt, um das anzuzeigen. Wenn das Chroma-Vergleichsflag gesetzt ist, wird der Alpha-Wert als Null definiert.
- Wenn das Chroma-Vergleichsflag nicht gesetzt ist, wird der 8-Bit-Alpha-Wert aus dem Speicher 601 als Alpha-Wert verwendet. Wenn die vertikale Interpolation aktiviert ist, gehen die Daten aus dem Speicher 601 und der Chroma-Vergleichsschaltung 602 in den Zeilenpuffer 604. Zunächst geht ZEILE 1 (die erste Zeile der Auflage-Pixel) in den Zeilenpuffer 604. Danach wird ZEILE 3 (die zweite Zeile der Auflage-Pixel) gelesen und in den Zeilenpuffer 604 eingegeben und wird gleichzeitig eine Echtzeiteingabe in einen Addierer. ZEILE 1 (die erste Zeile der Auflage-Pixel) verlässt den Zeilenpuffer und wird die zweite Eingabe in den Addierer.
- Bevor der Mittelwert aus den zwei Signalen ermittelt wird, werden sie über die Farben-Nachschlagetabelle 607 in RGB16 umgewandelt. Da es bei verschiedenen Ausführungsformen nur eine Farben-Nachschlagetabelle gibt, wird ein Multiplexer verwendet, damit die Addenden einzeln in die Tabelle zur Umwandlung eingehen können. Das Multiplexen kann in Echtzeit erfolgen, da im Mittelauflösungsmodus jedes Pixel 2 Pixeltakte belegt. Der vertikale Interpolationsabschnitt 613 führt die vertikale Interpolation durch (d. h., ermittelt den Mittelwert aus den Farb- und Alpha-Werten). Dann wird im Abschnitt 614 die horizontale Interpolation durchgeführt.
- Fig. 7 zeigt ein Zeitsteuerungsdiagramm, das der Schaltung von Fig. 6 entspricht. In Fig. 7 stellt jede Zahl in einem Kreis einen entsprechenden Schaltungspunkt in Fig. 6 dar. Wie in Fig. 7 zu erkennen ist, entspricht die Ausgabe des Zeilenpuffers 604 (Kreis 1) den Originalpixeln in Zeile 1 des Eingangsbilds an jedem CLK320 (Taktzykus 320) (der CLK320 arbeitet mit der halben Taktfrequenz des CLK640, der, Hochauflösungs"-Pixelfrequenz). Umgekehrt entspricht die Ausgabe des Speichers 601 (Kreis 2) den Originalpixeln in Zeile 3 des Eingangsbilds in jedem Taktzyklus CLK320. Die Ausgabe des Multiplexers 606 (Kreis 3, nach dem Multiplexer 610) alterniert Pixel aus jeder Zeile bei jedem Taktzyklus CLK640, und die Ausgabe des Registers 611 (Kreis 4) wiederholt dieses Muster, jedoch um einen Taktzyklus CLK640 verzögert.
- Die Ausgabe des Registers 612 (Kreis 5) regeneriert nochmals dae Pixel aus Zeile 1 des Eingangsbilds, jedoch um einen vollen Taktzyklus CLK320 verschoben, während die Ausgabe des Registers 615 (Kreis 6) die Pixel aus Zeile 3 des Eingangsbilds regeneriert, jedoch um einen vollen Taktzyklus CLK320 verschoben. Nach der Mittelwertbildungslogik 616 (Kreis 7) werden die Mittelwerte aus entsprechenden Pixeln aus Zeile 1 und Zeile 3 des Eingangsbilds ermittelt (z. B. wird Zeile 2 durch vertikale Pixel-Mittelwertbildung erzeugt). Nach der Mittelwertbildungslogik 618 (Kreis 9) werden die Mittelwerte einzelner Pixel in derselben Zeile mit der doppelten Taktfrequenz der Pixel aus den vertikal gemittelten Zeilen erzeugt. L1 P1 und L1 f4 werden nur für das obere Feld benötigt und werden durch horizontale Interpolation erzeugt. Fig. 7 zeigt eine Wellenform des unteren Felds, bei der sowohl ein vertikales als auch ein horizontales Filtern notwendig sind. Somit ist L2P2 = AVG (L2P1, L2P3) und L2P4 = AVG (L2P3, L2P5).
- Fig. 8 zeigt in Form eines Diagramms, wie ein Auflagebild mittlerer Auflösung 801 hochskaliert und mit einem Hintergrundbild hoher Auflösung 803 gemischt werden kann, um ein resultierendes Bild 804 zu erzeugen. Fig. 8 zeigt also, wie die Schaltung von Fig. 6 das Mischen und Hochskalieren verbinden kann.
- In Fig. 8 wird angenommen, dass das Auflagebild mittlerer Auflösung 801 320 · 240 Auflage-Pixel umfasst. Bei zwei horizontal benachbarten Pixeln P1 und P3, die jeweils einen entsprechenden Alpha = Wert α&sub1; und α&sub3; haben, wird jedes Pixel mit seinem Alpha-Wert vormultipliziert (mit einem vorstehend erörterten Alpha-Erzeugungsverfahren) und aus den entsprechenden Alpha = Werten wird der Mittelwert ermittelt, um im Bild 802 ein mit dem Alpha-Wert α&sub2; gemischtas Pixel U2 zu erzeugen. Außerdem kann in Vorbereitung auf das Mischen mit einem Hintergrundbild hoher Auflösung 803, das vermutlich bereits die Pixel B1, B2 und B3 hat (z. B. das Format 640 · 480), jeder Auflage-Pixelwert unter Verwendung einer Alpha-Erzeugungsschaltung 609 mit seinem entsprechenden Alpha-Wert in der Schaltung von Fig. 6 (z. B. U1 und U3) multipliziert werden.
- So wird das Pixel P1 aus dem Auflagebild mittlerer Auflösung 801 mit seinem Alpha- Wert cc1 multipliziert, um ein Zwischenpixel U1 zu erzeugen (sein Alpha-Wert ändert sich jedoch nicht). Ebenso wird das Pixel P3 aus dem Auflagebild mittlerer Auflösung 801 mit seinem Alpha-Werk α&sub3; multipliziert, um ein Zwischenpixel U3 zu erzeugen. Um einen "hochskalierten" Zwischenpixelwert U2 im Bild 802 zu erzeugen, wird der Mittelwert aus den Pixelwerten der jeweiligen entsprechenden Nachbarn U1 und U3 ermittelt (d.h. der Mittelwert von P1 und P3 nach der Multiplikation mit ihren entsprechenden Alpha-Werten) und der Alpha-Wert von U2 wird als Mittelwert der Alpha-Werte von U1 und U3 festgelegt. Wenn diese Operation über das gesamte Auflagebild 801 ausgeführt wird, hat das Zwischenbild 802 die gleiche Auflösung wie das Hintergrund-Videobild 803.
- Danach werden Pixel aus dem Hintergrundbild 803 mit Eins minus dem Alpha-Wert des entsprechenden Pixels aus dem Zwischenbild 802 multipliziert und zu jedem Pixel aus dem Zwischenbild 802 addiert. Somit hat das resultierende Pixel R1 im Bild 804 den Wert U1 + (1 - αi)B1, während das resultierende Pixel R2 den Wert U2 + (1 - α&sub2;)B2 hat und das resultierende Pixel R3 den Wert U3 + (1 - α&sub3;)B3 hat.
- Zusammenfassend kann gesagt werden, dass das in Fig. 8 gezeigte Pixelmanipulationsschema die Alpha-Erzeugung und -Multiplikation für jedes Pixel in einem Auflagebild mit einer, Hochskalierung" des Auflagebilds verbindet, um die Auflösung eines Hintergrundbilds hoher Auflösung anzupassen. Die Vormultiplikation mit Alpha und die Interpolationsfunktionen ("hochskaliertes" Bild 802 von Fig. 8) können mit Hilfe der Schaltungen 605, 613 und 614 von Fig. 6 ausgeführt werden. Die Mischfunktion (siehe resultierendes Bild 804 von Fig. 8) kann mit Hilfe der Schaltungen 620 und 621 von Fig. 6 ausgeführt werden.
- Fig. 9 zeigt, wie der Mittelwert von zwei vertikalen Zeilen aus einem Bild effizient ermittelt werden kann, um eine dritte Zeile zu erzeugen, unter anderem durch Multiplizieren von Pixeln mit einem entsprechenden Alpha-Wert. Das in Fig. 9 dargestellte Verfahren gleicht im Allgemeinen dem unter Bezugnahme auf die Schaltung von Fig. 6 beschriebenen Verfahren.
- In Fig. 9 umfasst eine erste Pixelfolge 907, die der ZEILE 1 eines Eingangsbilds entspricht, die Pixel L1 P1, LlP3 und L1 PS. Ebenso umfasst eine zweite Pixelfolge 906, die der ZEILE 3 (d. h. der zweiten Zeile) eines Eingangsbilds entspricht, die Pixel L3P1, L3P3 und L3P5. Jede Pixelfolge wird einem Interleaver 901 zugeführt der einen Einpixelstrom 908 mit wechselnden aufeinanderfolgenden Pixeln aus jeder Zeile erzeugt. Die Verwendung eines Interleavers verringert die Anzahl der Komponenten, die zur Durchführung des Farben- Nachschlagens (in Fig. 9 nicht dargestellt) und der Multiplikation mit dem Multiplikator 902 (entspricht dem Multiplikator 610 in Fig. 6) erforderlich sind.
- Eine Alpha-Bestimmungsschaltung 904 erzeugt Alpha-Werte für jedes Pixel nach den vorstehend beschriebenen Verfahren, sodass die Pixelfolge, die den Multiplikator 902 verlässt, Pixel enthält, die mit ihren entsprechenden Alpha-Werten multipliziert worden sind. Die einzige Pixelfolge, die den Multiplikator 902 verlässt, wird einem De-Interleaver 903 zugeführt, der die Pixelfolge wieder in zwei einzelne Pixelfolgen 909 und 910 trennt, die jeweils einer horizontalen Zeile des Eingangsbilds entsprechen. Danach wird in der Mittelwertbildungsschaltung 905 der Mittelwert aus den beiden Pixelfolgen ermittelt (entspricht dem Element 616 in Fig. 6) und eine Ausgabe-Pixelfolge 911 mit gemittelten Pixeln und Alpha-Werten erzeugt. Jede der Pixelfolgen 909, 910 und 911 kann dann einer horizontalen Interpolationsschaltung wie der in Fig. 3A gezeigten zugeführt werden.
- Es ist klar, dass zahlreiche Modifikationen und Änderungen der vorliegenden Erfindung möglich sind und dass Bezugnahmen auf bestimmte Werte nur Beispielcharakter haben. Als Beispiel hierfür sei erwähnt, dass, wenn beschrieben oder behauptet wird, dass mehrere Schaltungen eine Funktion ausführen, diese Funktion im Wesentlichen auf die gleiche Weise durch Verwendung einer geringeren Anzahl von Schaltungen, die mit einer höheren Taktfrequenz gemultiplext sind, erreicht werden kann. Es ist daher klar, dass innerhalb des Schutzumfangs der beigefügten Ansprüche die Erfindung auch in anderer Weise als ausdrücklich beschrieben umgesetzt werden kann.
Claims (33)
1. Vorrichtung zum Umwandeln eines ersten Bilds mit einer ersten Anzeige-Auflösung in
ein zweites Bild mit einer zweiten Anzeige-Auflösung, wobei das erste Bild eine Vielzahl von
Pixelwerten aufweist, die in horizontalen Zeilen angeordnet sind; die
einen Pixelreplikator, der eine Pixelfolge mit Pixelwerten aus einer der horizontalen
Zeilen des ersten Bilds empfängt und daraus eine replizierte Pixelfolge mit replizierten
Pixelwerten aus der einen horizontalen Zeile erzeugt,
ein mit dem Pixelreplikator verbundenes Verzögerungselement, das die replizierte
Pixelfolge um einen Taktzyklus verzögert, um eine verzögerte replizierte Pixelfolge zu
erzeugen, und
eine Mittelwertbildungsschaltung, die die replizierte Pixelfolge empfängt und den
Mittelwert der entsprechenden Pixelwerte aus der replizierten Pixelfolge ermittelt, um eine
gemittelte Pixelfolge auszugeben, aufweist,
dadurch gekennzeichnet, dass die Mittelwertbildungsschaltung außerdem die
verzögerte replizierte Pixelfolge empfängt, den Mittelwert der entsprechenden Pixelwerte aus
der replizierten Pixelfolge und der verzögerten replizierten Pixelfolge ermittelt und eine
gemittelte Pixelfolge ausgibt, die Pixelwerte aus der einen horizontalen Zeile aufweist, die mit
gemittelten Pixelwerten aus der einen horizontalen Zeile gemischt sind,
und dadurch gekennzeichnet, dass die Vorrichtung außerdem
ein Mittel zum Multiplizieren jedes einzelnen Pixelwerts in der Pixelfolge mit einem die
Lichtdurchlässigkeit des jeweiligen Pixelwerts steuernden Alpha-Mischwert vor dem
Empfang durch den Pixelreplikator aufweist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das Multiplikationsmittel
ein Mittel zum Abrufen des Alpha-Mischwerts aus einem Alpha-Register mittels eines zu
jedem einzelnen Pixelwert gehörenden Alpha-Steuerbits aufweist.
3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das Multiplikationsmittel
ein Mittel zum Abrufen des Alpha-Mischwerts aus einer Nachschlagetabelle mittels einer
Vielzahl codierter Alpha-Steuerbits, die zu jedem einzelnen Pixelwert gehören, aufweist.
4. Vorrichtung nach Anspruch 1, die außerdem ein Mittel zum Erzwingen einer
Multiplikation des jeweiligen Pixelwerts mit Null in Reaktion auf einen positiven Vergleich
zwischen jedem einzelnen Pixelwert und einem Chroma-Key-Wert aufweist.
5. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass jeder der Pixelwerte im
ersten Bild eine Vielzahl von Farbkomponenten aufweist und dass der Pixelreplikator, das
Verzögerungselement und die Mittelwertbildungsschaltung für jede Farbkomponente so
reproduziert werden, dass eine gesonderte gemittelte Pixelfolge für jede Farbkomponente
entsteht.
6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass zu jedem der Pixelwerte
im ersten Bild ein Alpha-Mischwert gehört, der das Ausmaß festgelegt, in dem der Pixelwert
mit einem entsprechenden Pixelwert aus einem dritten Bild gemischt wird, wobei die
Vorrichtung außerdem
ein Mittel zum Empfangen einer zweiten Pixelfolge mit Alpha-Mischwerten aus der
einen horizontalen Zeile des ersten Bilds und zum Erzeugen einer zweiten replizierten
Pixelfolge mit replizierten Alpha-Mischwerten aus der zweiten Pixelfolge,
ein mit dem zweiten Pixelreplikator verbundenes Mittel zum Verzögern der
replizierten Alpha-Mischwertfolge um einen Taktzyklus, um eine verzögerte replizierte Alpha-
Mischwertfolge zu erzeugen, und
ein Mittel zum Empfangen der replizierten Alpha-Mischwertfolge und der verzögerten
replizierten Alpha-Mischwertfolge, zum Ermitteln des Mittelwerts entsprechender Elemente
aus der replizierten Alpha-Mischwertfolge und der verzögerten replizierten Alpha-
Mischwertfolge und zum Ausgeben einer gemittelten Alpha-Mischwertfolge, die Elemente
aus der Alpha-Mischwertfolge aufweist, die mit gemittelten Elementen aus der Alpha-
Mischwertfolge gemischt sind,
aufweist.
7. Vorrichtung nach Anspruch 1, die außerdem ein Mittel zum Inierpolieren von Alpha-
Mischwerten, die zu jedem der Vielzahl von Pixeln im ersten Bild gehören, und zum
Erzeugen von interpolierten Alpha-Mischwerten aus den Alpha-Mischwerten aufweist.
8. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Pixelreplikator ein
Register aufweist, das mit der zweifachen Geschwindigkeit der Pixelfolge getaktet ist.
9. Vorrichtung nach Anspruch 1 zum weiteren Verbinden von Pixeln aus einem ersten
Bild, das eine erste Anzeige-Auflösung hat, mit Pixeln aus einem zweiten Bild, das eine
zweite Anzeige-Auflösung hat; die
ein Alpha-Wert-Bestimmungsmittel zum Bestimmen eines Alpha-Werts, der die
Lichtdurchlässigkeit jedes Pixels im ersten Bild steuert,
ein Pixel-Mittelwertbildungsmittel zum Erzeugen interpolierter Pixelwerte aus dem
ersten Bild durch Ermitteln des Mittelwerts benachbarter Pixelwerte aus dem ersten Bild,
ein Alpha-Wert-Mittelwertbindungsmittel zum Erzeugen interpolierter Alpha-Werte
durch Ermitteln des Mittelwerts entsprechender benachbarter Alpha-Werte, die vom Alpha-
Wert-Bestimmungsmittel bestimmt wurden, wobei jeder interpolierte Pixelwert einen
zugehörigen interpolierten Alpha-Wert hat, und
ein Mischmittel zum Mischen jedes interpolierten Pixelwert und seines zugenorigen
interpolierten Alpha-Werts mit einem entsprechenden Pixelwert aus dem zweiten Bild
aufweist.
10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass das Alpha-Wert-
Bestimmungsmittel aus einem Speicher einzelne Alpha-Mischbits liest, die zu jedem Pixel im
ersten Bild gehören.
11. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass das Alpha-Wert-
Bestimmungsmittel ein Alpha-Steuerbit verwendet, das zu jedem Pixel im ersten Bild gehört,
um einen vorgegebenen Alpha-Wert abzurufen.
12. Vorrichtung nach Anspruch 9, die außerdem ein Mittel zum Vergleichen jedes
Pixelwerts im ersten Bild mit einem Chroma-Key-Wert und, in Reaktion auf eine Feststellung,
dass eine Übereinstimmung vorliegt, zum Erzwingen, dass der Alpha-Wert für einen
entsprechenden Pixelwert Null ist, aufweist.
13. Vorrichtung nach Anspruch 9, die außerdem ein Mittel zum Multiplizieren jedes
Pixelwerts im ersten Eild mit seinem zugehörigen Alpha-Wert vor der Erzeugung der
interpolierten Pixelwerte aufweist.
14. Vorrichtung nach Anspruch 1 zum weiteren Interpolieren von Pixeln in einem
Anzeigebild mit einer Vielzahl horizontaler Zeilen von Pixeln, die
einen Interleaver, der eine erste Pixelfolge mit Pixeln aus einer ersten Zeile des
Eingangsbilds und eine zweite Pixelfolge mit Pixeln aus einer zweiten Zeile des
Eingangsbilds empfängt und eine Ausgabe einer verschachtelten Pixelfolge mit
verschachtelten Pixeln aus der ersten und zweiten Pixelfolge erzeugt,
ein Mittel zum Bestimmen eines Alpha-Mischwerts für jedes Pixel in der
verschachtelten Pixelfolge, wobei der Alpha-Mischwert den Grad der Lichtdurchlässigkeit für
jedes Pixel festgelegt,
einen Multiplikator, der jedes Pixel in der verschachtelten Pixelfolge mit seinem
ermittelten Alpha-Mischwert multipliziert und daraus eine verschachtelte Pixelfolge mit
vormultiplizierten Pixeln erzeugt,
einen De-Interleaver, der die verschachtelte Pixelfolge mit den vormultiplizierten
Pixeln in eine erste vormultiplizierte Pixelfolge und eine zweite vormultiplizierte Pixelfolge
entschachtelt, und
eine Mittelwertbildungsschaltung, die den Mittelwert entsprechender Pixelwerte aus
der ersten und zweiten vormultiplizierten Pixelfolge ermittelt und daraus eine interpolierte
Zeile von Pixeln ausgibt,
aufweist.
15. Vorrichtung nach Anspruch 1 zum weiteren Verbinden eines ersten Bilds, das eine
erste Vielzahl von Pixeln aufweist, mit einem zweiten Bild, das eine zweite Vielzahl von
Pixeln aufweist, wobei jedes der ersten Vielzahl von Pixeln einen anzeigbaren Pixelwert und
ein Alpha-Steuerbit, das die Lichtdurchlässigkeit des anzeigbaren Pixelwerts steuert,
aufweist; die
eine Alpha-Erzeugungsschaltung zum Erzeugen eines Alpha-Werts, der einen aus
der aus 0, 1 und einem vorgegebenen Wert α bestehenden Gruppe gewählten Wert
aufweist, in Reaktion auf das Alpha-Steuerbit jedes Pixels im ersten Bild und auf eine
Chroma-/ergleichsschaltung, die auf jeden anzeigbaren Pixelwert im ersten Bild reagiert,
ein mit der Alpha-Erzeugungsschaltung verbundenes Multiplikationsmittel zum
Multiplizieren jedes erzeugten Alpha-Werts mit einem entsprechenden anzeigbaren Pixelwert
aus dem ersten Bild und zum Erzeugen eines vormultiplizierten anzeigbaren Pixelwerts und
eine mit dem Multiplikationsmittel verbundene horizontale Interpolationsschaltung
zum Erzeugen von Interpolationspixeln aus zwei vormultiplizierten Pixelwerten und zum
Erzeugern von Interpolations-Alpha-Werten aus zwei Alpha-Werten
aufweist.
16. Vorrichtung nach Anspruch 15, die außerdem eine zwischen das Multiplikationsmittel
und die horizontale Interpolationsschaltung geschaltete vertikale Interpolationsschaltung zum
Erzeugen von Interpolationspixeln aus zwei vormultiplizierten Pixelwerten aufweist.
17. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass die horizontale
Interpolationsschaltung einen Addierer und ein Register, das mit der zweifachen
Geschwindigkeit einer ankommenden Pixelfolge getaktet ist, aufweist.
18. Vorrichtung nach Anspruch 15, die außerdem einen mit dem Ausgang der
horizontalen Interpolationsschaltung verbundenen Addierer zum Addieren jedes
interpolierten Pixels mit einem entsprechenden anzeigbaren Pixelwert aus dem zweiten Bild,
der mit (1 - a) vormultipliziert worden ist, aufweist.
19. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass sie in einem der
folgenden drei Modi arbeiten kann: (1) RGB-Modus, bei dem jeder anzeigbare Pixelwert
einzelne Farbkomponenten für Rot, Grün und Blau aufweist, (2) CLUT-Modus, bei dem jeder
anzeigbare Pixelwert Farbbits aufweist, die mittels einer Farben-Nachschlagetabelle in RGB-
Komponenten umgewandelt werden, bevor sie vom Multiplikationsmittel multipliziert werden,
und (3) ACLUT-Modus, bei dem jedes Pixel im ersten Bild eine Vielzahl von Alpha-Steuerbits
aufweist, die anstelle des von der Alpha-Erzeugungsschaltung erzeugen Alpha-Wert
verwendet werden, um die Lichtdurchlässigkeit zu steuern.
20. Verfahren zum Umwandeln eines ersten Bilds mit einer ersten Anzeige-Auflösung in
ein zweites Bild mit einer zweiten Anzeige-Auflösung, wobei das erste Bild eine Vielzahl von
Pixelwerten aufweist, die in horizontalen Zeilen angeordnet sind; das die Schritte
(1) Replizieren einer Pixelfolge mit Pixelwerten aus einer der horizontalen Zeilen des
ersten Bilds und Erzeugen einer replizierten Pixelfolge mit replizierten Pixelwerten aus der
einen horizontalen Zeile,
(2) Verzögern der replizierten Pixelfolge um einen Taktzyklus, um eine verzögerte
replizierte Pixelfolge zu erzeugen, und
(3) Ermitteln des Mittelwerts entsprechender Pixelwerte aus der replizierten Pixelfolge
und Ausgeben einer gemittelten Pixelfolge, umfasst,
dadurch gekennzeichnet, dass das Verfahren außerdem die Schritte
(4) Ermitteln des Mittelwerts entsprechender Pixelwerte aus der replizierten Pixelfolge
und der verzögerten replizierten Pixelfolge und Ausgeben einer gemittelten Pixelfolge, die
Pixelwerte aus der einen horizontalen Zeile aufweist, die mit gemittelten Pixelwerten aus der
einen horizontalen Zeile gemischt sind, und
(b) Multiplizieren jedes einzelnen Pixelwerts in der Pixelfolge mit einem die
Lichtdurchlässigkeit des jeweiligen Pixelwerts steuernden Alpha-Mischwert vor dem
Empfang durch den Pixelreplikator
umfasst.
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass der Multiplikationsschritt
den Schritt des Abrufens des Alpha-Mischwerts aus einem Alpha-Register mittels eines zu
jedem einzelnen Pixelwert gehörenden Alpha-Steuerbits umfasst.
22. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass der Multiplikationsschritt
den Schritt des Abrufens des Alpha-Mischwerts aus einer Nachschlagetabelle mittels einer
Vielzahl codierter Alpha-Steuerbits, die zu jedem einzelnen Pixelwert gehören, umfasst.
23. Verfahren nach Anspruch 20, das außerdem den Schritt des Vergleichens jedes
Pixelwerts mit einem Chroma-Key-Wert und, in Reaktion auf einen positiven Vergleich, des
Erzwingens einer Multiplikation des jeweiligen Pixelwerts mit Null umfasst.
24. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass jeder der Pixelwerte im
ersten Bild eine Vielzahl von Farbkomponenten aufweist und dass die Schritte (1), (2) und
(3) für jede Farbkomponente getrennt ausgeführt werden, sodass eine gesonderte gemittelte
Pixelfolge für jede Farbkomponente entsteht.
25. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass zu jedem der Pixelwerte
im ersten Bild ein Alpha-Mischwert gehört, der das Ausmaß festgelegt, in dem der Pixelwert
mit einem entsprechenden Pixelwert aus einem dritten Bild gemischt wird, wobei das
Verfahren außerdem die Schritte
(4) Empfangen einer zweiten Pixelfolge mit Alpha-Mischwerten aus der einen
horizontalen Zeile des ersten Bilds und Erzeugen einer zweiten replizierten Pixelfolge mit
replizierten Alpha-Mischwerten,
(5) Verzögern der replizierten Alpha-Mischwertfolge um einen Taktzyklus, um eine
verzögerte replizierte Alpha-Mischwertfolge zu erzeugen, und
(6) Empfangen der replizierten Alpha-Mischwertfolge und der verzögerten replizierten
Alpha-Mischwertfolge, Ermitteln des Mittelwerts entsprechender Elemente aus der
replizierten Alpha-Mischwertfolge und der verzögerten replizierten Alpha-Mischwertfolge und
Ausgeben einer gemittelten Alpha-Mischwertfolge, die Elemente aus der Alpha-
Mischwertfolge aufweist, die mit gemittelten Elementen aus der Alpha-Mischwertfolge
gemischt sind,
umfasst.
26. Verfahren nach Anspruch 20, das außerdem den Schritt des Interpolierens von
Alpha-Mischwerten, die zu jedem der Vielzahl von Pixeln im ersten Bild gehören, und des
Erzeugens von interpolierten Alpha-Mischwerten aus den Alpha-Mischwerten umfasst.
27. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass Schritt (1) den Schritt
des Verwendens eines Registers, um die Pixelfolge mit der zweifachen normalen
Taktfrequenz zu takten, umfasst.
28. Verfahren nach Anspruch 20, das außerdem den Schritt des Ermittelns des
Mittelwerts von Pixeln aus zwei unterschiedlichen horizontalen Zeilen des ersten Bilds, um
eine gemittelte Zeile von Pixeln zu erzeugen, und des Verwendens der gemittelten Zeile von
Pixeln als die eine horizontale Zeile, die im Schritt (1) repliziert wird, umfasst.
29. Verfahren nach Anspruch 20 zum weiteren Verbinden von Pixeln aus einem ersten
Bild, das eine erste Anzeige-Auflösung hat, mit Pixeln aus einem zweiten Bild, das eine
zweite Anzeige-Auflösung hat; das die Schritte
(1) Bestimmen eines Alpha-Werts, der die Lichtdurchlässigkeit jedes Pixels im ersten
Bild steuert, für jedes Pixel im ersten Bild,
(2) Erzeugen von Interpolationspixeln aus dem ersten Bild durch Ermitteln des
Mittelwerts von Pixelwerten aus dem ersten Bild,
(3) Erzeugen von Interpolations-Alpha-Werten aus dem ersten Bild durch Ermitteln
9
des Mittelwerts entsprechender Alpha-Werte, die im Schritt (1) bestimmt wurden, und
(4) Mischen der im Schritt (3) erzeugten Interpolationspixel mit den entsprechenden
Pixeln aus dem zweiten Bild
umfasst.
30. Verfahren nach Anspruch 29, dadurch gekennzeichnet, dass Schritt (1) den Schritt des
Lesens einzelner Alpha-Mischbits, die zu jedem Pixel im ersten Bild gehören, aus einem
Speicher umfasst.
31. Verfahren nach Anspruch 29, dadurch gekennzeichnet, dass Schritt (1) den Schritt des
Verwendens eines Alpha-Steuerbits, das zu jedem Pixel im ersten Bild gehört, um einen
vorgegebenen Alpha-Wert abzurufen, umfasst.
32. Verfahren nach Anspruch 29, das außerdem den Schritt des Vergleichens jedes
Pixelwerts im ersten Bild mit einem Chroma-Key-Wert und, in Reaktion auf eine Feststellung,
dass eine Übereinstimmung vorliegt, des Erzwingens, dass der Alpha-Wert für diesen
Pixelwert Null ist, umfasst.
33. Verfahren nach Anspruch 29, das außerdem den Schritt des Multiplizierens jedes
Pixelwerts im ersten Bild mit seinem zugehörigen Alpha-Wert vor der Erzeugung der
interpolierten Pixelwerte umfasst.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/612,105 US5914725A (en) | 1996-03-07 | 1996-03-07 | Interpolation of pixel values and alpha values in a computer graphics display device |
PCT/US1997/003657 WO1997033253A1 (en) | 1996-03-07 | 1997-03-05 | Interpolation of pixel values and alpha values in a computer graphics display device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69712799D1 DE69712799D1 (de) | 2002-06-27 |
DE69712799T2 true DE69712799T2 (de) | 2002-11-21 |
Family
ID=24451742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69712799T Expired - Lifetime DE69712799T2 (de) | 1996-03-07 | 1997-03-05 | Interpolieren von pixelwerten und alphawerten in einer anzeigevorrichtung für computergrafiken |
Country Status (6)
Country | Link |
---|---|
US (1) | US5914725A (de) |
EP (1) | EP1012789B1 (de) |
KR (1) | KR19990087564A (de) |
AU (1) | AU2200697A (de) |
DE (1) | DE69712799T2 (de) |
WO (1) | WO1997033253A1 (de) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5831604A (en) * | 1996-06-03 | 1998-11-03 | Intel Corporation | Alpha blending palettized image data |
JPH114367A (ja) | 1997-04-16 | 1999-01-06 | Seiko Epson Corp | 高速画像選択方法および高速画像選択機能付デジタルカメラ |
US6002410A (en) * | 1997-08-25 | 1999-12-14 | Chromatic Research, Inc. | Reconfigurable texture cache |
US6489967B1 (en) * | 1998-09-02 | 2002-12-03 | Namco Limited | Image formation apparatus and image formation method |
US6661422B1 (en) | 1998-11-09 | 2003-12-09 | Broadcom Corporation | Video and graphics system with MPEG specific data transfer commands |
US6768774B1 (en) | 1998-11-09 | 2004-07-27 | Broadcom Corporation | Video and graphics system with video scaling |
US6853385B1 (en) | 1999-11-09 | 2005-02-08 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US6731295B1 (en) * | 1998-11-09 | 2004-05-04 | Broadcom Corporation | Graphics display system with window descriptors |
US7446774B1 (en) | 1998-11-09 | 2008-11-04 | Broadcom Corporation | Video and graphics system with an integrated system bridge controller |
US6573905B1 (en) | 1999-11-09 | 2003-06-03 | Broadcom Corporation | Video and graphics system with parallel processing of graphics windows |
US6636222B1 (en) | 1999-11-09 | 2003-10-21 | Broadcom Corporation | Video and graphics system with an MPEG video decoder for concurrent multi-row decoding |
US7982740B2 (en) | 1998-11-09 | 2011-07-19 | Broadcom Corporation | Low resolution graphics mode support using window descriptors |
US6798420B1 (en) | 1998-11-09 | 2004-09-28 | Broadcom Corporation | Video and graphics system with a single-port RAM |
US6738526B1 (en) | 1999-07-30 | 2004-05-18 | Microsoft Corporation | Method and apparatus for filtering and caching data representing images |
DE19951341B4 (de) * | 1999-10-25 | 2012-02-16 | Robert Bosch Gmbh | Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildern sowie Einrichtung hierzu |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6618048B1 (en) | 1999-10-28 | 2003-09-09 | Nintendo Co., Ltd. | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components |
US9668011B2 (en) | 2001-02-05 | 2017-05-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Single chip set-top box system |
US6975324B1 (en) | 1999-11-09 | 2005-12-13 | Broadcom Corporation | Video and graphics system with a video transport processor |
US6466226B1 (en) * | 2000-01-10 | 2002-10-15 | Intel Corporation | Method and apparatus for pixel filtering using shared filter resource between overlay and texture mapping engines |
US7119813B1 (en) * | 2000-06-02 | 2006-10-10 | Nintendo Co., Ltd. | Variable bit field encoding |
US7061502B1 (en) | 2000-08-23 | 2006-06-13 | Nintendo Co., Ltd. | Method and apparatus for providing logical combination of N alpha operations within a graphics system |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7184059B1 (en) | 2000-08-23 | 2007-02-27 | Nintendo Co., Ltd. | Graphics system with copy out conversions between embedded frame buffer and main memory |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6980218B1 (en) | 2000-08-23 | 2005-12-27 | Nintendo Co., Ltd. | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system |
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7576748B2 (en) | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US6867781B1 (en) | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US6825851B1 (en) | 2000-08-23 | 2004-11-30 | Nintendo Co., Ltd. | Method and apparatus for environment-mapped bump-mapping in a graphics system |
US6654025B1 (en) * | 2000-08-28 | 2003-11-25 | Ucentric Holdings, Inc. | System and method providing translucent region over a video program for display by a video display device |
US20030070132A1 (en) * | 2001-08-16 | 2003-04-10 | Christopher Pasqualino | Flexible video encoding scheme supporting audio and auxiliary information |
JP3529759B2 (ja) * | 2001-01-26 | 2004-05-24 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理プログラム、画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム実行装置、画像処理装置、及び画像処理方法 |
US7092035B1 (en) * | 2001-07-09 | 2006-08-15 | Lsi Logic Corporation | Block move engine with scaling and/or filtering for video or graphics |
US6876369B2 (en) * | 2002-01-22 | 2005-04-05 | International Business Machines Corp. | Applying translucent filters according to visual disability needs in a network environment |
US6771274B2 (en) * | 2002-03-27 | 2004-08-03 | Sony Corporation | Graphics and video integration with alpha and video blending |
US6801642B2 (en) * | 2002-06-26 | 2004-10-05 | Motorola, Inc. | Method and apparatus for limiting storage or transmission of visual information |
US6954215B2 (en) * | 2002-06-28 | 2005-10-11 | Microsoft Corporation | System and method for employing non-alpha channel image data in an alpha-channel-aware environment |
EP1599840B1 (de) * | 2003-02-11 | 2006-12-06 | Research In Motion Limited | Anzeigeverarbeitungssystem und verfahren |
US20070109314A1 (en) * | 2003-05-23 | 2007-05-17 | Via Technologies, Inc. | Adaptive pixel-based blending method and system |
DE10325003A1 (de) * | 2003-06-03 | 2004-12-30 | Siemens Ag | Visualisierung von 2D/ 3D-fusionierten Bilddaten für die Katheterangiografie |
US7596284B2 (en) * | 2003-07-16 | 2009-09-29 | Hewlett-Packard Development Company, L.P. | High resolution image reconstruction |
JP2005107780A (ja) * | 2003-09-30 | 2005-04-21 | Sony Corp | 画像混合方法および混合画像データ生成装置 |
US8063916B2 (en) | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
TWI246326B (en) * | 2004-08-16 | 2005-12-21 | Realtek Semiconductor Corp | Image processing circuit of digital TV |
KR100476828B1 (ko) * | 2004-09-24 | 2005-03-18 | 엠텍비젼 주식회사 | 복수의 영상 이미지를 이용한 합성 이미지 생성 방법 및장치 |
US7409102B2 (en) * | 2005-03-23 | 2008-08-05 | Microsoft Corporation | Methods and systems for reducing ringing in composited user interface elements |
FR2900527B1 (fr) * | 2006-04-26 | 2008-09-26 | Thales Sa | Procede de codage d'une image numerique couleur comportant une information de ponderation |
FR2901946B1 (fr) * | 2006-06-06 | 2008-11-21 | Thales Sa | Procede de codage d'une image numerique couleur comportant une information de marquage |
US10908421B2 (en) | 2006-11-02 | 2021-02-02 | Razer (Asia-Pacific) Pte. Ltd. | Systems and methods for personal viewing devices |
US9891435B2 (en) | 2006-11-02 | 2018-02-13 | Sensics, Inc. | Apparatus, systems and methods for providing motion tracking using a personal viewing device |
US8072465B2 (en) * | 2008-05-21 | 2011-12-06 | Mediatek Inc. | Image processing method and system |
US8213512B2 (en) * | 2008-05-28 | 2012-07-03 | Cyberlink Corp. | Determining an intermediate image |
US20090310947A1 (en) * | 2008-06-17 | 2009-12-17 | Scaleo Chip | Apparatus and Method for Processing and Blending Multiple Heterogeneous Video Sources for Video Output |
US20100253850A1 (en) * | 2009-04-03 | 2010-10-07 | Ej4, Llc | Video presentation system |
WO2011159757A2 (en) * | 2010-06-15 | 2011-12-22 | Sensics Inc. | Systems and methods for personal viewing devices |
US8717391B2 (en) * | 2010-11-19 | 2014-05-06 | Apple Inc. | User interface pipe scalers with active regions |
KR102246105B1 (ko) * | 2014-09-25 | 2021-04-29 | 삼성전자주식회사 | 디스플레이 장치, 이의 제어 방법 및 이의 데이터 전송 방법 |
KR20230077016A (ko) * | 2021-11-24 | 2023-06-01 | 삼성디스플레이 주식회사 | 표시 장치 및 표시 장치의 데이터 보상 방법 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965825A (en) * | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4694490A (en) * | 1981-11-03 | 1987-09-15 | Harvey John C | Signal processing apparatus and methods |
US4484188A (en) * | 1982-04-23 | 1984-11-20 | Texas Instruments Incorporated | Graphics video resolution improvement apparatus |
GB2199461B (en) * | 1986-12-24 | 1991-03-13 | Philips Electronic Associated | Image display apparatus |
US5109348A (en) * | 1987-09-14 | 1992-04-28 | Visual Information Technologies, Inc. | High speed image processing computer |
GB8811568D0 (en) * | 1988-05-16 | 1988-06-22 | Crosfield Electronics Ltd | Producing half-tone images |
GB8814288D0 (en) * | 1988-06-16 | 1988-07-20 | Crosfield Electronics Ltd | Method & apparatus for generating composite images |
US5025394A (en) * | 1988-09-09 | 1991-06-18 | New York Institute Of Technology | Method and apparatus for generating animated images |
US5097257A (en) * | 1989-12-26 | 1992-03-17 | Apple Computer, Inc. | Apparatus for providing output filtering from a frame buffer storing both video and graphics signals |
GB9012423D0 (en) * | 1990-06-04 | 1990-07-25 | Abekas Video Systems | Video image transformation |
JPH0445671A (ja) * | 1990-06-12 | 1992-02-14 | Sony Corp | テレビジョン信号の輪郭強調回路 |
KR930009181B1 (ko) * | 1990-12-22 | 1993-09-23 | 삼성전자 주식회사 | 영상신호의 2차원 경사상관 보간방법 및 회로 |
US5299028A (en) * | 1991-10-29 | 1994-03-29 | Eastman Kodak Company | Method and apparatus for image data resolution conversion |
US5406306A (en) * | 1993-02-05 | 1995-04-11 | Brooktree Corporation | System for, and method of displaying information from a graphics memory and a video memory on a display monitor |
US5446804A (en) * | 1994-04-14 | 1995-08-29 | Hewlett-Packard Company | Magnifying digital image using edge mapping |
-
1996
- 1996-03-07 US US08/612,105 patent/US5914725A/en not_active Expired - Lifetime
-
1997
- 1997-03-05 EP EP97914928A patent/EP1012789B1/de not_active Expired - Lifetime
- 1997-03-05 DE DE69712799T patent/DE69712799T2/de not_active Expired - Lifetime
- 1997-03-05 KR KR1019980707002A patent/KR19990087564A/ko not_active Application Discontinuation
- 1997-03-05 AU AU22006/97A patent/AU2200697A/en not_active Abandoned
- 1997-03-05 WO PCT/US1997/003657 patent/WO1997033253A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1012789A1 (de) | 2000-06-28 |
US5914725A (en) | 1999-06-22 |
KR19990087564A (ko) | 1999-12-27 |
AU2200697A (en) | 1997-09-22 |
EP1012789A4 (de) | 2000-06-28 |
EP1012789B1 (de) | 2002-05-22 |
DE69712799D1 (de) | 2002-06-27 |
WO1997033253A1 (en) | 1997-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69712799T2 (de) | Interpolieren von pixelwerten und alphawerten in einer anzeigevorrichtung für computergrafiken | |
DE69411771T2 (de) | Vorrichtung und Verfahren zur Anzeige von Informationen aus einem grafischen Speicher und einem Videospeicher auf einem Anzeigegerät | |
DE69708270T2 (de) | Videobildmischung in einem heimkommunikationsterminal | |
DE68928773T2 (de) | Verfahren zum senkrechten Filtern bei rasterabgetasteten Anzeigevorrichtungen | |
DE69610667T2 (de) | Verfahren und Einrichtung zur gleichzeitigen Darstellung von Grafik und Videosignalen auf einem Rechnerbildschirm | |
DE3650764T2 (de) | Bildverarbeitungsgerät | |
DE69333475T2 (de) | Verarbeitungseinrichtung für die Bilddatenumwandlung | |
DE68927701T2 (de) | Bildverarbeitungsgerät und Verfahren | |
DE3789750T2 (de) | Speicher zur Bildtransformation. | |
DE68910596T2 (de) | Abtastumsetzungssystem mit Überlagerungsvorrichtung. | |
DE69330397T2 (de) | Bildverarbeitungsgerät | |
DE3010990A1 (de) | Digitales stehbildspeichersystem | |
JPH09509766A (ja) | 単一のフレームバッファを有する画像処理システム | |
DE69321511T2 (de) | Farben Erzeug- und Mischvorrichtung | |
DE3222662A1 (de) | Verfahren und einrichtung zur linearen interpolation fuer signale in einem speicher | |
DE10261373A1 (de) | Apparat und Verfahren für die Umwandlung von Bildelementen von dem YUV-Format zu dem RGB-Format unter Verwendung von Farbumwertetabellen | |
DE69324399T2 (de) | Videoprozessorsystem | |
DE3788925T2 (de) | Interpolator für Fernsehtricksystem. | |
DE69625674T2 (de) | Steuerung von Abwärts-Videoformatumwandlung | |
DE3751999T2 (de) | Speicherung von bildern unter verwendung von getrennt abgetasteten breitband- und schmalbandvariablen | |
DE69917707T2 (de) | Verarbeitungseinheit zur Farbbildmischung | |
DE69129730T2 (de) | Vorrichtung zum Verarbeiten von Bilddaten | |
DE69321308T2 (de) | Anzeigesteuergerät | |
DE3218815A1 (de) | Verfahren zur verwendung einer speichervorrichtung fuer ein anzeigesystem | |
DE69433392T2 (de) | Videodatenprozessor und Videosignaldatenverarbeitung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |